:root{
  --bg:#120b16; --bg-2:#1a1020;
  --ink:#f7e9ef; --muted:#b9a3b3; --dim:#8e7b8a;
  --pink:#ffb7cf; --rose:#ff8fb8; --rose-deep:#d9548a; --gold:#f4d9a6;
  --line:rgba(255,183,207,.14); --line-strong:rgba(255,183,207,.42);
  --glass:rgba(255,255,255,.04);
  --font-display:"Cormorant Garamond",Georgia,"Times New Roman",serif;
  --font-body:"Manrope",system-ui,-apple-system,"Segoe UI",sans-serif;
  --radius:1.25rem;
  --ease:cubic-bezier(.2,.7,.2,1);
  --veil:0; --bars:1;
  color-scheme:dark;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
html.lenis,html.lenis body{height:auto}
html.lenis,.lenis.lenis-smooth{scroll-behavior:auto!important}
.lenis.lenis-stopped{overflow:hidden}
body{margin:0;background:var(--bg);color:var(--ink);font-family:var(--font-body);font-weight:400;line-height:1.6;overflow-x:hidden;-webkit-font-smoothing:antialiased}
a{color:inherit;text-decoration:none}
img{display:block;max-width:100%}
button{font:inherit;color:inherit;background:none;border:0;cursor:pointer}
::selection{background:rgba(255,143,184,.35)}
:focus-visible{outline:2px solid var(--rose);outline-offset:3px;border-radius:4px}

#sakura{position:fixed;inset:0;width:100%;height:100%;z-index:0;display:block}
#petals{position:fixed;inset:0;width:100%;height:100%;z-index:2;pointer-events:none;display:block}
.veil{position:fixed;inset:0;z-index:1;pointer-events:none;opacity:var(--veil);
  background:linear-gradient(180deg,rgba(18,11,22,.56),rgba(18,11,22,.88) 35%,rgba(18,11,22,.94));transition:none}
.grain{position:fixed;inset:-100%;z-index:2;pointer-events:none;opacity:.055;mix-blend-mode:overlay;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='300' height='300'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
  animation:grain 1.4s steps(7) 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)}}
.bars{position:fixed;inset:0;z-index:40;pointer-events:none}
.bars i{position:absolute;left:0;right:0;height:calc(var(--bars) * 7.5vh);background:#050308}
.bars i:first-child{top:0}
.bars i:last-child{bottom:0}
.curtain{position:fixed;inset:0;z-index:80;display:grid;place-items:center;pointer-events:none;overflow:hidden;perspective:1200px;animation:curtainOff 0s linear 3.1s forwards}
.curtain__brand{position:relative;z-index:1;display:flex;align-items:center;gap:.8rem;font-family:var(--font-display);font-size:clamp(2rem,5vw,3.2rem);font-weight:300;letter-spacing:.08em;color:var(--ink);text-shadow:0 0 40px rgba(255,143,184,.35);animation:brandIn 1.5s var(--ease) .1s both,brandOut .9s var(--ease) 1.5s forwards}
.curtain__brand [data-icon]{display:inline-grid;width:.9em;height:.9em;color:var(--rose)}
.curtain__brand svg{width:100%;height:100%}
.curtain__brand svg{animation:bloomIn 1.5s var(--ease) both}
.curtain__brand ellipse{opacity:0;animation:petalFade .5s ease forwards}
.curtain__brand ellipse:nth-of-type(2){animation-delay:.12s}
.curtain__brand ellipse:nth-of-type(3){animation-delay:.24s}
.curtain__brand ellipse:nth-of-type(4){animation-delay:.36s}
.curtain__brand ellipse:nth-of-type(5){animation-delay:.48s}
@keyframes bloomIn{from{transform:rotate(-140deg) scale(.3);opacity:0}to{transform:none;opacity:1}}
@keyframes petalFade{to{opacity:1}}
@keyframes brandIn{from{opacity:0;letter-spacing:.45em;filter:blur(12px)}to{opacity:1;letter-spacing:.08em;filter:none}}
@keyframes curtain{to{opacity:0;visibility:hidden}}
@keyframes curtainOff{to{visibility:hidden}}
@keyframes brandOut{to{opacity:0;transform:scale(1.2);filter:blur(10px)}}
.shoji{position:absolute;top:0;bottom:0;width:50.5%;background-color:#150b12;will-change:transform;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 400 200' preserveAspectRatio='xMidYMid slice'%3E%3Cg fill='none' stroke='%23060204' stroke-opacity='.6' stroke-linecap='round'%3E%3Cpath d='M-10 30C60 48 110 66 170 92S290 122 410 152' stroke-width='5'/%3E%3Cpath d='M118 72C138 56 150 42 176 30' stroke-width='2.4'/%3E%3Cpath d='M228 106C250 128 262 148 292 160' stroke-width='2.4'/%3E%3Cpath d='M300 128C320 108 336 98 362 94' stroke-width='2'/%3E%3C/g%3E%3Cg fill='%23060204' fill-opacity='.55'%3E%3Ccircle cx='176' cy='30' r='7'/%3E%3Ccircle cx='164' cy='40' r='5'/%3E%3Ccircle cx='292' cy='160' r='7'/%3E%3Ccircle cx='281' cy='151' r='4'/%3E%3Ccircle cx='362' cy='94' r='6'/%3E%3Ccircle cx='118' cy='72' r='4'/%3E%3Ccircle cx='62' cy='46' r='5'/%3E%3Ccircle cx='210' cy='100' r='4'/%3E%3Ccircle cx='330' cy='140' r='3'/%3E%3C/g%3E%3C/svg%3E"),
    repeating-linear-gradient(90deg,transparent 0 calc(25% - 2px),rgba(8,4,7,.92) calc(25% - 2px) 25%),
    repeating-linear-gradient(180deg,transparent 0 calc(16.66% - 2px),rgba(8,4,7,.92) calc(16.66% - 2px) 16.66%),
    radial-gradient(95% 75% at var(--gx) 50%,#4d2839 0%,#2b1621 46%,#140a10 100%);
  background-size:200% 100%,100% 100%,100% 100%,100% 100%;box-shadow:inset 0 0 0 10px #0b0609,inset 0 0 90px rgba(0,0,0,.7)}
.shoji--l{left:0;--gx:100%;background-position:0 0,0 0,0 0,0 0;transform-origin:right center;animation:doorL 1.5s cubic-bezier(.75,0,.2,1) 1.55s forwards}
.shoji--r{right:0;--gx:0%;background-position:100% 0,0 0,0 0,0 0;transform-origin:left center;animation:doorR 1.5s cubic-bezier(.75,0,.2,1) 1.55s forwards}
@keyframes doorL{to{transform:translateX(-101%) rotateY(-3deg)}}
@keyframes doorR{to{transform:translateX(101%) rotateY(3deg)}}
.shoji::after{content:"";position:absolute;top:0;bottom:0;width:18vw;opacity:0;pointer-events:none;animation:leak 1.5s ease-out 1.55s both}
.shoji--l::after{right:-18vw;background:linear-gradient(90deg,rgba(255,214,190,.22),rgba(255,214,190,0))}
.shoji--r::after{left:-18vw;background:linear-gradient(270deg,rgba(255,214,190,.22),rgba(255,214,190,0))}
@keyframes leak{20%{opacity:1}100%{opacity:0}}
.cursor{position:fixed;left:0;top:0;z-index:110;pointer-events:none;opacity:0;transition:opacity .3s}
.cursor.is-on{opacity:1}
.cursor i{position:absolute;left:-19px;top:-19px;width:38px;height:38px;border-radius:50%;border:1.5px solid rgba(255,226,236,.95);
  box-shadow:0 0 0 1px rgba(10,5,12,.5),inset 0 0 0 1px rgba(10,5,12,.3),0 0 22px rgba(255,143,184,.45);transition:transform .35s var(--ease),background-color .3s,border-color .3s}
.cursor.is-hot i{transform:scale(1.5);background:rgba(255,183,207,.14);border-color:var(--pink)}
.cursor.is-down i{transform:scale(.8)}
.cursor.is-hot.is-down i{transform:scale(1.25)}
.cursor.has-label i{transform:translate(30px,30px) scale(2.05);background:rgba(255,190,212,.95);border-color:var(--pink)}
.cursor.has-label.is-down i{transform:translate(30px,30px) scale(1.8)}
.cursor b{position:absolute;left:0;top:0;transform:translate(-50%,-50%) scale(.4);opacity:0;font-family:var(--font-body);font-size:.6rem;font-weight:700;letter-spacing:.16em;text-transform:uppercase;color:#2a0f1c;white-space:nowrap;transition:opacity .25s ease,transform .45s var(--ease)}
.cursor.has-label b{opacity:1;transform:translate(calc(-50% + 30px),calc(-50% + 30px)) scale(1)}
.fx{position:fixed;inset:0;z-index:46;pointer-events:none;overflow:hidden}
.fx__petal{position:absolute;left:-8px;top:-8px;width:16px;height:16px;will-change:transform,opacity}
.fx__petal svg{display:block;width:100%;height:100%;filter:drop-shadow(0 2px 6px rgba(255,143,184,.4))}
.chapters{position:fixed;right:clamp(1rem,2.2vw,2rem);top:50%;z-index:41;display:flex;flex-direction:column;gap:1.1rem;transform:translateY(-50%);transition:opacity .5s,visibility .5s}
.chapters::before{content:"";position:absolute;right:4px;top:6px;bottom:6px;width:1px;background:var(--line)}
.chapters.is-hidden{opacity:0;visibility:hidden}
.chapters button{position:relative;display:flex;align-items:center;justify-content:flex-end;gap:.75rem;min-height:24px;color:var(--muted);font-size:.62rem;font-weight:600;letter-spacing:.22em;text-transform:uppercase}
.chapters em{font-style:normal;white-space:nowrap;padding:.3rem .65rem;border-radius:999px;background:rgba(14,8,18,.6);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);opacity:0;transform:translateX(8px);transition:opacity .4s,transform .5s var(--ease)}
.chapters i{width:9px;height:9px;border-radius:50%;border:1px solid rgba(255,183,207,.55);background:var(--bg);transition:transform .5s var(--ease),background-color .3s,border-color .3s}
.chapters button:hover,.chapters button.is-active{color:var(--ink)}
.chapters button:hover em,.chapters button.is-active em{opacity:1;transform:none}
.chapters button.is-active i{background:var(--rose);border-color:var(--rose);transform:scale(1.35)}
.scrollbar{position:fixed;top:0;left:0;right:0;height:2px;z-index:60;pointer-events:none}
.scrollbar i{position:relative;display:block;height:100%;width:0;background:linear-gradient(90deg,var(--rose-deep),var(--pink));transition:width .1s linear}
.scrollbar i::after{content:"";position:absolute;right:-8px;top:-7px;width:16px;height:16px;transform:rotate(var(--spin,0deg));filter:drop-shadow(0 0 6px rgba(255,143,184,.85));
  background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-12 -12 24 24'%3E%3Cg fill='%23ffc4d6'%3E%3Cellipse rx='3.2' ry='5.2' cy='-5.6'/%3E%3Cellipse rx='3.2' ry='5.2' cy='-5.6' transform='rotate(72)'/%3E%3Cellipse rx='3.2' ry='5.2' cy='-5.6' transform='rotate(144)'/%3E%3Cellipse rx='3.2' ry='5.2' cy='-5.6' transform='rotate(216)'/%3E%3Cellipse rx='3.2' ry='5.2' cy='-5.6' transform='rotate(288)'/%3E%3C/g%3E%3Ccircle r='2.2' fill='%23d9548a'/%3E%3C/svg%3E") center/contain no-repeat}

.nav{position:fixed;top:0;left:0;right:0;z-index:50;display:flex;align-items:center;justify-content:space-between;gap:1rem;
  padding:1.15rem clamp(1rem,4vw,3rem);transition:padding .5s var(--ease)}
.nav::before{content:"";position:absolute;inset:0;z-index:-1;backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);
  background:rgba(18,11,22,.55);border-bottom:1px solid var(--line);opacity:0;transition:opacity .5s}
.nav.is-scrolled{padding:.7rem clamp(1rem,4vw,3rem)}
.nav.is-scrolled::before{opacity:1}
.brand{display:inline-flex;align-items:center;gap:.6rem;font-family:var(--font-display);font-size:1.4rem;font-weight:500;letter-spacing:.02em;text-shadow:0 2px 18px rgba(18,11,22,.9)}
.brand__mark{display:inline-grid;place-items:center;width:1.7rem;height:1.7rem;color:var(--rose)}
.brand__mark svg{width:100%;height:100%;animation:spin 40s linear infinite}
@keyframes spin{to{transform:rotate(360deg)}}
.nav__links{display:flex;align-items:center;gap:clamp(1rem,2.5vw,2.2rem);font-size:.85rem;font-weight:500;letter-spacing:.04em}
.nav__links a{position:relative;opacity:.8;transition:opacity .3s}
.nav__links a::after{content:"";position:absolute;left:0;right:100%;bottom:-6px;height:1px;background:var(--rose);transition:right .4s var(--ease)}
.nav__links a:hover{opacity:1}
.nav__links a:hover::after{right:0}
.nav__links .nav__cta{opacity:1;padding:.55rem 1.1rem;border:1px solid var(--line-strong);border-radius:999px;transition:background .3s,transform .4s var(--ease)}
.nav__links .nav__cta::after{display:none}
.nav__links .nav__cta:hover{background:rgba(255,183,207,.12)}
.nav__sound{width:40px;height:40px;border-radius:50%;border:1px solid var(--line);display:grid;place-items:center;color:var(--muted);transition:border-color .3s,color .3s,background .3s,transform .4s var(--ease)}
.nav__sound:hover{border-color:var(--line-strong);color:var(--ink)}
.nav__sound svg{width:1rem;height:1rem;grid-area:1/1}
.nav__sound [data-icon="sound"]{display:none}
.nav__sound[aria-pressed="true"]{color:var(--pink);border-color:var(--line-strong);background:rgba(255,183,207,.1)}
.nav__sound[aria-pressed="true"] [data-icon="sound"]{display:block}
.nav__sound[aria-pressed="true"] [data-icon="mute"]{display:none}
.nav__toggle{display:none;width:44px;height:44px;position:relative;margin-right:-.5rem}
.nav__toggle span{position:absolute;left:12px;right:12px;height:1.5px;background:var(--ink);transition:transform .4s var(--ease),top .4s}
.nav__toggle span:first-child{top:18px}
.nav__toggle span:last-child{top:25px}
.nav.is-open .nav__toggle span:first-child{top:21px;transform:rotate(45deg)}
.nav.is-open .nav__toggle span:last-child{top:21px;transform:rotate(-45deg)}

.display{font-family:var(--font-display);font-weight:300;line-height:1;letter-spacing:-.01em;margin:0;font-size:clamp(2.4rem,5.2vw,4.6rem);text-wrap:balance}
.display--xl{font-size:clamp(3rem,8vw,7rem);line-height:.95}
.display i{font-style:italic;color:var(--pink);font-weight:300;animation:bloomGlow 6s ease-in-out 3s infinite}
@keyframes bloomGlow{0%,100%{color:var(--pink);text-shadow:0 0 0 rgba(255,143,184,0)}50%{color:#ffdbe7;text-shadow:0 0 26px rgba(255,143,184,.6)}}
.eyebrow{margin:0 0 1.2rem;display:flex;align-items:center;gap:.8rem;font-size:.7rem;font-weight:700;letter-spacing:.32em;text-transform:uppercase;color:var(--rose)}
.eyebrow::before{content:"";width:2.2rem;height:1px;background:currentColor;opacity:.8;flex:none}
.reveal .eyebrow{letter-spacing:.6em;transition:letter-spacing 1.4s var(--ease) var(--d,0s)}
.reveal.in .eyebrow{letter-spacing:.32em}
.reveal .eyebrow::before{transform:scaleX(0);transform-origin:left center;transition:transform 1.1s var(--ease) calc(var(--d,0s) + .2s)}
.reveal.in .eyebrow::before{transform:none}
.lead{font-size:clamp(1rem,1.3vw,1.18rem);font-weight:300;color:var(--muted);max-width:46ch;margin:1.4rem 0 0;text-wrap:pretty}
.actions{display:flex;flex-wrap:wrap;gap:.8rem;margin-top:2.2rem}
.btn{display:inline-flex;align-items:center;gap:.6rem;padding:.9rem 1.6rem;border-radius:999px;border:1px solid var(--line-strong);
  font-size:.86rem;font-weight:600;letter-spacing:.06em;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);
  transition:transform .4s var(--ease),background .3s,box-shadow .4s,border-color .3s}
.btn:hover{transform:translateY(-2px);background:rgba(255,183,207,.1);box-shadow:0 12px 30px -12px rgba(255,143,184,.5)}
.btn--solid{background:var(--rose);border-color:var(--rose);color:#2a0f1c}
.btn--solid:hover{background:var(--pink);border-color:var(--pink)}
.btn--solid{position:relative;overflow:hidden;isolation:isolate}
.btn--solid::after{content:"";position:absolute;inset:-2px;z-index:-1;pointer-events:none;background:linear-gradient(105deg,transparent 35%,rgba(255,255,255,.6) 50%,transparent 65%);transform:translateX(-135%);transition:transform .9s var(--ease)}
.btn--solid:hover::after{transform:translateX(135%)}
.hero .btn--solid::after{animation:shimmer 6s ease-in-out 4.5s infinite}
@keyframes shimmer{0%,70%{transform:translateX(-135%)}100%{transform:translateX(135%)}}
.btn svg{width:1.05rem;height:1.05rem}

main{position:relative;z-index:3}
.hero{height:580vh;position:relative}
.hero__stage{position:sticky;top:0;height:100vh;height:100svh;overflow:hidden;touch-action:pan-y;-webkit-user-select:none;user-select:none}
.hero__stage.is-grab{cursor:grabbing}
.hero__stage::after{content:"";position:absolute;inset:0;pointer-events:none;opacity:calc(.25 + .75 * var(--scrim,0));
  background:linear-gradient(90deg,rgba(14,8,18,.8) 0%,rgba(14,8,18,.58) 30%,rgba(14,8,18,.2) 52%,rgba(14,8,18,0) 66%)}
.hero__layer,.hero__cue{z-index:1}
.hero__layer .lead{text-shadow:0 2px 16px rgba(14,8,18,.9)}
.hero__layer{position:absolute;inset:0;display:flex;flex-direction:column;justify-content:center;padding:0 clamp(1.25rem,6vw,6rem);max-width:min(100%,780px);--lv-shift:36px;
  opacity:var(--lv,0);transform:translateY(calc((1 - var(--lv,0)) * var(--lv-shift) * var(--lvd,1)));transition:none;pointer-events:none;will-change:opacity,transform}
.hero__layer.is-active{pointer-events:auto}
.hero__layer--alt{justify-content:flex-end;padding-bottom:16vh}
.hero__layer .display{text-shadow:0 10px 60px rgba(18,11,22,.65)}
.w{display:inline-block}
#heroTitle .w{opacity:0;transform:translateY(.5em);filter:blur(8px);animation:rise 1.3s var(--ease) forwards;animation-delay:calc(var(--i)*.09s + 1.7s)}
.reveal .display .ch{display:inline-block;--k:clamp(0,calc(var(--rv,1) * 1.8 - var(--f,0) * .8),1);opacity:var(--k);
  transform:perspective(520px) translate3d(0,calc((1 - var(--k)) * .55em),0) rotateX(calc((1 - var(--k)) * -82deg));transform-origin:50% 100%}
#heroTitle .ch{display:inline-block;transform:translate3d(0,calc(var(--lift,0) * -.16em),0);transition:transform .45s var(--ease),color .45s,text-shadow .45s}
#heroTitle .ch.is-lit{color:#fff4f8;text-shadow:0 10px 60px rgba(18,11,22,.65),0 0 26px rgba(255,183,207,.85)}
@keyframes rise{to{opacity:1;transform:none;filter:none}}
.hero__layer[data-stage="0"] .eyebrow{animation:track 1.8s var(--ease) 1.5s both}
@keyframes track{from{letter-spacing:.9em;opacity:0}to{letter-spacing:.32em;opacity:1}}
.hero__layer[data-stage="0"] .lead,.hero__layer[data-stage="0"] .actions{animation:fadeUp 1.2s var(--ease) 2.4s both}
@keyframes fadeUp{from{opacity:0;transform:translateY(14px)}}
.hero__cue{position:absolute;left:clamp(1.25rem,6vw,6rem);bottom:calc(7.5vh + 1.6rem);display:flex;align-items:center;gap:.8rem;font-size:.66rem;letter-spacing:.3em;text-transform:uppercase;color:var(--muted);transition:opacity .6s}
.hero__cue i{width:1px;height:3.2rem;background:rgba(255,183,207,.25);position:relative;overflow:hidden}
.hero__cue i::after{content:"";position:absolute;left:0;top:-100%;width:100%;height:100%;background:linear-gradient(180deg,transparent,var(--pink));animation:cue 1.8s var(--ease) infinite}
@keyframes cue{to{top:100%}}
.hero__cue.is-hidden{opacity:0}

.section{position:relative;max-width:1180px;margin:0 auto;padding:clamp(4.5rem,11vh,8rem) clamp(1.25rem,5vw,3rem)}
.section--intro{padding-top:clamp(3rem,9vh,5rem)}
.section__head{display:flex;align-items:flex-end;justify-content:space-between;gap:2rem;margin-bottom:2.4rem;flex-wrap:wrap}
.section__head .eyebrow{margin-bottom:.9rem}
.more{display:inline-flex;align-items:center;gap:.5rem;font-size:.85rem;font-weight:600;letter-spacing:.04em;color:var(--pink);padding-bottom:.2rem;border-bottom:1px solid transparent;transition:border-color .3s,gap .3s,transform .4s var(--ease)}
.more:hover{border-color:var(--pink);gap:.8rem}
.more svg{width:1rem;height:1rem}
.more[hidden]{display:none}
.intro{max-width:720px}
.jumps{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:1rem;margin-top:2.6rem}
.jump{display:flex;align-items:center;gap:1rem;padding:1.1rem 1.3rem;border:1px solid var(--line);border-radius:1rem;background:var(--glass);transition:transform .4s var(--ease),border-color .3s,background .3s}
.jump:hover{transform:translateY(-3px);border-color:var(--line-strong);background:rgba(255,183,207,.07)}
.jump [data-icon]{display:grid;place-items:center;width:2.6rem;height:2.6rem;border-radius:.8rem;background:rgba(255,143,184,.12);color:var(--pink);flex:none}
.jump [data-icon] svg{width:1.3rem;height:1.3rem}
.jump b{display:block;font-weight:600;font-size:.95rem}
.jump small{display:block;color:var(--muted);font-size:.78rem}
.jump:hover [data-icon] svg{animation:wiggle .7s var(--ease)}
@keyframes wiggle{20%{transform:rotate(-12deg) scale(1.1)}55%{transform:rotate(9deg) scale(1.1)}100%{transform:none}}

.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,290px),1fr));gap:1.4rem}
.card{position:relative;display:flex;flex-direction:column;border-radius:var(--radius);
  background:linear-gradient(180deg,rgba(40,24,46,.55),rgba(22,13,28,.78));border:1px solid var(--line);
  opacity:0;transform:perspective(1200px) translateY(70px) rotateX(16deg) scale(.96);transform-origin:50% 100%;
  transition:opacity .9s ease var(--d,0s),transform 1.3s var(--ease) var(--d,0s),border-color .4s,box-shadow .55s var(--ease)}
.grid.in .card{opacity:1;transform:none}
.grid.in .card:hover{border-color:var(--line-strong);box-shadow:0 30px 60px -28px rgba(255,143,184,.45);transition-delay:0s}
@media (hover:hover){.grid.in .card:hover{transform:translateY(-6px)}}
.grid.in .card.is-ready{transform-origin:50% 50%;transition:opacity .6s ease,transform .8s var(--ease),border-color .4s,box-shadow .55s var(--ease)}
.grid.in .card.is-tilt,.grid.in .card.is-settling{transition:opacity .6s ease,border-color .4s,box-shadow .55s var(--ease)}
.card::after{content:"";position:absolute;inset:0;z-index:1;border-radius:inherit;pointer-events:none;opacity:0;transition:opacity .5s;
  background:radial-gradient(460px circle at var(--mx,50%) var(--my,0%),rgba(255,205,224,.14),transparent 45%)}
.card.is-tilt::after{opacity:1}
.card__media{position:relative;aspect-ratio:4/3;overflow:hidden;cursor:zoom-in;background:#1d1224;border-radius:calc(var(--radius) - 1px) calc(var(--radius) - 1px) 0 0;
  clip-path:inset(0 0 100% 0);transition:clip-path 1.3s cubic-bezier(.7,0,.2,1) calc(var(--d,0s) + .15s)}
.grid.in .card__media{clip-path:inset(0 0 0 0)}
.card::before{content:"";position:absolute;inset:7px;border:1px solid rgba(255,183,207,.16);border-radius:calc(var(--radius) - 7px);pointer-events:none;z-index:2;transition:border-color .5s}
.card:hover::before{border-color:rgba(255,183,207,.34)}
.card__frame{position:absolute;inset:0;pointer-events:none;z-index:3;color:#a97a9a;transition:color .5s}
.card:hover .card__frame{color:var(--pink)}
.card__frame svg{position:absolute;width:76px;height:76px;overflow:visible}
.card__frame svg:nth-child(1){left:-12px;top:-12px}
.card__frame svg:nth-child(2){right:-12px;top:-12px;transform:rotate(90deg)}
.card__frame svg:nth-child(3){right:-12px;bottom:-12px;transform:rotate(180deg)}
.card__frame svg:nth-child(4){left:-12px;bottom:-12px;transform:rotate(270deg)}
.card__frame .bl{transform-origin:center;transform-box:fill-box;transition:transform .6s var(--ease)}
.card:hover .card__frame .bl{transform:scale(1.18)}
.card__media img{position:absolute;left:0;top:-9%;width:100%;height:118%;max-width:none;object-fit:cover;object-position:50% 0%;translate:0 var(--py,0px);scale:1.22;transition:scale 2.4s var(--ease) calc(var(--d,0s) + .15s)}
.grid.in .card__media img{scale:1.03}
.grid.in .card.is-ready:hover .card__media img,.grid.in .card.is-tilt .card__media img{scale:1.1;transition:scale 1s var(--ease)}
.card__badge{position:absolute;top:.9rem;left:.9rem;display:inline-flex;gap:.4rem;padding:.35rem .7rem;border-radius:999px;background:rgba(18,11,22,.6);
  backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);font-size:.64rem;letter-spacing:.18em;text-transform:uppercase;font-weight:700;color:var(--pink)}
.card__body{display:flex;flex-direction:column;gap:.6rem;padding:1.2rem 1.35rem 1.4rem;flex:1}
.card__top{display:flex;justify-content:space-between;align-items:baseline;gap:1rem}
.card__title{font-family:var(--font-display);font-size:1.7rem;font-weight:400;line-height:1.05;margin:0}
.card__year{font-size:.72rem;color:var(--dim);letter-spacing:.1em;white-space:nowrap}
.card__desc{margin:0;color:var(--muted);font-size:.92rem;font-weight:300}
.card__foot{display:flex;justify-content:space-between;align-items:center;gap:1rem;margin-top:auto;padding-top:.8rem}
.chips{display:flex;flex-wrap:wrap;gap:.4rem;list-style:none;margin:0;padding:0}
.chips li{font-size:.66rem;letter-spacing:.08em;text-transform:uppercase;padding:.3rem .6rem;border-radius:999px;border:1px solid var(--line);color:var(--muted)}
.card__link{display:inline-flex;align-items:center;gap:.4rem;font-size:.8rem;font-weight:600;color:var(--pink);white-space:nowrap}
.card__link svg{width:.95rem;height:.95rem;transition:transform .3s}
.card__link:hover svg{transform:translate(2px,-2px)}
.card__embed{margin:0 1.35rem 1.35rem;border-radius:.8rem;overflow:hidden;border:1px solid var(--line)}
.card__embed iframe{display:block;width:100%;height:167px;border:0}
.empty{color:var(--dim);font-style:italic}

@property --spin-a{syntax:'<angle>';inherits:false;initial-value:0deg}
@keyframes spinA{to{--spin-a:360deg}}
.itch{display:flex;flex-direction:column}
.itch__banner{position:relative;height:clamp(180px,26vw,310px);border-radius:var(--radius);overflow:hidden;border:1px solid var(--line);background:linear-gradient(120deg,#3a2f3f,#241f29 60%,#1a171f)}
.itch__banner img{position:absolute;left:0;top:-10%;width:100%;height:120%;max-width:none;object-fit:cover;object-position:center 30%;translate:0 var(--py,0px);scale:1.06;transition:scale 1.4s var(--ease)}
.itch__banner:hover img{scale:1.1}
.itch__banner::after{content:"";position:absolute;inset:0;pointer-events:none;background:radial-gradient(120% 140% at 15% 20%,rgba(255,143,184,.26),transparent 55%),linear-gradient(to top,rgba(18,11,22,.96),rgba(18,11,22,.25) 55%,transparent)}
.itch__profile{position:relative;z-index:1;display:flex;align-items:flex-end;flex-wrap:wrap;gap:1rem 1.4rem;margin-top:-3.6rem;padding:0 clamp(.8rem,2.5vw,1.8rem)}
.itch__avatar{position:relative;flex:none;width:clamp(86px,9vw,116px);aspect-ratio:1;border-radius:28px;padding:3px;
  background:conic-gradient(from var(--spin-a),#ff8fb8,#ffe0ea,#d9548a,#ffb7cf,#ff8fb8);box-shadow:0 0 0 6px var(--bg),0 22px 44px -14px rgba(0,0,0,.7);animation:spinA 7s linear infinite;transition:transform .5s var(--ease)}
.itch__avatar:hover{transform:translateY(-4px) rotate(-3deg)}
.itch__avatar img{display:block;width:100%;height:100%;object-fit:cover;border-radius:25px;background:#201d24}
.itch__who{flex:1;min-width:200px;padding-bottom:.35rem}
.itch__name{font-family:var(--font-display);font-size:clamp(2.1rem,4vw,3rem);font-weight:400;line-height:1;color:var(--ink)}
.itch__handle{display:inline-block;margin-top:.4rem;color:var(--rose);font-weight:600;font-size:.9rem;letter-spacing:.02em}
.itch__links{display:flex;flex-wrap:wrap;gap:.4rem .9rem;list-style:none;margin:.55rem 0 0;padding:0}
.itch__links a{color:var(--muted);font-size:.8rem;border-bottom:1px solid transparent;transition:color .3s,border-color .3s}
.itch__links a:hover{color:var(--ink);border-color:var(--pink)}
.itch__follow{margin-bottom:.35rem}
.itch__bio{margin:1.9rem clamp(.8rem,2.5vw,1.8rem) 0;max-width:70ch;color:var(--muted);font-weight:300;font-size:1.04rem;line-height:1.8}
.itch__bio strong{color:var(--ink);font-weight:500}
.itch__gamesHead{display:flex;align-items:baseline;justify-content:space-between;gap:1rem;margin:3rem 0 1.4rem;padding-bottom:.9rem;border-bottom:1px solid var(--line)}
.itch__sub{margin:0;font-family:var(--font-display);font-weight:400;font-size:clamp(1.7rem,3vw,2.2rem)}
.itch__count{font-size:.7rem;letter-spacing:.2em;text-transform:uppercase;color:var(--dim)}
.card__status{position:absolute;top:.9rem;right:.9rem;display:inline-flex;align-items:center;gap:.45rem;padding:.35rem .7rem;border-radius:999px;background:rgba(18,11,22,.66);
  -webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);font-size:.62rem;font-weight:700;letter-spacing:.16em;text-transform:uppercase}
.card__status::before{content:"";width:7px;height:7px;border-radius:50%}
.card__status.is-play{color:#c9f5cf}
.card__status.is-play::before{background:#7ee08a;box-shadow:0 0 0 0 rgba(126,224,138,.7);animation:live 1.8s ease-out infinite}
.card__status.is-soon{color:var(--muted)}
.card__status.is-soon::before{background:var(--dim)}
@keyframes live{70%{box-shadow:0 0 0 8px rgba(126,224,138,0)}100%{box-shadow:0 0 0 0 rgba(126,224,138,0)}}
.card--game .chips{margin-top:.2rem}
.card__cta{align-self:flex-start;display:inline-flex;align-items:center;gap:.5rem;margin-top:1rem;padding:.62rem 1.1rem;border-radius:.85rem;font-size:.8rem;font-weight:700;letter-spacing:.04em;transition:background .3s,color .3s,transform .4s var(--ease),box-shadow .4s}
.card__cta svg{width:.95rem;height:.95rem;transition:transform .3s}
.card__cta.is-play{background:var(--rose);color:#2a0f1c}
.card__cta.is-play:hover{background:var(--pink);box-shadow:0 12px 26px -12px rgba(255,143,184,.7)}
.card__cta.is-play:hover svg{transform:translate(2px,-2px)}
.card__cta.is-soon{color:var(--dim);background:rgba(255,255,255,.04);border:1px dashed rgba(255,183,207,.3);cursor:not-allowed}
.card__cta.is-soon:hover{animation:shake .35s ease-in-out infinite}
@keyframes shake{0%,100%{transform:translateX(0)}25%{transform:translateX(-3px)}75%{transform:translateX(3px)}}
.itch__tester{position:relative;margin-top:3rem;padding:clamp(1.5rem,3.2vw,2.4rem);border-radius:var(--radius);overflow:hidden;
  background:radial-gradient(90% 120% at 100% 0%,rgba(255,143,184,.16),transparent 60%),linear-gradient(135deg,rgba(255,143,184,.1),rgba(255,143,184,.02)),rgba(22,13,28,.72)}
.itch__tester::before{content:"";position:absolute;inset:0;border-radius:inherit;padding:1px;pointer-events:none;
  background:conic-gradient(from var(--spin-a),rgba(255,143,184,.85),rgba(255,143,184,.06) 28%,rgba(255,224,234,.75) 52%,rgba(255,143,184,.06) 78%,rgba(255,143,184,.85));
  -webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);-webkit-mask-composite:xor;mask-composite:exclude;animation:spinA 9s linear infinite}
.itch__badge{display:inline-flex;align-items:center;gap:.5rem;padding:.38rem .85rem;border-radius:999px;background:var(--rose);color:#2a0f1c;font-size:.66rem;font-weight:800;letter-spacing:.16em;text-transform:uppercase}
.itch__badge b{display:inline-block;font-size:.95rem;animation:bug 2.6s ease-in-out infinite}
@keyframes bug{0%,100%{transform:translateX(0) rotate(0)}25%{transform:translateX(2px) rotate(14deg)}75%{transform:translateX(-2px) rotate(-14deg)}}
.itch__tester h3{margin:1rem 0 .7rem;font-family:var(--font-display);font-weight:400;font-size:clamp(1.9rem,3.6vw,2.7rem);line-height:1.05;max-width:22ch}
.itch__tester p{margin:0 0 1.5rem;max-width:64ch;color:var(--muted);font-weight:300;line-height:1.75}
.itch__tester em{color:var(--pink);font-style:italic}

.about{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:clamp(2rem,6vw,5rem);align-items:center}
.portrait{aspect-ratio:4/5;border-radius:var(--radius);overflow:hidden;border:1px solid var(--line);position:relative;background:linear-gradient(160deg,#2a1631,#160c1b)}
.portrait img{width:100%;height:100%;object-fit:cover}
.portrait__ph{position:absolute;inset:0;display:grid;place-items:center;color:var(--rose)}
.portrait__ph svg{width:62%;height:auto;opacity:.9}
.branch-art{transform-origin:10% 96%;animation:branchSway 7s ease-in-out infinite}
@keyframes branchSway{0%,100%{transform:rotate(-1.2deg)}50%{transform:rotate(1.4deg)}}
.branch-art .draw path{stroke-dasharray:1;stroke-dashoffset:1;transition:stroke-dashoffset 1.6s var(--ease) var(--dl,0s)}
.branch-art .buds circle{opacity:.9;transform:scale(0);transform-box:fill-box;transform-origin:center;transition:transform .7s cubic-bezier(.3,1.7,.5,1) var(--dl,0s)}
.branch-art .rings circle{opacity:0;transform:scale(.4);transform-box:fill-box;transform-origin:center;transition:opacity .8s ease var(--dl,0s),transform .9s var(--ease) var(--dl,0s)}
.reveal.in .branch-art .draw path{stroke-dashoffset:0}
.reveal.in .branch-art .buds circle{transform:scale(1)}
.reveal.in .branch-art .rings circle{opacity:.8;transform:scale(1);animation:ringPulse 3.2s ease-in-out calc(var(--dl,0s) + .9s) infinite}
@keyframes ringPulse{0%,100%{transform:scale(1);opacity:.8}50%{transform:scale(1.28);opacity:.25}}
.portrait__ph small{position:absolute;bottom:1rem;left:1rem;right:1rem;text-align:center;font-size:.66rem;letter-spacing:.14em;text-transform:uppercase;color:var(--dim)}
.prose p{margin:0 0 1rem;color:var(--muted);font-weight:300;font-size:1.02rem}
.about .chips{margin-top:1.4rem}
.about .chips li{color:var(--ink);border-color:var(--line-strong)}
.stats{display:flex;gap:2.4rem;margin-top:2.2rem;flex-wrap:wrap}
.stat b{display:block;font-family:var(--font-display);font-size:2.6rem;font-weight:300;line-height:1;color:var(--pink);font-variant-numeric:tabular-nums}
.stat small{font-size:.68rem;letter-spacing:.16em;text-transform:uppercase;color:var(--dim)}

.section--contact{text-align:center}
.contact{display:flex;flex-direction:column;align-items:center}
.contact .eyebrow{justify-content:center}
.contact .eyebrow::before{display:none}
.contact .lead{text-align:center}
.contact .actions{justify-content:center}
.socials{display:flex;flex-wrap:wrap;justify-content:center;gap:.6rem;list-style:none;margin:2.4rem 0 0;padding:0}
.socials a{display:inline-flex;align-items:center;gap:.5rem;padding:.6rem 1rem;border-radius:999px;border:1px solid var(--line);font-size:.82rem;font-weight:500;transition:border-color .3s,background .3s,transform .4s var(--ease)}
.socials a:hover{border-color:var(--line-strong);background:rgba(255,183,207,.08);transform:translateY(-2px)}
.socials svg{width:1rem;height:1rem;color:var(--pink);transition:transform .5s var(--ease)}
.socials a:hover svg{transform:rotate(-14deg) scale(1.18)}
.footer{position:relative;z-index:3;display:flex;justify-content:space-between;gap:1rem;flex-wrap:wrap;max-width:1180px;margin:0 auto;
  padding:2rem clamp(1.25rem,5vw,3rem) 2.5rem;border-top:1px solid var(--line);font-size:.74rem;color:var(--dim);letter-spacing:.06em}

.lightbox{position:fixed;inset:0;z-index:100;display:grid;place-items:center;padding:2rem;background:rgba(10,6,12,.88);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);animation:fade .3s ease}
.lightbox[hidden]{display:none}
@keyframes fade{from{opacity:0}}
.lightbox figure{margin:0;max-width:min(1100px,92vw);text-align:center}
.lightbox img{max-width:92vw;max-height:78vh;width:auto;height:auto;margin:0 auto;border-radius:1rem;box-shadow:0 40px 100px -30px rgba(255,143,184,.35);animation:pop .5s var(--ease)}
@keyframes pop{from{transform:scale(.94);opacity:0}}
.lightbox figcaption{margin-top:1rem;color:var(--muted);font-size:.9rem;font-family:var(--font-display);font-size:1.3rem}
.lightbox__close{position:absolute;top:1.2rem;right:1.4rem;width:44px;height:44px;border-radius:50%;border:1px solid var(--line-strong);font-size:1.6rem;line-height:1;display:grid;place-items:center;transition:background .3s}
.lightbox__close:hover{background:rgba(255,183,207,.15)}
.lightbox.is-tall{display:block;overflow-y:auto;padding:5rem 1rem 3rem;-webkit-overflow-scrolling:touch}
.lightbox.is-tall figure{max-width:min(880px,92vw);margin:0 auto}
.lightbox.is-tall img{max-height:none;width:100%}
.lightbox.is-tall .lightbox__close{position:fixed}

.reveal{opacity:0;transform:translateY(28px);transition:opacity .9s ease var(--d,0s),transform 1.1s var(--ease) var(--d,0s)}
.reveal.in{opacity:1;transform:none}

@media (max-width:820px){
  .nav__toggle{display:block}
  .nav__links{position:fixed;inset:0;z-index:-1;display:flex;flex-direction:column;justify-content:center;align-items:flex-start;gap:1.5rem;
    padding:6rem clamp(1.25rem,6vw,3rem);background:rgba(18,11,22,.94);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);
    font-family:var(--font-display);font-size:2.3rem;font-weight:300;letter-spacing:0;opacity:0;pointer-events:none;transform:translateY(-10px);transition:opacity .4s,transform .5s var(--ease)}
  .nav.is-open .nav__links{opacity:1;pointer-events:auto;transform:none}
  .nav__links a::after{display:none}
  .nav__links .nav__cta{font-family:var(--font-body);font-size:.9rem;margin-top:1rem}
  .hero{height:440vh}
  .hero__layer{justify-content:flex-end;padding-bottom:5.5rem;max-width:100%}
  .hero__layer--alt{padding-bottom:5.5rem}
  .hero__stage::after{background:linear-gradient(180deg,rgba(14,8,18,0) 38%,rgba(14,8,18,.6) 72%,rgba(14,8,18,.85) 100%)}
  .hero__cue{display:none}
  .bars i{height:calc(var(--bars) * 5vh)}
  .cursor,.chapters{display:none}
  .nav__side{margin-left:auto;margin-right:.35rem}
 .nav__sound{width:36px;height:36px}
  .display--xl{font-size:clamp(2.6rem,12vw,4.4rem)}
  .about{grid-template-columns:1fr}
  .about__media{max-width:320px}
  .section__head{align-items:flex-start;flex-direction:column;gap:1rem}
  .stats{gap:1.6rem}
  .itch__profile{margin-top:-2.6rem}
  .itch__follow{width:100%;justify-content:center}
}

@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  .grain{animation-duration:3.2s;animation-timing-function:steps(4)}
  .curtain{animation-delay:2.2s}
  .shoji--l,.shoji--r{animation-duration:1.05s;animation-delay:1.1s}
  .shoji::after{animation-duration:1.05s;animation-delay:1.1s}
  .curtain__brand{animation-duration:1s,.7s;animation-delay:.1s,1.05s}
  .reveal .display .ch{transform:perspective(520px) translate3d(0,calc((1 - var(--k)) * .35em),0) rotateX(calc((1 - var(--k)) * -40deg))}
  .card{transform:perspective(1200px) translateY(40px) rotateX(8deg) scale(.98)}
  .hero__layer{--lv-shift:16px}
  .reveal,.card,.reveal .display .w{transition-duration:.7s}
  #heroTitle .w{animation-duration:.9s;animation-delay:calc(var(--i)*.06s + 1.2s)}
  .hero__layer[data-stage="0"] .eyebrow{animation-duration:1.1s;animation-delay:1.1s}
  .hero__layer[data-stage="0"] .lead,.hero__layer[data-stage="0"] .actions{animation-duration:.8s;animation-delay:1.7s}
}

html.snap{scroll-behavior:auto}
.snap .curtain{display:none}
.snap #heroTitle .w,.snap .hero__layer[data-stage="0"] .eyebrow,.snap .hero__layer[data-stage="0"] .lead,.snap .hero__layer[data-stage="0"] .actions{animation:none;opacity:1;transform:none;filter:none}
.snap *,.snap *::before,.snap *::after{transition-duration:0s!important;transition-delay:0s!important}

.skip-link{position:fixed;top:12px;left:12px;z-index:100;padding:12px 20px;border-radius:30px;background:var(--pink);color:var(--bg);transform:translateY(-150%)}
.skip-link:focus{transform:none}
.nav__links a[aria-current="location"]{color:var(--pink);opacity:1}
.nav__links a[aria-current="location"]::after{right:0}
.section{scroll-margin-top:100px}
.card__body{background:linear-gradient(145deg,rgba(255,183,207,.045),transparent)}
.card__desc{line-height:1.8}
.card__link,.more{min-height:44px;display:inline-flex;align-items:center}
.empty{grid-column:1/-1;padding:2.5rem;border:1px dashed var(--line-strong);border-radius:var(--radius);color:var(--muted);background:var(--glass)}
#behanceGrid:has(.card:only-child){grid-template-columns:minmax(0,1fr)}
#behanceGrid>.card:only-child{display:grid;grid-template-columns:1.2fr 1fr}
#behanceGrid>.card:only-child .card__body{display:flex;flex-direction:column;justify-content:center;padding:clamp(1.5rem,4vw,3.5rem)}
#behanceGrid>.card:only-child .card__title{font-size:clamp(1.4rem,2.2vw,2rem)}
.footer__top{color:var(--pink);padding:12px 0}
@media(max-width:820px){
 .nav__links{visibility:hidden;overflow-y:auto}
 .nav.is-open .nav__links{visibility:visible}
 #behanceGrid>.card:only-child{display:block}
 .nav__sound{min-width:44px;min-height:44px}
}

@media(max-width:480px){
 .hero__layer{padding-bottom:5rem}
 .hero__layer .lead{font-size:.95rem;line-height:1.65}
 .actions{gap:.65rem}
 .actions .btn{padding:.85rem 1.1rem}
 .card__top{flex-wrap:wrap;gap:.5rem}
 .card__foot{flex-wrap:wrap;gap:1rem}
 .display{overflow-wrap:break-word}
}


[hidden]{display:none!important}
.nav__side{display:flex;align-items:center;gap:.5rem}
.nav__lang{height:36px;min-width:44px;padding:0 .7rem;border-radius:999px;border:1px solid var(--line);font-size:.7rem;font-weight:700;letter-spacing:.16em;color:var(--muted);transition:border-color .3s,color .3s,background .3s}
.nav__lang:hover{border-color:var(--line-strong);color:var(--ink);background:rgba(255,183,207,.08)}
.revisit .curtain{display:none}
.revisit #heroTitle .w{animation-delay:calc(var(--i)*.06s + .25s)}
.revisit .hero__layer[data-stage="0"] .eyebrow{animation-delay:.1s}
.revisit .hero__layer[data-stage="0"] .lead,.revisit .hero__layer[data-stage="0"] .actions{animation-delay:.7s}
.revisit .display i{animation-delay:1.2s}
.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}

.btn--ghost{border-style:dashed;color:var(--muted)}
.btn--ghost:hover,.btn--ghost[aria-pressed="true"]{color:var(--ink)}

.tools{position:absolute;right:clamp(1.25rem,4vw,3.4rem);bottom:calc(7.5vh + 1.2rem);z-index:2;display:flex;gap:.5rem;transition:opacity .5s,visibility .5s}
.tools.is-hidden{opacity:0;visibility:hidden}
.tools button{display:inline-flex;align-items:center;gap:.45rem;height:38px;padding:0 .85rem;border-radius:999px;border:1px solid var(--line);background:rgba(14,8,18,.55);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);color:var(--muted);font-size:.66rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase;transition:color .3s,border-color .3s,background .3s}
.tools button svg{width:1rem;height:1rem;flex:none}
.tools button:hover{color:var(--ink);border-color:var(--line-strong);background:rgba(255,183,207,.1)}
.tools button[aria-pressed="true"]{color:var(--pink);border-color:var(--line-strong);background:rgba(255,183,207,.14)}
.tools .tools__icon{width:38px;padding:0;justify-content:center}

.tour{position:fixed;left:50%;bottom:calc(7.5vh + 1.1rem);z-index:43;transform:translateX(-50%);width:min(760px,calc(100% - 2rem));padding:.85rem 1rem .85rem 1.1rem;border-radius:1rem;background:rgba(10,5,12,.8);border:1px solid var(--line-strong);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);display:flex;flex-wrap:wrap;align-items:center;gap:.5rem 1rem;animation:fade .3s ease}
.tour__kicker{font-size:.6rem;font-weight:800;letter-spacing:.24em;text-transform:uppercase;color:var(--rose);padding:.3rem .6rem;border:1px solid var(--line-strong);border-radius:999px;flex:none}
.tour__text{margin:0;flex:1 1 280px;font-family:var(--font-display);font-size:clamp(1.1rem,1.6vw,1.45rem);line-height:1.25}
.tour__stop{flex:none;font-size:.68rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--muted);padding:.5rem .8rem;border:1px solid var(--line);border-radius:999px;transition:color .3s,border-color .3s}
.tour__stop:hover{color:var(--ink);border-color:var(--line-strong)}
.touring .hero__cue,.touring .tools{opacity:0;visibility:hidden}

.bts{position:fixed;right:clamp(3.2rem,5vw,4.8rem);top:50%;z-index:44;width:min(360px,calc(100% - 2rem));max-height:min(78vh,640px);transform:translateY(-50%);overflow:auto;scrollbar-width:none;overscroll-behavior:contain;padding:1.1rem 1.2rem 1.2rem;border-radius:1rem;background:rgba(12,6,14,.86);border:1px solid var(--line-strong);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);animation:fade .3s ease}
.bts::-webkit-scrollbar{display:none}
.bts header{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-bottom:.8rem}
.bts h2{margin:0;font-family:var(--font-display);font-weight:400;font-size:1.5rem}
.bts__close,.keys__close{width:36px;height:36px;border-radius:50%;border:1px solid var(--line);font-size:1.3rem;line-height:1;display:grid;place-items:center;transition:background .3s}
.bts__close:hover,.keys__close:hover{background:rgba(255,183,207,.15)}
.bts__notes{list-style:none;margin:0;padding:0;display:grid;gap:.4rem}
.bts__notes li{display:flex;gap:.7rem;align-items:flex-start;padding:.5rem .65rem;border-radius:.6rem;border:1px solid transparent;color:var(--muted);font-size:.8rem;line-height:1.5;transition:background .3s,border-color .3s,color .3s}
.bts__notes b{flex:none;font-family:var(--font-display);font-weight:400;font-size:1rem;color:var(--dim);line-height:1.2}
.bts__notes li.is-now{background:rgba(255,183,207,.08);border-color:var(--line);color:var(--ink)}
.bts__notes li.is-now b{color:var(--pink)}
.bts__stats{display:grid;grid-template-columns:repeat(3,1fr);gap:.6rem;margin:1rem 0 0;padding-top:.9rem;border-top:1px solid var(--line)}
.bts__stats div{min-width:0}
.bts__stats b{display:block;font-family:var(--font-display);font-weight:400;font-size:1.25rem;color:var(--pink);font-variant-numeric:tabular-nums;line-height:1.1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.bts__stats small{font-size:.6rem;letter-spacing:.12em;text-transform:uppercase;color:var(--dim)}

.keys{position:fixed;inset:0;z-index:100;display:grid;place-items:center;padding:1.5rem;background:rgba(10,6,12,.82);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);animation:fade .25s ease}
.keys__card{position:relative;width:min(440px,100%);padding:1.6rem 1.7rem 1.4rem;border-radius:1rem;background:rgba(22,13,28,.94);border:1px solid var(--line-strong);animation:pop .4s var(--ease)}
.keys h2{margin:0 0 1rem;font-family:var(--font-display);font-weight:400;font-size:1.6rem}
.keys dl{margin:0;display:grid;gap:.5rem}
.keys dl>div{display:flex;align-items:center;gap:1rem}
.keys dt{flex:none;min-width:5.4rem}
.keys dd{margin:0;color:var(--muted);font-size:.9rem}
.keys__close{position:absolute;top:.8rem;right:.8rem}
kbd{display:inline-block;padding:.25rem .5rem;border-radius:.4rem;border:1px solid var(--line-strong);border-bottom-width:2px;background:rgba(255,255,255,.04);font-family:var(--font-body);font-size:.72rem;font-weight:700;letter-spacing:.06em;color:var(--ink)}

.toast{position:fixed;left:50%;top:5.2rem;z-index:120;transform:translate(-50%,-12px);max-width:calc(100% - 2rem);padding:.7rem 1.1rem;border-radius:999px;background:rgba(22,13,28,.94);border:1px solid var(--line-strong);color:var(--ink);font-size:.86rem;text-align:center;opacity:0;visibility:hidden;pointer-events:none;transition:opacity .35s,transform .45s var(--ease),visibility .35s}
.toast.is-on{opacity:1;visibility:visible;transform:translate(-50%,0)}

.plant{display:flex;flex-wrap:wrap;align-items:center;gap:.7rem;margin-top:2rem}
.plant__hint{flex-basis:100%;color:var(--muted);font-size:.8rem;letter-spacing:.04em;text-shadow:0 2px 12px rgba(14,8,18,.9)}
.plant__reset{font-size:.8rem;color:var(--pink);border-bottom:1px solid transparent;transition:border-color .3s}
.plant__reset:hover{border-color:var(--pink)}

.card__ctas{display:flex;flex-wrap:wrap;gap:.6rem;margin-top:1rem}
.card__ctas .card__cta{margin-top:0}
.card__cta--embed{color:var(--pink);background:rgba(255,183,207,.08);border:1px solid var(--line-strong)}
.card__cta--embed:hover{background:rgba(255,183,207,.16)}
.card__cta--embed[aria-expanded="true"]{color:var(--muted);background:transparent;border-color:var(--line)}
.card__embed{position:relative;z-index:1;background:#1d1224}

.skilltree{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem 1.4rem;margin-top:1.6rem}
.skilltree__branch h3{margin:0 0 .4rem;font-family:var(--font-display);font-weight:400;font-size:1.15rem;color:var(--rose);letter-spacing:.02em}
.skilltree ul{list-style:none;margin:0;padding:.2rem 0 .2rem .95rem;border-left:1px solid var(--line-strong)}
.skill{position:relative;display:flex;align-items:center;gap:.55rem;padding:.3rem 0;color:var(--ink);font-size:.86rem;transition:color .3s}
.skill::before{content:"";position:absolute;left:-.95rem;top:50%;width:.6rem;height:1px;background:var(--line-strong)}
.skill__bloom{display:grid;place-items:center;flex:none;width:1.1rem;height:1.1rem;color:var(--pink);transition:transform .5s var(--ease)}
.skill[data-level="2"] .skill__bloom{width:1.4rem;height:1.4rem}
.skill[data-level="3"] .skill__bloom{width:1.75rem;height:1.75rem;color:var(--rose)}
.skill__bloom svg{width:100%;height:100%}
.skill__proof{margin-left:auto;padding-left:.6rem;color:var(--dim);font-size:.68rem;letter-spacing:.04em;text-align:right;opacity:.85;transition:color .3s}
.skill:hover{color:var(--pink)}
.skill:hover .skill__bloom{transform:rotate(36deg) scale(1.18)}
.skill:hover .skill__proof{color:var(--pink)}
.skilltree__legend{grid-column:1/-1;margin:.2rem 0 0;color:var(--dim);font-size:.7rem;letter-spacing:.08em;text-transform:uppercase}

@media (max-width:820px){
  .tools{top:4.4rem;right:1rem;bottom:auto}
  .tools button{width:38px;padding:0;justify-content:center}
  .tools button span{display:none}
  .tour{bottom:calc(5vh + .8rem)}
  .bts{top:auto;bottom:0;right:0;left:0;width:100%;max-height:60vh;transform:none;border-radius:1rem 1rem 0 0}
  .skilltree{grid-template-columns:1fr}
}

.proto{position:fixed;inset:0;z-index:100;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.8rem;padding:1rem;background:rgba(10,6,12,.9);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);animation:fade .3s ease}
.proto__bar{display:flex;align-items:center;justify-content:space-between;gap:1rem;width:min(560px,100%)}
.proto__bar h2{margin:0;font-family:var(--font-display);font-weight:400;font-size:1.4rem}
.proto__actions{display:flex;align-items:center;gap:.6rem}
.proto__actions a{font-size:.7rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--muted);padding:.5rem .8rem;border:1px solid var(--line);border-radius:999px;transition:color .3s,border-color .3s}
.proto__actions a:hover{color:var(--ink);border-color:var(--line-strong)}
.proto__close{width:40px;height:40px;border-radius:50%;border:1px solid var(--line-strong);font-size:1.5rem;line-height:1;display:grid;place-items:center;transition:background .3s}
.proto__close:hover{background:rgba(255,183,207,.15)}
.proto__phone{position:relative;width:min(390px,100%);height:min(844px,calc(100vh - 11rem));border-radius:44px;background:#0c0710;padding:10px;box-shadow:0 0 0 1px rgba(255,183,207,.25),0 50px 90px -30px rgba(0,0,0,.8),0 0 60px -10px rgba(255,143,184,.25);animation:pop .45s var(--ease)}
.proto__notch{position:absolute;top:18px;left:50%;transform:translateX(-50%);width:110px;height:30px;border-radius:18px;background:#0c0710;z-index:3;pointer-events:none}
.proto__phone iframe{display:block;width:100%;height:100%;border:0;border-radius:36px;background:#fff}
.proto__loading{position:absolute;inset:10px;display:grid;place-items:center;border-radius:36px;background:#150b12;color:var(--muted);font-size:.68rem;letter-spacing:.22em;text-transform:uppercase;pointer-events:none}
.proto__loading::before{content:"";position:absolute;top:calc(50% - 44px);left:calc(50% - 14px);width:28px;height:28px;border-radius:50%;border:2px solid var(--line-strong);border-top-color:var(--pink);animation:spin 1s linear infinite}
.proto__strip{display:flex;align-items:center;gap:.8rem}
.proto__strip>button{width:36px;height:36px;border-radius:50%;border:1px solid var(--line);color:var(--muted);display:grid;place-items:center;font-size:1.3rem;line-height:1;transition:color .3s,border-color .3s}
.proto__strip>button:hover{color:var(--ink);border-color:var(--line-strong)}
.proto__dots{display:flex;gap:.45rem}
.proto__dots button{width:10px;height:10px;padding:0;border-radius:50%;border:1px solid rgba(255,183,207,.55);background:transparent;font-size:0;transition:transform .3s,background .3s}
.proto__dots button.is-on{background:var(--rose);border-color:var(--rose);transform:scale(1.25)}
.proto__hint{margin:0;color:var(--muted);font-size:.8rem;text-align:center;max-width:46ch}
.card__links{display:flex;align-items:center;gap:.9rem;flex-wrap:wrap;justify-content:flex-end}
.card__proto{display:inline-flex;align-items:center;gap:.4rem;padding:.5rem .85rem;border-radius:.75rem;background:var(--rose);color:#2a0f1c;font-size:.76rem;font-weight:700;letter-spacing:.04em;transition:background .3s,box-shadow .4s}
.card__proto:hover{background:var(--pink);box-shadow:0 12px 26px -12px rgba(255,143,184,.7)}
.card__proto svg{width:.9rem;height:.9rem}
@media (max-width:820px){
  .proto{padding:0;gap:0;justify-content:flex-start}
  .proto__bar{width:100%;padding:.8rem 1rem}
  .proto__phone{width:100%;height:auto;flex:1;border-radius:0;padding:0;box-shadow:none;animation:none}
  .proto__notch{display:none}
  .proto__phone iframe,.proto__loading{border-radius:0;inset:0}
  .proto__strip{padding:.6rem 1rem;width:100%;justify-content:center}
  .proto__hint{padding:0 1rem .8rem}
}

.section--devlog .lead{margin-bottom:2rem}
.devlog{list-style:none;margin:0;padding:0;display:grid;gap:1.1rem}
.post{position:relative;display:grid;grid-template-columns:9.5rem minmax(0,1fr);gap:1.4rem;padding:1.4rem 1.6rem;border:1px solid var(--line);border-radius:var(--radius);background:var(--glass);scroll-margin-top:110px;transition:border-color .3s,background .3s}
.post:hover,.post.is-open{border-color:var(--line-strong);background:rgba(255,183,207,.05)}
.post__date{font-size:.7rem;letter-spacing:.14em;text-transform:uppercase;color:var(--dim);padding-top:.5rem;font-variant-numeric:tabular-nums}
.post__body{min-width:0;border-left:1px solid var(--line);padding-left:1.4rem}
.post__meta{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem;margin-bottom:.6rem}
.post__meta .chips{margin-left:.2rem}
.post__game{font-size:.62rem;font-weight:700;letter-spacing:.18em;text-transform:uppercase;color:var(--pink);padding:.3rem .65rem;border-radius:999px;background:rgba(255,143,184,.12)}
.post__draft{font-size:.6rem;font-weight:800;letter-spacing:.16em;text-transform:uppercase;color:#2a0f1c;background:var(--gold);padding:.3rem .6rem;border-radius:999px}
.post__title{margin:0;font-family:var(--font-display);font-weight:400;font-size:clamp(1.4rem,2.2vw,1.8rem);line-height:1.1}
.post__open{text-align:left;padding:0;font:inherit;color:inherit;transition:color .3s}
.post__open:hover{color:var(--pink)}
.post__summary{margin:.55rem 0 0;color:var(--muted);font-weight:300;line-height:1.7;max-width:64ch}
.post__full{margin-top:1rem;max-width:64ch;animation:fadeUp .5s var(--ease)}
.post__full p{margin:0 0 .9rem;color:var(--muted);line-height:1.8}
.post__full strong{color:var(--ink);font-weight:600}
.post__full em{color:var(--ink)}
.post__full code{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.85em;padding:.1em .4em;border-radius:.35rem;background:rgba(255,255,255,.06);color:var(--ink)}
.post__full a:not(.card__link){color:var(--pink);border-bottom:1px solid rgba(255,183,207,.35);transition:border-color .3s}
.post__full a:not(.card__link):hover{border-color:var(--pink)}
.post__figure{margin:0 0 1rem;border-radius:.9rem;overflow:hidden;border:1px solid var(--line)}
.post__figure img{width:100%;height:auto}
.post__links{display:flex;flex-wrap:wrap;align-items:center;gap:1.2rem;margin-top:.3rem}
.post__perma{display:inline-flex;align-items:center;gap:.4rem;font-size:.76rem;font-weight:600;color:var(--muted);transition:color .3s}
.post__perma:hover{color:var(--ink)}
.post__perma svg{width:.9rem;height:.9rem}
.post__toggle{margin-top:1rem;font-size:.72rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--pink);padding:.5rem .95rem;border:1px solid var(--line-strong);border-radius:999px;transition:background .3s}
.post__toggle:hover{background:rgba(255,183,207,.12)}
.devlog__more{margin-top:1.6rem}
@media (max-width:820px){
  .post{grid-template-columns:1fr;gap:.5rem;padding:1.1rem 1.2rem}
  .post__body{border-left:0;padding-left:0}
  .post__date{padding-top:0}
}

.section--freebies .lead{margin-bottom:2rem}
.freebie__license{margin:.2rem 0 0;color:var(--dim);font-size:.74rem;line-height:1.6}
.freebie__license b{color:var(--muted);font-weight:600}
.freebie__actions{margin-top:auto;padding-top:1rem}
.freebie__pin{color:var(--pink);background:rgba(255,183,207,.08);border:1px solid var(--line-strong)}
.freebie__pin:hover{background:rgba(255,183,207,.16)}
.card--freebie .card__body{gap:.7rem}

.card--freebie.is-linked{border-color:var(--rose);box-shadow:0 0 0 1px var(--rose),0 30px 60px -28px rgba(255,143,184,.5)}

.gamebar{display:flex;flex-wrap:wrap;gap:.6rem;margin:0 0 1.4rem}
.gamechip{display:inline-flex;align-items:center;gap:.55rem;padding:.35rem .85rem .35rem .4rem;border-radius:999px;border:1px solid var(--line);background:var(--glass);color:var(--muted);font-size:.8rem;font-weight:600;transition:border-color .3s,color .3s,background .3s,transform .4s var(--ease)}
.gamechip img{width:30px;height:30px;border-radius:50%;object-fit:cover;background:#1d1224}
.gamechip small{font-size:.64rem;padding:.15rem .45rem;border-radius:999px;background:rgba(255,183,207,.12);color:var(--pink);font-variant-numeric:tabular-nums}
.gamechip:hover{border-color:var(--line-strong);color:var(--ink);transform:translateY(-2px)}
.gamechip.is-on{border-color:var(--rose);color:var(--ink);background:rgba(255,143,184,.12)}
.post{animation:fadeUp .5s var(--ease) both;animation-delay:var(--d,0s)}
.post--empty{grid-template-columns:1fr}
.post--empty p{margin:0;color:var(--muted);font-style:italic}
.post__src{font-size:.6rem;font-weight:700;letter-spacing:.16em;text-transform:uppercase;color:var(--muted);padding:.3rem .6rem;border-radius:999px;border:1px solid var(--line)}
.post__full img{max-width:100%;height:auto;border-radius:.8rem}
.post__full h1,.post__full h2,.post__full h3,.post__full h4{font-family:var(--font-display);font-weight:400;font-size:1.3rem;margin:1.2rem 0 .5rem;color:var(--ink)}
.post__full ul,.post__full ol{color:var(--muted);line-height:1.8;padding-left:1.3rem;margin:0 0 .9rem}
.post__full blockquote{margin:0 0 .9rem;padding:.2rem 0 .2rem 1rem;border-left:2px solid var(--line-strong);color:var(--ink);font-style:italic}
@media (max-width:820px){.post--empty{grid-template-columns:1fr}}
