:root{--bg:#0C0C0B;--surface:#161615;--border:#2C2C2A;--fg:#E8E8E3;--muted:#7A7A75;--faint:#3E3E3C;--accent:#6B8B6B;--white:#F2F2ED;--danger:#C08080;--bw:1px;--font-sans:"Inter", "Noto Sans SC", system-ui, -apple-system, sans-serif;--font-display:"Space Grotesk", "Inter", "Noto Sans SC", sans-serif;--font-mono:"JetBrains Mono", ui-monospace, "SF Mono", monospace;--dur-fast:120ms;--dur-normal:200ms;--dur-slow:350ms}[data-theme=light]{--bg:#F2F2ED;--surface:#FFFFFF;--border:#D8D8D2;--fg:#1A1A18;--muted:#6B6B66;--faint:#B5B5AE;--accent:#4E6B4E;--white:#0C0C0B;--danger:#9C5050}*,*::before,*::after{margin:0;padding:0;box-sizing:border-box}html{scroll-behavior:smooth}body{background:var(--bg);color:var(--fg);font-family:var(--font-sans);font-size:15px;line-height:1.75;font-weight:400;-webkit-font-smoothing:antialiased;letter-spacing:-.1px;min-height:100vh;display:flex;flex-direction:column}a{color:inherit}::selection{background:var(--accent);color:var(--bg)}:focus-visible{outline:2px solid var(--accent);outline-offset:3px}[hidden]{display:none!important}.container{max-width:960px;margin:0 auto;padding:0 32px}.site-main{flex:1}.mono{font-family:var(--font-mono);font-size:11.5px}.label{font-family:var(--font-mono);font-size:10px;font-weight:450;text-transform:uppercase;letter-spacing:2.5px;color:var(--muted)}html.js [data-reveal]{opacity:0;transform:translateY(8px)}html.js [data-reveal].reveal-visible{opacity:1;transform:none;transition:opacity var(--dur-slow)ease-out,transform var(--dur-slow)ease-out;transition-delay:var(--reveal-delay,0ms)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:7px;padding:9px 22px;font-size:12px;font-weight:500;font-family:var(--font-sans);text-decoration:none;border:var(--bw)solid var(--border);border-radius:4px;background:0 0;color:var(--fg);letter-spacing:.3px;cursor:pointer;transition:transform var(--dur-fast)ease-out,border-color var(--dur-slow)}.btn:hover{transform:scale(1.03);border-color:var(--muted)}.btn:active{transform:scale(.98)}.btn-block{width:100%}.tag-pill{display:inline-flex;align-items:center;padding:3px 12px;border:1px solid var(--border);border-radius:99px;font-size:10px;font-family:var(--font-mono);color:var(--muted);text-decoration:none;transition:transform var(--dur-fast),border-color var(--dur-slow),color var(--dur-slow)}.tag-pill:hover{transform:scale(1.05);border-color:var(--accent);color:var(--accent)}.tag-pill--count{gap:8px}.tag-count{color:var(--faint)}.breadcrumb{display:flex;align-items:center;flex-wrap:wrap;gap:8px;font-size:11px;font-family:var(--font-mono);color:var(--muted);padding:16px 0}.breadcrumb a{color:var(--muted);text-decoration:none;transition:color var(--dur-slow)}.breadcrumb a:hover{color:var(--fg)}.bc-sep{color:var(--faint)}.bc-current{color:var(--fg)}.pagination{display:flex;align-items:center;justify-content:center;gap:6px;margin:40px 0}.pg-item{width:32px;height:32px;display:flex;align-items:center;justify-content:center;border:1px solid var(--border);border-radius:4px;font-size:12px;font-family:var(--font-mono);color:var(--muted);text-decoration:none;transition:transform var(--dur-fast),border-color var(--dur-slow),color var(--dur-slow)}.pg-item:hover{transform:scale(1.08);border-color:var(--muted)}.pg-item.active{background:var(--accent);border-color:var(--accent);color:var(--bg);font-weight:500}.nav-full{display:flex;align-items:center;justify-content:space-between;padding:14px 28px;border-bottom:1px solid var(--border);background:var(--bg);position:sticky;top:0;z-index:50;transition:transform var(--dur-normal)ease-out}.nav-full.nav-hidden{transform:translateY(-100%)}.nf-logo{font-size:16px;font-weight:550;letter-spacing:1.5px;color:var(--white);text-decoration:none}.nf-links{display:flex;align-items:center;gap:28px}.nf-link{position:relative;font-size:12px;color:var(--muted);text-decoration:none;letter-spacing:.5px;transition:color var(--dur-slow),transform var(--dur-fast)}.nf-link:hover,.nf-link.active{color:var(--fg);transform:translateY(-1px)}.nf-link.active::after{content:"";position:absolute;bottom:-16px;left:0;right:0;height:2px;background:var(--accent)}.nf-actions{display:flex;align-items:center;gap:16px}.nf-icon-btn{width:34px;height:34px;display:flex;align-items:center;justify-content:center;background:0 0;border:1px solid var(--border);border-radius:4px;color:var(--muted);cursor:pointer;transition:transform var(--dur-fast),border-color var(--dur-slow),color var(--dur-slow)}.nf-icon-btn:hover{color:var(--fg);transform:scale(1.1);border-color:var(--accent)}.nav-login-btn{padding:6px 16px;font-size:11px;font-family:var(--font-mono);color:var(--fg);background:0 0;border:1px solid var(--border);border-radius:4px;cursor:pointer;transition:transform var(--dur-fast),border-color var(--dur-slow),color var(--dur-slow)}.nav-login-btn:hover{transform:scale(1.04);border-color:var(--accent);color:var(--accent)}.theme-toggle{width:36px;height:36px;display:flex;align-items:center;justify-content:center;border:1px solid var(--border);border-radius:4px;background:0 0;color:var(--muted);cursor:pointer;transition:transform var(--dur-fast),border-color var(--dur-slow),color var(--dur-slow)}.theme-toggle:hover{transform:rotate(15deg);border-color:var(--accent);color:var(--fg)}.theme-toggle .icon-sun{display:none}.theme-toggle .icon-moon{display:block}[data-theme=light] .theme-toggle .icon-sun{display:block}[data-theme=light] .theme-toggle .icon-moon{display:none}.nf-avatar{width:28px;height:28px;padding:0;border-radius:4px;border:1px solid var(--border);background:var(--faint);display:flex;align-items:center;justify-content:center;color:var(--muted);cursor:pointer;overflow:hidden;transition:border-color var(--dur-slow),transform var(--dur-fast)}.nf-avatar:hover{border-color:var(--accent);transform:scale(1.05)}.nf-avatar-img{width:100%;height:100%;object-fit:cover;display:block}.dropdown{position:relative}.dropdown-menu{position:absolute;top:calc(100% + 6px);right:0;min-width:180px;background:var(--surface);border:1px solid var(--border);border-radius:6px;padding:4px 0;z-index:50}.dropdown-menu a,.dropdown-menu button{display:block;width:100%;text-align:left;padding:8px 16px;font-size:12px;font-family:var(--font-mono);color:var(--muted);text-decoration:none;background:0 0;border:none;cursor:pointer;transition:color var(--dur-normal),transform var(--dur-fast)}.dropdown-menu a:hover,.dropdown-menu button:hover{color:var(--fg);transform:translateX(2px)}.dm-head{display:flex;align-items:center;gap:10px;padding:10px 16px 12px;border-bottom:1px solid var(--border);margin-bottom:4px}.dm-avatar{width:32px;height:32px;border-radius:4px;object-fit:cover;border:1px solid var(--border)}.dm-head strong{display:block;font-size:12px;font-weight:500;color:var(--white)}.dm-email{display:block;font-size:10px;color:var(--faint);max-width:140px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dm-divider{height:1px;background:var(--border);margin:4px 0}.nav-mobile{display:none;align-items:center;justify-content:space-between;padding:12px 20px;border-bottom:1px solid var(--border);background:var(--bg);position:sticky;top:0;z-index:50;transition:transform var(--dur-normal)ease-out}.nav-mobile.nav-hidden{transform:translateY(-100%)}.nm-logo{font-size:15px;font-weight:550;color:var(--white);text-decoration:none;letter-spacing:1px}.nm-toggle{font-size:18px;color:var(--muted);cursor:pointer;background:0 0;border:none;padding:6px;display:flex;align-items:center;transition:transform var(--dur-fast),color var(--dur-slow)}.nm-toggle:hover{transform:scale(1.1);color:var(--fg)}.nav-mobile-menu{display:flex;flex-direction:column;padding:8px 0;border-bottom:1px solid var(--border);background:var(--surface)}.nav-mobile-menu a{padding:14px 24px;font-size:16px;color:var(--muted);text-decoration:none;border-left:2px solid transparent;transition:color var(--dur-slow),border-color var(--dur-slow)}.nav-mobile-menu a:hover,.nav-mobile-menu a.active{color:var(--fg);border-left-color:var(--accent)}.nm-action{padding:14px 24px;font-size:16px;font-family:var(--font-mono);color:var(--accent);background:0 0;border:none;border-left:2px solid transparent;border-top:1px solid var(--border);text-align:left;cursor:pointer}@keyframes term-line-in{0%,7%{opacity:0}10%,92%{opacity:1}100%{opacity:0}}@keyframes term-cursor-flash{0%,49%{opacity:1}50%,100%{opacity:0}}@keyframes scroll-hint{0%,100%{opacity:0;transform:translateX(-50%)translateY(0)}40%,60%{opacity:1;transform:translateX(-50%)translateY(6px)}}.welcome-full{height:100vh;min-height:600px;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;position:relative;overflow:hidden;background:var(--bg)}.welcome-full .term-box{font-family:var(--font-mono);font-size:clamp(11px,1.8vw,14px);color:var(--muted);text-align:left;width:clamp(280px,50vw,420px);line-height:2.4}.welcome-full .tl{white-space:nowrap;overflow:hidden;opacity:0}.welcome-full .tl .blink-cursor{display:inline-block;width:8px;height:14px;background:var(--accent);vertical-align:middle;margin-left:2px;animation:term-cursor-flash 1s step-end infinite}.welcome-full .tl:nth-child(1){animation:term-line-in 10s infinite;color:var(--faint)}.welcome-full .tl:nth-child(2){animation:term-line-in 10s .7s infinite;color:var(--muted)}.welcome-full .tl:nth-child(3){animation:term-line-in 10s 1.4s infinite;color:var(--muted)}.welcome-full .tl:nth-child(4){animation:term-line-in 10s 2.1s infinite;color:var(--muted)}.welcome-full .tl:nth-child(5){animation:term-line-in 10s 2.8s infinite;color:var(--muted)}.welcome-full .tl:nth-child(6){animation:term-line-in 10s 3.5s infinite;color:var(--muted)}.welcome-full .tl:nth-child(7){animation:term-line-in 10s 4.2s infinite;color:var(--muted)}.welcome-full .tl:nth-child(8){animation:term-line-in 10s 4.9s infinite}.welcome-full .tl-ok{color:var(--accent)}.welcome-full .scroll-hint{position:absolute;bottom:36px;left:50%;display:flex;flex-direction:column;align-items:center;gap:8px;animation:scroll-hint 2s ease-in-out infinite;font-family:var(--font-mono);font-size:9px;color:var(--faint);letter-spacing:2px}.welcome-full .sh-arrow{width:1px;height:28px;background:var(--faint);position:relative}.welcome-full .sh-arrow::after{content:"";position:absolute;bottom:0;left:-3px;width:7px;height:7px;border-right:1px solid var(--faint);border-bottom:1px solid var(--faint);transform:rotate(45deg)}.blog-home{padding:64px 32px 96px}.blog-hero{display:block;border:1px solid var(--border);padding:52px 48px;margin-bottom:56px;border-radius:6px;background:var(--surface);text-decoration:none;transition:transform var(--dur-slow)ease-out,border-color var(--dur-slow)}.blog-hero:hover{transform:scale(1.005);border-color:var(--accent)}.hero-date{font-family:var(--font-mono);font-size:10px;color:var(--muted);letter-spacing:1px;margin-bottom:16px}.hero-title{font-size:30px;font-weight:500;letter-spacing:-1px;line-height:1.2;margin-bottom:10px;color:var(--white);font-family:var(--font-display)}.hero-excerpt{font-size:13px;color:var(--muted);max-width:420px;line-height:1.7;margin-bottom:16px}.hero-meta{font-size:10px;color:var(--faint)}.blog-section{margin-top:56px}.blog-section__head{display:flex;align-items:baseline;gap:16px;border-bottom:1px solid var(--border);padding-bottom:16px;margin-bottom:24px}.blog-section__head h2{font-size:24px;font-weight:450;letter-spacing:-.5px;color:var(--white);font-family:var(--font-display)}.section-more{margin-left:auto;font-family:var(--font-mono);font-size:11px;color:var(--muted);text-decoration:none;transition:color var(--dur-slow),transform var(--dur-fast)}.section-more:hover{color:var(--accent);transform:translateX(2px)}.grid-3{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}.grid-auto{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:16px}.blog-empty{grid-column:1/-1;border:1px dashed var(--border);border-radius:6px;padding:48px 24px;text-align:center;color:var(--muted)}.blog-empty span{font-size:11px;color:var(--faint)}.about-strip{border:1px solid var(--border);border-left:2px solid var(--accent);border-radius:6px;padding:24px 28px;color:var(--muted);font-size:13px;line-height:1.9}.about-tags{display:flex;flex-wrap:wrap;gap:8px;margin-top:16px}.post-card-cover{background:var(--surface);border:1px solid var(--border);border-radius:8px;overflow:hidden;display:flex;flex-direction:column;transition:transform 250ms ease-out,border-color var(--dur-slow)ease-out}.post-card-cover:hover{transform:translateY(-4px);border-color:var(--accent)}.pc-link{display:flex;flex-direction:column;height:100%;text-decoration:none;color:inherit}.pc-img{width:100%;aspect-ratio:3/2;background:var(--bg);border-bottom:1px solid var(--border);overflow:hidden;display:flex;align-items:center;justify-content:center}.pc-img img{width:100%;height:100%;object-fit:cover;display:block}.pc-img-placeholder{font-family:var(--font-mono);font-size:40px;color:var(--faint);user-select:none}.pc-body{padding:20px 22px 22px;flex:1;display:flex;flex-direction:column}.pc-date{font-family:var(--font-mono);font-size:10px;color:var(--muted);margin-bottom:8px;letter-spacing:.5px}.pc-title{font-size:15px;font-weight:500;line-height:1.35;margin-bottom:6px;color:var(--white);font-family:var(--font-display)}.pc-excerpt{font-size:11px;color:var(--muted);line-height:1.55}.pc-tags{display:flex;flex-wrap:wrap;gap:6px;margin-top:auto;padding-top:12px}.pc-tag{font-family:var(--font-mono);font-size:9px;color:var(--faint);border:1px solid var(--border);border-radius:3px;padding:2px 8px}.article-page{padding:32px 32px 96px}.article-layout{display:grid;grid-template-columns:1fr 220px;gap:36px;align-items:start}.article-main{border:1px solid var(--border);padding:44px 40px;background:var(--surface);border-radius:6px;min-width:0}.article-main--plain{max-width:720px;margin:0 auto}.article-header{margin-bottom:32px}.article-meta{display:flex;gap:14px;flex-wrap:wrap;font-size:10px;color:var(--muted);margin-bottom:16px;letter-spacing:1px}.article-title{font-size:32px;font-weight:500;letter-spacing:-1px;line-height:1.2;color:var(--white);font-family:var(--font-display)}.article-description{color:var(--muted);font-size:13px;line-height:1.7;margin-top:16px;max-width:520px}.article-cover{margin-bottom:32px}.article-cover img{width:100%;border:1px solid var(--border);border-radius:6px;display:block}.article-tags{display:flex;flex-wrap:wrap;gap:8px;margin-top:32px;padding-top:24px;border-top:1px solid var(--border)}.article-toc{position:sticky;top:88px;border:1px solid var(--border);padding:20px;background:var(--surface);border-radius:6px;max-height:calc(100vh - 120px);overflow-y:auto}.toc-t{font-family:var(--font-mono);font-size:10px;color:var(--muted);text-transform:uppercase;margin-bottom:12px;letter-spacing:2px}.article-toc nav ul{list-style:none}.article-toc li{list-style:none}.article-toc a{display:block;font-size:11px;color:var(--muted);text-decoration:none;padding:3px 0;border-left:1px solid transparent;padding-left:10px;line-height:1.6;transition:border-color var(--dur-slow),transform var(--dur-fast),color var(--dur-slow)}.article-toc a:hover,.article-toc a.active{border-left-color:var(--accent);color:var(--fg);transform:translateX(2px)}.article-toc ul ul a{padding-left:22px;font-size:10.5px}.post-nav{display:flex;flex-direction:column;gap:4px;border:1px solid var(--border);border-radius:6px;padding:14px 20px;margin-top:16px}.post-nav-label{font-size:9px;color:var(--faint);letter-spacing:2px}.post-nav a{font-size:14px;color:var(--fg);text-decoration:none;transition:color var(--dur-slow)}.post-nav a:hover{color:var(--accent)}.article-body{font-size:15px;line-height:1.9;color:#c9c9c4;font-weight:400}.article-body h1,.article-body h2,.article-body h3,.article-body h4{color:var(--white);font-family:var(--font-display);font-weight:500;letter-spacing:-.5px;margin:32px 0 12px;line-height:1.3}.article-body h1{font-size:24px}.article-body h2{font-size:22px;padding-bottom:8px;border-bottom:1px solid var(--border)}.article-body h3{font-size:17px}.article-body h4{font-size:15px}.article-body p{margin-bottom:16px}.article-body a{color:var(--fg);text-decoration:none;border-bottom:1px solid var(--faint);padding-bottom:1px;transition:border-color var(--dur-slow),color var(--dur-slow)}.article-body a:hover{border-bottom-color:var(--accent);color:var(--accent)}.article-body ul,.article-body ol{margin:0 0 16px 1.4em}.article-body li{margin-bottom:6px}.article-body li::marker{color:var(--faint)}.article-body img{max-width:100%;border:1px solid var(--border);border-radius:6px;display:block;margin:24px auto}.article-body figure{margin:24px 0}.article-body figcaption{font-family:var(--font-mono);font-size:10px;color:var(--muted);text-align:center;margin-top:8px}.article-body hr{border:none;border-top:1px solid var(--border);margin:32px 0}.article-body blockquote{border-left:1px solid var(--faint);padding:10px 18px;margin:16px 0;color:var(--muted);font-style:italic;font-size:13px}.article-body code{font-family:var(--font-mono);font-size:12.5px;background:var(--bg);border:1px solid var(--border);border-radius:3px;padding:1px 6px;color:var(--fg)}.article-body pre{background:#0a0a09;border:1px solid var(--border);border-left:2px solid var(--accent);border-radius:6px;padding:16px 20px;margin:16px 0;overflow-x:auto;font-family:var(--font-mono);font-size:12px;line-height:1.8}.article-body pre code{background:0 0;border:none;padding:0;font-size:inherit}.article-body table{width:100%;border-collapse:collapse;font-size:12px;margin:24px 0}.article-body th,.article-body td{padding:9px 16px;text-align:left;border-bottom:1px solid var(--border)}.article-body th{background:var(--bg);color:var(--muted);font-weight:500;font-size:10px;text-transform:uppercase;letter-spacing:1.5px;font-family:var(--font-mono)}.article-body tr:last-child td{border-bottom:none}.list-page,.terms-page,.archives-page{padding:48px 32px 96px}.list-header{padding-bottom:24px;margin-bottom:32px;border-bottom:1px solid var(--border)}.list-title{font-size:32px;font-weight:500;letter-spacing:-1px;line-height:1.1;color:var(--white);font-family:var(--font-display);margin:8px 0 4px}.list-count{font-size:11px;color:var(--faint)}.tags-cloud{gap:12px}.tags-cloud .tag-pill{padding:8px 16px;font-size:11px;justify-content:space-between}.archive-year{margin-bottom:40px}.archive-year-title{font-size:12px;color:var(--muted);letter-spacing:2px;border-bottom:1px solid var(--border);padding-bottom:12px;margin-bottom:4px}.archive-list{list-style:none}.archive-entry{display:flex;align-items:baseline;gap:16px;padding:12px 0;border-bottom:1px solid var(--border)}.archive-date{font-size:11px;color:var(--faint);flex-shrink:0}.archive-link{font-size:14px;color:var(--fg);text-decoration:none;transition:color var(--dur-slow),transform var(--dur-fast)}.archive-link:hover{color:var(--accent)}.archive-tags{display:flex;gap:6px;margin-left:auto;flex-wrap:wrap}.search-overlay{position:fixed;inset:0;background:rgba(0,0,0,.85);display:flex;align-items:flex-start;justify-content:center;padding-top:15vh;z-index:100}.search-box{width:480px;max-width:90vw}.sb-input-wrap{display:flex;align-items:center;gap:10px;padding:12px 16px;border:1px solid var(--border);border-radius:6px;background:var(--surface);transition:border-color var(--dur-slow)}.sb-input-wrap:focus-within{border-color:var(--accent)}.sb-prefix{font-family:var(--font-mono);font-size:14px;color:var(--accent)}.sb-input-wrap input{flex:1;background:0 0;border:none;color:var(--fg);font-size:16px;outline:none;font-family:inherit}.sb-input-wrap input::placeholder{color:var(--faint)}.sb-close{background:0 0;border:none;color:var(--faint);cursor:pointer;padding:4px;display:flex;transition:transform var(--dur-fast),color var(--dur-slow)}.sb-close:hover{transform:scale(1.1);color:var(--fg)}.sb-hint{font-size:11px;color:var(--faint);margin-top:8px;font-family:var(--font-mono)}.sb-status{font-size:11px;color:var(--muted);margin-top:12px;font-family:var(--font-mono)}.sb-results{margin-top:12px;display:flex;flex-direction:column;gap:4px}.sr-item{display:flex;flex-direction:column;gap:2px;padding:10px 14px;border-radius:4px;color:var(--muted);font-size:13px;cursor:pointer;transition:background var(--dur-normal),color var(--dur-normal),transform var(--dur-fast)}.sr-item:hover,.sr-item.selected{background:var(--surface);color:var(--fg);transform:translateX(2px)}.sr-title{color:var(--fg);font-weight:500}.sr-meta{font-family:var(--font-mono);font-size:10px;color:var(--faint)}.search-page{padding:48px 32px 96px}.search-box--page{margin-top:24px}.notfound{padding:96px 32px}.notfound-box{max-width:480px;margin:0 auto;text-align:center;border:1px solid var(--border);border-radius:6px;background:var(--surface);padding:56px 40px;display:flex;flex-direction:column;align-items:center;gap:16px}.notfound-code{font-size:12px;color:var(--accent);letter-spacing:2px}.notfound-box h1{font-size:28px;font-weight:500;color:var(--white);font-family:var(--font-display);letter-spacing:-1px}.notfound-box p{font-size:13px;color:var(--muted);margin-bottom:8px}.site-footer{padding:32px 36px;border-top:1px solid var(--border);display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:24px}.sf-left{font-size:11px;color:var(--faint);font-family:var(--font-mono)}.sf-center{font-size:14px;font-weight:500;color:var(--white);letter-spacing:1.5px;text-align:center}.sf-right{display:flex;gap:20px;justify-content:flex-end;font-family:var(--font-mono);font-size:11px}.sf-right a{color:var(--muted);text-decoration:none;transition:transform var(--dur-fast),color var(--dur-slow)}.sf-right a:hover{transform:translateY(-1px);color:var(--fg)}@media(max-width:900px){.article-layout{grid-template-columns:1fr}.article-toc{position:static;max-height:none;margin-top:24px}.grid-3{grid-template-columns:repeat(2,1fr)}}@media(max-width:768px){.nav-full{display:none}.nav-mobile{display:flex}.site-footer{grid-template-columns:1fr;text-align:center;gap:16px}.sf-right{justify-content:center}.blog-hero{padding:36px 28px}.hero-title{font-size:24px}.article-main{padding:28px 22px}.article-title{font-size:26px}.welcome-full .term-box{width:calc(100vw - 64px)}.search-overlay{padding-top:10vh}}@media(max-width:640px){.grid-3{grid-template-columns:1fr}.archive-entry{flex-wrap:wrap;gap:8px}.archive-tags{margin-left:0}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}html.js [data-reveal]{opacity:1;transform:none}}.auth-overlay{position:fixed;inset:0;background:rgba(0,0,0,.7);display:flex;align-items:center;justify-content:center;z-index:100}.auth-modal{background:var(--surface);border:1px solid var(--border);border-radius:8px;width:380px;max-width:90vw;padding:36px 32px;position:relative}.auth-close{position:absolute;top:14px;right:16px;background:0 0;border:none;color:var(--muted);cursor:pointer;display:flex;transition:transform var(--dur-fast),color var(--dur-slow)}.auth-close:hover{transform:scale(1.15);color:var(--fg)}.auth-panel .auth-title{font-size:18px;font-weight:500;margin-bottom:24px;color:var(--white);font-family:var(--font-display);letter-spacing:-.3px}.auth-field{display:flex;flex-direction:column;gap:6px;margin-bottom:16px}.auth-field span{font-size:10px;color:var(--muted);font-family:var(--font-mono);text-transform:uppercase;letter-spacing:1.5px}.auth-input{background:var(--bg);border:1px solid var(--border);border-radius:4px;padding:10px 14px;font-size:13px;font-family:inherit;color:var(--fg);outline:none;width:100%;transition:border-color var(--dur-normal)}.auth-input:focus{border-color:var(--accent)}.auth-input::placeholder{color:var(--faint)}.auth-divider{display:flex;align-items:center;gap:12px;margin:20px 0;font-family:var(--font-mono);font-size:11px;color:var(--faint)}.auth-divider::before,.auth-divider::after{content:"";flex:1;height:1px;background:var(--border)}.auth-switch{text-align:center;font-family:var(--font-mono);font-size:11px;color:var(--muted);margin-top:20px}.auth-link{background:0 0;border:none;color:var(--accent);font-family:var(--font-mono);font-size:11px;cursor:pointer;text-decoration:none;transition:color var(--dur-slow)}.auth-link:hover{color:var(--white)}.auth-error{font-family:var(--font-mono);font-size:11px;color:var(--danger);margin-bottom:12px;line-height:1.6}.auth-success{font-family:var(--font-mono);font-size:11px;color:var(--accent);margin-bottom:12px;line-height:1.6}.auth-btn{display:inline-flex;align-items:center;justify-content:center;gap:7px;padding:9px 22px;font-size:12px;font-weight:500;font-family:var(--font-mono);text-decoration:none;border:1px solid var(--border);border-radius:4px;background:0 0;color:var(--fg);cursor:pointer;transition:transform var(--dur-fast),border-color var(--dur-slow),color var(--dur-slow)}.auth-btn:hover{transform:scale(1.03);border-color:var(--muted)}.auth-btn-primary{background:var(--white);color:var(--bg);border-color:var(--white);font-weight:500}.auth-btn-primary:hover{transform:scale(1.03);border-color:var(--white)}.auth-btn-github{border-color:var(--border)}.auth-btn-github:hover{border-color:var(--accent);color:var(--accent)}.native-comments{margin-top:48px;border-top:1px solid var(--border);padding-top:32px}.comments-heading{display:flex;align-items:flex-end;justify-content:space-between;padding-bottom:16px;margin-bottom:20px;border-bottom:1px solid var(--border)}.comments-kicker{display:block;font-family:var(--font-mono);font-size:10px;color:var(--muted);letter-spacing:2px;margin-bottom:6px}.comments-heading h2{font-size:20px;font-weight:500;color:var(--white);font-family:var(--font-display)}.comments-count{font-family:var(--font-mono);font-size:12px;color:var(--accent);border:1px solid var(--accent);border-radius:99px;padding:2px 10px}.comments-notice{font-family:var(--font-mono);font-size:12px;padding:10px 14px;margin-bottom:16px;border:1px solid var(--border);border-radius:4px;color:var(--muted)}.comments-notice.is-success{border-color:var(--accent);color:var(--accent)}.comments-notice.is-error{border-color:var(--danger);color:var(--danger)}.comments-auth-wall{display:flex;flex-direction:column;align-items:center;gap:12px;padding:28px 24px;border:1px dashed var(--border);border-radius:6px;text-align:center}.comments-auth-wall p{font-size:13px;color:var(--muted)}.comments-button{display:inline-flex;align-items:center;gap:7px;padding:8px 16px;font-family:var(--font-mono);font-size:11px;color:var(--fg);background:0 0;border:1px solid var(--border);border-radius:4px;cursor:pointer;transition:transform var(--dur-fast),border-color var(--dur-slow),color var(--dur-slow)}.comments-button:hover{transform:scale(1.04);border-color:var(--accent)}.comments-button-primary{background:var(--white);color:var(--bg);border-color:var(--white);font-weight:500}.comments-button-primary:hover{border-color:var(--white)}.comment-form{margin-top:20px}.comment-editor-tabs{display:flex;gap:2px;border-bottom:1px solid var(--border)}.comment-tab{padding:8px 16px;font-family:var(--font-mono);font-size:11px;color:var(--muted);background:0 0;border:none;border-bottom:2px solid transparent;cursor:pointer;transition:color var(--dur-slow),border-color var(--dur-slow)}.comment-tab:hover,.comment-tab.is-active{color:var(--fg);border-bottom-color:var(--accent)}#commentInput{display:block;width:100%;margin-top:14px;background:var(--bg);border:1px solid var(--border);border-radius:4px;padding:14px 16px;font-size:13px;font-family:inherit;color:var(--fg);line-height:1.7;resize:vertical;outline:none;transition:border-color var(--dur-normal)}#commentInput:focus{border-color:var(--accent)}#commentInput::placeholder{color:var(--faint)}.comment-preview{margin-top:14px;background:var(--bg);border:1px solid var(--border);border-radius:4px;padding:14px 16px;font-size:13px;line-height:1.8;min-height:96px}.comment-preview-empty{color:var(--faint);font-size:12px}.comment-form-footer{display:flex;align-items:center;gap:12px;margin-top:12px}.comment-hint{font-family:var(--font-mono);font-size:10px;color:var(--faint)}.comment-count{font-family:var(--font-mono);font-size:10px;color:var(--faint);margin-left:auto}.comments-list{margin-top:28px;display:flex;flex-direction:column;gap:20px}.comments-empty{border:1px dashed var(--border);border-radius:6px;padding:32px;text-align:center;color:var(--muted);font-family:var(--font-mono);font-size:11px}.comment-card{display:flex;gap:14px}.comment-avatar{width:32px;height:32px;border-radius:4px;object-fit:cover;flex-shrink:0;border:1px solid var(--border)}.comment-avatar-fallback{display:flex;align-items:center;justify-content:center;background:var(--faint);color:var(--muted);font-family:var(--font-mono);font-size:12px}.comment-card-head{display:flex;align-items:center;gap:10px}.comment-card-head strong{font-size:13px;font-weight:500;color:var(--white)}.comment-card-head time{font-size:10px;color:var(--faint);font-family:var(--font-mono)}.comment-body{font-size:13px;color:var(--fg);line-height:1.65;margin-top:4px}.comment-body p{margin-bottom:8px}.comment-body p:last-child{margin-bottom:0}.comment-body code{font-family:var(--font-mono);font-size:11px;background:var(--bg);border:1px solid var(--border);border-radius:3px;padding:1px 5px}.comment-body blockquote{border-left:1px solid var(--faint);padding:4px 12px;color:var(--muted);font-style:italic;font-size:12px;margin:8px 0}.comment-card-actions{display:flex;gap:12px;margin-top:6px}.comment-action{background:0 0;border:none;font-size:10px;font-family:var(--font-mono);color:var(--faint);cursor:pointer;transition:color var(--dur-slow),transform var(--dur-fast)}.comment-action:hover{color:var(--accent);transform:scale(1.05)}.profile-page{max-width:640px}.page-state{text-align:center;padding:48px 24px;border:1px dashed var(--border);border-radius:6px;display:flex;flex-direction:column;align-items:center;gap:12px}.page-state p{font-size:13px;color:var(--muted)}.page-state h2{font-size:18px;font-weight:500;color:var(--white);font-family:var(--font-display)}.profile-header{display:flex;align-items:center;gap:20px;margin-bottom:28px}.profile-avatar{width:64px;height:64px;border-radius:6px;border:1px solid var(--border);background:var(--bg);object-fit:cover}.profile-avatar-lg{width:72px;height:72px}.profile-info h2{font-size:18px;font-weight:500;color:var(--white);font-family:var(--font-display);margin-bottom:4px}.profile-info .label{display:block;margin-top:2px}.profile-form-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}.profile-field{display:flex;flex-direction:column;gap:6px;font-family:var(--font-mono);font-size:10px;color:var(--muted);text-transform:uppercase;letter-spacing:1.5px}.profile-field-wide{grid-column:1/-1}.profile-field input,.profile-field textarea{font-family:var(--font-sans);background:var(--bg);border:1px solid var(--border);border-radius:4px;padding:10px 14px;font-size:13px;color:var(--fg);outline:none;transition:border-color var(--dur-normal)}.profile-field input:focus,.profile-field textarea:focus{border-color:var(--accent)}.profile-field textarea{resize:vertical;min-height:88px;line-height:1.7}.profile-actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:24px}.profile-upload{cursor:pointer}.admin-page{border:1px solid var(--border);border-radius:6px;background:var(--surface);padding:28px 32px;display:flex;flex-direction:column;gap:20px}.eyebrow{font-family:var(--font-mono);font-size:10px;color:var(--muted);letter-spacing:2px;margin-bottom:6px}.dashboard-heading{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap}.dashboard-heading h2{font-size:20px;font-weight:500;color:var(--white);font-family:var(--font-display)}.admin-subtitle{font-family:var(--font-mono);font-size:11px;color:var(--muted);margin-top:4px}.dashboard-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-top:8px}.admin-stat{background:var(--bg);border:1px solid var(--border);border-radius:6px;padding:18px 20px;display:flex;flex-direction:column;gap:4px;transition:transform var(--dur-fast),border-color var(--dur-slow)}.admin-stat:hover{transform:translateY(-2px);border-color:var(--muted)}.admin-stat-num{font-size:28px;font-weight:400;color:var(--white);font-family:var(--font-display)}.admin-stat-label{font-family:var(--font-mono);font-size:10px;color:var(--muted);text-transform:uppercase;letter-spacing:1.5px}.dashboard-section{margin-top:12px}.admin-section-heading{display:flex;align-items:baseline;justify-content:space-between;margin-bottom:12px}.admin-section-heading h3{font-size:16px;font-weight:500;color:var(--white);font-family:var(--font-display)}.admin-inline-link{font-family:var(--font-mono);font-size:11px;color:var(--accent);text-decoration:none;transition:color var(--dur-slow)}.admin-inline-link:hover{color:var(--white)}.admin-refresh{font-family:var(--font-mono);font-size:10px;color:var(--muted);background:0 0;border:1px solid var(--border);border-radius:4px;padding:4px 10px;cursor:pointer;transition:transform var(--dur-fast),border-color var(--dur-slow),color var(--dur-slow)}.admin-refresh:hover{transform:scale(1.04);border-color:var(--accent);color:var(--fg)}.admin-filter-row{margin-bottom:12px;display:flex;gap:12px;align-items:center}.admin-filter-row label{font-family:var(--font-mono);font-size:10px;color:var(--muted);display:flex;align-items:center;gap:8px;text-transform:uppercase;letter-spacing:1px}.admin-filter-row select{background:var(--bg);border:1px solid var(--border);border-radius:4px;padding:8px 12px;font-size:12px;color:var(--fg);font-family:inherit;outline:none}.admin-table-wrap{overflow-x:auto}.admin-table{width:100%;border-collapse:collapse;font-size:11px}.admin-table th,.admin-table td{padding:9px 12px;text-align:left;border-bottom:1px solid var(--border)}.admin-table th{color:var(--muted);font-weight:500;font-size:10px;text-transform:uppercase;letter-spacing:1.5px;font-family:var(--font-mono)}.admin-table td{color:var(--fg)}.admin-table tr:last-child td{border-bottom:none}.admin-empty{color:var(--muted);font-family:var(--font-mono);font-size:11px;text-align:center;padding:24px 12px}.media-upload-row{display:flex;gap:12px;align-items:center;margin-bottom:16px}.media-upload-row input[type=file]{font-family:var(--font-mono);font-size:11px;color:var(--muted)}.admin-media-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:12px}.admin-media-grid a{display:block}.admin-media-grid img{width:100%;aspect-ratio:4/3;object-fit:cover;border:1px solid var(--border);border-radius:4px;display:block;transition:transform var(--dur-fast),border-color var(--dur-slow)}.admin-media-grid img:hover{transform:translateY(-2px);border-color:var(--accent)}.admin-media-grid .media-name{display:block;font-family:var(--font-mono);font-size:9px;color:var(--faint);margin-top:6px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}@media(max-width:768px){.profile-form-grid{grid-template-columns:1fr}.dashboard-stats{grid-template-columns:repeat(2,1fr)}.admin-page{padding:20px 16px}}