.dot-grid{justify-content:center;align-items:center;width:100%;height:100%;display:flex;position:relative}.dot-grid__wrap{width:100%;height:100%;position:relative}.dot-grid__canvas{pointer-events:none;width:100%;height:100%;position:absolute;inset:0}.text-type{white-space:pre-wrap;display:inline-block}.text-type__cursor{opacity:1;margin-left:.25rem;display:inline-block}.text-type__cursor--hidden{display:none}.card-spotlight{--mouse-x:50%;--mouse-y:50%;--spotlight-color:#ffffff0d;background-color:#111;border:1px solid #222;border-radius:1.5rem;padding:2rem;position:relative;overflow:hidden}.card-spotlight:before{content:"";background:radial-gradient(circle at var(--mouse-x) var(--mouse-y), var(--spotlight-color), transparent 80%);opacity:0;pointer-events:none;transition:opacity .5s;position:absolute;inset:0}.card-spotlight:hover:before,.card-spotlight:focus-within:before{opacity:.6}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:100 800;font-display:swap;src:url(/fonts/jetbrains-mono-latin.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;font-style:italic;font-weight:100 800;font-display:swap;src:url(/fonts/jetbrains-mono-latin-italic.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}:root{--bg:#0d1117;--panel:#010409;--side:#0b0f15;--activity:#080b10;--line:#1c2433;--line2:#283042;--txt:#c9d1d9;--mut:#8b949e;--faint:#4b5563;--gutter:#3b434f;--com:#7b8595;--key:#ff7b72;--fn:#d2a8ff;--str:#a5d6ff;--num:#79c0ff;--prop:#79c0ff;--tag:#7ee787;--pun:#8b949e;--accent:#2f81f7;--accent2:#58a6ff;--accent-strong:#1f6feb;--green:#3fb950;--amber:#d29922;--red:#f85149;--gut-w:60px;--side-w:244px;--act-w:52px;--title-h:36px;--tabs-h:40px;--status-h:26px;--mono:"JetBrains Mono", ui-monospace, SFMono-Regular, monospace;--ease:cubic-bezier(.23, 1, .32, 1);--ease-soft:cubic-bezier(.32, .72, 0, 1);--shadow-1:0 1px 2px #01040966;--shadow-2:0 8px 24px -6px #01040980, 0 2px 6px #01040959;--shadow-3:0 24px 60px -12px #01040999, 0 6px 16px #01040966;--edge:inset 0 1px 0 #ffffff0b;--hair:color-mix(in oklch, var(--line2) 70%, transparent)}html[data-theme=dim]{--bg:#161b22;--side:#10151c;--panel:#0d1117;--activity:#0d1117;--line:#222a35}html[data-theme=paper]{--bg:#f6f3ec;--panel:#e9e4d8;--side:#efeade;--activity:#e4dece;--line:#d6cfbe;--line2:#cabfa8;--txt:#1f2328;--mut:#6b665c;--faint:#7a746a;--gutter:#b3ab9b;--com:#6e6a60;--key:#cf222e;--fn:#8250df;--str:#0a7c5a;--num:#0550ae;--prop:#0550ae;--tag:#116329;--pun:#6b665c;--accent:#b0421f;--accent2:#9a3a22;--accent-strong:#b0421f;--amber:#7e5200;--green:#0f6b32}*{box-sizing:border-box}html{background:var(--panel)}html,body{min-height:100%}body{background:var(--panel);color:var(--txt);font-family:var(--mono);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizelegibility;margin:0;font-size:15px;line-height:1.6}::selection{background:color-mix(in oklch, var(--accent) 38%, transparent)}a{color:inherit;text-decoration:none}body::-webkit-scrollbar{width:14px}body::-webkit-scrollbar-thumb{background:var(--line2);border:4px solid var(--panel);border-radius:8px}body::-webkit-scrollbar-thumb:hover{background:#39414f}:focus-visible{outline:2px solid var(--accent2);outline-offset:2px}.editor:focus-visible{outline:none}.skip-link{z-index:300;background:var(--accent-strong);color:#fff;font-size:13px;font-family:var(--mono);box-shadow:var(--shadow-2);transition:transform .18s var(--ease);border-radius:8px;padding:9px 14px;position:fixed;top:8px;left:8px;transform:translateY(-150%)}.skip-link:focus-visible{outline-offset:2px;outline:2px solid #fff;transform:translateY(0)}.titlebar{height:var(--title-h);z-index:60;background:var(--panel);border-bottom:1px solid var(--line);color:var(--mut);align-items:center;gap:14px;padding:0 14px;font-size:12px;display:flex;position:fixed;top:0;left:0;right:0}.lights{gap:8px;display:flex}.lights i{border-radius:50%;width:12px;height:12px;display:block}.lights .r{background:#ff5f57}.lights .y{background:#febc2e}.lights .g{background:#28c840}.titlebar .crumb{letter-spacing:.02em;margin-left:6px}.titlebar .crumb b{color:var(--txt);font-weight:500}.titlebar .right{align-items:center;gap:16px;margin-left:auto;display:flex}.titlebar .right span{opacity:.8}.kbd-hint{border:1px solid var(--line2);color:var(--mut);cursor:pointer;border-radius:5px;padding:2px 8px;font-size:11px;transition:all .15s}.kbd-hint:hover{color:var(--txt);border-color:var(--accent)}.activity{top:var(--title-h);left:0;bottom:var(--status-h);width:var(--act-w);z-index:55;background:var(--activity);border-right:1px solid var(--line);flex-direction:column;align-items:center;gap:4px;padding:12px 0;display:flex;position:fixed}.activity .ico{width:40px;height:40px;color:var(--faint);cursor:pointer;border-left:2px solid #0000;place-items:center;transition:color .15s;display:grid}.activity .ico:hover{color:var(--mut)}.activity .ico.on{color:var(--txt);border-left-color:var(--accent)}.activity .ico svg{width:22px;height:22px}.activity .spacer{flex:1}.tabbar{top:var(--title-h);left:var(--act-w);height:var(--tabs-h);z-index:50;background:var(--panel);border-bottom:1px solid var(--line);scrollbar-width:none;align-items:stretch;display:flex;position:fixed;right:0;overflow-x:auto}.tabbar::-webkit-scrollbar{display:none}.tab{color:var(--mut);border-right:1px solid var(--line);white-space:nowrap;cursor:pointer;align-items:center;gap:8px;padding:0 14px;font-size:12.5px;transition:background .15s,color .15s;display:flex;position:relative}.tab:hover{color:var(--txt)}.tab.on{background:var(--bg);color:var(--txt)}.tab.on:before{content:"";background:var(--accent);height:2px;position:absolute;top:0;left:0;right:0}.tab .ext{color:var(--accent2)}.tab .close{opacity:.4;font-size:14px}.tab:hover .close{opacity:.9}.fkind{letter-spacing:.02em;color:#0d1117;border-radius:3px;flex:none;place-items:center;width:20px;height:16px;font-size:9px;font-weight:700;display:inline-grid}.fkind.fk-ts{background:#58a6ff}.fkind.fk-json{background:#d29922}.fkind.fk-md{background:#79c0ff}.fkind.fk-x{background:#8b949e}.exp-file .fi .fkind{width:22px;height:17px;font-size:9.5px}.explorer{top:calc(var(--title-h) + var(--tabs-h));left:var(--act-w);bottom:var(--status-h);width:var(--side-w);z-index:45;background:var(--side);border-right:1px solid var(--line);padding:10px 0;font-size:13px;position:fixed;overflow-y:auto}.explorer::-webkit-scrollbar{width:10px}.explorer::-webkit-scrollbar-thumb{background:var(--line2);border-radius:6px}.exp-group{color:var(--mut);letter-spacing:.08em;text-transform:uppercase;cursor:default;-webkit-user-select:none;user-select:none;align-items:center;gap:6px;padding:6px 12px 6px 10px;font-size:11px;display:flex}.exp-group .chev{transition:transform .2s}.exp-file{color:var(--mut);cursor:pointer;align-items:center;gap:9px;padding:5px 12px 5px 26px;transition:background .12s,color .12s;display:flex;position:relative}.exp-file:hover{color:var(--txt);background:#ffffff09}.exp-file.sel{background:color-mix(in oklch, var(--accent) 16%, transparent);color:var(--txt)}.exp-file.sel:before{content:"";background:var(--accent);width:2px;position:absolute;top:0;bottom:0;left:0}.exp-file .fi{text-align:center;opacity:.9;flex:none;width:15px}.exp-file .badge{color:var(--green);margin-left:auto;font-size:10px}.exp-file.ext-link .fi{color:var(--accent2)}.editor{margin:calc(var(--title-h) + var(--tabs-h)) 0 var(--status-h) calc(var(--act-w) + var(--side-w));background:var(--bg);min-height:calc(100vh - var(--title-h) - var(--tabs-h) - var(--status-h));position:relative}.canvas-bg{z-index:0;pointer-events:none;opacity:.32;position:fixed;inset:0}.canvas-bg .dot-grid{position:absolute;inset:0}.doc{grid-template-columns:var(--gut-w) 1fr;min-height:calc(100vh - var(--title-h) - var(--tabs-h) - var(--status-h));z-index:1;align-items:start;display:grid;position:relative}.gutter{text-align:right;color:var(--gutter);-webkit-user-select:none;user-select:none;border-right:1px solid color-mix(in oklch, var(--line) 60%, transparent);padding-top:28px;font-size:13px;line-height:28px;position:relative}.gutter b{padding-right:16px;font-weight:400;display:block}.content{min-width:0;padding:28px 0 120px}.mobile-links{display:none}@media (prefers-reduced-motion:no-preference){.page-fade{animation:jk-fade-in .32s var(--ease) both}}@keyframes jk-fade-in{0%{opacity:0;filter:blur(6px);transform:translateY(8px)}}.codeline{white-space:pre-wrap;padding:0 40px;line-height:28px}.com{color:var(--com);font-style:italic}.key{color:var(--key)}.fn{color:var(--fn)}.str{color:var(--str)}.num{color:var(--num)}.prop{color:var(--prop)}.tag{color:var(--tag)}.pun{color:var(--pun)}.mut{color:var(--mut)}.caret{background:var(--accent2);vertical-align:-3px;width:8px;height:18px;animation:1.05s step-end infinite blink;display:inline-block}@keyframes blink{50%{opacity:0}}.role .text-type__cursor{color:var(--accent2);margin-left:1px;font-weight:400}.block{max-width:980px;padding:0 40px;position:relative}.lead-com{color:var(--com);font-size:14px;font-style:italic;line-height:28px}h1.big{letter-spacing:-.045em;color:var(--txt);text-wrap:balance;margin:6px 0 0;font-size:clamp(40px,6vw,76px);font-weight:800;line-height:.96}.role{color:var(--str);letter-spacing:-.01em;margin:18px 0 0;font-size:clamp(16px,2vw,21px)}.tagline{color:var(--mut);text-wrap:pretty;max-width:62ch;margin:22px 0 0;font-size:16px;line-height:1.78}@media (width>=2200px){.block{max-width:1320px}}@media (width>=3000px){.block{max-width:1600px}}.split-parent{display:block!important}h1.big.split-parent{line-height:.98}.btns{flex-wrap:wrap;gap:12px;margin-top:34px;display:flex}.btn{font-size:13.5px;font-family:var(--mono);border:1px solid var(--hair);color:var(--txt);cursor:pointer;box-shadow:var(--edge);transition:transform .18s var(--ease), border-color .18s var(--ease), background .18s var(--ease), box-shadow .25s var(--ease);background:#ffffff05;border-radius:10px;align-items:center;gap:9px;padding:11px 16px 11px 18px;display:inline-flex}.btn:hover{border-color:color-mix(in oklch, var(--accent) 60%, var(--line2));background:color-mix(in oklch, var(--accent) 12%, transparent)}.btn.primary{background:var(--accent-strong);color:#fff;box-shadow:var(--shadow-1), inset 0 1px 0 #ffffff2e;border-color:#0000}.btn.primary:hover{background:var(--accent-strong)}.btn-gh{flex:none;width:16px;height:16px;margin-right:-1px}.btn .arr{background:color-mix(in oklch, currentColor 13%, transparent);width:20px;height:20px;transition:transform .2s var(--ease), background .2s var(--ease);border-radius:999px;place-items:center;margin:-3px -6px -3px 1px;font-size:12px;line-height:1;display:inline-grid}@media (hover:hover) and (pointer:fine){.btn:hover{box-shadow:var(--shadow-2);transform:translateY(-1px)}.btn.primary:hover{box-shadow:var(--shadow-2), inset 0 1px 0 #ffffff2e}.btn:hover .arr{background:color-mix(in oklch, currentColor 22%, transparent);transform:translate(2px,-1px)}}.btn:active{transition-duration:.1s;transform:scale(.97)}.sec-head{margin:88px 0 30px}.sec-head .ln{color:var(--com);letter-spacing:.01em;font-size:13px;font-style:italic}.sec-head h2{letter-spacing:-.03em;text-wrap:balance;margin:8px 0 0;font-size:clamp(24px,3vw,34px);font-weight:700}.sec-head h2 .pun{font-weight:400}.statusbar{height:var(--status-h);z-index:60;background:var(--accent-strong);color:#fff;box-sizing:content-box;padding:0;padding-bottom:env(safe-area-inset-bottom,0px);align-items:center;gap:0;font-size:11.5px;display:flex;position:fixed;bottom:0;left:0;right:0;transform:translateZ(0)}.statusbar .seg{align-items:center;gap:6px;height:100%;padding:0 10px;display:flex}.statusbar .seg.click{cursor:pointer;transition:background .15s}.statusbar .seg.click:hover{background:#ffffff29}.statusbar .grow{margin-left:auto}.statusbar svg{width:13px;height:13px}.palette-scrim{z-index:200;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);background:#0104098c;justify-content:center;align-items:flex-start;padding-top:12vh;display:none;position:fixed;inset:0}.palette-scrim.open{display:flex}.palette{background:var(--side);border:1px solid var(--line2);width:min(620px,92vw);animation:popin .18s var(--ease);border-radius:12px;overflow:hidden;box-shadow:0 24px 70px #0009}@keyframes popin{0%{opacity:0;transform:translateY(-8px)scale(.99)}}.palette input{width:100%;color:var(--txt);font-family:var(--mono);border:0;border-bottom:1px solid var(--line);background:0 0;outline:none;padding:16px 18px;font-size:15px}.palette .results{max-height:320px;padding:6px;overflow-y:auto}.palette .pr{cursor:pointer;color:var(--mut);border-radius:8px;align-items:center;gap:12px;padding:11px 12px;font-size:13.5px;display:flex}.palette .pr .fi{text-align:center;width:16px}.palette .pr .desc{color:var(--com);margin-left:auto;font-size:11.5px}.palette .pr.active,.palette .pr:hover{background:color-mix(in oklch, var(--accent) 18%, transparent);color:var(--txt)}#tweaks{z-index:180;background:var(--side);border:1px solid var(--line2);border-radius:12px;width:250px;font-size:12.5px;display:none;position:fixed;bottom:40px;right:16px;overflow:hidden;box-shadow:0 18px 50px #00000080}#tweaks.show{display:block}#tweaks .tw-hd{border-bottom:1px solid var(--line);color:var(--txt);justify-content:space-between;align-items:center;padding:11px 14px;font-weight:500;display:flex}#tweaks .tw-hd .x{cursor:pointer;color:var(--mut)}#tweaks .tw-body{flex-direction:column;gap:14px;padding:12px 14px;display:flex}#tweaks .tw-row .lbl{color:var(--mut);letter-spacing:.04em;margin-bottom:8px}#tweaks .seg-ctl{gap:6px;display:flex}#tweaks .seg-ctl button{border:1px solid var(--line2);color:var(--mut);font-family:var(--mono);cursor:pointer;background:0 0;border-radius:7px;flex:1;padding:7px 4px;font-size:11.5px;transition:all .15s}#tweaks .seg-ctl button.on{background:var(--accent-strong);border-color:var(--accent-strong);color:#fff}#tweaks .swatches{gap:8px;display:flex}#tweaks .swatches button{cursor:pointer;border:2px solid #0000;border-radius:8px;width:30px;height:30px}#tweaks .swatches button.on{border-color:var(--txt)}.card{border:1px solid var(--hair);background:color-mix(in oklch, var(--bg) 72%, #000 7%);box-shadow:var(--edge), var(--shadow-1);transition:border-color .25s var(--ease), transform .3s var(--ease), box-shadow .3s var(--ease);border-radius:14px;overflow:hidden}.card:hover{border-color:var(--line2)}.card-spotlight{--spotlight-color:color-mix(in oklch, var(--accent) 30%, transparent);background:0 0;border:0;border-radius:12px;padding:0}.ilink{color:var(--accent2);border-bottom:1px solid color-mix(in oklch, var(--accent2) 45%, transparent);padding-bottom:1px}.ilink:hover{border-color:var(--accent2)}.hero{padding-top:18px}.hero-grid{grid-template-columns:1fr auto;align-items:start;gap:40px;display:grid}.hero-aside{padding-top:56px}.avatar-frame{border:1px solid var(--line2);background:color-mix(in oklch, var(--bg) 60%, #000 8%);border-radius:14px;overflow:hidden;box-shadow:0 18px 44px #0006}.avatar-frame img{object-fit:cover;width:220px;height:220px;display:block}.avatar-cap{color:var(--mut);border-top:1px solid var(--line);align-items:center;gap:7px;padding:8px 12px;font-size:11.5px;display:flex}.avatar-cap .g{color:var(--green);font-size:9px}.typed{color:var(--str)}@media (width<=1024px){.hero-grid{grid-template-columns:1fr}.hero-aside{order:-1;padding-top:8px}.avatar-frame{width:max-content}.avatar-frame img{width:150px;height:150px}}.nexus-card{grid-template-columns:1fr 200px;gap:0;text-decoration:none;display:grid}.nexus-card:hover{border-color:var(--accent);transform:translateY(-2px)}.nexus-info{gap:22px;padding:26px 28px;display:flex}.nexus-mark{flex:none;place-items:center;width:60px;height:60px;display:grid}.nexus-mark img{border-radius:14px;width:60px;height:60px;display:block}.nexus-name{color:var(--txt);flex-wrap:wrap;align-items:baseline;gap:12px;font-size:22px;font-weight:700;display:flex}.ext-host{color:var(--accent2);font-size:12px;font-weight:400}.nexus-desc{color:var(--mut);max-width:56ch;margin:12px 0 16px;font-size:14px;line-height:1.7}.nexus-tags{flex-wrap:wrap;gap:8px;display:flex}.nexus-tags span{color:var(--str);border:1px solid var(--line2);border-radius:999px;padding:4px 11px;font-size:11.5px}.nexus-stats{border-left:1px solid var(--line);grid-template-rows:repeat(4,1fr);display:grid}.nexus-stats .ns{border-bottom:1px solid var(--line);align-items:baseline;gap:9px;padding:0 20px;display:flex}.nexus-stats .ns:last-child{border-bottom:0}.nexus-stats b{color:var(--accent2);font-size:22px;font-weight:800}.nexus-stats span{color:var(--mut);font-size:11px}.do-grid{grid-template-columns:repeat(3,1fr);gap:16px;display:grid}.do-cell{padding:24px 22px}.do-cell:hover{transform:translateY(-2px)}.do-k{color:var(--accent2);margin-bottom:14px;font-size:12px}.do-cell h3{color:var(--txt);margin:0 0 10px;font-size:17px}.do-cell p{color:var(--mut);margin:0;font-size:13.5px;line-height:1.7}.outro{margin-top:70px}.outro-line{color:var(--mut);max-width:60ch;margin:10px 0 0;font-size:16px;line-height:1.8}.outro-line a,.do-cell a{color:var(--accent2)}@media (width<=760px){.nexus-card{grid-template-columns:1fr}.nexus-stats{border-left:0;border-top:1px solid var(--line);grid-template-rows:none;grid-template-columns:repeat(4,1fr)}.nexus-stats .ns{border-bottom:0;border-right:1px solid var(--line);flex-direction:column;align-items:flex-start;gap:2px;padding:14px 10px}.do-grid{grid-template-columns:1fr}}@media (width<=480px){.nexus-info{flex-direction:column;gap:16px;padding:22px}.nexus-info>div{min-width:0}.nexus-stats{grid-template-columns:1fr 1fr}.nexus-stats .ns{border-bottom:1px solid var(--line)}.nexus-stats .ns:nth-child(2n){border-right:0}.nexus-stats .ns:nth-child(n+3){border-bottom:0}}.hl{color:var(--accent2);font-weight:600}.proj{padding:0;overflow:hidden}.proj-top{border-bottom:1px solid var(--line);align-items:center;gap:18px;padding:24px 28px;display:flex}.proj-mark{border:1px solid var(--line);background:color-mix(in oklch, var(--accent) 9%, transparent);border-radius:12px;flex:none;place-items:center;width:56px;height:56px;display:grid}.proj-mark.logo{background:0 0;border:0}.proj-mark.logo img{border-radius:12px;width:56px;height:56px;display:block}.proj-mark svg{width:38px;height:38px}.proj-head h3{color:var(--txt);margin:0;font-size:24px;font-weight:800}.proj-sub{color:var(--mut);margin-top:3px;font-size:13.5px}.proj-meta{align-items:center;gap:8px;margin-left:auto;display:flex}.pill{color:var(--mut);border:1px solid var(--line2);border-radius:999px;padding:4px 11px;font-size:11px}.pill.live{color:var(--green);align-items:center;gap:7px;display:inline-flex}.pill.live i{background:var(--green);width:7px;height:7px;box-shadow:0 0 8px var(--green);border-radius:50%;animation:2s infinite pulse}.pill.live.degraded{color:var(--amber)}.pill.live.degraded i{background:var(--amber);box-shadow:0 0 8px var(--amber)}@keyframes pulse{50%{opacity:.4}}.proj-shots{grid-template-columns:1fr 1fr;gap:14px;padding:18px 28px;display:grid}.shot{object-fit:cover;border:1px solid var(--line);background:color-mix(in oklch, var(--bg) 60%, #000 10%);border-radius:10px;width:100%;height:230px;display:block}.proj-shots .shot.wide{object-fit:contain;grid-column:1/-1;height:auto}.proj-body{padding:26px 28px}.proj-desc{color:var(--txt);max-width:78ch;margin:0 0 26px;font-size:15px;line-height:1.8}.proj-desc .mut{color:var(--mut)}.feat-grid{grid-template-columns:1fr 1fr;gap:18px 28px;margin-bottom:28px;display:grid}.feat .fk{color:var(--com);margin-bottom:6px;font-size:13px;font-style:italic}.feat p{color:var(--mut);margin:0;font-size:13.5px;line-height:1.7}.kv{border:1px solid var(--line);background:color-mix(in oklch, var(--bg) 70%, #000 6%);border-radius:10px;margin-bottom:26px;padding:6px 0}.kv-row{align-items:flex-start;gap:16px;padding:10px 18px;display:flex}.kv-row+.kv-row{border-top:1px solid var(--line)}.kk{color:var(--prop);flex:none;min-width:130px;font-size:13px}.kv-tags{flex-wrap:wrap;gap:7px;display:flex}.kv-tags span{color:var(--str);border:1px solid var(--line2);border-radius:6px;padding:3px 9px;font-size:11.5px}.gh-strip{align-items:center;gap:20px;padding:22px 26px;text-decoration:none;display:flex}.gh-strip:hover{border-color:var(--accent);transform:translateY(-2px)}.gh-icon{width:44px;height:44px;color:var(--txt);flex:none}.gh-icon svg{width:44px;height:44px}.gh-name{color:var(--txt);font-size:17px;font-weight:700}.gh-text p{color:var(--mut);margin:5px 0 0;font-size:13.5px}.gh-cta{color:var(--accent2);white-space:nowrap;margin-left:auto;font-size:13.5px}.commits{margin-top:18px}.commits .ln{color:var(--com);margin-bottom:10px;font-size:13px;font-style:italic}.commit-feed{border:1px solid var(--line);background:color-mix(in oklch, var(--bg) 70%, #000 6%);border-radius:12px;margin:0;padding:0;list-style:none;overflow:hidden}.commit-feed li+li{border-top:1px solid var(--line)}.commit-feed a{color:var(--mut);align-items:baseline;gap:12px;padding:11px 16px;font-size:13px;transition:background .15s,color .15s;display:flex}.commit-feed a:hover{color:var(--txt);background:#ffffff08}.c-sha{color:var(--amber);flex:none}.c-repo{color:var(--accent2);text-overflow:ellipsis;white-space:nowrap;flex:none;max-width:32%;overflow:hidden}.c-msg{color:var(--mut);text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}.commit-feed a:hover .c-msg{color:var(--txt)}.c-arr{color:var(--accent2);opacity:0;flex:none;margin-left:auto;transition:opacity .15s}.commit-feed a:hover .c-arr{opacity:1}@media (width<=760px){.proj-shots{grid-template-columns:1fr}.shot{height:180px}.feat-grid{grid-template-columns:1fr}.proj-top{flex-wrap:wrap}.proj-meta{margin-left:0}.gh-strip{flex-wrap:wrap}.gh-cta{margin-left:0}.kv-row{flex-direction:column;gap:8px}.kk{min-width:0}}.dl-ic{width:15px;height:15px;margin-right:-1px}.resume-head{align-items:flex-start;gap:26px;margin-top:8px;display:flex}.avatar{object-fit:cover;border:1px solid var(--line2);border-radius:16px;flex:none;width:116px;height:116px;box-shadow:0 10px 30px #00000059}.resume-id{min-width:0}.loc{color:var(--mut);margin:12px 0 0;font-size:13px}.md-body{color:var(--txt);max-width:76ch;margin:0;font-size:15.5px;line-height:1.85}.md-body a{color:var(--accent2)}.gitlog{border-left:2px solid var(--line);flex-direction:column;gap:30px;margin-left:6px;padding-left:28px;display:flex}.commit{position:relative}.commit .node{background:var(--bg);border:2px solid var(--accent2);border-radius:50%;width:13px;height:13px;position:absolute;top:4px;left:-36px}.commit .node.side{border-color:var(--fn)}.commit-meta{flex-wrap:wrap;align-items:center;gap:12px;margin-bottom:6px;font-size:12px;display:flex}.sha{color:var(--amber)}.ref{color:var(--green);border:1px solid color-mix(in oklch, var(--green) 40%, transparent);border-radius:999px;padding:1px 9px}.ref.side{color:var(--fn);border-color:color-mix(in oklch, var(--fn) 45%, transparent)}.when,.dur{color:var(--mut)}.commit h3{color:var(--txt);margin:0 0 4px;font-size:18px;font-weight:700}.commit-loc{color:var(--mut);overflow-wrap:anywhere;margin-bottom:12px;font-size:12.5px}.commit-loc a{color:var(--accent2)}.at{color:var(--faint);font-weight:400}.org{color:var(--accent2)}.bullets{color:var(--mut);margin:0;padding-left:18px}.bullets li{margin-bottom:5px;font-size:13.5px;line-height:1.7}.bullets li strong{color:var(--txt);font-weight:600}.pkg{padding:18px 22px}.pkg .codeline{padding:0;line-height:2}.chips{flex-wrap:wrap;gap:8px;padding:6px 0 8px 22px;display:flex}.chip{color:var(--txt);background:color-mix(in oklch, var(--accent) 13%, transparent);border:1px solid color-mix(in oklch, var(--accent) 35%, transparent);border-radius:7px;padding:6px 12px;font-size:13px}.chip.sm{color:var(--str);border-color:var(--line2);background:0 0;padding:5px 10px;font-size:12px}.edu{flex-direction:column;padding:6px 22px;display:flex}.edu-item{padding:13px 0}.edu-item+.edu-item{border-top:1px solid var(--line)}.edu-row{justify-content:space-between;align-items:baseline;gap:16px;font-size:14.5px;display:flex}.edu-row .org{font-weight:500}.edu-row .qual{color:var(--mut);font-weight:400}.edu-row .when{font-family:var(--mono);color:var(--fn);white-space:nowrap;font-size:12px}.edu-detail{color:var(--mut);margin-top:5px;font-size:13px}@media (width<=760px){.resume-head{flex-direction:column;gap:16px}.avatar{width:92px;height:92px}}@media (width<=360px){.content,.block,.codeline{padding-left:14px;padding-right:14px}.gitlog{margin-left:2px;padding-left:18px}.chips{padding-left:14px}.pkg{padding-left:16px;padding-right:16px}.bullets{padding-left:16px}.bullets li,.chip,.chip.sm,.nexus-tags span,.kv-tags span{overflow-wrap:anywhere}}.link-grid{grid-template-columns:1fr 1fr;gap:16px;display:grid}.link-card{transition:transform .2s var(--ease), border-color .2s;align-items:flex-start;gap:18px;padding:22px;text-decoration:none;display:flex}.link-card:hover{border-color:var(--accent);transform:translateY(-3px)}.lc-ico{border:1px solid var(--line2);border-radius:11px;flex:none;place-items:center;width:46px;height:46px;display:grid}.lc-ico svg{width:26px;height:26px}.lc-ico.gh{color:var(--txt)}.lc-ico.li{color:#58a6ff}.lc-ico.em{color:var(--green)}.lc-ico.nx{color:var(--accent2)}.lc-ico.logo{border:0;padding:0}.lc-ico.logo img{border-radius:11px;width:46px;height:46px;display:block}.lc-ico.ig{color:#e1306c}.lc-body{min-width:0}.lc-key{font-size:13px}.lc-val{color:var(--txt);overflow-wrap:anywhere;margin:3px 0 7px;font-size:16.5px;font-weight:700}.lc-desc{color:var(--mut);font-size:13px;line-height:1.6}.lc-arr{color:var(--accent2);transition:transform .2s var(--ease);margin-left:auto;font-size:18px}.link-card:hover .lc-arr{transform:translate(3px,-3px)}@media (width<=760px){.link-grid{grid-template-columns:1fr}}@media (width<=360px){.link-card{gap:12px;padding:18px 16px}.lc-ico,.lc-ico.logo img{width:38px;height:38px}.lc-ico svg{width:22px;height:22px}.lc-val{letter-spacing:-.2px;word-break:normal;font-size:14px}}.contact-wrap{grid-template-columns:1.05fr .95fr;align-items:start;gap:22px;display:grid}.cform{flex-direction:column;gap:18px;padding:26px 26px 28px;display:flex}.field{flex-direction:column;gap:8px;display:flex}.field label{font-size:13.5px}.field input,.field textarea{font-family:var(--mono);color:var(--str);background:color-mix(in oklch, var(--bg) 55%, #000 12%);border:1px solid var(--hair);box-shadow:var(--edge);transition:border-color .18s var(--ease), box-shadow .18s var(--ease);resize:vertical;border-radius:10px;outline:none;padding:12px 14px;font-size:14px}.field input::placeholder,.field textarea::placeholder{color:var(--com)}.field input:focus,.field textarea:focus{border-color:var(--accent);box-shadow:var(--edge), 0 0 0 3px color-mix(in oklch, var(--accent) 20%, transparent)}.field input.bad,.field textarea.bad{border-color:var(--red)}.err{color:var(--red);font-size:11.5px;font-style:italic;display:none}.field.show-err .err{display:block}.ts-box{min-height:65px;margin:4px 0 0}.send{align-self:flex-start;margin-top:4px}.sent-msg{color:var(--green);font-size:13px;line-height:1.6;display:none}.sent-msg.show{display:block}.sent-msg a{color:var(--accent2)}.form-note{color:var(--mut);margin:2px 0 0;font-size:11.5px;line-height:1.6}.form-note .com{color:var(--com);font-style:italic}.copy-btn{font-family:var(--mono);color:var(--mut);border:1px solid var(--line2);cursor:pointer;vertical-align:1px;transition:color .15s var(--ease), border-color .15s var(--ease);background:0 0;border-radius:6px;margin-left:8px;padding:2px 8px;font-size:11px}.copy-btn:hover{color:var(--txt);border-color:var(--accent)}.copy-btn:focus-visible{outline:2px solid var(--accent2);outline-offset:2px}.preview{border:1px solid var(--line);background:color-mix(in oklch, var(--bg) 70%, #000 8%);top:calc(var(--title-h) + var(--tabs-h) + 16px);border-radius:12px;position:sticky;overflow:hidden}.prev-bar{border-bottom:1px solid var(--line);align-items:center;gap:7px;padding:10px 14px;display:flex}.dotp{border-radius:50%;width:11px;height:11px}.dotp.r{background:#ff5f57}.dotp.y{background:#febc2e}.dotp.g{background:#28c840}.prev-name{color:var(--mut);margin-left:8px;font-size:12px}.prev-body{padding:18px}.prev-body .codeline{white-space:pre-wrap;word-break:break-word;padding:0;line-height:1.95}.ph-val{color:var(--str)}.ph-val.empty{color:var(--com)}@media (width<=860px){.contact-wrap{grid-template-columns:1fr}.preview{position:static}}.note-list{flex-direction:column;gap:16px;display:flex}.note-row{padding:24px 26px;text-decoration:none;display:block}.note-row:hover{border-color:var(--accent);transform:translateY(-2px)}.note-row-head{justify-content:space-between;align-items:baseline;gap:12px;display:flex}.note-file{color:var(--com);font-size:13px;font-style:italic}.note-date{color:var(--mut);white-space:nowrap;font-size:12px}.note-row h2{color:var(--txt);letter-spacing:-.02em;margin:10px 0 8px;font-size:20px;font-weight:700}.note-row p{color:var(--mut);max-width:70ch;margin:0;font-size:14px;line-height:1.7}.note-cta{color:var(--accent2);margin-top:14px;font-size:13.5px;display:inline-block}.note-body h2{color:var(--txt);letter-spacing:-.02em;margin:34px 0 12px;font-size:22px;font-weight:700}.note-body h3{color:var(--txt);margin:24px 0 10px;font-size:17px;font-weight:700}.note-body p{margin:0 0 16px}.note-body ul{margin:0 0 18px;padding-left:22px}.note-body li{margin-bottom:7px}.note-body strong{color:var(--txt);font-weight:600}.note-body code{font-family:var(--mono);background:color-mix(in oklch, var(--accent) 12%, transparent);border:1px solid var(--line2);color:var(--str);border-radius:5px;padding:1px 6px;font-size:.9em}.note-body pre{background:color-mix(in oklch, var(--bg) 70%, #000 6%);border:1px solid var(--line);border-radius:10px;margin:0 0 18px;padding:16px 18px;overflow-x:auto}.note-body pre code{color:var(--txt);background:0 0;border:0;padding:0}.note-body blockquote{border-left:3px solid var(--accent);background:color-mix(in oklch, var(--bg) 70%, #000 5%);color:var(--mut);border-radius:0 8px 8px 0;margin:0 0 18px;padding:10px 18px}@media (width<=860px){body{-webkit-tap-highlight-color:transparent}.activity,.explorer,.hide-sm{display:none!important}.titlebar{gap:10px;padding:0 12px}.titlebar .crumb{text-overflow:ellipsis;white-space:nowrap;min-width:0;margin-left:0;overflow:hidden}.titlebar .right{gap:10px}.tabbar{left:0}.tab{padding:0 16px;font-size:13px}.editor{margin-left:0}.doc{grid-template-columns:1fr}.gutter{display:none}.content{padding:22px 0 80px}.content,.block{padding-left:20px;padding-right:20px}.codeline{padding:0 20px}.mobile-links{z-index:1;padding:20px 0 calc(10px + env(safe-area-inset-bottom,0px));border-top:1px solid var(--line);flex-wrap:wrap;gap:8px;margin:0 20px;display:flex;position:relative}.mobile-links a{color:var(--mut);border:1px solid var(--line2);border-radius:999px;align-items:center;gap:8px;padding:7px 13px;font-size:12.5px;display:inline-flex}.mobile-links a:hover,.mobile-links a:active{color:var(--txt);border-color:var(--accent)}.mobile-links .fi{color:var(--accent2)}.statusbar .seg{padding:0 12px}input,textarea,select{font-size:16px!important}#tweaks{width:auto;left:10px;right:10px}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.001ms!important;animation-duration:.001ms!important;animation-iteration-count:1!important}.skip-link{transition-duration:.15s!important}}.grain{z-index:95;pointer-events:none;opacity:.035;mix-blend-mode:overlay;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='140' height='140'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");background-size:140px 140px;position:fixed;inset:0}html[data-theme=paper] .grain{opacity:.05;mix-blend-mode:multiply}.editor:before{content:"";pointer-events:none;z-index:0;top:var(--title-h);left:calc(var(--act-w) + var(--side-w));background:radial-gradient(105% 70% at 50% -8%, color-mix(in oklch, var(--accent) 11%, transparent), transparent 62%);height:62vh;position:fixed;right:0}html[data-theme=paper] .editor:before{opacity:.6}@media (width<=860px){.editor:before{left:0}}@media (hover:hover) and (pointer:fine){.nexus-card:hover,.gh-strip:hover,.link-card:hover,.do-cell:hover,.proj:hover{box-shadow:var(--edge), var(--shadow-3);border-color:color-mix(in oklch, var(--accent) 42%, var(--line2))}}.nexus-card:active,.gh-strip:active,.link-card:active{transition-duration:.1s;transform:scale(.992)}.ilink{background-image:linear-gradient(var(--accent2), var(--accent2));transition:background-size .25s var(--ease);background-position:0 100%;background-repeat:no-repeat;background-size:100% 1px;border-bottom:0;padding-bottom:1px}@media (hover:hover) and (pointer:fine){.ilink:hover{background-position:100% 100%;background-size:0 1px}}.avatar-frame{box-shadow:var(--edge), var(--shadow-3)}
