@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/ba9851c3c22cd980-s.woff2) format("woff2");unicode-range:u+0460-052f,u+1c80-1c8a,u+20b4,u+2de0-2dff,u+a640-a69f,u+fe2e-fe2f}@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/21350d82a1f187e9-s.woff2) format("woff2");unicode-range:u+0301,u+0400-045f,u+0490-0491,u+04b0-04b1,u+2116}@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/c5fe6dc8356a8c31-s.woff2) format("woff2");unicode-range:u+1f??}@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/19cfc7226ec3afaa-s.woff2) format("woff2");unicode-range:u+0370-0377,u+037a-037f,u+0384-038a,u+038c,u+038e-03a1,u+03a3-03ff}@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/df0a9ae256c0569c-s.woff2) format("woff2");unicode-range:u+0102-0103,u+0110-0111,u+0128-0129,u+0168-0169,u+01a0-01a1,u+01af-01b0,u+0300-0301,u+0303-0304,u+0308-0309,u+0323,u+0329,u+1ea0-1ef9,u+20ab}@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/8e9860b6e62d6359-s.p.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-20c4,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(/_next/static/media/e4af272ccee01ff0-s.p.woff2) format("woff2");unicode-range:u+00??,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:Inter Fallback;src:local("Arial");ascent-override:90.44%;descent-override:22.52%;line-gap-override:0.00%;size-adjust:107.12%}.__className_65423c{font-family:Inter,Inter Fallback;font-style:normal}.__variable_65423c{--font-inter:"Inter","Inter Fallback"}@layer od-layout{:where(.od-stack,.od-row,.od-row-top,.od-cluster,.od-grid,.od-stat,.od-field,.od-cell,.od-tile,.od-screen)>*{min-width:0}.od-stack{flex-direction:column}.od-row,.od-stack{display:flex;gap:var(--od-gap,8px)}.od-row{align-items:center}.od-row-top{align-items:flex-start}.od-cluster,.od-row-top{display:flex;gap:var(--od-gap,8px)}.od-cluster{flex-wrap:wrap;align-items:center}.od-fill{flex:1 1;min-width:0}.od-fixed{flex:none}.od-grid{display:grid;grid-template-columns:repeat(var(--od-cols,3),minmax(0,1fr));grid-gap:var(--od-gap,8px);gap:var(--od-gap,8px)}.od-cell,.od-field,.od-stat{display:grid;grid-gap:var(--od-gap,2px);gap:var(--od-gap,2px)}.od-cell>*,.od-field>*,.od-stat>*{display:block}.od-tile{display:grid;grid-template-rows:auto 1fr}.od-media{width:100%;height:auto;aspect-ratio:var(--od-ratio,auto)}.od-media-cover{object-fit:cover}.od-truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.od-clamp-2,.od-clamp-3{display:-webkit-box;-webkit-box-orient:vertical;overflow:hidden}.od-clamp-2{-webkit-line-clamp:2;line-clamp:2}.od-clamp-3{-webkit-line-clamp:3;line-clamp:3}.od-lines-2{grid-template-rows:auto auto}.od-nowrap{white-space:nowrap}.od-keep{page-break-inside:avoid;break-inside:avoid}.od-screen{display:grid;grid-template-rows:auto minmax(0,1fr) auto;height:100%}.od-scroll{overflow:auto;min-height:0}.od-rail{display:flex;overflow-x:auto;scroll-snap-type:x mandatory}.od-rail>*{scroll-snap-align:start}.od-spacer{flex:1 1;min-width:0}.od-touch{min-height:44px;min-width:44px}}:root{--bg:#FAF9F5;--surface:#FFFFFF;--surface-2:#F0EEE6;--ink:#141413;--ink2:#5E5D59;--accent:#D97757;--accent-2:#C6613F;--tint:#F6EBE4;--tint-strong:#F3DFD5;--on-accent:#141413;--hairline:#E8E6DC;--sh-1:0 1px 2px rgba(24,29,26,.05),0 10px 28px -12px rgba(24,29,26,.10);--sh-2:0 2px 4px rgba(24,29,26,.06),0 20px 44px -16px rgba(24,29,26,.16);--r-lg:20px;--r-md:14px;--r-pill:999px;--mono:ui-monospace,"SF Mono","Cascadia Mono","JetBrains Mono",Menlo,Consolas,monospace;--sans:var(--font-inter),system-ui,-apple-system,"Segoe UI",Roboto,"Helvetica Neue",sans-serif;--ease:cubic-bezier(.2,.7,.2,1);--fg:var(--ink);--muted:var(--ink2);--border:var(--ink);--fg-hover:#0B0E0C;--bg-hover:var(--surface-2);--font-display:"Times New Roman","Iowan Old Style",Georgia,serif;--font-sans:var(--sans);--font-mono:var(--mono);color-scheme:light}[data-theme=claude-dark],[data-theme=dark]{--bg:#262624;--surface:#30302E;--surface-2:#3D3D3A;--ink:#FAF9F5;--ink2:#B0AEA5;--accent:#D97757;--accent-2:#E8956E;--tint:#3F312B;--tint-strong:#513930;--on-accent:#141413;--hairline:rgba(250,249,245,.10);--sh-1:0 1px 2px rgba(0,0,0,.35),0 10px 28px -12px rgba(0,0,0,.5);--sh-2:0 2px 4px rgba(0,0,0,.45),0 20px 44px -16px rgba(0,0,0,.6);--fg-hover:#FFFFFF;--bg-hover:var(--surface-2);color-scheme:dark}[data-theme=darkplus]{--bg:#1e1e1e;--surface:#252526;--surface-2:#2d2d30;--ink:#d4d4d4;--ink2:#9aa0a6;--accent:#569cd6;--accent-2:#4fc1ff;--on-accent:#10171f;--tint:#263038;--tint-strong:#313a46;--hairline:rgba(226,230,234,.10);--fg-hover:#FFFFFF;--bg-hover:var(--surface-2);color-scheme:dark}[data-theme=onedark]{--bg:#282c34;--surface:#21252b;--surface-2:#353b45;--ink:#abb2bf;--ink2:#7f848e;--accent:#61afef;--accent-2:#56b6c2;--on-accent:#1f2530;--tint:#344253;--tint-strong:#3b4f63;--hairline:rgba(171,178,191,.10);--fg-hover:#FFFFFF;--bg-hover:var(--surface-2);color-scheme:dark}[data-theme=monokai]{--bg:#272822;--surface:#1e1f1c;--surface-2:#34352f;--ink:#f8f8f2;--ink2:#9c9c94;--accent:#f92672;--accent-2:#fd971f;--on-accent:#1d1e19;--tint:#442c2f;--tint-strong:#5d303b;--hairline:rgba(248,248,242,.09);--fg-hover:#FFFFFF;--bg-hover:var(--surface-2);color-scheme:dark}[data-theme=darcula]{--bg:#2b2b2b;--surface:#333537;--surface-2:#3c3f41;--ink:#a9b7c6;--ink2:#8a97a3;--accent:#cc7832;--accent-2:#ffc66d;--on-accent:#1f1f1f;--tint:#493d32;--tint-strong:#604a38;--hairline:rgba(169,183,198,.10);--fg-hover:#FFFFFF;--bg-hover:var(--surface-2);color-scheme:dark}[data-theme=dracula]{--bg:#282a36;--surface:#21222c;--surface-2:#343746;--ink:#f8f8f2;--ink2:#8b93b8;--accent:#bd93f9;--accent-2:#ff79c6;--on-accent:#282a36;--tint:#423e58;--tint-strong:#554d71;--hairline:#44475a;--fg-hover:#FFFFFF;--bg-hover:var(--surface-2);color-scheme:dark}[data-theme=nord]{--bg:#2e3440;--surface:#3b4252;--surface-2:#434c5e;--ink:#d8dee9;--ink2:#8b99ae;--accent:#88c0d0;--accent-2:#8fbcbb;--on-accent:#2e3440;--tint:#3f4d5b;--tint-strong:#4e6271;--hairline:rgba(216,222,233,.09);--fg-hover:#FFFFFF;--bg-hover:var(--surface-2);color-scheme:dark}[data-theme=gruvbox]{--bg:#282828;--surface:#32302f;--surface-2:#3c3836;--ink:#ebdbb2;--ink2:#a89984;--accent:#fabd2f;--accent-2:#fe8019;--on-accent:#282828;--tint:#433c2d;--tint-strong:#5a4d31;--hairline:#504945;--fg-hover:#FFFFFF;--bg-hover:var(--surface-2);color-scheme:dark}[data-theme=tokyonight]{--bg:#1a1b26;--surface:#24283b;--surface-2:#292e42;--ink:#a9b1d6;--ink2:#7984b4;--accent:#7aa2f7;--accent-2:#7dcfff;--on-accent:#1a1b26;--tint:#2c334b;--tint-strong:#394566;--hairline:rgba(169,177,214,.14);--fg-hover:#FFFFFF;--bg-hover:var(--surface-2);color-scheme:dark}[data-theme=catppuccin]{--bg:#1e1e2e;--surface:#181825;--surface-2:#313244;--ink:#cdd6f4;--ink2:#7f849c;--accent:#cba6f7;--accent-2:#89b4fa;--on-accent:#1e1e2e;--tint:#38334e;--tint-strong:#4a4264;--hairline:rgba(205,214,244,.10);--fg-hover:#FFFFFF;--bg-hover:var(--surface-2);color-scheme:dark}[data-theme=rosepine]{--bg:#191724;--surface:#1f1d2e;--surface-2:#26233a;--ink:#e0def4;--ink2:#908caa;--accent:#ebbcba;--accent-2:#c4a7e7;--on-accent:#191724;--tint:#322a36;--tint-strong:#4b3e48;--hairline:#403d52;--fg-hover:#FFFFFF;--bg-hover:var(--surface-2);color-scheme:dark}[data-theme=solarized-dark]{--bg:#002b36;--surface:#073642;--surface-2:#0b4a58;--ink:#93a1a1;--ink2:#839496;--accent:#268bd2;--accent-2:#2aa198;--on-accent:#fdf6e3;--tint:#053851;--tint-strong:#094268;--hairline:rgba(131,148,150,.14);--fg-hover:#FFFFFF;--bg-hover:var(--surface-2);color-scheme:dark}[data-theme=github-dark]{--bg:#0d1117;--surface:#161b22;--surface-2:#21262d;--ink:#e6edf3;--ink2:#7d8590;--accent:#58a6ff;--accent-2:#a371f7;--on-accent:#0d1117;--tint:#182739;--tint-strong:#203753;--hairline:#30363d;--fg-hover:#FFFFFF;--bg-hover:var(--surface-2);color-scheme:dark}[data-theme=lightplus]{--bg:#ffffff;--surface:#f3f3f3;--surface-2:#e9e9e9;--ink:#1f1f1f;--ink2:#616161;--accent:#005fb8;--accent-2:#005a9e;--on-accent:#ffffff;--tint:#eaf2f9;--tint-strong:#d6e5f3;--hairline:rgba(30,30,30,.09);--bg-hover:var(--surface-2);color-scheme:light}[data-theme=solarized-light]{--bg:#fdf6e3;--surface:#eee8d5;--surface-2:#e3dcc8;--ink:#657b83;--ink2:#93a1a1;--accent:#268bd2;--accent-2:#1a6f9f;--on-accent:#fdf6e3;--tint:#e7ebe0;--tint-strong:#d2e0dd;--hairline:rgba(88,110,117,.20);--bg-hover:var(--surface-2);color-scheme:light}[data-theme=catppuccin-latte]{--bg:#eff1f5;--surface:#e6e9ef;--surface-2:#ccd0da;--ink:#4c4f69;--ink2:#6c6f85;--accent:#8839ef;--accent-2:#7431c8;--on-accent:#ffffff;--tint:#e4def4;--tint-strong:#daccf3;--hairline:rgba(76,79,105,.14);--bg-hover:var(--surface-2);color-scheme:light}[data-theme=rosepine-dawn]{--bg:#faf4ed;--surface:#fffaf3;--surface-2:#f2e9e1;--ink:#575279;--ink2:#9893a5;--accent:#d7827e;--accent-2:#907aa9;--on-accent:#fffaf3;--tint:#f5e6df;--tint-strong:#f1d8d2;--hairline:rgba(87,82,121,.14);--bg-hover:var(--surface-2);color-scheme:light}*,:after,:before{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--bg);color:var(--ink);font:16px/1.55 var(--sans);-webkit-font-smoothing:antialiased}::selection{background:var(--tint);color:var(--accent-2)}a{text-decoration:none}a,button{color:inherit}button{font:inherit;background:none;border:0;padding:0;cursor:pointer}img{max-width:100%}svg{display:block}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.mono{font-family:var(--mono)}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}.od-app{display:grid;grid-template-rows:auto minmax(0,1fr) auto;height:100dvh;overflow:hidden}.topbar{position:-webkit-sticky;position:sticky;top:0;z-index:50;padding:9px 24px 8px;background:var(--bg)}.brand,.topbar{display:flex;align-items:center;gap:10px}.brand{padding:8px 12px;border-radius:12px;transition:background .18s var(--ease)}.brand:hover{background:var(--surface)}.wordmark{font:600 13px/1 var(--mono);letter-spacing:.08em}.wordmark span{color:var(--accent)}.dot-wrap{position:relative;width:8px;height:8px;flex:none}.dot-wrap .dot-ring{inset:-4px;opacity:.35;animation:ring 2.6s var(--ease) infinite}.dot-wrap .dot,.dot-wrap .dot-ring{position:absolute;border-radius:999px;background:var(--accent)}.dot-wrap .dot{inset:0}@keyframes ring{0%{transform:scale(.6);opacity:.45}70%,to{transform:scale(1.9);opacity:0}}.tabs{display:flex;gap:2px;margin-left:6px}.tab{font:600 12.5px/1 var(--sans);color:var(--ink2);padding:8px 11px;border-radius:var(--r-pill);white-space:nowrap;transition:background .18s var(--ease),color .18s var(--ease)}.tab:hover{background:var(--surface);color:var(--ink)}.tab.on{background:var(--tint);color:var(--accent-2)}.top-spacer{flex:1 1;min-width:0}.chip-live{gap:8px;background:var(--tint);color:var(--accent-2);font:600 11px/1 var(--mono);padding:8px 12px;white-space:nowrap}.chip-live,.top-tool{display:inline-flex;align-items:center;border-radius:var(--r-pill)}.top-tool{justify-content:center;gap:6px;height:30px;padding:0 11px;background:var(--surface);border:1px solid var(--hairline);font:600 11.5px/1 var(--mono);color:var(--ink2);cursor:pointer;transition:background .18s var(--ease),color .18s var(--ease)}.top-tool:hover{background:var(--tint);color:var(--accent-2)}select.top-tool{-webkit-appearance:none;-moz-appearance:none;appearance:none;text-align:center}select.top-tool option{background:var(--surface);color:var(--ink)}.cta{display:inline-flex;align-items:center;background:var(--accent);color:var(--on-accent);font:600 13px/1 var(--sans);padding:10px 16px;border-radius:var(--r-pill);white-space:nowrap;box-shadow:var(--sh-1);transition:background .18s var(--ease),transform .18s var(--ease)}.cta:hover{background:var(--accent-2);transform:translateY(-1px)}.board{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));grid-template-rows:minmax(420px,1.08fr) minmax(380px,.92fr);grid-gap:16px;gap:16px;padding:14px 24px 8px;min-height:0;height:100%;overflow-y:auto}.p-kit{grid-area:1/1/2/5}.p-works{grid-area:1/5/2/9}.p-oss{grid-area:1/9/2/13}.p-exp{grid-area:2/1/3/5}.p-blog{grid-area:2/5/3/9}.p-how{grid-area:2/9/3/13}.panel{background:var(--surface);border-radius:var(--r-lg);box-shadow:var(--sh-1);padding:18px;min-height:0;min-width:0;overflow:hidden;display:flex;flex-direction:column;gap:12px;cursor:pointer;animation:pin .32s var(--ease) backwards;animation-delay:calc(var(--i, 0) * 40ms);transition:transform .18s var(--ease),box-shadow .18s var(--ease)}@keyframes pin{0%{opacity:0;transform:translateY(12px)}}.panel:hover{transform:translateY(-2px);box-shadow:var(--sh-2)}.panel>a{position:relative;z-index:2}.p-head{display:flex;align-items:center;gap:8px;flex:none}.kicker{font:600 10.5px/1 var(--mono);letter-spacing:.12em;color:var(--accent-2);background:var(--tint);padding:5px 7px;border-radius:8px}.p-title{font:600 16px/1.2 var(--sans);flex:1 1;min-width:0}.chev,.p-sub{color:var(--ink2);flex:none}.p-sub{font:400 12.5px/1.4 var(--sans);margin-top:-4px}.p-body{flex:1 1;min-height:0;display:flex;flex-direction:column;gap:10px}.p-kit .kit-id{display:flex;align-items:center;gap:14px;flex:none}.av{width:96px;height:96px;border-radius:999px;overflow:hidden;flex:none;box-shadow:var(--sh-1);background:var(--surface-2)}.av img{width:100%;height:100%;object-fit:cover}.k-name{font:600 clamp(26px,2.3vw,33px)/1.1 var(--sans);letter-spacing:-.02em}.k-role{font:600 13px/1.35 var(--sans);color:var(--accent-2);margin-top:4px}.k-slog{font:500 16px/1.45 var(--sans);margin:0}.k-bio{font:400 14px/1.5 var(--sans);color:var(--ink2);margin:0;flex:none}.mstrip{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));grid-gap:8px;gap:8px}.stat{background:var(--surface-2);border-radius:var(--r-md);padding:10px 12px;display:grid;grid-gap:2px;gap:2px;min-width:0}.stat b{font:600 19px/1.1 var(--sans)}.stat span{font:400 10.5px/1.35 var(--mono);color:var(--ink2)}.stat .stat-sub{font-size:9.5px;color:var(--ink2);opacity:.72}@media (min-width:1250px){.p-kit .p-body{gap:8px}.p-kit .av{width:88px;height:88px}.p-kit .stat{padding:7px 8px}.p-kit .stat b{font-size:16px}.p-kit .stat span{font-size:9.5px;line-height:1.25}.p-kit .stat .stat-sub{font-size:9px}}@media (min-width:1440px){.p-kit .stat b{font-size:18px}}@media (min-width:768px) and (max-width:1023px){.p-kit .k-foot{display:none}}@media (max-width:1249px){.d-kit-grid .mstrip,.p-kit .mstrip{grid-template-columns:1fr}.d-kit-grid .stat,.p-kit .stat{grid-template-columns:auto minmax(0,1fr);align-items:baseline;column-gap:10px;padding:8px 10px}.d-kit-grid .stat b,.p-kit .stat b{font-size:17px;white-space:nowrap}.d-kit-grid .stat span,.p-kit .stat span{font-size:10px;line-height:1.35}.d-kit-grid .stat .stat-sub,.p-kit .stat .stat-sub{font-size:9.5px}}.k-links{display:flex;gap:8px;flex-wrap:wrap}.lnk{display:inline-flex;align-items:center;gap:6px;font:600 11.5px/1 var(--mono);padding:8px 11px;border-radius:var(--r-pill);background:var(--surface-2);color:var(--ink);transition:background .18s var(--ease),color .18s var(--ease)}.lnk:hover{background:var(--tint);color:var(--accent-2)}.k-foot{margin-top:auto;font:400 10.5px/1.5 var(--mono);color:var(--ink2)}.works3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));grid-gap:10px;gap:10px;flex:1 1;overflow-y:auto}.mt,.works3{min-height:0}.mt{background:var(--surface-2);border-radius:var(--r-md);padding:14px;display:flex;flex-direction:column;gap:8px;position:relative;overflow:hidden}.mt-knd{font:600 9.5px/1.3 var(--mono);letter-spacing:.09em;color:var(--accent-2)}.mt-date{font:400 10px/1.3 var(--mono);color:var(--ink2)}.mt-name{font:600 15px/1.2 var(--sans)}.mt-line{font:400 12.5px/1.45 var(--sans);color:var(--ink2)}.mt-metric{font:600 11.5px/1.3 var(--mono);color:var(--accent-2)}.c-open,.mt-open{align-self:flex-end;display:inline-flex;align-items:center;gap:5px;font:600 10px/1 var(--mono);letter-spacing:.05em;padding:7px 10px;border-radius:var(--r-pill);background:var(--tint);color:var(--accent-2);white-space:nowrap;transition:background .18s var(--ease),color .18s var(--ease)}.mt-open{margin-top:auto}.c-open:hover,.mt-open:hover{background:var(--accent);color:var(--on-accent)}.c-open:focus-visible,.mt-open:focus-visible{outline:2px solid var(--accent);outline-offset:3px}.card-link{display:flex;justify-content:flex-end;margin-top:auto;padding-top:4px}.o-rows{display:flex;flex-direction:column;gap:8px;flex:1 1;min-height:0;overflow-y:auto}.o-row{display:flex;align-items:center;gap:10px;background:var(--surface-2);border-radius:var(--r-md);padding:10px 13px}.o-name{display:grid;grid-gap:2px;gap:2px;flex:1 1;min-width:0}.o-name b{font:600 14px/1.2 var(--sans)}.o-name span{font:400 12px/1.4 var(--sans);color:var(--ink2)}.tagchip{font:600 9.5px/1 var(--mono);letter-spacing:.06em;padding:6px 9px;border-radius:var(--r-pill);flex:none;white-space:nowrap}.tc-solid{background:var(--accent);color:var(--on-accent)}.tc-soft{background:var(--tint);color:var(--accent-2)}.x-rows{display:flex;flex-direction:column;gap:4px;flex:1 1;min-height:0;overflow-y:auto}.x-row{display:grid;grid-template-columns:130px minmax(0,1fr) auto;grid-gap:10px;gap:10px;align-items:center;background:var(--surface-2);border-radius:10px;padding:7px 11px}.x-date{font:600 10px/1.3 var(--mono);color:var(--ink2);white-space:nowrap}.x-co{display:grid;grid-gap:1px;gap:1px;min-width:0}.x-co b{font:600 12.5px/1.2 var(--sans)}.x-co span{font:400 11px/1.3 var(--sans);color:var(--ink2)}.x-loc{font:400 10.5px/1.3 var(--mono);color:var(--ink2);white-space:nowrap}.b-card{flex-direction:column;flex:1 1;min-height:0;overflow-y:auto}.b-card,.b-post{display:flex;gap:9px}.b-post{flex-direction:column;color:inherit;text-decoration:none}.b-post:hover .b-title,.b-post:hover .c-title{text-decoration:underline;text-underline-offset:3px}.b-date{font:600 10px/1.3 var(--mono);color:var(--accent-2)}.b-title{font:600 15.5px/1.35 var(--sans)}.b-exc{font:400 13px/1.5 var(--sans);color:var(--ink2)}.pill-ghost{display:inline-flex;align-items:center;gap:6px;align-self:flex-start;font:600 11.5px/1 var(--mono);color:var(--accent-2);padding:9px 13px;border-radius:var(--r-pill);background:var(--tint);transition:background .18s var(--ease)}.pill-ghost:hover{background:var(--tint-strong)}.h-rows{display:flex;flex-direction:column;gap:6px;flex:1 1;min-height:0;overflow-y:auto}.h-row{display:flex;align-items:center;gap:10px;background:var(--surface-2);border-radius:var(--r-md);padding:12px 14px}.h-num{font:600 10px/1 var(--mono);color:var(--accent-2);flex:none}.h-txt{font:500 13px/1.35 var(--sans)}dialog.dl{border:0;padding:0;background:var(--surface);color:var(--ink);border-radius:24px;box-shadow:var(--sh-2);width:min(1100px,94vw);height:min(88vh,860px);margin:auto;max-width:none;max-height:none}dialog.dl::-webkit-backdrop{background:rgba(26,30,28,.55);-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}dialog.dl::backdrop{background:rgba(26,30,28,.55);-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}dialog.dl[open]{animation:dlin .25s var(--ease)}@keyframes dlin{0%{opacity:0;transform:translateY(14px) scale(.985)}}.dl-frame{display:grid;grid-template-rows:auto minmax(0,1fr) auto;height:100%}.dl-head{display:flex;align-items:center;gap:12px;padding:20px 24px 12px}.dl-kicker{font:600 10.5px/1 var(--mono);letter-spacing:.12em;color:var(--accent-2)}.dl-title{font:600 21px/1.2 var(--sans);letter-spacing:-.01em;margin:0;flex:1 1;min-width:0}.dl-hint{font:400 10.5px/1 var(--mono);color:var(--ink2)}.dl-x{width:36px;height:36px;border-radius:var(--r-pill);display:grid;place-items:center;background:var(--surface-2);color:var(--ink2);flex:none;transition:background .18s var(--ease),color .18s var(--ease)}.dl-x:hover{background:var(--tint);color:var(--accent-2)}.dl-body{min-height:0;padding:8px 24px 20px;overflow:auto}.d-kit-grid{display:grid;grid-template-columns:300px minmax(0,1fr);grid-gap:28px;gap:28px;height:100%}.dk-left{display:flex;flex-direction:column;gap:14px;min-height:0}.dk-av{width:120px;height:120px;border-radius:999px;overflow:hidden;box-shadow:var(--sh-1)}.dk-av img{width:100%;height:100%;object-fit:cover}.dk-status{display:inline-flex;align-items:center;gap:8px;align-self:flex-start;background:var(--tint);color:var(--accent-2);font:600 11px/1.4 var(--mono);padding:8px 12px;border-radius:var(--r-pill)}.dk-meta{display:grid;grid-gap:8px;gap:8px}.dk-l{display:grid;grid-template-columns:16px minmax(0,1fr);grid-gap:10px;gap:10px;align-items:center;color:var(--ink2)}.dk-l small{font:400 13px/1.4 var(--sans)}.dk-links{display:grid;grid-gap:8px;gap:8px;margin-top:4px}.dk-r{display:flex;flex-direction:column;gap:16px;min-height:0;overflow:hidden}.dk-slog{font:600 19px/1.35 var(--sans);margin:0}.dk-bio{font:400 15px/1.6 var(--sans);color:var(--ink2);margin:0}.dk-bio+.dk-bio{margin-top:8px}.dk-bio.hilite{color:var(--ink)}.dk-cta{margin-top:auto;background:var(--surface-2);border-radius:var(--r-md);padding:16px 18px;display:grid;grid-gap:10px;gap:10px}.dk-cta h3{font:600 16px/1.3 var(--sans);margin:0}.dk-cta p{font:400 12.5px/1.5 var(--sans);color:var(--ink2);margin:0}.btn-mail{display:inline-flex;align-items:center;gap:8px;background:var(--accent);color:var(--on-accent);font:600 12.5px/1 var(--sans);padding:10px 15px;border-radius:var(--r-pill);transition:background .18s var(--ease)}.btn-mail:hover{background:var(--accent-2)}.card{background:var(--surface-2);border-radius:var(--r-md);padding:18px 20px;display:flex;flex-direction:column;gap:10px;min-height:0;min-width:0}.c-meta{font:600 10.5px/1.4 var(--mono);letter-spacing:.06em;color:var(--accent-2)}.c-title{font:600 16.5px/1.3 var(--sans);letter-spacing:-.01em}.c-body{font:400 14px/1.55 var(--sans);color:var(--ink2);margin:0}.tags{display:flex;flex-wrap:wrap;gap:6px}.tag{font:600 10px/1 var(--mono);color:var(--accent-2);background:var(--tint);padding:6px 9px;border-radius:var(--r-pill)}.metric{display:grid;grid-gap:2px;gap:2px;margin-top:auto;border-top:1px solid var(--hairline);padding-top:10px}.metric b{font:600 17px/1.1 var(--sans);color:var(--accent-2)}.metric span{font:400 11px/1.4 var(--mono);color:var(--ink2)}.metric.has-cta{grid-template-columns:1fr auto;align-items:end;column-gap:16px}.m-main{display:grid;grid-gap:2px;gap:2px}.exp-head{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.exp-head b{font:600 15.5px/1.25 var(--sans)}.exp-head .role{font:400 12.5px/1.4 var(--sans);color:var(--ink2)}.exp-co{font:700 10px/1 var(--mono);letter-spacing:.08em;text-transform:uppercase;padding:7px 10px;border-radius:var(--r-pill);flex:none;background:var(--accent);color:var(--on-accent)}.d-stack{display:flex;flex-direction:column;gap:14px;min-height:0}.d-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-gap:14px;gap:14px}.d-blog{display:flex;flex-direction:column;gap:14px;height:100%}.d-blog .c-title{font-size:19px}.d-blog .b-post{gap:14px}.d-actions{margin-top:auto;padding-top:14px;border-top:1px solid var(--hairline);display:flex;gap:10px;flex-wrap:wrap}.d-how{display:flex;flex-direction:column;gap:16px;height:100%}.d-how p{font:400 15px/1.6 var(--sans);color:var(--ink2);margin:0}.hilite{color:var(--ink)}.d-grid-how{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-gap:10px;gap:10px}.h-card{background:var(--surface-2);border-radius:var(--r-md);padding:16px 18px;display:flex;gap:12px;align-items:center}.h-card .big{font:600 18px/1.2 var(--sans)}.h-lang{margin-top:auto;font:400 11px/1.6 var(--mono)}.foot,.h-lang{color:var(--ink2)}.foot{display:flex;justify-content:space-between;gap:12px;padding:8px 24px 10px;font:400 11px/1.5 var(--mono)}.foot,.pager{align-items:center}.pager{position:fixed;left:50%;transform:translateX(-50%);bottom:calc(12px + env(safe-area-inset-bottom));display:none;gap:6px;background:var(--surface);box-shadow:var(--sh-2);padding:7px 9px;z-index:60}.pager,.pg-btn{border-radius:var(--r-pill)}.pg-btn{width:40px;height:40px;display:grid;place-items:center;font:600 15px/1 var(--mono);background:var(--surface-2)}.pg-dots{display:flex;gap:5px;align-items:center;padding:0 4px}.pg-dot{width:10px;height:10px;border-radius:999px;background:var(--hairline)}.pg-dot[aria-pressed=true]{background:var(--accent)}.cta:focus-visible,.panel:focus-visible,.tab:focus-visible{outline:2px solid var(--accent);outline-offset:3px}.noscript-note{padding:0 24px;color:var(--ink2)}.page{display:flex;flex-direction:column;min-height:100dvh}.page-main{flex:1 1 auto}.blog-wrap{width:100%;max-width:860px;margin:0 auto;padding:48px 24px 96px}.blog-title{font:600 clamp(30px,4.6vw,46px)/1.08 var(--sans);letter-spacing:-.02em;margin:0}.blog-intro{color:var(--ink2);margin:12px 0 36px;font-size:15.5px}.blog-state{font-family:var(--mono);font-size:13px;color:var(--ink2)}.blog-list{list-style:none;margin:0;padding:0;border-top:1px solid var(--hairline)}.blog-list li{border-bottom:1px solid var(--hairline)}.blog-list a{display:block;padding:22px 0;text-decoration:none;color:inherit}.blog-list h2,.blog-list h3{font:600 18px/1.35 var(--sans);letter-spacing:-.01em;margin:0;transition:color .16s var(--ease)}.blog-list a:hover h2,.blog-list a:hover h3{color:var(--accent)}.blog-list p{margin:8px 0 0;color:var(--ink2);font-size:14.5px}.blog-date{font-size:11.5px;display:block;margin-top:6px}.blog-back,.blog-date{font-family:var(--mono);color:var(--ink2)}.blog-back{display:inline-flex;align-items:center;gap:6px;font-size:12.5px;margin-bottom:20px}.blog-back:hover{color:var(--accent)}.prose{margin-top:28px;font-size:16.5px;line-height:1.7}.prose h2,.prose h3{margin:2em 0 .5em;line-height:1.25;letter-spacing:-.01em}.prose h2{font-size:26px}.prose h3{font-size:20px}.prose a{color:var(--accent-2);text-decoration:underline;text-underline-offset:3px}.prose pre{font-size:13px;background:var(--surface);border:1px solid var(--hairline);border-radius:var(--r-md);padding:14px 16px;overflow-x:auto}.prose code,.prose pre{font-family:var(--mono)}.prose code{font-size:.9em;background:var(--surface-2);padding:1px 5px;border-radius:6px}.prose pre code{background:none;padding:0}.prose img{max-width:100%;height:auto;border-radius:var(--r-md)}.prose blockquote{margin:1.4em 0;padding-left:16px;border-left:2px solid var(--accent);color:var(--ink2)}.prose ol,.prose ul{padding-left:22px}.prose li{margin:.35em 0}.wrap{max-width:1200px;margin:0 auto;padding:0 24px}section.block{border-bottom:1px solid var(--border);padding:64px 0}.sec-head{display:flex;align-items:baseline;justify-content:space-between;gap:16px;margin-bottom:32px}.sec-head h2{font-family:var(--font-display);font-size:clamp(34px,4.5vw,56px);margin:0;letter-spacing:-.02em;line-height:1.05;text-wrap:balance}.sec-index{font-size:13px;color:var(--muted);white-space:nowrap}.nav,.sec-index{font-family:var(--font-mono)}.nav{position:-webkit-sticky;position:sticky;top:0;z-index:50;display:flex;align-items:center;justify-content:space-between;gap:16px;padding:0 24px;min-height:60px;background:var(--bg);border-bottom:1px solid var(--border)}.nav-brand{font-weight:700;text-decoration:none;font-size:14px}.nav-brand span{color:var(--accent)}.nav-links{display:flex;gap:22px;font-size:13px}.nav-links a{text-decoration:underline;text-underline-offset:4px}.nav-tools{display:flex;font-size:12px}.btn,.nav-tools{align-items:center;gap:10px}.btn{display:inline-flex;justify-content:center;min-height:52px;padding:14px 26px;font-family:var(--font-sans);font-size:15px;font-weight:700;text-decoration:none;border:1px solid var(--border);border-radius:2px;cursor:pointer}.btn-primary{background:var(--fg);border-color:var(--fg);color:var(--bg)}.btn-primary:hover{background:var(--fg-hover);border-color:var(--fg-hover)}.btn-ghost{background:transparent;color:var(--fg)}.btn-ghost:hover{background:var(--fg);color:var(--bg)}.btn-light{background:var(--bg);color:var(--fg);border-color:var(--bg)}.btn-light:hover{background:var(--bg-hover);border-color:var(--bg-hover)}.btn-outline{background:transparent;color:var(--bg);border-color:var(--bg)}.btn-outline:hover{background:var(--bg);color:var(--fg)}.hero-cta{display:flex;gap:12px;flex-wrap:wrap;margin-top:32px}.hero-note{font-family:var(--font-mono);font-size:12px;color:var(--muted);margin:16px 0 0}.oss-grid{display:grid;grid-template-columns:1fr 1fr;grid-gap:24px;gap:24px}.oss{border:1px solid var(--border);background:var(--surface);padding:28px;border-radius:2px;display:flex;flex-direction:column;gap:10px}.oss h3{font-family:var(--font-display);font-size:26px;margin:0;letter-spacing:-.01em}.oss h3 a{text-decoration:underline;text-underline-offset:4px;text-decoration-thickness:2px}.oss p{margin:0;font-size:16px}.oss .meta{margin-top:auto;padding-top:10px;font-family:var(--font-mono);font-size:12px;line-height:1.6;color:var(--muted)}.split{display:grid;grid-template-columns:7fr 5fr;grid-gap:40px;gap:40px;align-items:start}.split p{font-size:16.5px;max-width:65ch;margin:0 0 18px}.split p.small{font-family:var(--font-mono);font-size:12px;color:var(--muted)}.principles{border:1px solid var(--border);background:var(--surface);border-radius:2px;padding:28px}.principles h3{font-family:var(--font-display);font-size:24px;margin:0 0 12px}.principles ol{margin:0;padding-left:20px;font-size:15.5px;display:flex;flex-direction:column;gap:10px}.contact-box{border:1px solid var(--border);background:var(--fg);color:var(--bg);padding:56px 32px;text-align:center;margin-top:64px;border-radius:2px}.contact-box h2{font-family:var(--font-display);font-size:clamp(36px,5vw,64px);margin:0 0 12px;letter-spacing:-.02em;line-height:1.05;text-wrap:balance}.contact-box p{font-size:15px;opacity:.8;margin:0 0 28px}.contact-box .row{display:flex;gap:12px;justify-content:center;flex-wrap:wrap}.code{font-family:var(--font-mono);font-size:13px;background:var(--surface);padding:14px 16px;overflow-x:auto}.code,.shot{border:1px solid var(--border);border-radius:2px}.shot{display:block;width:100%;height:auto}.shots{margin-top:24px}.shot-fig{margin:0}.shot-fig figcaption{font-family:var(--font-mono);font-size:12px;color:var(--muted);margin-top:8px}.sprigo-hero{text-align:center;background:radial-gradient(ellipse 70% 55% at 50% 100%,var(--tint),transparent 70%)}.sprigo-hero .hero-cta{justify-content:center}.sprigo-logo{display:block;width:120px;height:120px;margin:0 auto}.sprigo-name{font-family:var(--font-display);font-size:clamp(56px,9vw,112px);line-height:1;letter-spacing:-.03em;margin:12px 0 0}.sprigo-tagline{font-size:clamp(18px,2.2vw,22px);color:var(--muted);max-width:36ch;margin:16px auto 0;text-wrap:balance}.sprigo-shot{max-width:960px;margin:48px auto 0;box-shadow:0 30px 80px -30px rgba(46,111,99,.45)}footer.site{padding:28px 0 40px;font-family:var(--font-mono);font-size:12px;color:var(--muted)}footer.site .wrap{display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap}footer.site a{color:var(--fg)}@media (min-width:1440px){.panel{padding:20px}.av{width:100px;height:100px}.k-name{font-size:clamp(30px,2.2vw,38px)}.stat b{font-size:21px}.p-title{font-size:17px}.mt-name{font-size:16.5px}.b-title,.o-name b,.x-co b{font-size:15px}}@media (max-width:1099px){.topbar{flex-wrap:wrap;row-gap:4px}.tabs{order:2;flex:1 0 100%;width:100%;margin-left:0;overflow-x:auto;scrollbar-width:none}.tabs::-webkit-scrollbar{display:none}}@media (max-width:1023px){.board{grid-template-columns:repeat(6,minmax(0,1fr));grid-template-rows:repeat(3,minmax(332px,1fr));gap:12px;padding:12px 16px 10px;overflow-y:auto}.panel{padding:14px;gap:9px}.p-body{gap:8px}.p-kit{grid-area:1/1/2/4}.p-works{grid-area:1/4/2/7}.p-oss{grid-area:2/1/3/4}.p-exp{grid-area:2/4/3/7}.p-blog{grid-area:3/1/4/4}.p-how{grid-area:3/4/4/7}.av{width:64px;height:64px}.k-name{font-size:clamp(20px,3.2vw,26px)}.k-role{font-size:12px}.k-slog{font:500 14px/1.4 var(--sans)}.k-bio{font-size:13px}.mstrip{gap:6px}.stat{padding:8px 10px}.stat b{font-size:17px}.stat span{font-size:10px}.k-links{gap:6px}.lnk{padding:7px 10px;font-size:11px}.k-foot{font-size:10px}.works3{gap:8px}.mt{padding:11px;gap:6px}.mt-name{font-size:14px}.mt-line{font-size:12px}.o-rows{gap:6px}.o-row{padding:8px 11px}.o-name b{font-size:13px}.o-name span{font-size:11px}.x-rows{gap:3px}.x-row{grid-template-columns:122px minmax(0,1fr);gap:8px;padding:6px 10px}.x-co b{font-size:12px}.x-co span{font-size:10.5px}.b-title{font-size:14.5px}.b-exc{font-size:12.5px}.h-rows{gap:5px}.h-row{padding:10px 12px}.h-txt{font-size:12.5px}.chip-live{display:none}.d-kit-grid{grid-template-columns:230px minmax(0,1fr)}.x-loc{display:none}}@media (min-width:768px) and (max-width:1023px){.p-sub{display:none}.k-bio{-webkit-line-clamp:2;line-clamp:2}}@media (max-width:920px){section.block{padding:48px 0}.oss-grid,.split{grid-template-columns:1fr}.nav-links{display:none}}@media (max-width:767px){.od-app{grid-template-rows:auto minmax(0,1fr)}.foot,.tabs{display:none}.topbar{padding:10px 14px 8px;gap:8px;flex-wrap:wrap}.cta{padding:9px 12px;font-size:12px;white-space:nowrap}.mstrip{gap:6px}.stat{padding:8px 10px}.stat b{font-size:17px}.stat span{font-size:10px}.board{grid-template-columns:minmax(0,1fr);grid-template-rows:minmax(560px,1fr);gap:0;padding:10px 14px 76px;overflow-y:auto}.panel{display:none;overflow:hidden;grid-area:auto}.panel[data-pg=on]{display:flex}.works3{grid-template-columns:1fr;overflow:hidden}.pager{display:flex}dialog.dl{width:100vw;height:100dvh;max-height:none;border-radius:0;margin:0}.dl-head{padding:calc(14px + env(safe-area-inset-top)) 18px 10px}.dl-body{overflow:auto}.dl-hint{display:none}.d-kit-grid{grid-template-columns:1fr;gap:18px;height:auto}.d-kit-grid,.dk-r{overflow:visible}.d-grid,.d-grid-how{grid-template-columns:1fr}.blog-wrap{padding:32px 16px 72px}}@media (min-width:1024px) and (max-height:1000px){.topbar{padding:8px 24px 6px}.foot{padding:6px 24px 8px}.board{grid-template-rows:1fr 1fr;padding-top:12px;padding-bottom:6px}.panel{padding:16px;gap:10px}.p-body{gap:8px}.av{width:80px;height:80px}.stat{padding:8px 11px}.stat b{font-size:18px}.o-rows{gap:6px}.o-row{padding:8px 13px}.x-rows{gap:2px}.x-row{padding:5px 11px}.h-rows{gap:4px}.h-row{padding:9px 13px}.dl-head{padding:16px 20px 10px}}@media (min-width:1250px) and (max-height:860px){.k-bio{-webkit-line-clamp:2;line-clamp:2}}@media (min-width:1024px) and (max-height:700px){.b-exc,.k-foot,.k-slog,.p-sub{display:none}.k-bio{-webkit-line-clamp:2;line-clamp:2}.mt-line,.o-name span{-webkit-line-clamp:1;line-clamp:1}.stat{padding:7px 10px}.stat b{font-size:16px}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:after,:before{animation:none!important;transition:none!important}.dot-wrap .dot-ring{display:none}}@media (min-width:1024px) and (max-width:1249px){.board{grid-template-rows:minmax(460px,1fr) minmax(400px,1fr)}}dialog.tp{padding:0;background:var(--surface);color:var(--ink);border:1px solid var(--hairline);border-radius:var(--r-lg);box-shadow:var(--sh-2);width:min(780px,94vw);max-height:min(86dvh,780px);overflow:auto;overscroll-behavior:contain}dialog.tp::-webkit-backdrop{background:rgba(24,28,26,.44);-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px)}dialog.tp::backdrop{background:rgba(24,28,26,.44);-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px)}dialog.tp[open]{animation:dlin .25s var(--ease)}.tp-inner{padding:16px 20px}.tp-head{display:flex;align-items:center;gap:12px;margin-bottom:2px}.tp-title{margin:0;font:600 17px/1.2 var(--sans);color:var(--ink);flex:1 1}.tp-h{margin:14px 2px 8px;font:600 10.5px/1 var(--mono);letter-spacing:.14em;text-transform:uppercase;color:var(--accent-2)}.tp-grid{display:grid;grid-gap:8px;gap:8px;grid-template-columns:repeat(auto-fill,minmax(148px,1fr))}.tp-item{position:relative;display:flex;flex-direction:column;gap:6px;padding:6px;border:0;border-radius:var(--r-md);background:var(--surface-2);text-align:left;cursor:pointer;transition:background .18s var(--ease),transform .18s var(--ease)}.tp-item:hover{background:var(--tint-strong);transform:translateY(-1px)}.tp-item[aria-pressed=true]{outline:2px solid var(--accent);outline-offset:1px}.tp-item[aria-pressed=true] .tp-name:after{content:" ✓";color:var(--accent)}.tp-prev{display:grid;grid-gap:5px;gap:5px;align-content:start;height:64px;padding:9px 10px 8px;border-radius:calc(var(--r-md) - 4px)}.tp-chip{justify-self:start;padding:4px 6px;border-radius:8px;font:600 9.5px/1 var(--mono)}.tp-ln{height:5px;border-radius:99px;opacity:.55}.tp-ln2{width:62%;opacity:.3}.tp-name{padding:1px 2px 2px;font:600 11.5px/1.15 var(--sans);color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.tp-foot{display:flex;align-items:center;gap:10px;margin-top:16px;padding-top:12px;border-top:1px solid var(--hairline)}.tp-sys{padding:9px 14px;border:0;border-radius:var(--r-pill);background:var(--surface-2);font:600 12px/1 var(--mono);color:var(--ink2);cursor:pointer;transition:background .18s var(--ease),color .18s var(--ease)}.tp-sys:hover,.tp-sys[aria-pressed=true]{background:var(--tint);color:var(--accent-2)}@media (max-width:767px){dialog.tp{width:100vw;height:100dvh;max-height:none;border-radius:0;border:0}.tp-inner{padding:14px 14px 18px}.tp-grid{grid-template-columns:repeat(2,1fr)}}