@font-face{font-family:'Baloo 2';font-weight:700 800;font-display:swap;src:url(/fonts/baloo2.woff2) format('woff2')}
@font-face{font-family:'Nunito';font-weight:500 800;font-display:swap;src:url(/fonts/nunito.woff2) format('woff2')}
@font-face{font-family:'Caveat';font-weight:500 700;font-display:swap;src:url(/fonts/caveat.woff2) format('woff2')}

/* Palette sampled from the game's main-menu painting (ui/menu-bg.jpg):
   night sky #3e456a · shadow wall #392a3e · puddle #383956 · cool facade #66759d
   window core #e8ac6b · lamp #eac895 · brick #52202f · door wood #753a38 */
:root{
  --night:#12162a;      /* deepest street shadow */
  --night2:#1a1f36;     /* sky, darkened */
  --slate:#2a3050;      /* puddle / sky mid */
  --facade:#66759d;     /* cool lit facade */
  --cream:#f6e9d4;      /* lamp light, text */
  --muted:#b9bfd4;      /* facade, lightened for text */
  --warm:#e8ac6b;       /* shop window */
  --warm-hi:#f3c98f;    /* lamp core */
  --warm-lo:#c9773f;
  --brick:#7a3a3c;      /* brick / door */
  --soap:#8fd3e8;       /* the soap-bubble teal */
  --dread:0;            /* 0..1, set by scroll */
  --maxw:1180px;
}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth;background:var(--night)}
body{font-family:'Nunito',system-ui,-apple-system,Segoe UI,sans-serif;font-weight:500;background:var(--night);color:var(--cream);line-height:1.6;overflow-x:hidden;-webkit-font-smoothing:antialiased}
h1,h2,h3,.btn,.eyebrow{font-family:'Baloo 2','Nunito',sans-serif;font-weight:800;line-height:1.1}
img{max-width:100%;display:block}
a{color:var(--warm)}
.wrap{max-width:var(--maxw);margin:0 auto;padding:0 22px}

/* ---------- dread layers: cozy at the top, cold & closing-in further down ---------- */
#rain{position:fixed;inset:0;width:100%;height:100%;pointer-events:none;z-index:1;opacity:calc(.42 + var(--dread)*.3)}
.vignette{position:fixed;inset:0;pointer-events:none;z-index:2;
  background:radial-gradient(ellipse 80% 75% at 50% 45%,transparent calc(58% - var(--dread)*38%),rgba(5,6,14,calc(.3 + var(--dread)*.62)) 100%)}
.bluetint{position:fixed;inset:0;pointer-events:none;z-index:2;mix-blend-mode:color;background:#2f5f86;opacity:calc(var(--dread)*.42)}
.coldfog{position:fixed;inset:0;pointer-events:none;z-index:2;opacity:calc(var(--dread)*.55);
  background:linear-gradient(0deg,rgba(40,70,100,.35),transparent 35%),linear-gradient(180deg,rgba(8,12,24,.55),transparent 22%)}
main,header,footer{position:relative;z-index:3}

/* ---------- nav ---------- */
.nav{position:fixed;top:0;left:0;right:0;z-index:20;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 18px;transition:background .3s,box-shadow .3s}
.nav.solid{background:rgba(18,22,42,.86);backdrop-filter:blur(10px);box-shadow:0 1px 0 rgba(232,172,107,.14),0 10px 30px rgba(0,0,0,.25)}
.nav .mini{display:flex;align-items:center;gap:10px;text-decoration:none;color:var(--cream);font-family:'Baloo 2';font-weight:800;opacity:0;transition:opacity .3s}
.nav.solid .mini{opacity:1}
.nav .mini img{width:34px;height:34px;border-radius:8px}
.nav-r{display:flex;align-items:center;gap:10px}
.lang{flex:none;display:flex;border:1.5px solid rgba(246,233,212,.25);border-radius:999px;overflow:hidden;background:rgba(18,22,42,.6);backdrop-filter:blur(6px)}
.lang button{font:800 .8rem 'Baloo 2';letter-spacing:.05em;padding:6px 12px;background:none;border:0;color:var(--muted);cursor:pointer}
.lang button[aria-pressed=true]{background:var(--warm);color:#2b1606}

/* ---------- buttons ---------- */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:12px;text-decoration:none;border-radius:16px;cursor:pointer;transition:transform .15s,box-shadow .2s,filter .2s}
.btn-steam{color:#2b1606;background:linear-gradient(175deg,var(--warm-hi),var(--warm) 55%,var(--warm-lo));padding:14px 28px;font-size:1.22rem;
  box-shadow:0 5px 0 #7c3f1c,0 12px 40px rgba(232,172,107,.42),inset 0 1px 0 rgba(255,255,255,.5)}
.btn-steam:hover{transform:translateY(-2px);box-shadow:0 7px 0 #7c3f1c,0 18px 55px rgba(232,172,107,.62),inset 0 1px 0 rgba(255,255,255,.5)}
.btn-steam:active{transform:translateY(3px);box-shadow:0 2px 0 #7c3f1c,0 8px 24px rgba(232,172,107,.4)}
.btn-steam svg{width:28px;height:28px;flex:none}
.btn-steam small{display:block;font:700 .72rem 'Nunito';opacity:.8;letter-spacing:.02em}
.btn-sm{padding:8px 16px;font-size:.9rem;border-radius:12px;box-shadow:0 3px 0 #7c3f1c,0 6px 16px rgba(232,172,107,.3)}
.btn-sm:hover{box-shadow:0 4px 0 #7c3f1c,0 8px 20px rgba(232,172,107,.45)}

/* ---------- hero: logo + CTA + trailer, all above the fold ---------- */
.hero{position:relative;min-height:100svh;display:flex;align-items:center;overflow:hidden;--fx:.58}
.hero-bg{position:absolute;inset:-4% -2%;container-type:size;background:var(--night)}
/* an image-sized box that "covers" the hero, so the glow can sit exactly on the painted window */
.hero-img{position:absolute;width:max(100cqw,179.1cqh);aspect-ratio:1920/1072;
  left:calc((100cqw - max(100cqw,179.1cqh))*var(--fx));top:calc((100cqh - max(100cqw,179.1cqh)/1.791)*.5);
  background:url(/img/hero-1920.webp) center/100% 100% no-repeat;
  transform:translate3d(var(--px,0),var(--py,0),0) scale(1.03);will-change:transform;animation:drift 38s ease-in-out infinite alternate}
@media (max-width:900px){.hero-img{background-image:url(/img/hero-960.webp)}}
@keyframes drift{from{scale:1}to{scale:1.05}}
.hero-img::after{content:"";position:absolute;left:50.4%;top:56.5%;width:22%;aspect-ratio:1;translate:-50% -50%;border-radius:50%;
  background:radial-gradient(circle,rgba(255,196,120,.55),rgba(232,150,80,.22) 40%,transparent 68%);mix-blend-mode:screen;animation:pulse 5.5s ease-in-out infinite}
.hero-img::before{content:"";position:absolute;left:88.4%;top:38.5%;width:9%;aspect-ratio:1;translate:-50% -50%;border-radius:50%;
  background:radial-gradient(circle,rgba(234,200,149,.6),transparent 65%);mix-blend-mode:screen;animation:pulse 7s ease-in-out -2s infinite}
@keyframes pulse{0%,100%{opacity:.75;scale:1}45%{opacity:1;scale:1.08}52%{opacity:.62}56%{opacity:.95}}
.hero-glow{display:none}
.hero-shade{position:absolute;inset:0;pointer-events:none;
  background:linear-gradient(90deg,rgba(18,22,42,.9) 0%,rgba(18,22,42,.62) 34%,rgba(18,22,42,.12) 58%,rgba(18,22,42,.35) 100%),
             linear-gradient(180deg,rgba(18,22,42,.45) 0%,transparent 18%,transparent 70%,var(--night) 100%)}
.hero-in{position:relative;z-index:2;width:100%;max-width:1280px;margin:0 auto;padding:clamp(64px,9vh,88px) 28px clamp(28px,5vh,56px);
  display:grid;grid-template-columns:minmax(0,.95fr) minmax(0,1.05fr);gap:clamp(24px,4vw,56px);align-items:center}
.hero h1{line-height:0}
.hero h1 img{width:auto;height:clamp(150px,33vh,300px);max-width:100%;filter:drop-shadow(0 12px 30px rgba(0,0,0,.55));margin-left:-6px;animation:float 7s ease-in-out infinite}
@keyframes float{50%{transform:translateY(-6px) rotate(-.4deg)}}
.hero .tag{font-size:clamp(1rem,1.9vw,1.22rem);font-weight:700;margin:clamp(8px,1.6vh,16px) 0 clamp(14px,2.6vh,24px);max-width:520px;text-shadow:0 2px 12px rgba(0,0,0,.85)}
.hero .tag em{font-style:normal;color:var(--soap)}
.cta-row{display:flex;flex-wrap:wrap;gap:12px 16px;align-items:center}
.date{display:inline-flex;align-items:center;gap:8px;padding:7px 14px;border-radius:999px;background:rgba(18,22,42,.55);border:1px solid rgba(232,172,107,.35);font-weight:800;font-size:.92rem;backdrop-filter:blur(4px)}
.date b{color:var(--warm)}
.meta{margin-top:clamp(10px,2vh,18px);color:var(--muted);font-size:.9rem;text-shadow:0 1px 8px rgba(0,0,0,.9)}
.hero-trailer{min-width:0}
.hero-trailer .player{margin:0}
.player-cap{margin-top:10px;text-align:center;color:var(--muted);font:800 .78rem 'Baloo 2';letter-spacing:.2em;text-transform:uppercase;text-shadow:0 1px 8px #000}
.scroll-hint{position:absolute;bottom:14px;left:50%;z-index:2;width:22px;height:34px;border:2px solid rgba(246,233,212,.4);border-radius:12px;translate:-50% 0}
.scroll-hint::after{content:"";position:absolute;left:50%;top:6px;width:4px;height:7px;border-radius:2px;background:var(--warm);translate:-50% 0;animation:wheel 2s ease-in-out infinite}
@keyframes wheel{60%{transform:translateY(10px);opacity:0}100%{opacity:0}}

/* rising soap bubbles (7 of them, CSS only) */
.bubbles{position:absolute;inset:0;pointer-events:none;z-index:1;overflow:hidden}
.bubbles i{position:absolute;bottom:-60px;left:var(--x);width:var(--s);height:var(--s);border-radius:50%;
  background:radial-gradient(circle at 32% 30%,rgba(255,255,255,.75) 0 8%,transparent 16%),radial-gradient(circle at 50% 50%,transparent 58%,rgba(143,211,232,.35) 72%,rgba(232,172,107,.35) 86%,rgba(255,255,255,.45) 96%);
  opacity:0;animation:rise var(--d) linear var(--dl) infinite}
.bubbles i:nth-child(1){--x:56%;--s:22px;--d:15s;--dl:-2s}
.bubbles i:nth-child(2){--x:63%;--s:12px;--d:12s;--dl:-7s}
.bubbles i:nth-child(3){--x:47%;--s:16px;--d:17s;--dl:-11s}
.bubbles i:nth-child(4){--x:72%;--s:28px;--d:19s;--dl:-4s}
.bubbles i:nth-child(5){--x:84%;--s:10px;--d:13s;--dl:-9s}
.bubbles i:nth-child(6){--x:31%;--s:14px;--d:16s;--dl:-13s}
.bubbles i:nth-child(7){--x:92%;--s:18px;--d:21s;--dl:-16s}
@keyframes rise{0%{transform:translate(0,0);opacity:0}8%{opacity:.85}50%{transform:translate(18px,-55vh)}85%{opacity:.7}100%{transform:translate(-10px,-110vh);opacity:0}}

/* ---------- sections ---------- */
section{position:relative;padding:100px 0}
.eyebrow{display:inline-block;color:var(--warm);font-size:.85rem;letter-spacing:.22em;text-transform:uppercase;margin-bottom:10px}
h2{font-size:clamp(2rem,4.4vw,2.9rem);margin-bottom:14px;text-shadow:0 4px 24px rgba(0,0,0,.45)}
.lead{color:var(--muted);font-size:1.12rem;max-width:680px}
.center{text-align:center}.center .lead{margin:0 auto}

/* soft, lamp-lit backdrop behind the features */
#features::before{content:"";position:absolute;inset:0;pointer-events:none;
  background:radial-gradient(ellipse 60% 50% at 50% 30%,rgba(232,172,107,.07),transparent 70%)}

/* player (shared) */
.player{position:relative;width:100%;aspect-ratio:16/9;border-radius:20px;overflow:hidden;background:#000;
  box-shadow:0 0 0 1px rgba(232,172,107,.35),0 30px 80px rgba(0,0,0,.6),0 0 80px rgba(232,172,107,.18);transition:transform .35s,box-shadow .35s}
.player:hover{transform:translateY(-3px);box-shadow:0 0 0 1px rgba(232,172,107,.6),0 36px 90px rgba(0,0,0,.65),0 0 110px rgba(232,172,107,.3)}
.player img,.player video{width:100%;height:100%;object-fit:cover}
.player button{position:absolute;inset:0;border:0;background:radial-gradient(circle at 50% 50%,transparent 30%,rgba(10,12,24,.35));cursor:pointer;display:grid;place-items:center}
.player .play{width:84px;height:84px;border-radius:50%;background:rgba(232,172,107,.95);display:grid;place-items:center;box-shadow:0 0 0 10px rgba(232,172,107,.22),0 10px 40px rgba(0,0,0,.5);transition:transform .2s;animation:ring 2.8s ease-out infinite}
@keyframes ring{0%{box-shadow:0 0 0 0 rgba(232,172,107,.45),0 10px 40px rgba(0,0,0,.5)}100%{box-shadow:0 0 0 22px rgba(232,172,107,0),0 10px 40px rgba(0,0,0,.5)}}
.player button:hover .play{transform:scale(1.08)}
.player .play svg{width:34px;height:34px;margin-left:6px;fill:#2b1606}

/* features */
.grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;margin-top:44px}
.card{position:relative;background:linear-gradient(170deg,rgba(42,48,80,.78),rgba(22,26,46,.92));border:1px solid rgba(246,233,212,.09);border-radius:22px;padding:26px 24px 24px;
  box-shadow:0 14px 40px rgba(0,0,0,.35);transition:transform .3s cubic-bezier(.2,.8,.2,1),border-color .3s,box-shadow .3s}
.card::after{content:"";position:absolute;inset:0;border-radius:inherit;pointer-events:none;opacity:0;transition:opacity .3s;
  background:radial-gradient(circle at 20% 0%,rgba(232,172,107,.16),transparent 60%)}
.card:hover{transform:translateY(-6px);border-color:rgba(232,172,107,.45);box-shadow:0 24px 50px rgba(0,0,0,.45),0 0 40px rgba(232,172,107,.16)}
.card:hover::after{opacity:1}
.card img{width:72px;height:72px;object-fit:contain;margin-bottom:12px;filter:drop-shadow(0 6px 12px rgba(0,0,0,.45));transition:transform .3s}
.card:hover img{transform:translateY(-3px) rotate(-4deg) scale(1.06)}
.card h3{font-size:1.3rem;margin-bottom:6px}
.card p{color:var(--muted);font-size:.98rem}
.card.odd{background:linear-gradient(170deg,rgba(30,52,70,.85),rgba(16,22,38,.95));border-color:rgba(143,211,232,.2)}
.card.odd h3{color:var(--soap)}
.card.odd:hover{border-color:rgba(143,211,232,.5);box-shadow:0 24px 50px rgba(0,0,0,.45),0 0 40px rgba(143,211,232,.16)}
.pills{display:flex;flex-wrap:wrap;gap:10px;justify-content:center;margin-top:34px}
.pills span{display:inline-flex;align-items:center;gap:8px;padding:6px 16px 6px 8px;border-radius:999px;background:rgba(246,233,212,.06);border:1px solid rgba(246,233,212,.13);font-size:.95rem;transition:border-color .25s,background .25s}
.pills span:hover{border-color:rgba(232,172,107,.45);background:rgba(232,172,107,.08)}
.pills img{width:28px;height:28px;object-fit:contain}
.pills b{font-weight:700}

/* gallery: every tile is 16:9 (like the source images) — nothing is stretched */
.gallery{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin-top:40px}
.gallery a{position:relative;display:block;border-radius:16px;overflow:hidden;background:#000;box-shadow:0 10px 30px rgba(0,0,0,.45);aspect-ratio:16/9;transition:transform .35s cubic-bezier(.2,.8,.2,1),box-shadow .35s}
.gallery a:first-child{grid-column:span 2;grid-row:span 2;aspect-ratio:auto}
.gallery a:hover{transform:translateY(-4px);box-shadow:0 20px 44px rgba(0,0,0,.55),0 0 0 1px rgba(232,172,107,.45),0 0 40px rgba(232,172,107,.16)}
.gallery img{width:100%;height:100%;object-fit:cover;transition:transform .6s}
.gallery a:hover img{transform:scale(1.035)}
.gallery figcaption{position:absolute;left:0;right:0;bottom:0;padding:30px 14px 10px;font-weight:700;font-size:.9rem;color:#fff;text-shadow:0 1px 6px #000;background:linear-gradient(transparent,rgba(10,12,24,.92))}
.lightbox{position:fixed;inset:0;z-index:50;background:rgba(8,10,20,.94);display:none;align-items:center;justify-content:center;padding:4vw;cursor:zoom-out}
.lightbox.open{display:flex}
.lightbox img{max-height:86vh;max-width:92vw;width:auto;height:auto;object-fit:contain;border-radius:12px;box-shadow:0 20px 80px rgba(0,0,0,.7)}
.lightbox p{position:absolute;bottom:18px;left:0;right:0;text-align:center;color:var(--muted)}

/* mid CTA — soft vignette edges instead of hard section cuts */
.band{padding:130px 0;text-align:center;overflow:hidden}
.band::before{content:"";position:absolute;inset:0;background:url(/img/art-aussen.webp) center/cover;opacity:.42;
  -webkit-mask:linear-gradient(transparent,#000 28%,#000 72%,transparent);mask:linear-gradient(transparent,#000 28%,#000 72%,transparent)}
.band::after{content:"";position:absolute;inset:0;background:radial-gradient(ellipse 70% 60% at 50% 50%,rgba(18,22,42,.35),rgba(18,22,42,.85))}
.band .wrap{position:relative;z-index:1}
.band h2{max-width:760px;margin:0 auto 12px}
.band-lead{margin:0 auto 28px}

/* story — deliberately colder */
.story{background:linear-gradient(180deg,transparent,rgba(10,14,28,.7) 18%,rgba(10,14,28,.7) 82%,transparent)}
.story-grid{display:grid;grid-template-columns:1.05fr .95fr;gap:52px;align-items:center;margin-top:44px}
.envelope{position:relative;border-radius:22px;overflow:hidden;box-shadow:0 30px 80px rgba(0,0,0,.6),0 0 0 1px rgba(246,233,212,.06)}
.envelope img{width:100%;aspect-ratio:1200/896;object-fit:cover;transition:transform 8s ease-out}
.envelope.in img{transform:scale(1.04)}
.envelope::after{content:"";position:absolute;inset:0;pointer-events:none;background:radial-gradient(ellipse at 50% 50%,transparent 45%,rgba(8,10,20,.65))}
.envelope .seal-glow{position:absolute;left:52%;top:53%;width:16%;aspect-ratio:1;translate:-50% -50%;border-radius:50%;pointer-events:none;z-index:1;
  background:radial-gradient(circle,rgba(255,120,80,.35),transparent 65%);mix-blend-mode:screen;animation:pulse 4.5s ease-in-out infinite}
.story-hook{font-family:'Baloo 2';font-weight:800;font-size:clamp(1.35rem,2.6vw,1.75rem);line-height:1.25;color:var(--cream);margin-bottom:14px}
.story-copy{color:var(--muted);font-size:1.08rem}
.chapters{display:flex;gap:10px;flex-wrap:wrap;margin:22px 0 26px}
.chapters span{font-family:'Baloo 2';font-weight:800;font-size:.85rem;padding:6px 12px;border-radius:8px;background:rgba(143,211,232,.08);border:1px solid rgba(143,211,232,.25);color:var(--soap)}
.chapters span.locked{color:rgba(185,191,212,.45);border-style:dashed;background:none}
.story-art{position:relative;border-radius:18px;overflow:hidden;box-shadow:0 26px 70px rgba(0,0,0,.6)}
.story-art img{width:100%;aspect-ratio:16/9;object-fit:cover;filter:saturate(.8) brightness(.92)}
.story-art .knock{position:absolute;left:0;right:0;bottom:0;padding:40px 18px 12px;background:linear-gradient(transparent,rgba(6,8,16,.92));font-family:'Caveat';font-size:1.5rem;color:var(--muted);min-height:1.4em}

/* about */
.about-grid{display:grid;grid-template-columns:auto 1fr;gap:40px;align-items:center;margin-top:34px}
.about-grid>img{width:180px;height:180px;object-fit:contain;border-radius:28px;background:#000;box-shadow:0 18px 50px rgba(0,0,0,.5)}
.duo{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin-top:22px}
.duo>div{background:rgba(246,233,212,.05);border:1px solid rgba(246,233,212,.1);border-radius:18px;padding:18px 20px;transition:transform .3s,border-color .3s,box-shadow .3s}
.duo>div:hover{transform:translateY(-4px);border-color:rgba(232,172,107,.4);box-shadow:0 16px 40px rgba(0,0,0,.35),0 0 30px rgba(232,172,107,.12)}
.duo h3{display:flex;align-items:center;gap:10px;font-size:1.2rem;margin-bottom:6px}
.duo h3 img{width:40px;height:40px;object-fit:contain;filter:drop-shadow(0 4px 8px rgba(0,0,0,.4))}
.duo p{color:var(--muted);font-size:.95rem}

/* final */
.final{text-align:center;padding:50px 0 80px}
.final img.logo{width:min(320px,70vw);height:auto;margin:0 auto 18px;filter:drop-shadow(0 10px 30px rgba(0,0,0,.6))}
.final-lead{margin:0 auto 26px}
footer{border-top:1px solid rgba(246,233,212,.08);padding:34px 0 40px;color:var(--muted);font-size:.9rem;background:rgba(8,10,20,.5)}
.foot{display:flex;flex-wrap:wrap;gap:18px 28px;align-items:center;justify-content:space-between}
.foot nav{display:flex;flex-wrap:wrap;gap:8px 22px}
.foot a{color:var(--cream);text-decoration:none;opacity:.85}
.foot a:hover{color:var(--warm)}
.soon{opacity:.5;font-style:italic}

/* reveal on scroll */
.rv{opacity:0;transform:translateY(24px);transition:opacity .8s,transform .8s}
.rv.in{opacity:1;transform:none}
.grid .card.rv:nth-child(3n+2){transition-delay:.08s}
.grid .card.rv:nth-child(3n){transition-delay:.16s}

/* rare glitch on headings once it gets late */
.glitch{animation:glitch .35s steps(2) 1}
@keyframes glitch{0%{text-shadow:2px 0 var(--soap),-2px 0 #3e6e9a;transform:translateX(1px)}100%{text-shadow:none;transform:none}}

/* short laptop screens (e.g. 1366x768): keep the whole hero in view */
@media (min-width:901px) and (max-height:820px){
  .hero-in{padding:62px 28px 40px}
  .hero h1 img{height:clamp(130px,27vh,230px)}
  .hero .tag{margin:8px 0 16px}
  .btn-steam{padding:12px 24px;font-size:1.12rem}
}
@media (max-width:980px){
  .grid{grid-template-columns:1fr 1fr}
  .story-grid{grid-template-columns:1fr;gap:32px}
  .gallery{grid-template-columns:1fr 1fr}
  .gallery a:first-child{grid-column:span 2;grid-row:auto;aspect-ratio:16/9}
}
@media (max-width:900px){
  .hero{--fx:.5;align-items:flex-start}
  .hero-in{grid-template-columns:1fr;gap:14px;padding:58px 18px 26px;text-align:center}
  .hero h1 img{height:auto;width:min(240px,62vw);margin:0 auto}
  .hero .tag{margin:8px auto 12px;font-size:1rem}
  .cta-row{justify-content:center}
  .hero-shade{background:linear-gradient(180deg,rgba(18,22,42,.55),rgba(18,22,42,.35) 30%,rgba(18,22,42,.7) 60%,var(--night) 100%)}
  .hero-trailer{max-width:560px;width:100%;margin:0 auto}
  .player-cap{display:none}
  .meta{margin-top:10px;font-size:.82rem}
  .scroll-hint{display:none}
  .bubbles i:nth-child(n+5){display:none}
}
@media (max-width:640px){
  section{padding:72px 0}
  .grid{grid-template-columns:1fr}
  .btn-steam{width:100%;padding:12px 18px;font-size:1.1rem}
  .date{font-size:.85rem;padding:5px 12px}
  .nav{padding:8px 12px}
  .nav .btn-sm{padding:7px 12px;font-size:.82rem}
  .nav .mini span{display:none}
  .about-grid{grid-template-columns:1fr;text-align:center}
  .about-grid>img{margin:0 auto;width:140px;height:140px}
  .duo{grid-template-columns:1fr;text-align:left}
  .gallery{grid-template-columns:1fr}
  .gallery a:first-child{grid-column:auto}
  .player .play{width:68px;height:68px}
  .player .play svg{width:28px;height:28px}
}
@media (prefers-reduced-motion:reduce){
  *{animation:none!important;transition:none!important}
  #rain,.bubbles{display:none}
  .rv{opacity:1;transform:none}
}

/* ---------- v7: calmer, more mysterious ---------- */
.hero .tag{font-size:clamp(1.05rem,1.9vw,1.3rem);line-height:1.5;letter-spacing:.005em}
.hero .tag em{font-style:italic;color:var(--cream);opacity:.78;font-weight:600}
.btn-steam{padding:15px 30px}
.card p{line-height:1.65}
.card h3{letter-spacing:.01em}
.grid{gap:22px}
.card.odd{background:linear-gradient(170deg,rgba(26,36,54,.9),rgba(12,16,28,.96));border-color:rgba(246,233,212,.08)}
.card.odd h3{color:var(--cream)}
.card.odd img{filter:drop-shadow(0 6px 12px rgba(0,0,0,.45)) saturate(.6) brightness(.85)}

.story{padding:120px 0 110px}
.story .story-grid{grid-template-columns:1fr 1fr;gap:56px}
.envelope img{filter:saturate(.85) brightness(.9)}
.fragments{list-style:none;display:flex;flex-direction:column;gap:18px;counter-reset:f}
.fragments li{font-family:'Baloo 2';font-weight:700;font-size:clamp(1.15rem,2vw,1.42rem);line-height:1.35;color:var(--cream);
  opacity:0;transform:translateY(8px);filter:blur(3px);transition:opacity 1.4s ease,transform 1.4s ease,filter 1.4s ease}
.fragments li.on{opacity:1;transform:none;filter:none}
.fragments li:nth-child(3).on{color:var(--warm-hi)}
.fragments li:last-child.on{opacity:.62;font-style:italic}
.story .chapters{margin:32px 0 0}
.story .chapters span.locked{min-width:34px;text-align:center}
.story>.wrap>.story-art{margin-top:64px;border-radius:20px}
.story>.wrap>.story-art img{aspect-ratio:21/9;object-position:center 60%;filter:saturate(.7) brightness(.8) contrast(1.05)}
.story-art .knock{text-align:center;font-size:1.7rem;padding:60px 18px 18px;letter-spacing:.04em}

.band h2{letter-spacing:.005em}
.final{padding:90px 0 100px}
.final-date{margin-top:18px;color:var(--muted);font-weight:700;font-size:.95rem}
.final-date b{color:var(--warm)}
.foot .soon{opacity:.5}
@media (max-width:980px){.story .story-grid{grid-template-columns:1fr;gap:34px}.story>.wrap>.story-art img{aspect-ratio:16/9}}
.hero .date{background:none;border:0;padding:0;backdrop-filter:none;font-size:.95rem;color:var(--muted)}
.cta-row{gap:14px 20px}
.player .play{width:68px;height:68px;background:rgba(18,22,42,.55);border:1.5px solid rgba(246,233,212,.55);backdrop-filter:blur(6px);box-shadow:none;animation:none}
.player .play svg{fill:var(--cream);width:26px;height:26px;margin-left:4px}
.player button:hover .play{background:rgba(232,172,107,.9);border-color:transparent}
.player button:hover .play svg{fill:#2b1606}
.player-cap{opacity:.55;letter-spacing:.24em}
/* fix: width/height attrs forced natural pixel height */
.envelope img,.story-art img{height:auto}
.story .story-grid{align-items:center}
.envelope{max-height:none}

/* ---------- THE POT: pinned scroll scene ---------- */
.pot{position:relative;height:420vh;background:#05060c}
.pot-stage{position:sticky;top:0;height:100svh;overflow:hidden;will-change:transform}
.pot canvas,.pot-fallback{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.pot-fallback{opacity:0;transition:opacity .6s}
.pot.static .pot-fallback{opacity:1}.pot.static canvas{display:none}
.pot canvas{opacity:0;transition:opacity 1.2s}.pot.ready canvas{opacity:1}
.pot-steam{position:absolute;left:50%;bottom:38%;width:min(46vh,40vw);translate:-50% 0;mix-blend-mode:screen;pointer-events:none;
  opacity:calc(.0 + .55 * clamp(0, (var(--p,0) - .08) * 6, 1) * clamp(0, (.42 - var(--p,0)) * 8, 1));
  transform-origin:50% 100%;transform:scale(calc(.7 + var(--p,0) * 1.4));filter:blur(1px)}
.pot-steam img{width:100%;animation:steamwob 5s ease-in-out infinite}
@keyframes steamwob{50%{transform:translateY(-14px) skewX(3deg) scaleY(1.05)}}
.pot-grain{position:absolute;inset:-50%;pointer-events:none;opacity:.09;mix-blend-mode:overlay;
  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'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
  animation:grain .5s steps(4) infinite}
@keyframes grain{25%{transform:translate(-3%,2%)}50%{transform:translate(2%,-3%)}75%{transform:translate(-2%,-1%)}}
.pot-line{position:absolute;left:0;right:0;bottom:12vh;text-align:center;font:800 clamp(1.5rem,4.2vw,3.2rem)/1.15 'Baloo 2',sans-serif;color:var(--cream);
  text-shadow:0 0 30px rgba(0,0,0,.9),0 4px 14px rgba(0,0,0,.9);opacity:0;transform:translateY(18px);filter:blur(6px);transition:opacity .7s,transform .9s,filter .9s;pointer-events:none;padding:0 20px}
.pot-line.on{opacity:1;transform:none;filter:none}
.pot-line.whisper{font-family:'Caveat',cursive;font-weight:700;font-size:clamp(2.4rem,7vw,5.5rem);color:#bff0ff;bottom:auto;top:12vh;letter-spacing:.04em;
  text-shadow:0 0 18px rgba(111,214,255,.9),0 0 60px rgba(111,214,255,.5),0 0 4px #000}
.pot.open .pot-line.whisper.on{animation:whisperjit .12s steps(2) infinite}
@keyframes whisperjit{50%{transform:translate(1px,-1px);opacity:.85}}
.pot-hint{position:absolute;left:50%;top:calc(var(--navh,64px) + 18px);translate:-50% 0;font:700 .78rem 'Nunito';letter-spacing:.18em;text-transform:uppercase;color:var(--muted);
  opacity:calc(.7 - var(--p,0) * 6);pointer-events:none}
.pot::before{content:"";position:absolute;left:0;right:0;top:-1px;height:30vh;z-index:2;pointer-events:none;background:linear-gradient(var(--night),transparent)}
@media (prefers-reduced-motion:reduce){.pot{height:auto}.pot-stage{position:relative;height:70vh}.pot-line{opacity:1;position:static;filter:none;transform:none}}

/* hero 2.5D canvas sits inside the image box, glows stay on top */
.hero-gl{position:absolute;inset:0;width:100%;height:100%;z-index:0}
.hero-img.gl{background:none}
.hero-img::before,.hero-img::after{z-index:1}
.hero-img.gl{--px:0px!important;--py:0px!important}

/* ---------- sound toggle ---------- */
.snd{appearance:none;border:1px solid rgba(246,233,212,.18);background:rgba(18,22,42,.55);color:var(--cream);border-radius:12px;height:36px;padding:0 12px;
  display:inline-flex;align-items:center;gap:8px;cursor:pointer;font:700 .8rem 'Nunito';backdrop-filter:blur(6px);transition:border-color .2s,box-shadow .2s}
.snd:hover{border-color:rgba(143,211,232,.5)}
.snd svg{width:18px;height:18px}
.snd .w{opacity:.35;transition:opacity .2s}
.snd.on{border-color:rgba(143,211,232,.55);box-shadow:0 0 18px rgba(143,211,232,.25)}
.snd.on .w{opacity:1;animation:wave 1.4s ease-in-out infinite}
@keyframes wave{50%{opacity:.4}}
@media (max-width:520px){.snd span{display:none}}

/* ---------- Grandma is watching (footer) ---------- */
.watch{position:relative;height:220px;display:flex;align-items:center;justify-content:center;gap:clamp(40px,9vw,110px);overflow:hidden;
  background:radial-gradient(ellipse at 50% 120%,rgba(30,60,90,.35),transparent 60%),#05060c}
.eye{position:relative;width:clamp(56px,9vw,92px);aspect-ratio:2/1.15;border-radius:50%;
  background:radial-gradient(ellipse at 50% 50%,#e8fbff 0%,#9fe6ff 45%,#2a6f8e 100%);
  box-shadow:0 0 30px rgba(111,214,255,.55),0 0 90px rgba(111,214,255,.25);
  opacity:var(--eo,0);transition:opacity 1.6s;overflow:hidden;clip-path:ellipse(50% var(--lid,50%) at 50% 50%)}
.eye i{position:absolute;left:50%;top:50%;width:34%;aspect-ratio:1;border-radius:50%;background:radial-gradient(circle at 38% 35%,#fff 0 9%,#06141c 12% 100%);
  translate:calc(-50% + var(--ex,0px)) calc(-50% + var(--ey,0px))}
.eye:nth-child(2){rotate:-6deg;translate:0 -10px}
.watch.blink .eye{animation:blink .22s ease-in-out}
@keyframes blink{50%{clip-path:ellipse(50% 2% at 50% 50%)}}
.watch.shy .eye{--lid:4%;transition:clip-path .25s,opacity 1.6s}
.watch p{position:absolute;bottom:14px;left:0;right:0;text-align:center;font:600 1.1rem 'Caveat',cursive;color:rgba(191,240,255,.0);transition:color 1.2s}
.watch.seen p{color:rgba(191,240,255,.55)}

/* =====================================================================
   HERO v2 — centered, cinematic, with an intro: black → rain → window
   light comes on → logo drops in → text types → CTA.
   ===================================================================== */
.hero{min-height:100svh;align-items:flex-end}
.hero-in{display:flex;flex-direction:column;align-items:center;text-align:center;max-width:980px;
  padding:clamp(90px,14vh,140px) 24px clamp(70px,11vh,110px);grid-template-columns:none}
.hero-shade{background:
  radial-gradient(ellipse 70% 60% at 50% 62%,rgba(10,12,24,.72),rgba(10,12,24,.25) 55%,transparent 80%),
  linear-gradient(180deg,rgba(10,12,24,.55) 0%,transparent 22%,transparent 62%,var(--night) 100%)}
.hero-kicker{display:inline-flex;align-items:center;gap:10px;font:800 .78rem 'Nunito';letter-spacing:.32em;text-transform:uppercase;color:var(--muted);margin-bottom:6px}
.hero-kicker .dot{width:7px;height:7px;border-radius:50%;background:var(--soap);box-shadow:0 0 12px var(--soap);animation:pulse 2.4s infinite}
.hero h1.hero-logo img{height:clamp(170px,36vh,360px);margin:0 auto}
.hero-big{font:800 clamp(1.9rem,5.2vw,4.1rem)/1.02 'Baloo 2',sans-serif;letter-spacing:-.01em;margin-top:clamp(2px,1vh,10px);
  text-shadow:0 4px 30px rgba(0,0,0,.85),0 2px 4px rgba(0,0,0,.6)}
.soapy{background:linear-gradient(100deg,#8fd3e8,#d9f6ff 30%,#b7a3ff 50%,#8fd3e8 70%,#e8ac6b 100%);background-size:250% 100%;
  -webkit-background-clip:text;background-clip:text;color:transparent;animation:soapy 6s linear infinite;filter:drop-shadow(0 0 18px rgba(143,211,232,.35))}
@keyframes soapy{to{background-position:-250% 0}}
.hero .tag{margin:clamp(10px,2vh,18px) auto clamp(18px,3vh,28px);font-size:clamp(1rem,1.7vw,1.18rem);max-width:560px}
.cta-row{justify-content:center}
.btn-xl{padding:16px 30px 16px 24px;font-size:1.3rem;border-radius:18px;position:relative;overflow:hidden}
.btn-xl>span{display:flex;flex-direction:column;align-items:flex-start;line-height:1.1}
.btn-xl::after{content:"";position:absolute;inset:-40% auto -40% -30%;width:30%;transform:skewX(-20deg);background:linear-gradient(90deg,transparent,rgba(255,255,255,.55),transparent);animation:shine 4.5s ease-in-out 2.5s infinite}
@keyframes shine{0%,70%{left:-30%}100%{left:130%}}
.btn-ghost{appearance:none;border:1px solid rgba(246,233,212,.28);background:rgba(18,22,42,.45);backdrop-filter:blur(8px);color:var(--cream);
  padding:12px 20px 12px 12px;font:800 1.02rem 'Baloo 2';border-radius:16px}
.btn-ghost:hover{border-color:var(--warm);transform:translateY(-2px);box-shadow:0 10px 30px rgba(0,0,0,.4),0 0 30px rgba(232,172,107,.2)}
.btn-ghost .pl{width:38px;height:38px;border-radius:50%;display:grid;place-items:center;background:var(--cream);box-shadow:0 0 0 0 rgba(246,233,212,.4);animation:ring 2.8s ease-out infinite}
.btn-ghost .pl svg{width:16px;height:16px;fill:#141827;margin-left:3px}
.countdown{display:flex;align-items:flex-end;justify-content:center;flex-wrap:wrap;gap:10px;margin-top:clamp(20px,3.5vh,34px)}
.countdown>div{min-width:64px;padding:8px 10px 6px;border-radius:14px;background:rgba(10,12,24,.55);border:1px solid rgba(232,172,107,.22);backdrop-filter:blur(6px)}
.countdown b{display:block;font:800 clamp(1.3rem,2.6vw,1.8rem)/1 'Baloo 2';color:var(--warm-hi);font-variant-numeric:tabular-nums}
.countdown b.tick{animation:tick .45s ease-out}
@keyframes tick{0%{transform:translateY(-6px);opacity:.3;color:#fff}100%{transform:none}}
.countdown span{font:800 .62rem 'Nunito';letter-spacing:.2em;text-transform:uppercase;color:var(--muted)}
.countdown p{flex-basis:100%;font-size:.86rem;color:var(--muted);margin-top:4px}
.countdown p b{display:inline;font:inherit;color:var(--warm)}
.scroll-hint{width:auto;height:auto;border:0;bottom:18px;font:800 .7rem 'Nunito';letter-spacing:.3em;text-transform:uppercase;color:var(--muted);padding-bottom:26px}
.scroll-hint::after{top:auto;bottom:0;width:1px;height:20px;border-radius:0;background:linear-gradient(var(--warm),transparent);animation:drip 2s ease-in infinite}
@keyframes drip{0%{transform:scaleY(0);transform-origin:top}50%{transform:scaleY(1);transform-origin:top}51%{transform-origin:bottom}100%{transform:scaleY(0);transform-origin:bottom}}
/* Grandma in the window (painted variant, revealed only for a few frames by hero.js) */
.hero-oma{position:absolute;inset:0;background:url(/img/hero-oma.webp) center/100% 100%;opacity:0;z-index:1;pointer-events:none;mix-blend-mode:normal}
.hero-oma.on{opacity:1}

/* ---------- intro sequence ---------- */
.intro .hero-img{filter:brightness(0)}
.hero-img{transition:filter 2.4s cubic-bezier(.2,.7,.2,1)}
.intro .hero-in>*{opacity:0;transform:translateY(24px);filter:blur(10px)}
.hero-in>*{transition:opacity 1s,transform 1.2s cubic-bezier(.2,.8,.2,1),filter 1s}
.hero-in>*:nth-child(1){transition-delay:1.3s}
.hero-in>*:nth-child(2){transition-delay:1.6s}
.hero-in>*:nth-child(3){transition-delay:2.1s}
.hero-in>*:nth-child(4){transition-delay:2.5s}
.hero-in>*:nth-child(5){transition-delay:2.8s}
.hero-in>*:nth-child(6){transition-delay:3.1s}
.intro .hero-logo img{transform:scale(1.4)}
.hero-logo img{transition:transform 1.6s cubic-bezier(.16,1.2,.3,1) 1.6s}
.intro .nav{opacity:0}.nav{transition:opacity 1s 3s,background .3s,box-shadow .3s}

/* ---------- trailer lightbox ---------- */
.tlb{border:0;padding:0;background:transparent;width:min(1200px,94vw);max-width:none;max-height:none;overflow:visible}
.tlb::backdrop{background:rgba(4,5,10,.88);backdrop-filter:blur(10px)}
.tlb[open]{animation:tlbIn .5s cubic-bezier(.2,.9,.2,1)}
@keyframes tlbIn{from{opacity:0;transform:scale(.92) translateY(20px)}}
.tlb-v{aspect-ratio:16/9;border-radius:18px;overflow:hidden;background:#000;box-shadow:0 0 0 1px rgba(232,172,107,.4),0 40px 120px rgba(0,0,0,.8),0 0 120px rgba(143,211,232,.15)}
.tlb-v video{width:100%;height:100%}
.tlb-x{position:absolute;top:-48px;right:0;width:40px;height:40px;border-radius:50%;border:1px solid rgba(246,233,212,.3);background:rgba(18,22,42,.7);color:var(--cream);font-size:1.6rem;line-height:1;cursor:pointer}
body.tlb-open{overflow:hidden}

@media (max-width:640px){
  .countdown>div{min-width:56px}
  .btn-xl{font-size:1.1rem;padding:14px 22px 14px 18px}
  .hero-in{padding-bottom:84px}
}
@media (prefers-reduced-motion:reduce){.intro .hero-img{filter:none}.intro .hero-in>*{opacity:1;transform:none;filter:none}}

/* ---------- walk (horizontal gallery) ---------- */
.walk{padding:0;background:linear-gradient(var(--night),#0d1020 30%,#0a0c18)}
.walk-stage{position:sticky;top:0;height:100svh;overflow:hidden;display:flex;flex-direction:column;justify-content:center}
.walk-head{padding:0 clamp(20px,5vw,64px);margin-bottom:clamp(16px,3vh,32px)}
.walk-head h2{margin:0}
.walk-track{display:flex;gap:clamp(18px,3vw,40px);padding:0 clamp(20px,5vw,64px);will-change:transform;width:max-content}
.walk-card{position:relative;flex:none;width:min(68vw,880px);aspect-ratio:16/9;border-radius:22px;overflow:hidden;margin:0;
  box-shadow:0 30px 80px rgba(0,0,0,.6),0 0 0 1px rgba(246,233,212,.08);
  transform:perspective(1200px) rotateY(calc(var(--m,0) * -14deg)) scale(calc(1 - abs(var(--m,0)) * .12));transition:transform .15s linear}
.walk-card img{width:120%;height:100%;object-fit:cover;max-width:none;transform:translateX(calc(var(--m,0) * -12% - 8%))}
.walk-card::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 55%,rgba(5,6,12,.85));pointer-events:none}
.walk-card figcaption{position:absolute;left:clamp(16px,2.5vw,32px);bottom:clamp(14px,2.2vw,28px);z-index:1;display:flex;align-items:baseline;gap:14px}
.walk-card figcaption b{font:800 clamp(2rem,4vw,3.6rem)/1 'Baloo 2';color:transparent;-webkit-text-stroke:1.5px var(--warm)}
.walk-card figcaption span{font:700 clamp(1rem,1.8vw,1.4rem) 'Caveat',cursive;font-size:clamp(1.3rem,2.4vw,2rem);color:var(--cream);text-shadow:0 2px 10px #000}
.walk-card.cold{box-shadow:0 30px 80px rgba(0,0,0,.7),0 0 0 1px rgba(143,211,232,.25),0 0 60px rgba(143,211,232,.12)}
.walk-card.cold figcaption b{-webkit-text-stroke-color:var(--soap)}
.walk-card.last img{filter:saturate(.6) brightness(.8);animation:breath 6s ease-in-out infinite}
@keyframes breath{50%{filter:saturate(.7) brightness(.95) hue-rotate(-8deg)}}
.walk-bar{position:absolute;left:clamp(20px,5vw,64px);right:clamp(20px,5vw,64px);bottom:clamp(20px,5vh,44px);height:2px;background:rgba(246,233,212,.1);border-radius:2px}
.walk-bar i{position:absolute;inset:0;background:linear-gradient(90deg,var(--warm),var(--soap));transform-origin:left;transform:scaleX(0)}
.walk.static{height:auto}.walk.static .walk-stage{position:relative;height:auto;padding:80px 0}.walk.static .walk-track{overflow-x:auto;width:auto;scroll-snap-type:x mandatory}.walk.static .walk-card{scroll-snap-align:center;transform:none}

/* ---------- letter ---------- */
.letter{padding:120px 0}
.paper{position:relative;max-width:640px;margin:0 auto;padding:clamp(34px,6vw,64px) clamp(26px,5vw,58px);color:#3a2618;border-radius:6px;
  background:radial-gradient(ellipse at 20% 10%,rgba(255,255,255,.35),transparent 50%),radial-gradient(ellipse at 90% 100%,rgba(120,70,30,.25),transparent 55%),linear-gradient(170deg,#f3e3c3,#e7cf9f);
  box-shadow:0 40px 90px rgba(0,0,0,.6),inset 0 0 60px rgba(120,70,30,.25);transform:rotate(-1.4deg)}
.paper::before{content:"";position:absolute;inset:0;border-radius:inherit;pointer-events:none;opacity:.35;mix-blend-mode:multiply;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='200' height='200'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.7' numOctaves='3'/%3E%3CfeColorMatrix values='0 0 0 0 .5 0 0 0 0 .35 0 0 0 0 .2 0 0 0 .6 0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E")}
.hand{font:600 clamp(1.35rem,2.6vw,1.75rem)/1.35 'Caveat',cursive;position:relative}
.paper .hand{clip-path:inset(0 0 100% 0);transition:clip-path 5.5s cubic-bezier(.4,.1,.3,1)}
.paper.write .hand{clip-path:inset(0 0 0 0)}
.ink{color:#2a4f63;transition:color 1s,text-shadow 1s}
.ink.lit{color:#1f7ea3;text-shadow:0 0 14px rgba(111,214,255,.7)}
.listen{margin-top:26px;display:inline-flex;align-items:center;gap:10px;border:0;cursor:pointer;background:#3a2618;color:#f3e3c3;border-radius:999px;padding:9px 18px 9px 10px;font:800 .95rem 'Nunito'}
.listen svg{width:26px;height:26px;padding:6px;border-radius:50%;background:#f3e3c3;fill:#3a2618}
.listen.on svg{animation:pulse 1s infinite}
.stain{position:absolute;right:8%;bottom:10%;width:110px;aspect-ratio:1;border-radius:50%;pointer-events:none;
  background:radial-gradient(circle,transparent 52%,rgba(60,140,170,.28) 58%,rgba(60,140,170,.12) 66%,transparent 70%);transform:rotate(20deg) scaleX(1.1)}

/* ---------- cards: tilt sheen ---------- */
.card{transform-style:preserve-3d;transition:transform .2s ease-out,box-shadow .3s,border-color .3s}
.card::before{content:"";position:absolute;inset:0;border-radius:inherit;pointer-events:none;opacity:0;transition:opacity .3s;
  background:radial-gradient(circle at var(--gx,50%) var(--gy,50%),rgba(255,240,210,.16),transparent 55%)}
.card:hover::before{opacity:1}

/* ---------- bubble cursor canvas ---------- */
.fx-bubbles{position:fixed;inset:0;z-index:50;pointer-events:none}
@media (prefers-reduced-motion:reduce){.paper .hand{clip-path:none}}
/* hero v2 fit: everything on one screen */
.hero-in{gap:0;padding:clamp(70px,9vh,96px) 24px clamp(56px,8vh,84px)}
.hero h1.hero-logo img{height:clamp(130px,27vh,290px)}
.hero-big{font-size:clamp(1.7rem,4.4vw,3.4rem)}
.hero .tag{margin:clamp(6px,1.4vh,14px) auto clamp(14px,2.4vh,22px)}
.countdown{margin-top:clamp(14px,2.6vh,26px)}
.countdown>div{padding:6px 10px 5px}
.hero-big .soapy{filter:drop-shadow(0 0 18px rgba(143,211,232,.35)) drop-shadow(0 2px 2px rgba(0,0,0,.9))}
.soapy{background-image:linear-gradient(100deg,#a8e6f7,#ecfbff 30%,#cdbfff 50%,#a8e6f7 70%,#f3c98f 100%)}
@media (max-height:760px) and (min-width:700px){.hero-kicker{display:none}.countdown p{display:none}}
@media (max-width:640px){.hero-in{padding-top:76px}.hero h1.hero-logo img{height:clamp(120px,22vh,200px)}.cta-row{flex-direction:column}.countdown p{font-size:.78rem}}
/* intro: black must win over the WebGL canvas, too */
.hero-bg::after{content:"";position:absolute;inset:0;background:#05060c;opacity:0;transition:opacity 2.4s cubic-bezier(.2,.7,.2,1) .2s;pointer-events:none;z-index:2}
.intro .hero-bg::after{opacity:1;transition:none}
/* gallery rhythm */
.walk-stage{justify-content:center;gap:0}
.walk-head{margin-bottom:clamp(14px,2.4vh,26px)}
.walk-bar{height:3px;bottom:clamp(18px,4vh,36px)}
.walk-track{padding-left:max(clamp(20px,5vw,64px),calc((100vw - min(68vw,880px)) / 2))}
.hero{padding:0}
/* contrast: the punchline must survive the bright window */
.hero-big{position:relative}
.hero-big::before{content:"";position:absolute;inset:-18% -8%;z-index:-1;background:radial-gradient(ellipse at 50% 55%,rgba(8,10,20,.72),rgba(8,10,20,.35) 55%,transparent 75%);filter:blur(8px)}
.hero-big .soapy{-webkit-text-stroke:0;text-shadow:none}
/* lightbox: darker, centered, framed */
.tlb{margin:auto;inset:0;position:fixed}
.tlb::backdrop{background:radial-gradient(ellipse at 50% 50%,rgba(10,14,30,.9),rgba(2,3,8,.97))}
.tlb-v{border-radius:22px;outline:1px solid rgba(232,172,107,.35);outline-offset:8px}
.stain{width:90px;border-radius:46% 54% 50% 50%/55% 45% 55% 45%;background:radial-gradient(ellipse at 45% 50%,rgba(60,140,170,.10) 40%,rgba(60,140,170,.32) 60%,rgba(60,140,170,.1) 68%,transparent 72%)}
