:root{--night:#15102a;--night-line:#342b5c;--on-night:#e6e0ff;--on-night-dim:#a99fd2;--violet:#6b4cff;--violet-deep:#4a30d4;--violet-tint:#e9e4ff;--coral:#ff5c7a;--saffron:#ffb84d;--mint:#3fe0b5;--grad:linear-gradient(110deg,#6b4cff,#ff5c7a 55%,#ffb84d);--grad-warm:linear-gradient(110deg,#ff7a95,#ffb84d);--ink:#17122b;--ink-2:#554e66;--line:#e6ddd1;--paper:#fffdf9;--wash:#f6f1ea;--font-display:"Bricolage Grotesque","Segoe UI",system-ui,sans-serif;--font-body:"IBM Plex Sans",system-ui,-apple-system,"Segoe UI",sans-serif;--font-mono:"IBM Plex Mono",ui-monospace,Consolas,monospace;--maxw:1080px;--header-h:72px;--gutter:24px;--radius:22px}*,:after,:before{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:84px}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background:#fffdf9;background:var(--paper);color:#17122b;color:var(--ink);font-family:IBM Plex Sans,system-ui,-apple-system,Segoe UI,sans-serif;font-family:var(--font-body);font-size:1rem;line-height:1.6;margin:0}h1,h2,h3{font-family:Bricolage Grotesque,Segoe UI,system-ui,sans-serif;font-family:var(--font-display);font-weight:600;margin:0}p{margin:0}a{color:#4a30d4;color:var(--violet-deep)}img{display:block;max-width:100%}:focus-visible{outline:3px solid #4a30d4;outline:3px solid var(--violet-deep);outline-offset:3px}.App{display:flex;flex-direction:column;min-height:100vh}.App main{flex:1 1}.wrap{margin:0 auto;max-width:var(--maxw);padding:0 var(--gutter)}.skip-link{background:var(--paper);color:var(--ink);left:-999px;padding:10px 14px;position:absolute;top:0;z-index:20}.skip-link:focus{left:8px;top:8px}.hero :focus-visible,.page-hero :focus-visible,.site-footer :focus-visible,.site-header :focus-visible{outline-color:#fff}.contact :focus-visible{outline-color:var(--ink)}.contact__card :focus-visible{outline-color:var(--violet-deep)}.section--blueprint :focus-visible{outline-color:#fff}.site-header{background:transparent;color:#fff;height:var(--header-h);padding:10px 0 0;position:-webkit-sticky;position:sticky;top:0;z-index:40}.site-header__pill{align-items:center;background:hsla(0,0%,100%,.07);border:1px solid hsla(0,0%,100%,.14);border-radius:999px;display:flex;flex-wrap:wrap;gap:8px 20px;justify-content:space-between;padding:10px 14px 10px 26px;position:relative;transition:background-color .3s ease,box-shadow .3s ease,border-color .3s ease}.site-header.is-scrolled .site-header__pill{-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);background:rgba(21,16,42,.86);border-color:hsla(0,0%,100%,.18);box-shadow:0 18px 36px -20px rgba(0,0,0,.75)}.progress{background:var(--grad);border-radius:3px;bottom:0;height:3px;left:26px;position:absolute;right:26px;-webkit-transform:scaleX(0);transform:scaleX(0);-webkit-transform-origin:left;transform-origin:left}.site-header__menu{align-items:center;display:flex;gap:24px;margin-left:auto}.nav-toggle{align-items:center;background:hsla(0,0%,100%,.12);border:0;border-radius:50%;cursor:pointer;display:none;flex:none;height:44px;justify-content:center;padding:0;width:44px}.nav-toggle span,.nav-toggle span:after,.nav-toggle span:before{background:#fff;border-radius:2px;display:block;height:2px;transition:background-color .25s ease,-webkit-transform .25s ease;transition:transform .25s ease,background-color .25s ease;transition:transform .25s ease,background-color .25s ease,-webkit-transform .25s ease;width:18px}.nav-toggle span{position:relative}.nav-toggle span:after,.nav-toggle span:before{content:"";left:0;position:absolute}.nav-toggle span:before{top:-6px}.nav-toggle span:after{top:6px}.nav-toggle[aria-expanded=true] span{background:transparent}.nav-toggle[aria-expanded=true] span:before{-webkit-transform:translateY(6px) rotate(45deg);transform:translateY(6px) rotate(45deg)}.nav-toggle[aria-expanded=true] span:after{-webkit-transform:translateY(-6px) rotate(-45deg);transform:translateY(-6px) rotate(-45deg)}.lang{background:hsla(0,0%,100%,.1);border-radius:999px;display:flex;gap:2px;padding:3px}.lang button{background:transparent;border:0;border-radius:999px;color:var(--on-night);cursor:pointer;font:600 .78rem/1 var(--font-body);letter-spacing:.04em;min-height:32px;min-width:36px;padding:4px 8px;transition:background-color .2s ease,color .2s ease}.lang button:hover{background:hsla(0,0%,100%,.16);color:#fff}.lang button[aria-pressed=true]{background:#fff;color:var(--ink)}.brand{color:#fff;font-family:var(--font-display);font-size:1.1rem;font-weight:600;text-decoration:none}.nav{display:flex;flex-wrap:wrap;gap:4px}.nav a{border-radius:999px;color:var(--on-night);font-size:.95rem;padding:7px 14px;text-decoration:none;transition:background-color .2s ease,color .2s ease}.nav a:hover,.nav a[aria-current=page]{background:hsla(0,0%,100%,.13);color:#fff}.btn{align-items:center;border:1.5px solid transparent;border-radius:999px;cursor:pointer;display:inline-flex;font:600 .95rem/1.2 var(--font-body);justify-content:center;min-height:46px;padding:12px 26px;text-decoration:none;transition:box-shadow .2s ease,background-color .2s ease,-webkit-transform .2s ease,-webkit-filter .2s ease;transition:transform .2s ease,box-shadow .2s ease,filter .2s ease,background-color .2s ease;transition:transform .2s ease,box-shadow .2s ease,filter .2s ease,background-color .2s ease,-webkit-transform .2s ease,-webkit-filter .2s ease}.btn--hot{background:var(--grad-warm);color:var(--ink)}.btn--hot:hover{box-shadow:0 12px 26px -10px rgba(255,92,122,.7);-webkit-filter:brightness(1.07);filter:brightness(1.07)}@media (prefers-reduced-motion:no-preference){.btn:hover{-webkit-transform:translateY(-2px);transform:translateY(-2px)}}.btn--ghost{border-color:hsla(0,0%,100%,.4);color:#fff}.btn--ghost:hover{background:hsla(0,0%,100%,.12)}.btn[disabled]{cursor:progress;opacity:.7}.hero{background-color:var(--night);background-image:radial-gradient(640px 320px at 62% 108%,rgba(255,184,77,.28),transparent 70%);-webkit-clip-path:ellipse(135% 100% at 50% 0);clip-path:ellipse(135% 100% at 50% 0);color:#fff;isolation:isolate;margin-top:calc(var(--header-h)*-1);overflow:hidden;padding:calc(var(--header-h) + 36px) 0 120px;position:relative}.hero:before,.page-hero:before{background:radial-gradient(circle,#7a5cff,rgba(122,92,255,0) 70%);-webkit-filter:blur(70px);filter:blur(70px);height:540px;opacity:.8;right:-90px;top:-180px;width:540px}.hero:after,.hero:before,.page-hero:before{border-radius:50%;content:"";pointer-events:none;position:absolute;z-index:-1}.hero:after{background:radial-gradient(circle,#ff5c7a,rgba(255,92,122,0) 70%);bottom:-220px;-webkit-filter:blur(80px);filter:blur(80px);height:520px;left:-140px;opacity:.5;width:520px}@media (prefers-reduced-motion:no-preference){.hero:before,.page-hero:before{-webkit-animation:drift 16s ease-in-out infinite alternate;animation:drift 16s ease-in-out infinite alternate}.hero:after{animation:drift 20s ease-in-out infinite alternate-reverse}}@-webkit-keyframes drift{to{-webkit-transform:translate3d(-50px,40px,0) scale(1.12);transform:translate3d(-50px,40px,0) scale(1.12)}}@keyframes drift{to{-webkit-transform:translate3d(-50px,40px,0) scale(1.12);transform:translate3d(-50px,40px,0) scale(1.12)}}.hero__grid{grid-gap:48px;align-items:center;display:grid;gap:48px;grid-template-columns:1.15fr .85fr}.hero__title{-webkit-text-fill-color:transparent;background:linear-gradient(100deg,#fff 10%,#dcd2ff 50%,#ffb9c6);-webkit-background-clip:text;background-clip:text;color:#fff;font-size:clamp(2.8rem,7vw,5rem);letter-spacing:-.02em;line-height:1;margin-bottom:18px}.hero__lead{color:var(--on-night);font-size:1.2rem;line-height:1.5;max-width:36ch}.hero__actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:28px}.resp{-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);background:hsla(0,0%,100%,.07);border:1px solid hsla(0,0%,100%,.16);border-radius:26px;box-shadow:0 34px 60px -34px rgba(0,0,0,.7);color:var(--on-night);font:400 .9rem/1.75 var(--font-mono);overflow-wrap:anywhere;padding:24px 26px;white-space:pre-wrap}.resp__dim{color:var(--on-night-dim)}.resp__indent{display:block;padding-left:1.25rem}.resp__dot{background:var(--mint);border-radius:50%;box-shadow:0 0 10px var(--mint);display:inline-block;height:9px;margin-right:9px;width:9px}@media (prefers-reduced-motion:no-preference){.resp__line{-webkit-animation:resp-in .3s ease-out forwards;animation:resp-in .3s ease-out forwards;-webkit-animation-delay:calc(var(--i)*.13s + .25s);animation-delay:calc(var(--i)*.13s + .25s);opacity:0}}@-webkit-keyframes resp-in{to{opacity:1}}@keyframes resp-in{to{opacity:1}}.proof{border-bottom:1px solid var(--line)}.proof__grid{display:grid;grid-template-columns:repeat(3,1fr)}.proof__item{padding:22px 24px 22px 0}.proof__item+.proof__item{border-left:1px solid var(--line);padding-left:24px}.proof__name{font-family:var(--font-display);font-size:1.1rem;font-weight:600}.proof__text{color:var(--ink-2);font-size:.95rem;margin-top:2px}.section{padding:72px 0}.section--wash{background:var(--wash)}.section-title{font-size:clamp(1.6rem,3.2vw,2.2rem);letter-spacing:-.01em;line-height:1.1;margin-bottom:14px}.section-lede{color:var(--ink-2);margin-bottom:28px;max-width:60ch}.section-head{align-items:baseline;display:flex;flex-wrap:wrap;gap:8px 16px;justify-content:space-between;margin-bottom:14px}.section-head .section-title{margin-bottom:0}.prose{margin-bottom:14px;max-width:62ch}.two-col{grid-gap:48px;gap:48px;grid-template-columns:1fr 1fr}.services,.two-col{align-items:start;display:grid}.services{grid-gap:16px;gap:16px;grid-template-columns:repeat(2,1fr)}.service{background:var(--paper);border:1px solid var(--line);border-radius:22px;padding:0 26px;transition:box-shadow .25s ease,background-color .25s ease}.service[open]{background:var(--wash);box-shadow:0 22px 40px -30px rgba(23,18,43,.4)}.service summary{align-items:center;cursor:pointer;display:flex;font:600 1.2rem/1.2 var(--font-display);gap:16px;justify-content:space-between;list-style:none;padding:18px 0}.service summary::-webkit-details-marker{display:none}.service summary:after{background:var(--violet-tint);border-radius:50%;color:var(--violet-deep);content:"+";display:grid;flex:none;font:500 1.4rem/1 var(--font-body);height:34px;place-items:center;width:34px}.service[open] summary:after{content:"\2013"}.service__body{color:var(--ink-2);padding:0 0 20px}.service__body ul{margin:12px 0 0;padding-left:1.1rem}.steps{grid-gap:16px;display:grid;gap:16px;grid-template-columns:repeat(4,1fr);list-style:none;margin:24px 0 0;padding:0}.step{background:var(--paper);border:1px solid var(--line);border-radius:22px;padding:22px}.step__label{color:var(--violet-deep);font:500 .8rem/1 var(--font-mono);letter-spacing:.08em;text-transform:uppercase}.step__title{font:600 1.2rem/1.2 var(--font-display);margin:2px 0 4px}.step__text{color:var(--ink-2);font-size:.95rem}.work{grid-gap:14px;display:grid;gap:14px;margin-top:18px}.work__row{grid-gap:24px;background:var(--paper);border:1px solid var(--line);display:grid;gap:24px;grid-template-columns:1.1fr 1.4fr 1fr;padding:22px 24px}.work__name{font-size:1.35rem}.work__tag{color:var(--ink-2);font-size:.95rem}.work__label{color:var(--ink-2);font-size:.85rem}.work__more{color:var(--ink-2);margin-top:18px}.section--blueprint{background:linear-gradient(135deg,var(--night) 0,#2b1a63 100%);color:#fff}.section--blueprint .section-title{color:#fff}.section--blueprint .section-lede{color:var(--on-night)}.diagram-scroll{max-width:760px;overflow-x:auto}.diagram{display:block;height:auto;min-width:560px;width:100%}.diagram__lines{fill:none;stroke:var(--mint);stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.diagram__lines rect{fill:hsla(0,0%,100%,.08)}.diagram__text{fill:#fff;font:500 12px var(--font-mono)}.product-grid{grid-gap:16px;display:grid;gap:16px;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));margin-top:18px}.product-card{background:var(--paper);border:1px solid var(--line);border-radius:26px;box-shadow:0 24px 44px -34px rgba(23,18,43,.5);overflow:hidden;padding:30px 26px 26px;position:relative}.product-card:before{background:var(--grad);content:"";height:6px;inset:0 0 auto 0;position:absolute}@media (prefers-reduced-motion:no-preference){.product-card{transition:-webkit-transform .25s ease;transition:transform .25s ease;transition:transform .25s ease,-webkit-transform .25s ease}.product-card:hover{-webkit-transform:translateY(-4px);transform:translateY(-4px)}}.product-card h2,.product-card h3{font-size:1.4rem;margin:12px 0 6px}.product-card p{color:var(--ink-2)}.product-card a{display:inline-block;font-weight:500;margin-top:14px}.chip{align-items:center;display:inline-flex;font-size:.9rem;font-weight:500;gap:7px}.chip__dot{border-radius:50%;height:8px;width:8px}.chip--live{color:#1f6b34}.chip--live .chip__dot{background:#2fa34f}.chip--beta{color:#7a4a06}.chip--beta .chip__dot{background:#e3a21a}.chip--building{color:var(--ink-2)}.chip--building .chip__dot{background:#9a9a9a}.page-hero .chip{color:var(--on-night)}.product-detail{grid-gap:40px;display:grid;gap:40px}.product-detail__shot{border:1px solid var(--line);border-radius:var(--radius);max-width:860px;width:100%}.principles{list-style:none;margin:0;padding:0}.principles li{border-top:1px solid var(--line);font:500 1.15rem/1.35 var(--font-display);padding:14px 0}.principles li:last-child{border-bottom:1px solid var(--line)}.about{grid-gap:48px;align-items:start;display:grid;gap:48px;grid-template-columns:320px 1fr}.skills{margin:24px 0 0;max-width:62ch}.skills__row{grid-gap:16px;border-top:1px solid var(--line);display:grid;gap:16px;grid-template-columns:90px 1fr;padding:9px 0}.skills dt{font-weight:500}.skills dd{color:var(--ink-2);margin:0}.quote{margin:0;max-width:720px}.quote p{font:500 clamp(1.4rem,3vw,1.9rem) /1.3 var(--font-display)}.quote footer{color:var(--ink-2);margin-top:12px}.contact{background:linear-gradient(135deg,#ff8f6b,#ffb84d);border-radius:56px 56px 0 0;padding:84px 0}.contact__title{color:var(--ink);font-size:clamp(2rem,4.5vw,3rem);letter-spacing:-.01em;line-height:1.05;margin-bottom:12px}.contact__lede{color:var(--ink);font-size:1.1rem;max-width:40ch}.contact__alt{color:var(--ink);margin-top:20px}.contact__alt a{color:var(--ink);font-weight:600}.contact__card{background:var(--paper);border-radius:28px;box-shadow:0 40px 70px -40px rgba(23,18,43,.55);padding:30px}.contact__card--plain{background:var(--wash);border:1px solid var(--line)}.response-times{color:var(--ink);margin:20px 0 0;max-width:36ch}.response-times div{border-top:1px solid rgba(23,18,43,.25);display:flex;gap:16px;justify-content:space-between;padding:8px 0}.response-times dt{font-weight:500}.response-times dd{margin:0}.field{margin-bottom:16px}.field label{display:block;font-size:.9rem;font-weight:500;margin-bottom:6px}.field input,.field select,.field textarea{background:#fff;border:1.5px solid #8b819b;border-radius:14px;color:var(--ink);font:inherit;padding:12px 14px;width:100%}.field input:focus,.field select:focus,.field textarea:focus{border-color:var(--violet-deep);box-shadow:0 0 0 3px rgba(107,76,255,.18)}.field [aria-invalid=true]{border-color:#b3261e}.field__error{color:#b3261e;font-size:.9rem;margin-top:6px}.form__trap{height:0;left:-9999px;opacity:0;position:absolute;width:0}.form__note{color:var(--ink-2);font-size:.9rem;margin-top:12px}.form-result h3{font-size:1.4rem;margin-bottom:6px}.page-hero{background:var(--night);-webkit-clip-path:ellipse(140% 100% at 50% 0);clip-path:ellipse(140% 100% at 50% 0);color:#fff;isolation:isolate;margin-top:calc(var(--header-h)*-1);overflow:hidden;padding:calc(var(--header-h) + 28px) 0 90px;position:relative}.page-hero__back{color:var(--on-night);display:block;margin-bottom:18px;width:-webkit-fit-content;width:-moz-fit-content;width:fit-content}.page-hero__title{color:#fff;font-size:clamp(2.2rem,5vw,3.6rem);letter-spacing:-.02em;line-height:1.05;margin:6px 0 12px}.page-hero__lead{color:var(--on-night);font-size:1.15rem;max-width:52ch}.repo-list{border-bottom:1px solid var(--line);list-style:none;margin:0;padding:0}.repo{grid-gap:24px;align-items:center;border-top:1px solid var(--line);display:grid;gap:24px;grid-template-columns:1fr auto;padding:22px 0}.repo__title{font-size:1.25rem}.repo__text{color:var(--ink-2);margin-top:2px;max-width:60ch}.repo__side{align-items:center;display:flex;gap:20px}.repo__tech{color:var(--ink-2);font:400 .85rem var(--font-mono)}.site-footer{background:var(--night);padding:44px 0 26px}.site-footer,.site-footer a{color:var(--on-night)}.site-footer__row{display:flex;flex-wrap:wrap;gap:20px;justify-content:space-between}.site-footer__name{color:#fff;font:600 1.15rem var(--font-display)}.site-footer__sub{color:var(--on-night-dim)}.site-footer__links{display:flex;gap:22px}.site-footer__copy{border-top:1px solid var(--night-line);color:var(--on-night-dim);font-size:.9rem;margin-top:28px;padding-top:16px}@media (max-width:820px){:root{--header-h:66px;--gutter:16px}.site-header__pill{flex-wrap:nowrap;padding:8px 8px 8px 20px}.nav-toggle{display:inline-flex}.progress{left:20px;right:20px}.site-header__menu{align-items:stretch;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);background:rgba(21,16,42,.97);border:1px solid hsla(0,0%,100%,.16);border-radius:28px;box-shadow:0 24px 40px -20px rgba(0,0,0,.8);display:none;flex-direction:column;gap:10px;left:0;margin:0;padding:12px;position:absolute;right:0;top:calc(100% + 8px)}.site-header__menu.is-open{display:flex}.nav{flex-direction:column;gap:2px}.nav a{font-size:1.05rem;padding:13px 18px}.lang{align-self:flex-start;margin:4px 4px 2px}.lang button{min-height:40px;min-width:44px}.floater:nth-child(n+5){display:none}.avatar{max-width:260px}.contact{border-radius:36px 36px 0 0}.work__row{padding:18px}.section{padding:48px 0}.hero{padding-bottom:80px}.about,.hero__grid,.two-col{gap:32px;grid-template-columns:1fr}.about__photo{max-width:280px}.contact,.section{padding:52px 0}.proof__grid{grid-template-columns:1fr}.proof__item,.proof__item+.proof__item{border-left:0;padding:16px 0}.proof__item+.proof__item{border-top:1px solid var(--line)}.services{grid-template-columns:1fr}.steps{grid-template-columns:1fr 1fr}.repo,.work__row{gap:10px;grid-template-columns:1fr}}@media (max-width:480px){.skills__row,.steps{grid-template-columns:1fr}.skills__row{gap:2px}}.edu{color:var(--ink-2);font-size:.95rem;margin-bottom:0;margin-top:14px}.edu strong{color:var(--ink)}.work__link{display:inline-block;font-weight:500;margin-top:4px}.sr-only{clip:rect(0,0,0,0);border:0;height:1px;margin:-1px;padding:0;white-space:nowrap;width:1px}.floaters,.sr-only{overflow:hidden;position:absolute}.floaters{inset:0;pointer-events:none;z-index:0}.floater{color:hsla(0,0%,100%,.28);font:500 1rem/1 var(--font-mono);position:absolute;-webkit-transform:rotate(var(--rot));transform:rotate(var(--rot))}.hero__grid{position:relative;z-index:1}@media (prefers-reduced-motion:no-preference){.floater{-webkit-animation:float var(--dur) ease-in-out var(--delay) infinite alternate;animation:float var(--dur) ease-in-out var(--delay) infinite alternate}}@-webkit-keyframes float{0%{-webkit-transform:translateZ(0) rotate(var(--rot));transform:translateZ(0) rotate(var(--rot))}to{-webkit-transform:translate3d(14px,-26px,0) rotate(calc(var(--rot)*-1));transform:translate3d(14px,-26px,0) rotate(calc(var(--rot)*-1))}}@keyframes float{0%{-webkit-transform:translateZ(0) rotate(var(--rot));transform:translateZ(0) rotate(var(--rot))}to{-webkit-transform:translate3d(14px,-26px,0) rotate(calc(var(--rot)*-1));transform:translate3d(14px,-26px,0) rotate(calc(var(--rot)*-1))}}.marquee{background:var(--wash);border-bottom:1px solid var(--line);overflow:hidden}.marquee__track{display:flex;width:-webkit-max-content;width:max-content}.marquee__row{display:flex;gap:12px;list-style:none;margin:0;padding:16px 6px 16px 0}.marquee__row li{background:var(--paper);border:1px solid var(--line);border-radius:999px;color:var(--ink-2);flex:none;font:500 .85rem/1.2 var(--font-mono);padding:6px 16px;transition:color .2s ease,border-color .2s ease,-webkit-transform .2s ease;transition:transform .2s ease,color .2s ease,border-color .2s ease;transition:transform .2s ease,color .2s ease,border-color .2s ease,-webkit-transform .2s ease}.marquee__row li:hover{border-color:var(--violet);color:var(--violet-deep);-webkit-transform:translateY(-3px) rotate(-2deg);transform:translateY(-3px) rotate(-2deg)}@media (prefers-reduced-motion:no-preference){.marquee__track{-webkit-animation:marquee 38s linear infinite;animation:marquee 38s linear infinite}.marquee:hover .marquee__track{-webkit-animation-play-state:paused;animation-play-state:paused}}@media (prefers-reduced-motion:reduce){.marquee__track{flex-wrap:wrap;width:auto}.marquee__row[aria-hidden=true]{display:none}.marquee__row{flex-wrap:wrap;padding-left:var(--gutter)}}@-webkit-keyframes marquee{to{-webkit-transform:translateX(-50%);transform:translateX(-50%)}}@keyframes marquee{to{-webkit-transform:translateX(-50%);transform:translateX(-50%)}}@media (prefers-reduced-motion:no-preference){.reveal-ready [data-reveal]{opacity:0;-webkit-transform:translateY(28px);transform:translateY(28px);transition:opacity .7s ease,-webkit-transform .7s cubic-bezier(.2,.8,.2,1);transition:opacity .7s ease,transform .7s cubic-bezier(.2,.8,.2,1);transition:opacity .7s ease,transform .7s cubic-bezier(.2,.8,.2,1),-webkit-transform .7s cubic-bezier(.2,.8,.2,1)}.reveal-ready [data-reveal].is-in{opacity:1;-webkit-transform:none;transform:none}}.work__row{border-radius:22px;transition:background-color .25s ease,-webkit-transform .25s ease;transition:background-color .25s ease,transform .25s ease;transition:background-color .25s ease,transform .25s ease,-webkit-transform .25s ease}.work__row:hover{background:var(--violet-tint)}.work__name{transition:color .2s ease}.work__row:hover .work__name{color:var(--violet-deep)}.principles li{transition:padding-left .25s ease,color .25s ease}.principles li:hover{color:var(--violet-deep);padding-left:12px}.skills__row{transition:background-color .2s ease}.skills__row:hover{background:var(--violet-tint)}.proof__name{transition:color .2s ease}.proof__item:hover .proof__name{color:var(--violet-deep)}.service summary:after{transition:background-color .2s ease,-webkit-transform .3s ease;transition:transform .3s ease,background-color .2s ease;transition:transform .3s ease,background-color .2s ease,-webkit-transform .3s ease}.service summary:hover:after{-webkit-transform:rotate(90deg) scale(1.12);transform:rotate(90deg) scale(1.12)}.site-footer a{transition:color .2s ease}.site-footer a:hover{color:#fff}@media (prefers-reduced-motion:no-preference){.work__row:hover{-webkit-transform:translateX(6px);transform:translateX(6px)}.step{transition:box-shadow .25s ease,-webkit-transform .25s ease;transition:transform .25s ease,box-shadow .25s ease;transition:transform .25s ease,box-shadow .25s ease,-webkit-transform .25s ease}.step:hover{box-shadow:0 22px 36px -24px rgba(23,18,43,.45);-webkit-transform:translateY(-6px) rotate(-1.2deg);transform:translateY(-6px) rotate(-1.2deg)}.step:nth-child(2n):hover{-webkit-transform:translateY(-6px) rotate(1.2deg);transform:translateY(-6px) rotate(1.2deg)}.product-card:hover{-webkit-transform:translateY(-5px) rotate(-.6deg);transform:translateY(-5px) rotate(-.6deg)}.btn--hot:hover{-webkit-animation:wiggle .5s ease;animation:wiggle .5s ease}.btn:hover{-webkit-transform:none;transform:none}}@-webkit-keyframes wiggle{20%{-webkit-transform:rotate(-3deg) scale(1.04);transform:rotate(-3deg) scale(1.04)}50%{-webkit-transform:rotate(3deg) scale(1.06);transform:rotate(3deg) scale(1.06)}80%{-webkit-transform:rotate(-1.5deg) scale(1.03);transform:rotate(-1.5deg) scale(1.03)}}@keyframes wiggle{20%{-webkit-transform:rotate(-3deg) scale(1.04);transform:rotate(-3deg) scale(1.04)}50%{-webkit-transform:rotate(3deg) scale(1.06);transform:rotate(3deg) scale(1.06)}80%{-webkit-transform:rotate(-1.5deg) scale(1.03);transform:rotate(-1.5deg) scale(1.03)}}.avatar{background:none;border:0;color:inherit;cursor:pointer;font:inherit;max-width:320px;padding:0;position:relative}.avatar,.avatar svg{border-radius:36px;display:block;width:100%}.avatar svg{box-shadow:0 30px 50px -34px rgba(23,18,43,.6);height:auto;transition:-webkit-transform .3s cubic-bezier(.3,1.6,.5,1);transition:transform .3s cubic-bezier(.3,1.6,.5,1);transition:transform .3s cubic-bezier(.3,1.6,.5,1),-webkit-transform .3s cubic-bezier(.3,1.6,.5,1)}.avatar__pupil{transition:-webkit-transform .12s ease-out;transition:transform .12s ease-out;transition:transform .12s ease-out,-webkit-transform .12s ease-out}@media (prefers-reduced-motion:no-preference){.avatar:hover svg{-webkit-transform:rotate(-2.5deg) scale(1.04);transform:rotate(-2.5deg) scale(1.04)}.avatar:active svg{-webkit-transform:scale(.97);transform:scale(.97)}.avatar__blink{-webkit-animation:blink 5s infinite;animation:blink 5s infinite;transform-box:fill-box;-webkit-transform-origin:center;transform-origin:center}}@-webkit-keyframes blink{0%,92%,to{-webkit-transform:scaleY(1);transform:scaleY(1)}95%{-webkit-transform:scaleY(.08);transform:scaleY(.08)}}@keyframes blink{0%,92%,to{-webkit-transform:scaleY(1);transform:scaleY(1)}95%{-webkit-transform:scaleY(.08);transform:scaleY(.08)}}.avatar__bubble{border:2.5px solid var(--ink);border-radius:20px;bottom:calc(100% + 12px);color:var(--ink);font:600 .95rem/1.3 var(--font-display);max-width:min(260px,80vw);padding:10px 16px;text-align:center;-webkit-transform:translateX(-50%);transform:translateX(-50%);width:-webkit-max-content;width:max-content;z-index:3}.avatar__bubble,.avatar__bubble:after{background:#fff;left:50%;position:absolute}.avatar__bubble:after{border-bottom:2.5px solid var(--ink);border-right:2.5px solid var(--ink);content:"";height:14px;top:100%;-webkit-transform:translate(-50%,-8px) rotate(45deg);transform:translate(-50%,-8px) rotate(45deg);width:14px}@media (prefers-reduced-motion:no-preference){.avatar__bubble{-webkit-animation:bubble-in .35s cubic-bezier(.3,1.6,.5,1);animation:bubble-in .35s cubic-bezier(.3,1.6,.5,1)}}@-webkit-keyframes bubble-in{0%{opacity:0;-webkit-transform:translateX(-50%) scale(.6);transform:translateX(-50%) scale(.6)}}@keyframes bubble-in{0%{opacity:0;-webkit-transform:translateX(-50%) scale(.6);transform:translateX(-50%) scale(.6)}}.burst-layer{inset:0;overflow:hidden;pointer-events:none;position:fixed;z-index:60}.burst{-webkit-animation:burst 1s ease-out forwards;animation:burst 1s ease-out forwards;font-size:1.7rem;line-height:1;position:absolute}@-webkit-keyframes burst{0%{opacity:1;-webkit-transform:translate(-50%,-50%) scale(.4);transform:translate(-50%,-50%) scale(.4)}to{opacity:0;-webkit-transform:translate(calc(-50% + var(--dx)),calc(-50% - 120px)) rotate(var(--rot)) scale(1.25);transform:translate(calc(-50% + var(--dx)),calc(-50% - 120px)) rotate(var(--rot)) scale(1.25)}}@keyframes burst{0%{opacity:1;-webkit-transform:translate(-50%,-50%) scale(.4);transform:translate(-50%,-50%) scale(.4)}to{opacity:0;-webkit-transform:translate(calc(-50% + var(--dx)),calc(-50% - 120px)) rotate(var(--rot)) scale(1.25);transform:translate(calc(-50% + var(--dx)),calc(-50% - 120px)) rotate(var(--rot)) scale(1.25)}}.testi-grid{grid-gap:20px;display:grid;gap:20px;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));margin-top:22px}.testi{background:var(--paper);border:2px solid var(--ink);border-radius:26px;box-shadow:6px 6px 0 var(--violet);margin:0;padding:34px 26px 22px;position:relative;transition:box-shadow .25s ease,-webkit-transform .25s ease;transition:transform .25s ease,box-shadow .25s ease;transition:transform .25s ease,box-shadow .25s ease,-webkit-transform .25s ease}.testi:before{background:var(--saffron);border:2px solid var(--ink);border-radius:50%;color:var(--ink);content:"\201C";display:grid;font:700 2rem/1 var(--font-display);height:42px;left:20px;padding-top:8px;place-items:center;position:absolute;top:-18px;width:42px}.testi blockquote{font:500 1.1rem/1.45 var(--font-display);margin:0}.testi figcaption{color:var(--ink-2);display:grid;font-size:.95rem;margin-top:14px}.testi figcaption strong{color:var(--ink)}.testi__react{display:flex;gap:8px;margin-top:16px}.testi__react button{align-items:center;background:var(--wash);border:1.5px solid var(--line);border-radius:999px;cursor:pointer;display:inline-flex;font:500 .95rem/1 var(--font-body);gap:6px;min-height:40px;padding:4px 12px;transition:border-color .15s ease,-webkit-transform .15s ease;transition:transform .15s ease,border-color .15s ease;transition:transform .15s ease,border-color .15s ease,-webkit-transform .15s ease}.testi__react button:hover{border-color:var(--violet);-webkit-transform:scale(1.1) rotate(-4deg);transform:scale(1.1) rotate(-4deg)}@media (prefers-reduced-motion:no-preference){.testi:hover{box-shadow:9px 9px 0 var(--coral);-webkit-transform:translate(-3px,-3px) rotate(-.8deg);transform:translate(-3px,-3px) rotate(-.8deg)}.testi:nth-child(2n):hover{-webkit-transform:translate(-3px,-3px) rotate(.8deg);transform:translate(-3px,-3px) rotate(.8deg)}}.avatar,.contact__card,.principles li,.product-card,.proof__item,.repo,.service,.step,.testi,.work__row{cursor:grab;position:relative}.is-lifted{box-shadow:0 34px 50px -22px rgba(23,18,43,.55);cursor:grabbing;user-select:none;-webkit-user-select:none;will-change:translate,rotate,scale}body.is-dragging,body.is-dragging *{cursor:grabbing!important;user-select:none;-webkit-user-select:none}.play-reset{align-items:center;background:var(--saffron);border:2px solid var(--ink);border-radius:999px;bottom:16px;box-shadow:4px 4px 0 var(--ink);color:var(--ink);cursor:pointer;display:inline-flex;font:700 .95rem/1 var(--font-body);gap:8px;min-height:46px;opacity:0;padding:0 20px 0 16px;pointer-events:none;position:fixed;right:16px;-webkit-transform:translateY(90px);transform:translateY(90px);transition:opacity .2s ease,box-shadow .15s ease,-webkit-transform .4s cubic-bezier(.3,1.6,.5,1);transition:transform .4s cubic-bezier(.3,1.6,.5,1),opacity .2s ease,box-shadow .15s ease;transition:transform .4s cubic-bezier(.3,1.6,.5,1),opacity .2s ease,box-shadow .15s ease,-webkit-transform .4s cubic-bezier(.3,1.6,.5,1);z-index:50}.play-reset.is-on{opacity:1;pointer-events:auto;-webkit-transform:none;transform:none}.play-reset.is-on:hover{box-shadow:6px 6px 0 var(--ink);-webkit-transform:translate(-2px,-2px) rotate(-2deg);transform:translate(-2px,-2px) rotate(-2deg)}.play-reset__icon{display:inline-block;font-size:1.3rem;line-height:1;transition:-webkit-transform .5s ease;transition:transform .5s ease;transition:transform .5s ease,-webkit-transform .5s ease}.play-reset:hover .play-reset__icon{-webkit-transform:rotate(-1turn);transform:rotate(-1turn)}.play-reset :focus-visible,.play-reset:focus-visible{outline-color:var(--ink)}.play-hint,.play-toast{border-radius:999px;bottom:26px;font:600 .95rem/1.2 var(--font-body);left:50%;max-width:calc(100vw - 32px);padding:11px 20px;position:fixed;text-align:center;-webkit-transform:translateX(-50%);transform:translateX(-50%);z-index:50}.play-toast{background:var(--ink);color:#fff}.play-hint{background:#fff;border:2px solid var(--ink);box-shadow:4px 4px 0 var(--violet);color:var(--ink)}@media (prefers-reduced-motion:no-preference){.play-hint,.play-toast{-webkit-animation:toast-in .4s cubic-bezier(.3,1.6,.5,1);animation:toast-in .4s cubic-bezier(.3,1.6,.5,1)}}@-webkit-keyframes toast-in{0%{opacity:0;-webkit-transform:translate(-50%,24px) scale(.85);transform:translate(-50%,24px) scale(.85)}}@keyframes toast-in{0%{opacity:0;-webkit-transform:translate(-50%,24px) scale(.85);transform:translate(-50%,24px) scale(.85)}}.play-ripple{-webkit-animation:ripple .9s ease-out forwards;animation:ripple .9s ease-out forwards;border:3px solid var(--saffron);border-radius:50%;height:24px;margin:-12px 0 0 -12px;pointer-events:none;position:fixed;width:24px;z-index:55}@-webkit-keyframes ripple{to{border-width:.4px;opacity:0;-webkit-transform:scale(90);transform:scale(90)}}@keyframes ripple{to{border-width:.4px;opacity:0;-webkit-transform:scale(90);transform:scale(90)}}@media (max-width:820px){.play-reset{bottom:12px;right:12px}.play-hint,.play-toast{bottom:74px}}.about__side{grid-gap:22px;display:grid;gap:22px;min-width:0}@media (prefers-reduced-motion:no-preference){.avatar.is-talking svg{-webkit-animation:talk-bob .5s ease-in-out infinite alternate;animation:talk-bob .5s ease-in-out infinite alternate}.avatar.is-talking .avatar__mouth{-webkit-animation:talk-mouth .2s ease-in-out infinite alternate;animation:talk-mouth .2s ease-in-out infinite alternate;transform-box:fill-box;-webkit-transform-origin:50% 0;transform-origin:50% 0}}@-webkit-keyframes talk-bob{0%{-webkit-transform:rotate(-1.4deg) translateY(0);transform:rotate(-1.4deg) translateY(0)}to{-webkit-transform:rotate(1.4deg) translateY(-4px);transform:rotate(1.4deg) translateY(-4px)}}@keyframes talk-bob{0%{-webkit-transform:rotate(-1.4deg) translateY(0);transform:rotate(-1.4deg) translateY(0)}to{-webkit-transform:rotate(1.4deg) translateY(-4px);transform:rotate(1.4deg) translateY(-4px)}}@-webkit-keyframes talk-mouth{0%{-webkit-transform:scaleY(.55);transform:scaleY(.55)}to{-webkit-transform:scaleY(1.45);transform:scaleY(1.45)}}@keyframes talk-mouth{0%{-webkit-transform:scaleY(.55);transform:scaleY(.55)}to{-webkit-transform:scaleY(1.45);transform:scaleY(1.45)}}.ask{background:var(--night);border:1px solid var(--night-line);border-radius:24px;color:var(--on-night);padding:18px}.ask__title{color:#fff;font-size:1.05rem;margin:0 0 12px}.ask__chips{display:flex;flex-wrap:wrap;gap:8px}.ask__chip{background:transparent;border:1.5px solid var(--night-line);border-radius:999px;color:var(--on-night);cursor:pointer;font:500 .85rem/1.2 var(--font-body);padding:7px 12px;transition:background .15s ease,border-color .15s ease,-webkit-transform .2s cubic-bezier(.3,1.6,.5,1);transition:background .15s ease,border-color .15s ease,transform .2s cubic-bezier(.3,1.6,.5,1);transition:background .15s ease,border-color .15s ease,transform .2s cubic-bezier(.3,1.6,.5,1),-webkit-transform .2s cubic-bezier(.3,1.6,.5,1)}.ask__chip:hover{background:var(--violet);border-color:var(--violet);color:#fff;-webkit-transform:translateY(-2px) rotate(-1.5deg);transform:translateY(-2px) rotate(-1.5deg)}.ask__chip:focus-visible,.ask__cta:focus-visible,.ask__form button:focus-visible,.ask__form input:focus-visible{outline-color:var(--saffron)}.ask__answer{background:hsla(0,0%,100%,.07);border-radius:16px;font-size:.95rem;line-height:1.5;margin-top:14px;min-height:5.6em;padding:12px 14px}.ask__emoji{display:inline-block;font-size:1.2rem;margin-right:8px;vertical-align:-2px}.ask__idle{color:var(--on-night-dim)}.ask__cta{color:var(--saffron);display:inline-block;font-weight:700;margin-left:8px}.ask__form{display:flex;gap:8px;margin-top:12px}.ask__form input{background:transparent;border:1.5px solid var(--night-line);border-radius:999px;color:#fff;flex:1 1;font:.9rem var(--font-body);min-width:0;padding:10px 14px}.ask__form input::-webkit-input-placeholder{color:var(--on-night-dim)}.ask__form input::placeholder{color:var(--on-night-dim)}.ask__form button{background:var(--saffron);border:0;border-radius:999px;color:var(--ink);cursor:pointer;font:700 .9rem var(--font-body);padding:0 16px}@media (max-width:820px){.about__side{max-width:480px}}.term{-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);background:rgba(14,10,32,.72);border:1px solid hsla(0,0%,100%,.16);border-radius:22px;box-shadow:0 34px 60px -34px rgba(0,0,0,.7);color:var(--on-night);cursor:text;font:400 .88rem/1.65 var(--font-mono);min-width:0;overflow:hidden}.term__bar{align-items:center;border-bottom:1px solid hsla(0,0%,100%,.12);color:var(--on-night-dim);display:flex;font-size:.78rem;gap:12px;padding:11px 16px}.term__dots{display:inline-flex;gap:6px}.term__dots i{background:var(--coral);border-radius:50%;height:11px;width:11px}.term__dots i:nth-child(2){background:var(--saffron)}.term__dots i:nth-child(3){background:var(--mint)}.term__body{height:330px;overflow-wrap:anywhere;overflow-y:auto;overscroll-behavior:contain;padding:14px 18px 16px;white-space:pre-wrap}.term__prompt{color:var(--mint);font-weight:600}.term__out{display:block}.term__hint{color:var(--on-night-dim);margin-bottom:8px}.term__entry{margin-top:8px}.term__link{color:var(--saffron);text-decoration:underline;text-underline-offset:3px}.term__form{align-items:center;display:flex;gap:8px;margin-top:8px}.term__form input{background:transparent;border:0;caret-color:var(--mint);color:#fff;flex:1 1;font:inherit;min-width:0;outline:0;padding:2px 0}.term__form input::-webkit-input-placeholder{color:var(--on-night-dim);opacity:.7}.term__form input::placeholder{color:var(--on-night-dim);opacity:.7}.term:focus-within{border-color:var(--mint);box-shadow:0 34px 60px -34px rgba(0,0,0,.7),0 0 0 3px rgba(63,224,181,.25)}@media (prefers-reduced-motion:no-preference){.term__line{-webkit-animation:resp-in .3s ease-out forwards;animation:resp-in .3s ease-out forwards;-webkit-animation-delay:calc(var(--i)*.11s + .25s);animation-delay:calc(var(--i)*.11s + .25s);opacity:0}}@media (max-width:820px){.term__body{height:280px}.term__form input{font-size:16px}}.hero,.page-hero,body,html{overflow-x:clip}.tiny-canvas{inset:0;pointer-events:none;position:fixed;z-index:36}.tiny-hover,.tiny-hover body{cursor:pointer}.tiny-hud{bottom:16px;left:16px;position:fixed;z-index:50}.tiny-chip{align-items:center;background:#fff;border:2px solid var(--ink);border-radius:999px;box-shadow:3px 3px 0 var(--ink);color:var(--ink);cursor:pointer;display:inline-flex;font:700 .85rem/1 var(--font-body);gap:8px;min-height:40px;padding:0 14px;transition:box-shadow .15s ease,-webkit-transform .2s cubic-bezier(.3,1.6,.5,1);transition:transform .2s cubic-bezier(.3,1.6,.5,1),box-shadow .15s ease;transition:transform .2s cubic-bezier(.3,1.6,.5,1),box-shadow .15s ease,-webkit-transform .2s cubic-bezier(.3,1.6,.5,1)}.tiny-chip:hover{box-shadow:4px 4px 0 var(--ink);-webkit-transform:translate(-1px,-1px) rotate(-1.5deg);transform:translate(-1px,-1px) rotate(-1.5deg)}.tiny-chip[aria-pressed=false]{background:var(--wash);color:var(--ink-2)}.tiny-chip :focus-visible,.tiny-chip:focus-visible{outline-color:var(--ink)}.tiny-chip__stats{-webkit-font-feature-settings:"tnum";font-feature-settings:"tnum";border-left:1.5px solid var(--line);display:inline-flex;font-variant-numeric:tabular-nums;gap:8px;padding-left:8px}.tiny-chip__count{align-items:center;display:inline-flex;gap:4px}.tiny-chip__count i{border:1.5px solid var(--ink);border-radius:50%;height:9px;width:9px}.tiny-toast{background:var(--ink);border-radius:18px;bottom:66px;color:#fff;font:600 .9rem/1.35 var(--font-body);left:16px;max-width:min(320px,calc(100vw - 32px));padding:10px 16px;position:fixed;z-index:50}@media (prefers-reduced-motion:no-preference){.tiny-toast{-webkit-animation:tiny-in .4s cubic-bezier(.3,1.6,.5,1);animation:tiny-in .4s cubic-bezier(.3,1.6,.5,1)}}@-webkit-keyframes tiny-in{0%{opacity:0;-webkit-transform:translateY(18px) scale(.9);transform:translateY(18px) scale(.9)}}@keyframes tiny-in{0%{opacity:0;-webkit-transform:translateY(18px) scale(.9);transform:translateY(18px) scale(.9)}}@media (max-width:820px){.tiny-hud{bottom:12px;left:12px}.tiny-chip{min-height:36px;padding:0 11px}.tiny-chip__label{display:none}.tiny-toast{bottom:58px;left:12px}}.chip--soon{color:var(--ink-2)}.chip--soon .chip__dot{background:transparent;border:2px dashed #9a9a9a}.game-art{border-radius:20px;box-shadow:inset 0 -30px 50px -30px rgba(23,18,43,.35);display:grid;height:120px;place-items:center}.game-art span{-webkit-filter:drop-shadow(0 6px 8px rgba(23,18,43,.35));filter:drop-shadow(0 6px 8px rgba(23,18,43,.35));font-size:3rem;line-height:1}.game-art--big{height:100%;min-height:200px}.game-art--big span{font-size:5.2rem}@media (prefers-reduced-motion:no-preference){.game-art span{display:inline-block;transition:-webkit-transform .35s cubic-bezier(.3,1.6,.5,1);transition:transform .35s cubic-bezier(.3,1.6,.5,1);transition:transform .35s cubic-bezier(.3,1.6,.5,1),-webkit-transform .35s cubic-bezier(.3,1.6,.5,1)}.game-card:hover .game-art span,.game-feature:hover .game-art span{-webkit-transform:rotate(-10deg) scale(1.18);transform:rotate(-10deg) scale(1.18)}}.game-feature{grid-gap:28px;align-items:stretch;background:var(--paper);border:1px solid var(--line);border-radius:30px;box-shadow:0 24px 44px -34px rgba(23,18,43,.5);display:grid;gap:28px;grid-template-columns:.8fr 1.2fr;margin-top:18px;padding:22px}.game-feature__body{align-self:center}.game-feature h3{font-size:clamp(1.6rem,3.4vw,2.2rem);margin:12px 0 8px}.game-feature p{color:var(--ink-2);max-width:52ch}.game-card__meta{align-items:center;display:flex;flex-wrap:wrap;gap:10px}.game-tag{background:var(--violet-tint);border-radius:999px;color:var(--violet-deep);font:600 .75rem/1.5 var(--font-body);padding:3px 10px}.game-card__actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:22px}.btn--ghost-dark{background:transparent;border:2px solid var(--ink);color:var(--ink)}.game-grid{grid-gap:16px;display:grid;gap:16px;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));margin-top:18px}.game-card{background:var(--paper);border:1px solid var(--line);border-radius:26px;box-shadow:0 24px 44px -34px rgba(23,18,43,.5);display:flex;flex-direction:column;gap:10px;padding:16px 16px 20px}.game-card h3{font-size:1.3rem;margin:4px 0 0}.game-card p{color:var(--ink-2);flex:1 1}.game-card a{font-weight:600}@media (max-width:820px){.game-feature{grid-template-columns:1fr;padding:16px}.game-art--big{min-height:140px}}.village-stage{background:radial-gradient(circle at 18% 14%,#fff6c9 0 7%,transparent 8%),linear-gradient(180deg,#bfe3ff,#e8f6ff 34%,#9be3a6 34.2%,#6fcf86);border:2px solid var(--ink);border-radius:30px;box-shadow:6px 6px 0 var(--ink);height:440px;margin-top:18px;overflow:hidden;position:relative}.village-stage:after{background:hsla(37,53%,65%,.7);border-radius:999px;content:"";height:14px;left:8%;position:absolute;right:8%;top:54%;-webkit-transform:rotate(-1.5deg);transform:rotate(-1.5deg)}.village-prop{-webkit-filter:drop-shadow(0 6px 5px rgba(23,18,43,.25));filter:drop-shadow(0 6px 5px rgba(23,18,43,.25));line-height:1;position:absolute;-webkit-user-select:none;user-select:none;z-index:1}.village-note{color:var(--ink-2);font-size:.92rem;margin-top:14px}.cast-grid{grid-gap:16px;display:grid;gap:16px;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));margin-top:22px}.cast-card{align-items:center;background:var(--paper);border:1px solid var(--line);border-radius:26px;box-shadow:0 24px 44px -34px rgba(23,18,43,.5);display:flex;flex-direction:column;gap:6px;padding:20px 16px 18px;text-align:center}.cast-card h3{font-size:1.2rem;margin:4px 0 0}.cast-card p{color:var(--ink-2);flex:1 1;font-size:.92rem}.cast-figure{height:auto;width:78px}@media (prefers-reduced-motion:no-preference){.cast-figure{-webkit-animation:cast-bob 1.6s ease-in-out infinite alternate;animation:cast-bob 1.6s ease-in-out infinite alternate;-webkit-transform-origin:50% 90%;transform-origin:50% 90%}.cast-card:nth-child(2n) .cast-figure{-webkit-animation-delay:-.5s;animation-delay:-.5s}.cast-card:nth-child(3n) .cast-figure{-webkit-animation-delay:-1s;animation-delay:-1s}}@-webkit-keyframes cast-bob{0%{-webkit-transform:rotate(-3deg) translateY(0);transform:rotate(-3deg) translateY(0)}to{-webkit-transform:rotate(3deg) translateY(-4px);transform:rotate(3deg) translateY(-4px)}}@keyframes cast-bob{0%{-webkit-transform:rotate(-3deg) translateY(0);transform:rotate(-3deg) translateY(0)}to{-webkit-transform:rotate(3deg) translateY(-4px);transform:rotate(3deg) translateY(-4px)}}.cast-stats{grid-gap:6px 14px;border-top:1px dashed var(--line);display:grid;font-size:.8rem;gap:6px 14px;grid-template-columns:1fr 1fr;margin:8px 0 0;padding-top:12px;width:100%}.cast-stats div{display:flex;gap:8px;justify-content:space-between}.cast-stats dt{color:var(--ink-2)}.cast-stats dd{-webkit-font-feature-settings:"tnum";font-feature-settings:"tnum";font-variant-numeric:tabular-nums;font-weight:700;margin:0}.locked-grid{grid-gap:14px;display:grid;gap:14px;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));margin:22px 0 6px}.locked-card{align-items:center;border:2px dashed var(--line);border-radius:22px;color:var(--ink-2);display:flex;flex-direction:column;gap:8px;padding:20px 12px;text-align:center}.locked-card h3{font-size:1rem}.locked-card__mark{background:var(--wash);border-radius:50%;color:var(--violet);display:grid;font:700 1.8rem/1 var(--font-display);height:56px;place-items:center;width:56px}@media (max-width:820px){.village-stage{height:400px}.village-prop{font-size:2rem!important}}.bar{background:rgba(23,18,43,.12);border:2px solid var(--ink);border-radius:999px;height:12px;overflow:hidden}.bar i{display:block;height:100%;transition:width .25s ease}.lobby{grid-gap:36px;align-items:start;display:grid;gap:36px;grid-template-columns:1fr 1fr}.lobby__form{grid-gap:18px;display:grid;gap:18px;justify-items:start}.lobby .field{display:block;margin:0;max-width:380px;width:100%}.lobby .field span{display:block;font-size:.9rem;font-weight:600;margin-bottom:6px}.choice{border:0;display:flex;flex-wrap:wrap;gap:8px;margin:0;padding:0}.choice legend{font-size:.9rem;font-weight:600;margin-bottom:8px;padding:0;width:100%}.choice__item{align-items:center;background:#fff;border:2px solid var(--line);border-radius:999px;cursor:pointer;display:inline-flex;font:600 .92rem/1 var(--font-body);gap:8px;min-height:44px;padding:0 18px;position:relative;text-transform:capitalize}.choice__item input{cursor:pointer;inset:0;opacity:0;position:absolute}.choice__item i{background:var(--c);border:2px solid var(--ink);border-radius:50%;height:14px;width:14px}.choice__item.is-on{background:var(--violet-tint);border-color:var(--ink);box-shadow:3px 3px 0 var(--ink)}.choice__item:focus-within{outline:3px solid var(--violet-deep);outline-offset:2px}.lobby__record{color:var(--ink-2);font-size:.9rem}.lobby__how h2{font-size:1.3rem;margin-bottom:10px}.lobby__how ol{grid-gap:10px;color:var(--ink-2);display:grid;gap:10px;margin:0;padding-left:1.3rem}.lobby__keys{color:var(--ink-2);font:500 .85rem var(--font-mono);margin-top:14px}.btn:disabled{cursor:not-allowed;opacity:.45}.battle{margin:0 auto;max-width:920px;position:relative;user-select:none;-webkit-user-select:none}.battle__hud{grid-gap:14px;align-items:center;display:grid;gap:14px;grid-template-columns:1fr auto 1fr;margin-bottom:10px}.battle__castle{grid-gap:4px;display:grid;font:700 .8rem/1 var(--font-body);gap:4px}.battle__castle--right{text-align:right}.battle__time{-webkit-font-feature-settings:"tnum";font-feature-settings:"tnum";background:#fff;border:2px solid var(--ink);border-radius:999px;font:700 1.1rem/1 var(--font-mono);font-variant-numeric:tabular-nums;padding:6px 16px}.battle__canvas{aspect-ratio:800/440;background:#bfe3ff;border:2px solid var(--ink);border-radius:22px;box-shadow:5px 5px 0 var(--ink);display:block;touch-action:manipulation;width:100%}.battle__bar{grid-gap:10px;align-items:stretch;display:grid;gap:10px;grid-template-columns:auto 1fr auto;margin-top:18px}.battle__gold{-webkit-font-feature-settings:"tnum";font-feature-settings:"tnum";align-items:center;background:var(--saffron);border:2px solid var(--ink);border-radius:18px;display:flex;font:700 1.2rem/1 var(--font-mono);font-variant-numeric:tabular-nums;gap:6px;padding:0 14px}.battle__units{grid-gap:8px;display:grid;gap:8px;grid-template-columns:repeat(4,1fr)}.horn-btn,.unit-btn{grid-gap:2px;background:#fff;border:2px solid var(--ink);border-radius:18px;box-shadow:3px 3px 0 var(--ink);color:var(--ink);cursor:pointer;display:grid;font:600 .8rem/1.15 var(--font-body);gap:2px;justify-items:center;overflow:hidden;padding:8px 4px 6px;position:relative;touch-action:manipulation;transition:box-shadow .15s ease,-webkit-transform .15s cubic-bezier(.3,1.6,.5,1);transition:transform .15s cubic-bezier(.3,1.6,.5,1),box-shadow .15s ease;transition:transform .15s cubic-bezier(.3,1.6,.5,1),box-shadow .15s ease,-webkit-transform .15s cubic-bezier(.3,1.6,.5,1)}.horn-btn:active,.unit-btn:active{box-shadow:1px 1px 0 var(--ink);-webkit-transform:translate(2px,2px);transform:translate(2px,2px)}.unit-btn.is-off{opacity:.5}.unit-btn__glyph{font-size:1.5rem;line-height:1}.unit-btn__cost{color:var(--ink-2);font-size:.72rem}.unit-btn__key{color:var(--ink-2);font:700 .65rem var(--font-mono);left:7px;position:absolute;top:4px}.unit-btn__cd{background:rgba(23,18,43,.28);bottom:0;left:0;pointer-events:none;position:absolute;right:0}.horn-btn{align-content:center;background:var(--violet-tint);min-width:92px}.horn-btn small{color:var(--ink-2);font-weight:600}.horn-btn.is-ready{background:var(--coral);color:#fff}.horn-btn.is-ready small{color:#fff}.horn-btn.is-on{background:var(--mint);color:var(--ink)}.battle__quit{background:none;border:0;color:var(--ink-2);cursor:pointer;font:500 .85rem var(--font-body);margin-top:16px;padding:6px 0;text-decoration:underline}.result{background:var(--paper);border:2px solid var(--ink);border-radius:28px;box-shadow:6px 6px 0 var(--ink);margin:0 auto;max-width:520px;padding:28px;text-align:center}.result__title{-webkit-text-fill-color:transparent;background:var(--grad);-webkit-background-clip:text;background-clip:text;font-size:clamp(2rem,6vw,2.8rem)}.result__glory{font:700 1.3rem var(--font-display);margin-top:6px}.result__stats{grid-gap:4px;color:var(--ink-2);display:grid;gap:4px;list-style:none;margin:16px 0;padding:0}.result__note{color:var(--ink-2);font-size:.92rem;margin:8px 0}.result .game-card__actions{justify-content:center}.war{grid-gap:10px;display:grid;gap:10px;margin-top:18px;max-width:560px}.war__row{grid-gap:12px;align-items:center;display:grid;font-weight:600;gap:12px;grid-template-columns:72px 1fr 56px}.war__n{-webkit-font-feature-settings:"tnum";font-feature-settings:"tnum";font-variant-numeric:tabular-nums;text-align:right}.war__top{grid-gap:6px;counter-reset:rank;display:grid;gap:6px;list-style:none;margin:10px 0 0;padding:0}.war__top li{align-items:center;counter-increment:rank;display:flex;gap:10px}.war__top li:before{-webkit-font-feature-settings:"tnum";font-feature-settings:"tnum";color:var(--ink-2);content:counter(rank);font-variant-numeric:tabular-nums;width:1.4em}.war__top i{border:2px solid var(--ink);border-radius:50%;height:12px;width:12px}.war__top b{margin-left:auto}.war__next,.war__offline{color:var(--ink-2);margin-top:14px}@media (max-width:820px){.lobby{gap:26px;grid-template-columns:1fr}.battle__bar{grid-template-columns:1fr 1fr}.battle__units{grid-column:1/-1;grid-row:2}.battle__gold{justify-content:center;min-height:44px}.horn-btn{gap:8px;grid-auto-flow:column;min-height:44px}.unit-btn{min-height:78px;padding:8px 2px 6px}.unit-btn__name{font-size:.72rem}.battle__canvas{border-radius:16px}}.term-hold{min-width:0}.matrix-stage{background:#000;display:grid;inset:0;overflow:hidden;padding:16px;place-items:center;position:fixed;z-index:90}.matrix-rain{height:100%;inset:0;position:absolute;width:100%}@media (prefers-reduced-motion:no-preference){.matrix-stage{-webkit-animation:matrix-in .9s ease-out;animation:matrix-in .9s ease-out}}@-webkit-keyframes matrix-in{0%{-webkit-filter:brightness(3) hue-rotate(40deg);filter:brightness(3) hue-rotate(40deg);opacity:0}}@keyframes matrix-in{0%{-webkit-filter:brightness(3) hue-rotate(40deg);filter:brightness(3) hue-rotate(40deg);opacity:0}}.term--matrix{background:rgba(0,10,3,.84);border-color:color-mix(in srgb,var(--mx) 55%,transparent);box-shadow:0 0 60px -6px color-mix(in srgb,var(--mx) 55%,transparent),inset 0 0 40px rgba(0,0,0,.6);color:var(--mx);cursor:text;position:relative;text-shadow:0 0 6px color-mix(in srgb,var(--mx) 55%,transparent);width:min(780px,94vw);z-index:1}.term--matrix .term__bar{border-color:color-mix(in srgb,var(--mx) 30%,transparent);color:var(--mx)}.term--matrix .term__body{font-size:.95rem;height:min(58vh,460px)}.term--matrix .term__prompt{color:var(--mx)}.term--matrix .term__hint{color:color-mix(in srgb,var(--mx) 65%,#000)}.term--matrix .term__link{color:#eafff0}.term--matrix .term__form input{caret-color:var(--mx);color:#eafff0}.term--matrix .term__form input::-webkit-input-placeholder{color:color-mix(in srgb,var(--mx) 60%,#000)}.term--matrix .term__form input::placeholder{color:color-mix(in srgb,var(--mx) 60%,#000)}.term--matrix .resp__dot{background:var(--mx);box-shadow:0 0 10px var(--mx)}.term--matrix:after{background:repeating-linear-gradient(0deg,rgba(0,0,0,.18),rgba(0,0,0,.18) 1px,transparent 0,transparent 3px);border-radius:inherit;content:"";inset:0;pointer-events:none;position:absolute}.matrix-exit{background:rgba(0,10,30,.8);border:1px solid #4da3ff;border-radius:999px;bottom:16px;color:#9cc9ff;cursor:pointer;font:600 .8rem var(--font-mono);padding:9px 16px;position:absolute;right:16px;z-index:2}.matrix-exit:hover{background:#4da3ff;color:#00101f}@media (prefers-reduced-motion:no-preference){.term--waking{-webkit-animation:term-glitch .35s steps(2) infinite;animation:term-glitch .35s steps(2) infinite;border-color:#1aff6a;color:#1aff6a;text-shadow:0 0 8px #1aff6a}}.term--waking{border-color:#1aff6a;box-shadow:0 0 40px -4px #1aff6a}@-webkit-keyframes term-glitch{0%{-webkit-filter:hue-rotate(0deg);filter:hue-rotate(0deg);-webkit-transform:translate(0);transform:translate(0)}25%{-webkit-filter:hue-rotate(40deg);filter:hue-rotate(40deg);-webkit-transform:translate(-3px,1px) skewX(-1deg);transform:translate(-3px,1px) skewX(-1deg)}50%{-webkit-filter:hue-rotate(-30deg) brightness(1.4);filter:hue-rotate(-30deg) brightness(1.4);-webkit-transform:translate(3px,-1px);transform:translate(3px,-1px)}75%{-webkit-transform:translate(-1px,2px) skewX(1deg);transform:translate(-1px,2px) skewX(1deg)}to{-webkit-transform:translate(0);transform:translate(0)}}@keyframes term-glitch{0%{-webkit-filter:hue-rotate(0deg);filter:hue-rotate(0deg);-webkit-transform:translate(0);transform:translate(0)}25%{-webkit-filter:hue-rotate(40deg);filter:hue-rotate(40deg);-webkit-transform:translate(-3px,1px) skewX(-1deg);transform:translate(-3px,1px) skewX(-1deg)}50%{-webkit-filter:hue-rotate(-30deg) brightness(1.4);filter:hue-rotate(-30deg) brightness(1.4);-webkit-transform:translate(3px,-1px);transform:translate(3px,-1px)}75%{-webkit-transform:translate(-1px,2px) skewX(1deg);transform:translate(-1px,2px) skewX(1deg)}to{-webkit-transform:translate(0);transform:translate(0)}}@media (max-width:820px){.term--matrix .term__body{height:min(54vh,380px)}.matrix-exit{bottom:12px;right:12px}}.pip-wrap{align-items:flex-end;bottom:74px;display:flex;flex-direction:column;gap:6px;position:fixed;right:14px;touch-action:none;z-index:45}.pip-wrap--right{align-items:flex-start}.pip-body{-webkit-tap-highlight-color:transparent;background:none;border:0;border-radius:28px;cursor:grab;padding:0;touch-action:none;width:92px}.pip-body:active{cursor:grabbing}.pip{display:block;-webkit-filter:drop-shadow(0 10px 8px rgba(23,18,43,.28));filter:drop-shadow(0 10px 8px rgba(23,18,43,.28));height:auto;overflow:visible;width:100%}.pip__glow{opacity:.95}.pip__lids{opacity:0}.pip--sleep .pip__lids{opacity:1}.pip--sleep .pip__pupils{opacity:0}.pip--sleep .pip__glow{opacity:.25}.pip__eyes,.pip__lantern,.pip__mouth,.pip__wave{transform-box:fill-box}.pip__wave{-webkit-transform-origin:8% 100%;transform-origin:8% 100%}.pip__lantern{-webkit-transform-origin:70% 0;transform-origin:70% 0}.pip__mouth{-webkit-transform-origin:50% 0;transform-origin:50% 0}.pip__zzz{font-family:var(--font-display)}@media (prefers-reduced-motion:no-preference){.pip-body{-webkit-animation:pip-pop .6s cubic-bezier(.3,1.6,.5,1);animation:pip-pop .6s cubic-bezier(.3,1.6,.5,1)}.pip{-webkit-animation:pip-float 3.4s ease-in-out infinite alternate;animation:pip-float 3.4s ease-in-out infinite alternate}.pip__lantern{-webkit-animation:pip-swing 2.6s ease-in-out infinite alternate;animation:pip-swing 2.6s ease-in-out infinite alternate}.pip__eyes{-webkit-animation:pip-blink 5.5s infinite;animation:pip-blink 5.5s infinite;-webkit-transform-origin:center;transform-origin:center}.pip--wave .pip__wave{-webkit-animation:pip-wave .5s ease-in-out 3 alternate;animation:pip-wave .5s ease-in-out 3 alternate}.pip--lantern .pip__lantern{-webkit-animation:pip-lift 1.2s ease-in-out;animation:pip-lift 1.2s ease-in-out}.pip--look .pip__pupils{-webkit-animation:pip-look 1.6s ease-in-out;animation:pip-look 1.6s ease-in-out}.pip.is-talking .pip__mouth{-webkit-animation:pip-talk .22s ease-in-out infinite alternate;animation:pip-talk .22s ease-in-out infinite alternate}.pip--drag{-webkit-animation:none;animation:none;-webkit-transform:rotate(-6deg) scale(1.06);transform:rotate(-6deg) scale(1.06)}.pip--sleep{-webkit-animation:pip-breathe 3s ease-in-out infinite alternate;animation:pip-breathe 3s ease-in-out infinite alternate}.pip--sleep .pip__zzz{-webkit-animation:pip-zzz 2.4s ease-in-out infinite;animation:pip-zzz 2.4s ease-in-out infinite}.pip-bubble{-webkit-animation:bubble-pop .3s cubic-bezier(.3,1.6,.5,1);animation:bubble-pop .3s cubic-bezier(.3,1.6,.5,1)}}@-webkit-keyframes pip-pop{0%{opacity:0;-webkit-transform:translateY(40px) scale(.5);transform:translateY(40px) scale(.5)}}@keyframes pip-pop{0%{opacity:0;-webkit-transform:translateY(40px) scale(.5);transform:translateY(40px) scale(.5)}}@-webkit-keyframes pip-float{to{-webkit-transform:translateY(-5px);transform:translateY(-5px)}}@keyframes pip-float{to{-webkit-transform:translateY(-5px);transform:translateY(-5px)}}@-webkit-keyframes pip-swing{0%{-webkit-transform:rotate(5deg);transform:rotate(5deg)}to{-webkit-transform:rotate(-5deg);transform:rotate(-5deg)}}@keyframes pip-swing{0%{-webkit-transform:rotate(5deg);transform:rotate(5deg)}to{-webkit-transform:rotate(-5deg);transform:rotate(-5deg)}}@-webkit-keyframes pip-blink{0%,93%,to{-webkit-transform:scaleY(1);transform:scaleY(1)}96%{-webkit-transform:scaleY(.1);transform:scaleY(.1)}}@keyframes pip-blink{0%,93%,to{-webkit-transform:scaleY(1);transform:scaleY(1)}96%{-webkit-transform:scaleY(.1);transform:scaleY(.1)}}@-webkit-keyframes pip-wave{0%{-webkit-transform:rotate(-12deg);transform:rotate(-12deg)}to{-webkit-transform:rotate(26deg);transform:rotate(26deg)}}@keyframes pip-wave{0%{-webkit-transform:rotate(-12deg);transform:rotate(-12deg)}to{-webkit-transform:rotate(26deg);transform:rotate(26deg)}}@-webkit-keyframes pip-lift{50%{-webkit-transform:rotate(-28deg) translateY(-6px);transform:rotate(-28deg) translateY(-6px)}}@keyframes pip-lift{50%{-webkit-transform:rotate(-28deg) translateY(-6px);transform:rotate(-28deg) translateY(-6px)}}@-webkit-keyframes pip-look{0%,to{-webkit-transform:translate(0);transform:translate(0)}30%{-webkit-transform:translate(-3px,-1px);transform:translate(-3px,-1px)}70%{-webkit-transform:translate(3px,-1px);transform:translate(3px,-1px)}}@keyframes pip-look{0%,to{-webkit-transform:translate(0);transform:translate(0)}30%{-webkit-transform:translate(-3px,-1px);transform:translate(-3px,-1px)}70%{-webkit-transform:translate(3px,-1px);transform:translate(3px,-1px)}}@-webkit-keyframes pip-talk{0%{-webkit-transform:scaleY(.6);transform:scaleY(.6)}to{-webkit-transform:scaleY(1.5);transform:scaleY(1.5)}}@keyframes pip-talk{0%{-webkit-transform:scaleY(.6);transform:scaleY(.6)}to{-webkit-transform:scaleY(1.5);transform:scaleY(1.5)}}@-webkit-keyframes pip-breathe{to{-webkit-transform:translateY(2px) scale(1.015);transform:translateY(2px) scale(1.015)}}@keyframes pip-breathe{to{-webkit-transform:translateY(2px) scale(1.015);transform:translateY(2px) scale(1.015)}}@-webkit-keyframes pip-zzz{0%{opacity:0;-webkit-transform:translateY(6px);transform:translateY(6px)}40%{opacity:1}to{opacity:0;-webkit-transform:translate(8px,-12px);transform:translate(8px,-12px)}}@keyframes pip-zzz{0%{opacity:0;-webkit-transform:translateY(6px);transform:translateY(6px)}40%{opacity:1}to{opacity:0;-webkit-transform:translate(8px,-12px);transform:translate(8px,-12px)}}@-webkit-keyframes bubble-pop{0%{opacity:0;-webkit-transform:scale(.7) translateY(8px);transform:scale(.7) translateY(8px)}}@keyframes bubble-pop{0%{opacity:0;-webkit-transform:scale(.7) translateY(8px);transform:scale(.7) translateY(8px)}}.pip-bubble{background:#fff;border:2.5px solid var(--ink);border-radius:18px;box-shadow:4px 4px 0 var(--ink);color:var(--ink);font:500 .9rem/1.4 var(--font-body);max-width:min(290px,calc(100vw - 28px));padding:12px 34px 12px 14px;position:relative;width:-webkit-max-content;width:max-content}.pip-bubble p{margin:0}.pip-bubble:after{background:#fff;border-bottom:2.5px solid var(--ink);border-right:2.5px solid var(--ink);content:"";height:14px;position:absolute;right:36px;top:100%;-webkit-transform:translateY(-8px) rotate(45deg);transform:translateY(-8px) rotate(45deg);width:14px}.pip-wrap--right .pip-bubble:after{left:36px;right:auto}.pip-bubble__close{background:none;border:0;border-radius:50%;color:var(--ink-2);cursor:pointer;font-size:1.1rem;height:24px;line-height:1;position:absolute;right:8px;top:6px;width:24px}.pip-bubble__actions{display:flex;flex-wrap:wrap;gap:6px;margin-top:10px}.pip-bubble__actions button{background:var(--violet-tint);border:1.5px solid var(--ink);border-radius:999px;color:var(--ink);cursor:pointer;font:600 .8rem/1.2 var(--font-body);padding:6px 12px}.pip-bubble__actions button:first-child{background:var(--saffron)}.pip-bubble__actions button:hover{-webkit-transform:translateY(-1px);transform:translateY(-1px)}.pip-return{background:var(--saffron);border:2px solid var(--ink);border-radius:50%;bottom:74px;box-shadow:3px 3px 0 var(--ink);cursor:pointer;display:grid;font-size:1.3rem;height:44px;place-items:center;position:fixed;right:14px;width:44px;z-index:45}@media (max-width:820px){.pip-wrap{bottom:66px;right:8px}.pip-body{width:70px}.pip-return{bottom:66px;right:10px}.play-hint{bottom:auto;top:84px}}.bh{grid-gap:28px;align-items:start;display:grid;gap:28px;grid-template-columns:220px minmax(0,1fr)}.bh__pip{grid-gap:14px;display:grid;gap:14px;justify-items:center;position:-webkit-sticky;position:sticky;top:96px}.bh__pipbox{width:150px}.bh__say{background:#fff;border:2.5px solid var(--ink);border-radius:16px;box-shadow:4px 4px 0 var(--ink);font:600 .9rem/1.4 var(--font-body);margin:0;padding:12px 14px;text-align:center}.bh__card{background:#fff;border:2.5px solid var(--ink);border-radius:22px;box-shadow:6px 6px 0 var(--violet);padding:24px}.bh__card h2{margin:0 0 8px}.bh__top{color:var(--ink-2);display:flex;font:600 .85rem/1 var(--font-body);justify-content:space-between}.bh__ask{font-weight:600;margin:14px 0 10px}.bh__score{font:800 3rem/1 var(--font-display);margin:4px 0}.bh__score span{color:var(--ink-2);font-size:1.2rem}.bh__note{color:var(--ink-2);margin-top:14px}.bh__code{grid-gap:4px;background:#17122b;border-radius:14px;display:grid;gap:4px;list-style:none;margin:0 0 16px;overflow-x:auto;padding:12px}.bh__line{background:transparent;border:0;border-radius:8px;color:#e9e6ff;cursor:pointer;display:flex;gap:12px;min-width:-webkit-max-content;min-width:max-content;padding:7px 10px;text-align:left;transition:background .15s,box-shadow .3s;width:100%}.bh__line code{font:500 .88rem/1.4 ui-monospace,SFMono-Regular,Menlo,monospace;white-space:pre}.bh__no{color:#7d77a8;font:500 .8rem/1.7 ui-monospace,monospace;text-align:right;width:1.4em}.bh__line:hover:not(:disabled){background:hsla(0,0%,100%,.1)}.bh__line:disabled{cursor:default}.bh__line.is-wrong{background:rgba(255,92,122,.28)}.bh__line.is-lit{background:rgba(255,210,122,.22);box-shadow:0 0 0 2px #ffd27a,0 0 18px rgba(255,210,122,.55)}.bh__line.is-bug{background:rgba(63,224,181,.28);box-shadow:0 0 0 2px #3fe0b5}.bh__why p{margin:6px 0 14px}@media (max-width:820px){.bh{grid-template-columns:1fr}.bh__pip{align-items:center;grid-template-columns:96px 1fr;justify-items:stretch;position:static}.bh__pipbox{width:96px}.bh__say{text-align:left}}.bh__card,.bh__main,.bh__pip{min-width:0}@media (max-width:820px){.bh{grid-template-columns:minmax(0,1fr)}.bh__pip{grid-template-columns:96px minmax(0,1fr)}}.hero__kicker{color:var(--saffron);font:700 1.05rem/1 var(--font-display);letter-spacing:.02em;margin:0 0 10px}.hero__avail{align-items:center;border:1.5px solid hsla(0,0%,100%,.3);border-radius:999px;color:#fff;display:inline-flex;font:600 .85rem/1 var(--font-body);gap:9px;margin:22px 0 18px;padding:7px 14px}.hero__avail span{background:#3fe0b5;border-radius:50%;box-shadow:0 0 0 0 rgba(63,224,181,.6);height:9px;width:9px}@media (prefers-reduced-motion:no-preference){.hero__avail span{-webkit-animation:avail-pulse 2s ease-out infinite;animation:avail-pulse 2s ease-out infinite}}@-webkit-keyframes avail-pulse{to{box-shadow:0 0 0 10px rgba(63,224,181,0)}}@keyframes avail-pulse{to{box-shadow:0 0 0 10px rgba(63,224,181,0)}}.about-teaser{align-items:center;display:flex;flex-wrap:wrap;gap:20px 40px;justify-content:space-between}.about-teaser>div{flex:1 1 420px;min-width:0}.diagram__lines rect{transition:fill .3s,stroke .3s}.diagram__lines rect.is-on{fill:rgba(63,224,181,.28);stroke:#fff}.diagram__back{stroke-dasharray:4 6;opacity:.6}.diagram__dots circle{fill:var(--saffron);-webkit-filter:drop-shadow(0 0 6px rgba(255,184,77,.9));filter:drop-shadow(0 0 6px rgba(255,184,77,.9))}.diagram__dots circle.is-back{fill:#fff}.flow__steps{grid-gap:10px;display:grid;gap:10px;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));list-style:none;margin:18px 0 0;max-width:760px;padding:0}.flow__steps li{align-items:flex-start;border:1px solid hsla(0,0%,100%,.18);border-radius:12px;color:var(--on-night);display:flex;font:500 .85rem/1.35 var(--font-body);gap:10px;padding:10px 12px;transition:background .3s,border-color .3s,color .3s}.flow__steps li span{background:hsla(0,0%,100%,.14);border-radius:50%;display:grid;flex:none;font:700 .75rem/1 var(--font-body);height:22px;place-items:center;width:22px}.flow__steps li.is-active{background:rgba(255,184,77,.12);border-color:var(--saffron);color:#fff}.flow__steps li.is-active span{background:var(--saffron);color:#17122b}.live__logo{display:block;margin:0 0 14px;max-height:44px;max-width:150px;object-fit:contain;object-position:left center}.live-badge{align-items:center;color:var(--on-night-dim);display:flex;flex-wrap:wrap;font-size:.9rem;gap:8px 22px;margin-bottom:16px}.live-badge__tag{align-items:center;color:var(--mint);display:inline-flex;font-size:.72rem;font-weight:800;gap:8px;letter-spacing:.14em;text-transform:uppercase}.live-badge__dot{-webkit-animation:live-pulse 1.8s infinite;animation:live-pulse 1.8s infinite;background:var(--mint);border-radius:50%;box-shadow:0 0 0 0 rgba(63,224,181,.6);flex:none;height:8px;width:8px}.live-stat strong{color:var(--on-night);font-weight:800}.live-stat em{font-style:normal;margin-left:6px}@-webkit-keyframes live-pulse{70%{box-shadow:0 0 0 7px rgba(63,224,181,0)}to{box-shadow:0 0 0 0 rgba(63,224,181,0)}}@keyframes live-pulse{70%{box-shadow:0 0 0 7px rgba(63,224,181,0)}to{box-shadow:0 0 0 0 rgba(63,224,181,0)}}@media (prefers-reduced-motion:reduce){.live-badge__dot{-webkit-animation:none;animation:none}}@media (max-width:640px){.live-badge{grid-gap:12px 10px;background:hsla(0,0%,100%,.04);border:1px solid var(--night-line);border-radius:16px;display:grid;gap:12px 10px;grid-template-columns:1fr 1fr;padding:14px 16px}.live-badge__tag{grid-column:1/-1}.live-stat strong{display:block;font-size:1.5rem;line-height:1.1}.live-stat em{display:block;font-size:.78rem;margin:2px 0 0}.site-footer{padding-bottom:120px}}
/*# sourceMappingURL=main.4f3a2715.css.map*/