@font-face{font-family:Bricolage Grotesque Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(/_astro/bricolage-grotesque-vietnamese-opsz-normal.D9N6E8K1.woff2)format("woff2-variations");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 Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(/_astro/bricolage-grotesque-latin-ext-opsz-normal.IcJDqblK.woff2)format("woff2-variations");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 Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(/_astro/bricolage-grotesque-latin-opsz-normal.Cre6nC2_.woff2)format("woff2-variations");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:Figtree;font-style:normal;font-display:swap;font-weight:400;src:url(/_astro/figtree-latin-ext-400-normal.CXAzuTZb.woff2)format("woff2"),url(/_astro/figtree-latin-ext-400-normal.Gbh-3PTk.woff)format("woff");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:Figtree;font-style:normal;font-display:swap;font-weight:400;src:url(/_astro/figtree-latin-400-normal.g7Dtegnw.woff2)format("woff2"),url(/_astro/figtree-latin-400-normal.BD4aNku5.woff)format("woff");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:Figtree;font-style:normal;font-display:swap;font-weight:500;src:url(/_astro/figtree-latin-ext-500-normal.Du0rIuHj.woff2)format("woff2"),url(/_astro/figtree-latin-ext-500-normal.BOEJvrb_.woff)format("woff");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:Figtree;font-style:normal;font-display:swap;font-weight:500;src:url(/_astro/figtree-latin-500-normal.BWnGEVsr.woff2)format("woff2"),url(/_astro/figtree-latin-500-normal.B_yy1phn.woff)format("woff");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:Figtree;font-style:normal;font-display:swap;font-weight:600;src:url(/_astro/figtree-latin-ext-600-normal.DJlfifZj.woff2)format("woff2"),url(/_astro/figtree-latin-ext-600-normal.CQqsimlV.woff)format("woff");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:Figtree;font-style:normal;font-display:swap;font-weight:600;src:url(/_astro/figtree-latin-600-normal.Cv_xCTDl.woff2)format("woff2"),url(/_astro/figtree-latin-600-normal.BM_oTo4n.woff)format("woff");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:Figtree;font-style:normal;font-display:swap;font-weight:700;src:url(/_astro/figtree-latin-ext-700-normal.CS4sQkGV.woff2)format("woff2"),url(/_astro/figtree-latin-ext-700-normal.BoDi4KL2.woff)format("woff");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:Figtree;font-style:normal;font-display:swap;font-weight:700;src:url(/_astro/figtree-latin-700-normal.th6qEP7c.woff2)format("woff2"),url(/_astro/figtree-latin-700-normal.BCCt2T1q.woff)format("woff");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:Silkscreen;font-style:normal;font-display:swap;font-weight:400;src:url(/_astro/silkscreen-latin-ext-400-normal.2T9bWrxp.woff2)format("woff2"),url(/_astro/silkscreen-latin-ext-400-normal.Drdn_BEM.woff)format("woff");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:Silkscreen;font-style:normal;font-display:swap;font-weight:400;src:url(/_astro/silkscreen-latin-400-normal.CtPo2yA5.woff2)format("woff2"),url(/_astro/silkscreen-latin-400-normal.D0DfPJut.woff)format("woff");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:JetBrains Mono Variable;font-style:normal;font-display:swap;font-weight:100 800;src:url(/_astro/jetbrains-mono-cyrillic-ext-wght-normal.EocZY2iu.woff2)format("woff2-variations");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:JetBrains Mono Variable;font-style:normal;font-display:swap;font-weight:100 800;src:url(/_astro/jetbrains-mono-cyrillic-wght-normal.D73BlboJ.woff2)format("woff2-variations");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:JetBrains Mono Variable;font-style:normal;font-display:swap;font-weight:100 800;src:url(/_astro/jetbrains-mono-greek-wght-normal.Bw9x6K1M.woff2)format("woff2-variations");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:JetBrains Mono Variable;font-style:normal;font-display:swap;font-weight:100 800;src:url(/_astro/jetbrains-mono-vietnamese-wght-normal.Bt-aOZkq.woff2)format("woff2-variations");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:JetBrains Mono Variable;font-style:normal;font-display:swap;font-weight:100 800;src:url(/_astro/jetbrains-mono-latin-ext-wght-normal.DBQx-q_a.woff2)format("woff2-variations");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:JetBrains Mono Variable;font-style:normal;font-display:swap;font-weight:100 800;src:url(/_astro/jetbrains-mono-latin-wght-normal.B9CIFXIH.woff2)format("woff2-variations");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}:root{color-scheme:light;--bg:#ede6d8;--card:#fffcf5;--stage:#f7f1e4;--tile-wip:#f7eedc;--sheet:#fff;--row-active:#fbf3dc;--panel:#1e1b2b;--on-panel:#fffcf5;--on-panel-2:#cfc6d6;--text:#1e1b2b;--text-body:#26232f;--text-2:#3a3542;--muted:#6b6472;--accent-text:#8a4b2a;--link-hover:#3e62a8;--outline:#1e1b2b;--rule-soft:#c9bca6;--shadow-color:#1e1b2b;--tick-off:#b8ae9c;--invert-bg:#1e1b2b;--invert-fg:#fffcf5;--brown:#8a4b2a;--amber:#f2b33d;--on-amber:#1e1b2b;--blue:#3e62a8;--edu:#4f74b3;--proj:#5e9e4a;--pink:#e0607e;--term-bg:var(--panel);--term-fg:#cfc6d6;--term-key:#f2b33d;--term-prompt:#86c06a;--term-path:#9cc3e0;--font-display:"Bricolage Grotesque Variable", "Bricolage Grotesque", system-ui, sans-serif;--font-body:"Figtree", system-ui, sans-serif;--font-pixel:"Silkscreen", ui-monospace, monospace;--font-mono:"JetBrains Mono Variable", "JetBrains Mono", ui-monospace, monospace;--fs-h1:76px;--fs-h1-post:52px;--fs-h2:44px;--fs-lead:21px;--fs-body:17px;--fs-post:18px;--lh-post:1.65;--fs-small:14px;--fs-label:12px;--border:2px solid var(--outline);--radius:6px;--radius-sm:4px;--shadow:6px 6px 0 var(--shadow-color);--shadow-sm:3px 3px 0 var(--shadow-color);--shadow-accent:6px 6px 0 var(--brown);--maxw:1160px;--maxw-post:700px;--section-gap:88px;--gutter:16px;--pa-font:var(--font-body);--pa-bg:var(--card);--pa-fg:var(--text);--pa-muted:var(--muted);--pa-border:var(--outline);--pa-accent:var(--invert-bg);--pa-accent-fg:var(--invert-fg);--pa-input-bg:var(--bg);--pa-radius:4px;--pa-shadow:3px 3px 0 var(--shadow-color);--pa-focus:var(--blue)}:root[data-theme=dark]{color-scheme:dark;--bg:#1c1a23;--card:#262230;--stage:#2e2a38;--tile-wip:#302838;--sheet:#221f2b;--row-active:#342e40;--panel:#131118;--on-panel:#f2ede4;--on-panel-2:#cfc6d6;--text:#f2ede4;--text-body:#e6e0ea;--text-2:#cfc6d6;--muted:#a39cad;--accent-text:#e09a6c;--link-hover:#8fb0f0;--outline:#cfc7b8;--rule-soft:#4a4458;--shadow-color:#07060a;--tick-off:#4a4458;--invert-bg:#f2ede4;--invert-fg:#1c1a23;--blue:#8fb0f0}*,:before,:after{box-sizing:border-box}html{text-size-adjust:100%}body{background:var(--bg);color:var(--text);font-family:var(--font-body);font-size:var(--fs-body);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;margin:0;line-height:1.55;overflow-x:hidden}body.page-post{background:var(--card)}img,svg,canvas{max-width:100%;display:block}img{height:auto}a{color:inherit;text-decoration:none}a:hover{color:var(--link-hover)}button{font:inherit;color:inherit}h1,h2,h3,h4,p,ul,ol,figure,blockquote,dl,dd{margin:0}:where(ul[class],ol[class]){padding:0;list-style:none}:focus-visible{outline:2px solid var(--blue);outline-offset:2px}::selection{background:var(--amber);color:var(--on-amber)}.sr-only{clip:rect(0 0 0 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.skip{z-index:100;background:var(--invert-bg);color:var(--invert-fg);border-radius:var(--radius-sm);padding:10px 14px;font-weight:700;position:absolute;top:-100px;left:16px}.skip:focus{color:var(--invert-fg);top:12px}.wrap{width:min(var(--maxw), 100% - 2 * var(--gutter));margin-inline:auto}.px{image-rendering:pixelated}pixel-anirudh:not(:defined){display:none}pixel-anirudh{--pa-font:var(--font-body);--pa-bg:var(--card);--pa-fg:var(--text);--pa-muted:var(--muted);--pa-border:var(--outline);--pa-accent:var(--invert-bg);--pa-accent-fg:var(--invert-fg);--pa-input-bg:var(--bg);--pa-radius:4px;--pa-shadow:3px 3px 0 var(--shadow-color);--pa-focus:var(--blue)}.eyebrow{font-family:var(--font-pixel);color:var(--accent-text);text-transform:uppercase;font-size:13px;line-height:1.3;display:block}.h2{font-family:var(--font-display);font-weight:800;font-size:var(--fs-h2);letter-spacing:-.02em;line-height:1.05}.page-title{font-family:var(--font-display);letter-spacing:-.03em;font-size:60px;font-weight:800;line-height:1}.mono{font-family:var(--font-mono)}.btn{border:var(--border);border-radius:var(--radius-sm);background:var(--card);height:50px;color:var(--text);white-space:nowrap;cursor:pointer;justify-content:center;align-items:center;gap:8px;padding:0 20px;font-size:16px;font-weight:700;line-height:1;display:inline-flex}.btn:hover{color:var(--text);background:var(--row-active)}.btn:active{transform:translate(2px,2px)}.btn svg{flex-shrink:0;width:18px;height:18px}.btn--solid{background:var(--invert-bg);color:var(--invert-fg);border-color:var(--invert-bg);box-shadow:3px 3px 0 var(--brown);padding:0 22px}.btn--solid:hover{color:var(--invert-fg);background:var(--invert-bg);box-shadow:4px 4px 0 var(--brown)}.btn--solid:active{box-shadow:none}.btn--shadow{box-shadow:var(--shadow-sm)}.btn--shadow:active{box-shadow:none}.btn--sm{height:48px;padding:0 18px;font-size:15px}.btn--text{background:0 0;border-color:#0000;padding:0 16px}.btn--text:hover{color:var(--link-hover);background:0 0}.chip{border:var(--border);border-radius:var(--radius-sm);background:var(--card);min-height:40px;color:var(--text);cursor:pointer;align-items:center;gap:6px;padding:8px 14px;font-size:14px;font-weight:600;line-height:1.2;display:inline-flex}.chip .n{color:var(--muted)}.chip:hover{color:var(--text);background:var(--row-active)}.chip.is-active,.chip[aria-pressed=true]{background:var(--invert-bg);color:var(--invert-fg);border-color:var(--invert-bg)}.chip.is-active .n,.chip[aria-pressed=true] .n{color:inherit;opacity:.8}.tag{font-family:var(--font-pixel);text-transform:uppercase;white-space:nowrap;padding:4px 8px;font-size:11px;line-height:1.3;display:inline-block}.tag--amber{background:var(--amber);color:var(--on-amber)}.tag--ink{background:var(--invert-bg);color:var(--invert-fg)}.tag--line{color:var(--blue);border:2px solid var(--blue);padding:1px 5px;font-size:10px}.tag--cat{color:var(--blue);border:2px solid var(--blue);padding:3px 6px}.kind{font-family:var(--font-pixel);white-space:nowrap;text-transform:uppercase;padding:3px 6px;font-size:10px;line-height:1.3}.kind--education{background:var(--edu);color:#fffcf5}.kind--project{background:var(--proj);color:#1e1b2b}.kind--experience{background:var(--invert-bg);color:var(--invert-fg)}.kind--now{background:var(--amber);color:var(--on-amber)}.kind--upcoming{background:var(--brown);color:#fffcf5}.site-head--float{padding-top:90px}.site-head--float .head-wrap{position:relative}.bar{background:var(--card);border:var(--border);border-radius:var(--radius);height:64px;box-shadow:4px 4px 0 var(--shadow-color);justify-content:space-between;align-items:center;gap:12px;padding:0 10px 0 20px;display:flex;position:relative}.brand{font-family:var(--font-display);letter-spacing:-.01em;white-space:nowrap;font-size:21px;font-weight:800}.brand:hover{color:var(--text)}.nav{align-items:center;gap:4px;margin-left:auto;display:flex}.nav-link{border-radius:var(--radius-sm);white-space:nowrap;align-items:center;gap:8px;height:44px;padding:0 14px;font-size:15px;font-weight:600;display:flex}.nav-link.is-active{background:var(--invert-bg);color:var(--invert-fg)}.nav-link.is-active:hover{color:var(--invert-fg)}.nav-div{background:var(--text);flex-shrink:0;width:2px;height:28px;margin:0 8px}.nav-search{color:var(--muted);padding:0 12px}.nav-search svg{width:16px;height:16px}.bar-actions{align-items:center;gap:8px;display:flex}.theme-toggle,.menu-btn{border:var(--border);border-radius:var(--radius-sm);background:var(--card);height:44px;color:var(--text);cursor:pointer;white-space:nowrap;align-items:center;gap:8px;padding:0 12px;font-size:14px;font-weight:600;display:inline-flex}.theme-toggle:hover,.menu-btn:hover{background:var(--row-active)}.theme-toggle svg{width:16px;height:16px}.menu-btn,html:not(.js) .theme-toggle,.theme-toggle .to-light,:root[data-theme=dark] .theme-toggle .to-dark{display:none}:root[data-theme=dark] .theme-toggle .to-light{display:inline-flex}.theme-toggle span{align-items:center;gap:8px}.theme-toggle .to-dark{display:inline-flex}.mini{z-index:5;position:absolute;bottom:calc(100% - 2px);right:28px}.mini::part(button-ask){display:none}.mini::part(bubble){max-width:min(260px,70vw);top:0;right:calc(100% + 8px)}.site-head--band{background:var(--bg)}.site-head--band .bar{height:72px;box-shadow:none;background:0 0;border:0;border-radius:0;padding:0}.site-foot{border-top:var(--border);margin-top:72px;padding-top:40px}.foot-grid{grid-template-columns:minmax(0,2fr) minmax(0,1fr) minmax(0,1fr);gap:32px;display:grid}.foot-id{flex-direction:column;align-items:flex-start;gap:10px;display:flex}.foot-id p{color:var(--text-2);max-width:420px;font-size:15px;line-height:1.55}.foot-top{color:var(--accent-text);padding:8px 0;font-size:15px;font-weight:700}.foot-col{flex-direction:column;gap:2px;display:flex}.foot-col .rail-label{margin-bottom:6px}.foot-col a{padding:6px 0;font-size:15px;font-weight:600}.foot-in{border-top:1px dashed var(--rule-soft);min-height:72px;color:var(--muted);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;margin-top:28px;font-size:14px;display:flex}.crumbs{color:var(--muted);align-items:center;padding-top:28px;font-size:14px;display:flex}.post-head .crumbs{padding-top:0}.crumbs ol{flex-wrap:wrap;align-items:center;gap:4px 0;margin:0;padding:0;list-style:none;display:flex}.crumbs li{align-items:center;display:flex}.crumbs .sep{margin:0 10px}.crumbs a:not(.tag){color:var(--text-2);padding:10px 0;font-weight:600}.crumbs a:not(.tag):hover{color:var(--link-hover)}.crumbs [aria-current=page]:not(.tag){color:var(--muted)}.next-steps{flex-direction:column;gap:12px;margin-top:56px;display:flex}.next-steps ul{grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin:0;padding:0;list-style:none;display:grid}.next-steps--3 ul{grid-template-columns:repeat(3,minmax(0,1fr))}.next-steps a{background:var(--card);border:var(--border);border-radius:var(--radius-sm);flex-direction:column;gap:4px;height:100%;padding:16px 18px;display:flex}.next-steps a:hover{color:var(--text);box-shadow:var(--shadow-sm);transform:translate(-1px,-1px)}.next-steps b{font-family:var(--font-display);font-size:19px}.next-steps b:after{content:" →"}.next-steps span{color:var(--text-2);font-size:14px;line-height:1.45}.series-list{flex-direction:column;gap:8px;margin:0;padding:0;list-style:none;display:flex}.series-list a,.series-list span{font-size:14px;line-height:1.4}.rail-proj .series-list a{color:var(--muted);font-weight:400}.rail-proj .series-list a:hover{color:var(--link-hover)}.series-list [aria-current=page]{color:var(--text);font-weight:700}.keep-reading{flex-direction:column;gap:10px;margin-top:40px;display:flex}.keep-reading ul{border-top:var(--border);flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.keep-reading a{border-bottom:1px dashed var(--rule-soft);flex-direction:column;gap:4px;padding:14px 0;display:flex}.keep-reading .t{font-family:var(--font-display);font-size:20px;font-weight:700;line-height:1.25}.keep-reading a:hover .t{color:var(--link-hover)}.keep-reading .tag--cat{padding:1px 5px;font-size:10px}.post-foot-links{gap:18px;display:flex}.section{padding-top:var(--section-gap);flex-direction:column;gap:22px;display:flex}.section-head{flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:20px;display:flex}.section-head .titles{flex-direction:column;gap:6px;display:flex}.section-link{color:var(--accent-text);padding:10px 0;font-size:15px;font-weight:700}.chips{flex-wrap:wrap;gap:8px;display:flex}.hero{align-items:stretch;gap:48px;padding-top:48px;display:flex}.hero-card{background:var(--card);border:var(--border);min-width:0;box-shadow:var(--shadow);border-radius:var(--radius);flex-direction:column;flex:auto;justify-content:center;gap:26px;padding:48px;display:flex}.hero-h1{font-family:var(--font-display);font-weight:800;font-size:var(--fs-h1);letter-spacing:-.035em;line-height:.95}.hero-intro{font-size:var(--fs-lead);color:var(--text-2);flex-direction:column;gap:14px;max-width:580px;line-height:1.55;display:flex}.hero-intro b{color:var(--text)}.hero-cta{flex-wrap:wrap;align-items:center;gap:12px;display:flex}.hero-photo{flex-direction:column;flex-shrink:0;justify-content:center;width:420px;display:flex}.print{background:var(--card);border:var(--border);width:390px;box-shadow:var(--shadow);border-radius:var(--radius-sm);margin-left:12px;padding:14px 14px 0;transform:rotate(2deg)}.print picture{display:block}.print img{aspect-ratio:358/440;object-fit:cover;object-position:center 30%;border:var(--border);width:100%;height:auto}.print figcaption{height:54px;font-family:var(--font-pixel);align-items:center;font-size:12px;display:flex}.term-section{padding-top:48px}.term{background:var(--term-bg);border:2px solid var(--outline);box-shadow:var(--shadow-accent);border-radius:var(--radius);overflow:hidden}.term-bar{background:var(--card);border-bottom:var(--border);align-items:center;gap:8px;height:40px;padding:0 16px;display:flex}.term-dot{border:var(--border);flex-shrink:0;width:12px;height:12px}.term-dot--r{background:var(--pink)}.term-dot--y{background:var(--amber)}.term-dot--g{background:var(--proj)}.term-title{font-family:var(--font-mono);color:var(--muted);margin-left:12px;font-size:13px}.term-body{font-family:var(--font-mono);color:var(--term-fg);flex-direction:column;gap:18px;padding:28px 36px 32px;font-size:15px;line-height:1.8;display:flex}.term-body h2{font:inherit}.t-user{color:var(--term-prompt)}.t-path{color:var(--term-path)}.t-cmd{color:var(--on-panel)}.t-dim{color:#a39cad}.t-ok{color:var(--term-prompt)}.about-row{align-items:flex-start;gap:56px;display:flex}.ascii{font-family:var(--font-mono);color:var(--term-key);flex-shrink:0;margin:0;font-size:16px;font-weight:600;line-height:1.25}.about-fields{flex-direction:column;flex:auto;min-width:0;display:flex}.about-handle{color:var(--on-panel);font-weight:600}.field{display:flex}.field dt{color:var(--term-key);flex-shrink:0;width:120px}.field dd{color:var(--on-panel)}.field dd span{display:block}.swatches{gap:6px;margin-top:12px;display:flex}.swatches span{width:22px;height:14px}.sw-1{background:#e0607e}.sw-2{background:#86c06a}.sw-3{background:#f2b33d}.sw-4{background:#4f74b3}.sw-5{background:#8a4b2a}.sw-6{background:#9cc3e0}.sw-7{background:#fffcf5}.abilities{flex-direction:column;display:flex}.ability{display:flex}.ability .plus{color:var(--term-prompt);flex-shrink:0;width:24px}.ability b{color:var(--on-panel);flex-shrink:0;width:230px;font-weight:600}.cursor{background:var(--term-key);vertical-align:middle;width:10px;height:18px;animation:1.06s step-end infinite blink;display:inline-block}@keyframes blink{50%{opacity:0}}.writing-grid{align-items:stretch;gap:32px;display:flex}.latest{background:var(--panel);width:620px;color:var(--on-panel);border:2px solid var(--outline);box-shadow:var(--shadow-accent);border-radius:var(--radius);flex-direction:column;flex-shrink:0;gap:16px;padding:40px;display:flex}.latest:hover{color:var(--on-panel)}.latest:hover .latest-go{text-underline-offset:4px;text-decoration:underline}.latest-meta{color:var(--on-panel-2);flex-wrap:wrap;align-items:center;gap:10px;font-size:14px;display:flex}.latest-meta .tag{font-size:12px}.latest h3{font-family:var(--font-display);letter-spacing:-.015em;font-size:42px;font-weight:700;line-height:1.08}.latest p{color:var(--on-panel-2);font-size:18px;line-height:1.55}.latest-go{color:var(--amber);margin-top:auto;font-weight:700}.side-list{border-top:var(--border);flex-direction:column;flex:auto;min-width:0;display:flex}.side-list a{border-bottom:var(--border);flex-direction:column;gap:6px;padding:18px 0;display:flex}.post-meta{color:var(--muted);flex-wrap:wrap;align-items:center;gap:8px;font-size:13px;display:flex}.side-list h3{font-family:var(--font-display);font-size:22px;font-weight:700;line-height:1.2}.side-list a:hover h3{color:var(--link-hover)}.archive{flex-direction:column;gap:12px;padding-top:16px;display:flex}.archive-head{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:16px;display:flex}.archive-head .label{font-family:var(--font-pixel);color:var(--muted);font-size:12px}.year-group{border-top:var(--border);gap:24px;padding-top:10px;display:flex}.year-group h3{font-family:var(--font-display);flex-shrink:0;width:80px;font-size:22px;font-weight:800}.year-items{flex:auto;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 32px;display:grid}.year-items a{border-bottom:1px dashed var(--rule-soft);justify-content:space-between;gap:16px;padding:8px 0;font-size:16px;display:flex}.year-items .t{font-weight:600}.year-items .m{color:var(--muted);flex-shrink:0;font-size:13px}.bento{grid-template-columns:repeat(4,minmax(0,1fr));grid-auto-rows:minmax(220px,auto);gap:16px;display:grid}.tile{background:var(--card);border:var(--border);border-radius:var(--radius);flex-direction:column;gap:10px;padding:20px;display:flex}a.tile:hover{color:var(--text);box-shadow:var(--shadow-sm);transform:translate(-1px,-1px)}.tile-code{font-family:var(--font-pixel);color:var(--blue);text-transform:uppercase;font-size:11px}.tile h3{font-family:var(--font-display);font-size:21px;font-weight:700;line-height:1.1}.tile p{color:var(--text-2);font-size:14px;line-height:1.5}.tile-foot{margin-top:auto;font-size:13px;font-weight:700}.loot{background:var(--amber);color:var(--on-amber);border:2px solid #1e1b2b;padding:6px 8px;font-size:13px;font-weight:600;line-height:1.4}.loot b{font-family:var(--font-pixel);margin-right:4px;font-size:10px;font-weight:400}.tile-li{display:flex}.tile-li>.tile{flex:auto;min-width:0}.tile-li--featured{grid-area:span 2/span 2}.tile--featured{box-shadow:var(--shadow);gap:14px;padding:32px}a.tile--featured:hover{box-shadow:7px 7px 0 var(--shadow-color)}.tile--featured h3{font-size:44px;font-weight:800;line-height:1.05}.tile--featured p{font-size:19px;line-height:1.55}.tile--featured .tile-foot{font-size:14px}.tile--wip{background:var(--tile-wip);border-style:dashed}.tile--wip .tile-code{color:var(--accent-text)}.tile--wip .tile-foot{color:var(--muted)}.wins{border-top:var(--border);flex-direction:column;display:flex}.win{border-bottom:var(--border);grid-template-columns:90px 110px minmax(0,1fr) 240px 48px;align-items:center;gap:16px;padding:18px 0;display:grid}.win .tag{justify-self:start}.win-date{font-family:var(--font-mono);color:var(--muted);font-size:14px}.win-title{font-family:var(--font-display);font-size:22px;font-weight:700;line-height:1.2}.win-src{color:var(--muted);font-size:14px}.win-go{justify-self:end;font-size:20px;font-weight:700}a.win:hover .win-title{color:var(--link-hover)}.xp-card{background:var(--card);border:var(--border);box-shadow:var(--shadow);border-radius:var(--radius);overflow:hidden}.xp-stage{background:var(--stage);border-bottom:var(--border);padding:28px 40px 8px}.xp-card--page{overflow:visible}.xp-card--page .xp-stage{border-radius:var(--radius);border-bottom:0;padding:32px 40px 16px}.xp-rail{height:280px;position:relative}.xp-stage--s3 .xp-rail{height:222px}.xp-cells,.xp-labels{grid-auto-columns:minmax(0,1fr);grid-auto-flow:column;display:grid}.xp-cells{height:28px;position:absolute;bottom:0;left:0;right:0}.xp-cell{position:relative}.xp-cell:before{content:"";border-top:var(--border);border-bottom:var(--border);background:var(--bg);position:absolute;inset:0}.xp-cell:first-child:before{border-left:var(--border);left:calc(50% - 14px)}.xp-cell:last-child:before{border-right:var(--border);right:calc(50% - 14px)}.xp-cell:after{content:"";background:var(--brown);display:none;position:absolute;inset:5px 0}.xp-cell.is-done:after{display:block}.xp-cell.is-active:after{display:block;right:50%}.xp-cell:first-child:after{left:calc(50% - 11px)}.xp-cell:first-child.is-active:after{right:calc(50% - 8px)}.xp-cell:last-child:after{right:calc(50% - 11px)}.xp-cell:last-child.is-active:after{right:50%}.xp-tick{background:var(--tick-off);z-index:1;width:4px;height:16px;margin-left:-2px;position:absolute;bottom:6px;left:50%}.xp-cell.is-done .xp-tick,.xp-cell.is-active .xp-tick{background:var(--outline)}.xp-pose{z-index:2;visibility:hidden;pointer-events:none;flex-direction:column;align-items:center;gap:6px;display:flex;position:absolute;bottom:26px;left:0}.xp-ready .xp-pose{visibility:visible}.xp-knob{z-index:3;pointer-events:none;width:84px;height:52px;color:var(--text);justify-content:space-between;align-items:center;margin-left:-42px;font-size:14px;font-weight:800;display:none;position:absolute;bottom:-12px;left:0}.xp-ready .xp-knob{display:flex}.xp-grip{background:var(--amber);width:48px;height:48px;box-shadow:3px 3px 0 var(--shadow-color);border-radius:var(--radius);border:2px solid #1e1b2b;justify-content:center;align-items:center;gap:4px;display:flex}.xp-grip i{background:#1e1b2b;width:3px;height:20px}.xp-range{z-index:4;appearance:none;opacity:0;cursor:grab;touch-action:pan-y;background:0 0;width:100%;height:320px;margin:0;display:none;position:absolute;bottom:-10px;left:0}.xp-ready .xp-range{display:block}.xp-range:active{cursor:grabbing}.xp-range::-webkit-slider-runnable-track{background:0 0;height:100%}.xp-range::-webkit-slider-thumb{appearance:none;background:0 0;width:48px;height:320px}.xp-range::-moz-range-track{background:0 0;height:100%}.xp-range::-moz-range-thumb{background:0 0;border:0;width:48px;height:320px}.xp-rail:has(.xp-range:focus-visible) .xp-grip{outline:2px solid var(--blue);outline-offset:3px}.xp-labels{height:44px;margin-top:10px}.xp-label{cursor:pointer;font-family:var(--font-pixel);color:var(--muted);white-space:nowrap;text-transform:uppercase;background:0 0;border:0;justify-self:center;padding:12px 4px;font-size:11px}.xp-label:hover{color:var(--link-hover)}.xp-label[aria-pressed=true]{color:var(--text)}.xp-ends,html:not(.js) .xp-stage,html:not(.js) .xp-page-stage,html:not(.js) .jump{display:none}.xp-panel{grid-template-columns:minmax(0,1fr) 300px;align-items:start;gap:32px;display:grid}.xp-panel--card{padding:28px 40px 32px}.xp-panel--card .xp-detail{background:0 0;border:0;gap:10px;padding:0}.xp-panel--card .xp-detail-h{font-size:28px}.xp-panel--card .xp-side{position:static}.hl{background:var(--amber);color:var(--on-amber);border:2px solid #1e1b2b;padding:1px 8px}.xp-points li,.bullets li{color:var(--text-2);gap:10px;font-size:15px;line-height:1.5;display:flex}.xp-points li:before,.bullets li:before{content:"";background:var(--brown);flex-shrink:0;width:6px;height:6px;margin-top:9px}.org{border:var(--border);border-radius:var(--radius-sm);background:#fff;flex-shrink:0;justify-content:center;align-items:center;display:inline-flex;overflow:hidden}.org--lg{width:64px;height:64px;box-shadow:var(--shadow-sm)}.org--sm{border-width:1.5px;width:28px;height:28px}.org img{object-fit:contain;width:100%;height:100%;display:block}.org--light img{padding:6px}.org--sm.org--light img{padding:2px}.org--full img{object-fit:cover}.org--mono{background:var(--invert-bg);color:var(--invert-fg)}.org-mono{font-family:var(--font-pixel);font-size:16px;line-height:1}.org--sm .org-mono{font-size:9px}.xp-detail-top{align-items:flex-start;gap:18px;display:flex}.xp-detail-titles{flex-direction:column;gap:8px;min-width:0;display:flex}.jump-text{flex-direction:column;min-width:0;line-height:1.3;display:flex}.jump-text .y{font-size:12px}.jump [aria-pressed=true] .org{border-color:#1e1b2b}.dialog{background:var(--panel);color:var(--on-panel);border:4px solid var(--panel);outline:2px solid var(--on-panel);outline-offset:-8px;border-radius:var(--radius);flex-direction:column;gap:14px;padding:40px 48px;display:flex}.dialog-speaker{font-family:var(--font-pixel);color:var(--amber);font-size:13px}.dialog-line{font-family:var(--font-display);font-size:38px;font-weight:700;line-height:1.2}.dialog-sub{color:var(--on-panel-2);font-size:19px;line-height:1.5}.dialog-links{flex-wrap:wrap;gap:8px 28px;margin-top:8px;font-size:18px;font-weight:700;display:flex}.dialog-links a{color:var(--on-panel);padding:8px 0}.dialog-links a:hover{color:var(--amber)}.dialog-links a:focus-visible{outline-color:var(--amber)}.page-head{flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:20px;padding-top:12px;display:flex}.page-head .titles{flex-direction:column;gap:8px;display:flex}.page-head p.lead{color:var(--text-2);max-width:640px;font-size:19px}.xp-page-stage{padding-top:36px}.xp-below{padding-top:32px}.xp-details{flex:auto;min-width:0}.xp-detail{background:var(--card);border:var(--border);border-radius:var(--radius);flex-direction:column;gap:14px;padding:36px 40px;display:flex}.xp-detail+.xp-detail{margin-top:16px}.js .xp-detail:not(.is-active){display:none}.xp-detail-meta{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.xp-detail-meta .when{font-family:var(--font-mono);color:var(--muted);font-size:14px}.xp-detail-h{font-family:var(--font-display);letter-spacing:-.02em;font-size:40px;font-weight:800;line-height:1.1}.xp-detail-h .hl{box-shadow:3px 3px 0 var(--shadow-color);padding:2px 12px}.xp-org{color:var(--text-2);font-size:19px;font-weight:600}.xp-detail .bullets{flex-direction:column;gap:10px;margin-top:6px;display:flex}.xp-detail .bullets li{color:var(--text-body);gap:12px;font-size:17px;line-height:1.55}.xp-detail .bullets li:before{width:8px;height:8px}.xp-side{flex-direction:column;flex-shrink:0;gap:12px;width:300px;display:flex;position:sticky;top:24px}.xp-steps{gap:8px;display:flex}.xp-steps .btn{flex:1 1 0;height:52px;font-size:15px}html:not(.js) .xp-steps{display:none}.jump{background:var(--card);border:var(--border);border-radius:var(--radius);flex-direction:column;padding:8px 0;display:flex}.jump button,.jump a{cursor:pointer;text-align:left;width:100%;color:var(--text);background:0 0;border:0;justify-content:flex-start;align-items:center;gap:12px;padding:7px 16px;font-size:14px;display:flex}.jump b{white-space:nowrap}.jump .y{color:var(--muted);white-space:nowrap}.jump [aria-pressed=true]{background:var(--amber);color:var(--on-amber)}.jump [aria-pressed=true] .y{color:var(--on-amber)}.jump button:hover{background:var(--row-active)}.jump [aria-pressed=true]:hover{background:var(--amber)}.blog-tools{flex-direction:column;gap:16px;padding-top:32px;display:flex}.search{max-width:560px;position:relative}.search svg{width:18px;height:18px;color:var(--muted);pointer-events:none;margin-top:-9px;position:absolute;top:50%;left:16px}.search input{border:var(--border);border-radius:var(--radius-sm);background:var(--card);width:100%;height:52px;color:var(--text);font:inherit;box-shadow:var(--shadow-sm);padding:0 16px 0 46px;font-size:17px}.search input::placeholder{color:var(--muted)}.search input::-webkit-search-cancel-button{cursor:pointer}.filter-chips{flex-wrap:wrap;gap:8px;display:flex}html:not(.js) .filter-chips,html:not(.js) .search{display:none}.blog-status{color:var(--muted);min-height:1.5em;font-size:15px}.blog-list{flex-direction:column;gap:28px;padding-top:16px;display:flex}.blog-year{border-top:var(--border);gap:24px;padding-top:12px;display:flex}.blog-year>h2{font-family:var(--font-display);flex-shrink:0;width:88px;font-size:26px;font-weight:800}.blog-year ol{flex-direction:column;flex:auto;min-width:0;padding:0;list-style:none;display:flex}.blog-row a{border-bottom:1px dashed var(--rule-soft);flex-direction:column;gap:4px;padding:12px 0 14px;display:flex}.blog-year li:last-child a{border-bottom:0}.blog-row h3{font-family:var(--font-display);font-size:22px;font-weight:700;line-height:1.2}.blog-row p{color:var(--text-2);font-size:15px;line-height:1.5}.blog-row a:hover h3{color:var(--link-hover)}.blog-row .tag--cat{padding:1px 5px;font-size:10px}.blog-empty{color:var(--text-2);padding:32px 0;font-size:17px}.is-filtered-out{display:none!important}.progress-lane{z-index:20;background:var(--card);pointer-events:none;height:62px;position:sticky;top:0}.progress{background:var(--panel);border-block:2px solid var(--panel);height:12px;position:absolute;bottom:0;left:0;right:0}.progress-fill{height:100%;width:calc(var(--p,0) * 100%);background:var(--amber)}.rider{position:absolute;bottom:10px;left:-25px}html:not(.js) .rider{display:none}.post-grid{grid-template-columns:190px minmax(0,700px) minmax(0,158px);grid-template-areas:".head.""rail body.";justify-content:center;column-gap:56px;padding-top:28px;display:grid}.post-head{flex-direction:column;grid-area:head;display:flex}.post-body{grid-area:body;min-width:0}.post-rail{grid-area:rail}.post-rail-in{flex-direction:column;gap:12px;padding-top:24px;display:flex;position:sticky;top:90px}.rail-label{font-family:var(--font-pixel);color:var(--muted);font-size:11px}.toc{flex-direction:column;gap:10px;display:flex}.toc a{color:var(--muted);gap:8px;font-size:14px;line-height:1.4;display:flex}.toc a:before{content:"";background:0 0;flex-shrink:0;width:8px;height:8px;margin-top:6px}.toc a[aria-current=true]{color:var(--text);font-weight:700}.toc a[aria-current=true]:before{background:var(--brown)}.toc a:hover{color:var(--link-hover)}.rail-proj{border-top:var(--border);flex-direction:column;gap:10px;margin-top:20px;padding-top:16px;display:flex}.rail-proj a,.rail-proj button{text-align:left;cursor:pointer;background:0 0;border:0;padding:0;font-size:14px}.rail-proj a{color:var(--accent-text);font-weight:700}.rail-proj button{color:var(--muted)}.rail-proj button:hover{color:var(--link-hover)}html:not(.js) .copy-link{display:none}.post-h1{font-family:var(--font-display);font-weight:800;font-size:var(--fs-h1-post);letter-spacing:-.025em;margin-top:18px;line-height:1.05}.dek{color:var(--text-2);margin-top:14px;font-size:19px;line-height:1.5}.byline{border-bottom:var(--border);align-items:center;gap:12px;margin-top:20px;padding-bottom:22px;display:flex}.byline img{object-fit:cover;object-position:center 25%;border:var(--border);border-radius:var(--radius-sm);width:44px;height:44px}.byline .who{flex-direction:column;gap:2px;display:flex}.byline .name{font-size:15px;font-weight:700}.byline .meta{color:var(--muted);font-size:14px}.tldr{background:var(--bg);border:var(--border);box-shadow:4px 4px 0 var(--shadow-color);border-radius:var(--radius-sm);flex-direction:column;gap:8px;margin-top:24px;padding:16px 20px;display:flex}.tldr .rail-label{color:var(--accent-text)}.tldr p{font-size:17px;line-height:1.55}.toc-mobile{display:none}.prose{font-size:var(--fs-post);line-height:var(--lh-post);color:var(--text-body);overflow-wrap:break-word;margin-top:24px}.prose>*+*{margin-top:20px}.prose h2{font-family:var(--font-display);color:var(--text);margin-top:36px;scroll-margin-top:100px;font-size:28px;font-weight:700;line-height:1.2}.prose h3{font-family:var(--font-display);color:var(--text);margin-top:32px;scroll-margin-top:100px;font-size:23px;font-weight:700;line-height:1.25}.prose a{color:var(--text);text-decoration:underline;text-decoration-color:var(--amber);text-underline-offset:3px;text-decoration-thickness:2px}.prose a:hover{color:var(--link-hover);text-decoration-color:currentColor}.prose strong{color:var(--text);font-weight:700}.prose ul,.prose ol{padding-left:1.3em}.prose li+li{margin-top:8px}.prose li::marker{color:var(--brown)}.prose img{border:var(--border);border-radius:var(--radius-sm)}.prose hr{border:0;border-top:2px dashed var(--rule-soft);margin:40px 0}.prose blockquote{border-left:4px solid var(--brown);color:var(--text-2);padding:2px 0 2px 20px}.prose blockquote>*+*{margin-top:12px}.prose :not(pre)>code{font-family:var(--font-mono);background:var(--bg);border:1px solid var(--rule-soft);color:var(--text);border-radius:3px;padding:2px 6px;font-size:.86em}.prose table{border-collapse:collapse;width:100%;font-size:16px}.prose th,.prose td{text-align:left;border-bottom:1px solid var(--rule-soft);padding:8px 10px}.prose th{border-bottom:var(--border)}.key-point{flex-direction:column;gap:12px;padding-left:72px;display:flex;position:relative;margin:32px 0!important}.key-point:before{content:"“";font-family:var(--font-display);color:var(--brown);font-size:88px;font-weight:800;line-height:.8;position:absolute;top:8px;left:0}.key-point blockquote{color:var(--text);border:0;padding:0}.key-point blockquote p{font-family:var(--font-display);letter-spacing:-.01em;font-size:30px;font-weight:600;line-height:1.35}.key-point blockquote p:last-child:after{content:"”";color:var(--brown)}.key-point figcaption{font-family:var(--font-pixel);color:var(--muted);text-transform:uppercase;font-size:11px;line-height:1.3}.code-frame{border:var(--border);border-radius:var(--radius-sm);background:var(--sheet);overflow:hidden}.code-head{border-bottom:var(--border);background:var(--bg);min-height:38px;font-family:var(--font-pixel);justify-content:space-between;align-items:center;padding:0 6px 0 14px;font-size:11px;display:flex}.code-copy{font-family:var(--font-pixel);cursor:pointer;color:var(--text);background:0 0;border:0;padding:10px 8px;font-size:11px}.code-copy:hover{color:var(--link-hover)}html:not(.js) .code-copy{display:none}.prose pre{font-family:var(--font-mono);color:var(--text);background:var(--sheet);tab-size:4;margin:0;padding:18px 20px;font-size:14.5px;line-height:1.7;overflow-x:auto}.prose pre code{font:inherit;background:0 0;border:0;padding:0}.token.comment,.token.prolog,.token.doctype,.token.cdata{color:#6b6472;font-style:italic}.token.number,.token.boolean,.token.constant{color:#9a4d1e}.token.string,.token.char,.token.attr-value,.token.regex,.token.inserted{color:#3f7a36}.token.keyword,.token.atrule,.token.important,.token.selector,.token.tag{color:#3e62a8}.token.function,.token.class-name,.token.builtin{color:#8a4b2a}.token.operator,.token.punctuation,.token.entity{color:#3a3542}.token.property,.token.attr-name,.token.variable,.token.parameter{color:#7a3e6b}.token.deleted{color:#b03a48}.token.bold{font-weight:700}.token.italic{font-style:italic}.prose .logos{border:var(--border);border-radius:var(--radius-sm);background:var(--bg);flex-wrap:wrap;justify-content:center;align-items:center;gap:20px 36px;padding:24px 20px;display:flex}.prose .logos img{border:0;border-radius:0;width:auto;height:26px}.prose .logos .cap,.prose .logotiles .cap{text-align:center;font-family:var(--font-pixel);color:var(--muted);text-transform:uppercase;flex-basis:100%;font-size:11px;line-height:1.4}.prose .logotiles{flex-wrap:wrap;justify-content:center;align-items:center;gap:10px;display:flex}.prose .logotile{border-radius:var(--radius-sm);box-shadow:2px 2px 0 var(--shadow-color);font-family:var(--font-pixel);color:#fff;text-transform:uppercase;border:2px solid #1e1b2b;align-items:center;gap:8px;padding:6px 12px 6px 9px;font-size:11px;line-height:1;display:inline-flex}.prose .logotile img{filter:brightness(0)invert();border:0;border-radius:0;width:15px;height:15px}.prose .logotile--claude{background:#b4553a}.prose .logotile--google{background:#2f6bd8}.prose .logotile--meta{background:#0457c0}.prose .logotile--qwen{background:#5a42d6}.prose .logotile--ollama{background:#1e1b2b}.prose .shout{font-family:var(--font-display);letter-spacing:-.01em;color:var(--text);border-left:6px solid var(--amber);text-wrap:balance;padding-left:20px;font-size:30px;font-weight:700;line-height:1.25}.prose .readlist{border-left:4px solid var(--brown);padding-left:20px;list-style:none}.prose .readlist li{line-height:1.45}.prose .readlist li+li{margin-top:14px}.prose .readlist li span{color:var(--muted);margin-top:2px;font-size:.87em;display:block}.post-nav{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin-top:40px;display:grid}.post-nav a{border:var(--border);box-shadow:4px 4px 0 var(--shadow-color);border-radius:var(--radius-sm);background:var(--card);flex-direction:column;gap:4px;padding:18px 20px;display:flex}.post-nav a:hover{color:var(--text);box-shadow:5px 5px 0 var(--shadow-color);transform:translate(-1px,-1px)}.post-nav .k{font-family:var(--font-pixel);color:var(--muted);text-transform:uppercase;font-size:11px}.post-nav .t{font-family:var(--font-display);font-size:19px;font-weight:700;line-height:1.25}.post-nav .next{text-align:right;grid-column:2}.post-foot{border-top:var(--border);color:var(--muted);flex-wrap:wrap;justify-content:space-between;gap:16px;margin-top:32px;padding-top:16px;font-size:14px;display:flex}.post-foot a{color:var(--accent-text);font-weight:700}.resume-wrap{width:min(900px, 100% - 2 * var(--gutter));margin-inline:auto}.resume-head{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;padding-top:12px;display:flex}.resume-head .titles{flex-direction:column;gap:6px;display:flex}.resume-head .eyebrow{font-size:12px}.resume-head h1{font-family:var(--font-display);font-size:44px;font-weight:800;line-height:1.1}.resume-actions{flex-wrap:wrap;gap:10px;display:flex}.sheet{background:var(--sheet);border:var(--border);box-shadow:var(--shadow);border-radius:var(--radius-sm);color:var(--text);flex-direction:column;gap:16px;margin-top:24px;padding:56px 64px;display:flex}.sheet-top{text-align:center;flex-direction:column;align-items:center;gap:4px;display:flex}.sheet-name{font-family:var(--font-display);font-size:34px;font-weight:800;line-height:1.1}.sheet-contact{color:var(--text-2);flex-wrap:wrap;justify-content:center;gap:0 8px;font-size:13px;display:flex}.sheet-contact li+li:before{content:"·";margin-right:8px}.sheet-contact a{text-decoration:underline;text-decoration-color:var(--rule-soft);text-underline-offset:2px}.sheet h2{font-family:var(--font-pixel);color:var(--accent-text);border-bottom:var(--border);margin-top:8px;padding-bottom:6px;font-size:12px;font-weight:400}.sheet-row{justify-content:space-between;align-items:baseline;gap:16px;font-size:15px;display:flex}.sheet-date{font-family:var(--font-mono);color:var(--muted);flex-shrink:0;font-size:12px}.sheet-skills{flex-direction:column;font-size:14px;line-height:1.6;display:flex}.sheet-item{flex-direction:column;gap:6px;display:flex}.sheet-item h3{font-size:16px;font-weight:700}.sheet-item h3 span{color:var(--text-2);font-weight:500}.sheet-item ul{color:var(--text-body);padding-left:18px;font-size:14px;line-height:1.5}.sheet-item li+li{margin-top:4px}.legal{margin-top:24px;font-size:17px}.legal h2{font-family:var(--font-display);color:var(--text);border:0;margin-top:28px;padding:0;font-size:24px;font-weight:700}.legal ul{padding-left:1.2em}.foot-legal{flex-wrap:wrap;gap:16px;display:flex}.foot-legal a{color:var(--muted);text-underline-offset:3px;padding:8px 0;text-decoration:underline}.foot-legal a:hover{color:var(--link-hover)}.lost{flex-direction:column;align-items:flex-start;gap:20px;max-width:720px;padding-top:72px;display:flex}.lost p{color:var(--text-2);font-size:20px;line-height:1.55}.lost .hero-cta{margin-top:8px}:root[data-theme=dark] .token.comment{color:#a39cad}:root[data-theme=dark] .token.number,:root[data-theme=dark] .token.boolean,:root[data-theme=dark] .token.constant{color:#e09a6c}:root[data-theme=dark] .token.string,:root[data-theme=dark] .token.char,:root[data-theme=dark] .token.attr-value,:root[data-theme=dark] .token.regex,:root[data-theme=dark] .token.inserted{color:#86c06a}:root[data-theme=dark] .token.keyword,:root[data-theme=dark] .token.atrule,:root[data-theme=dark] .token.important,:root[data-theme=dark] .token.selector,:root[data-theme=dark] .token.tag{color:#8fb0f0}:root[data-theme=dark] .token.function,:root[data-theme=dark] .token.class-name,:root[data-theme=dark] .token.builtin{color:#f2c66d}:root[data-theme=dark] .token.operator,:root[data-theme=dark] .token.punctuation,:root[data-theme=dark] .token.entity{color:#cfc6d6}:root[data-theme=dark] .token.property,:root[data-theme=dark] .token.attr-name,:root[data-theme=dark] .token.variable,:root[data-theme=dark] .token.parameter{color:#e4a7d4}:root[data-theme=dark] .prose .logos img{filter:brightness(0)invert();opacity:.85}:root[data-theme=dark] .kind--experience{color:#1c1a23;background:#f2ede4}@media (prefers-reduced-motion:no-preference){html{scroll-behavior:smooth}}@media (prefers-reduced-motion:reduce){.cursor{animation:none}.rider{display:none}.progress-lane{height:12px}.post-rail-in{top:44px}*,:before,:after{transition:none!important}}@media (width<=1160px){.post-grid{grid-template-columns:190px minmax(0,700px);grid-template-areas:".head""rail body";column-gap:40px}.latest{width:52%}.win{grid-template-columns:80px 90px minmax(0,1fr) 200px 32px}}@media (width<=1060px){.nav-search .lbl{display:none}.nav-link{padding:0 10px}}@media (width<=900px){:root{--section-gap:64px}.next-steps ul,.foot-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.foot-id{grid-column:1/-1}.h2{font-size:36px}.page-title{font-size:48px}.menu-btn{display:inline-flex}.js .nav{z-index:30;background:var(--card);border:var(--border);border-radius:var(--radius);box-shadow:var(--shadow);flex-direction:column;align-items:stretch;gap:2px;padding:10px;display:none;position:absolute;top:calc(100% + 10px);left:-2px;right:-2px}.js .nav.is-open{display:flex}.js .nav .nav-link{height:48px;font-size:17px}.js .nav-div{width:auto;height:2px;margin:6px 4px}.js .nav-search .lbl{display:inline}html:not(.js) .bar{flex-wrap:wrap;height:auto;min-height:64px;padding:10px 12px}html:not(.js) .nav{flex-wrap:wrap;margin-left:0}html:not(.js) .menu-btn{display:none}.site-head--band .bar{height:76px}.hero{flex-direction:column-reverse;gap:32px;padding-top:40px}.hero-photo{align-items:center;width:auto}.print{width:280px;margin-left:0}.hero-card{padding:32px}.writing-grid{flex-direction:column}.latest{width:auto}.year-items{grid-template-columns:minmax(0,1fr)}.bento{grid-template-columns:repeat(2,minmax(0,1fr))}.tile-li--featured{grid-area:auto/span 2}.win{grid-template-columns:auto minmax(0,1fr) 32px;grid-template-areas:"tag date go""title title title""src src src";gap:8px 12px}.win .tag{grid-area:tag}.win-date{grid-area:date}.win-title{grid-area:title}.win-src{grid-area:src}.win-go{grid-area:go}.xp-panel{grid-template-columns:minmax(0,1fr);gap:24px}.xp-side{width:100%;position:static}.post-grid{grid-template-columns:minmax(0,700px);grid-template-areas:"head""body";justify-content:center;padding-top:32px}.post-rail{display:none}.toc-mobile{border:var(--border);border-radius:var(--radius-sm);background:var(--card);margin-top:28px;display:block}.toc-mobile summary{cursor:pointer;min-height:44px;font-family:var(--font-pixel);color:var(--text);justify-content:space-between;align-items:center;padding:12px 16px;font-size:12px;list-style:none;display:flex}.toc-mobile summary::-webkit-details-marker{display:none}.toc-mobile summary:after{content:"+";font-family:var(--font-mono);font-size:18px}.toc-mobile[open] summary:after{content:"-"}.toc-mobile .toc{padding:4px 16px 16px}.toc-mobile .toc a{padding:4px 0;font-size:15px}.sheet{padding:40px 32px}}@media (width<=600px){.next-steps ul{grid-template-columns:minmax(0,1fr)}.post-foot-links{gap:14px}:root{--fs-h1:44px;--fs-h1-post:34px;--fs-h2:30px;--fs-post:17px;--fs-lead:18px;--section-gap:56px}.h2{font-size:var(--fs-h2)}.page-title{font-size:40px}.brand{font-size:18px}.bar{padding:0 8px 0 14px}.theme-toggle .lbl{display:none}.theme-toggle{padding:0 11px}.site-head--float{padding-top:76px}.mini{right:20px}.hero-card{gap:20px;padding:24px 20px}.hero-intro{font-size:18px}.hero-cta .btn{height:48px}.term-body{padding:20px 18px 24px;font-size:14px}.ascii{display:none}.about-row{gap:0}.field{flex-direction:column}.field dt{width:auto}.ability{flex-wrap:wrap}.ability b{flex:auto;width:auto}.ability .desc{flex-basis:100%;padding-left:24px}.term-title{margin-left:4px;font-size:12px}.latest{padding:24px}.latest h3{font-size:30px}.year-group{flex-direction:column;gap:6px}.year-group h3{width:auto}.bento{grid-template-columns:minmax(0,1fr)}.tile-li--featured{grid-column:auto}.tile--featured{padding:24px}.tile--featured h3{font-size:34px}.xp-stage{padding:20px 16px 8px}.xp-card--page .xp-stage{padding:24px 16px 12px}.xp-rail,.xp-stage--s3 .xp-rail{height:222px}.xp-labels{display:none}.xp-ends{justify-content:space-between;align-items:center;gap:8px;min-height:44px;margin-top:10px;display:flex}.xp-ends .xp-label{padding:12px 0}.xp-now{font-family:var(--font-pixel);color:var(--text);text-align:center;text-transform:uppercase;font-size:11px}.xp-panel--card{padding:20px 16px 24px}.xp-panel--card .xp-detail-h{font-size:24px}.org--lg{width:48px;height:48px}.xp-detail-top{gap:14px}.xp-detail{padding:24px 20px}.xp-detail-h{font-size:30px}.dialog{padding:32px 24px}.dialog-line{font-size:28px}.dialog-sub{font-size:17px}.dialog-links{flex-direction:column;gap:0}.blog-year{flex-direction:column;gap:4px}.blog-year>h2{width:auto}.progress-lane{height:66px}.post-h1{line-height:1.1}.key-point{padding-left:48px}.key-point:before{font-size:64px}.key-point blockquote p{font-size:24px}.prose h2{font-size:26px}.prose .shout{font-size:24px}.post-nav{grid-template-columns:minmax(0,1fr)}.post-nav .next{grid-column:auto}.resume-head h1{font-size:36px}.sheet{padding:28px 18px}.sheet-row{flex-direction:column;gap:2px}}
