:root,[data-theme=dark]{--bg-page:#0b0d10;--bg-panel:#121519;--bg-sidebar:#0e1115;--bg-elev:#181c21;--bg-elev-2:#1f242a;--bg-hover:#1d2228;--bg-active:#232930;--border:#23272e;--border-strong:#303640;--border-soft:#1a1e23;--text:#e7e8eb;--text-2:#b6bac1;--muted:#7a7f87;--muted-2:#5a5f66;--accent:#7cc88f;--accent-hover:#95dba6;--accent-bg:rgba(124,200,143,.12);--accent-border:rgba(124,200,143,.45);--warn:#e7a55b;--danger:#ef6e6e;--syn-key:#ff8087;--syn-str:#8ab4f8;--syn-num:#e7a55b;--syn-fn:#d2a8ff;--syn-com:#6c7178;--syn-tag:#7cc88f;--syn-prop:#79c0ff;--icon-md:#79c0ff;--icon-json:#e7a55b;--icon-yaml:#ff8087;--icon-sh:#7cc88f;--icon-folder:#e7a55b;--shadow-1:0 1px 0 hsla(0,0%,100%,.03),0 0 0 1px rgba(0,0,0,.2);--shadow-2:0 12px 32px rgba(0,0,0,.4),0 2px 4px rgba(0,0,0,.3);--radius-sm:6px;--radius-md:10px;--radius-lg:14px;--font-mono:"JetBrains Mono","SF Mono",Menlo,Consolas,monospace;--tab-h:36px;--titlebar-h:38px;--statusbar-h:26px;--sidebar-w:240px}[data-theme=light]{--bg-page:#f7f5f0;--bg-panel:#fff;--bg-sidebar:#efece4;--bg-elev:#fff;--bg-elev-2:#f4f1ea;--bg-hover:#ece8de;--bg-active:#e2ddd0;--border:#d8d3c4;--border-strong:#b9b3a0;--border-soft:#e7e3d6;--text:#1c1f23;--text-2:#44484d;--muted:#7a7569;--muted-2:#9a9588;--accent:#2f8a48;--accent-hover:#246d39;--accent-bg:rgba(47,138,72,.1);--accent-border:rgba(47,138,72,.4);--warn:#b9651b;--danger:#b62528;--syn-key:#b62528;--syn-str:#0550ae;--syn-num:#953800;--syn-fn:#6639ba;--syn-com:#8a8678;--syn-tag:#2f8a48;--syn-prop:#0550ae;--icon-md:#0550ae;--icon-json:#b9651b;--icon-yaml:#b62528;--icon-sh:#2f8a48;--icon-folder:#b9651b;--shadow-1:0 1px 0 rgba(0,0,0,.04),0 0 0 1px rgba(0,0,0,.04);--shadow-2:0 12px 32px rgba(28,31,35,.1),0 2px 4px rgba(28,31,35,.06)}[data-accent=amber]{--accent:#e7a55b;--accent-hover:#f0bb7f;--accent-bg:rgba(231,165,91,.14);--accent-border:rgba(231,165,91,.5)}[data-theme=light][data-accent=amber]{--accent:#b9651b;--accent-hover:#93501a;--accent-bg:rgba(185,101,27,.1);--accent-border:rgba(185,101,27,.4)}[data-accent=blue]{--accent:#79b6ff;--accent-hover:#9ec8ff;--accent-bg:rgba(121,182,255,.14);--accent-border:rgba(121,182,255,.5)}[data-theme=light][data-accent=blue]{--accent:#0550ae;--accent-hover:#043e88;--accent-bg:rgba(5,80,174,.08);--accent-border:rgba(5,80,174,.4)}[data-accent=magenta]{--accent:#e886c5;--accent-hover:#f0a4d4;--accent-bg:rgba(232,134,197,.14);--accent-border:rgba(232,134,197,.5)}[data-theme=light][data-accent=magenta]{--accent:#a83a86;--accent-hover:#842c69;--accent-bg:rgba(168,58,134,.1);--accent-border:rgba(168,58,134,.4)}body,html{margin:0;padding:0}html{scroll-behavior:smooth}body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;-webkit-font-feature-settings:"calt" 1,"ss01" 1;font-feature-settings:"calt" 1,"ss01" 1;background:#0b0d10;background:var(--bg-page);color:#e7e8eb;color:var(--text);font-family:JetBrains Mono,SF Mono,Menlo,Consolas,monospace;font-family:var(--font-mono);font-size:14px;line-height:1.55}::selection{background:rgba(124,200,143,.12);background:var(--accent-bg);color:#e7e8eb;color:var(--text)}a{border-bottom:1px solid transparent;color:#7cc88f;color:var(--accent);text-decoration:none;transition:border-color .15s,color .15s}a:hover{border-bottom-color:currentColor;color:#95dba6;color:var(--accent-hover)}:focus-visible{border-radius:4px;outline:2px solid #7cc88f;outline:2px solid var(--accent);outline-offset:2px}.ide{background:var(--bg-page);display:grid;grid-template-rows:var(--titlebar-h) 1fr var(--statusbar-h);min-height:100vh}.titlebar{align-items:center;background:var(--bg-sidebar);border-bottom:1px solid var(--border);color:var(--text-2);display:flex;font-size:12px;gap:14px;padding:0 14px;-webkit-user-select:none;-ms-user-select:none;user-select:none}.lights{display:flex;gap:8px}.light{border:1px solid rgba(0,0,0,.15);border-radius:50%;height:12px;width:12px}.light.red{background:#ff5f57}.light.yellow{background:#febc2e}.light.green{background:#28c840}.tb-path{color:var(--muted);flex:1 1;letter-spacing:.02em;overflow:hidden;text-align:center;text-overflow:ellipsis;white-space:nowrap}.tb-path .branch{color:var(--accent)}.tb-path .dirty{color:var(--warn);margin-left:4px}.tb-actions{display:flex}.tb-actions,.tb-btn{align-items:center;gap:6px}.tb-btn{background:transparent;border:1px solid transparent;border-radius:var(--radius-sm);color:var(--text-2);cursor:pointer;display:inline-flex;font:inherit;font-size:11px;padding:4px 8px;transition:background .12s,color .12s,border-color .12s}.tb-btn:hover{background:var(--bg-hover);border-color:var(--border);color:var(--text)}.tb-btn[aria-pressed=true]{background:var(--bg-active);border-color:var(--border-strong);color:var(--text)}.menu-btn{background:transparent;border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text-2);cursor:pointer;display:none;font:inherit;padding:2px 8px}.ide-body{display:grid;grid-template-columns:var(--sidebar-w) 1fr;min-height:0}.sidebar{background:var(--bg-sidebar);border-right:1px solid var(--border);font-size:13px;overflow-y:auto;padding:10px 0 24px}.sidebar-section{align-items:center;color:var(--muted);display:flex;font-size:10.5px;gap:6px;letter-spacing:.1em;padding:12px 14px 6px;text-transform:uppercase}.sidebar-section-meta{color:var(--muted-2);font-size:10.5px;letter-spacing:0;margin-left:auto;text-transform:none}.sidebar-section .chev{color:var(--muted-2)}.tree{list-style:none;margin:0;padding:0}.tree li{line-height:1.2}.tree-item{align-items:center;background:transparent;border:none;color:var(--text-2);cursor:pointer;display:flex;font:inherit;gap:8px;padding:4px 14px;position:relative;text-align:left;transition:background .1s,color .1s;width:100%}.tree-item:hover{background:var(--bg-hover);color:var(--text)}.tree-item.is-active{background:var(--bg-active);color:var(--text)}.tree-item.is-active:before{background:var(--accent);bottom:0;content:"";left:0;position:absolute;top:0;width:2px}.tree-item .indent{display:inline-block;flex:none;width:14px}.tree-item .chev{color:var(--muted-2);flex:none;transition:-webkit-transform .15s;transition:transform .15s;transition:transform .15s,-webkit-transform .15s;width:12px}.tree-item.is-collapsed .chev{-webkit-transform:rotate(-90deg);transform:rotate(-90deg)}.fi{align-items:center;border-radius:3px;color:#0b0d10;display:inline-flex;flex:none;font-size:10px;font-weight:700;height:14px;justify-content:center;letter-spacing:-.05em;width:14px}.fi-md{background:var(--icon-md)}.fi-json{background:var(--icon-json)}.fi-yaml{background:var(--icon-yaml)}.fi-sh{background:var(--icon-sh)}.fi-folder{background:transparent;color:var(--icon-folder);font-size:12px}[data-theme=dark] .fi-json,[data-theme=dark] .fi-md,[data-theme=dark] .fi-sh,[data-theme=dark] .fi-yaml{color:#0b0d10}[data-theme=light] .fi-json,[data-theme=light] .fi-md,[data-theme=light] .fi-sh,[data-theme=light] .fi-yaml{color:#fff}.tree-name{flex:1 1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.tree-meta{color:var(--muted-2);font-size:10.5px}.sidebar-foot{border-top:1px solid var(--border-soft);color:var(--muted);font-size:11px;margin-top:14px;padding:10px 14px}.sidebar-foot a{color:var(--text-2)}.editor{background:var(--bg-panel);display:grid;grid-template-rows:var(--tab-h) 1fr;min-width:0}.tabbar{align-items:stretch;background:var(--bg-sidebar);border-bottom:1px solid var(--border);display:flex;overflow-x:auto;scrollbar-width:thin}.tabbar::-webkit-scrollbar{height:4px}.tabbar::-webkit-scrollbar-thumb{background:var(--border-strong)}.tab{align-items:center;background:transparent;border-right:1px solid var(--border);border-top:1px solid transparent;color:var(--muted);cursor:pointer;display:inline-flex;font:inherit;font-size:12px;gap:8px;height:var(--tab-h);padding:0 14px;position:relative;white-space:nowrap}.tab:hover{color:var(--text-2)}.tab.is-active{background:var(--bg-panel);border-top-color:var(--accent);color:var(--text)}.tab .x{border-radius:3px;color:var(--muted-2);font-size:14px;text-align:center;width:14px}.tab:hover .x{color:var(--text-2)}.viewport{overflow-y:auto;scroll-behavior:smooth}.file{border-bottom:1px solid var(--border);scroll-margin-top:calc(var(--titlebar-h) + var(--tab-h) + 8px)}.file-head{align-items:center;background:var(--bg-panel);border-bottom:1px solid var(--border-soft);color:var(--muted);display:flex;font-size:11.5px;gap:10px;padding:10px 22px;position:-webkit-sticky;position:sticky;top:0;z-index:4}.file-head .name{color:var(--text-2)}.file-head .badge{border:1px solid var(--border);border-radius:99px;color:var(--muted);font-size:10px;margin-left:auto;padding:2px 6px}.file-body{display:flex;padding:24px 22px 28px;position:relative}.gutter{align-self:stretch;border-right:1px solid var(--border-soft);color:var(--muted-2);flex:none;font-size:11.5px;line-height:1.7;margin-right:18px;padding-right:14px;text-align:right;-webkit-user-select:none;-ms-user-select:none;user-select:none;width:44px}.content{flex:1 1;font-size:14px;line-height:1.7;min-width:0}.tk-com{color:var(--syn-com);font-style:italic}.tk-key{color:var(--syn-key)}.tk-str{color:var(--syn-str)}.tk-num{color:var(--syn-num)}.tk-fn{color:var(--syn-fn)}.tk-tag{color:var(--syn-tag)}.tk-prop{color:var(--syn-prop)}.tk-pun{color:var(--text-2)}.tk-muted{color:var(--muted)}.md h1,.md h2,.md h3{font-weight:700;letter-spacing:-.01em;margin:0}.md h1{font-size:38px;line-height:1.1}.md h2{color:var(--text);font-size:22px;line-height:1.2}.md h2:before{color:var(--syn-key);content:"## "}.md h3{color:var(--text-2);font-size:16px}.md h3:before{color:var(--syn-key);content:"### "}.md h1:before{color:var(--syn-key);content:"# "}.md p{margin:10px 0}.md p,.md p.lead{color:var(--text)}.md p.lead{font-size:15px;max-width:70ch}.md ul{margin:8px 0;padding-left:20px}.md li{color:var(--text-2);margin:3px 0}.md li::marker{color:var(--accent)}.hero{grid-gap:6px;display:grid;gap:6px;grid-template-columns:1fr}.hero-prompt{align-items:baseline;display:flex;gap:8px;margin-bottom:6px}.prompt{color:var(--accent);font-weight:600;-webkit-user-select:none;-ms-user-select:none;user-select:none}.prompt:after{content:" "}.cmd{color:var(--text)}.cmd .flag{color:var(--syn-num)}.cmd .arg{color:var(--syn-str)}.cursor{-webkit-animation:blink 1.05s steps(2,jump-none) infinite;animation:blink 1.05s steps(2,jump-none) infinite;background:var(--text);display:inline-block;height:16px;margin-left:2px;vertical-align:-3px;width:9px}@-webkit-keyframes blink{50%{background:transparent}}@keyframes blink{50%{background:transparent}}.hero .name{font-size:clamp(40px,8vw,76px);font-weight:700;letter-spacing:-.025em;line-height:1.02;margin:10px 0 0}.hero .name .accent{color:var(--accent)}.tagline{color:var(--text-2);font-size:clamp(16px,2vw,19px);line-height:1.45;margin:8px 0 0;max-width:64ch}.hero-meta{color:var(--muted);display:flex;flex-wrap:wrap;font-size:12.5px;gap:8px 18px;margin-top:22px}.hero-meta .k{color:var(--syn-prop)}.hero-meta .v{color:var(--text-2);margin-left:6px}.hero-meta .accent-text{color:var(--accent)}.hero-cta{display:flex;flex-wrap:wrap;gap:10px;margin-top:26px}.btn{align-items:center;background:var(--bg-elev);border:1px solid var(--border-strong);border-radius:var(--radius-sm);cursor:pointer;display:inline-flex;font:inherit;font-size:13px;gap:8px;padding:9px 14px;text-decoration:none;transition:background .12s,border-color .12s,-webkit-transform .08s;transition:background .12s,border-color .12s,transform .08s;transition:background .12s,border-color .12s,transform .08s,-webkit-transform .08s}.btn,.btn:hover{color:var(--text)}.btn:hover{background:var(--bg-hover);border-color:var(--accent)}.btn:active{-webkit-transform:translateY(1px);transform:translateY(1px)}.btn .glyph,.btn.primary{color:var(--accent)}.btn.primary{background:var(--accent-bg);border-color:var(--accent-border)}.btn.primary:hover{background:var(--accent-bg);border-color:var(--accent-hover);color:var(--accent-hover)}.hero-divider{background:linear-gradient(to right,var(--border) 0,var(--border) 40%,transparent 100%);height:1px;margin:32px 0 22px}.hero-stats{grid-gap:14px;display:grid;gap:14px;grid-template-columns:repeat(4,1fr);margin:0 0 18px}@media (max-width:720px){.hero-stats{grid-template-columns:repeat(2,1fr)}}.hero-stat{background:var(--bg-elev);border:1px solid var(--border);border-radius:var(--radius-md);overflow:hidden;padding:16px 16px 14px;position:relative}.hero-stat:before{background:var(--accent);content:"";height:2px;left:0;position:absolute;top:0;width:24px}.hero-stat-v{color:var(--accent);font-size:30px;font-weight:700;letter-spacing:-.02em;line-height:1}.hero-stat-l{color:var(--muted);font-size:10.5px;letter-spacing:.08em;margin-top:8px;text-transform:uppercase}.hero-bio{color:var(--text);font-size:14.5px;line-height:1.65;margin:18px 0 6px;max-width:64ch}.hero-elsewhere{color:var(--muted);font-size:13px;margin:16px 0 0}.hero-elsewhere a{margin:0 2px}.gitlog{margin-top:10px;position:relative}.gitlog:before{background:linear-gradient(to bottom,var(--accent),var(--border-strong));bottom:6px;content:"";left:5.5px;position:absolute;top:6px;width:1.5px}.commit{padding:0 0 22px 28px;position:relative}.commit:before{background:var(--bg-panel);border:2px solid var(--border-strong);border-radius:50%;content:"";height:13px;left:0;position:absolute;top:6px;width:13px}.commit.is-head:before{background:var(--accent);border-color:var(--accent);box-shadow:0 0 0 4px var(--accent-bg)}.commit-head{align-items:baseline;display:flex;flex-wrap:wrap;font-size:13px;gap:8px}.commit-hash{color:var(--syn-num);font-weight:600}.commit-ref{background:var(--accent-bg);border:1px solid var(--accent-border);border-radius:4px;color:var(--accent);font-size:11px;padding:0 6px}.commit-title{font-size:18px;font-weight:600;letter-spacing:-.005em;margin:8px 0 2px}.commit-meta{color:var(--text-2);font-size:12.5px;margin-bottom:8px}.commit-meta .at{color:var(--accent)}.commit-headline{color:var(--text);font-size:13.5px;margin:4px 0 12px;max-width:64ch}.commit-metrics{display:flex;flex-wrap:wrap;gap:10px;margin:6px 0 12px}.metric-tile{background:var(--bg-elev);border:1px solid var(--border);border-radius:var(--radius-sm);min-width:110px;padding:8px 14px}.metric-v{color:var(--accent);font-size:22px;font-weight:700;letter-spacing:-.015em;line-height:1}.metric-l{color:var(--muted);font-size:10px;letter-spacing:.08em;margin-top:6px;text-transform:uppercase}.show-more{align-items:center;background:transparent;border:1px solid var(--border-soft);border-radius:var(--radius-sm);color:var(--muted);cursor:pointer;display:inline-flex;font:inherit;font-size:12px;gap:8px;margin-top:10px;padding:5px 12px;transition:border-color .15s,color .15s,background .15s}.show-more:hover{background:var(--bg-hover);border-color:var(--accent-border);color:var(--text)}.show-more .prompt{color:var(--accent);font-weight:600}.show-more .chev{color:var(--muted-2);display:inline-block;transition:-webkit-transform .2s;transition:transform .2s;transition:transform .2s,-webkit-transform .2s}.show-more .chev.is-open{color:var(--accent);-webkit-transform:rotate(90deg);transform:rotate(90deg)}.commit-bullets{-webkit-animation:bullets-in .25s ease-out;animation:bullets-in .25s ease-out;list-style:none;margin:8px 0 10px;padding:0}@-webkit-keyframes bullets-in{0%{opacity:0;-webkit-transform:translateY(-4px);transform:translateY(-4px)}to{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}}@keyframes bullets-in{0%{opacity:0;-webkit-transform:translateY(-4px);transform:translateY(-4px)}to{opacity:1;-webkit-transform:translateY(0);transform:translateY(0)}}.commit-bullets li{color:var(--text);font-size:13.5px;padding:4px 0 4px 18px;position:relative}.commit-bullets li:before{color:var(--accent);content:"+";font-weight:700;left:0;position:absolute;top:4px}.commit-bullets .num{background:var(--accent-bg);border-radius:3px;color:var(--accent);font-weight:700;padding:0 4px}.tags{display:flex;flex-wrap:wrap;gap:6px;margin-top:6px}.tag{align-items:center;background:var(--bg-elev);border:1px solid var(--border);border-radius:99px;color:var(--text-2);display:inline-flex;font-size:11.5px;padding:2px 8px}.commit-daterange{gap:4px;margin-left:auto}.commit-daterange,.date-range{align-items:stretch;display:inline-flex}.date-range{gap:6px}.date-block{-webkit-font-feature-settings:"tnum" 1;font-feature-settings:"tnum" 1;align-items:center;background:var(--bg-elev);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text-2);display:inline-flex;font-size:11px;gap:6px;line-height:1;padding:3px 8px;white-space:nowrap}.date-block.is-current{background:var(--accent-bg);border-color:var(--accent-border);color:var(--accent)}.date-block .cal-icon{color:var(--muted);flex:none;height:12px;width:12px}.date-block.is-current .cal-icon{color:var(--accent)}.date-block .db-month{font-size:11px;font-weight:600;letter-spacing:.04em}.date-block .db-year{color:var(--muted);font-size:11px}.date-block.is-current .db-year{color:var(--accent)}.db-arrow{align-items:center;color:var(--muted-2);display:inline-flex;font-size:11px;padding:0 1px}@media (max-width:720px){.commit-daterange{margin-left:0;margin-top:6px;width:100%}}.project{background:var(--bg-elev);border:1px solid var(--border);border-radius:var(--radius-md);margin-top:18px;overflow:hidden;transition:border-color .15s,-webkit-transform .15s;transition:border-color .15s,transform .15s;transition:border-color .15s,transform .15s,-webkit-transform .15s}.project:hover{border-color:var(--accent-border)}.project-head{align-items:center;background:var(--bg-elev-2);border-bottom:1px solid var(--border);color:var(--muted);display:flex;font-size:11.5px;gap:10px;padding:10px 16px}.project-head .filename{color:var(--text-2)}.project-head .badge{border:1px solid var(--border-strong);border-radius:99px;color:var(--muted);font-size:10.5px;margin-left:auto;padding:1px 8px}.project-body{grid-gap:24px;display:grid;gap:24px;grid-template-columns:1.4fr 1fr;padding:22px}@media (max-width:820px){.project-body{grid-template-columns:1fr}}.project-title{font-size:24px;font-weight:700;letter-spacing:-.01em;line-height:1.15}.project-stack{color:var(--muted);font-size:12.5px;margin:6px 0 12px}.project-stack .br{color:var(--syn-key)}.project-summary{color:var(--text);font-size:14px;line-height:1.6;margin:10px 0 4px;max-width:60ch}.project-bullets{list-style:none;margin:12px 0;padding:0}.project-bullets li{color:var(--text-2);font-size:13.5px;padding:3px 0 3px 16px;position:relative}.project-bullets li:before{color:var(--accent);content:"›";font-weight:700;left:0;position:absolute;top:3px}.project-links{display:flex;flex-wrap:wrap;gap:8px;margin-top:16px}.project-art{background:var(--bg-page);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text-2);display:flex;flex-direction:column;font-size:11.5px;justify-content:space-between;min-height:200px;overflow:hidden;padding:18px 14px}.project-art .art-title{color:var(--muted);font-size:10.5px;letter-spacing:.08em;margin-bottom:10px;text-transform:uppercase}.arch-svg{display:block;font-family:var(--font-mono);height:auto;margin:4px 0 6px;width:100%}.arch-node rect{fill:var(--bg-elev);stroke:var(--border-strong);stroke-width:1.2;transition:stroke .2s}.arch-node text{fill:var(--text);font-family:var(--font-mono);font-size:10.5px;font-weight:600}.arch-node text.sub{fill:var(--muted);font-size:9px;font-weight:400;letter-spacing:.04em}.arch-node-accent rect{fill:var(--accent-bg);stroke:var(--accent);-webkit-animation:arch-pulse 2.4s ease-in-out infinite;animation:arch-pulse 2.4s ease-in-out infinite}.arch-node-accent text{fill:var(--accent)}.arch-node-db rect{fill:var(--bg-elev-2);stroke:var(--syn-prop);stroke-width:1.2}.arch-node-db text{fill:var(--syn-prop)}@-webkit-keyframes arch-pulse{0%,to{stroke-opacity:1}50%{stroke-opacity:.45}}@keyframes arch-pulse{0%,to{stroke-opacity:1}50%{stroke-opacity:.45}}.arch-arrow{fill:none;stroke:var(--accent);stroke-width:1.4;stroke-dasharray:5 5;stroke-linecap:round;-webkit-animation:arch-flow 1.6s linear infinite;animation:arch-flow 1.6s linear infinite;opacity:.85}.arch-arrow.alt{stroke:var(--syn-prop);-webkit-animation-duration:2s;animation-duration:2s}@-webkit-keyframes arch-flow{to{stroke-dashoffset:-10}}@keyframes arch-flow{to{stroke-dashoffset:-10}}.arch-head{fill:var(--accent);stroke:none}.arch-head.alt{fill:var(--syn-prop)}.arch-label{fill:var(--muted);font-family:var(--font-mono);font-size:9px;letter-spacing:.06em;text-transform:uppercase}.arch-caption{color:var(--muted);font-size:11px;margin-top:8px;text-align:center}.projects-row{grid-gap:16px;display:grid;gap:16px;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));margin-top:18px}.project.compact{margin:0}.project.compact .project-body{gap:12px;grid-template-columns:1fr;padding:16px}.project.compact .project-title{font-size:17px}.project.compact .project-art{min-height:92px;padding:10px 12px}.project.compact .project-bullets{margin:6px 0}.project.compact .project-bullets li{font-size:12.5px;padding-left:14px}.skills-stack{display:flex;flex-direction:column;margin-top:14px}.skill-row{grid-gap:28px;border-top:1px solid var(--border-soft);display:grid;gap:28px;grid-template-columns:220px 1fr;padding:18px 0}.skill-row:first-child{border-top:1px solid var(--border)}.skill-row:last-child{border-bottom:1px solid var(--border-soft)}@media (max-width:720px){.skill-row{gap:10px;grid-template-columns:1fr}}.skill-row-side .skill-key{color:var(--muted);font-size:10.5px;font-weight:600;letter-spacing:.08em}.skill-row-headline{align-items:center;display:flex;gap:12px;margin-bottom:6px}.skill-row-title{display:flex;flex-direction:column;gap:0}.cat-icon{background:var(--bg-elev);border:1px solid var(--border-strong);border-radius:7px;color:var(--accent);flex:none;height:28px;padding:5px;transition:border-color .15s,color .15s,background .15s;width:28px}.skill-row:hover .cat-icon{background:var(--accent-bg);border-color:var(--accent-border)}.skill-row-side .skill-label{color:var(--text);font-size:22px;font-weight:700;letter-spacing:-.01em;line-height:1.05;margin:0}.skill-row-side .skill-note{color:var(--muted);font-size:12.5px;font-style:italic;line-height:1.5;max-width:28ch}.skill-row-main{align-self:center;display:flex;flex-direction:column;gap:10px}.skill-tier{display:flex;flex-wrap:wrap;gap:8px}.skill-tier-secondary{gap:6px}.skill-pill{align-items:center;background:var(--bg-elev);border:1px solid var(--border);border-radius:99px;color:var(--text-2);display:inline-flex;font-size:12.5px;padding:3px 12px;transition:border-color .15s,color .15s,background .15s;white-space:nowrap}.skill-pill:hover{border-color:var(--accent-border);color:var(--text)}.skill-tier-secondary .skill-pill{background:transparent;color:var(--muted);font-size:11.5px;padding:2px 10px}.skill-pill.is-primary{background:var(--accent-bg);border-color:var(--accent-border);color:var(--accent);font-size:13px;font-weight:600;padding:4px 14px}.skill-pill.is-primary:before{color:var(--accent);content:"›";margin-right:6px;opacity:.7}.skills-foot{border-top:1px dashed var(--border-soft);margin-top:24px;padding-top:16px}.creds-grid{grid-gap:18px;display:grid;gap:18px;grid-template-columns:1.1fr 1fr;margin-top:16px}@media (max-width:820px){.creds-grid{grid-template-columns:1fr}}.cred-card{background:var(--bg-elev);border:1px solid var(--border);border-radius:var(--radius-md);padding:20px 22px;position:relative}.cred-tag{color:var(--muted);font-family:var(--font-mono);font-size:11px;margin-bottom:8px}.cred-title{color:var(--text);font-size:17px;font-weight:700;letter-spacing:-.005em}.cred-sub{color:var(--text-2);font-size:12.5px;margin-top:2px}.cred-cgpa{align-items:baseline;display:flex;gap:6px;margin:14px 0}.cred-cgpa-v{color:var(--accent);font-size:44px;font-weight:700;letter-spacing:-.02em;line-height:1}.cred-cgpa-d{color:var(--muted-2);font-size:20px;font-weight:500}.cred-cgpa-l{color:var(--muted);font-size:10.5px;letter-spacing:.08em;margin-left:8px;text-transform:uppercase}.cred-coursework{display:flex;flex-wrap:wrap;gap:6px;margin-top:4px}.achievement{grid-gap:4px 16px;border-top:1px dashed var(--border-soft);display:grid;gap:4px 16px;grid-template-columns:-webkit-max-content 1fr;grid-template-columns:max-content 1fr;padding:12px 0}.achievement:first-of-type{border-top:none;padding-top:4px}.achievement-v{align-self:center;color:var(--accent);font-size:32px;font-weight:700;grid-row:1/3;letter-spacing:-.02em;line-height:1;min-width:64px}.achievement-l{color:var(--text);font-size:14px;font-weight:600}.achievement-sub{color:var(--muted);font-size:12px;line-height:1.5}.writing-head{align-items:center;display:flex;flex-wrap:wrap;gap:14px;justify-content:space-between;margin:8px 0 18px}.writing-title{color:var(--text);font-size:22px;font-weight:700;letter-spacing:-.01em}.writing-meta{color:var(--muted);font-size:12.5px;margin-top:2px}.writing-cat{border-bottom:1px dotted var(--accent-border);color:var(--accent)}.post-list{background:var(--border-soft);border-bottom:1px solid var(--border);border-top:1px solid var(--border);display:flex;flex-direction:column;gap:1px}.post-card{grid-gap:16px;align-items:start;background:var(--bg-panel);display:grid;gap:16px;grid-template-columns:32px 88px 1fr 24px;padding:18px 20px;text-decoration:none;transition:background .15s,padding-left .15s}.post-card,.post-card:hover{border-bottom:none;color:var(--text)}.post-card:hover{background:var(--bg-hover);padding-left:24px}.post-card:hover .post-arrow{color:var(--accent);-webkit-transform:translate(2px,-2px);transform:translate(2px,-2px)}.post-num{color:var(--muted-2);font-family:var(--font-mono);font-size:13px;letter-spacing:-.03em;padding-top:4px}.post-body{min-width:0}.post-title{color:var(--text);font-size:18px;font-weight:700;letter-spacing:-.005em;line-height:1.25}.post-card:hover .post-title{color:var(--accent)}.post-sub{-webkit-line-clamp:2;-webkit-box-orient:vertical;color:var(--text-2);display:-webkit-box;font-size:13px;line-height:1.5;margin-top:6px;max-width:70ch;overflow:hidden}.post-foot{align-items:center;display:flex;flex-wrap:wrap;font-size:11.5px;gap:8px;margin-top:10px}.post-foot,.post-foot .post-date,.post-foot .post-read{color:var(--muted)}.post-foot .post-tag{background:var(--accent-bg);border:1px solid var(--accent-border);border-radius:99px;color:var(--accent);font-size:10.5px;letter-spacing:.04em;padding:1px 8px}.post-foot .post-dot{color:var(--muted-2)}.post-foot .post-likes{align-items:center;color:var(--muted);display:inline-flex;gap:4px;margin-left:auto}.post-foot .like-glyph{color:var(--danger);font-size:12px}.post-arrow{color:var(--muted-2);font-size:16px;padding-top:2px;transition:color .15s,-webkit-transform .15s;transition:color .15s,transform .15s;transition:color .15s,transform .15s,-webkit-transform .15s}.post-foot-link{font-size:13px;margin-top:16px}.post-foot-link a{color:var(--accent)}.post-thumb{background:var(--bg-elev);border:1px solid var(--border);border-radius:8px;flex:none;height:88px;overflow:hidden;position:relative;transition:border-color .2s,-webkit-transform .2s;transition:transform .2s,border-color .2s;transition:transform .2s,border-color .2s,-webkit-transform .2s;width:88px}.post-thumb img,.post-thumb svg{display:block;height:100%;object-fit:cover;width:100%}.post-thumb .thumb-initials{-webkit-font-feature-settings:"ss01" 1;font-feature-settings:"ss01" 1;font-family:var(--font-mono);font-size:38px;font-weight:700;letter-spacing:-.04em}.post-card:hover .post-thumb{border-color:var(--accent-border);-webkit-transform:translateY(-1px);transform:translateY(-1px)}@media (max-width:760px){.post-card{grid-template-columns:28px 64px 1fr}.post-thumb{height:64px;width:64px}.post-thumb .thumb-initials{font-size:28px}}@media (max-width:540px){.post-card{gap:12px;grid-template-columns:56px 1fr;padding:12px 14px}.post-num{display:none}.post-thumb{height:56px;width:56px}.post-thumb .thumb-initials{font-size:22px}.post-arrow{display:none}.post-foot .post-likes{margin-left:0}}.contact{margin-top:8px}.contact .big-email{border-bottom:2px solid var(--accent);color:var(--text);display:inline-block;font-size:clamp(28px,5vw,50px);font-weight:700;letter-spacing:-.02em;margin:16px 0 18px;padding-bottom:4px;word-break:break-all}.contact .big-email:hover{color:var(--accent)}.contact .links{display:flex;flex-wrap:wrap;gap:10px;margin-top:8px}.contact .exit{color:var(--muted);font-size:12px;margin-top:32px}.contact .exit .ok{color:var(--accent)}.statusbar{align-items:center;background:var(--accent);border-top:1px solid var(--border);color:#0b0d10;display:flex;font-size:11.5px;font-weight:500;gap:16px;padding:0 14px}[data-theme=light] .statusbar{color:#fff}.statusbar .sep{opacity:.4}.statusbar .spacer{flex:1 1}.statusbar .item{align-items:center;display:inline-flex;gap:6px}.statusbar .item .icn{opacity:.85}.scrim{background:rgba(0,0,0,.5);inset:var(--titlebar-h) 0 var(--statusbar-h) 0;opacity:0;pointer-events:none;position:fixed;transition:opacity .2s;z-index:25}.scrim.is-open{opacity:1;pointer-events:auto}@media (min-width:761px){.scrim{display:none}}@media (max-width:760px){:root{--sidebar-w:240px}.menu-btn{align-items:center;display:inline-flex;gap:6px}.ide-body{grid-template-columns:1fr}.sidebar{bottom:var(--statusbar-h);box-shadow:var(--shadow-2);left:0;position:fixed;top:var(--titlebar-h);-webkit-transform:translateX(-100%);transform:translateX(-100%);transition:-webkit-transform .22s ease;transition:transform .22s ease;transition:transform .22s ease,-webkit-transform .22s ease;width:var(--sidebar-w);z-index:30}.sidebar.is-open{-webkit-transform:translateX(0);transform:translateX(0)}.tb-actions .label{display:none}.file-body{padding:18px 14px 36px}.gutter{display:none}.hero .name{font-size:38px}.statusbar .hide-sm{display:none}.commit-date{margin-left:0;width:100%}}@media (max-width:480px){.tb-path{display:none}.file-head{padding:8px 14px}.file-head .badge{display:none}}[data-density=compact] .file-body{padding-bottom:32px;padding-top:18px}[data-density=compact] .commit{padding-bottom:14px}[data-density=compact] .project-body{padding:16px}[data-density=compact] .md p{margin:6px 0}.sidebar::-webkit-scrollbar,.viewport::-webkit-scrollbar{width:10px}.sidebar::-webkit-scrollbar-thumb,.viewport::-webkit-scrollbar-thumb{background:var(--border-strong);border:2px solid var(--bg-panel);border-radius:8px}.sidebar::-webkit-scrollbar-thumb{border-color:var(--bg-sidebar)}.twk-fab{align-items:center;background:var(--bg-elev);border:1px solid var(--border-strong);border-radius:50%;bottom:calc(var(--statusbar-h) + 12px);box-shadow:var(--shadow-2);color:var(--text);cursor:pointer;display:inline-flex;font-size:16px;height:36px;justify-content:center;position:fixed;right:16px;transition:border-color .15s,color .15s;width:36px;z-index:50}.twk-fab:hover{border-color:var(--accent);color:var(--accent)}.twk-panel{background:var(--bg-elev);border:1px solid var(--border-strong);border-radius:var(--radius-md);bottom:calc(var(--statusbar-h) + 60px);box-shadow:var(--shadow-2);display:flex;flex-direction:column;gap:12px;padding:12px;position:fixed;right:16px;width:260px;z-index:49}.twk-panel h4{color:var(--muted);font-size:10.5px;letter-spacing:.08em;margin:0;text-transform:uppercase}.twk-row{display:flex;flex-direction:column;gap:6px}.twk-row-h{align-items:center;display:flex;gap:10px;justify-content:space-between}.twk-label{color:var(--text-2);font-size:12px}.twk-seg{border:1px solid var(--border);border-radius:var(--radius-sm);display:flex;overflow:hidden}.twk-seg button{background:transparent;border:0;color:var(--text-2);cursor:pointer;flex:1 1;font:inherit;font-size:11.5px;padding:5px 8px;text-transform:capitalize}.twk-seg button:hover{background:var(--bg-hover);color:var(--text)}.twk-seg button[aria-checked=true]{background:var(--accent-bg);color:var(--accent)}.twk-swatches{display:flex;gap:6px}.twk-swatch{border:2px solid transparent;border-radius:50%;cursor:pointer;height:26px;padding:0;width:26px}.twk-swatch[aria-pressed=true]{border-color:var(--text)}.twk-toggle{background:var(--border-strong);border:0;border-radius:999px;cursor:pointer;height:18px;padding:0;position:relative;transition:background .15s;width:32px}.twk-toggle[aria-pressed=true]{background:var(--accent)}.twk-toggle i{background:#fff;border-radius:50%;height:14px;left:2px;position:absolute;top:2px;transition:-webkit-transform .15s;transition:transform .15s;transition:transform .15s,-webkit-transform .15s;width:14px}.twk-toggle[aria-pressed=true] i{-webkit-transform:translateX(14px);transform:translateX(14px)}*,:after,:before{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:rgba(59,130,246,.5);--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }::-webkit-backdrop{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:rgba(59,130,246,.5);--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }::backdrop{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:rgba(59,130,246,.5);--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }/*
! tailwindcss v3.4.19 | MIT License | https://tailwindcss.com
*/*,:after,:before{border:0 solid #e5e7eb;box-sizing:border-box}:after,:before{--tw-content:""}:host,html{-webkit-text-size-adjust:100%;-webkit-font-feature-settings:normal;font-feature-settings:normal;-webkit-tap-highlight-color:transparent;font-family:ui-sans-serif,system-ui,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;font-variation-settings:normal;line-height:1.5;tab-size:4}body{line-height:inherit;margin:0}hr{border-top-width:1px;color:inherit;height:0}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,pre,samp{-webkit-font-feature-settings:normal;font-feature-settings:normal;font-family:JetBrains Mono,SF Mono,Menlo,Consolas,ui-monospace,monospace;font-size:1em;font-variation-settings:normal}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{border-collapse:collapse;border-color:inherit;text-indent:0}button,input,optgroup,select,textarea{-webkit-font-feature-settings:inherit;font-feature-settings:inherit;color:inherit;font-family:inherit;font-size:100%;font-variation-settings:inherit;font-weight:inherit;letter-spacing:inherit;line-height:inherit;margin:0;padding:0}button,select{text-transform:none}button,input:where([type=button]),input:where([type=reset]),input:where([type=submit]){-webkit-appearance:button;background-color:transparent;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dd,dl,figure,h1,h2,h3,h4,h5,h6,hr,p,pre{margin:0}fieldset{margin:0}fieldset,legend{padding:0}menu,ol,ul{list-style:none;margin:0;padding:0}dialog{padding:0}textarea{resize:vertical}input::-webkit-input-placeholder,textarea::-webkit-input-placeholder{color:#9ca3af;opacity:1}input:-ms-input-placeholder,textarea:-ms-input-placeholder{color:#9ca3af;opacity:1}input::placeholder,textarea::placeholder{color:#9ca3af;opacity:1}[role=button],button{cursor:pointer}:disabled{cursor:default}audio,canvas,embed,iframe,img,object,svg,video{display:block;vertical-align:middle}img,video{height:auto;max-width:100%}[hidden]:where(:not([hidden=until-found])){display:none}.block{display:block}.inline-block{display:inline-block}.inline{display:inline}.grid{display:grid}.accent-text{accent-color:var(--text)}.filter{-webkit-filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow);filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}
/*# sourceMappingURL=main.ccbf492c.css.map*/