:root{
--bg:#FAFAF8;--bg-card:#FFFFFF;--bg-elevated:#F4F3F0;--bg-hover:#EEEEE9;--bg-ink:#111110;
--border:#E2E1DC;--border-strong:#D0CFC9;
--text:#111110;--text-2:#484844;--text-3:#6B6B65;--text-inv:#FFFFFF;
--accent:#2563EB;--accent-hover:#1D4ED8;--accent-subtle:#EFF6FF;--accent-ring:rgba(37,99,235,.22);
--green:#16A34A;--green-subtle:#F0FDF4;--amber:#D97706;
--shadow-sm:0 2px 6px rgba(17,17,16,.05);--shadow-md:0 6px 20px rgba(17,17,16,.07);
--r-sm:8px;--r-md:12px;--r-lg:18px;--r-full:9999px;
--sans:"DM Sans",system-ui,sans-serif;--mono:"JetBrains Mono",ui-monospace,monospace;
}
*{box-sizing:border-box;margin:0;padding:0}
[hidden]{display:none!important}
html{scroll-behavior:smooth}
body{font-family:var(--sans);background:var(--bg);color:var(--text);-webkit-font-smoothing:antialiased;line-height:1.5}
a{color:var(--accent);text-decoration:none}
a:hover{color:var(--accent-hover)}
img{max-width:100%;display:block}
/* chrome */
header{position:sticky;top:0;z-index:50;background:rgba(250,250,248,.9);backdrop-filter:blur(12px);border-bottom:1px solid var(--border)}
.wrap{max-width:980px;margin:0 auto;padding:0 32px}
.nav{display:flex;align-items:center;gap:20px;height:68px}
.brand{flex:none}
.wordmark{height:26px;width:auto}
.nav .back{margin-left:auto;font-family:var(--mono);font-size:12.5px;color:var(--text-2);white-space:nowrap}
@media(max-width:430px){.nav .back{display:none}}
.nav .back:hover{color:var(--accent)}
.btn{display:inline-flex;align-items:center;gap:7px;font-size:14.5px;font-weight:500;padding:9px 17px;border-radius:var(--r-full);border:1px solid transparent;cursor:pointer;transition:.15s ease;white-space:nowrap}
.btn-primary{background:var(--accent);color:#fff;box-shadow:0 1px 3px var(--accent-ring)}
.btn-primary:hover{background:var(--accent-hover);color:#fff}
/* doc */
.doc{padding:56px 0 88px}
.doc .eyebrow{font-family:var(--mono);font-size:12px;font-weight:500;letter-spacing:.16em;text-transform:uppercase;color:var(--text-3);margin-bottom:14px}
.doc h1{font-size:clamp(34px,4.4vw,46px);letter-spacing:-.03em;line-height:1.08;font-weight:600;text-wrap:balance}
.doc .lede{font-size:18px;line-height:1.55;color:var(--text-2);margin-top:18px;max-width:64ch}
.meta{display:flex;flex-wrap:wrap;gap:20px;margin-top:26px;padding:14px 18px;border:1px solid var(--border);border-radius:var(--r-md);background:var(--bg-card);font-family:var(--mono);font-size:12px;color:var(--text-2)}
.meta b{color:var(--text);font-weight:600}
.notice{margin-top:22px;padding:14px 18px;border:1px dashed var(--border-strong);border-radius:var(--r-md);background:var(--bg-elevated);font-size:13.5px;line-height:1.6;color:var(--text-2)}
.notice b{color:var(--text)}
.toc{margin-top:38px;padding:20px 24px;border:1px solid var(--border);border-radius:var(--r-lg);background:var(--bg-card)}
.toc h2{font-family:var(--mono);font-size:11px;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--text-3);margin-bottom:12px}
.toc ol{list-style:none;counter-reset:t;display:grid;grid-template-columns:1fr 1fr;gap:8px 28px}
@media(min-width:1500px){.wrap{max-width:1100px}}
@media(max-width:700px){.toc ol{grid-template-columns:1fr}}
.toc li{counter-increment:t;font-size:14.5px;display:flex;gap:9px}
.toc li::before{content:counter(t,decimal-leading-zero);font-family:var(--mono);font-size:11.5px;color:var(--text-3);padding-top:3px}
.toc a{color:var(--text-2)}
.toc a:hover{color:var(--accent)}
section.s{margin-top:48px;scroll-margin-top:90px}
section.s>h2{font-size:23px;font-weight:600;letter-spacing:-.02em;padding-bottom:12px;border-bottom:1px solid var(--border);display:flex;gap:12px;align-items:baseline}
section.s>h2 .n{font-family:var(--mono);font-size:13px;font-weight:500;color:var(--text-3);flex:none}
section.s h3{font-size:16.5px;font-weight:600;margin:26px 0 8px}
section.s p{font-size:15.5px;line-height:1.68;color:var(--text-2);margin-top:14px;max-width:72ch}
section.s ul{margin:14px 0 0 2px;padding:0;list-style:none;display:flex;flex-direction:column;gap:9px;max-width:72ch}
section.s ul li{font-size:15.5px;line-height:1.6;color:var(--text-2);padding-left:20px;position:relative}
section.s ul li::before{content:"";position:absolute;left:4px;top:.62em;width:5px;height:5px;border-radius:50%;background:var(--border-strong)}
section.s ul li b{color:var(--text);font-weight:600}
.tbl{margin-top:18px;border:1px solid var(--border);border-radius:var(--r-md);overflow-x:auto;background:var(--bg-card);scrollbar-width:thin}
.tbl table{min-width:min-content}
.tbl table{width:100%;border-collapse:collapse;font-size:14px}
.tbl th{text-align:left;font-family:var(--mono);font-size:10.5px;font-weight:600;letter-spacing:.09em;text-transform:uppercase;color:var(--text-3);background:var(--bg-elevated);padding:10px 14px;border-bottom:1px solid var(--border)}
.tbl td{padding:12px 14px;border-bottom:1px solid var(--border);color:var(--text-2);vertical-align:top;line-height:1.55}
.tbl tr:last-child td{border-bottom:none}
.tbl td b{color:var(--text);font-weight:600}
.ph{font-family:var(--mono);font-size:.92em;color:var(--text-3);background:var(--bg-elevated);border:1px dashed var(--border-strong);border-radius:5px;padding:0 5px;-webkit-box-decoration-break:clone;box-decoration-break:clone}
.ph.t{white-space:nowrap}
.contact{margin-top:48px;padding:26px 28px;border:1px solid var(--border);border-radius:var(--r-lg);background:var(--bg-card);box-shadow:var(--shadow-sm)}
.contact h2{font-size:18px;font-weight:600;margin-bottom:8px}
.contact p{font-size:15px;line-height:1.6;color:var(--text-2)}
/* footer */
footer{border-top:1px solid var(--border);padding:40px 0;margin-top:72px;background:var(--bg-elevated)}
.foot{display:flex;flex-wrap:wrap;align-items:center;gap:14px 26px;font-size:13.5px;color:var(--text-2)}
.foot .sep{margin-left:auto}
.foot a{color:var(--text-2)}
.foot a:hover{color:var(--accent)}
.foot .mono{font-family:var(--mono);font-size:12px;color:var(--text-3)}
/* cookie banner */
.ckb{position:fixed;left:0;right:0;bottom:0;z-index:120;background:var(--bg-ink);color:#EDEDE8;padding:18px 0;box-shadow:0 -8px 32px rgba(17,17,16,.2)}
.ckb .in{max-width:1100px;margin:0 auto;padding:0 32px;display:flex;align-items:center;gap:26px;flex-wrap:wrap}
.ckb p{font-size:13.5px;line-height:1.6;color:#C9C9C3;flex:1;min-width:260px;margin:0}
.ckb p a{color:#93B4FF;text-decoration:underline}
.ckb .acts{display:flex;gap:10px;flex-wrap:wrap;flex:none}
.ckb button{font-family:inherit;font-size:13.5px;font-weight:500;padding:9px 18px;border-radius:var(--r-full);cursor:pointer;border:1px solid transparent;transition:.15s ease;white-space:nowrap}
.ckb .ok{background:var(--accent);color:#fff}
.ckb .ok:hover{background:var(--accent-hover)}
.ckb .no{background:transparent;color:#EDEDE8;border-color:rgba(255,255,255,.28)}
.ckb .no:hover{background:rgba(255,255,255,.08)}
@media(max-width:620px){.ckb .in{gap:14px}.ckb .acts{width:100%}.ckb button{flex:1}}

/* ── responsive ── */
@media(max-width:820px){
.wrap{padding:0 24px}
.doc{padding:40px 0 64px}
.meta{gap:10px 20px}
.tbl{overflow-x:auto}
.tbl table{min-width:520px}
}
@media(max-width:640px){
.wrap{padding:0 18px}
.nav{height:60px;gap:10px}
.wordmark{height:23px}
.nav .back{font-size:11.5px}
.btn{padding:8px 14px;font-size:13.5px}
.doc h1{font-size:clamp(26px,7.6vw,34px)}
.doc .lede{font-size:16px}
.meta{flex-direction:column;gap:7px;font-size:11.5px}
.toc{padding:16px 18px}
section.s{margin-top:36px}
section.s>h2{font-size:19px;gap:9px}
section.s p,section.s ul li{font-size:14.5px}
.contact{padding:20px 20px}
footer{padding:32px 0;margin-top:52px}
.foot{font-size:12.5px;gap:10px 18px}
.foot .sep{margin-left:0;width:100%}
}
@media(max-width:400px){
.nav .back{display:none}
.doc h1{font-size:25px}
}
