/* tokens.css */
:root {
--color-paper:oklch(98% .012 77);--color-panel:oklch(94% .025 60);--color-ink:oklch(19% .009 35);--color-muted:oklch(43% .012 35);--color-accent:oklch(68.8% .185 20);--color-accent-ink:oklch(17.6% .006 20);--color-gold:oklch(92.4% .101 95);--color-cream:oklch(98% .012 77);--color-dark:oklch(19% .009 35);--color-rule:oklch(79% .02 60);--color-transparent:transparent;--color-shade:oklch(17.6% .006 20 / .85);--color-shadow:oklch(17.6% .006 20 / .18);--color-focus:var(--color-ink);
--font-display:'Outfit',sans-serif;--font-body:var(--font-display);
--space-xs:.5rem;--space-sm:.75rem;--space-md:1rem;--space-lg:1.5rem;--space-xl:2rem;--space-2xl:3rem;--space-3xl:4rem;--space-4xl:6rem;
--text-small:.85rem;--text-body:1rem;--text-lead:1.15rem;--text-title:clamp(2.2rem,4.7vw,4.5rem);--text-poster:clamp(5rem,22vw,19.5rem);
--ease-out:cubic-bezier(.16,1,.3,1);--ease-in:cubic-bezier(.7,0,.84,0);--ease-in-out:cubic-bezier(.65,0,.35,1);--dur-micro:150ms;--radius-control:100px;--page-gutter:clamp(1.25rem,4vw,4rem);
}
:root[data-scene='theater']{--color-paper:oklch(23% .012 42);--color-panel:oklch(28% .015 42);--color-ink:oklch(96% .018 80);--color-muted:oklch(80% .018 75);--color-rule:oklch(47% .018 50);--color-focus:var(--color-cream)}
:root{--color-error:oklch(43% .16 25);--color-form-muted:oklch(43% .012 35);--color-field:oklch(99% .008 75);--color-field-rule:oklch(62% .015 50);--color-booking-muted:oklch(81% .018 70);--color-error-panel:oklch(94% .025 25)}

/* Contrast-safe interaction boundaries; decorative coral/gold remain unchanged. */
:root{--color-control-rule:oklch(62% .015 50);--color-accent-contrast:oklch(58% .185 20)}
:root[data-scene="theater"]{--color-accent-contrast:var(--color-accent)}

/* style.css */
/* Hallmark · macrostructure: Photographic · tone: urban show-poster · anchor hue: TFM coral
 * Brand-led override: oversized overlapping title, prominent CTA, Outfit-only, coral/gold frames.
 * Nav: N2 audience selector · Footer: Ft2 compact · custom TFM system preserved.
 * Pre-emit critique: P5 H5 E4 S5 R4 V5. No blanket 58/58 claim; see QA.md. */

@font-face{font-family:'Outfit';font-style:normal;font-weight:300 900;font-display:swap;src:url('./fonts/outfit-variable.woff2') format('woff2')}
*{box-sizing:border-box}html,body{overflow-x:clip}html{scroll-behavior:smooth;background:var(--color-paper);color:var(--color-ink);font-family:var(--font-body)}body{margin:0}button,a,input{font:inherit}button,a{-webkit-tap-highlight-color:var(--color-transparent)}button{cursor:pointer;color:inherit}a{color:inherit;text-underline-offset:.2em}button{border:0}button:focus-visible,a:focus-visible{outline:3px solid var(--color-focus);outline-offset:5px}button:active,a:active{opacity:.75}button:disabled{opacity:.55;cursor:not-allowed}h1,h2,h3,p,figure,dl,dd{margin:0}h1,h2,h3{font-family:var(--font-display);font-style:normal;min-width:0;overflow-wrap:anywhere}h2{font-size:var(--text-title);font-weight:750;letter-spacing:-.05em;line-height:1.02}p{line-height:1.5}img{display:block;max-width:100%;height:auto}.wrap{width:min(100% - var(--page-gutter)*2,1440px);margin-inline:auto}.skip{position:absolute;top:-100px;left:20px;z-index:10;padding:var(--space-md);background:var(--color-gold);color:var(--color-dark)}.skip:focus{top:12px}
.topbar{display:flex;align-items:center;justify-content:space-between;gap:var(--space-lg);padding-block:var(--space-lg) var(--space-xl)}.brand{display:flex;align-items:center;gap:var(--space-sm);text-decoration:none;font-size:.95rem;font-weight:750;line-height:.98;letter-spacing:-.035em}.brand img{width:40px;height:40px}[data-scene='theater'] .brand img{filter:invert(1)}.scene-switch{display:flex;align-items:center;border:1px solid var(--color-rule);border-radius:var(--radius-control);padding:4px;gap:4px}.scene-switch a{min-height:42px;white-space:nowrap;padding:var(--space-sm) var(--space-lg);border-radius:var(--radius-control);background:var(--color-transparent);font-size:.9rem;font-weight:650;line-height:1}.scene-switch a[aria-current='page']{background:var(--color-ink);color:var(--color-paper)}.scene-switch a:hover{box-shadow:inset 0 0 0 1px var(--color-ink)}.nav-link{font-weight:650;text-decoration:none;white-space:nowrap;display:flex;gap:var(--space-lg);align-items:center;min-height:44px}.nav-link:hover{text-decoration:underline}
.hero{padding-bottom:var(--space-xl)}.hero-stage{position:relative;height:clamp(340px,38vw,550px);isolation:isolate;margin-top:var(--space-sm)}.photo-frame{position:absolute;inset:0 0 12px;z-index:-1}.photo-frame:before,.photo-frame:after{content:'';position:absolute;inset:8px -8px -8px;background:var(--color-accent);transform:rotate(-1.6deg);z-index:-1}.photo-frame:after{inset:-5px 0 -3px;border:3px solid var(--color-gold);background:var(--color-transparent);transform:rotate(.7deg);z-index:1;pointer-events:none}.photo-frame img{width:100%;height:100%;object-fit:cover;object-position:50% 42%}.stage-label{position:absolute;left:var(--space-lg);top:var(--space-lg);padding:var(--space-xs) var(--space-sm);font-size:.88rem;font-weight:650;background:var(--color-gold);color:var(--color-dark);transform:rotate(-2deg)}h1{position:absolute;bottom:-.19em;left:-.025em;font-size:var(--text-poster);font-weight:900;letter-spacing:-.075em;line-height:.82;color:var(--color-cream);text-shadow:0 2px 20px var(--color-shadow)}.title-dot{color:var(--color-accent)}.trailer{position:absolute;right:var(--space-lg);bottom:var(--space-xl);display:flex;align-items:center;gap:var(--space-sm);padding:var(--space-sm) var(--space-md);background:var(--color-shade);color:var(--color-cream);border-radius:var(--radius-control);text-decoration:none;font-weight:650;font-size:.9rem;line-height:1.1}.trailer small{display:block;font-size:.7rem;font-weight:400;margin-top:4px}.play{display:grid;place-items:center;width:38px;height:38px;border:1px solid var(--color-cream);border-radius:50%;font-size:.8rem}.trailer:hover{text-decoration:underline}.trailer:focus-visible{outline-color:var(--color-gold)}
.hero-bottom{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);gap:var(--space-3xl);padding-block:var(--space-3xl) var(--space-2xl)}.byline{font-weight:650;font-size:var(--text-small);margin-bottom:var(--space-sm)}.hero-heading h2{font-size:clamp(2.25rem,4.4vw,4.25rem)}.hero-copy{max-width:540px;align-self:center}#hero-lead{font-size:var(--text-lead);margin-bottom:var(--space-lg)}.cta{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-lg);background:var(--color-accent);color:var(--color-accent-ink);min-height:52px;padding:var(--space-md) var(--space-lg);border-radius:var(--radius-control);font-size:.95rem;font-weight:750;white-space:nowrap;line-height:1;text-decoration:none;transition:transform var(--dur-micro) var(--ease-out)}.cta:hover{transform:translateY(-2px)}.context{font-size:.8rem;color:var(--color-muted);margin-top:var(--space-sm)}.facts{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--space-xl);padding-block:var(--space-lg);border-top:1px solid var(--color-rule)}.facts dt{font-size:1.3rem;font-weight:700;letter-spacing:-.02em}.facts dd{font-size:.85rem;color:var(--color-muted);margin-top:4px}
.gallery-section{padding-block:var(--space-3xl) var(--space-2xl);background:var(--color-panel)}.section-head{display:flex;align-items:flex-end;justify-content:space-between;gap:var(--space-2xl)}.section-head p{color:var(--color-muted);margin-top:var(--space-md)}.text-button{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-lg);min-height:48px;padding:var(--space-sm) 0;background:var(--color-transparent);border-bottom:2px solid var(--color-ink);font-size:.95rem;font-weight:650;white-space:nowrap}.text-button:hover{border-color:var(--color-accent)}.gallery-collage{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(0,.85fr) minmax(0,.95fr);align-items:center;padding-block:var(--space-3xl);gap:0}.gallery-photo{position:relative;display:block;border:5px solid var(--color-gold);box-shadow:0 12px 30px var(--color-shadow);transition:transform var(--dur-micro) var(--ease-out)}.gallery-photo:before{content:'';position:absolute;inset:-15px -7px -8px;background:var(--color-accent);z-index:-1;transform:rotate(4deg)}.gallery-photo img{width:100%;height:100%;object-fit:cover}.photo-one{height:340px;transform:rotate(-4deg);z-index:2}.photo-two{height:285px;transform:rotate(5deg);margin-left:-15px;z-index:3}.photo-three{height:325px;transform:rotate(-3deg);margin-left:-12px;z-index:1}.gallery-photo:hover{transform:rotate(0deg)}.photo-plus{position:absolute;right:var(--space-sm);bottom:var(--space-sm);display:grid;place-items:center;width:38px;height:38px;border-radius:50%;background:var(--color-gold);color:var(--color-dark);font-size:1.2rem;font-weight:650}.gallery-note{font-size:.9rem;font-weight:600;text-align:right}
.modules-section{padding-block:var(--space-3xl) var(--space-xl)}.module-intro{max-width:46ch;font-size:var(--text-body)}.module-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--space-lg);margin-top:var(--space-2xl)}.module{display:flex;flex-direction:column;min-width:0}.module-media{position:relative;height:240px;overflow:hidden;background:var(--color-gold);color:var(--color-dark)}.module-media img{width:100%;height:100%;object-fit:cover}.module:nth-child(2) .module-media img{object-position:55% center}.duration{position:absolute;bottom:var(--space-sm);left:var(--space-sm);padding:var(--space-xs) var(--space-sm);border-radius:var(--radius-control);background:var(--color-gold);color:var(--color-dark);font-weight:650;font-size:.8rem}.module-body{display:flex;flex-direction:column;flex:1;padding-top:var(--space-lg)}.module h3{font-size:clamp(1.5rem,2.5vw,2.25rem);font-weight:700;line-height:1.04;letter-spacing:-.04em}.module p{font-size:.95rem;color:var(--color-muted);margin-top:var(--space-md);margin-bottom:var(--space-lg);max-width:48ch}.module-actions{display:flex;align-items:center;justify-content:space-between;gap:var(--space-sm);margin-top:auto;border-top:1px solid var(--color-rule);padding-top:var(--space-sm)}.module-actions a{display:inline-flex;align-items:center;min-height:44px;gap:var(--space-sm);font-size:.9rem;font-weight:600;text-decoration:none}.module-actions a:hover{text-decoration:underline}.module-actions button{min-height:44px;padding:var(--space-sm) var(--space-md);border:1px solid var(--color-ink);border-radius:var(--radius-control);background:var(--color-transparent);font-size:.85rem;font-weight:650;white-space:nowrap}.module-actions button span{padding-left:var(--space-xs)}.module-actions button[aria-pressed='true']{background:var(--color-gold);border-color:var(--color-gold);color:var(--color-dark)}.module-actions button:hover{box-shadow:inset 0 0 0 1px var(--color-ink)}.jam-art{background:var(--color-accent);isolation:isolate}.jam-orbit{position:absolute;width:300px;height:300px;right:-80px;top:-35px;border-radius:50%;background:var(--color-dark);border:14px double var(--color-gold);transform:rotate(-20deg)}.jam-orbit:after{content:'';position:absolute;width:76px;height:76px;border:22px solid var(--color-accent);border-radius:50%;top:90px;left:90px;background:var(--color-gold)}.jam-type{position:relative;display:block;padding:var(--space-lg);font-weight:900;font-size:3.15rem;line-height:.81;letter-spacing:-.06em;color:var(--color-gold);transform:rotate(-5deg)}.jam-type>span{font-size:1.85rem;color:var(--color-cream);letter-spacing:-.04em}
.selection-bar{display:flex;align-items:center;justify-content:space-between;gap:var(--space-lg);margin-top:var(--space-2xl);padding:var(--space-lg) var(--space-xl);background:var(--color-panel)}.selection-bar strong{font-weight:650}.selection-bar p{margin-top:4px;font-size:.85rem;color:var(--color-muted)}.preview-note{font-size:.75rem;color:var(--color-muted);margin-top:var(--space-lg)}footer{display:flex;align-items:center;justify-content:space-between;gap:var(--space-md);padding-block:var(--space-lg);font-size:.8rem;color:var(--color-muted)}footer a{min-height:44px;display:flex;align-items:center;white-space:nowrap}
dialog{width:min(1100px,94vw);max-height:92svh;overflow:auto;border:0;padding:var(--space-lg);background:var(--color-paper);color:var(--color-ink);box-shadow:0 20px 80px var(--color-shadow)}dialog::backdrop{background:var(--color-shade)}.dialog-head{display:flex;align-items:center;justify-content:space-between;gap:var(--space-md);margin-bottom:var(--space-lg)}.dialog-head h2{font-size:1.5rem;letter-spacing:-.03em}.close{background:var(--color-transparent);color:var(--color-ink);min-height:44px;padding:var(--space-sm);font-size:.85rem;white-space:nowrap}.close:hover{text-decoration:underline}.gallery-view img{width:100%;height:62svh;object-fit:contain;background:var(--color-panel)}.gallery-view figcaption{font-size:.9rem;margin-top:var(--space-sm)}.gallery-controls{display:flex;align-items:center;justify-content:center;gap:var(--space-lg);margin-top:var(--space-md)}.gallery-controls button{width:48px;height:48px;border:1px solid var(--color-rule);background:var(--color-transparent);font-size:1.3rem}.gallery-controls button:hover{background:var(--color-gold);color:var(--color-dark)}#request-dialog{width:min(600px,94vw);padding:var(--space-xl)}#request-title{font-size:2.5rem}#request-dialog>p{margin-block:var(--space-md)}#request-selection{padding-left:var(--space-lg);line-height:1.7;font-weight:650}.demo-note{background:var(--color-panel);padding:var(--space-md);margin-block:var(--space-lg);font-size:.9rem}.demo-note p{margin-top:var(--space-xs)}body:has(dialog[open]){overflow-y:hidden}
@media(min-width:1600px){.hero-stage{height:560px}}
@media(max-width:1000px){.hero-stage{height:410px}.hero-bottom{gap:var(--space-xl);padding-top:var(--space-3xl)}#hero-lead{font-size:1rem}.hero-heading h2{font-size:2.8rem}.trailer{bottom:var(--space-3xl)}.module-media{height:200px}.module h3{font-size:1.75rem}.photo-one{height:285px}.photo-two{height:245px}.photo-three{height:270px}.selection-bar{align-items:flex-start;flex-direction:column}.module-actions button{padding-inline:var(--space-sm)}}
@media(max-width:700px){.topbar{flex-wrap:wrap;gap:var(--space-md);padding-block:var(--space-lg)}.brand{font-size:.8rem}.brand img{width:32px;height:32px}.scene-switch{order:3;justify-content:center;width:100%}.scene-switch a{flex:1;padding-inline:var(--space-md)}.nav-link{font-size:.8rem;gap:var(--space-sm)}.hero-stage{height:350px;margin-top:var(--space-xs);width:calc(100% - 24px)}.photo-frame{inset:0 0 6px}.photo-frame img{object-position:51% 42%}.photo-frame:after{border-width:2px}.stage-label{top:var(--space-md);left:var(--space-md);font-size:.75rem}h1{font-size:23vw;bottom:-.14em;left:8px}.trailer{bottom:var(--space-3xl);right:var(--space-sm);font-size:.8rem;padding:var(--space-xs) var(--space-sm)}.trailer small{display:none}.play{width:30px;height:30px}.hero-bottom{grid-template-columns:minmax(0,1fr);gap:var(--space-lg);padding-block:var(--space-2xl) var(--space-xl)}.byline{font-size:.78rem}.hero-heading h2{font-size:clamp(2.1rem,8.5vw,3.5rem)}.hero-copy{max-width:none}#hero-lead{font-size:1.05rem}.cta{font-size:.85rem;gap:var(--space-sm);padding:var(--space-md);min-height:50px}.context{font-size:.75rem}.facts{grid-template-columns:minmax(0,1fr);gap:var(--space-md);padding-block:var(--space-md)}.facts>div{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.3fr);align-items:center;gap:var(--space-sm)}.facts dt{font-size:1rem}.facts dd{font-size:.75rem;margin:0}.section-head{align-items:flex-start;flex-direction:column;gap:var(--space-lg)}.section-head h2{font-size:clamp(2.15rem,8vw,3.5rem)}.gallery-section{padding-top:var(--space-2xl)}.section-head p{margin-top:var(--space-sm);font-size:.95rem}.gallery-collage{grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--space-md);padding-block:var(--space-2xl) var(--space-xl)}.photo-one{grid-column:1/-1;height:270px;transform:rotate(-2deg);margin-right:8px}.photo-two{height:180px;transform:rotate(3deg);margin-left:0}.photo-three{height:180px;transform:rotate(-3deg);margin-left:-8px}.gallery-photo{border-width:3px}.gallery-photo:before{inset:-8px -4px -5px}.gallery-note{text-align:left;font-size:.8rem}.module-grid{grid-template-columns:minmax(0,1fr);gap:var(--space-2xl);margin-top:var(--space-xl)}.module-media{height:260px}.module h3{font-size:2rem}.module p{margin-bottom:var(--space-md)}.module-actions{justify-content:space-between}.module-actions button{padding-inline:var(--space-md)}.jam-type{font-size:4rem}.jam-type>span{font-size:2.3rem}.jam-orbit{width:340px;height:340px;right:-30px;top:-50px}.jam-orbit:after{top:110px;left:110px}.selection-bar{padding:var(--space-lg);margin-inline:calc(-1 * var(--page-gutter));gap:var(--space-md)}.selection-bar .cta{width:100%}footer{font-size:.7rem}.gallery-view img{height:53svh}.dialog-head{gap:var(--space-xs)}.dialog-head h2{font-size:1.25rem}dialog{padding:var(--space-md)}#request-dialog{padding:var(--space-lg)}}
@media(max-width:360px){.hero-stage{height:310px}.cta{font-size:.77rem;padding-inline:var(--space-sm);gap:var(--space-xs)}.photo-one{height:230px}.photo-two,.photo-three{height:150px}.module-media{height:230px}.facts{gap:var(--space-sm)}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{transition:none!important;animation:none!important}.cta:hover{transform:none}}
/* Hero controls stay clear of the wordmark and trailer. */
.hero-slider-controls{position:absolute;right:var(--space-lg);bottom:24px;display:flex;align-items:center;padding:0;gap:8px;color:var(--color-cream);z-index:2}
.hero-slider-controls[hidden]{display:none}
.hero-slider-controls button{display:grid;place-items:center;width:44px;height:44px;padding:0;border:1px solid rgb(255 255 255 / .55);border-radius:50%;background:rgb(20 17 15 / .65);color:inherit;font:inherit;font-size:1.1rem;cursor:pointer}
.hero-slider-controls button:hover{background:var(--color-cream);color:var(--color-dark)}
.hero-slider-controls button:focus-visible{outline:3px solid var(--color-gold);outline-offset:2px}
.hero-slider-controls [data-hero-pause]{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0}
.hero-slider-controls [data-hero-pause]:focus-visible{width:max-content;max-width:calc(100vw - 48px);height:auto;min-height:44px;right:0;bottom:calc(100% + 8px);padding:10px 14px;margin:0;overflow:visible;clip-path:none;white-space:normal;border-radius:8px;background:var(--color-dark);font-size:.8rem}
.photo-frame{touch-action:pan-y pinch-zoom}
.photo-frame #hero-image{object-position:var(--hero-position,50% 0%)}
@media(max-width:700px){.hero-slider-controls{top:12px;bottom:auto;right:12px}.photo-frame #hero-image{object-position:var(--hero-mobile-position,51% 42%)}}
/* Complete overlapping mark; desktop photography occupies most of the viewport. */
@media(min-width:701px){.hero-stage{height:clamp(440px,73svh,960px);width:calc(100% - var(--page-gutter)*2)}h1{font-size:clamp(5rem,16vw,14.4rem);white-space:nowrap;overflow-wrap:normal;bottom:-.38em}.hero-bottom{padding-top:var(--space-4xl);gap:var(--space-2xl)}.photo-frame img{object-position:50% 0%}[data-scene='theater'] .photo-frame img{object-position:50% 45%}}
@media(max-width:700px){h1{white-space:nowrap;overflow-wrap:normal;font-size:18.5vw}}
/* Trailer stays clear of the overlapping wordmark. */
.trailer{top:var(--space-lg);bottom:auto}
@media(max-width:700px){.trailer{top:auto;bottom:var(--space-3xl)}}
html{scroll-behavior:auto}
@media(max-width:700px){.stage-label{display:none}}
@media(min-width:701px) and (max-width:1000px){.section-head{flex-direction:column;align-items:flex-start;gap:var(--space-lg)}.module-intro{max-width:54ch}}
/* A dark printed label keeps every word of the DJ artwork legible. */
.jam-type{background:var(--color-dark);width:max-content;padding:var(--space-md);margin:var(--space-md);font-size:2.9rem}
@media(max-width:700px){.jam-type{font-size:3.5rem}.jam-type>span{font-size:2rem}}
/* Swipe gallery: keep the collage language; native scrolling replaces the extra gallery opener. */
.slider-controls{display:flex;align-items:center;gap:var(--space-md);flex:none}
.slider-controls button{display:grid;place-items:center;width:48px;height:48px;background:var(--color-transparent);color:var(--color-ink);border:1px solid var(--color-ink);border-radius:50%;font-size:1.3rem}
.slider-controls button:hover:not(:disabled){background:var(--color-gold);color:var(--color-dark)}
.slider-controls button:disabled{opacity:.35;cursor:default;border-color:var(--color-rule)}
#slider-position{min-width:60px;text-align:center;font-size:.9rem;font-weight:650;font-variant-numeric:tabular-nums}
.gallery-carousel{margin-top:var(--space-lg)}
.gallery-track{position:relative;display:flex;align-items:center;gap:12px;overflow-x:auto;overflow-y:hidden;scroll-snap-type:x mandatory;scroll-padding-inline:20px;overscroll-behavior-x:contain;scrollbar-width:none;list-style:none;margin:0 -20px;padding:var(--space-2xl) 20px;isolation:isolate;-webkit-overflow-scrolling:touch}
.gallery-track::-webkit-scrollbar{display:none}
.gallery-track:focus-visible{outline:3px solid var(--color-focus);outline-offset:0}
.gallery-slide{flex:0 0 calc((100% - 24px)/3);min-width:0;scroll-snap-align:start;position:relative;z-index:1}
.gallery-slide:nth-child(3n+2){z-index:2;transform:translateY(12px)}
.gallery-slide .gallery-photo{height:320px;margin:0;transform:rotate(-3deg);border:4px solid var(--color-gold)}
.gallery-slide:nth-child(3n+2) .gallery-photo{height:285px;transform:rotate(4deg)}
.gallery-slide:nth-child(3n) .gallery-photo{height:310px;transform:rotate(-2deg)}
.gallery-slide .gallery-photo:hover{transform:rotate(0deg)}
.gallery-slide .gallery-photo:before{inset:-12px -6px -8px;transform:rotate(3deg)}
.gallery-slide .photo-plus{top:var(--space-sm);bottom:auto;right:var(--space-sm);width:34px;height:34px;font-size:1.1rem}
.gallery-footer{display:flex;align-items:center;justify-content:space-between;gap:var(--space-md)}
.swipe-hint{display:flex;align-items:center;gap:var(--space-xs);font-size:.85rem;color:var(--color-muted)}
.touch-hint{display:none}.gallery-footer .gallery-note{width:auto;margin:0;font-size:.85rem}
/* Video links cover the image; their visible label stays clear of the duration. */
.module-video{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;text-decoration:none;z-index:2;--color-focus:var(--color-gold)}
.module-video:focus-visible{outline-offset:-5px}
.module-play{display:inline-flex;align-items:center;gap:var(--space-xs);padding:var(--space-sm) var(--space-md);background:var(--color-shade);color:var(--color-cream);border:1px solid var(--color-cream);border-radius:var(--radius-control);font-size:.8rem;font-weight:650;line-height:1;white-space:nowrap}
.module-video:hover .module-play{background:var(--color-dark)}
.module-play>span:first-child{font-size:.7rem}
.module-actions{justify-content:flex-end}
/* DJ: a paper sleeve and a smaller record; real photography stays visually dominant. */
.jam-art{background:var(--color-panel);border:1px solid var(--color-rule);color:var(--color-ink)}
.jam-orbit{width:205px;height:205px;right:-64px;top:20px;border:9px double var(--color-gold)}
.jam-orbit:after{width:60px;height:60px;top:62px;left:62px;border-width:17px}
.jam-type{background:var(--color-transparent);color:var(--color-ink);font-size:2.9rem;margin:var(--space-md);padding:var(--space-xs);transform:rotate(-4deg)}
.jam-type>span{font-size:1.6rem;color:var(--color-ink)}
.module-jam .module-video{align-items:flex-end;justify-content:flex-end;padding:var(--space-sm)}
.module-jam .module-play{font-size:.75rem;padding:var(--space-sm)}
.artwork-label{position:absolute;top:var(--space-sm);right:var(--space-sm);font-size:.65rem;color:var(--color-muted);background:var(--color-panel);padding:4px var(--space-xs);z-index:1}
@media(min-width:701px) and (max-width:1000px){.gallery-slide{flex-basis:calc((100% - 12px)/2.2)}.gallery-slide .gallery-photo{height:285px}.gallery-slide:nth-child(3n+2) .gallery-photo{height:250px}.gallery-slide:nth-child(3n) .gallery-photo{height:275px}.jam-type{font-size:2.2rem;margin:var(--space-sm)}.jam-type>span{font-size:1.2rem}.jam-orbit{width:175px;height:175px;right:-90px;top:16px}.jam-orbit:after{top:48px;left:48px}.module-jam .module-play{font-size:.65rem}}
@media(max-width:700px){
.gallery-section .section-head{gap:var(--space-md)}
.slider-controls{align-self:flex-end;gap:var(--space-sm)}.slider-controls button{width:42px;height:42px}
.gallery-carousel{width:100%;margin-top:0}.gallery-track{margin:0;padding:var(--space-xl) 20px;gap:12px;scroll-padding-inline:20px}
.gallery-slide{flex-basis:84%}.gallery-slide .gallery-photo{height:295px;border-width:3px;transform:rotate(-2deg)}.gallery-slide:nth-child(3n+2) .gallery-photo{height:280px;transform:rotate(3deg)}.gallery-slide:nth-child(3n) .gallery-photo{height:290px}
.gallery-slide .photo-plus{width:32px;height:32px}
.gallery-footer{align-items:flex-start;flex-direction:column;gap:var(--space-xs)}.touch-hint{display:inline}.desktop-hint{display:none}.gallery-footer .gallery-note{font-size:.75rem;font-weight:400;color:var(--color-muted)}
.modules-section{padding-top:var(--space-2xl)}.modules-section .section-head{gap:var(--space-md)}.modules-section .module-intro{margin-top:0;font-size:.95rem}
.module-grid{gap:var(--space-xl);margin-top:var(--space-lg)}.module-media{height:auto;aspect-ratio:1.7}.module-media img{position:absolute;inset:0;width:100%;height:100%}.module-body{padding-top:var(--space-md)}.module h3{font-size:1.7rem}.module h3 br{display:none}.module h3 br:after{content:' '}.module h3{max-width:21ch}.module p{margin-top:var(--space-xs);margin-bottom:var(--space-sm);font-size:.9rem;line-height:1.45}.module-actions{padding-top:var(--space-xs)}
.duration{font-size:.72rem;padding:6px var(--space-xs)}.module-play{font-size:.75rem;padding:var(--space-sm)}
.jam-type{font-size:2.5rem;margin:var(--space-sm)}.jam-type>span{font-size:1.4rem}.jam-orbit{width:175px;height:175px;right:-36px;top:8px}.jam-orbit:after{top:48px;left:48px}.module-jam .module-play{font-size:.7rem}.artwork-label{font-size:.6rem}
.selection-bar{margin-top:var(--space-xl)}
}
@media(max-width:360px){.gallery-slide .gallery-photo{height:260px}.gallery-slide:nth-child(3n+2) .gallery-photo{height:245px}.gallery-slide:nth-child(3n) .gallery-photo{height:255px}.module-media{height:auto}.module h3{font-size:1.5rem}.module-jam .module-play{font-size:.65rem}.jam-type{font-size:2.15rem}.jam-type>span{font-size:1.15rem}.jam-orbit{right:-64px}}
@media(prefers-reduced-motion:reduce){.gallery-slide .gallery-photo:hover{transform:rotate(-3deg)}.gallery-slide:nth-child(3n+2) .gallery-photo:hover{transform:rotate(4deg)}}
@media(min-width:701px) and (max-width:1000px){.module-jam .module-video{padding-bottom:56px}}
/* Planning + local booking: live-photo poster, format tickets, cream request sheet. */
.planning-section{padding-block:var(--space-3xl) var(--space-4xl)}
.planning-heading{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:end;gap:var(--space-2xl);margin-bottom:var(--space-2xl)}
.planning-heading>p{max-width:45ch;font-size:var(--text-lead);color:var(--color-muted)}
.planning-grid{display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);gap:var(--space-3xl);align-items:start}
.planning-photo{position:relative;margin:var(--space-sm) 0 0}
.planning-photo:before{content:'';position:absolute;inset:-8px 4px 12px -8px;background:var(--color-accent);transform:rotate(-2deg);z-index:-1}
.planning-photo img{width:100%;height:520px;object-fit:cover;object-position:center 35%;border:3px solid var(--color-gold)}
.planning-photo figcaption{display:inline-block;position:absolute;bottom:var(--space-lg);left:var(--space-md);right:var(--space-md);width:max-content;max-width:calc(100% - 32px);padding:var(--space-xs) var(--space-sm);background:var(--color-gold);color:var(--color-dark);font-size:.85rem;font-weight:650;transform:rotate(-2deg)}
.planning-options{min-width:0}.format-list{display:grid;gap:var(--space-md)}
.format-option{display:block;text-align:left;background:var(--color-panel);color:var(--color-ink);padding:var(--space-lg);border:2px solid var(--color-rule);width:100%;min-width:0}
.format-option:hover{border-color:var(--color-ink)}
.format-live{background:var(--color-gold);color:var(--color-dark);border-color:var(--color-gold)}
.format-head{display:flex;align-items:center;justify-content:space-between;gap:var(--space-md);font-size:1rem;line-height:1.2}
.format-check{display:grid;place-items:center;width:32px;height:32px;border:1px solid currentColor;border-radius:50%;font-weight:700;font-size:1rem}
.format-lengths{display:block;font-size:clamp(2rem,4vw,3.75rem);font-weight:800;line-height:1.1;letter-spacing:-.045em;margin-block:var(--space-xs)}
.format-lengths small{font-size:1rem;font-weight:500;letter-spacing:0;white-space:nowrap}
.format-detail{display:block;font-size:.85rem;line-height:1.4}
.format-pick{display:flex;align-items:center;justify-content:space-between;gap:var(--space-sm);margin-top:var(--space-md);font-size:.8rem;font-weight:650;white-space:nowrap}
.format-option[aria-pressed='true']{border-color:var(--color-accent);box-shadow:0 0 0 2px var(--color-accent)}
.format-option[aria-pressed='true'] .format-check{background:var(--color-accent);color:var(--color-accent-ink);border-color:var(--color-accent)}
.format-live:focus-visible{outline-color:var(--color-accent-ink)}
.format-status{font-size:.8rem;color:var(--color-muted);margin-block:var(--space-md);min-height:2.5em}
.planning-detail{border-block:1px solid var(--color-rule)}
.planning-detail summary{display:flex;align-items:center;justify-content:space-between;gap:var(--space-md);padding-block:var(--space-md);min-height:48px;cursor:pointer;font-size:.95rem;font-weight:650;list-style:none}
.planning-detail summary::-webkit-details-marker{display:none}.planning-detail summary:focus-visible{outline:3px solid var(--color-focus);outline-offset:4px}.planning-detail summary:hover{text-decoration:underline}.planning-detail[open] summary>span{transform:rotate(45deg)}
.planning-detail>div{padding-bottom:var(--space-md)}.planning-detail p{font-size:.9rem;color:var(--color-muted);margin-top:var(--space-sm)}.planning-detail strong{color:var(--color-ink)}
.booking-section{position:relative;padding-block:var(--space-4xl);background:var(--color-dark);color:var(--color-cream);border-top:8px solid var(--color-accent)}
.booking-grid{display:grid;grid-template-columns:minmax(0,.75fr) minmax(0,1.25fr);gap:var(--space-3xl);align-items:start}
.booking-intro{position:sticky;top:var(--space-xl)}
.demo-badge{display:inline-block;padding:var(--space-xs) var(--space-sm);background:var(--color-gold);color:var(--color-dark);font-size:.75rem;font-weight:650;transform:rotate(-2deg);margin-bottom:var(--space-lg)}
.booking-intro h2{font-size:clamp(2.75rem,4.8vw,4.5rem);line-height:.99;margin-bottom:var(--space-lg)}
.booking-intro>p{font-size:1.05rem;max-width:45ch;color:var(--color-cream)}
.booking-note{border-top:1px solid var(--color-booking-muted);padding-top:var(--space-lg);margin-top:var(--space-2xl)}
.booking-note strong{font-size:1rem;color:var(--color-gold)}.booking-note p{font-size:.95rem;margin-top:var(--space-xs);color:var(--color-booking-muted)}
.booking-intro .booking-demo-info{margin-top:var(--space-xl);color:var(--color-booking-muted);font-size:.8rem}
.booking-paper{position:relative;background:var(--color-cream);color:var(--color-dark);padding:var(--space-xl);--color-focus:var(--color-dark)}
.booking-paper:before{content:'';position:absolute;top:-8px;left:8px;right:8px;height:8px;background:var(--color-gold);transform:rotate(.5deg)}
.booking-form-head{margin-bottom:var(--space-lg)}.booking-form-head h3{font-size:1.5rem;line-height:1.1;letter-spacing:-.035em}.booking-form-head p{margin-top:var(--space-xs);font-size:.75rem;color:var(--color-form-muted)}
.booking-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--space-xs) var(--space-md)}.field{min-width:0}.field-wide{grid-column:1/-1}
.field label{display:block;font-size:.85rem;font-weight:650;margin-bottom:var(--space-xs)}.field label span{font-weight:400;font-size:.75rem}
.field input,.field select,.field textarea{width:100%;min-width:0;min-height:48px;display:block;border:1px solid var(--color-field-rule);border-radius:0;background:var(--color-field);color:var(--color-dark);font:inherit;font-size:.9rem;padding:var(--space-sm);outline:2px solid var(--color-transparent);outline-offset:2px}
.field select{padding-right:var(--space-xl)}.field textarea{min-height:92px;resize:vertical}
.field input::placeholder,.field textarea::placeholder{color:var(--color-form-muted);opacity:1}
.field input:focus-visible,.field select:focus-visible,.field textarea:focus-visible{outline-color:var(--color-dark)}
.field input:hover,.field select:hover,.field textarea:hover{border-color:var(--color-dark)}
.field input[aria-invalid='true']{border-color:var(--color-error)}
.field-error{display:block;min-height:1.3em;margin-top:4px;margin-bottom:var(--space-xs);font-size:.75rem;color:var(--color-error);line-height:1.3}
.booking-fields .field-wide{margin-bottom:var(--space-sm)}
.booking-extras{border:0;margin:var(--space-md) 0 var(--space-lg);padding:0;min-width:0}.booking-extras legend{font-size:.85rem;font-weight:650;margin-bottom:var(--space-sm)}
.booking-extras label{display:flex;align-items:center;gap:var(--space-sm);padding:var(--space-sm) 0;min-height:44px;font-size:.85rem;line-height:1.25;cursor:pointer}
.booking-extras input{width:20px;height:20px;flex:none;accent-color:var(--color-dark);margin:0}.booking-extras input:focus-visible{outline:3px solid var(--color-dark);outline-offset:4px}
.wishes-field{margin-bottom:var(--space-lg)}.booking-review{min-height:52px;display:inline-flex;align-items:center;justify-content:center;gap:var(--space-sm)}.booking-review:disabled{background:var(--color-panel);color:var(--color-dark);opacity:.55;cursor:not-allowed}
.booking-review.is-submitting{cursor:wait;opacity:.85}
.btn-spinner{display:inline-block;width:18px;height:18px;border:2.5px solid currentColor;border-right-color:transparent;border-radius:50%;animation:booking-spin .7s linear infinite}
@keyframes booking-spin{to{transform:rotate(360deg)}}
.booking-notification{margin-bottom:var(--space-lg)}
.booking-notice{display:flex;align-items:flex-start;gap:var(--space-md);padding:var(--space-md);border-radius:4px;font-size:.88rem;line-height:1.45}
.booking-notice-icon{font-size:1.25rem;line-height:1;flex-shrink:0}
.booking-notice-body{flex:1;min-width:0}
.booking-notice-body strong{display:block;margin-bottom:4px;font-weight:700}
.booking-notice-body p{margin:0 0 6px}
.booking-notice-body p:last-child{margin-bottom:0}
.booking-notice-body a{color:inherit;font-weight:650;text-decoration:underline;text-underline-offset:3px}
.booking-notice.is-error{background:var(--color-error-panel);border:1px solid var(--color-error);color:var(--color-error)}
:root[data-scene='theater'] .booking-notice.is-error{background:oklch(28% .04 25);border-color:oklch(65% .12 25);color:oklch(95% .03 25)}
.booking-notice.is-success{background:oklch(94% .035 140);border:1px solid oklch(55% .12 140);color:oklch(22% .08 140)}
:root[data-scene='theater'] .booking-notice.is-success{background:oklch(28% .04 140);border-color:oklch(65% .12 140);color:oklch(95% .03 140)}
.booking-toast{position:fixed;bottom:24px;right:24px;z-index:9999;max-width:min(440px,calc(100vw - 32px));padding:var(--space-md) var(--space-lg);background:var(--color-dark);color:var(--color-cream);border-left:5px solid var(--color-gold);box-shadow:0 12px 35px var(--color-shadow);font-size:.9rem;font-weight:650;display:flex;align-items:center;gap:var(--space-md);border-radius:4px;animation:toast-pop .25s var(--ease-out)}
.booking-toast.is-success{border-left-color:oklch(75% .16 140)}
.booking-toast.is-error{border-left-color:var(--color-accent)}
@keyframes toast-pop{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}
.booking-submit-note{font-size:.72rem;margin-top:var(--space-sm);color:var(--color-dark)}
.form-errors{padding:var(--space-md);margin-bottom:var(--space-lg);background:var(--color-error-panel);border:1px solid var(--color-error);color:var(--color-error);font-size:.85rem}
.form-errors ul{margin:var(--space-xs) 0 0;padding-left:var(--space-lg)}.form-errors li{margin-top:4px}.form-errors a{display:inline-flex;align-items:center;min-height:28px}
.booking-result{margin-top:var(--space-xl);padding-top:var(--space-lg);border-top:3px solid var(--color-dark)}.booking-result:focus{outline:3px solid var(--color-dark);outline-offset:8px}
.result-badge{display:inline-block;background:var(--color-gold);color:var(--color-dark);font-size:.75rem;font-weight:650;padding:var(--space-xs);margin-bottom:var(--space-md)}
.result-badge.is-success{background:oklch(88% .12 140);color:oklch(20% .08 140)}
:root[data-scene='theater'] .result-badge.is-success{background:oklch(35% .12 140);color:oklch(95% .03 140)}
.booking-result h3{font-size:2rem;line-height:1;letter-spacing:-.04em;margin-bottom:var(--space-sm)}.booking-result>p{font-size:.9rem}.booking-result dl{margin-block:var(--space-lg)}
.booking-result dl>div{display:grid;grid-template-columns:minmax(0,.7fr) minmax(0,1.3fr);gap:var(--space-md);padding-block:var(--space-sm);border-bottom:1px solid var(--color-field-rule);font-size:.85rem}
.booking-result dt{font-weight:650}.booking-result dd{overflow-wrap:anywhere;white-space:pre-wrap}
.booking-result .result-note{font-size:.8rem;line-height:1.45}
.booking-result-actions{display:flex;align-items:center;gap:var(--space-md);flex-wrap:wrap;margin-top:var(--space-md)}
.result-new{display:inline-flex;align-items:center;gap:var(--space-sm);min-height:48px;padding:var(--space-sm) var(--space-lg);background:var(--color-accent);color:var(--color-accent-ink);border-radius:var(--radius-control);font-size:.85rem;font-weight:750;text-decoration:none}
.result-new:hover{filter:brightness(1.08)}
.result-edit{display:inline-flex;align-items:center;gap:var(--space-md);min-height:48px;padding:var(--space-sm) 0;margin-top:var(--space-sm);background:var(--color-transparent);color:var(--color-dark);font-size:.85rem;font-weight:650;text-decoration:underline;text-underline-offset:4px}
@media(max-width:1000px){.planning-grid{gap:var(--space-xl)}.planning-photo img{height:460px}.format-option{padding:var(--space-md)}.format-lengths{font-size:2.5rem}.booking-grid{gap:var(--space-xl);grid-template-columns:minmax(0,.7fr) minmax(0,1.3fr)}.booking-paper{padding:var(--space-lg)}.booking-fields{grid-template-columns:minmax(0,1fr);gap:0}.booking-intro h2{font-size:2.8rem}.booking-intro>p{font-size:1rem}}
@media(max-width:700px){
.planning-section{padding-block:var(--space-2xl) var(--space-3xl)}.planning-heading{grid-template-columns:minmax(0,1fr);gap:var(--space-md);margin-bottom:var(--space-xl)}.planning-heading h2{font-size:clamp(2.15rem,8vw,3.5rem)}.planning-heading>p{font-size:1rem}
.planning-grid{grid-template-columns:minmax(0,1fr);gap:var(--space-xl)}.planning-photo{margin:0}.planning-photo img{height:235px;object-position:center 38%}.planning-photo figcaption{font-size:.75rem;bottom:var(--space-md)}
.format-head{font-size:.9rem}.format-lengths{font-size:clamp(2rem,8vw,3.25rem)}.format-lengths small{font-size:.8rem}.format-detail{font-size:.8rem}.format-pick{font-size:.75rem}.format-status{min-height:0;font-size:.75rem}.planning-detail summary{font-size:.9rem}
.booking-section{padding-block:var(--space-2xl)}.booking-grid{grid-template-columns:minmax(0,1fr);gap:var(--space-xl)}.booking-intro{position:static}.booking-intro h2{font-size:clamp(2.6rem,10vw,3.5rem)}.booking-note{margin-top:var(--space-lg);padding-top:var(--space-md)}.booking-intro .booking-demo-info{margin-top:var(--space-md);font-size:.75rem}.booking-paper{padding:var(--space-lg) var(--space-md);margin-inline:-4px}.booking-form-head h3{font-size:1.35rem}
.booking-fields{grid-template-columns:minmax(0,1fr)}.field input,.field select,.field textarea{font-size:1rem}.field label{font-size:.8rem}.booking-extras label{font-size:.8rem}.booking-review{width:100%;font-size:.85rem}.booking-result dl>div{grid-template-columns:minmax(0,1fr);gap:4px}.booking-result h3{font-size:1.75rem}
}

.planning-photo{isolation:isolate}.planning-photo img{object-position:center top}[data-scene="theater"] .planning-photo img{object-position:center}

.booking-result:focus{outline:none}.booking-result:focus-visible{outline:3px solid var(--color-dark);outline-offset:8px}
@media(max-width:700px){.booking-note{display:none}.booking-intro .booking-demo-info{margin-top:var(--space-md)}}

.format-field-note{display:block;min-height:3em;margin-top:var(--space-xs);font-size:.75rem;line-height:1.4;color:var(--color-form-muted)}

/* Visible control boundaries and selection rings in both colour schemes. */
.scene-switch,.slider-controls button:not(:disabled){border-color:var(--color-control-rule)}
.format-option[aria-pressed="true"]{border-color:var(--color-accent-contrast);box-shadow:0 0 0 2px var(--color-accent-contrast)}
/* Three concise planning facts replace the long technical disclosure. */
.gallery-controls{justify-content:space-between}
@media(max-width:700px){.site-credits p{right:auto;left:0}}
/* The company behind GROOVE beside the enquiry form. */
.booking-company{position:static;min-width:0}
.booking-intro.booking-company h2{font-size:clamp(2.5rem,3.8vw,3.6rem);margin-bottom:var(--space-lg)}
.booking-team-photo{position:relative;margin:0 4px var(--space-lg);isolation:isolate}
.booking-team-photo:before{content:'';position:absolute;inset:5px -5px -5px;background:var(--color-accent);transform:rotate(-1.5deg);z-index:-1}
.booking-team-photo img{display:block;width:100%;height:auto;aspect-ratio:16/9;border:2px solid var(--color-gold)}
.booking-intro .booking-company-copy{font-size:1rem;line-height:1.6;margin:0;color:var(--color-cream)}
.booking-company-link{display:inline-flex;align-items:center;gap:.6rem;min-height:44px;margin-top:.25rem;font-size:.9rem;font-weight:600;color:var(--color-gold);text-underline-offset:.25em}
.booking-invitation{margin-top:var(--space-lg);padding-top:var(--space-lg);border-top:1px solid var(--color-booking-muted)}
.booking-invitation p{font-size:.95rem;line-height:1.6;color:var(--color-cream)}
.booking-company a:focus-visible{outline:3px solid var(--color-gold);outline-offset:4px}
#booking-form:focus-visible{outline:3px solid var(--color-dark);outline-offset:8px}
@media(max-width:700px){.booking-intro.booking-company h2{font-size:clamp(2.5rem,10vw,3.5rem)}.booking-team-photo{margin-bottom:var(--space-lg)}.booking-company-copy{max-width:48ch}}
/* Company awards are available on demand without adding another contact block. */
.booking-awards{margin-top:var(--space-md);border-block:1px solid var(--color-booking-muted)}
.booking-awards summary{display:flex;align-items:center;justify-content:space-between;gap:var(--space-md);padding-block:var(--space-md);min-height:48px;list-style:none;cursor:pointer;font-size:.9rem;font-weight:600;line-height:1.4;color:var(--color-cream)}
.booking-awards summary::-webkit-details-marker{display:none}
.booking-awards summary>span{flex:none;font-size:1.3rem;font-weight:400;line-height:1}
.booking-awards[open] summary>span{transform:rotate(45deg)}
.booking-awards summary:hover{color:var(--color-gold)}
.booking-awards summary:focus-visible{outline:3px solid var(--color-gold);outline-offset:4px}
.booking-award-group{padding-block:var(--space-sm) var(--space-md)}
.booking-award-group+.booking-award-group{border-top:1px solid var(--color-booking-muted)}
.booking-awards .booking-award-group h3{margin:0 0 var(--space-sm);font-size:.7rem;font-weight:600;line-height:1.5;letter-spacing:.08em;text-transform:uppercase;color:var(--color-booking-muted)}
.booking-awards ul{list-style:none;padding:0;margin:0}
.booking-awards li{padding-block:var(--space-sm);border-top:1px solid var(--color-booking-muted);font-size:.9rem;line-height:1.5}
.booking-awards strong,.booking-awards li>span{display:block}
.booking-awards strong{font-weight:650;color:var(--color-gold)}
.booking-awards li>span{color:var(--color-cream);font-size:.85rem;margin-top:.2rem}
.booking-awards+.booking-invitation{border-top:0;margin-top:var(--space-md);padding-top:var(--space-sm)}

.hero-show-title{display:flex;align-items:baseline;flex-wrap:wrap;gap:.3em;font-size:clamp(1.15rem,1.65vw,1.5rem);line-height:1.35;margin-bottom:var(--space-sm)}.hero-show-title strong{font-weight:800;letter-spacing:-.035em}.hero-show-title em{font-size:.8em;font-weight:450}

@media(min-width:701px) and (max-width:1000px){.hero-copy .cta{font-size:.8rem;gap:var(--space-sm);padding-inline:var(--space-md)}}

/* tour.css */
/* Approved GROOVE tour concept: permanent country highlights + a local archive. */
.tour-sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0}
.tour-section{padding-block:var(--space-3xl) var(--space-4xl);background:var(--color-paper);color:var(--color-ink)}
.tour-eyebrow{font-size:.85rem;font-weight:650;letter-spacing:.13em;text-transform:uppercase;margin-bottom:var(--space-sm)}
.tour-heading h2{font-size:clamp(2.6rem,6.65vw,6.5rem);font-weight:850;line-height:1;letter-spacing:-.055em;overflow-wrap:normal}
.tour-dot{color:var(--color-accent)}
.tour-stats{display:grid;grid-template-columns:1fr .75fr 1fr 1.8fr;margin-top:var(--space-xl);padding:var(--space-xl) var(--space-lg);background:var(--color-dark);color:var(--color-cream)}
.tour-stats>div{display:flex;flex-direction:column;justify-content:center;min-width:0;padding-inline:var(--space-lg);border-left:1px solid var(--color-booking-muted)}
.tour-stats>div:first-child{border-left:0;padding-left:var(--space-sm)}
.tour-stats dt{font-size:clamp(.9rem,1.7vw,1.5rem);font-weight:650;line-height:1.15;margin-top:var(--space-xs)}
.tour-stats dd{order:-1;font-size:clamp(3rem,7.1vw,6.5rem);font-weight:850;line-height:.95;letter-spacing:-.055em;white-space:nowrap}
.tour-stats dd>span{font-size:.8em}
.tour-stat-audience dd{font-size:clamp(2.65rem,5.35vw,5.5rem)}
.tour-story{display:grid;grid-template-columns:minmax(0,2.1fr) minmax(0,1fr);column-gap:var(--space-xl);row-gap:var(--space-xl);margin-top:var(--space-2xl);align-items:start}
.tour-europe{min-width:0;grid-column:1;grid-row:1}
.tour-story-title{font-size:clamp(2.5rem,5.5vw,5.25rem);font-weight:800;line-height:.98;letter-spacing:-.05em;overflow-wrap:normal;position:relative;z-index:1}
.tour-europe-map{width:100%;height:auto;margin-top:var(--space-md)}
.tour-map-legend{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:var(--space-xs) var(--space-md);margin-top:var(--space-xs);color:var(--color-muted)}
.tour-map-legend>p:first-child{display:flex;align-items:center;gap:6px;font-size:.75rem;line-height:1.3}
.tour-legend-dot{width:7px;height:7px;border-radius:50%;background:var(--color-muted);margin-right:2px}
.tour-legend-highlight{display:inline-grid;place-items:center;width:22px;height:22px;background:var(--color-accent);color:var(--color-dark);border-radius:50%;font-size:.65rem;font-weight:700;margin-left:var(--space-xs)}
.tour-map-credit{font-size:.65rem;line-height:1.3}
.tour-highlights{list-style:none;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-template-rows:repeat(3,auto);grid-auto-flow:column;gap:var(--space-lg) var(--space-md);margin:var(--space-md) 0 0;padding:0}
.tour-highlights li{display:flex;align-items:flex-start;gap:var(--space-sm);min-width:0}
.tour-number{display:inline-grid;place-items:center;flex:none;width:42px;height:42px;border-radius:50%;background:var(--color-accent);color:var(--color-accent-ink);font-size:1.05rem;font-weight:750;line-height:1;font-variant-numeric:tabular-nums}
.tour-highlights h4{font-size:clamp(.95rem,1.5vw,1.3rem);font-weight:750;line-height:1.12;letter-spacing:-.025em;margin:0 0 5px;overflow-wrap:anywhere}
.tour-highlights p{font-size:clamp(.8rem,1.15vw,1rem);color:var(--color-muted);line-height:1.3}
.tour-flag{white-space:nowrap;margin-right:3px}
.tour-vietnam{position:relative;grid-column:2;grid-row:1;min-width:0;background:var(--color-gold);color:var(--color-dark);padding:var(--space-lg);margin:var(--space-sm) 0 0;transform:rotate(-2deg);--color-focus:var(--color-dark)}
.tour-vietnam-map{width:100%;height:auto;margin-bottom:var(--space-lg)}
.tour-vietnam-country{display:flex;align-items:center;gap:var(--space-sm);font-size:1.1rem;font-weight:700;margin-bottom:var(--space-md)}
.tour-vietnam h3{font-size:clamp(2rem,3.7vw,3.75rem);font-weight:800;line-height:.98;letter-spacing:-.045em;overflow-wrap:normal;margin-bottom:var(--space-lg)}
.tour-vietnam-place{font-size:clamp(.9rem,1.5vw,1.25rem);font-weight:650;line-height:1.3;margin-bottom:var(--space-xs)}
.tour-vietnam-copy{font-size:clamp(.95rem,1.6vw,1.3rem);line-height:1.35;max-width:24ch}
.tour-film{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-lg);background:var(--color-dark);color:var(--color-cream);border-radius:var(--radius-control);padding:var(--space-sm) var(--space-lg);min-height:48px;max-width:100%;font-size:1rem;font-weight:650;text-decoration:none;margin-top:var(--space-lg)}
.tour-film:hover{background:var(--color-accent);color:var(--color-dark)}
.tour-postcard{position:relative;grid-column:1;grid-row:2;margin:var(--space-sm) var(--space-sm) var(--space-md);padding:5px 5px 0;background:var(--color-accent);color:var(--color-dark);transform:rotate(2deg);isolation:isolate}
.tour-postcard:before{content:'';position:absolute;inset:6px -8px 8px;background:var(--color-gold);transform:rotate(-4deg);z-index:-1}
.tour-postcard img{width:100%;height:auto;border:0}
.tour-postcard figcaption{padding:var(--space-xs) var(--space-sm);font-size:.9rem;font-weight:650;line-height:1.3}
.tour-archive{margin-top:var(--space-2xl);border-top:5px solid var(--color-ink);scroll-margin-top:var(--space-lg)}
.tour-archive-head{display:flex;align-items:center;justify-content:space-between;gap:var(--space-lg);padding-block:var(--space-md) var(--space-xs)}
.tour-archive-head h3{font-size:clamp(2.15rem,4vw,4rem);font-weight:800;line-height:1;letter-spacing:-.05em;overflow-wrap:normal}
.tour-year-filters{display:flex;flex-wrap:wrap;gap:var(--space-xs)}
.tour-year-filters[hidden]{display:none}
.tour-year-filters button{border:1px solid var(--color-rule);border-radius:var(--radius-control);background:var(--color-transparent);color:var(--color-ink);min-width:64px;min-height:44px;padding:var(--space-xs) var(--space-md);font-size:.85rem;line-height:1}
.tour-year-filters button[aria-pressed='true']{background:var(--color-ink);color:var(--color-paper);border-color:var(--color-ink);font-weight:650}
.tour-year-filters button:hover:not([aria-pressed='true']){background:var(--color-gold);color:var(--color-dark);border-color:var(--color-gold)}
.tour-archive-status{font-size:.8rem;color:var(--color-muted);margin-bottom:var(--space-sm);min-height:1.5em}
.tour-rows{list-style:none;margin:0;padding:0}
.tour-row,.tour-column-head{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(0,1fr) 54px minmax(0,1fr);align-items:center;column-gap:var(--space-md);row-gap:var(--space-xs);padding:var(--space-sm) var(--space-xs);font-size:.9rem;line-height:1.3}
.tour-row{border-top:1px solid var(--color-rule)}
.tour-column-head{font-size:.7rem;font-weight:650;letter-spacing:.08em;text-transform:uppercase;color:var(--color-muted)}
.tour-year-panel[hidden]{display:none}
.tour-year-heading{font-size:1.15rem;margin-block:var(--space-lg) var(--space-sm)}
.tour-archive[data-enhanced] .tour-year-heading{position:absolute;width:1px;height:1px;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
.tour-row-event{font-weight:650;overflow-wrap:anywhere}
.tour-row-city{color:var(--color-muted);overflow-wrap:anywhere}
.tour-row-country{display:inline-flex;align-items:center;gap:4px;font-size:1.35rem;line-height:1;white-space:nowrap}
.tour-variants{display:flex;justify-content:flex-start;flex-wrap:wrap;gap:6px}
.tour-variant{display:inline-flex;align-items:center;justify-content:center;min-height:28px;padding:5px 10px;border-radius:var(--radius-control);font-size:.75rem;font-weight:600;line-height:1;white-space:nowrap}
.tour-variant[data-variant='on the street']{background:var(--color-accent);color:var(--color-dark)}
.tour-variant[data-variant='in the theatre']{background:var(--color-dark);color:var(--color-cream)}
.tour-variant[data-variant='with live music']{background:var(--color-gold);color:var(--color-dark)}
[data-scene='theater'] .tour-variant[data-variant='in the theatre']{box-shadow:inset 0 0 0 1px var(--color-rule)}
.tour-more>summary{display:flex;align-items:center;justify-content:center;gap:var(--space-lg);width:max-content;max-width:100%;min-height:48px;padding:var(--space-sm) var(--space-lg);margin:var(--space-md) auto 0;border-radius:var(--radius-control);background:var(--color-accent);color:var(--color-dark);font-size:.9rem;font-weight:650;line-height:1.25;list-style:none;cursor:pointer;text-align:center}
.tour-more>summary::-webkit-details-marker{display:none}
.tour-more>summary:hover{box-shadow:inset 0 0 0 2px var(--color-dark)}
.tour-more>summary:focus-visible{outline:3px solid var(--color-focus);outline-offset:5px}
.tour-more .tour-show-open,.tour-more[open] .tour-show-closed{display:none}
.tour-more[open] .tour-show-open{display:inline}
.tour-more[open] .tour-rows{margin-top:var(--space-md)}
.tour-archive-note{font-size:.75rem;color:var(--color-muted);max-width:80ch;margin-top:var(--space-lg)}
@media(min-width:1500px){.tour-stats dd{font-size:7rem}.tour-stat-audience dd{font-size:5.5rem}}
@media(max-width:1000px){
 .tour-stats{padding:var(--space-lg) var(--space-sm)}.tour-stats>div{padding-inline:var(--space-md)}
 .tour-story{column-gap:var(--space-lg)}.tour-highlights{column-gap:var(--space-sm)}.tour-number{width:34px;height:34px;font-size:.9rem}.tour-highlights li{gap:var(--space-xs)}
 .tour-vietnam{padding:var(--space-md);transform:rotate(-1deg)}.tour-vietnam h3{font-size:clamp(2rem,4vw,3rem)}.tour-vietnam-country{font-size:.95rem;gap:var(--space-xs)}
 .tour-film{font-size:.9rem;padding-inline:var(--space-md);gap:var(--space-sm)}
 .tour-archive-head{align-items:flex-start;flex-direction:column;gap:var(--space-md)}
 .tour-row,.tour-column-head{grid-template-columns:minmax(0,1.3fr) minmax(0,1fr) 54px minmax(0,1fr);column-gap:var(--space-sm)}.tour-row{font-size:.8rem}
 .tour-variant{font-size:.7rem;padding-inline:8px}
}
@media(max-width:700px){
 .tour-section{padding-block:var(--space-2xl) var(--space-3xl)}
 .tour-eyebrow{font-size:.7rem;letter-spacing:.12em}
 .tour-heading h2{font-size:clamp(2.2rem,9.5vw,4rem);line-height:1.02;max-width:13ch;overflow-wrap:normal}
 .tour-stats{grid-template-columns:repeat(2,minmax(0,1fr));padding:var(--space-lg) var(--space-md);gap:var(--space-lg) 0;margin-top:var(--space-lg)}
 .tour-stats>div{padding:0 var(--space-md);border:0;border-left:1px solid var(--color-booking-muted);justify-content:flex-start}
 .tour-stats>div:nth-child(odd){border-left:0;padding-left:0}.tour-stats>div:nth-child(even){padding-right:0}
 .tour-stats dd{font-size:clamp(2.5rem,11vw,4.8rem)}.tour-stats dt{font-size:clamp(.8rem,3.3vw,1.1rem);font-weight:600;line-height:1.2}
 .tour-stat-audience dd{font-size:clamp(1.2rem,6vw,2.65rem);line-height:1.1;padding-top:.18em}.tour-stat-audience dt{max-width:14ch}
 .tour-story{grid-template-columns:minmax(0,1fr);gap:var(--space-xl);margin-top:var(--space-xl)}
 .tour-europe{grid-column:1;grid-row:1}.tour-story-title{font-size:clamp(2.2rem,9vw,3.75rem)}
 .tour-europe-map{margin-top:var(--space-sm)}
 .tour-highlights{grid-template-columns:minmax(0,1fr);grid-template-rows:none;grid-auto-flow:row;gap:0;margin-top:var(--space-sm)}
 .tour-highlights li{gap:var(--space-sm);align-items:center;padding-block:var(--space-sm);border-bottom:1px solid var(--color-rule)}
 .tour-number{width:38px;height:38px;font-size:.95rem}.tour-highlights h4{font-size:1.05rem;margin-bottom:4px}.tour-highlights p{font-size:.85rem}
 .tour-vietnam{grid-column:1;grid-row:2;display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:var(--space-sm) var(--space-md);transform:none;padding:var(--space-lg) var(--space-md);margin:0;align-items:start}
 .tour-vietnam-map{grid-column:1;grid-row:2 / span 4;align-self:center;margin:0}
 .tour-vietnam-country{grid-column:1 / -1;margin:0;font-size:1.05rem}
 .tour-vietnam h3{grid-column:2;font-size:clamp(1.9rem,7vw,2.8rem);margin:0}
 .tour-vietnam-place{grid-column:2;font-size:.85rem;line-height:1.3;margin:0}
 .tour-vietnam-copy{grid-column:2;font-size:.85rem;line-height:1.35}
 .tour-film{grid-column:1 / -1;justify-self:start;font-size:.9rem;margin:var(--space-xs) 0 0;min-height:48px}
 .tour-postcard{grid-column:1;grid-row:3;margin:0 2px var(--space-sm);transform:rotate(1.5deg)}.tour-postcard figcaption{font-size:.75rem;padding:var(--space-xs)}
 .tour-archive{margin-top:var(--space-xl);border-top-width:4px}.tour-archive-head{padding-top:var(--space-md)}.tour-archive-head h3{font-size:clamp(2rem,8vw,3rem)}
 .tour-year-filters{gap:6px;flex-wrap:nowrap;width:100%}.tour-year-filters button{flex:1;min-width:0;min-height:44px;padding:var(--space-xs) 5px;font-size:.8rem}
 .tour-archive-status{font-size:.75rem;margin-top:var(--space-xs)}
 .tour-column-head{display:none}
 .tour-row{grid-template-columns:minmax(0,1fr) 52px;align-items:center;padding:var(--space-md) 0;column-gap:var(--space-sm);row-gap:var(--space-xs);font-size:.9rem}
 .tour-row-event{grid-column:1 / -1;font-size:1rem;line-height:1.2}.tour-row-city{grid-column:1;font-size:.8rem}.tour-row-country{grid-column:2;grid-row:2;font-size:1.25rem;justify-self:end}
 .tour-variants{grid-column:1 / -1;justify-content:flex-start}.tour-variant{font-size:.7rem;min-height:27px;padding-inline:9px}
 .tour-more>summary{font-size:.85rem;padding-inline:var(--space-md);min-height:48px;margin-top:var(--space-sm)}.tour-archive-note{font-size:.72rem;line-height:1.45}
}
@media(prefers-reduced-motion:reduce){.tour-section{scroll-behavior:auto}}

.tour-year-filters button:not([aria-pressed="true"]){border-color:var(--color-control-rule)}

/* showreel.css */
/* Familiar video covers, big play controls and real trailer thumbnails. */
.showreel-section{background:var(--color-panel);color:var(--color-ink);padding-block:var(--space-3xl);scroll-margin-top:var(--space-lg)}
.showreel-heading{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,1fr);gap:var(--space-2xl);align-items:end;margin-bottom:var(--space-xl)}
.showreel-kicker{font-size:.8rem;font-weight:650;letter-spacing:.1em;text-transform:uppercase;margin-bottom:var(--space-sm)}
.showreel-heading h2{font-size:clamp(2.6rem,5.4vw,5.2rem);font-weight:800;line-height:1;letter-spacing:-.05em;overflow-wrap:normal}
.showreel-heading>p{font-size:var(--text-lead);color:var(--color-muted);max-width:42ch}
.showreel-grid{display:none;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--space-lg)}
[data-scene='festival'] .showreel-grid[data-showreel-scene='festival'],[data-scene='theater'] .showreel-grid[data-showreel-scene='theater']{display:grid}
.showreel-grid--theater{grid-template-columns:minmax(0,1fr);width:min(100%,960px);margin-inline:auto}
.trailer-card{display:flex;flex-direction:column;min-width:0;text-decoration:none;background:var(--color-paper);border:1px solid var(--color-rule);border-bottom:4px solid var(--color-accent)}
.trailer-card--live{border-bottom-color:var(--color-gold)}
.trailer-card-screen{position:relative;aspect-ratio:16/9;overflow:hidden;background:var(--color-dark);isolation:isolate}
.trailer-card-screen img{width:100%;height:100%;object-fit:cover;transition:transform var(--dur-micro) var(--ease-out)}
.trailer-card-category{position:absolute;top:var(--space-md);left:var(--space-md);padding:7px 11px;border-radius:var(--radius-control);font-size:.75rem;font-weight:650;line-height:1;white-space:nowrap}
.trailer-card-category--street{background:var(--color-accent);color:var(--color-dark)}
.trailer-card-category--live{background:var(--color-gold);color:var(--color-dark)}
.trailer-card-category--theater{background:var(--color-dark);color:var(--color-cream);border:1px solid var(--color-booking-muted)}
.trailer-card-play{display:grid;place-items:center;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:76px;height:76px;padding-left:4px;border:2px solid var(--color-cream);border-radius:50%;background:var(--color-shade);color:var(--color-cream);font-size:1.6rem;line-height:1;box-shadow:0 4px 24px var(--color-shadow);transition:background var(--dur-micro) var(--ease-out),color var(--dur-micro) var(--ease-out)}
.trailer-card-body{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:var(--space-sm) var(--space-md);padding:var(--space-lg);flex:1}
.trailer-card h3{font-size:clamp(1.2rem,1.8vw,1.65rem);font-weight:700;line-height:1.15;letter-spacing:-.025em;overflow-wrap:normal}
.trailer-card-action{display:inline-flex;align-items:center;gap:var(--space-sm);font-size:.85rem;font-weight:650;line-height:1.3;white-space:nowrap;text-decoration:underline;text-underline-offset:4px}
.trailer-card:hover .trailer-card-play,.trailer-card:focus-visible .trailer-card-play{background:var(--color-accent);color:var(--color-dark)}
.trailer-card--live:hover .trailer-card-play,.trailer-card--live:focus-visible .trailer-card-play{background:var(--color-gold);color:var(--color-dark)}
.trailer-card:hover .trailer-card-screen img{transform:scale(1.025)}
.showreel-external-note{margin-top:var(--space-md);font-size:.75rem;color:var(--color-muted)}
@media(max-width:1000px){.showreel-heading{grid-template-columns:minmax(0,1fr);gap:var(--space-md)}.showreel-heading>p{max-width:60ch;font-size:1rem}.trailer-card-body{padding:var(--space-md)}.trailer-card h3{font-size:1.25rem}}
@media(max-width:700px){
 .showreel-section{padding-block:var(--space-2xl)}.showreel-heading{margin-bottom:var(--space-lg)}.showreel-heading h2{font-size:clamp(2.2rem,9vw,3.75rem)}.showreel-kicker{font-size:.7rem;margin-bottom:var(--space-xs)}.showreel-heading>p{font-size:.95rem}
 .showreel-grid{grid-template-columns:minmax(0,1fr);gap:var(--space-lg)}.trailer-card-play{width:60px;height:60px;font-size:1.25rem}.trailer-card-category{top:var(--space-sm);left:var(--space-sm);font-size:.7rem;padding:6px 9px}.trailer-card-body{padding:var(--space-md);gap:var(--space-sm)}.trailer-card h3{font-size:1.2rem}.trailer-card-action{font-size:.8rem}.showreel-external-note{font-size:.7rem}
}
@media(prefers-reduced-motion:reduce){.trailer-card:hover .trailer-card-screen img{transform:none}}

/* funding.css */
/* A quiet closing credit strip, shared by the festival and theater views. */
.funding-section {
  background: #fff;
  color: var(--color-dark);
  border-top: 1px solid var(--color-gold);
  padding-block: 2rem 2.25rem;
  scroll-margin-top: 1rem;
}
.funding-section h2 {
  font-size: clamp(1.5rem, 2.1vw, 2rem);
  line-height: 1.15;
  letter-spacing: -.035em;
  margin: 0 0 1.25rem;
}
.funding-section h2 span { color: var(--color-accent); }
.funding-layout {
  display: grid;
  grid-template-columns: minmax(0, 3fr) minmax(230px, 1fr);
  gap: clamp(1.5rem, 3vw, 3rem);
}
.funding-main { min-width: 0; }
.funding-logos {
  display: grid;
  grid-template-columns: 1fr .8fr 1.4fr;
  align-items: center;
  gap: 1.5rem;
}
.funding-logos img { object-fit: contain; justify-self: center; }
.funding-logos-primary { min-height: 78px; }
.funding-logos-primary .support-npn { width: 190px; }
.funding-logos-primary .support-neustart { width: 80px; }
.funding-logos-primary .support-bkm { width: 280px; }
.funding-credit {
  font-size: .875rem;
  line-height: 1.55;
  margin: 1rem 0 1.25rem;
  max-width: 880px;
}
.funding-section h3 { font-size: 1rem; line-height: 1.35; margin: 0 0 .5rem; font-weight: 700; }
.funding-logos-secondary { min-height: 66px; }
.funding-logos-secondary .support-gvl { width: 94px; }
.funding-logos-secondary .support-dtd { width: 200px; }
.funding-logos-secondary .support-fonds { width: 170px; }
.funding-cooperation { border-left: 1px solid var(--color-gold); padding: 1.25rem 0 0 2rem; }
.funding-cooperation img { width: 190px; margin-block: 1.25rem 1rem; }
.funding-cooperation p { font-size: .875rem; line-height: 1.5; }
@media (max-width: 900px) {
  .funding-layout { grid-template-columns: minmax(0, 1fr); gap: 1.5rem; }
  .funding-cooperation { border-left: 0; border-top: 1px solid var(--color-gold); padding: 1.25rem 0 0; }
  .funding-cooperation img { width: 170px; margin-block: 1rem .75rem; }
}
@media (max-width: 540px) {
  .funding-section { padding-block: 1.75rem; }
  .funding-logos { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 1rem 1.25rem; }
  .funding-logos-primary .support-npn { width: 165px; }
  .funding-logos-primary .support-neustart { width: 72px; }
  .funding-logos-primary .support-bkm { grid-column: 1 / -1; justify-self: start; width: 260px; }
  .funding-credit { font-size: .8125rem; margin-block: .875rem 1.25rem; }
  .funding-logos-secondary { row-gap: .875rem; }
  .funding-logos-secondary .support-gvl { width: 85px; }
  .funding-logos-secondary .support-dtd { width: 170px; }
  .funding-logos-secondary .support-fonds { width: 160px; grid-column: 1 / -1; justify-self: start; }
}

/* video-modal.css */
#video-dialog {
  width: min(1120px, calc(100vw - 3rem));
  max-width: none;
  max-height: calc(100svh - 2rem);
  padding: 0;
  background: var(--color-dark);
  color: var(--color-cream);
  border: 1px solid var(--color-gold);
  box-shadow: 0 24px 100px rgb(0 0 0 / .4);
}
#video-dialog::backdrop {
  background: rgb(12 10 9 / .65);
  -webkit-backdrop-filter: blur(12px);
  backdrop-filter: blur(12px);
}
.video-dialog-head { display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding: 1rem 1.25rem; }
#video-dialog-title { font-size: clamp(1.1rem, 2vw, 1.5rem); line-height: 1.2; letter-spacing: -.025em; }
.video-dialog-close { display: flex; align-items: center; gap: .75rem; flex-shrink: 0; min-height: 44px; padding: .25rem 1rem; border: 1px solid currentColor; border-radius: 100px; background: transparent; color: inherit; font: inherit; cursor: pointer; }
.video-dialog-close span { font-size: 1.75rem; line-height: 1; }
.video-dialog-close:hover { background: var(--color-accent); color: var(--color-dark); border-color: var(--color-accent); }
#video-dialog :focus-visible { outline: 3px solid var(--color-gold); outline-offset: 3px; }
.video-player { position: relative; aspect-ratio: 16 / 9; min-height: 200px; max-height: calc(100svh - 170px); background: #000; }
.video-player iframe { display: block; width: 100%; height: 100%; position: absolute; inset: 0; border: 0; }
.video-dialog-foot { padding: .625rem 1.25rem; text-align: right; font-size: .75rem; }
.video-dialog-foot a { text-decoration: underline; text-underline-offset: 3px; }
@media(max-width: 540px) {
  #video-dialog { width: calc(100vw - 1rem); max-height: calc(100svh - 1rem); }
  .video-dialog-head { padding: .75rem; gap: .5rem; }
  .video-dialog-close { padding-inline: .75rem; gap: .5rem; font-size: .75rem; }
  .video-dialog-foot { padding-inline: .75rem; }
}
@media(max-height: 440px) {
  #video-dialog { max-height: calc(100svh - 1rem); }
  .video-dialog-head { padding-block: .25rem; }
  .video-player { min-height: 0; height: calc(100svh - 105px); }
  .video-dialog-foot { padding-block: .25rem; }
}

/* faq.css */
/* Shared visual language: strong type, open rows, coral and gold accents. */
.hero-category { max-width: 44ch; }
.scene-switch a { text-decoration: none; text-align: center; }
.faq-section { padding-block: var(--space-3xl); border-top: 1px solid var(--color-rule); scroll-margin-top: var(--space-lg); }
.faq-layout { display: grid; grid-template-columns: minmax(0, .85fr) minmax(0, 1.15fr); gap: var(--space-3xl); align-items: start; }
.faq-section h2 { font-size: clamp(2.6rem, 5vw, 4.5rem); line-height: 1; }
.faq-section h2 span { color: var(--color-accent); }
.faq-list { border-top: 3px solid var(--color-gold); min-width: 0; }
.faq-item { border-bottom: 1px solid var(--color-rule); }
.faq-item summary { display: grid; grid-template-columns: minmax(0, 1fr) 1.5rem; align-items: center; gap: .75rem; list-style: none; padding-block: 1.25rem; min-height: 64px; font-size: 1.1rem; font-weight: 650; line-height: 1.3; cursor: pointer; }
.faq-item summary::-webkit-details-marker { display: none; }
.faq-number { font-size: .75rem; font-weight: 600; color: var(--color-muted); align-self: start; padding-top: .25rem; }
.faq-toggle { font-size: 1.5rem; font-weight: 400; line-height: 1; text-align: center; }
.faq-toggle::before { content: '+'; }
.faq-item[open] .faq-toggle::before { content: '×'; }
.faq-item summary:hover .faq-question { text-decoration: underline; text-decoration-color: var(--color-accent); text-underline-offset: .2em; }
.faq-item summary:focus-visible { outline: 3px solid var(--color-focus); outline-offset: 4px; }
.faq-item p { font-size: 1rem; line-height: 1.6; color: var(--color-muted); padding: 0 2.25rem 1.5rem 0; max-width: 65ch; }
@media(max-width: 800px) {
  .faq-layout { grid-template-columns: minmax(0, 1fr); gap: var(--space-xl); }
  .faq-section { padding-block: var(--space-2xl); }
}
@media(max-width: 540px) {
  .faq-section h2 { font-size: clamp(2.4rem, 10vw, 3.4rem); }
  .faq-item summary { gap: .5rem; grid-template-columns: minmax(0, 1fr) 1.25rem; font-size: 1rem; padding-block: 1rem; }
  .faq-item p { font-size: .95rem; padding: 0 .25rem 1.25rem 0; }
}

/* languages.css */
.topbar-actions { display: flex; align-items: center; gap: 1.5rem; }
.language-switch { display: flex; align-items: center; gap: .125rem; }
.language-switch a { display: grid; place-items: center; min-width: 38px; min-height: 40px; font-size: .75rem; font-weight: 650; text-decoration: none; border-bottom: 2px solid transparent; }
.language-switch a[aria-current=page] { border-color: var(--color-accent-contrast); }
.language-switch a:hover { border-color: var(--color-accent-contrast); }
.footer-links { display: flex; align-items: center; flex-wrap: wrap; justify-content: center; gap: .5rem 1.25rem; }
footer.wrap { gap: 1rem; flex-wrap: wrap; }
.site-credits { position: relative; }
.site-credits summary { min-height: 44px; display: flex; align-items: center; cursor: pointer; text-decoration: underline; text-underline-offset: .2em; list-style: none; }
.site-credits summary::-webkit-details-marker { display: none; }
.site-credits summary:focus-visible { outline: 3px solid var(--color-focus); outline-offset: 3px; }
.site-credits p { position: absolute; z-index: 4; bottom: 100%; right: 0; width: min(300px,80vw); padding: 1rem; border: 1px solid var(--color-control-rule); background: var(--color-paper); color: var(--color-ink); line-height: 1.6; }
.site-credits p a { display: inline; min-height: 0; white-space: normal; }
@media(max-width:700px) {
 .topbar-actions { gap: .625rem; }
 .language-switch a { min-width: 26px; min-height: 34px; font-size: .7rem; }
 .topbar-actions .nav-link { font-size: .75rem; gap: .375rem; }
 footer.wrap { padding-block: 1.75rem; }
 .footer-links { width: 100%; justify-content: flex-start; order: 3; }
}
