:root{--c-bg:light-dark(#f7f7fb,#0f1117);--c-surface:light-dark(#fff,#181b25);--c-text:light-dark(#1b1d2a,#e9eaf2);--c-muted:light-dark(#5b6075,#a2a7bd);--c-border:light-dark(#e3e5ee,#2a2e3d);--c-accent:light-dark(#5b4bff,#8b7fff);--c-accent-2:light-dark(#00b3a4,#2dd4c4);--c-on-accent:light-dark(#fff,#0f1117);--c-badge-bg:light-dark(#fff3d6,#3a2e10);--c-badge-text:light-dark(#7a5200,#ffd98a);--c-live-bg:light-dark(#d7f6f1,#123f39);--c-live-text:light-dark(#0a5c52,#b6f6ec);--grad-hero:linear-gradient(135deg, var(--c-accent), var(--c-accent-2));--font-sans:system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;--font-mono:ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;--fs-sm:.875rem;--fs-base:1.0625rem;--fs-lg:1.25rem;--fs-xl:clamp(1.5rem, 3vw, 2rem);--fs-hero:clamp(2.25rem, 6vw, 4rem);--lh:1.6;--lh-tight:1.1;--fw-bold:700;--sp-1:.25rem;--sp-2:.5rem;--sp-3:1rem;--sp-4:1.5rem;--sp-5:2.5rem;--sp-6:4rem;--sp-7:6rem;--radius:1rem;--radius-pill:999px;--maxw:68rem;--card-min:16rem;--measure:36rem;--brand-mark:2rem;--icon-external:.9em;--icon-theme:1.15rem;--icon-stroke:2;--icon-nudge:-.15em;--theme-hit:2.25rem;--clip:1px;--shadow:0 1px 2px light-dark(#0000000d,#0006), 0 8px 24px light-dark(#14143c0f,#0000004d);--dur:.2s;--dur-rise:.7s;--dur-float:16s;--ease-out:cubic-bezier(.22, 1, .36, 1);--ease-in-out:cubic-bezier(.45, 0, .55, 1);--rise:1rem;--stagger:70ms;--hover-lift:-.35rem;--float-x:1.75rem;--float-y:-1.25rem;--orb-size:22rem;--orb-scale:.72;--orb-opacity-light:.55;--orb-opacity-dark:.34;--orb-opacity:var(--orb-opacity-light);--orb-a-x:-8%;--orb-a-y:-18%;--orb-b-x:-10%;--orb-b-y:8%;--orb-c-x:28%;--orb-c-y:42%;--glow-ring:40%;--glow-spread:18%;--glow:0 0 0 var(--border-w) color-mix(in srgb, var(--c-accent) var(--glow-ring), transparent), 0 var(--sp-3) var(--sp-5) color-mix(in srgb, var(--c-accent) var(--glow-spread), transparent);--reveal-edge:8%;--reveal-ratio:.15;--focus:3px solid var(--c-accent);--border-w:1px;--header-blur:8px;--header-alpha:85%;--z-atmosphere:0;--z-hero:1;--z-header:2;--lift:-2px;--center-min:80vh;--skip-offset:-999em;--color-scheme:light dark;--fs-kinetic:clamp(3.25rem, 11vw, 7.5rem);--track-tight:-.04em;--dur-kinetic:22s;--dur-fly:.85s;--dur-flip-once:.9s;--dur-flip-wheel:1.45s;--ease-flip-once:cubic-bezier(.22, 1, .36, 1);--ease-flip-wheel:cubic-bezier(.12, .7, .18, 1);--flip-turn:360deg;--flip-overshoot:18deg;--flip-perspective:46rem;--flip-stagger:90ms;--kinetic-shift:3.25rem;--kinetic-nudge:1.25rem;--kinetic-rot:8deg;--kinetic-tilt:8deg;--dur-tilt:.12s;--kinetic-perspective:50rem;--kinetic-wash:36rem;--kinetic-a-x:-18%;--kinetic-a-y:-28%;--kinetic-b-x:-12%;--kinetic-b-y:18%;--fly-from-x:3rem;--fly-from-y:2.25rem;--fly-from-rot:8deg}@media (width<=40rem){:root{--fs-kinetic:clamp(2.5rem, 16vw, 4.25rem);--kinetic-shift:1.25rem;--kinetic-nudge:.5rem;--kinetic-tilt:4deg;--fly-from-x:1.25rem;--fly-from-y:1rem;--fly-from-rot:4deg}}html[data-theme=light]{--color-scheme:light;--orb-opacity:var(--orb-opacity-light)}html[data-theme=dark]{--color-scheme:dark;--orb-opacity:var(--orb-opacity-dark)}@media (prefers-color-scheme:dark){html:not([data-theme=light]){--orb-opacity:var(--orb-opacity-dark)}}*,:before,:after{box-sizing:border-box}@property --kinetic-p{syntax:"<number>";inherits:true;initial-value:.5}@property --tilt-x{syntax:"<number>";inherits:true;initial-value:0}@property --tilt-y{syntax:"<number>";inherits:true;initial-value:0}html{color-scheme:var(--color-scheme);scroll-behavior:smooth}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:before,:after{transition:none!important;animation:none!important}}body{font-family:var(--font-sans);font-size:var(--fs-base);line-height:var(--lh);background:var(--c-bg);color:var(--c-text);margin:0}a{color:var(--c-accent)}a:focus-visible,.btn:focus-visible,.theme-toggle:focus-visible{outline:var(--focus);outline-offset:var(--sp-1)}.wrap{max-width:var(--maxw);padding-inline:var(--sp-4);margin-inline:auto}.skip{z-index:var(--z-header);left:var(--skip-offset);position:absolute}.skip:focus{left:var(--sp-3);top:var(--sp-3);background:var(--c-surface);padding:var(--sp-2) var(--sp-3);border-radius:var(--radius)}header.top{z-index:var(--z-header);background:color-mix(in srgb, var(--c-bg) var(--header-alpha), transparent);backdrop-filter:blur(var(--header-blur));border-bottom:var(--border-w) solid var(--c-border);position:sticky;top:0}header.top .wrap{justify-content:space-between;align-items:center;gap:var(--sp-3);padding-block:var(--sp-3);display:flex}.brand{align-items:center;gap:var(--sp-2);font-weight:var(--fw-bold);color:var(--c-text);white-space:nowrap;text-decoration:none;display:flex}.brand img{width:var(--brand-mark);height:var(--brand-mark)}.right{align-items:center;gap:var(--sp-4);display:flex}nav ul{justify-content:flex-end;gap:var(--sp-4);flex-wrap:wrap;margin:0;padding:0;list-style:none;display:flex}nav a{color:var(--c-muted);font-size:var(--fs-sm);text-decoration:none}nav a:hover{color:var(--c-text)}.lang ul{gap:var(--sp-1)}.lang a{padding:var(--sp-1) var(--sp-2);border-radius:var(--radius-pill);font-size:var(--fs-sm);font-weight:var(--fw-bold);display:inline-block}.lang a[aria-current]{background:var(--c-accent);color:var(--c-on-accent)}.tools{align-items:center;gap:var(--sp-2);display:flex}.theme-toggle{width:var(--theme-hit);height:var(--theme-hit);border:var(--border-w) solid var(--c-border);border-radius:var(--radius-pill);background:var(--c-surface);color:var(--c-text);cursor:pointer;justify-content:center;align-items:center;margin:0;padding:0;display:none;position:relative}html.theme-ready .theme-toggle{display:inline-flex}.theme-toggle:hover{color:var(--c-accent);border-color:var(--c-accent)}.theme-icon{width:var(--icon-theme);height:var(--icon-theme);fill:none;stroke:currentColor;stroke-width:var(--icon-stroke);stroke-linecap:round;stroke-linejoin:round;display:none}html:not([data-theme]) .theme-icon-system,html[data-theme=light] .theme-icon-light,html[data-theme=dark] .theme-icon-dark{display:block}.atmosphere{z-index:var(--z-atmosphere);contain:paint;pointer-events:none;position:fixed;inset:0;overflow:hidden}main{z-index:var(--z-hero);position:relative}.hero,.section-kinetic,.section-fly,.section-quiet,.partner,.contact{box-shadow:none;background-color:#0000;border:0}.hero{padding-block:var(--sp-7) var(--sp-6);position:relative}.hero .wrap{z-index:var(--z-hero);position:relative}.orb{width:var(--orb-size);height:var(--orb-size);border-radius:var(--radius-pill);background:radial-gradient(circle, var(--c-accent) 0%, transparent 68%);opacity:var(--orb-opacity);position:absolute}.orb-a{top:var(--orb-a-y);left:var(--orb-a-x)}.orb-b{top:var(--orb-b-y);right:var(--orb-b-x);background:radial-gradient(circle, var(--c-accent-2) 0%, transparent 68%)}.orb-c{top:var(--orb-c-y);left:var(--orb-c-x);width:calc(var(--orb-size) * var(--orb-scale));height:calc(var(--orb-size) * var(--orb-scale))}.hero h1{font-size:var(--fs-hero);line-height:var(--lh-tight);margin:0 0 var(--sp-3)}.grad{background:var(--grad-hero);color:#0000;-webkit-background-clip:text;background-clip:text}.hero p{font-size:var(--fs-lg);color:var(--c-muted);max-width:var(--measure);margin:0 0 var(--sp-5)}.code{font-family:var(--font-mono);font-size:var(--fs-sm);color:var(--c-accent-2)}.actions{gap:var(--sp-2);flex-wrap:wrap;display:flex}.btn{padding:var(--sp-3) var(--sp-4);border-radius:var(--radius-pill);background:var(--grad-hero);color:var(--c-on-accent);font-weight:var(--fw-bold);transition:transform var(--dur) var(--ease-out);text-decoration:none;display:inline-block}.btn:hover{transform:translateY(var(--lift))}.btn.ghost{color:var(--c-text);border:var(--border-w) solid var(--c-border);background:0 0}section{padding-block:var(--sp-6)}h2{font-size:var(--fs-xl);margin:0 0 var(--sp-4)}.sub{font-size:var(--fs-lg);margin:var(--sp-5) 0 var(--sp-3)}.grid{gap:var(--sp-4);grid-template-columns:repeat(auto-fit, minmax(var(--card-min), 1fr));display:grid}.card{background:var(--c-surface);border:var(--border-w) solid var(--c-border);border-radius:var(--radius);padding:var(--sp-4);box-shadow:var(--shadow);position:relative}.card.flip{box-shadow:none;background:0 0;border:0;padding:0}.card-scene{height:100%;perspective:var(--flip-perspective)}.card-face{height:100%;transform-style:preserve-3d;position:relative}.card-front,.card-back{border:var(--border-w) solid var(--c-border);border-radius:var(--radius);background:var(--c-surface);backface-visibility:hidden}.card-front{height:100%;padding:var(--sp-4);box-shadow:var(--shadow);position:relative;transform:translateZ(1px)}.card-back{pointer-events:none;position:absolute;inset:0}.card.flip[data-flip-axis=x] .card-back{transform:rotateX(180deg)translateZ(1px)}.card.flip[data-flip-axis=y] .card-back{transform:rotateY(180deg)translateZ(1px)}.card h3{margin:0 0 var(--sp-2);font-size:var(--fs-lg)}.card p{color:var(--c-muted);margin:0}.card .icon{font-size:var(--fs-xl);margin-bottom:var(--sp-2)}.badge{font-size:var(--fs-sm);padding:0 var(--sp-2);border-radius:var(--radius-pill);margin-bottom:var(--sp-2);display:inline-block}.badge-dev{background:var(--c-badge-bg);color:var(--c-badge-text)}.badge-live{background:var(--c-live-bg);color:var(--c-live-text)}.card .more{margin-top:var(--sp-3);font-weight:var(--fw-bold);display:inline-block}a.external{position:relative}.external-icon{width:var(--icon-external);height:var(--icon-external);vertical-align:var(--icon-nudge);fill:none;stroke:currentColor;stroke-width:var(--icon-stroke);stroke-linecap:round;stroke-linejoin:round;margin-inline-start:var(--sp-1)}.visually-hidden{width:var(--clip);height:var(--clip);margin:calc(var(--clip) * -1);clip-path:inset(50%);white-space:nowrap;border:0;padding:0;position:absolute;overflow:hidden}.card .credit{margin-top:var(--sp-2);font-size:var(--fs-sm)}.section-fly{overflow:clip}.section-kinetic{perspective:var(--kinetic-perspective);position:relative}.kinetic-copy{z-index:var(--z-hero);position:relative}.kinetic-kicker{margin:0 0 var(--sp-3);font-family:var(--font-mono);font-size:var(--fs-sm);color:var(--c-accent-2)}.kinetic-line{margin:0 0 var(--sp-5);position:relative}.kinetic-words{gap:var(--sp-2) var(--sp-4);font-size:var(--fs-kinetic);font-weight:var(--fw-bold);letter-spacing:var(--track-tight);line-height:var(--lh-tight);flex-wrap:wrap;display:flex}.kinetic-word{display:inline-block}.kinetic-fill{background:var(--grad-hero);color:#0000;-webkit-background-clip:text;background-clip:text;display:inline-block}.kinetic-words .kinetic-word:nth-child(odd){--dir:1}.kinetic-words .kinetic-word:nth-child(2n){--dir:-1}.kinetic-wash{width:var(--kinetic-wash);height:var(--kinetic-wash);border-radius:var(--radius-pill);background:radial-gradient(circle, var(--c-accent) 0%, transparent 68%);opacity:var(--orb-opacity);position:absolute}.kinetic-wash-a{top:var(--kinetic-a-y);left:var(--kinetic-a-x)}.kinetic-wash-b{right:var(--kinetic-b-x);bottom:var(--kinetic-b-y);background:radial-gradient(circle, var(--c-accent-2) 0%, transparent 68%)}.kinetic-panel{max-width:var(--measure);padding:var(--sp-4);border:var(--border-w) solid var(--c-border);border-radius:var(--radius);background:var(--c-surface);box-shadow:var(--shadow)}.kinetic-panel p{color:var(--c-text);font-size:var(--fs-lg);margin:0}.section-quiet{padding-block:var(--sp-7)}.quiet-layout{gap:var(--sp-5);display:grid}.quiet-layout>h2{font-size:var(--fs-hero);line-height:var(--lh-tight);margin:0}.quiet-item{gap:var(--sp-4);padding-block:var(--sp-4);border-top:var(--border-w) solid var(--c-border);grid-template-columns:auto 1fr;display:grid}.quiet-item:last-child{border-bottom:var(--border-w) solid var(--c-border)}.quiet-index{font-family:var(--font-mono);color:var(--c-muted);margin:0}.quiet-item h3{margin:0 0 var(--sp-2)}.quiet-item p{max-width:var(--measure);color:var(--c-muted);margin:0}.partner-lead,.partner-link{max-width:var(--measure)}.partner-lead{margin:0 0 var(--sp-3);color:var(--c-muted)}.partner-link{margin:0 0 var(--sp-5)}@media (width>=40rem){.quiet-layout{column-gap:var(--sp-6);grid-template-columns:minmax(14rem,.7fr) 1.6fr;align-items:start}}.contact{text-align:center}.contact p{color:var(--c-muted);margin:0 0 var(--sp-4)}footer{z-index:var(--z-hero);border-top:var(--border-w) solid var(--c-border);padding-block:var(--sp-4);color:var(--c-muted);font-size:var(--fs-sm);text-align:center;position:relative}.center{min-height:var(--center-min);text-align:center;place-content:center;display:grid}@media (width<=40rem){header.top .wrap,nav ul{gap:var(--sp-2)}.right{align-items:flex-end;gap:var(--sp-1);flex-direction:column}.actions .btn{text-align:center;flex:auto}}@media (width<=24rem){.brand span{display:none}}@media (prefers-reduced-motion:no-preference){.orb,.kinetic-wash{will-change:transform}.orb{animation:float var(--dur-float) var(--ease-in-out) infinite}.orb-b{animation-duration:calc(var(--dur-float) * 1.25);animation-delay:calc(var(--dur-float) * -.35)}.orb-c{animation-duration:calc(var(--dur-float) * .8);animation-delay:calc(var(--dur-float) * -.15)}.hero-copy>*{animation:rise var(--dur-rise) var(--ease-out) both}.hero-copy>:nth-child(2){animation-delay:var(--stagger)}.hero-copy>:nth-child(3){animation-delay:calc(var(--stagger) * 2)}.hero-copy>:nth-child(4){animation-delay:calc(var(--stagger) * 3)}.js .reveal{opacity:0;transform:translateY(var(--rise));transition:opacity var(--dur-rise) var(--ease-out), transform var(--dur-rise) var(--ease-out)}.js .reveal.is-in{opacity:1;transform:none}.grid>.reveal:nth-child(2){transition-delay:var(--stagger)}.grid>.reveal:nth-child(3){transition-delay:calc(var(--stagger) * 2)}.grid>.reveal:nth-child(4){transition-delay:calc(var(--stagger) * 3)}.grid>.reveal:nth-child(5){transition-delay:calc(var(--stagger) * 4)}.grid>.reveal:nth-child(6){transition-delay:calc(var(--stagger) * 5)}.card:after,.card.flip .card-front:after{content:"";border-radius:inherit;box-shadow:var(--glow);opacity:0;pointer-events:none;transition:opacity var(--dur) var(--ease-out);position:absolute;inset:0}.card.flip:after{content:none}.card:hover:after{opacity:1}.card:hover,.js .card.reveal.is-in:hover,.js .card.fly.is-in:hover{transform:translateY(var(--hover-lift));transition-duration:var(--dur);transition-delay:0s}.fly-grid>.fly:nth-child(4n+1){--fly-x:calc(var(--fly-from-x) * -1);--fly-y:var(--fly-from-y);--fly-rot:calc(var(--fly-from-rot) * -1)}.fly-grid>.fly:nth-child(4n+2){--fly-x:var(--fly-from-x);--fly-y:calc(var(--fly-from-y) * -1);--fly-rot:var(--fly-from-rot)}.fly-grid>.fly:nth-child(4n+3){--fly-x:calc(var(--fly-from-x) * -1);--fly-y:calc(var(--fly-from-y) * -1);--fly-rot:var(--fly-from-rot)}.fly-grid>.fly:nth-child(4n+4){--fly-x:var(--fly-from-x);--fly-y:var(--fly-from-y);--fly-rot:calc(var(--fly-from-rot) * -1)}.js .fly{transition:opacity var(--dur-fly) var(--ease-out), transform var(--dur-fly) var(--ease-out);transition-delay:var(--enter-delay,0s)}.js .fly:not(.is-in){opacity:0;transform:translate3d(var(--fly-x,var(--fly-from-x)), var(--fly-y,var(--fly-from-y)), 0) rotate(var(--fly-rot,var(--fly-from-rot)))}.fly-grid>.fly:nth-child(2){--enter-delay:var(--stagger)}.fly-grid>.fly:nth-child(3){--enter-delay:calc(var(--stagger) * 2)}.fly-grid>.fly:nth-child(4){--enter-delay:calc(var(--stagger) * 3)}.fly-grid>.fly:nth-child(5){--enter-delay:calc(var(--stagger) * 4)}.fly-grid>.fly:nth-child(6){--enter-delay:calc(var(--stagger) * 5)}.js .flip .card-face{will-change:transform}.js .flip.is-in{--flip-wait:calc(var(--flip-stagger) * var(--flip-step,0))}.js .fly.flip.is-in{--flip-wait:calc(var(--dur-fly) + var(--enter-delay,0s) + var(--flip-stagger) * var(--flip-step,0))}.js .flip.is-in[data-flip-axis=x][data-flip-mode=once] .card-face{animation:flip-x-once var(--dur-flip-once) var(--ease-flip-once) var(--flip-wait,0s) both}.js .flip.is-in[data-flip-axis=y][data-flip-mode=once] .card-face{animation:flip-y-once var(--dur-flip-once) var(--ease-flip-once) var(--flip-wait,0s) both}.js .flip.is-in[data-flip-axis=x][data-flip-mode=wheel] .card-face{animation:flip-x-wheel var(--dur-flip-wheel) var(--ease-flip-wheel) var(--flip-wait,0s) both}.js .flip.is-in[data-flip-axis=y][data-flip-mode=wheel] .card-face{animation:flip-y-wheel var(--dur-flip-wheel) var(--ease-flip-wheel) var(--flip-wait,0s) both}.card.flip:hover .card-front:after,.js .card.flip.reveal.is-in:hover .card-front:after,.js .card.flip.fly.is-in:hover .card-front:after{opacity:1}.kinetic-wash{animation:kinetic-drift var(--dur-kinetic) var(--ease-in-out) infinite}.kinetic-wash-b{animation-duration:calc(var(--dur-kinetic) * 1.35);animation-direction:reverse}.kinetic-word{transform:translate3d(calc(var(--kinetic-nudge) * (var(--kinetic-p,.5) - .5) * var(--dir,1)), calc(var(--kinetic-shift) * (var(--kinetic-p,.5) - .5) * var(--dir,1)), 0) rotate(calc(var(--kinetic-rot) * (var(--kinetic-p,.5) - .5) * var(--dir,1)));will-change:transform}.kinetic-fill{transform:translateZ(0)}.kinetic-panel{transform:rotateX(calc(var(--tilt-x,0) * var(--kinetic-tilt) * -1)) rotateY(calc(var(--tilt-y,0) * var(--kinetic-tilt))) translateZ(0);will-change:transform}}@keyframes float{0%,to{transform:translate(0,0)}50%{transform:translate3d(var(--float-x), var(--float-y), 0)}}@keyframes rise{0%{opacity:0;transform:translateY(var(--rise))}to{opacity:1;transform:none}}@keyframes flip-x-once{0%{transform:rotateX(0)}to{transform:rotateX(var(--flip-turn))}}@keyframes flip-y-once{0%{transform:rotateY(0)}to{transform:rotateY(var(--flip-turn))}}@keyframes flip-x-wheel{0%{transform:rotateX(0)}58%{transform:rotateX(calc(var(--flip-turn) * 2))}84%{transform:rotateX(calc(var(--flip-turn) * 3))}93%{transform:rotateX(calc(var(--flip-turn) * 3 + var(--flip-overshoot)))}to{transform:rotateX(calc(var(--flip-turn) * 3))}}@keyframes flip-y-wheel{0%{transform:rotateY(0)}58%{transform:rotateY(calc(var(--flip-turn) * 2))}84%{transform:rotateY(calc(var(--flip-turn) * 3))}93%{transform:rotateY(calc(var(--flip-turn) * 3 + var(--flip-overshoot)))}to{transform:rotateY(calc(var(--flip-turn) * 3))}}@keyframes kinetic-drift{0%,to{transform:translate(0,0)}50%{transform:translate3d(var(--kinetic-shift), var(--float-y), 0) rotate(var(--kinetic-rot))}}
