:root{--ink:#0c0b0d;--paper:#e9e7e2;--pink:#ed2b69;--line:rgba(233,231,226,.22);--muted:#aaa6a8;--mono:'DM Mono',monospace;--sans:'Manrope',sans-serif}
@media (pointer:fine){html.has-dagger-cursor,html.has-dagger-cursor body,html.has-dagger-cursor body *{cursor:none!important}.dagger-cursor{position:fixed;z-index:10000;left:0;top:0;width:28px;height:49px;pointer-events:none;background:url("cursor-dagger.svg?v=4") 0 0/100% 100% no-repeat;transform:translate3d(calc(var(--cursor-x,-60px) - 14px),calc(var(--cursor-y,-60px) - 24.5px),0);transform-origin:50% 50%;will-change:transform,filter;filter:grayscale(1) brightness(2.5);opacity:0}.dagger-cursor.is-visible{opacity:1}.dagger-cursor.is-clicking{filter:brightness(0) saturate(100%) invert(31%) sepia(97%) saturate(3000%) hue-rotate(324deg) brightness(96%) contrast(94%);animation:dagger-cursor-click .28s cubic-bezier(.16,.9,.25,1) both}@keyframes dagger-cursor-click{0%{transform:translate3d(calc(var(--cursor-x) - 14px),calc(var(--cursor-y) - 24.5px),0) rotate(0) scale(1)}48%{transform:translate3d(calc(var(--cursor-x) - 14px),calc(var(--cursor-y) - 24.5px),0) rotate(145deg) scale(1.18)}100%{transform:translate3d(calc(var(--cursor-x) - 14px),calc(var(--cursor-y) - 24.5px),0) rotate(360deg) scale(1)}}}
@media (pointer:fine){html:not(.has-dagger-cursor) .dagger-cursor{display:none}}
@media (pointer:fine) and (prefers-reduced-motion:reduce){.dagger-cursor.is-clicking{animation:none;filter:brightness(0) saturate(100%) invert(31%) sepia(97%) saturate(3000%) hue-rotate(324deg) brightness(96%) contrast(94%)}}
@media (pointer:fine){.global-click-strike{position:fixed;z-index:9999;inset:0;pointer-events:none;overflow:hidden}.global-click-strike:before{content:"";position:absolute;left:var(--strike-x,50%);top:var(--strike-y,50%);width:clamp(260px,38vmax,680px);height:2px;background:linear-gradient(90deg,transparent 0,rgba(237,43,105,.08) 14%,var(--pink) 34%,#fff 48%,#fff 52%,var(--pink) 66%,rgba(237,43,105,.08) 86%,transparent 100%);filter:drop-shadow(0 0 4px #fff) drop-shadow(0 0 12px var(--pink));opacity:0;transform:translate(-50%,-50%) rotate(var(--strike-angle,0deg)) scaleX(0) scaleY(.25);transform-origin:50% 50%}.global-click-strike.is-active:before{animation:global-click-strike .68s cubic-bezier(.1,.86,.16,1) both}@keyframes global-click-strike{0%{opacity:0;transform:translate(-50%,-50%) rotate(var(--strike-angle)) scaleX(0) scaleY(.2)}10%{opacity:1;transform:translate(-50%,-50%) rotate(var(--strike-angle)) scaleX(.025) scaleY(2.8)}42%{opacity:1;transform:translate(-50%,-50%) rotate(var(--strike-angle)) scaleX(1.04) scaleY(1.7)}68%{opacity:.72;transform:translate(-50%,-50%) rotate(var(--strike-angle)) scaleX(.74) scaleY(.72)}100%{opacity:0;transform:translate(-50%,-50%) rotate(var(--strike-angle)) scaleX(.08) scaleY(.12)}}}
@media (pointer:fine) and (prefers-reduced-motion:reduce){.global-click-strike{display:none}}
@media (pointer:fine){.global-click-strike:before{width:clamp(416px,60.8vmax,1088px)}}

/* The hero uses the exact same click-strike language as the rest of the site. */
.hero-character-stage.ribbon-h{--hero-strike-angle:0deg}
.hero-character-stage.ribbon-v{--hero-strike-angle:90deg}
.hero-character-stage.ribbon-ne{--hero-strike-angle:-28deg}
.hero-character-stage.ribbon-nw{--hero-strike-angle:28deg}
.hero-character-stage.ribbon-h .hero-transition-fx:before,
.hero-character-stage.ribbon-v .hero-transition-fx:before,
.hero-character-stage.ribbon-ne .hero-transition-fx:before,
.hero-character-stage.ribbon-nw .hero-transition-fx:before{left:var(--hero-impact-x);top:var(--hero-impact-y);width:clamp(416px,60.8vmax,1088px);height:2px;background:linear-gradient(90deg,transparent 0,rgba(237,43,105,.08) 14%,var(--pink) 34%,#fff 48%,#fff 52%,var(--pink) 66%,rgba(237,43,105,.08) 86%,transparent 100%);filter:drop-shadow(0 0 4px #fff) drop-shadow(0 0 12px var(--pink));transform:translate(-50%,-50%) rotate(var(--hero-strike-angle)) scaleX(0) scaleY(.25);transform-origin:50% 50%}
.hero-character-stage.is-transitioning.ribbon-h .hero-transition-fx:before,
.hero-character-stage.is-transitioning.ribbon-v .hero-transition-fx:before,
.hero-character-stage.is-transitioning.ribbon-ne .hero-transition-fx:before,
.hero-character-stage.is-transitioning.ribbon-nw .hero-transition-fx:before{animation:hero-unified-click-strike .68s cubic-bezier(.1,.86,.16,1) both}

/* Lightweight desktop easter egg: roaming pink slimes and score HUD. */
.slime-hud{position:fixed;z-index:8998;right:1.4rem;bottom:1.35rem;display:flex;align-items:center;gap:.75rem;padding:.55rem .7rem;border:1px solid rgba(237,43,105,.45);background:rgba(12,11,13,.78);backdrop-filter:blur(8px);font:500 .58rem var(--mono);letter-spacing:.12em;color:var(--muted);pointer-events:none}.slime-hud strong{min-width:3.2rem;color:var(--pink);font-size:.78rem;letter-spacing:.08em;text-align:right}.slime-hud button{pointer-events:auto;padding:.3rem .42rem;border:0;border-left:1px solid rgba(237,43,105,.4);background:none;color:var(--paper);font:500 .52rem var(--mono);letter-spacing:.08em}.slime-hud button:hover,.slime-hud button:focus-visible{color:var(--pink);outline:0}.slime-hud.is-paused{border-color:rgba(233,231,226,.2)}.slime-hud.has-scored strong{animation:slime-score-pop .34s cubic-bezier(.16,.9,.25,1)}
.site-slime{position:fixed;z-index:8999;left:0;top:0;width:54px;height:48px;padding:0;border:0;background:none;pointer-events:auto;will-change:transform}.slime-creature{position:absolute;left:7px;bottom:5px;width:40px;height:29px;background:var(--pink);clip-path:polygon(20% 0,75% 0,75% 7%,88% 7%,88% 17%,95% 17%,95% 31%,100% 31%,100% 79%,90% 79%,90% 93%,75% 93%,75% 100%,20% 100%,20% 93%,8% 93%,8% 82%,0 82%,0 34%,5% 34%,5% 20%,12% 20%,12% 7%,20% 7%);filter:drop-shadow(4px 5px 0 rgba(0,0,0,.38));animation:slime-arrive .36s steps(4,end),slime-pixel-idle .82s steps(2,end) .36s infinite;transform-origin:50% 100%}.slime-creature:before,.slime-creature:after{content:"";position:absolute;top:11px;width:5px;height:6px;background:var(--ink)}.slime-creature:before{left:10px}.slime-creature:after{right:10px}.slime-creature i{position:absolute;bottom:0;width:11px;height:4px;background:var(--pink)}.slime-creature i:first-child{left:-3px}.slime-creature i:nth-child(2){right:-3px}.slime-creature b{position:absolute;left:17px;top:21px;width:6px;height:3px;background:var(--ink)}.site-slime.is-defeated .slime-creature{animation:slime-defeat .38s steps(4,end) both}.site-slime.is-escaping .slime-creature{animation:slime-escape .45s steps(5,end) both}.site-slime em{position:absolute;z-index:-1;left:25px;top:25px;width:6px;height:6px;border-radius:0;background:var(--pink);animation:slime-drop .46s steps(5,end) both}
.slime-skin-horned .slime-creature{left:5px;width:44px;height:33px;clip-path:polygon(4% 0,31% 20%,69% 20%,96% 0,88% 31%,97% 31%,97% 44%,100% 44%,100% 84%,88% 84%,88% 100%,12% 100%,12% 92%,0 92%,0 42%,4% 42%)}.slime-skin-horned .slime-creature:before,.slime-skin-horned .slime-creature:after{top:16px}.slime-skin-horned .slime-creature:before{left:12px}.slime-skin-horned .slime-creature:after{right:12px}.slime-skin-horned .slime-creature b{left:19px;top:25px}
.slime-skin-cube .slime-creature{left:6px;bottom:4px;width:42px;height:34px;clip-path:polygon(12% 0,88% 0,88% 8%,100% 8%,100% 92%,88% 92%,88% 100%,12% 100%,12% 92%,0 92%,0 8%,12% 8%)}.slime-skin-cube .slime-creature:before,.slime-skin-cube .slime-creature:after{top:11px}.slime-skin-cube .slime-creature:before{left:11px}.slime-skin-cube .slime-creature:after{right:11px}.slime-skin-cube .slime-creature b{left:18px;top:24px}
.slime-skin-bug:before,.slime-skin-bug:after{content:"";position:absolute;z-index:2;top:2px;width:3px;height:13px;background:var(--pink);transform-origin:bottom}.slime-skin-bug:before{left:17px;transform:rotate(-27deg)}.slime-skin-bug:after{right:17px;transform:rotate(27deg)}.slime-skin-bug .slime-creature{left:2px;bottom:6px;width:50px;height:28px;clip-path:polygon(19% 12%,35% 12%,35% 4%,65% 4%,65% 12%,81% 12%,81% 20%,92% 20%,92% 32%,100% 32%,100% 76%,92% 76%,92% 88%,78% 88%,78% 96%,22% 96%,22% 88%,8% 88%,8% 76%,0 76%,0 32%,8% 32%,8% 20%,19% 20%)}.slime-skin-bug .slime-creature:before,.slime-skin-bug .slime-creature:after{top:10px}.slime-skin-bug .slime-creature:before{left:14px}.slime-skin-bug .slime-creature:after{right:14px}.slime-skin-bug .slime-creature b{left:22px;top:20px}.slime-skin-bug .slime-creature i{width:7px;height:5px}.slime-skin-bug .slime-creature i:first-child{left:5px;box-shadow:14px 0 var(--pink)}.slime-skin-bug .slime-creature i:nth-child(2){right:5px;box-shadow:-14px 0 var(--pink)}
@keyframes slime-arrive{0%{opacity:0;transform:translateY(20px) scale(.25,0)}50%{opacity:1;transform:translateY(0) scale(1.15,.72)}75%{transform:scale(.9,1.1)}100%{transform:none}}@keyframes slime-pixel-idle{0%,100%{transform:translateY(0) scale(1)}50%{transform:translateY(2px) scale(1.04,.94)}}@keyframes slime-defeat{0%{opacity:1;transform:scale(1)}50%{opacity:1;transform:scale(1.45,.35)}100%{opacity:0;transform:scale(.15,1.4)}}@keyframes slime-escape{to{opacity:0;transform:translateY(-64px) scale(.5)}}@keyframes slime-drop{to{opacity:0;transform:translate(var(--drop-x),var(--drop-y)) scale(.15)}}@keyframes slime-score-pop{50%{color:#fff;transform:scale(1.25)}}
@media (prefers-reduced-motion:reduce){.slime-hud,.site-slime{display:none}}
.slime-hunt-paused .site-slime,.slime-hunt-paused .slime-boss:not(.is-defeated){display:none}
.slime-hud.is-locked{border-color:var(--pink);pointer-events:auto}.slime-hud.is-locked>span,.slime-hud.is-locked>strong,.slime-hud.is-locked>.slime-earned-badge{display:none}.slime-hud.is-locked button{min-height:38px;padding:0 .75rem;border-left:0;color:var(--pink);font-size:.56rem}

/* Secret high-score boss. */
.slime-hud.boss-active{border-color:var(--pink);box-shadow:0 0 22px rgba(237,43,105,.18)}.slime-hud.boss-active span:after{content:" / BOSS ACTIVE";color:var(--pink)}.slime-hud.boss-defeated span:after{content:" / BOSS DOWN";color:#fff}.slime-boss{position:fixed;z-index:9000;left:0;top:0;width:138px;height:128px;padding:0;border:0;background:none;will-change:transform}.boss-health{position:absolute;z-index:4;left:9px;top:0;width:120px;color:var(--paper);font:500 8px var(--mono);letter-spacing:.12em;text-align:left}.boss-health>b{display:block;margin-bottom:4px}.boss-health>i{display:block;width:100%;height:7px;padding:2px;background:var(--ink);border:1px solid var(--pink)}.boss-health em{display:block;width:100%;height:100%;background:var(--pink);transform-origin:0 50%;transition:transform .16s steps(4,end)}.boss-creature{position:absolute;left:14px;bottom:5px;width:110px;height:85px;background:var(--pink);clip-path:polygon(7% 0,29% 17%,40% 5%,50% 19%,62% 5%,73% 17%,94% 0,86% 28%,96% 28%,96% 39%,100% 39%,100% 88%,88% 88%,88% 100%,12% 100%,12% 93%,0 93%,0 39%,5% 39%,5% 27%,14% 27%);filter:drop-shadow(9px 10px 0 rgba(0,0,0,.5));transform-origin:50% 100%;animation:boss-idle .9s steps(3,end) infinite}.boss-creature:before,.boss-creature:after{content:"";position:absolute;top:39px;width:13px;height:15px;background:var(--ink)}.boss-creature:before{left:27px}.boss-creature:after{right:27px}.boss-creature>i{position:absolute;bottom:0;width:25px;height:8px;background:var(--pink)}.boss-creature>i:first-child{left:-5px}.boss-creature>i:nth-child(2){right:-5px}.boss-creature>b{position:absolute;left:47px;top:65px;width:17px;height:7px;background:var(--ink)}.slime-boss.is-hit .boss-creature{animation:boss-hit .22s steps(3,end)}.slime-boss.is-healing .boss-health em{background:#fff;filter:drop-shadow(0 0 5px var(--pink))}.slime-boss.is-defeated .boss-creature{animation:boss-defeat .82s steps(8,end) both}.slime-boss.is-defeated .boss-health{opacity:0}.boss-particle{position:absolute;z-index:5;left:68px;top:78px;width:10px;height:10px;background:var(--pink);animation:boss-particle .9s steps(8,end) both}
@keyframes boss-idle{0%,100%{transform:scale(1)}50%{transform:translateY(3px) scale(1.04,.94)}}@keyframes boss-hit{0%,100%{transform:none}50%{transform:translateX(-7px) skewX(7deg);filter:brightness(2)}}@keyframes boss-defeat{0%{opacity:1;transform:scale(1)}35%{transform:scale(1.35,.55)}60%{opacity:1;transform:scale(.8,1.5)}100%{opacity:0;transform:scale(1.8,.1)}}@keyframes boss-particle{to{opacity:0;transform:translate(var(--boss-drop-x),var(--boss-drop-y)) rotate(180deg) scale(.1)}}
@media (prefers-reduced-motion:reduce){.slime-boss{display:none}}

/* SLIME REAPER achievement: full-screen unlock plus persistent HUD tier. */
.slime-earned-badge{display:inline-grid;place-items:center;min-width:34px;height:22px;padding:0 5px;border:1px solid var(--pink);clip-path:polygon(7px 0,100% 0,100% calc(100% - 7px),calc(100% - 7px) 100%,0 100%,0 7px);color:var(--pink);font:500 8px var(--mono);letter-spacing:.06em;font-style:normal}.slime-earned-badge[hidden]{display:none}.slime-badge-award{position:fixed;z-index:12000;inset:0;display:grid;place-content:center;justify-items:center;background:radial-gradient(circle,rgba(237,43,105,.2),rgba(12,11,13,.9) 52%,rgba(12,11,13,.98));pointer-events:none;opacity:0;overflow:hidden}.slime-badge-award.is-visible{animation:badge-screen-in .42s steps(6,end) forwards}.slime-badge-award.is-leaving{animation:badge-screen-out .56s steps(6,end) forwards}.badge-rays{position:absolute;left:50%;top:50%;width:70vmax;height:70vmax;background:repeating-conic-gradient(from 0deg,rgba(237,43,105,.13) 0 2deg,transparent 2deg 13deg);transform:translate(-50%,-50%);animation:badge-rays-spin 8s linear infinite}.badge-seal{position:relative;display:grid;place-items:center;width:210px;height:230px;margin-bottom:1.7rem;background:var(--pink);clip-path:polygon(50% 0,62% 10%,79% 6%,86% 21%,100% 28%,94% 46%,100% 64%,85% 72%,79% 91%,61% 87%,50% 100%,39% 87%,21% 91%,15% 72%,0 64%,6% 46%,0 28%,14% 21%,21% 6%,38% 10%);filter:drop-shadow(0 0 24px rgba(237,43,105,.65));animation:badge-seal-impact .72s cubic-bezier(.12,.9,.2,1) both}.badge-seal:before{content:"";position:absolute;inset:12px;background:var(--ink);clip-path:inherit}.badge-seal img{position:absolute;z-index:2;top:36px;width:42px;height:72px;object-fit:contain;filter:brightness(0) invert(1)}.badge-seal b{position:relative;z-index:2;margin-top:74px;color:var(--paper);font:700 18px/1 Manrope,sans-serif;letter-spacing:.05em;text-align:center}.badge-seal i{position:absolute;z-index:2;bottom:29px;min-width:34px;padding:4px 7px;background:var(--paper);color:var(--ink);font:500 11px var(--mono);font-style:normal;text-align:center}.slime-badge-award>strong,.slime-badge-award>p,.slime-badge-award>small{position:relative;z-index:2;text-align:center}.slime-badge-award>strong{color:var(--pink);font:500 10px var(--mono);letter-spacing:.26em}.slime-badge-award>p{margin:.5rem 0 .45rem;color:var(--paper);font:700 clamp(2rem,5vw,4.5rem)/1 Manrope,sans-serif;letter-spacing:-.05em}.slime-badge-award>small{color:var(--muted);font:400 9px var(--mono);letter-spacing:.12em;text-transform:uppercase}
@keyframes badge-screen-in{0%{opacity:0}35%{opacity:1;filter:brightness(2.4)}55%{filter:brightness(.7)}100%{opacity:1;filter:none}}@keyframes badge-screen-out{0%{opacity:1}100%{opacity:0;transform:scale(1.04)}}@keyframes badge-seal-impact{0%{opacity:0;transform:translateY(-50px) rotate(-12deg) scale(.1)}55%{opacity:1;transform:translateY(8px) rotate(3deg) scale(1.16)}75%{transform:translateY(-3px) rotate(-1deg) scale(.94)}100%{transform:none}}@keyframes badge-rays-spin{to{transform:translate(-50%,-50%) rotate(360deg)}}
@media (prefers-reduced-motion:reduce){.slime-badge-award{display:none}}

/* Touch opt-in: large controls, tap strike, and scroll-safe gameplay. */
@media (any-pointer:coarse),(hover:none){.slime-hud{right:12px;bottom:max(12px,env(safe-area-inset-bottom));min-height:44px;padding:.55rem .65rem;gap:.55rem}.slime-hud button{min-height:32px;min-width:58px}.slime-hud.is-locked{border-color:var(--pink);pointer-events:auto}.slime-hud.is-locked>span,.slime-hud.is-locked>strong,.slime-hud.is-locked>.slime-earned-badge{display:none}.slime-hud.is-locked button{min-height:44px;padding:0 .8rem;border-left:0;color:var(--pink);font-size:.58rem}.site-slime{width:64px;height:58px}.slime-boss{width:150px;height:140px}.slime-hunt-scrolling .site-slime,.slime-hunt-scrolling .slime-boss{opacity:0;pointer-events:none}.touch-click-strike{position:fixed;z-index:9999;inset:0;pointer-events:none;overflow:hidden}.touch-click-strike:before{content:"";position:absolute;left:var(--strike-x,50%);top:var(--strike-y,50%);width:min(76vw,620px);height:2px;background:linear-gradient(90deg,transparent,rgba(237,43,105,.1) 14%,var(--pink) 34%,#fff 50%,var(--pink) 66%,rgba(237,43,105,.1) 86%,transparent);filter:drop-shadow(0 0 4px #fff) drop-shadow(0 0 10px var(--pink));opacity:0;transform:translate(-50%,-50%) rotate(var(--strike-angle,0deg)) scaleX(0);transform-origin:center}.touch-click-strike.is-active:before{animation:touch-click-strike .6s cubic-bezier(.1,.86,.16,1) both}}
@keyframes touch-click-strike{0%{opacity:0;transform:translate(-50%,-50%) rotate(var(--strike-angle)) scaleX(0) scaleY(.2)}12%{opacity:1;transform:translate(-50%,-50%) rotate(var(--strike-angle)) scaleX(.03) scaleY(2.5)}48%{opacity:1;transform:translate(-50%,-50%) rotate(var(--strike-angle)) scaleX(1) scaleY(1.4)}100%{opacity:0;transform:translate(-50%,-50%) rotate(var(--strike-angle)) scaleX(.12) scaleY(.1)}}
@keyframes hero-unified-click-strike{0%{opacity:0;transform:translate(-50%,-50%) rotate(var(--hero-strike-angle)) scaleX(0) scaleY(.2)}10%{opacity:1;transform:translate(-50%,-50%) rotate(var(--hero-strike-angle)) scaleX(.025) scaleY(2.8)}42%{opacity:1;transform:translate(-50%,-50%) rotate(var(--hero-strike-angle)) scaleX(1.04) scaleY(1.7)}68%{opacity:.72;transform:translate(-50%,-50%) rotate(var(--hero-strike-angle)) scaleX(.74) scaleY(.72)}100%{opacity:0;transform:translate(-50%,-50%) rotate(var(--hero-strike-angle)) scaleX(.08) scaleY(.12)}}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--ink);color:var(--paper);font-family:var(--sans);overflow-x:hidden}a{color:inherit;text-decoration:none}img{display:block;max-width:100%}.noise{position:fixed;inset:0;opacity:.035;pointer-events:none;z-index:20;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.7'/%3E%3C/svg%3E")}.site-header{height:88px;padding:0 3.5vw;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line);position:absolute;top:0;width:100%;z-index:10}.brand{font-size:1.05rem;letter-spacing:.08em;font-weight:700;display:flex;gap:.6rem;align-items:center}.brand-mark{color:var(--pink);font-size:1.6rem}.site-header nav{display:flex;gap:2.5rem;font:500 .72rem var(--mono);text-transform:uppercase;letter-spacing:.08em}.site-header nav a:hover,.footer-links a:hover{color:var(--pink)}.header-cta{font:500 .72rem var(--mono);text-transform:uppercase;border-bottom:1px solid var(--paper);padding-bottom:.3rem}.header-cta span{color:var(--pink)}.menu-button{display:none}.hero{min-height:100vh;padding:140px 3.5vw 5vw;display:grid;grid-template-columns:1.04fr .96fr;gap:4vw;align-items:center;position:relative}.hero:before{content:"";position:absolute;width:50vw;height:50vw;background:radial-gradient(circle,rgba(237,43,105,.15),transparent 65%);right:-18vw;top:-20vw;pointer-events:none}.eyebrow,.section-label{font:500 .68rem var(--mono);letter-spacing:.12em;text-transform:uppercase}.eyebrow{display:flex;align-items:center;gap:.8rem}.eyebrow span{width:27px;height:2px;background:var(--pink)}h1,h2,h3,p{margin-top:0}h1{font-size:clamp(3.7rem,7vw,8rem);letter-spacing:-.075em;line-height:.83;margin:2rem 0 2.4rem;font-weight:600}em{font-style:normal;color:var(--pink)}.hero-lede{max-width:590px;color:#bdb9bb;font-size:clamp(1rem,1.3vw,1.25rem);line-height:1.65}.hero-actions{display:flex;gap:2.5rem;align-items:center;margin-top:3rem}.button{display:inline-flex;align-items:center;justify-content:space-between;gap:2.8rem;padding:1rem 1.15rem;text-transform:uppercase;font:500 .7rem var(--mono);letter-spacing:.05em}.button.primary{background:var(--pink);color:white;min-width:230px}.button span,.text-link span{font-size:1rem}.text-link{font:500 .7rem var(--mono);text-transform:uppercase;display:flex;gap:.8rem;align-items:center}.hero-visual{position:relative;height:min(67vh,760px);overflow:hidden;background:#170d11}.hero-visual img{width:100%;height:100%;object-fit:cover;object-position:64% center;filter:saturate(.85) contrast(1.07)}.hero-visual:after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(12,11,13,.5),transparent 50%),linear-gradient(0deg,rgba(12,11,13,.6),transparent 30%)}.visual-label{position:absolute;z-index:2;font:500 .59rem var(--mono);letter-spacing:.13em}.visual-label.top{top:1.5rem;left:1.6rem}.visual-label.bottom{bottom:1.5rem;right:1.6rem}.frame-corner{position:absolute;z-index:3;width:14px;height:14px}.top-left{top:12px;left:12px;border-left:1px solid white;border-top:1px solid white}.top-right{top:12px;right:12px;border-right:1px solid white;border-top:1px solid white}.bottom-left{bottom:12px;left:12px;border-left:1px solid white;border-bottom:1px solid white}.bottom-right{bottom:12px;right:12px;border-right:1px solid white;border-bottom:1px solid white}.hero-index{position:absolute;left:3.5vw;bottom:2vw;font:400 .6rem var(--mono);color:var(--muted)}.manifesto{padding:12vw 11vw;border-top:1px solid var(--line);display:grid;grid-template-columns:1fr 3fr;gap:4vw}.section-label{color:var(--pink)}.manifesto-copy{font-size:clamp(2.1rem,4vw,4.9rem);line-height:1.14;letter-spacing:-.045em;max-width:1100px}.manifesto-copy span{text-decoration:underline;text-decoration-color:var(--pink);text-decoration-thickness:3px;text-underline-offset:8px}.pipeline{display:grid;grid-template-columns:1fr 1.2fr;gap:9vw;padding:10vw 7vw;background:var(--paper);color:var(--ink)}.section-heading{position:sticky;top:80px;align-self:start}.section-heading h2,.work-heading h2,.capabilities h2,.studio h2,.cta h2{font-size:clamp(2.8rem,5.4vw,6.4rem);line-height:.98;letter-spacing:-.065em;margin:1.8rem 0}.section-heading>p:last-child{max-width:480px;line-height:1.7;color:#656164}.pipeline-list{list-style:none;margin:0;padding:0}.pipeline-list li{display:grid;grid-template-columns:45px 1fr 25px;gap:1.2rem;padding:2.2rem 0;border-top:1px solid rgba(12,11,13,.2)}.pipeline-list li:last-child{border-bottom:1px solid rgba(12,11,13,.2)}.pipeline-list .number{font:500 .65rem var(--mono);color:var(--pink)}.pipeline-list h3{font-size:1.3rem;margin-bottom:.6rem}.pipeline-list p{color:#6d696a;line-height:1.5;margin-bottom:0}.plus{font-size:1.5rem;color:var(--pink)}.work{padding:10vw 3.5vw}.work-heading{display:flex;justify-content:space-between;align-items:start;margin-bottom:5vw}.work-heading h2{margin:0;text-align:right}.work-grid{display:grid;grid-template-columns:1fr 1fr;gap:1.5rem}.project-wide{grid-column:1/-1}.project-image{height:42vw;max-height:700px;overflow:hidden;background:#160d11}.project:not(.project-wide) .project-image{height:42vw}.project-image img{width:100%;height:100%;object-fit:cover;transition:transform .7s cubic-bezier(.2,.7,.2,1)}.project:hover img{transform:scale(1.025)}.project-meta{display:flex;justify-content:space-between;align-items:end;padding:1.2rem 0 2.5rem}.project-meta p,.project-meta>span{font:400 .62rem var(--mono);text-transform:uppercase;color:var(--muted);letter-spacing:.08em}.project-meta h3{font-size:1.5rem;margin:.35rem 0 0}.project-cover{display:grid;place-items:center;font-size:clamp(2.4rem,5vw,6rem);font-weight:500;line-height:.8;letter-spacing:-.08em;text-align:center;position:relative}.project-cover:before{content:"";position:absolute;inset:0;background:repeating-linear-gradient(115deg,transparent 0 20px,rgba(255,255,255,.025) 20px 21px)}.project-cover b{color:var(--pink)}.champions{background:radial-gradient(circle at 50% 60%,#4a1929,#0b090b 60%)}.cuddle{background:radial-gradient(circle at 50% 50%,#4e1957,#100c14 65%)}.button.outline{border:1px solid var(--line);margin-top:3rem}.capabilities{background:#19171a;padding:10vw 7vw;display:grid;grid-template-columns:1fr 1fr;gap:10vw;align-items:end}.capabilities h2{margin-bottom:0}.capabilities-copy>p{font-size:clamp(1.2rem,2vw,1.8rem);line-height:1.55;color:#c2bec0}.tags{display:flex;flex-wrap:wrap;gap:.65rem;margin-top:3rem}.tags span{border:1px solid #474348;border-radius:100px;padding:.7rem 1rem;font:400 .67rem var(--mono);text-transform:uppercase}.studio{padding:10vw 7vw;display:grid;grid-template-columns:.5fr 1.5fr;gap:4vw}.studio-number{font-size:clamp(4rem,10vw,11rem);line-height:.8;color:var(--pink);letter-spacing:-.08em}.studio-copy h2{font-size:clamp(2.2rem,4.2vw,5rem)}.studio-copy>p:last-child{font-size:1.05rem;line-height:1.7;color:var(--muted);max-width:650px}.studio-points{grid-column:2;display:grid;grid-template-columns:1fr 1fr;border-top:1px solid var(--line)}.studio-points span{padding:1.3rem 0;border-bottom:1px solid var(--line);font:400 .67rem var(--mono);text-transform:uppercase}.studio-points span:nth-child(odd){border-right:1px solid var(--line)}.studio-points span:nth-child(even){padding-left:1.3rem}.cta{padding:10vw 7vw;background:var(--pink);text-align:center;color:white}.cta .section-label,.cta em{color:var(--ink)}.cta h2{font-size:clamp(4rem,9vw,10rem);margin:1rem auto 4rem}.button.light{background:white;color:var(--ink)}footer{padding:4vw 3.5vw;display:grid;grid-template-columns:1fr 1fr 1fr auto;gap:3rem;align-items:start;border-top:1px solid var(--line)}footer p{font-size:.78rem;color:var(--muted);line-height:1.6}.footer-links{display:flex;gap:1.5rem;font:400 .68rem var(--mono);text-transform:uppercase}.legal{text-align:right}.reveal{opacity:0;transform:translateY(24px);transition:opacity .8s ease,transform .8s cubic-bezier(.2,.7,.2,1)}.reveal.visible{opacity:1;transform:none}
@media(max-width:800px){.site-header{height:70px}.site-header nav,.header-cta{display:none}.menu-button{display:block;color:var(--paper);border:0;background:none;font:500 .68rem var(--mono);text-transform:uppercase}.site-header.open nav{display:flex;position:absolute;top:70px;left:0;right:0;background:var(--ink);padding:2rem 3.5vw;flex-direction:column;border-bottom:1px solid var(--line)}.hero{grid-template-columns:1fr;padding-top:115px}.hero-visual{height:62vh}.hero-index{display:none}.manifesto{grid-template-columns:1fr;padding:20vw 7vw}.pipeline{grid-template-columns:1fr;padding:20vw 7vw}.section-heading{position:static}.work{padding:20vw 5vw}.work-heading{display:block}.work-heading h2{text-align:left}.work-grid{grid-template-columns:1fr}.project-wide{grid-column:auto}.project-image,.project:not(.project-wide) .project-image{height:85vw}.capabilities{grid-template-columns:1fr;padding:20vw 7vw}.studio{grid-template-columns:1fr;padding:20vw 7vw}.studio-points{grid-column:auto}.cta{padding:20vw 5vw}footer{grid-template-columns:1fr 1fr}.legal{text-align:left}.hero-actions{align-items:flex-start;flex-direction:column;gap:1.5rem}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.reveal{opacity:1;transform:none;transition:none}}

/* Scroll-driven portfolio: a focused, quick-access showcase inspired by
   Room 8's project-first navigation and strong typographic hierarchy. */
.flagship-case{padding:10vw 7vw;background:var(--paper);color:var(--ink);display:grid;grid-template-columns:1fr 1fr;gap:8vw;align-items:center}.case-visual{position:relative}.case-visual a{display:block;position:relative;overflow:hidden;background:#090909}.case-visual img{width:100%;aspect-ratio:4/5;object-fit:cover;transition:transform .7s cubic-bezier(.2,.7,.2,1),filter .7s ease}.case-visual a:hover img{transform:scale(1.025);filter:brightness(1.08)}.case-open{position:absolute;left:1.3rem;right:1.3rem;bottom:1.3rem;padding:1rem;background:var(--pink);color:white;display:flex;justify-content:space-between;font:500 .65rem var(--mono);text-transform:uppercase}.case-content h2,.tech-heading h2{font-size:clamp(2.8rem,5vw,6rem);line-height:.96;letter-spacing:-.065em;margin:1.6rem 0 2rem}.case-lede{font-size:clamp(1.1rem,1.5vw,1.4rem);line-height:1.6;color:#5f5b5d}.case-steps{list-style:none;padding:0;margin:3rem 0}.case-steps li{display:grid;grid-template-columns:42px 1fr;gap:1rem;padding:1.25rem 0;border-top:1px solid rgba(12,11,13,.18)}.case-steps li:last-child{border-bottom:1px solid rgba(12,11,13,.18)}.case-steps li>span{font:500 .62rem var(--mono);color:var(--pink)}.case-steps b{font-size:.95rem}.case-steps p{margin:.35rem 0 0;color:#716c6f;font-size:.85rem;line-height:1.5}.case-content blockquote{border-left:2px solid var(--pink);margin:2.5rem 0 0;padding:.2rem 0 .2rem 1.3rem;font-size:1rem;line-height:1.6}
.character-tech{padding:10vw 7vw;display:grid;grid-template-columns:.85fr 1.15fr;gap:9vw;background:#151316}.tech-heading h2{margin-bottom:0}.tech-copy>p{font-size:clamp(1.2rem,1.8vw,1.65rem);line-height:1.6;color:#bbb7b9;max-width:720px}.tech-cards{margin-top:3.5rem;border-top:1px solid var(--line)}.tech-cards article{display:grid;grid-template-columns:70px 1fr;gap:1.5rem;padding:1.6rem 0;border-bottom:1px solid var(--line)}.tech-cards article>span{width:45px;height:45px;border:1px solid var(--pink);display:grid;place-items:center;color:var(--pink);font:500 .68rem var(--mono)}.tech-cards h3{margin:0 0 .5rem;font-size:1.15rem}.tech-cards p{margin:0;color:var(--muted);font-size:.86rem;line-height:1.6}
.portfolio-stack{height:calc(var(--portfolio-count,5) * 100vh);background:#111012;position:relative;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.portfolio-sticky{height:100vh;position:sticky;top:0;overflow:hidden;display:grid;grid-template-columns:.72fr 1.28fr;gap:5vw;padding:7vw;align-items:center}
.portfolio-intro{position:relative;z-index:10}.portfolio-intro h2{font-size:clamp(3rem,5.8vw,7rem);line-height:.92;letter-spacing:-.07em;margin:1.5rem 0}.portfolio-intro>p:nth-of-type(2){color:var(--muted)}
.portfolio-progress{height:1px;background:var(--line);max-width:280px;margin:3rem 0 1rem}.portfolio-progress span{display:block;width:20%;height:2px;background:var(--pink)}.portfolio-count{font:400 .65rem var(--mono);color:var(--muted)}.portfolio-count b{color:var(--paper);font-weight:500}
.cover-stack{height:min(75vh,760px);position:relative;perspective:1400px}.game-cover{position:absolute;inset:0;background:#171518;box-shadow:0 30px 90px rgba(0,0,0,.5);overflow:hidden;transform-origin:50% 100%;will-change:transform,opacity;opacity:0;transform:translateY(115%) rotate(4deg) scale(.96)}.game-cover:first-child{opacity:1;transform:none}.game-cover:before{content:"";position:absolute;inset:0;border:1px solid rgba(255,255,255,.17);z-index:2;pointer-events:none}.game-cover>a{display:block;width:100%;height:100%;cursor:alias}.game-cover img{width:100%;height:100%;object-fit:cover;background:#080808;transition:transform .5s ease,filter .5s ease}.game-cover>a:hover img,.game-cover>a:focus-visible img{transform:scale(1.025);filter:brightness(1.08)}.game-cover>a:focus-visible{outline:2px solid var(--pink);outline-offset:-4px}
.cover-caption{position:absolute;z-index:3;left:0;right:0;bottom:0;padding:5rem 2rem 1.7rem;display:flex;gap:1.3rem;align-items:end;background:linear-gradient(transparent,rgba(7,6,8,.94));color:white;pointer-events:none}.cover-caption>span{font:500 .64rem var(--mono);color:var(--accent)}.cover-caption p{font:400 .59rem var(--mono);text-transform:uppercase;letter-spacing:.09em;color:#b7b3b6;margin-bottom:.35rem}.cover-caption h3{font-size:clamp(1.35rem,2.5vw,2.4rem);margin:0;letter-spacing:-.035em}
.scroll-cue{position:absolute;right:2.2rem;bottom:2rem;z-index:10;display:flex;flex-direction:column;align-items:center;gap:.65rem;color:var(--muted);transition:opacity .35s ease,transform .35s ease}.scroll-cue.is-done{opacity:0;transform:translateY(8px)}.scroll-cue-label{font:400 .56rem var(--mono);text-transform:uppercase;letter-spacing:.1em;writing-mode:vertical-rl}.scroll-cue-icon{width:22px;height:34px;border:1px solid rgba(233,231,226,.5);border-radius:12px;position:relative;display:block}.scroll-cue-icon i{position:absolute;left:50%;top:6px;width:3px;height:7px;border-radius:3px;background:var(--pink);transform:translateX(-50%);animation:scroll-wheel 1.45s cubic-bezier(.25,.7,.3,1) infinite}.scroll-cue-icon b{position:absolute;left:50%;bottom:-16px;color:var(--pink);font:400 18px/1 var(--sans);transform:translateX(-50%);animation:scroll-arrow 1.45s ease-in-out infinite}@keyframes scroll-wheel{0%{opacity:0;transform:translate(-50%,-1px)}24%{opacity:1}72%{opacity:1;transform:translate(-50%,10px)}100%{opacity:0;transform:translate(-50%,13px)}}@keyframes scroll-arrow{0%,100%{opacity:.3;transform:translate(-50%,-2px)}50%{opacity:1;transform:translate(-50%,3px)}}

@media(max-width:800px){.flagship-case,.character-tech{grid-template-columns:1fr;padding:20vw 7vw}.case-visual img{aspect-ratio:4/4.7}.portfolio-sticky{grid-template-columns:1fr;padding:10vh 5vw 5vh;align-content:start;gap:3vh}.portfolio-intro h2{font-size:2.8rem;margin:.8rem 0}.portfolio-intro>p:nth-of-type(2),.portfolio-progress{display:none}.portfolio-count{position:absolute;right:0;bottom:0}.cover-stack{height:58vh}.cover-caption{padding:4rem 1.2rem 1.2rem}.scroll-cue{right:1rem;bottom:2.3rem}.scroll-cue-label{display:none}.scroll-cue-icon{background:rgba(12,11,13,.55);backdrop-filter:blur(5px)}}
@media(prefers-reduced-motion:reduce){.portfolio-stack{height:auto;padding:5vw}.portfolio-sticky{height:auto;position:static;display:block;padding:10vw 0;overflow:visible}.cover-stack{height:auto;display:grid;gap:1rem;margin-top:2rem}.game-cover{position:relative;opacity:1!important;transform:none!important;aspect-ratio:16/10}.scroll-cue,.portfolio-progress{display:none}.scroll-cue-icon i,.scroll-cue-icon b{animation:none}}

/* Artdaggers simplified dagger mark */
.brand .brand-mark{width:30px;height:48px;object-fit:contain;flex:0 0 auto;font-size:0}.site-header .brand{gap:.25rem}footer .brand{gap:.3rem}footer .brand .brand-mark{width:34px;height:54px}

@media(max-width:800px){.brand .brand-mark{width:26px;height:42px}}

.site-header .brand-name{display:inline-block;clip-path:inset(0 100% 0 0);transform-origin:left center;animation:brand-name-in .72s cubic-bezier(.12,.88,.2,1) .38s forwards}@keyframes brand-name-in{0%{opacity:0;clip-path:inset(0 100% 0 0);transform:translateX(-6px) scaleX(.94);letter-spacing:.14em}18%{opacity:1}70%{clip-path:inset(0);transform:translateX(2px) scaleX(1.012);letter-spacing:.075em}84%{transform:translateX(-1px) scaleX(.996);letter-spacing:.082em}100%{opacity:1;clip-path:inset(0);transform:none;letter-spacing:.08em}}@media(prefers-reduced-motion:reduce){.site-header .brand-name{animation:none;clip-path:none;transform:none}}

/* Viewport containment and narrow-screen typography */
html,body{width:100%;max-width:100%}html{overflow-x:clip}body{overflow-x:visible}main,header,footer,section{max-width:100%}main>*,section>*,.hero-copy,.hero-visual,.section-heading,.pipeline-list,.case-visual,.case-content,.portfolio-intro,.cover-stack,.capabilities-title,.capabilities-copy,.studio-copy{min-width:0}.site-header{max-width:100vw}.hero,.manifesto,.pipeline,.flagship-case,.portfolio-sticky,.capabilities,.studio,.cta,footer{width:100%}.cta h2{max-width:100%;margin-left:auto;margin-right:auto}

@media(max-width:800px){h1{font-size:clamp(3rem,15vw,3.8rem)}.manifesto-copy{font-size:clamp(1.9rem,9vw,3rem)}.section-heading h2,.capabilities h2,.studio h2{font-size:clamp(2.5rem,12vw,4rem)}.case-content h2{font-size:clamp(2.45rem,11.5vw,3.8rem)}.cta h2{font-size:clamp(2.45rem,12vw,3.55rem);line-height:.96;letter-spacing:-.06em;white-space:normal}.cta .button{max-width:100%;gap:1.25rem;text-align:left}.portfolio-sticky{width:100vw}.cover-stack,.game-cover{max-width:100%}footer{gap:2rem 1rem}}

@media(max-width:360px){.site-header{padding-left:18px;padding-right:18px}.brand{font-size:.92rem}.brand .brand-mark{width:23px;height:38px}.hero{padding-left:18px;padding-right:18px}.cta h2{font-size:clamp(2.25rem,11.8vw,2.65rem)}footer{grid-template-columns:1fr}}

/* Lightweight social proof: static grids, no carousel or additional JavaScript. */
.social-proof{padding:10vw 7vw;background:var(--paper);color:var(--ink)}.client-proof{padding-bottom:8vw}.client-proof h2{font-size:clamp(2.8rem,5.4vw,6.4rem);line-height:.98;letter-spacing:-.065em;margin:1.8rem 0 5vw}.client-logo-marquee{width:100%;overflow:hidden;mask-image:linear-gradient(90deg,transparent,#000 5%,#000 95%,transparent);-webkit-mask-image:linear-gradient(90deg,transparent,#000 5%,#000 95%,transparent)}.client-logo-track{display:flex;width:max-content;animation:client-marquee 26s linear infinite}.client-logo-marquee:hover .client-logo-track{animation-play-state:paused}.client-logo-group{display:flex;flex:none}.client-logo-group figure{margin:0;width:190px;height:130px;display:grid;place-items:center;padding:1.4rem}.client-logo-group img{width:96px;height:84px;object-fit:contain;filter:invert(1) grayscale(1);opacity:.72;transition:opacity .25s ease,transform .25s ease}.client-logo-group figure:hover img{opacity:1;transform:scale(1.04)}@keyframes client-marquee{to{transform:translateX(-50%)}}.testimonials{display:grid;grid-template-columns:1.35fr 1fr 1fr;border-top:1px solid rgba(12,11,13,.2);border-left:1px solid rgba(12,11,13,.2)}.testimonials article{padding:2.2rem;min-height:390px;border-right:1px solid rgba(12,11,13,.2);border-bottom:1px solid rgba(12,11,13,.2);display:flex;flex-direction:column}.testimonials .quote-mark{font:600 4rem/1 var(--sans);color:var(--pink);height:3.2rem}.testimonials blockquote{font-size:clamp(1rem,1.25vw,1.3rem);line-height:1.6;margin:1.3rem 0 2rem}.testimonials .testimonial-featured blockquote{font-size:clamp(1.2rem,1.7vw,1.75rem);line-height:1.5}.testimonials footer{display:block;margin-top:auto;padding:0;border:0}.testimonials footer strong,.testimonials footer span{display:block}.testimonials footer strong{font-size:.82rem}.testimonials footer span{margin-top:.35rem;font:400 .59rem/1.5 var(--mono);text-transform:uppercase;color:#716c6f}

@media(max-width:800px){.social-proof{padding:20vw 7vw}.client-proof{padding-bottom:16vw}.client-proof h2{font-size:clamp(2.5rem,12vw,4rem);margin-bottom:12vw}.client-logo-group figure{width:145px;height:125px}.client-logo-group img{width:70px;height:70px}.testimonials{grid-template-columns:1fr}.testimonials article{min-height:0}.testimonials .testimonial-featured blockquote{font-size:1.2rem}}
@media(prefers-reduced-motion:reduce){.client-logo-track{animation:none;transform:none}.client-logo-marquee{overflow-x:auto;mask-image:none;-webkit-mask-image:none}.client-logo-group[aria-hidden="true"]{display:none}}

/* Auto-generated transparent character sequence in the hero. */
.hero-character-stage{position:absolute;inset:0;display:grid;place-items:end center;background:radial-gradient(circle at 55% 68%,rgba(237,43,105,.22),transparent 52%)}.hero-character-stage:before{content:"";position:absolute;width:66%;height:12%;left:17%;bottom:2%;background:radial-gradient(ellipse,rgba(0,0,0,.62),transparent 70%);filter:blur(8px)}.hero-character-stage img{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;object-position:50% 100%;filter:drop-shadow(0 24px 25px rgba(0,0,0,.42));will-change:transform,opacity}.hero-character-stage .hero-character-fallback{object-fit:cover;object-position:64% center;filter:saturate(.85) contrast(1.07)}.hero-character-stage.has-sequence .hero-character-fallback{display:none}.hero-character{opacity:0;clip-path:inset(0 0 100% 0);transform:translateY(-2%) scale(.96)}.hero-character.is-active{opacity:1;clip-path:inset(0);transform:none;z-index:1}.hero-character.is-revealing{z-index:2;animation:character-bolt-reveal .86s cubic-bezier(.1,.82,.16,1) both}.hero-character.is-exiting{z-index:0;animation:character-bolt-out .55s cubic-bezier(.4,0,.7,.2) both}.hero-lightning{position:absolute;z-index:3;inset:-8% 0;pointer-events:none;opacity:0}.hero-lightning i{position:absolute;left:50%;top:0;width:64px;height:100%;background:linear-gradient(180deg,transparent 0,#fff 17%,#ff87aa 34%,var(--pink) 72%,transparent 100%);clip-path:polygon(47% 0,72% 0,57% 22%,81% 22%,49% 51%,68% 51%,31% 100%,40% 62%,18% 62%,46% 30%,29% 30%);filter:drop-shadow(0 0 6px #fff) drop-shadow(0 0 18px var(--pink));transform:translateX(-50%) scaleY(.05);transform-origin:50% 0}.hero-lightning b{position:absolute;left:50%;top:0;width:20%;height:100%;background:linear-gradient(90deg,transparent,rgba(255,255,255,.7),rgba(237,43,105,.5),transparent);filter:blur(13px);transform:translateX(-50%) scaleX(.1);opacity:0}.hero-character-stage.is-striking .hero-lightning{opacity:1}.hero-character-stage.is-striking .hero-lightning i{animation:hero-bolt-strike .72s cubic-bezier(.08,.82,.12,1) both}.hero-character-stage.is-striking .hero-lightning b{animation:hero-bolt-flash .74s ease-out both}.hero-character-progress{position:absolute;z-index:4;left:1.6rem;bottom:1.5rem;display:flex;gap:.38rem}.hero-character-progress i{display:block;width:18px;height:2px;background:rgba(255,255,255,.25);transition:background .25s ease,width .25s ease}.hero-character-progress i.is-active{width:30px;background:var(--pink)}@keyframes hero-bolt-strike{0%{opacity:0;transform:translate(-50%,-36%) scale(.22,0)}12%{opacity:1}48%{transform:translate(-50%,0) scale(.62,1.08)}62%{transform:translate(-50%,0) scale(1.3,.97)}78%{opacity:1;transform:translate(-50%,0) scale(.82,1.02)}100%{opacity:0;transform:translate(-50%,0) scale(1)}}@keyframes hero-bolt-flash{0%,20%{opacity:0;transform:translateX(-50%) scaleX(.05)}43%{opacity:.95;transform:translateX(-50%) scaleX(1)}70%{opacity:.35;transform:translateX(-50%) scaleX(2.4)}100%{opacity:0;transform:translateX(-50%) scaleX(3.1)}}@keyframes character-bolt-reveal{0%,25%{opacity:0;clip-path:inset(0 0 100% 0);transform:translateY(-3%) scale(.94);filter:brightness(2) saturate(.2)}52%{opacity:1;filter:brightness(1.7) saturate(.65)}75%{clip-path:inset(0);transform:translateY(0) scale(1.025);filter:brightness(1.12) saturate(.9)}88%{transform:scale(.992)}100%{opacity:1;clip-path:inset(0);transform:none;filter:none}}@keyframes character-bolt-out{0%{opacity:1;clip-path:inset(0);transform:none;filter:none}48%{opacity:.35;filter:brightness(2) saturate(.25);transform:scale(1.02)}100%{opacity:0;clip-path:inset(100% 0 0 0);transform:translateY(2%) scale(.97);filter:brightness(2)}}
@media(prefers-reduced-motion:reduce){.hero-character{transition:none;animation:none!important}.hero-character:not(:first-of-type){display:none}.hero-character-progress,.hero-lightning{display:none}}

/* Selected hero transition family: pink-and-white Energy Ribbons 17–20. */
.hero-transition-fx{position:absolute;z-index:3;inset:0;pointer-events:none}.hero-transition-fx:before{content:"";position:absolute;z-index:2;opacity:0;filter:drop-shadow(0 0 9px #fff) drop-shadow(0 0 24px var(--pink))}.hero-transition-fx:after{content:"";position:absolute;z-index:1;inset:-12%;background:radial-gradient(circle at 50% 50%,rgba(12,11,13,.9),rgba(12,11,13,.64) 48%,transparent 76%);opacity:0}.hero-character-stage.is-transitioning .hero-transition-fx:after{animation:site-transition-dark-pulse .9s linear both}.hero-character-stage.ribbon-ne .hero-transition-fx:before,.hero-character-stage.ribbon-nw .hero-transition-fx:before,.hero-character-stage.ribbon-h .hero-transition-fx:before{left:-35%;top:45%;width:170%;height:12%;background:linear-gradient(90deg,transparent,var(--pink) 16%,#fff 50%,var(--pink) 84%,transparent)}.hero-character-stage.ribbon-v .hero-transition-fx:before{left:43%;top:-35%;width:14%;height:170%;background:linear-gradient(180deg,transparent,var(--pink) 16%,#fff 50%,var(--pink) 84%,transparent)}.hero-character-stage.is-transitioning.ribbon-ne .hero-transition-fx:before{animation:site-ribbon-ne-sweep .9s cubic-bezier(.1,.86,.16,1) both}.hero-character-stage.is-transitioning.ribbon-nw .hero-transition-fx:before{animation:site-ribbon-nw-sweep .9s cubic-bezier(.1,.86,.16,1) both}.hero-character-stage.is-transitioning.ribbon-v .hero-transition-fx:before{animation:site-ribbon-v-sweep .9s cubic-bezier(.1,.86,.16,1) both}.hero-character-stage.is-transitioning.ribbon-h .hero-transition-fx:before{animation:site-ribbon-h-sweep .9s cubic-bezier(.1,.86,.16,1) both}.hero-character-stage.ribbon-ne .hero-character.is-exiting{animation:site-ribbon-ne-out .58s ease both}.hero-character-stage.ribbon-ne .hero-character.is-revealing{animation:site-ribbon-ne-in .92s cubic-bezier(.08,.86,.16,1) both}.hero-character-stage.ribbon-nw .hero-character.is-exiting{animation:site-ribbon-nw-out .58s ease both}.hero-character-stage.ribbon-nw .hero-character.is-revealing{animation:site-ribbon-nw-in .92s cubic-bezier(.08,.86,.16,1) both}.hero-character-stage.ribbon-v .hero-character.is-exiting{animation:site-ribbon-v-out .58s ease both}.hero-character-stage.ribbon-v .hero-character.is-revealing{animation:site-ribbon-v-in .92s cubic-bezier(.08,.86,.16,1) both}.hero-character-stage.ribbon-h .hero-character.is-exiting{animation:site-ribbon-h-out .58s ease both}.hero-character-stage.ribbon-h .hero-character.is-revealing{animation:site-ribbon-h-in .92s cubic-bezier(.08,.86,.16,1) both}@keyframes site-ribbon-ne-sweep{0%{opacity:0;transform:rotate(-28deg) translateX(-72%) scaleY(.08)}14%{opacity:1}48%{transform:rotate(-28deg) translateX(-2%) scaleY(1.8)}70%{transform:rotate(-28deg) translateX(18%) scaleY(.62)}100%{opacity:0;transform:rotate(-28deg) translateX(75%) scaleY(.06)}}@keyframes site-ribbon-nw-sweep{0%{opacity:0;transform:rotate(28deg) translateX(-72%) scaleY(.08)}14%{opacity:1}48%{transform:rotate(28deg) translateX(-2%) scaleY(1.8)}70%{transform:rotate(28deg) translateX(18%) scaleY(.62)}100%{opacity:0;transform:rotate(28deg) translateX(75%) scaleY(.06)}}@keyframes site-ribbon-v-sweep{0%{opacity:0;transform:translateY(-72%) scaleX(.08)}14%{opacity:1}48%{transform:translateY(-2%) scaleX(1.8)}70%{transform:translateY(18%) scaleX(.62)}100%{opacity:0;transform:translateY(75%) scaleX(.06)}}@keyframes site-ribbon-h-sweep{0%{opacity:0;transform:translateX(-72%) scaleY(.08)}14%{opacity:1}48%{transform:translateX(-2%) scaleY(1.8)}70%{transform:translateX(18%) scaleY(.62)}100%{opacity:0;transform:translateX(75%) scaleY(.06)}}@keyframes site-ribbon-ne-out{to{opacity:0;clip-path:polygon(0 0,100% 0,0 100%);transform:translate(-6%,6%) scale(.98)}}@keyframes site-ribbon-ne-in{0%{opacity:0;clip-path:polygon(100% 0,100% 0,100% 100%);transform:translate(8%,-7%)}76%{opacity:1;clip-path:polygon(0 0,100% 0,100% 100%,0 100%);transform:translate(-1%,1%) scale(1.018)}100%{opacity:1;clip-path:inset(0);transform:none}}@keyframes site-ribbon-nw-out{to{opacity:0;clip-path:polygon(0 0,100% 0,100% 100%);transform:translate(6%,6%) scale(.98)}}@keyframes site-ribbon-nw-in{0%{opacity:0;clip-path:polygon(0 0,0 0,0 100%);transform:translate(-8%,-7%)}76%{opacity:1;clip-path:polygon(0 0,100% 0,100% 100%,0 100%);transform:translate(1%,1%) scale(1.018)}100%{opacity:1;clip-path:inset(0);transform:none}}@keyframes site-ribbon-v-out{to{opacity:0;clip-path:inset(100% 0 0);transform:translateY(6%) scale(.98)}}@keyframes site-ribbon-v-in{0%{opacity:0;clip-path:inset(0 0 100%);transform:translateY(-7%)}76%{opacity:1;clip-path:inset(0);transform:translateY(1%) scale(1.018)}100%{opacity:1;transform:none}}@keyframes site-ribbon-h-out{to{opacity:0;clip-path:inset(0 100% 0 0);transform:translateX(-6%) scale(.98)}}@keyframes site-ribbon-h-in{0%{opacity:0;clip-path:inset(0 0 0 100%);transform:translateX(7%)}76%{opacity:1;clip-path:inset(0);transform:translateX(-1%) scale(1.018)}100%{opacity:1;transform:none}}@keyframes site-transition-dark-pulse{0%,12%{opacity:0}30%{opacity:.2}43%{opacity:.72}58%{opacity:.72}72%{opacity:.18}100%{opacity:0}}
@media(prefers-reduced-motion:reduce){.hero-transition-fx{display:none}}

/* Subtle living portrait: slow push-in/pan plus cursor-driven parallax. */
.hero-character-stage{--hero-parallax-x:0px;--hero-parallax-y:0px;--hero-drift-duration:3.8s}.hero-character-stage .hero-character{inset:4% auto auto 4%;width:92%;height:92%;max-width:none}.hero-character.is-active{animation:hero-character-drift var(--hero-drift-duration) linear both;transform-origin:50% 82%}@keyframes hero-character-drift{0%{transform:translate3d(var(--hero-parallax-x),var(--hero-parallax-y),0) scale(1);object-position:49.3% 100%}100%{transform:translate3d(calc(var(--hero-parallax-x) + .35%),calc(var(--hero-parallax-y) - .25%),0) scale(1.025);object-position:50.7% 100%}}
@media(max-width:1100px){.hero-character-stage .hero-character{inset:4% auto auto 4%;width:92%;height:92%}}
@media(max-width:800px){.hero-character-stage .hero-character{inset:4% auto auto 4%;width:92%;height:92%}}
@media(max-width:480px){.hero-character-stage .hero-character{inset:4% auto auto 4%;width:92%;height:92%}}
@media(prefers-reduced-motion:reduce){.hero-character.is-active{animation:none;transform:none}}

/* Layered hero box: the frame stays behind while the character breaks its top edge. */
.hero-visual{overflow:visible;isolation:isolate;box-shadow:inset 0 1px 0 rgba(255,255,255,.2)}.hero-visual:after{z-index:1;pointer-events:none}.hero-character-stage{z-index:auto}.hero-character-stage .hero-character{inset:-10% auto auto 0;width:100%;height:108%;overflow:visible}.hero-character-stage .hero-character.is-active,.hero-character-stage .hero-character.is-revealing,.hero-character-stage .hero-character.is-exiting{z-index:5}.hero-transition-fx{z-index:6}.hero-visual .visual-label{z-index:7}.hero-visual .frame-corner{z-index:3}
@media(max-width:800px){.hero-character-stage .hero-character{inset:-6% auto auto 0;width:100%;height:104%}}
@media(max-width:480px){.hero-character-stage .hero-character{inset:-4% auto auto 0;width:100%;height:102%}}

/* Frameless character stage: retain only the four corner registration marks. */
.hero-visual{background:transparent;box-shadow:none}.hero-visual:after{display:none}.hero-character-stage{background:transparent}.hero-character-stage:before{display:none}

/* Keep large transparent PNGs composited and never expose an undecoded frame. */
.hero-character-stage:not(.has-sequence) .hero-character{visibility:hidden}.hero-character-stage .hero-character{backface-visibility:hidden;-webkit-backface-visibility:hidden;transform-style:preserve-3d}

/* Seamless handoff: ribbon reveal ends at the exact first frame of the drift. */
.hero-character-stage.ribbon-ne .hero-character.is-revealing,.hero-character-stage.ribbon-nw .hero-character.is-revealing,.hero-character-stage.ribbon-v .hero-character.is-revealing,.hero-character-stage.ribbon-h .hero-character.is-revealing{animation-duration:.9s;animation-timing-function:linear}@keyframes site-ribbon-ne-in{0%{opacity:0;clip-path:polygon(100% 0,100% 0,100% 100%);transform:translate(8%,-7%)}78%{opacity:1;clip-path:polygon(0 0,100% 0,100% 100%,0 100%);transform:none}100%{opacity:1;clip-path:inset(0);transform:none}}@keyframes site-ribbon-nw-in{0%{opacity:0;clip-path:polygon(0 0,0 0,0 100%);transform:translate(-8%,-7%)}78%{opacity:1;clip-path:polygon(0 0,100% 0,100% 100%,0 100%);transform:none}100%{opacity:1;clip-path:inset(0);transform:none}}@keyframes site-ribbon-v-in{0%{opacity:0;clip-path:inset(0 0 100%);transform:translateY(-7%)}78%{opacity:1;clip-path:inset(0);transform:none}100%{opacity:1;clip-path:inset(0);transform:none}}@keyframes site-ribbon-h-in{0%{opacity:0;clip-path:inset(0 0 0 100%);transform:translateX(7%)}78%{opacity:1;clip-path:inset(0);transform:none}100%{opacity:1;clip-path:inset(0);transform:none}}

/* All ribbon directions swap the complete silhouette at the same impact frame. */
.hero-character-stage.ribbon-ne .hero-character.is-revealing,.hero-character-stage.ribbon-nw .hero-character.is-revealing,.hero-character-stage.ribbon-v .hero-character.is-revealing,.hero-character-stage.ribbon-h .hero-character.is-revealing{animation-name:site-ribbon-character-swap-in;animation-duration:.9s;animation-timing-function:linear}.hero-character-stage.ribbon-ne .hero-character.is-exiting,.hero-character-stage.ribbon-nw .hero-character.is-exiting,.hero-character-stage.ribbon-v .hero-character.is-exiting,.hero-character-stage.ribbon-h .hero-character.is-exiting{animation:site-ribbon-character-swap-out .9s linear both}@keyframes site-ribbon-character-swap-in{0%,58%{opacity:0;clip-path:inset(0);transform:none;filter:brightness(.3)}59%{opacity:1;clip-path:inset(0);transform:none;filter:brightness(.3)}72%,100%{opacity:1;clip-path:inset(0);transform:none;filter:brightness(1)}}@keyframes site-ribbon-character-swap-out{0%{opacity:1;clip-path:inset(0);transform:none;filter:brightness(1)}30%{opacity:1;clip-path:inset(0);transform:none;filter:brightness(.62)}42%{opacity:.28;clip-path:inset(0);transform:none;filter:brightness(.2)}43%,100%{opacity:0;clip-path:inset(0);transform:none;filter:brightness(.2)}}

/* Energy-ribbon transitions reduced to a single fine light stroke. */
.hero-character-stage.ribbon-ne .hero-transition-fx:before,
.hero-character-stage.ribbon-nw .hero-transition-fx:before,
.hero-character-stage.ribbon-h .hero-transition-fx:before{height:2px}
.hero-character-stage.ribbon-v .hero-transition-fx:before{width:2px}

/* A click relocates the transition stroke to the selected point. */
.hero-character-stage.has-sequence{cursor:pointer;--hero-impact-x:50%;--hero-impact-y:50%}
.hero-character-stage.ribbon-ne .hero-transition-fx:before,
.hero-character-stage.ribbon-nw .hero-transition-fx:before,
.hero-character-stage.ribbon-h .hero-transition-fx:before{top:calc(var(--hero-impact-y) - 1px)}
.hero-character-stage.ribbon-ne .hero-transition-fx:before,
.hero-character-stage.ribbon-nw .hero-transition-fx:before{left:calc(var(--hero-impact-x) - 85%);transform-origin:50% 50%}
.hero-character-stage.ribbon-v .hero-transition-fx:before{left:calc(var(--hero-impact-x) - 1px)}

/* Final unified strike geometry (kept last to override the legacy ribbon layout). */
.manifesto{border-top:0}
.manifesto{row-gap:1.15rem}
@media(min-width:801px){.manifesto>.section-label,.manifesto>.manifesto-copy{grid-column:2}}

/* Brand opening and persistent top surface. */
.site-header{position:fixed;background:rgba(12,11,13,.82);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px)}
.brand-splash{position:fixed;z-index:15000;inset:0;display:grid;place-items:center;background:#09080a;overflow:hidden;animation:splash-screen-exit .48s cubic-bezier(.7,0,1,.4) 2.05s both}.splash-lockup{position:relative;z-index:2;display:flex;align-items:center;gap:clamp(.5rem,1.2vw,1.1rem);transform:translateX(-1.4vw)}.splash-mark{display:block;width:clamp(50px,6vw,92px);height:clamp(88px,10.5vw,161px);transform-origin:50% 100%;animation:splash-dagger-impact 1.05s cubic-bezier(.12,.9,.2,1) .12s both}.splash-mark img{width:100%;height:100%;object-fit:contain}.splash-name{display:block;color:var(--paper);font:700 clamp(2.1rem,7vw,7.5rem)/1 Manrope,sans-serif;letter-spacing:.075em;white-space:nowrap;clip-path:inset(0 100% 0 0);transform-origin:0 50%;animation:splash-name-reveal .72s cubic-bezier(.12,.88,.2,1) .72s both}.splash-impact{position:absolute;z-index:1;left:calc(50% - clamp(8rem,28vw,31rem));top:50%;width:clamp(180px,32vw,580px);height:2px;background:linear-gradient(90deg,transparent,var(--pink),#fff,var(--pink),transparent);filter:drop-shadow(0 0 8px #fff) drop-shadow(0 0 24px var(--pink));transform-origin:0 50%;animation:splash-impact-line .68s cubic-bezier(.1,.86,.16,1) .56s both}.brand-splash:before{content:"";position:absolute;inset:0;background:radial-gradient(circle at 28% 50%,rgba(237,43,105,.27),transparent 28%);opacity:0;animation:splash-flash .72s ease-out .55s both}
@keyframes splash-dagger-impact{0%{opacity:0;transform:translateY(-70vh) scale(.55,2.2)}38%{opacity:1}60%{transform:translateY(0) scale(.72,1.32)}70%{transform:translateY(0) scale(1.28,.72)}82%{transform:translateY(-5px) scale(.94,1.08)}100%{transform:none}}@keyframes splash-name-reveal{0%{opacity:0;clip-path:inset(0 100% 0 0);transform:translateX(-16px) scaleX(.9)}24%{opacity:1}72%{clip-path:inset(0);transform:translateX(4px) scaleX(1.018)}100%{opacity:1;clip-path:inset(0);transform:none}}@keyframes splash-impact-line{0%{opacity:0;transform:scaleX(0) scaleY(.2)}18%{opacity:1;transform:scaleX(.03) scaleY(3)}58%{opacity:1;transform:scaleX(1) scaleY(1)}100%{opacity:0;transform:scaleX(.2) scaleY(.1)}}@keyframes splash-flash{0%{opacity:0}35%{opacity:1}100%{opacity:0}}@keyframes splash-screen-exit{0%{opacity:1;transform:scale(1)}100%{opacity:0;visibility:hidden;transform:scale(1.025)}}
@media(max-width:600px){.splash-lockup{transform:none;gap:.4rem}.splash-mark{width:38px;height:67px}.splash-name{font-size:clamp(1.55rem,9vw,2.6rem);letter-spacing:.045em}.splash-impact{left:12%;width:76%}}
@media(prefers-reduced-motion:reduce){.brand-splash{display:none}.splash-mark,.splash-name,.splash-impact,.brand-splash:before{animation:none}}

/* Continue the hero's left reading axis through the manifesto. */
.manifesto{grid-template-columns:1fr;padding-left:3.5vw;padding-right:3.5vw}
.manifesto>.section-label,.manifesto>.manifesto-copy{grid-column:1}
@media(max-width:360px){.manifesto{padding-left:18px;padding-right:18px}}

/* Stable GPU-only hero drift; avoids Firefox repaint jitter from object-position. */
@keyframes hero-character-drift{0%{transform:translate3d(var(--hero-parallax-x),var(--hero-parallax-y),0) scale(1)}100%{transform:translate3d(calc(var(--hero-parallax-x) + .7%),calc(var(--hero-parallax-y) - .35%),0) scale(1.025)}}
@keyframes hero-character-drift-firefox{0%{transform:translate3d(var(--hero-parallax-x),var(--hero-parallax-y),0)}100%{transform:translate3d(calc(var(--hero-parallax-x) + .7%),calc(var(--hero-parallax-y) - .35%),0)}}
@supports (-moz-appearance:none){.hero-character-stage .hero-character{filter:none}.hero-character-stage .hero-character.is-active{animation-name:hero-character-drift-firefox;will-change:transform;transform:translateZ(0)}}

/* Displayed portraits stay still; only character-change effects animate. */
.hero-character-stage .hero-character.is-active{animation:none!important;transform:none!important;object-position:50% 100%}
.hero-character-stage.ribbon-h .hero-transition-fx:before,
.hero-character-stage.ribbon-v .hero-transition-fx:before,
.hero-character-stage.ribbon-ne .hero-transition-fx:before,
.hero-character-stage.ribbon-nw .hero-transition-fx:before{left:var(--hero-impact-x);top:var(--hero-impact-y);width:clamp(416px,60.8vmax,1088px);height:2px;background:linear-gradient(90deg,transparent 0,rgba(237,43,105,.08) 14%,var(--pink) 34%,#fff 48%,#fff 52%,var(--pink) 66%,rgba(237,43,105,.08) 86%,transparent 100%);filter:drop-shadow(0 0 4px #fff) drop-shadow(0 0 12px var(--pink));transform:translate(-50%,-50%) rotate(var(--hero-strike-angle)) scaleX(0) scaleY(.25);transform-origin:50% 50%}
.hero-character-stage.is-transitioning.ribbon-h .hero-transition-fx:before,
.hero-character-stage.is-transitioning.ribbon-v .hero-transition-fx:before,
.hero-character-stage.is-transitioning.ribbon-ne .hero-transition-fx:before,
.hero-character-stage.is-transitioning.ribbon-nw .hero-transition-fx:before{animation:hero-unified-click-strike .68s cubic-bezier(.1,.86,.16,1) both}
