/* ==========================================================
DREAMLAND LOUNGE — FUTURE ARCHIVE
SUBMISSION CSS / SEPTEMBER 2026

Layout contract:

- CSS owns layout, typography, colour and readable fallback states.
- GSAP owns animated transform/opacity after successful setup.
- Desktop, tablet and phone rules are consolidated below.
- WebGL remains deliberately disabled.
  ========================================================== */

.dl-home {
--dl-stage: #070707;
--dl-night: #111113;
--dl-ink: #1b1b1e;
--dl-bone: #f6f2e8;
--dl-smoke: #b6b0a6;
--dl-paper: #f3f1eb;
--dl-paper-light: #fffefa;
--dl-paper-edge: #d9d5cb;
--dl-gold-shadow: #362006;
--dl-gold-deep: #87530f;
--dl-gold: #c98e24;
--dl-gold-light: #edc667;
--dl-gold-pale: #f7dfa0;
--dl-gold-material:
linear-gradient(
104deg,
#4a2c08 0%,
#a76a17 18%,
#e4b94e 37%,
#ffe9a7 49%,
#d99d2e 66%,
#5b360b 100%
);
--dl-display: "Science Gothic", sans-serif;
--dl-programme: "Archivo", sans-serif;
--dl-gutter: clamp(20px, 3.15vw, 64px);
--dl-max: 1920px;
--dl-header-h: clamp(66px, 5vw, 82px);
--dl-fast: 260ms;
--dl-ease: cubic-bezier(.77, 0, .18, 1);
position: relative;
width: 100%;
overflow: clip;
background: var(--dl-stage);
color: var(--dl-bone);
font-family: var(--dl-programme);
-webkit-font-smoothing: antialiased;
text-rendering: geometricPrecision;
}

html,
body {
background: #070707;
color-scheme: dark;
}

.dl-home *,
.dl-home *::before,
.dl-home *::after {
box-sizing: border-box;
}

.dl-home img {
display: block;
max-width: 100%;
}

.dl-home a {
color: inherit;
text-decoration: none;
}

.dl-home button,
.dl-home input {
font: inherit;
}

.dl-home :where(a, button, input):focus-visible {
outline: 2px solid var(--dl-gold-light);
outline-offset: 4px;
}

.dl-shell {
width: min(
calc(100% - (var(--dl-gutter) * 2)),
var(--dl-max)
);
margin-inline: auto;
}

.dl-grid {
display: grid;
grid-template-columns: repeat(12, minmax(0, 1fr));
column-gap: clamp(12px, 1.4vw, 26px);
}

.dl-label,
.dl-programme {
font-family: var(--dl-programme);
font-size: clamp(.66rem, .68vw, .78rem);
font-weight: 650;
line-height: 1.35;
letter-spacing: .105em;
text-transform: uppercase;
}

.dl-copy {
margin: 0;
font-size: clamp(1rem, 1.15vw, 1.2rem);
line-height: 1.55;
}

.dl-sr-only {
position: absolute !important;
width: 1px !important;
height: 1px !important;
padding: 0 !important;
margin: -1px !important;
overflow: hidden !important;
clip: rect(0, 0, 0, 0) !important;
white-space: nowrap !important;
border: 0 !important;
}

.dl-skip {
position: fixed;
z-index: 12000;
top: 12px;
left: 12px;
padding: 12px 16px;
color: var(--dl-stage);
background: var(--dl-gold-light);
transform: translateY(-160%);
}

.dl-skip:focus {
transform: translateY(0);
}

/* ==========================================================
OPENING
========================================================== */

.dl-intro {
position: fixed;
z-index: 10000;
inset: 0;
height: 100svh;
overflow: hidden;
isolation: isolate;
background: var(--dl-stage);
color: var(--dl-bone);
transform-origin: center;
}

.dl-intro__stage,
.dl-intro__energy {
position: absolute;
inset: 0;
overflow: hidden;
}

.dl-intro__energy {
z-index: 12;
pointer-events: none;
}

.dl-intro__meta,
.dl-intro__footer {
position: absolute;
z-index: 30;
right: var(--dl-gutter);
left: var(--dl-gutter);
display: flex;
align-items: center;
justify-content: space-between;
color: rgba(241, 236, 226, .58);
}

.dl-intro__meta {
top: clamp(24px, 2.8vw, 48px);
}

.dl-intro__footer {
bottom: clamp(24px, 2.8vw, 48px);
}

.dl-intro__line {
display: none !important;
}

.dl-intro__word {
position: absolute;
z-index: 20;
top: 50%;
right: var(--dl-gutter);
left: var(--dl-gutter);
display: none !important;
grid-template-columns: repeat(9, minmax(0, 1fr));
align-items: center;
transform: translateY(-51%);
pointer-events: none;
}

.dl-intro__word > span {
display: flex;
min-width: 0;
align-items: center;
justify-content: center;
color: var(--dl-gold-light);
font-family: var(--dl-display);
font-size: clamp(7rem, 13.8vw, 16rem);
font-weight: 700;
font-variation-settings: "wdth" 50, "wght" 700;
line-height: .62;
letter-spacing: -.045em;
text-shadow:
0 1px 0 var(--dl-gold-deep),
0 8px 34px rgba(0, 0, 0, .58);
text-transform: uppercase;
transform-origin: center;
}

.dl-intro__room {
position: absolute;
z-index: 10;
inset: 0;
margin: 0;
overflow: hidden;
background: var(--dl-night);
will-change: clip-path, opacity, transform;
}

.dl-intro__room img {
width: 100%;
height: 100%;
object-fit: cover;
object-position: center 52%;
filter:
saturate(.92)
contrast(1.045)
brightness(.87);
transform: scale(1.012);
will-change: transform;
}

.dl-intro__room::after {
content: "";
position: absolute;
inset: 0;
pointer-events: none;
background:
linear-gradient(
180deg,
rgba(7, 7, 7, .14),
transparent 38%,
rgba(7, 7, 7, .28)
),
radial-gradient(
circle at 50% 48%,
rgba(201, 148, 50, .09) 0%,
transparent 34%,
rgba(7, 7, 7, .16) 100%
);
}

.dl-intro__fragments,
.dl-intro__hero-bridge {
position: absolute;
z-index: 18;
inset: 0;
pointer-events: none;
}

.dl-intro__fragment {
position: absolute;
inset: 0;
overflow: hidden;
background-repeat: no-repeat;
backface-visibility: hidden;
}

.dl-intro__fragment img {
width: 100%;
height: 100%;
max-width: none;
object-fit: cover;
object-position: center 52%;
filter:
saturate(.88)
contrast(1.08)
brightness(.82);
}

/* ==========================================================
HEADER AND MENU
========================================================== */

.dl-header {
position: fixed;
z-index: 800;
top: 0;
right: var(--dl-gutter);
left: var(--dl-gutter);
height: var(--dl-header-h);
display: flex;
align-items: center;
justify-content: space-between;
border-top: 1px solid rgba(244, 241, 233, .16);
color: var(--dl-bone);
mix-blend-mode: difference;
}

.dl-header__brand {
font-family: var(--dl-programme);
font-size: .72rem;
font-weight: 750;
letter-spacing: .06em;
text-transform: uppercase;
}

.dl-header__nav {
display: flex;
align-items: center;
gap: clamp(28px, 3vw, 58px);
font-size: .67rem;
font-weight: 700;
letter-spacing: .075em;
text-transform: uppercase;
}

.dl-header__nav a,
.dl-header__menu-toggle {
transition: opacity var(--dl-fast) ease;
}

.dl-header__nav a:hover,
.dl-header__menu-toggle:hover {
opacity: .58;
}

.dl-header__menu-toggle {
display: none;
width: 44px;
height: 44px;
padding: 0;
border: 0;
background: transparent;
color: inherit;
cursor: pointer;
}

.dl-menu {
position: fixed;
z-index: 900;
inset: 0;
display: none;
background: var(--dl-stage);
color: var(--dl-bone);
}

.dl-menu.is-open {
display: block;
}

.dl-menu__inner {
height: 100%;
padding:
calc(var(--dl-header-h) + 42px)
var(--dl-gutter)
42px;
display: flex;
flex-direction: column;
justify-content: center;
gap: 18px;
}

.dl-menu__inner a {
font-family: var(--dl-display);
font-size: clamp(3.8rem, 16vw, 7rem);
font-weight: 720;
font-variation-settings: "wdth" 62, "wght" 720;
line-height: .85;
letter-spacing: -.045em;
text-transform: uppercase;
}

/* ==========================================================
HERO
========================================================== */

.dl-hero {
position: relative;
min-height: 100svh;
overflow: hidden;
background: var(--dl-stage);
}

.dl-hero__type {
position: absolute;
z-index: 8;
inset: 0;
pointer-events: none;
}

.dl-hero__title {
margin: 0;
font-family: var(--dl-display);
font-weight: 760;
font-variation-settings: "wdth" 55, "wght" 760;
line-height: .62;
letter-spacing: -.058em;
text-transform: uppercase;
}

.dl-hero__title-dream,
.dl-hero__title-land {
position: absolute;
display: block;
white-space: nowrap;
}

.dl-hero__title-dream {
top: 10.5svh;
left: var(--dl-gutter);
font-size: clamp(11rem, 24vw, 29rem);
}

.dl-hero__title-land {
right: var(--dl-gutter);
bottom: 8.5svh;
font-size: clamp(11rem, 25vw, 30rem);
font-variation-settings: "wdth" 70, "wght" 760;
}

.dl-hero__media {
position: absolute;
z-index: 4;
top: 12svh;
right: 18vw;
bottom: 11svh;
left: 24vw;
overflow: hidden;
background: var(--dl-night);
}

.dl-hero__media img {
width: 100%;
height: 100%;
object-fit: cover;
object-position: center;
filter:
saturate(.88)
contrast(1.08)
brightness(.8);
transform: scale(1.025);
}

.dl-hero__media::after {
content: "";
position: absolute;
inset: 0;
pointer-events: none;
background:
linear-gradient(
90deg,
rgba(7, 7, 7, .2),
transparent 32%,
transparent 72%,
rgba(7, 7, 7, .16)
);
}

.dl-hero__location,
.dl-hero__programme,
.dl-hero__next {
position: absolute;
z-index: 12;
}

.dl-hero__location {
top: 41%;
left: var(--dl-gutter);
}

.dl-hero__programme {
top: 41%;
right: var(--dl-gutter);
text-align: right;
}

.dl-hero__next {
right: var(--dl-gutter);
bottom: 3.6svh;
display: inline-flex;
align-items: center;
gap: 14px;
font-size: .7rem;
font-weight: 700;
letter-spacing: .08em;
text-transform: uppercase;
}

.dl-hero__next span:last-child {
color: var(--dl-gold-light);
}

/* ==========================================================
NEXT NIGHT
========================================================== */

.dl-next-night {
position: relative;
min-height: 100svh;
overflow: hidden;
isolation: isolate;
background: var(--dl-stage);
margin-top: -10svh;
padding-top: 10svh;
}

.dl-next-night::before {
content: none;
}

.dl-next-night__shell {
position: relative;
width: min(
calc(100% - (var(--dl-gutter) * 2)),
var(--dl-max)
);
min-height: 100svh;
margin-inline: auto;
display: grid;
grid-template-columns: repeat(12, minmax(0, 1fr));
gap: clamp(12px, 1.4vw, 26px);
align-items: center;
padding:
calc(var(--dl-header-h) + 2svh)
0
4svh;
}

.dl-next-night__date {
position: absolute;
z-index: 8;
top: calc(var(--dl-header-h) + 2svh);
right: 0;
display: flex;
align-items: baseline;
gap: 12px;
color: var(--dl-bone);
pointer-events: none;
}

.dl-next-night__number {
font-family: var(--dl-display);
font-size: clamp(4.4rem, 6.2vw, 7.4rem);
font-weight: 690;
font-variation-settings: "wdth" 58, "wght" 690;
line-height: .72;
letter-spacing: -.05em;
}

.dl-next-night__month {
margin: 0;
color: var(--dl-gold-light);
}

.dl-next-night__label {
position: absolute;
z-index: 5;
top: calc(var(--dl-header-h) + 4svh);
left: 0;
color: var(--dl-smoke);
}

.dl-next-night__content {
position: relative;
z-index: 7;
grid-column: 6 / 13;
align-self: center;
max-width: 920px;
margin-left: 0;
padding-top: clamp(58px, 6vh, 92px);
}

.dl-next-night__kicker {
width: max-content;
margin: 0 0 clamp(18px, 1.8vw, 30px);
color: var(--dl-gold-light);
}

.dl-next-night__title {
max-width: 8.8ch;
margin: 0;
font-family: var(--dl-display);
font-size: clamp(5rem, 8vw, 9.6rem);
font-weight: 750;
font-variation-settings: "wdth" 60, "wght" 750;
line-height: .75;
letter-spacing: -.052em;
text-transform: uppercase;
text-wrap: balance;
}

.dl-next-night__title span {
display: block;
}

.dl-next-night__title span:nth-child(2) {
margin-left: clamp(14px, 1.8vw, 34px);
font-variation-settings: "wdth" 68, "wght" 750;
}

.dl-next-night__utility {
width: 100%;
max-width: none;
margin-top: clamp(28px, 3vw, 48px);
display: flex;
align-items: center;
justify-content: flex-start;
gap: clamp(28px, 4vw, 72px);
padding-top: 2px;
}

.dl-next-night__utility p {
margin: 0;
color: var(--dl-smoke);
line-height: 1.55;
}

.dl-next-night__media {
position: relative;
z-index: 4;
grid-column: 1 / 6;
justify-self: end;
width: min(
36vw,
calc(82svh * .8),
820px
);
aspect-ratio: 4 / 5;
overflow: hidden;
background: var(--dl-night);
box-shadow:
0 0 0 1px rgba(242, 238, 230, .14),
0 34px 90px rgba(0, 0, 0, .42);
}

.dl-next-night__media::after {
content: "";
position: absolute;
inset: 0;
pointer-events: none;
background:
linear-gradient(
90deg,
rgba(7, 7, 7, .16),
transparent 14%,
transparent 86%,
rgba(7, 7, 7, .16)
),
linear-gradient(
180deg,
rgba(255, 255, 255, .035),
transparent 22%,
transparent 76%,
rgba(0, 0, 0, .14)
);
}

.dl-next-night__media img {
width: 100%;
height: 100%;
object-fit: cover;
object-position: var(--dl-next-focus, center);
filter:
saturate(.94)
contrast(1.035)
brightness(.94);
}

.dl-text-link,
.dl-action {
display: inline-flex;
min-height: 44px;
align-items: center;
gap: 10px;
font-size: .72rem;
font-weight: 700;
letter-spacing: .08em;
text-transform: uppercase;
}

.dl-text-link span:last-child,
.dl-action__arrow {
color: var(--dl-gold-light);
transition: transform var(--dl-fast) ease;
}

.dl-text-link:hover span:last-child,
.dl-action:hover .dl-action__arrow {
transform: translate(5px, -5px);
}

/* ==========================================================
UPCOMING NIGHTS
========================================================== */

.dl-programme-scene {
position: relative;
padding:
clamp(78px, 6vw, 110px)
0
clamp(66px, 5vw, 92px);
overflow: visible;
isolation: isolate;
color: var(--dl-stage);
background: var(--dl-stage);
}

.dl-programme-surface,
.dl-memory-surface {
position: absolute;
z-index: 0;
inset: 0;
pointer-events: none;
background:
radial-gradient(
ellipse at 48% 34%,
var(--dl-paper-light) 0%,
var(--dl-paper) 68%,
var(--dl-paper-edge) 150%
);
box-shadow:
inset 0 1px rgba(255, 255, 255, .82),
inset 0 -1px rgba(7, 7, 7, .12);
}

.dl-programme-scene::after {
content: none;
}

.dl-programme-scene__head {
position: relative;
z-index: 2;
margin-bottom: clamp(36px, 3.2vw, 56px);
}

.dl-programme-scene .dl-label {
color: rgba(7, 7, 7, .56);
}

.dl-programme-scene__title {
width: min(1160px, 78vw);
margin: clamp(24px, 3vw, 48px) 0 0;
font-family: var(--dl-display);
font-size: clamp(4.3rem, 7.8vw, 9.4rem);
font-weight: 710;
font-variation-settings: "wdth" 58, "wght" 710;
line-height: .76;
letter-spacing: -.055em;
text-transform: uppercase;
color: var(--dl-stage);
}

.dl-programme-scene__title span {
display: inline-block;
color: inherit;
-webkit-text-fill-color: currentColor;
font-variation-settings: "wdth" 92, "wght" 610;
}

.dl-programme-browser {
position: relative;
z-index: 2;
display: grid;
grid-template-columns:
minmax(0, 1.64fr)
minmax(300px, .72fr);
gap: clamp(38px, 4.4vw, 74px);
align-items: start;
}

.dl-programme-browser > *,
.dl-event-row > * {
min-width: 0;
}

.dl-programme-browser__list {
padding-left: clamp(18px, 1.6vw, 30px);
}

.dl-event-row {
position: relative;
width: 100%;
min-height: clamp(92px, 7vw, 118px);
padding: clamp(14px, 1.35vw, 20px) 0;
display: grid;
grid-template-columns:
minmax(84px, .62fr)
minmax(76px, .72fr)
minmax(190px, 2.8fr)
minmax(90px, .8fr)
28px;
align-items: center;
gap: clamp(10px, 1.2vw, 22px);
overflow: visible;
border: 0;
background: transparent;
color: var(--dl-stage);
text-align: left;
cursor: pointer;
}

.dl-event-row::before {
content: "";
position: absolute;
top: 16%;
bottom: 16%;
left: calc(clamp(18px, 1.6vw, 30px) * -1);
width: 3px;
background: var(--dl-gold);
transform: scaleY(0);
transform-origin: center;
transition:
transform 420ms var(--dl-ease),
opacity 220ms ease;
}

.dl-event-row:hover::before {
opacity: .42;
transform: scaleY(.35);
}

.dl-event-row.is-active::before,
.dl-event-row:focus-visible::before {
opacity: 1;
transform: scaleY(1);
}

.dl-event-row__date {
padding-left: .08em;
font-family: var(--dl-display);
font-size: clamp(3.1rem, 3.65vw, 4.65rem);
font-weight: 640;
font-variation-settings: "wdth" 54, "wght" 640;
line-height: .76;
letter-spacing: -.055em;
transform-origin: left center;
transition:
transform 400ms var(--dl-ease),
color 260ms ease;
}

.dl-event-row__meta,
.dl-event-row__time {
color: #565149;
overflow-wrap: anywhere;
}

.dl-event-row__title {
font-family: var(--dl-display);
font-size: clamp(1.45rem, 1.95vw, 2.5rem);
font-weight: 650;
font-variation-settings: "wdth" 80, "wght" 650;
line-height: .92;
letter-spacing: -.034em;
text-transform: uppercase;
overflow-wrap: anywhere;
transition:
color 260ms ease,
font-variation-settings 420ms var(--dl-ease),
transform 420ms var(--dl-ease);
}

.dl-event-row__arrow {
color: var(--dl-gold-deep);
font-size: 1.2rem;
transition: transform var(--dl-fast) ease;
}

.dl-event-row.is-active .dl-event-row__date {
color: var(--dl-gold-deep);
transform: scale(1.025);
}

.dl-event-row.is-active .dl-event-row__title {
font-variation-settings: "wdth" 94, "wght" 680;
transform: none;
}

.dl-event-row.is-active .dl-event-row__arrow {
transform: translate(5px, -5px);
}

.dl-programme-browser__portal {
position: sticky;
top: var(--dl-programme-portal-top, calc(var(--dl-header-h) + 5vh));
}

.dl-programme-browser__media {
position: relative;
width: 100%;
aspect-ratio: 4 / 5;
overflow: hidden;
isolation: isolate;
background: var(--dl-stage);
box-shadow:
0 0 0 1px rgba(7, 7, 7, .16),
0 24px 54px rgba(7, 7, 7, .13);
}

.dl-programme-browser__media::after {
content: "";
position: absolute;
z-index: 3;
inset: 0;
pointer-events: none;
box-shadow:
inset 0 0 0 1px rgba(240, 217, 152, .2);
}

.dl-programme-browser__media img {
width: 100%;
height: 100%;
object-fit: cover;
object-position: var(--dl-event-focus, center);
filter:
saturate(.94)
contrast(1.035)
brightness(.94);
}

.dl-programme-browser__detail {
padding-top: 20px;
}

.dl-programme-browser__detail > .dl-programme {
color: rgba(7, 7, 7, .56);
}

.dl-programme-browser__detail-copy {
max-width: 31rem;
margin: 14px 0 26px;
color: rgba(7, 7, 7, .78);
font-size: clamp(.9rem, 1vw, 1.04rem);
font-weight: 570;
line-height: 1.5;
letter-spacing: .025em;
text-transform: uppercase;
}

.dl-programme-browser__detail-bottom {
min-height: 44px;
display: flex;
align-items: center;
justify-content: space-between;
gap: 20px;
}

.dl-programme-browser__detail [hidden] {
display: none !important;
}

.dl-programme-browser__empty {
padding: clamp(40px, 5vw, 72px) 0;
}

.dl-programme-browser__empty .dl-copy {
max-width: 34rem;
margin: 16px 0 24px;
color: rgba(7, 7, 7, .72);
}

.dl-programme-scene.is-single-event .dl-programme-browser {
grid-template-columns:
minmax(0, 1.3fr)
minmax(320px, .72fr);
}

.dl-programme-scene.is-single-event .dl-event-row {
min-height: clamp(170px, 20svh, 244px);
align-content: center;
}

.dl-event-row__mobile-media {
display: none;
}

/* ==========================================================
BREATH
========================================================== */

.dl-breath {
position: relative;
min-height: 84svh;
padding: clamp(76px, 6vw, 108px) 0;
overflow: hidden;
background: var(--dl-stage);
}

.dl-breath__shell {
position: relative;
width: min(
calc(100% - (var(--dl-gutter) * 2)),
var(--dl-max)
);
min-height: 66svh;
margin-inline: auto;
}

.dl-breath__media {
position: absolute;
top: 5%;
right: 15%;
bottom: 5%;
left: 34%;
overflow: hidden;
background: var(--dl-night);
}

.dl-breath__media img {
width: 100%;
height: 100%;
object-fit: cover;
object-position: center;
filter:
saturate(.78)
contrast(1.075)
brightness(.7);
}

.dl-breath__line {
position: absolute;
z-index: 4;
margin: 0;
font-family: var(--dl-display);
font-size: clamp(5rem, 9.6vw, 11.5rem);
font-weight: 700;
font-variation-settings: "wdth" 58, "wght" 700;
line-height: .72;
letter-spacing: -.052em;
text-transform: uppercase;
}

.dl-breath__line--one {
top: 6%;
left: 0;
}

.dl-breath__line--two {
top: 43%;
right: 2%;
color: var(--dl-bone);
-webkit-text-stroke: 0;
text-shadow: 0 14px 44px rgba(0, 0, 0, .72);
}

.dl-breath__line--three {
right: 0;
bottom: 4%;
left: auto;
max-width: 9ch;
text-align: right;
}

.dl-breath__line--three em {
display: block;
color: var(--dl-gold-light);
font-style: normal;
font-variation-settings: "wdth" 78, "wght" 650;
}

/* ==========================================================
MEMORY
========================================================== */

.dl-memory-bridge {
position: relative;
z-index: 2;
min-height: 54svh;
padding: clamp(66px, 5.4vw, 96px) 0;
overflow: hidden;
color: var(--dl-bone);
background: var(--dl-stage);
box-shadow:
0 -9svh 12svh rgba(7, 7, 7, .94);
}

.dl-memory-bridge__shell {
position: relative;
z-index: 2;
width: min(
calc(100% - (var(--dl-gutter) * 2)),
var(--dl-max)
);
min-height: 34svh;
padding: 0;
margin-inline: auto;
align-content: center;
}

.dl-memory-surface {
display: none;
}

.dl-memory-bridge__label {
grid-column: 1 / 4;
color: var(--dl-smoke);
}

.dl-memory-bridge__statement {
grid-column: 1 / 8;
align-self: center;
}

.dl-memory-bridge__title {
max-width: 10.5ch;
margin: 0;
font-family: var(--dl-display);
font-size: clamp(4.6rem, 7.7vw, 9.3rem);
font-weight: 710;
font-variation-settings: "wdth" 58, "wght" 710;
line-height: .72;
letter-spacing: -.055em;
text-transform: uppercase;
}

.dl-memory-bridge__title span {
color: var(--dl-gold-light);
background: var(--dl-gold-material);
-webkit-background-clip: text;
background-clip: text;
-webkit-text-fill-color: transparent;
font-variation-settings: "wdth" 88, "wght" 660;
filter: drop-shadow(0 12px 24px rgba(0, 0, 0, .32));
}

.dl-memory-bridge__copy {
grid-column: 8 / 13;
align-self: center;
max-width: 34rem;
margin: clamp(42px, 4.8vw, 78px) 0 0 auto;
padding: 0 0 0 clamp(24px, 3vw, 54px);
border: 0;
color: rgba(243, 239, 231, .7);
font-size: clamp(.95rem, 1.02vw, 1.08rem);
}

/* ==========================================================
PAST NIGHTS / ARCHIVE
========================================================== */

.dl-archive {
position: relative;
padding:
clamp(78px, 6vw, 110px)
0
clamp(82px, 6vw, 112px);
overflow: hidden;
background: var(--dl-stage);
}

.dl-archive__intro {
margin-bottom: clamp(42px, 4vw, 68px);
}

.dl-archive__title {
width: min(1260px, 92vw);
margin: clamp(24px, 3vw, 48px) 0 26px;
font-family: var(--dl-display);
font-size: clamp(4.8rem, 8.8vw, 10.5rem);
font-weight: 720;
font-variation-settings: "wdth" 57, "wght" 720;
line-height: .68;
letter-spacing: -.057em;
text-transform: uppercase;
}

.dl-archive__title span {
display: inline-block;
color: var(--dl-bone);
background: none;
-webkit-text-fill-color: currentColor;
font-variation-settings: "wdth" 108, "wght" 580;
}

.dl-archive__intro .dl-copy {
max-width: 36rem;
color: var(--dl-smoke);
}

.dl-archive__stream {
width: min(
calc(100% - (var(--dl-gutter) * 2)),
var(--dl-max)
);
margin-inline: auto;
display: grid;
grid-template-columns: repeat(12, minmax(0, 1fr));
column-gap: clamp(22px, 2.4vw, 46px);
row-gap: clamp(26px, 2.4vw, 46px);
align-items: start;
}

.dl-archive-item {
position: relative;
min-width: 0;
}

.dl-archive-item:nth-child(odd) {
grid-column: 1 / 7;
width: 94%;
}

.dl-archive-item:nth-child(even) {
grid-column: 7 / 13;
width: 94%;
margin-top: clamp(10px, 1.4vh, 24px);
margin-left: auto;
padding-left: 0;
}

.dl-archive-item:nth-child(4n + 3) {
width: 88%;
margin-left: clamp(12px, 2vw, 38px);
}

.dl-archive-item:nth-child(4n) {
width: 90%;
margin-right: clamp(12px, 1.8vw, 34px);
}

.dl-archive-item__media {
position: relative;
width: 100%;
aspect-ratio: 4 / 5;
overflow: visible;
isolation: isolate;
background: var(--dl-night);
}

.dl-archive-item__media::after {
content: "";
position: absolute;
z-index: 4;
inset: 0;
pointer-events: none;
box-shadow:
inset 0 0 0 1px rgba(237, 198, 103, .2),
0 22px 62px rgba(0, 0, 0, .3);
}

.dl-archive-item__media > img {
position: relative;
z-index: 3;
width: 100%;
height: 100%;
object-fit: cover;
object-position: var(--dl-archive-focus, center);
filter:
saturate(.94)
contrast(1.045)
brightness(.89);
}

.dl-archive-item__echo {
position: absolute;
z-index: 2;
inset: 0;
display: block;
pointer-events: none;
background-image: var(--dl-archive-image, none);
background-size: cover;
background-position: var(--dl-archive-focus, center);
opacity: 0;
}

.dl-archive-item__echo--a {
clip-path: inset(18% 0 58%);
}

.dl-archive-item__echo--b {
clip-path: inset(63% 0 15%);
}

.dl-archive-item__meta {
padding-top: 16px;
display: grid;
grid-template-columns: auto 1fr;
gap: 8px 18px;
align-items: end;
}

.dl-archive-item__meta time,
.dl-archive-item__meta > span:last-child {
color: var(--dl-smoke);
}

.dl-archive-item__meta > span:last-child {
grid-column: 2;
justify-self: end;
}

.dl-archive-item__title {
grid-column: 1 / 3;
margin: 6px 0 2px;
font-family: var(--dl-display);
font-size: clamp(2rem, 3.15vw, 4rem);
font-weight: 660;
font-variation-settings: "wdth" 64, "wght" 660;
line-height: .82;
letter-spacing: -.043em;
text-transform: uppercase;
overflow-wrap: anywhere;
}

.dl-archive__empty {
grid-column: 1 / 13;
padding: 60px 0;
border-top: 1px solid rgba(241, 236, 226, .18);
color: var(--dl-smoke);
}

/* ==========================================================
AFTERGLOW
========================================================== */

.dl-afterglow {
position: relative;
min-height: 46svh;
display: grid;
place-items: center;
padding: 64px var(--dl-gutter);
overflow: hidden;
background: var(--dl-stage);
}

.dl-afterglow__copy {
max-width: 17ch;
margin: 0;
text-align: center;
font-family: var(--dl-display);
font-size: clamp(3.7rem, 6.5vw, 7.8rem);
font-weight: 640;
font-variation-settings: "wdth" 62, "wght" 640;
line-height: .78;
letter-spacing: -.05em;
text-transform: uppercase;
}

.dl-afterglow__copy span:last-child {
color: var(--dl-bone);
font-variation-settings: "wdth" 76, "wght" 620;
text-shadow: none;
}

/* ==========================================================
NEWSLETTER
========================================================== */

.dl-list {
position: relative;
padding:
clamp(82px, 6.8vw, 122px)
0
clamp(86px, 7vw, 128px);
overflow: hidden;
color: var(--dl-bone);
background: #0b0b0a;
}

.dl-list__shell {
position: relative;
z-index: 2;
}

.dl-list__label {
grid-column: 1 / 4;
}

.dl-list__content {
grid-column: 1 / 13;
display: grid;
grid-template-columns: repeat(10, minmax(0, 1fr));
column-gap: clamp(12px, 1.4vw, 26px);
align-items: end;
}

.dl-list__title {
grid-column: 1 / 8;
max-width: 10.5ch;
margin: 0;
font-family: var(--dl-display);
font-size: clamp(4.4rem, 7.4vw, 8.9rem);
font-weight: 710;
font-variation-settings: "wdth" 58, "wght" 710;
line-height: .72;
letter-spacing: -.055em;
text-transform: uppercase;
}

.dl-list__title span {
color: var(--dl-bone);
-webkit-text-fill-color: currentColor;
font-variation-settings: "wdth" 76, "wght" 620;
}

.dl-list__content > .dl-copy {
grid-column: 9 / 13;
max-width: 30rem;
margin: 22px 0 0;
color: var(--dl-smoke);
}

.dl-list__form {
grid-column: 5 / 13;
width: 100%;
max-width: none;
margin-top: clamp(40px, 4vw, 64px);
}

.dl-list__field {
display: grid;
grid-template-columns: minmax(0, 1fr) auto;
border-bottom: 1px solid rgba(231, 198, 117, .72);
}

.dl-list__field input {
width: 100%;
min-height: 72px;
padding: 0 12px 0 0;
border: 0;
border-radius: 0;
outline: 0;
background: transparent;
color: var(--dl-bone);
font-size: clamp(1rem, 1.2vw, 1.2rem);
}

.dl-list__field input::placeholder {
color: rgba(244, 240, 232, .5);
}

.dl-list__field button {
min-width: 118px;
min-height: 72px;
padding: 0;
border: 0;
background: transparent;
color: var(--dl-gold-pale);
font-size: .75rem;
font-weight: 750;
letter-spacing: .08em;
text-transform: uppercase;
cursor: pointer;
}

.dl-list__success {
margin-top: 18px;
color: var(--dl-gold-light);
}

/* ==========================================================
VISIT
========================================================== */

.dl-visit {
position: relative;
min-height: 64svh;
padding:
clamp(68px, 6vw, 104px)
0
clamp(54px, 4.5vw, 78px);
overflow: hidden;
background: var(--dl-stage);
}

.dl-visit__shell {
position: relative;
width: min(
calc(100% - (var(--dl-gutter) * 2)),
var(--dl-max)
);
min-height: 48svh;
margin-inline: auto;
}

.dl-visit__address {
position: relative;
margin-top: clamp(32px, 3vw, 56px);
display: grid;
grid-template-columns: minmax(0, .78fr) minmax(0, 1.22fr);
align-items: baseline;
column-gap: clamp(20px, 3vw, 58px);
}

.dl-visit__number {
position: relative;
z-index: 2;
top: auto;
right: auto;
color: var(--dl-gold-light);
background: var(--dl-gold-material);
-webkit-background-clip: text;
background-clip: text;
-webkit-text-fill-color: transparent;
font-family: var(--dl-display);
font-size: clamp(7rem, 13vw, 15.5rem);
font-weight: 650;
font-variation-settings: "wdth" 58, "wght" 650;
line-height: .72;
letter-spacing: -.06em;
-webkit-text-stroke: 0;
filter: drop-shadow(0 14px 30px rgba(0, 0, 0, .3));
text-shadow: none;
pointer-events: none;
}

.dl-visit__street {
position: relative;
z-index: 2;
margin: 0;
font-family: var(--dl-display);
font-size: clamp(8rem, 16vw, 19rem);
font-weight: 720;
font-variation-settings: "wdth" 58, "wght" 720;
line-height: .64;
letter-spacing: -.06em;
text-transform: uppercase;
}

.dl-visit__city {
position: relative;
z-index: 3;
grid-column: 2;
margin-top: 12px;
color: var(--dl-smoke);
}

.dl-visit__utility {
position: relative;
z-index: 3;
width: min(780px, 56vw);
margin:
clamp(30px, 3vw, 50px)
0
0
auto;
display: flex;
align-items: flex-end;
justify-content: space-between;
gap: 36px;
}

.dl-visit__utility .dl-copy {
color: var(--dl-bone);
}

.dl-visit .dl-action {
position: relative;
padding-bottom: 7px;
color: var(--dl-bone);
}

.dl-visit .dl-action::after {
content: "";
position: absolute;
right: 0;
bottom: 0;
left: 0;
height: 1px;
background: var(--dl-gold-material);
transform: scaleX(.34);
transform-origin: right center;
transition: transform 360ms var(--dl-ease);
}

.dl-visit .dl-action:hover::after,
.dl-visit .dl-action:focus-visible::after {
transform: scaleX(1);
}

/* ==========================================================
ENDING
========================================================== */

.dl-ending {
position: relative;
min-height: 88svh;
padding:
clamp(28px, 3vw, 52px)
var(--dl-gutter);
display: grid;
grid-template-rows: auto 1fr auto;
overflow: hidden;
color: var(--dl-bone);
background:
radial-gradient(
ellipse at 50% 50%,
#0d0b07 0%,
#070605 46%,
#030303 100%
);
perspective: 1800px;
perspective-origin: 50% 48%;
}

.dl-ending::before {
content: none;
}

.dl-ending__top,
.dl-ending__bottom {
position: relative;
z-index: 3;
display: flex;
align-items: center;
justify-content: space-between;
}

.dl-ending__top a {
min-height: 44px;
display: inline-flex;
align-items: center;
}

.dl-ending__word {
position: relative;
z-index: 2;
min-width: 0;
width: 100%;
display: flex;
align-items: center;
justify-content: center;
gap: 0;
overflow: visible;
color: var(--dl-gold-light);
font-family: var(--dl-display);
font-size: clamp(8rem, 17vw, 20.5rem);
font-weight: 760;
font-variation-settings: "wdth" 58, "wght" 760;
line-height: .82;
letter-spacing: -.06em;
text-align: center;
text-transform: uppercase;
perspective: 1600px;
transform-style: preserve-3d;
}

.dl-ending__word > [data-dl-ending-word] {
position: relative;
z-index: 1;
isolation: isolate;
display: inline-flex;
align-items: center;
justify-content: center;
width: min(94vw, 1800px);
min-width: 0;
font: inherit;
color: inherit;
letter-spacing: inherit;
transform-origin: 50% 52%;
transform-style: preserve-3d;
filter: drop-shadow(0 22px 34px rgba(0, 0, 0, .42));
}

.dl-ending__word

> .dl-ending__word
> [data-dl-ending-word]::after {
content: none;
}

.dl-ending__word

> [data-dl-ending-word][data-dl-letters-ready="1"]
> .dl-ending__letter {
position: relative;
z-index: 2;
display: inline-block;
flex: 0 0 auto;
width: auto;
min-width: 0;
font: inherit;
font-variation-settings: inherit;
line-height: inherit;
letter-spacing: inherit;
transform-origin: 50% 52%;
transform-style: preserve-3d;
backface-visibility: hidden;
color: var(--dl-gold-light);
background: var(--dl-gold-material);
-webkit-background-clip: text;
background-clip: text;
-webkit-text-fill-color: transparent;
text-shadow:
1px 0 0 #8d5a16,
2px 0 0 #55330a,
0 1px 0 rgba(255, 239, 190, .72),
0 18px 38px rgba(0, 0, 0, .5);
}

/* ==========================================================
AUTHORED SECTION RHYTHM

Section identity comes from material, scale and movement.
Repeated eyebrow labels remain hidden.
========================================================== */

.dl-next-night__label,
.dl-programme-scene__head > .dl-label,
.dl-memory-bridge__label,
.dl-archive__intro > .dl-label,
.dl-list__label,
.dl-visit__shell > .dl-label {
display: none;
}

.dl-memory-bridge__statement {
grid-column-start: 1;
}

/* ==========================================================
WEBGL SAFETY
========================================================== */

.dl-webgl[data-dl-webgl],
.dl-dreamline-fallback {
display: none !important;
visibility: hidden !important;
opacity: 0 !important;
pointer-events: none !important;
}

/* ==========================================================
TABLET
========================================================== */

/* ==========================================================
MOBILE
========================================================== */

/* ==========================================================
MOBILE PORTRAIT

Mirrors Bricks' native mobile-portrait breakpoint.
This is a refinement layer, not a second mobile design.
========================================================== */

/* ==========================================================
PHONE LANDSCAPE

Phone landscape cannot be a shortened portrait stack.
The event handoff becomes a compact editorial spread while
the atmosphere sections retain breathing room.
========================================================== */

/* ==========================================================
TOUCH INPUT

Hover must never become a sticky interaction state on a
phone or tablet. Scroll/click state remains authoritative.
========================================================== */

/* ==========================================================
MOBILE PORTRAIT — FINAL EDITORIAL COMPOSITION

Mobile is an authored reading sequence, not a reduced
desktop stage. These rules remove collisions, repeated
decorative rails and excessive transition space while
preserving the desktop and landscape compositions above.
========================================================== */

body.dl-no-scroll {
overflow: hidden !important;
overscroll-behavior: none;
touch-action: none;
}

body.dl-no-scroll .dl-header {
z-index: 1100;
color: var(--dl-bone);
mix-blend-mode: normal;
}

/*

- APERTURE CONTROL
-
- The two unequal strokes are both a familiar menu symbol and
- the seam of a doorway. They resolve into a precise close mark.
- This also replaces the legacy MENU word when an older cached
- JavaScript file is still present.
  */

.dl-header__menu-toggle {
position: relative;
isolation: isolate;
width: 52px;
height: 44px;
place-items: center;
overflow: hidden;
border: 1px solid rgba(246, 242, 232, .28);
background:
linear-gradient(
145deg,
rgba(255, 255, 255, .035),
rgba(255, 255, 255, 0) 48%
),
rgba(7, 7, 7, .54);
color: var(--dl-bone);
opacity: 1;
backdrop-filter: blur(8px);
-webkit-backdrop-filter: blur(8px);
transition:
border-color 320ms var(--dl-ease),
background-color 320ms var(--dl-ease),
transform 320ms var(--dl-ease);
}

.dl-header__menu-toggle > span[aria-hidden="true"] {
width: 100%;
height: 100%;
display: grid;
place-items: center;
overflow: hidden;
color: transparent;
font-size: 0;
}

.dl-header__menu-toggle::before,
.dl-header__menu-toggle::after {
content: "";
position: absolute;
z-index: 3;
left: 50%;
height: 1px;
background: currentColor;
transform-origin: center;
transition:
width 360ms var(--dl-ease),
transform 460ms var(--dl-ease),
background 320ms ease;
}

.dl-header__menu-toggle::before {
top: 17px;
width: 25px;
transform: translateX(-50%);
}

.dl-header__menu-toggle::after {
top: 25px;
width: 16px;
transform: translateX(-22%);
background: var(--dl-gold-light);
}

.dl-header__menu-toggle:hover,
.dl-header__menu-toggle:focus-visible {
border-color: rgba(237, 198, 103, .7);
opacity: 1;
transform: translateY(-1px);
}

.dl-header__menu-toggle:hover::after,
.dl-header__menu-toggle:focus-visible::after {
width: 25px;
transform: translateX(-50%);
}

.dl-header__menu-toggle[aria-expanded="true"] {
border-color: rgba(237, 198, 103, .78);
background: rgba(7, 7, 7, .86);
}

.dl-header__menu-toggle[aria-expanded="true"]::before {
top: 21px;
width: 24px;
transform: translateX(-50%) rotate(45deg);
}

.dl-header__menu-toggle[aria-expanded="true"]::after {
top: 21px;
width: 24px;
background: var(--dl-gold-light);
transform: translateX(-50%) rotate(-45deg);
}

.dl-menu-control,
.dl-menu-control__mark,
.dl-menu-control__mark i,
.dl-menu-control__label {
pointer-events: none;
}

.dl-menu-control__label,
.dl-menu-control__mark {
display: none;
}

/* NIGHT INDEX SURFACE */

.dl-menu {
height: 100svh;
overflow: hidden;
visibility: hidden;
opacity: 0;
background: #050505;
color: var(--dl-bone);
contain: layout paint;
}

.dl-menu.is-open {
display: block;
visibility: visible;
}

.dl-menu--night-index.is-open {
display: grid;
}

.dl-menu-index__veil {
position: absolute;
z-index: 0;
top: 0;
bottom: 0;
width: 52%;
pointer-events: none;
}

.dl-menu-index__veil--a {
left: 0;
background:
radial-gradient(
circle at 100% 48%,
rgba(201, 142, 36, .09),
transparent 42%
),
#050505;
}

.dl-menu-index__veil--b {
right: 0;
background:
radial-gradient(
circle at 0% 52%,
rgba(237, 198, 103, .075),
transparent 44%
),
#0c0b09;
}

.dl-menu__inner {
position: relative;
z-index: 2;
width: min(
calc(100% - (var(--dl-gutter) * 2)),
var(--dl-max)
);
height: 100%;
margin-inline: auto;
padding:
calc(var(--dl-header-h) + 28px)
0
max(24px, env(safe-area-inset-bottom));
display: grid;
grid-template-rows: auto minmax(0, 1fr) auto;
gap: clamp(20px, 2.4vw, 42px);
counter-reset: dl-menu-item;
}

.dl-menu-index__head,
.dl-menu-index__footer {
position: relative;
z-index: 4;
display: flex;
align-items: center;
justify-content: space-between;
gap: 20px;
color: var(--dl-smoke);
font-family: var(--dl-programme);
font-size: clamp(.58rem, .66vw, .72rem);
font-weight: 680;
line-height: 1.35;
letter-spacing: .12em;
text-transform: uppercase;
}

.dl-menu-index__head::before,
.dl-menu-index__footer::before {
content: "";
position: absolute;
right: 0;
left: 0;
height: 1px;
background:
linear-gradient(
90deg,
rgba(237, 198, 103, .62),
rgba(246, 242, 232, .15) 34%,
transparent 92%
);
}

.dl-menu-index__head::before {
top: -14px;
}

.dl-menu-index__footer::before {
top: -14px;
}

.dl-menu-index__list {
position: relative;
z-index: 4;
align-self: center;
width: min(100%, 1040px);
display: grid;
}

.dl-menu-index__link,
.dl-menu__inner > a {
position: relative;
counter-increment: dl-menu-item;
min-height: clamp(78px, 12svh, 142px);
padding: clamp(12px, 1.4vw, 24px) 0;
display: grid;
grid-template-columns:
clamp(38px, 4.5vw, 76px)
minmax(0, 1fr)
minmax(132px, .42fr)
28px;
align-items: center;
column-gap: clamp(12px, 1.8vw, 32px);
border-top: 1px solid rgba(246, 242, 232, .15);
font-family: var(--dl-display);
font-size: clamp(3.5rem, 8vw, 9.5rem);
font-weight: 710;
font-variation-settings: "wdth" 54, "wght" 710;
line-height: .72;
letter-spacing: -.055em;
text-transform: uppercase;
transition:
color 320ms ease,
padding-left 520ms var(--dl-ease),
font-variation-settings 520ms var(--dl-ease);
}

.dl-menu-index__link:last-child,
.dl-menu__inner > a:last-child {
border-bottom: 1px solid rgba(246, 242, 232, .15);
}

.dl-menu__inner > a::before {
content: counter(dl-menu-item, decimal-leading-zero);
color: var(--dl-gold-light);
font-family: var(--dl-programme);
font-size: .68rem;
font-weight: 700;
line-height: 1;
letter-spacing: .12em;
}

.dl-menu__inner > a::after {
content: "↗";
justify-self: end;
color: var(--dl-gold-light);
font-family: var(--dl-programme);
font-size: 1rem;
letter-spacing: 0;
}

.dl-menu-index__number {
color: var(--dl-gold-light);
font-family: var(--dl-programme);
font-size: clamp(.62rem, .72vw, .78rem);
font-weight: 700;
line-height: 1;
letter-spacing: .12em;
}

.dl-menu-index__word {
min-width: 0;
font: inherit;
color: inherit;
}

.dl-menu-index__description {
align-self: center;
color: var(--dl-smoke);
font-family: var(--dl-programme);
font-size: clamp(.58rem, .64vw, .7rem);
font-weight: 650;
font-variation-settings: normal;
line-height: 1.35;
letter-spacing: .1em;
text-transform: uppercase;
}

.dl-menu-index__arrow {
justify-self: end;
color: var(--dl-gold-light);
font-family: var(--dl-programme);
font-size: clamp(.8rem, 1vw, 1rem);
font-variation-settings: normal;
letter-spacing: 0;
transform: translate(-4px, 4px);
transition: transform 420ms var(--dl-ease);
}

.dl-menu-index__link::after {
content: "";
position: absolute;
z-index: -1;
inset: 0;
background:
linear-gradient(
90deg,
rgba(201, 142, 36, .18),
rgba(201, 142, 36, .035) 48%,
transparent 82%
);
transform: scaleX(0);
transform-origin: left center;
transition: transform 520ms var(--dl-ease);
}

.dl-menu-index__link:hover,
.dl-menu-index__link:focus-visible,
.dl-menu__inner > a:hover,
.dl-menu__inner > a:focus-visible {
color: var(--dl-gold-pale);
padding-left: clamp(8px, 1.3vw, 22px);
font-variation-settings: "wdth" 68, "wght" 710;
}

.dl-menu-index__link:hover::after,
.dl-menu-index__link:focus-visible::after {
transform: scaleX(1);
}

.dl-menu-index__link:hover .dl-menu-index__arrow,
.dl-menu-index__link:focus-visible .dl-menu-index__arrow {
transform: translate(0, 0);
}

.dl-menu-index__aperture {
position: absolute;
z-index: 1;
top: 17%;
right: 1%;
bottom: 12%;
width: min(34vw, 620px);
margin: 0;
overflow: hidden;
opacity: .18;
filter: saturate(.62) contrast(1.14) brightness(.48);
pointer-events: none;
}

.dl-menu-index__aperture::after {
content: "";
position: absolute;
inset: 0;
background:
linear-gradient(
90deg,
#050505 0%,
transparent 34%,
rgba(5, 5, 5, .16) 70%,
#050505 100%
),
linear-gradient(
180deg,
#050505 0%,
transparent 24%,
transparent 76%,
#050505 100%
);
}

.dl-menu-index__aperture img {
width: 100%;
height: 100%;
object-fit: cover;
}

/* COMPACT TYPOGRAPHY: NO COLLIDING STATES */

.dl-home {
--dl-gold-ink:
linear-gradient(
108deg,
#5a3509 0%,
#a86b18 17%,
#e1b44a 35%,
#ffe5a0 49%,
#d49327 66%,
#6b400d 100%
);
--dl-hairline: rgba(246, 242, 232, .17);
--dl-hairline-dark: rgba(7, 7, 7, .16);
}

/* A real icon box: inline SVGs must never inherit intrinsic size. */

.dl-social-mark {
position: relative;
width: 24px;
height: 24px;
min-width: 24px;
display: inline-grid;
place-items: center;
color: currentColor;
overflow: hidden;
}

.dl-social-mark svg {
width: 100%;
height: 100%;
display: block;
fill: none;
stroke: currentColor;
stroke-width: 1.6;
vector-effect: non-scaling-stroke;
}

/* THREE-BEAT MENU MARK
Long / short / medium beats resolve into one exact close mark. */

.dl-header__menu-toggle {
position: relative;
isolation: isolate;
width: 48px;
height: 48px;
padding: 0;
display: none;
place-items: center;
overflow: visible;
border: 0;
border-radius: 0;
background: transparent;
color: var(--dl-bone);
cursor: pointer;
opacity: 1;
-webkit-tap-highlight-color: transparent;
backdrop-filter: none;
-webkit-backdrop-filter: none;
transition: color 260ms ease;
}

.dl-header__menu-toggle::before,
.dl-header__menu-toggle::after,
.dl-header__menu-toggle > span[aria-hidden="true"] {
content: "";
position: absolute;
z-index: 2;
left: 50%;
height: 2px;
display: block;
overflow: visible;
border: 0;
background: currentColor;
color: transparent;
font-size: 0;
line-height: 0;
transform-origin: 50% 50%;
transition:
top 420ms var(--dl-ease),
width 420ms var(--dl-ease),
opacity 220ms ease,
transform 420ms var(--dl-ease),
background-color 260ms ease;
}

.dl-header__menu-toggle::before {
top: 15px;
width: 30px;
transform: translateX(-50%);
}

.dl-header__menu-toggle > span[aria-hidden="true"] {
top: 23px;
width: 15px;
height: 2px;
background: var(--dl-gold-light);
transform: translateX(-12%);
}

.dl-header__menu-toggle::after {
top: 31px;
width: 23px;
transform: translateX(-50%);
}

.dl-header__menu-toggle:hover,
.dl-header__menu-toggle:focus-visible {
color: var(--dl-gold-pale);
opacity: 1;
transform: none;
}

.dl-header__menu-toggle[aria-expanded="true"]::before {
top: 23px;
width: 28px;
transform: translateX(-50%) rotate(45deg);
}

.dl-header__menu-toggle[aria-expanded="true"] > span[aria-hidden="true"] {
top: 23px;
width: 0;
opacity: 0;
transform: translateX(-50%) scaleX(0);
}

.dl-header__menu-toggle[aria-expanded="true"]::after {
top: 23px;
width: 28px;
background: var(--dl-gold-light);
transform: translateX(-50%) rotate(-45deg);
}

/* NIGHT INDEX
Navigation is content, not a decorative full-screen effect. */

body.dl-no-scroll {
overflow: hidden !important;
overscroll-behavior: none;
}

body.dl-no-scroll .dl-header {
z-index: 1100;
color: var(--dl-bone);
mix-blend-mode: normal;
}

.dl-menu {
position: fixed;
z-index: 1000;
inset: 0;
width: 100%;
height: 100svh;
min-height: 100svh;
padding:
max(22px, env(safe-area-inset-top))
var(--dl-gutter)
max(22px, env(safe-area-inset-bottom));
display: grid;
grid-template-columns: minmax(0, 1fr);
grid-template-rows: auto minmax(0, 1fr) auto auto;
gap: clamp(16px, 2.1vh, 28px);
overflow-x: hidden;
overflow-y: auto;
overscroll-behavior: contain;
visibility: hidden;
opacity: 0;
pointer-events: none;
background:
radial-gradient(
ellipse at 78% 18%,
rgba(201, 142, 36, .09),
transparent 34%
),
#050505;
color: var(--dl-bone);
-webkit-overflow-scrolling: touch;
transition:
opacity 280ms ease,
visibility 0s linear 280ms;
}

.dl-menu.is-open {
display: grid;
visibility: visible;
opacity: 1;
pointer-events: auto;
transition-delay: 0s;
}

.dl-menu__mast,
.dl-menu__foot {
width: min(100%, var(--dl-max));
margin-inline: auto;
display: flex;
align-items: center;
justify-content: space-between;
gap: 20px;
color: var(--dl-smoke);
font-size: clamp(.58rem, .65vw, .7rem);
}

.dl-menu__mast {
min-height: var(--dl-header-h);
padding-right: 68px;
border-top: 1px solid rgba(246, 242, 232, .2);
}

.dl-menu__mast > span:first-child {
color: var(--dl-gold-light);
}

.dl-menu__inner {
width: min(100%, var(--dl-max));
height: auto;
min-height: 0;
margin-inline: auto;
padding: 0;
display: grid;
align-self: center;
grid-template-columns: repeat(2, minmax(0, 1fr));
grid-auto-rows: minmax(88px, 1fr);
gap: 0 clamp(28px, 5vw, 96px);
counter-reset: dl-menu-item;
}

.dl-menu__inner > a {
position: relative;
min-width: 0;
min-height: clamp(92px, 15vh, 154px);
padding: clamp(16px, 2.2vh, 26px) 34px clamp(16px, 2.2vh, 26px) 44px;
display: grid;
grid-template-columns: minmax(0, 1fr) auto;
grid-template-rows: auto auto;
align-content: center;
align-items: end;
gap: 8px 18px;
border-top: 1px solid var(--dl-hairline);
color: var(--dl-bone);
font-family: var(--dl-display);
font-size: clamp(3.6rem, 6.4vw, 8.2rem);
font-weight: 710;
font-variation-settings: "wdth" 53, "wght" 710;
line-height: .72;
letter-spacing: -.055em;
text-transform: uppercase;
transition:
color 300ms ease,
font-variation-settings 460ms var(--dl-ease);
}

.dl-menu__inner > a:nth-last-child(-n + 2) {
border-bottom: 1px solid var(--dl-hairline);
}

.dl-menu__inner > a::before {
content: counter(dl-menu-item, decimal-leading-zero);
position: absolute;
top: 22px;
left: 0;
color: var(--dl-gold-light);
font-family: var(--dl-programme);
font-size: .62rem;
font-weight: 700;
line-height: 1;
letter-spacing: .12em;
}

.dl-menu__inner > a::after {
content: "↗";
grid-column: 2;
grid-row: 1 / 3;
align-self: center;
color: var(--dl-gold-light);
font-family: var(--dl-programme);
font-size: .92rem;
letter-spacing: 0;
transform: translate(-4px, 4px);
transition: transform 360ms var(--dl-ease);
}

.dl-menu__inner > a > span {
grid-column: 1;
grid-row: 1;
min-width: 0;
display: block;
white-space: nowrap;
}

.dl-menu__inner > a > small {
grid-column: 1;
grid-row: 2;
color: var(--dl-smoke);
font-family: var(--dl-programme);
font-size: clamp(.56rem, .62vw, .68rem);
font-weight: 650;
font-variation-settings: normal;
line-height: 1.35;
letter-spacing: .1em;
text-transform: uppercase;
}

.dl-menu__inner > a:hover,
.dl-menu__inner > a:focus-visible {
padding-left: 44px;
color: var(--dl-gold-pale);
font-variation-settings: "wdth" 64, "wght" 710;
}

.dl-menu__inner > a:hover::after,
.dl-menu__inner > a:focus-visible::after {
transform: translate(0, 0);
}

.dl-menu__socials {
width: min(100%, var(--dl-max));
margin-inline: auto;
display: grid;
grid-template-columns: minmax(150px, .45fr) minmax(0, 1.55fr);
align-items: center;
gap: 20px;
}

.dl-menu__socials-label {
color: var(--dl-smoke);
font-size: .6rem;
}

.dl-menu__socials ul,
.dl-social-ledger__links {
min-width: 0;
margin: 0;
padding: 0;
list-style: none;
}

.dl-menu__socials ul {
display: grid;
grid-template-columns: repeat(3, minmax(0, 1fr));
border-top: 1px solid var(--dl-hairline);
border-bottom: 1px solid var(--dl-hairline);
}

.dl-menu__socials li + li {
border-left: 1px solid var(--dl-hairline);
}

.dl-menu__socials a {
min-height: 52px;
padding: 10px 14px;
display: grid;
grid-template-columns: 22px minmax(0, 1fr) auto;
align-items: center;
gap: 10px;
font-size: .68rem;
font-weight: 700;
letter-spacing: .08em;
text-transform: uppercase;
}

.dl-menu__socials .dl-social-mark {
width: 19px;
height: 19px;
min-width: 19px;
color: var(--dl-gold-light);
}

.dl-menu__socials a > span:last-child {
color: var(--dl-gold-light);
}

.dl-menu__foot {
min-height: 26px;
}

/* EVENT IMAGE CONTRACT */

.dl-next-night__media,
.dl-programme-browser__media,
.dl-event-row__mobile-media,
.dl-archive-item__media {
aspect-ratio: 4 / 5;
}

.dl-next-night__media img,
.dl-programme-browser__media img,
.dl-event-row__mobile-media img,
.dl-archive-item__media > img {
width: 100%;
height: 100%;
object-fit: cover;
}

/* VISIT / SOCIAL LEDGER */

.dl-visit__shell {
min-height: 0;
}

.dl-social-ledger {
position: relative;
z-index: 4;
width: 100%;
margin-top: clamp(62px, 7vw, 124px);
padding-top: clamp(24px, 2vw, 34px);
display: grid;
grid-template-columns: minmax(220px, .72fr) minmax(0, 1.55fr);
gap: clamp(34px, 7vw, 132px);
border-top: 1px solid var(--dl-hairline);
}

.dl-social-ledger__head h3 {
max-width: 10ch;
margin: 0;
color: var(--dl-bone);
font-family: var(--dl-display);
font-size: clamp(2.35rem, 4.3vw, 5.7rem);
font-weight: 690;
font-variation-settings: "wdth" 54, "wght" 690;
line-height: .82;
letter-spacing: -.04em;
text-transform: uppercase;
}

.dl-social-ledger__head .dl-copy {
max-width: 34ch;
margin-top: 24px;
color: var(--dl-smoke);
font-size: clamp(.9rem, 1vw, 1.05rem);
}

.dl-social-ledger__links {
border-top: 1px solid var(--dl-hairline);
}

.dl-social-ledger__links li {
border-bottom: 1px solid var(--dl-hairline);
}

.dl-social-ledger__links a {
min-height: clamp(68px, 6vw, 92px);
padding: 14px 0;
display: grid;
grid-template-columns: 28px minmax(100px, .55fr) minmax(0, 1fr) 22px;
align-items: center;
gap: clamp(12px, 2vw, 30px);
color: var(--dl-bone);
transition: color 280ms ease;
}

.dl-social-ledger__links .dl-social-mark {
color: var(--dl-gold-light);
}

.dl-social-ledger__name {
font-family: var(--dl-display);
font-size: clamp(1.35rem, 2.1vw, 2.7rem);
font-weight: 650;
font-variation-settings: "wdth" 58, "wght" 650;
line-height: .9;
letter-spacing: -.025em;
text-transform: uppercase;
}

.dl-social-ledger__detail {
color: var(--dl-smoke);
font-size: clamp(.55rem, .62vw, .68rem);
}

.dl-social-ledger__arrow {
justify-self: end;
color: var(--dl-gold-light);
transform: translate(-4px, 4px);
transition: transform 360ms var(--dl-ease);
}

.dl-social-ledger__links a:hover,
.dl-social-ledger__links a:focus-visible {
color: var(--dl-gold-pale);
}

.dl-social-ledger__links a:hover .dl-social-ledger__arrow,
.dl-social-ledger__links a:focus-visible .dl-social-ledger__arrow {
transform: translate(0, 0);
}

/* ENDING / MAKER CREDIT */

.dl-ending {
min-height: 100svh;
grid-template-rows: auto minmax(0, 1fr) auto auto;
row-gap: clamp(14px, 2vh, 26px);
}

.dl-ending__word {
align-self: center;
}

.dl-maker {
position: relative;
z-index: 5;
min-height: 58px;
padding-top: 16px;
display: grid;
grid-template-columns: auto minmax(120px, .48fr) minmax(0, 1fr) auto;
align-items: center;
gap: clamp(14px, 2.4vw, 38px);
border-top: 1px solid var(--dl-hairline);
color: var(--dl-bone);
}

.dl-maker__intro,
.dl-maker__services {
color: var(--dl-smoke);
font-size: clamp(.54rem, .62vw, .68rem);
}

.dl-maker__name {
font-family: var(--dl-display);
font-size: clamp(1.55rem, 2.6vw, 3.45rem);
font-weight: 680;
font-variation-settings: "wdth" 58, "wght" 680;
line-height: .86;
letter-spacing: -.03em;
text-transform: uppercase;
}

.dl-maker__arrow {
color: var(--dl-gold-light);
font-size: 1rem;
}

/* DESKTOP RHYTHM CORRECTIONS */

/* TABLET + TOUCH COMPOSITION
Text is readable without waiting for a ScrollTrigger state. */

/* MOBILE LANDSCAPE + PORTRAIT */

/* Short phones need a scrollable index, never compressed overlap. */

/* Phone landscape is a compact editorial spread. */

.dl-maker {
min-height: 50px;
padding-top: 14px;
grid-template-columns: auto auto minmax(0, 1fr) auto;
gap: clamp(10px, 1.5vw, 24px);
border-top-color: rgba(246, 242, 232, .14);
}

.dl-maker__intro,
.dl-maker__services {
color: rgba(182, 176, 166, .74);
font-size: clamp(.49rem, .55vw, .61rem);
}

.dl-maker__name {
width: max-content;
font-size: clamp(1.3rem, 1.8vw, 2.25rem);
font-variation-settings: "wdth" 60, "wght" 680;
}

.dl-maker__services {
justify-self: end;
max-width: 58ch;
text-align: right;
}

/* ==========================================================
RESPONSIVE CONTRACT
Broad layouts first; device refinements and accessibility last.
========================================================== */

@media (min-width: 1025px) {
.dl-archive {
padding-bottom: clamp(90px, 8vw, 150px);
}

.dl-archive__stream {
row-gap: clamp(72px, 8vw, 142px);
}

.dl-visit {
min-height: auto;
padding-bottom: clamp(72px, 6vw, 108px);
}

.dl-breath {
min-height: 92svh;
padding: clamp(82px, 6vw, 112px) 0;
}

.dl-breath__shell {
min-height: 70svh;
}

.dl-breath__media {
top: 8%;
right: 16%;
bottom: 8%;
left: 36%;
}

.dl-breath__line {
font-size: clamp(4.7rem, 8.15vw, 9.8rem);
line-height: .74;
}

.dl-breath__line--one {
top: 2%;
}

.dl-breath__line--two {
top: 40%;
right: 5%;
}

.dl-breath__line--three {
right: 0;
bottom: 0;
max-width: 8.4ch;
}

.dl-memory-bridge {
min-height: 58svh;
padding: clamp(76px, 6vw, 108px) 0;
}

.dl-memory-bridge__shell {
min-height: 38svh;
}

.dl-archive {
padding:
clamp(82px, 6vw, 112px)
0
clamp(88px, 6.5vw, 124px);
}

.dl-archive__stream {
row-gap: clamp(54px, 5.4vw, 104px);
}
}

@media (max-width: 1180px) and (min-width: 768px) {
.dl-hero__media {
right: 12vw;
left: 25vw;
}

.dl-next-night__shell {
grid-template-columns: repeat(12, minmax(0, 1fr));
gap: 18px;
}

.dl-next-night__content {
grid-column: 6 / 13;
margin-left: 0;
}

.dl-next-night__title {
font-size: clamp(4.4rem, 7.8vw, 7.2rem);
}

.dl-next-night__media {
grid-column: 1 / 6;
justify-self: end;
width: min(
38vw,
calc(68svh * .8)
);
}

.dl-programme-browser,
.dl-programme-scene.is-single-event
.dl-programme-browser {
grid-template-columns:
minmax(0, 1fr)
minmax(240px, .75fr);
gap: 30px;
}

.dl-event-row {
grid-template-columns:
4.75rem
minmax(0, 1fr)
1.5rem;
grid-template-rows: auto auto auto;
grid-template-areas:
"date meta arrow"
"date title title"
"date time time";
gap: 8px 12px;
}

.dl-event-row__date {
grid-area: date;
font-size: clamp(3.5rem, 5.5vw, 4.5rem);
}

.dl-event-row__meta {
grid-area: meta;
}

.dl-event-row__title {
grid-area: title;
font-size: clamp(1.45rem, 2.5vw, 2rem);
}

.dl-event-row__time {
grid-area: time;
}

.dl-event-row__arrow {
grid-area: arrow;
}

.dl-archive-item:nth-child(odd) {
grid-column: 1 / 7;
}

.dl-archive-item:nth-child(even) {
grid-column: 7 / 13;
}

.dl-visit__address {
grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr);
}
}

@media (max-height: 780px) and (min-width: 768px) {
.dl-hero__title-dream,
.dl-hero__title-land {
font-size: clamp(8rem, 20vw, 19rem);
}

.dl-next-night,
.dl-next-night__shell {
min-height: 100svh;
}

.dl-next-night__media {
width: min(31vw, calc(64svh * .8), 510px);
}

.dl-next-night__content {
padding-top: 70px;
}

.dl-next-night__title {
font-size: clamp(4rem, 7.2vw, 7.2rem);
}

.dl-breath__line {
font-size: clamp(4.4rem, 8.7vw, 8rem);
}

.dl-ending__word {
font-size: clamp(6rem, 13.5vw, 13rem);
}
}

@media (max-width: 1024px) {
.dl-breath {
min-height: auto;
padding: clamp(62px, 8vw, 92px) 0;
}

.dl-breath__shell {
min-height: clamp(690px, 86svh, 900px);
display: grid;
grid-template-columns: minmax(0, 1fr);
grid-template-rows: min-content minmax(220px, 1fr) min-content;
align-items: start;
isolation: isolate;
}

.dl-breath__media {
position: absolute;
z-index: 1;
top: 12%;
right: -4%;
bottom: 12%;
left: 23%;
}

.dl-breath__line {
position: relative;
z-index: 4;
top: auto;
right: auto;
bottom: auto;
left: auto;
width: auto;
max-width: 7.2ch;
margin: 0;
font-size: clamp(3.15rem, 10.4vw, 6.4rem);
line-height: .78;
letter-spacing: -.045em;
white-space: normal;
overflow-wrap: normal;
word-break: normal;
}

.dl-breath__line--one {
grid-row: 1;
justify-self: start;
}

.dl-breath__line--two {
grid-row: 2;
align-self: center;
justify-self: start;
margin: 0;
}

.dl-breath__line--three {
grid-row: 3;
align-self: end;
justify-self: end;
width: min(100%, 7.4ch);
max-width: 7.4ch;
text-align: right;
white-space: normal;
}

.dl-breath__line--three em {
display: block;
white-space: normal;
}

.dl-visit__address {
grid-template-columns: minmax(0, 1fr);
align-items: start;
row-gap: 0;
}

.dl-visit__number,
.dl-visit__street,
.dl-visit__city {
position: relative;
top: auto;
right: auto;
bottom: auto;
left: auto;
grid-column: 1;
}

.dl-visit__number {
font-size: clamp(5rem, 20vw, 9.5rem);
line-height: .78;
}

.dl-visit__street {
margin-top: 2px;
font-size: clamp(6rem, 24vw, 11.5rem);
line-height: .7;
}

.dl-visit__city {
margin-top: 18px;
}

.dl-visit__utility {
width: min(100%, 560px);
margin-top: 34px;
margin-left: 0;
}

.dl-header__nav {
display: none;
}

.dl-social-ledger {
grid-template-columns: minmax(190px, .7fr) minmax(0, 1.3fr);
gap: clamp(28px, 5vw, 64px);
}

.dl-ending__word {
perspective: none ;
}

.dl-ending__word > [data-dl-ending-word] {
transform-style: flat ;
}

.dl-header {
color: var(--dl-bone);
mix-blend-mode: difference;
}

.dl-hero,
.dl-next-night,
.dl-programme-scene,
.dl-breath,
.dl-memory-bridge,
.dl-archive,
.dl-afterglow,
.dl-list,
.dl-visit,
.dl-ending {
content-visibility: visible;
}

/* Motion remains available to imagery, never to the reading order. */
.dl-breath__media,
.dl-archive-item__media,
.dl-archive-item__echo,
.dl-programme-browser__media {
backface-visibility: hidden;
transform: translateZ(0);
}

/* BREATH: three separate statements, one calm composition. */
.dl-breath {
min-height: auto;
padding: clamp(68px, 9vw, 96px) 0;
}

.dl-breath__shell {
min-height: clamp(660px, 84svh, 880px);
display: grid;
grid-template-columns: minmax(0, 1fr);
grid-template-rows: min-content minmax(210px, 1fr) min-content;
align-items: start;
isolation: isolate;
}

.dl-breath__media {
position: absolute;
z-index: 1;
top: 13%;
right: -3%;
bottom: 13%;
left: 24%;
overflow: hidden;
opacity: .72;
clip-path: inset(0);
}

.dl-breath__media::after {
background:
linear-gradient(90deg, var(--dl-stage), transparent 34%),
linear-gradient(180deg, var(--dl-stage), transparent 24%, transparent 76%, var(--dl-stage));
}

.dl-breath__line {
position: relative;
z-index: 4;
inset: auto;
width: auto;
margin: 0;
font-size: clamp(3.4rem, 10.2vw, 6.35rem);
line-height: .78;
letter-spacing: -.047em;
white-space: normal;
overflow-wrap: normal;
word-break: normal;
}

.dl-breath__line--one {
grid-row: 1;
justify-self: start;
max-width: 6.7ch;
}

.dl-breath__line--two {
grid-row: 2;
align-self: center;
justify-self: start;
max-width: 6.2ch;
}

.dl-breath__line--three {
grid-row: 3;
align-self: end;
justify-self: end;
width: min(100%, 7.2ch);
max-width: 7.2ch;
text-align: right;
}

.dl-breath__line--three em {
display: block;
white-space: normal;
}

/* Ending is a resolved sign on touch devices, not a 3D demo. */
.dl-ending__word {
perspective: none ;
}

.dl-ending__word > [data-dl-ending-word] {
transform-style: flat ;
}

.dl-ending__word {
perspective: none ;
}

.dl-ending__word > [data-dl-ending-word] {
transform-style: flat ;
}

.dl-ending {
min-height: clamp(680px, 86svh, 900px);
grid-template-rows: auto minmax(260px, 1fr) auto auto;
}

.dl-ending__word {
font-size: clamp(5.5rem, 14.8vw, 9.5rem) ;
perspective: none ;
}

.dl-ending__word > [data-dl-ending-word] {
width: auto;
max-width: 100%;
transform-style: flat ;
}

/* COMPACT MOTION OWNERSHIP
CSS supplies the readable layout. dreamland-home.js may own opacity and
transform after successful GSAP setup; CSS never force-resets them. */
.dl-intro {
display: none;
}

.dl-hero,
.dl-next-night,
.dl-programme-scene,
.dl-breath,
.dl-memory-bridge,
.dl-archive,
.dl-afterglow,
.dl-list,
.dl-visit,
.dl-ending {
content-visibility: visible;
}

.dl-breath__media,
.dl-programme-browser__media,
.dl-archive-item__media,
.dl-archive-item__echo {
backface-visibility: hidden;
}

/* NIGHT INDEX CONTROL
Two unequal strokes suggest the venue threshold while remaining
immediately recognisable as navigation. The 48px hit area never moves. */
.dl-header__menu-toggle {
position: relative;
width: 48px;
height: 48px;
display: grid;
place-items: center;
overflow: visible;
border: 0;
border-radius: 0;
background: transparent;
color: var(--dl-bone);
box-shadow: none;
cursor: pointer;
}

.dl-header__menu-toggle > span[aria-hidden="true"] {
position: absolute;
width: 1px;
height: 1px;
overflow: hidden;
clip: rect(0, 0, 0, 0);
white-space: nowrap;
opacity: 0;
}

.dl-header__menu-toggle::before,
.dl-header__menu-toggle::after {
content: "";
position: absolute;
left: 50%;
height: 2px;
transform-origin: 50% 50%;
transition:
top 280ms var(--dl-ease),
width 280ms var(--dl-ease),
transform 380ms var(--dl-ease),
background-color 240ms ease;
}

.dl-header__menu-toggle::before {
top: 18px;
width: 27px;
background: var(--dl-bone);
transform: translateX(-50%);
}

.dl-header__menu-toggle::after {
top: 28px;
width: 18px;
background: var(--dl-gold-light);
transform: translateX(-50%);
}

.dl-header__menu-toggle[aria-expanded="true"]::before,
.dl-header__menu-toggle[aria-expanded="true"]::after {
top: 23px;
width: 27px;
}

.dl-header__menu-toggle[aria-expanded="true"]::before {
transform: translateX(-50%) rotate(45deg);
}

.dl-header__menu-toggle[aria-expanded="true"]::after {
background: var(--dl-bone);
transform: translateX(-50%) rotate(-45deg);
}
}

@media (max-width: 767px) {
.dl-home {
--dl-gutter: 20px;
--dl-header-h: 64px;
}

.dl-grid {
grid-template-columns: repeat(4, minmax(0, 1fr));
column-gap: 12px;
}

.dl-header__nav {
display: none;
}

.dl-intro__word > span {
font-size: 14.6vw;
}

.dl-intro__meta,
.dl-intro__footer {
align-items: flex-start;
gap: 14px;
}

.dl-hero__title-dream {
top: 15svh;
font-size: 28vw;
}

.dl-hero__title-land {
right: 14px;
bottom: 14svh;
font-size: 30vw;
}

.dl-hero__media {
top: 22svh;
right: 18px;
bottom: 19svh;
left: 20vw;
}

.dl-hero__location {
top: auto;
bottom: 5svh;
}

.dl-hero__programme {
top: 7.5svh;
}

.dl-hero__next {
display: none;
}

.dl-next-night {
min-height: auto;
margin-top: 0;
padding-top: 0;
}

.dl-next-night__shell {
min-height: auto;
display: flex;
flex-direction: column;
align-items: stretch;
gap: 28px;
padding: 92px 0 76px;
}

.dl-next-night__date {
top: 78px;
right: 0;
}

.dl-next-night__number {
font-size: 17vw;
}

.dl-next-night__month {
margin-bottom: 16px;
}

.dl-next-night__label {
top: 42px;
}

.dl-next-night__content {
order: 1;
margin-left: 0;
padding-top: 66px;
}

.dl-next-night__title {
max-width: none;
font-size: clamp(3.55rem, 15.8vw, 6.1rem);
}

.dl-next-night__title span:nth-child(2) {
margin-left: 4vw;
}

.dl-next-night__media {
order: 2;
width: min(82vw, 420px);
align-self: flex-start;
}

.dl-next-night__utility {
align-items: flex-start;
flex-direction: column;
gap: 8px;
}

.dl-programme-scene {
padding: 72px 0 76px;
}

.dl-programme-scene__head {
margin-bottom: 42px;
}

.dl-programme-scene__title {
width: 100%;
font-size: 15.8vw;
}

.dl-programme-browser,
.dl-programme-scene.is-single-event
.dl-programme-browser {
display: block;
}

.dl-programme-browser__portal {
display: none;
}

.dl-programme-browser__list {
padding-left: 14px;
}

.dl-event-row::before {
left: -14px;
}

.dl-event-row,
.dl-programme-scene.is-single-event
.dl-event-row {
min-height: 0;
padding: 22px 0;
display: grid;
grid-template-columns:
3.7rem
minmax(0, 1fr)
1.5rem;
grid-template-rows:
auto
auto
auto
auto;
grid-template-areas:
"date meta arrow"
"date title title"
"date time time"
"media media media";
gap: 8px 12px;
align-content: start;
}

.dl-event-row__date {
grid-area: date;
padding-left: 2px;
font-size: 3.45rem;
}

.dl-event-row__meta {
grid-area: meta;
}

.dl-event-row__title {
grid-area: title;
}

.dl-event-row__time {
grid-area: time;
}

.dl-event-row__arrow {
grid-area: arrow;
}

.dl-event-row__title,
.dl-programme-scene.is-single-event
.dl-event-row__title {
font-size: clamp(1.45rem, 7vw, 2.1rem);
line-height: .96;
}

.dl-event-row.is-active
.dl-event-row__title {
transform: none;
}

.dl-event-row__mobile-media {
position: relative !important;
grid-area: media;
display: block;
width: min(72vw, 340px);
aspect-ratio: 4 / 5;
margin: 18px 0 2px auto;
overflow: hidden;
background: var(--dl-stage);
opacity: .72;
pointer-events: none;
transition: opacity 180ms ease;
}

.dl-event-row.is-active
.dl-event-row__mobile-media {
opacity: 1;
}

.dl-event-row__mobile-media img {
width: 100%;
height: 100%;
object-fit: cover;
object-position: var(--dl-row-focus, center);
}

.dl-breath {
min-height: 84svh;
padding: 66px 0;
}

.dl-breath__shell {
min-height: 74svh;
}

.dl-breath__media {
top: 16%;
right: 0;
bottom: 15%;
left: 14%;
}

.dl-breath__line {
font-size: 17vw;
}

.dl-breath__line--two {
top: 47%;
}

.dl-breath__line--three {
right: 0;
bottom: 3%;
left: auto;
max-width: 8ch;
}

.dl-memory-bridge {
min-height: auto;
padding: 84px 0 92px;
}

.dl-memory-bridge__shell {
width: calc(100% - 40px);
min-height: auto;
padding: 0;
}

.dl-memory-surface {
display: none;
}

.dl-memory-bridge__label,
.dl-memory-bridge__statement,
.dl-memory-bridge__copy {
grid-column: 1 / 5;
}

.dl-memory-bridge__statement {
margin-top: 0;
}

.dl-memory-bridge__title {
font-size: 15.2vw;
}

.dl-memory-bridge__copy {
margin: 34px 0 0;
padding: 0;
}

.dl-archive {
padding: 78px 0 92px;
}

.dl-archive__intro {
margin-bottom: 46px;
}

.dl-archive__title {
font-size: 15.8vw;
}

.dl-archive__stream {
grid-template-columns: repeat(4, minmax(0, 1fr));
gap: 54px 12px;
}

.dl-archive-item:nth-child(odd),
.dl-archive-item:nth-child(even) {
grid-column: 1 / 5;
width: 88%;
margin-top: 0;
padding-left: 0;
margin-left: 0;
margin-right: 0;
}

.dl-archive-item:nth-child(even) {
justify-self: end;
}

.dl-archive-item__title {
font-size: clamp(2.2rem, 10vw, 3.8rem);
}

.dl-afterglow {
min-height: 48svh;
padding: 68px 20px;
}

.dl-afterglow__copy {
font-size: 16vw;
}

.dl-list {
padding: 76px 0 84px;
}

.dl-list__label,
.dl-list__content {
grid-column: 1 / 5;
}

.dl-list__content {
display: block;
margin-top: 0;
}

.dl-list__title {
font-size: 15.2vw;
}

.dl-list__field {
grid-template-columns:
minmax(0, 1fr)
5.5rem;
}

.dl-list__field input,
.dl-list__field button {
min-height: 58px;
}

.dl-visit {
min-height: auto;
padding: 82px 0 76px;
}

.dl-visit__shell {
min-height: auto;
}

.dl-visit__address {
margin-top: 54px;
display: block;
}

.dl-visit__number {
display: block;
font-size: 24vw;
}

.dl-visit__street {
margin-top: 4px;
font-size: 29vw;
}

.dl-visit__city {
margin-top: 14px;
}

.dl-visit__utility {
width: 100%;
margin-top: 42px;
align-items: flex-start;
flex-direction: column;
gap: 16px;
}

.dl-ending {
min-height: 76svh;
padding: 24px 20px;
}

.dl-ending__word {
font-size: clamp(2.8rem, 16vw, 6.8rem);
letter-spacing: -.045em;
perspective: 900px;
}

.dl-ending__word > [data-dl-ending-word] {
width: 100%;
min-width: 0;
}

.dl-ending__top,
.dl-ending__bottom {
flex-wrap: wrap;
gap: 10px 18px;
font-size: .66rem;
}

.dl-menu__inner {
padding-top: calc(var(--dl-header-h) + 28px);
gap: 18px;
}

.dl-menu-index__head,
.dl-menu-index__footer {
font-size: .57rem;
}

.dl-menu-index__head span:last-child,
.dl-menu-index__footer span:last-child {
text-align: right;
}

.dl-menu-index__list {
align-self: center;
width: 100%;
}

.dl-menu-index__link,
.dl-menu__inner > a {
min-height: clamp(78px, 13.2svh, 114px);
grid-template-columns: 32px minmax(0, 1fr) 22px;
column-gap: 10px;
font-size: clamp(3.15rem, 15.5vw, 5.8rem);
line-height: .74;
}

.dl-menu-index__description {
display: none;
}

.dl-menu-index__arrow {
font-size: .82rem;
}

.dl-menu-index__aperture {
top: 20%;
right: -12%;
bottom: 12%;
width: 78vw;
opacity: .115;
}

.dl-menu-index__veil {
width: 56%;
}

.dl-breath__shell {
min-height: clamp(720px, 88svh, 840px);
grid-template-rows: min-content minmax(250px, 1fr) min-content;
}

.dl-breath__line {
font-size: clamp(3rem, 12.8vw, 4.65rem);
}

.dl-breath__line--three {
width: 6.9ch;
max-width: 6.9ch;
}

.dl-home {
--dl-gutter: max(20px, env(safe-area-inset-left));
--dl-header-h: 64px;
}

.dl-header {
right: max(20px, env(safe-area-inset-right));
left: max(20px, env(safe-area-inset-left));
height: var(--dl-header-h);
}

.dl-header__brand {
font-size: .64rem;
}

.dl-menu {
padding:
max(10px, env(safe-area-inset-top))
max(20px, env(safe-area-inset-right))
max(18px, env(safe-area-inset-bottom))
max(20px, env(safe-area-inset-left));
grid-template-rows: auto auto auto auto;
gap: 14px;
}

.dl-menu__mast {
min-height: 58px;
padding-right: 58px;
font-size: .54rem;
}

.dl-menu__inner {
align-self: start;
grid-template-columns: minmax(0, 1fr);
grid-auto-rows: auto;
}

.dl-menu__inner > a {
min-height: clamp(72px, 11.2vh, 94px);
padding: 12px 28px 12px 34px;
grid-template-columns: minmax(0, 1fr) auto;
font-size: clamp(2.75rem, 14.2vw, 4.9rem);
line-height: .74;
}

.dl-menu__inner > a:nth-last-child(-n + 2) {
border-bottom: 0;
}

.dl-menu__inner > a:last-child {
border-bottom: 1px solid var(--dl-hairline);
}

.dl-menu__inner > a::before {
top: 17px;
font-size: .55rem;
}

.dl-menu__inner > a > small {
max-width: 28ch;
font-size: .53rem;
white-space: normal;
}

.dl-menu__inner > a:hover,
.dl-menu__inner > a:focus-visible {
padding-left: 34px;
}

.dl-menu__socials {
grid-template-columns: minmax(0, 1fr);
gap: 8px;
}

.dl-menu__socials-label {
display: none;
}

.dl-menu__socials ul {
grid-template-columns: repeat(3, minmax(0, 1fr));
}

.dl-menu__socials a {
min-height: 48px;
padding: 8px 6px;
grid-template-columns: 18px minmax(0, 1fr);
gap: 7px;
font-size: .55rem;
}

.dl-menu__socials a > span:last-child {
display: none;
}

.dl-menu__socials .dl-social-mark {
width: 17px;
height: 17px;
min-width: 17px;
}

.dl-menu__foot {
min-height: 18px;
font-size: .5rem;
}

/* Hero type fits the physical viewport at every phone width. */

.dl-hero {
min-height: 100svh;
}

.dl-hero__title-dream,
.dl-hero__title-land {
width: auto;
max-width: calc(100% - 36px);
white-space: nowrap;
}

.dl-hero__title-dream {
top: 15svh;
right: 18px;
left: 18px;
font-size: min(27.2vw, 8.8rem);
line-height: .64;
}

.dl-hero__title-land {
right: 18px;
bottom: 12.5svh;
left: auto;
font-size: min(28.5vw, 9.2rem);
line-height: .64;
}

.dl-hero__media {
top: 22svh;
right: 18px;
bottom: 19svh;
left: 18vw;
}

.dl-hero__programme {
top: 76px;
right: 20px;
max-width: 16ch;
}

.dl-hero__location {
bottom: max(25px, 4svh);
left: 20px;
max-width: 16ch;
}

/* Next: one event, one 4:5 aperture, no title collision. */

.dl-next-night__shell {
gap: 26px;
padding: 78px 0 66px;
}

.dl-next-night__date {
top: 66px;
right: 0;
}

.dl-next-night__content {
padding-top: 52px;
}

.dl-next-night__title {
max-width: 9.4ch;
font-size: clamp(2.85rem, 13.2vw, 4.9rem);
line-height: .8;
}

.dl-next-night__title span:nth-child(2) {
margin-left: 0;
}

.dl-next-night__media {
width: min(78vw, 365px);
align-self: flex-end;
}

/* Upcoming: a programme sheet with one shared poster aperture. */

.dl-programme-scene {
min-height: auto;
padding: 58px 0 64px;
overflow: hidden;
}

.dl-programme-scene__head {
margin-bottom: 24px;
}

.dl-programme-scene__title {
max-width: 8.4ch;
font-size: clamp(2.9rem, 13vw, 4.8rem);
line-height: .8;
}

.dl-programme-browser,
.dl-programme-scene.is-single-event .dl-programme-browser {
min-height: 0;
display: block;
}

.dl-programme-browser__portal {
display: none !important;
}

.dl-programme-browser__list {
padding-left: 0;
}

.dl-event-row,
.dl-programme-scene.is-single-event .dl-event-row {
min-height: 0;
padding: 22px 0 25px;
grid-template-columns: 3.1rem minmax(0, 1fr) 1.1rem;
gap: 7px 10px;
border-top: 1px solid var(--dl-hairline-dark);
}

.dl-event-row:last-child {
border-bottom: 1px solid var(--dl-hairline-dark);
}

.dl-event-row::before {
content: none;
}

.dl-event-row__date {
padding-left: 0;
font-size: clamp(2.45rem, 10.8vw, 3.1rem);
}

.dl-event-row__title,
.dl-programme-scene.is-single-event .dl-event-row__title {
font-size: clamp(1.2rem, 5.4vw, 1.68rem);
line-height: .98;
}

.dl-event-row__mobile-media {
display: none;
}

.dl-event-row:first-child .dl-event-row__mobile-media {
width: min(76vw, 350px);
aspect-ratio: 4 / 5;
margin: 18px 0 4px auto;
display: block;
opacity: 1;
box-shadow:
0 0 0 1px rgba(7, 7, 7, .12),
0 18px 38px rgba(7, 7, 7, .1);
}

/* Breath and Memory are pauses, never overlapping title demos. */

.dl-breath {
min-height: auto;
padding: 66px 0 72px;
}

.dl-breath__shell {
min-height: clamp(620px, 82svh, 780px);
}

.dl-breath__line {
font-size: clamp(2.9rem, 12.5vw, 4.55rem);
}

.dl-memory-bridge {
min-height: auto;
padding: 66px 0 72px;
}

.dl-memory-bridge__title,
.dl-archive__title,
.dl-list__title {
max-width: 9ch;
font-size: clamp(2.9rem, 13vw, 4.8rem);
line-height: .8;
}

/* Archive: compact chronology, not six full-screen posters. */

.dl-archive {
min-height: auto;
padding: 64px 0 76px;
}

.dl-archive__intro {
margin-bottom: 36px;
}

.dl-archive__stream {
grid-template-columns: repeat(2, minmax(0, 1fr));
gap: 34px 12px;
}

.dl-archive-item:nth-child(odd),
.dl-archive-item:nth-child(even) {
grid-column: auto;
width: 100%;
margin: 0;
padding: 0;
justify-self: stretch;
}

.dl-archive-item:nth-child(3n + 1) {
grid-column: 1 / -1;
width: 78%;
}

.dl-archive-item:nth-child(3n + 1):nth-child(even) {
justify-self: end;
}

.dl-archive-item__echo {
display: none;
}

.dl-archive-item__title {
margin-top: 10px;
font-size: clamp(1.35rem, 6.2vw, 2rem);
line-height: .9;
}

.dl-archive-item__meta {
margin-top: 10px;
font-size: .54rem;
}

.dl-afterglow {
min-height: 40svh;
padding: 52px 20px;
}

.dl-afterglow__copy {
max-width: 8.6ch;
font-size: clamp(2.9rem, 13vw, 4.8rem);
line-height: .8;
}

.dl-list {
min-height: auto;
padding: 62px 0 68px;
}

.dl-list__field {
grid-template-columns: minmax(0, 1fr) 5.25rem;
}

.dl-list__field input,
.dl-list__field button {
min-height: 56px;
}

/* Visit and social ledger conclude the useful journey. */

.dl-visit {
min-height: auto;
padding: 62px 0 70px;
}

.dl-visit__address {
margin-top: 28px;
}

.dl-visit__number {
font-size: clamp(4.8rem, 20vw, 7.6rem);
line-height: .78;
}

.dl-visit__street {
margin-top: 2px;
font-size: clamp(5.8rem, 24vw, 9rem);
line-height: .7;
}

.dl-visit__utility {
margin-top: 34px;
}

.dl-social-ledger {
margin-top: 58px;
grid-template-columns: minmax(0, 1fr);
gap: 30px;
}

.dl-social-ledger__head h3 {
font-size: clamp(2.6rem, 11.8vw, 4.1rem);
}

.dl-social-ledger__links a {
min-height: 64px;
grid-template-columns: 24px minmax(0, 1fr) 18px;
gap: 12px;
}

.dl-social-ledger__detail {
display: none;
}

.dl-social-ledger__name {
font-size: clamp(1.35rem, 6.2vw, 1.85rem);
}

/* Ending resolves as a sign; no clipped mobile 3D state. */

.dl-ending {
min-height: 78svh;
padding:
24px
max(20px, env(safe-area-inset-right))
max(22px, env(safe-area-inset-bottom))
max(20px, env(safe-area-inset-left));
grid-template-rows: auto minmax(170px, 1fr) auto auto;
row-gap: 16px;
}

.dl-ending__word {
min-height: 0;
overflow: visible;
font-size: clamp(2.85rem, 13.7vw, 4.7rem) ;
line-height: .84;
letter-spacing: -.062em;
}

.dl-ending__word > [data-dl-ending-word] {
width: auto;
max-width: 100%;
white-space: nowrap;
}

.dl-ending__top,
.dl-ending__bottom {
gap: 9px 16px;
font-size: .61rem;
}

.dl-maker {
min-height: 0;
padding-top: 14px;
grid-template-columns: minmax(0, 1fr) auto;
gap: 6px 12px;
}

.dl-maker__intro,
.dl-maker__services {
grid-column: 1;
font-size: .5rem;
}

.dl-maker__name {
grid-column: 1;
font-size: clamp(1.55rem, 7.4vw, 2.25rem);
}

.dl-maker__arrow {
grid-column: 2;
grid-row: 1 / 4;
align-self: center;
}

.dl-home {
--dl-gutter: max(20px, env(safe-area-inset-left));
}

/* Header: a brand mark and one aperture control. */
.dl-header {
right: max(20px, env(safe-area-inset-right));
left: max(20px, env(safe-area-inset-left));
height: 64px;
}

.dl-header__brand {
font-size: .64rem;
letter-spacing: .09em;
}

/* Hero remains the first and only opening image on mobile. */
.dl-hero {
min-height: 100svh;
}

.dl-hero__title-dream {
top: 14svh;
right: 18px;
left: 18px;
font-size: clamp(6.4rem, 29vw, 9.6rem);
line-height: .62;
}

.dl-hero__title-land {
right: 16px;
bottom: 13svh;
left: auto;
font-size: clamp(6.7rem, 30vw, 10rem);
line-height: .62;
}

.dl-hero__media {
top: 22svh;
right: 18px;
bottom: 19svh;
left: 18vw;
}

.dl-hero__location {
bottom: max(28px, 4.5svh);
left: 20px;
max-width: 17ch;
}

.dl-hero__programme {
top: 76px;
right: 20px;
max-width: 17ch;
text-align: right;
}

/* Next is one poster and one clear information block. */
.dl-next-night__shell {
gap: 28px;
padding: 82px 0 70px;
}

.dl-next-night__content {
padding-top: 58px;
}

.dl-next-night__title {
max-width: 9.4ch;
font-size: clamp(3rem, 13.7vw, 5.2rem);
line-height: .8;
}

.dl-next-night__title span:nth-child(2) {
margin-left: 0;
}

.dl-next-night__media {
width: min(78vw, 365px);
aspect-ratio: 4 / 5;
align-self: flex-end;
}

.dl-next-night__media img {
width: 100%;
height: 100%;
object-fit: cover;
}

/* Upcoming is a programme sheet, not a sticky desktop portal. */
.dl-programme-scene {
min-height: auto;
padding: 58px 0 66px;
overflow: hidden;
}

.dl-programme-scene__head {
margin-bottom: 28px;
}

.dl-programme-scene__title {
max-width: 8.5ch;
font-size: clamp(3rem, 13.4vw, 5rem);
line-height: .8;
}

.dl-programme-browser,
.dl-programme-scene.is-single-event .dl-programme-browser {
min-height: 0;
display: block;
}

.dl-programme-browser__portal {
display: none !important;
}

.dl-programme-browser__list {
padding-left: 0;
}

.dl-event-row,
.dl-programme-scene.is-single-event .dl-event-row {
min-height: 0;
padding: 24px 0 29px;
grid-template-columns: 3.2rem minmax(0, 1fr) 1.2rem;
gap: 7px 11px;
border-top: 1px solid rgba(7, 7, 7, .15);
}

.dl-event-row:last-child {
border-bottom: 1px solid rgba(7, 7, 7, .15);
}

.dl-event-row::before {
content: none;
}

.dl-event-row__date {
padding-left: 0;
font-size: clamp(2.65rem, 11.5vw, 3.25rem);
}

.dl-event-row__title,
.dl-programme-scene.is-single-event .dl-event-row__title {
font-size: clamp(1.25rem, 5.7vw, 1.76rem);
line-height: .98;
}

.dl-event-row__mobile-media {
width: min(76vw, 350px);
aspect-ratio: 4 / 5;
margin: 17px 0 0 auto;
opacity: 1;
box-shadow:
0 0 0 1px rgba(7, 7, 7, .12),
0 18px 38px rgba(7, 7, 7, .1);
}

.dl-event-row:nth-child(even) .dl-event-row__mobile-media {
margin-right: auto;
margin-left: 0;
}

/* Compact vertical rhythm. */
.dl-memory-bridge,
.dl-archive,
.dl-list,
.dl-visit {
min-height: auto;
}

.dl-memory-bridge {
padding: 68px 0 74px;
}

.dl-archive {
padding: 66px 0 74px;
}

.dl-list {
padding: 64px 0 70px;
}

.dl-visit {
padding: 64px 0 66px;
}

.dl-memory-bridge__title,
.dl-archive__title,
.dl-list__title {
max-width: 9ch;
font-size: clamp(3rem, 13.4vw, 5rem);
line-height: .8;
}

.dl-archive__stream {
gap: 38px 12px;
}

.dl-archive-item:nth-child(odd),
.dl-archive-item:nth-child(even) {
width: 92%;
}

.dl-archive-item__media {
aspect-ratio: 4 / 5;
}

.dl-afterglow {
min-height: 42svh;
padding: 54px 20px;
}

.dl-afterglow__copy {
max-width: 8.7ch;
font-size: clamp(3rem, 13.4vw, 5rem);
line-height: .8;
}

.dl-visit__address {
margin-top: 30px;
}

.dl-visit__number {
font-size: clamp(5rem, 20vw, 8rem);
line-height: .78;
}

.dl-visit__street {
margin-top: 2px;
font-size: clamp(6rem, 24vw, 9.6rem);
line-height: .7;
}

/* Night Index: compact, useful, and fully contained. */
.dl-menu {
height: 100svh;
}

.dl-menu__inner {
padding:
calc(64px + 24px)
0
max(22px, env(safe-area-inset-bottom));
gap: 16px;
}

.dl-menu-index__link,
.dl-menu__inner > a {
min-height: clamp(72px, 12svh, 104px);
grid-template-columns: 30px minmax(0, 1fr) 20px;
column-gap: 9px;
font-size: clamp(2.85rem, 14.4vw, 5.2rem);
line-height: .75;
}

.dl-menu-index__description {
display: none;
}

.dl-menu-index__aperture {
right: -14%;
width: 80vw;
opacity: .1;
}

.dl-ending {
min-height: 66svh;
padding:
26px
max(20px, env(safe-area-inset-right))
max(22px, env(safe-area-inset-bottom))
max(20px, env(safe-area-inset-left));
}

.dl-ending__word {
align-self: center;
min-height: 0;
overflow: visible;
font-size: clamp(2.75rem, 13.9vw, 4.85rem) ;
line-height: .82;
letter-spacing: -.064em;
}

.dl-ending__word > [data-dl-ending-word] {
width: auto;
max-width: 100%;
white-space: nowrap;
}

.dl-menu {
height: 100svh;
min-height: 100svh;
padding:
max(10px, env(safe-area-inset-top))
max(20px, env(safe-area-inset-right))
max(18px, env(safe-area-inset-bottom))
max(20px, env(safe-area-inset-left));
display: grid;
grid-template-rows: auto auto auto auto;
gap: 14px;
overflow-x: hidden;
overflow-y: auto;
visibility: hidden;
opacity: 0;
pointer-events: none;
}

.dl-menu.is-open {
display: grid;
visibility: visible;
opacity: 1;
pointer-events: auto;
}

.dl-menu__mast {
min-height: 58px;
padding-right: 58px;
}

.dl-menu__inner {
width: 100%;
height: auto;
min-height: 0;
margin: 0;
padding: 0;
display: grid;
align-self: start;
grid-template-columns: minmax(0, 1fr);
grid-auto-rows: auto;
gap: 0;
}

.dl-menu__inner > a {
min-height: clamp(72px, 11.2vh, 94px);
padding: 12px 28px 12px 34px;
display: grid;
grid-template-columns: minmax(0, 1fr) auto;
grid-template-rows: auto auto;
align-content: center;
gap: 7px 12px;
font-size: clamp(2.75rem, 14.2vw, 4.9rem);
line-height: .74;
}

.dl-menu__inner > a:nth-last-child(-n + 2) {
border-bottom: 0;
}

.dl-menu__inner > a:last-child {
border-bottom: 1px solid var(--dl-hairline);
}

.dl-menu__inner > a::before {
top: 17px;
}

.dl-menu__inner > a::after {
grid-column: 2;
grid-row: 1 / 3;
}

.dl-menu__inner > a > span {
grid-column: 1;
grid-row: 1;
}

.dl-menu__inner > a > small {
grid-column: 1;
grid-row: 2;
max-width: 28ch;
display: block;
font-size: .53rem;
white-space: normal;
}

.dl-menu__socials {
display: grid;
grid-template-columns: minmax(0, 1fr);
gap: 8px;
}

.dl-menu__socials ul {
display: grid;
grid-template-columns: repeat(3, minmax(0, 1fr));
}

.dl-menu__foot {
display: flex;
}

.dl-hero__title-dream {
top: 15svh;
right: 18px;
left: 18px;
width: auto;
max-width: calc(100% - 36px);
font-size: min(27.2vw, 8.8rem);
line-height: .64;
white-space: nowrap;
}

.dl-hero__title-land {
right: 18px;
bottom: 12.5svh;
left: auto;
width: auto;
max-width: calc(100% - 36px);
font-size: min(28.5vw, 9.2rem);
line-height: .64;
white-space: nowrap;
}

.dl-next-night__title {
max-width: 9.4ch;
font-size: clamp(2.85rem, 13.2vw, 4.9rem);
line-height: .8;
}

.dl-next-night__title span:nth-child(2) {
margin-left: 0;
}

.dl-programme-scene {
min-height: auto;
padding: 58px 0 64px;
}

.dl-programme-browser,
.dl-programme-scene.is-single-event .dl-programme-browser {
min-height: 0;
display: block;
}

.dl-programme-browser__portal {
display: none !important;
}

.dl-event-row__mobile-media {
display: none;
}

.dl-event-row:first-child .dl-event-row__mobile-media {
width: min(76vw, 350px);
aspect-ratio: 4 / 5;
margin: 18px 0 4px auto;
display: block;
opacity: 1;
}

.dl-breath__shell {
min-height: clamp(620px, 82svh, 780px);
}

.dl-breath__line {
font-size: clamp(2.9rem, 12.5vw, 4.55rem);
}

.dl-archive {
min-height: auto;
padding: 64px 0 76px;
}

.dl-archive__stream {
grid-template-columns: repeat(2, minmax(0, 1fr));
gap: 34px 12px;
}

.dl-archive-item:nth-child(odd),
.dl-archive-item:nth-child(even) {
grid-column: auto;
width: 100%;
margin: 0;
padding: 0;
justify-self: stretch;
}

.dl-archive-item:nth-child(3n + 1) {
grid-column: 1 / -1;
width: 78%;
}

.dl-archive-item__echo {
display: none;
}

.dl-archive-item__title {
margin-top: 10px;
font-size: clamp(1.35rem, 6.2vw, 2rem);
line-height: .9;
}

.dl-social-ledger {
margin-top: 58px;
grid-template-columns: minmax(0, 1fr);
gap: 30px;
}

.dl-social-ledger__links a {
grid-template-columns: 24px minmax(0, 1fr) 18px;
}

.dl-social-ledger__detail {
display: none;
}

.dl-ending {
min-height: 78svh;
grid-template-rows: auto minmax(170px, 1fr) auto auto;
row-gap: 16px;
}

.dl-ending__word {
font-size: clamp(2.85rem, 13.7vw, 4.7rem) ;
line-height: .84;
}

.dl-maker {
display: grid;
grid-template-columns: minmax(0, 1fr) auto;
}

.dl-breath {
padding: 58px 0 64px;
}

.dl-breath__shell {
min-height: clamp(590px, 78svh, 720px);
grid-template-rows: min-content minmax(190px, 1fr) min-content;
}

.dl-breath__media {
top: 14%;
right: -8%;
bottom: 14%;
left: 28%;
}

.dl-breath__line {
font-size: clamp(2.7rem, 11.7vw, 4.2rem);
line-height: .79;
}

.dl-memory-bridge {
padding: 62px 0 68px;
}

.dl-archive {
padding: 62px 0 68px;
}

.dl-archive__stream {
gap: 30px 12px;
}

.dl-ending {
min-height: clamp(570px, 74svh, 700px);
padding:
24px
max(20px, env(safe-area-inset-right))
max(22px, env(safe-area-inset-bottom))
max(20px, env(safe-area-inset-left));
grid-template-rows: auto minmax(230px, 1fr) auto auto;
row-gap: 13px;
}

.dl-ending__word {
width: 100%;
min-height: 0;
font-size: clamp(4.15rem, 19.2vw, 6.25rem) ;
line-height: .8;
letter-spacing: -.066em;
}

.dl-ending__word > [data-dl-ending-word] {
width: auto;
max-width: 100%;
white-space: nowrap;
}

.dl-maker {
min-height: 0;
padding-top: 13px;
grid-template-columns: minmax(0, 1fr) auto;
grid-template-areas:
"intro arrow"
"name arrow"
"services services";
gap: 5px 12px;
}

.dl-maker__intro {
grid-area: intro;
font-size: .48rem;
}

.dl-maker__name {
grid-area: name;
font-size: clamp(1.45rem, 7vw, 2.1rem);
}

.dl-maker__services {
grid-area: services;
justify-self: start;
max-width: 44ch;
margin-top: 4px;
font-size: .47rem;
text-align: left;
}

.dl-maker__arrow {
grid-area: arrow;
}

.dl-menu__inner > a {
min-height: clamp(68px, 10.6svh, 88px);
padding: 11px 25px 11px 32px;
font-size: clamp(2.55rem, 13.1vw, 4.45rem);
}
}

@media (max-width: 477px) {
.dl-header {
right: max(20px, env(safe-area-inset-right));
left: max(20px, env(safe-area-inset-left));
}

.dl-menu__inner {
padding-right: max(20px, env(safe-area-inset-right));
padding-bottom: max(32px, env(safe-area-inset-bottom));
padding-left: max(20px, env(safe-area-inset-left));
}

.dl-event-row__mobile-media {
width: min(74vw, 332px);
}

.dl-ending {
min-height: 78svh;
padding-right: max(20px, env(safe-area-inset-right));
padding-bottom: max(24px, env(safe-area-inset-bottom));
padding-left: max(20px, env(safe-area-inset-left));
}

.dl-ending__word {
font-size: clamp(3.25rem, 17.2vw, 5.3rem);
letter-spacing: -.05em;
}

.dl-ending__top,
.dl-ending__bottom {
font-size: .68rem;
}
}

@media (max-width: 390px) {
.dl-menu-index__head span:last-child,
.dl-menu-index__footer span:last-child {
display: none;
}

.dl-menu-index__link,
.dl-menu__inner > a {
min-height: 82px;
font-size: clamp(2.85rem, 15vw, 4rem);
}

.dl-breath__line {
font-size: clamp(2.8rem, 12.2vw, 3.7rem);
}

.dl-hero__title-dream {
font-size: 27.5vw;
}

.dl-hero__title-land {
font-size: 28.5vw;
}

.dl-breath__shell {
min-height: 700px;
}

.dl-breath__line {
font-size: clamp(2.8rem, 12.2vw, 3.7rem);
}

.dl-menu-index__head span:last-child,
.dl-menu-index__footer span:last-child {
display: none;
}

.dl-ending {
min-height: clamp(540px, 72svh, 650px);
}

.dl-ending__word {
font-size: clamp(3.75rem, 18.8vw, 5.25rem) ;
}
}

@media (max-width: 380px) {
.dl-hero__title-dream {
font-size: 27vw;
}

.dl-hero__title-land {
font-size: 29vw;
}

.dl-next-night__title {
font-size: 16.5vw;
}

.dl-ending__word {
font-size: 16.5vw;
}
}

@media (max-width: 767px) and (orientation: portrait) {
.dl-home {
--dl-gutter: max(20px, env(safe-area-inset-left));
}

.dl-intro__word > span {
font-size: 13.8vw;
}

/* NEXT NIGHT */

.dl-next-night__shell {
gap: 24px;
padding-top: 84px;
padding-bottom: 68px;
}

.dl-next-night__content {
padding-top: 58px;
}

.dl-next-night__title {
max-width: 10ch;
font-size: clamp(3.15rem, 14.2vw, 5.6rem);
line-height: .79;
}

.dl-next-night__title span:nth-child(2) {
margin-left: 0;
}

.dl-next-night__media {
width: min(78vw, 374px);
align-self: flex-end;
}

/* UPCOMING NIGHTS */

.dl-programme-scene {
padding-top: 62px;
padding-bottom: 70px;
overflow: hidden;
}

.dl-programme-scene__head {
margin-bottom: 30px;
}

.dl-programme-scene__title {
width: 100%;
max-width: 8.7ch;
margin-top: 0;
font-size: clamp(3.1rem, 13.8vw, 5.25rem);
line-height: .8;
letter-spacing: -.05em;
overflow-wrap: normal;
word-break: normal;
}

.dl-programme-scene__title span {
font-variation-settings: "wdth" 88, "wght" 620;
}

.dl-programme-browser__list {
padding-left: 0;
}

.dl-event-row::before {
content: none;
display: none;
}

.dl-event-row,
.dl-programme-scene.is-single-event
.dl-event-row {
min-height: 0;
padding: 25px 0 30px;
grid-template-columns:
3.35rem
minmax(0, 1fr)
1.25rem;
gap: 7px 12px;
border-top: 1px solid rgba(7, 7, 7, .14);
}

.dl-event-row:last-child {
border-bottom: 1px solid rgba(7, 7, 7, .14);
}

.dl-event-row__date {
padding-left: 0;
font-size: clamp(2.75rem, 12vw, 3.35rem);
line-height: .8;
}

.dl-event-row__title,
.dl-programme-scene.is-single-event
.dl-event-row__title {
font-size: clamp(1.28rem, 5.9vw, 1.8rem);
line-height: .98;
letter-spacing: -.025em;
overflow-wrap: normal;
word-break: normal;
}

.dl-event-row__mobile-media {
width: min(76vw, 350px);
margin: 17px 0 0 auto;
opacity: .86;
box-shadow:
0 0 0 1px rgba(7, 7, 7, .12),
0 18px 38px rgba(7, 7, 7, .11);
}

.dl-event-row:nth-child(even)
.dl-event-row__mobile-media {
margin-right: auto;
margin-left: 0;
}

/* BREATH — TWO LEGIBLE BEATS */

.dl-breath {
min-height: auto;
padding: 70px 0 74px;
overflow: hidden;
}

.dl-breath__shell {
min-height: clamp(620px, 82svh, 780px);
display: grid;
grid-template-columns: minmax(0, 1fr);
grid-template-rows: auto 1fr auto;
align-items: start;
isolation: isolate;
}

.dl-breath__media {
top: 10%;
right: 0;
bottom: 10%;
left: 20%;
z-index: 1;
}

.dl-breath__line {
position: relative;
z-index: 4;
top: auto;
right: auto;
bottom: auto;
left: auto;
max-width: 100%;
font-size: clamp(3.25rem, 14vw, 5.2rem);
line-height: .79;
letter-spacing: -.045em;
overflow-wrap: normal;
word-break: normal;
}

.dl-breath__line--one {
grid-row: 1;
justify-self: start;
max-width: 6.8ch;
}

.dl-breath__line--two {
grid-row: 2;
align-self: center;
justify-self: start;
max-width: 6.5ch;
margin-top: 16px;
}

.dl-breath__line--three {
grid-row: 3;
justify-self: end;
max-width: none;
text-align: right;
white-space: nowrap;
}

.dl-breath__line--three em {
white-space: nowrap;
}

/* MEMORY */

.dl-memory-bridge {
min-height: auto;
padding: 70px 0 76px;
}

.dl-memory-bridge__title {
max-width: 9.2ch;
font-size: clamp(3.15rem, 13.8vw, 5.1rem);
line-height: .79;
overflow-wrap: normal;
word-break: normal;
}

.dl-memory-bridge__copy {
max-width: 31rem;
margin-top: 26px;
}

/* ARCHIVE */

.dl-archive {
padding: 68px 0 76px;
}

.dl-archive__intro {
margin-bottom: 36px;
}

.dl-archive__title {
max-width: 9.4ch;
font-size: clamp(3.15rem, 13.6vw, 5.1rem);
line-height: .79;
overflow-wrap: normal;
word-break: normal;
}

.dl-archive__stream {
gap: 40px 12px;
}

.dl-archive-item:nth-child(odd),
.dl-archive-item:nth-child(even) {
width: 91%;
}

.dl-archive-item__title {
font-size: clamp(1.95rem, 8.7vw, 3.15rem);
line-height: .88;
overflow-wrap: normal;
word-break: normal;
}

/* AFTERGLOW */

.dl-afterglow {
min-height: 42svh;
padding: 56px 20px;
}

.dl-afterglow__copy {
max-width: 8.8ch;
font-size: clamp(3.1rem, 13.8vw, 5.2rem);
line-height: .79;
}

/* DREAMLAND LIST */

.dl-list {
padding: 66px 0 72px;
}

.dl-list__title {
max-width: 8.8ch;
font-size: clamp(3.05rem, 13.5vw, 5.05rem);
line-height: .8;
overflow-wrap: normal;
word-break: normal;
}

/* VISIT */

.dl-visit {
min-height: auto;
padding: 66px 0 68px;
}

.dl-visit__address {
margin-top: 34px;
}

.dl-visit__number {
font-size: 21vw;
line-height: .78;
}

.dl-visit__street {
font-size: 25vw;
line-height: .76;
}

.dl-visit__utility {
margin-top: 30px;
}

/* ENDING — ONE COMPLETE PHYSICAL SIGN */

.dl-ending {
min-height: 72svh;
padding:
28px
max(20px, env(safe-area-inset-right))
max(24px, env(safe-area-inset-bottom))
max(20px, env(safe-area-inset-left));
grid-template-rows: auto minmax(0, 1fr) auto;
}

.dl-ending__word {
align-self: center;
min-height: 0;
overflow: visible;
font-size: clamp(3rem, 15.2vw, 5.3rem);
letter-spacing: -.065em;
line-height: .82;
perspective: 900px;
}

.dl-ending__word > [data-dl-ending-word] {
width: auto;
max-width: 100%;
min-width: 0;
white-space: nowrap;
}

.dl-ending__top,
.dl-ending__bottom {
gap: 10px 18px;
font-size: .64rem;
line-height: 1.35;
}
}

@media (max-width: 767px) and (max-height: 720px) {
.dl-menu {
grid-template-rows: auto auto auto auto;
}

.dl-menu__inner > a {
min-height: 68px;
font-size: clamp(2.45rem, 12.8vw, 3.7rem);
}

.dl-menu__inner > a > small {
display: none;
}

.dl-menu__socials a {
min-height: 44px;
}

.dl-menu__foot > span:first-child {
display: none;
}

.dl-menu__inner > a {
min-height: 68px;
font-size: clamp(2.45rem, 12.8vw, 3.7rem);
}

.dl-menu__inner > a > small {
display: none;
}

.dl-ending {
min-height: 640px;
}

.dl-menu__inner > a {
min-height: 64px;
font-size: clamp(2.35rem, 12.2vw, 3.55rem);
}
}

@media (max-width: 767px) and (orientation: landscape) and (max-height: 540px) {
.dl-home {
--dl-gutter: 24px;
--dl-header-h: 56px;
}

.dl-hero__title-dream {
top: 17svh;
font-size: 18vw;
}

.dl-hero__title-land {
right: var(--dl-gutter);
bottom: 10svh;
font-size: 19vw;
}

.dl-hero__media {
top: 14svh;
right: 23vw;
bottom: 10svh;
left: 25vw;
}

.dl-hero__programme {
top: 11svh;
}

.dl-hero__location {
bottom: 7svh;
}

.dl-next-night__shell {
min-height: 100svh;
display: grid;
grid-template-columns:
minmax(0, .82fr)
minmax(0, 1.18fr);
gap: 28px;
align-items: center;
padding: 68px 0 28px;
}

.dl-next-night__date {
top: 62px;
}

.dl-next-night__number {
font-size: 10vw;
}

.dl-next-night__content {
grid-column: 2;
order: 2;
padding-top: 28px;
}

.dl-next-night__title {
font-size: clamp(2.8rem, 8.4vw, 4.7rem);
}

.dl-next-night__media {
grid-column: 1;
order: 1;
width: min(34vw, calc(68svh * .8), 270px);
align-self: center;
}

.dl-next-night__utility {
margin-top: 20px;
}

.dl-programme-scene {
padding: 60px 0 64px;
}

.dl-programme-scene__title {
max-width: 11ch;
font-size: 10vw;
}

.dl-event-row__mobile-media {
width: min(42vw, 300px);
}

.dl-breath {
min-height: 100svh;
padding: 54px 0;
}

.dl-breath__shell {
min-height: 78svh;
}

.dl-breath__media {
top: 8%;
right: 14%;
bottom: 8%;
left: 31%;
}

.dl-breath__line {
font-size: 11.5vw;
}

.dl-memory-bridge__title,
.dl-archive__title,
.dl-list__title {
font-size: 10.5vw;
}

.dl-afterglow {
min-height: 76svh;
}

.dl-afterglow__copy {
font-size: 10.5vw;
}

.dl-visit__address {
display: grid;
grid-template-columns:
minmax(0, .78fr)
minmax(0, 1.22fr);
column-gap: 24px;
}

.dl-visit__number {
font-size: 14vw;
}

.dl-visit__street {
margin-top: 0;
font-size: 17vw;
}

.dl-visit__city {
grid-column: 2;
}

.dl-ending {
min-height: 100svh;
}

.dl-ending__word {
font-size: clamp(4rem, 14.5vw, 7rem);
}

.dl-menu__mast {
min-height: 46px;
}

.dl-menu__inner {
grid-template-columns: repeat(2, minmax(0, 1fr));
gap: 0 28px;
}

.dl-menu__inner > a {
min-height: 62px;
font-size: clamp(2.2rem, 8vw, 3.5rem);
}

.dl-menu__inner > a:nth-last-child(-n + 2) {
border-bottom: 1px solid var(--dl-hairline);
}

.dl-menu__socials a {
min-height: 40px;
}

.dl-ending {
min-height: 100svh;
}
}

@media (hover: none) and (pointer: coarse) {
.dl-header__menu-toggle:hover,
.dl-header__nav a:hover {
opacity: 1;
}

.dl-event-row:hover::before {
opacity: 0;
transform: scaleY(0);
}

.dl-event-row.is-active::before,
.dl-event-row:focus-visible::before {
opacity: 1;
transform: scaleY(1);
}

.dl-text-link:hover span:last-child,
.dl-action:hover .dl-action__arrow {
transform: none;
}

.dl-visit .dl-action:hover::after {
transform: scaleX(.34);
}

.dl-visit .dl-action:focus-visible::after {
transform: scaleX(1);
}
}

@media (hover: none), (pointer: coarse) {
.dl-header__menu-toggle:hover {
color: var(--dl-bone);
}

.dl-menu__inner > a:hover {
color: var(--dl-bone);
font-variation-settings: "wdth" 53, "wght" 710;
}

.dl-social-ledger__links a:hover {
color: var(--dl-bone);
}

.dl-header__menu-toggle:hover {
transform: none;
}

.dl-menu-index__link:hover,
.dl-menu__inner > a:hover {
padding-left: 0;
color: var(--dl-bone);
font-variation-settings: "wdth" 54, "wght" 710;
}

.dl-menu-index__link:active {
color: var(--dl-gold-pale);
}
}

@media (prefers-reduced-motion: reduce) {
.dl-header__menu-toggle::before,
.dl-header__menu-toggle::after,
.dl-header__menu-toggle > span[aria-hidden="true"],
.dl-menu,
.dl-menu__inner > a,
.dl-menu__inner > a::after,
.dl-social-ledger__links a,
.dl-social-ledger__arrow {
transition-duration: .01ms !important;
}

.dl-intro {
display: none !important;
}

.dl-home *,
.dl-home *::before,
.dl-home *::after {
scroll-behavior: auto !important;
animation-duration: .01ms !important;
animation-iteration-count: 1 !important;
transition-duration: .01ms !important;
}

.dl-header,
.dl-hero__type,
.dl-hero__media,
.dl-hero__location,
.dl-hero__programme,
.dl-next-night__date,
.dl-next-night__media,
.dl-next-night__content,
.dl-programme-scene,
.dl-breath__media,
.dl-breath__line,
.dl-memory-bridge,
.dl-archive,
.dl-afterglow,
.dl-list,
.dl-visit,
.dl-ending,
.dl-ending__word,
.dl-ending__letter {
opacity: 1 !important;
visibility: visible !important;
transform: none !important;
clip-path: none !important;
perspective: none !important;
}
}

/* ==========================================================
FINAL RESPONSIVE GEOMETRY CONTRACT — V9

This is the single authoritative correction layer for the
September 11 desktop + physical-phone QA recordings.

It does not redesign Dreamland. It resolves the remaining
layout collisions, establishes one compact reading rhythm,
isolates the Night Index, and gives the Ending measurement
probe the same type metrics as the visible sign.
========================================================== */

/*

- The V8 Ending runtime measures a detached clone. A detached
- clone cannot inherit the display face from .dl-ending__word,
- so it previously measured in the body font and produced an
- incorrect scale. This standalone rule gives the probe the
- real sign metrics without changing the visible hierarchy.
  */

[data-dl-ending-word] {
font-family: "Science Gothic", sans-serif;
font-size: clamp(8rem, 17vw, 20.5rem);
font-weight: 760;
font-variation-settings: "wdth" 58, "wght" 760;
line-height: .82;
letter-spacing: -.06em;
text-transform: uppercase;
}

@media (min-width: 1025px) {
/* Remove the long paper hold after the final programme row. */

.dl-home .dl-programme-scene {
min-height: 0;
padding-top: clamp(72px, 5vw, 94px);
padding-bottom: clamp(58px, 4vw, 76px);
}

.dl-home .dl-programme-browser,
.dl-home .dl-programme-scene.is-single-event .dl-programme-browser,
.dl-home .dl-programme-scene.is-short-programme .dl-programme-browser {
min-height: 0;
}

.dl-home .dl-programme-browser__list {
padding-bottom: 0;
}

.dl-home .dl-programme-scene.is-short-programme .dl-event-row,
.dl-home .dl-programme-scene.is-single-event .dl-event-row {
min-height: clamp(132px, 15svh, 188px);
}

/* Each dark chapter has a deliberate beginning and ending. */

.dl-home .dl-breath {
min-height: 92svh;
padding-top: clamp(82px, 6vw, 112px);
padding-bottom: clamp(82px, 6vw, 112px);
}

.dl-home .dl-memory-bridge {
min-height: 62svh;
padding-top: clamp(82px, 6vw, 112px);
padding-bottom: clamp(82px, 6vw, 112px);
}

.dl-home .dl-archive {
padding-top: clamp(86px, 6vw, 118px);
padding-bottom: clamp(94px, 7vw, 138px);
}

.dl-home .dl-afterglow {
min-height: 58svh;
}

.dl-home .dl-list {
padding-top: clamp(94px, 7vw, 132px);
padding-bottom: clamp(94px, 7vw, 132px);
}

.dl-home .dl-visit {
min-height: auto;
padding-bottom: clamp(78px, 6vw, 112px);
}

.dl-home .dl-ending {
min-height: 100svh;
}
}

@media (max-width: 1024px) {
/*

- Compact pages are a readable document. Imagery can move,
- but major statements remain in their own layout territory.
  */

.dl-home .dl-intro {
display: none;
}

.dl-home .dl-programme-scene,
.dl-home .dl-breath,
.dl-home .dl-memory-bridge,
.dl-home .dl-archive,
.dl-home .dl-afterglow,
.dl-home .dl-list,
.dl-home .dl-visit,
.dl-home .dl-ending {
content-visibility: visible;
}

.dl-home .dl-breath,
.dl-home .dl-memory-bridge,
.dl-home .dl-archive,
.dl-home .dl-afterglow,
.dl-home .dl-list,
.dl-home .dl-visit {
position: relative;
overflow: clip;
isolation: isolate;
}

/* Restore all three navigation beats on touch layouts. */

.dl-home .dl-header__menu-toggle {
position: relative;
width: 48px;
height: 48px;
display: grid;
place-items: center;
overflow: visible;
border: 0;
background: transparent;
color: var(--dl-bone);
opacity: 1;
transform: none;
}

.dl-home .dl-header__menu-toggle::before,
.dl-home .dl-header__menu-toggle::after,
.dl-home .dl-header__menu-toggle > span[aria-hidden="true"] {
position: absolute;
left: 50%;
height: 2px;
display: block;
overflow: visible;
clip: auto;
opacity: 1;
background: currentColor;
transform-origin: 50% 50%;
}

.dl-home .dl-header__menu-toggle::before {
top: 15px;
width: 30px;
transform: translateX(-50%);
}

.dl-home .dl-header__menu-toggle > span[aria-hidden="true"] {
top: 23px;
width: 15px;
color: transparent;
font-size: 0;
background: var(--dl-gold-light);
transform: translateX(-12%);
}

.dl-home .dl-header__menu-toggle::after {
top: 31px;
width: 23px;
transform: translateX(-50%);
}

.dl-home .dl-header__menu-toggle[aria-expanded="true"]::before,
.dl-home .dl-header__menu-toggle[aria-expanded="true"]::after {
top: 23px;
width: 28px;
}

.dl-home .dl-header__menu-toggle[aria-expanded="true"]::before {
transform: translateX(-50%) rotate(45deg);
}

.dl-home .dl-header__menu-toggle[aria-expanded="true"] > span[aria-hidden="true"] {
top: 23px;
width: 0;
opacity: 0;
transform: translateX(-50%) scaleX(0);
}

.dl-home .dl-header__menu-toggle[aria-expanded="true"]::after {
background: var(--dl-gold-light);
transform: translateX(-50%) rotate(-45deg);
}

/* The Night Index is fully opaque and cannot mix with Ending. */

.dl-home .dl-menu {
height: 100svh;
min-height: 100svh;
overflow-x: hidden;
overflow-y: auto;
overscroll-behavior: contain;
visibility: hidden;
opacity: 0;
pointer-events: none;
background:
radial-gradient(
ellipse at 78% 14%,
rgba(201, 142, 36, .075),
transparent 30%
),
#050505;
background-color: #050505;
backdrop-filter: none;
-webkit-backdrop-filter: none;
isolation: isolate;
}

.dl-home .dl-menu.is-open {
display: grid;
visibility: visible;
opacity: 1;
pointer-events: auto;
}

/* Tablet atmosphere remains composed without absolute text collisions. */

.dl-home .dl-breath {
min-height: auto;
padding: clamp(76px, 9vw, 104px) 0;
}

.dl-home .dl-breath__shell {
min-height: clamp(720px, 88svh, 920px);
display: grid;
grid-template-columns: minmax(0, 1fr);
grid-template-rows: auto minmax(230px, 1fr) auto;
align-items: start;
}

.dl-home .dl-breath__media {
position: absolute;
z-index: 1;
top: 12%;
right: -3%;
bottom: 12%;
left: 24%;
opacity: .7;
}

.dl-home .dl-breath__line {
position: relative;
z-index: 4;
inset: auto;
width: auto;
max-width: 7.2ch;
margin: 0;
font-size: clamp(3.35rem, 10vw, 6.2rem);
line-height: .79;
letter-spacing: -.045em;
white-space: normal;
overflow-wrap: normal;
word-break: normal;
}

.dl-home .dl-breath__line--one {
grid-row: 1;
justify-self: start;
}

.dl-home .dl-breath__line--two {
grid-row: 2;
align-self: center;
justify-self: start;
}

.dl-home .dl-breath__line--three {
grid-row: 3;
align-self: end;
justify-self: end;
width: min(100%, 7.2ch);
max-width: 7.2ch;
text-align: right;
white-space: normal;
}

.dl-home .dl-breath__line--three em {
display: block;
white-space: normal;
}

.dl-home .dl-memory-bridge {
min-height: auto;
padding: clamp(82px, 10vw, 116px) 0;
border-top: 1px solid rgba(246, 242, 232, .08);
}

.dl-home .dl-memory-bridge__shell {
min-height: 0;
}

.dl-home .dl-archive {
min-height: auto;
padding: clamp(82px, 10vw, 116px) 0;
border-top: 1px solid rgba(246, 242, 232, .08);
}

.dl-home .dl-afterglow {
min-height: 62svh;
padding: clamp(76px, 10vw, 110px) var(--dl-gutter);
border-top: 1px solid rgba(246, 242, 232, .08);
}

.dl-home .dl-list {
min-height: 76svh;
padding: clamp(82px, 10vw, 116px) 0;
border-top: 1px solid rgba(246, 242, 232, .08);
}

.dl-home .dl-visit {
min-height: auto;
padding: clamp(82px, 10vw, 116px) 0;
border-top: 1px solid rgba(246, 242, 232, .08);
}

.dl-home .dl-ending {
min-height: 100svh;
overflow: hidden;
grid-template-rows: auto minmax(250px, 1fr) auto auto;
}

.dl-home .dl-ending__word {
width: 100%;
min-width: 0;
overflow: visible;
font-size: clamp(5rem, 11.5vw, 8.2rem);
line-height: .82;
letter-spacing: -.06em;
}

[data-dl-ending-word] {
font-size: clamp(5rem, 11.5vw, 8.2rem);
}
}

@media (max-width: 767px) {
.dl-home {
--dl-gutter: max(20px, env(safe-area-inset-left));
--dl-header-h: 64px;
}

.dl-home .dl-header {
right: max(20px, env(safe-area-inset-right));
left: max(20px, env(safe-area-inset-left));
height: 64px;
}

/* Keep the opening legible and inside the physical viewport. */

.dl-home .dl-hero {
min-height: 100svh;
}

.dl-home .dl-hero__title-dream,
.dl-home .dl-hero__title-land {
width: auto;
max-width: calc(100% - 36px);
white-space: nowrap;
}

.dl-home .dl-hero__title-dream {
top: 14svh;
right: 18px;
left: 18px;
font-size: min(27.2vw, 8.8rem);
line-height: .64;
}

.dl-home .dl-hero__title-land {
right: 18px;
bottom: 12.5svh;
left: auto;
font-size: min(28.5vw, 9.2rem);
line-height: .64;
}

.dl-home .dl-hero__media {
top: 22svh;
right: 18px;
bottom: 19svh;
left: 18vw;
}

.dl-home .dl-hero__programme {
top: 76px;
right: 20px;
max-width: 17ch;
text-align: right;
}

.dl-home .dl-hero__location {
bottom: max(28px, 4.5svh);
left: 20px;
max-width: 17ch;
}

/* Next and Programme keep one clear 4:5 image hierarchy. */

.dl-home .dl-next-night {
min-height: auto;
margin-top: 0;
padding-top: 0;
}

.dl-home .dl-next-night__shell {
min-height: auto;
padding: 84px 0 74px;
display: flex;
flex-direction: column;
gap: 28px;
}

.dl-home .dl-next-night__content {
order: 1;
margin-left: 0;
padding-top: 56px;
}

.dl-home .dl-next-night__title {
max-width: 9.6ch;
font-size: clamp(3rem, 13.5vw, 5rem);
line-height: .8;
}

.dl-home .dl-next-night__title span:nth-child(2) {
margin-left: 0;
}

.dl-home .dl-next-night__media {
order: 2;
width: min(78vw, 365px);
aspect-ratio: 4 / 5;
align-self: flex-end;
}

.dl-home .dl-programme-scene {
min-height: 0;
padding: 70px 0 76px;
overflow: hidden;
}

.dl-home .dl-programme-scene__head {
margin-bottom: 30px;
}

.dl-home .dl-programme-scene__title {
width: 100%;
max-width: 8.7ch;
margin-top: 0;
font-size: clamp(3rem, 13.4vw, 5rem);
line-height: .8;
overflow-wrap: normal;
word-break: normal;
}

.dl-home .dl-programme-browser,
.dl-home .dl-programme-scene.is-single-event .dl-programme-browser {
min-height: 0;
display: block;
}

.dl-home .dl-programme-browser__portal {
display: none !important;
}

.dl-home .dl-programme-browser__list {
padding-left: 0;
}

.dl-home .dl-event-row,
.dl-home .dl-programme-scene.is-single-event .dl-event-row {
min-height: 0;
padding: 24px 0 29px;
grid-template-columns: 3.25rem minmax(0, 1fr) 1.15rem;
grid-template-rows: auto auto auto auto;
grid-template-areas:
"date meta arrow"
"date title title"
"date time time"
"media media media";
gap: 7px 11px;
border-top: 1px solid var(--dl-hairline-dark);
}

.dl-home .dl-event-row:last-child {
border-bottom: 1px solid var(--dl-hairline-dark);
}

.dl-home .dl-event-row::before {
content: none;
display: none;
}

.dl-home .dl-event-row__date {
grid-area: date;
padding-left: 0;
font-size: clamp(2.65rem, 11.5vw, 3.25rem);
line-height: .8;
}

.dl-home .dl-event-row__meta {
grid-area: meta;
}

.dl-home .dl-event-row__title {
grid-area: title;
font-size: clamp(1.25rem, 5.7vw, 1.76rem);
line-height: .98;
overflow-wrap: normal;
word-break: normal;
}

.dl-home .dl-event-row__time {
grid-area: time;
}

.dl-home .dl-event-row__arrow {
grid-area: arrow;
}

.dl-home .dl-event-row__mobile-media {
position: relative !important;
grid-area: media;
display: none;
width: min(76vw, 350px);
aspect-ratio: 4 / 5;
margin: 18px 0 4px auto;
overflow: hidden;
opacity: 1;
}

.dl-home .dl-event-row:first-child .dl-event-row__mobile-media {
display: block;
}

.dl-home .dl-event-row__mobile-media img {
width: 100%;
height: 100%;
object-fit: cover;
object-position: var(--dl-row-focus, center);
}

/*

- Breath is one complete composition. No line is absolute,
- no phrase is wider than the reading column, and Memory
- begins only after the third beat has fully ended.
  */

.dl-home .dl-breath {
min-height: auto;
padding: 86px 0 94px;
border-top: 1px solid rgba(246, 242, 232, .08);
}

.dl-home .dl-breath__shell {
width: calc(100% - 40px);
min-height: clamp(740px, 94svh, 900px);
display: grid;
grid-template-columns: minmax(0, 1fr);
grid-template-rows: auto minmax(230px, 1fr) auto;
align-items: start;
margin-inline: auto;
}

.dl-home .dl-breath__media {
position: absolute;
z-index: 1;
top: 13%;
right: 0;
bottom: 13%;
left: 20%;
opacity: .68;
}

.dl-home .dl-breath__line {
position: relative;
z-index: 4;
inset: auto;
width: auto;
max-width: 6.8ch;
margin: 0;
font-size: clamp(2.85rem, 12.2vw, 4.3rem);
line-height: .8;
letter-spacing: -.043em;
white-space: normal;
overflow-wrap: normal;
word-break: normal;
}

.dl-home .dl-breath__line--one {
grid-row: 1;
justify-self: start;
}

.dl-home .dl-breath__line--two {
grid-row: 2;
align-self: center;
justify-self: start;
margin: 0;
}

.dl-home .dl-breath__line--three {
grid-row: 3;
align-self: end;
justify-self: end;
width: min(100%, 6.8ch);
max-width: 6.8ch;
margin: 0;
text-align: right;
white-space: normal;
}

.dl-home .dl-breath__line--three em {
display: block;
white-space: normal;
}

/* Every subsequent chapter owns a clear vertical field. */

.dl-home .dl-memory-bridge {
min-height: 76svh;
padding: 92px 0 98px;
}

.dl-home .dl-memory-bridge__shell {
width: calc(100% - 40px);
min-height: 0;
padding: 0;
}

.dl-home .dl-memory-bridge__label,
.dl-home .dl-memory-bridge__statement,
.dl-home .dl-memory-bridge__copy {
grid-column: 1 / 5;
}

.dl-home .dl-memory-bridge__title {
max-width: 9.2ch;
font-size: clamp(2.9rem, 12.7vw, 4.65rem);
line-height: .8;
}

.dl-home .dl-memory-bridge__copy {
max-width: 31rem;
margin: 34px 0 0;
padding: 0;
}

.dl-home .dl-archive {
padding: 92px 0 102px;
}

.dl-home .dl-archive__intro {
margin-bottom: 46px;
}

.dl-home .dl-archive__title {
width: 100%;
max-width: 9.2ch;
font-size: clamp(2.9rem, 12.7vw, 4.65rem);
line-height: .8;
}

.dl-home .dl-archive__stream {
grid-template-columns: repeat(2, minmax(0, 1fr));
gap: 40px 12px;
}

.dl-home .dl-archive-item:nth-child(odd),
.dl-home .dl-archive-item:nth-child(even) {
grid-column: auto;
width: 100%;
margin: 0;
padding: 0;
justify-self: stretch;
}

.dl-home .dl-archive-item:nth-child(3n + 1) {
grid-column: 1 / -1;
width: 82%;
}

.dl-home .dl-archive-item:nth-child(3n + 1):nth-child(even) {
justify-self: end;
}

.dl-home .dl-archive-item__echo {
display: none;
}

.dl-home .dl-archive-item__title {
margin-top: 11px;
font-size: clamp(1.35rem, 6.2vw, 2rem);
line-height: .9;
}

.dl-home .dl-afterglow {
min-height: 68svh;
padding: 86px 20px;
}

.dl-home .dl-afterglow__copy {
max-width: 8.5ch;
font-size: clamp(2.9rem, 12.8vw, 4.7rem);
line-height: .8;
}

.dl-home .dl-list {
min-height: 84svh;
padding: 92px 0 98px;
}

.dl-home .dl-list__label,
.dl-home .dl-list__content {
grid-column: 1 / 5;
}

.dl-home .dl-list__content {
display: block;
margin-top: 0;
}

.dl-home .dl-list__title {
max-width: 8.8ch;
font-size: clamp(2.85rem, 12.5vw, 4.6rem);
line-height: .81;
}

.dl-home .dl-list__content > .dl-copy {
margin-top: 28px;
}

.dl-home .dl-list__form {
width: 100%;
margin-top: 44px;
}

.dl-home .dl-list__field {
grid-template-columns: minmax(0, 1fr) 5.25rem;
}

.dl-home .dl-list__field input,
.dl-home .dl-list__field button {
min-height: 58px;
}

.dl-home .dl-visit {
padding: 92px 0 98px;
}

.dl-home .dl-visit__shell {
min-height: 0;
}

.dl-home .dl-visit__address {
margin-top: 38px;
display: block;
}

.dl-home .dl-visit__number {
display: block;
font-size: clamp(4.7rem, 19vw, 7.2rem);
line-height: .8;
}

.dl-home .dl-visit__street {
margin-top: 4px;
font-size: clamp(5.6rem, 22.5vw, 8.6rem);
line-height: .72;
}

.dl-home .dl-visit__city {
margin-top: 18px;
}

.dl-home .dl-visit__utility {
width: 100%;
margin-top: 40px;
align-items: flex-start;
flex-direction: column;
gap: 18px;
}

.dl-home .dl-social-ledger {
margin-top: 76px;
padding-top: 30px;
grid-template-columns: minmax(0, 1fr);
gap: 38px;
}

.dl-home .dl-social-ledger__head h3 {
font-size: clamp(2.5rem, 11.2vw, 3.9rem);
}

.dl-home .dl-social-ledger__links a {
min-height: 66px;
grid-template-columns: 24px minmax(0, 1fr) 18px;
gap: 12px;
}

.dl-home .dl-social-ledger__detail {
display: none;
}

.dl-home .dl-social-ledger__name {
font-size: clamp(1.3rem, 5.8vw, 1.8rem);
}

/* Ending: one contained sign followed by one restrained credit. */

.dl-home .dl-ending {
min-height: 100svh;
padding:
30px
max(24px, env(safe-area-inset-right))
max(26px, env(safe-area-inset-bottom))
max(24px, env(safe-area-inset-left));
grid-template-rows: auto minmax(260px, 1fr) auto auto;
row-gap: 18px;
overflow: hidden;
}

.dl-home .dl-ending__word {
align-self: center;
width: 100%;
min-width: 0;
min-height: 0;
overflow: visible;
font-size: clamp(3rem, 12.1vw, 4.25rem);
line-height: .84;
letter-spacing: -.055em;
perspective: 1050px;
}

.dl-home .dl-ending__word > [data-dl-ending-word] {
width: auto;
max-width: none;
min-width: 0;
white-space: nowrap;
}

[data-dl-ending-word] {
font-size: clamp(3rem, 12.1vw, 4.25rem);
line-height: .84;
letter-spacing: -.055em;
}

.dl-home .dl-ending__top,
.dl-home .dl-ending__bottom {
gap: 10px 18px;
flex-wrap: wrap;
font-size: .62rem;
line-height: 1.35;
}

.dl-home .dl-maker {
min-height: 0;
padding-top: 18px;
grid-template-columns: minmax(0, 1fr) auto;
grid-template-areas:
"intro arrow"
"name arrow"
"services services";
gap: 7px 14px;
border-top-color: rgba(246, 242, 232, .18);
}

.dl-home .dl-maker__intro {
grid-area: intro;
color: rgba(182, 176, 166, .82);
font-size: .52rem;
}

.dl-home .dl-maker__name {
grid-area: name;
width: max-content;
font-size: clamp(1.7rem, 7.4vw, 2.35rem);
}

.dl-home .dl-maker__services {
grid-area: services;
justify-self: start;
max-width: 43ch;
margin-top: 3px;
color: rgba(182, 176, 166, .78);
font-size: .5rem;
line-height: 1.45;
text-align: left;
}

.dl-home .dl-maker__arrow {
grid-area: arrow;
align-self: center;
}

/* Night Index: four unmistakable choices, then social utility. */

.dl-home .dl-menu {
padding:
max(10px, env(safe-area-inset-top))
max(20px, env(safe-area-inset-right))
max(18px, env(safe-area-inset-bottom))
max(20px, env(safe-area-inset-left));
grid-template-rows: auto auto auto auto;
gap: 14px;
}

.dl-home .dl-menu__mast {
min-height: 58px;
padding-right: 58px;
font-size: .54rem;
}

.dl-home .dl-menu__inner {
width: 100%;
height: auto;
min-height: 0;
margin: 0;
padding: 0;
display: grid;
align-self: start;
grid-template-columns: minmax(0, 1fr);
grid-auto-rows: auto;
gap: 0;
}

.dl-home .dl-menu__inner > a {
min-height: clamp(68px, 10.5svh, 88px);
padding: 11px 26px 11px 34px;
grid-template-columns: minmax(0, 1fr) auto;
grid-template-rows: auto auto;
align-content: center;
gap: 6px 12px;
border-top: 1px solid var(--dl-hairline);
font-size: clamp(2.5rem, 12.7vw, 4.25rem);
line-height: .75;
}

.dl-home .dl-menu__inner > a:last-child {
border-bottom: 1px solid var(--dl-hairline);
}

.dl-home .dl-menu__inner > a::before {
top: 16px;
left: 0;
font-size: .54rem;
}

.dl-home .dl-menu__inner > a > small {
max-width: 28ch;
display: block;
font-size: .52rem;
white-space: normal;
}

.dl-home .dl-menu__socials {
grid-template-columns: minmax(0, 1fr);
gap: 8px;
}

.dl-home .dl-menu__socials-label {
display: none;
}

.dl-home .dl-menu__socials ul {
grid-template-columns: repeat(3, minmax(0, 1fr));
}

.dl-home .dl-menu__socials a {
min-height: 48px;
padding: 8px 6px;
grid-template-columns: 18px minmax(0, 1fr);
gap: 7px;
font-size: .54rem;
}

.dl-home .dl-menu__socials a > span:last-child {
display: none;
}

.dl-home .dl-menu__socials .dl-social-mark {
width: 17px;
height: 17px;
min-width: 17px;
}
}

@media (max-width: 390px) {
.dl-home .dl-breath__shell {
min-height: 720px;
}

.dl-home .dl-breath__line {
font-size: clamp(2.65rem, 12vw, 3.55rem);
}

.dl-home .dl-memory-bridge__title,
.dl-home .dl-archive__title,
.dl-home .dl-list__title,
.dl-home .dl-afterglow__copy {
font-size: clamp(2.65rem, 12.1vw, 3.65rem);
}

.dl-home .dl-ending {
min-height: max(640px, 100svh);
}

.dl-home .dl-ending__word,
[data-dl-ending-word] {
font-size: clamp(2.7rem, 11.8vw, 3.55rem);
}

.dl-home .dl-menu__inner > a {
min-height: 64px;
font-size: clamp(2.3rem, 12vw, 3.5rem);
}

.dl-home .dl-menu__inner > a > small {
display: none;
}
}

@media (max-width: 767px) and (orientation: landscape) and (max-height: 540px) {
.dl-home {
--dl-gutter: 24px;
--dl-header-h: 56px;
}

.dl-home .dl-next-night__shell {
min-height: 100svh;
padding: 68px 0 34px;
display: grid;
grid-template-columns: minmax(0, .82fr) minmax(0, 1.18fr);
gap: 28px;
align-items: center;
}

.dl-home .dl-next-night__media {
grid-column: 1;
order: 1;
width: min(34vw, calc(68svh * .8), 270px);
align-self: center;
}

.dl-home .dl-next-night__content {
grid-column: 2;
order: 2;
padding-top: 28px;
}

.dl-home .dl-breath {
min-height: 118svh;
padding: 58px 0;
}

.dl-home .dl-breath__shell {
min-height: 90svh;
grid-template-rows: auto minmax(110px, 1fr) auto;
}

.dl-home .dl-breath__line {
font-size: clamp(2.8rem, 8.4vw, 4.4rem);
}

.dl-home .dl-memory-bridge,
.dl-home .dl-archive,
.dl-home .dl-list,
.dl-home .dl-visit {
min-height: 100svh;
}

.dl-home .dl-afterglow {
min-height: 92svh;
}

.dl-home .dl-ending {
min-height: 112svh;
}

.dl-home .dl-ending__word,
[data-dl-ending-word] {
font-size: clamp(3.5rem, 10vw, 5.6rem);
}

.dl-home .dl-menu__inner {
grid-template-columns: repeat(2, minmax(0, 1fr));
gap: 0 28px;
}

.dl-home .dl-menu__inner > a {
min-height: 60px;
font-size: clamp(2rem, 7.4vw, 3.1rem);
}
}

@media (hover: none) and (pointer: coarse) {
.dl-home .dl-header__menu-toggle:hover {
color: var(--dl-bone);
transform: none;
}

.dl-home .dl-menu__inner > a:hover {
padding-left: 34px;
color: var(--dl-bone);
font-variation-settings: "wdth" 53, "wght" 710;
}
}

@media (prefers-reduced-motion: reduce) {
.dl-home .dl-intro {
display: none !important;
}

.dl-home .dl-ending__word,
.dl-home .dl-ending__word > [data-dl-ending-word] {
max-width: 100% !important;
opacity: 1 !important;
visibility: visible !important;
transform: none !important;
}
}

.dl-home .dl-menu {
height: 100vh;
height: 100dvh;
min-height: 100vh;
min-height: 100dvh;
}

@media (max-width: 767px) {
.dl-home .dl-hero,
.dl-home .dl-ending {
min-height: 100vh;
min-height: 100dvh;
}
}

/* ==========================================================
DREAMLAND LOUNGE — SUBMISSION STABILISATION V10.1
Locked audit contract / September 2026

This is the final authority for responsive geometry.
It deliberately retires the conflicting compact rules above
without changing the established Future Archive direction.
========================================================== */

/* ---------- ONE MENU MARK / ONE OWNER ---------- */

.dl-home .dl-header__menu-toggle::before,
.dl-home .dl-header__menu-toggle::after,
.dl-home .dl-header__menu-toggle > span[aria-hidden="true"]::before,
.dl-home .dl-header__menu-toggle > span[aria-hidden="true"]::after {
content: none !important;
display: none !important;
}

.dl-home .dl-header__menu-toggle {
width: 52px;
height: 52px;
min-width: 52px;
min-height: 52px;
padding: 0;
display: none;
place-items: center;
border: 0;
background: transparent;
color: var(--dl-bone);
mix-blend-mode: normal;
isolation: isolate;
touch-action: manipulation;
-webkit-tap-highlight-color: transparent;
}

.dl-home .dl-header__menu-toggle > .dl-menu-control {
position: relative !important;
inset: auto !important;
width: 34px !important;
height: 24px !important;
min-width: 34px !important;
min-height: 24px !important;
display: block !important;
overflow: visible !important;
clip: auto !important;
clip-path: none !important;
opacity: 1 !important;
visibility: visible !important;
transform: none !important;
margin: 0 !important;
padding: 0 !important;
border: 0 !important;
border-radius: 0 !important;
outline: 0 !important;
background: transparent !important;
background-image: none !important;
box-shadow: none !important;
color: transparent !important;
font-size: 0 !important;
}

.dl-home .dl-menu-control__beat {
position: absolute !important;
left: 0 !important;
width: 34px !important;
height: 2px !important;
display: block !important;
border: 0 !important;
border-radius: 999px !important;
opacity: 1 !important;
visibility: visible !important;
background: var(--dl-bone) !important;
box-shadow: none !important;
transform-origin: 50% 50% !important;
transition:
top 360ms cubic-bezier(.77, 0, .18, 1),
width 360ms cubic-bezier(.77, 0, .18, 1),
transform 360ms cubic-bezier(.77, 0, .18, 1),
opacity 180ms ease !important;
}

.dl-home .dl-menu-control__beat:nth-child(1) {
top: 1px !important;
transform: none !important;
}

.dl-home .dl-menu-control__beat:nth-child(2) {
top: 11px !important;
width: 23px !important;
background: var(--dl-gold-light) !important;
transform: none !important;
}

.dl-home .dl-menu-control__beat:nth-child(3) {
top: 21px !important;
width: 29px !important;
transform: none !important;
}

.dl-home .dl-header__menu-toggle[aria-expanded="true"]
.dl-menu-control__beat:nth-child(1) {
top: 11px !important;
width: 34px !important;
transform: rotate(45deg) !important;
}

.dl-home .dl-header__menu-toggle[aria-expanded="true"]
.dl-menu-control__beat:nth-child(2) {
top: 11px !important;
width: 0 !important;
opacity: 0 !important;
transform: scaleX(0) !important;
}

.dl-home .dl-header__menu-toggle[aria-expanded="true"]
.dl-menu-control__beat:nth-child(3) {
top: 11px !important;
width: 34px !important;
transform: rotate(-45deg) !important;
}

/* Keep the Night Index solid until its exit has completed. */

.dl-home .dl-menu,
.dl-home .dl-menu.is-open {
background-color: #050505 !important;
background-image:
radial-gradient(
ellipse at 80% 10%,
rgba(237, 198, 103, .065),
transparent 34%
),
linear-gradient(#050505, #050505) !important;
backdrop-filter: none !important;
-webkit-backdrop-filter: none !important;
isolation: isolate;
}

.dl-home .dl-menu.is-open {
opacity: 1 !important;
visibility: visible !important;
pointer-events: auto !important;
}

/* ---------- DESKTOP CHAPTER RHYTHM ---------- */

@media (min-width: 1025px) {
.dl-home .dl-header__menu-toggle {
display: none !important;
}

.dl-home .dl-programme-scene {
min-height: 0;
padding-top: clamp(68px, 4.8vw, 90px);
padding-bottom: clamp(44px, 3.4vw, 66px);
}

.dl-home .dl-programme-browser,
.dl-home .dl-programme-browser__list {
min-height: 0;
padding-bottom: 0;
}

.dl-home .dl-breath {
min-height: 0;
padding: clamp(76px, 5.4vw, 102px) 0;
}

.dl-home .dl-breath__shell {
min-height: clamp(540px, 62svh, 720px);
}

.dl-home .dl-memory-bridge {
min-height: clamp(520px, 58svh, 720px);
padding-top: clamp(72px, 5vw, 96px);
padding-bottom: clamp(72px, 5vw, 96px);
}

.dl-home .dl-afterglow {
min-height: clamp(500px, 58svh, 720px);
padding: clamp(72px, 5vw, 96px) var(--dl-gutter);
}

.dl-home .dl-list,
.dl-home .dl-visit {
min-height: 0;
}

.dl-home .dl-ending {
min-height: clamp(650px, 78svh, 920px);
grid-template-rows: auto minmax(360px, 1fr) auto auto;
}

.dl-home .dl-ending__word,
.dl-home [data-dl-ending-word] {
font-size: clamp(9rem, 15.2vw, 21rem);
}
}

/* ---------- COMPACT: COMPLETE BEFORE JAVASCRIPT ---------- */

@media (max-width: 1024px) {
.dl-home .dl-header__menu-toggle {
display: grid !important;
appearance: none !important;
-webkit-appearance: none !important;
border: 0 !important;
outline: 0;
background: transparent !important;
background-image: none !important;
box-shadow: none !important;
}

.dl-home,
.dl-home .dl-hero {
opacity: 1 !important;
visibility: visible !important;
}

.dl-home .dl-hero {
content-visibility: visible;
}

.dl-home .dl-programme-scene,
.dl-home .dl-breath,
.dl-home .dl-memory-bridge,
.dl-home .dl-archive,
.dl-home .dl-afterglow,
.dl-home .dl-list,
.dl-home .dl-visit,
.dl-home .dl-ending {
content-visibility: auto;
contain-intrinsic-size: auto 820px;
}

.dl-home .dl-archive {
contain-intrinsic-size: auto 1800px;
}

.dl-home .dl-programme-scene,
.dl-home .dl-breath,
.dl-home .dl-memory-bridge,
.dl-home .dl-afterglow,
.dl-home .dl-list,
.dl-home .dl-visit,
.dl-home .dl-ending {
min-height: 0;
}

.dl-home .dl-breath {
padding: clamp(72px, 9vw, 102px) 0;
}

.dl-home .dl-breath__shell {
width: min(calc(100% - 44px), 920px);
min-height: 0;
display: grid;
grid-template-columns: minmax(0, 1fr);
grid-template-rows: repeat(4, auto);
row-gap: clamp(22px, 4.5vw, 42px);
align-items: start;
}

.dl-home .dl-breath__media {
position: relative;
z-index: 1;
inset: auto;
grid-row: 2;
justify-self: end;
width: min(86%, 720px);
height: auto;
aspect-ratio: 16 / 11;
opacity: .82;
transform: none;
clip-path: inset(0);
}

.dl-home .dl-breath__line {
position: relative;
z-index: 2;
inset: auto;
width: auto;
margin: 0;
opacity: 1;
visibility: visible;
transform: none;
}

.dl-home .dl-breath__line--one {
grid-row: 1;
justify-self: start;
}

.dl-home .dl-breath__line--two {
grid-row: 3;
justify-self: start;
text-shadow: none;
}

.dl-home .dl-breath__line--three {
grid-row: 4;
justify-self: end;
align-self: auto;
width: min(100%, 7.4ch);
max-width: 7.4ch;
text-align: right;
}

.dl-home .dl-memory-bridge,
.dl-home .dl-list,
.dl-home .dl-visit {
padding-top: clamp(72px, 9vw, 104px);
padding-bottom: clamp(76px, 9.5vw, 110px);
}

.dl-home .dl-memory-bridge__shell {
min-height: 0;
}

.dl-home .dl-afterglow {
padding: clamp(84px, 12vw, 132px) var(--dl-gutter);
}

.dl-home .dl-ending {
min-height: clamp(600px, 76svh, 820px);
padding:
max(26px, env(safe-area-inset-top))
max(22px, env(safe-area-inset-right))
max(24px, env(safe-area-inset-bottom))
max(22px, env(safe-area-inset-left));
grid-template-rows: auto minmax(280px, 1fr) auto auto;
row-gap: 16px;
}

.dl-home .dl-ending__word,
.dl-home [data-dl-ending-word] {
font-size: clamp(5rem, 15vw, 9rem);
}
}

/* ---------- PHONE: DETERMINISTIC READING ORDER ---------- */

@media (max-width: 767px) {
.dl-home .dl-programme-scene {
padding: 58px 0 64px;
}

.dl-home .dl-breath {
padding: 70px 0 76px;
}

.dl-home .dl-breath__shell {
width: calc(100% - 40px);
row-gap: 22px;
}

.dl-home .dl-breath__media {
width: 88%;
aspect-ratio: 4 / 5;
max-height: 68svh;
}

.dl-home .dl-breath__line {
font-size: clamp(2.85rem, 13vw, 4.65rem);
line-height: .8;
letter-spacing: -.045em;
}

.dl-home .dl-memory-bridge {
padding: 74px 0 82px;
}

.dl-home .dl-memory-bridge__title,
.dl-home .dl-archive__title,
.dl-home .dl-list__title {
max-width: 9.2ch;
font-size: clamp(2.85rem, 12.6vw, 4.5rem);
line-height: .8;
}

.dl-home .dl-memory-bridge__copy {
margin-top: 28px;
}

.dl-home .dl-afterglow {
padding: 88px 20px 94px;
}

.dl-home .dl-afterglow__copy {
max-width: 9ch;
font-size: clamp(2.85rem, 12.6vw, 4.5rem);
line-height: .8;
}

.dl-home .dl-list {
padding: 72px 0 78px;
}

.dl-home .dl-visit {
padding: 74px 0 76px;
}

.dl-home .dl-ending {
min-height: clamp(560px, 74svh, 700px);
grid-template-rows: auto minmax(230px, 1fr) auto auto;
}

.dl-home .dl-ending__word,
.dl-home .dl-ending__word > [data-dl-ending-word],
.dl-home [data-dl-ending-word] {
width: 100%;
max-width: 100%;
font-size: clamp(4.15rem, 18vw, 6.4rem);
line-height: .82;
letter-spacing: -.055em;
}

.dl-home .dl-maker {
margin-top: 0;
}

.dl-home .dl-menu {
height: 100svh;
min-height: 100svh;
padding:
max(10px, env(safe-area-inset-top))
max(20px, env(safe-area-inset-right))
max(18px, env(safe-area-inset-bottom))
max(20px, env(safe-area-inset-left));
}

.dl-home .dl-menu__inner > a {
min-height: clamp(64px, 9.4svh, 82px);
font-size: clamp(2.35rem, 11.7vw, 4rem);
line-height: .78;
}
}

@media (max-width: 390px) {
.dl-home .dl-breath__line {
font-size: clamp(2.65rem, 12.3vw, 3.65rem);
}

.dl-home .dl-ending {
min-height: clamp(540px, 72svh, 640px);
}

.dl-home .dl-ending__word,
.dl-home .dl-ending__word > [data-dl-ending-word],
.dl-home [data-dl-ending-word] {
font-size: clamp(3.85rem, 17.5vw, 5.2rem);
}
}

/* Compact landscapes need density, not another full-screen chapter. */

@media (min-width: 568px) and (max-width: 1024px) and (orientation: landscape) {
.dl-home .dl-breath__shell {
grid-template-columns: minmax(0, .78fr) minmax(0, 1.22fr);
grid-template-rows: repeat(3, auto);
column-gap: 30px;
}

.dl-home .dl-breath__media {
grid-column: 2;
grid-row: 1 / 4;
width: 100%;
aspect-ratio: 4 / 3;
}

.dl-home .dl-breath__line--one,
.dl-home .dl-breath__line--two,
.dl-home .dl-breath__line--three {
grid-column: 1;
justify-self: start;
text-align: left;
}

.dl-home .dl-breath__line--one { grid-row: 1; }
.dl-home .dl-breath__line--two { grid-row: 2; }
.dl-home .dl-breath__line--three { grid-row: 3; }

.dl-home .dl-ending {
min-height: clamp(500px, 88svh, 680px);
}
}

@media (prefers-reduced-motion: reduce) {
.dl-home .dl-menu-control__beat {
transition-duration: .01ms !important;
}

.dl-home .dl-menu,
.dl-home .dl-menu.is-open {
transition-duration: .01ms !important;
}
}

/* ==========================================================
   REQUESTED HERO COPY + ADDRESS EMPHASIS
   ========================================================== */

.dl-home .dl-hero__title-dream {
    top: 10.5svh;
    right: var(--dl-gutter);
    left: var(--dl-gutter);
    width: auto;
    max-width: none;
    font-size: clamp(5.5rem, 11vw, 13.5rem);
    line-height: .62;
    white-space: nowrap;
}

.dl-home .dl-hero__title-land {
    right: var(--dl-gutter);
    bottom: 8.5svh;
    left: auto;
    width: auto;
    max-width: none;
    font-size: clamp(6.5rem, 14vw, 17rem);
    line-height: .62;
    white-space: nowrap;
}

.dl-home .dl-hero__location {
    top: 32%;
    bottom: auto;
    left: var(--dl-gutter);
    max-width: 18ch;
    font-size: clamp(.9rem, 1vw, 1.15rem);
    line-height: 1.25;
    letter-spacing: .09em;
}

@media (max-width: 767px) {
    .dl-home .dl-hero__title-dream {
        top: 14svh;
        right: 18px;
        left: 18px;
        max-width: calc(100% - 36px);
        font-size: clamp(3.5rem, 17vw, 6rem);
        line-height: .64;
    }

    .dl-home .dl-hero__title-land {
        right: 18px;
        bottom: 12.5svh;
        left: auto;
        max-width: calc(100% - 36px);
        font-size: clamp(4.75rem, 22vw, 7.5rem);
        line-height: .64;
    }

    .dl-home .dl-hero__location {
        top: 31svh;
        bottom: auto;
        left: 20px;
        max-width: 16ch;
        font-size: .9rem;
        line-height: 1.25;
        letter-spacing: .085em;
    }
}

@media (max-width: 767px) and (orientation: landscape) and (max-height: 540px) {
    .dl-home .dl-hero__title-dream {
        top: 17svh;
        font-size: 11vw;
    }

    .dl-home .dl-hero__title-land {
        right: var(--dl-gutter);
        bottom: 10svh;
        font-size: 13vw;
    }

    .dl-home .dl-hero__location {
        top: 42%;
        bottom: auto;
        left: var(--dl-gutter);
        font-size: .82rem;
    }
}
