/* Vaultrace. Brushed-steel plates with chamfered corners, brass trim, a combination-dial clock. Plain CSS, no build step. */
@font-face{font-family:"Big Shoulders Display";font-weight:700;font-display:swap;src:url(fonts/big-shoulders-display-latin-700-normal.woff2) format("woff2")}
@font-face{font-family:"Big Shoulders Display";font-weight:800;font-display:swap;src:url(fonts/big-shoulders-display-latin-800-normal.woff2) format("woff2")}
@font-face{font-family:"Big Shoulders Display";font-weight:900;font-display:swap;src:url(fonts/big-shoulders-display-latin-900-normal.woff2) format("woff2")}
@font-face{font-family:"Schibsted Grotesk";font-weight:400 900;font-display:swap;src:url(fonts/schibsted-grotesk-latin-wght-normal.woff2) format("woff2")}
@font-face{font-family:"JetBrains Mono";font-weight:100 800;font-display:swap;src:url(fonts/jetbrains-mono-latin-wght-normal.woff2) format("woff2")}

:root{
  --bg:#DDE1E3; --bg2:#CFD5D8; --panel:#EEF0F1; --panel2:#E4E8EA; --ink:#0E1A22; --mut:#566772; --line:#B9C1C6; --line2:#CBD2D6;
  --steel:#22313B; --brass:#9A6A0D; --gold:#C98F12; --goldbg:#F3E3B5; --open:#0B8A68; --openbg:#CFEBE2; --alarm:#C8382B; --alarmbg:#F4D3CE;
  --shade:rgba(14,26,34,.10); --c:16px;
  --display:"Big Shoulders Display","Arial Narrow",Impact,sans-serif; --body:"Schibsted Grotesk",system-ui,-apple-system,"Segoe UI",sans-serif; --mono:"JetBrains Mono",ui-monospace,Menlo,monospace;
  color-scheme:light;
}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]){
  --bg:#0B1115; --bg2:#10181D; --panel:#131C22; --panel2:#18232A; --ink:#E7EDF0; --mut:#8B9CA6; --line:#2A373F; --line2:#1F2B32;
  --steel:#C7D2D8; --brass:#E9B440; --gold:#E9B440; --goldbg:#3A2E10; --open:#2FD0A0; --openbg:#10332B; --alarm:#FF5D49; --alarmbg:#3C1814; --shade:rgba(0,0,0,.35); color-scheme:dark}}
:root[data-theme="dark"]{
  --bg:#0B1115; --bg2:#10181D; --panel:#131C22; --panel2:#18232A; --ink:#E7EDF0; --mut:#8B9CA6; --line:#2A373F; --line2:#1F2B32;
  --steel:#C7D2D8; --brass:#E9B440; --gold:#E9B440; --goldbg:#3A2E10; --open:#2FD0A0; --openbg:#10332B; --alarm:#FF5D49; --alarmbg:#3C1814; --shade:rgba(0,0,0,.35); color-scheme:dark}

*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--bg);color:var(--ink);font:500 15px/1.5 var(--body);overflow-x:hidden;
  background-image:linear-gradient(var(--line2) 1px,transparent 1px),linear-gradient(90deg,var(--line2) 1px,transparent 1px);background-size:44px 44px;background-position:-1px -1px}
body::before{content:"";position:fixed;inset:0;pointer-events:none;background:radial-gradient(1100px 520px at 50% -10%,transparent,var(--bg) 78%);z-index:0}
a{color:inherit;text-decoration:none}
button,input,select,textarea{font:inherit;color:inherit}
button{cursor:pointer}
:focus-visible{outline:2px solid var(--gold);outline-offset:2px}
.skip{position:absolute;left:-999px;top:8px;background:var(--ink);color:var(--bg);padding:8px 12px;z-index:100}.skip:focus{left:8px}
h1,h2,h3,h4{font-family:var(--display);font-weight:800;line-height:.95;margin:0;letter-spacing:.005em;text-wrap:balance}
h1{font-size:clamp(46px,7.4vw,92px)} h2{font-size:clamp(34px,4.4vw,52px)} h3{font-size:26px} h4{font-size:19px}
p{margin:0}
.mut{color:var(--mut)} .num{font-variant-numeric:tabular-nums;font-family:var(--mono);font-weight:600;letter-spacing:-.02em}
.up{color:var(--open)} .dn{color:var(--alarm)} .gold{color:var(--brass)}
.hide{display:none!important}
main.page,.foot{position:relative;z-index:1;width:min(1220px,100%);margin:0 auto;padding-inline:20px}
main.page{padding-block:96px 56px;min-height:78vh}
main.page:focus{outline:none}

/* ---- plates: chamfered corners (top-left, bottom-right) with a hairline inside ---- */
.plate{--c:16px;position:relative;background:var(--panel);box-shadow:inset 0 0 0 1px var(--line);
  clip-path:polygon(var(--c) 0,100% 0,100% calc(100% - var(--c)),calc(100% - var(--c)) 100%,0 100%,0 var(--c));padding:22px}
.plate.sm{--c:10px;padding:14px}
.plate.steel{background:var(--steel);color:var(--bg);box-shadow:none}
.plate.steel .mut{color:color-mix(in srgb,var(--bg) 62%,transparent)}
.riv::after{content:"";position:absolute;inset:8px;pointer-events:none;opacity:.55;
  background:radial-gradient(circle,var(--line) 0 2px,transparent 2.5px) 0 0/100% 100% no-repeat,
  radial-gradient(circle,var(--line) 0 2px,transparent 2.5px) 100% 0/6px 6px no-repeat,
  radial-gradient(circle,var(--line) 0 2px,transparent 2.5px) 0 100%/6px 6px no-repeat}
.lbl{font:700 11px/1 var(--mono);letter-spacing:.06em;text-transform:uppercase;color:var(--mut)}
.tag{display:inline-flex;align-items:center;gap:6px;font:700 11px/1 var(--mono);letter-spacing:.03em;padding:5px 7px;background:var(--panel2);box-shadow:inset 0 0 0 1px var(--line);color:var(--mut);white-space:nowrap}
.tag.gold{background:var(--goldbg);color:var(--brass);box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--gold) 45%,transparent)}
.tag.open{background:var(--openbg);color:var(--open);box-shadow:none}.tag.caught{background:var(--alarmbg);color:var(--alarm);box-shadow:none}
.led{width:9px;height:9px;border-radius:50%;background:var(--open);box-shadow:0 0 0 3px color-mix(in srgb,var(--open) 25%,transparent);flex:none}
.led.red{background:var(--alarm);box-shadow:0 0 0 3px color-mix(in srgb,var(--alarm) 25%,transparent)}
.led.pulse{animation:pulse 1.8s ease-in-out infinite}
@keyframes pulse{50%{box-shadow:0 0 0 7px transparent}}
.row{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.between{justify-content:space-between}.sp{flex:1}
.stack{display:grid;gap:14px}
.grid{display:grid;gap:18px}
.g2{grid-template-columns:repeat(2,minmax(0,1fr))}.g3{grid-template-columns:repeat(3,minmax(0,1fr))}.g4{grid-template-columns:repeat(4,minmax(0,1fr))}

/* ---- buttons ---- */
.btn{--c:9px;display:inline-flex;align-items:center;justify-content:center;gap:8px;border:0;padding:12px 20px;font:800 17px/1 var(--display);letter-spacing:.04em;text-transform:uppercase;
  background:var(--ink);color:var(--bg);clip-path:polygon(var(--c) 0,100% 0,100% calc(100% - var(--c)),calc(100% - var(--c)) 100%,0 100%,0 var(--c));transition:transform .12s,background .12s;min-height:44px}
.btn:hover{transform:translateY(-1px)} .btn:active{transform:translateY(1px)}
.btn.gold{background:var(--gold);color:#14100A}
.btn.ghost{background:transparent;color:var(--ink);box-shadow:inset 0 0 0 1.5px var(--ink)}
.btn.sm{padding:8px 14px;font-size:15px;min-height:36px;--c:7px}
.btn.alarm{background:var(--alarm);color:#fff}
.btn:disabled{opacity:.5;cursor:not-allowed;transform:none}
.btn.block{width:100%}
.spin{width:15px;height:15px;border:2px solid currentColor;border-right-color:transparent;border-radius:50%;display:inline-block;animation:sp .7s linear infinite}@keyframes sp{to{transform:rotate(360deg)}}

/* ---- dock navbar (floating, centered; bottom tab bar on phones) ---- */
.dock-wrap{position:fixed;top:12px;left:0;right:0;z-index:50;display:flex;justify-content:center;padding-inline:12px;pointer-events:none}
.dock{pointer-events:auto;--c:14px;display:flex;align-items:center;gap:6px;width:min(1180px,100%);padding:7px 8px 7px 14px;background:color-mix(in srgb,var(--panel) 90%,transparent);backdrop-filter:blur(10px);
  box-shadow:inset 0 0 0 1px var(--line),0 12px 30px -14px var(--shade);clip-path:polygon(var(--c) 0,calc(100% - var(--c)) 0,100% var(--c),100% calc(100% - var(--c)),calc(100% - var(--c)) 100%,var(--c) 100%,0 calc(100% - var(--c)),0 var(--c))}
.brand{display:flex;align-items:center;gap:9px;font:900 27px/1 var(--display);letter-spacing:.02em;text-transform:uppercase;margin-right:8px}
.brand svg{flex:none}
.links{display:flex;gap:2px;margin-inline:auto}
.links a{position:relative;display:flex;align-items:center;gap:7px;padding:9px 13px;font:800 16px/1 var(--display);letter-spacing:.05em;text-transform:uppercase;color:var(--mut);transition:color .12s}
.links a svg{display:none}
.links a:hover{color:var(--ink)}
.links a.on{color:var(--ink)}
.links a.on::after{content:"";position:absolute;left:13px;right:13px;bottom:2px;height:3px;background:var(--gold)}
.tools{display:flex;align-items:center;gap:6px}
.ib{width:38px;height:38px;border:0;background:transparent;display:grid;place-items:center;color:var(--mut)}.ib:hover{color:var(--ink);background:var(--panel2)}
.wbtn{border:0;--c:8px;padding:10px 15px;font:800 15px/1 var(--display);letter-spacing:.05em;text-transform:uppercase;background:var(--gold);color:#14100A;min-height:38px;clip-path:polygon(var(--c) 0,100% 0,100% calc(100% - var(--c)),calc(100% - var(--c)) 100%,0 100%,0 var(--c))}
.wbtn.on{background:var(--panel2);color:var(--ink);box-shadow:inset 0 0 0 1px var(--line);font-family:var(--mono);font-weight:700;font-size:13px;letter-spacing:0;text-transform:none}
.vclock{display:flex;align-items:center;gap:8px;padding:0 10px;height:38px;background:var(--panel2);box-shadow:inset 0 0 0 1px var(--line)}
.vclock b{font:700 14px/1 var(--mono);letter-spacing:-.03em}
.vclock small{font:700 10px/1.1 var(--mono);color:var(--mut);text-transform:uppercase;letter-spacing:.04em;max-width:76px}

/* ---- hero + dial ---- */
.hero{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr);gap:34px;align-items:center;padding-block:10px 38px}
.hero h1{margin-bottom:18px}
.hero h1 em{font-style:normal;color:var(--brass);display:block}
.hero p.lead{font-size:18px;color:var(--mut);max-width:520px;margin-bottom:24px}
.hero .cta{display:flex;gap:12px;flex-wrap:wrap}
.vdoor{position:relative;display:grid;place-items:center;aspect-ratio:1;width:min(100%,520px);margin-inline:auto}
.vdoor svg{width:100%;height:100%;overflow:visible}
.vdoor .mid{position:absolute;inset:0;display:grid;place-items:center;text-align:center;pointer-events:none}
.vdoor .mid div{max-width:52%}
.vdoor .mid .pot{font:900 clamp(40px,6.4vw,74px)/.9 var(--display);letter-spacing:.005em}
.vdoor .mid .pot small{font:800 .36em/1 var(--display);letter-spacing:.06em;margin-left:5px;color:var(--brass)}
.vdoor .mid .lbl{margin-top:10px;display:block}
.vdoor .hand{transform-origin:200px 200px;transition:transform 1s linear}
.strip{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));margin-block:6px 54px}
.strip>div{padding:18px 20px;border-left:1px solid var(--line)}.strip>div:first-child{border-left:0}
.strip b{display:block;font:900 clamp(28px,3.4vw,42px)/1 var(--display);margin-top:8px}
.sec{margin-block:60px 0}
.sec-h{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;margin-bottom:22px;flex-wrap:wrap}
.sec-h p{color:var(--mut);max-width:560px;margin-top:8px}

/* ---- safe-deposit drawers (token cards) ---- */
.wall{display:grid;grid-template-columns:repeat(auto-fill,minmax(262px,1fr));gap:16px}
.drawer{--c:14px;position:relative;display:flex;flex-direction:column;gap:12px;padding:16px 16px 0;background:var(--panel);box-shadow:inset 0 0 0 1px var(--line);
  clip-path:polygon(var(--c) 0,100% 0,100% calc(100% - var(--c)),calc(100% - var(--c)) 100%,0 100%,0 var(--c));transition:transform .15s,background .15s;min-width:0}
.drawer:hover{transform:translateY(-3px);background:var(--panel2)}
.drawer .no{position:absolute;top:0;right:0;font:700 11px/1 var(--mono);padding:6px 9px;background:var(--steel);color:var(--bg);letter-spacing:.04em}
.drawer .who{display:flex;align-items:center;gap:11px;min-width:0;padding-right:38px}
.drawer .who b{font:800 21px/1 var(--display);letter-spacing:.01em;text-transform:uppercase;display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.drawer .who span{font:600 12px var(--mono);color:var(--mut)}
.handle{margin:2px -16px 0;padding:12px 16px 14px;background:var(--steel);color:var(--bg);display:grid;gap:4px;position:relative}
.handle::before{content:"";position:absolute;left:50%;top:-5px;width:46px;height:10px;transform:translateX(-50%);background:var(--gold);clip-path:polygon(8px 0,calc(100% - 8px) 0,100% 100%,0 100%)}
.handle .amt{font:900 34px/1 var(--display);letter-spacing:.01em;display:flex;align-items:baseline;gap:7px;flex-wrap:wrap}
.handle .amt small{font:800 15px var(--display);letter-spacing:.06em;color:var(--gold)}
.handle .sub{display:flex;justify-content:space-between;gap:8px;font:600 12px var(--mono);color:color-mix(in srgb,var(--bg) 66%,transparent)}
.bars{display:flex;gap:3px;align-items:flex-end;height:18px}.bars i{display:block;width:16px;height:9px;background:var(--gold);transform:skewX(-18deg);opacity:.25}.bars i.on{opacity:1}
.av{display:inline-grid;place-items:center;flex:none;overflow:hidden;color:#fff;font:900 20px/1 var(--display);background:var(--steel);clip-path:polygon(22% 0,78% 0,100% 22%,100% 78%,78% 100%,22% 100%,0 78%,0 22%)}
.av img{width:100%;height:100%;object-fit:cover}
.qchip{display:inline-flex;align-items:center;gap:5px;font:700 11px/1 var(--mono);padding:4px 6px;background:var(--panel2);box-shadow:inset 0 0 0 1px var(--line);color:var(--ink)}
.qchip i{width:8px;height:8px;border-radius:50%;background:var(--q,#627EEA)}

/* ---- deposit-slip leaderboard ---- */
.slips{display:grid;gap:8px}
.slip{position:relative;display:grid;grid-template-columns:34px minmax(0,1fr) auto;gap:12px;align-items:center;padding:11px 14px;background:var(--panel);box-shadow:inset 0 0 0 1px var(--line)}
.slip::before{content:"";position:absolute;left:46px;top:6px;bottom:6px;border-left:2px dotted var(--line)}
.slip .pos{font:900 24px/1 var(--display);color:var(--mut);text-align:center}
.slip .w{padding-left:10px;min-width:0}
.slip .w b{font:600 14px var(--mono);display:block;overflow:hidden;text-overflow:ellipsis}
.slip .fill{display:block;height:5px;margin-top:7px;background:var(--line2);position:relative;overflow:hidden}
.slip .fill i{position:absolute;inset:0 auto 0 0;background:var(--steel);width:0;transition:width .9s cubic-bezier(.2,.8,.2,1)}
.slip .sc{text-align:right;font:700 15px var(--mono)}.slip .sc small{display:block;font:600 11px var(--mono);color:var(--mut)}
.slip.p1{background:var(--goldbg);box-shadow:inset 0 0 0 1.5px var(--gold)}.slip.p1 .pos{color:var(--brass)}.slip.p1 .fill i{background:var(--gold)}
.slip.out{opacity:.75}.slip.out .fill i{background:repeating-linear-gradient(45deg,var(--alarm) 0 4px,transparent 4px 8px)}
.slip.me{box-shadow:inset 0 0 0 1.5px var(--ink)}
.stamp{position:absolute;right:92px;top:50%;transform:translateY(-50%) rotate(-7deg);font:900 18px/1 var(--display);letter-spacing:.1em;color:var(--alarm);border:2px solid var(--alarm);padding:3px 8px;background:color-mix(in srgb,var(--panel) 70%,transparent)}

/* ---- tables ---- */
.ledger{width:100%;border-collapse:collapse;font-size:14px}
.ledger th{font:700 11px/1 var(--mono);letter-spacing:.05em;text-transform:uppercase;color:var(--mut);text-align:left;padding:12px 12px;background:var(--panel2);border-bottom:1px solid var(--line)}
.ledger td{padding:12px;border-bottom:1px solid var(--line2);vertical-align:middle}
.ledger tr[data-href]{cursor:pointer}.ledger tr[data-href]:hover td{background:var(--panel2)}
.ledger .r{text-align:right}
.scroll{overflow-x:auto}
.spark{width:92px;height:28px;display:block}

/* ---- forms ---- */
.field{display:grid;gap:7px}
.field label,.field .fl{font:700 12px/1 var(--mono);letter-spacing:.05em;text-transform:uppercase;color:var(--mut)}
.in{width:100%;min-height:46px;padding:11px 13px;background:var(--bg);border:0;box-shadow:inset 0 0 0 1.5px var(--line);color:var(--ink);font:600 16px var(--body);border-radius:0}
.in:focus{outline:none;box-shadow:inset 0 0 0 2px var(--gold)}
textarea.in{min-height:84px;resize:vertical}
.in-row{display:flex;align-items:stretch;gap:0}.in-row .in{flex:1;min-width:0}.in-row .suf{display:grid;place-items:center;padding:0 14px;background:var(--panel2);box-shadow:inset 0 0 0 1.5px var(--line);font:800 15px var(--display);letter-spacing:.05em}
.hint{font-size:13px;color:var(--mut)}.err{color:var(--alarm);font-weight:600;font-size:14px}
input[type=range]{-webkit-appearance:none;appearance:none;width:100%;height:30px;background:transparent}
input[type=range]::-webkit-slider-runnable-track{height:6px;background:linear-gradient(90deg,var(--steel) var(--p,50%),var(--line) var(--p,50%))}
input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;width:20px;height:28px;margin-top:-11px;background:var(--gold);border:2px solid var(--ink);clip-path:polygon(0 0,100% 0,100% 70%,50% 100%,0 70%)}
input[type=range]::-moz-range-track{height:6px;background:var(--line)}
input[type=range]::-moz-range-thumb{width:18px;height:26px;background:var(--gold);border:2px solid var(--ink);border-radius:0}
.seg{display:inline-flex;box-shadow:inset 0 0 0 1.5px var(--line)}.seg button{border:0;background:transparent;padding:10px 14px;font:800 15px/1 var(--display);letter-spacing:.05em;text-transform:uppercase;color:var(--mut);min-height:40px}
.seg button.on{background:var(--ink);color:var(--bg)}
.chips{display:flex;gap:8px;flex-wrap:wrap}.chips button{border:0;background:var(--panel2);box-shadow:inset 0 0 0 1px var(--line);padding:8px 12px;font:700 13px var(--mono);color:var(--ink)}.chips button.on{background:var(--gold);color:#14100A;box-shadow:none}
.notice{padding:12px 14px;background:var(--goldbg);color:var(--ink);box-shadow:inset 3px 0 0 var(--gold);font-size:14px}
.notice.red{background:var(--alarmbg);box-shadow:inset 3px 0 0 var(--alarm)}
.empty{padding:44px 20px;text-align:center;color:var(--mut)}.empty h3{color:var(--ink);margin-bottom:8px}

/* ---- token page ---- */
.thead{display:flex;gap:16px;align-items:center;flex-wrap:wrap;margin-bottom:22px}
.thead h1{font-size:clamp(38px,5vw,60px)}
.cols{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(320px,.85fr);gap:20px;align-items:start}
.chartbox{position:relative;color:var(--ink)}.chart{width:100%;height:230px;display:block}
.chartbox .xh{position:absolute;top:0;bottom:0;width:1px;background:var(--mut);opacity:0;pointer-events:none}.chartbox .xd{position:absolute;width:11px;height:11px;margin:-5px 0 0 -5px;background:var(--gold);border:2px solid var(--ink);opacity:0;pointer-events:none}
.chartbox .xt{position:absolute;top:-6px;transform:translateX(-50%);background:var(--ink);color:var(--bg);font:600 12px var(--mono);padding:4px 7px;white-space:nowrap;opacity:0;pointer-events:none}
.chartbox:hover .xh,.chartbox:hover .xd,.chartbox:hover .xt{opacity:1}
.tabs{display:flex;gap:2px;margin-block:20px 14px;flex-wrap:wrap;border-bottom:2px solid var(--line)}.tabs button{border:0;background:transparent;padding:10px 16px;font:800 17px/1 var(--display);letter-spacing:.05em;text-transform:uppercase;color:var(--mut);margin-bottom:-2px;border-bottom:3px solid transparent}.tabs button.on{color:var(--ink);border-color:var(--gold)}
.teller .seg{width:100%}.teller .seg button{flex:1}
.kv{display:grid;gap:0}.kv div{display:flex;justify-content:space-between;gap:12px;padding:9px 0;border-bottom:1px dashed var(--line);font-size:14px}.kv div:last-child{border:0}.kv span:first-child{color:var(--mut)}.kv b{font-weight:700;text-align:right;word-break:break-all}
.donut{display:block}.legend{display:grid;gap:8px;font-size:14px}.legend div{display:flex;align-items:center;gap:8px}.legend i{width:11px;height:11px;flex:none}
.bar55{position:relative;height:16px;background:var(--alarm);margin:8px 0 6px}.bar55 .go{position:absolute;inset:0 auto 0 0;width:91.67%;background:var(--open)}.bar55 .mk{position:absolute;top:-5px;bottom:-5px;width:4px;background:var(--ink);box-shadow:0 0 0 2px var(--panel)}
.plab{display:flex;justify-content:space-between;font:600 11px var(--mono);color:var(--mut)}
.state{display:inline-flex;align-items:center;gap:8px;font:800 15px/1 var(--display);letter-spacing:.06em;text-transform:uppercase}
.digits{font:900 clamp(54px,8vw,92px)/.9 var(--display);letter-spacing:.02em;font-variant-numeric:tabular-nums}.digits.sm{font-size:40px}

/* ---- manual ---- */
.manual{display:grid;grid-template-columns:220px minmax(0,1fr);gap:40px;align-items:start}
.toc{position:sticky;top:92px;display:grid;gap:2px}.toc a{padding:8px 10px;font:800 16px/1 var(--display);letter-spacing:.05em;text-transform:uppercase;color:var(--mut);border-left:3px solid var(--line)}.toc a:hover{color:var(--ink);border-color:var(--gold)}
.doc section{margin-bottom:46px;scroll-margin-top:96px}.doc h2{margin-bottom:14px}.doc p+p{margin-top:12px}.doc ul{padding-left:20px;margin:10px 0}
.rules{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:14px}
.rule{padding:16px 16px 16px 18px;background:var(--panel);box-shadow:inset 0 0 0 1px var(--line),inset 4px 0 0 var(--steel)}.rule.hot{box-shadow:inset 0 0 0 1px var(--line),inset 4px 0 0 var(--alarm)}
.rule b{font:800 20px/1.05 var(--display);text-transform:uppercase;letter-spacing:.02em;display:block;margin-bottom:6px}.rule p{color:var(--mut);font-size:14px}
details{border-bottom:1px solid var(--line);padding:2px 0}summary{cursor:pointer;padding:14px 0;font:800 20px/1.1 var(--display);text-transform:uppercase;letter-spacing:.02em;list-style:none;display:flex;justify-content:space-between;gap:14px}summary::after{content:"+";color:var(--brass)}details[open] summary::after{content:"−"}details p{padding:0 0 16px;color:var(--mut);max-width:70ch}
.sim .tl{margin-top:20px}.sim .acts{display:flex;gap:8px;flex-wrap:wrap;margin-top:14px}.sim .log{margin-top:14px;display:grid;gap:6px;font-size:14px;min-height:60px}.sim .log div{display:flex;gap:9px}.sim .log b{width:14px;flex:none}
.sim .res{padding:18px;background:var(--panel2);box-shadow:inset 0 0 0 1px var(--line)}.sim .res.win{box-shadow:inset 0 0 0 2px var(--open)}.sim .res.lose{box-shadow:inset 0 0 0 2px var(--alarm)}

/* ---- misc ---- */
.find{position:fixed;inset:0;z-index:80;background:rgba(5,10,13,.55);display:none;align-items:flex-start;justify-content:center;padding:90px 14px 0}.find.open{display:flex}
.find .box{width:min(560px,100%);background:var(--panel);box-shadow:inset 0 0 0 1px var(--line);padding:10px}.find input{width:100%;border:0;background:var(--bg);padding:14px;font:600 17px var(--body);outline:none}
.find .res{max-height:50vh;overflow:auto;margin-top:6px}.find .it{display:flex;gap:11px;align-items:center;padding:10px;cursor:pointer}.find .it.on,.find .it:hover{background:var(--panel2)}.find .it small{margin-left:auto;color:var(--mut);font:600 12px var(--mono)}
.toast{position:fixed;left:50%;bottom:90px;transform:translate(-50%,20px);background:var(--ink);color:var(--bg);padding:12px 18px;font-weight:700;opacity:0;pointer-events:none;transition:.25s;z-index:90;max-width:90vw;text-align:center}.toast.show{opacity:1;transform:translate(-50%,0)}
#pops{position:fixed;right:14px;top:84px;z-index:60;display:grid;gap:8px;max-width:min(330px,calc(100vw - 28px))}.pop{background:var(--ink);color:var(--bg);padding:12px 14px;font-size:14px;animation:pin .35s}@keyframes pin{from{transform:translateX(30px);opacity:0}}.pop b{color:var(--gold)}
.foot{padding-block:30px 100px;display:grid;gap:14px;border-top:1px solid var(--line);margin-top:30px}.foot .fl{display:flex;gap:20px;flex-wrap:wrap;font:800 16px var(--display);letter-spacing:.05em;text-transform:uppercase}.foot small{color:var(--mut);max-width:80ch}
.pill{display:inline-flex;gap:8px;align-items:center}
.pagehead{margin-bottom:26px}.pagehead p{color:var(--mut);margin-top:10px;max-width:60ch}
.wz{display:grid;grid-template-columns:minmax(0,1fr) 330px;gap:22px;align-items:start}
.rail{display:flex;gap:0;margin-bottom:18px;flex-wrap:wrap}.rail button{flex:1;min-width:110px;border:0;background:var(--panel);box-shadow:inset 0 0 0 1px var(--line);padding:12px 14px;text-align:left;font:800 16px/1 var(--display);letter-spacing:.05em;text-transform:uppercase;color:var(--mut);display:flex;gap:9px;align-items:center}
.rail button i{font:700 12px var(--mono);font-style:normal;width:22px;height:22px;display:grid;place-items:center;background:var(--line2)}
.rail button.on{background:var(--ink);color:var(--bg)}.rail button.on i{background:var(--gold);color:#14100A}.rail button.done i{background:var(--open);color:#fff}
@media (prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}

/* ---- responsive ---- */
@media (max-width:1060px){.hero{grid-template-columns:1fr}.vdoor{width:min(100%,430px)}.cols,.wz{grid-template-columns:1fr}.g4{grid-template-columns:repeat(2,minmax(0,1fr))}.manual{grid-template-columns:1fr}.toc{position:static;grid-template-columns:repeat(auto-fit,minmax(110px,1fr))}.vclock small{display:none}}
@media (max-width:820px){
  .dock-wrap{top:0;padding:0}
  .dock{width:100%;clip-path:none;padding:8px 12px;gap:8px;justify-content:space-between}
  .links{position:fixed;left:0;right:0;bottom:0;margin:0;background:var(--panel);box-shadow:inset 0 1px 0 var(--line);display:grid;grid-template-columns:repeat(6,1fr);padding:6px 4px calc(6px + env(safe-area-inset-bottom,0px));z-index:55;pointer-events:auto}
  .links a{flex-direction:column;gap:4px;padding:6px 2px;font-size:12px;letter-spacing:.03em;justify-content:center}.links a svg{display:block}.links a.on::after{left:30%;right:30%;top:0;bottom:auto;height:3px}
  .vclock{display:none}.tools{gap:4px}
  main.page{padding-top:76px}.foot{padding-bottom:110px}.toast{bottom:84px}
  .g3,.g2{grid-template-columns:1fr}.strip{grid-template-columns:repeat(2,minmax(0,1fr))}.strip>div:nth-child(3){border-left:0}
}
@media (max-width:520px){main.page,.foot{padding-inline:16px}.brand span{font-size:23px}.plate{padding:18px}.slip{grid-template-columns:28px minmax(0,1fr) auto;padding:10px}.slip::before{left:38px}.stamp{display:none}.wall{grid-template-columns:1fr}.g4{grid-template-columns:1fr 1fr}.wbtn{padding:9px 11px}.rail button{min-width:46%}}
.vdoor .mid>div{padding:10px 14px;background:radial-gradient(closest-side,var(--panel) 62%,transparent)}
.field+.field,.field+details{margin-top:18px}
@media (max-width:1060px){.cols>aside{order:-1}}
[hidden]{display:none!important}
