:root{--gutter:max(28px,calc((100% - 1280px) / 2));--paper:#F7F5EF;--ink:#1D2433;--muted:#5A6070;--rule:#D9D5CA;--accent:#1F5F7A;--accent2:#E8EEF0;--card:#FBFAF6;--serif:"Source Serif 4",Georgia,serif;--sans:Inter,system-ui,-apple-system,"Segoe UI",sans-serif}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--paper);color:var(--ink);font:16px/1.65 var(--sans)}
a{color:var(--accent)}
a:hover{color:var(--ink)}
.skip{position:absolute;left:-999px}.skip:focus{left:12px;top:12px;background:#fff;padding:8px}
.top{display:flex;justify-content:space-between;gap:12px;padding:7px var(--gutter);font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);border-bottom:1px solid var(--rule)}
.head{display:flex;justify-content:space-between;align-items:center;gap:16px;flex-wrap:wrap;padding:20px var(--gutter);border-bottom:1px solid var(--rule)}
.mark{font:600 21px var(--serif);color:var(--ink);text-decoration:none}
.mark small{display:block;font:500 11px var(--sans);letter-spacing:.12em;text-transform:uppercase;color:var(--accent);margin-top:2px}
.nav{display:flex;gap:22px;font-size:14px;flex-wrap:wrap}
.nav a{color:var(--ink);text-decoration:none}
.nav a:hover{text-decoration:underline}
.headlink{font-size:14px;text-decoration:none}
.crumb{padding:12px var(--gutter);font-size:13px;color:var(--muted)}
.crumb a{color:var(--muted)}
.cols{display:grid;grid-template-columns:200px minmax(0,1fr) 240px;gap:40px;padding:8px var(--gutter) 48px}
.side{font-size:14px;border-right:1px solid var(--rule);padding-right:18px}
.side .k{font:500 11px var(--sans);letter-spacing:.12em;text-transform:uppercase;color:var(--accent);margin-bottom:8px}
.side a{display:block;color:var(--ink);text-decoration:none;padding:4px 0}
.side a:hover,.side a[aria-current]{color:var(--accent)}
.side hr{border:0;border-top:1px solid var(--rule);margin:10px 0}
main{min-width:0}
.eyebrow{font:500 11px var(--sans);letter-spacing:.12em;text-transform:uppercase;color:var(--accent)}
h1{font:400 46px/1.1 var(--serif);margin:8px 0 18px;padding-bottom:18px;border-bottom:2px solid var(--ink)}
h2{font:400 28px/1.25 var(--serif);margin:36px 0 10px;padding-top:26px;border-top:1px solid var(--rule)}
h3{font:600 17px/1.4 var(--sans);margin:22px 0 6px}
.brief{font-size:19px;line-height:1.55;margin:8px 0 10px}
.fine{font-size:13px;color:var(--muted)}
.box{border:1px solid var(--rule);background:var(--card);padding:18px 20px;margin:22px 0}
.box b{font-size:14px}
.toc{columns:2;font-size:14px;margin:8px 0 0;padding-left:20px}
.path{display:flex;align-items:center;margin:26px 0 6px}
.path span{flex:1;border:1px solid var(--ink);padding:16px 10px;font-size:14px;text-align:center;background:var(--card)}
.path i{width:24px;flex:none;height:1px;background:var(--ink)}
.tw{overflow-x:auto}
table{width:100%;border-collapse:collapse;font-size:15px}
th{text-align:left;font:500 11px var(--sans);letter-spacing:.08em;text-transform:uppercase;color:var(--muted);border-bottom:1px solid var(--ink);padding:8px}
td{border-bottom:1px solid var(--rule);padding:10px 8px;vertical-align:top}
.cards{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.card{border:1px solid var(--rule);background:var(--card);padding:16px 18px}
.card h3{font:400 21px var(--serif);margin:6px 0;color:var(--accent)}
.card p{margin:0 0 10px;font-size:15px}
.entries{display:grid;grid-template-columns:1fr 1fr;gap:0 28px}
.entry{border-top:1px solid var(--rule);padding:14px 0}
.entry h3{font:400 20px var(--serif);margin:6px 0}
.entry h3 a{color:var(--ink);text-decoration:none}
.entry p{margin:0 0 6px;font-size:15px}
details{border-bottom:1px solid var(--rule);padding:12px 0}
summary{cursor:pointer;font-weight:500}
details p{margin:8px 0 0}
.rail{font-size:14px}
.rail .panel{border-top:2px solid var(--ink);padding-top:12px;position:sticky;top:16px}
.rail .big{font:400 26px var(--serif);margin:2px 0 12px}
.rail .k{font:500 10px var(--sans);letter-spacing:.12em;text-transform:uppercase;color:var(--muted);margin-top:12px}
.foot{border-top:1px solid var(--rule);padding:18px var(--gutter);font-size:13px;color:var(--muted);display:flex;justify-content:space-between;flex-wrap:wrap;gap:10px}
.foot a{color:var(--muted)}
.gen{border:1px solid var(--ink);background:#fff;padding:20px;margin:18px 0}
.gen label{display:block;font:500 11px var(--sans);letter-spacing:.1em;text-transform:uppercase;color:var(--muted);margin-bottom:6px}
.gen textarea{width:100%;min-height:96px;border:1px solid var(--rule);background:var(--paper);padding:10px 12px;font:16px var(--sans);color:var(--ink);resize:vertical}
.tags{display:flex;flex-wrap:wrap;gap:6px;margin:10px 0 14px;padding:0;border:0}
.tags legend{position:absolute;left:-999px}
.tags label{display:inline-flex;margin:0;font:14px var(--sans);letter-spacing:0;text-transform:none;color:var(--ink);border:1px solid var(--rule);background:var(--card);padding:7px 11px;cursor:pointer}
.tags input{position:absolute;opacity:0;pointer-events:none}
.tags input:checked+span{color:var(--accent)}
.tags label:has(input:checked){border-color:var(--accent);background:var(--accent2)}
.tags input:focus-visible+span{outline:2px solid var(--accent);outline-offset:4px}
.go{background:var(--accent);color:#fff;border:0;padding:13px 22px;font:500 16px var(--sans);cursor:pointer;min-height:44px}
.go:disabled{opacity:.6;cursor:wait}
.out{margin-top:18px}
.out h2{border:0;padding:0;margin:0 0 8px;font-size:24px}
.story{font:18px/1.75 var(--serif);border-left:2px solid var(--accent);padding:2px 0 2px 18px;margin:12px 0 18px}
.story p{margin:0 0 12px}
.err{color:#8A1C1C;font-size:15px;margin:10px 0 0}
.cta{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap;border:1px solid var(--rule);background:var(--accent2);padding:14px 18px;margin:18px 0}
.cta a{color:#fff;background:var(--accent);padding:10px 16px;text-decoration:none;font-size:15px;white-space:nowrap}
@media(max-width:1060px){.cols{grid-template-columns:minmax(0,1fr) 220px}.side{display:none}}
@media(max-width:760px){.cols{grid-template-columns:1fr;padding-bottom:36px}.rail{display:none}.top,.head,.crumb,.foot,.cols{--gutter:18px}h1{font-size:34px}.toc{columns:1}.cards,.entries{grid-template-columns:1fr}.nav{display:none}.path{flex-direction:column;align-items:stretch}.path i{width:1px;height:16px;margin:0 auto}}
.pc{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:8px 0 6px}
.pc div{border:1px solid var(--rule);background:var(--card);padding:12px 16px}
.pc b{display:block;font:500 11px var(--sans);letter-spacing:.1em;text-transform:uppercase;color:var(--muted);margin-bottom:4px}
.pc ul{margin:0;padding-left:18px;font-size:15px}
.pc li{margin:3px 0}
.tool h3{font:400 22px var(--serif);margin:26px 0 2px}
.tool h3 a{color:var(--ink)}
.tool .meta{font-size:14px;color:var(--muted);margin:0 0 6px}
@media(max-width:760px){.pc{grid-template-columns:1fr}}
.fig{margin:22px 0}
.fig img{display:block;width:100%;height:auto;border:1px solid var(--rule);background:#fff}
.fig figcaption{font-size:13px;color:var(--muted);margin-top:8px}
.clash .lines{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.clash blockquote{margin:0;border:1px solid var(--rule);border-left:3px solid #A33A2B;background:var(--card);padding:12px 16px;font:17px/1.5 var(--serif)}
.clash blockquote span{display:block;font:500 11px var(--sans);letter-spacing:.1em;text-transform:uppercase;color:var(--muted);margin-bottom:4px}
.steps{list-style:none;counter-reset:s;padding:0;margin:18px 0;display:grid;grid-template-columns:1fr 1fr;gap:10px}
.steps li{counter-increment:s;border:1px solid var(--rule);background:var(--card);padding:12px 16px 12px 52px;position:relative;font-size:15px}
.steps li::before{content:counter(s);position:absolute;left:16px;top:12px;font:400 22px/1 var(--serif);color:var(--accent)}
.steps b{display:block}
.steps span{color:var(--muted)}
.next{display:grid;grid-template-columns:1fr 1fr;gap:0 28px}
@media(max-width:760px){.clash .lines,.steps,.next{grid-template-columns:1fr}}
.hero{margin:0 0 22px}.hero img{display:block;width:100%;height:auto;aspect-ratio:3/2;object-fit:cover;border:1px solid var(--rule)}
.tool-box .tb-title{font:400 24px/1.3 var(--serif);margin:4px 0 14px}
.tool-box label{text-transform:none;letter-spacing:0;font:500 13px var(--sans);color:var(--muted)}
.tool-box input[type=number],.tool-box input[type=text]{display:block;width:100%;margin-top:4px;border:1px solid var(--rule);background:var(--paper);padding:10px 12px;font:16px var(--sans);color:var(--ink)}
.row3{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}
.row2{display:grid;grid-template-columns:1fr 1fr;gap:10px 12px}
.tool-box .result{margin:16px 0 0;border-top:1px solid var(--rule);padding-top:14px}
.tool-box .result b{display:block;font:400 26px/1.3 var(--serif);color:var(--accent)}
.tool-box .result span{display:block;color:var(--muted);font-size:15px;margin:2px 0 8px}
.tool-box .q{display:block;width:100%;font:500 14px var(--sans);color:var(--ink);margin-bottom:2px}
.tool-box .tags{margin:0 0 14px}
.sheet-out{white-space:pre-wrap;background:var(--paper);border:1px solid var(--rule);padding:12px 14px;font:14px/1.6 ui-monospace,Menlo,Consolas,monospace;margin:14px 0}
.btns{display:flex;gap:8px;flex-wrap:wrap}
.go.ghost{background:transparent;color:var(--accent);border:1px solid var(--accent)}
.checks{list-style:none;padding:0;margin:0}
.checks li{border-bottom:1px solid var(--rule)}
.checks label{display:flex;gap:10px;align-items:flex-start;padding:10px 0;font:15px/1.5 var(--sans);color:var(--ink);cursor:pointer}
.checks input{margin-top:4px;width:18px;height:18px;accent-color:var(--accent);flex:none}
@media(max-width:760px){.row3,.row2{grid-template-columns:1fr}}
