:root{--bg:#eceff4;--panel:#fff;--panel-2:#f5f7fa;--line:#d6dce5;--fg:#131923;--muted:#5a6575;--accent:#c8490c;--ok:#17864a;--ok-bg:#e2f4ea;--warn:#a86f00;--warn-bg:#fbf0d6;--info:#2a62c4;--info-bg:#e3ecfa;--idle:#6b7586;--idle-bg:#e9edf2;--grid:#e6eaf0;--font-display:"Bricolage Grotesque", "Segoe UI", system-ui, sans-serif;--font-body:"IBM Plex Sans", "Segoe UI", system-ui, sans-serif;--font-mono:"IBM Plex Mono", ui-monospace, "SFMono-Regular", Menlo, Consolas, monospace;color-scheme:light}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--bg:#0d1118;--panel:#141a24;--panel-2:#10151d;--line:#253042;--fg:#e5eaf1;--muted:#8d99aa;--accent:#ff7d42;--ok:#3fd283;--ok-bg:#12301f;--warn:#f2b531;--warn-bg:#33270b;--info:#78a9ff;--info-bg:#142540;--idle:#8d99aa;--idle-bg:#1c2431;--grid:#1d2533;color-scheme:dark}}:root[data-theme=dark]{--bg:#0d1118;--panel:#141a24;--panel-2:#10151d;--line:#253042;--fg:#e5eaf1;--muted:#8d99aa;--accent:#ff7d42;--ok:#3fd283;--ok-bg:#12301f;--warn:#f2b531;--warn-bg:#33270b;--info:#78a9ff;--info-bg:#142540;--idle:#8d99aa;--idle-bg:#1c2431;--grid:#1d2533;color-scheme:dark}*{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{background:var(--bg);color:var(--fg);font-family:var(--font-body);padding-left:max(16px, env(safe-area-inset-left,0px));padding-right:max(16px, env(safe-area-inset-right,0px));margin:0;padding-block:20px 40px;font-size:15px;line-height:1.55}img{max-width:100%}a{color:inherit}a:focus-visible,button:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:4px}.wrap{flex-direction:column;gap:16px;max-width:1180px;margin:0 auto;display:flex}.num{font-variant-numeric:tabular-nums}.sr-only{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.statusbar{font-family:var(--font-mono);color:var(--muted);border-bottom:1px solid var(--line);flex-wrap:wrap;align-items:center;gap:10px 18px;padding-bottom:12px;font-size:12.5px;display:flex}.brand{color:var(--fg);align-items:center;gap:8px;font-size:14px;font-weight:500;text-decoration:none;display:flex}.brand .dot{color:var(--ok)}.nav{flex-wrap:wrap;gap:4px;display:flex}.nav a{color:var(--muted);border-radius:6px;padding:3px 9px;text-decoration:none;transition:color .15s,background .15s}.nav a:hover{color:var(--fg);background:var(--panel)}.nav a[aria-current=page]{color:var(--fg);background:var(--panel);box-shadow:inset 0 -2px 0 var(--accent)}.statusbar .spacer{flex:1}.theme-btn{font-family:var(--font-mono);color:var(--muted);border:1px solid var(--line);cursor:pointer;background:0 0;border-radius:6px;padding:2px 8px;font-size:12px}.theme-btn:hover{color:var(--fg);border-color:var(--accent)}.chip{font-family:var(--font-mono);white-space:nowrap;border-radius:999px;align-items:center;gap:6px;padding:2px 9px;font-size:12px;font-weight:500;display:inline-flex}.chip.ok{background:var(--ok-bg);color:var(--ok)}.chip.warn{background:var(--warn-bg);color:var(--warn)}.chip.info{background:var(--info-bg);color:var(--info)}.chip.idle{background:var(--idle-bg);color:var(--idle)}.dot{background:currentColor;border-radius:50%;flex:none;width:8px;height:8px;display:inline-block}.pulse{animation:2s ease-in-out infinite pulse}@keyframes pulse{0%,to{box-shadow:0 0 0 0 color-mix(in srgb, currentColor 45%, transparent)}50%{box-shadow:0 0 0 5px #0000}}.grid{grid-template-columns:repeat(12,minmax(0,1fr));gap:16px;display:grid}.panel{background:var(--panel);border:1px solid var(--line);border-radius:10px;flex-direction:column;min-width:0;display:flex}.panel-head{border-bottom:1px solid var(--line);font-family:var(--font-mono);color:var(--muted);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;padding:10px 16px;font-size:12px;display:flex}.panel-head h2{font-family:var(--font-mono);color:var(--fg);letter-spacing:.02em;margin:0;font-size:12px;font-weight:500}.panel-head a{color:var(--muted);text-decoration:none}.panel-head a:hover{color:var(--accent)}.panel-body{min-width:0;padding:18px 16px}.s12{grid-column:span 12}.s8{grid-column:span 8}.s7{grid-column:span 7}.s6{grid-column:span 6}.s5{grid-column:span 5}.s4{grid-column:span 4}.s3{grid-column:span 3}@media (width<=900px){.s8,.s7,.s6,.s5,.s4{grid-column:span 12}.s3{grid-column:span 6}}@media (width<=420px){.s3{grid-column:span 12}}.page-head{flex-direction:column;gap:8px;padding:10px 0 4px;display:flex}.page-head .cmd{font-family:var(--font-mono);color:var(--muted);margin:0;font-size:13px}.page-head .cmd b{color:var(--accent);font-weight:500}.page-head h1{font-size:clamp(28px,4vw,42px)}.page-head p{color:var(--muted);max-width:64ch;margin:0}.hero .panel-body{flex-direction:column;gap:14px;padding:26px 24px 24px;display:flex}.hello{font-family:var(--font-mono);color:var(--muted);margin:0;font-size:13px}.hello b{color:var(--accent);font-weight:500}h1{font-family:var(--font-display);letter-spacing:-.02em;text-wrap:balance;margin:0;font-size:clamp(30px,4.6vw,50px);font-weight:700;line-height:1.04}h1 .name{color:var(--accent)}.role{font-family:var(--font-display);text-wrap:balance;margin:0;font-size:clamp(18px,2.2vw,23px);font-weight:500;line-height:1.3}.intro{max-width:64ch;color:var(--muted);margin:0}.intro strong{color:var(--fg);font-weight:500}.hero-links{flex-wrap:wrap;gap:10px;margin-top:4px;display:flex}.btn{font-family:var(--font-mono);border:1px solid var(--line);background:var(--panel-2);color:var(--fg);border-radius:8px;align-items:center;gap:8px;padding:8px 14px;font-size:13px;text-decoration:none;transition:border-color .15s,transform .15s;display:inline-flex}.btn:hover{border-color:var(--accent);transform:translateY(-1px)}.btn .verb{color:var(--accent);font-weight:500}.json{font-family:var(--font-mono);white-space:pre;color:var(--fg);margin:0;font-size:12.5px;line-height:1.65;overflow-x:auto}.json .k{color:var(--info)}.json .s{color:var(--ok)}.json .n{color:var(--accent)}.req{font-family:var(--font-mono);color:var(--muted);margin-bottom:10px;font-size:12px}.req b{color:var(--ok);font-weight:500}.stat .panel-body{flex-direction:column;gap:6px;display:flex}.stat .label{font-family:var(--font-mono);color:var(--muted);text-transform:uppercase;letter-spacing:.06em;font-size:11.5px}.stat .value{font-family:var(--font-display);letter-spacing:-.01em;font-size:34px;font-weight:700;line-height:1.05}.stat .value small{color:var(--muted);margin-left:2px;font-size:16px;font-weight:500}.stat .sub{color:var(--muted);font-size:13px}.stat a.sub{text-decoration:none}.stat a.sub:hover{color:var(--accent)}.table-scroll{overflow-x:auto}table{border-collapse:collapse;width:100%;min-width:560px;font-size:14px}th{text-align:left;font-family:var(--font-mono);color:var(--muted);text-transform:uppercase;letter-spacing:.06em;border-bottom:1px solid var(--line);padding:10px 16px;font-size:11.5px;font-weight:500}td{border-bottom:1px solid var(--grid);vertical-align:top;padding:12px 16px}tbody tr:last-child td{border-bottom:none}tbody tr{transition:background .15s}tbody tr:hover{background:var(--panel-2)}.svc{font-family:var(--font-mono);font-size:13.5px;font-weight:500;text-decoration:none}.svc:hover{color:var(--accent)}.desc{color:var(--muted);margin-top:2px;font-size:13.5px}.tags{flex-wrap:wrap;gap:6px;display:flex}.tag{font-family:var(--font-mono);border:1px solid var(--line);color:var(--muted);white-space:nowrap;border-radius:5px;padding:1px 7px;font-size:11.5px}.deps{flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.deps li{border-bottom:1px dashed var(--line);font-family:var(--font-mono);grid-template-columns:minmax(0,1fr) auto;align-items:baseline;gap:4px 12px;padding:9px 0;font-size:13px;display:grid}.deps li:last-child{border-bottom:none}.deps .grp,.deps .scope{color:var(--muted);font-size:11.5px}.deps .scope.compile{color:var(--ok)}.deps .scope.runtime{color:var(--info)}.deps .scope.exploring{color:var(--warn)}.logs .panel-body{padding:0}.log{font-family:var(--font-mono);background:var(--panel-2);border-radius:0 0 10px 10px;min-height:260px;margin:0;padding:14px 16px;font-size:12.5px;line-height:1.75;overflow-x:auto}.log div{white-space:pre}.log .t,.log .src{color:var(--muted)}.log .lv-INFO{color:var(--ok)}.log .lv-WARN{color:var(--warn)}.log .lv-DEBUG{color:var(--info)}.log .new{animation:.5s ease-out fadein}@keyframes fadein{0%{background:color-mix(in srgb, var(--accent) 14%, transparent)}to{background:0 0}}.cursor{background:var(--accent);vertical-align:-2px;width:7px;height:14px;animation:1.1s step-end infinite blink;display:inline-block}@keyframes blink{50%{opacity:0}}.tail-btn{font-family:var(--font-mono);color:var(--muted);border:1px solid var(--line);cursor:pointer;background:0 0;border-radius:6px;padding:2px 8px;font-size:12px}.tail-btn:hover{color:var(--fg);border-color:var(--accent)}.rev .panel-body{flex-direction:column;gap:10px;display:flex}.rev-top{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:12px;display:flex}.rev-val{font-family:var(--font-display);font-size:34px;font-weight:700;line-height:1}.rev-note{color:var(--muted);margin:0;font-size:13px}.rev svg{width:100%;height:auto;display:block}.rev svg text{font-family:var(--font-mono);fill:var(--muted);font-size:10px}.endpoints{grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:10px;display:grid}.ep{border:1px solid var(--line);background:var(--panel-2);font-family:var(--font-mono);border-radius:8px;align-items:center;gap:12px;min-width:0;padding:12px 14px;font-size:13px;text-decoration:none;transition:border-color .15s;display:flex}.ep:hover{border-color:var(--accent)}.ep .m{color:var(--ok);font-weight:500}.ep .p{color:var(--fg);text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}.ep .code{color:var(--muted);font-size:12px}.empty{align-items:flex-start;gap:12px;display:flex}.empty p{color:var(--muted);margin:0;font-size:14px}.empty p strong{color:var(--fg);font-weight:500}.commits{margin:0;padding:0;list-style:none}.commits li{border-bottom:1px solid var(--grid)}.commits li:last-child{border-bottom:none}.commit{grid-template-columns:auto minmax(0,1fr);gap:4px 14px;padding:14px 16px;text-decoration:none;transition:background .15s;display:grid}.commit:hover{background:var(--panel-2)}.commit .sha{font-family:var(--font-mono);color:var(--accent);padding-top:3px;font-size:12.5px}.commit .ttl{font-family:var(--font-display);font-size:19px;font-weight:500;line-height:1.3}.commit:hover .ttl{color:var(--accent)}.commit .meta{font-family:var(--font-mono);color:var(--muted);flex-wrap:wrap;grid-column:2;gap:4px 12px;font-size:12px;display:flex}.commit .sum{color:var(--muted);grid-column:2;margin:0;font-size:14px}.article-wrap{width:100%;max-width:760px;margin:0 auto}.post-meta{font-family:var(--font-mono);color:var(--muted);flex-wrap:wrap;gap:6px 14px;font-size:12.5px;display:flex}.post-meta a{color:var(--muted)}.prose{font-size:17px;line-height:1.75}.prose>*{margin-block:0 1.1em}.prose h2,.prose h3{font-family:var(--font-display);text-wrap:balance;margin-top:1.8em;line-height:1.25}.prose h2{font-size:26px}.prose h3{font-size:20px}.prose a{color:var(--accent)}.prose blockquote{border-left:3px solid var(--accent);color:var(--muted);margin-left:0;padding:4px 18px}.prose code{font-family:var(--font-mono);background:var(--panel-2);border:1px solid var(--line);border-radius:4px;padding:1px 5px;font-size:.88em}.prose pre{border:1px solid var(--line);border-radius:8px;padding:16px;font-size:13.5px;line-height:1.6;overflow-x:auto}.prose pre code{background:0 0;border:none;padding:0}.prose ul,.prose ol{padding-left:1.3em}.prose li{margin-bottom:.4em}.prose hr{border:none;border-top:1px solid var(--line);margin:2em 0}.prose img{border-radius:8px}.quotes{grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:16px;display:grid}.quote .panel-body{flex-direction:column;gap:14px;height:100%;display:flex}.quote blockquote{flex:1;margin:0;font-size:15.5px;line-height:1.65}.quote .who{flex-direction:column;font-size:13.5px;display:flex}.quote .who b{font-weight:600}.quote .who span{color:var(--muted);font-family:var(--font-mono);font-size:12px}footer{font-family:var(--font-mono);color:var(--muted);border-top:1px solid var(--line);flex-wrap:wrap;justify-content:space-between;gap:8px 16px;margin-top:8px;padding-top:12px;font-size:12px;display:flex}footer .motto{color:var(--fg)}footer a{color:var(--muted);text-decoration:none}footer a:hover{color:var(--accent)}@media (prefers-reduced-motion:reduce){*,:before,:after{transition:none!important;animation:none!important}}.commit .ext{color:var(--muted);font-size:.8em}.commit .src-medium{color:var(--info)}
