:root{--bg:#0e1013;--surface:#171a1f;--border:#262b33;--muted:#8a92a0;--text:#e6e8ec;--accent:#3ddc84;--accent-rgb:61, 220, 132;--err:#ff5c5c;--grid:#ffffff0a;--grid-lit:#3ddc8442;--code-bg:#12151a}:root[data-theme=light]{--bg:#f4f5f7;--surface:#fff;--border:#e2e5ea;--muted:#667085;--text:#14171c;--accent:#12a150;--accent-rgb:18, 161, 80;--err:#d92d20;--grid:#0000000d;--grid-lit:#12a15047;--code-bg:#f7f8fa}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent;margin:0}html{scroll-behavior:smooth}body{background:var(--bg);color:var(--text);min-height:100dvh;font:400 17px/1.7 Inter,system-ui,sans-serif;transition:background-color .25s,color .25s;overflow-x:clip}::selection{background:var(--accent);color:#07140c}a{color:inherit}.mono{font-family:JetBrains Mono,ui-monospace,monospace}.wrap{z-index:2;max-width:760px;margin:0 auto;padding:0 20px;position:relative}.bg,.bg-lit{pointer-events:none;z-index:0;position:fixed;inset:0}.bg{background-image:linear-gradient(var(--grid) 1px, transparent 1px), linear-gradient(90deg, var(--grid) 1px, transparent 1px);background-size:48px 48px}.bg-lit{background-image:linear-gradient(var(--grid-lit) 1px, transparent 1px), linear-gradient(90deg, var(--grid-lit) 1px, transparent 1px);-webkit-mask-image:radial-gradient(220px circle at var(--mx,50%) var(--my,20%), #000, transparent 70%);mask-image:radial-gradient(220px circle at var(--mx,50%) var(--my,20%), #000, transparent 70%);background-size:48px 48px}.glow{pointer-events:none;z-index:0;width:520px;height:520px;transform:translate(calc(var(--mx,50%) - 50%), calc(var(--my,20%) - 50%));background:radial-gradient(circle, rgba(var(--accent-rgb), .12), transparent 65%);border-radius:50%;position:fixed;top:0;left:0}#prog{z-index:50;background:var(--accent);transform-origin:0;width:100%;height:3px;box-shadow:0 0 12px var(--accent);position:fixed;top:0;left:0;transform:scaleX(0)}@supports not selector(::-webkit-scrollbar){html{scrollbar-width:thin;scrollbar-color:var(--accent) transparent}}::-webkit-scrollbar{width:12px;height:8px}::-webkit-scrollbar-thumb{background:linear-gradient(var(--accent), rgba(var(--accent-rgb), .3));border:3px solid var(--bg);border-radius:12px}::-webkit-scrollbar-track{background:0 0}header.top{padding:22px 0;padding-top:calc(22px + env(safe-area-inset-top));justify-content:space-between;align-items:center;display:flex}.logo{padding:8px 0;font-size:16px;font-weight:500;text-decoration:none}.logo b{color:var(--accent);font-weight:500}.logo span{color:var(--muted)}nav.top{align-items:center;gap:20px;font-size:14px;display:flex}nav.top a{color:var(--muted);padding:8px 0;text-decoration:none;transition:color .2s}nav.top a:hover{color:var(--accent)}.toggle{background:var(--surface);border:1px solid var(--border);color:var(--text);cursor:pointer;border-radius:12px;width:44px;height:44px;font-size:17px}.toggle:hover{border-color:var(--accent)}.status{background:var(--surface);border:1px solid var(--border);color:var(--muted);border-radius:999px;align-items:center;gap:10px;padding:7px 14px;font-size:13px;display:inline-flex}.status b{color:var(--accent);font-weight:500}.dot{background:var(--accent);border-radius:50%;flex:none;width:8px;height:8px;animation:2s infinite pulse}@keyframes pulse{0%{box-shadow:0 0 0 0 rgba(var(--accent-rgb), .55)}70%{box-shadow:0 0 0 9px rgba(var(--accent-rgb), 0)}to{box-shadow:0 0 0 0 rgba(var(--accent-rgb), 0)}}h1,h2,h3{letter-spacing:-.025em;font-family:Space Grotesk,sans-serif;line-height:1.12}.hero{padding:36px 0 12px}.hero h1{margin:22px 0 14px;font-size:clamp(38px,9vw,66px)}.hero h1 em{color:var(--accent);font-style:normal}.hero p{color:var(--muted);max-width:520px;font-size:18px}.tags{flex-wrap:wrap;gap:8px;display:flex}.tag{color:var(--muted);border:1px solid var(--border);background:0 0;border-radius:999px;align-items:center;min-height:32px;padding:6px 12px;font-size:12.5px;text-decoration:none;transition:all .15s;display:inline-flex}.tag:hover,.tag.on{color:var(--accent);border-color:var(--accent);background:rgba(var(--accent-rgb), .08)}.list{gap:14px;margin:32px 0 60px;display:grid}.item{background:var(--surface);border:1px solid var(--border);border-radius:18px;padding:22px 24px;text-decoration:none;transition:border-color .2s,transform .2s,box-shadow .2s;display:block}.item:hover{border-color:rgba(var(--accent-rgb), .6);box-shadow:0 18px 40px -22px rgba(var(--accent-rgb), .55);transform:translateY(-2px)}.item:active{transform:scale(.99)}.meta{color:var(--muted);flex-wrap:wrap;align-items:center;gap:10px 14px;font-size:12.5px;display:flex}.meta .code{color:var(--accent);background:rgba(var(--accent-rgb), .1);border-radius:999px;padding:3px 10px}.item h2{margin:12px 0 8px;font-size:clamp(22px,4.6vw,28px)}.item p{color:var(--muted);font-size:15.5px;line-height:1.6}.item .tags{pointer-events:none;margin-top:14px}.empty{color:var(--muted);padding:40px 0}.post-head{padding:28px 0 8px}.post-head h1{margin:18px 0 14px;font-size:clamp(34px,8vw,56px)}.post-head .lead{color:var(--muted);font-size:19px;line-height:1.55}.cover{border:1px solid var(--border);border-radius:18px;width:100%;height:auto;margin:26px 0 6px;display:block}.prose{overflow-wrap:break-word;padding:22px 0 10px}.prose>*+*{margin-top:1.15em}.prose h2{margin-top:2.1em;font-size:clamp(26px,5.4vw,34px)}.prose h3{margin-top:1.8em;font-size:clamp(21px,4.6vw,25px)}.prose a{color:var(--accent);text-underline-offset:3px;text-decoration-thickness:1px}.prose a:hover{text-decoration-thickness:2px}.prose ul,.prose ol{padding-left:1.3em}.prose li+li{margin-top:.35em}.prose li::marker{color:var(--accent)}.prose blockquote{border-left:3px solid var(--accent);background:rgba(var(--accent-rgb), .06);color:var(--text);border-radius:0 12px 12px 0;padding:14px 18px}.prose blockquote>*+*{margin-top:.6em}.prose img{border:1px solid var(--border);border-radius:14px;max-width:100%;height:auto;margin-inline:auto;display:block}.prose hr{border:0;border-top:1px solid var(--border);margin:2.4em 0}.prose :not(pre)>code{background:var(--surface);border:1px solid var(--border);border-radius:7px;padding:.15em .45em;font:500 .88em JetBrains Mono,monospace}.prose pre{border:1px solid var(--border);-webkit-overflow-scrolling:touch;border-radius:14px;padding:18px 20px;font:400 14px/1.7 JetBrains Mono,monospace;overflow-x:auto;background:var(--code-bg)!important}.astro-code,.astro-code span{color:var(--shiki-light)}:root:not([data-theme=light]) .astro-code,:root:not([data-theme=light]) .astro-code span{color:var(--shiki-dark)}.prose table{border-collapse:collapse;width:100%;font-size:15px;display:block;overflow-x:auto}.prose th,.prose td{border:1px solid var(--border);text-align:left;padding:10px 14px}.prose th{background:var(--surface);font-weight:500}.post-foot{border-top:1px solid var(--border);gap:18px;margin-top:48px;padding:26px 0 8px;display:grid}.share{flex-wrap:wrap;gap:10px;display:flex}.btn{border:1px solid var(--border);min-height:46px;color:var(--text);background:var(--surface);cursor:pointer;border-radius:12px;justify-content:center;align-items:center;gap:8px;padding:12px 20px;font:500 14px Inter,sans-serif;text-decoration:none;transition:border-color .2s,transform .15s;display:inline-flex}.btn:hover{border-color:var(--accent)}.btn:active{transform:scale(.96)}.back{color:var(--muted);font-size:14px;text-decoration:none}.back:hover{color:var(--accent)}footer.site{border-top:1px solid var(--border);padding:24px 0 calc(24px + env(safe-area-inset-bottom));color:var(--muted);z-index:2;margin-top:70px;font-size:13px;position:relative}footer.site .wrap{flex-wrap:wrap;justify-content:space-between;gap:8px 22px;display:flex}footer.site a{text-decoration:none}footer.site a:hover{color:var(--accent)}.toast{left:50%;bottom:calc(24px + env(safe-area-inset-bottom));z-index:60;opacity:0;pointer-events:none;background:var(--surface);border:1px solid var(--accent);border-radius:999px;padding:10px 18px;font-size:13px;transition:all .35s;position:fixed;transform:translate(-50%,20px)}.toast.show{opacity:1;transform:translate(-50%)}.nf{text-align:center;padding:70px 0 20px}.nf .big{letter-spacing:-.05em;color:var(--err);text-shadow:4px 0 #ff005080,-4px 0 #00c8ff80;font:700 clamp(110px,32vw,230px)/1 Space Grotesk,sans-serif}.nf p{color:var(--muted);margin:10px 0 26px}@media (width<=560px){body{font-size:16.5px}.item{border-radius:16px;padding:18px}nav.top .opt{display:none}.share .btn{flex:100%}}@media (prefers-reduced-motion:reduce){.dot{animation:none}html{scroll-behavior:auto}}
