@font-face{font-family:Archivo Variable;font-style:normal;font-display:swap;font-weight:100 900;font-stretch:62% 125%;src:url(/assets/archivo-vietnamese-wdth-normal-rJmnGBSt.woff2)format("woff2-variations");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Archivo Variable;font-style:normal;font-display:swap;font-weight:100 900;font-stretch:62% 125%;src:url(/assets/archivo-latin-ext-wdth-normal-7khWdh9v.woff2)format("woff2-variations");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Archivo Variable;font-style:normal;font-display:swap;font-weight:100 900;font-stretch:62% 125%;src:url(/assets/archivo-latin-wdth-normal-DY7AcnAa.woff2)format("woff2-variations");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-mono-cyrillic-ext-400-normal-xuaO2J-f.woff2)format("woff2"),url(/assets/ibm-plex-mono-cyrillic-ext-400-normal-DMdlQ8Kv.woff)format("woff");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-mono-cyrillic-400-normal-BSMlKf0J.woff2)format("woff2"),url(/assets/ibm-plex-mono-cyrillic-400-normal-CEL4l2ZJ.woff)format("woff");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-mono-vietnamese-400-normal-BulugwFq.woff2)format("woff2"),url(/assets/ibm-plex-mono-vietnamese-400-normal-DDuiU_S-.woff)format("woff");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-mono-latin-ext-400-normal-BmRBH3aV.woff2)format("woff2"),url(/assets/ibm-plex-mono-latin-ext-400-normal-D3D2R8hC.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-mono-latin-400-normal-DMJ8VG8y.woff2)format("woff2"),url(/assets/ibm-plex-mono-latin-400-normal-CvHOgSBP.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/ibm-plex-mono-cyrillic-ext-600-normal-V-xxqcpd.woff2)format("woff2"),url(/assets/ibm-plex-mono-cyrillic-ext-600-normal-9HEixskS.woff)format("woff");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/ibm-plex-mono-cyrillic-600-normal-CTOM6hUh.woff2)format("woff2"),url(/assets/ibm-plex-mono-cyrillic-600-normal-fLZuRloM.woff)format("woff");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/ibm-plex-mono-vietnamese-600-normal-D2EvbN8M.woff2)format("woff2"),url(/assets/ibm-plex-mono-vietnamese-600-normal-iLQfcSjf.woff)format("woff");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/ibm-plex-mono-latin-ext-600-normal-D38SheWl.woff2)format("woff2"),url(/assets/ibm-plex-mono-latin-ext-600-normal-DmB0ttJJ.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/ibm-plex-mono-latin-600-normal-BgSNZQsw.woff2)format("woff2"),url(/assets/ibm-plex-mono-latin-600-normal-DWFSQ4vo.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--void:#060606;--panel:#131313;--panel-raised:#1b1b1b;--line:#262626;--line-strong:#3a3a3a;--bone:#edebe6;--ash:#8c8a86;--ash-dim:#5e5c59;--signal:#ff2b2b;--signal-deep:#b3161a;--tube:#d9f1ff;--display:"Archivo Variable", "Arial Narrow", sans-serif;--text:"Archivo Variable", system-ui, sans-serif;--mono:"IBM Plex Mono", ui-monospace, Consolas, monospace;--gutter:clamp(16px, 4vw, 40px);--measure:68ch;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*,:before,:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%;background:var(--void)}body{background:var(--void);color:var(--bone);font-family:var(--text);font-variation-settings:"wdth" 100;-webkit-font-smoothing:antialiased;margin:0;font-size:17px;line-height:1.6}body:after{content:"";z-index:1000;pointer-events:none;opacity:.07;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='220' height='220'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='3' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 .9 0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");position:fixed;inset:0}::selection{background:var(--signal);color:var(--void)}a{color:inherit;-webkit-text-decoration-color:var(--line-strong);text-decoration-color:var(--line-strong);text-underline-offset:3px;transition:color .15s,text-decoration-color .15s}a:hover{color:var(--signal);-webkit-text-decoration-color:var(--signal);text-decoration-color:var(--signal)}:focus-visible{outline:2px solid var(--signal);outline-offset:3px}input,textarea,button{font:inherit;color:inherit}h1,h2,h3{font-family:var(--display);margin:0;font-weight:800;line-height:1.05}.sr-only{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.mono{font-family:var(--mono);letter-spacing:.01em;font-size:.82rem}.muted{color:var(--ash)}.small{font-size:.82rem}.app{flex-direction:column;min-height:100vh;display:flex}.container{width:100%;max-width:1120px;padding:0 var(--gutter);margin:0 auto}.main{flex:1;padding-top:48px;padding-bottom:96px}.site-header{z-index:50;background:color-mix(in srgb, var(--void) 88%, transparent);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-bottom:1px solid var(--line);position:sticky;top:0}.header-inner{align-items:center;gap:32px;height:64px;display:flex}.brand{font-family:var(--display);text-transform:uppercase;letter-spacing:.02em;align-items:center;gap:12px;font-size:1.05rem;font-weight:800;font-stretch:125%;text-decoration:none;display:flex}.brand:hover{color:var(--bone)}.brand-mark{background:var(--signal);width:12px;height:12px;box-shadow:0 0 12px color-mix(in srgb, var(--signal) 70%, transparent)}.nav{font-family:var(--mono);flex:1;gap:24px;font-size:.85rem;display:flex}.nav a{color:var(--ash);border-bottom:1px solid #0000;padding:4px 0;text-decoration:none}.nav a:hover{color:var(--bone)}.nav a.active{color:var(--bone);border-bottom-color:var(--signal)}.session{align-items:center;gap:16px;display:flex}.user-chip{text-overflow:ellipsis;white-space:nowrap;max-width:180px;font-family:var(--mono);color:var(--ash);font-size:.85rem;overflow:hidden}.site-footer{border-top:1px solid var(--line);padding:28px 0}.footer-inner{font-family:var(--mono);color:var(--ash-dim);flex-wrap:wrap;justify-content:space-between;gap:16px;font-size:.8rem;display:flex}@media (width<=640px){.header-inner{gap:16px}.brand-word,.user-chip{display:none}.nav{gap:16px}}.btn{color:var(--bone);font-family:var(--mono);white-space:nowrap;cursor:pointer;background:0 0;border:0;align-items:center;gap:.55em;padding:6px 2px;font-size:.85rem;line-height:1.2;text-decoration:none;display:inline-flex}.btn:before{content:"[";color:var(--ash-dim);transition:transform .15s,color .15s}.btn:after{content:"]";color:var(--ash-dim);transition:transform .15s,color .15s}.btn:hover:not(:disabled){color:var(--signal)}.btn:hover:not(:disabled):before{color:var(--signal);transform:translate(-3px)}.btn:hover:not(:disabled):after{color:var(--signal);transform:translate(3px)}.btn:disabled{opacity:.4;cursor:not-allowed}.btn-solid{background:var(--bone);color:var(--void);padding:10px 18px;font-weight:600}.btn-solid:before,.btn-solid:after{content:none}.btn-solid:hover:not(:disabled){background:var(--signal);color:var(--void)}.btn-signal{color:var(--signal)}.btn-signal:before,.btn-signal:after{color:var(--signal-deep)}.btn-block{justify-content:center;width:100%}.tag{font-family:var(--mono);color:var(--ash);align-items:center;gap:6px;font-size:.75rem;display:inline-flex}.tag:before{content:"";background:var(--ash-dim);width:7px;height:7px}.tag-draft{color:var(--signal)}.tag-draft:before{background:var(--signal)}.alert{border-left:3px solid var(--signal);background:color-mix(in srgb, var(--signal) 9%, var(--panel));font-family:var(--mono);justify-content:space-between;align-items:center;gap:16px;margin:0 0 20px;padding:12px 16px;font-size:.85rem;display:flex}.loading{font-family:var(--mono);color:var(--ash);padding:64px 0;font-size:.85rem}.loading:after{content:"_";color:var(--signal);margin-left:2px;animation:1s step-end infinite caret}@keyframes caret{50%{opacity:0}}.empty{max-width:560px;padding:96px 0}.empty h2{text-transform:uppercase;margin-bottom:16px;font-size:clamp(1.7rem,4vw,2.4rem);font-stretch:125%}.empty p{margin:0 0 24px}.pagination{border-top:1px solid var(--line);justify-content:space-between;align-items:center;gap:16px;margin-top:40px;padding-top:20px;display:flex}.toasts{z-index:900;flex-direction:column;gap:8px;max-width:calc(100vw - 40px);display:flex;position:fixed;bottom:20px;right:20px}.toast{border:1px solid var(--line-strong);border-left:3px solid var(--bone);background:var(--panel-raised);min-width:240px;font-family:var(--mono);padding:14px 18px;font-size:.85rem;animation:.18s ease-out toast-in;box-shadow:0 16px 40px #0009}.toast-error{border-left-color:var(--signal)}@keyframes toast-in{0%{opacity:0;transform:translateY(6px)}}.hero{margin:-48px calc(var(--gutter) * -1) 56px;padding:104px var(--gutter) 56px;border-bottom:1px solid var(--line);position:relative;overflow:hidden;container-type:inline-size}.hero:before{content:"";pointer-events:none;background:radial-gradient(ellipse 60% 70% at 50% 0%, color-mix(in srgb, var(--tube) 16%, transparent), transparent 70%);position:absolute;inset:0}.tube{background:var(--tube);width:min(420px,60%);height:6px;box-shadow:0 0 12px 2px color-mix(in srgb, var(--tube) 80%, transparent), 0 0 60px 12px color-mix(in srgb, var(--tube) 25%, transparent);border-radius:3px;position:absolute;top:40px;left:50%;translate:-50%}.hero-title{white-space:nowrap;letter-spacing:-.03em;text-transform:uppercase;text-align:center;color:var(--bone);text-shadow:0 -2px 30px color-mix(in srgb, var(--tube) 18%, transparent);font-size:min(13cqi,7rem);font-weight:900;font-stretch:125%;line-height:.9;position:relative}.hero-sub{text-align:center;max-width:46ch;color:var(--ash);margin:24px auto 0;font-size:1.05rem}@media (prefers-reduced-motion:no-preference){.tube,.hero:before,.hero-title{animation:1.6s linear both flicker}}@keyframes flicker{0%,8%{opacity:.05}10%{opacity:1}13%{opacity:.1}24%{opacity:.1}26%{opacity:.9}29%{opacity:.3}42%{opacity:1}45%{opacity:.6}50%,to{opacity:1}}.feature{border-bottom:1px solid var(--line);grid-template-columns:180px 1fr;gap:8px 40px;margin-bottom:8px;padding:0 0 48px;display:grid}.feature-label{font-family:var(--mono);color:var(--signal);font-size:.8rem}.feature-title{text-transform:uppercase;letter-spacing:-.01em;font-size:clamp(1.7rem,3.6vw,2.6rem);font-stretch:112%}.feature-title a{text-decoration:none}.feature-preview{max-width:var(--measure);color:var(--ash);margin:16px 0 20px;font-size:1.1rem}.entries{margin:0;padding:0;list-style:none}.entry{border-bottom:1px solid var(--line);grid-template-columns:180px 1fr auto;align-items:baseline;gap:4px 40px;padding:26px 0;display:grid;position:relative}.entry:before{content:"";background:var(--signal);width:0;height:1px;transition:width .3s ease-out;position:absolute;top:-1px;left:0}.entry:hover:before{width:100%}.entry-date{font-family:var(--mono);color:var(--ash);font-size:.8rem}.entry-title{font-size:clamp(1.25rem,2.4vw,1.6rem);font-weight:700;font-stretch:108%;line-height:1.15}.entry-title a{text-decoration:none}.entry-title a:after{content:"";position:absolute;inset:0}.entry-preview{max-width:var(--measure);color:var(--ash);-webkit-line-clamp:2;-webkit-box-orient:vertical;grid-column:2;margin:6px 0 0;font-size:.98rem;display:-webkit-box;overflow:hidden}.entry-count{font-family:var(--mono);color:var(--ash-dim);white-space:nowrap;font-size:.8rem}@media (width<=760px){.feature,.entry{grid-template-columns:1fr}.entry-preview{grid-column:1}.entry-count{order:4}}.post{max-width:780px;margin:0 auto}.post-header{border-bottom:1px solid var(--line);margin-bottom:48px;padding-bottom:28px}.back-link{margin-bottom:32px}.post-title{text-transform:uppercase;letter-spacing:-.02em;overflow-wrap:anywhere;font-size:clamp(1.9rem,4.6vw,3.2rem);font-weight:900;font-stretch:118%;line-height:.95}.post-meta{font-family:var(--mono);color:var(--ash);flex-wrap:wrap;align-items:center;gap:8px 28px;margin-top:24px;font-size:.8rem;display:flex}.prose{max-width:var(--measure);overflow-wrap:break-word;font-size:1.12rem;line-height:1.75}.prose>:first-child{margin-top:0}.prose h1,.prose h2,.prose h3,.prose h4{text-transform:uppercase;letter-spacing:-.01em;margin:2.2em 0 .7em;font-stretch:110%}.prose h1{font-size:2rem}.prose h2{font-size:1.55rem}.prose h3{font-size:1.2rem}.prose p,.prose ul,.prose ol,.prose blockquote,.prose pre,.prose table{margin:0 0 1.3em}.prose ul{padding-left:1.2em;list-style:square}.prose li::marker{color:var(--signal)}.prose a{color:var(--bone);-webkit-text-decoration-color:var(--signal);text-decoration-color:var(--signal)}.prose a:hover{color:var(--signal)}.prose strong{color:#fff;font-weight:700}.prose img{filter:grayscale(.15)contrast(1.05);max-width:100%;height:auto;margin:2em 0;display:block}.prose blockquote{border-left:3px solid var(--signal);color:var(--bone);padding:4px 0 4px 24px;font-size:1.25rem;font-weight:500;font-stretch:105%;line-height:1.5}.prose code{font-family:var(--mono);background:var(--panel-raised);border:1px solid var(--line);padding:.12em .4em;font-size:.86em}.prose pre{background:var(--panel);border:1px solid var(--line);padding:20px;line-height:1.55;overflow-x:auto}.prose pre code{background:0 0;border:0;padding:0;font-size:.88rem}.prose hr{background:linear-gradient(90deg, var(--signal) 0 48px, var(--line) 48px);border:0;height:1px;margin:3em 0}.prose table{border-collapse:collapse;width:100%;font-size:.95rem;display:block;overflow-x:auto}.prose th,.prose td{border-bottom:1px solid var(--line);text-align:left;padding:10px 14px}.prose th{font-family:var(--mono);color:var(--ash);font-size:.8rem;font-weight:500}.comments{max-width:var(--measure);margin-top:80px}.comments-title{border-bottom:1px solid var(--line);text-transform:uppercase;align-items:baseline;gap:16px;margin-bottom:28px;padding-bottom:16px;font-size:1.6rem;font-stretch:118%;display:flex}.comments-title .mono{color:var(--ash);font-weight:400}.comment-form{margin-bottom:40px}.comment-form textarea{min-height:110px}.notice{background:var(--panel);border:1px solid var(--line);color:var(--ash);margin:0 0 40px;padding:18px 20px}.notice a{color:var(--bone);-webkit-text-decoration-color:var(--signal);text-decoration-color:var(--signal)}.comment-list{margin:0;padding:0;list-style:none}.comment{border-bottom:1px solid var(--line);padding:20px 0}.comment-head{font-family:var(--mono);flex-wrap:wrap;align-items:baseline;gap:4px 16px;font-size:.82rem;display:flex}.comment-author{color:var(--bone);font-weight:600}.comment-author:before{content:"> ";color:var(--signal)}.comment-date{color:var(--ash-dim)}.comment-actions{gap:14px;margin-left:auto;display:flex}.comment-actions .btn{color:var(--ash-dim);padding:0;font-size:.78rem}.comment[aria-busy=true]{opacity:.4}.comment-body{white-space:pre-wrap;overflow-wrap:break-word;margin:8px 0 0}.field{flex-direction:column;gap:8px;margin-bottom:20px;display:flex}.field>span:first-child{font-family:var(--mono);color:var(--ash);font-size:.8rem}input:not([type=checkbox]),textarea{border:1px solid var(--line-strong);background:var(--void);border-radius:0;width:100%;padding:12px 14px;transition:border-color .15s}input:not([type=checkbox]):hover,textarea:hover{border-color:var(--ash-dim)}input:not([type=checkbox]):focus,textarea:focus{border-color:var(--bone);outline:none}textarea{resize:vertical}.field-error{font-family:var(--mono);color:var(--signal);margin:0;font-size:.78rem}.hint{font-family:var(--mono);color:var(--ash-dim);font-size:.78rem}.form-row-end{justify-content:space-between;align-items:center;gap:16px;margin-top:12px;display:flex}.auth-page{place-items:center;padding:24px 0;display:grid}.auth-panel{background:color-mix(in srgb, var(--panel) 92%, transparent);border:1px solid var(--line);width:100%;max-width:440px;box-shadow:0 30px 80px #000000b3}.auth-panel-head{border-bottom:1px solid var(--line);font-family:var(--mono);color:var(--ash);align-items:center;gap:10px;padding:14px 24px;font-size:.8rem;display:flex}.auth-panel-head svg{color:var(--signal)}.auth-panel-body{padding:32px 24px 28px}.auth-panel h1{text-transform:uppercase;margin-bottom:8px;font-size:1.9rem;font-stretch:125%}.auth-panel .lead{color:var(--ash);margin:0 0 28px}.auth-panel .btn-solid{margin-top:8px}.auth-switch{border-top:1px solid var(--line);font-family:var(--mono);color:var(--ash);margin:0;padding:16px 24px;font-size:.8rem}.auth-switch a{color:var(--bone);-webkit-text-decoration-color:var(--signal);text-decoration-color:var(--signal)}.page-head{border-bottom:1px solid var(--line);flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:20px;margin-bottom:36px;padding-bottom:24px;display:flex}.page-title{text-transform:uppercase;letter-spacing:-.02em;font-size:clamp(1.8rem,4vw,2.6rem);font-weight:900;font-stretch:125%}.page-head p{margin:10px 0 0}.table-wrap{overflow-x:auto}.table{border-collapse:collapse;width:100%}.table th,.table td{text-align:left;vertical-align:middle;border-bottom:1px solid var(--line);padding:16px 12px}.table th{font-family:var(--mono);color:var(--ash-dim);font-size:.75rem;font-weight:400}.table th:first-child,.table td:first-child{padding-left:0}.table tbody tr{transition:background .15s}.table tbody tr:hover{background:var(--panel)}.table tr[aria-busy=true]{opacity:.4}.table .num{text-align:right;font-family:var(--mono);font-size:.85rem}.table-date{font-family:var(--mono);color:var(--ash);white-space:nowrap;font-size:.8rem}.table-title{font-weight:600;text-decoration:none}.actions{justify-content:flex-end;gap:14px;display:flex}@media (width<=760px){.hide-sm{display:none}.actions{flex-wrap:wrap;gap:4px 12px}}.back-row{margin-bottom:20px}.editor-actions{align-items:center;gap:24px;display:flex}.switch{cursor:pointer;font-family:var(--mono);align-items:center;gap:10px;font-size:.85rem;display:flex}.switch input{width:16px;height:16px;accent-color:var(--signal)}.title-input{font-family:var(--display);text-transform:uppercase;margin-bottom:24px;font-weight:900;font-stretch:118%;padding:14px 16px!important;font-size:clamp(1.4rem,3vw,2rem)!important}.title-input::placeholder{color:var(--ash-dim)}.editor-card{border:1px solid var(--line-strong);background:var(--void)}.editor-toolbar{border-bottom:1px solid var(--line);background:var(--panel);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px 16px;padding:0 12px;display:flex}.tabs{display:flex}.tabs button{color:var(--ash);font-family:var(--mono);cursor:pointer;background:0 0;border:0;border-bottom:2px solid #0000;padding:12px 14px;font-size:.82rem}.tabs button:hover{color:var(--bone)}.tabs button[aria-selected=true]{color:var(--bone);border-bottom-color:var(--signal)}.tools{flex-wrap:wrap;gap:2px;display:flex}.tool{min-width:34px;height:32px;color:var(--ash);font-family:var(--mono);cursor:pointer;background:0 0;border:0;padding:0 8px;font-size:.8rem}.tool:hover{color:var(--void);background:var(--bone)}.editor-textarea{min-height:480px;font-family:var(--mono);font-size:.92rem;line-height:1.75;display:block;border:0!important;padding:24px!important}.editor-preview{min-height:480px;margin:0;padding:24px 28px}.editor-footer{border-top:1px solid var(--line);font-family:var(--mono);color:var(--ash-dim);justify-content:space-between;gap:16px;padding:10px 14px;font-size:.78rem;display:flex}.admin-tabs{border-bottom:1px solid var(--line);font-family:var(--mono);gap:28px;margin-bottom:32px;font-size:.85rem;display:flex}.admin-tabs a{color:var(--ash);border-bottom:2px solid #0000;margin-bottom:-1px;padding:0 0 12px;text-decoration:none}.admin-tabs a:hover{color:var(--bone)}.admin-tabs a.active{color:var(--bone);border-bottom-color:var(--signal)}.search{width:min(320px,100%)}.search input{font-family:var(--mono);padding:10px 12px;font-size:.85rem}.select{border:1px solid var(--line-strong);background:var(--void) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6'%3E%3Cpath d='M0 0l5 6 5-6z' fill='%238c8a86'/%3E%3C/svg%3E") no-repeat right 12px center;min-width:150px;color:var(--bone);font-family:var(--mono);appearance:none;cursor:pointer;border-radius:0;padding:8px 32px 8px 10px;font-size:.82rem}.select:hover:not(:disabled){border-color:var(--ash-dim)}.select:focus{border-color:var(--bone);outline:none}.select:disabled{opacity:.45;cursor:not-allowed}.rename-form{flex-direction:column;gap:6px;max-width:280px;display:flex}.rename-form input{padding:8px 10px;font-weight:600}.rename-actions{gap:14px;display:flex}.user-cell{flex-direction:column;gap:2px;display:flex}.table-title .tag{margin-left:10px}.role-editor{max-width:860px}.role-name{max-width:420px;margin-bottom:36px}.role-name input:disabled{color:var(--ash);cursor:not-allowed}.perm-group{border:0;min-width:0;margin:0 0 32px;padding:0}.perm-group legend{border-bottom:1px solid var(--line);width:100%;font-family:var(--display);text-transform:uppercase;justify-content:space-between;align-items:baseline;gap:16px;margin-bottom:8px;padding:0 0 12px;font-size:1.15rem;font-weight:800;font-stretch:115%;display:flex}.perm-grid{grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:0 32px;display:grid}.perm{border-bottom:1px solid var(--line);cursor:pointer;align-items:flex-start;gap:12px;padding:12px 0;display:flex}.perm input{width:16px;height:16px;accent-color:var(--signal);flex-shrink:0;margin-top:3px}.perm span{flex-direction:column;gap:2px;display:flex}.perm code{font-family:var(--mono);color:var(--ash-dim);font-size:.72rem}.perm-group:disabled .perm{cursor:default;opacity:.75}.ban-banner{background:color-mix(in srgb, var(--signal) 14%, var(--void));border-bottom:1px solid var(--signal-deep);font-family:var(--mono);padding:12px 0;font-size:.85rem}.ban-banner strong{color:var(--signal);margin-right:8px}.ban-reason{color:var(--ash);margin-top:4px;display:block}.ban-note{font-family:var(--mono);color:var(--signal);font-size:.75rem}.btn-danger{background:var(--signal);color:var(--void)}.btn-danger:hover:not(:disabled){background:var(--bone);color:var(--void)}.ip-link{color:var(--bone);font-family:var(--mono);text-decoration:underline;-webkit-text-decoration-color:var(--line-strong);text-decoration-color:var(--line-strong);text-underline-offset:3px;cursor:pointer;background:0 0;border:0;padding:0;font-size:.82rem}.ip-link:hover{color:var(--signal);-webkit-text-decoration-color:var(--signal);text-decoration-color:var(--signal)}.ip-sub{color:var(--ash-dim);font-size:.72rem;display:block}td.mono .tag{margin-left:10px}.ban-ip-form{grid-template-columns:minmax(160px,220px) 1fr auto;align-items:end;gap:0 16px;margin-bottom:40px;display:grid}.ban-ip-form .btn{margin-bottom:20px}.ban-ip-form .field-error{grid-column:1/-1;margin-top:-8px}@media (width<=640px){.ban-ip-form{grid-template-columns:1fr}}.modal{border:1px solid var(--line-strong);background:var(--panel);width:min(560px,100vw - 32px);max-height:calc(100vh - 64px);color:var(--bone);padding:0;box-shadow:0 30px 80px #000c}.modal::backdrop{-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);background:#000000bf}.modal-head{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;gap:16px;padding:16px 24px;display:flex}.modal-head h2{text-transform:uppercase;font-size:1.3rem;font-stretch:115%}.modal-body{padding:24px}.modal-lead{margin:0 0 20px}.modal-actions{justify-content:flex-end;align-items:center;gap:20px;margin-top:24px;display:flex}.check{cursor:pointer;align-items:flex-start;gap:12px;margin-bottom:14px;display:flex}.check input{width:16px;height:16px;accent-color:var(--signal);flex-shrink:0;margin-top:3px}.check>span{flex-direction:column;gap:2px;display:flex}
