/* ═══════════════════════════════════════════════════════════════
   MOKABY — ALL ACCESS
   Tungsten backstage: warm black · ember · amber · bone · a touch of UV
   Type: Anton (display) · Instrument Serif (voice) · Archivo (text) · JetBrains Mono (data)
   ═══════════════════════════════════════════════════════════════ */
@font-face{font-family:'Anton';src:url(../fonts/anton.woff2) format('woff2');font-display:swap}
@font-face{font-family:'Archivo';font-style:normal;font-weight:100 900;font-stretch:62% 125%;font-display:swap;src:url(../fonts/archivo-latin-ext.woff2) format('woff2');unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}
@font-face{font-family:'Archivo';font-style:normal;font-weight:100 900;font-stretch:62% 125%;font-display:swap;src:url(../fonts/archivo-latin.woff2) format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:'JetBrains Mono';font-style:normal;font-weight:400 700;font-display:swap;src:url(../fonts/jetbrainsmono-latin-ext.woff2) format('woff2');unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}
@font-face{font-family:'JetBrains Mono';font-style:normal;font-weight:400 700;font-display:swap;src:url(../fonts/jetbrainsmono-latin.woff2) format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:'Instrument Serif';font-style:normal;font-weight:400;font-display:swap;src:url(../fonts/instrumentserif-latin-ext.woff2) format('woff2');unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}
@font-face{font-family:'Instrument Serif';font-style:normal;font-weight:400;font-display:swap;src:url(../fonts/instrumentserif-latin.woff2) format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}

:root{
  --ink:#0b0806; --ink-2:#120d0a; --ink-3:#1a1410; --ink-4:#251c16;
  --bone:#f4ebdc; --bone-2:rgba(244,235,220,.76); --bone-3:rgba(244,235,220,.54); --bone-4:rgba(244,235,220,.3);
  --card:#efe4d1;
  --line:rgba(244,235,220,.12); --line-2:rgba(244,235,220,.22);
  --ember:#ff5a1f; --amber:#ff8a1f; --gold:#ffb547; --uv:#7b5cff;
  --hot:linear-gradient(100deg,#ffb547 0%,#ff8a1f 38%,#ff5a1f 76%,#e5402a 100%);
  --pad:clamp(16px,4.2vw,72px);
  --hdr:76px; --bar-b:60px;
  --e-out:cubic-bezier(.16,1,.3,1); --e-io:cubic-bezier(.65,0,.35,1);
  --disp:'Anton',Impact,'Arial Narrow',sans-serif;
  --sans:'Archivo',system-ui,-apple-system,'Segoe UI',Roboto,Arial,sans-serif;
  --mono:'JetBrains Mono',ui-monospace,SFMono-Regular,Consolas,monospace;
  --serif:'Instrument Serif',Georgia,'Times New Roman',serif;
}
*,*::before,*::after{box-sizing:border-box}
html{background:var(--ink);color:var(--bone);-webkit-text-size-adjust:100%;text-size-adjust:100%}
html.lenis,html.lenis body{height:auto}
.lenis.lenis-smooth{scroll-behavior:auto!important}
.lenis.lenis-stopped{overflow:hidden}
body{margin:0;background:var(--ink);font:400 clamp(15px,.3vw + 13.6px,18px)/1.55 var(--sans);overflow-x:clip;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}
img,video,svg{display:block;max-width:100%}
a{color:inherit;text-decoration:none}
button{font:inherit;color:inherit;background:none;border:0;padding:0;cursor:pointer;-webkit-tap-highlight-color:transparent}
h1,h2,h3,p,ul,ol,dl,dd,figure,blockquote,fieldset,legend{margin:0;padding:0}
ul,ol{list-style:none}
fieldset{border:0;min-width:0}
p{text-wrap:pretty}
::selection{background:var(--ember);color:var(--ink)}
:focus-visible{outline:2px solid var(--gold);outline-offset:3px;border-radius:6px}
.sr-only{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.skip{position:fixed;left:16px;top:-80px;z-index:300;background:var(--bone);color:var(--ink);padding:12px 18px;border-radius:999px;font:600 14px/1 var(--sans);transition:top .25s var(--e-out)}
.skip:focus{top:14px}
.wrap{width:100%;max-width:1720px;margin:0 auto;padding:0 var(--pad)}

/* ───────── buttons / links ───────── */
.btn{position:relative;display:inline-flex;align-items:center;justify-content:center;gap:.6em;height:54px;padding:0 1.45em;border-radius:999px;font:600 15px/1 var(--sans);letter-spacing:.005em;white-space:nowrap;transition:transform .55s var(--e-out),background-color .3s,color .3s,border-color .3s,box-shadow .5s var(--e-out)}
.btn--amber{background:var(--amber);color:#170b03;box-shadow:0 12px 44px -14px rgba(255,110,30,.75),inset 0 1px 0 rgba(255,255,255,.28)}
.btn--amber:hover{background:var(--gold);transform:translateY(-2px);box-shadow:0 20px 54px -16px rgba(255,140,40,.95),inset 0 1px 0 rgba(255,255,255,.35)}
.btn--ghost{border:1px solid var(--line-2);background:rgba(11,8,6,.32);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}
.btn--ghost:hover{border-color:rgba(244,235,220,.6);background:rgba(244,235,220,.08)}
.btn--sm{height:40px;padding:0 1.1em;font-size:14px}
.ico{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;flex:none;transition:transform .5s var(--e-out)}
.ico--play{fill:currentColor;stroke:none;width:16px;height:16px}
.btn:hover .ico:not(.ico--play),.lnk:hover .ico,a:hover>.rel__go .ico{transform:translate(3px,-1px)}
.lnk{display:inline-flex;align-items:center;gap:.5em;font-weight:600;color:var(--bone);border-bottom:1px solid var(--line-2);padding-bottom:4px;transition:border-color .3s,color .3s}
.lnk:hover{color:var(--gold);border-color:var(--gold)}
.tag{font:500 12px/1.3 var(--mono);letter-spacing:.14em;text-transform:uppercase;color:var(--bone-3)}
.tag--hot{color:var(--gold)}

/* ───────── header ───────── */
.hdr{position:fixed;inset:0 0 auto;z-index:60;height:var(--hdr);display:flex;align-items:center;gap:20px;padding:0 var(--pad);transition:background-color .45s,box-shadow .45s,transform .6s var(--e-out)}
.hdr::after{content:"";position:absolute;inset:0;z-index:-1;background:rgba(11,8,6,.74);-webkit-backdrop-filter:blur(16px) saturate(1.25);backdrop-filter:blur(16px) saturate(1.25);box-shadow:0 1px 0 var(--line);opacity:0;transition:opacity .45s}
.hdr.is-solid::after{opacity:1}
.hdr.is-hidden{transform:translateY(-100%)}
.hdr__brand{font:400 27px/1 var(--disp);letter-spacing:.025em;flex:none;padding:6px 0}
.hdr__nav{display:flex;gap:4px;margin:0 auto}
.hdr__nav a{position:relative;display:inline-flex;align-items:baseline;gap:7px;padding:11px 15px;border-radius:999px;font:500 15px/1 var(--sans);color:var(--bone-2);transition:color .25s,background-color .25s}
.hdr__nav a:hover{color:var(--bone);background:rgba(244,235,220,.07)}
.hdr__nav a.is-active{color:var(--bone)}
.hdr__nav a.is-active::after{content:"";position:absolute;left:50%;bottom:3px;width:4px;height:4px;margin-left:-2px;border-radius:50%;background:var(--amber)}
.hdr__n{font:500 10px/1 var(--mono);color:var(--amber);letter-spacing:.04em}
.hdr__tools{display:flex;align-items:center;gap:6px;flex:none}
.tool{height:40px;display:inline-flex;align-items:center;gap:8px;padding:0 12px;border-radius:999px;font:500 12px/1 var(--mono);letter-spacing:.1em;text-transform:uppercase;color:var(--bone-3);transition:color .25s,background-color .25s}
.tool:hover{color:var(--bone);background:rgba(244,235,220,.07)}
.tool--lang{gap:6px}
.tool--lang [data-l]{transition:color .25s}
html[lang=en] .tool--lang [data-l=en],html[lang=de] .tool--lang [data-l=de]{color:var(--bone)}
.tool__sep{opacity:.45}
.eq{display:inline-flex;align-items:flex-end;gap:2px;width:14px;height:13px}
.eq i{flex:1;height:3px;background:currentColor;border-radius:1px;transition:background-color .3s}
.is-sound .tool--sound{color:var(--bone)}
.is-sound .eq i{background:var(--amber);animation:eq .8s ease-in-out infinite alternate}
.is-sound .eq i:nth-child(2){animation-duration:.55s;animation-delay:-.2s}
.is-sound .eq i:nth-child(3){animation-duration:.7s;animation-delay:-.45s}
.is-sound .eq i:nth-child(4){animation-duration:.6s;animation-delay:-.1s}
@keyframes eq{from{height:3px}to{height:13px}}
.hdr__book{margin-left:6px}
.hdr__menu{display:none;position:relative;width:44px;height:44px;border-radius:50%;border:1px solid var(--line-2)}
.hdr__menu i{position:absolute;left:13px;right:13px;height:1.5px;background:var(--bone);transition:transform .45s var(--e-out)}
.hdr__menu i:first-child{top:17px}.hdr__menu i:last-child{top:25px}
.is-menu .hdr__menu i:first-child{transform:translateY(4px) rotate(45deg)}
.is-menu .hdr__menu i:last-child{transform:translateY(-4px) rotate(-45deg)}

.menu{position:fixed;inset:0;z-index:55;background:var(--ink);display:flex;flex-direction:column;justify-content:space-between;padding:calc(var(--hdr) + 24px) var(--pad) calc(28px + env(safe-area-inset-bottom));overflow-y:auto}
.menu[hidden]{display:none}
.menu__nav{display:flex;flex-direction:column}
.menu__nav a{display:flex;align-items:baseline;gap:14px;padding:10px 0;border-bottom:1px solid var(--line);font:400 clamp(44px,13vw,72px)/1 var(--disp);text-transform:uppercase;opacity:0;transform:translateY(18px);transition:opacity .5s var(--e-out),transform .6s var(--e-out),color .25s}
.menu__nav a:hover{color:var(--gold)}
.is-menu .menu__nav a{opacity:1;transform:none}
.menu__nav a:nth-child(2){transition-delay:.04s}.menu__nav a:nth-child(3){transition-delay:.08s}.menu__nav a:nth-child(4){transition-delay:.12s}.menu__nav a:nth-child(5){transition-delay:.16s}
.menu__n{font:500 12px/1 var(--mono);color:var(--amber);letter-spacing:.06em;transform:translateY(-.9em)}
.menu__foot{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin-top:32px}
.menu__mail{flex-basis:100%;margin-top:12px;font:600 18px/1.2 var(--sans);color:var(--gold)}

/* ───────── 01 · stage (hero) ───────── */
.stage{position:relative;height:100vh;height:100svh;min-height:600px;max-height:1400px;overflow:hidden;background:#050302;isolation:isolate}
.stage__media{position:absolute;inset:0;z-index:0;overflow:hidden}
.stage__video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transform:scale(1.03);opacity:0;transition:opacity 1.2s ease}
.stage__video.is-on{opacity:1}
.stage__media{background:#050302 center/cover no-repeat}
.stage__shade{position:absolute;inset:0;background:
  radial-gradient(110% 85% at 68% 38%,rgba(11,8,6,0) 0%,rgba(11,8,6,.28) 55%,rgba(11,8,6,.78) 100%),
  linear-gradient(to right,rgba(11,8,6,.72) 0%,rgba(11,8,6,.35) 30%,rgba(11,8,6,0) 55%),
  linear-gradient(to bottom,rgba(11,8,6,.5) 0%,rgba(11,8,6,0) 22%,rgba(11,8,6,0) 52%,rgba(11,8,6,.55) 82%,rgba(11,8,6,.92) 100%)}
/* letterbox bars (open on load) */
.stage::before,.stage::after{content:"";position:absolute;left:0;right:0;z-index:4;background:#050302;pointer-events:none;transition:height 1.25s var(--e-io)}
.stage::before{top:0;height:var(--bar-t,var(--hdr))}
.stage::after{bottom:0;height:var(--bar-b)}
html.js:not(.is-open) .stage::before,html.js:not(.is-open) .stage::after{height:50.5%}
.stage__word{position:absolute;z-index:2;left:var(--pad);right:var(--pad);text-align:center;bottom:calc(var(--bar-b) + clamp(12px,2.2vh,30px));margin:0;pointer-events:none;line-height:1}
.stage__mark{display:inline-block;font:400 var(--wm,22vw)/.74 var(--disp);letter-spacing:.004em;color:#fff;mix-blend-mode:overlay;white-space:nowrap;text-align:center;padding-top:.06em;transition:opacity 1.4s ease .35s,transform 1.6s var(--e-out) .35s}
html.js:not(.is-open) .stage__mark{opacity:0;transform:translateY(8%)}
.stage__word::after{content:attr(data-ghost);position:absolute;inset:0;font:400 var(--wm,22vw)/.74 var(--disp);text-align:center;padding-top:.06em;color:transparent;-webkit-text-stroke:1px rgba(255,190,120,.22);white-space:nowrap;pointer-events:none}
.stage__copy{position:absolute;z-index:5;left:var(--pad);top:calc(var(--hdr) + clamp(28px,8.5vh,120px));width:min(600px,46vw)}
.stage__copy>*{transition:opacity .9s var(--e-out),transform 1s var(--e-out)}
html.js:not(.is-open) .stage__copy>*{opacity:0;transform:translateY(22px)}
.stage__copy>:nth-child(2){transition-delay:.42s}.stage__copy>:nth-child(1){transition-delay:.34s}.stage__copy>:nth-child(3){transition-delay:.5s}.stage__copy>:nth-child(4){transition-delay:.58s}
.kicker{display:flex;align-items:center;flex-wrap:wrap;gap:10px;font:500 12px/1.2 var(--mono);letter-spacing:.16em;text-transform:uppercase;color:var(--gold)}
.kicker__dot{width:8px;height:8px;border-radius:50%;background:var(--ember);animation:rec 1.6s ease-in-out infinite}
.kicker__sep{opacity:.55}
@keyframes rec{0%,100%{box-shadow:0 0 0 0 rgba(255,90,31,.55);opacity:1}50%{box-shadow:0 0 0 7px rgba(255,90,31,0);opacity:.55}}
.stage__line{font:400 min(5vw,9.2vh)/.94 var(--serif);letter-spacing:-.018em;margin:22px 0 18px;color:var(--bone);text-shadow:0 2px 30px rgba(0,0,0,.35)}
.stage__sub{font-size:clamp(15px,1.06vw,18.5px);line-height:1.5;color:var(--bone-2);max-width:41ch}
.stage__cta{display:flex;flex-wrap:wrap;gap:12px;margin-top:30px}
.stage__hud{position:absolute;left:0;right:0;bottom:0;height:var(--bar-b);z-index:6;display:grid;grid-template-columns:1fr auto 1fr;align-items:center;padding:0 var(--pad);font:500 11px/1 var(--mono);letter-spacing:.16em;text-transform:uppercase;color:var(--bone-3);transition:opacity .8s ease .9s}
html.js:not(.is-open) .stage__hud{opacity:0}
.hud__live{display:inline-flex;align-items:center;gap:10px}
.hud__live i{width:7px;height:7px;border-radius:50%;background:var(--ember);animation:rec 1.6s ease-in-out infinite}
.hud__tc{color:var(--bone-2);font-variant-numeric:tabular-nums;letter-spacing:.12em}
.hud__next{justify-self:end;display:inline-flex;align-items:center;gap:10px}
.hud__next svg{width:10px;height:14px;fill:none;stroke:currentColor;stroke-width:1.5;animation:nudge 2.2s var(--e-io) infinite}
@keyframes nudge{0%,100%{transform:translateY(-2px)}50%{transform:translateY(3px)}}

/* ───────── the pass (lanyard) ───────── */
.lny{position:absolute;inset:0;z-index:3;pointer-events:none;perspective:1700px;perspective-origin:60% 30%}
.lny__strap{position:absolute;left:0;top:0;width:100%;height:100%;overflow:visible}
.lny__edge{fill:none;stroke:#e9541f;stroke-width:var(--sw-e,22px);stroke-linejoin:round;stroke-linecap:butt}
.lny__body{fill:none;stroke:#140e0a;stroke-width:var(--sw,19px);stroke-linejoin:round;stroke-linecap:butt}
.lny__txt{font-family:var(--disp);font-size:var(--st,10.5px);letter-spacing:.2em;fill:var(--gold);dominant-baseline:central}
.lny__shadow{position:absolute;left:0;top:0;width:var(--cw);height:var(--ch);border-radius:calc(var(--cw)*.05);background:rgba(0,0,0,.62);filter:blur(calc(var(--cw)*.06));will-change:transform;opacity:0}
.lny__card{position:absolute;left:0;top:0;width:var(--cw);height:var(--ch);--u:calc(var(--cw)/30);font-size:var(--u);pointer-events:auto;cursor:grab;touch-action:none;transform-style:preserve-3d;will-change:transform;-webkit-user-select:none;user-select:none;opacity:0;outline:none}
.lny.is-ready .lny__card,.lny.is-ready .lny__shadow{opacity:1}
.lny__card.is-grab{cursor:grabbing}
.lny__card:focus-visible .pass--front,.lny__card:focus-visible .pass--back{box-shadow:0 0 0 3px var(--gold),0 0 0 6px rgba(255,181,71,.25)}
.lny__clip{position:absolute;left:50%;top:-4.55em;width:4em;height:6.4em;margin-left:-2em;z-index:2;filter:drop-shadow(0 2px 2px rgba(0,0,0,.5))}
.lny__flip{position:absolute;inset:0;transform-style:preserve-3d}
.pass{position:absolute;inset:0;border-radius:1.25em;overflow:hidden;backface-visibility:hidden;-webkit-backface-visibility:hidden;background:#100b08;display:flex;flex-direction:column;box-shadow:inset 0 0 0 .1em rgba(255,255,255,.16)}
.pass--back{transform:rotateY(180deg)}
.pass__top{flex:none;height:3.6em;display:flex;align-items:center;justify-content:space-between;padding:0 1.3em;background:#0c0806;font:700 .74em/1 var(--mono);letter-spacing:.16em;color:rgba(244,235,220,.55)}
.pass__top>span:not(.pass__slot){font-size:1em}
.pass__slot{width:5.6em;height:1.25em;border-radius:1em;background:#020101;box-shadow:inset 0 .12em .2em rgba(0,0,0,1),0 .08em 0 rgba(255,255,255,.12)}
.pass__band{flex:none;height:6.6em;display:flex;align-items:center;justify-content:center;background:var(--hot);position:relative;overflow:hidden}
.pass__band::after{content:"";position:absolute;inset:0;background:repeating-linear-gradient(-55deg,rgba(0,0,0,.06) 0 .35em,transparent .35em .9em)}
.pass__aaa{position:relative;z-index:1;font:400 5.1em/1 var(--disp);letter-spacing:.02em;color:#140a04;transform:translateY(.02em)}
.pass__photo{position:relative;flex:none;height:19.6em;overflow:hidden;background:#2a1208}
.pass__photo img{width:100%;height:100%;object-fit:cover;object-position:50% 28%;pointer-events:none;-webkit-user-drag:none}
.pass__photo::after{content:"";position:absolute;inset:0;background:linear-gradient(to top,rgba(10,6,4,.85) 0%,rgba(10,6,4,0) 42%)}
.pass__name{position:absolute;z-index:1;left:.3em;bottom:.1em;font:400 4.3em/1 var(--disp);letter-spacing:.015em;color:var(--bone)}
.pass__role{position:absolute;z-index:1;left:1.95em;bottom:7.6em;font:700 .7em/1 var(--mono);letter-spacing:.16em;color:var(--gold)}
.pass__seal{position:absolute;z-index:2;right:1.1em;bottom:1.1em;width:6.6em;height:6.6em;border-radius:50%;display:grid;place-items:center;overflow:hidden;background:conic-gradient(from var(--ha,0deg),#ff7a3d,#ffd36b,#9dffd8,#8f7bff,#ff6ad5,#ffb04a,#ff7a3d);box-shadow:0 0 0 .14em rgba(255,255,255,.5),0 .3em .8em rgba(0,0,0,.45)}
.pass__seal::before{content:"";position:absolute;inset:0;background:repeating-radial-gradient(circle at 50% 50%,rgba(255,255,255,.35) 0 .08em,transparent .08em .32em),radial-gradient(circle at var(--gx,30%) var(--gy,30%),rgba(255,255,255,.85),rgba(255,255,255,0) 45%);mix-blend-mode:overlay}
.pass__seal b{position:relative;font:400 3.1em/1 var(--disp);font-weight:400;color:rgba(20,10,4,.82);margin-top:-.12em}
.pass__seal i{position:absolute;bottom:.85em;font:700 .62em/1 var(--mono);font-style:normal;letter-spacing:.2em;color:rgba(20,10,4,.75)}
.pass__info{flex:1;display:flex;flex-direction:column;gap:.9em;padding:1.1em 1.3em 1.15em;background:var(--card);color:#140a04}
.pass__zones{display:flex;gap:.4em}
.pass__zones span{width:1.62em;height:1.62em;display:grid;place-items:center;border-radius:.2em;background:#140a04;color:var(--amber);font:400 1.55em/1 var(--disp)}
.pass__meta{display:flex;flex-direction:column;gap:.3em;font:700 .66em/1.25 var(--mono);letter-spacing:.12em}
.pass__meta span:first-child{font-size:1.25em;letter-spacing:.14em}
.pass__meta span:last-child{opacity:.6}
.pass__code{margin-top:auto;display:flex;align-items:flex-end;justify-content:space-between;gap:1em}
.pass__bars{flex:1;height:2.4em;background:var(--bars) left/100% 100% no-repeat}
.pass__no{font:700 .66em/1 var(--mono);letter-spacing:.12em;white-space:nowrap}
.pass__foil{position:absolute;inset:0;pointer-events:none;mix-blend-mode:color-dodge;opacity:.55;background:linear-gradient(115deg,transparent 0%,transparent calc(var(--fx,50%) - 24%),rgba(255,90,31,.5) calc(var(--fx,50%) - 13%),rgba(255,211,107,.55) calc(var(--fx,50%) - 5%),rgba(157,255,216,.5) var(--fx,50%),rgba(143,123,255,.55) calc(var(--fx,50%) + 6%),rgba(255,106,213,.45) calc(var(--fx,50%) + 13%),transparent calc(var(--fx,50%) + 25%),transparent 100%);-webkit-mask:repeating-linear-gradient(90deg,#000 0 2px,rgba(0,0,0,.5) 2px 4px);mask:repeating-linear-gradient(90deg,#000 0 2px,rgba(0,0,0,.5) 2px 4px)}
.pass__gloss{position:absolute;inset:0;pointer-events:none;border-radius:inherit;background:radial-gradient(70% 55% at var(--gx,30%) var(--gy,20%),rgba(255,255,255,.24),rgba(255,255,255,0) 60%),linear-gradient(160deg,rgba(255,255,255,.12) 0%,rgba(255,255,255,0) 26%);mix-blend-mode:screen}
.pass--back{background:#0e0a07}
.pass__backbig{flex:none;height:15em;display:grid;place-items:center;font:400 13em/1 var(--disp);color:transparent;-webkit-text-stroke:.012em rgba(255,138,31,.75);letter-spacing:.02em;background:radial-gradient(60% 60% at 50% 50%,rgba(255,90,31,.18),transparent 70%)}
.pass__areas{padding:0 1.5em;display:flex;flex-direction:column;gap:.2em;font:700 .95em/1.6 var(--mono);letter-spacing:.12em;color:var(--bone)}
.pass__areas b{display:inline-block;width:2.6em;color:var(--amber);font-weight:700}
.pass__rules{margin:auto 1.5em 0;padding-top:1em;border-top:.08em solid rgba(244,235,220,.2);font:400 2.3em/.95 var(--disp);color:var(--bone)}
.pass__mail{margin:.9em 1.5em 1.6em;font:700 .8em/1 var(--mono);letter-spacing:.1em;color:var(--gold)}
.pass--guest .pass__band{background:linear-gradient(100deg,#2b1f3f,#7b5cff 60%,#b49bff)}
.pass--guest .pass__aaa{color:#f4ebdc}
.pass__photo--type{display:flex;flex-direction:column;justify-content:center;padding:0 1.4em;background:radial-gradient(90% 80% at 30% 30%,#ff8a1f 0%,#ff5a1f 35%,#5a1a08 75%,#1a0b05 100%)}
.pass__photo--type::after{display:none}
.pass__your{font:400 7.2em/.84 var(--disp);color:#140a04;letter-spacing:.005em}
.pass__photo--type .pass__role{position:static;margin-top:1.1em;color:#140a04;opacity:.8}
.lny__hint{position:absolute;left:0;top:0;display:flex;align-items:center;gap:8px;font:500 11px/1 var(--mono);letter-spacing:.14em;text-transform:uppercase;color:var(--bone-2);white-space:nowrap;transition:opacity .6s ease;opacity:0;pointer-events:none}
.lny__hint svg{width:34px;height:20px;fill:none;stroke:var(--gold);stroke-width:1.4;stroke-linecap:round;stroke-linejoin:round}
.lny.is-ready .lny__hint{opacity:1;transition-delay:1.6s}
.lny.is-touched .lny__hint{opacity:0!important;transition-delay:0s}

/* ───────── grain ───────── */
.grain{position:fixed;left:-50%;top:-50%;width:200%;height:200%;z-index:90;pointer-events:none;opacity:.075;background:url(../img/grain.png) repeat;background-size:200px 200px;mix-blend-mode:overlay;animation:grain 1s steps(5) infinite}
@keyframes grain{0%{transform:translate(0,0)}20%{transform:translate(-3%,2%)}40%{transform:translate(2%,-4%)}60%{transform:translate(-4%,-1%)}80%{transform:translate(3%,3%)}100%{transform:translate(0,0)}}

/* ───────── reveal ───────── */
html.js:not(.rm) .rv{opacity:0;transform:translateY(26px);transition:opacity .9s var(--e-out),transform .9s var(--e-out)}
html.js:not(.rm) .rv.is-in{opacity:1;transform:none}
.h2 .w{display:inline-block;overflow:hidden;vertical-align:top;padding-top:.1em;margin-top:-.1em;padding-bottom:.02em}
.h2 .w>span{display:inline-block}
html.js:not(.rm) .h2:not(.is-in) .w>span{transform:translateY(108%)}
html.js:not(.rm) .h2 .w>span{transition:transform .9s var(--e-out) calc(var(--i) * 55ms)}
html.js:not(.rm) .h2.rv{opacity:1;transform:none}

/* ───────── reduced motion ───────── */
.rm *,.rm *::before,.rm *::after{animation-duration:.001s!important;animation-iteration-count:1!important;transition-duration:.001s!important;transition-delay:0s!important}
.rm .grain{display:none}

/* ───────── sections: shared ───────── */
.sec{position:relative;padding:clamp(104px,15vh,200px) 0 clamp(80px,12vh,160px)}
.sec__head{max-width:1180px;margin-bottom:clamp(52px,8vh,104px)}
.area{display:inline-flex;align-items:center;gap:12px;margin-bottom:clamp(22px,3vh,34px);font:500 12px/1 var(--mono);letter-spacing:.16em;text-transform:uppercase;color:var(--bone-3)}
.area__n{display:inline-grid;place-items:center;height:26px;min-width:38px;padding:0 7px;border-radius:5px;background:var(--amber);color:#170b03;font-weight:700;letter-spacing:.06em;box-shadow:0 0 0 4px rgba(255,138,31,.12)}
.h2{font:400 clamp(58px,8.6vw,172px)/.86 var(--disp);text-transform:uppercase;letter-spacing:-.004em;text-wrap:balance;color:var(--bone)}
.h3{font:400 clamp(40px,4.4vw,80px)/.9 var(--disp);text-transform:uppercase;letter-spacing:.002em}
.lead{margin-top:clamp(20px,3vh,32px);font-size:clamp(17px,1.32vw,23px);line-height:1.5;color:var(--bone-2);max-width:50ch}

/* ───────── 02 · studio ───────── */
.studio{background:radial-gradient(80% 60% at 18% 42%,rgba(255,90,31,.10),transparent 70%),linear-gradient(var(--ink),var(--ink-2))}
.studio::before{content:"";position:absolute;left:0;right:0;top:0;height:1px;background:linear-gradient(90deg,transparent,var(--line-2),transparent)}
.feat{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,6fr);gap:clamp(36px,6vw,120px);align-items:center}
.feat__art{position:relative;padding-right:clamp(40px,7%,110px)}
.tilt{position:relative;display:block;transform-style:preserve-3d;transition:transform .7s var(--e-out);will-change:transform}
.tilt.is-tilt{transition:transform .12s linear}
.tilt__glare{position:absolute;inset:0;border-radius:inherit;pointer-events:none;background:radial-gradient(60% 60% at var(--gx,30%) var(--gy,20%),rgba(255,255,255,.28),transparent 60%);mix-blend-mode:soft-light;opacity:0;transition:opacity .4s}
.tilt.is-tilt .tilt__glare{opacity:1}
.feat__cover{position:relative;z-index:2;width:100%;aspect-ratio:1;object-fit:cover;border-radius:6px;box-shadow:0 50px 90px -40px rgba(0,0,0,.95),0 0 0 1px rgba(255,255,255,.06)}
.feat .tilt__glare{z-index:3;border-radius:6px}
.feat__disc{position:absolute;z-index:1;top:3%;left:3%;width:94%;aspect-ratio:1;border-radius:50%;background:repeating-radial-gradient(circle,#0a0807 0 2px,#151210 2px 4px);box-shadow:0 30px 60px -20px rgba(0,0,0,.8),inset 0 0 0 1px rgba(255,255,255,.05);transition:transform 1.4s var(--e-out)}
.feat__disc span{position:absolute;inset:34%;border-radius:50%;background:url(../covers/craving.webp) center/cover;box-shadow:0 0 0 6px #0c0a09}
.feat__disc span::after{content:"";position:absolute;left:50%;top:50%;width:10%;height:10%;margin:-5% 0 0 -5%;border-radius:50%;background:var(--ink)}
.feat__disc::after{content:"";position:absolute;inset:0;border-radius:50%;background:conic-gradient(from 30deg,transparent 0 20%,rgba(255,255,255,.08) 25%,transparent 30% 70%,rgba(255,255,255,.06) 75%,transparent 80%)}
.feat.is-in .feat__disc{transform:translateX(30%) rotate(200deg)}
.feat__body{max-width:640px}
.feat__title{margin:18px 0 10px;font:400 clamp(84px,11vw,220px)/.82 var(--disp);text-transform:uppercase;letter-spacing:-.005em;background:linear-gradient(180deg,var(--bone) 30%,#f6c493 100%);-webkit-background-clip:text;background-clip:text;color:transparent;padding-top:.04em}
.feat__by{font:500 clamp(18px,1.5vw,24px)/1.3 var(--sans);color:var(--bone-2)}
.facts{display:flex;flex-wrap:wrap;gap:12px 44px;margin:30px 0 36px;padding:20px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.facts dt{font:500 11px/1 var(--mono);letter-spacing:.16em;text-transform:uppercase;color:var(--bone-3);margin-bottom:9px}
.facts dd{font:600 17px/1.2 var(--sans)}
.rels{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(18px,2.4vw,40px);margin-top:clamp(80px,12vh,150px)}
.rel__link{display:flex;flex-direction:column;height:100%;padding:16px 16px 22px;border-radius:14px;background:rgba(244,235,220,.025);border:1px solid var(--line);transition:background-color .4s,border-color .4s,transform .6s var(--e-out)}
.rel__link:hover{background:rgba(244,235,220,.05);border-color:var(--line-2);transform:translateY(-4px)}
.rel__art{display:block;border-radius:8px;overflow:hidden;margin-bottom:20px;box-shadow:0 30px 50px -30px rgba(0,0,0,.9)}
.rel__art img{width:100%;aspect-ratio:1;object-fit:cover}
.rel__meta{font:500 11px/1.4 var(--mono);letter-spacing:.14em;text-transform:uppercase;color:var(--bone-3)}
.rel__title{margin-top:10px;font:400 clamp(30px,2.5vw,44px)/.95 var(--disp);text-transform:uppercase}
.rel__by{margin-top:8px;color:var(--bone-2);font-size:15px}
.rel__chips{display:flex;flex-wrap:wrap;gap:6px;margin-top:14px}
.rel__chips span{padding:6px 10px;border-radius:999px;border:1px solid rgba(255,138,31,.4);color:var(--gold);font:500 11px/1 var(--mono);letter-spacing:.06em}
.rel__go{display:inline-flex;align-items:center;gap:8px;margin-top:auto;padding-top:20px;font-weight:600;font-size:15px;color:var(--bone)}
.rel__link:hover .rel__go{color:var(--gold)}
.rel--sig .rel__link{border-color:rgba(255,138,31,.32);background:linear-gradient(180deg,rgba(255,138,31,.08),rgba(255,138,31,0) 60%)}
.labels{display:grid;grid-template-columns:auto 1fr auto;gap:18px 40px;align-items:center;margin-top:clamp(56px,8vh,96px);padding-top:28px;border-top:1px solid var(--line)}
.labels__t{font:500 11px/1 var(--mono);letter-spacing:.16em;text-transform:uppercase;color:var(--bone-3)}
.labels__l{color:var(--bone-2);font-size:16px}
.labels__l i{font-style:normal;color:var(--amber);padding:0 .25em}

/* ───────── 03 · floor ───────── */
.floor{background:var(--ink-2);padding-bottom:0}
.stats{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));border-top:1px solid var(--line-2);border-bottom:1px solid var(--line)}
.stats li{padding:clamp(22px,3vh,36px) clamp(10px,1.4vw,26px) clamp(24px,3.4vh,40px);border-left:1px solid var(--line);display:flex;flex-direction:column;gap:14px}
.stats li:first-child{border-left:0;padding-left:0}
.stat__n{font:400 clamp(54px,6.4vw,124px)/.84 var(--disp);color:var(--bone);font-variant-numeric:tabular-nums;white-space:nowrap}
.stat__u{color:var(--amber)}
.stat__l{font:500 12px/1.35 var(--mono);letter-spacing:.12em;text-transform:uppercase;color:var(--bone-3);max-width:18ch}
.more{display:grid;grid-template-columns:auto 1fr;gap:20px 40px;align-items:baseline;margin-top:clamp(56px,8vh,96px);padding:26px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.more__t{font:500 11px/1 var(--mono);letter-spacing:.16em;text-transform:uppercase;color:var(--bone-3)}
.more__l{display:flex;flex-wrap:wrap;gap:12px 36px}
.more__l li{display:flex;align-items:baseline;gap:10px}
.more__l b{font:400 24px/1 var(--disp);text-transform:uppercase;letter-spacing:.01em}
.more__l span{color:var(--bone-3);font-size:14px}
/* Málaga */
.malaga{position:relative;margin-top:clamp(110px,16vh,200px);min-height:min(100vh,1000px);display:flex;align-items:flex-end;overflow:hidden;background:#140c06}
.malaga__img{position:absolute;inset:0}
.malaga__img img{width:100%;height:100%;object-fit:cover;object-position:50% 40%}
.malaga::before{content:"";position:absolute;inset:0;z-index:1;background:linear-gradient(to top,rgba(11,8,6,.96) 0%,rgba(11,8,6,.7) 32%,rgba(11,8,6,.08) 64%,rgba(11,8,6,.35) 100%),linear-gradient(to right,rgba(11,8,6,.55),transparent 60%)}
.malaga__cap{position:relative;z-index:2;padding-top:30vh;padding-bottom:clamp(56px,9vh,110px);display:grid;grid-template-columns:minmax(0,7fr) minmax(0,5fr);grid-template-areas:"tag tag" "h n" "q q";gap:0 40px;align-items:end}
.malaga__cap .tag{grid-area:tag;color:var(--gold);margin-bottom:22px}
.malaga__h{grid-area:h;font:400 clamp(58px,7.6vw,152px)/.86 var(--disp);text-transform:uppercase}
.malaga__n{grid-area:n;justify-self:end;text-align:right;display:flex;flex-direction:column;align-items:flex-end}
.malaga__n b{font:400 clamp(64px,7vw,140px)/.82 var(--disp);color:var(--amber)}
.malaga__n span{font:500 12px/1 var(--mono);letter-spacing:.16em;text-transform:uppercase;color:var(--bone-2);margin-top:12px}
.malaga__q{grid-area:q;margin-top:clamp(36px,5vh,64px);padding-top:clamp(26px,3.5vh,40px);border-top:1px solid var(--line-2);max-width:1200px}
.malaga__q p{font:400 clamp(30px,3.4vw,62px)/1.06 var(--serif);letter-spacing:-.01em;color:var(--bone);text-wrap:balance}
.malaga__q footer{margin-top:18px;font:500 12px/1 var(--mono);letter-spacing:.14em;text-transform:uppercase;color:var(--bone-3)}
/* season sheet */
.season{padding-top:clamp(96px,14vh,180px);padding-bottom:clamp(96px,14vh,170px)}
.season__head{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:12px 40px;margin-bottom:28px}
.season__status{font:500 13px/1.3 var(--mono);letter-spacing:.14em;text-transform:uppercase;color:var(--gold)}
.sheet{border-top:1px solid var(--line-2)}
.row{display:grid;grid-template-columns:clamp(96px,11vw,170px) minmax(0,1fr) auto;align-items:center;gap:20px;padding:18px 0;border-bottom:1px dashed rgba(244,235,220,.16);transition:background-color .3s}
.row:hover{background:linear-gradient(90deg,rgba(255,138,31,.05),transparent 70%)}
.row__d{font:400 clamp(26px,2.4vw,40px)/1 var(--disp);color:var(--bone);font-variant-numeric:tabular-nums;text-transform:uppercase}
.row__e{display:flex;flex-direction:column;gap:3px;min-width:0}
.row__e b{font:600 clamp(17px,1.3vw,21px)/1.25 var(--sans)}
.row__e span{color:var(--bone-3);font-size:15px}
.is-played .row__d,.is-played .row__e{opacity:.62}
.row__s{min-width:118px;display:flex;justify-content:flex-end}
.stamp{display:inline-block;padding:7px 12px 6px;border:2px solid var(--ember);border-radius:6px;font:400 19px/1 var(--disp);letter-spacing:.08em;text-transform:uppercase;color:var(--ember);transform:rotate(-7deg);opacity:.92;-webkit-mask:url(../img/grain.png) center/120px;mask:url(../img/grain.png) center/120px;-webkit-mask-mode:luminance;mask-mode:luminance}
html.js:not(.rm) .row:not(.is-stamped) .stamp{opacity:0;transform:rotate(-7deg) scale(1.9)}
html.js:not(.rm) .row.is-stamped .stamp{animation:stamp .5s cubic-bezier(.3,1.6,.5,1) both;animation-delay:calc(var(--r) * 90ms + 150ms)}
@keyframes stamp{0%{opacity:0;transform:rotate(-14deg) scale(2.1)}60%{opacity:.95;transform:rotate(-6deg) scale(.94)}100%{opacity:.92;transform:rotate(-7deg) scale(1)}}
.soon{padding:7px 12px;border-radius:999px;background:var(--amber);color:#170b03;font:600 12px/1 var(--mono);letter-spacing:.08em;text-transform:uppercase}
.next{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:20px clamp(28px,4vw,64px);margin-top:clamp(48px,7vh,80px);padding:clamp(28px,4vh,44px) clamp(24px,3vw,48px);border-radius:16px;border:1px solid rgba(255,138,31,.35);background:radial-gradient(120% 140% at 0% 0%,rgba(255,90,31,.2),transparent 55%),var(--ink-3)}
.next__y{font:400 clamp(72px,8vw,150px)/.8 var(--disp);color:transparent;-webkit-text-stroke:1.5px var(--amber)}
.next__h{font:400 clamp(28px,2.6vw,46px)/.95 var(--disp);text-transform:uppercase}
.next__p{margin-top:10px;color:var(--bone-2);max-width:52ch}

/* ───────── 04 · backstage ───────── */
.back{background:radial-gradient(70% 50% at 80% 10%,rgba(123,92,255,.10),transparent 70%),var(--ink)}
.rings{display:flex;flex-wrap:wrap;gap:clamp(18px,3vw,52px);padding:clamp(28px,4vh,44px) clamp(20px,3vw,48px);border-radius:20px;border:1px solid var(--line);background:linear-gradient(180deg,rgba(244,235,220,.03),rgba(244,235,220,0))}
.ring{display:flex;flex-direction:column;align-items:center;gap:12px;width:clamp(92px,9vw,140px);text-align:center;border-radius:14px;padding:4px}
.ring__o{position:relative;display:block;width:100%;aspect-ratio:1;border-radius:50%;padding:4px;background:conic-gradient(from var(--ra,0deg),#ffb547,#ff8a1f,#ff5a1f,#c53b8f,#7b5cff,#ff8a1f,#ffb547);transition:transform .6s var(--e-out),filter .4s}
.ring__i{display:block;width:100%;height:100%;border-radius:50%;padding:4px;background:var(--ink);overflow:hidden}
.ring__i img{width:100%;height:100%;border-radius:50%;object-fit:cover;transition:transform .8s var(--e-out)}
.ring:hover .ring__o{transform:scale(1.05);animation:ringspin 2.4s linear infinite}
.ring:hover .ring__i img{transform:scale(1.08)}
@property --ra{syntax:'<angle>';inherits:false;initial-value:0deg}
@keyframes ringspin{to{--ra:360deg}}
.ring.is-seen .ring__o{background:rgba(244,235,220,.22)}
.ring__t{font:600 16px/1.1 var(--sans)}
.ring__n{font:500 10.5px/1 var(--mono);letter-spacing:.14em;text-transform:uppercase;color:var(--bone-3);margin-top:-4px}
.bio{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:clamp(36px,6vw,120px);align-items:start;margin-top:clamp(90px,13vh,170px)}
.bio__img{position:relative;border-radius:12px;overflow:hidden;background:#2a1208}
.bio__img img{width:100%;aspect-ratio:3/4;object-fit:cover}
.bio__img figcaption{position:absolute;left:14px;right:14px;bottom:14px;display:flex;justify-content:space-between;padding:12px 14px;border-radius:8px;background:rgba(11,8,6,.66);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);font:600 11px/1 var(--mono);letter-spacing:.18em;color:var(--bone-2)}
.bio__img figcaption span:first-child{color:var(--amber)}
.bio__body{padding-top:clamp(0px,3vh,40px)}
.bio__body p.rv{margin-top:22px;font-size:clamp(17px,1.25vw,21px);line-height:1.6;color:var(--bone-2);max-width:60ch}
.bio__body .h3{margin-bottom:10px}
.bio__q{margin-top:clamp(34px,5vh,52px);padding-left:24px;border-left:2px solid var(--amber)}
.bio__q p{font:400 clamp(28px,2.6vw,46px)/1.08 var(--serif);color:var(--bone);margin:0!important}
.bio__q footer{margin-top:14px;font:500 12px/1 var(--mono);letter-spacing:.14em;text-transform:uppercase;color:var(--bone-3)}
.bio__facts{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:20px;margin-top:clamp(40px,6vh,64px);padding-top:26px;border-top:1px solid var(--line)}
.bio__facts dt{font:500 11px/1.3 var(--mono);letter-spacing:.12em;text-transform:uppercase;color:var(--bone-3)}
.bio__facts dd{margin-top:10px;font:400 clamp(30px,2.7vw,48px)/.9 var(--disp);color:var(--bone)}

/* ───────── 05 · production office ───────── */
.office{background:radial-gradient(70% 60% at 85% 30%,rgba(255,90,31,.12),transparent 70%),var(--ink-2);overflow:hidden}
.office__grid{display:grid;grid-template-columns:minmax(0,7fr) minmax(0,4fr);gap:clamp(40px,6vw,120px);align-items:start}
.chips{display:flex;flex-wrap:wrap;gap:10px;margin-bottom:clamp(36px,5vh,56px)}
.chips legend{width:100%;margin-bottom:16px;font:500 12px/1 var(--mono);letter-spacing:.16em;text-transform:uppercase;color:var(--bone-3)}
.chip{height:46px;padding:0 20px;border-radius:999px;border:1px solid var(--line-2);font:500 15px/1 var(--sans);color:var(--bone-2);transition:all .3s var(--e-out)}
.chip:hover{border-color:var(--bone);color:var(--bone)}
.chip[aria-pressed="true"]{background:var(--amber);border-color:var(--amber);color:#170b03;font-weight:600}
.bigmail{display:block;padding:clamp(22px,3vh,34px) 0;border-top:1px solid var(--line-2);border-bottom:1px solid var(--line-2)}
.bigmail__a{display:block;font:800 clamp(34px,5.1vw,98px)/1 var(--sans);font-stretch:112%;letter-spacing:-.035em;color:var(--bone);transition:color .35s;word-break:break-word}
.bigmail__a i{font-style:normal;color:var(--amber)}
.bigmail__go{display:inline-flex;align-items:center;gap:10px;margin-top:18px;font-weight:600;color:var(--gold)}
.bigmail:hover .bigmail__a{color:var(--gold)}
.bigmail:hover .ico{transform:translateX(4px)}
.contacts{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px;margin-top:clamp(36px,5vh,56px)}
.contacts li{display:flex;flex-direction:column;gap:8px}
.contacts span{font:500 11px/1 var(--mono);letter-spacing:.16em;text-transform:uppercase;color:var(--bone-3)}
.contacts a{font-weight:600;word-break:break-all;transition:color .25s}
.contacts a:hover{color:var(--gold)}
.office__side{position:relative}
.lny--office{position:relative;inset:auto;height:clamp(470px,40vw,560px);margin-top:calc(var(--hdr) * -1);perspective-origin:50% 20%}
.lny--office::before{content:"";position:absolute;left:50%;top:0;width:64px;height:22px;margin-left:-32px;border-radius:0 0 10px 10px;background:linear-gradient(180deg,#3a2f27,#1b1410);box-shadow:inset 0 -1px 0 rgba(255,255,255,.12),0 6px 12px rgba(0,0,0,.4);z-index:2}
.lny--office::after{content:"";position:absolute;left:50%;top:6px;width:10px;height:10px;margin-left:-5px;border-radius:50%;background:radial-gradient(circle at 35% 35%,#f4e2c4,#7b6650);z-index:3}
.dls{margin-top:12px;padding:22px 24px;border-radius:14px;border:1px solid var(--line);background:rgba(11,8,6,.4)}
.dls__t{font:500 11px/1 var(--mono);letter-spacing:.16em;text-transform:uppercase;color:var(--bone-3);margin-bottom:8px}
.dls a{display:flex;align-items:baseline;justify-content:space-between;gap:16px;padding:12px 0;border-bottom:1px solid var(--line);font-weight:600;transition:color .25s,padding .35s var(--e-out)}
.dls li:last-child a{border-bottom:0}
.dls a:hover{color:var(--gold);padding-left:6px}
.dls small{font:500 11px/1 var(--mono);letter-spacing:.08em;color:var(--bone-3);white-space:nowrap}

/* ───────── footer ───────── */
.ftr{position:relative;padding:clamp(60px,10vh,120px) 0 calc(36px + env(safe-area-inset-bottom));background:var(--ink);border-top:1px solid var(--line);overflow:hidden}
.ftr__word{font:400 clamp(90px,24.4vw,460px)/.78 var(--disp);letter-spacing:.005em;text-align:center;color:transparent;-webkit-text-stroke:1px rgba(244,235,220,.22);background:linear-gradient(180deg,rgba(255,138,31,.0) 40%,rgba(255,138,31,.16));-webkit-background-clip:text;background-clip:text;user-select:none;padding-top:.04em}
.ftr__row{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:18px 40px;margin-top:clamp(36px,6vh,64px)}
.ftr__line{font:400 clamp(30px,2.6vw,46px)/1 var(--serif)}
.ftr__social{display:flex;flex-wrap:wrap;gap:8px 24px}
.ftr__social a{font-weight:600;color:var(--bone-2);transition:color .25s}
.ftr__social a:hover{color:var(--gold)}
.ftr__small{margin-top:28px;padding-top:22px;border-top:1px solid var(--line);font:500 12px/1.5 var(--mono);letter-spacing:.04em;color:var(--bone-3)}
.ftr__small a{text-decoration:underline;text-underline-offset:3px}
.ftr__small a:hover{color:var(--bone)}

/* ───────── story viewer ───────── */
html.is-modal{overflow:hidden}
.sv{position:fixed;inset:0;z-index:120;display:grid;place-items:center;background:#050302;opacity:0;transition:opacity .3s ease}
.sv[hidden]{display:none}
.sv.is-on{opacity:1}
.sv__bg{position:absolute;inset:0;overflow:hidden}
.sv__bgimg{position:absolute;inset:-10%;background:center/cover no-repeat;filter:blur(46px) saturate(1.3) brightness(.42);transform:scale(1.1);transition:background-image .4s}
.sv__stage{position:relative;z-index:1;display:flex;align-items:center;justify-content:center;gap:28px;width:100%;height:100%}
.sv__card{position:relative;height:min(92vh,92svh,980px);aspect-ratio:9/16;border-radius:16px;overflow:hidden;background:#000;box-shadow:0 40px 120px rgba(0,0,0,.6);touch-action:none;user-select:none;-webkit-user-select:none;transition:transform .35s var(--e-out)}
.sv__card.is-in-r{animation:svr .45s var(--e-out)}
.sv__card.is-in-l{animation:svl .45s var(--e-out)}
@keyframes svr{from{transform:translateX(40px) rotateY(-8deg);opacity:.4}to{transform:none;opacity:1}}
@keyframes svl{from{transform:translateX(-40px) rotateY(8deg);opacity:.4}to{transform:none;opacity:1}}
.sv__media,.sv__media>*{position:absolute;inset:0;width:100%;height:100%}
.sv__v,.sv__img{object-fit:cover}
.sv__img.is-kb{animation:kb 6s ease-out both}
.sv__img.is-pan{object-position:0% 50%;animation:pan 5.6s ease-in-out both}
@keyframes kb{from{transform:scale(1.12)}to{transform:scale(1)}}
@keyframes pan{from{object-position:0% 50%}to{object-position:100% 50%}}
.is-paused .sv__img{animation-play-state:paused}
.sv__cov,.sv__quote{display:grid;place-items:center}
.sv__covbg{position:absolute;inset:-8%;background:center/cover;filter:blur(30px) brightness(.55) saturate(1.2)}
.sv__cov img{position:relative;width:78%;height:auto;aspect-ratio:1;border-radius:8px;box-shadow:0 30px 60px rgba(0,0,0,.6);animation:kb 6s ease-out both}
.sv__quote blockquote{position:relative;padding:0 9%}
.sv__quote p{font:400 clamp(28px,3.2vh,40px)/1.1 var(--serif);color:var(--bone);text-wrap:balance}
.sv__quote footer{margin-top:18px;font:500 11px/1.4 var(--mono);letter-spacing:.14em;text-transform:uppercase;color:var(--gold)}
.sv__scrim{position:absolute;inset:0;pointer-events:none;background:linear-gradient(to bottom,rgba(0,0,0,.55),transparent 18%,transparent 62%,rgba(0,0,0,.72))}
.sv__top{position:absolute;left:0;right:0;top:0;padding:12px 12px 0;z-index:2}
.sv__bars{display:flex;gap:4px}
.sv__bar{flex:1;height:2.5px;border-radius:2px;background:rgba(255,255,255,.3);overflow:hidden}
.sv__bar i{display:block;height:100%;background:#fff;transform-origin:left;transform:scaleX(0)}
.sv__head{display:flex;align-items:center;gap:10px;margin-top:12px}
.sv__avatar{width:34px;height:34px;border-radius:50%;padding:2px;background:conic-gradient(#ffb547,#ff5a1f,#7b5cff,#ffb547);flex:none}
.sv__avatar img{width:100%;height:100%;border-radius:50%;object-fit:cover;border:2px solid #000}
.sv__id{display:flex;align-items:baseline;gap:8px;margin-right:auto;min-width:0}
.sv__name{font:600 15px/1 var(--sans);color:#fff}
.sv__count{font:500 11px/1 var(--mono);color:rgba(255,255,255,.65);letter-spacing:.08em}
.sv__btn{width:40px;height:40px;display:grid;place-items:center;border-radius:50%;color:#fff}
.sv__btn:hover{background:rgba(255,255,255,.12)}
.sv__btn svg{width:20px;height:20px;fill:currentColor}
.sv__btn .i-play{display:none}
.is-paused .sv__btn .i-play{display:block}.is-paused .sv__btn .i-pause{display:none}
.js-sv-close svg{fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round}
.sv__cap{position:absolute;z-index:2;left:20px;right:20px;bottom:44px;font:600 clamp(19px,2.2vh,24px)/1.25 var(--sans);color:#fff;text-shadow:0 2px 16px rgba(0,0,0,.5);text-wrap:balance}
.sv__hint{position:absolute;z-index:2;left:20px;right:20px;bottom:16px;font:500 10.5px/1.3 var(--mono);letter-spacing:.1em;text-transform:uppercase;color:rgba(255,255,255,.6);transition:opacity .6s}
.sv.is-hinted .sv__hint{opacity:0}
.sv__side{width:52px;height:52px;flex:none;display:grid;place-items:center;border-radius:50%;background:rgba(244,235,220,.92);color:#140a04;transition:transform .3s var(--e-out),background-color .3s}
.sv__side:hover{transform:scale(1.08);background:#fff}
.sv__side svg{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:2.2;stroke-linecap:round;stroke-linejoin:round}

/* ───────── showreel ───────── */
.reel{position:fixed;inset:0;z-index:130;display:grid;place-items:center;background:rgba(5,3,2,.94);padding:clamp(16px,4vw,64px)}
.reel[hidden]{display:none}
.reel__v{width:min(100%,calc((100vh - 120px) * 16 / 9));aspect-ratio:16/9;border-radius:10px;background:#000;box-shadow:0 40px 120px rgba(0,0,0,.7)}
.reel__close{position:absolute;top:18px;right:18px;width:48px;height:48px;display:grid;place-items:center;border-radius:50%;border:1px solid var(--line-2);color:var(--bone)}
.reel__close:hover{background:rgba(244,235,220,.1)}
.reel__close svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round}

/* ───────── responsive ───────── */
@media (max-width:1180px){
  .hdr__nav{display:none}
  .hdr__menu{display:block}
  .hdr__tools{margin-left:auto}
  .stats{grid-template-columns:repeat(3,minmax(0,1fr))}
  .stats li:nth-child(4){border-left:0;padding-left:0}
  .stats li:nth-child(n+4){border-top:1px solid var(--line)}
  .stage__copy{width:min(560px,52vw)}
}
@media (max-width:960px){
  .feat,.bio,.office__grid{grid-template-columns:minmax(0,1fr)}
  .feat__art{max-width:540px}
  .rels{grid-template-columns:repeat(2,minmax(0,1fr))}
  .rel--sig{grid-column:1/-1}
  .rel--sig .rel__link{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.3fr);column-gap:24px;align-items:start}
  .rel--sig .rel__art{grid-row:1/8;margin-bottom:0}
  .labels{grid-template-columns:1fr}
  .bio__img{max-width:520px}
  .lny--office{margin-top:0;height:500px}
  .office__side{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:24px;align-items:start}
  .malaga__cap{grid-template-columns:minmax(0,1fr);grid-template-areas:"tag" "h" "n" "q"}
  .malaga__n{justify-self:start;text-align:left;align-items:flex-start;margin-top:24px}
}
@media (max-width:760px){
  :root{--hdr:64px;--bar-b:46px}
  .hdr{gap:10px}
  .hdr__brand{font-size:24px}
  .tool{padding:0 9px}
  .tool--sound .tool__lbl{display:none}
  .hdr__book{display:none}
  .stage{min-height:640px}
  .stage__shade{background:linear-gradient(to bottom,rgba(11,8,6,.55) 0%,rgba(11,8,6,0) 24%,rgba(11,8,6,.05) 40%,rgba(11,8,6,.7) 62%,rgba(11,8,6,.95) 100%)}
  .stage__word{top:calc(var(--hdr) + 52vh);top:calc(var(--hdr) + 46svh);bottom:auto}
  .stage__copy{top:auto;bottom:calc(var(--bar-b) + 14px);left:var(--pad);right:var(--pad);width:auto}
  .kicker{font-size:10.5px;letter-spacing:.13em}
  .stage__line{font-size:clamp(34px,9.6vw,46px);margin:12px 0 10px}
  .stage__sub{font-size:14.5px;max-width:36ch}
  .stage__cta{margin-top:18px;gap:10px}
  .stage__cta .btn{height:50px;padding:0 1.15em;font-size:14.5px;flex:1 1 auto}
  .hud__next{display:none}
  .stage__hud{grid-template-columns:1fr auto;font-size:10px}
  .lny__hint{font-size:10px}
  .h2{font-size:clamp(50px,14.6vw,84px)}
  .rels{grid-template-columns:minmax(0,1fr)}
  .rel--sig .rel__link{display:flex}
  .rel--sig .rel__art{margin-bottom:20px}
  .stats{grid-template-columns:repeat(2,minmax(0,1fr))}
  .stats li,.stats li:nth-child(4){border-left:0;padding-left:0}
  .stats li:nth-child(even){border-left:1px solid var(--line);padding-left:18px}
  .stats li:nth-child(n+3){border-top:1px solid var(--line)}
  .stats li:last-child{grid-column:1/-1;border-left:0;padding-left:0}
  .more{grid-template-columns:1fr}
  .malaga{min-height:0}
  .malaga__img{position:relative;height:58vh;max-height:520px}
  .malaga::before{background:linear-gradient(to top,var(--ink-2) 0%,rgba(11,8,6,.9) 30%,rgba(11,8,6,0) 52%)}
  .malaga{display:block;background:var(--ink-2)}
  .malaga__cap{padding-top:0;margin-top:-90px}
  .row{grid-template-columns:76px minmax(0,1fr);gap:4px 14px;padding:16px 0}
  .row__s{grid-column:2;justify-content:flex-start;min-width:0;margin-top:8px}
  .stamp{font-size:16px}
  .next{grid-template-columns:minmax(0,1fr)}
  .rings{gap:18px 10px;padding:22px 12px;justify-content:space-between}
  .ring{width:calc(33.333% - 8px)}
  .ring__o{max-width:96px}
  .bio__facts{grid-template-columns:repeat(2,minmax(0,1fr))}
  .office__side{grid-template-columns:minmax(0,1fr)}
  .lny--office{height:460px}
  .contacts{grid-template-columns:minmax(0,1fr)}
  .ftr__row{flex-direction:column;align-items:flex-start}
  .sv__stage{gap:0}
  .sv__card{height:100%;width:100%;aspect-ratio:auto;border-radius:0}
  .sv__side{display:none}
  .sv__top{padding-top:calc(10px + env(safe-area-inset-top))}
  .sv__cap{bottom:calc(46px + env(safe-area-inset-bottom))}
  .sv__hint{bottom:calc(16px + env(safe-area-inset-bottom))}
}
@media (max-width:760px) and (max-height:700px){
  .stage__sub{display:none}
}

/* hero wordmark: the letters are windows in the veil — the live footage burns through them */
.stage__veil{position:absolute;inset:0;width:100%;height:100%;overflow:visible;pointer-events:none}
.vt{font-family:var(--disp);text-anchor:middle;letter-spacing:.004em}
.vt--mask{transition:opacity 1.8s ease .35s}
.vt--glow{fill:rgba(255,150,70,.14);mix-blend-mode:screen;transition:opacity 1.8s ease .35s}
.vt--line{fill:none;stroke:rgba(255,205,150,.34);stroke-width:1;transition:opacity 1.2s ease .2s}
html.js:not(.is-open) .vt{opacity:0}
.stage__mark{display:none}
.stage__word::after{display:none}
img{height:auto}
.feat__body{position:relative;z-index:3}
.bigmail__a{font-size:clamp(30px,4.35vw,84px);font-stretch:104%;word-break:normal;overflow-wrap:normal;white-space:nowrap}
.rings{justify-content:space-between}
.ring{width:clamp(96px,10.4vw,156px)}
.bio{align-items:center}
.bio__img img{aspect-ratio:4/5}
.sec{padding-top:clamp(96px,13vh,170px);padding-bottom:clamp(72px,10vh,130px)}
.vt--glow{mix-blend-mode:normal}
.stage__shade{display:none}
canvas.stage__veil{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}
.pass__foil{opacity:.42;-webkit-mask:repeating-linear-gradient(118deg,#000 0 1.5px,rgba(0,0,0,.35) 1.5px 3.5px);mask:repeating-linear-gradient(118deg,#000 0 1.5px,rgba(0,0,0,.35) 1.5px 3.5px)}
.stage__copy{width:min(740px,50vw)}
@media (max-width:760px){.tool--sound .tool__lbl{display:inline}.stage__copy{width:auto}}
/* releases: no boxes — cover, caption, quiet hover */
.rel__link{padding:0;border:0;background:none;border-radius:0}
.rel__link:hover{background:none;transform:none}
.rel__art{transition:transform .7s var(--e-out),box-shadow .7s var(--e-out)}
.rel__link:hover .rel__art{box-shadow:0 40px 70px -30px rgba(0,0,0,.95),0 0 0 1px rgba(255,138,31,.35)}
.rel--sig .rel__link{border:0;background:none}
.rel--sig .rel__art{box-shadow:0 30px 60px -30px rgba(255,90,31,.55),0 0 0 1px rgba(255,138,31,.4)}
.rel__go{padding-top:16px}
.season{padding-bottom:clamp(64px,9vh,110px)}
.eq i:nth-child(1){height:5px}.eq i:nth-child(2){height:9px}.eq i:nth-child(3){height:6px}.eq i:nth-child(4){height:11px}
.studio{overflow:hidden}
@media (max-width:760px){
  .tool--sound .tool__lbl{display:none}
  .tool--sound{width:40px;justify-content:center;padding:0}
  .feat.is-in .feat__disc{transform:translateX(16%) rotate(200deg)}
  .feat__art{padding-right:14%}
  .rels{grid-template-columns:repeat(2,minmax(0,1fr));gap:36px 14px}
  .rel__title{font-size:26px}
  .rel__by{font-size:13.5px}
  .rel__meta{font-size:10px}
  .rel--sig{grid-column:1/-1}
  .row{grid-template-columns:58px minmax(0,1fr) auto;gap:4px 12px;padding:14px 0}
  .row__d{font-size:22px}
  .row__e b{font-size:15.5px}
  .row__e span{font-size:13.5px}
  .row__s{grid-column:auto;margin-top:0;justify-content:flex-end}
  .stamp{font-size:13px;padding:5px 8px 4px;border-width:1.5px}
  .soon{font-size:10px;padding:6px 9px}
}
.sv__quote{background:#1a0c05}
.sv__quote .sv__covbg{filter:blur(22px) brightness(.5) saturate(1.1) sepia(.5);opacity:.9}
.sv__quote::before{content:"";position:absolute;inset:0;background:radial-gradient(90% 60% at 30% 25%,rgba(255,90,31,.55),transparent 70%),radial-gradient(80% 50% at 80% 90%,rgba(123,92,255,.28),transparent 70%)}
.sv__quote blockquote{padding:0 10%}
.sv__quote blockquote::before{content:"“";display:block;font:400 120px/.7 var(--serif);color:var(--amber);margin-bottom:6px}
.sv__quote p{font-size:clamp(30px,3.9vh,44px);line-height:1.04}
.sv__quote .sv__covbg{z-index:0}
.sv__quote::before{z-index:1}
.sv__quote blockquote{z-index:2}
.stats{grid-template-columns:minmax(0,1.45fr) repeat(4,minmax(0,1fr))}
html[lang=de] .stats li:first-child .stat__u{font-size:.5em;letter-spacing:.01em}
@media (max-width:1180px){.stats{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media (max-width:760px){.stats{grid-template-columns:repeat(2,minmax(0,1fr))}}
.rm .lny__hint{display:none}
/* portrait tablets use the stacked hero (pass top, wordmark middle, copy bottom) */
@media (min-width:761px) and (max-width:1100px) and (orientation:portrait){
  .stage__word{top:calc(var(--hdr) + 47svh);bottom:auto}
  .stage__copy{top:auto;bottom:calc(var(--bar-b) + 22px);left:var(--pad);right:var(--pad);width:auto;max-width:640px}
  .stage__line{font-size:clamp(46px,7vw,64px)}
}
.menu .tool--sound .tool__lbl{display:inline}
.menu .tool--sound{width:auto;padding:0 12px}
.area__n::before{content:"AREA ";font-weight:500;opacity:.75}
html[lang=de] .area__n::before{content:"BEREICH "}
.area__n{padding:0 9px}
html{overflow-x:clip}
.area__n{white-space:nowrap}
.row__d{white-space:nowrap}
@media (max-width:760px){
  .row{grid-template-columns:70px minmax(0,1fr) auto}
  .row__d{font-size:20px}
}

.lny__card:not(.is-back) .pass--back,.lny__card.is-back .pass--front{visibility:hidden}

/* ───────── 03 · clubs played (carousel) ───────── */
.clubs{--per:3.5;--cg:clamp(14px,1.5vw,26px);margin-top:clamp(72px,10vh,128px)}
.clubs__head{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:22px 48px;margin-bottom:clamp(26px,3.6vh,44px)}
.clubs__intro{flex:1 1 520px;max-width:820px}
.clubs__lead{margin-top:16px;font-size:clamp(16px,1.15vw,20px);line-height:1.5;color:var(--bone-2);max-width:54ch}
.clubs__ctl{display:flex;align-items:center;gap:10px;flex:none}
.clubs__count{display:flex;align-items:baseline;gap:8px;margin-right:14px;font:500 13px/1 var(--mono);letter-spacing:.12em;color:var(--bone-3);font-variant-numeric:tabular-nums}
.clubs__count b{min-width:1.1em;font:400 32px/1 var(--disp);letter-spacing:.02em;color:var(--bone);text-align:right}
.clubs__of{opacity:.55}
.clubs__btn{width:54px;height:54px;display:grid;place-items:center;border-radius:50%;border:1px solid var(--line-2);background:rgba(244,235,220,.02);color:var(--bone);transition:background-color .3s,border-color .3s,color .3s,opacity .3s,transform .45s var(--e-out)}
.clubs__btn svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round}
@media (hover:hover) and (pointer:fine){.clubs__btn:not(.is-off):hover{background:var(--amber);border-color:var(--amber);color:#170b03}}
.clubs__btn:not(.is-off):active{transform:scale(.94)}
.clubs__btn.is-off{opacity:.28;cursor:default}
.clubs__vp{position:relative;overflow-x:auto;overflow-y:hidden;overscroll-behavior-x:contain;scroll-snap-type:x mandatory;scroll-padding-inline:var(--pad);scroll-padding-inline:max(var(--pad),calc((100% - 1720px) / 2 + var(--pad)));scrollbar-width:none;-ms-overflow-style:none;-webkit-overflow-scrolling:touch;container-type:inline-size;-webkit-user-select:none;user-select:none;outline:none}
.clubs__vp::-webkit-scrollbar{display:none}
.clubs__vp:focus-visible{outline:2px solid var(--gold);outline-offset:-2px;border-radius:0}
@media (hover:hover) and (pointer:fine){.clubs__vp{cursor:grab}}
.clubs__vp.is-drag{cursor:grabbing;scroll-snap-type:none}
.clubs__row{display:flex;gap:var(--cg);width:max-content;padding:6px var(--pad) 8px;padding:6px max(var(--pad),calc((100cqw - 1720px) / 2 + var(--pad))) 8px}
.club{position:relative;flex:none;scroll-snap-align:start;width:min(440px,calc((100vw - 2 * var(--pad) - (var(--per) - 1) * var(--cg)) / var(--per)));width:min(440px,calc((100cqw - 2 * var(--pad) - (var(--per) - 1) * var(--cg)) / var(--per)))}
.club__media{position:relative;aspect-ratio:4/5;overflow:hidden;border-radius:10px;background:#1a0f08;margin-bottom:18px;isolation:isolate;box-shadow:0 30px 60px -36px rgba(0,0,0,.9),0 0 0 1px rgba(244,235,220,.06)}
.club__media>img,.club__v{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;pointer-events:none;-webkit-user-drag:none;transition:transform 1.2s var(--e-out),opacity .6s ease}
.club__v{opacity:0}
.club__v.is-on{opacity:1}
.club__media::after{content:"";position:absolute;inset:0;z-index:1;pointer-events:none;background:linear-gradient(to bottom,rgba(11,8,6,.5) 0%,rgba(11,8,6,0) 28%,rgba(11,8,6,0) 72%,rgba(11,8,6,.3) 100%)}
@media (hover:hover) and (pointer:fine){.club:hover .club__media>img,.club:hover .club__v{transform:scale(1.035)}}
.club__badge{position:absolute;z-index:2;left:12px;top:12px;display:inline-flex;align-items:center;gap:9px;padding:7px 12px 6px;border-radius:999px;background:rgba(11,8,6,.74);box-shadow:inset 0 0 0 1px rgba(255,181,71,.42);font:600 10px/1 var(--mono);letter-spacing:.14em;text-transform:uppercase;color:var(--bone-2);white-space:nowrap}
.club__badge b{font:400 18px/.9 var(--disp);letter-spacing:.02em;color:var(--gold);transform:translateY(1px)}
.club__badge--fest{box-shadow:inset 0 0 0 1px rgba(170,150,255,.55)}
.club__badge--fest b{color:#cbbfff}
.club__kind{display:flex;align-items:center;gap:10px;font:500 11px/1 var(--mono);letter-spacing:.16em;text-transform:uppercase;color:var(--bone-3)}
.club__no{color:var(--amber);font-weight:700}
.club--fest .club__kind span:last-child{color:#cbbfff}
.club__name{margin:11px 0 0;font:400 clamp(34px,2.7vw,50px)/.9 var(--disp);text-transform:uppercase;letter-spacing:.006em;text-wrap:balance;color:var(--bone)}
.club__city{margin-top:8px;font-size:15px;color:var(--bone-2)}
.club__note{display:inline-block;margin-top:12px;padding:6px 10px 5px;border-radius:999px;border:1px dashed rgba(244,235,220,.34);font:500 10.5px/1 var(--mono);letter-spacing:.12em;text-transform:uppercase;color:var(--bone-3)}
.clubs__bar{position:relative;height:2px;margin-top:clamp(18px,2.6vh,30px);border-radius:2px;background:var(--line);overflow:hidden}
.clubs__bar i{position:absolute;left:0;top:0;bottom:0;width:30%;border-radius:2px;background:var(--amber);will-change:transform}
@media (max-width:1180px){.clubs{--per:2.5}}
@media (max-width:760px){
  .clubs{--per:1.2;--cg:14px}
  .clubs__intro{flex-basis:100%}
  .clubs__ctl{width:100%}
  .clubs__count{margin-right:auto}
  .clubs__btn{width:50px;height:50px}
  .club__name{font-size:38px}
  .club__media{margin-bottom:16px}
}

/* ═════════ round 2 ═════════ */
/* DJ Mag Top 100 Clubs: the official badge next to the rank (fixed width, auto height: never stretched) */
.club__badge--dj{gap:11px;padding:5px 14px 5px 5px;border-radius:10px;background:rgba(11,8,6,.8);box-shadow:inset 0 0 0 1px rgba(255,181,71,.36),0 12px 28px -14px rgba(0,0,0,.9)}
.club__dj{display:block;width:84px;height:auto;flex:none;border-radius:6px}
.club__badge--dj b{font-size:27px;line-height:.9}
.clubs__cred{display:flex;align-items:center;gap:18px;margin-top:18px}
.clubs__cred .clubs__lead{margin-top:0}
.clubs__dj{display:block;width:112px;height:auto;flex:none;border-radius:7px}
@media (max-width:760px){.clubs__dj{width:96px}.club__dj{width:76px}}

/* more stages: a credits grid that still reads clean with eleven entries */
.more{grid-template-columns:auto minmax(0,1fr);align-items:start;padding:30px 0 28px}
.more__t{padding-top:7px}
.more__l{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:24px clamp(20px,2.6vw,44px)}
.more__l li{flex-direction:column;align-items:flex-start;gap:7px;min-width:0}
.more__l b{font-size:clamp(21px,1.55vw,26px);line-height:1}
.more__l span{font-size:14px;line-height:1.35}
/* part of the ULTRA Music Europe family: one quiet line, one small picture; the line opens the group photo (round 4, below) */
.fam{grid-column:2;display:flex;align-items:center;gap:16px;margin-top:6px;padding-top:22px;border-top:1px solid var(--line)}
.fam__img{display:block;width:52px;height:52px;object-fit:cover;border-radius:5px;flex:none;box-shadow:0 0 0 1px rgba(244,235,220,.14),0 10px 24px -12px rgba(0,0,0,.9)}
.fam__t{font:400 clamp(19px,1.35vw,23px)/1.2 var(--serif);color:var(--bone-2)}
@media (max-width:1180px){.more__l{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media (max-width:960px){.more{grid-template-columns:minmax(0,1fr)}.fam{grid-column:1}}
@media (max-width:760px){
  .more{grid-template-columns:minmax(0,1fr);padding:24px 0}
  .more__l{grid-template-columns:repeat(2,minmax(0,1fr));gap:20px 16px}
  .more__l b{font-size:20px}
  .more__l span{font-size:13px}
  .fam{grid-column:1}
}

/* WhatsApp channel · Mokaby Backstage */
.wa{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:28px clamp(32px,5vw,96px);margin-top:clamp(16px,2.2vh,24px);padding:clamp(26px,3.6vh,40px) clamp(22px,3vw,48px);border-radius:20px;border:1px solid var(--line);background:radial-gradient(60% 150% at 100% 50%,rgba(255,138,31,.09),transparent 70%),linear-gradient(180deg,rgba(244,235,220,.03),rgba(244,235,220,0))}
.wa__kick{display:flex;align-items:center;gap:10px;font:500 11px/1 var(--mono);letter-spacing:.16em;text-transform:uppercase;color:var(--gold)}
.wa__glyph{width:20px;height:20px;flex:none}
.wa__t{margin-top:16px;font:400 clamp(44px,4.6vw,84px)/.88 var(--disp);text-transform:uppercase;letter-spacing:.002em;color:var(--bone)}
.wa__p{margin-top:14px;font-size:clamp(16px,1.2vw,20px);line-height:1.5;color:var(--bone-2);max-width:60ch}
.wa__btn{margin-top:24px}
.wa__btn .wa__glyph{width:19px;height:19px}
.wa__qr{display:flex;flex-direction:column;align-items:center;gap:12px;margin:0}
.wa__card{display:block;padding:12px;border-radius:14px;background:#f3ebe0;box-shadow:0 24px 50px -24px rgba(0,0,0,.9),0 0 0 1px rgba(244,235,220,.2)}
.wa__card img{display:block;width:140px;height:140px;max-width:none}
.wa__qr figcaption{font:500 10.5px/1.35 var(--mono);letter-spacing:.14em;text-transform:uppercase;color:var(--bone-3);text-align:center;white-space:nowrap}
@media (max-width:768px),(pointer:coarse){
  .wa{grid-template-columns:minmax(0,1fr)}
  .wa__qr{display:none}
}
@media (max-width:560px){.wa__btn{width:100%}}

/* footer links: two even rows of four on small screens */
@media (max-width:760px){.ftr__social{display:grid;grid-template-columns:repeat(4,auto);justify-content:start;gap:10px 28px}}
@media (max-width:560px){
  .ftr__social{width:100%;justify-content:space-between;column-gap:8px}
  .ftr__social a{font-size:min(15px,4.1vw)}
}

/* Málaga on phones: darken the photo where the gold kicker sits */
@media (max-width:760px){
  .malaga__img::after{content:"";position:absolute;inset:0;pointer-events:none;background:linear-gradient(to top,var(--ink-2) 0%,rgba(11,8,6,.8) 18%,rgba(11,8,6,.28) 40%,rgba(11,8,6,0) 56%)}
  .malaga__cap .tag{text-shadow:0 1px 14px rgba(11,8,6,.9)}
}

/* booking: four contact lines as two tidy columns */
.contacts{grid-template-columns:repeat(2,minmax(0,1fr));gap:26px 40px}
@media (max-width:760px){.contacts{grid-template-columns:minmax(0,1fr)}}

/* footer word: club footage inside the letters (a canvas veil in the page colour with the letters cut out, as in the hero) */
.ftr__word{position:relative}
.ftr__win{display:none}
html.js .ftr__win{display:block;position:absolute;left:0;right:0;top:0;height:100%;z-index:0;overflow:hidden;opacity:0;background:#141026;pointer-events:none;transition:opacity .9s ease}
.ftr__poster,.ftr__v,.ftr__veil{position:absolute;left:0;top:0;width:100%;height:100%;max-width:none}
.ftr__poster,.ftr__v{object-fit:cover;object-position:50% 56%}
.ftr__v{opacity:0;transition:opacity 1s ease}
.ftr__v.is-on{opacity:1}
.ftr__txt{position:relative;z-index:1}
.ftr__word.is-win{color:transparent;-webkit-text-stroke:0 transparent;background:none}
.ftr__word.is-win .ftr__win{opacity:1}
.ftr__row{position:relative;z-index:1}

/* ═════════ round 3 ═════════ */
/* DJ Mag Top 100 Clubs 2026: the list year under the rank */
.club__rk{display:flex;flex-direction:column;align-items:flex-start;gap:4px}
.club__rk small{display:block;padding-left:1px;font:600 9.5px/1 var(--mono);letter-spacing:.18em;color:rgba(244,235,220,.68)}
/* carousel clips: the poster until a card is hovered, focused or tapped; a quick fade back to the poster */
.club__v{transition:transform 1.2s var(--e-out),opacity .18s ease}
.club__v.is-on{transition:transform 1.2s var(--e-out),opacity .3s ease}
.club__play{position:absolute;inset:0;z-index:3;display:block;width:100%;height:100%;border-radius:inherit;cursor:pointer}
.is-hoverplay .club__play,.clubs__vp.is-drag .club__play{cursor:inherit}
.club__play:focus-visible{outline:2px solid var(--gold);outline-offset:-2px;border-radius:10px}
.club__pi{position:absolute;right:12px;bottom:12px;width:40px;height:40px;display:grid;place-items:center;border-radius:50%;color:var(--bone);background:rgba(11,8,6,.56);box-shadow:inset 0 0 0 1px rgba(244,235,220,.3),0 10px 24px -12px rgba(0,0,0,.9);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);transition:opacity .2s ease,transform .35s var(--e-out),background-color .25s,box-shadow .25s,color .25s}
.club__pi svg{width:15px;height:15px;fill:currentColor}
.club__pi-pause{display:none}
.club.is-playing .club__pi-play{display:none}
.club.is-playing .club__pi-pause{display:inline}
/* mouse: the clip itself is the feedback, the glyph steps aside while it plays */
.is-hoverplay .club.is-playing .club__pi{opacity:0;transform:scale(.86)}
/* touch and reduced motion: the pause glyph stays while a clip plays, a little quieter */
.is-tapplay .club.is-playing .club__pi{opacity:.75}
@media (hover:hover) and (pointer:fine){.is-tapplay .club__play:hover .club__pi{background:var(--amber);box-shadow:inset 0 0 0 1px var(--gold);color:#170b03}}
.club.is-bad .club__play{display:none}

/* ═════════ round 4 ═════════ */
/* the ULTRA family line is a quiet button: no badge, no motion, just a hint on hover / focus */
.fam__btn{display:inline-flex;align-items:center;gap:16px;max-width:100%;margin:-6px;padding:6px 10px 6px 6px;border-radius:10px;text-align:left;cursor:zoom-in;transition:background-color .3s}
.fam__btn .fam__img{transition:box-shadow .3s}
.fam__btn .fam__t{text-decoration:underline;text-decoration-color:transparent;text-decoration-thickness:1px;text-underline-offset:5px;transition:color .3s,text-decoration-color .3s}
@media (hover:hover) and (pointer:fine){
  .fam__btn:hover .fam__t{color:var(--bone);text-decoration-color:rgba(244,235,220,.4)}
  .fam__btn:hover .fam__img{box-shadow:0 0 0 1px rgba(255,181,71,.5),0 10px 24px -12px rgba(0,0,0,.9)}
}
.fam__btn:focus-visible{outline:2px solid var(--gold);outline-offset:2px}
.fam__btn.is-ptr:focus-visible,.js-reel.is-ptr:focus-visible,.lb.is-ptr .lb__close:focus-visible,.reel.is-ptr .reel__close:focus-visible{outline:none}
/* the group photo: dark backdrop, the picture contained, a small caption (shares the showreel's close button) */
.lb{position:fixed;inset:0;z-index:130;display:flex;align-items:center;justify-content:center;padding:76px clamp(16px,4vw,64px) clamp(28px,5vh,56px);background:rgba(5,3,2,.94);opacity:0;transition:opacity .3s ease;overscroll-behavior:contain;touch-action:pinch-zoom;cursor:zoom-out}
.lb[hidden]{display:none}
.lb.is-on{opacity:1}
.lb__fig{display:flex;flex-direction:column;align-items:center;gap:14px;width:100%;margin:0}
.lb__img{display:block;width:min(1600px,100%,calc((100vh - 180px) * 1.501));width:min(1600px,100%,calc((100svh - 180px) * 1.501));height:auto;aspect-ratio:1600/1066;object-fit:contain;border-radius:8px;background:#120c08;box-shadow:0 40px 120px rgba(0,0,0,.7);cursor:default;-webkit-user-drag:none}
.lb__cap{font:400 clamp(16px,1.2vw,19px)/1.3 var(--serif);color:var(--bone-2);text-align:center;cursor:default}
.lb__close{z-index:1}
@media (max-height:500px){.lb{padding:12px 72px 10px}.lb__fig{gap:8px}.lb__img{width:min(1600px,100%,calc((100vh - 56px) * 1.501));width:min(1600px,100%,calc((100svh - 56px) * 1.501))}.lb__cap{font-size:14px}}
.rm .lb{transition:none}

/* ═════════ round 5 ═════════ */
/* phones: the latest single stays big; the earlier releases become a small swipe row right under it */
.rels__t{display:none}
@media (max-width:760px){
  .rels__t{display:flex;align-items:center;gap:12px;margin:44px 0 0;font:500 11px/1 var(--mono);letter-spacing:.16em;text-transform:uppercase;color:var(--bone-3)}
  .rels__t::after{content:"";order:1;flex:1;height:1px;background:var(--line)}
  .rels__n{order:2;color:var(--amber);letter-spacing:.06em}
  .rels{display:flex;gap:14px;margin:16px calc(var(--pad) * -1) 0;padding:0 var(--pad) 4px;overflow-x:auto;overscroll-behavior-x:contain;scroll-snap-type:x mandatory;scroll-padding-inline:var(--pad);scrollbar-width:none;-webkit-overflow-scrolling:touch}
  .rels::-webkit-scrollbar{display:none}
  .rels>.rel{flex:0 0 min(44%,190px);scroll-snap-align:start}
  html.js:not(.rm) .rels>.rel.rv{opacity:1;transform:none}
  .rels .rel__art{margin-bottom:12px;border-radius:6px}
  .rels .rel__meta{font-size:9.5px;letter-spacing:.12em}
  .rels .rel__title{margin-top:6px;font-size:19px;line-height:1}
  .rels .rel__by{margin-top:5px;font-size:12.5px;line-height:1.35}
  .rels .rel__go,.rels .rel__lbl{display:none}
  .rels .rel__chips{margin-top:9px}
  .rels .rel__chips span{padding:4px 7px;font-size:9.5px}
  .rels .rel__chips span:not(:first-child){display:none}
  .studio .labels{margin-top:44px}
}

/* ═════════ round 6 (2026-10-21) ═════════ */
/* booking: a quiet line to the corporate landing page (the Ads target; deliberately not in the navigation) */
.corp-hint{display:flex;flex-wrap:wrap;align-items:baseline;gap:8px 14px;margin:calc(clamp(36px,5vh,56px) * -.45) 0 clamp(30px,4.4vh,48px);font-size:clamp(15px,1.05vw,17px);color:var(--bone-2)}

/* ═════════ round 7 (2026-10-21) ═════════ */
/* the punched slot sits exactly in the middle, under the clip ring, whatever the texts beside it (front and back) */
.pass__top{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);column-gap:.8em}
.pass__top>span:first-child{justify-self:start;white-space:nowrap}
.pass__top>span:last-child{justify-self:end;white-space:nowrap}
/* phones: the streams number leads full width, the other four sit in an even 2 × 2 grid */
@media (max-width:760px){
  .stats li,.stats li:nth-child(4),.stats li:nth-child(even){border-left:0;padding:20px 0 22px;gap:10px}
  .stats li:nth-child(n+2){border-top:1px solid var(--line)}
  .stats li:nth-child(odd):not(:first-child){border-left:1px solid var(--line);padding-left:18px}
  .stats li:first-child{grid-column:1/-1;padding:24px 0 22px}
  .stats li:last-child{grid-column:auto}
  .stats .stat__n{font-size:clamp(52px,16vw,68px)}
  .stats li:first-child .stat__n{font-size:clamp(84px,28vw,124px)}
  .stats .stat__l{max-width:none}
}

/* ═════════ round 8 (2026-10-21): a small, even gap between headline lines (user) ═════════
   Reference: the section h2 ("Der Höhepunkt des Abends", pitch ≈ .88em). Smaller Anton headlines need a little more
   leading in em to show the same visible gap; serif quotes and body copy already have enough. */
.h3{line-height:.98}
.malaga__h{line-height:.95}
.club__name{line-height:.98}
.rel__title{line-height:1.04}
.next__h{line-height:1.02}
.wa__t{line-height:.96}
.feat__title{line-height:.9}

/* ═════════ go-live (2026-10-27): ticket links in the season list (from the Google Sheet) ═════════ */
.row__a{color:inherit;text-decoration:underline;text-decoration-color:var(--line-2);text-decoration-thickness:1px;text-underline-offset:.22em;transition:text-decoration-color .2s,color .2s}
.row__a:hover,.row__a:focus-visible{color:var(--amber);text-decoration-color:currentColor}

/* ═════════ go-live (2026-10-27): cookie banner (assets/js/consent.js) — reject and accept look the same on purpose ═════════ */
.cb{position:fixed;left:max(16px,env(safe-area-inset-left));bottom:max(16px,env(safe-area-inset-bottom));z-index:200;width:min(500px,calc(100vw - 32px));max-height:calc(100dvh - 32px);overflow:auto;padding:22px 22px 18px;border:1px solid var(--line-2);border-radius:18px;background:rgba(18,13,10,.95);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);box-shadow:0 30px 80px -20px rgba(0,0,0,.85);color:var(--bone);opacity:0;transform:translateY(14px);transition:opacity .35s var(--e-out),transform .35s var(--e-out)}
.cb.is-on{opacity:1;transform:none}
.cb[hidden]{display:none}
.cb__kick{margin:0 0 10px;font:500 11px/1 var(--mono);letter-spacing:.16em;text-transform:uppercase;color:var(--amber)}
.cb__t{margin:0 0 10px;font:400 28px/1 var(--disp);text-transform:uppercase;color:var(--bone)}
.cb__p{margin:0 0 8px;font-size:14px;line-height:1.5;color:var(--bone-2)}
.cb__l{margin:0 0 16px;font:500 11px/1.6 var(--mono);letter-spacing:.12em;text-transform:uppercase;color:var(--bone-3)}
.cb__l a{color:var(--bone-2);text-decoration:underline;text-decoration-color:var(--line-2);text-underline-offset:.25em}
.cb__l a:hover,.cb__l a:focus-visible{color:var(--amber)}
.cb__opts{display:grid;gap:8px;margin:0 0 16px}
.cb__opt{display:flex;gap:12px;align-items:flex-start;padding:12px 14px;border:1px solid var(--line);border-radius:12px;cursor:pointer}
.cb__opt input{flex:none;width:18px;height:18px;margin:2px 0 0;accent-color:var(--amber)}
.cb__opt b{display:block;font-size:14.5px;font-weight:600}
.cb__opt small{display:block;margin-top:2px;font-size:13px;line-height:1.4;color:var(--bone-3)}
.cb__btns{display:flex;flex-wrap:wrap;gap:8px}
.cb__b{flex:1 1 0;min-width:0;justify-content:center;white-space:nowrap}
.ftr__cb{padding:0;border:0;background:none;color:inherit;font:inherit;letter-spacing:inherit;text-transform:inherit;cursor:pointer}
.ftr__cb:hover,.ftr__cb:focus-visible{color:var(--amber)}
@media (max-width:560px){
  .cb{left:8px;right:8px;bottom:max(8px,env(safe-area-inset-bottom));width:auto;padding:18px 16px 14px}
  .cb__t{font-size:24px}
  .cb__b{flex:1 1 calc(50% - 4px)}
  .cb__b--3{flex-basis:100%}
}

/* ═════════ go-live perf (2026-10-27): smoother on weaker laptops, same look ═════════
   The header's frosted layer only blurs while it can be seen. Before, the invisible layer (opacity 0 at the top)
   re-blurred the hero video on every frame. On fade-out the blur stays until the fade has ended, so nothing changes
   visually. */
.hdr::after{-webkit-backdrop-filter:none;backdrop-filter:none;transition:opacity .45s,-webkit-backdrop-filter 0s .45s,backdrop-filter 0s .45s}
.hdr.is-solid::after{-webkit-backdrop-filter:blur(16px) saturate(1.25);backdrop-filter:blur(16px) saturate(1.25);transition:opacity .45s}
