@font-face{font-family:Bricolage Grotesque;font-style:normal;font-weight:200 800;font-stretch:100%;font-display:swap;src:url(../media/caa77eaf0c6cae2c-s.31vfkycla13v0.woff2)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Bricolage Grotesque;font-style:normal;font-weight:200 800;font-stretch:100%;font-display:swap;src:url(../media/6260001f568fa40d-s.0c4siir8-ephk.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,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:Bricolage Grotesque;font-style:normal;font-weight:200 800;font-stretch:100%;font-display:swap;src:url(../media/2aa781f449db21e3-s.p.1pg2nifvadz06.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Bricolage Grotesque Fallback;src:local(Arial);ascent-override:88.21%;descent-override:25.61%;line-gap-override:0.0%;size-adjust:105.43%}.bricolage_grotesque_da8ff556-module__cTvK6W__className{font-family:Bricolage Grotesque,Bricolage Grotesque Fallback;font-style:normal}.bricolage_grotesque_da8ff556-module__cTvK6W__variable{--font-bricolage:"Bricolage Grotesque", "Bricolage Grotesque Fallback"}
html:has(.pf){--bg:#f3f4f1;--surface:#fff;--surface-2:#e8eae5;--ink:#14161a;--muted:#555b63;--subtle:#7c838c;--line:#daddd6;--line-strong:#c3c7bf;--frame:#1b1e23;--accent:#2b44d6;--accent-ink:#fff;--accent-soft:#e2e6fa;--note:#9a5600;--note-soft:#fbefd9;--ok:#1c8a4a;--shadow:0 1px 2px #14161a0d,0 18px 40px -24px #14161a47}@media (prefers-color-scheme:dark){html:has(.pf):not([data-theme=light]){--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--bg:#0d0f12;--surface:#15181d;--surface-2:#1b1f25;--ink:#e8eaed;--muted:#a2a8b1;--subtle:#717882;--line:#252a31;--line-strong:#353b44;--frame:#2e333b;--accent:#8fa0ff;--accent-ink:#0d0f12;--accent-soft:#1d2340;--note:#efb35a;--note-soft:#2c2313;--ok:#4ade80;--shadow:0 1px 2px #0006,0 18px 40px -24px #000c}}html:has(.pf)[data-theme=dark]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--bg:#0d0f12;--surface:#15181d;--surface-2:#1b1f25;--ink:#e8eaed;--muted:#a2a8b1;--subtle:#717882;--line:#252a31;--line-strong:#353b44;--frame:#2e333b;--accent:#8fa0ff;--accent-ink:#0d0f12;--accent-soft:#1d2340;--note:#efb35a;--note-soft:#2c2313;--ok:#4ade80;--shadow:0 1px 2px #0006,0 18px 40px -24px #000c}body:has(.pf){background:var(--bg)}.pf *{box-sizing:border-box}html:has(.pf){scroll-behavior:smooth;scroll-padding-top:84px}.pf{--f-display:var(--font-bricolage),ui-sans-serif,system-ui,-apple-system,"Segoe UI",sans-serif;--f-body:var(--font-geist-sans),ui-sans-serif,system-ui,-apple-system,"Segoe UI",sans-serif;--f-mono:var(--font-geist-mono),ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;background:var(--bg);min-height:100vh;color:var(--ink);font:400 16px/1.6 var(--f-body);-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility}.pf h1,.pf h2,.pf h3,.pf h4,.pf p,.pf ul,.pf dl,.pf dd,.pf figure{margin:0}.pf ul{padding:0;list-style:none}.pf a{color:inherit;text-decoration:none}.pf button{font:inherit;color:inherit;cursor:pointer;background:0 0;border:0;padding:0}.pf :focus-visible{outline:2px solid var(--accent);outline-offset:3px;border-radius:4px}.pf ::selection{background:var(--accent);color:var(--accent-ink)}.pf svg{display:block}.pf .wrap{max-width:1180px;margin-inline:auto;padding-inline:clamp(16px,4vw,40px)}.pf .mono{font-family:var(--f-mono)}.pf .eyebrow{font:500 12px/1.4 var(--f-mono);letter-spacing:.08em;text-transform:uppercase;color:var(--subtle)}.pf .skip{z-index:100;background:var(--ink);color:var(--bg);border-radius:6px;padding:10px 14px;position:absolute;top:-60px;left:16px}.pf .skip:focus{top:12px}.pf .site-head{top:env(safe-area-inset-top,0px);z-index:40;background:color-mix(in srgb,var(--bg) 84%,transparent);-webkit-backdrop-filter:saturate(1.4)blur(12px);border-bottom:1px solid #0000;transition:border-color .2s;position:sticky}.pf .site-head.scrolled{border-bottom-color:var(--line)}.pf .site-head .wrap{align-items:center;gap:24px;height:64px;display:flex}.pf .brand{letter-spacing:-.01em;align-items:center;gap:10px;margin-right:auto;font-weight:500;display:flex}.pf .mark{background:var(--ink);width:30px;height:30px;color:var(--bg);font:700 13px/1 var(--f-display);letter-spacing:-.02em;border-radius:7px;place-items:center;display:grid}.pf .nav-links{gap:2px;display:flex}.pf .nav-links a{color:var(--muted);border-radius:6px;padding:6px 10px;font-size:14px;transition:color .15s,background .15s;display:block}.pf .nav-links a:hover{color:var(--ink);background:var(--surface-2)}.pf .nav-links a[aria-current=true]{color:var(--ink)}.pf .nav-links a[aria-current=true]:after{content:"";background:var(--accent);border-radius:2px;height:2px;margin-top:2px;display:block}.pf .head-actions{align-items:center;gap:8px;display:flex}.pf .icon-btn{width:36px;height:36px;color:var(--muted);border:1px solid var(--line);background:var(--surface);border-radius:8px;place-items:center;transition:color .15s,border-color .15s;display:grid}.pf .icon-btn:hover{color:var(--ink);border-color:var(--line-strong)}.pf .icon-btn svg{width:17px;height:17px}.pf .copy-btn.copied{color:var(--ok);border-color:color-mix(in srgb,var(--ok) 45%,var(--line))}.pf .copy-btn.copied svg{animation:.25s both pop}@keyframes pop{0%{opacity:0;transform:scale(.6)}}.pf .menu-btn{display:none}.pf .mobile-nav{border-top:1px solid var(--line);background:var(--bg)}.pf .mobile-nav ul{padding-block:8px 16px;display:grid}.pf .mobile-nav a{font:500 20px/1.2 var(--f-display);letter-spacing:-.02em;border-bottom:1px solid var(--line);padding:12px 0;display:block}@media (min-width:901px){.pf .mobile-nav{display:none}}.pf .site-head .mobile-nav ul{align-items:stretch;gap:0;height:auto;display:grid}@media (max-width:900px){.pf .nav-links{display:none}.pf .menu-btn{display:grid}}.pf .btn{height:46px;font:500 15px/1 var(--f-body);border:1px solid var(--line-strong);background:var(--surface);color:var(--ink);white-space:nowrap;border-radius:8px;align-items:center;gap:8px;padding:0 20px;transition:transform .15s,background .15s,border-color .15s,color .15s;display:inline-flex}.pf .btn:hover{border-color:var(--ink)}.pf .btn:active{transform:translateY(1px)}.pf .btn svg{width:16px;height:16px;transition:transform .2s}.pf .btn:hover svg.nudge{transform:translate(3px)}.pf .btn:hover svg.nudge-down{transform:translateY(2px)}.pf .btn-primary{background:var(--ink);color:var(--bg);border-color:var(--ink)}.pf .btn-primary:hover{background:var(--accent);border-color:var(--accent);color:var(--accent-ink)}.pf .btn-ghost{background:0 0;border-color:#0000;padding-inline:12px}.pf .btn-ghost:hover{color:var(--accent);border-color:#0000}.pf .btn-sm{height:36px;padding:0 14px;font-size:14px}.pf .hero{grid-template-columns:minmax(0,1fr) 340px;align-items:end;gap:clamp(32px,6vw,88px);padding-block:clamp(48px,8vw,104px) clamp(56px,8vw,96px);display:grid}.pf .status{font:500 13px/1 var(--f-body);color:var(--muted);border:1px solid var(--line);background:var(--surface);border-radius:999px;align-items:center;gap:10px;padding:7px 12px 7px 10px;display:inline-flex}.pf .dot{background:var(--ok);width:8px;height:8px;box-shadow:0 0 0 3px color-mix(in srgb,var(--ok) 22%,transparent);border-radius:50%;animation:2.4s ease-in-out infinite pulse}@keyframes pulse{50%{box-shadow:0 0 0 6px color-mix(in srgb,var(--ok) 0%,transparent)}}.pf .hero h1{font:650 clamp(2.6rem,6.2vw,5rem)/1 var(--f-display);font-variation-settings:"opsz" 96;letter-spacing:-.045em;text-wrap:balance;max-width:16ch;margin-top:28px}.pf .hero h1 .hl{color:var(--accent)}.pf .lede{color:var(--muted);text-wrap:pretty;max-width:58ch;margin-top:24px;font-size:clamp(1.05rem,1.5vw,1.2rem);line-height:1.6}.pf .ctas{flex-wrap:wrap;gap:10px;margin-top:32px;display:flex}.pf .hero-stack{flex-wrap:wrap;align-items:center;gap:10px 18px;margin-top:44px;display:flex}.pf .hero-stack .eyebrow{margin-right:4px}.pf .hs-item{color:var(--muted);align-items:center;gap:7px;font-size:14px;transition:color .15s;display:inline-flex}.pf .hs-item svg{width:16px;height:16px}.pf .hs-item:hover{color:var(--ink)}.pf .hero-card{background:var(--surface);border:1px solid var(--line);box-shadow:var(--shadow);border-radius:16px;padding:14px}.pf .portrait{aspect-ratio:1;background:var(--surface-2);border-radius:10px;position:relative;overflow:hidden}.pf .portrait img{object-fit:cover;filter:saturate(.9)contrast(1.02);width:100%;height:100%}.pf .hc-id{padding:16px 6px 6px}.pf .hc-id strong{font:600 20px/1.2 var(--f-display);letter-spacing:-.02em;display:block}.pf .hc-id span{color:var(--muted);font-size:14px}.pf .spec{border-top:1px solid var(--line);gap:0;margin-top:10px;display:grid}.pf .spec>div{border-bottom:1px solid var(--line);justify-content:space-between;gap:16px;padding:9px 6px;font-size:13.5px;display:flex}.pf .spec>div:last-child{border-bottom:0}.pf .spec dt{color:var(--subtle)}.pf .spec dd{text-align:right;font-variant-numeric:tabular-nums}.pf .rise{animation:.7s cubic-bezier(.2,.7,.2,1) both rise;animation-delay:calc(var(--i,0)*70ms)}@keyframes rise{0%{opacity:0;transform:translateY(14px)}}@media (max-width:900px){.pf .hero{grid-template-columns:1fr;align-items:start}.pf .hero-card{max-width:420px}}.pf section.block{border-top:1px solid var(--line);padding-block:clamp(72px,10vw,120px)}.pf .sec-head{grid-template-columns:minmax(0,1fr) minmax(0,.7fr);align-items:end;gap:24px 48px;margin-bottom:clamp(36px,5vw,64px);display:grid}.pf .sec-head h2{font:620 clamp(2rem,3.8vw,3.1rem)/1.04 var(--f-display);font-variation-settings:"opsz" 72;letter-spacing:-.035em;text-wrap:balance;max-width:18ch;margin-top:14px}.pf .sec-head>p{color:var(--muted);text-wrap:pretty;justify-self:end;max-width:44ch}@media (max-width:760px){.pf .sec-head{grid-template-columns:1fr}.pf .sec-head>p{justify-self:start}}.pf .about{grid-template-columns:minmax(0,1.15fr) minmax(0,1fr);gap:clamp(32px,6vw,96px);display:grid}.pf .about-copy{gap:18px;max-width:62ch;font-size:17px;line-height:1.7;display:grid}.pf .about-copy p:first-child{font:500 clamp(1.25rem,2vw,1.5rem)/1.45 var(--f-body);letter-spacing:-.01em;color:var(--ink)}.pf .about-copy p+p{color:var(--muted)}.pf .about-side{align-content:start;gap:36px;display:grid}.pf .about-side h3{margin-bottom:14px}.pf .xp-list{border-top:1px solid var(--line);grid-template-columns:1fr 1fr;display:grid}.pf .xp-list li{border-bottom:1px solid var(--line);align-items:baseline;gap:10px;padding:12px 12px 12px 0;font-size:14.5px;display:flex}.pf .xp-list li:before{content:"";background:var(--accent);border-radius:1px;flex:none;width:5px;height:5px;transform:translateY(-2px)}.pf .domains{flex-wrap:wrap;gap:8px;display:flex}.pf .domain{border:1px solid var(--line-strong);border-radius:999px;padding:6px 12px;font-size:14px}@media (max-width:860px){.pf .about{grid-template-columns:1fr}}@media (max-width:420px){.pf .xp-list{grid-template-columns:1fr}}.pf .chips{flex-wrap:wrap;gap:6px;display:flex}.pf .chip{border:1px solid var(--line);background:var(--surface);color:var(--ink);border-radius:6px;align-items:center;gap:7px;padding:7px 10px 7px 8px;font-size:13px;line-height:1;transition:border-color .15s,color .15s;display:inline-flex}.pf .chip svg{width:14px;height:14px;color:var(--muted);transition:color .15s}.pf .chip:hover{border-color:var(--line-strong)}.pf .chip:hover svg{color:var(--brand,var(--accent))}.pf .mono-ico{background:var(--surface-2);width:14px;height:14px;color:var(--muted);font:600 7.5px/1 var(--f-mono);letter-spacing:-.02em;border-radius:3px;place-items:center;display:grid}.pf .chip-sm{padding:5px 8px 5px 6px;font-size:12px}.pf .chip-sm svg,.pf .chip-sm .mono-ico{width:12px;height:12px}.pf .showcase{border-top:1px solid var(--line);grid-template-columns:minmax(0,5fr) minmax(0,7fr);align-items:start;gap:clamp(28px,5vw,64px);padding-block:clamp(40px,5vw,64px);display:grid}.pf .showcase:first-child{border-top:0;padding-top:0}.pf .showcase.flip{grid-template-columns:minmax(0,7fr) minmax(0,5fr)}.pf .showcase.flip .sc-media{order:-1}.pf .sc-body{gap:18px;display:grid;position:sticky;top:96px}.pf .sc-name{font:650 clamp(2rem,3.6vw,2.9rem)/1 var(--f-display);font-variation-settings:"opsz" 96;letter-spacing:-.04em;flex-wrap:wrap;align-items:center;gap:12px;display:flex}.pf .sc-tagline{color:var(--ink);text-wrap:balance;margin-top:-6px;font-size:18px;line-height:1.45}.pf .sc-desc{color:var(--muted);text-wrap:pretty}.pf .sc-body .spec{margin-top:0}.pf .sc-body .spec>div{padding-inline:0}.pf .hl{gap:10px;display:grid}.pf .hl li{grid-template-columns:18px 1fr;gap:8px;font-size:14.5px;line-height:1.5;display:grid}.pf .hl li svg{width:14px;height:14px;color:var(--accent);margin-top:3px}.pf .links{flex-wrap:wrap;gap:8px 18px;display:flex}.pf .lnk{color:var(--accent);border-bottom:1px solid #0000;align-items:center;gap:6px;font-size:14.5px;font-weight:500;transition:border-color .15s;display:inline-flex}.pf .lnk:hover{border-bottom-color:currentColor}.pf .lnk svg{width:14px;height:14px}@media (max-width:900px){.pf .showcase,.pf .showcase.flip{grid-template-columns:minmax(0,1fr)}.pf .showcase .sc-media,.pf .showcase.flip .sc-media{order:-1}.pf .sc-body{position:static}}.pf .stage{aspect-ratio:4/3;border:1px solid var(--line);background-color:var(--surface-2);background-image:radial-gradient(color-mix(in srgb,var(--ink) 13%,transparent) 1px,transparent 1.2px);background-size:18px 18px;border-radius:14px;place-items:center;max-width:100%;display:grid;position:relative;overflow:hidden;container-type:size}.pf .stage-inner{place-items:center;animation:.35s both fade;display:grid;position:absolute;inset:0}@keyframes fade{0%{opacity:0;transform:scale(.985)}}.pf .stage-tools{z-index:2;gap:6px;display:flex;position:absolute;top:12px;right:12px}.pf .stage-tools .icon-btn{background:color-mix(in srgb,var(--surface) 88%,transparent);width:34px;height:34px}.pf .stage-cap{z-index:2;flex-wrap:wrap;align-items:center;gap:8px;display:flex;position:absolute;bottom:12px;left:14px}.pf .stage-cap .count{font:500 12px/1 var(--f-mono);color:var(--muted);background:color-mix(in srgb,var(--surface) 88%,transparent);border:1px solid var(--line);border-radius:5px;padding:6px 8px}.pf .thumbs{scrollbar-width:none;scroll-behavior:smooth;gap:10px;padding:2px 2px 4px;display:flex;overflow-x:auto}.pf .thumbs-wrap{margin-top:12px;position:relative}.pf .thumbs-nav{z-index:2;width:28px;height:28px;color:var(--ink);border:1px solid var(--line);background:color-mix(in srgb,var(--surface) 92%,transparent);border-radius:50%;place-items:center;transition:opacity .15s;display:grid;position:absolute;top:38px;transform:translateY(-50%);box-shadow:0 2px 8px -2px #00000040}.pf .thumbs-nav svg{width:15px;height:15px}.pf .thumbs-nav.prev{left:-6px}.pf .thumbs-nav.next{right:-6px}.pf .thumbs-nav:disabled{opacity:0;pointer-events:none}.pf .thumb{text-align:left;flex:none;gap:6px;width:118px;display:grid}.pf .thumb .stage{background-size:9px 9px;border-radius:8px;transition:border-color .15s}.pf .thumb span{font:500 11.5px/1.3 var(--f-mono);color:var(--subtle)}.pf .thumb:hover .stage{border-color:var(--line-strong)}.pf .thumb[aria-pressed=true] .stage{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent)}.pf .thumb[aria-pressed=true] span{color:var(--ink)}.pf .phone-shell{aspect-ratio:9/19;background:var(--frame);height:86%;box-shadow:var(--shadow);border-radius:clamp(8px,6cqw,34px);padding:1.1%;position:relative;container-type:size}.pf .phone-shell:before{content:"";background:var(--frame);z-index:1;border-radius:99px;width:30%;height:2.6%;position:absolute;top:2.4%;left:50%;transform:translate(-50%)}.pf .phone-screen{border-radius:inherit;background:var(--surface);width:100%;height:100%;position:relative;overflow:hidden}.pf .stage .stage .phone-shell{padding:2%}.pf .phone-shell.native{aspect-ratio:auto;border-radius:clamp(4px,5.6cqh,36px);height:auto;padding:max(1.5px,1.3cqh);container-type:normal}.pf .phone-shell.native .phone-screen{aspect-ratio:390/844;border-radius:clamp(3px,4.4cqh,30px);width:auto;height:83cqh}.pf .phone-shell.native .media-fill{object-position:center top}.pf .browser{aspect-ratio:16/10.5;background:var(--surface);border:1px solid var(--line-strong);width:88%;max-width:100%;box-shadow:var(--shadow);border-radius:clamp(5px,1.6cqw,12px);grid-template-rows:auto 1fr;display:grid;position:relative;overflow:hidden;container-type:size}.pf .b-bar{border-bottom:1px solid var(--line);background:var(--surface-2);align-items:center;gap:1.2cqw;padding:1.6cqw 2cqw;display:flex}.pf .b-bar i{background:var(--line-strong);border-radius:50%;width:1.4cqw;height:1.4cqw}.pf .b-url{font:500 max(7px,1.9cqw)/1 var(--f-mono);color:var(--subtle);background:var(--surface);border:1px solid var(--line);white-space:nowrap;text-overflow:ellipsis;border-radius:99px;max-width:55%;margin-inline:auto;padding:.8cqw 3cqw;overflow:hidden}.pf .media-fill{object-fit:cover;object-position:top left;width:100%;height:100%;display:block}.pf .browser-view{min-height:0;position:relative}.pf .thumb .stage-cap,.pf .thumb .b-url{display:none}.pf .more-head{border-top:1px solid var(--line);justify-content:space-between;align-items:center;gap:16px;margin:clamp(56px,7vw,88px) 0 20px;padding-top:28px;display:flex}.pf .more-head h3{font:600 22px/1.2 var(--f-display);letter-spacing:-.02em}.pf .more-nav{align-items:center;gap:6px;display:flex}.pf .more-nav .eyebrow{margin-right:8px}.pf .more-nav .icon-btn:disabled{opacity:.35;pointer-events:none}.pf .mini-grid{--cols:3;grid-auto-flow:column;grid-auto-columns:calc((100% - (var(--cols) - 1) * 20px) / var(--cols));overscroll-behavior-x:contain;scroll-snap-type:x mandatory;scroll-behavior:smooth;scrollbar-width:thin;scrollbar-color:var(--line-strong) transparent;gap:20px;padding-bottom:16px;display:grid;overflow-x:auto}.pf .mini-grid::-webkit-scrollbar{height:8px}.pf .mini-grid::-webkit-scrollbar-track{background:var(--line);border-radius:4px}.pf .mini-grid::-webkit-scrollbar-thumb{background:var(--line-strong);border-radius:4px}.pf .mini-grid::-webkit-scrollbar-thumb:hover{background:var(--subtle)}.pf .thumbs::-webkit-scrollbar{display:none}.pf .mini-grid>.mini{scroll-snap-align:start}@media (max-width:900px){.pf .mini-grid{--cols:2}}@media (max-width:600px){.pf .mini-grid{grid-auto-columns:86%}}@media (prefers-reduced-motion:reduce){.pf .mini-grid{scroll-behavior:auto}}.pf .mini{grid-template-columns:minmax(0,1fr);align-content:start;gap:14px;display:grid}.pf .mini .stage{aspect-ratio:16/10}.pf .mini .thumbs{margin-top:10px}.pf .mini .thumb{width:92px}.pf .mini .thumb .stage{aspect-ratio:4/3}.pf .mini .stage-cap{display:none}.pf .mini h4{font:600 20px/1.2 var(--f-display);letter-spacing:-.02em;flex-wrap:wrap;align-items:center;gap:10px;display:flex}.pf .mini p{color:var(--muted);font-size:14.5px}.pf .mini .meta{font:500 12px/1.4 var(--f-mono);color:var(--subtle);letter-spacing:.02em}.pf .mini-text{gap:6px;display:grid}.pf .company{border-top:1px solid var(--line);grid-template-columns:260px minmax(0,1fr);gap:24px clamp(24px,5vw,72px);padding-block:40px;display:grid}.pf .company:first-child{border-top:0;padding-top:0}.pf .co-name{font:620 26px/1.1 var(--f-display);letter-spacing:-.03em;align-items:center;gap:8px;display:inline-flex}.pf .co-name svg{width:16px;height:16px;color:var(--subtle);transition:transform .2s,color .2s}.pf a.co-name:hover svg{color:var(--accent);transform:translate(2px,-2px)}.pf .co-meta{font:500 13px/1.4 var(--f-mono);color:var(--subtle);gap:4px;margin-top:10px;display:grid}.pf .roles{gap:36px;display:grid;position:relative}.pf .roles.multi:before{content:"";background:var(--line-strong);width:1px;position:absolute;top:12px;bottom:12px;left:5px}.pf .role{gap:12px;display:grid;position:relative}.pf .roles.multi .role{padding-left:30px}.pf .roles.multi .role:before{content:"";background:var(--bg);border:2px solid var(--line-strong);border-radius:50%;width:11px;height:11px;position:absolute;top:8px;left:0}.pf .roles.multi .role:first-child:before{border-color:var(--accent);background:var(--accent)}.pf .role-top{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:6px 20px;display:flex}.pf .role h4{font:600 19px/1.3 var(--f-body);letter-spacing:-.01em}.pf .role-dates{font:500 13px/1.4 var(--f-mono);color:var(--muted);font-variant-numeric:tabular-nums}.pf .role-dates .now{color:var(--ok)}.pf .role-tags{flex-wrap:wrap;gap:6px;display:flex}.pf .tag{font:500 11.5px/1 var(--f-mono);background:var(--surface-2);color:var(--muted);border-radius:4px;padding:5px 7px}.pf .tag-nda{color:var(--note);background:var(--note-soft);align-items:center;gap:5px;display:inline-flex}.pf .tag-nda svg{width:11px;height:11px}.pf .role-sum{color:var(--muted);max-width:68ch}.pf .work{gap:8px;padding-top:4px;display:grid}.pf .work-proj{font:500 13px/1.4 var(--f-mono);letter-spacing:.02em;color:var(--ink);align-items:center;gap:6px;display:inline-flex}.pf .work-proj a{color:var(--accent);align-items:center;gap:4px;display:inline-flex}.pf .work-proj a:hover{text-underline-offset:3px;text-decoration:underline}.pf .work-proj svg{width:12px;height:12px}.pf .bul{gap:7px;max-width:72ch;display:grid}.pf .bul li{color:var(--muted);padding-left:18px;font-size:15px;line-height:1.55;position:relative}.pf .bul li:before{content:"";background:var(--subtle);width:7px;height:1px;position:absolute;top:.72em;left:2px}.pf .more-btn{font:500 13px/1 var(--f-mono);color:var(--accent);justify-self:start;align-items:center;gap:6px;padding:6px 0;display:inline-flex}.pf .more-btn svg{width:12px;height:12px;transition:transform .2s}.pf .more-btn[aria-expanded=true] svg{transform:rotate(180deg)}@media (max-width:820px){.pf .company{grid-template-columns:1fr}}.pf .stack{border-top:1px solid var(--line)}.pf .sg{border-bottom:1px solid var(--line);grid-template-columns:280px minmax(0,1fr);align-items:start;gap:16px 48px;padding-block:24px;display:grid}.pf .sg h3{font:600 18px/1.3 var(--f-display);letter-spacing:-.015em}.pf .sg p{color:var(--muted);max-width:34ch;margin-top:4px;font-size:14px}.pf .sg .chips{gap:8px}.pf .sg .chip{padding:9px 12px 9px 10px;font-size:14px}.pf .sg .chip svg,.pf .sg .chip .mono-ico{width:16px;height:16px}@media (max-width:760px){.pf .sg{grid-template-columns:1fr}}.pf .posts{grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(20px,3vw,36px);display:grid}.pf .post{align-content:start;gap:14px;display:grid}.pf .cover{aspect-ratio:16/10;background:hsl(var(--h) 40% 50%/.14);border:1px solid var(--line);border-radius:12px;align-items:flex-end;padding:18px;transition:transform .25s;display:flex;position:relative;overflow:hidden}.pf .cover:after{content:"";background:repeating-linear-gradient(-45deg,transparent 0 10px,hsl(var(--h) 40% 50%/.07) 10px 11px);position:absolute;inset:0}.pf .cover strong{z-index:1;font:650 clamp(1.4rem,2.4vw,1.9rem)/1 var(--f-display);letter-spacing:-.04em;color:hsl(var(--h) 45% 38%);position:relative}html:has(.pf)[data-theme=dark] .cover strong{color:hsl(var(--h) 60% 72%)}@media (prefers-color-scheme:dark){html:has(.pf):not([data-theme=light]) .cover strong{color:hsl(var(--h) 60% 72%)}}.pf .post:hover .cover{transform:translateY(-3px)}.pf .post .meta{font:500 12.5px/1.4 var(--f-mono);color:var(--subtle);flex-wrap:wrap;gap:8px;display:flex}.pf .post h3{font:600 20px/1.25 var(--f-display);letter-spacing:-.02em;text-wrap:balance}.pf .post:hover h3{text-underline-offset:4px;text-decoration:underline;text-decoration-thickness:1px}.pf .post p{color:var(--muted);font-size:14.5px}.pf .post .lnk{margin-top:2px}.pf .sec-foot{justify-content:flex-start;margin-top:40px;display:flex}@media (max-width:900px){.pf .posts{grid-template-columns:1fr 1fr}.pf .posts .post:nth-child(3){display:none}}@media (max-width:600px){.pf .posts{grid-template-columns:1fr}.pf .posts .post:nth-child(3){display:grid}}.pf .resume{grid-template-columns:minmax(0,1fr);gap:clamp(40px,5vw,64px);display:grid}.pf .resume-cols{grid-template-columns:minmax(0,1.2fr) minmax(0,1fr);align-items:start;gap:clamp(28px,5vw,64px);display:grid}.pf .rs-title{font:600 13px/1.4 var(--f-mono);letter-spacing:.08em;text-transform:uppercase;color:var(--subtle);margin-bottom:16px}.pf .tl{border:1px solid var(--line);background:var(--surface);border-radius:12px;padding:18px 18px 12px;overflow-x:auto}.pf .tl-grid{grid-template-columns:150px 1fr;align-items:center;row-gap:10px;min-width:520px;display:grid}.pf .tl-label{padding-right:12px;font-size:13px;line-height:1.3}.pf .tl-label small{font:500 11px/1.3 var(--f-mono);color:var(--subtle);display:block}.pf .tl-track{height:22px;position:relative}.pf .tl-bar{background:var(--accent);border-radius:3px;height:14px;position:absolute;top:4px}.pf .tl-bar.edu{border:1.5px solid var(--muted);background:0 0}.pf .tl-bar.intern{background:color-mix(in srgb,var(--accent) 45%,transparent)}.pf .tl-bar.now:after{content:"";background:var(--ok);width:8px;height:8px;box-shadow:0 0 0 3px var(--surface);border-radius:50%;position:absolute;top:50%;right:-4px;transform:translateY(-50%)}.pf .tl-axis{border-top:1px solid var(--line);height:20px;margin-top:4px;position:relative}.pf .tl-axis span{font:500 11px/1 var(--f-mono);color:var(--subtle);font-variant-numeric:tabular-nums;position:absolute;top:6px;transform:translate(-50%)}.pf .tl-gridlines{pointer-events:none;position:absolute;inset:0}.pf .tl-gridlines i{background:var(--line);width:1px;position:absolute;top:0;bottom:0}.pf .tl-legend{color:var(--muted);flex-wrap:wrap;gap:16px;margin-top:12px;font-size:12.5px;display:flex}.pf .tl-legend span{align-items:center;gap:6px;display:inline-flex}.pf .tl-legend i{background:var(--accent);border-radius:2px;width:14px;height:8px}.pf .tl-legend i.edu{border:1.5px solid var(--muted);background:0 0}.pf .tl-legend i.intern{background:color-mix(in srgb,var(--accent) 45%,transparent)}.pf .edu-list{border-top:1px solid var(--line);display:grid}.pf .edu-list>.edu{border-bottom:1px solid var(--line);grid-template-columns:minmax(0,1fr) auto;gap:4px 24px;padding-block:18px;display:grid}.pf .edu h4{font:600 17px/1.35 var(--f-body)}.pf .edu .inst{color:var(--muted);font-size:15px}.pf .edu .inst a:hover{color:var(--accent)}.pf .edu .when{font:500 13px/1.5 var(--f-mono);color:var(--subtle);text-align:right;font-variant-numeric:tabular-nums}.pf .edu .bul{grid-column:1/-1;margin-top:8px}.pf .certs{border-top:1px solid var(--line)}.pf .cert{border-bottom:1px solid var(--line);flex-direction:column;align-items:flex-start;gap:4px;padding-block:14px;font-size:15px;display:flex}.pf .cert a{display:inline}.pf .cert a svg{vertical-align:-1px;margin-left:4px;display:inline}.pf .cert a:hover{color:var(--accent)}.pf .cert svg{width:14px;height:14px;color:var(--subtle)}.pf .cert-meta{font:500 12.5px/1.4 var(--f-mono);color:var(--subtle);white-space:nowrap}@media (max-width:900px){.pf .resume-cols{grid-template-columns:1fr}}.pf .contact{border-top:1px solid var(--line);padding-block:clamp(80px,12vw,150px) clamp(56px,8vw,96px)}.pf .contact h2{font:650 clamp(2.4rem,6vw,4.8rem)/1 var(--f-display);font-variation-settings:"opsz" 96;letter-spacing:-.045em;text-wrap:balance;max-width:15ch;margin-top:16px}.pf .contact-grid{grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);align-items:start;gap:clamp(32px,6vw,96px);margin-top:clamp(40px,5vw,64px);display:grid}.pf .email-row{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.pf .email{font:560 clamp(1.3rem,2.6vw,2rem)/1.2 var(--f-display);letter-spacing:-.025em;word-break:break-all;border-bottom:2px solid var(--accent);-webkit-user-select:all;user-select:all;padding-bottom:4px}.pf .contact-note{color:var(--muted);max-width:46ch;margin-top:20px}.pf .contact .ctas{margin-top:28px}.pf .socials{border-top:1px solid var(--line)}.pf .social{border-bottom:1px solid var(--line);grid-template-columns:22px minmax(0,1fr) auto;align-items:center;gap:14px;padding:16px 4px;transition:background .15s,padding .2s;display:grid}.pf .social svg.ico{width:20px;height:20px;color:var(--muted)}.pf .social .mono-ico{width:20px;height:20px;font-size:9px}.pf .social strong{font-weight:500;display:block}.pf .social span{font:500 12.5px/1.4 var(--f-mono);color:var(--subtle);text-overflow:ellipsis;white-space:nowrap;display:block;overflow:hidden}.pf .social .arrow{width:16px;height:16px;color:var(--subtle);transition:transform .2s,color .2s}.pf a.social:hover{background:var(--surface);padding-inline:10px 4px}.pf a.social:hover .arrow{color:var(--accent);transform:translate(2px,-2px)}.pf a.social:hover svg.ico{color:var(--ink)}@media (max-width:820px){.pf .contact-grid{grid-template-columns:1fr}}.pf footer{border-top:1px solid var(--line)}.pf footer .wrap{font:500 12.5px/1.5 var(--f-mono);color:var(--subtle);flex-wrap:wrap;justify-content:space-between;gap:12px 24px;padding-block:28px;display:flex}.pf dialog.lb{border:1px solid var(--line);background:var(--surface);width:min(1100px,100vw - 32px);max-height:calc(100dvh - 32px);color:var(--ink);border-radius:16px;margin:auto;padding:0;box-shadow:0 30px 80px -20px #00000080}.pf dialog.lb::backdrop{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#08090bb8}.pf dialog.lb[open]{animation:.25s both fade}.pf .lb-head{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;gap:16px;padding:12px 12px 12px 20px;display:flex}.pf .lb-head strong{font:600 16px/1.3 var(--f-display);letter-spacing:-.01em}.pf .lb-head span{font:500 12.5px var(--f-mono);color:var(--subtle);margin-left:10px}.pf .lb .stage{aspect-ratio:16/10;border:0;border-radius:0;width:100%;max-height:calc(100dvh - 180px)}.pf .lb-foot{border-top:1px solid var(--line);justify-content:space-between;align-items:center;gap:12px;padding:12px 20px;display:flex}.pf .lb-foot p{color:var(--muted);font-size:14px}.pf .lb-nav{gap:6px;display:flex}.pf .toast{left:50%;bottom:calc(24px + env(safe-area-inset-bottom,0px));opacity:0;background:var(--ink);color:var(--bg);box-shadow:var(--shadow);pointer-events:none;z-index:60;border-radius:8px;max-width:calc(100vw - 32px);padding:11px 16px;font-size:14px;transition:opacity .2s,transform .2s;position:fixed;transform:translate(-50%,20px)}.pf .toast.show{opacity:1;transform:translate(-50%)}.pf .nf{flex-direction:column;justify-content:center;min-height:calc(100vh - 154px);padding-block:clamp(56px,10vw,120px);display:flex}.pf .nf-code{font:700 clamp(6rem,22vw,14rem)/.85 var(--f-display);font-variation-settings:"opsz" 96;letter-spacing:-.06em;color:var(--accent);margin:18px 0 8px}.pf .nf h1{font:650 clamp(2rem,4.6vw,3.4rem)/1.05 var(--f-display);font-variation-settings:"opsz" 72;letter-spacing:-.035em;text-wrap:balance;max-width:18ch}@media (min-width:601px) and (max-width:900px){.pf .hero-card{grid-template-rows:auto 1fr;grid-template-columns:minmax(200px,38%) minmax(0,1fr);column-gap:24px;max-width:none;padding:16px;display:grid}.pf .hero-card .portrait{aspect-ratio:1;grid-row:1/3;align-self:start}.pf .hc-id{padding:8px 0 4px}.pf .hero-card .spec{align-self:start}.pf .hero-card .spec>div{padding-inline:0}}@media (max-width:600px){.pf .sc-media [data-stage]{aspect-ratio:4/5}.pf .sc-media [data-stage] .stage-cap{display:none}.pf .lb .stage{aspect-ratio:3/4}.pf .mini .stage{aspect-ratio:1}.pf .more-head h3{white-space:nowrap}.pf .more-nav .eyebrow{display:none}.pf .cover{aspect-ratio:16/7}.pf .tl{padding:14px 14px 10px;overflow:visible}.pf .tl-grid{grid-template-columns:minmax(0,1fr);row-gap:4px;min-width:0}.pf .tl-grid>div:empty{display:none}.pf .tl-label{padding:8px 0 0}.pf .tl-label small{margin-left:6px;display:inline}.pf .tl-axis span:nth-child(2n){display:none}}@media (prefers-reduced-motion:reduce){html:has(.pf){scroll-behavior:auto}.pf *,.pf :before,.pf :after{transition:none!important;animation:none!important}}
