:root{color-scheme:light dark;--canvas: #f6f2e9;--surface: #ebe5d9;--surface-strong: #e0d8c9;--ink: #171613;--ink-soft: #2f2d28;--muted: #716d64;--line: #d6cdbd;--line-strong: #3a372f;--accent: #0b6f9f;--accent-soft: #dce9eb;--code-bg: #efe7d9;--code-surface: #e8dfd0;--code-toolbar: #e2d7c5;--code-line: #cdbfae;--code-ink: #232522;--code-muted: #686257;--code-comment: #80786b;--code-keyword: #0b6f9f;--code-string: #587536;--code-number: #9a5b18;--code-function: #7f5a9d;--panel-shadow: none;--font-ui: "PingFang SC", "Noto Sans SC", "Hiragino Sans GB", "Microsoft YaHei", "Helvetica Neue", Arial, sans-serif;--font-display: "Noto Serif SC", "Source Han Serif SC", "Songti SC", "STSong", "Times New Roman", serif;--font-body: "Noto Serif SC", "Source Han Serif SC", "Songti SC", "STSong", "Times New Roman", serif;--font-mono: "SFMono-Regular", "Cascadia Code", Menlo, Consolas, monospace;background:var(--canvas);color:var(--ink);font-family:var(--font-ui);font-size:17px}:root[data-theme=dark]{color-scheme:dark;--canvas: #111214;--surface: #181a1e;--surface-strong: #20232a;--ink: #eee8dc;--ink-soft: #d5d0c5;--muted: #9a9da5;--line: #30333a;--line-strong: #5a5f6a;--accent: #8fa2ff;--accent-soft: #1d2235;--code-bg: #0d0f12;--code-surface: #141820;--code-toolbar: #181d25;--code-line: #343946;--code-ink: #eee8dc;--code-muted: #a8a6a0;--code-comment: #8a8f98;--code-keyword: #9caeff;--code-string: #9ad18f;--code-number: #f2c07b;--code-function: #e5a9f0;--panel-shadow: none}@media(prefers-color-scheme:dark){:root:not([data-theme=light]){color-scheme:dark;--canvas: #111214;--surface: #181a1e;--surface-strong: #20232a;--ink: #eee8dc;--ink-soft: #d5d0c5;--muted: #9a9da5;--line: #30333a;--line-strong: #5a5f6a;--accent: #8fa2ff;--accent-soft: #1d2235;--code-bg: #0d0f12;--code-surface: #141820;--code-toolbar: #181d25;--code-line: #343946;--code-ink: #eee8dc;--code-muted: #a8a6a0;--code-comment: #8a8f98;--code-keyword: #9caeff;--code-string: #9ad18f;--code-number: #f2c07b;--code-function: #e5a9f0;--panel-shadow: none}}*{box-sizing:border-box}html{scroll-padding-top:96px}body{min-height:100vh;margin:0;background:linear-gradient(90deg,color-mix(in srgb,var(--line) 48%,transparent) 1px,transparent 1px),var(--canvas);background-size:100% 100%;color:var(--ink);text-rendering:optimizeLegibility}a{color:var(--accent);text-decoration-thickness:1px;text-underline-offset:.18em}a:hover{color:var(--ink)}code,pre{font-family:var(--font-mono)}code{border:1px solid var(--line);background:var(--surface);padding:.08rem .25rem;font-size:.9em}.site-texture{position:fixed;inset:0;z-index:-1;pointer-events:none;background:repeating-linear-gradient(0deg,transparent 0,transparent 31px,color-mix(in srgb,var(--line) 28%,transparent) 32px);opacity:.45}.site-header{display:flex;align-items:stretch;justify-content:space-between;width:min(1180px,calc(100% - 32px));margin:0 auto;border-bottom:2px solid var(--line-strong);padding:18px 0 14px}.site-mark{color:var(--ink);font-family:var(--font-display);font-size:1.55rem;font-weight:700;line-height:1;text-decoration:none;text-transform:uppercase}.site-mark:after{content:"";display:block;width:100%;height:4px;margin-top:8px;background:var(--ink)}.site-nav{display:flex;flex-wrap:wrap;align-items:center;justify-content:flex-end;gap:6px;font-family:var(--font-mono);font-size:.76rem;text-transform:uppercase}.site-nav a,.theme-toggle{border:1px solid var(--line);background:var(--canvas);color:var(--ink);cursor:pointer;font:inherit;padding:.42rem .58rem;text-decoration:none}.site-nav a:hover,.theme-toggle:hover{border-color:var(--line-strong);background:var(--ink);color:var(--canvas)}.page-shell{width:min(1180px,calc(100% - 32px));margin:0 auto;padding:54px 0 88px}.page-article{width:min(1240px,calc(100% - 32px));padding-top:32px}.archive-entrance,.archive-hero,.restricted-prompt,.login-panel{width:min(900px,100%);display:grid;gap:20px}.archive-entrance{min-height:calc(100vh - 210px);align-content:center}.section{margin:0;color:var(--ink);font-family:var(--font-mono);font-size:.73rem;font-weight:700;line-height:1.2;text-transform:uppercase}h1,h2,h3{margin:0;color:var(--ink);font-family:var(--font-display);font-weight:700;line-height:1}h1{max-width:980px;font-size:4.2rem}.article h1{font-size:clamp(2.7rem,3.2vw,2.95rem);line-height:1.08}p{margin:0;line-height:1.72}.archive-entrance p,.archive-hero p,.restricted-prompt p,.login-panel p,.description{color:var(--ink-soft);font-family:var(--font-body);font-size:1rem;line-height:1.82}.archive-entrance p,.archive-hero p,.restricted-prompt p,.login-panel p{max-width:760px}.description{width:min(860px,100%);max-width:none}.entrance-actions,.section-pills{display:flex;flex-wrap:wrap;gap:8px}.entrance-actions a,.section-pills a,.restricted-prompt a{border:1px solid var(--line-strong);background:var(--ink);color:var(--canvas);font-family:var(--font-mono);font-size:.76rem;font-weight:700;padding:.66rem .78rem;text-decoration:none;text-transform:uppercase}.section-pills a{background:var(--canvas);color:var(--ink)}.entrance-actions a:hover,.section-pills a:hover,.restricted-prompt a:hover{background:var(--accent);border-color:var(--accent);color:#f6f2e9}.article-frame{width:min(860px,100%);margin:0 auto}.article{display:grid;gap:30px}.article-header{display:grid;gap:16px;border-bottom:2px solid var(--line-strong);padding-bottom:24px;justify-items:start}.eyebrow-row{display:flex;flex-wrap:wrap;align-items:center;gap:7px}.section-link,.visibility-badge,.tag-list li,.article-list-meta span{border:1px solid var(--line);background:var(--surface);color:var(--ink);font-family:var(--font-mono);font-size:.7rem;font-weight:700;line-height:1;padding:.36rem .48rem;text-decoration:none;text-transform:uppercase}.section-link{border-color:var(--line-strong)}.visibility-public,.visibility-login,.visibility-restricted{color:var(--accent)}.visibility-unlisted{color:var(--muted)}.security-watermarked,.security-guarded,.security-confidential{border-style:dashed;color:var(--line-strong)}.article-meta{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:0;margin:6px 0 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.article-meta div{min-width:0;border-right:1px solid var(--line);padding:10px 12px}.article-meta div:last-child{border-right:0}.article-meta dt{color:var(--muted);font-family:var(--font-mono);font-size:.67rem;font-weight:700;text-transform:uppercase}.article-meta dd{margin:3px 0 0;color:var(--ink);font-size:.84rem;line-height:1.3}.tag-list{display:flex;flex-wrap:wrap;gap:7px;margin:0;padding:0;list-style:none}.tag-list li{color:var(--muted)}.article-body,.admin-preview-content{display:grid;gap:1.05rem;color:var(--ink-soft);font-family:var(--font-body);font-size:1.06rem;line-height:1.84}:where(.article-body,.admin-preview-content)>*{margin:0;max-width:100%;width:100%}:where(.article-body,.admin-preview-content) :where(h1,h2,h3,h4,h5,h6){color:var(--ink);font-family:var(--font-display);font-weight:800;text-wrap:balance}:where(.article-body,.admin-preview-content) h1{margin-top:.3rem;font-size:2.34rem;line-height:1.08}:where(.article-body,.admin-preview-content) h2{margin-top:2.1rem;border-top:1px solid color-mix(in srgb,var(--line) 74%,transparent);padding-top:.86rem;font-size:1.9rem;line-height:1.14}:where(.article-body,.admin-preview-content) h3{margin-top:1.45rem;font-size:1.42rem;line-height:1.22}:where(.article-body,.admin-preview-content) h4{margin-top:1.15rem;border-left:3px solid var(--accent);padding-left:.72rem;font-size:1.16rem;line-height:1.34}:where(.article-body,.admin-preview-content) h5{margin-top:.95rem;color:color-mix(in srgb,var(--ink) 88%,var(--muted));font-size:1.02rem;line-height:1.36}:where(.article-body,.admin-preview-content) h6{margin-top:.8rem;color:var(--muted);font-family:var(--font-mono);font-size:.92rem;font-weight:700;line-height:1.45;text-transform:uppercase}:where(.article-body,.admin-preview-content) a{color:var(--accent);text-decoration-color:color-mix(in srgb,var(--accent) 48%,transparent);text-decoration-thickness:1px;text-underline-offset:.2em}:where(.article-body,.admin-preview-content) a:hover{color:var(--ink);text-decoration-color:var(--ink)}:where(.article-body,.admin-preview-content) :not(pre)>code{border:1px solid color-mix(in srgb,var(--line) 86%,transparent);background:color-mix(in srgb,var(--surface) 78%,var(--canvas));color:var(--ink);padding:.08rem .28rem;font-size:.86em}:where(.article-body,.admin-preview-content) blockquote{display:grid;gap:.76rem;border-left:3px solid var(--accent);background:color-mix(in srgb,var(--surface) 54%,transparent);color:color-mix(in srgb,var(--ink-soft) 88%,var(--ink));padding:.9rem 1rem}:where(.article-body,.admin-preview-content) blockquote>*{margin:0}:where(.article-body,.admin-preview-content) ul,:where(.article-body,.admin-preview-content) ol{display:grid;gap:.5rem;margin:0;padding-left:1.45rem}:where(.article-body,.admin-preview-content) li{padding-left:.2rem}:where(.article-body,.admin-preview-content) li::marker{color:var(--accent);font-family:var(--font-mono);font-size:.86em}:where(.article-body,.admin-preview-content) :where(ul,ol) :where(ul,ol){margin-top:.48rem;padding-left:1.2rem}:where(.article-body,.admin-preview-content) hr{width:100%;height:1px;margin:1.4rem 0;border:0;background:linear-gradient(90deg,transparent,var(--line-strong),transparent)}:where(.article-body,.admin-preview-content) img{display:block;max-width:100%;height:auto;border:1px solid var(--line);background:var(--surface)}:where(.article-body,.admin-preview-content) table{display:block;width:100%;max-width:100%;overflow-x:auto;border-collapse:collapse;font-family:var(--font-ui);font-size:.92rem;line-height:1.55}:where(.article-body,.admin-preview-content) :where(th,td){border:1px solid var(--line);padding:.62rem .72rem;text-align:left;vertical-align:top}:where(.article-body,.admin-preview-content) th{background:color-mix(in srgb,var(--surface-strong) 76%,var(--canvas));color:var(--ink);font-weight:700}:where(.article-body,.admin-preview-content) td{background:color-mix(in srgb,var(--surface) 44%,transparent)}.code-block{display:grid;gap:0;width:100%;min-width:0;border:1px solid var(--code-line);padding:10px;background:transparent;color:var(--code-ink);overflow:hidden}.code-block-toolbar{display:flex;align-items:center;justify-content:space-between;flex-wrap:nowrap;gap:12px;min-width:0;border:0;border-bottom:1px solid var(--code-line);background:var(--code-toolbar);padding:.55rem .72rem;color:var(--code-muted);font-family:var(--font-mono);font-size:.68rem;font-weight:700;text-transform:uppercase}.code-block-language{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.code-block-copy{flex:0 0 auto;border:1px solid var(--code-line);background:transparent;color:var(--code-ink);cursor:pointer;font:inherit;padding:.32rem .5rem;white-space:nowrap}.code-block-copy:hover{border-color:var(--accent);background:var(--accent);color:#f6f2e9}.code-block-copy:disabled{border-color:var(--code-line);background:transparent;color:var(--code-muted);cursor:not-allowed}:where(.article-body,.admin-preview-content) pre{overflow:auto;margin:0;border:0;background:transparent!important;color:var(--code-ink);padding:0;font-size:.88rem;line-height:1.68;scrollbar-color:color-mix(in srgb,var(--code-muted) 54%,transparent) transparent;scrollbar-width:thin;tab-size:2}.code-block pre{background:var(--code-bg)!important;padding:18px}:where(.article-body,.admin-preview-content)>pre{width:100%;min-width:0;border:1px solid var(--code-line);padding:10px;background:transparent!important;color:var(--code-ink)}:where(.article-body,.admin-preview-content) pre::-webkit-scrollbar{width:10px;height:10px}:where(.article-body,.admin-preview-content) pre::-webkit-scrollbar-track{background:transparent}:where(.article-body,.admin-preview-content) pre::-webkit-scrollbar-thumb{border:2px solid var(--code-bg);background:color-mix(in srgb,var(--code-muted) 54%,transparent)}:where(.article-body,.admin-preview-content) pre code{border:0;background:transparent;padding:0;color:inherit;font-size:inherit;overflow-wrap:normal;white-space:pre;word-break:normal}:where(.article-body,.admin-preview-content) pre code.hljs{display:block}body[data-security-copy-guard=true] .article-body,body[data-security-copy-guard=true] .article-body *{-webkit-user-select:none;user-select:none}.security-watermark{position:fixed;inset:-32vh -32vw;z-index:2147483000;display:grid;grid-template-columns:repeat(auto-fill,310px);grid-auto-rows:108px;gap:20px 18px;align-content:center;justify-content:center;overflow:hidden;pointer-events:none;transform:rotate(-16deg)}.security-watermark span{display:grid;align-content:center;width:310px;height:108px;color:color-mix(in srgb,var(--line-strong) 58%,transparent);font-family:var(--font-mono);font-size:.66rem;font-weight:700;gap:.16rem;line-height:1.25;opacity:.42;text-transform:uppercase}.security-watermark strong,.security-watermark em,.security-watermark small{display:block;min-width:0;overflow:visible;white-space:normal}.security-watermark strong{color:color-mix(in srgb,var(--ink) 62%,transparent);font-size:.72rem;font-style:normal}.security-watermark em{color:color-mix(in srgb,var(--line-strong) 54%,transparent);font-style:normal}.security-watermark small{color:color-mix(in srgb,var(--muted) 66%,transparent);font-size:.58rem}:root[data-theme=dark] .security-watermark span{color:color-mix(in srgb,var(--ink) 56%,transparent);opacity:.32}:root[data-theme=dark] .security-watermark strong{color:color-mix(in srgb,var(--ink) 62%,transparent)}:root[data-theme=dark] .security-watermark em,:root[data-theme=dark] .security-watermark small{color:color-mix(in srgb,var(--ink-soft) 44%,transparent)}@media(max-width:720px){.security-watermark{inset:-28vh -48vw;grid-template-columns:repeat(auto-fill,250px);grid-auto-rows:102px;gap:18px 14px}.security-watermark span{width:250px;height:102px;font-size:.58rem}}@media print{body[data-security-copy-guard=true] .article-body{visibility:hidden}.security-watermark{inset:-24vh -24vw;grid-template-columns:repeat(auto-fill,300px);grid-auto-rows:108px;transform:rotate(-18deg)}.security-watermark span{color:#000;opacity:.34}}:where(.article-body,.admin-preview-content)>pre>code{display:block;min-width:max-content;background:var(--code-bg);padding:18px}:where(.article-body,.admin-preview-content) pre .hljs{color:var(--code-ink)}:where(.article-body,.admin-preview-content) pre .hljs-comment,:where(.article-body,.admin-preview-content) pre .hljs-quote{color:var(--code-comment);font-style:italic}:where(.article-body,.admin-preview-content) pre .hljs-keyword,:where(.article-body,.admin-preview-content) pre .hljs-selector-tag,:where(.article-body,.admin-preview-content) pre .hljs-title,:where(.article-body,.admin-preview-content) pre .hljs-section,:where(.article-body,.admin-preview-content) pre .hljs-name{color:var(--code-keyword)}:where(.article-body,.admin-preview-content) pre .hljs-string,:where(.article-body,.admin-preview-content) pre .hljs-attr,:where(.article-body,.admin-preview-content) pre .hljs-symbol,:where(.article-body,.admin-preview-content) pre .hljs-bullet,:where(.article-body,.admin-preview-content) pre .hljs-regexp{color:var(--code-string)}:where(.article-body,.admin-preview-content) pre .hljs-number,:where(.article-body,.admin-preview-content) pre .hljs-literal,:where(.article-body,.admin-preview-content) pre .hljs-variable,:where(.article-body,.admin-preview-content) pre .hljs-template-variable{color:var(--code-number)}:where(.article-body,.admin-preview-content) pre .hljs-built_in,:where(.article-body,.admin-preview-content) pre .hljs-function,:where(.article-body,.admin-preview-content) pre .hljs-type,:where(.article-body,.admin-preview-content) pre .hljs-class{color:var(--code-function)}.article-layout{position:relative}.article-sidebar{position:fixed;top:156px;left:0;z-index:8;width:0;min-width:0;overflow:visible}.article-sidebar-handle{position:fixed;top:174px;left:0;z-index:12;display:none;align-items:center;justify-content:center;width:40px;height:56px;border:1px solid color-mix(in srgb,var(--line-strong) 72%,transparent);border-left:0;background:color-mix(in srgb,var(--surface) 92%,var(--canvas));color:var(--ink);cursor:pointer;font:inherit;line-height:1;box-shadow:0 16px 36px color-mix(in srgb,var(--canvas) 24%,transparent)}.article-sidebar-handle:hover{border-color:var(--accent);color:var(--accent)}.article-sidebar-drawer{position:fixed;top:156px;left:0;width:min(360px,calc(100vw - 24px));border:1px solid color-mix(in srgb,var(--line-strong) 72%,transparent);background:color-mix(in srgb,var(--surface) 92%,var(--canvas));box-shadow:0 22px 56px color-mix(in srgb,var(--canvas) 32%,transparent);backdrop-filter:blur(16px);transition:transform .22s ease,opacity .22s ease,box-shadow .22s ease}.article-layout[data-sidebar-state=closed] .article-sidebar-drawer{transform:translate(calc(-100% - 16px));opacity:0;visibility:hidden;pointer-events:none}.article-sidebar-head{display:grid;grid-template-columns:minmax(0,1fr) 44px;align-items:center;gap:8px;border-bottom:1px solid color-mix(in srgb,var(--line) 82%,transparent);padding:10px 12px;min-height:68px}.article-layout[data-sidebar-state=closed] .article-sidebar-handle{display:inline-flex}.article-sidebar-toggle{display:inline-flex;align-items:center;justify-content:center;width:44px;height:44px;border:1px solid var(--line);background:transparent;color:var(--ink);cursor:pointer;font:inherit;line-height:1}.article-sidebar-toggle:hover{border-color:var(--accent);color:var(--accent)}.article-sidebar-title{color:var(--ink);font-family:var(--font-ui);font-size:.72rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase}.article-sidebar-nav{display:grid;gap:10px;max-height:min(72vh,760px);overflow:auto;padding:14px 12px 16px}.article-sidebar-nav a{display:block;padding:.45rem .55rem;border-left:1px solid transparent;color:var(--muted);font-family:var(--font-ui);font-size:.82rem;line-height:1.35;text-decoration:none;transition:color .14s ease,border-color .14s ease,background .14s ease,transform .14s ease}.article-sidebar-nav a:hover{color:var(--accent);border-color:var(--accent);background:color-mix(in srgb,var(--accent-soft) 52%,transparent);transform:translate(2px)}.article-sidebar-nav .toc-depth-3{margin-left:12px;font-size:.78rem}@media(min-width:1101px){.article-layout{display:grid;grid-template-columns:minmax(250px,290px) minmax(0,1fr);gap:40px;align-items:start;width:100%}.article-layout[data-has-toc=false]{grid-template-columns:minmax(0,1fr);gap:0}.article-sidebar{position:sticky;top:124px;width:auto;min-width:0}.article-sidebar-drawer{position:sticky;top:124px;width:100%}.article-layout[data-sidebar-state=closed]{grid-template-columns:0 minmax(0,1fr);gap:0}.article-layout[data-has-toc=false][data-sidebar-state=closed]{grid-template-columns:minmax(0,1fr)}.article-layout[data-sidebar-state=closed] .article-sidebar-drawer{transform:translate(-110%)}.article-layout[data-sidebar-state=closed] .article-sidebar-handle{display:inline-flex}.article-frame{width:min(860px,100%);margin:0;justify-self:center}}.article-list{display:grid;gap:0;margin:38px 0 0;padding:0;list-style:none;border-top:2px solid var(--line-strong)}.article-list-item a{display:grid;grid-template-columns:138px minmax(0,1fr);gap:28px;border-bottom:1px solid var(--line);padding:22px 0;color:var(--ink);text-decoration:none}.article-list-item a:hover .article-list-title{color:var(--accent)}.article-list-date{color:var(--muted);font-family:var(--font-mono);font-size:.75rem;font-weight:700;line-height:1.4;text-transform:uppercase}.article-list-main{display:grid;gap:8px}.article-list-title{color:var(--ink);font-family:var(--font-display);font-size:1.62rem;font-weight:700;line-height:1.05}.article-list-description{color:var(--ink-soft);font-family:var(--font-body);font-size:1rem;line-height:1.58}.article-list-meta{display:flex;flex-wrap:wrap;gap:6px;margin-top:5px}.article-list-meta span{color:var(--muted)}.empty-state{margin-top:34px;color:var(--muted);font-family:var(--font-body)}.restricted-prompt,.login-panel{margin-inline:auto;border:1px solid var(--line-strong);background:var(--surface);box-shadow:var(--panel-shadow);padding:34px}.restricted-prompt h1,.login-panel h1{font-size:3.25rem}.login-form{display:grid;gap:15px;max-width:470px}.auth-view{display:grid;gap:20px}.auth-view[hidden]{display:none}.account-summary{border-left:4px solid var(--line-strong);padding-left:14px}.account-summary strong{color:var(--ink);font-weight:800}.login-form label{display:grid;gap:7px;color:var(--muted);font-family:var(--font-mono);font-size:.72rem;font-weight:700;text-transform:uppercase}.login-form input{width:100%;border:1px solid var(--line-strong);background:var(--canvas);color:var(--ink);font:inherit;padding:.78rem .82rem}.login-form input:focus{outline:2px solid var(--accent);outline-offset:2px}.login-actions{display:flex;flex-wrap:wrap;gap:8px}.login-actions button{border:1px solid var(--line-strong);background:var(--ink);color:var(--canvas);cursor:pointer;font-family:var(--font-mono);font-size:.76rem;font-weight:700;padding:.72rem .9rem;text-transform:uppercase}.login-actions button[type=button]{background:var(--canvas);color:var(--ink)}.login-actions button:hover{background:var(--accent);border-color:var(--accent);color:#f6f2e9}.login-message{min-height:1.5rem;color:var(--muted);font-size:.95rem}.article-disclaimer{width:min(860px,calc(100% - 32px));margin:-44px auto 56px;border-top:1px solid var(--line);padding-top:16px;color:color-mix(in srgb,var(--muted) 88%,var(--ink));font-family:var(--font-mono);font-size:.8rem;letter-spacing:.08em;text-transform:uppercase}.page-admin{width:min(1820px,calc(100% - 24px));padding-top:24px;padding-bottom:0;min-height:calc(100vh - 110px)}.admin-shell{display:grid;align-content:start;justify-items:center;height:var(--admin-viewport-height, 100%);min-height:100%}.admin-auth{width:min(720px,100%);display:grid;gap:20px;margin:42px auto 0;border:2px solid var(--line-strong);background:var(--surface);padding:42px}.admin-auth h1{font-size:3.6rem}.admin-auth p{color:var(--ink-soft)}.admin-login,.admin-field{display:grid;gap:7px}.admin-login{max-width:460px;gap:15px}.admin-login label,.admin-field span,.admin-switches label{color:var(--muted);font-family:var(--font-mono);font-size:.68rem;font-weight:700;text-transform:uppercase}.admin-login input,.admin-field input,.admin-field textarea,.admin-field select,.admin-search,.admin-permission-row input,.admin-permission-row select{width:100%;border:1px solid var(--line-strong);border-radius:0;background:var(--canvas);color:var(--ink);font:inherit;padding:.64rem .68rem}.admin-field textarea,.admin-permission-row input,.admin-permission-row select,.admin-search{font-family:var(--font-mono);font-size:.82rem}.admin-field textarea{resize:vertical}.admin-hint,.admin-inline-hint{margin:0;color:var(--ink-soft);font-family:var(--font-ui);font-size:.84rem;line-height:1.55}.admin-hint strong,.admin-inline-hint strong{color:var(--ink)}.admin-hint code,.admin-inline-hint code{font-family:var(--font-mono);font-size:.8rem}.admin-md textarea{min-height:clamp(460px,64vh,960px);height:auto;line-height:1.72;resize:vertical}.admin-toolbar,.admin-grid,.admin-panel,.admin-panel-head,.admin-editor,.admin-tree-list,.admin-tree-section,.admin-tree-series,.admin-tree-items,.admin-meta,.admin-permissions{min-width:0}.admin-app{width:100%;display:grid;align-content:start;gap:12px;min-height:0;height:100%;grid-template-rows:auto auto minmax(0,1fr);position:relative}.admin-app[hidden],.admin-auth[hidden],.admin-empty-state[hidden],.admin-editor-shell[hidden],.admin-meta-shell[hidden],.admin-preview[hidden]{display:none}.admin-toolbar{display:flex;flex-wrap:wrap;justify-content:space-between;gap:8px;border-top:2px solid var(--line-strong);border-bottom:2px solid var(--line-strong);padding:10px 0}.admin-banner{margin:0;border:1px solid var(--line-strong);background:color-mix(in srgb,var(--line-strong) 14%,var(--canvas));color:var(--ink-soft);font-family:var(--font-ui);font-size:.9rem;line-height:1.5;padding:.78rem .9rem}.admin-banner[data-kind=error]{border-color:color-mix(in srgb,#c96f5d 55%,var(--line-strong));background:color-mix(in srgb,#c96f5d 11%,var(--canvas))}.admin-banner[data-kind=warning]{border-color:color-mix(in srgb,#c4a05f 55%,var(--line-strong));background:color-mix(in srgb,#c4a05f 11%,var(--canvas))}.admin-toolbar-group,.admin-actions{display:flex;flex-wrap:wrap;gap:6px}.admin-toolbar button,.admin-actions button,.admin-toolbar select,.admin-permissions button,.admin-permission-row button{border:1px solid var(--line-strong);border-radius:0;background:var(--ink);color:var(--canvas);cursor:pointer;font-family:var(--font-mono);font-size:.7rem;font-weight:700;padding:.58rem .68rem;text-transform:uppercase}.admin-toolbar button:disabled,.admin-actions button:disabled,.admin-permissions button:disabled,.admin-permission-row button:disabled{cursor:not-allowed;opacity:.48}.admin-toolbar button:hover,.admin-actions button:hover,.admin-permissions button:hover,.admin-permission-row button:hover{border-color:var(--accent);background:var(--accent);color:#f6f2e9}.admin-toolbar select{background:var(--canvas);color:var(--ink);padding:.54rem .56rem}.admin-grid{display:grid;grid-template-columns:minmax(220px,280px) minmax(0,1.55fr) minmax(320px,.85fr);height:100%;min-height:0;border:1px solid var(--line-strong);overflow:hidden;transition:grid-template-columns .22s ease}.admin-grid[data-meta-collapsed=true]{grid-template-columns:minmax(220px,280px) minmax(0,1fr) 0}.admin-grid[data-focus-mode=true]{grid-template-columns:0 minmax(0,1fr) 0}.admin-grid[data-meta-collapsed=true] .admin-meta{opacity:0;pointer-events:none;transform:translate(32px)}.admin-grid[data-meta-collapsed=true] .admin-editor{border-right:0}.admin-grid[data-focus-mode=true] .admin-tree,.admin-grid[data-focus-mode=true] .admin-meta{display:none}.admin-panel{display:grid;align-content:start;gap:14px;min-height:0;overflow:hidden;border-right:1px solid var(--line-strong);background:color-mix(in srgb,var(--surface) 68%,transparent);padding:14px}.admin-tree{grid-column:1}.admin-editor{grid-column:2}.admin-meta{grid-column:3}.admin-editor-shell,.admin-meta-shell{display:grid;gap:14px;min-height:0;overflow:auto;padding-right:6px}.admin-empty-state{display:grid;align-content:start;gap:12px;min-height:240px;border:1px dashed var(--line-strong);background:color-mix(in srgb,var(--surface) 62%,transparent);padding:20px}.admin-empty-state h2{margin:0;color:var(--ink);font-family:var(--font-display);font-size:2rem;line-height:1.02}.admin-empty-state p:last-child{margin:0;color:var(--ink-soft);font-family:var(--font-ui);font-size:.96rem;line-height:1.6}.admin-panel:last-child{border-right:0}.admin-panel-head{display:flex;align-items:center;justify-content:space-between;gap:10px;border-bottom:1px solid var(--line);padding-bottom:10px}.admin-panel-head span{color:var(--muted);font-family:var(--font-mono);font-size:.68rem;text-transform:uppercase}.admin-meta-head-actions{display:flex;align-items:center;gap:8px}.admin-panel-head button{border:1px solid var(--line-strong);background:transparent;color:var(--ink);cursor:pointer;font-family:var(--font-mono);font-size:.65rem;font-weight:700;padding:.28rem .45rem;text-transform:uppercase}.admin-panel-head button:hover{background:var(--ink);color:var(--canvas)}.admin-tree-list{display:grid;gap:18px;min-height:0;overflow:auto;padding-right:4px}.admin-tree-section h2{border-bottom:1px solid var(--line-strong);padding-bottom:7px;font-family:var(--font-display);font-size:1.4rem;line-height:1.05}.admin-tree-series-label{margin:12px 0 6px;color:var(--muted);font-family:var(--font-mono);font-size:.66rem;font-weight:700;text-transform:uppercase}.admin-tree-items{display:grid;gap:0;border-top:1px solid var(--line)}.admin-tree-item{display:grid;gap:4px;width:100%;border:0;border-bottom:1px solid var(--line);background:transparent;color:var(--ink);cursor:pointer;padding:10px 0;text-align:left}.admin-tree-item strong{overflow-wrap:anywhere;font-family:var(--font-display);font-size:1rem;line-height:1.05}.admin-tree-item span{color:var(--muted);font-family:var(--font-mono);font-size:.67rem}.admin-tree-item:hover strong,.admin-tree-item.is-active strong{color:var(--accent)}.admin-editor{background:var(--canvas);--admin-workbench-height: clamp(420px, calc(var(--admin-viewport-height, 72vh) - 300px), 900px)}.admin-editor{overflow:hidden}.admin-tree{grid-template-rows:auto auto minmax(0,1fr)}.admin-editor{grid-template-rows:auto minmax(0,1fr)}.admin-meta{grid-template-rows:auto minmax(0,1fr);min-width:0;transition:opacity .18s ease,transform .22s ease}.admin-preview-panel{position:relative;min-width:0;min-height:0}.admin-editor-layout{display:grid;grid-template-columns:minmax(0,1fr)}.admin-editor-column,.admin-preview-panel{display:grid;gap:14px;min-width:0}.admin-editor-column{align-content:start}.admin-editor-topbar{display:grid;grid-template-columns:minmax(0,1fr);gap:14px;align-items:start}.admin-editor-workbench{display:grid;grid-template-columns:minmax(0,1fr);gap:18px;align-items:start;min-height:0}.admin-grid[data-split-preview=true] .admin-editor-workbench{grid-template-columns:minmax(0,1fr) minmax(360px,.92fr)}.admin-grid[data-focus-mode=true] .admin-editor{border-right:0;background:var(--canvas);padding:14px;display:grid;grid-template-rows:minmax(0,1fr);height:100%}.admin-grid[data-focus-mode=true] .admin-panel-head,.admin-grid[data-focus-mode=true] .admin-editor-topbar,.admin-grid[data-focus-mode=true] .admin-draft-banner,.admin-grid[data-focus-mode=true] .admin-title,.admin-grid[data-focus-mode=true] .admin-desc{display:none}.admin-grid[data-focus-mode=true] .admin-editor-shell{gap:0;overflow:hidden;padding-right:0;height:100%}.admin-grid[data-focus-mode=true] .admin-editor-layout,.admin-grid[data-focus-mode=true] .admin-editor-column{height:100%;min-height:0}.admin-grid[data-focus-mode=true] .admin-editor-column{align-content:stretch;grid-template-rows:minmax(0,1fr)}.admin-grid[data-focus-mode=true] .admin-editor-workbench{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:12px;height:100%;min-height:0;padding:0;align-items:stretch}.admin-grid[data-focus-mode=true] .admin-markdown-shell,.admin-grid[data-focus-mode=true] .admin-preview-panel,.admin-grid[data-focus-mode=true] .admin-preview-card{height:100%;min-height:0}.admin-grid[data-focus-mode=true] .admin-markdown-shell,.admin-grid[data-focus-mode=true] .admin-preview-card{grid-template-rows:auto minmax(0,1fr)}.admin-grid[data-focus-mode=true] .admin-markdown-panel.is-active,.admin-grid[data-focus-mode=true] .admin-markdown-panel .admin-field,.admin-grid[data-focus-mode=true] .admin-markdown-panel .admin-md{height:100%;min-height:0}.admin-grid[data-focus-mode=true] .admin-markdown-panel.is-active,.admin-grid[data-focus-mode=true] .admin-markdown-panel .admin-md{display:grid}.admin-grid[data-focus-mode=true] .admin-markdown-panel .admin-md{grid-template-rows:auto minmax(0,1fr)}.admin-grid[data-focus-mode=true] .admin-markdown-header{position:sticky;top:0;z-index:1;background:color-mix(in srgb,var(--surface) 62%,var(--canvas))}.admin-grid[data-focus-mode=true] .admin-markdown-tabs button[data-admin-tab=preview]{display:none}.admin-markdown-shell,.admin-preview-card{display:grid;gap:0;min-height:0;border:1px solid color-mix(in srgb,var(--line-strong) 72%,var(--line));background:color-mix(in srgb,var(--surface) 70%,var(--canvas))}.admin-markdown-header{display:grid;gap:0;border-bottom:1px solid color-mix(in srgb,var(--line-strong) 72%,var(--line));background:color-mix(in srgb,var(--surface) 78%,var(--canvas))}.admin-markdown-tabs{display:flex;align-items:stretch;gap:0;border-bottom:1px solid var(--line);background:color-mix(in srgb,var(--surface) 82%,var(--canvas))}.admin-markdown-tabs button,.admin-markdown-tabs-static span{border:0;border-right:1px solid var(--line);background:transparent;color:var(--muted);display:inline-flex;align-items:center;font-family:var(--font-mono);font-size:.72rem;font-weight:700;letter-spacing:.04em;padding:.78rem 1rem;text-transform:uppercase}.admin-markdown-tabs button{cursor:pointer}.admin-markdown-tabs button:hover{background:color-mix(in srgb,var(--accent-soft) 46%,transparent);color:var(--ink)}.admin-markdown-tabs button.is-active,.admin-markdown-tabs-static span.is-active{background:var(--canvas);color:var(--ink);box-shadow:inset 0 3px 0 var(--accent)}.admin-markdown-tabs button:disabled{cursor:default;opacity:1}.admin-markdown-header .admin-toolbar{display:flex;flex-wrap:wrap;justify-content:space-between;gap:10px;border:0;padding:10px 12px 11px}.admin-toolbar[data-admin-toolbar-panel=write]{border-bottom:1px solid var(--line)}.admin-markdown-header .admin-toolbar-group{align-items:center;gap:4px;border:1px solid color-mix(in srgb,var(--line) 84%,transparent);background:color-mix(in srgb,var(--canvas) 64%,transparent);padding:4px}.admin-markdown-header .admin-toolbar button,.admin-markdown-header .admin-toolbar select{min-height:34px;border-color:transparent;background:transparent;color:var(--ink);padding:.42rem .52rem}.admin-markdown-header .admin-toolbar button:hover{border-color:color-mix(in srgb,var(--accent) 58%,transparent);background:var(--accent);color:#f6f2e9}.admin-markdown-header .admin-toolbar select{border-color:color-mix(in srgb,var(--line) 70%,transparent);background:color-mix(in srgb,var(--surface) 64%,var(--canvas));color:var(--muted)}.admin-markdown-panel{display:none}.admin-markdown-panel.is-active{display:block;min-height:0}.admin-markdown-panel .admin-field{gap:0}.admin-markdown-panel .admin-field span{padding:14px 18px 0}.admin-markdown-panel .admin-md textarea{border:0;outline:0;background:repeating-linear-gradient(0deg,transparent 0,transparent calc(1.72rem - 1px),color-mix(in srgb,var(--line) 28%,transparent) 1.72rem),color-mix(in srgb,var(--canvas) 94%,var(--surface));color:var(--ink);caret-color:var(--accent);font-size:.92rem;line-height:1.72;padding:18px;min-height:var(--admin-workbench-height);height:var(--admin-workbench-height);resize:vertical;tab-size:2}.admin-markdown-panel .admin-md textarea:focus{box-shadow:inset 0 0 0 2px color-mix(in srgb,var(--accent) 58%,transparent)}.admin-markdown-panel .admin-md textarea::selection{background:color-mix(in srgb,var(--accent) 24%,transparent)}.admin-grid[data-focus-mode=true] .admin-markdown-panel .admin-md textarea,.admin-grid[data-focus-mode=true] .admin-preview-scroll{min-height:0;height:100%;resize:none}.admin-draft-banner{border:1px solid color-mix(in srgb,var(--accent) 45%,var(--line-strong));background:color-mix(in srgb,var(--accent) 10%,var(--canvas));color:var(--ink-soft);font-family:var(--font-ui);font-size:.86rem;line-height:1.45;padding:.72rem .82rem;cursor:pointer}.admin-preview-scroll{min-height:var(--admin-workbench-height);height:var(--admin-workbench-height);overflow:auto;border:0;background:color-mix(in srgb,var(--canvas) 94%,var(--surface));margin-top:0}.admin-preview-content{min-height:100%;padding:24px 26px 32px}.admin-recent-assets{display:grid;gap:12px;border:1px solid var(--line);background:color-mix(in srgb,var(--surface) 68%,transparent);padding:12px}.admin-assets-list{display:grid;gap:12px}.admin-asset-card{display:grid;grid-template-columns:84px minmax(0,1fr);gap:12px;border:1px solid var(--line);background:color-mix(in srgb,var(--surface) 70%,transparent);padding:10px}.admin-asset-card img{width:84px;height:84px;object-fit:cover;background:var(--surface-strong)}.admin-asset-meta{display:grid;gap:8px;min-width:0}.admin-asset-meta strong{overflow-wrap:anywhere}.admin-asset-meta .admin-link-actions button{padding:.46rem .55rem}.admin-meta{align-content:start;overflow:hidden}.admin-title input{min-height:4.25rem}.admin-desc textarea{min-height:6rem}.admin-title input{font-family:var(--font-display);font-size:2rem;font-weight:700}.admin-warning{margin:0;border:1px solid color-mix(in srgb,var(--accent) 45%,var(--line-strong));background:color-mix(in srgb,var(--accent) 10%,var(--canvas));color:var(--ink-soft);font-family:var(--font-ui);font-size:.88rem;line-height:1.5;padding:.7rem .8rem}.admin-switches{display:grid;grid-template-columns:1fr 1fr;gap:7px}.admin-link-field input[readonly]{color:var(--ink-soft)}.admin-link-actions{display:flex;flex-wrap:wrap;gap:8px}.admin-switches label{display:flex;align-items:center;gap:6px;border:1px solid var(--line);background:var(--canvas);padding:.52rem}.admin-permissions{display:grid;gap:12px;margin-top:8px;border-top:2px solid var(--line-strong);padding-top:14px}.admin-permission-row{display:grid;gap:7px;border-bottom:1px solid var(--line);padding:0 0 12px}.admin-permission-fields{display:grid;gap:10px}.admin-permission-actions{display:flex;align-items:center;justify-content:space-between;gap:10px}.admin-empty,.admin-message{color:var(--muted);font-family:var(--font-ui);font-size:.92rem}.admin-toast{position:fixed;top:86px;right:max(16px,calc((100vw - 1500px)/2 + 16px));z-index:20;min-width:min(320px,calc(100vw - 32px));max-width:min(440px,calc(100vw - 32px));min-height:0;border:1px solid var(--line-strong);background:color-mix(in srgb,var(--surface) 92%,var(--canvas));box-shadow:0 10px 32px color-mix(in srgb,var(--canvas) 50%,transparent);color:var(--ink);padding:.78rem .92rem;line-height:1.5}.admin-toast[data-kind=success]{border-color:color-mix(in srgb,#5a8a66 55%,var(--line-strong));background:color-mix(in srgb,#5a8a66 14%,var(--canvas))}.admin-toast[data-kind=error]{border-color:color-mix(in srgb,#c96f5d 55%,var(--line-strong));background:color-mix(in srgb,#c96f5d 11%,var(--canvas))}.admin-toast[data-kind=info]{border-color:var(--line-strong);background:color-mix(in srgb,var(--surface) 92%,var(--canvas))}@media(max-width:1100px){.article-sidebar{top:124px;width:0}.article-sidebar-handle{top:142px}.article-sidebar-drawer{top:124px;width:min(340px,calc(100vw - 16px))}.article-layout[data-sidebar-state=closed] .article-sidebar-drawer{transform:translate(calc(-100% - 16px))}.article-sidebar-nav{max-height:min(60vh,680px)}.admin-grid{grid-template-columns:1fr;height:auto;min-height:0;border:1px solid var(--line-strong);overflow:visible}.admin-panel{border-right:0;border-bottom:1px solid var(--line-strong)}.admin-tree,.admin-editor,.admin-meta{grid-column:auto}.admin-tree-list{max-height:320px}.admin-editor,.admin-meta{max-height:none;overflow:visible}.admin-editor-layout,.admin-grid[data-meta-collapsed=true],.admin-grid[data-focus-mode=true]{grid-template-columns:1fr}.admin-grid[data-meta-collapsed=true] .admin-meta{display:none}.admin-editor-topbar,.admin-grid[data-split-preview=true] .admin-editor-workbench{grid-template-columns:1fr}.admin-grid[data-focus-mode=true] .admin-editor{padding:14px}.admin-grid[data-focus-mode=true] .admin-editor-workbench{grid-template-columns:1fr;height:auto}.admin-editor-shell,.admin-meta-shell{overflow:visible;padding-right:0}.admin-editor-column,.admin-preview-panel{height:auto;grid-template-rows:auto}.admin-md textarea{min-height:54vh;height:auto;resize:vertical}.admin-preview-scroll{min-height:54vh;max-height:none;height:auto}.admin-grid[data-focus-mode=true] .admin-markdown-panel .admin-md textarea,.admin-grid[data-focus-mode=true] .admin-preview-scroll{min-height:54vh;height:auto}.admin-toast{position:sticky;top:12px;right:auto;min-width:0;max-width:100%}}@media(max-width:900px){h1{font-size:3.35rem}.article h1{font-size:2.7rem}}@media(max-width:640px){:root{font-size:16px}.site-header{display:grid;gap:16px}.site-nav{justify-content:flex-start}.page-shell{width:min(100% - 24px,1180px);padding-top:38px}.page-article{padding-top:24px}.page-admin{padding-bottom:24px}h1,.article h1,.restricted-prompt h1,.login-panel h1{font-size:2.4rem}.article-list-item a{grid-template-columns:1fr;gap:8px}.article-meta{grid-template-columns:1fr 1fr}.article-meta div:nth-child(2n){border-right:0}.restricted-prompt,.login-panel,.admin-auth,.admin-panel{padding:24px}.article-sidebar{top:114px}.article-sidebar-handle{top:132px}.article-sidebar-drawer{top:114px;width:calc(100vw - 16px)}.admin-title input{font-size:1.45rem}.admin-preview-content{font-size:1rem}.admin-switches{grid-template-columns:1fr}.admin-permission-actions{align-items:flex-start;flex-direction:column}}
