@charset "UTF-8";:root,[data-theme=dark]{color-scheme:dark;--bg: #0e1319;--surface: #151c25;--surface-2: #1c2531;--surface-3: #243042;--border: #2d3a4b;--text: #e6edf3;--muted: #a3b3c4;--accent: #7cc4ff;--accent-bg: #1d64b0;--accent-bg-hover: #2373c7;--accent-text: #ffffff;--accent-soft: rgba(124, 196, 255, .12);--success: #5ddc8a;--success-soft: rgba(93, 220, 138, .12);--danger: #ff8a80;--danger-soft: rgba(255, 138, 128, .12);--warning: #f5c451;--warning-soft: rgba(245, 196, 81, .12);--purple: #c4a5ff;--purple-soft: rgba(196, 165, 255, .12);--focus: #ffd166;--code-bg: #0a0f14;--shadow: 0 1px 2px rgba(0, 0, 0, .4);--heat-0: #1c2531;--heat-1: #164a3a;--heat-2: #1f7a55;--heat-3: #2fae72;--heat-4: #5ddc8a;--hl-keyword: #ff9e9e;--hl-string: #a5d6ff;--hl-number: #79c0ff;--hl-comment: #9aa7b4;--hl-title: #d2a8ff;--hl-built: #ffa657;--hl-meta: #8ddb8c}[data-theme=light]{color-scheme:light;--bg: #f4f6f9;--surface: #ffffff;--surface-2: #f0f3f7;--surface-3: #e3e8ef;--border: #ccd4de;--text: #1b2129;--muted: #55606c;--accent: #0b5cb5;--accent-bg: #0b5cb5;--accent-bg-hover: #094d98;--accent-text: #ffffff;--accent-soft: rgba(11, 92, 181, .08);--success: #17703a;--success-soft: rgba(23, 112, 58, .09);--danger: #b42318;--danger-soft: rgba(180, 35, 24, .08);--warning: #8a5a00;--warning-soft: rgba(176, 116, 0, .1);--purple: #6b3fc4;--purple-soft: rgba(107, 63, 196, .08);--focus: #b35c00;--code-bg: #f6f8fa;--shadow: 0 1px 2px rgba(0, 0, 0, .08);--heat-0: #e3e8ef;--heat-1: #b7e4c7;--heat-2: #74c69d;--heat-3: #40916c;--heat-4: #1b5e3f;--hl-keyword: #c0262d;--hl-string: #0a4f9e;--hl-number: #005cc5;--hl-comment: #5c6670;--hl-title: #6f42c1;--hl-built: #a04100;--hl-meta: #116329}*,*:before,*:after{box-sizing:border-box}html{font-size:16px;-webkit-text-size-adjust:100%}body{margin:0;background:var(--bg);color:var(--text);font-family:system-ui,-apple-system,Segoe UI,Roboto,Noto Sans,Helvetica Neue,Arial,sans-serif;line-height:1.6}code,pre,kbd,samp,.mono{font-family:ui-monospace,Cascadia Code,Cascadia Mono,Consolas,SFMono-Regular,Menlo,DejaVu Sans Mono,monospace;font-size:.92em}a{color:var(--accent);text-underline-offset:2px}h1,h2,h3,h4{line-height:1.25;margin:1.4em 0 .5em}h1{font-size:1.75rem;margin-top:.2em}h2{font-size:1.3rem}h3{font-size:1.1rem}p{margin:.6em 0}img,svg{max-width:100%}:focus-visible{outline:3px solid var(--focus);outline-offset:2px;border-radius:4px}::selection{background:var(--accent-soft)}.visually-hidden{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.skip-link{position:absolute;left:.5rem;top:-3rem;z-index:100;background:var(--surface);padding:.5rem 1rem;border-radius:6px}.skip-link:focus{top:.5rem}.page{max-width:1100px;margin:0 auto;padding:1.25rem 1rem 4rem}.page-narrow{max-width:820px}.page-header{margin-bottom:1rem}.page-header .crumbs{font-size:.9rem;color:var(--muted)}.page-header .crumbs a{color:var(--muted)}.page-header h1{margin-bottom:.25rem}.stack>*+*{margin-top:1rem}.row{display:flex;flex-wrap:wrap;gap:.5rem;align-items:center}.row-between{display:flex;flex-wrap:wrap;gap:.5rem;align-items:center;justify-content:space-between}.grid{display:grid;gap:1rem;grid-template-columns:repeat(auto-fill,minmax(min(100%,300px),1fr))}.grid-2{display:grid;gap:1rem;grid-template-columns:repeat(auto-fit,minmax(min(100%,420px),1fr))}.muted{color:var(--muted)}.small{font-size:.88rem}.center{text-align:center}.nowrap{white-space:nowrap}.card{background:var(--surface);border:1px solid var(--border);border-radius:10px;padding:1rem 1.1rem;box-shadow:var(--shadow)}.card>h2:first-child,.card>h3:first-child{margin-top:0}.card-link{display:block;color:inherit;text-decoration:none;transition:border-color .15s ease}.card-link:hover{border-color:var(--accent)}.card-title{margin:0 0 .4rem;font-size:1.05rem}.card.locked{opacity:.75;border-style:dashed}.card-accent{border-color:var(--accent);background:linear-gradient(0deg,var(--accent-soft),var(--accent-soft)),var(--surface)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:.4rem;min-height:2.5rem;padding:.45rem .95rem;border-radius:8px;border:1px solid var(--border);background:var(--surface-2);color:var(--text);font:inherit;font-weight:600;text-decoration:none;cursor:pointer;transition:background-color .15s ease,border-color .15s ease}.btn:hover:not(:disabled){background:var(--surface-3)}.btn:disabled{opacity:.55;cursor:not-allowed}.btn-primary{background:var(--accent-bg);border-color:var(--accent-bg);color:var(--accent-text)}.btn-primary:hover:not(:disabled){background:var(--accent-bg-hover)}.btn-ghost{background:transparent;border-color:transparent}.btn-ghost:hover:not(:disabled){background:var(--surface-2)}.btn-danger{color:var(--danger);border-color:var(--danger);background:transparent}.btn-danger:hover:not(:disabled){background:var(--danger-soft)}.btn-sm{min-height:2rem;padding:.25rem .6rem;font-size:.88rem}.btn-lg{min-height:3rem;padding:.6rem 1.3rem;font-size:1.05rem}.link-btn{background:none;border:none;padding:0;color:var(--accent);font:inherit;text-decoration:underline;cursor:pointer}.pill{display:inline-flex;align-items:center;gap:.25rem;padding:.05rem .55rem;border-radius:999px;font-size:.8rem;font-weight:600;border:1px solid var(--border);background:var(--surface-2);color:var(--muted);white-space:nowrap}.pill-accent{color:var(--accent);border-color:var(--accent);background:var(--accent-soft)}.pill-success{color:var(--success);border-color:var(--success);background:var(--success-soft)}.pill-warning{color:var(--warning);border-color:var(--warning);background:var(--warning-soft)}.pill-danger{color:var(--danger);border-color:var(--danger);background:var(--danger-soft)}.progress{height:.55rem;border-radius:999px;background:var(--surface-3);overflow:hidden}.progress>span{display:block;height:100%;border-radius:999px;background:var(--accent);transition:width .3s ease}.progress.success>span{background:var(--success)}label{font-weight:600}.field{display:flex;flex-direction:column;gap:.3rem;margin-bottom:.9rem}.field .hint{font-weight:400;font-size:.85rem;color:var(--muted)}input[type=text],input[type=password],input[type=number],input[type=search],textarea,select{font:inherit;color:var(--text);background:var(--surface-2);border:1px solid var(--border);border-radius:7px;padding:.45rem .65rem;min-height:2.5rem;max-width:100%}input[type=text]:focus-visible,input[type=password]:focus-visible,input[type=number]:focus-visible,input[type=search]:focus-visible,textarea:focus-visible,select:focus-visible{border-color:var(--focus)}textarea{width:100%;min-height:8rem;resize:vertical;line-height:1.5}input.ok{border-color:var(--success)}input.bad{border-color:var(--danger)}.check{display:flex;gap:.5rem;align-items:flex-start;font-weight:400}.check input{margin-top:.35rem}.error-msg{color:var(--danger);background:var(--danger-soft);border:1px solid var(--danger);border-radius:8px;padding:.6rem .8rem}.ok-msg{color:var(--success);background:var(--success-soft);border:1px solid var(--success);border-radius:8px;padding:.6rem .8rem}.info-msg{background:var(--accent-soft);border:1px solid var(--accent);border-radius:8px;padding:.6rem .8rem}.table-wrap{overflow-x:auto;margin:.8rem 0}table{border-collapse:collapse;width:100%;font-size:.95rem}th,td{text-align:left;padding:.4rem .6rem;border-bottom:1px solid var(--border);vertical-align:top}th{background:var(--surface-2)}.md{overflow-wrap:anywhere}.md>:first-child{margin-top:0}.md img{border-radius:6px}.md blockquote{margin:.8rem 0;padding:.2rem 1rem;border-left:4px solid var(--border);color:var(--muted)}.md :not(pre)>code{background:var(--surface-2);border:1px solid var(--border);border-radius:4px;padding:.05em .3em}.md ul,.md ol{padding-left:1.4rem}.md li+li{margin-top:.2rem}.md hr{border:none;border-top:1px solid var(--border);margin:1.5rem 0}.md-inline>p{display:inline;margin:0}.code-block{margin:.9rem 0;border:1px solid var(--border);border-radius:8px;overflow:hidden;background:var(--code-bg)}.code-block pre{margin:0;padding:.8rem 1rem;overflow-x:auto;line-height:1.5}.code-caption{display:flex;flex-wrap:wrap;gap:.75rem;justify-content:space-between;padding:.25rem .8rem;font-size:.78rem;color:var(--muted);background:var(--surface-2);border-bottom:1px solid var(--border)}.code-compiler{font-family:ui-monospace,Consolas,monospace}.callout{margin:1rem 0;padding:.7rem 1rem;border:1px solid var(--border);border-left-width:5px;border-radius:8px;background:var(--surface-2)}.callout>:last-child{margin-bottom:0}.callout-title{margin:0 0 .3rem;font-weight:700}.callout-modding{border-left-color:var(--purple);background:var(--purple-soft)}.callout-modding .callout-title{color:var(--purple)}.callout-web{border-left-color:var(--accent);background:var(--accent-soft)}.callout-web .callout-title{color:var(--accent)}.callout-info{border-left-color:var(--accent)}.callout-warning{border-left-color:var(--warning);background:var(--warning-soft)}.callout-warning .callout-title{color:var(--warning)}.callout-scope{border-left-color:var(--danger);background:var(--danger-soft)}.callout-scope .callout-title{color:var(--danger)}.hljs-keyword,.hljs-selector-tag,.hljs-type{color:var(--hl-keyword)}.hljs-string,.hljs-regexp,.hljs-symbol{color:var(--hl-string)}.hljs-number,.hljs-literal{color:var(--hl-number)}.hljs-comment,.hljs-quote{color:var(--hl-comment);font-style:italic}.hljs-title,.hljs-section,.hljs-function .hljs-title{color:var(--hl-title)}.hljs-built_in,.hljs-variable,.hljs-params,.hljs-attr{color:var(--hl-built)}.hljs-meta,.hljs-meta .hljs-keyword{color:var(--hl-meta)}.feedback{margin-top:.6rem;padding:.6rem .8rem;border-radius:8px;border:1px solid var(--border)}.feedback.correct{border-color:var(--success);background:var(--success-soft)}.feedback.wrong{border-color:var(--warning);background:var(--warning-soft)}.feedback .verdict{font-weight:700}kbd{display:inline-block;padding:0 .35em;border:1px solid var(--border);border-bottom-width:2px;border-radius:4px;background:var(--surface-2);font-size:.8em}.list-plain{list-style:none;padding:0;margin:0}.list-plain>li+li{margin-top:.4rem}.empty{padding:1.5rem;text-align:center;color:var(--muted);border:1px dashed var(--border);border-radius:10px}.loading{color:var(--muted);padding:1rem 0}@media(prefers-reduced-motion:reduce){*,*:before,*:after{transition:none!important;animation:none!important;scroll-behavior:auto!important}}html.reduce-motion *,html.reduce-motion *:before,html.reduce-motion *:after{transition:none!important;animation:none!important}@media print{.app-header,.app-nav,.no-print{display:none!important}}
