@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/2c55a0e60120577a-s.0-dom-5bn10r2.woff2)format("woff2");unicode-range:U+460-52F,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(../media/9c72aa0f40e4eef8-s.1y4-pdgsjb-pw.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/ad66f9afd8947f86-s.3lvt2whj97whp.woff2)format("woff2");unicode-range:U+1F??}@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/5476f68d60460930-s.2uwcyprjm3xu3.woff2)format("woff2");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/2bbe8d2671613f1f-s.0k62hbripvv8p.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:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/1bffadaabf893a1e-s.3-6t-g6q0vh0a.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:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/83afe278b6a6bb3c-s.p.2bn3s6zvc0dyp.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:Inter Fallback;src:local(Arial);ascent-override:90.44%;descent-override:22.52%;line-gap-override:0.0%;size-adjust:107.12%}.inter_7b064e0d-module__MOT0tq__className{font-family:Inter,Inter Fallback;font-style:normal}.inter_7b064e0d-module__MOT0tq__variable{--font-inter:"Inter", "Inter Fallback"}
@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:100 800;font-display:swap;src:url(../media/13bf9871fe164e7f-s.2f7nqdagzwx2-.woff2)format("woff2");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;font-style:normal;font-weight:100 800;font-display:swap;src:url(../media/cc545e633e20c56d-s.176arc174-8zp.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:100 800;font-display:swap;src:url(../media/71b036adf157cdcf-s.0bp8oijd_gu96.woff2)format("woff2");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;font-style:normal;font-weight:100 800;font-display:swap;src:url(../media/89b21bb081cb7469-s.1fby2rem9ngyr.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:JetBrains Mono;font-style:normal;font-weight:100 800;font-display:swap;src:url(../media/3fe682a82f50d426-s.0vfdmo25voy_0.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:JetBrains Mono;font-style:normal;font-weight:100 800;font-display:swap;src:url(../media/70bc3e132a0a741e-s.p.3t6q91iet4nsy.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:JetBrains Mono Fallback;src:local(Arial);ascent-override:75.79%;descent-override:22.29%;line-gap-override:0.0%;size-adjust:134.59%}.jetbrains_mono_84d6efd-module__5Hl15a__className{font-family:JetBrains Mono,JetBrains Mono Fallback;font-style:normal}.jetbrains_mono_84d6efd-module__5Hl15a__variable{--font-jetbrains-mono:"JetBrains Mono", "JetBrains Mono Fallback"}
:root{--base:#1e1e2e;--mantle:#181825;--crust:#11111b;--surface0:#313244;--surface1:#45475a;--surface2:#585b70;--overlay0:#6c7086;--overlay1:#7f849c;--text:#cdd6f4;--subtext1:#bac2de;--subtext0:#a6adc8;--peach:#fab387;--mauve:#cba6f7;--teal:#94e2d5;--green:#a6e3a1;--yellow:#f9e2af;--red:#f38ba8;--blue:#89b4fa;--pink:#f5c2e7;--accent:var(--green);--theme:var(--accent);--font-sans:var(--font-inter), "Inter", system-ui, sans-serif;--font-mono:var(--font-jetbrains-mono), "JetBrains Mono", ui-monospace, monospace;--max-w:1180px;--pad-x:48px}*{box-sizing:border-box}html,body{margin:0;padding:0}body{background:var(--base);color:var(--text);font-family:var(--font-sans);-webkit-font-smoothing:antialiased;font-feature-settings:"ss01", "cv11";font-size:16px;line-height:1.55}button{cursor:pointer;color:inherit;background:0 0;border:none;padding:0;font-family:inherit}a{color:inherit;text-decoration:none}em{color:var(--accent);font-style:italic;font-weight:500}.mono{font-family:var(--font-mono);font-feature-settings:normal;letter-spacing:-.01em}.muted{color:var(--subtext0)}.accent{color:var(--accent)}.themed{color:var(--theme)}main.route-home{--theme:var(--accent)}main.route-about{--theme:var(--peach)}main.route-blog{--theme:var(--mauve)}main.route-chat{--theme:var(--green)}.app{flex-direction:column;min-height:100vh;display:flex}main{flex:1}.section{max-width:var(--max-w);padding:96px var(--pad-x);margin:0 auto}.site-header{z-index:50;padding:18px var(--pad-x);background:color-mix(in srgb, var(--base) 88%, transparent);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-bottom:1px solid color-mix(in srgb, var(--surface0) 60%, transparent);align-items:center;gap:32px;display:flex;position:sticky;top:0}.brand{align-items:center;gap:12px;display:flex}.brand-name{letter-spacing:-.01em;font-weight:500}.logo{background:var(--accent) url(/logo.png) center / contain no-repeat;border-radius:50%;flex-shrink:0;width:24px;height:24px}.site-nav{gap:4px;margin-left:auto;display:flex}.site-header .brand{margin-right:auto}.nav-link{color:var(--subtext0);border-radius:6px;align-items:center;gap:8px;padding:8px 14px;font-size:14px;transition:all .15s;display:inline-flex}.nav-dot{background:var(--link-theme);opacity:0;border-radius:50%;width:5px;height:5px;transition:opacity .15s}.nav-link:hover{color:var(--text);background:var(--surface0)}.nav-link:hover .nav-dot{opacity:.5}.nav-link.active{color:var(--text);background:var(--surface0)}.nav-link.active .nav-dot{opacity:1;box-shadow:0 0 8px var(--link-theme)}.btn{border:1px solid #0000;border-radius:8px;align-items:center;gap:8px;padding:12px 20px;font-size:14px;font-weight:500;transition:all .15s;display:inline-flex}.btn-sm{padding:8px 14px;font-size:13px}.btn-primary{background:var(--accent);color:var(--base);font-weight:600}.btn-primary:hover{filter:brightness(1.05);transform:translateY(-1px)}.btn-ghost{border-color:var(--surface1);color:var(--text)}.btn-ghost:hover{background:var(--surface0);border-color:var(--surface2)}.hero{max-width:var(--max-w);padding:96px var(--pad-x) 64px;margin:0 auto}.hero-meta{color:var(--subtext0);align-items:center;gap:10px;margin-bottom:32px;padding:6px 12px;font-size:12px;display:inline-flex}.dot{background:var(--green);width:6px;height:6px;box-shadow:0 0 8px var(--green);border-radius:50%;animation:2s infinite pulse}@keyframes pulse{50%{opacity:.5}}.hero-title{letter-spacing:-.04em;text-wrap:pretty;margin:0 0 14px;font-size:clamp(52px,7vw,88px);font-weight:600;line-height:1}.hero-role{color:var(--accent);flex-wrap:wrap;align-items:center;gap:10px;margin:0 0 28px;font-size:13px;display:flex}.hero-sub{color:var(--subtext1);max-width:560px;margin:0;font-size:18px;line-height:1.6}.hero-editorial{padding-top:112px;padding-bottom:64px}.hero-split{grid-template-columns:1.05fr 1fr;align-items:center;gap:64px;padding-bottom:64px;display:grid}.hero-split .hero-title{font-size:clamp(44px,5.4vw,68px)}.hero-index{padding-top:128px;padding-bottom:56px}.hero-index .hero-title{margin-bottom:20px}.hero-index-meta{color:var(--subtext1);flex-wrap:wrap;gap:12px;font-size:13px;display:flex}.hero-index-meta .sep{color:var(--surface2)}.id-card{background:var(--mantle);border:1px solid var(--surface0);border-radius:12px;overflow:hidden;box-shadow:0 30px 80px -30px #0009}.id-card-head{background:var(--crust);border-bottom:1px solid var(--surface0);align-items:center;gap:8px;padding:12px 16px;font-size:12px;display:flex}.tl-dot{border-radius:50%;width:11px;height:11px}.tl-red{background:var(--red)}.tl-yellow{background:var(--yellow)}.tl-green{background:var(--green)}.id-card-title{color:var(--subtext0);margin-left:8px}.id-card-body{padding:24px;font-size:13px;line-height:1.95}.id-card-body .muted{min-width:100px;display:inline-block}.id-card-link:hover{color:var(--blue);-webkit-text-decoration-color:var(--blue);text-decoration-color:var(--blue)}.blink{color:var(--green);animation:1s step-end infinite blink}@keyframes blink{50%{opacity:0}}.route-cards{max-width:var(--max-w);padding:0 var(--pad-x) 40px;border-top:1px solid var(--surface0);flex-direction:column;margin:0 auto;display:flex}.route-card{text-align:left;border-bottom:1px solid color-mix(in srgb, var(--surface0) 60%, transparent);grid-template-columns:64px 1fr 40px;align-items:start;gap:24px;padding:36px 8px;transition:padding .2s,background .2s;display:grid;position:relative}.route-card:before{content:"";background:var(--card-accent);opacity:0;width:2px;transition:opacity .2s;position:absolute;top:0;bottom:0;left:0}.route-card.accent-peach{--card-accent:var(--peach)}.route-card.accent-mauve{--card-accent:var(--mauve)}.route-card.accent-teal{--card-accent:var(--teal)}.route-card.accent-green{--card-accent:var(--green)}.route-card:hover{background:color-mix(in srgb, var(--mantle) 70%, transparent);padding-left:20px}.route-card:hover:before{opacity:1}.route-card:hover .rc-arrow{color:var(--card-accent);transform:translate(6px)}.route-card:hover .rc-title{color:var(--card-accent)}.rc-num{color:var(--surface2);padding-top:9px;font-size:12px}.rc-title{letter-spacing:-.025em;margin:0 0 10px;font-size:30px;font-weight:600;transition:color .2s}.rc-desc{color:var(--subtext1);max-width:620px;margin:0 0 12px;font-size:15px;line-height:1.55}.rc-meta{font-size:11px}.rc-arrow{color:var(--surface2);text-align:right;padding-top:8px;font-size:18px;transition:all .2s}.msg{align-items:flex-end;gap:10px;display:flex}.msg.user{justify-content:flex-end}.msg-av{background:var(--surface0);width:24px;height:24px;color:var(--accent);border-radius:50%;flex-shrink:0;place-items:center;font-size:10px;font-weight:600;display:grid}.msg-bubble{border-radius:14px;max-width:78%;padding:10px 14px;font-size:14px;line-height:1.45}.msg.assistant .msg-bubble{background:var(--surface0);color:var(--text);overflow-wrap:anywhere;border-bottom-left-radius:4px;max-width:min(82%,68ch);font-size:15px;line-height:1.55}.msg.assistant .msg-bubble p{margin:0 0 10px}.msg.assistant .msg-bubble p:last-child{margin-bottom:0}.msg.assistant .msg-bubble ul,.msg.assistant .msg-bubble ol{margin:10px 0;padding-left:22px}.msg.assistant .msg-bubble li+li{margin-top:5px}.msg.user .msg-bubble{background:var(--accent);color:var(--base);border-bottom-right-radius:4px;font-weight:500}.msg-system{color:var(--subtext0);text-align:center;border:1px dashed var(--surface0);border-radius:6px;width:100%;padding:6px 12px;font-size:11px}.typing-bubble{gap:4px;padding:14px;display:flex}.typing-bubble span{background:var(--subtext0);border-radius:50%;width:6px;height:6px;animation:1.2s infinite bounce}.typing-bubble span:nth-child(2){animation-delay:.15s}.typing-bubble span:nth-child(3){animation-delay:.3s}@keyframes bounce{0%,60%,to{opacity:.4;transform:translateY(0)}30%{opacity:1;transform:translateY(-4px)}}.section-label{color:var(--theme);align-items:center;gap:12px;margin-bottom:18px;font-size:12px;display:flex}.section-label:after{content:"";background:color-mix(in srgb, var(--theme) 45%, transparent);width:48px;height:1px}.section-sublabel{color:var(--theme);opacity:.85;margin:32px 0 16px;font-size:11px}.section-title{letter-spacing:-.025em;text-wrap:balance;max-width:800px;margin:0 0 24px;font-size:clamp(32px,3.6vw,48px);font-weight:600;line-height:1.1}.section-lede{color:var(--subtext1);max-width:620px;margin:0 0 56px;font-size:18px;line-height:1.5}.about-grid{grid-template-columns:1.3fr 1fr;align-items:start;gap:56px;margin-bottom:64px;display:grid}.about-copy p{color:var(--subtext1);margin:0 0 18px;font-size:16px;line-height:1.65}.about-copy p:first-child{color:var(--text);font-size:17px}.pj-quote{background:color-mix(in srgb, var(--theme) 5%, var(--mantle));border:1px solid color-mix(in srgb, var(--theme) 22%, var(--surface0));border-radius:12px;margin:0;padding:28px;position:relative;overflow:hidden}.pj-quote:before{content:"";background:var(--theme);width:2px;position:absolute;top:0;bottom:0;left:0}.pj-quote .quote-label{color:var(--theme);margin-bottom:14px;font-size:11px}.pj-quote blockquote{color:var(--text);margin:0 0 16px;font-size:18px;font-style:italic;line-height:1.5}.pj-quote figcaption{color:var(--theme);font-size:12px}.timeline{border-top:1px dashed var(--surface0);margin-top:24px;padding-top:32px}.tl-row{border-bottom:1px solid color-mix(in srgb, var(--surface0) 50%, transparent);grid-template-columns:180px 1fr;gap:24px;padding:14px 0;display:grid}.tl-row:last-child{border-bottom:none}.tl-row:first-of-type .tl-year{color:var(--theme)}.tl-year{color:var(--subtext0);padding-top:2px;font-size:12px}.tl-role{font-size:15px;font-weight:500}.tl-where{font-size:12px}.skills{border-top:1px dashed var(--surface0);margin-top:32px;padding-top:32px}.skill-groups{flex-direction:column;gap:20px;display:flex}.skill-group{grid-template-columns:180px 1fr;align-items:center;gap:24px;display:grid}.sg-label{color:var(--group-color,var(--subtext0));align-items:flex-start;gap:8px;font-size:11px;display:flex}.sg-label:before{content:"";background:var(--group-color);border-radius:50%;flex-shrink:0;width:5px;height:5px;margin-top:6px}.sg-tags{flex-wrap:wrap;gap:6px;display:flex}.tag{background:color-mix(in srgb, var(--group-color,var(--overlay0)) 13%, var(--surface0));color:color-mix(in srgb, var(--group-color,var(--subtext1)) 70%, var(--text));border:1px solid color-mix(in srgb, var(--group-color,transparent) 18%, transparent);border-radius:4px;padding:4px 10px;font-size:12px}.skills-secondary{border-top:1px solid color-mix(in srgb, var(--surface0) 60%, transparent);margin-top:28px;padding-top:20px}.skills-secondary .skill-groups{--group-color:var(--subtext0);gap:16px}.skills-secondary .section-sublabel{color:var(--subtext0);margin:0 0 16px}.side-projects{border-top:1px dashed var(--surface0);margin-top:32px;padding-top:32px}.sp-row{border-bottom:1px solid color-mix(in srgb, var(--surface0) 50%, transparent);grid-template-columns:180px 1fr;gap:24px;padding:14px 0;display:grid}.sp-row:last-child{border-bottom:none}.sp-name{color:var(--subtext0);padding-top:2px;font-size:13px}.sp-name a{color:var(--theme)}.sp-name a:hover{text-decoration:underline}.sp-name a span{transition:transform .2s;display:inline-block}.sp-name a:hover span{transform:translate(2px,-2px)}.sp-desc{color:var(--subtext1);font-size:14px;line-height:1.5}.sp-status{color:var(--subtext0);margin-top:6px;font-size:11px}.chat-shell{background:var(--mantle);border:1px solid var(--surface0);border-radius:16px;overflow:hidden}.chat-shell-simple{flex-direction:column;max-width:820px;min-height:560px;display:flex}.chat-scroller{flex-direction:column;flex:1;gap:14px;min-height:320px;padding:28px;display:flex;overflow-y:auto}.chat-suggestions{border-top:1px solid var(--surface0);flex-wrap:wrap;gap:8px;padding:12px 24px;display:flex}.suggestion{border:1px solid var(--surface0);color:var(--subtext1);border-radius:999px;padding:6px 12px;font-size:12px;transition:all .15s}.suggestion:hover{border-color:var(--theme);color:var(--theme);background:color-mix(in srgb, var(--theme) 8%, transparent)}.chat-input{border-top:1px solid var(--surface0);background:var(--crust);align-items:center;gap:10px;padding:16px 24px;display:flex}.chat-input input{color:var(--text);background:0 0;border:none;outline:none;flex:1;padding:8px 0;font-family:inherit;font-size:14px}.chat-input input::placeholder{color:var(--subtext0)}.chat-input input:disabled{opacity:.5;cursor:not-allowed}.chat-footnote{max-width:820px;margin:16px 0 0;font-size:11px;line-height:1.5}.chat-footnote a{color:var(--theme)}.chat-footnote a:hover{text-decoration:underline}.persona-grid{grid-template-columns:repeat(2,1fr);gap:16px;max-width:820px;display:grid}.persona-card{text-align:left;background:var(--mantle);border:1px solid var(--surface0);border-radius:14px;flex-direction:column;gap:6px;padding:22px;transition:border-color .15s,transform .15s,background .15s;display:flex}.persona-card:hover{border-color:color-mix(in srgb, var(--theme) 55%, transparent);background:color-mix(in srgb, var(--theme) 5%, var(--mantle));transform:translateY(-2px)}.persona-emoji{font-size:30px;line-height:1}.persona-name{letter-spacing:-.015em;align-items:center;gap:8px;font-size:19px;font-weight:600;display:flex}.persona-default{color:var(--theme);border:1px solid color-mix(in srgb, var(--theme) 40%, transparent);border-radius:999px;padding:2px 7px;font-size:10px}.persona-title{color:var(--theme);font-size:11px}.persona-blurb{color:var(--subtext1);margin-top:4px;font-size:14px;line-height:1.5}.persona-sample{color:var(--subtext0);margin-top:6px;font-size:13px;font-style:italic;line-height:1.45}.chat-persona-bar{border-bottom:1px solid var(--surface0);background:var(--crust);justify-content:space-between;align-items:center;gap:12px;padding:12px 20px;display:flex}.persona-chip{align-items:center;gap:8px;font-size:13px;font-weight:500;display:flex}.persona-chip .mono{font-size:11px}.persona-switch{color:var(--subtext0);border:1px solid var(--surface0);border-radius:6px;padding:5px 10px;font-size:11px;transition:all .15s}.persona-switch:hover{color:var(--theme);border-color:color-mix(in srgb, var(--theme) 45%, transparent)}.msg-av{background:0 0;font-size:14px}.chat-count{flex-shrink:0;font-size:11px}.suggestion:disabled{opacity:.45;cursor:not-allowed}.suggestion:disabled:hover{border-color:var(--surface0);color:var(--subtext1);background:0 0}.blog-tags{flex-wrap:wrap;gap:8px;margin-bottom:40px;display:flex}.blog-tag{color:var(--subtext0);border:1px solid var(--surface0);border-radius:999px;padding:6px 12px;font-size:12px}.blog-tag:hover{color:var(--tag-color);border-color:color-mix(in srgb, var(--tag-color) 45%, transparent)}.blog-tag.active{color:var(--tag-color);border-color:var(--tag-color);background:color-mix(in srgb, var(--tag-color) 12%, transparent)}.post-featured{background:color-mix(in srgb, var(--post-color) 5%, var(--mantle));border:1px solid color-mix(in srgb, var(--post-color) 20%, var(--surface0));border-radius:14px;margin-bottom:32px;padding:40px;position:relative;overflow:hidden}.post-featured:before{content:"";background:var(--post-color);width:3px;position:absolute;top:0;bottom:0;left:0}.post-card-link{display:block}.post-featured:focus-within{border-color:color-mix(in srgb, var(--post-color) 55%, var(--surface0))}.pf-meta{gap:14px;margin-bottom:16px;font-size:11px;display:flex}.pf-tag{color:var(--post-color)}.pf-title{letter-spacing:-.025em;margin:0 0 16px;font-size:36px;font-weight:600;line-height:1.1}.pf-excerpt{color:var(--subtext1);max-width:720px;margin:0 0 24px;font-size:16px;line-height:1.55}.pf-link{color:var(--post-color);cursor:pointer;font-size:12px}.pf-link span{transition:transform .2s;display:inline-block}.pf-link:hover span{transform:translate(4px)}.post-list{flex-direction:column;display:flex}.post-row{border-bottom:1px solid color-mix(in srgb, var(--surface0) 50%, transparent);cursor:pointer;grid-template-columns:140px 1fr 100px;gap:32px;padding:28px 0;transition:padding .2s;display:grid}.post-row:hover{background:color-mix(in srgb, var(--post-color) 4%, transparent);padding-left:14px}.post-row:hover .pr-arrow{color:var(--post-color);transform:translate(4px)}.post-row:hover .pr-title{color:var(--post-color)}.pr-date{padding-top:4px;font-size:12px}.pr-tag{color:var(--post-color);align-items:center;gap:7px;margin-bottom:6px;font-size:11px;display:inline-flex}.pr-tag:before{content:"";background:var(--post-color);border-radius:50%;width:5px;height:5px}.pr-title{letter-spacing:-.02em;margin:0 0 8px;font-size:22px;font-weight:600;transition:color .2s}.pr-excerpt{color:var(--subtext1);max-width:620px;margin:0;font-size:14px;line-height:1.5}.pr-read{text-align:right;padding-top:4px;font-size:11px}.pr-arrow{margin-left:6px;transition:all .2s;display:inline-block}.post-page{--post-color:var(--theme)}.post-page .section-label{color:var(--post-color)}.post-page .section-label:after{background:color-mix(in srgb, var(--post-color) 45%, transparent)}.post-back{color:var(--subtext0);margin-bottom:40px;font-size:12px;transition:color .15s;display:inline-block}.post-back:hover{color:var(--post-color)}.post-header{max-width:820px;margin-bottom:56px}.post-meta{align-items:center;gap:10px;font-size:12px;display:flex}.post-body{max-width:780px;font-size:17px;line-height:1.75}.post-body>:first-child{margin-top:0}.post-body>:last-child{margin-bottom:0}.post-body h2,.post-body h3,.post-body h4,.post-body h5,.post-body h6{color:var(--text);letter-spacing:-.02em;margin:2.4em 0 .7em;font-weight:600;line-height:1.25}.post-body h2{font-size:28px}.post-body h3{font-size:22px}.post-body h4{font-size:18px}.post-body h5{font-size:16px}.post-body h6{font-size:14px}.post-body p{margin:0 0 1.4em}.post-body strong{font-weight:650}.post-body em{color:inherit;font-weight:inherit}.post-body ul,.post-body ol{margin:0 0 1.4em;padding-left:1.5em}.post-body li+li{margin-top:.45em}.post-body li::marker{color:var(--post-color)}.post-body blockquote{color:var(--subtext1);background:color-mix(in srgb, var(--post-color) 4%, transparent);border-left:3px solid var(--post-color);border-radius:0 8px 8px 0;margin:2em 0;padding:16px 20px}.post-body blockquote>:last-child{margin-bottom:0}.post-body code{color:var(--peach);background:var(--mantle);border:1px solid var(--surface0);font-family:var(--font-mono);border-radius:4px;padding:.15em .4em;font-size:.88em}.post-body pre{border:1px solid var(--surface0);border-radius:10px;margin:2em 0;padding:20px;overflow-x:auto}.post-body pre code{color:inherit;background:0 0;border:0;padding:0}.post-body a{color:var(--post-color);text-decoration:underline;-webkit-text-decoration-color:color-mix(in srgb, var(--post-color) 45%, transparent);text-decoration-color:color-mix(in srgb, var(--post-color) 45%, transparent);text-underline-offset:3px}.post-body a:hover{-webkit-text-decoration-color:var(--post-color);text-decoration-color:var(--post-color)}.post-body img{border:1px solid var(--surface0);border-radius:10px;max-width:100%;height:auto;margin:2em auto;display:block}.post-body a>img{cursor:zoom-in}.post-body hr{border:0;border-top:1px solid color-mix(in srgb, var(--post-color) 35%, var(--surface0));margin:3em 0}.post-body table{border-collapse:collapse;width:max-content;max-width:100%;margin:2em 0;font-size:15px;display:block;overflow-x:auto}.post-body th,.post-body td{border:1px solid var(--surface0);padding:10px 14px}.post-body th{background:var(--mantle);text-align:left}.site-footer{padding:64px var(--pad-x) 32px;border-top:1px solid var(--surface0);background:var(--mantle);margin-top:96px}.footer-grid{max-width:var(--max-w);grid-template-columns:1fr 1fr 1.4fr;gap:48px;margin:0 auto;display:grid}.footer-label{margin-bottom:14px;font-size:11px}.footer-link{color:var(--subtext1);text-align:left;padding:4px 0;font-size:13px;transition:color .15s;display:block}.footer-link:hover{color:var(--accent)}.footer-note{color:var(--subtext1);margin:0;font-size:13px;line-height:1.55}.footer-rule{max-width:var(--max-w);border-top:1px dashed var(--surface0);margin:48px auto 16px}.footer-bottom{max-width:var(--max-w);justify-content:space-between;margin:0 auto;font-size:11px;display:flex}.widget-bubble-wrap{z-index:100;position:fixed;bottom:24px;right:24px}.widget-bubble{background:var(--surface0);border:1px solid var(--surface1);color:var(--text);border-radius:999px;align-items:center;gap:10px;padding:12px 18px 12px 12px;font-size:14px;font-weight:500;transition:all .2s;display:inline-flex;box-shadow:0 12px 30px -8px #00000080}.widget-bubble:hover{border-color:var(--accent);transform:translateY(-2px)}.bubble-av{background:var(--accent);width:28px;height:28px;color:var(--base);border-radius:50%;place-items:center;font-size:17px;font-weight:700;display:grid}.tweaks-panel{z-index:200;background:var(--crust);border:1px solid var(--surface0);border-radius:10px;width:280px;font-size:12px;position:fixed;bottom:24px;left:24px;box-shadow:0 20px 50px -15px #0009}.tweaks-head{border-bottom:1px solid var(--surface0);cursor:pointer;color:var(--accent);justify-content:space-between;padding:10px 14px;font-size:11px;display:flex}.tweaks-body{flex-direction:column;gap:16px;padding:14px;display:flex}.tweak-label{color:var(--subtext0);margin-bottom:8px;font-size:10px}.tweak-options{flex-direction:column;gap:4px;display:flex}.tweak-opt{text-align:left;color:var(--subtext1);border:1px solid #0000;border-radius:6px;padding:6px 10px;font-size:12px;transition:all .15s}.tweak-opt:hover{background:var(--surface0)}.tweak-opt.active{background:color-mix(in srgb, var(--accent) 15%, transparent);color:var(--accent);border-color:color-mix(in srgb, var(--accent) 40%, transparent)}.tweak-swatches{gap:6px;display:flex}.swatch{cursor:pointer;border:2px solid #0000;border-radius:50%;width:24px;height:24px;transition:all .15s}.swatch.active{border-color:var(--text);transform:scale(1.1)}@media (max-width:900px){:root{--pad-x:24px}.site-header{flex-wrap:wrap;gap:10px;padding-block:12px 10px;transition:transform .2s}.site-header.header-hidden{transform:translateY(-100%)}.site-header:has(:focus-visible){transform:translateY(0)}.site-header .brand{width:100%}.site-header .brand>.muted{display:none}.site-nav{grid-template-columns:repeat(4,minmax(0,1fr));gap:4px;width:100%;margin-left:0;display:grid}.nav-link{justify-content:center;gap:6px;padding:7px 6px;font-size:12px}.hero-split,.about-grid{grid-template-columns:1fr;gap:32px}.footer-grid{grid-template-columns:1fr 1fr}.post-row{grid-template-columns:1fr;gap:8px}.pr-date,.pr-read{display:none}.tl-row,.skill-group,.sp-row{grid-template-columns:100px 1fr;gap:16px}.route-card{grid-template-columns:40px 1fr;gap:16px;padding:28px 8px}.rc-arrow{display:none}.rc-title{font-size:24px}.persona-grid{grid-template-columns:1fr}}
