@font-face{font-family:'Barlow Condensed';font-style:normal;font-weight:600;font-display:swap;src:url(fonts/barlow-condensed-600.woff2) format('woff2')}
@font-face{font-family:'Barlow Condensed';font-style:normal;font-weight:700;font-display:swap;src:url(fonts/barlow-condensed-700.woff2) format('woff2')}
@font-face{font-family:'DM Sans';font-style:normal;font-weight:400;font-display:swap;src:url(fonts/dm-sans-400.woff2) format('woff2')}
@font-face{font-family:'DM Sans';font-style:normal;font-weight:600;font-display:swap;src:url(fonts/dm-sans-600.woff2) format('woff2')}
@font-face{font-family:'DM Sans';font-style:normal;font-weight:700;font-display:swap;src:url(fonts/dm-sans-700.woff2) format('woff2')}
@font-face{font-family:'DM Sans';font-style:normal;font-weight:800;font-display:swap;src:url(fonts/dm-sans-800.woff2) format('woff2')}
@font-face{font-family:'DM Sans';font-style:normal;font-weight:900;font-display:swap;src:url(fonts/dm-sans-900.woff2) format('woff2')}
@font-face{font-family:'Gelasio';font-style:normal;font-weight:400;font-display:swap;src:url(fonts/gelasio-400.woff2) format('woff2')}
:root{--sy:clamp(72px,9vw,128px);--sy2:clamp(84px,10vw,144px);--ink:#0B0B0B;--paper:#F4EFE7;--cream:#131210;--accent:#D6B980;--accent-hover:#BFA168;--radius:8px;--muted:#b5aaa0;--line-strong:#43382c;--surface:#151311;--error:#D89B5A;--line:rgba(244,239,231,.16);--sans:'DM Sans',Arial,sans-serif;--cond:'Barlow Condensed',Arial,sans-serif;--serif:Gelasio,Georgia,'Times New Roman',serif}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:100px;color-scheme:dark;scrollbar-gutter:stable}body{margin:0;background:var(--ink);color:var(--paper);font-family:var(--sans);font-size:16px;-webkit-font-smoothing:antialiased}button,a{-webkit-tap-highlight-color:transparent;touch-action:manipulation}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}a{color:inherit;text-decoration:none}button{font:inherit;color:inherit;cursor:pointer}button,input{border-radius:0}img{max-width:100%;height:auto;display:block}button{border:0}::selection{background:var(--accent);color:var(--ink)}:focus-visible{outline:3px solid var(--accent);outline-offset:6px}p{line-height:1.55}h1,h2,h3,p{margin:0}figure{margin:0}em{font-family:var(--serif);font-weight:400;letter-spacing:-.045em;font-style:normal}main{overflow:clip}.eyebrow{font-size:11px;font-weight:700;letter-spacing:.13em;text-transform:uppercase;line-height:1.5}.icon-sprite{position:absolute;width:0;height:0;overflow:hidden}.arrow{display:inline-flex;width:1em;height:1em;vertical-align:-.14em;flex:none}.arrow svg{width:100%;height:100%;display:block}.arrow--up{transform:rotate(-45deg)}.pill{display:inline-flex;align-items:center;justify-content:center;gap:24px;min-height:48px;padding:13px 20px;background:var(--accent);color:var(--ink);border-radius:var(--radius);font:700 17px var(--cond);text-transform:uppercase;transition:background .25s,transform .3s,scale .15s}@media(hover:hover){.pill:hover{background:var(--accent-hover);color:var(--ink);transform:translateY(-3px)}}.pill .arrow{font-size:22px}.square{display:grid;place-items:center;flex:none;width:48px;height:48px;background:var(--accent);color:var(--ink);border-radius:var(--radius);font-size:23px;transition:transform .3s,rotate .3s,background .3s,scale .15s}@media(hover:hover){.square:hover{rotate:-8deg;background:var(--accent-hover)}}.square svg{width:20px;height:20px}.square .icon-w{transform:rotate(225deg)}.square .icon-e{transform:rotate(45deg)}.skip{position:fixed;top:10px;left:10px;z-index:200;transform:translateY(-150%);background:var(--accent);color:var(--ink);padding:12px}.skip:focus{transform:none}
/* Fixed navigation: the original MONARCH artwork, not a replacement font. */
.header{position:fixed;inset:0 0 auto;z-index:50;display:flex;align-items:center;justify-content:space-between;padding:20px 28px;pointer-events:none;background:linear-gradient(rgba(11,11,11,.75),transparent);transition:background .3s}.header.scrolled{padding-block:12px;background:rgba(11,11,11,.94);backdrop-filter:blur(12px);border-bottom:1px solid var(--line)}.header>*{pointer-events:auto}.nav-logo{width:185px;display:block;padding:12px 0;margin:-12px 0;color:var(--paper)}.nav-logo svg{display:block;width:100%;height:auto;fill:currentColor}.header-right{display:flex;gap:8px;align-items:center}.menu-toggle{width:48px;height:48px;border:1.5px solid rgba(244,239,231,.45);background:rgba(19,18,16,.9);border-radius:var(--radius);display:grid;place-content:center;gap:6px}.menu-toggle span{width:20px;height:2px;display:block;background:var(--paper);transition:transform .3s}.menu-toggle span:first-child{transform:translateX(3px)}.menu-toggle span:last-child{transform:translateX(-3px)}.menu-toggle[aria-expanded=true] span:first-child{transform:translateY(4px) rotate(45deg)}.menu-toggle[aria-expanded=true] span:last-child{transform:translateY(-4px) rotate(-45deg)}.nav-dialog{inset:0;width:100%;max-width:none;height:100%;max-height:none;border:0;margin:0;background:var(--ink);color:var(--paper);padding:115px 8vw 45px}.nav-dialog::backdrop{background:var(--ink)}.menu-close{position:absolute;right:28px;top:20px}.menu-list{display:flex;flex-direction:column;align-items:flex-start;gap:4px}.menu-list a{font-size:clamp(44px,7.5vw,110px);font-weight:800;letter-spacing:-.07em;line-height:1.05;transition:color .2s,transform .3s}@media(hover:hover){.menu-list a:hover{color:var(--accent);transform:translateX(20px)}}.menu-list a em{color:var(--accent)}.menu-bottom{margin-top:40px;border-top:1px solid var(--line-strong);padding-top:20px;display:flex;justify-content:space-between;gap:20px;font-size:12px}
/* Dark stage hero: the reel full-bleed, statement and details on glass cards. */
.hero{position:relative;isolation:isolate;height:max(790px,100svh);max-height:1150px;background:var(--ink);overflow:hidden}.hero-topline{position:absolute;top:88px;left:50%;transform:translateX(-50%);text-align:center;z-index:5;white-space:nowrap;color:var(--paper);text-shadow:0 2px 12px #000}.hero-portrait{position:absolute;inset:0;z-index:2;pointer-events:none}.hero-stage{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:50% 42%}.hero-shade{position:absolute;inset:0;background:linear-gradient(0deg,#0B0B0B 0%,rgba(11,11,11,.1) 50%,rgba(11,11,11,.45) 100%)}.hero-bottom{position:absolute;z-index:6;bottom:35px;left:28px;right:28px;display:flex;align-items:end;justify-content:space-between;gap:20px}.hero-statement,.hero-info{color:var(--paper);background:rgba(11,11,11,.72);border:1px solid rgba(214,185,128,.24);backdrop-filter:blur(8px);border-radius:var(--radius)}.hero-statement{font-size:clamp(42px,5vw,76px);font-weight:900;letter-spacing:-.07em;line-height:.94;padding:15px 20px}.hero-statement em{font-size:1.13em;color:var(--accent)}.hero-info{padding:14px 16px;min-width:180px;max-width:224px;position:relative}.hero-info p{font-size:12px;line-height:1.5;margin-top:10px;max-width:180px}.js .hero-topline,.js .hero-bottom{opacity:0}.page-ready .hero-topline,.page-ready .hero-bottom{animation:fadeIn .8s .5s both}@keyframes fadeIn{to{opacity:1}}
/* A statement at the scale of a headline, followed by an editorial collage. */
.manifesto{background:var(--ink);color:var(--paper);padding:var(--sy) 7vw var(--sy2);text-align:center;position:relative}.manifesto h2{font-size:clamp(48px,7.8vw,118px);line-height:1;font-weight:900;letter-spacing:-.065em;max-width:1200px;margin:auto}.manifesto h2 em{color:var(--accent);font-size:1.13em}.manifesto h2 .caps{text-transform:uppercase}.manifesto-credit{margin-top:28px;color:var(--accent);text-wrap:balance}.manifesto-tail{display:flex;justify-content:center;gap:10px;margin-top:45px;flex-wrap:wrap}.tag{border:1px solid var(--line-strong);padding:8px 12px;border-radius:var(--radius);font-size:11px;font-weight:600;letter-spacing:.09em;text-transform:uppercase}.story{padding:var(--sy) 7vw var(--sy2)}.story-grid{display:grid;grid-template-columns:1.05fr .95fr;gap:6vw;align-items:stretch}.story-text{display:flex;flex-direction:column;justify-content:space-between}.story-main img{width:100%;aspect-ratio:1.15;object-fit:cover;object-position:center 45%;border-radius:var(--radius)}.story-quote{font:400 clamp(32px,3.3vw,52px)/1.04 var(--serif);letter-spacing:-.05em;margin:0 0 28px;display:flex;align-items:baseline;gap:.32em}.story-logo{display:block;width:auto;height:.74em;flex:none;transform:translateY(calc(.74em * .1744));color:var(--paper)}.story-copy{font-size:clamp(15px,1.2vw,18px)}.story-copy p{line-height:1.7;margin-bottom:1em}.story-copy p:last-child{margin-bottom:0}.signature{display:flex;justify-content:flex-end;align-items:end;margin-top:28px}
/* MONARCH Sessions: an in-page player. The strip picks a session, the deck shows its cover and tracklist, Mixcloud supplies the audio. */
.sessions{padding:var(--sy) 0 var(--sy2);background:var(--ink)}.sessions-in{width:90%;max-width:1400px;margin:0 auto}.sessions-head{display:flex;align-items:end;justify-content:space-between;gap:32px;margin-bottom:40px}.title-logo{display:block;width:auto;height:.74em;margin:0 0 .12em;fill:currentColor}.sessions-intro{max-width:44ch;font-size:15px;line-height:1.6;color:var(--muted);text-wrap:pretty}
.session-strip{display:flex;gap:14px;overflow-x:auto;scroll-snap-type:x proximity;padding:4px 4px 8px;margin:0 -4px 28px;scrollbar-width:none}.session-strip::-webkit-scrollbar{display:none}.session{flex:0 0 auto;width:118px;padding:0;background:none;border:0;scroll-snap-align:start;text-align:left;color:var(--paper);display:flex;flex-direction:column;gap:8px;border-radius:var(--radius)}.session img{display:block;width:100%;aspect-ratio:1;object-fit:cover;border-radius:var(--radius);border:1px solid var(--line);background:var(--surface);transition:border-color .25s,transform .3s}.session span{display:flex;justify-content:space-between;font-size:11px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);font-variant-numeric:tabular-nums}.session[aria-pressed=true] img{border-color:var(--accent)}.session[aria-pressed=true] span{color:var(--accent)}@media(hover:hover){.session:hover img{transform:translateY(-3px);border-color:rgba(214,185,128,.55)}}.session:focus-visible{outline:3px solid var(--accent);outline-offset:3px}
.deck{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);grid-template-rows:auto 1fr auto;grid-template-areas:"art head" "art list" "art engine";gap:20px 40px;padding:28px;background:var(--cream);border:1px solid var(--line);border-radius:var(--radius)}.deck-art{grid-area:art;align-self:start;position:relative;border-radius:var(--radius);overflow:hidden;background:var(--surface);aspect-ratio:1}.deck-art img{display:block;width:100%;height:100%;object-fit:cover}.deck-play{position:absolute;left:50%;top:50%;width:84px;height:84px;margin:-42px 0 0 -42px;border-radius:50%;background:var(--accent);color:var(--ink);display:grid;place-items:center;box-shadow:0 20px 50px rgba(0,0,0,.5);transition:transform .3s,background .25s,scale .15s}.deck-play svg{width:30px;height:30px}.deck-play .i-pause,.deck.is-playing .deck-play .i-play{display:none}.deck.is-playing .deck-play .i-pause{display:block}.deck.is-playing .deck-play{background:var(--paper)}@media(hover:hover){.deck-play:hover{transform:scale(1.06);background:var(--accent-hover)}}.deck-play:active{scale:.94}.deck-bar{position:absolute;left:0;right:0;bottom:0;height:3px;background:rgba(244,239,231,.18)}.deck-bar-fill{display:block;height:100%;width:0;background:var(--accent);transition:width .25s linear}
.deck-head{grid-area:head;min-width:0;display:flex;justify-content:space-between;align-items:flex-start;gap:16px}.deck-nav{display:flex;gap:8px;flex:none}.deck-step{width:44px;height:44px;border-radius:50%;border:1px solid rgba(214,185,128,.5);background:none;color:var(--accent);display:grid;place-items:center;transition:background .25s,color .25s,scale .15s}.deck-step svg{width:18px;height:18px}.deck-step .icon-w{transform:rotate(225deg)}.deck-step .icon-e{transform:rotate(45deg)}.deck-step[aria-disabled=true]{opacity:.3;pointer-events:none}@media(hover:hover){.deck-step:hover{background:var(--accent);color:var(--ink)}}.deck-step:active{scale:.94}.deck-title{font-size:clamp(28px,2.6vw,40px);font-weight:900;letter-spacing:-.05em;line-height:1}.deck-title em{color:var(--accent);font-size:1.1em}.deck-meta{display:flex;gap:18px;margin-top:12px;font-size:12px;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);font-variant-numeric:tabular-nums}.deck-meta .deck-time{color:var(--paper)}
.tracklist{grid-area:list;margin:0;padding:0;list-style:none;border-top:1px solid var(--line);max-height:396px;overflow:auto;scrollbar-width:thin}.track{display:grid;grid-template-columns:62px minmax(0,1fr);gap:14px;align-items:baseline;width:100%;padding:9px 4px;background:none;border:0;border-bottom:1px solid var(--line);color:var(--paper);text-align:left;font-size:14px;line-height:1.35;font-variant-numeric:tabular-nums;transition:color .2s}.track time{font-size:12px;color:var(--muted)}.track.is-on,.track.is-on time{color:var(--accent)}@media(hover:hover){.track:hover{color:var(--accent)}}.track:focus-visible{outline-offset:-3px}
.deck-engine{grid-area:engine;display:flex;flex-direction:column;gap:8px}.deck-engine iframe{display:block;width:100%;height:60px;border:0;border-radius:var(--radius);background:#000}.deck-engine small{font-size:11px;color:var(--muted)}.deck-engine small a{color:var(--accent)}
/* Music archive: framed artwork, compact metadata, deliberate asymmetry. */
.listen{background:linear-gradient(var(--ink),var(--cream) 140px,var(--cream) calc(100% - 140px),var(--ink));color:var(--paper);padding:var(--sy) 0 var(--sy2);overflow:hidden}.section-title{font-weight:900;font-size:clamp(56px,7.2vw,110px);line-height:.92;letter-spacing:-.075em;padding-bottom:.06em}.section-title em{font-size:1.07em;color:var(--accent)}.text-link{font:600 17px var(--cond);text-transform:uppercase;display:inline-flex;gap:20px;align-items:center;border-bottom:1px solid currentColor;padding-bottom:6px}@media(hover:hover){.text-link:hover{color:var(--accent)}}
.photos{padding:var(--sy) 0 var(--sy2);overflow:hidden}.music-lane{display:flex;width:max-content;gap:20px;will-change:transform;margin-bottom:20px;cursor:grab;touch-action:pan-y;user-select:none}.music-lane.dragging{cursor:grabbing}.music-lane img{-webkit-user-drag:none;user-drag:none}.music-lanes{overflow:hidden;width:100vw;margin-left:calc(50% - 50vw)}.music-group{display:flex;gap:20px}.music-tile{position:relative;padding:0;display:flex;flex-direction:column;flex:0 0 auto;width:clamp(360px,30vw,520px);background:var(--surface);overflow:hidden;border-radius:var(--radius);border:1px solid var(--line);cursor:pointer;text-align:left;transition:border-color .3s,transform .4s,scale .15s}@media(hover:hover){.music-tile:hover{border-color:rgba(214,185,128,.55);transform:translateY(-4px)}}.music-tile img{display:block;width:100%;height:auto;aspect-ratio:16/9;object-fit:cover;background:#000}.music-tile-type{position:absolute;left:14px;top:14px;background:var(--paper);color:var(--ink);border-radius:var(--radius);padding:5px 9px;font-size:11px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;z-index:1}.music-tile-footer{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 14px;border-top:1px solid var(--line)}.music-tile-title{min-width:0;font-size:12px;line-height:1.3;font-weight:600;letter-spacing:.02em;color:var(--paper);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.music-tile-play{flex:0 0 28px;width:28px;height:28px;border-radius:50%;border:1px solid currentColor;color:var(--accent);display:grid;place-items:center;transition:background .25s,color .25s}.music-tile-play svg{width:12px;height:12px;margin-left:1px}@media(hover:hover){.music-tile:hover .music-tile-play{background:var(--accent);color:var(--ink)}}.music-tile:focus-visible .music-tile-play{background:var(--accent);color:var(--ink)}.music-tile:focus-visible{outline:3px solid var(--accent);outline-offset:-4px}.motion-toggle{background:none;border:1px solid var(--line);border-radius:var(--radius);padding:7px 10px;font:inherit;letter-spacing:inherit;text-transform:uppercase;color:inherit;transition:border-color .2s,color .2s,scale .15s}@media(hover:hover){.motion-toggle:hover{border-color:var(--accent);color:var(--accent)}}.motion-toggle[aria-pressed=true]{border-color:var(--accent);color:var(--accent)}
.viewer{padding:0;border:0;background:var(--ink);color:var(--paper);width:100vw;height:100dvh;max-width:none;max-height:none}.viewer::backdrop{background:var(--ink)}.viewer-inner{height:100%;padding:80px 85px;display:grid;place-items:center}.viewer-image{max-height:calc(100dvh - 160px);width:auto;max-width:100%;object-fit:contain;transition:opacity .2s}.viewer.is-loading .viewer-image{opacity:.4}.viewer-close{position:absolute;top:20px;right:25px;z-index:2}.viewer-prev,.viewer-next{position:absolute;top:50%;transform:translateY(-50%);z-index:2}.viewer-prev{left:20px}.viewer-next{right:20px}.viewer-caption{position:absolute;left:25px;bottom:25px;font-size:12px}.viewer-count{position:absolute;right:25px;bottom:25px;font-size:12px;font-variant-numeric:tabular-nums}.video-viewer{padding:0;border:0;background:transparent;color:var(--paper);width:100vw;height:100dvh;max-width:none;max-height:none}.video-viewer::backdrop{background:rgba(11,11,11,.94)}.video-viewer-inner{height:100%;padding:80px 85px;display:grid;place-items:center}.video-frame{position:relative;width:min(1100px,92vw);aspect-ratio:16/9;background:#000;border-radius:var(--radius);overflow:hidden;border:1px solid var(--line);box-shadow:0 30px 90px rgba(0,0,0,.6)}.video-frame iframe{position:absolute;inset:0;width:100%;height:100%;border:0}.video-viewer-close{position:absolute;top:20px;right:25px;z-index:2}.video-viewer-caption{position:absolute;left:25px;bottom:25px;font-size:12px;color:var(--muted)}
/* Booking closes with the same oversized, mixed-type language. */
.contact{padding:var(--sy) 5vw 0;position:relative;overflow:hidden}.contact-main{display:grid;grid-template-columns:1fr 1fr;gap:6vw;align-items:end;margin-bottom:72px}.contact-lead{display:flex;flex-direction:column;gap:40px}.contact-action{padding-bottom:28px;border-bottom:1px solid var(--line)}.contact .section-title{margin-bottom:40px}.contact-lead p{font-size:clamp(15px,1.2vw,18px);line-height:1.65;margin:0;max-width:40ch;color:var(--muted)}.rider-list{margin:0;max-width:600px}.rider-list>div{display:grid;grid-template-columns:150px 1fr;gap:18px;padding:22px 0;border-top:1px solid var(--line)}.rider-list>div:last-child{border-bottom:1px solid var(--line)}.rider-list dt{font-size:12px;color:var(--muted);align-self:center}.rider-list dd{margin:0;font-size:14px;line-height:1.6}.contact-links{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;margin:0 0 36px;padding-bottom:28px;border-bottom:1px solid var(--line)}.contact-links dt{font-size:12px;color:var(--muted);margin-bottom:8px}.contact-links dd{margin:0}.contact-links dd a{font-size:clamp(16px,1.25vw,19px);letter-spacing:-.03em}@media(hover:hover){.contact-links dd a:hover{text-decoration:underline;text-underline-offset:5px}}.contact-links small{display:block;font-size:12px;color:var(--muted);margin-top:6px}.footer-bottom{display:flex;justify-content:space-between;align-items:center;gap:20px;border-top:1px solid var(--line);padding:23px 0;font-size:11px;font-weight:600;letter-spacing:.08em;text-transform:uppercase}.footer-bottom a{display:flex;gap:10px}.footer-bottom>span:last-child{text-align:right}
/* Reversible scroll reveals, with a complete no-JS and reduced-motion fallback. */
.js .reveal{opacity:0;transform:translateY(45px);transition:opacity .8s,transform 1s cubic-bezier(.2,.7,.2,1)}.js .reveal.is-visible{opacity:1;transform:translateY(0)}.loader{position:fixed;inset:0;z-index:150;display:none;pointer-events:none;contain:strict}#aperture-growth{will-change:transform}.js .loader{display:block}.loader-aperture{position:absolute;inset:0;width:100%;height:100%}.loader-mark{position:absolute;width:52px;height:64px;left:50%;top:50%;transform:translate(-50%,-50%);fill:var(--accent);transition:opacity .3s}.loader-label{position:absolute;left:50%;top:calc(50% + 85px);transform:translateX(-50%);font-size:11px;letter-spacing:.3em;color:var(--accent);white-space:nowrap;transition:opacity .3s}.loader.releasing .loader-mark,.loader.releasing .loader-label{opacity:0}
@media(min-width:1550px){.story,.listen,.manifesto{padding-left:max(7vw,calc((100vw - 1400px)/2));padding-right:max(7vw,calc((100vw - 1400px)/2))}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{animation:none!important;transition:none!important}.js .reveal,.js .hero-topline,.js .hero-bottom{opacity:1;transform:none}.js .hero-topline{transform:translateX(-50%)}.loader{display:none!important}}
/* MONARCH original palette — charcoal, warm white, bronze and gold. */
.pill:focus-visible,.square:focus-visible{background:var(--accent-hover);color:var(--ink)}
.story,.photos{background:var(--ink)}
.story-quote{color:var(--accent)}
.contact{background:var(--ink);border-top:1px solid var(--line)}
.contact h2 em{color:var(--accent)}
.footer-bottom{color:var(--accent)}
/* The statement card sits 20% smaller over the reel; the info card trims its box instead so its small type stays readable. */
.hero-statement{zoom:.8}
/* Hero controls: pause and sound, quiet glass buttons between the cards; on phones they sit on the info card's edge. */
.hero-controls{position:absolute;left:50%;bottom:0;transform:translateX(-50%);display:flex;gap:8px}.hero-sound,.hero-pause{display:flex;align-items:center;justify-content:center;min-height:44px;color:var(--paper);background:rgba(11,11,11,.72);border:1px solid rgba(214,185,128,.24);backdrop-filter:blur(8px);border-radius:var(--radius);cursor:pointer;transition:border-color .2s,color .2s,scale .15s}.hero-sound{gap:8px;padding:0 16px;font:600 11px/1 var(--sans);letter-spacing:.09em;text-transform:uppercase;white-space:nowrap}.hero-pause{width:44px;padding:0}.hero-sound svg,.hero-pause svg{width:16px;height:16px}.hero-sound:not(.on) .hero-sound-waves{opacity:.35}.hero-pause .i-play,.hero-pause[aria-pressed=true] .i-pause{display:none}.hero-pause[aria-pressed=true] .i-play{display:block}@media(hover:hover){.hero-sound:hover,.hero-pause:hover{border-color:var(--accent);color:var(--accent)}}.hero-sound.on,.hero-pause[aria-pressed=true]{border-color:var(--accent);color:var(--accent)}.hero-sound:focus-visible,.hero-pause:focus-visible{outline:3px solid var(--accent);outline-offset:2px}
@media(prefers-reduced-motion:reduce){.hero-pause{display:none}}
/* Solid glass when the visitor asks for less transparency. */
@media(prefers-reduced-transparency:reduce){.hero-statement,.hero-info,.hero-sound,.hero-pause,.header.scrolled{background:var(--ink);backdrop-filter:none}}
/* Body copy avoids single-word last lines. */
.story-copy p,.archive-intro,.sessions-intro,.contact-lead p,.hero-info p{text-wrap:pretty}
/* Pressed controls give a quick, small squeeze. */
.pill:active,.hero-sound:active,.hero-pause:active,.motion-toggle:active,.music-tile:active,.photo-tile:active{scale:.97}.square:active,.menu-toggle:active{scale:.94}
/* Small text links keep their look but get a 44px-tall tap area. */
.motion-toggle,.text-link,.footer-bottom a,.contact-links dd a{position:relative}.motion-toggle::after,.text-link::after,.footer-bottom a::after,.contact-links dd a::after{content:'';position:absolute;inset:-15px -4px}
/* Sound archive: larger cards. */
.music-lane:last-child{margin-bottom:0}
/* An opaque waiting screen prevents any early peek through the M aperture. */
.loader{background:var(--ink)}
.loader.releasing{background:transparent}
.loader-progress{position:absolute;left:50%;bottom:max(28px,env(safe-area-inset-bottom));transform:translateX(-50%);width:min(240px,52vw);height:2px;background:rgba(214,185,128,.16);overflow:hidden;transition:opacity .2s}
.loader-progress-fill{display:block;width:100%;height:100%;background:var(--accent);transform:scaleX(0);transform-origin:left center;transition:transform .18s linear}
.loader.releasing .loader-progress{opacity:0}
/* Desktop navigation drawer; mobile navigation uses 30% smaller type. */
@media(min-width:701px){
  .nav-dialog{inset:0 0 0 auto;width:min(460px,42vw);max-width:100%;height:100dvh;max-height:100dvh;padding:105px 38px 36px;border-left:1px solid var(--line);box-shadow:-20px 0 70px rgba(0,0,0,.28);overflow-y:auto;overscroll-behavior:contain}
  .nav-dialog::backdrop{background:rgba(11,11,11,.38)}
  .nav-dialog[open]{animation:menuDrawerIn .28s cubic-bezier(.2,.7,.2,1)}
  .menu-list{gap:15px}
  .menu-list a{font-size:clamp(32px,2.9vw,42px)}
  @media(hover:hover){.menu-list a:hover{transform:translateX(8px)}}
  .menu-bottom{flex-direction:column;align-items:flex-start;gap:14px;font-size:11px}
}
@keyframes menuDrawerIn{from{transform:translateX(100%)}to{transform:translateX(0)}}
@media(prefers-reduced-motion:reduce){.nav-dialog[open]{animation:none}}
/* Archive and photo headers: one stacked message, no split header. */
.archive-header{width:90%;max-width:1400px;margin:0 auto 44px}.archive-header .eyebrow{margin-bottom:22px;color:var(--accent)}.archive-intro{margin-top:26px;max-width:48ch;font-size:15px;line-height:1.6;color:var(--muted)}
.music-foot{display:flex;justify-content:space-between;align-items:center;gap:20px;width:90%;max-width:1400px;margin:32px auto 0;font-size:11px;color:var(--muted)}
/* Photo grid: 2 to 4 masonry columns built by the script; any tile opens the photo viewer. */
.photo-grid{display:flex;gap:12px;width:calc(100% - 24px);margin:0 auto}.photo-col{flex:1;display:flex;flex-direction:column;gap:12px;min-width:0}
.photo-tile{position:relative;padding:0;display:block;width:100%;background:var(--surface);overflow:hidden;border-radius:var(--radius);border:0;cursor:pointer;aspect-ratio:var(--ar)}
.photo-tile img{width:100%;height:100%;display:block;object-fit:cover;transition:transform .9s cubic-bezier(.2,.7,.2,1)}@media(hover:hover){.photo-tile:hover img{transform:scale(1.04)}}.photo-tile:focus-visible img{transform:scale(1.04)}.photo-tile:focus-visible{outline:3px solid var(--accent);outline-offset:-4px}
.photo-foot{width:90%;max-width:1400px;margin:32px auto 0;display:flex;justify-content:space-between;align-items:center;gap:20px}.photo-note{font-size:12px;color:var(--muted)}
.js .reveal{transition-delay:var(--d,0s)}
/* Film grain, fixed and inert, breaks the flat black. */
body::after{content:"";position:fixed;inset:0;z-index:140;pointer-events:none;opacity:.045;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 1 0'/%3E%3C/filter%3E%3Crect width='160' height='160' filter='url(%23n)'/%3E%3C/svg%3E")}
/* Booking form: labels above, hairline fields, inline status. Falls back to a mail draft until a form endpoint is set. */
.booking-form{display:grid;grid-template-columns:1fr 1fr;gap:18px 16px;margin-top:6px}.field{display:flex;flex-direction:column;gap:7px}.field--full{grid-column:1/-1}.field label{font-size:12px;color:var(--muted)}.field input,.field textarea,.field select{-webkit-appearance:none;appearance:none;display:block;width:100%;min-width:0;box-sizing:border-box;font:inherit;font-size:15px;color:var(--paper);background-color:rgba(244,239,231,.04);border:1px solid var(--line);border-radius:var(--radius);padding:12px 14px;transition:border-color .2s,background .2s}.field input::placeholder,.field textarea::placeholder{color:rgba(181,170,160,.75)}.field input:focus-visible,.field textarea:focus-visible,.field select:focus-visible{outline:none;border-color:var(--accent);background-color:rgba(244,239,231,.06)}.field select{min-height:46px;padding-right:40px;cursor:pointer;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 8'%3E%3Cpath d='M1 1.5l5 5 5-5' fill='none' stroke='%23D6B980' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 15px center;background-size:12px 8px}.field select option{background:var(--cream);color:var(--paper)}.field textarea{resize:vertical;min-height:120px}.field input[type=date]{color-scheme:dark;min-height:46px;text-align:left}.field input[type=date]::-webkit-date-and-time-value{text-align:left;min-height:1.2em}.field.is-invalid input,.field.is-invalid textarea{border-color:var(--error)}.form-actions{flex-direction:row;align-items:center;gap:18px;flex-wrap:wrap;margin-top:4px}.form-status{font-size:13px;color:var(--muted);margin:0;max-width:40ch;line-height:1.45;text-wrap:pretty}.form-status.is-error{color:var(--error)}.form-status.is-ok{color:var(--accent)}.booking-form.is-sending .pill{opacity:.6;pointer-events:none}
/* Tablets and phones. */
@media(max-width:1000px){.hero{height:850px}.hero-info{min-width:156px}.story{padding-inline:5vw}.story-grid{gap:6vw;grid-template-columns:1.05fr .95fr}.deck{gap:18px 28px;padding:22px}.contact-main{margin-bottom:40px}.contact .section-title{margin-bottom:24px}.contact-lead{gap:28px}.contact-action{padding-bottom:0;border-bottom:0}.hero-statement{font-size:54px}.contact-main{grid-template-columns:1fr;gap:48px}.contact-links{grid-template-columns:1fr 1fr}}
/* Phones. The header wordmark grows toward the buttons' 42px height and shrinks only when the screen is too narrow for it. */
@media(max-width:700px){
html{scroll-padding-top:80px}.header{padding:15px 18px}.header.scrolled{padding:10px 18px}.nav-logo{width:auto;flex:0 1 232px;min-width:0;margin-right:20px}.header-right{flex:none}.header .pill{min-height:42px;font-size:14px;padding:10px 13px;gap:13px}.menu-toggle{width:42px;height:42px}.hero{height:780px;min-height:100svh;max-height:920px}.hero-topline{font-size:11px;letter-spacing:.11em}.hero-bottom{bottom:62px;left:20px;right:20px}.hero-info p{font-size:11px;line-height:1.4;margin-top:8px}.manifesto h2{font-size:11vw;line-height:1.04}.manifesto-tail{margin-top:32px;gap:6px}.tag{font-size:11px;padding:7px 9px}.story{padding-inline:6vw}.story-grid{display:flex;flex-direction:column;gap:35px}.story-quote{font-size:34px;margin-bottom:20px}.story-copy{font-size:13px}.signature{margin-top:25px}.section-title{font-size:17vw}.sessions-in{width:88%}.sessions-head{flex-direction:column;align-items:flex-start;gap:16px;margin-bottom:28px}.session{width:96px}.deck{grid-template-columns:112px minmax(0,1fr);grid-template-rows:auto auto auto;grid-template-areas:"art head" "list list" "engine engine";gap:16px;padding:16px}.deck-art{align-self:center}.deck-play{width:48px;height:48px;margin:-24px 0 0 -24px}.deck-play svg{width:18px;height:18px}.deck-title{font-size:24px}.deck-meta{flex-direction:column;gap:4px;margin-top:8px}.deck-head{flex-direction:column;gap:12px}.deck-step{width:40px;height:40px}.tracklist{max-height:none}.track{grid-template-columns:52px minmax(0,1fr);font-size:13px}.music-lane{will-change:auto}.contact{padding-inline:6vw}.footer-bottom{font-size:11px;flex-wrap:wrap;gap:18px}.footer-bottom>span:last-child{width:100%;text-align:left}.viewer-inner{padding:75px 15px}.viewer-image{max-height:calc(100dvh - 150px)}.viewer-prev,.viewer-next{top:auto;bottom:65px;width:40px;height:40px}.viewer-caption{max-width:73%;font-size:11px;left:18px;bottom:25px}.viewer-count{right:18px}.video-viewer-inner{padding:75px 15px}.video-frame{width:100%}.video-viewer-caption{max-width:73%;font-size:11px;left:18px;bottom:25px}.nav-dialog{padding:105px 7vw 30px}.menu-list{gap:12px}.menu-list a{font-size:58px}.menu-bottom{flex-direction:column;gap:14px;font-size:11px}.menu-close{right:18px;top:15px}
.hero-controls{bottom:calc(100% + 12px);left:auto;right:0;transform:none;width:var(--hero-col)}.hero-sound{flex:1;min-width:0;min-height:40px;padding:0 10px;gap:6px}.hero-sound-state{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}.hero-pause{width:40px;min-height:40px}
.hero-topline{top:110px}
.music-tile{width:min(84vw,360px)}
/* Phones: the two cards sit at the row's edges at equal height. The statement's type scales with the screen;
   the details card and the pause and sound buttons share one column; the sound button shows just "Sound" and its state shows in the icon and colour. Small type stays at the 11px floor and the controls at 40px tall. */
.hero-bottom{--hero-col:132px;align-items:stretch;justify-content:space-between;gap:12px}.hero-statement{zoom:1;flex:none;min-width:0;font-size:clamp(20px,17vw - 37.4px,34px);padding:10px 12px;display:flex;flex-direction:column;justify-content:center}.hero-statement br{display:none}.hero-info{flex:none;width:var(--hero-col);min-width:0;max-width:none;display:flex;flex-direction:column;justify-content:center;padding:8px 10px}.hero-info .eyebrow{line-height:1.3}.hero-info p{font-size:11px;line-height:1.3;margin-top:6px}
.menu-list a{font-size:40.6px}.menu-bottom{font-size:11px}
.archive-header{width:88%;margin-bottom:32px}.archive-intro{margin-top:20px;font-size:14px}.music-foot,.photo-foot{width:88%}.photo-grid,.photo-col{gap:8px}.photo-grid{width:calc(100% - 16px)}.contact-links{grid-template-columns:1fr;gap:20px;margin-bottom:28px}.rider-list{margin-top:0}.rider-list>div{grid-template-columns:1fr;gap:6px}
.booking-form{grid-template-columns:1fr;gap:16px}
}
@media(max-width:380px){.header .pill{font-size:12px;padding:10px;white-space:nowrap}}
/* Finish: selection, focus, numerals, smoothing. */
html{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility}
::selection{background:var(--accent);color:var(--ink)}
:focus-visible{outline:2px solid var(--accent);outline-offset:3px}
h1,h2,h3{text-wrap:balance}
time,.deck-engine small{font-variant-numeric:tabular-nums}
a,button{touch-action:manipulation}
/* Scroll progress: a gold hairline under the header. */
.scroll-progress{position:fixed;inset:0 0 auto;height:2px;z-index:49;background:var(--accent);transform-origin:left;transform:scaleX(var(--p,0));pointer-events:none}
/* Cover backlight: the artwork's own colours glow behind the deck. */
.deck{isolation:isolate;transition:border-color .5s}
.deck-art{overflow:visible}.deck-art img{border-radius:var(--radius)}.deck-bar{border-radius:0 0 var(--radius) var(--radius);overflow:hidden}
.deck-art::before{content:'';position:absolute;inset:8% -3% -3%;z-index:-1;background:var(--art,none) center/cover;filter:blur(44px) saturate(1.6);opacity:.5;border-radius:var(--radius);transition:opacity .6s}
.deck.is-playing .deck-art::before{opacity:.8}
@media(prefers-reduced-motion:no-preference){
/* Headlines rise line by line out of a mask, sharpening as they land. */
.js .split.reveal{opacity:1;transform:none}
.split .ln{display:block;overflow:hidden;padding:.12em 0;margin:-.12em 0}
.split .ln>span{display:block;transform:translateY(110%);opacity:0;filter:blur(10px);transition:transform 1.15s cubic-bezier(.2,.7,.2,1) calc(var(--i)*.12s),opacity .9s calc(var(--i)*.12s),filter 1s calc(var(--i)*.12s)}
.reveal.is-visible .ln>span{transform:none;opacity:1;filter:none}
/* The biography photo settles into its frame. */
.js .story-main{overflow:hidden;border-radius:var(--radius)}
.js .story-main img{transform:scale(1.14);transition:transform 1.8s cubic-bezier(.2,.7,.2,1)}
.js .story-main.is-visible img{transform:none}
/* The hero reel drifts slower than the page. */
.hero-stage{transform:translate3d(0,calc(var(--hy,0) * 1px),0);will-change:transform}
}
/* Spotlight follows the pointer across the player; a glare crosses buttons on hover. */
@media(hover:hover) and (prefers-reduced-motion:no-preference){
.deck:hover{background:radial-gradient(560px circle at var(--mx,50%) var(--my,0),rgba(214,185,128,.1),transparent 65%),var(--cream);border-color:rgba(214,185,128,.32)}
.pill{position:relative;overflow:hidden}
.pill::after{content:'';position:absolute;inset:0;background:linear-gradient(105deg,transparent 38%,rgba(255,255,255,.4) 50%,transparent 62%);transform:translateX(-130%);transition:transform .9s cubic-bezier(.2,.7,.2,1);pointer-events:none}
.pill:hover::after{transform:translateX(130%)}
}
/* Lane edges dissolve into blur instead of cropping hard. */
.music-lanes{position:relative}
.music-lanes::before,.music-lanes::after{content:'';position:absolute;top:0;bottom:0;width:clamp(56px,10vw,160px);z-index:2;pointer-events:none;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:linear-gradient(90deg,rgba(19,18,16,.75),transparent);-webkit-mask-image:linear-gradient(90deg,#000,transparent);mask-image:linear-gradient(90deg,#000,transparent)}
.music-lanes::before{left:0}.music-lanes::after{right:0;transform:scaleX(-1)}
@media(prefers-reduced-transparency:reduce){.music-lanes::before,.music-lanes::after{-webkit-backdrop-filter:none;backdrop-filter:none}}
/* The hero text sits straight on the reel, and the genre chips become one quiet line. */
.hero-statement,.hero-info{background:none;border:0;-webkit-backdrop-filter:none;backdrop-filter:none;padding:0;text-shadow:0 2px 28px rgba(0,0,0,.55)}
.hero-info{max-width:none;min-width:0;text-align:right}.hero-info p{margin-left:auto;font-size:14px}
.hero-shade{background:linear-gradient(0deg,#0B0B0B 0%,rgba(11,11,11,.6) 34%,rgba(11,11,11,.1) 68%,rgba(11,11,11,.5) 100%)}
.manifesto-tail{gap:0}.tag{border:0;padding:0;border-radius:0;font-size:13px;letter-spacing:.2em}.tag+.tag::before{content:'/';margin:0 20px;color:var(--accent)}
/* Slow scroll moments, driven by position and off for reduced motion. */
@media(prefers-reduced-motion:no-preference){
.hero-stage{transform:translate3d(0,calc(var(--hy,0) * 1px),0) scale(calc(1 + var(--hp,0) * .16))}
.hero-statement{transform:translateY(calc(var(--hp,0) * -90px));opacity:calc(1 - var(--hp,0) * 1.7)}
.hero-info{transform:translateY(calc(var(--hp,0) * -50px));opacity:calc(1 - var(--hp,0) * 2)}
.deck{transform:translateY(calc((1 - var(--dp,1)) * 90px)) scale(calc(.93 + var(--dp,1) * .07));opacity:calc(.25 + var(--dp,1) * .75);transform-origin:50% 0}
.deck-art{transform:perspective(1000px) rotateY(calc((1 - var(--dp,1)) * -22deg));transform-origin:100% 50%}
.deck-art::before{opacity:calc(.15 + var(--dp,1) * .4)}
.session-strip{transform:translateX(calc((1 - var(--sp,1)) * 60px))}
}
@media(min-width:900px) and (prefers-reduced-motion:no-preference){.title-logo{transform-origin:left bottom;transform:scale(calc(1.45 - var(--sp,1) * .45))}}
/* On phones the genres stack, so no separator is left hanging at a line edge. */
.tag{white-space:nowrap}
@media(max-width:700px){.manifesto-tail{flex-direction:column;align-items:center;gap:14px}.tag+.tag::before{content:none}}
