@font-face{font-family:"Big Shoulders Display";font-style:normal;font-weight:100 900;font-display:swap;src:url(/fonts/big-shoulders-display-latin-wght-normal.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:"Big Shoulders Display";font-style:normal;font-weight:100 900;font-display:swap;src:url(/fonts/big-shoulders-display-latin-ext-wght-normal.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:"Public Sans";font-style:normal;font-weight:100 900;font-display:swap;src:url(/fonts/public-sans-latin-wght-normal.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:"Public Sans";font-style:normal;font-weight:100 900;font-display:swap;src:url(/fonts/public-sans-latin-ext-wght-normal.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:"IBM Plex Mono";font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/ibm-plex-mono-latin-400-normal.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:"IBM Plex Mono";font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/ibm-plex-mono-latin-ext-400-normal.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:"IBM Plex Mono";font-style:normal;font-weight:500;font-display:swap;src:url(/fonts/ibm-plex-mono-latin-500-normal.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:"IBM Plex Mono";font-style:normal;font-weight:500;font-display:swap;src:url(/fonts/ibm-plex-mono-latin-ext-500-normal.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:"IBM Plex Mono";font-style:normal;font-weight:600;font-display:swap;src:url(/fonts/ibm-plex-mono-latin-600-normal.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:"IBM Plex Mono";font-style:normal;font-weight:600;font-display:swap;src:url(/fonts/ibm-plex-mono-latin-ext-600-normal.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}:root{color-scheme:light;--bg:#F5EFE6;--surface:#FFFAF3;--surface-2:#ECE3D6;--text:#1A130E;--muted:#6B5D50;--line:#DDD1C1;--ember:#FF6700;--ember-text:#A03F00;--on-ember:#1A130E;--focus:#A03F00;--ok:#1D6B44;--ok-dot:#2E9E62;--shadow:0 1px 0 rgba(26,19,14,.04),0 12px 32px -12px rgba(120,60,10,.18);--glow:rgb(255 103 0 / .18);--display:"Big Shoulders Display","Arial Narrow",Arial,sans-serif;--body:"Public Sans",system-ui,-apple-system,"Segoe UI",sans-serif;--mono:"IBM Plex Mono",ui-monospace,"SFMono-Regular",Menlo,Consolas,monospace;--r-pill:999px;--r-card:24px;--r-stage:32px;--r-input:12px;--wrap:1240px;--gutter:32px;--bar:76px;--ease:cubic-bezier(.2,.7,.2,1);--sec:clamp(80px,11vw,160px)}html[data-theme="dark"]{color-scheme:dark;--bg:#0E0B09;--surface:#17120F;--surface-2:#211A15;--text:#F2EBE1;--muted:#A89C8E;--line:#2E251F;--ember-text:#FF8A3D;--focus:#FF6700;--ok:#6FCF97;--ok-dot:#6FCF97;--shadow:none}@media (max-width:700px){:root{--gutter:20px;--bar:68px}}*,*::before,*::after{box-sizing:border-box}html{-webkit-text-size-adjust:100%;scroll-behavior:smooth;scroll-padding-top:calc(var(--bar) + 16px)}body{margin:0;background:var(--bg);color:var(--text);font-family:var(--body);font-size:1.0625rem;line-height:1.6;font-weight:400;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;overflow-x:hidden}@media (min-width:1100px){body{font-size:1.125rem}}img,svg,picture{display:block;max-width:100%}img{height:auto}h1,h2,h3,h4,p,ul,ol,dl,dd,figure,blockquote{margin:0}ul,ol{padding:0;list-style:none}a{color:inherit;text-decoration-thickness:1px;text-underline-offset:.2em}button,input,select,textarea{font:inherit;color:inherit}button{cursor:pointer}::selection{background:var(--ember);color:var(--on-ember)}main:focus{outline-color:transparent}:focus-visible{outline:3px solid var(--focus);outline-offset:2px}.vh{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}.skip{position:fixed;left:16px;top:-80px;z-index:100;background:var(--ember);color:var(--on-ember);padding:12px 20px;border-radius:var(--r-pill);font-weight:600;text-decoration:none;transition:top .2s}.skip:focus{top:16px}.wrap{width:100%;max-width:calc(var(--wrap) + var(--gutter)*2);margin-inline:auto;padding-inline:var(--gutter)}h1,h2,h3,h4{font-family:var(--display);font-weight:800;letter-spacing:-.005em}h2{font-size:clamp(3.16rem,7.36vw,6.33rem);line-height:1;text-wrap:balance}h3{font-size:clamp(1.5rem,2.4vw,2rem);line-height:1}em{font-style:normal;font-weight:300}.btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:48px;padding:12px 26px;border-radius:var(--r-pill);border:1.5px solid transparent;font-weight:600;font-size:1rem;line-height:1.2;text-decoration:none;transition:transform .5s var(--ease),background-color .3s,color .3s,border-color .3s}.btn .arrow{width:18px;height:18px;transition:transform .5s var(--ease)}.btn:hover .arrow{transform:translateX(4px)}.btn-primary{background:var(--ember);color:var(--on-ember)}.btn-primary:hover{transform:translateY(-2px);background:#FF7A24}.btn-outline{border-color:var(--text);color:var(--text)}.btn-outline:hover{background:var(--text);color:var(--bg)}.pill-ctl{display:inline-flex;align-items:center;justify-content:center;min-width:44px;min-height:44px;padding:0 16px;border-radius:var(--r-pill);border:1.5px solid var(--line);background:transparent;color:var(--text);font-weight:600;font-size:.9375rem;text-decoration:none;transition:border-color .3s,background-color .3s}.pill-ctl:hover{border-color:var(--text)}.pill-ctl svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.chip{display:inline-flex;align-items:center;padding:4px 14px;border-radius:var(--r-pill);background:var(--surface-2);color:var(--text);font-family:var(--mono);font-size:.8125rem;font-weight:500;letter-spacing:.02em;line-height:1.5;white-space:nowrap}.card .chip{background:var(--bg)}.ext{width:.85em;height:.85em;margin-left:.4em;vertical-align:-.05em}.sun-dot{display:inline-block;flex:none;width:.2em;height:.2em;min-width:12px;min-height:12px;border-radius:50%;background:var(--ember);margin-right:.28em;vertical-align:.18em}.intro,.muted{color:var(--muted)}.js .reveal{opacity:0;transform:translateY(16px);transition:opacity .8s var(--ease),transform .8s var(--ease)}.js .reveal.in{opacity:1;transform:none}.topbar{position:fixed;inset:0 0 auto 0;z-index:50;height:var(--bar);border-bottom:1px solid transparent;transition:background-color .4s,border-color .4s}.topbar.scrolled{background:var(--bg);border-bottom-color:var(--line)}.bar{display:flex;align-items:center;justify-content:space-between;gap:16px;height:100%}.brand{position:relative;z-index:3;display:inline-flex;align-items:center;gap:12px;text-decoration:none;font-family:var(--display);font-weight:800;font-size:1.5rem;letter-spacing:-.005em;line-height:1;white-space:nowrap}.brand svg{width:30px;height:30px;color:var(--ember);fill:currentColor}.nav{display:flex;align-items:center;gap:6px;margin-left:auto;margin-right:12px}.nl{padding:10px 14px;border-radius:var(--r-pill);text-decoration:none;font-weight:600;font-size:1rem;transition:background-color .3s}.nl:hover{background:var(--surface-2)}.btn-menu{display:none}.tools{position:relative;z-index:3;display:flex;align-items:center;gap:8px}.tools .btn{min-height:44px;padding:8px 22px}.theme-btn{padding:0}.lang-flag{padding:0 6px}.flag{display:block;width:32px;height:22px;image-rendering:pixelated;transition:transform .1s steps(1)}.lang:hover .flag,.lang:focus-visible .flag{transform:translateY(-2px)}@media (prefers-reduced-motion:reduce){.flag,.lang:hover .flag,.lang:focus-visible .flag{transform:none;transition:none}}.theme-btn .sun{display:none}html[data-theme="dark"] .theme-btn .sun{display:block}html[data-theme="dark"] .theme-btn .moon{display:none}.menu-btn{display:none;padding:0}.menu-btn .x{display:none}.menu-btn[aria-expanded="true"] .x{display:block}.menu-btn[aria-expanded="true"] .bars{display:none}@media (max-width:980px){.menu-btn{display:inline-flex}.btn-cta{display:none}.nav{position:fixed;inset:0;z-index:2;flex-direction:column;align-items:flex-start;justify-content:center;gap:4px;margin:0;padding:calc(var(--bar) + 16px) var(--gutter) 40px;background:var(--bg);visibility:hidden;opacity:0;transition:opacity .4s var(--ease),visibility 0s .4s}.nav.open{visibility:visible;opacity:1;transition:opacity .4s var(--ease)}.nl{font-family:var(--display);font-size:clamp(2.5rem,11vw,4rem);line-height:1.15;letter-spacing:-.005em;padding:4px 0;font-weight:800;border-radius:0}.nl:hover{background:none;color:var(--ember-text)}.btn-menu{display:inline-flex;margin-top:28px}.topbar:has(.nav.open){background:var(--bg)}}.hero{position:relative;padding-top:calc(var(--bar) + clamp(24px,4vw,56px));overflow:clip}.hero-grid{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:var(--gutter);align-items:center}.hero-copy{grid-column:1/8;padding-bottom:16px}.hero-kicker{display:flex;align-items:center;gap:12px;color:var(--muted);font-weight:500;font-size:1rem;margin-bottom:28px}.hero-kicker .dot{width:10px;height:10px;border-radius:50%;background:var(--ember);flex:none}.hero h1{font-size:clamp(4.03rem,8.4vw,8.05rem);line-height:.98;letter-spacing:-.005em;text-wrap:balance}.hero h1 em{color:var(--ember)}.ln{display:inline-block;overflow:hidden;padding:.04em .06em .12em;margin:-.04em -.06em -.12em;vertical-align:top}.ln>span{display:inline-block}.lead{max-width:34em;margin-top:32px;font-size:clamp(1.0625rem,1.5vw,1.25rem);line-height:1.6}.hero-cta{display:flex;flex-wrap:wrap;gap:12px;margin-top:36px}.status{display:flex;align-items:flex-start;gap:12px;margin-top:36px;font-size:.9375rem}.status strong{display:block;font-weight:600}.status .loc{display:block;color:var(--muted)}.live-dot{flex:none;width:8px;height:8px;margin-top:.55em;border-radius:50%;background:var(--ok-dot)}.stage{--px-size:6;position:relative;grid-column:8/-1;aspect-ratio:4/5;border-radius:var(--r-stage);background:#140F0C;overflow:hidden}.scene{position:absolute;inset:0}.scene.day{display:none}html[data-theme="light"] .scene.day{display:block}html[data-theme="light"] .scene.night{display:none}@media (prefers-color-scheme:dark){html.no-js .scene.day{display:none}html.no-js .scene.night{display:block}}.sky,.stars,.clouds{position:absolute;inset:0;width:100%;height:100%}.sky img{width:100%;height:100%;display:block;image-rendering:pixelated}.moon-wrap,.sun-wrap{position:absolute;left:50%;top:calc(var(--px-size)*6px);width:calc(64px*var(--px-size));margin-left:calc(-32px*var(--px-size));aspect-ratio:1;transform:translate(calc(var(--mx,0)*var(--px-size)*1px),calc((var(--my,0) + var(--sink,0))*var(--px-size)*1px))}.sun-wrap{top:calc(var(--px-size)*-3px);margin-left:calc(-44px*var(--px-size))}.rise,.bob{position:absolute;inset:0}.pmoon,.ring img{position:absolute;display:block;image-rendering:pixelated}.pmoon{inset:0;width:100%;height:100%}.halo{position:absolute;inset:0;opacity:var(--hf,1)}.ring{position:absolute;left:calc(-16px*var(--px-size));top:calc(-16px*var(--px-size));width:calc(96px*var(--px-size));height:calc(96px*var(--px-size))}.ring img{inset:0;width:100%;height:100%}.r1 img{opacity:.24}.r2 img{opacity:.12}.r3 img{opacity:.06}.stars,.clouds{transform:translate(calc(var(--sx,0)*var(--px-size)*1px),calc(var(--sy,0)*var(--px-size)*1px))}.rays .f2{opacity:0}.cut-pos{position:absolute;z-index:2;inset:auto 0 0 0;transform:translate(calc(var(--px,0)*-6px),calc(var(--py,0)*-6px));transition:transform .6s var(--ease)}.cut img{width:100%;height:auto}.stats{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--gutter);margin-top:clamp(56px,8vw,112px);padding-top:clamp(28px,3vw,40px);border-top:1px solid var(--line)}.stats dt{font-family:var(--display);font-weight:800;font-size:clamp(3.45rem,7.36vw,6.33rem);line-height:1;letter-spacing:-.005em}.stats dd{margin-top:8px;color:var(--muted);font-size:1rem;max-width:18em}@media (max-width:860px){.hero-grid{grid-template-columns:1fr}.hero-copy,.stage{grid-column:1}.stage{max-width:520px;width:100%;margin-inline:auto;--px-size:6}.stats{grid-template-columns:1fr;gap:28px}.stats>div{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.4fr);align-items:baseline;gap:16px}.stats dd{margin:0}}.section{padding-block:var(--sec)}.section.alt{background:var(--surface-2)}.sec-head{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:var(--gutter);align-items:end;margin-bottom:clamp(40px,6vw,88px)}.sec-head h2{grid-column:1/9}.sec-head .intro{grid-column:9/-1;font-size:1.0625rem;padding-bottom:.6em}@media (max-width:860px){.sec-head h2,.sec-head .intro{grid-column:1/-1}.sec-head{gap:20px}}.svc-list{border-top:1px solid var(--line)}.svc{position:relative;display:grid;grid-template-columns:minmax(52px,.5fr) minmax(0,3fr) minmax(0,4fr) 32px;gap:var(--gutter);align-items:start;padding-block:clamp(28px,3.6vw,48px);border-bottom:1px solid var(--line)}.svc-n{font-family:var(--display);font-size:clamp(2rem,3vw,2.75rem);font-weight:300;line-height:1;color:var(--muted);font-variant-numeric:tabular-nums;transition:color .4s}.svc h3{font-size:clamp(2rem,3.6vw,3rem);line-height:1}.svc-body p{color:var(--text)}.points{display:flex;flex-wrap:wrap;gap:8px;margin-top:18px}.points li{padding:4px 14px;border-radius:var(--r-pill);background:var(--surface-2);font-size:.875rem;font-weight:500}.svc>.arrow{width:28px;height:28px;color:var(--ember-text);opacity:0;transform:translateX(-12px);transition:opacity .4s,transform .5s var(--ease)}.svc:hover .svc-n,.svc:focus-within .svc-n{color:var(--ember-text)}.svc:hover>.arrow,.svc:focus-within>.arrow{opacity:1;transform:none}@media (max-width:860px){.svc{grid-template-columns:44px minmax(0,1fr);gap:12px 16px}.svc-body{grid-column:2}.svc>.arrow{display:none}}.work-feat{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--gutter)}.work-rest{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--gutter);margin-top:var(--gutter)}.card{position:relative;display:flex;flex-direction:column;gap:16px;padding:clamp(24px,3vw,40px);background:var(--surface);border-radius:var(--r-card);box-shadow:var(--shadow);overflow:hidden}html[data-theme="dark"] .section.alt .card{background:var(--bg)}html[data-theme="dark"] .section.alt .card .chip{background:var(--surface-2)}.card>*{position:relative}.glow-card::before{content:"";position:absolute;inset:0;background:radial-gradient(280px circle at var(--mx,50%) var(--my,50%),var(--glow),transparent 70%);opacity:0;transition:opacity .5s;pointer-events:none}.glow-card:hover::before{opacity:1}.card.big{grid-column:1/-1;padding:clamp(28px,4.4vw,64px)}.card.big .name{font-size:clamp(3rem,6.4vw,5.5rem);line-height:1}.card.big .sum{max-width:44em;font-size:clamp(1.0625rem,1.5vw,1.25rem)}.card .name{font-size:clamp(1.75rem,3vw,2.25rem);line-height:1.05}.card.small .name{font-size:clamp(1.5rem,2.4vw,2rem)}.meta-row{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:10px}.meta{color:var(--muted);font-family:var(--mono);font-size:.8125rem;font-weight:500;letter-spacing:.02em;font-variant-numeric:tabular-nums}.status-chip{display:inline-flex;align-items:center;gap:6px;padding:3px 12px;border-radius:var(--r-pill);font-family:var(--mono);font-size:.8125rem;font-weight:500;letter-spacing:.02em;border:1.5px solid currentColor;line-height:1.5}.status-chip.dev{color:var(--ember-text)}.status-chip.live{color:var(--ok)}.status-chip.oss{color:var(--muted)}.sum{color:var(--text)}.chips{display:flex;flex-wrap:wrap;gap:8px;margin-top:auto}.sum+.chips{margin-top:4px}.links{display:flex;flex-wrap:wrap;gap:8px}.links a,.social a{display:inline-flex;align-items:center;min-height:44px;padding:8px 18px;border-radius:var(--r-pill);border:1.5px solid var(--line);text-decoration:none;font-weight:600;font-size:.9375rem;transition:border-color .3s,background-color .3s}.links a:hover,.social a:hover,.view-all a:hover{border-color:var(--text)}.private{color:var(--muted);font-size:.9375rem}.view-all{margin-top:clamp(32px,4vw,56px)}.view-all a{display:inline-flex;align-items:center;min-height:48px;padding:10px 24px;border-radius:var(--r-pill);border:1.5px solid var(--text);text-decoration:none;font-weight:600}@media (max-width:980px){.work-rest{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width:700px){.work-feat,.work-rest{grid-template-columns:1fr}}.steps-wrap{position:relative}.track{position:absolute;left:0;right:0;top:calc(clamp(4.6rem,8.05vw,7.48rem)*.5);height:1px;background:var(--line)}.track-dot{position:absolute;top:50%;left:calc(var(--p,0)*100%);width:16px;height:16px;margin:-8px 0 0 -8px;border-radius:50%;background:var(--ember);box-shadow:0 0 0 8px var(--glow)}.steps{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:var(--gutter)}.step{position:relative;padding-top:0}.step .n{display:inline-block;padding-right:16px;background:var(--bg);font-family:var(--display);font-weight:800;font-size:clamp(4.6rem,8.05vw,7.48rem);line-height:1;color:var(--text);font-variant-numeric:tabular-nums}.step h3{margin-top:24px}.step p{margin-top:12px;color:var(--muted)}@media (max-width:860px){.steps{grid-template-columns:1fr;gap:40px;padding-left:32px}.track{left:6px;right:auto;top:0;bottom:0;width:1px;height:auto}.track-dot{left:50%;top:calc(var(--p,0)*100%);margin:-8px 0 0 -8px}.step .n{background:none;font-size:4.03rem;padding:0}}.about{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:var(--gutter);align-items:start}.portrait{grid-column:1/6;border-radius:var(--r-card);overflow:hidden;background:var(--bg);position:sticky;top:calc(var(--bar) + 24px)}.portrait img{width:100%;aspect-ratio:4/5;object-fit:cover;object-position:50% 20%}.about-text{grid-column:7/-1}.about-text h2{font-size:clamp(2.3rem,3.91vw,3.45rem);line-height:1.05;color:var(--muted)}.pull{margin-top:clamp(28px,4vw,48px);font-family:var(--display);font-weight:500;font-size:clamp(2.25rem,4.6vw,4rem);line-height:1.04;letter-spacing:-.005em;text-wrap:balance}.prose{margin-top:clamp(28px,4vw,48px);display:grid;gap:1.1em;max-width:36em}.facts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px var(--gutter);margin-top:clamp(32px,4vw,56px);padding-top:28px;border-top:1px solid var(--line)}.facts dt{color:var(--muted);font-family:var(--mono);font-size:.8125rem;font-weight:500;letter-spacing:.02em}.facts dd{margin-top:2px;font-weight:500}@media (max-width:860px){.about{grid-template-columns:1fr}.portrait,.about-text{grid-column:1}.portrait{position:static;max-width:440px}}@media (max-width:480px){.facts{grid-template-columns:1fr}}.marquee{overflow:hidden;margin-top:-16px;padding-block:16px}.mq-track{display:flex;width:max-content;animation:mq 70s linear infinite}.marquee:hover .mq-track,.marquee:focus .mq-track,.marquee:focus-within .mq-track{animation-play-state:paused}.mq-set{display:flex;flex:none;align-items:center;gap:56px;padding-right:56px}.mq-group{display:flex;align-items:center;gap:20px}.mq-group h3{font-family:var(--mono);font-size:.8125rem;font-weight:500;letter-spacing:.02em;color:var(--muted);white-space:nowrap}.mq-group ul{display:flex;gap:10px}.mq-group .chip{font-family:var(--display);font-weight:700;font-size:clamp(1.5rem,2.6vw,2.25rem);padding:6px 24px;line-height:1.2;background:var(--surface-2)}@keyframes mq{to{transform:translateX(-50%)}}.contact{background:var(--surface-2)}html[data-theme="dark"] .contact{background:var(--surface)}.contact-grid{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:var(--gutter);align-items:start}.contact-copy{grid-column:1/7}.contact-copy h2{font-size:clamp(3.45rem,8.05vw,7.48rem);line-height:.98}.contact-copy .body{margin-top:28px;max-width:30em;color:var(--muted)}.mail-line{margin-top:36px;color:var(--muted)}.mail{font-family:var(--display);font-weight:700;font-size:clamp(1.75rem,3.6vw,3rem);color:var(--text);text-decoration:underline;text-decoration-color:var(--ember);text-decoration-thickness:2px;text-underline-offset:.15em;overflow-wrap:anywhere;line-height:1.2}.mail:hover{color:var(--ember-text)}.social{margin-top:36px}.social h3{font-family:var(--mono);font-size:.8125rem;font-weight:500;letter-spacing:.02em;color:var(--muted);margin-bottom:12px}.social ul{display:flex;flex-wrap:wrap;gap:8px}.form{grid-column:8/-1;display:grid;gap:20px;padding:clamp(24px,3vw,40px);background:var(--bg);border-radius:var(--r-card);box-shadow:var(--shadow)}html[data-theme="dark"] .form{background:var(--bg)}.row2{display:grid;grid-template-columns:1fr 1fr;gap:20px}.field{display:grid;gap:8px}.field label{font-family:var(--mono);font-size:.8125rem;font-weight:500;letter-spacing:.02em}.field input,.field select,.field textarea{width:100%;min-height:48px;padding:12px 16px;background:var(--surface);border:1.5px solid var(--line);border-radius:var(--r-input);transition:border-color .3s}html[data-theme="dark"] .field input,html[data-theme="dark"] .field select,html[data-theme="dark"] .field textarea{background:var(--surface-2)}.field textarea{resize:vertical;min-height:140px}.field input:hover,.field select:hover,.field textarea:hover{border-color:var(--muted)}.field input:focus-visible,.field select:focus-visible,.field textarea:focus-visible{outline:3px solid var(--focus);outline-offset:2px;border-color:var(--focus)}.field.has-error input,.field.has-error textarea{border-color:#C0392B}html[data-theme="dark"] .field.has-error input,html[data-theme="dark"] .field.has-error textarea{border-color:#FF7A6B}.form-msg{min-height:1.5em;font-size:.9375rem;font-weight:500}.form .btn{justify-self:start}@media (max-width:980px){.contact-copy,.form{grid-column:1/-1}}@media (max-width:520px){.row2{grid-template-columns:1fr}.form .btn{justify-self:stretch}}.footer{position:relative;overflow:hidden;padding-top:clamp(48px,6vw,80px)}.foot-row{display:flex;flex-wrap:wrap;justify-content:space-between;gap:32px}.tag{font-family:var(--display);font-weight:700;font-size:clamp(1.75rem,3vw,2.5rem);line-height:1.1}.copy{margin-top:12px;color:var(--muted);font-family:var(--mono);font-size:.8125rem;font-weight:500;letter-spacing:.02em;max-width:34em}.foot-links{display:flex;flex-wrap:wrap;gap:4px 8px;align-items:flex-start}.foot-links a{padding:10px 14px;border-radius:var(--r-pill);text-decoration:none;font-weight:600}.foot-links a:hover{background:var(--surface-2)}.wordmark{margin:clamp(24px,4vw,56px) 0 0;font-family:var(--display);font-weight:800;font-size:clamp(9.2rem,35.65vw,29.9rem);line-height:.74;letter-spacing:-.005em;text-align:center;color:var(--surface-2);white-space:nowrap;user-select:none;height:.6em;overflow:hidden}html[data-theme="dark"] .wordmark{color:var(--surface-2)}.nf{min-height:100vh;display:grid;place-items:center;padding:var(--gutter)}.nf h1{font-size:clamp(8.05rem,32.2vw,20.7rem);line-height:.9;color:var(--ember)}.nf p{margin-top:12px}.nf .hero-kicker{margin-bottom:0}.step .n{position:relative;z-index:1}@media (max-width:400px){.brand span{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}}@media (min-width:861px) and (max-width:1099px){.stage{--px-size:4}}@media (min-width:1100px) and (max-width:1299px){.stage{--px-size:5}}@media (max-width:560px){.stage{--px-size:4}}@media (max-width:359px){.stage{--px-size:3}}.tea{--tp:4;display:inline-block;position:relative;width:calc(48px*var(--tp));flex:none;pointer-events:none;user-select:none}.tea img{display:block;width:calc(48px*var(--tp));height:auto;image-rendering:pixelated}.tea-steam{display:block;position:relative;height:calc(24px*var(--tp));margin-bottom:calc(-9px*var(--tp))}.tea-steam .st{position:absolute;left:0;top:0}.tea-steam .st2,.tea-steam .st3{opacity:0}.tea-cup{display:block;position:relative}.tea-cup .glint{position:absolute;left:0;top:0}.tea-row{display:flex;align-items:flex-end;gap:calc(var(--gutter)*.75);margin-bottom:clamp(20px,3vw,36px)}.tea-line{font-family:var(--display);font-weight:700;font-size:clamp(1.5rem,2.4vw,2rem);line-height:1.1;color:var(--text);max-width:11em;padding-bottom:calc(12px*4)}.tea-row .tea-line{padding-bottom:calc(12px*4)}.wm{position:relative}.tea-mini{--tp:2;position:absolute;right:clamp(16px,6vw,96px);top:calc(-8px*var(--tp))}@media (max-width:860px){.tea-row .tea{--tp:3}.tea-row .tea-line{padding-bottom:calc(12px*3)}}@media (max-width:359px){.tea-row{flex-wrap:wrap;gap:12px}.tea-row .tea-line{padding-bottom:0}}.pico{display:block;flex:none;width:48px;height:48px;image-rendering:pixelated;align-self:flex-start}.card.big .pico,.card.mid .pico{width:72px;height:72px}.st-ico{flex:none;display:inline-block;width:16px;height:16px;image-rendering:pixelated;background-repeat:no-repeat;background-position:0 0}.st-dev{background-image:url(/assets/img/icons/status-inProgress.svg);background-size:48px 16px}.st-live{background-image:url(/assets/img/icons/status-live.svg);background-size:32px 16px}.st-oss{background-image:url(/assets/img/icons/status-openSource.svg);background-size:16px 16px}.status-legend{display:flex;flex-wrap:wrap;gap:8px 20px;margin:0 0 clamp(20px,2.4vw,32px);padding:0;list-style:none;font-family:var(--mono);font-size:.8125rem;font-weight:500;letter-spacing:.02em;color:var(--muted)}.status-legend li{display:inline-flex;align-items:center;gap:8px}.contrib{margin-top:clamp(40px,5vw,72px)}.contrib-h{font-size:clamp(1.75rem,3vw,2.5rem);line-height:1}.contrib-intro{margin:10px 0 clamp(20px,2.4vw,32px);color:var(--muted);max-width:44em}.contrib-card{gap:20px}.contrib-head{display:flex;align-items:center;gap:16px;flex-wrap:wrap}.contrib-id{display:grid;gap:2px;min-width:0}.contrib-proj{margin:0;font-family:var(--display);font-weight:800;font-size:clamp(1.5rem,2.4vw,2rem);line-height:1.05}.contrib-proj a{color:var(--ember-text);text-decoration:none;overflow-wrap:anywhere}.contrib-proj a:hover{text-decoration:underline}.contrib-card>.sum{max-width:48em;margin:0}.contrib-items{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:clamp(16px,2vw,28px);margin:0;padding:0;list-style:none}.contrib-item{display:flex;flex-direction:column;gap:14px;padding:clamp(18px,2vw,28px);border-radius:var(--r-input);background:var(--bg);min-width:0}html[data-theme="dark"] .section.alt .contrib-item{background:var(--surface)}.contrib-item .name{font-size:clamp(1.5rem,2.4vw,2rem);line-height:1.05}.contrib-item .sum{margin:0}.contrib-item .chips{margin-top:0}.contrib-item .chip{background:var(--surface-2)}html[data-theme="dark"] .section.alt .contrib-item .chip{background:var(--surface-2)}.prs{display:flex;flex-direction:column;align-items:flex-start;gap:8px;margin:auto 0 0;padding:0;list-style:none;max-width:100%}.prs a{display:inline-flex;align-items:center;gap:8px;min-height:44px;padding:8px 18px;border-radius:var(--r-pill);border:1.5px solid var(--line);text-decoration:none;font-weight:600;font-size:.9375rem;max-width:100%;transition:border-color .3s}.prs a:hover{border-color:var(--text)}.prs img{flex:none;image-rendering:pixelated}.prs .meta{color:var(--ember-text)}@media (max-width:700px){.contrib-items{grid-template-columns:1fr}}.prs .ext{flex:none;margin-left:0}.contrib-proj a{display:inline-flex;align-items:center}.contrib-proj .ext{width:.6em;height:.6em;margin-left:.35em}@media (max-width:560px){.contrib-card{padding-inline:16px}.contrib-item{padding:16px}.prs a{border-radius:14px;padding:8px 12px;align-items:flex-start;line-height:1.35}.prs img{margin-top:2px}.contrib-head .pico{width:48px;height:48px}}@keyframes rise{from{transform:translateY(105%)}to{transform:none}}@keyframes fade-up{from{opacity:0;transform:translateY(32px)}to{opacity:1;transform:none}}@keyframes fade-in{from{opacity:0}to{opacity:1}}@keyframes pulse{0%,100%{box-shadow:0 0 0 0 rgb(46 158 98 / .5)}60%{box-shadow:0 0 0 7px rgb(46 158 98 / 0)}}.js .ln>span{animation:rise .9s var(--ease) both;animation-delay:calc(var(--i)*80ms + 120ms)}@keyframes moon-rise{from{transform:translateY(calc(var(--px-size)*110px))}to{transform:none}}@keyframes ring-in{from{opacity:0}to{opacity:1}}@keyframes bob{0%,100%{transform:none}50%{transform:translateY(calc(var(--px-size)*-1px))}}@keyframes pulse1{0%{opacity:.4}33.4%,100%{opacity:.24}}@keyframes pulse2{0%,33.3%{opacity:.12}33.4%{opacity:.26}66.7%,100%{opacity:.12}}@keyframes pulse3{0%,66.6%{opacity:.06}66.7%{opacity:.18}100%{opacity:.06}}@keyframes moon-set{from{transform:none}to{transform:translateY(calc(var(--px-size)*110px))}}@keyframes ray-a{0%,49.9%{opacity:1}50%,100%{opacity:0}}@keyframes ray-b{0%,49.9%{opacity:0}50%,100%{opacity:1}}@keyframes cloud-a{to{transform:translateX(10px)}}@keyframes cloud-b{to{transform:translateX(-7px)}}@keyframes star-in{from{opacity:0}to{opacity:1}}@keyframes tw{0%{opacity:1}50%{opacity:.35}100%{opacity:1}}@keyframes spark{0%,90%{transform:none}93%,96%{transform:scale(1.8)}100%{transform:none}}.stars .sp{transform-box:fill-box;transform-origin:center}.js .rise{animation:moon-rise 1.3s cubic-bezier(.16,1,.3,1) both}.js .ring{animation:ring-in .5s cubic-bezier(.65,0,.35,1) both}.js .r1{animation-delay:.9s}.js .r2{animation-delay:1.05s}.js .r3{animation-delay:1.2s}.js .bob{animation:bob 3s steps(1) infinite 2s}.js .r1 img{animation:pulse1 3.6s steps(1) infinite 2s}.js .r2 img{animation:pulse2 3.6s steps(1) infinite 2s}.js .r3 img{animation:pulse3 3.6s steps(1) infinite 2s}.js .stars .s1{animation:star-in .6s steps(3) both .5s,tw 1.6s steps(2) infinite 1.1s}.js .stars .s2{animation:star-in .6s steps(3) both 1s,tw 2.3s steps(2) infinite 1.6s}.js .stars .s3{animation:star-in .6s steps(3) both 1.5s,tw 3.1s steps(2) infinite 2.1s}.js .stars .sp{animation:spark 7s steps(1) infinite 3s}.js .stars .s2 .sp{animation-delay:5s}.js .stars .s3 .sp{animation-delay:7s}.js .rays .f1{animation:ray-a 1.2s steps(1) infinite 2s}.js .rays .f2{animation:ray-b 1.2s steps(1) infinite 2s}.js .clouds .c1{animation:cloud-a 8s steps(10) infinite alternate}.js .clouds .c2{animation:cloud-b 5.6s steps(7) infinite alternate}@keyframes scene-in{from{opacity:0}to{opacity:1}}.js .stage.swapping .scene.night,.js .stage.swapping .scene.day{display:block}html[data-theme="dark"] .stage.swapping .scene.night,html[data-theme="light"] .stage.swapping .scene.day{z-index:1;animation:scene-in .7s cubic-bezier(.65,0,.35,1) both}html[data-theme="dark"] .stage.swapping .scene.day .rise,html[data-theme="light"] .stage.swapping .scene.night .rise{animation:moon-set .35s cubic-bezier(.55,0,1,.45) both}html[data-theme="dark"] .stage.swapping .scene.day .halo,html[data-theme="light"] .stage.swapping .scene.night .halo{opacity:0;transition:opacity .2s ease-in}html[data-theme="dark"] .stage.swapping .scene.night .rise,html[data-theme="light"] .stage.swapping .scene.day .rise{animation:moon-rise .5s cubic-bezier(.22,1,.36,1) both .2s}.js .stage.settled .rise,.js .stage.settled .ring{animation:none}.js .stage.settled .stars .s1{animation:tw 1.6s steps(2) infinite}.js .stage.settled .stars .s2{animation:tw 2.3s steps(2) infinite}.js .stage.settled .stars .s3{animation:tw 3.1s steps(2) infinite}.js .cut{animation:fade-up .9s var(--ease) both .35s}.js .hero-kicker,.js .lead,.js .hero-cta,.js .status{animation:fade-up .8s var(--ease) both;animation-delay:.45s}.js .lead{animation-delay:.55s}.js .hero-cta{animation-delay:.65s}.js .status{animation-delay:.75s}.live-dot{animation:pulse 2.4s ease-out infinite}@media (hover:none){.glow-card::before{display:none}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{animation:none!important;transition:none!important}.js .reveal{opacity:1;transform:none}.moon-wrap,.sun-wrap,.stars,.clouds,.cut-pos{transform:none}.rays .f2{opacity:0}.btn-primary:hover,.btn:hover .arrow{transform:none}.svc>.arrow{transform:none}.marquee{overflow:visible;margin:0;padding:0}.mq-track{width:auto;display:block}.mq-set{display:grid;gap:20px;padding:0 var(--gutter);max-width:calc(var(--wrap) + var(--gutter)*2);margin-inline:auto}.mq-copy{display:none}.mq-group{flex-wrap:wrap;align-items:baseline}.mq-group h3{flex:0 0 100%}.mq-group ul{flex-wrap:wrap}.mq-group .chip{font-family:var(--mono);font-size:.8125rem;font-weight:500;letter-spacing:.02em;padding:4px 14px}}@keyframes tea-f1{0%,33.2%{opacity:1}33.3%,100%{opacity:0}}@keyframes tea-f2{0%,33.2%{opacity:0}33.3%,66.5%{opacity:1}66.6%,100%{opacity:0}}@keyframes tea-f3{0%,66.5%{opacity:0}66.6%,100%{opacity:1}}@keyframes tea-blink{0%,92%,100%{opacity:1}93%,97%{opacity:0}}@keyframes tea-pop{0%,24%{transform:scale(.4)}25%,49%{transform:scale(.7)}50%,74%{transform:scale(1.12)}75%,100%{transform:scale(1)}}.tea-steam .st1{animation:tea-f1 1.05s steps(1) infinite}.tea-steam .st2{animation:tea-f2 1.05s steps(1) infinite}.tea-steam .st3{animation:tea-f3 1.05s steps(1) infinite}.tea-cup .glint{animation:tea-blink 4s steps(1) infinite}.js .tea-row .tea{opacity:0;transform-origin:50% 100%}.js .tea-row .tea.in{opacity:1;animation:tea-pop .45s steps(1) both}@media (prefers-reduced-motion:reduce){.js .tea-row .tea{opacity:1}}@keyframes st-sand{to{background-position:-48px 0}}@keyframes st-blink{0%{background-position:0 0}50%{background-position:-16px 0}}.st-dev{animation:st-sand 2.4s steps(3) infinite}.st-live{animation:st-blink 1.6s steps(1) infinite}.pico{transition:transform .2s steps(1,start)}.glow-card:hover .pico,.glow-card:focus-within .pico{transform:translateY(-2px)}.card.big:hover .pico,.card.big:focus-within .pico,.card.mid:hover .pico,.card.mid:focus-within .pico{transform:translateY(-3px)}@media (prefers-reduced-motion:reduce){.glow-card:hover .pico,.glow-card:focus-within .pico{transform:none!important}}@media print{.js .tea-row .tea{opacity:1}}