@font-face{font-family:'PT Serif';src:url('fonts/ptserif-400-latin.woff2?v=451d0c3e27') format('woff2');font-weight:400;font-display:swap}
@font-face{font-family:'Inter';src:url('fonts/inter-400-latin.woff2?v=4ec7c909d3') format('woff2');font-weight:400;font-display:swap}
@font-face{font-family:'Inter';src:url('fonts/inter-600-latin.woff2?v=56ef7f1835') format('woff2');font-weight:600;font-display:swap}
@font-face{font-family:'IBM Plex Mono';src:url('fonts/plexmono-400-latin.woff2?v=667da84b42') format('woff2');font-weight:400;font-display:swap}
:root{--ink:#12395C;--ink-deep:#0C2740;--ink-2:#3F5468;--gold:#C9A227;--gold-soft:#E8D28A;--paper:#F7F4EA;--panel:#FDFCF7;--panel-2:#F1EDE1;--alert:#C0392B;--alert-bg:#FBEFEE;--ok:#2E7D5B;--slate:#6B7A8C;--line:#E2DED1;--line-2:#D2CCBB;
--w:960px;--col:720px;--gap:24px;--r:12px;--r-s:8px;--sp:64px;--sp-s:40px;--shadow:0 6px 22px rgba(18,57,92,.10);--shadow-s:0 2px 8px rgba(18,57,92,.06)}
*{margin:0;padding:0;box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}
body{background:var(--paper);color:var(--ink);font-family:'Inter',system-ui,sans-serif;font-size:17px;line-height:1.6;font-weight:400}
h1,h2,h3{font-family:'PT Serif',Georgia,serif;font-weight:400;line-height:1.15;color:var(--ink)}
h1{font-size:clamp(34px,5.6vw,52px);letter-spacing:-.012em;margin:0 0 14px}
h2{font-size:clamp(24px,3.6vw,30px);margin:0 0 18px;display:flex;align-items:baseline;gap:12px}
h2::before{content:"";width:22px;height:8px;border-left:2px solid var(--gold);border-top:2px solid var(--gold);flex:0 0 auto;transform:translateY(-2px)}
h3{font-family:'Inter',sans-serif;font-weight:600;font-size:18px;line-height:1.3;margin:0 0 8px}
p{margin:0 0 16px;max-width:68ch}
a{color:var(--ink);text-decoration:none}
.mono,code{font-family:'IBM Plex Mono',ui-monospace,monospace;font-size:.94em}
.wrap{max-width:var(--w);margin:0 auto;padding:0 24px}
.col{max-width:var(--col)}
main{padding:var(--sp-s) 0 var(--sp)}
section{margin:0 0 var(--sp)}
section:last-child{margin-bottom:0}
.lede{font-size:20px;color:var(--ink-2);max-width:60ch;margin:0 0 6px;line-height:1.5}
.notch{width:240px;height:24px;display:block;margin:10px 0 34px}
hr.sep{border:0;border-top:1px solid var(--line);margin:var(--sp-s) 0}
/* header */
header{border-bottom:1px solid var(--line);background:rgba(247,244,234,.94);backdrop-filter:blur(8px);position:sticky;top:0;z-index:20}
.bar{display:flex;align-items:center;gap:14px;height:64px}
.brand{display:flex;align-items:center;gap:11px}
.mark{width:36px;height:36px;display:block;flex:0 0 auto}
.brand .name{font-family:'Inter';font-weight:600;letter-spacing:.14em;font-size:14px;display:block;line-height:1}
.brand .dao{color:var(--gold);font-size:10.5px;letter-spacing:.3em;display:block;margin-top:4px;line-height:1}
nav.main{margin-left:auto;display:flex;gap:2px}
nav.main a{color:var(--slate);padding:8px 8px;border-radius:6px;font-size:14px;position:relative;white-space:nowrap}
nav.main a:hover{color:var(--ink);background:var(--panel-2)}
nav.main a[aria-current]{color:var(--ink)}
nav.main a[aria-current]::after{content:"";position:absolute;left:10px;right:10px;bottom:2px;height:2px;background:var(--gold)}
.langs{display:flex;gap:2px;font-size:13.5px;border:1px solid var(--line);border-radius:999px;padding:3px}
.langs a,.langs span{padding:4px 10px;border-radius:999px;color:var(--slate);white-space:nowrap;line-height:1.4}
.langs a[aria-current]{color:var(--paper);background:var(--ink)}
.langs a:hover{color:var(--ink)}
.menu-btn{display:none;margin-left:auto;border:1px solid var(--line);background:transparent;border-radius:8px;width:40px;height:40px;cursor:pointer;color:var(--ink)}
.menu-btn svg{width:20px;height:20px}
.skip{position:absolute;left:-9999px}
.skip:focus{left:20px;top:10px;background:var(--paper);padding:8px 14px;border:1px solid var(--ink);z-index:30}
/* semantic blocks */
.key,.note,.warn,.ok{position:relative;border-radius:var(--r-s);padding:16px 20px 16px 56px;margin:22px 0;max-width:var(--col)}
.key::before,.note::before,.warn::before,.ok::before{position:absolute;left:18px;top:16px;width:22px;height:22px}
.key{background:linear-gradient(90deg,#FBF6E4,var(--panel));border:1px solid #EAD9A0;font-family:'PT Serif',serif;font-size:19px;line-height:1.5;color:var(--ink-deep)}
.key::before{content:"";background:no-repeat center/contain url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23C9A227' stroke-width='2' stroke-linecap='square'%3E%3Cpath d='M3 19h7v-5h5v-5h6'/%3E%3Crect x='19' y='7' width='3' height='3' fill='%23C9A227' stroke='none'/%3E%3C/svg%3E")}
.note{background:var(--panel);border:1px solid var(--line);color:var(--ink-2);font-size:16px}
.note::before{content:"";background:no-repeat center/contain url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%236B7A8C' stroke-width='1.8'%3E%3Ccircle cx='12' cy='12' r='9'/%3E%3Cpath d='M12 11v6M12 7.5v.5' stroke-linecap='round'/%3E%3C/svg%3E")}
.warn{background:var(--alert-bg);border:1px solid #E7B9B4;color:#5A2A24;font-size:16px}
.warn strong{color:var(--alert)}
.warn::before{content:"";background:no-repeat center/contain url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23C0392B' stroke-width='1.9' stroke-linejoin='round'%3E%3Cpath d='M12 3 2.5 20h19z'/%3E%3Cpath d='M12 9v5M12 16.5v.5' stroke-linecap='round'/%3E%3C/svg%3E")}
.ok{background:#EEF6F1;border:1px solid #BFDCCB;color:#1F4D38;font-size:16px}
.ok::before{content:"";background:no-repeat center/contain url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%232E7D5B' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12.5l4.5 4.5L19 7'/%3E%3C/svg%3E")}
.key p,.note p,.warn p,.ok p{margin:0}
.locked{list-style:none;margin:0;padding:0;max-width:var(--col)}
.locked li{position:relative;padding:10px 0 10px 34px;border-bottom:1px solid var(--line);color:var(--ink-2)}
.locked li::before{content:"";position:absolute;left:4px;top:13px;width:16px;height:16px;background:no-repeat center/contain url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2312395C' stroke-width='1.9'%3E%3Crect x='5' y='11' width='14' height='10' rx='2'/%3E%3Cpath d='M8 11V8a4 4 0 0 1 8 0v3'/%3E%3C/svg%3E")}
ol.vote{margin:0;padding:0;list-style:none;counter-reset:v;max-width:var(--col)}
ol.vote li{counter-increment:v;position:relative;padding:10px 0 10px 44px;border-bottom:1px solid var(--line);color:var(--ink-2)}
ol.vote li::before{content:counter(v,decimal-leading-zero);position:absolute;left:0;top:12px;font-family:'IBM Plex Mono',monospace;font-size:13px;color:var(--gold)}
/* cards */
.cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:var(--gap);margin:0}
.card{background:var(--panel);border:1px solid var(--line);border-radius:var(--r);padding:22px 22px 20px;display:flex;flex-direction:column}
/* a card title is a heading for the outline, not a section of the page: the gold notch
   that marks real h2 headings has no business inside a card */
.card h3,.card h2{margin-bottom:8px}
/* the three ways onward from the film: icon tile, title, one line — in ascending order of time */
.cards.next3{grid-template-columns:repeat(3,1fr)}
.cards.next3 .card .ic{display:inline-flex;width:36px;height:36px;border-radius:10px;background:var(--panel-2);align-items:center;justify-content:center;color:var(--ink);margin-bottom:10px}
.cards.next3 .card .ic svg{width:18px;height:18px}
.cards.next3 .card:hover .ic{background:var(--ink);color:var(--paper)}
@media(max-width:720px){.cards.next3{grid-template-columns:1fr}}
.card h2::before{display:none}
.card h2{display:block;font-size:inherit;margin-top:0}
.card p{font-size:15px;color:var(--ink-2);margin:0;max-width:none}
.card .ico{width:34px;height:34px;border-radius:9px;background:var(--panel-2);display:flex;align-items:center;justify-content:center;margin-bottom:14px;color:var(--ink)}
.card .ico svg{width:19px;height:19px}
.cards a.card{color:inherit}
.card.link{transition:border-color .16s,box-shadow .16s,transform .16s;cursor:pointer}
.card.link:hover{border-color:var(--gold);box-shadow:var(--shadow);transform:translateY(-3px)}
.card.link .more{margin-top:auto;padding-top:14px;font-size:13px;color:var(--gold);letter-spacing:.04em;display:flex;align-items:center;gap:6px}
.card.link .more svg{width:14px;height:14px;transition:transform .16s}
.card.link:hover .more svg{transform:translateX(4px)}
.card .n{font-family:'IBM Plex Mono',monospace;font-size:12px;color:var(--gold);margin-bottom:10px;letter-spacing:.06em}
@media(min-width:760px){.cards.seven>a:last-child{grid-column:1/-1;flex-direction:row;align-items:center;gap:28px}.cards.seven>a:last-child h3{margin:0}.cards.seven>a:last-child p{flex:1}.cards.seven>a:last-child .more{margin:0;padding:0}}
/* figures, tables */
.figure{background:var(--panel);border:1px solid var(--line);border-radius:var(--r);padding:24px;margin:0}
.figure .cap{font-size:13px;color:var(--slate);margin:12px 0 0;max-width:none}
.figure label{display:block;margin-top:14px;font-size:13.5px;color:var(--slate)}
input[type=range]{width:100%;accent-color:var(--gold);margin-top:6px}
table{width:100%;border-collapse:collapse;font-size:15px;margin:0 0 12px}
th{text-align:left;font-weight:600;font-size:13px;letter-spacing:.04em;color:var(--slate);border-bottom:2px solid var(--ink);padding:10px 12px 10px 0}
td{padding:11px 12px 11px 0;border-bottom:1px solid var(--line);vertical-align:top}
tbody tr:hover td{background:rgba(201,162,39,.06)}
details{border-bottom:1px solid var(--line)}
summary{cursor:pointer;padding:16px 0;font-weight:600;list-style:none;display:flex;gap:12px;align-items:baseline}
summary::-webkit-details-marker{display:none}
summary::before{content:"";width:14px;height:8px;flex:0 0 auto;border-left:2px solid var(--gold);border-top:2px solid var(--gold);transform:translateY(4px);transition:transform .16s}
details[open] summary::before{transform:translateY(4px) rotate(90deg)}
details .body{padding:0 0 18px 26px;max-width:68ch;color:var(--ink-2)}
.code{font-family:'IBM Plex Mono',ui-monospace,monospace;font-size:14px;background:var(--panel-2);border:1px solid var(--line);border-radius:var(--r-s);padding:12px 14px;margin:0 0 14px;white-space:pre-wrap;word-break:break-all;user-select:all}
.btn{display:inline-flex;align-items:center;gap:10px;border:1px solid var(--ink);border-radius:var(--r-s);padding:11px 18px;font-size:15px;background:transparent;cursor:pointer;font-family:inherit;color:var(--ink);transition:background .12s,color .12s}
.btn:hover{background:var(--ink);color:var(--paper)}
.btn[disabled]{border-color:var(--line);color:var(--slate);cursor:default}
.btn[disabled]:hover{background:transparent;color:var(--slate)}
.btn-p{display:inline-flex;align-items:center;gap:10px;background:var(--gold);color:var(--ink-deep);border:1px solid var(--gold);border-radius:var(--r-s);padding:12px 18px;font-size:15px;font-weight:600;cursor:pointer;font-family:inherit;transition:transform .12s,box-shadow .12s}
.btn-p:hover{transform:translateY(-1px);box-shadow:0 8px 22px rgba(201,162,39,.35)}
.btn-s{display:inline-flex;align-items:center;gap:10px;background:rgba(247,244,234,.06);color:#F7F4EA;border:1px solid rgba(247,244,234,.5);border-radius:var(--r-s);padding:12px 18px;font-size:15px;cursor:pointer;font-family:inherit;transition:background .12s,border-color .12s}
.btn-s:hover{background:rgba(247,244,234,.14);border-color:#F7F4EA}
.ic{width:18px;height:18px;flex:0 0 auto}
a.rt{border-bottom:1px solid var(--line);transition:border-color .12s}
a.rt:hover{border-bottom-color:var(--gold)}
/* A link inside a paragraph of prose is lost if it only shows on hover: there is no hover
   on a phone, and nobody sweeps a cursor across text hunting for one. So it is visible at
   rest — gold underline, text colour unchanged — and lights up on hover, focus and touch. */
.at a.rt{border-bottom-color:var(--gold);border-radius:3px;padding:0 2px;margin:0 -2px;
  transition:background-color .14s,color .14s,border-color .14s}
.at a.rt:hover,.at a.rt:focus-visible,.at a.rt.tap{background:var(--ink);color:var(--paper);border-bottom-color:transparent}
.at a.rt:focus-visible{outline:2px solid var(--gold);outline-offset:1px}
@media(prefers-reduced-motion:reduce){.at a.rt{transition:none}}
/* ---------- desktop menu: six items, three pairs, a panel under each ----------
   The panel is part of the markup, shown by hover or keyboard focus; nothing is injected.
   A short delay on both opening and closing keeps it from flickering as the pointer
   crosses from item to panel. */
nav.mega{display:none;margin-left:auto;align-items:center;gap:0}
@media(min-width:981px){nav.mega{display:flex}nav.main{display:none!important}}
nav.mega .mg{display:inline-flex;align-items:center;gap:4px}
nav.mega .mg+.mg{margin-left:10px;padding-left:11px;border-left:1px solid var(--line-2)}
nav.mega .mm{position:relative}
nav.mega .mt{position:relative;display:inline-flex;align-items:center;gap:5px;color:var(--slate);padding:8px 10px;border-radius:8px;
  font-size:14.5px;white-space:nowrap;transition:background .08s,color .08s}
nav.mega .mt svg{width:12px;height:12px;opacity:.6;transition:transform .18s}
/* one dark pill glides between the items instead of each item lighting up on its own —
   the same move the language switcher makes. The pill is drawn by script; without script
   the items fall back to lighting up in place. */
nav.mega{position:relative}
nav.mega .pill{position:absolute;z-index:0;border-radius:8px;background:var(--ink);opacity:0;pointer-events:none;
  transition:left .3s cubic-bezier(.2,.8,.2,1),width .3s cubic-bezier(.2,.8,.2,1),opacity .16s ease}
nav.mega .pill.on{opacity:1}
nav.mega .mt{z-index:1;transition:color .16s ease,background .16s ease}
nav.mega.js .mm:hover .mt,nav.mega.js .mm:focus-within .mt,nav.mega.js .mm.open .mt{background:transparent;color:var(--paper)}
nav.mega:not(.js) .mm:hover .mt,nav.mega:not(.js) .mm:focus-within .mt,nav.mega:not(.js) .mm.open .mt{background:var(--ink);color:var(--paper)}
nav.mega .mm:hover .mt svg,nav.mega .mm:focus-within .mt svg,nav.mega .mm.open .mt svg{transform:rotate(180deg);opacity:1}
nav.mega .mt[aria-current]{color:var(--ink);font-weight:600}
nav.mega .mt[aria-current]::after{content:"";position:absolute;left:14px;right:14px;bottom:2px;height:2px;background:var(--gold)}
nav.mega .mp{position:absolute;top:calc(100% + 26px);left:-8px;z-index:60;width:640px;
  display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,1fr);gap:4px 18px;padding:16px 16px 14px;
  background:var(--panel);border:1px solid var(--line-2);border-radius:14px;
  box-shadow:0 30px 70px rgba(12,39,64,.20),0 4px 10px rgba(12,39,64,.07);
  opacity:0;visibility:hidden;transform:translateY(10px) scale(.97);transform-origin:28px top;
  transition:opacity .12s ease,transform .16s cubic-bezier(.4,0,.6,1),visibility 0s linear .16s}
nav.mega .mp::before{content:"";position:absolute;left:0;right:0;top:-28px;height:28px}  /* bridge across the gap: the pointer must be able to cross it without the panel closing */
nav.mega .mp::after{content:"";position:absolute;left:0;right:0;top:0;height:3px;border-radius:14px 14px 0 0;
  background:linear-gradient(90deg,var(--gold) 0 18%,transparent 18%)}
/* the right-hand pair anchors its panels to the right edge of the whole menu, not to the
   item: at the narrowest desktop width an item-anchored panel ran off the left of the screen */
nav.mega .mg:last-child{position:relative}
nav.mega .mg:last-child .mm{position:static}
nav.mega .mm-r .mp{left:auto;right:0}
nav.mega .mm:hover .mp,nav.mega .mm:focus-within .mp,nav.mega .mm.open .mp{opacity:1;visibility:visible;transform:none;
  transition:opacity .18s ease .05s,transform .28s cubic-bezier(.16,1,.3,1) .05s,visibility 0s linear .05s}
/* the gold strip draws itself from the left as the panel opens */
nav.mega .mp::after{width:0;transition:width .12s ease}
nav.mega .mm:hover .mp::after,nav.mega .mm:focus-within .mp::after,nav.mega .mm.open .mp::after{width:18%;transition:width .36s cubic-bezier(.16,1,.3,1) .12s}
/* items arrive in a cascade: each one a few milliseconds after the last, the second column
   a beat behind the first. On closing they simply fade with the panel. */
nav.mega .mp .it{opacity:0;transform:translateY(5px);transition:opacity .1s ease,transform .1s ease,background-color .12s}
nav.mega .mm:hover .mp .it,nav.mega .mm:focus-within .mp .it,nav.mega .mm.open .mp .it{opacity:1;transform:none;
  transition:opacity .24s ease,transform .3s cubic-bezier(.16,1,.3,1),background-color .12s}
nav.mega .mm:hover .col:nth-child(1) .it:nth-child(2),nav.mega .mm:focus-within .col:nth-child(1) .it:nth-child(2),nav.mega .mm.open .col:nth-child(1) .it:nth-child(2){transition-delay:.06s}
nav.mega .mm:hover .col:nth-child(1) .it:nth-child(3),nav.mega .mm:focus-within .col:nth-child(1) .it:nth-child(3),nav.mega .mm.open .col:nth-child(1) .it:nth-child(3){transition-delay:.085s}
nav.mega .mm:hover .col:nth-child(1) .it:nth-child(4),nav.mega .mm:focus-within .col:nth-child(1) .it:nth-child(4),nav.mega .mm.open .col:nth-child(1) .it:nth-child(4){transition-delay:.11s}
nav.mega .mm:hover .col:nth-child(1) .it:nth-child(5),nav.mega .mm:focus-within .col:nth-child(1) .it:nth-child(5),nav.mega .mm.open .col:nth-child(1) .it:nth-child(5){transition-delay:.135s}
nav.mega .mm:hover .col:nth-child(1) .it:nth-child(6),nav.mega .mm:focus-within .col:nth-child(1) .it:nth-child(6),nav.mega .mm.open .col:nth-child(1) .it:nth-child(6){transition-delay:.16s}
nav.mega .mm:hover .col:nth-child(1) .it:nth-child(7),nav.mega .mm:focus-within .col:nth-child(1) .it:nth-child(7),nav.mega .mm.open .col:nth-child(1) .it:nth-child(7){transition-delay:.185s}
nav.mega .mm:hover .col:nth-child(1) .it:nth-child(8),nav.mega .mm:focus-within .col:nth-child(1) .it:nth-child(8),nav.mega .mm.open .col:nth-child(1) .it:nth-child(8){transition-delay:.21s}
nav.mega .mm:hover .col:nth-child(1) .it:nth-child(9),nav.mega .mm:focus-within .col:nth-child(1) .it:nth-child(9),nav.mega .mm.open .col:nth-child(1) .it:nth-child(9){transition-delay:.235s}
nav.mega .mm:hover .col:nth-child(1) .it:nth-child(10),nav.mega .mm:focus-within .col:nth-child(1) .it:nth-child(10),nav.mega .mm.open .col:nth-child(1) .it:nth-child(10){transition-delay:.26s}
nav.mega .mm:hover .col:nth-child(2) .it:nth-child(2),nav.mega .mm:focus-within .col:nth-child(2) .it:nth-child(2),nav.mega .mm.open .col:nth-child(2) .it:nth-child(2){transition-delay:.12s}
nav.mega .mm:hover .col:nth-child(2) .it:nth-child(3),nav.mega .mm:focus-within .col:nth-child(2) .it:nth-child(3),nav.mega .mm.open .col:nth-child(2) .it:nth-child(3){transition-delay:.15s}
nav.mega .mm:hover .col:nth-child(2) .it:nth-child(4),nav.mega .mm:focus-within .col:nth-child(2) .it:nth-child(4),nav.mega .mm.open .col:nth-child(2) .it:nth-child(4){transition-delay:.18s}
nav.mega .mm:hover .col:nth-child(2) .it:nth-child(5),nav.mega .mm:focus-within .col:nth-child(2) .it:nth-child(5),nav.mega .mm.open .col:nth-child(2) .it:nth-child(5){transition-delay:.21s}
nav.mega .mm:hover .col:nth-child(2) .it:nth-child(6),nav.mega .mm:focus-within .col:nth-child(2) .it:nth-child(6),nav.mega .mm.open .col:nth-child(2) .it:nth-child(6){transition-delay:.24s}
nav.mega .eb{opacity:0;transform:translateY(4px);transition:opacity .1s,transform .1s}
nav.mega .mm:hover .eb,nav.mega .mm:focus-within .eb,nav.mega .mm.open .eb{opacity:1;transform:none;transition:opacity .2s ease .03s,transform .24s cubic-bezier(.16,1,.3,1) .03s}
nav.mega .col{display:flex;flex-direction:column;min-width:0}
nav.mega .eb{font-family:'IBM Plex Mono',monospace;font-size:10.5px;letter-spacing:.12em;text-transform:uppercase;
  color:var(--gold);padding:4px 10px 8px}
nav.mega a.it{display:flex;align-items:flex-start;gap:11px;padding:7px 10px;border-radius:9px;color:var(--ink);
  font-size:14px;line-height:1.3;transition:background .08s}
nav.mega a.it:hover,nav.mega a.it:focus-visible{background:var(--panel-2)}
nav.mega a.it .ic{flex:none;width:32px;height:32px;border-radius:9px;background:var(--panel-2);
  display:flex;align-items:center;justify-content:center;color:var(--ink)}
nav.mega a.it .ic svg{width:17px;height:17px}
nav.mega a.it .ic{transition:background .16s ease,color .16s ease,transform .22s cubic-bezier(.16,1,.3,1)}
nav.mega a.it:hover .ic{background:var(--ink);color:var(--paper);transform:scale(1.06)}
nav.mega a.it .tx{transition:transform .22s cubic-bezier(.16,1,.3,1)}
nav.mega a.it:hover .tx{transform:translateX(2px)}
nav.mega a.it .n{flex:none;width:32px;text-align:center;line-height:18px;font-family:'IBM Plex Mono',monospace;font-size:12px;color:var(--gold)}
nav.mega a.it .dot{flex:none;width:32px;height:18px;display:flex;align-items:center;justify-content:center}
nav.mega a.it .dot::before{content:"";width:6px;height:6px;border-radius:50%;background:var(--gold)}
/* the one item to open first in each panel: the same red mark as "Contact" in the phone menu */
nav.mega a.it .ic,nav.mega a.it .n,nav.mega a.it .dot{position:relative}
nav.mega a.it.first .ic::after,nav.mega a.it.first .n::after{content:"";position:absolute;right:-3px;top:-3px;
  width:8px;height:8px;border-radius:50%;background:var(--alert);box-shadow:0 0 0 2px var(--panel)}
nav.mega a.it.first .n::after{right:2px;top:-1px}
nav.mega a.it.first .ic svg{color:var(--alert)}
nav.mega a.it.first:hover .ic svg{color:var(--paper)}
nav.mega a.it .tx{display:flex;flex-direction:column;min-width:0}
nav.mega a.it b{font-weight:500}
nav.mega a.it small{color:var(--slate);font-size:12px;margin-top:1px}
@media(prefers-reduced-motion:reduce){nav.mega .mp,nav.mega .mt svg,nav.mega .mp .it,nav.mega .eb,nav.mega .pill,nav.mega a.it .ic,nav.mega a.it .tx,nav.mega .mp::after{transition:none;transform:none}}
/* hero */
.hero{position:relative;overflow:hidden;border-radius:16px;margin:0 0 var(--sp-s);background:radial-gradient(120% 140% at 100% 0%,#1E5A86 0%,#12395C 45%,#0C2740 100%);color:#F7F4EA;min-height:420px;display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,.9fr)}
.hero .txt{padding:48px 40px 40px;position:relative;z-index:2}
.hero .eyebrow{font-family:'IBM Plex Mono',monospace;font-size:12.5px;letter-spacing:.14em;color:var(--gold);text-transform:uppercase;margin-bottom:18px;display:flex;align-items:center;gap:10px}
.hero .eyebrow::before{content:"";width:22px;height:2px;background:var(--gold)}
.hero h1{color:#F7F4EA;margin:0 0 14px;font-size:clamp(38px,6vw,58px)}
.hero .sub{color:#C8D4E0;font-size:18.5px;line-height:1.55;max-width:48ch;margin:0 0 30px}
.hero .acts{display:flex;gap:14px;flex-wrap:wrap}.hero .sub.sub-ph{display:grid}.sub-v{grid-area:1/1;transition:opacity .18s ease}.sub-v:not(.on){opacity:0;visibility:hidden}.hero .facts .fact-ph>span.fl,.hero .facts #f3>span.fl,.facts .fl{display:grid}.hero .facts .fl>.fl-v,.facts .fl-v{grid-area:1/1;display:block;transition:opacity .18s ease}.facts .fl-v:not(.on){opacity:0;visibility:hidden}.facts #f3 b{display:flex;align-items:baseline;gap:9px}.facts .f3b{background:none;border:0;padding:0;margin:0;font:inherit;line-height:inherit;color:inherit;cursor:default;position:relative;transition:font-size .18s ease,color .18s ease,opacity .18s ease}.facts .f3b:not(.on){font-size:13px;color:#8FA8BE;opacity:.72;cursor:pointer}.facts .f3b:not(.on)::after{content:"";position:absolute;left:-6px;right:-6px;top:-12px;bottom:-12px}.facts .f3b:not(.on):hover,.facts .f3b:not(.on):focus-visible{opacity:1}.facts .f3b:focus-visible{outline:2px solid var(--gold);outline-offset:3px;border-radius:3px}.facts .f3tog i{font-style:normal;font-size:14px;color:#8FA8BE;opacity:.55;line-height:1}@media(prefers-reduced-motion:reduce){.sub-v,.facts .fl-v,.facts .f3b{transition:none}}
/* The current white paper carries the gold: tint, edge and the same dot the menu
   uses, here in the alert colour so it reads as "start with this one". The appendix
   below it gets no colour at all - a hairline rule and the word, which is enough to
   stop it being read as another version of the book. */
/* Every row in the table keeps the same left gutter, marked or not, so the column of
   names stays a straight line. The mark lives in the gutter: the rule at its very edge,
   the dot centred in it. Before this the dot stood in the text flow and pushed the name
   of the current book to the right of every other name, and sat on the gold rule. */
.docs td:first-child,.docs th:first-child{padding-left:18px;position:relative}
.docs tr.doc-cur>td{background:rgba(201,162,39,.12)}
.docs tr.doc-cur>td:first-child{box-shadow:inset 3px 0 0 var(--gold)}
.docs tr.doc-cur>td:first-child a{font-weight:600}
.doc-dot{position:absolute;left:8px;top:50%;margin-top:-3px;width:6px;height:6px;border-radius:50%;background:var(--alert)}
.docs tr.doc-ap>td:first-child{box-shadow:inset 1px 0 0 var(--line)}
/* Hover follows the pointer down the rows. Only where a pointer exists: on a touch
   screen the state would stick on the last row tapped. The current book keeps its
   own colour - it is already the brightest row, and lightening it further would
   make the pointer look lost. */
@media(hover:hover){.docs tbody tr:hover>td{background:rgba(18,57,92,.05)}
.docs tbody tr.doc-cur:hover>td{background:rgba(201,162,39,.17)}}
@media(max-width:720px){.docs td:first-child,.docs th:first-child{padding-left:0}
.docs tr.doc-cur{box-shadow:inset 3px 0 0 var(--gold);padding-left:16px}
.docs tr.doc-cur>td:first-child{box-shadow:none}


.docs tr.doc-ap>td:first-child{box-shadow:none}


.docs td:first-child{display:block}
.doc-tag{white-space:nowrap}
.doc-dot{left:-11px;top:0.75em}}
.doc-dl{display:inline-block;margin-left:7px;vertical-align:-1px;line-height:0;color:var(--slate);opacity:.75}
.docs tr:hover .doc-dl{opacity:1;color:var(--gold)}
.doc-tag{display:inline-block;margin-left:8px;font-family:'IBM Plex Mono',monospace;font-size:11px;letter-spacing:.06em;color:var(--ink-2);border:1px solid var(--line);border-radius:999px;padding:1px 7px;vertical-align:1px}
.facts .fp-turn{display:inline-flex;align-items:center;gap:6px;background:none;border:0;font:inherit;color:inherit;text-align:left;cursor:pointer;padding:8px 10px 8px 0;margin:-4px 0 -8px 0}
.facts .fp-turn .fl{position:relative}
/* The cell would otherwise hold the width of the longest of the four labels, and the
   arrow would stand off from every shorter one. The hidden three are taken out of flow
   so the cell is as wide as the label actually on screen. */
.facts .fp-turn .fl>.fl-v:not(.on){position:absolute;top:0;left:0;white-space:nowrap}
.facts .fp-turn .fp-arr{flex:none;stroke:var(--gold);transition:transform .22s ease,stroke .18s ease}
.facts .fp-turn[aria-pressed="true"] .fp-arr{transform:rotate(180deg)}
.facts .fp-turn:hover .fp-arr,.facts .fp-turn:focus-visible .fp-arr{stroke:var(--gold-soft)}
.facts .fp-turn:focus-visible{outline:2px solid var(--gold);outline-offset:3px;border-radius:4px}
.vh{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}
@media(prefers-reduced-motion:reduce){.facts .fp-turn .fp-arr{transition:none}}
.hero .facts{display:flex;gap:28px;flex-wrap:wrap;margin-top:34px;padding-top:22px;border-top:1px solid rgba(247,244,234,.14)}
.hero .facts div{min-width:0;flex:1 1 120px}
.hero .facts b{display:block;font-family:'IBM Plex Mono',monospace;font-size:20px;font-weight:400;color:#F7F4EA}
.hero .facts span{font-size:12.5px;color:#8FA8BE;letter-spacing:.03em}
.hero .vis{position:relative;min-height:320px}
.hero .vis svg{position:absolute;inset:0;width:100%;height:100%}
.hero .vis .lab{position:absolute;font-family:'IBM Plex Mono',monospace;font-size:11px;letter-spacing:.12em;text-transform:uppercase;z-index:2}
.hero .grid{position:absolute;inset:0;background-image:linear-gradient(rgba(247,244,234,.06) 1px,transparent 1px),linear-gradient(90deg,rgba(247,244,234,.06) 1px,transparent 1px);background-size:40px 40px;-webkit-mask-image:linear-gradient(90deg,transparent,#000 40%);mask-image:linear-gradient(90deg,transparent,#000 40%)}
/* chips */
.chains{margin:0}
.chains h4{font-size:12.5px;font-weight:600;letter-spacing:.1em;color:var(--slate);margin:0 0 14px;text-transform:uppercase;display:flex;align-items:center;gap:10px}
.chains h4 i{width:8px;height:8px;border-radius:50%;background:var(--gold);display:inline-block}
.chains h4 i.off{background:#B9B5A9}
.chip-row{display:flex;gap:12px;flex-wrap:wrap;align-items:flex-start;margin-bottom:26px}
.chip{position:relative;display:inline-flex;align-items:center;gap:10px;border:1px solid var(--line);background:var(--panel);border-radius:999px;padding:7px 16px 7px 8px;font-size:14px;cursor:default;transition:border-color .16s,box-shadow .16s,transform .16s}
.chip .tk{font-family:'IBM Plex Mono',monospace;font-size:13.5px;letter-spacing:.02em}
.chip .role{font-size:12px;color:var(--slate);border-left:1px solid var(--line);padding-left:10px}
.chip.off{opacity:.6;filter:grayscale(1)}
.chip:hover,.chip.open{border-color:var(--gold);box-shadow:var(--shadow);transform:translateY(-2px);opacity:1;filter:none;z-index:5}
.chip .pop{position:absolute;left:0;top:calc(100% + 10px);width:280px;background:var(--panel);border:1px solid var(--line);border-radius:var(--r);padding:14px 16px;box-shadow:var(--shadow);font-size:13.5px;color:var(--ink-2);line-height:1.5;opacity:0;visibility:hidden;transform:translateY(-4px);transition:opacity .16s,transform .16s,visibility .16s;cursor:auto}
.chip .pop b{display:block;font-weight:600;color:var(--ink);margin-bottom:4px;font-size:14px}
.chip .pop .st{display:inline-block;margin-top:8px;font-family:'IBM Plex Mono',monospace;font-size:11.5px;letter-spacing:.06em;padding:3px 8px;border-radius:999px;background:#EEF6F1;color:var(--ok)}
.chip.off .pop .st{background:var(--panel-2);color:var(--slate)}
.chip:hover .pop,.chip.open .pop{opacity:1;visibility:visible;transform:translateY(0)}
.chip .pop::before{content:"";position:absolute;left:22px;top:-7px;width:12px;height:12px;background:var(--panel);border-left:1px solid var(--line);border-top:1px solid var(--line);transform:rotate(45deg)}
/* footer */
footer{border-top:1px solid var(--line);padding:48px 0 56px;font-size:14px;color:var(--slate);background:var(--panel)}
footer h4{font-family:'Inter';font-size:12.5px;font-weight:600;color:var(--ink);letter-spacing:.08em;margin:0 0 12px;text-transform:uppercase}
.fcols{display:grid;grid-template-columns:repeat(4,1fr);gap:28px;margin-bottom:32px}
.fcols a{color:var(--slate);display:table;padding:4px 0;border-bottom:1px solid transparent}
.fcols a:hover{color:var(--ink);border-bottom-color:var(--gold)}
.fico{display:inline-flex;align-items:center;gap:9px}
.fico svg{width:14px;height:14px;flex:0 0 auto;opacity:.7}
.fcols a:hover svg{opacity:1}
.contract{display:grid;grid-template-columns:72px 1fr;gap:18px;align-items:center;border:1px solid var(--line);border-radius:var(--r);padding:16px 18px;margin:0 0 28px;background:var(--paper)}
.contract .qr{width:72px;height:72px;color:var(--ink);opacity:.28;position:relative}
.contract .qr svg{width:100%;height:100%;display:block}
.contract .qr::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,transparent 30%,var(--paper) 95%)}
.contract .lbl{font-size:12px;letter-spacing:.08em;text-transform:uppercase;color:var(--ink);font-weight:600;margin-bottom:4px}
.contract .addr{font-family:'IBM Plex Mono',monospace;font-size:14px;color:var(--ink);white-space:nowrap;overflow:hidden;user-select:none}
.contract .addr .fade{-webkit-mask-image:linear-gradient(90deg,#000 0,#000 35%,transparent 92%);mask-image:linear-gradient(90deg,#000 0,#000 35%,transparent 92%);display:inline-block;max-width:100%}
.contract .soon{font-size:13px;color:var(--slate);margin-top:4px}
.seed{color:var(--ink);font-weight:600;max-width:68ch}
.fbottom{border-top:1px solid var(--line);padding-top:20px;display:flex;gap:20px;flex-wrap:wrap;justify-content:space-between;margin-top:20px}
/* dashboard */
.dash{display:grid;grid-template-columns:200px minmax(0,1fr);gap:28px;align-items:start}
.side{position:sticky;top:84px;background:var(--panel);border:1px solid var(--line);border-radius:var(--r);padding:12px}
.side a{display:flex;align-items:center;gap:10px;padding:9px 10px;border-radius:8px;color:var(--ink-2);font-size:14.5px}
.side a svg{width:17px;height:17px;flex:0 0 auto;opacity:.8}
.side a:hover{background:var(--panel-2);color:var(--ink)}
.side a.on{background:var(--ink);color:var(--paper)}
.side a.on svg{opacity:1}
.side .sec{font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:var(--slate);padding:12px 10px 6px}
.topbar{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-bottom:22px}
.pill{display:inline-flex;align-items:center;gap:8px;border:1px solid var(--line);background:var(--panel);border-radius:999px;padding:7px 14px;font-size:13.5px}
.pill .dot{width:8px;height:8px;border-radius:50%;background:var(--gold)}
.pill.sample{border-color:#EAD9A0;background:#FBF6E4;color:#7A5E10;font-family:'IBM Plex Mono',monospace;font-size:12px;letter-spacing:.06em}
.kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:14px;margin:0 0 24px}
.kpi{position:relative;border:1px solid var(--line);border-radius:var(--r);background:var(--panel);padding:16px 16px 14px;overflow:hidden}
.kpi .lbl{font-size:12.5px;color:var(--slate);letter-spacing:.03em;margin-bottom:8px;display:flex;align-items:center;gap:8px}
.kpi .lbl svg{width:15px;height:15px;color:var(--ink)}
.kpi .val{font-family:'IBM Plex Mono',monospace;font-size:21px;color:var(--ink);line-height:1.1;white-space:nowrap;position:relative;z-index:1}
.kpi .val small{font-size:13px;color:var(--slate);margin-left:4px}
.kpi .dl{font-size:12px;color:var(--slate);margin-top:6px;position:relative;z-index:1;max-width:62%}
.kpi .spark{position:absolute;right:0;bottom:0;width:44%;height:44px;opacity:.85}
.panel{border:1px solid var(--line);border-radius:var(--r);background:var(--panel);padding:20px}
.panel h3{display:flex;align-items:center;gap:10px;margin-bottom:14px}
.panel h3>svg{width:18px;height:18px;flex:0 0 auto;color:var(--ink);opacity:.85}
.panel h3 .tag{margin-left:auto;font-family:'IBM Plex Mono',monospace;font-size:11px;letter-spacing:.06em;color:#7A5E10;background:#FBF6E4;border:1px solid #EAD9A0;border-radius:999px;padding:3px 9px;font-weight:400}
.grid-2{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(0,1fr);gap:16px;margin:0 0 24px}
.grid-eq{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:16px;margin:0 0 24px}
.gauge{display:flex;align-items:center;gap:16px}
.gauge svg{width:112px;height:112px;flex:0 0 auto}
.gauge .g-val{font-family:'IBM Plex Mono',monospace;font-size:22px;color:var(--ink)}
.gauge .g-lbl{font-size:13px;color:var(--slate)}
.prog{height:8px;background:var(--panel-2);border-radius:4px;overflow:hidden;margin:8px 0 6px}
.prog span{display:block;height:100%;background:linear-gradient(90deg,var(--gold),var(--gold-soft))}
.acts-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:14px;margin:0 0 24px}
.act{display:flex;align-items:center;gap:14px;border:1px solid var(--line);border-radius:var(--r);background:var(--panel);padding:14px 16px;text-align:left;font-family:inherit;cursor:default;transition:border-color .16s,box-shadow .16s,transform .16s}
.act:hover{border-color:var(--gold);box-shadow:var(--shadow-s);transform:translateY(-2px)}
.act .aic{width:40px;height:40px;border-radius:10px;background:var(--ink);color:var(--paper);display:flex;align-items:center;justify-content:center;flex:0 0 auto}
.act .aic svg{width:20px;height:20px}
.act.gold .aic{background:var(--gold);color:var(--ink-deep)}
.act>span:not(.aic){display:flex;flex-direction:column;gap:2px;min-width:0}
.act .t{font-weight:600;font-size:15px;color:var(--ink)}
.act .d{font-size:12.5px;color:var(--slate)}
.act .chev{margin-left:auto;color:var(--gold);flex:0 0 auto}
.badge{display:inline-block;font-family:'IBM Plex Mono',monospace;font-size:11.5px;letter-spacing:.05em;padding:3px 9px;border-radius:999px;border:1px solid var(--line);background:var(--panel-2);color:var(--ink-2)}
.badge.open{background:#EEF6F1;border-color:#BFDCCB;color:var(--ok)}
.badge.closed{background:var(--panel-2);color:var(--slate)}
.legend{display:flex;gap:16px;flex-wrap:wrap;font-size:13px;color:var(--ink-2)}
.legend i{display:inline-block;width:10px;height:10px;border-radius:2px;margin-right:6px;vertical-align:-1px}
.vote-row{display:grid;grid-template-columns:minmax(0,1fr) 150px 60px auto;gap:14px;align-items:center;padding:12px 0;border-bottom:1px solid var(--line)}
.vote-row .q{font-size:14.5px}
.vote-row .q small{display:block;font-size:12px;color:var(--slate)}
.meter{height:8px;background:var(--panel-2);border-radius:4px;overflow:hidden}
.meter span{display:block;height:100%;background:var(--gold)}
.vote-row .pct{font-family:'IBM Plex Mono',monospace;font-size:13px;color:var(--slate);text-align:right}
.chart{width:100%;height:auto;display:block}
.chart-legend{display:flex;gap:18px;flex-wrap:wrap;font-size:12.5px;color:var(--ink-2);margin-top:8px}
.chart-legend i{display:inline-block;width:18px;height:2px;margin-right:6px;vertical-align:3px}
.chart-legend i.dash{background:repeating-linear-gradient(90deg,var(--ink) 0 4px,transparent 4px 7px)}
/* responsive */
@media(max-width:920px){.hero{grid-template-columns:1fr}.hero .vis{min-height:200px;order:-1}.hero .txt{padding:36px 28px 34px}.dash{grid-template-columns:1fr}.side{position:static;display:flex;flex-wrap:wrap;gap:4px}.side .sec{display:none}.side a{padding:8px 10px}.grid-2{grid-template-columns:1fr}.fcols{grid-template-columns:repeat(2,1fr)}}
@media(max-width:980px){.menu-btn{display:flex;align-items:center;justify-content:center}nav.main{display:none;position:absolute;left:0;right:0;top:64px;background:var(--paper);border-bottom:1px solid var(--line);flex-direction:column;gap:0;padding:8px 18px 14px;margin:0;z-index:25}nav.main.open{display:flex}nav.main a{padding:12px 8px;font-size:16px;border-radius:0;border-bottom:1px solid var(--line)}nav.main a[aria-current]::after{display:none}}
@media(max-width:720px){main{padding:28px 0 48px}section{margin-bottom:var(--sp-s)}.wrap{padding:0 18px}.langs{margin-left:0;font-size:12.5px}.langs a,.langs span{padding:4px 7px}.bar{gap:10px}.hero .txt{padding:28px 22px 26px}.hero .vis{min-height:170px}.hero .facts{gap:18px}.contract{grid-template-columns:56px 1fr}.contract .qr{width:56px;height:56px}.vote-row{grid-template-columns:1fr auto;grid-template-rows:auto auto}.vote-row .meter{grid-column:1/2}.fcols{grid-template-columns:1fr 1fr;gap:20px}}
/* the footer column heading is a label for navigation, not a section of the document:
   as an h4 after the page's h2 it broke the heading order on every page */
.fcols .fh{display:block;font-family:'Inter';font-size:12.5px;font-weight:600;color:var(--ink);letter-spacing:.08em;margin:0 0 12px;text-transform:uppercase}
/* on a wide screen the button is not a control, only the label inside it shows */
.fcol>.ft{display:block;width:100%;background:none;border:0;padding:0;font:inherit;color:inherit;text-align:left;cursor:default}
.fcol>.ft svg{display:none}
@media(max-width:720px){
  .fcols{grid-template-columns:1fr;gap:0}
  .fcol.fold{border-bottom:1px solid var(--line-2)}
  .fcol.fold>.ft{display:flex;align-items:center;justify-content:space-between;width:100%;
    background:none;border:0;padding:14px 0;font:inherit;color:inherit;cursor:pointer;text-align:left}
  .fcol.fold>.ft svg{display:block}
  .fcol.fold>.ft .fh{margin:0}
  .fcol.fold>.ft svg{width:14px;height:14px;color:var(--slate);transition:transform .2s}
  .fcol.fold.open>.ft svg{transform:rotate(180deg)}
  .fcol.fold>.ft:focus-visible{outline:2px solid var(--gold);outline-offset:2px}
  .fcol.fold>.fb{display:none}
  .fcol.fold.open>.fb{display:block;padding-bottom:12px}
  .fcol:not(.fold){padding-top:18px}
}
@media(prefers-reduced-motion:reduce){.fcol.fold>.ft svg{transition:none}}
/* section pages */
.eyebrow{font-family:'IBM Plex Mono',monospace;font-size:12.5px;letter-spacing:.12em;text-transform:uppercase;color:var(--gold);display:flex;align-items:center;gap:10px;margin:0 0 14px}
.eyebrow::before{content:"";width:22px;height:2px;background:var(--gold)}
.eyebrow .rt-time{color:var(--slate);margin-left:auto;letter-spacing:.04em;text-transform:none}
.toc{border-left:2px solid var(--gold);padding:4px 0 4px 18px;margin:0 0 var(--sp-s);font-size:14.5px;max-width:var(--col)}
.toc b{display:block;font-size:11.5px;letter-spacing:.1em;text-transform:uppercase;color:var(--slate);margin-bottom:8px;font-weight:600}
.toc a{display:inline-block;color:var(--ink-2);margin:0 18px 6px 0;border-bottom:1px solid transparent}
.toc a:hover{border-bottom-color:var(--gold);color:var(--ink)}
/* the line should separate, not cut off: 64 px above plus 28 inside put a third of a
   phone screen of emptiness between the last line of text and the card */
.pager{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-top:var(--sp-s);border-top:1px solid var(--line);padding-top:18px}
/* with one neighbour the card takes the full width: an empty half reads as a block that
   failed to load */
.pager:has(>a:only-of-type){grid-template-columns:1fr}
.pager>span:empty{display:none}
.pager a{display:flex;flex-direction:column;gap:6px;padding:16px 18px;border:1px solid var(--line);border-radius:var(--r);background:var(--panel);transition:border-color .16s,box-shadow .16s,transform .16s}
.pager a:hover{border-color:var(--gold);box-shadow:var(--shadow-s);transform:translateY(-2px)}
.pager a small{font-family:'IBM Plex Mono',monospace;font-size:11.5px;letter-spacing:.1em;text-transform:uppercase;color:var(--slate)}
.pager a span{font-family:'PT Serif',serif;font-size:18px;color:var(--ink)}
.pager a.next{text-align:right;align-items:flex-end}
.pager .all{grid-column:1/-1;text-align:center;font-size:14px;margin-top:6px}
.pager .all a{display:inline;border:0;padding:0;background:none;box-shadow:none;transform:none;border-bottom:1px solid var(--line)}
.pager .all a:hover{border-bottom-color:var(--gold)}
/* widget readouts */
.ro{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:12px;margin-top:16px}
.ro>div{background:var(--paper);border:1px solid var(--line);border-radius:var(--r-s);padding:10px 12px}
.ro .l{font-size:11.5px;letter-spacing:.06em;text-transform:uppercase;color:var(--slate);margin-bottom:4px}
.ro .v{font-family:'IBM Plex Mono',monospace;font-size:19px;color:var(--ink)}
.ro .v small{font-size:12px;color:var(--slate);margin-left:3px}
.ro .n{font-size:12px;color:var(--slate);margin-top:3px}
.ro>div.gold .v{color:var(--gold)}
.zone{margin-top:14px;font-size:14px;padding:10px 14px;border-radius:var(--r-s);border:1px solid var(--line);background:var(--paper);color:var(--ink-2);min-height:44px;transition:background .2s,border-color .2s}
.zone.top{background:#FBF6E4;border-color:#EAD9A0}
.zone.bot{background:#EEF6F1;border-color:#BFDCCB}
.seg{display:inline-flex;border:1px solid var(--line);border-radius:999px;padding:3px;background:var(--paper);margin-top:14px;flex-wrap:wrap}
.seg button{border:0;background:transparent;font-family:inherit;font-size:13.5px;padding:6px 14px;border-radius:999px;cursor:pointer;color:var(--ink-2)}
.seg button.on{background:var(--ink);color:var(--paper)}
.seg button small{display:block;font-size:10.5px;color:inherit;opacity:.7;font-family:'IBM Plex Mono',monospace}
.ladder{display:flex;align-items:flex-end;gap:8px;height:150px;margin:8px 0 6px}
.ladder div{flex:1;background:var(--panel-2);border:1px solid var(--line);border-radius:6px 6px 0 0;position:relative;display:flex;align-items:flex-end;justify-content:center;transition:background .2s}
.ladder div span{font-family:'IBM Plex Mono',monospace;font-size:11.5px;color:var(--ink);position:absolute;top:-20px;white-space:nowrap}
.ladder div.on{background:var(--gold)}
.ladder div.mid{background:var(--gold-soft)}
.stages{font-size:14px}
.stages td,.stages th{padding:7px 10px 7px 0}
.stages tr.on td{background:#FBF6E4}
.flow{display:grid;grid-template-columns:1fr auto 1fr;gap:14px;align-items:center;margin:8px 0 0}
.flow .box{border:1px solid var(--line);border-radius:var(--r-s);background:var(--paper);padding:12px 14px;font-size:14px;color:var(--ink-2)}
.flow .box.src{grid-column:1/-1;background:var(--ink);color:var(--paper);border-color:var(--ink);text-align:center;font-family:'IBM Plex Mono',monospace;font-size:13px}
.flow .arr{font-family:'IBM Plex Mono',monospace;color:var(--gold);text-align:center;font-size:12px}
.flow .box.out{border-color:#EAD9A0;background:#FBF6E4}
/* faq */
.faq-bar{display:flex;gap:12px;align-items:center;flex-wrap:wrap;margin:0 0 22px}
.faq-bar input{flex:1;min-width:220px;padding:12px 14px 12px 42px;border:1px solid var(--line);border-radius:999px;font:inherit;font-size:15px;background:var(--panel) no-repeat 15px center/16px url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%236B7A8C' stroke-width='2' stroke-linecap='round'%3E%3Ccircle cx='11' cy='11' r='7'/%3E%3Cpath d='M20 20l-4-4'/%3E%3C/svg%3E");color:var(--ink)}
.faq-bar input:focus{outline:0;border-color:var(--gold);box-shadow:0 0 0 3px rgba(201,162,39,.18)}
.faq-bar .cnt{font-family:'IBM Plex Mono',monospace;font-size:13px;color:var(--slate);min-width:90px}
.faq-bar .btn{padding:8px 14px;font-size:13.5px}
.faq-nav{display:flex;gap:8px;flex-wrap:wrap;margin:0 0 var(--sp-s)}
.faq-nav a{display:inline-flex;align-items:center;gap:8px;border:1px solid var(--line);border-radius:999px;padding:6px 12px;font-size:13.5px;color:var(--ink-2);background:var(--panel)}
.faq-nav a:hover{border-color:var(--gold);color:var(--ink)}
.faq-nav a b{font-family:'IBM Plex Mono',monospace;font-weight:400;font-size:11.5px;color:var(--gold)}
.faq-g h2 .n{font-family:'IBM Plex Mono',monospace;font-size:13px;color:var(--slate);margin-left:auto}
details.q{border-bottom:1px solid var(--line)}
details.q summary{font-weight:600}
details.q summary .k{font-family:'IBM Plex Mono',monospace;font-size:11.5px;color:var(--gold);min-width:34px;font-weight:400}
mark{background:#F5E6A8;color:inherit;padding:0 2px;border-radius:2px}
.faq-empty{display:none;padding:22px;border:1px dashed var(--line);border-radius:var(--r);color:var(--slate);text-align:center}
/* changelog: a dated list, not a feed. The date is the heading; each line carries the
   area it belongs to, so the eye can skip whole kinds of change. */
.clog{max-width:var(--col);margin:0 0 var(--sp-s)}
.clog h2{font-size:20px;margin:0 0 10px;padding-top:16px;border-top:1px solid var(--line)}
.clog h2 time{font-family:'IBM Plex Mono',monospace;font-size:15px;color:var(--ink-2);font-weight:400}
.clog ul{list-style:none;margin:0;padding:0}
.clog li{display:grid;grid-template-columns:7.5rem 1fr;gap:14px;align-items:start;padding:9px 0;border-bottom:1px solid var(--line);font-size:15px;line-height:1.5}
.clog li:last-child{border-bottom:none}
.clog .k{font-size:11.5px;letter-spacing:.06em;color:var(--slate);padding-top:4px;font-family:'IBM Plex Mono',monospace}
.clog .k-fix{color:var(--alert)}
.clog .k-code{color:var(--gold)}
@media(max-width:560px){.clog li{grid-template-columns:1fr;gap:2px}.clog .k{padding-top:0}}
/* wiki tabs: two real pages, one switcher. Links, not a toggle, so each view keeps
   its own address, its own description and its own weight. */
.wtabs{display:inline-flex;border:1px solid var(--line);border-radius:999px;padding:3px;background:var(--paper);margin:0 0 var(--sp-s);gap:2px}
.wtabs a{padding:7px 18px;border-radius:999px;color:var(--ink-2);text-decoration:none;font-size:14.5px;line-height:1.2}
.wtabs a:hover{color:var(--ink)}
.wtabs a.on{background:var(--ink);color:var(--paper)}
.wtabs a:focus-visible{outline:2px solid var(--gold);outline-offset:2px}
@media(max-width:480px){.wtabs{display:flex;width:100%}.wtabs a{flex:1;text-align:center;padding:8px 10px}}
/* wiki */
.wiki{display:grid;grid-template-columns:220px minmax(0,1fr);gap:36px;align-items:start}
.wiki-toc{position:sticky;top:84px;border:1px solid var(--line);border-radius:var(--r);background:var(--panel);padding:16px 18px;font-size:14px}
.wiki-toc b{display:block;font-size:11.5px;letter-spacing:.1em;text-transform:uppercase;color:var(--slate);margin-bottom:10px;font-weight:600}
.wiki-toc ol{list-style:none;margin:0;padding:0;counter-reset:w}
.wiki-toc li{counter-increment:w;padding:5px 0;border-bottom:1px dotted var(--line)}
.wiki-toc li::before{content:counter(w) ". ";font-family:'IBM Plex Mono',monospace;color:var(--gold);font-size:12px}
.wiki-toc a{color:var(--ink-2)}
.wiki-toc a:hover{color:var(--ink)}
.wiki-toc li.sub{padding-left:16px;font-size:13px;counter-increment:none}
.wiki-toc li.sub::before{content:"—";color:var(--line-2)}
.wiki-head{border-bottom:1px solid var(--line);padding-bottom:12px;margin-bottom:22px}
.wiki-head h1{font-size:40px;margin:0 0 4px}
.wiki-head .from{font-size:14px;color:var(--slate);font-style:italic}
.infobox{float:right;position:relative;z-index:2;width:300px;margin:0 0 20px 28px;border:1px solid var(--line);border-radius:var(--r);background:var(--panel);font-size:13.5px}
.infobox .ih{background:var(--ink);color:var(--paper);border-radius:var(--r) var(--r) 0 0;padding:12px 14px;font-family:'PT Serif',serif;font-size:20px;display:flex;align-items:center;gap:10px}
.infobox .ih svg{width:28px;height:28px}
.infobox table{margin:0;font-size:13px}
.infobox th{width:38%;font-weight:600;color:var(--ink);border:0;padding:8px 10px;vertical-align:top;background:var(--panel-2);font-size:12.5px;letter-spacing:0}
.infobox td{border:0;padding:8px 10px;border-bottom:1px solid var(--line);color:var(--ink-2)}
.wiki-body h2{font-size:24px;border-bottom:1px solid var(--line);padding-bottom:6px;margin-top:34px}
.wiki-body h2::before{display:none}
.wiki-body h2 .wn{font-family:'IBM Plex Mono',monospace;font-size:14px;color:var(--gold);margin-right:6px}
.wiki-body h2 .edit{margin-left:auto;font-size:12.5px;font-family:'Inter';color:var(--slate);font-weight:400;border-bottom:1px solid transparent}
.wiki-body h2 .edit:hover{color:var(--ink);border-bottom-color:var(--gold)}
.wiki-body p{max-width:none}
.wiki-body .note{overflow:hidden;max-width:none}
.wiki-body dl{margin:0}
.wiki-body dt{font-weight:600;margin-top:12px;color:var(--ink)}
.wiki-body dd{color:var(--ink-2);margin:2px 0 0 0;padding-bottom:8px;border-bottom:1px dotted var(--line)}
.wiki-body ol.refs{margin:0 0 0 22px;color:var(--ink-2)}
.wiki-body ol.refs li{margin-bottom:6px}
/* --- 2026-09-08 b14: the .mech-list rules sat under .wiki-body and stayed
   silent outside the wiki: the list on /history/ fell back to black bullets.
   The class is shared, so the rules are shared too. The only previous consumer
   was the wiki, where the selector is now wider but matches the same elements. --- */
.mech-list{margin:0;padding:0;list-style:none}
.mech-list li{padding:8px 0;border-bottom:1px dotted var(--line);color:var(--ink-2)}
.mech-list b{color:var(--ink)}
@media(max-width:920px){.wiki{grid-template-columns:1fr}.wiki-toc{position:static}.infobox{float:none;width:100%;margin:0 0 20px}}
@media(max-width:720px){.pager{grid-template-columns:1fr}.pager a.next{align-items:flex-start;text-align:left}.flow{grid-template-columns:1fr}.flow .arr{transform:rotate(90deg)}}
/* language switcher slider */
.langs{position:relative}
.langs .ind{position:absolute;top:3px;left:0;height:calc(100% - 6px);width:0;border-radius:999px;background:var(--ink);transition:left .22s cubic-bezier(.4,0,.2,1),width .22s cubic-bezier(.4,0,.2,1);pointer-events:none}
.langs a,.langs span{position:relative;z-index:1;transition:color .18s}
.langs.js a[aria-current]{background:transparent;color:var(--paper)}
.langs.js a.lit{color:var(--paper)}
.langs.js a[aria-current]:not(.lit){color:var(--slate)}
/* help popover */
.help-wrap{position:relative;display:inline-flex;align-items:center;gap:10px}
.help-btn{width:30px;height:30px;border-radius:50%;border:1px solid var(--line);background:var(--panel);color:var(--ink);font-family:'PT Serif',serif;font-size:17px;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;transition:border-color .16s,background .16s}
.help-btn:hover,.help-btn[aria-expanded="true"]{border-color:var(--gold);background:#FBF6E4}
.help-pop{position:absolute;left:0;top:calc(100% + 12px);width:min(420px,80vw);background:var(--panel);border:1px solid var(--line);border-radius:var(--r);padding:16px 18px 16px 52px;box-shadow:var(--shadow);font-size:14.5px;color:var(--ink-2);line-height:1.55;z-index:8;display:none}
.help-pop::before{content:"";position:absolute;left:16px;top:15px;width:22px;height:22px;background:no-repeat center/contain url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23C9A227' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 5.5a2.5 2.5 0 0 0-5 0 2.4 2.4 0 0 0-1.6 4.2A2.6 2.6 0 0 0 4.6 14 2.5 2.5 0 0 0 7 17.5a2.5 2.5 0 0 0 5 .5z'/%3E%3Cpath d='M12 5.5a2.5 2.5 0 0 1 5 0 2.4 2.4 0 0 1 1.6 4.2A2.6 2.6 0 0 1 19.4 14 2.5 2.5 0 0 1 17 17.5a2.5 2.5 0 0 1-5 .5z'/%3E%3Cpath d='M12 5.5V18'/%3E%3C/svg%3E")}
.help-pop.open{display:block}
/* footer chip strip */
.strip{border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:14px 0;margin:0 0 28px;display:flex;align-items:center;gap:14px;flex-wrap:wrap}
.strip h5{font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:var(--slate);font-weight:600;margin:0 16px 0 0}
.strip .chip{padding:5px 10px 5px 5px;font-size:12.5px;gap:7px}
.strip .chip svg:first-child{width:20px;height:20px}
.strip .chip .pop{bottom:calc(100% + 10px);top:auto;transform:translateY(4px)}
.strip .chip .pop::before{top:auto;bottom:-7px;transform:rotate(225deg)}
.strip .chip:hover .pop,.strip .chip.open .pop{transform:translateY(0)}
.chip .pop .st.pre{background:#FBF6E4;color:#7A5E10}
.chip .pop .st.cand{background:var(--panel-2);color:var(--slate)}
.chip.pre{opacity:.85}
/* home support banner */
.mini{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:24px;align-items:center;border:1px solid #EAD9A0;background:linear-gradient(90deg,#FBF6E4,var(--panel));border-radius:var(--r);padding:22px 26px;margin:0}
.mini h3{font-family:'PT Serif',serif;font-weight:400;font-size:22px;margin:0 0 6px}
.mini p{margin:0;color:var(--ink-2);font-size:15px}
.mini .btn-p{white-space:nowrap}
/* contact */
.topics{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:10px;margin:0 0 22px}
.topic{border:1px solid var(--line);border-radius:var(--r-s);background:var(--panel);padding:12px 14px;text-align:left;font-family:inherit;cursor:pointer;transition:border-color .14s,box-shadow .14s,background .14s;color:var(--ink)}
.topic b{display:block;font-weight:600;font-size:14.5px}
.topic small{display:block;font-size:12px;color:var(--slate);margin-top:3px;line-height:1.35}
.topic:hover{border-color:var(--gold)}
.topic.on{border-color:var(--ink);background:var(--ink);color:var(--paper)}
.topic.on small{color:#C8D4E0}
.form{border:1px solid var(--line);border-radius:var(--r);background:var(--panel);padding:26px;max-width:var(--col)}
.form .hint{border-left:3px solid var(--gold);padding:6px 0 6px 14px;margin:0 0 20px;color:var(--ink-2);font-size:15px;min-height:30px}
.f-row{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.f-field{display:flex;flex-direction:column;gap:6px;margin:0 0 14px}
.f-field label{font-size:13px;font-weight:600;color:var(--ink);letter-spacing:.02em}
.f-field label small{font-weight:400;color:var(--slate);margin-left:6px}
.f-field input,.f-field textarea{width:100%;padding:12px 14px;border:1px solid var(--line);border-radius:var(--r-s);font:inherit;font-size:16px;background:var(--paper);color:var(--ink);transition:border-color .14s,box-shadow .14s}
.f-field input:focus,.f-field textarea:focus{outline:0;border-color:var(--gold);box-shadow:0 0 0 3px rgba(201,162,39,.18)}
.f-field textarea{min-height:150px;resize:vertical}
.hp{position:absolute;left:-9999px;top:-9999px;height:0;width:0;overflow:hidden}
.f-foot{display:flex;align-items:center;gap:16px;flex-wrap:wrap;margin-top:6px}
.f-foot .priv{font-size:12.5px;color:var(--slate);flex:1;min-width:220px}
.f-state{display:none;border-radius:var(--r);padding:22px 24px}
.f-state.ok{display:block;background:#EEF6F1;border:1px solid #BFDCCB;color:#1F4D38}
.f-state.err{display:block;background:var(--alert-bg);border:1px solid #E7B9B4;color:#5A2A24}
.f-state h3{margin-bottom:6px}
/* support */
.how{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:16px;margin:0}
.how .card p{font-size:14.5px}
.postbox{border:1px solid var(--line);border-radius:var(--r);background:var(--panel);padding:18px 18px 14px;margin:0 0 18px;max-width:var(--col)}
.postbox h3{display:flex;align-items:center;gap:12px;font-size:15px;margin-bottom:10px}
.postbox h3 .btn{margin-left:auto;padding:6px 12px;font-size:13px}
.postbox pre{white-space:pre-wrap;font-family:'Inter',sans-serif;font-size:15px;line-height:1.55;color:var(--ink-2);background:var(--paper);border:1px solid var(--line);border-radius:var(--r-s);padding:14px 16px;margin:0;user-select:all}
.donate{display:grid;grid-template-columns:120px 1fr;gap:22px;align-items:center;border:1px solid #EAD9A0;border-radius:var(--r);padding:20px 22px;margin:0 0 18px;background:linear-gradient(90deg,#FBF6E4,var(--panel));max-width:var(--col)}
.donate .qr{width:120px;height:120px;color:var(--ink);background:#fff;border-radius:8px;padding:8px;border:1px solid var(--line)}
.donate .qr svg{width:100%;height:100%;display:block}
.donate .qr.soon{opacity:.3;position:relative}
.donate .qr.soon::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,transparent 30%,#fff 95%);border-radius:8px}
.donate .lbl{font-size:12px;letter-spacing:.08em;text-transform:uppercase;color:var(--ink);font-weight:600;margin-bottom:6px}
.donate .addr{font-family:'IBM Plex Mono',monospace;font-size:14.5px;color:var(--ink);word-break:break-all;display:flex;align-items:center;gap:12px;flex-wrap:wrap}
.donate .addr .btn{padding:6px 12px;font-size:13px}
.donate .net{font-size:12.5px;color:var(--slate);margin-top:6px}
ol.rules{margin:0;padding:0;list-style:none;counter-reset:r;max-width:var(--col)}
ol.rules li{counter-increment:r;position:relative;padding:10px 0 10px 44px;border-bottom:1px solid var(--line);color:var(--ink-2)}
ol.rules li::before{content:counter(r,decimal-leading-zero);position:absolute;left:0;top:12px;font-family:'IBM Plex Mono',monospace;font-size:13px;color:var(--gold)}
@media(max-width:720px){.f-row{grid-template-columns:1fr}.mini{grid-template-columns:1fr}.donate{grid-template-columns:96px 1fr}.donate .qr{width:96px;height:96px}}
/* language switcher slider */
.langs{position:relative}
.langs a,.langs span{position:relative;z-index:1;transition:color .18s}
.langs .slide{position:absolute;top:3px;bottom:3px;left:0;width:0;border-radius:999px;background:var(--ink);transition:left .22s cubic-bezier(.4,0,.2,1),width .22s cubic-bezier(.4,0,.2,1);z-index:0}
.langs a[aria-current]{background:transparent;color:var(--ink);font-weight:600}
.langs a.hov{color:var(--paper)}
/* ai tip */
.tipwrap{position:relative;display:inline-flex;align-items:center;gap:10px}
.tipbtn{width:34px;height:34px;border-radius:50%;border:1px solid var(--line);background:var(--panel);color:var(--ink);font-family:'PT Serif',serif;font-size:18px;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;transition:border-color .16s,background .16s}
.tipbtn:hover,.tipbtn[aria-expanded="true"]{border-color:var(--gold);background:#FBF6E4}
.tip{position:absolute;left:0;top:calc(100% + 12px);width:min(360px,80vw);background:var(--panel);border:1px solid var(--line);border-radius:var(--r);padding:14px 16px;box-shadow:var(--shadow);font-size:14px;line-height:1.5;color:var(--ink-2);opacity:0;visibility:hidden;transform:translateY(-4px);transition:opacity .16s,transform .16s,visibility .16s;z-index:6}
.tip::before{content:"";position:absolute;left:18px;top:-7px;width:12px;height:12px;background:var(--panel);border-left:1px solid var(--line);border-top:1px solid var(--line);transform:rotate(45deg)}
.tipwrap.open .tip{opacity:1;visibility:visible;transform:translateY(0)}
/* chips: three groups */
.chip.pre{opacity:1;filter:none;border-style:dashed}
.chip.pre .pop .st{background:#FBF6E4;color:#7A5E10}
.chip.cand{opacity:.7;filter:grayscale(.6)}
.chip.cand .pop .st{background:var(--panel-2);color:var(--slate)}
.chains h4 i.pre{background:var(--gold-soft)}
.chains h4 i.cand{background:#B9B5A9}
/* footer chip strip */
.fchips{display:flex;gap:8px;flex-wrap:wrap;align-items:center;margin:0 0 26px;padding:14px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.fchips .chip{padding:5px 12px 5px 6px;font-size:12.5px}
.fchips .chip svg{width:20px;height:20px}
.fchips .chip .tk{font-size:12px}
.fchips .lbl{font-size:11.5px;letter-spacing:.08em;text-transform:uppercase;color:var(--slate);margin-right:8px}
.fchips .sep{width:1px;height:20px;background:var(--line);margin:0 6px}
/* support page */
.mini{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:20px;align-items:center;border:1px solid #EAD9A0;background:linear-gradient(90deg,#FBF6E4,var(--panel));border-radius:var(--r);padding:20px 24px;margin:0}
.mini h3{margin:0 0 4px;font-family:'PT Serif',serif;font-weight:400;font-size:22px}
.mini p{margin:0;font-size:15px;color:var(--ink-2)}
.ways{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:var(--gap)}
.ways .card .n{margin-bottom:8px}
.reqs{list-style:none;margin:0;padding:0;max-width:var(--col);counter-reset:r}
.reqs li{counter-increment:r;position:relative;padding:14px 0 14px 52px;border-bottom:1px solid var(--line);font-size:17px}
.reqs li::before{content:counter(r);position:absolute;left:0;top:12px;width:34px;height:34px;border-radius:50%;background:var(--ink);color:var(--paper);font-family:'IBM Plex Mono',monospace;font-size:14px;display:flex;align-items:center;justify-content:center}
.postbox{border:1px solid var(--line);border-radius:var(--r);background:var(--panel);padding:0;max-width:var(--col);overflow:hidden}
.postbox pre{white-space:pre-wrap;font-family:'Inter',sans-serif;font-size:15.5px;line-height:1.6;color:var(--ink);padding:22px 24px;margin:0;border-bottom:1px solid var(--line)}
.postbox .bar{display:flex;align-items:center;gap:12px;padding:12px 16px;background:var(--panel-2)}
.postbox .bar span{font-size:13px;color:var(--slate);margin-left:auto}
.donate{display:grid;grid-template-columns:132px minmax(0,1fr);gap:24px;align-items:center;border:1px solid var(--line);border-radius:var(--r);background:var(--panel);padding:22px 24px;max-width:var(--col)}
.donate .qr{width:132px;height:132px;color:var(--ink);background:#fff;padding:8px;border-radius:8px}
.donate .qr svg{width:100%;height:100%;display:block}
.donate .lbl{font-size:12px;letter-spacing:.08em;text-transform:uppercase;color:var(--ink);font-weight:600;margin-bottom:6px}
.donate .addr{font-family:'IBM Plex Mono',monospace;font-size:14px;color:var(--ink);word-break:break-all;line-height:1.5;user-select:all}
.donate .row{display:flex;align-items:center;gap:12px;margin-top:12px;flex-wrap:wrap}
.donate .note{font-size:13px;color:var(--slate);margin-top:8px}
.donate.pending .qr{opacity:.25}
.donate.pending .addr{color:var(--slate)}
/* contact form */
.topics{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:12px;margin:0 0 26px}
.topic{border:1px solid var(--line);border-radius:var(--r);background:var(--panel);padding:14px 16px;text-align:left;cursor:pointer;font-family:inherit;transition:border-color .16s,box-shadow .16s,transform .16s;display:flex;flex-direction:column;gap:4px}
.topic:hover{border-color:var(--gold);transform:translateY(-2px);box-shadow:var(--shadow-s)}
.topic.on{border-color:var(--gold);background:#FBF6E4;box-shadow:inset 0 0 0 1px var(--gold)}
.topic b{font-weight:600;font-size:15px;color:var(--ink)}
.topic span{font-size:12.5px;color:var(--slate);line-height:1.4}
.form{max-width:var(--col);border:1px solid var(--line);border-radius:var(--r);background:var(--panel);padding:26px}
.form .hint{display:flex;gap:10px;align-items:flex-start;font-size:14px;color:var(--ink-2);background:#FBF6E4;border:1px solid #EAD9A0;border-radius:var(--r-s);padding:10px 14px;margin:0 0 18px;min-height:44px}
.form .hint:empty{display:none}
.form .row{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.form label{display:block;font-size:13px;font-weight:600;color:var(--ink);margin:0 0 6px;letter-spacing:.02em}
.form input,.form textarea{width:100%;padding:12px 14px;border:1px solid var(--line);border-radius:var(--r-s);font:inherit;font-size:16px;background:#FDFCF7;color:var(--ink);margin-bottom:16px}
.form input:focus,.form textarea:focus{outline:0;border-color:var(--gold);box-shadow:0 0 0 3px rgba(201,162,39,.18)}
.form textarea{min-height:160px;resize:vertical}
.form .hp{position:absolute;left:-9999px;opacity:0;height:0;overflow:hidden}
.form .foot{display:flex;align-items:center;gap:16px;flex-wrap:wrap}
.form .foot small{font-size:12.5px;color:var(--slate);max-width:52ch}
.form .status{display:none;margin-top:16px}
.form .status.show{display:block}
@media(max-width:720px){.form .row{grid-template-columns:1fr}.donate{grid-template-columns:1fr}.mini{grid-template-columns:1fr}}
/* ===== update pass ===== */
html,body{overflow-x:hidden;max-width:100%}
*{min-width:0}
p,.card p,details .body,.wiki-body p,.wiki-body dd,.key p,.note p,.warn p,.ok p,.faq-empty,li{text-align:left;hyphens:auto;-webkit-hyphens:auto;overflow-wrap:anywhere}
h1,h2,h3,h4,.lede,.eyebrow,.cap,th,td,.ro .l,.ro .n,.legend,.chart-legend,summary,.hero .sub,.mini p,.tip,.pop,.chip .pop,nav,footer .fbottom{text-align:left;hyphens:manual}
.lede{text-align:left;hyphens:auto}
:focus-visible{outline:2px solid var(--gold);outline-offset:3px;border-radius:4px}
@media(prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}html{scroll-behavior:auto}}
/* header: short language labels on narrow screens, burger last */
.langs .s{display:none}
@media(max-width:720px){.bar{flex-wrap:nowrap;gap:8px}.langs{order:2;margin-left:auto;font-size:12.5px}.menu-btn{order:3;margin-left:0}.langs .l{display:none}.langs .s{display:inline}.langs a,.langs span{padding:5px 8px}}
@media(max-width:400px){.brand .name{font-size:12px}.brand .dao{font-size:9px}.mark{width:30px;height:30px}.langs a,.langs span{padding:5px 6px;font-size:12px}}
/* footer strips */
@media(max-width:720px){.fchips{gap:6px}.fchips .lbl{flex-basis:100%;margin:0 0 4px}.fchips .sep{display:none}.contract .addr{white-space:normal;word-break:break-all;line-height:1.45}.contract .addr .fade{-webkit-mask-image:linear-gradient(180deg,#000 0,#000 45%,transparent 100%);mask-image:linear-gradient(180deg,#000 0,#000 45%,transparent 100%);display:block}}
/* foldable cards */
.card.fold .fb{position:relative;max-height:3.4em;overflow:hidden;transition:max-height .28s ease}
.card.fold .fb::after{content:"";position:absolute;left:0;right:0;bottom:0;height:1.6em;background:linear-gradient(180deg,rgba(253,252,247,0),var(--panel))}
.card.fold.open .fb{max-height:60em}
.card.fold.open .fb::after{opacity:0}
.card .ft{margin-top:12px;background:none;border:0;padding:0;font:inherit;font-size:13px;color:var(--gold);letter-spacing:.04em;cursor:pointer;display:inline-flex;align-items:center;gap:6px;font-family:inherit}
.card .ft svg{width:12px;height:12px;transition:transform .2s}
.card.fold.open .ft svg{transform:rotate(180deg)}
.plat{display:flex;gap:8px;flex-wrap:wrap;margin-top:14px;padding-top:12px;border-top:1px dotted var(--line)}
.plat b{flex-basis:100%;font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--slate);font-weight:600;margin-bottom:2px}
.plat a{display:inline-flex;align-items:center;gap:6px;font-size:12.5px;color:var(--ink-2);border:1px solid var(--line);border-radius:999px;padding:4px 10px 4px 6px;background:var(--paper)}
.plat a svg{width:13px;height:13px;opacity:.75}
.plat a:hover{border-color:var(--gold);color:var(--ink)}
/* steps and tabs */
.steps{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin-bottom:18px}
.steps .btn,.tabs .btn{justify-content:center;width:100%;padding:11px 8px}
.steps .btn svg,.tabs .btn svg{width:18px;height:18px}
.steps .btn.on,.tabs .btn.on{background:var(--ink);color:var(--paper)}
.tabs{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-bottom:18px;max-width:420px}
@media(max-width:720px){.steps{grid-template-columns:1fr 1fr}}
/* dashboard responsive */
.chart,.panel svg.chart{width:100%;height:auto;max-width:100%}
@media(max-width:920px){.side{display:flex;flex-wrap:nowrap;overflow-x:auto;gap:6px;padding:8px;scrollbar-width:none}.side::-webkit-scrollbar{display:none}.side a{white-space:nowrap;flex:0 0 auto;padding:8px 12px}}
@media(max-width:720px){.kpis{grid-template-columns:1fr 1fr}.topbar .pill{font-size:12px;padding:6px 10px}.grid-eq{grid-template-columns:1fr}.acts-grid{grid-template-columns:1fr}
.pos thead{display:none}.pos tr{display:block;border:1px solid var(--line);border-radius:10px;padding:8px 12px;margin-bottom:10px;background:var(--paper)}.pos td{display:flex;justify-content:space-between;align-items:center;gap:12px;border:0;padding:6px 0;font-size:14px}.pos td::before{content:attr(data-l);font-size:11.5px;letter-spacing:.06em;text-transform:uppercase;color:var(--slate)}.pos td:last-child{justify-content:flex-start}.pos td:last-child::before{display:none}
.vote-row{grid-template-columns:1fr auto}.vote-row .meter{grid-column:1/-1}.gauge{flex-wrap:wrap}}
@media(max-width:480px){.kpis{grid-template-columns:1fr}.kpi .spark{width:40%}}
/* contact v2 */
.tline{display:flex;align-items:center;gap:12px;border:1px solid var(--line);border-radius:var(--r-s);background:var(--paper);padding:10px 14px;margin:0 0 18px;font-size:14.5px}
.tline .ti{width:30px;height:30px;border-radius:8px;background:var(--ink);color:var(--paper);display:flex;align-items:center;justify-content:center;flex:0 0 auto}
.tline .ti svg{width:16px;height:16px}
.tline b{font-weight:600}
.tline a{margin-left:auto;font-size:13px;color:var(--slate);border-bottom:1px solid var(--line)}
.acc{max-width:var(--col);border:1px solid var(--line);border-radius:var(--r);background:var(--panel);overflow:hidden}
.acc-i{border-bottom:1px solid var(--line)}
.acc-i:last-child{border-bottom:0}
.acc-h{display:flex;align-items:center;gap:14px;width:100%;background:none;border:0;padding:14px 18px;text-align:left;font:inherit;cursor:pointer;color:var(--ink)}
.acc-h .rad{width:18px;height:18px;border-radius:50%;border:2px solid var(--line-2);flex:0 0 auto;position:relative;transition:border-color .16s}
.acc-h .rad::after{content:"";position:absolute;inset:3px;border-radius:50%;background:var(--gold);opacity:0;transition:opacity .16s}
.acc-i.on .acc-h .rad{border-color:var(--gold)}
.acc-i.on .acc-h .rad::after{opacity:1}
.acc-h .ai{width:32px;height:32px;border-radius:8px;background:var(--panel-2);color:var(--ink);display:flex;align-items:center;justify-content:center;flex:0 0 auto}
.acc-h .ai svg{width:17px;height:17px}
.acc-i.on .acc-h .ai{background:var(--ink);color:var(--paper)}
.acc-h b{font-weight:600;font-size:15.5px}
.acc-h .chev{margin-left:auto;color:var(--slate);transition:transform .2s}
.acc-i.on .acc-h .chev{transform:rotate(180deg)}
.acc-b{max-height:0;overflow:hidden;transition:max-height .28s ease}
.acc-i.on .acc-b{max-height:20em}
.acc-b p{padding:0 18px 16px 82px;margin:0;font-size:14.5px;color:var(--ink-2)}
.acc-i.on{background:#FBF6E4}
/* support v2 */
.dpanel{border:1.5px solid var(--gold);border-radius:var(--r);background:var(--panel);padding:24px;max-width:var(--col)}
.dpanel .eyebrow{margin-bottom:12px}
.dpanel .donate{border:0;padding:0;background:transparent;max-width:none}
.dpanel .addr{background:var(--paper);border:1px solid var(--line);border-radius:8px;padding:10px 12px}
.funds{position:relative;overflow:hidden;border-radius:16px;background:radial-gradient(120% 140% at 100% 0%,#1E5A86 0%,#12395C 45%,#0C2740 100%);color:#F7F4EA;padding:40px 40px 36px}
.funds .grid{position:absolute;inset:0;background-image:linear-gradient(rgba(247,244,234,.06) 1px,transparent 1px),linear-gradient(90deg,rgba(247,244,234,.06) 1px,transparent 1px);background-size:40px 40px;-webkit-mask-image:linear-gradient(90deg,transparent 40%,#000);mask-image:linear-gradient(90deg,transparent 40%,#000)}
.funds>*{position:relative}
.funds h2{color:#F7F4EA}
.funds h2::before{border-color:var(--gold)}
.funds p{color:#C8D4E0;max-width:62ch}
.funds .key{background:rgba(247,244,234,.07);border-color:rgba(201,162,39,.5);color:#F7F4EA}
.funds .note{background:rgba(247,244,234,.06);border-color:rgba(247,244,234,.2);color:#C8D4E0}
.funds .facts{display:flex;gap:28px;flex-wrap:wrap;margin:22px 0 26px;padding-top:18px;border-top:1px solid rgba(247,244,234,.14)}
.funds .facts div{flex:1 1 140px}
.funds .facts b{display:block;font-family:'IBM Plex Mono',monospace;font-size:24px;font-weight:400;color:#F7F4EA}
.funds .facts span{font-size:12.5px;color:#8FA8BE}
@media(max-width:720px){.funds{padding:26px 20px}.acc-b p{padding-left:18px}}
/* code copy + top */
.codewrap{position:relative}
.codewrap .cp{position:absolute;right:8px;top:8px;font-size:12px;padding:5px 10px;border-radius:6px;border:1px solid var(--line);background:var(--panel);cursor:pointer;font-family:inherit;color:var(--ink-2)}
.codewrap .cp:hover{border-color:var(--gold);color:var(--ink)}
.totop{position:fixed;right:18px;bottom:18px;width:42px;height:42px;border-radius:50%;border:1px solid var(--line);background:var(--panel);color:var(--ink);display:flex;align-items:center;justify-content:center;box-shadow:var(--shadow-s);opacity:0;visibility:hidden;transition:opacity .2s,visibility .2s;z-index:15;cursor:pointer}
.totop.show{opacity:1;visibility:visible}
.totop svg{width:18px;height:18px}
.toc a.cur{color:var(--ink);border-bottom-color:var(--gold)}
/* popups: out of layout until open; bottom sheet on phones */
.chip .pop{display:none}
.chip:hover .pop,.chip.open .pop{display:block;animation:popin .16s ease}
@keyframes popin{from{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:none}}
@media(max-width:720px){.chip:hover .pop{display:none}.chip.open .pop{display:block;position:fixed;left:14px;right:14px;bottom:14px;top:auto;width:auto;z-index:40;box-shadow:0 10px 30px rgba(12,39,64,.25)}.chip .pop::before{display:none}}
.tip{display:none}.tipwrap.open .tip{display:block;animation:popin .16s ease}
@media(max-width:720px){.tipwrap.open .tip{position:fixed;left:14px;right:14px;bottom:14px;top:auto;width:auto;z-index:40}.tip::before{display:none}}
/* ===== update pass ===== */
html,body{max-width:100%;overflow-x:hidden}
img,svg{max-width:100%}
*{min-width:0}
:focus-visible{outline:2px solid var(--gold);outline-offset:2px;border-radius:4px}
@media(prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important;scroll-behavior:auto!important}}
.langs .s{display:none}
.chip .pop{max-width:calc(100vw - 48px)}
.fchips .lbl{flex-basis:100%;margin-bottom:6px}
.contract .addr{white-space:normal;word-break:break-all;line-height:1.45}
.contract .addr .fade{display:inline;-webkit-mask-image:linear-gradient(90deg,#000 0,#000 50%,transparent 100%);mask-image:linear-gradient(90deg,#000 0,#000 50%,transparent 100%)}
/* fold cards */
.card.fold{position:relative}
.card.fold .body{position:relative;max-height:3.1em;overflow:hidden;transition:max-height .28s ease}
.card.fold .body::after{content:"";position:absolute;left:0;right:0;bottom:0;height:1.6em;background:linear-gradient(180deg,rgba(253,252,247,0),var(--panel))}
.card.fold.open .body{max-height:60em}
.card.fold.open .body::after{opacity:0}
.card.fold .tog{margin-top:12px;background:none;border:0;padding:0;font:inherit;font-size:13px;color:var(--gold);letter-spacing:.04em;cursor:pointer;display:inline-flex;align-items:center;gap:6px}
.card.fold .tog svg{width:12px;height:12px;transition:transform .2s}
.card.fold.open .tog svg{transform:rotate(180deg)}
.card.fold .plat{display:flex;gap:8px;flex-wrap:wrap;margin-top:12px;padding-top:10px;border-top:1px dotted var(--line)}
.card.fold .plat a{display:inline-flex;align-items:center;gap:5px;font-size:12px;color:var(--ink-2);border:1px solid var(--line);border-radius:999px;padding:3px 9px 3px 6px;background:var(--paper)}
.card.fold .plat a:hover{border-color:var(--gold);color:var(--ink)}
.card.fold .plat svg{width:12px;height:12px;opacity:.75}
.card.fold .plat b{font-weight:600;font-size:11px;letter-spacing:.06em;color:var(--slate);margin-right:2px;align-self:center}
/* steps */
.steps{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin-bottom:18px}
.steps .btn,.tabs .btn{justify-content:center;white-space:nowrap}
.steps .btn svg,.tabs .btn svg{width:17px;height:17px}
.steps .btn.on,.tabs .btn.on{background:var(--ink);color:var(--paper)}
.tabs{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-bottom:18px;max-width:420px}
/* support */
.donate.gold{border:1px solid #EAD9A0;background:linear-gradient(135deg,#FBF6E4,var(--panel));grid-template-columns:150px minmax(0,1fr)}
.donate.gold .qr{width:150px;height:150px}
.donate.gold .eyebrow{margin-bottom:8px}
.donate.gold .addr{background:var(--paper);border:1px solid var(--line);border-radius:8px;padding:10px 12px}
.funds{position:relative;overflow:hidden;border-radius:16px;background:radial-gradient(120% 140% at 100% 0%,#1E5A86 0%,#12395C 45%,#0C2740 100%);color:#F7F4EA;padding:40px 44px;margin:0 0 20px}
.funds .grid{position:absolute;inset:0;background-image:linear-gradient(rgba(247,244,234,.06) 1px,transparent 1px),linear-gradient(90deg,rgba(247,244,234,.06) 1px,transparent 1px);background-size:40px 40px;-webkit-mask-image:linear-gradient(90deg,transparent,#000 60%);mask-image:linear-gradient(90deg,transparent,#000 60%)}
.funds>*{position:relative}
.funds h2{color:#F7F4EA;margin-bottom:18px}
.funds h2::before{display:none}
.funds p{color:#C8D4E0;max-width:66ch}
.funds .facts{display:flex;gap:28px;flex-wrap:wrap;margin:22px 0 26px;padding-top:20px;border-top:1px solid rgba(247,244,234,.14)}
.funds .facts div{flex:1 1 140px}
.funds .facts b{display:block;font-family:'IBM Plex Mono',monospace;font-size:26px;font-weight:400}
.funds .facts span{font-size:12.5px;color:#8FA8BE;letter-spacing:.03em}
.funds .key{background:rgba(247,244,234,.08);border-color:rgba(201,162,39,.5);color:#F7F4EA}
.funds .note{background:rgba(247,244,234,.06);border-color:rgba(247,244,234,.18);color:#C8D4E0}
/* contact v2 */
.topic-line{display:flex;align-items:center;gap:12px;border:1px solid #EAD9A0;background:#FBF6E4;border-radius:var(--r-s);padding:10px 14px;margin:0 0 18px;flex-wrap:wrap}
.topic-line .lbl{font-size:12px;letter-spacing:.06em;text-transform:uppercase;color:var(--slate)}
.topic-line .cur{display:inline-flex;align-items:center;gap:8px;font-weight:600;color:var(--ink)}
.topic-line .cur svg{width:18px;height:18px;color:var(--gold)}
.topic-line a{margin-left:auto;font-size:13px;color:var(--slate);border-bottom:1px solid var(--line)}
.acc{border:1px solid var(--line);border-radius:var(--r);background:var(--panel);overflow:hidden;max-width:var(--col)}
.acc .it{border-bottom:1px solid var(--line)}
.acc .it:last-child{border-bottom:0}
.acc .hd{display:flex;align-items:center;gap:14px;padding:14px 18px;cursor:pointer;background:none;border:0;width:100%;text-align:left;font:inherit;color:var(--ink)}
.acc .hd:hover{background:var(--panel-2)}
.acc .rad{width:20px;height:20px;border-radius:50%;border:2px solid var(--line-2);flex:0 0 auto;position:relative;transition:border-color .16s}
.acc .rad::after{content:"";position:absolute;inset:4px;border-radius:50%;background:var(--gold);opacity:0;transition:opacity .16s}
.acc .it.on .rad{border-color:var(--gold)}
.acc .it.on .rad::after{opacity:1}
.acc .hd svg.ic{width:20px;height:20px;color:var(--ink);opacity:.85}
.acc .hd b{font-weight:600;font-size:15.5px}
.acc .hd .chev{margin-left:auto;width:14px;height:14px;transition:transform .2s;opacity:.6}
.acc .it.on .hd .chev{transform:rotate(180deg)}
.acc .bd{display:none;padding:0 18px 16px 52px;color:var(--ink-2);font-size:14.5px;line-height:1.55}
.acc .it.on .bd{display:block}
.acc .bd .hint{margin-top:8px;font-size:13.5px;color:var(--slate)}
/* dashboard mobile */
.pos-table td[data-l]::before{display:none}
/* to top */
.totop{position:fixed;right:18px;bottom:18px;width:42px;height:42px;border-radius:50%;background:var(--ink);color:var(--paper);border:0;cursor:pointer;display:none;align-items:center;justify-content:center;box-shadow:var(--shadow);z-index:15}
.totop svg{width:18px;height:18px}
.totop.show{display:flex}
/* copy button on code */
.codewrap{position:relative;margin:0 0 14px}
.codewrap .code{margin:0;padding-right:84px}
.codewrap .cp{position:absolute;right:8px;top:8px;font-size:12px;padding:5px 10px;border-radius:6px;border:1px solid var(--line);background:var(--panel);cursor:pointer;font-family:inherit;color:var(--ink-2)}
.codewrap .cp:hover{border-color:var(--gold);color:var(--ink)}
.toc a.on{color:var(--ink);border-bottom-color:var(--gold)}
@media(max-width:920px){.side{display:flex;flex-wrap:nowrap;overflow-x:auto;gap:4px;padding:8px;-webkit-overflow-scrolling:touch}.side a{white-space:nowrap;flex:0 0 auto}.funds{padding:28px 22px}}
@media(max-width:720px){
 .bar{flex-wrap:nowrap;gap:8px}
 .brand .name{font-size:12.5px;letter-spacing:.1em}.brand .dao{font-size:9px}.mark{width:32px;height:32px}
 .langs{margin-left:auto;font-size:12.5px;padding:2px}.langs a,.langs span{padding:4px 7px}.langs .l{display:none}.langs .s{display:inline}
 .menu-btn{margin-left:0;order:3;flex:0 0 auto;width:38px;height:38px}
 .fchips .sep{display:none}
 .steps{grid-template-columns:1fr 1fr}
 .kpis{grid-template-columns:1fr 1fr}
 .grid-2,.grid-eq{grid-template-columns:1fr}
 .acts-grid{grid-template-columns:1fr}
 .pos-table thead{display:none}
 .pos-table tr{display:block;border:1px solid var(--line);border-radius:10px;padding:10px 12px;margin-bottom:10px;background:var(--paper)}
 .pos-table td{display:flex;justify-content:space-between;align-items:center;gap:12px;border:0;padding:5px 0}
 .pos-table td[data-l]::before{display:inline;content:attr(data-l);font-size:12px;color:var(--slate);letter-spacing:.04em}
 .pos-table td .meter{width:90px}
 .vote-row{grid-template-columns:1fr auto;grid-template-rows:auto auto auto}
 .vote-row .pct{text-align:left}
 .chart-legend{gap:10px 14px}
 .donate.gold{grid-template-columns:1fr}
 .funds .facts{gap:14px}
 .acc .bd{padding-left:18px}
 .topic-line a{margin-left:0;width:100%}
 .totop{right:12px;bottom:12px}
}
@media(max-width:480px){.kpis{grid-template-columns:1fr}.tabs{grid-template-columns:1fr 1fr}}
@media(max-width:380px){.langs a,.langs span{padding:4px 5px;font-size:12px}.brand .name{display:none}.brand .dao{display:none}}
/* ===== update pass 2 ===== */
:root{--w:1140px}
.wrap{max-width:var(--w)}
.col{max-width:var(--col)}
/* header: two groups, account button, codes for languages, burger below 1100 */
nav.main{gap:0}
nav.main .grp{display:inline-flex;gap:4px;align-items:center}
/* The two families of items — what the protocol is, and what you do with it — had a
   separator written for them that never fired: a section label sits between the groups in
   the markup, so .grp+.grp matched nothing. Hence seven items running together. */
nav.main .grp~.grp{margin-left:10px;padding-left:11px;border-left:1px solid var(--line-2)}
nav.main a{padding:8px 10px;font-size:14.5px}
.acct{display:inline-flex;align-items:center;gap:8px;background:var(--ink);color:var(--paper);border-radius:8px;padding:8px 13px;font-size:14px;margin-left:6px;white-space:nowrap}
.acct svg{width:15px;height:15px;color:var(--gold)}
.acct:hover{background:var(--ink-deep)}
.langs .l{display:none}.langs .s{display:inline}.langs{font-size:13px}.langs a,.langs span{padding:4px 9px}
@media(max-width:1100px){.menu-btn{display:flex;align-items:center;justify-content:center;order:3;margin-left:0}.langs{order:2;margin-left:auto}.acct{display:none}
nav.main{display:none;position:absolute;left:0;right:0;top:64px;background:var(--paper);border-bottom:1px solid var(--line-2);border-radius:0 0 16px 16px;box-shadow:0 18px 40px rgba(12,39,64,.22);padding:10px 14px 14px;margin:0;flex-direction:column;z-index:30}
nav.main.open{display:flex}
/* An odd number of items left half a row empty. The last one spans both columns instead,
   so grouping can follow sense rather than parity. */
nav.main .grp{display:grid;grid-template-columns:1fr 1fr;column-gap:8px;border:0;margin:0;padding:0}
nav.main .grp>a:last-child:nth-child(odd){grid-column:1/-1}
/* The one item that asks something of the reader rather than telling him something: a
   small red dot on the envelope, the way an unread message is marked. It sits in the
   bottom-right corner of the menu, where the eye rests last. */
nav.main a[href$="contact/"]{position:relative}
nav.main a[href$="contact/"] svg{color:var(--alert)}
nav.main a[href$="contact/"]::after{content:"";position:absolute;left:26px;top:10px;
  width:8px;height:8px;border-radius:50%;background:var(--alert);
  box-shadow:0 0 0 2px var(--paper)}
nav.main .grp+.grp{margin:0;padding:0;border:0}
nav.main a{display:flex;align-items:center;gap:12px;height:48px;padding:0 10px;border-radius:10px;color:var(--ink);font-size:16px;white-space:nowrap;border:0}
nav.main a svg{width:20px;height:20px;flex:0 0 auto;opacity:.85}
nav.main a[aria-current]{background:var(--panel-2)}nav.main a[aria-current]::after{display:none}
nav.main .mhi{display:flex;align-items:center;gap:12px;height:54px;padding:0 12px;border-radius:10px;background:var(--ink);color:var(--paper);margin-bottom:6px;font-size:16px}
nav.main .mhi svg{width:20px;height:20px;color:var(--gold)}nav.main .mhi small{margin-left:auto;font-family:'IBM Plex Mono',monospace;font-size:11px;color:var(--gold);letter-spacing:.06em}
nav.main .msec{font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--slate);padding:12px 10px 4px;font-weight:600}
nav.main .msearch{display:flex;align-items:center;gap:12px;width:100%;height:48px;margin-top:10px;
  padding:0 12px;border:1px solid var(--line-2);border-radius:10px;background:var(--panel-2);
  color:var(--slate);font:inherit;font-size:15.5px;cursor:pointer;text-align:left}
nav.main .msearch svg{width:20px;height:20px;color:var(--gold);flex:0 0 auto}
nav.main .msearch:hover,nav.main .msearch:focus-visible{border-color:var(--gold);color:var(--ink)}
nav.main .mbot{display:flex;align-items:center;justify-content:space-between;border-top:1px solid var(--line);margin-top:10px;padding:12px 10px 0}
nav.main .mbot a{height:auto;padding:0;font-size:13.5px;color:var(--slate);gap:8px}nav.main .mbot a svg{width:16px;height:16px;opacity:.7}
nav.main .msoc{display:flex;gap:6px}nav.main .msoc a{width:34px;height:34px;border:1px solid var(--line);border-radius:50%;justify-content:center;color:var(--slate);padding:0}nav.main .msoc a svg{width:14px;height:14px;opacity:.75}
.dim{position:fixed;inset:0;top:64px;background:rgba(12,39,64,.35);z-index:19;display:none}.dim.on{display:block}
body.menu-open .langs .slide{opacity:0}}
@media(min-width:1101px){nav.main .mhi,nav.main .msec,nav.main .mbot{display:none}}
/* hero: legend on mobile, watch element */
.hero .legend{display:none}
@media(max-width:920px){.hero .vis .lab{display:none}.hero .legend{display:flex;gap:16px;flex-wrap:wrap;padding:10px 22px 0;font-family:'IBM Plex Mono',monospace;font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:#C8D4E0;position:relative;z-index:2}.hero .legend i{display:inline-block;width:18px;height:2px;margin-right:6px;vertical-align:3px}}
.watch{display:inline-flex;align-items:center;gap:12px;color:#F7F4EA}
.watch svg{width:52px;height:52px;flex:0 0 auto}
.watch .ring{transition:stroke-dasharray .25s,fill .2s}
.watch:hover .ring{stroke-dasharray:100 100;fill:#C9A227}.watch:hover .tri{fill:#0C2740}.watch:hover .nq{opacity:0}
.watch .t{font-family:'IBM Plex Mono',monospace;font-size:12px;letter-spacing:.14em;color:#C8D4E0;text-transform:uppercase;line-height:1.5}
.watch .t b{display:block;font-weight:400;color:#F7F4EA}
.hero .watch.corner{position:absolute;right:28px;top:26px;z-index:3}
@media(max-width:920px){.hero .watch.corner{display:none}}
.hero .watch.inline{display:none;margin-top:24px}
@media(max-width:920px){.hero .watch.inline{display:inline-flex}}
/* folds for text (mobile only) */
.fold-p{position:relative}
@media(max-width:720px){.fold-p.closed{max-height:0;overflow:hidden;margin:0}.fold-p.closed+.fold-btn{display:inline-flex}}
.fold-btn{display:none;margin:4px 0 20px;background:none;border:0;padding:0;font:inherit;font-size:14px;color:var(--gold);letter-spacing:.04em;cursor:pointer;align-items:center;gap:6px;font-family:inherit}
.fold-btn svg{width:12px;height:12px}
.fold-btn.open{display:inline-flex}.fold-btn.open svg{transform:rotate(180deg)}
@media(max-width:720px){.warn.fold .fb,.note.fold .fb,.key.fold .fb{max-height:3.3em;overflow:hidden;position:relative}.warn.fold .fb::after{content:"";position:absolute;left:0;right:0;bottom:0;height:1.5em;background:linear-gradient(180deg,rgba(251,239,238,0),var(--alert-bg))}.key.fold .fb::after{content:"";position:absolute;left:0;right:0;bottom:0;height:1.5em;background:linear-gradient(180deg,rgba(251,246,228,0),#FBF6E4)}.note.fold .fb::after{content:"";position:absolute;left:0;right:0;bottom:0;height:1.5em;background:linear-gradient(180deg,rgba(253,252,247,0),var(--panel))}
.warn.fold.open .fb,.note.fold.open .fb,.key.fold.open .fb{max-height:80em}.warn.fold.open .fb::after,.note.fold.open .fb::after,.key.fold.open .fb::after{opacity:0}
.warn .ft,.note .ft,.key .ft{margin-top:8px;background:none;border:0;padding:0;font:inherit;font-size:13px;color:var(--gold);cursor:pointer;display:inline-flex;align-items:center;gap:6px;font-family:'Inter',sans-serif}.warn .ft svg,.note .ft svg,.key .ft svg{width:12px;height:12px}.fold.open .ft svg{transform:rotate(180deg)}}
@media(min-width:721px){.warn .ft,.note .ft,.key .ft{display:none}}
/* funds panel fold */
.fmore{margin-top:10px}.fmore .fb{max-height:0;overflow:hidden;transition:max-height .3s}.fmore.open .fb{max-height:120em}
.fmore .ft{background:none;border:1px solid rgba(247,244,234,.35);color:#F7F4EA;border-radius:8px;padding:9px 14px;font:inherit;font-size:14px;cursor:pointer;display:inline-flex;align-items:center;gap:8px;font-family:inherit}
.fmore .ft svg{width:14px;height:14px;transition:transform .2s}.fmore.open .ft svg{transform:rotate(180deg)}
.funds .after{font-size:13.5px;color:#C8D4E0;margin-top:10px}
@media(max-width:720px){.funds .facts{flex-direction:column;gap:14px}}
/* regulator widget */
.reg .seg{margin:0 0 14px}
.reg svg.rg{width:100%;height:auto;display:block}
.reg .rung{cursor:default}.reg.manual .rung{cursor:pointer}
/* sitemap tree */
.tree{list-style:none;margin:0;padding:0}
.tree>li{margin:0 0 22px}
.tree .root{display:flex;align-items:center;gap:12px;font-family:'IBM Plex Mono',monospace;font-size:14px;color:var(--ink);margin-bottom:12px}
.tree .root svg{width:26px;height:26px}
.tree .grp{position:relative;padding-left:26px;border-left:2px solid var(--gold);margin-left:12px}
.tree .grp>b{display:block;font-size:12px;letter-spacing:.1em;text-transform:uppercase;color:var(--slate);margin:0 0 8px;position:relative}
.tree .grp>b::before{content:"";position:absolute;left:-26px;top:9px;width:18px;height:2px;background:var(--gold)}
.tree .grp ul{list-style:none;margin:0 0 18px;padding:0}
.tree .grp li{position:relative;padding:8px 0 8px 22px;border-bottom:1px dotted var(--line)}
.tree .grp li::before{content:"";position:absolute;left:-26px;top:50%;width:40px;height:1px;background:var(--line-2)}
.tree .grp li a{display:flex;align-items:baseline;gap:10px;color:var(--ink)}
.tree .grp li a .n{font-family:'IBM Plex Mono',monospace;font-size:11.5px;color:var(--gold);min-width:22px}
.tree .grp li a small{color:var(--slate);font-size:13px;margin-left:auto;text-align:right;max-width:55%}
.tree .grp li a:hover{color:var(--ink-deep)}.tree .grp li a:hover .t{border-bottom:1px solid var(--gold)}
.tree .cnt{font-family:'IBM Plex Mono',monospace;font-size:13px;color:var(--slate);margin-top:10px}
@media(max-width:720px){.tree .grp li a{flex-wrap:wrap}.tree .grp li a small{max-width:100%;margin-left:32px;text-align:left}}
/* standardisation touches */
.cards .card{min-height:100%}
h2 .n{font-family:'IBM Plex Mono',monospace;font-size:13px;color:var(--slate);margin-left:auto}
.figure+.figure{margin-top:16px}
section.figure,section .figure{max-width:100%}
img,svg{max-width:100%}
@media(min-width:1101px){nav.main a svg{display:none}nav.main a{white-space:nowrap}}
@media(max-width:720px){.funds .facts div{flex:none}}
.hero .legend{margin-bottom:-6px}
/* ===== update pass 3 ===== */
:root{--slate:#5E6E80}
/* search */
.sbtn{display:inline-flex;align-items:center;justify-content:center;width:38px;height:38px;border:1px solid var(--line);border-radius:8px;background:transparent;color:var(--ink);cursor:pointer;margin-left:6px;flex:0 0 auto}
.sbtn svg{width:17px;height:17px}.sbtn:hover{border-color:var(--gold)}
@media(max-width:1100px){.sbtn{order:2;margin-left:auto}.langs{margin-left:0}}
.sov{position:fixed;inset:0;background:rgba(12,39,64,.45);z-index:50;display:none;padding:8vh 16px 16px;overflow:auto}
.sov.on{display:block}
.sbox{max-width:720px;margin:0 auto;background:var(--panel);border:1px solid var(--line);border-radius:16px;box-shadow:0 24px 60px rgba(12,39,64,.3);overflow:hidden}
.sbox .in{display:flex;align-items:center;gap:12px;padding:14px 16px;border-bottom:1px solid var(--line)}
.sbox .in svg{width:20px;height:20px;color:var(--slate);flex:0 0 auto}
.sbox input{flex:1;border:0;background:transparent;font:inherit;font-size:18px;color:var(--ink);outline:0;min-width:0}
.sbox .in small{font-family:'IBM Plex Mono',monospace;font-size:11px;color:var(--slate);white-space:nowrap}
.sres{max-height:60vh;overflow:auto}
.sres a{display:block;padding:12px 16px;border-bottom:1px solid var(--line);color:var(--ink)}
.sres a:hover,.sres a.cur{background:#FBF6E4}
.sres b{display:block;font-weight:600;font-size:15px}
.sres small{display:block;color:var(--slate);font-size:13px;margin-top:3px;line-height:1.45}
.sres .sec{font-family:'IBM Plex Mono',monospace;font-size:11px;color:var(--gold);letter-spacing:.06em}
.sres .none{padding:22px 16px;color:var(--slate);font-size:14px}
.sres mark{background:#F5E6A8;padding:0 2px;border-radius:2px}
@media(max-width:720px){.sov{padding:0}.sbox{border-radius:0;min-height:100vh}.sres{max-height:none}}
/* who */
.who{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:var(--gap)}
.who .card .ico{width:40px;height:40px;border-radius:10px;background:var(--ink);color:var(--gold);display:flex;align-items:center;justify-content:center;margin-bottom:14px}
.who .card .ico svg{width:20px;height:20px}
.who .card .q{font-family:'PT Serif',serif;font-size:17px;color:var(--ink-deep);margin:0 0 10px;line-height:1.45}
.who .card .more{margin-top:auto;padding-top:14px;font-size:13px;color:var(--gold);display:flex;align-items:center;gap:6px}
/* status */
.st{max-width:var(--col)}
.st .g{margin:0 0 26px}
.st .g b{display:block;font-size:12px;letter-spacing:.1em;text-transform:uppercase;color:var(--slate);margin:0 0 8px;font-weight:600}
.st ul{list-style:none;margin:0;padding:0}
.st li{display:flex;align-items:flex-start;gap:12px;padding:10px 0;border-bottom:1px solid var(--line);color:var(--ink-2)}
.st li i{width:18px;height:18px;border-radius:50%;flex:0 0 auto;margin-top:3px;border:2px solid var(--line-2);position:relative}
.st li.done i{border-color:var(--ok);background:var(--ok)}.st li.done i::after{content:"";position:absolute;left:5px;top:2px;width:4px;height:8px;border:solid #fff;border-width:0 2px 2px 0;transform:rotate(45deg)}
.st .lg{display:flex;gap:18px;font-size:13px;color:var(--slate);margin:0 0 22px}
.st .lg i{display:inline-block;width:12px;height:12px;border-radius:50%;border:2px solid var(--line-2);vertical-align:-1px;margin-right:6px}
.st .lg i.done{border-color:var(--ok);background:var(--ok)}
/* film */
.player{position:relative;border-radius:var(--r);overflow:hidden;background:#0C2740;aspect-ratio:16/9;max-width:960px}
.player video{width:100%;height:100%;display:block}
.player .pbtn{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;background:radial-gradient(60% 60% at 50% 50%,rgba(12,39,64,.2),rgba(12,39,64,.55));border:0;cursor:pointer;color:#F7F4EA;font-family:inherit}
.player .pbtn svg{width:84px;height:84px}
.player.on .pbtn{display:none}
/* modal player */
.fmod{position:fixed;inset:0;background:rgba(12,39,64,.8);z-index:60;display:none;align-items:center;justify-content:center;padding:16px}
.fmod.on{display:flex}
.fmod .player{width:min(960px,100%)}
.fmod .x{position:absolute;right:16px;top:16px;width:40px;height:40px;border-radius:50%;border:1px solid rgba(247,244,234,.5);background:transparent;color:#F7F4EA;cursor:pointer}
.fmod .x svg{width:18px;height:18px}
.fmod .full{position:absolute;left:50%;bottom:22px;transform:translateX(-50%);color:#F7F4EA;font-family:'IBM Plex Mono',monospace;font-size:13px;letter-spacing:.06em;border-bottom:1px solid rgba(247,244,234,.4)}
/* glossary term page */
.term{max-width:var(--col)}
.term .eyebrow{margin-bottom:10px}
.term dl{margin:0 0 26px}
.term .also a{display:inline-block;margin:0 10px 8px 0;border:1px solid var(--line);border-radius:999px;padding:5px 12px;font-size:13.5px;color:var(--ink-2)}
.term .also a:hover{border-color:var(--gold);color:var(--ink)}
/* hash copy */
.hash{display:flex;align-items:center;gap:8px}
.hash button{border:1px solid var(--line);background:var(--panel);border-radius:6px;padding:3px 8px;font-size:11.5px;cursor:pointer;font-family:inherit;color:var(--ink-2);flex:0 0 auto}
.hash button:hover{border-color:var(--gold);color:var(--ink)}
/* dark theme */
@media(prefers-color-scheme:dark){
:root{--ink:#E6E9EE;--ink-deep:#F7F4EA;--ink-2:#B9C3CF;--paper:#0F2236;--panel:#14304A;--panel-2:#1B3A57;--alert-bg:#3A2320;--slate:#8FA0B3;--line:#254663;--line-2:#2F5578;--gold:#D6B347;--gold-soft:#E8D28A}
header{background:rgba(15,34,54,.94)}
.langs a[aria-current]{background:var(--gold);color:#0F2236}.langs .slide{background:var(--gold)}.langs a.hov{color:#0F2236}
.acct{background:var(--gold);color:#0F2236}.acct svg{color:#0F2236}
.btn{color:var(--ink);border-color:var(--ink)}.btn:hover{background:var(--ink);color:var(--paper)}
.key{background:#1E3C57;border-color:#5A4E1F;color:#F7F4EA}
.note{color:var(--ink-2)}.warn{background:#3A2320;border-color:#6E3A33;color:#F1D7D3}.warn strong{color:#F08A7C}.ok{background:#173A2E;border-color:#2E7D5B;color:#CFEBDC}
.card,.figure,.panel,.kpi,.side,.wallet,.pill,.act,.acc,.form,.postbox,.dpanel,.chip,.pop,.tip,.sbox,.contract,.tline,.donate,.pager a,.mini{background:var(--panel);border-color:var(--line)}
.card.fold .fb::after{background:linear-gradient(180deg,rgba(20,48,74,0),var(--panel))}
.form input,.form textarea{background:#0F2236;color:var(--ink);border-color:var(--line)}
.mini{background:linear-gradient(90deg,#1E3C57,var(--panel));border-color:#5A4E1F}
.acc-i.on{background:#1E3C57}.form .hint{background:#1E3C57;border-color:#5A4E1F}
.pill.sample,.panel h3 .tag{background:#3A3316;border-color:#5A4E1F;color:#E8D28A}
.sres a:hover,.sres a.cur{background:#1E3C57}mark,.sres mark{background:#5A4E1F;color:#F7F4EA}
.zone{background:var(--paper);border-color:var(--line)}.zone.top{background:#3A3316;border-color:#5A4E1F}.zone.bot{background:#173A2E;border-color:#2E7D5B}
.seg{background:var(--paper)}.seg button.on{background:var(--gold);color:#0F2236}
.ladder div{background:var(--panel-2)}.stages tr.on td{background:#3A3316}
.badge{background:var(--panel-2);color:var(--ink-2)}.badge.open{background:#173A2E;color:#7ED0A8;border-color:#2E7D5B}
.meter,.prog{background:var(--panel-2)}.code{background:var(--panel-2);color:var(--ink)}
footer{background:var(--panel)}.contract{background:var(--paper)}.contract .qr{color:var(--ink)}.contract .qr::after{background:linear-gradient(90deg,transparent 30%,var(--paper) 95%)}
.player{background:#000}.who .card .ico{background:var(--gold);color:#0F2236}
svg text[fill="#12395C"]{fill:var(--ink)}svg text[fill="#6B7A8C"]{fill:var(--slate)}svg line[stroke="#E2DED1"],svg line[stroke="#EEEAE0"]{stroke:var(--line)}
.rg line[stroke="#D2CCBB"]{stroke:var(--line-2)}.tree .grp li::before{background:var(--line-2)}
}
.fmod{flex-direction:column;gap:16px}.fmod .full{position:static;transform:none}
/* who / roles */
.roles{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:var(--gap)}
.roles .role{background:var(--panel);border:1px solid var(--line);border-radius:var(--r);padding:22px 22px 18px;display:flex;flex-direction:column}
.roles .role .rh{display:flex;align-items:center;gap:12px;margin-bottom:6px}
.roles .role .rh .ico{width:40px;height:40px;border-radius:10px;background:var(--ink);color:var(--gold);display:flex;align-items:center;justify-content:center;flex:0 0 auto}
.roles .role .rh .ico svg{width:20px;height:20px}
.roles .role h3{margin:0;font-size:19px}
.roles .role .kind{font-family:'IBM Plex Mono',monospace;font-size:11.5px;letter-spacing:.06em;color:var(--gold);text-transform:uppercase;margin-bottom:10px}
.roles .role p{font-size:15px;color:var(--ink-2)}
.roles .role .gc{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin:12px 0 14px;font-size:13.5px}
.roles .role .gc b{display:block;font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--slate);margin-bottom:6px}
.roles .role .gc ul{list-style:none;margin:0;padding:0}
.roles .role .gc li{padding:3px 0 3px 16px;position:relative;color:var(--ink-2);text-align:left}
.roles .role .gc .g li::before{content:"+";position:absolute;left:0;color:var(--ok);font-weight:600}
.roles .role .gc .c li::before{content:"–";position:absolute;left:0;color:var(--alert);font-weight:600}
.roles .role .go{margin-top:auto;padding-top:10px;font-size:13.5px;color:var(--gold);display:inline-flex;align-items:center;gap:6px}
.roles .role .go svg{width:14px;height:14px}
.claim{border:1.5px solid var(--gold);border-radius:var(--r);background:linear-gradient(90deg,#FBF6E4,var(--panel));padding:22px 26px;font-family:'PT Serif',serif;font-size:19px;line-height:1.55;color:var(--ink-deep);max-width:var(--col)}
.claim .lbl{font-family:'IBM Plex Mono',monospace;font-size:11.5px;letter-spacing:.12em;text-transform:uppercase;color:var(--gold);display:block;margin-bottom:8px}
.formula{font-family:'IBM Plex Mono',monospace;font-size:15px;background:var(--panel-2);border-radius:var(--r-s);padding:10px 14px;display:inline-block;margin:4px 0 14px;color:var(--ink)}
.fig{margin:22px 0 30px}
.fig .figure{padding:16px 16px 12px}
.fig .cap b{color:var(--ink);font-weight:600}
.roles-nav{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 var(--sp-s)}
.roles-nav a{border:1px solid var(--line);border-radius:999px;padding:6px 12px;font-size:13.5px;color:var(--ink-2);background:var(--panel)}
.roles-nav a:hover{border-color:var(--gold);color:var(--ink)}
@media(max-width:720px){.role .gc{grid-template-columns:1fr}}
/* roles page: one width for text and figures */
.roles-page .col,.roles-page .claim,.roles-page .fig{max-width:860px}
.roles-page .fig .figure{padding:14px 14px 10px}
.roles-page p{max-width:none}
.roles-page .roles-nav{max-width:860px}
@media(max-width:720px){.role .rh h3{font-size:18px}.roles .role p{font-size:14.5px}.roles{gap:14px}.roles .role{padding:18px 16px 16px}.claim{font-size:17px;padding:18px 18px}}
/* conclusions */
.concl{max-width:860px}
.concl .grp{margin:0 0 26px}
.concl .gh{display:flex;align-items:center;gap:12px;font-family:'IBM Plex Mono',monospace;font-size:12px;letter-spacing:.14em;text-transform:uppercase;margin:0 0 12px}
.concl .gh i{width:10px;height:10px;border-radius:50%}
.concl .gh.g-ok{color:var(--ok)}.concl .gh.g-ok i{background:var(--ok)}
.concl .gh.g-key{color:var(--ink)}.concl .gh.g-key i{background:var(--ink)}
.concl .gh.g-gold{color:#7A5E10}.concl .gh.g-gold i{background:var(--gold)}
.concl ol{list-style:none;margin:0;padding:0;counter-reset:c}
.concl li{counter-increment:c;position:relative;padding:16px 20px 16px 64px;border:1px solid var(--line);border-radius:var(--r);background:var(--panel);margin-bottom:10px}
.concl li::before{content:counter(c);position:absolute;left:18px;top:16px;width:30px;height:30px;border-radius:50%;background:var(--panel-2);color:var(--ink);font-family:'IBM Plex Mono',monospace;font-size:13px;display:flex;align-items:center;justify-content:center}
.concl .grp.g-ok li::before{background:#EEF6F1;color:var(--ok)}.concl .grp.g-gold li::before{background:#FBF6E4;color:#7A5E10}
.concl li b{display:block;font-family:'PT Serif',serif;font-weight:400;font-size:19px;margin-bottom:6px;color:var(--ink)}
.concl li p{margin:0;font-size:15px;color:var(--ink-2)}
.concl .recs{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.concl .recs div{border-left:3px solid var(--gold);padding:6px 0 6px 16px;font-size:15px;color:var(--ink-2)}
@media(max-width:720px){.concl li{padding:14px 14px 14px 54px}.concl li::before{left:12px;top:14px}.concl .recs{grid-template-columns:1fr}}
/* search */
.sbtn{display:inline-flex;align-items:center;justify-content:center;width:38px;height:38px;border:1px solid var(--line);border-radius:8px;background:transparent;cursor:pointer;color:var(--ink);margin-left:6px}
.sbtn svg{width:18px;height:18px}.sbtn:hover{border-color:var(--gold)}
@media(max-width:1100px){.sbtn{order:2;margin-left:auto}.langs{margin-left:6px}}
.sov{position:fixed;inset:0;background:rgba(12,39,64,.45);z-index:50;display:none;padding:70px 16px 16px;overflow:auto}
.sov.on{display:block}
.sbox{max-width:760px;margin:0 auto;background:var(--paper);border-radius:16px;box-shadow:0 24px 60px rgba(12,39,64,.35);overflow:hidden}
.sbox .sin{display:flex;align-items:center;gap:12px;padding:14px 18px;border-bottom:1px solid var(--line)}
.sbox .sin svg{width:20px;height:20px;color:var(--slate);flex:0 0 auto}
.sbox input{flex:1;border:0;background:transparent;font:inherit;font-size:18px;color:var(--ink);outline:0;min-width:0}
.sbox .esc{font-family:'IBM Plex Mono',monospace;font-size:11px;color:var(--slate);border:1px solid var(--line);border-radius:6px;padding:3px 7px}
.sres{max-height:60vh;overflow:auto;padding:8px}
.sres .hit{display:block;padding:12px 14px;border-radius:10px;color:var(--ink)}
.sres .hit:hover,.sres .hit.cur{background:var(--panel-2)}
.sres .hit b{display:block;font-weight:600;font-size:15px}
.sres .hit b mark{background:#F5E6A8;padding:0 2px;border-radius:2px}
.sres .hit small{display:block;font-size:13px;color:var(--ink-2);margin-top:3px;line-height:1.45}
.sres .hit small mark{background:#F5E6A8}
.sres .hit .sec{font-family:'IBM Plex Mono',monospace;font-size:10.5px;letter-spacing:.06em;color:var(--gold);text-transform:uppercase}
.sres .none{padding:22px;color:var(--slate);text-align:center}
.sfoot{padding:8px 16px;border-top:1px solid var(--line);font-size:12px;color:var(--slate);display:flex;justify-content:space-between}
@media(max-width:720px){.sov{padding:12px}.sres{max-height:70vh}}
.spage .sres{max-height:none;padding:0}.spage .sres .hit{border:1px solid var(--line);margin-bottom:10px;background:var(--panel)}
/* roles band on home */
.rband{border:1px solid var(--line);border-radius:16px;background:var(--panel);padding:26px 28px 22px;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:24px;align-items:center}
.rband .txt h2{margin:0 0 6px}.rband .txt p{margin:0;color:var(--ink-2);font-size:15px;max-width:52ch}
.rtiles{display:grid;grid-template-columns:repeat(6,1fr);gap:10px;margin-top:18px;grid-column:1/-1}
.rtile{display:flex;flex-direction:column;align-items:center;gap:8px;border:1px solid var(--line);border-radius:12px;padding:14px 8px 12px;background:var(--paper);color:var(--ink);font-size:13.5px;text-align:center;transition:border-color .16s,transform .16s,box-shadow .16s}
.rtile:hover{border-color:var(--gold);transform:translateY(-2px);box-shadow:var(--shadow-s)}
.rtile .ico{width:40px;height:40px;border-radius:10px;background:var(--ink);color:var(--gold);display:flex;align-items:center;justify-content:center}.rtile .ico svg{width:20px;height:20px}
.rtile small{font-family:'IBM Plex Mono',monospace;font-size:10.5px;color:var(--slate);letter-spacing:.04em}
.rbtns{display:flex;flex-direction:column;gap:10px;align-self:center}
.rbtns .btn-p,.rbtns .btn-s{justify-content:center;white-space:nowrap}
.rbtns svg{width:18px;height:18px;flex:none}
/* the outlined button lives on a light panel here, not on the dark banner */
.rbtns .btn-s{background:var(--paper);color:var(--ink);border-color:var(--line)}
.rbtns .btn-s svg{color:var(--gold)}
.rbtns .btn-s:hover{border-color:var(--gold);background:var(--panel-2)}
@media(max-width:920px){.rtiles{grid-template-columns:repeat(3,1fr)}.rband{grid-template-columns:1fr}.rband .txt{order:1}.rtiles{order:2;margin-top:14px}.rbtns{order:3;flex-direction:row;flex-wrap:wrap;margin-top:16px}.rbtns .btn-p,.rbtns .btn-s{flex:1 1 auto}}
@media(max-width:480px){.rtiles{grid-template-columns:repeat(2,1fr)}}
/* role chips on section pages */
.rchips{margin-top:var(--sp-s);padding-top:18px;border-top:1px solid var(--line);display:flex;align-items:center;gap:8px;flex-wrap:wrap;font-size:13px;color:var(--slate)}
.rchips a{display:inline-flex;align-items:center;gap:6px;border:1px solid var(--line);border-radius:999px;padding:5px 12px 5px 6px;color:var(--ink);background:var(--panel);font-size:13px}
.rchips a svg{width:16px;height:16px;color:var(--gold)}.rchips a:hover{border-color:var(--gold)}
/* status */
.stat .grp{margin:0 0 22px}.stat ul{list-style:none;margin:0;padding:0}
.stat li{position:relative;padding:10px 0 10px 34px;border-bottom:1px solid var(--line);color:var(--ink-2)}
.stat li::before{content:"";position:absolute;left:4px;top:16px;width:14px;height:14px;border-radius:50%;border:2px solid var(--line-2)}
.stat .g-ok li::before{background:var(--ok);border-color:var(--ok)}.stat .g-key li::before{background:var(--ink);border-color:var(--ink)}.stat .g-gold li::before{border-color:var(--gold)}
/* film */
.player{border-radius:16px;overflow:hidden;background:#0C2740;box-shadow:var(--shadow)}
.player video{width:100%;height:auto;display:block}
/* dark theme by system setting */
@media(prefers-color-scheme:dark){:root{--ink:#E6ECF2;--ink-deep:#F7F4EA;--ink-2:#B9C6D3;--paper:#0F2740;--panel:#132F4C;--panel-2:#1A3A5C;--line:#274B6E;--line-2:#31587D;--slate:#8FA8BE;--alert-bg:#3A2226;--shadow:0 6px 22px rgba(0,0,0,.35);--shadow-s:0 2px 8px rgba(0,0,0,.25)}
body{background:var(--paper);color:var(--ink)}header{background:rgba(15,39,64,.94)}
.key{background:linear-gradient(90deg,#2A3A3A,var(--panel));border-color:#5A5030;color:var(--ink-deep)}.note{background:var(--panel)}.warn{background:var(--alert-bg);border-color:#7A3A38;color:#F2D3CF}.ok{background:#1E3A2C;border-color:#2E6A48;color:#CFEBDA}
.card,.figure,.panel,.kpi,.postbox,.dpanel,.role,.rtile,.rband,.acc,.form,.tline,.pill,.chip,.badge,.side,.contract,.tree .grp li a,.concl li,.stat,.player{color:var(--ink)}
.chip .pop,.tip,.sbox,.pager a,.faq-nav a,.roles-nav a,.rchips a{background:var(--panel);color:var(--ink)}
.faq-bar input,.form input,.form textarea,.sbox input{background:var(--panel);color:var(--ink)}
.btn{color:var(--ink);border-color:var(--ink)}.btn:hover{background:var(--ink);color:var(--paper)}
.acct{background:var(--gold);color:#0C2740}.acct svg{color:#0C2740}
.langs a[aria-current]{color:var(--paper)}.langs .slide{background:var(--gold)}.langs a.hov{color:#0C2740}
mark{background:#6E5A14;color:#F7F4EA}
.concl .gh.g-gold{color:var(--gold)}.pill.sample,.panel h3 .tag{background:#3A3018;color:#E8D28A;border-color:#6E5A14}
.hero,.funds,.dim,.sov{color:#F7F4EA}
svg text{fill:var(--ink)}.chart text{fill:var(--ink)}
.lede,.card p,.role p,details .body{color:var(--ink-2)}
.ro>div,.zone,.seg,.plat a,.codewrap .cp,.code{background:var(--panel-2);color:var(--ink);border-color:var(--line)}
.zone.top{background:#3A3018;border-color:#6E5A14}.zone.bot{background:#1E3A2C;border-color:#2E6A48}
}
/* contrast + hash copy */
:root{--slate:#5B6B7D}
.hashcp{font-size:11px;padding:3px 8px}
td .hashcp{display:inline-block}
@media(prefers-color-scheme:dark){.claim{background:linear-gradient(90deg,#3A3018,var(--panel));color:var(--ink-deep);border-color:#8A6E1E}.claim .lbl{color:var(--gold)}.key{color:var(--ink-deep)}.rband,.role,.rtile{background:var(--panel)}.rtile{background:var(--panel-2)}.hero .legend{color:#C8D4E0}}
/* 404 robot */
.nf{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:40px;align-items:center}
.face404{width:100%;max-width:360px;display:block;margin:0 auto}
.face404 .mouth{animation:talk 2.4s ease-in-out infinite}
.face404 .g1{animation:g1 3s steps(2) infinite}.face404 .g2{animation:g2 3s steps(2) infinite}
@keyframes talk{0%,60%,100%{ry:18px}70%{ry:6px}80%{ry:22px}}
@keyframes g1{0%,90%,100%{transform:translate(0,0);opacity:0}92%{transform:translate(6px,-2px);opacity:.6}96%{transform:translate(-3px,1px);opacity:.5}}
@keyframes g2{0%,88%,100%{transform:translate(0,0);opacity:0}90%{transform:translate(-6px,2px);opacity:.6}94%{transform:translate(3px,-1px);opacity:.5}}
.nf .code{font-family:'IBM Plex Mono',monospace;font-size:12.5px;letter-spacing:.14em;color:var(--gold);text-transform:uppercase;margin-bottom:12px}
@media(max-width:720px){.nf{grid-template-columns:1fr;gap:20px}.face404{max-width:240px}}
@media(prefers-reduced-motion:reduce){.face404 *{animation:none!important}}
/* hero dot */
.hero .vis .hdot{position:absolute;left:80%;top:64.3%;width:18px;height:18px;margin:-9px 0 0 -9px;z-index:2}
.hero .vis .hdot i{position:absolute;inset:3px;border-radius:50%;background:var(--gold);box-shadow:0 0 0 2px #F7F4EA,0 0 12px rgba(201,162,39,.8)}
.hero .vis .hdot::before,.hero .vis .hdot::after{content:"";position:absolute;inset:-8px;border-radius:50%;border:1.5px solid rgba(201,162,39,.7);animation:pulse 2.6s ease-out infinite}
.hero .vis .hdot::after{animation-delay:1.3s}
@keyframes pulse{0%{transform:scale(.6);opacity:.9}100%{transform:scale(2.1);opacity:0}}
@media(prefers-reduced-motion:reduce){.hero .vis .hdot::before,.hero .vis .hdot::after{animation:none;opacity:.5}}
/* roles chips on section pages */
.forwho{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin:var(--sp-s) 0 -6px}
.forwho b{font-size:11.5px;letter-spacing:.1em;text-transform:uppercase;color:var(--slate);font-weight:600;margin-right:6px;flex-basis:100%}
.rchip{display:inline-flex;align-items:center;gap:8px;border:1px solid var(--line);border-radius:999px;padding:6px 12px 6px 6px;font-size:13.5px;color:var(--ink);background:var(--panel)}
.rchip svg{width:24px;height:24px;padding:4px;border-radius:50%;background:var(--ink);color:var(--gold)}
.rchip:hover{border-color:var(--gold)}
/* documents table: hash cell, cards on phones */
.hashcell{font-size:12px;white-space:nowrap}
.hashcell .hshort{display:none}
.hashcell .cp{position:static;margin-left:6px;vertical-align:middle;font-size:11.5px;padding:3px 8px}
@media(max-width:920px){.hashcell .hfull{display:none}.hashcell .hshort{display:inline}}
@media(max-width:720px){.docs thead{display:none}.docs tr{display:block;border:1px solid var(--line);border-radius:10px;padding:8px 12px;margin-bottom:10px;background:var(--paper)}.docs td{display:flex;justify-content:space-between;align-items:center;gap:12px;border:0;padding:6px 0;font-size:14px;white-space:normal}.docs td::before{content:attr(data-l);font-size:11.5px;letter-spacing:.06em;text-transform:uppercase;color:var(--slate);flex:0 0 auto}.docs td:first-child{font-weight:600}.docs td:first-child::before{display:none}.docs .hashcell{white-space:nowrap}}
/* no double spacing before the footer */
main .wrap > section:last-of-type{margin-bottom:0}
main .wrap > .faq-empty:not(.show){display:none}
.bc:empty{display:none}
.card.art{display:flex;flex-direction:column}
.card.art .n{margin-bottom:8px}
.card.art h3,.card.art h2{font-family:'PT Serif',serif;font-weight:400;font-size:21px;margin-top:0}
/* ===== the ratchet ===== */
.ratchet{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:32px;align-items:center;border:1px solid var(--line);border-radius:var(--r);background:var(--panel);padding:28px}
.ratchet .wheelwrap{position:relative;aspect-ratio:1;max-width:420px;margin:0 auto;width:100%;touch-action:none;user-select:none;-webkit-user-select:none;cursor:grab}
.ratchet .wheelwrap:active{cursor:grabbing}
.ratchet .wheelwrap svg{width:100%;height:100%;display:block}
.ratchet .wheel{transform-origin:200px 200px;will-change:transform}
.ratchet .pawl{transform-origin:318px 96px;transition:transform .08s}
.ratchet.tick .pawl{transform:rotate(-9deg)}
.ratchet.nope .wheel{animation:nope .32s cubic-bezier(.36,.07,.19,.97)}
@keyframes nope{0%,100%{transform:rotate(var(--a))}30%{transform:rotate(calc(var(--a) - 2.2deg))}60%{transform:rotate(calc(var(--a) + 0.8deg))}}
.ratchet .hint{position:absolute;left:50%;bottom:-6px;transform:translateX(-50%);font-family:'IBM Plex Mono',monospace;font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--slate);white-space:nowrap;transition:opacity .3s}
.ratchet.moved .hint{opacity:0}
.ratchet .rside .msg{min-height:2.4em;font-family:'PT Serif',serif;font-size:22px;color:var(--ink);margin:0 0 14px;transition:opacity .2s}
.ratchet .rside .msg.no{color:var(--alert)}
.ratchet .ro{display:grid!important;grid-template-columns:1fr 1fr;gap:12px;margin:0 0 18px;position:static}.ratchet .ro>div{position:static}
.ratchet .btnrow{display:flex;gap:12px;flex-wrap:wrap;align-items:center}
.ratchet .btnrow small{font-size:13px;color:var(--slate);flex-basis:100%}
.ratchet .btn-p[disabled]{opacity:.45;cursor:default}
@media(max-width:820px){.ratchet{grid-template-columns:1fr;padding:20px 16px}.ratchet .wheelwrap{max-width:320px}}
.rtch-home{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:22px;align-items:center;border:1px solid var(--line);border-radius:var(--r);background:linear-gradient(90deg,#FBF6E4,var(--panel));padding:18px 22px}
.rtch-home>svg{width:64px;height:64px;flex:0 0 auto}
.rtch-home h3{margin:0 0 4px;font-family:'PT Serif',serif;font-weight:400;font-size:22px}
.rtch-home p{margin:0;font-size:15px;color:var(--ink-2)}
@media(max-width:720px){.rtch-home{grid-template-columns:auto minmax(0,1fr)}.rtch-home .btn-p{grid-column:1/-1}}

@media(max-width:820px){.ratchet .rside .msg{min-height:1.4em}.ratchet .btnrow{margin-top:4px}.ratchet .ro{grid-template-columns:1fr 1fr}}
/* ratchet home card: the whole card is the link, slightly raised */
a.rtch-home{grid-template-columns:auto minmax(0,1fr) auto;color:inherit;background:linear-gradient(180deg,#FDFCF7 0%,#F7F2E2 100%);box-shadow:0 1px 0 rgba(255,255,255,.9) inset,0 8px 22px rgba(12,39,64,.10),0 2px 4px rgba(12,39,64,.06);border-color:#E3DBBF;transition:transform .16s,box-shadow .16s}
a.rtch-home:hover{transform:translateY(-2px);box-shadow:0 1px 0 rgba(255,255,255,.9) inset,0 14px 30px rgba(12,39,64,.14),0 3px 6px rgba(12,39,64,.06)}
a.rtch-home:active{transform:translateY(1px);box-shadow:0 1px 0 rgba(255,255,255,.9) inset,0 4px 12px rgba(12,39,64,.10)}
a.rtch-home>svg{transition:transform .4s}
a.rtch-home:hover>svg{transform:rotate(15deg)}
a.rtch-home .go{width:42px;height:42px;border-radius:50%;background:var(--gold);color:#0C2740;display:flex;align-items:center;justify-content:center;flex:0 0 auto}
a.rtch-home .go svg{width:18px;height:18px}
@media(max-width:720px){a.rtch-home{grid-template-columns:auto minmax(0,1fr) auto}}
/* desktop nav: no Resources item; sharper hover */
/* the search row belongs to the open menu on a phone; the wide header has its own
   search button, and this one was drawn by the browser as a default control there */
@media(min-width:981px){nav.main .msearch{display:none}}
@media(min-width:1101px){nav.main a.m-only{display:none}
nav.main a{border-radius:8px;transition:background .08s,color .08s;position:relative}
nav.main a:hover{background:var(--ink);color:var(--paper)}
nav.main a:hover::after{display:none}
nav.main a[aria-current]{color:var(--ink);font-weight:600}
nav.main a[aria-current]:hover{background:var(--ink);color:var(--paper)}}
/* ===== search overlay, redesigned ===== */
.sov{position:fixed;inset:0;background:rgba(12,39,64,.55);backdrop-filter:blur(3px);-webkit-backdrop-filter:blur(3px);z-index:50;display:none;padding:9vh 16px 16px;overflow:auto}
.sov.on{display:block;animation:popin .14s ease}
/* The search panel carries the project's own marks: the ratchet step under the field —
   the same figure that sits under every heading — and a dark head that makes the panel read
   as a thing of the site rather than a browser default. */
.sbox{max-width:680px;margin:0 auto;background:var(--panel);border:1px solid var(--line-2);border-radius:18px;
  box-shadow:0 30px 70px rgba(12,39,64,.35);overflow:hidden;position:relative}
.sbox::before{content:"";position:absolute;left:0;right:0;top:0;height:3px;
  background:linear-gradient(90deg,var(--gold) 0 22%,var(--line-2) 22% 100%)}
.sbrand{display:flex;align-items:center;gap:10px;padding:12px 18px 0;color:var(--slate);
  font-size:11.5px;letter-spacing:.12em;text-transform:uppercase}
.sbrand .stair{width:46px;height:10px;flex:none;color:var(--gold)}
.sin{display:flex;align-items:center;gap:12px;padding:14px 16px 14px 18px;border-bottom:1px solid var(--line);background:var(--paper)}
.sin>svg{width:22px;height:22px;color:var(--gold);flex:0 0 auto}
.sin input{flex:1 1 auto;border:0;background:transparent;font:inherit;font-size:20px;color:var(--ink);outline:0;min-width:0;padding:6px 0}
.sin input::placeholder{color:var(--slate)}
/* the token mark closes the field: the same round ASTRX jeton the footer uses */
.sin .stok{flex:0 0 auto;display:flex;align-items:center;opacity:.9}
.sin .stok svg{width:26px;height:26px;display:block}
@media(max-width:480px){.sin .stok{display:none}}
.sin .esc{flex:0 0 auto;font:inherit;font-family:'IBM Plex Mono',monospace;font-size:12px;letter-spacing:.06em;color:var(--slate);border:1px solid var(--line-2);background:var(--panel);border-radius:8px;padding:6px 10px;cursor:pointer;transition:background .1s,color .1s,border-color .1s}
.sin .esc:hover{background:var(--ink);color:var(--paper);border-color:var(--ink)}
.sres{max-height:min(60vh,520px);overflow:auto;padding:6px 0}
.sres:empty{display:none}
.sres .hit{display:block;padding:12px 18px;border-bottom:1px solid var(--line);color:var(--ink);text-decoration:none}
.sres .hit:last-child{border-bottom:0}
.sres .hit:hover,.sres .hit:focus{background:#FBF6E4;outline:0}
.sres .hit b{display:block;font-family:'PT Serif',serif;font-weight:400;font-size:17px;margin-bottom:2px}
.sres .hit small{display:block;font-size:13.5px;color:var(--ink-2);line-height:1.45}
.sres .hit .k{font-family:'IBM Plex Mono',monospace;font-size:10.5px;letter-spacing:.1em;text-transform:uppercase;color:var(--gold);margin-right:8px}
.sres mark{background:#FBF6E4;color:var(--ink-deep);padding:0 2px;border-radius:3px}
.sres .none{padding:22px 18px;color:var(--slate);font-size:15px}
.sfoot{display:flex;justify-content:space-between;gap:12px;padding:10px 18px;font-size:12.5px;color:var(--slate);border-top:1px solid var(--line);background:var(--paper)}
/* an older rule stretched the panel to the full screen: with few results that left a
   tall empty box under them */
@media(max-width:720px){.sov{padding:12px 10px 10px}.sbox{border-radius:14px;min-height:0}.sin{padding:10px 12px}.sin input{font-size:17px}.sres{max-height:calc(100vh - 190px)}.sfoot span:first-child{display:none}}
@media(prefers-color-scheme:dark){.sbox{background:#12395C;border-color:#1E5A86}.sin,.sfoot{background:#0C2740;border-color:#1E5A86}.sin input{color:#F7F4EA}.sres .hit{color:#F7F4EA;border-color:#1E5A86}.sres .hit:hover{background:#1E5A86}.sres .hit small{color:#C8D4E0}.sres mark{background:#7A5E10;color:#F7F4EA}}
.sres .hit .sec{font-family:'IBM Plex Mono',monospace;font-size:10.5px;letter-spacing:.1em;text-transform:uppercase;color:var(--gold);display:block;margin-bottom:2px}
/* interactive hero dot */
@media(min-width:921px){.hero .vis .hdot{cursor:grab}.hero .vis .hdot.grab{cursor:grabbing}.hero .vis .hdot:hover i{transform:scale(1.25)}}
.hcard{position:absolute;z-index:4;width:230px;background:rgba(12,39,64,.92);border:1px solid rgba(201,162,39,.5);border-radius:12px;padding:10px 12px;color:#F7F4EA;font-size:12px;opacity:0;visibility:hidden;transition:opacity .15s;pointer-events:none;backdrop-filter:blur(4px)}
.hcard.on{opacity:1;visibility:visible}
.hcard .row{display:flex;justify-content:space-between;gap:10px;padding:3px 0;border-bottom:1px dotted rgba(247,244,234,.15)}
.hcard .row span{color:#C8D4E0}.hcard .row b{font-family:'IBM Plex Mono',monospace;font-weight:400}
.hcard .row.gold b{color:#C9A227}.hcard .row.soft b{color:#8FA8BE}
.hcard .hnote{margin-top:6px;font-size:10.5px;color:#8FA8BE}
@media(max-width:920px){.hcard{display:none}}
/* map icon next to search */
.mapbtn{margin-left:4px}
@media(max-width:1100px){.mapbtn{display:none}}
.backhome{display:inline-flex;align-items:center;gap:8px;font-size:13.5px;color:var(--slate);margin:0 0 14px;border:0}
.backhome svg{width:16px;height:16px;transform:rotate(180deg);transition:transform .16s}
.backhome:hover{color:var(--ink)}.backhome:hover svg{transform:rotate(180deg) translateX(3px)}
/* hero fact with phase switch */
.hero .facts .fact-ph b small{font-size:12px;color:#8FA8BE;letter-spacing:.04em;margin-left:4px;font-family:'Inter',sans-serif}
.seg.mini{margin-top:10px;display:inline-flex;border:1px solid rgba(247,244,234,.28);background:rgba(247,244,234,.06);border-radius:999px;padding:2px}
.seg.mini button{border:0;background:transparent;color:#C8D4E0;font:inherit;font-size:11.5px;padding:4px 10px;border-radius:999px;cursor:pointer;letter-spacing:.02em}
.seg.mini button.on{background:#C9A227;color:#0C2740;font-weight:600}
.seg.mini{white-space:nowrap}.seg.mini button{white-space:nowrap}
@media(max-width:720px){.hero .facts .fact-ph{grid-column:1/-1}}
.seg.mini{flex-wrap:nowrap;width:auto}
@media(max-width:720px){.hero .facts .fact-ph{flex-basis:100%;width:100%}}
/* fade overlays never intercept clicks */
.card.fold .fb::after,.warn.fold .fb::after,.note.fold .fb::after,.key.fold .fb::after,.contract .addr .fade{pointer-events:none}
.card.fold.open .fb::after{display:none}
.card.fold .body::after{pointer-events:none}
.card.fold.open .body::after{display:none}
.hero .facts .fact-3 b small{font-size:12px;color:#8FA8BE;letter-spacing:.04em;margin-left:4px;font-family:'Inter',sans-serif}
.hcard{pointer-events:auto;padding-right:30px}
.hcard .hnote{margin-top:6px;font-size:10px;color:#8FA8BE;line-height:1.35}
.hcard .hclose{position:absolute;right:6px;top:4px;width:22px;height:22px;border:0;background:transparent;color:#C8D4E0;font-size:16px;line-height:1;cursor:pointer;border-radius:50%}
.hcard .hclose:hover{background:rgba(247,244,234,.12);color:#F7F4EA}
.hcard .row span{white-space:nowrap}.hcard .row b{white-space:nowrap}
.hcard{width:250px}
.hcard .hnote{display:flex;gap:8px;align-items:flex-start;margin-top:8px;padding-top:8px;border-top:1px solid rgba(247,244,234,.12);font-size:10.5px;line-height:1.4;color:#C8D4E0;letter-spacing:.01em}
.hcard .hnote svg{width:14px;height:14px;flex:0 0 auto;color:#C9A227;margin-top:1px}
.hcard .hnote b{color:#C9A227;font-weight:400;padding:0 2px}
.hero .vis svg path{transition:none}
.hero .vis .hcard svg{position:static;inset:auto;width:14px;height:14px}.hcard{padding:10px 14px 12px}.hcard .hhead{display:flex;align-items:center;gap:8px;margin:0 0 8px;padding:0 0 7px;border-bottom:1px solid rgba(201,162,39,.85)}.hcard .htitle{display:flex;align-items:center;flex:1 1 auto;min-width:0;font-family:'IBM Plex Mono',monospace;font-size:11px;letter-spacing:.22em;text-transform:uppercase;color:#C9A227;white-space:nowrap}.hcard .htitle::after{content:"";flex:1 1 auto;height:1px;margin-left:10px;background:linear-gradient(90deg,rgba(201,162,39,.55),rgba(201,162,39,0))}.hcard .hq{flex:0 0 auto;width:20px;height:20px;border-radius:50%;border:1px solid rgba(201,162,39,.85);background:rgba(201,162,39,.16);color:#C9A227;font:600 11px/1 'Inter',sans-serif;cursor:pointer;padding:0;transition:background .15s,color .15s}.hcard .hq:hover,.hcard .hq.on{background:#C9A227;color:#0C2740}.hcard .hq:focus-visible{outline:2px solid #F7F4EA;outline-offset:2px}.hcard .hhead .hclose{position:static;flex:0 0 auto;width:20px;height:20px;font-size:15px}.hcard .hexp{font-size:11px;line-height:1.45;color:#C8D4E0;margin:0 0 8px;padding:0 0 8px;border-bottom:1px dotted rgba(247,244,234,.15)}.hcard .hlink{display:flex;align-items:center;gap:8px;margin-top:8px;padding-top:8px;border-top:1px solid rgba(247,244,234,.12);font-size:11.5px;color:#C9A227;text-decoration:none}.hcard .hlink svg{width:14px;height:14px;flex:0 0 auto;position:static}.hcard .hlink span{text-decoration:underline;text-decoration-color:rgba(201,162,39,.5);text-underline-offset:3px}.hcard .hlink:hover span,.hcard .hlink:focus-visible span{text-decoration-color:#C9A227}.hcard .hlink:focus-visible{outline:2px solid #F7F4EA;outline-offset:2px;border-radius:4px}
.hcard{width:325px}.hcard .row span{white-space:normal;padding-right:6px}.hcard .row b{white-space:nowrap;flex:0 0 auto}
.hero .facts .fact-ph .seg.mini{display:flex;width:max-content;margin-top:10px}
.hero .facts .fact-ph>span{display:block}

/* fixes */
.hcard .row:last-of-type{border-bottom:0}
.chip .role{border:0!important;background:none!important;padding:0!important;border-radius:0!important;display:inline!important;flex-direction:row!important}

/* --- 2026-09-06: home manifesto module --- */
.mnf-cols{columns:2;column-gap:40px}
.mnf-cols p{color:#CFDCE8;font-size:15px;line-height:1.62;margin:0 0 14px;max-width:none;break-inside:avoid;-webkit-column-break-inside:avoid}
.mnf-cols p:last-child{margin-bottom:0}
/* manifesto: seal to the top-right so it cannot collide with the last line */

/* --- 2026-09-06: hero card, remove the doubled separator above the note.
   The previous rule used .row:last-of-type, which matches nothing:
   the last DIV in the card is .hnote, not a .row. --- */
.hcard .row:nth-last-of-type(2){border-bottom:0}
.hcard .row:has(+ .hnote){border-bottom:0}

/* --- 2026-09-06: manifesto collapsed to a seal plaque, expands full-screen --- */
.mnf-row{display:flex}
.mnf-btn{display:inline-flex;align-items:center;gap:16px;max-width:460px;text-align:left;cursor:pointer;
  padding:14px 18px 14px 16px;border-radius:14px;border:1px solid #4E4526;color:#F7F4EA;font:inherit;
  background:linear-gradient(150deg,#16405F 0%,#0C2740 68%);
  box-shadow:0 8px 22px rgba(12,39,64,.18),0 1px 0 rgba(201,162,39,.25) inset;
  transition:transform .16s,box-shadow .16s,border-color .16s}
.mnf-btn:hover{transform:translateY(-2px);border-color:var(--gold);box-shadow:0 14px 30px rgba(12,39,64,.24),0 1px 0 rgba(201,162,39,.4) inset}
.mnf-btn:active{transform:translateY(1px)}
.mnf-btn:focus-visible{outline:2px solid var(--gold);outline-offset:3px}
.mnf-ic{flex:0 0 auto;color:var(--gold);display:block;line-height:0}
.mnf-ic .mnf-seal{width:42px;height:42px;display:block;transition:transform .35s}
.mnf-btn:hover .mnf-ic .mnf-seal{transform:rotate(-22.5deg)}
.mnf-ic.big .mnf-seal{width:60px;height:60px}
.mnf-tx{display:block;min-width:0}
.mnf-tx b{display:block;font-family:'PT Serif',Georgia,serif;font-weight:400;font-size:19px;line-height:1.25}
.mnf-tx small{display:block;margin-top:3px;font-size:13px;line-height:1.35;color:#A9BED2}
.mnf-ar{flex:0 0 auto;width:30px;height:30px;border-radius:50%;background:rgba(201,162,39,.16);color:var(--gold);
  display:flex;align-items:center;justify-content:center;transition:background .16s}
.mnf-ar svg{width:15px;height:15px}
.mnf-btn:hover .mnf-ar{background:var(--gold);color:#0C2740}

.mnf-ov{position:fixed;inset:0;z-index:60;background:rgba(6,22,38,.66);backdrop-filter:blur(3px);
  display:flex;align-items:flex-start;justify-content:center;padding:6vh 16px 24px;overflow:auto;
  opacity:0;transition:opacity .18s}
.mnf-ov.on{opacity:1}
.mnf-ov[hidden]{display:none}
.mnf-sheet{position:relative;width:100%;max-width:820px;border-radius:18px;border:1px solid #4E4526;
  background:linear-gradient(155deg,#16405F 0%,#0C2740 62%);box-shadow:0 30px 70px rgba(6,22,38,.5);
  padding:34px 38px 30px;transform:translateY(10px);transition:transform .2s}
.mnf-ov.on .mnf-sheet{transform:none}
.mnf-sheet::after{content:"";position:absolute;left:0;right:0;top:0;height:2px;pointer-events:none;
  border-radius:18px 18px 0 0;background:linear-gradient(90deg,var(--gold),rgba(201,162,39,.15) 55%,rgba(201,162,39,0))}
.mnf-sheet h2{color:var(--paper);font-size:clamp(23px,3.4vw,30px);margin:16px 0 20px;display:block}
.mnf-sheet h2::before{content:none}
.mnf-x{position:absolute;right:14px;top:14px;width:38px;height:38px;border-radius:50%;cursor:pointer;
  border:1px solid rgba(247,244,234,.22);background:rgba(247,244,234,.06);color:#D6E2EC;
  display:flex;align-items:center;justify-content:center;transition:background .14s,color .14s}
.mnf-x svg{width:19px;height:19px}
.mnf-x:hover{background:var(--gold);color:#0C2740;border-color:var(--gold)}
.mnf-x:focus-visible{outline:2px solid var(--gold);outline-offset:2px}
.mnf-end{margin-top:22px;opacity:.65;pointer-events:none}
.mnf-end .notch{width:150px;height:15px;display:block}
@media(max-width:760px){
  .mnf-btn{gap:13px;padding:13px 14px;max-width:none;width:100%}
  .mnf-tx b{font-size:17px}.mnf-tx small{font-size:12px}
  .mnf-ic .mnf-seal{width:36px;height:36px}
  .mnf-ov{padding:0}
  .mnf-sheet{max-width:none;min-height:auto;margin:auto;border-radius:0;border:0;padding:64px 20px 34px}
  .mnf-sheet::after{border-radius:0}
  .mnf-x{right:12px;top:12px}
}
@media(prefers-reduced-motion:reduce){
  .mnf-btn,.mnf-ic .mnf-seal,.mnf-ov,.mnf-sheet{transition:none}
  .mnf-btn:hover{transform:none}.mnf-btn:hover .mnf-ic .mnf-seal{transform:none}
}
/* restored: single-column manifesto on phones, and dark-theme text colour */
@media(max-width:760px){.mnf-cols{columns:1}}
@media(prefers-color-scheme:dark){.mnf-cols p{color:#C6D4E0}}

/* --- 2026-09-06 b3: home cards and the key block, five-line clamp on mobile.
   Unique .hfold/.hfb/.hmore names: .fold/.fb/.ft are taken by other pages. --- */
.hmore{display:none;margin-top:12px;padding:0;border:0;background:none;font:inherit;cursor:pointer;
  font-size:13px;color:var(--gold);letter-spacing:.04em;align-items:center;gap:6px}
.hmore svg{width:14px;height:14px;transition:transform .18s}
.hfold.open .hmore svg{transform:rotate(90deg)}
.hmore:focus-visible{outline:2px solid var(--gold);outline-offset:3px;border-radius:4px}
.key.hfold p+p{margin-top:14px}
@media(max-width:760px){
  .hfold .hfb{position:relative;max-height:8em;overflow:hidden;transition:max-height .28s ease}
  .hfold.open .hfb{max-height:200em}
  .hfold .hfb::after{content:"";position:absolute;left:0;right:0;bottom:0;height:2.2em;pointer-events:none;
    background:linear-gradient(180deg,rgba(253,252,247,0),var(--panel));transition:opacity .2s}
  .key.hfold .hfb::after{background:linear-gradient(180deg,rgba(251,246,228,0),#FBF6E4)}
  .hfold.open .hfb::after{opacity:0}
  .hmore{display:inline-flex}
}
@media(max-width:760px) and (prefers-color-scheme:dark){
  .hfold .hfb::after{background:linear-gradient(180deg,rgba(20,48,74,0),var(--panel))}
  .key.hfold .hfb::after{background:linear-gradient(180deg,rgba(30,60,87,0),#1E3C57)}
}
@media(prefers-reduced-motion:reduce){.hfold .hfb,.hmore svg,.hfold .hfb::after{transition:none}}
/* exactly five lines: .key and the cards have different line heights, so state both */
.card.hfold .hfb{--lh:24px}      /* 15px × 1.6 */
.key.hfold .hfb{--lh:28.5px}     /* 19px × 1.5 */
@media(max-width:760px){.hfold .hfb{max-height:calc(5 * var(--lh,24px))}}
/* fade by mask, not by an overlaid gradient: the .key background is a horizontal
   gradient, and a flat fill over it left a visible band */
@media(max-width:760px){
  .hfold .hfb::after{content:none}
  .hfold .hfb{-webkit-mask-image:linear-gradient(180deg,#000 calc(100% - 2.4em),transparent 100%);
              mask-image:linear-gradient(180deg,#000 calc(100% - 2.4em),transparent 100%)}
  .hfold.open .hfb{-webkit-mask-image:none;mask-image:none}
}

/* ============================================================
   2026-09-06 b4 — proportions of the home page modules.
   Five rules derived from measurement (four languages, nine
   widths, fifteen modules), not chosen by eye. The reasoning
   and the before/after figures live in the internal notes.

   P1. ONE WINDOW HEIGHT, not one line count. The eye compares
       height, not lines. Target 144 px; for each block take the
       nearest whole number of its own lines.
   P2. CLAMP ONLY IF IT HIDES 2+ LINES, otherwise the button
       lies. Measured in the browser once fonts have loaded:
       text length differs by language (Chinese runs about half
       the length of the Spanish for the same passage).
   P3. THRESHOLD 760 px. Above it nothing is clamped.
   P4. COLUMN NOT NARROWER THAN 34 CHARACTERS, and from 390 px
       not narrower than 40, and never wider than 75.
   P5. A FULL-GRID MODULE SETS ITS TEXT IN TWO COLUMNS: a line
       across 1092 px is 110 characters, twice the comfortable
       maximum.
   ============================================================ */

/* P1 — a 144 px window, expressed in each block's own lines */
.card.hfold .hfb{--lh:24px;--ln:6}    /* 6 × 24   = 144   */
.key.hfold  .hfb{--lh:25.5px;--ln:6}  /* 6 × 25,5 = 153   */
@media(max-width:760px){.hfold .hfb{max-height:calc(var(--ln,6) * var(--lh,24px))}}

/* P2 — a block with nothing to hide loses both the clamp and the button */
.hfold.nofold .hfb{max-height:none;-webkit-mask-image:none;mask-image:none}
.hfold.nofold .hmore{display:none}

/* P4 — the lead on phones: 17px type, the mark above the text, not beside it.
   A 56 px left inset for the mark ate a third of the column: 26 characters. */
@media(max-width:760px){
  .key.hfold{font-size:17px;padding:44px 18px 16px}
  .key.hfold::before{top:16px;left:18px}
}
/* P4 — the ratchet plaque on phones: mark and arrow leave the text line.
   It was 17 characters in a 128 px column. */
@media(max-width:560px){
  a.rtch-home{grid-template-columns:1fr;gap:14px}
  a.rtch-home>svg{width:52px;height:52px}
  a.rtch-home .go{display:none}
}
/* P4 — three cards: a third column only when each gets 40 characters */
section.cards{grid-template-columns:repeat(auto-fit,minmax(300px,1fr))}

/* P5 — the lead on desktop */
.key.hfold{max-width:none}
.key.hfold .hfb p{max-width:none}
@media(min-width:761px){
  .key.hfold .hfb{columns:2;column-gap:44px}
  .key.hfold .hfb p{break-inside:avoid;-webkit-column-break-inside:avoid}
  .key.hfold .hfb p+p{margin-top:0}
}
/* P4, small screens: 16px type gives a 24px line, a window of exactly 144 px, same as
   the cards, and a wider column: 40 characters at 390 px, 36 at 360, 31 at 320. */
@media(max-width:400px){
  .key.hfold{font-size:16px}
  .key.hfold .hfb{--lh:24px}
}

/* --- 2026-09-06 b5: the reading block under the same rules.
   Two violations that predated the longer subtitles:
   at 1280 four columns gave 34 characters (P4 asks for 40),
   and the full-width seventh card gave a 146-character line.
   Hence the addition to P4: a column is not only no narrower
   than 34-40 characters, but never wider than 75. --- */
section.cards.seven{grid-template-columns:repeat(auto-fit,minmax(300px,1fr))}
@media(min-width:760px){.cards.seven>a:last-child p{flex:1;max-width:68ch}}
/* correction: the reading block is a DIV, not a SECTION, so the rule
   prefixed with section never matched it. And 68ch on the last
   card gave 82 characters: ch is the width of the zero glyph, wider than
   an average letter. Both values corrected by measurement. */
.cards.seven{grid-template-columns:repeat(auto-fit,minmax(300px,1fr))}
@media(min-width:760px){.cards.seven>a:last-child p{max-width:52ch}}

/* --- 2026-09-06 b7: Phase 2 on the ratchet page --- */
.phbar{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin:0 0 18px}
.phb{font:inherit;font-size:14px;padding:8px 16px;border-radius:999px;cursor:pointer;
  border:1px solid var(--line);background:var(--panel);color:var(--ink-2);transition:all .18s}
.phb.on{background:var(--ink-deep);border-color:var(--ink-deep);color:var(--paper)}
.phb.lock{opacity:.5;cursor:not-allowed}
.phb.lock:hover{opacity:.7}
.phb:focus-visible{outline:2px solid var(--gold);outline-offset:2px}
.phnote{font-size:13px;color:var(--slate);flex:1;min-width:200px}
.wheelwrap{position:relative}
#conf{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;z-index:3}
.ratchet.flash .wheelwrap::after{content:"";position:absolute;inset:-8%;border-radius:50%;pointer-events:none;
  background:radial-gradient(circle,rgba(201,162,39,.55),rgba(201,162,39,0) 62%);animation:phflash .7s ease-out}
@keyframes phflash{from{opacity:1}to{opacity:0}}
/* Phase 2: the wheel is recoloured BY ROLE, not by element type.
   Recolouring by type turned the wheel inside out: a dark disc in the centre,
   spokes gone, a gold letter on dark. Body is paper, rim is gold,
   spokes are dark, and the hub stays dark so the letter reads. */
.ratchet.p2 #rw .rim{fill:#F7F4EA;stroke:#C9A227}
.ratchet.p2 #rw .body{fill:#F7F4EA;stroke:#C9A227}
.ratchet.p2 #rw .spk{stroke:#12395C;stroke-opacity:.85}
.ratchet.p2 #rw .dot{fill:#12395C;opacity:.45}
.ratchet.p2 #rw .hub{fill:#12395C;stroke:#C9A227}
.rate{margin:18px 0 4px}
.rate label{display:block;font-size:12px;letter-spacing:.06em;text-transform:uppercase;color:var(--slate)}
.rate output{display:block;font-family:'PT Serif',Georgia,serif;font-size:26px;color:var(--gold);margin:2px 0 8px}
.rate input[type=range]{width:100%;accent-color:var(--ink-deep)}
.rate input[type=range].gold{accent-color:var(--gold)}
.rate small{display:block;margin-top:6px;font-size:12px;color:var(--slate);line-height:1.45}
@media(prefers-reduced-motion:reduce){.ratchet.flash .wheelwrap::after{animation:none}.phb{transition:none}}

/* --- 2026-09-06 b8: webmaster audit, W02 — control size in the header.
   Measurement found six elements below 44 px, the smallest 25 px tall.
   The tap area grows without touching the visible size: the button itself
   stays as it was, only the region under the finger gets bigger. --- */
@media(max-width:760px){
  header a,header button{position:relative}
  header a::after,header button::after{content:"";position:absolute;left:50%;top:50%;
    transform:translate(-50%,-50%);width:max(100%,44px);height:max(100%,44px);pointer-events:auto}
  header .langs a{padding:9px 10px}
  header .mhi,header .navbtn,header .srch{min-width:44px;min-height:44px}
}

/* --- 2026-09-06 b8: tap targets in the header are at least 44 px.
   At 360 px the measurement showed six controls between 32 and 38 px tall.
   The tap area grows without touching the drawing: padding plus a negative
   margin, so the layout stays exactly where it was. --- */
@media(max-width:760px){
  header .sbtn,header .menu-btn{width:44px;height:44px}
  header .brand{padding:6px 0;margin:-6px 0}
  header .hov{padding:5px 8px;margin:-5px -2px}
  /* .langs is a segmented switch with a .slide thumb; grow the height on the
     container itself, otherwise the thumb drifts out of alignment */
  header .langs{min-height:44px;align-items:center}
  header .langs>a{min-height:44px;display:inline-flex;align-items:center}
}

/* --- 2026-09-07 b9: the language thumb must not touch the border.
   Padding was 3 px, the thumb landed 1 px from the edge and ate the border
   line. Visible only when the first or last language is active — which on the
   English version is always. --- */
.langs{padding:5px}

/* --- 2026-09-07 b9: both readout panels align on shared rows.
   At 360 and 390 px the "cost of entry" label wraps onto two lines while its
   neighbour does not, and the value and caption slipped by 19 px. A shared row
   grid fixes it regardless of label length, identically in both phases. --- */
.ro{align-items:start}
@supports(grid-template-rows:subgrid){
  .ro{grid-template-rows:auto auto auto}
  .ro>*{display:grid;grid-template-rows:subgrid;grid-row:span 3;align-content:start}
}
@supports not (grid-template-rows:subgrid){
  /* fallback: reserve two lines for the label wherever it wraps */
  @media(max-width:429px){.ro .l{min-height:2.6em}}
}

/* --- 2026-09-07 b10: the mark matches the search button in size.
   The mark's square was 32 px against the button's 38, and the header looked
   stepped. Room freed up after the local switch was cut to three languages,
   so the mark can grow without squeezing anything else. --- */
.brand .mk,.brand svg:first-child{width:38px;height:38px}
@media(max-width:760px){.brand .mk,.brand svg:first-child{width:44px;height:44px}
  .sbtn,.menu-btn{width:44px;height:44px}}

/* --- 2026-09-07 b11: three header fixes.
   1. The .slide thumb is positioned and the buttons are not, so it painted
      OVER the active language label: white text showed through the dark
      circle and read as grey. The buttons are lifted above the thumb.
   2. Before Inter loads, the fallback font is wider and "ASSETRIX" ran into
      the search button. Brand text can no longer push its neighbour out. --- */
.langs>a,.langs>span:not(.slide){position:relative;z-index:1}
/* 3. The mark grew to 44 px and left no room for the "ASSETRIX / DAO"
      caption: the text escaped its box onto the search button. On narrow
      screens only the mark remains — it is recognisable on its own. */
.langs a.hov .s,.langs a.hov .l{color:var(--paper)}
@media(max-width:520px){.brand .name,.brand .dao{display:none}.brand{gap:0}}

/* --- 2026-09-07 b12: link to the white paper at the end of the manifesto --- */
.mnf-wp{display:inline-flex;align-items:center;gap:9px;margin-top:22px;padding:9px 14px;
  border:1px solid rgba(201,162,39,.45);border-radius:10px;color:var(--paper);
  font-size:14px;text-decoration:none;transition:background .15s,border-color .15s}
.mnf-wp svg{width:17px;height:17px;color:var(--gold);flex:0 0 auto}
.mnf-wp:hover{background:rgba(201,162,39,.14);border-color:var(--gold)}
.mnf-wp:focus-visible{outline:2px solid var(--gold);outline-offset:3px}
.mnf-sheet .mnf-end{margin-top:20px}

/* --- 2026-09-08 b13: the 404 buttons sat at different heights.
   .btn-p had 12 px vertical padding and was 50 tall, .btn had 11 and 48,
   and baseline alignment pushed them a further 5 px apart vertically. --- */
a.btn,a.btn-p{vertical-align:middle}
a.btn{padding:12px 18px}

/* --- 2026-09-08 b14: /history/ — the first raster screenshots on the site.
   Before this page there was not a single <img> in the markup, so the whole
   set of rules starts here. The hs- prefix is used because .key, .src, .fig,
   .cap and .figure already belong to other blocks. */
.hs-fig{margin:26px 0;max-width:460px}
.hs-fig img{display:block;width:100%;height:auto;border:1px solid var(--line);
  border-radius:var(--r-s);background:var(--panel)}
.hs-cap{font-size:14px;line-height:1.45;color:var(--slate);margin-top:9px}
.hs-two{display:grid;grid-template-columns:1fr 1fr;gap:20px;margin:26px 0}
.hs-two .hs-fig{margin:0;max-width:none}
@media(max-width:640px){.hs-two{grid-template-columns:1fr;gap:24px}}
.hs-year{font-family:'IBM Plex Mono',ui-monospace,monospace;font-size:12px;
  letter-spacing:.16em;text-transform:uppercase;color:var(--gold);margin:0 0 6px}
.hs h2{margin-top:44px}
.hs h2:first-child{margin-top:0}
.hs-h3{margin-top:30px}
.hs .key{margin:24px 0}
.hs .key p{margin:0}
.hs .mech-list{margin:0 0 16px}
/* Only the margin is set here: the list itself is styled by the shared
   .mech-list rules above. */
.hs-note{font-size:14px;line-height:1.5;color:var(--slate);max-width:68ch}
.hs-flag{display:block;font-size:13px;line-height:1.4;color:var(--slate);margin-top:5px}
.hs-src td a.rt{border-bottom:1px solid var(--line-2)}
.hs-under{margin:-14px 0 26px;max-width:68ch}

/* --- 2026-09-08 b14: the two notices above the account prototype.
   The warning used to be an always-open red panel taking a screenful before
   any content. Both are folds now: closed by default, opened by a click. --- */
.acc-notes{display:flex;flex-direction:column;gap:10px;margin:20px 0 26px;max-width:var(--col)}
.acc-fold{border:1px solid var(--line);border-radius:var(--r-s);background:var(--panel);overflow:hidden}
.acc-fold>summary{display:flex;align-items:center;gap:10px;padding:13px 16px;cursor:pointer;
  font-size:15px;list-style:none;user-select:none;transition:background .15s}
.acc-fold>summary::-webkit-details-marker{display:none}
.acc-fold>summary::after{content:'';margin-left:auto;width:8px;height:8px;flex:none;
  border-right:1.6px solid var(--slate);border-bottom:1.6px solid var(--slate);
  transform:rotate(45deg) translateY(-2px);transition:transform .18s}
.acc-fold[open]>summary::after{transform:rotate(225deg) translateY(-2px)}
.acc-fold>summary:hover{background:var(--panel-2,var(--panel))}
.acc-fold>p{margin:0 16px 14px;font-size:15px;line-height:1.55;color:var(--ink-2);max-width:68ch}
.acc-fold>summary+p{margin-top:2px}
.acc-ic{display:inline-flex;width:20px;height:20px;flex:none;color:var(--gold)}
.acc-ic svg{width:20px;height:20px}
.warn-ic{border-radius:50%;background:var(--alert-bg);border:1px solid #E7B9B4;position:relative}
.warn-ic::after{content:'!';position:absolute;inset:0;display:flex;align-items:center;
  justify-content:center;font-size:13px;font-weight:600;color:#5A2A24}
.acc-when>summary{background:linear-gradient(180deg,#FBF6E4,#F7EFD8);border-bottom:1px solid #EAD9A0}
.acc-when[open]>summary{border-bottom-color:#EAD9A0}
.acc-when{border-color:#EAD9A0}
.acc-sign{font-style:italic;color:var(--slate)}
@media(prefers-color-scheme:dark){
  .acc-when>summary{background:rgba(201,162,39,.10)}
}
.ots-wait{color:var(--slate);font-size:13px}

/* --- 2026-09-08 b14: the mini banner that closes every article.
   Deliberately at the end and not in the header: these pages are written for
   people who arrived with a question of their own, and a banner above the
   answer would take the whole first screen on a phone. --- */
/* Quiet zone: the banner is set off from the text by air and by two thin
   rules, the same above and below. The padding used to be on the top only,
   and the next heading sat flush against the panel. */
.promo{margin:0 0 40px;padding:26px 0;border-top:1px solid var(--line);
  border-bottom:1px solid var(--line);max-width:var(--col)}
.promo+*,.promo+section>h2:first-child{margin-top:0}
.promo-in{padding:26px 28px;border-radius:var(--r-m,10px);background:var(--deep,#0C2740);
  color:#F7F4EA;overflow:hidden}
.promo-t{display:flex;flex-direction:column;gap:5px;margin-bottom:18px}
.promo-t b{font-family:'PT Serif',Georgia,serif;font-size:24px;line-height:1.2;font-weight:400}
.promo-t span{font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:var(--gold)}
.promo-acts{display:flex;flex-wrap:wrap;align-items:center;gap:10px}
.promo-acts .btn-p,.promo-acts .btn-s{margin:0}
.promo-acts .btn-s{border-color:rgba(247,244,234,.34);color:#F7F4EA}
.promo-acts .btn-s:hover{border-color:var(--gold);color:var(--gold)}
.promo-film{display:inline-flex;align-items:center;gap:9px;color:#F7F4EA;text-decoration:none;
  padding:9px 14px;border-radius:var(--r-s);border:1px solid rgba(247,244,234,.34);transition:border-color .15s,color .15s}
.promo-film:hover{border-color:var(--gold);color:var(--gold)}
.promo-film svg{width:20px;height:20px;flex:none;color:var(--gold)}
.promo-film .t{display:flex;flex-direction:column;line-height:1.25;font-size:15px;white-space:nowrap}
.promo-film .t b{font-size:12px;font-weight:400;color:rgba(247,244,234,.66);white-space:nowrap}
@media(max-width:560px){
  .promo{padding:20px 0;margin:32px 0}
  .promo-in{padding:22px 20px}
  .promo-t b{font-size:21px}
  .promo-acts{flex-direction:column;align-items:stretch}
  .promo-acts .btn-p,.promo-acts .btn-s,.promo-film{justify-content:center;width:100%}
}
/* The buttons of the opening block do not wrap: "White paper" broke onto
   two lines and the button grew twice as tall as the one beside it. */
.acts .btn-p,.acts .btn-s{white-space:nowrap}
/* The figure captions line up on one baseline: in the first block the span
   was block-level (the phase switch sits under it) while in the others it
   stayed inline, and its top edge landed 7 px lower. Shows on long captions. */
.facts span{display:block}

/* Entry calculator. The amount is the only typed field on the site outside
   the contact form, and it had no rules of its own: the browser drew it at
   its default size, next to a range slider carrying an identical label. It
   is the main control of the page and now looks like one. */
.calc-lbl{font-size:11.5px;letter-spacing:.06em;text-transform:uppercase;color:var(--slate);margin-bottom:6px}
.calc-amt{display:flex;align-items:center;background:var(--paper);border:1px solid var(--gold);border-radius:var(--r-s);padding:8px 12px}
.calc-amt:focus-within{box-shadow:0 0 0 3px rgba(201,162,39,.18)}
.calc-amt .cur{font-family:'IBM Plex Mono',monospace;font-size:22px;color:var(--slate);margin-right:6px;line-height:1}
.calc-amt input{flex:1;min-width:0;width:100%;border:0;background:transparent;padding:0;color:var(--ink);font-family:'IBM Plex Mono',monospace;font-size:30px;line-height:1.15}
.calc-amt input:focus{outline:0}
.calc-chips{display:flex;gap:6px;margin-top:8px;flex-wrap:wrap}
.calc-chips button{font-family:'IBM Plex Mono',monospace;font-size:12px;color:var(--ink);background:var(--panel-2);border:1px solid var(--line);border-radius:999px;padding:5px 11px;cursor:pointer}
.calc-chips button.on{border-color:var(--gold)}
/* The point slider is secondary once the amount has weight of its own. */
#cl-ptl{margin-top:18px}
.calc-rows{margin-top:18px}
.calc-rows .r{display:flex;justify-content:space-between;align-items:baseline;gap:10px;padding:8px 0;border-top:1px solid var(--line)}
.calc-rows .r .t{font-size:13px;color:var(--slate)}
.calc-rows .r.now .t{color:var(--ink)}
.calc-rows .r .p{font-family:'IBM Plex Mono',monospace;font-size:15px;color:var(--ink)}
.calc-rows .r.now .p{color:var(--gold)}
.calc-rows .r .k{font-family:'IBM Plex Mono',monospace;font-size:12px;color:var(--slate);margin-left:8px}
@media(max-width:420px){.calc-amt input{font-size:26px}.calc-rows .r .k{display:block;margin-left:0;text-align:right}}

/* Hero: link to the calculator. It sits on the chart because the calculator
   is that same chart on the reader's own numbers, and the text column of the
   banner already carries two buttons and the film link. Anchored to the right,
   so opening it grows leftwards over empty ground and moves nothing. */
.hero .hcalc{position:absolute;right:18px;bottom:14px;z-index:3;display:inline-flex;align-items:center;justify-content:center;gap:0;width:34px;height:34px;padding:0;box-sizing:border-box;border:1.4px solid var(--gold);border-radius:999px;background:rgba(12,39,64,.62);color:var(--gold);text-decoration:none;font-family:'IBM Plex Mono',monospace;font-size:11px;letter-spacing:.09em;text-transform:uppercase;white-space:nowrap;transition:width .2s ease,padding .2s ease,gap .2s ease,background .2s ease}
.hero .hcalc svg{position:static;width:17px;height:17px;flex:none;display:block}
.hero .hcalc span{max-width:0;opacity:0;overflow:hidden;transition:max-width .2s ease,opacity .16s ease}
/* The word appears on hover and on keyboard focus. Touch has neither, so on a
   phone the button stays a mark: the chart there is 170-200 px tall and an open
   pill lay across the lines. The accessible name is on the element itself. */
.hero .hcalc:hover,.hero .hcalc:focus-visible{width:auto;padding:0 14px 0 12px;gap:8px;background:rgba(201,162,39,.16)}
.hero .hcalc:hover span,.hero .hcalc:focus-visible span{max-width:220px;opacity:1}
.hero .hcalc:focus-visible{outline:2px solid var(--gold);outline-offset:3px}
/* The wiki button sits inside a paragraph of the article body, which sets
   hyphens:auto and overflow-wrap:anywhere for running text. A one-word label
   inherited both and broke across three hyphenated lines. */
.wiki-body .btn.wcalc{white-space:nowrap;hyphens:manual;-webkit-hyphens:manual;overflow-wrap:normal}
@media (prefers-reduced-motion:reduce){.hero .hcalc,.hero .hcalc span{transition:none}}
@media (max-width:520px){.hero .hcalc{right:12px;bottom:10px;width:32px;height:32px}.hero .hcalc svg{width:16px;height:16px}}

/* The currency popover opens downward into the manifesto plaque. Two things
   put them on top of each other. First, `.chip:hover` already sets opacity:1
   and filter:none, but the later `.chip.cand` block overrides both at equal
   specificity, so a hovered candidate chip stayed at opacity .7 — and opacity
   dims the whole subtree, so the popover could not be opaque and the plaque
   showed through it. Second, the popover carried no z-index of its own. */
.chip.cand:hover,.chip.cand:focus-within,.chip.cand.open,
.chip.off:hover,.chip.off:focus-within,.chip.off.open,
.chip.pre:hover,.chip.pre:focus-within,.chip.pre.open{opacity:1;filter:none}
.chip:focus-within{z-index:5}
.chip .pop{z-index:5}
/* On a narrow screen the chart is only the top strip of the banner and the
   text column runs below it, so the banner's own bottom-right corner is
   occupied by the figures row. A little more room under it keeps the button
   in the corner without covering anything. */
@media(max-width:920px){.hero .txt{padding-bottom:62px}}
/* Manifesto footer: the body runs in two columns, so links and the ratchet
   mark stacked under the left column and left the bottom right of the sheet
   empty. One row now spans the full width: links at the start, mark at the end. */
.mnf-foot{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-top:26px}
.mnf-foot .mnf-end{margin-top:0;margin-left:auto}
@media(max-width:560px){.mnf-foot{gap:10px}.mnf-foot .mnf-end{margin-left:0;flex-basis:100%}}



.nwt{display:inline-flex;align-items:center;justify-content:center;width:var(--s,36px);height:var(--s,36px);border-radius:calc(var(--s,36px)/4);background:var(--tint);color:var(--tone);flex:0 0 auto}
.nwt svg{width:calc(var(--s,36px)*.56);height:calc(var(--s,36px)*.56)}
.t-code{--tint:#E7ECF1;--tone:#12395C}
.t-site{--tint:#E6EEF5;--tone:#1E5A86}
.t-docs{--tint:#F3EDDC;--tone:#7A5E10}
.t-fix{--tint:#FBEFEE;--tone:#C0392B}
.t-marketing{--tint:#F7F0DC;--tone:#C9A227}
.t-community{--tint:#EAF3EE;--tone:#2E7D5B}
.t-general{--tint:#ECEFF2;--tone:#5E6E80}


.t-up{--tint:#E7F2EC;--tone:#1F6B4A}
.t-down{--tint:#FBEDEB;--tone:#B7372A}
.nwt .nwar{position:absolute;right:-1px;bottom:-1px;width:calc(var(--s,36px)*.42);height:calc(var(--s,36px)*.42)}
.nwt{position:relative}
.t-data{--tint:#E4F0EF;--tone:#17706E}
@media(prefers-color-scheme:dark){
.t-up{--tint:#16382A;--tone:#79C79C}
.t-down{--tint:#3A211E;--tone:#E4897C}
.t-code{--tint:#1B3A57;--tone:#9FB8CE}
.t-site{--tint:#17334B;--tone:#8FB4D2}
.t-docs{--tint:#3A3117;--tone:#D8C07A}
.t-fix{--tint:#3A2320;--tone:#E39187}
.t-marketing{--tint:#3A3218;--tone:#E0C466}
.t-community{--tint:#1B3A2C;--tone:#86C1A5}
.t-general{--tint:#28343F;--tone:#A7B6C4}
.t-data{--tint:#133A39;--tone:#83C3C0}}
.nwr{color:var(--tone);font-weight:500}


.nwhome{margin:0}
.nwhh{display:flex;align-items:baseline;justify-content:space-between;gap:16px;margin-bottom:14px}
.nwhh h2{margin:0;font-size:20px}
.nwhh h2 a{color:inherit;text-decoration:none;display:inline-flex;align-items:center;gap:7px}
.nwhh h2 a svg{width:16px;height:16px;color:var(--gold);transition:transform .16s}
.nwhh h2 a:hover svg{transform:translateX(3px)}
.nwcards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}
/* one row at every width: three side by side on a wide screen, a swipe row
   below 900 px — two in view, the third by a swipe — and one in view on a
   phone. A second row was the old two-column band wrapping its third card. */
@media(max-width:900px){.nwcards{display:flex;grid-template-columns:none;gap:12px;overflow-x:auto;scroll-snap-type:x mandatory;-webkit-overflow-scrolling:touch;scrollbar-width:none;padding-bottom:2px}.nwcards::-webkit-scrollbar{display:none}.nwcards .nwcd{flex:0 0 47%;scroll-snap-align:start}}


@media(max-width:640px){
.nwcards{display:flex;grid-template-columns:none;gap:12px;overflow-x:auto;scroll-snap-type:x mandatory;-webkit-overflow-scrolling:touch;scrollbar-width:none;padding-bottom:2px}
.nwcards::-webkit-scrollbar{display:none}
.nwcards .nwcd{flex:0 0 86%;scroll-snap-align:start}

.nwf:not(.open) .nwc:not(.on){display:none}
.nwf:not(.open) .nwc.on::after{content:"";width:0;height:0;border:4px solid transparent;border-top-color:currentColor;margin-left:3px;transform:translateY(2px)}
.nwf.open{gap:6px}
}
.nwcd{display:block;padding:14px 16px;border:1px solid var(--line);border-radius:var(--r);background:var(--panel);color:inherit;text-decoration:none;transition:border-color .16s,transform .16s}
.nwcd:hover{border-color:var(--line-2);transform:translateY(-1px)}
.nwcm{display:flex;align-items:center;gap:8px;margin:10px 0 6px;font-size:13px;color:var(--slate)}
.nwch{display:block;font-weight:500;line-height:1.35;margin-bottom:6px}
.nwcp{display:block;font-size:14px;color:var(--ink-2);line-height:1.5;overflow:hidden;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical}


.nwf{display:flex;flex-wrap:wrap;gap:8px;margin:18px 0 26px}


.nwf[hidden],.nwc[hidden],.nw[hidden],.nwlist h2[hidden]{display:none}
.nwc{display:inline-flex;align-items:center;gap:6px;padding:5px 13px;border:1px solid var(--line);border-radius:999px;background:transparent;color:var(--slate);font:inherit;font-size:14px;cursor:pointer}
.nwc small{font-size:12px;opacity:.75}
.nwc:hover{border-color:var(--line-2)}
.nwc.on{background:var(--ink);border-color:var(--ink);color:var(--paper)}
.nwlist h2.nwm{font-size:14px;font-weight:500;color:var(--slate);font-family:var(--mono,ui-monospace,monospace);margin:30px 0 12px;padding-bottom:6px;border-bottom:1px solid var(--line)}
.nwlist h2.nwm:first-child{margin-top:0}
.nw{position:relative;display:flex;gap:16px;padding:16px 34px 16px 0;border-bottom:1px solid var(--line)}.nw{scroll-margin-top:96px}.nw:target,.nw.tgt{box-shadow:inset 3px 0 0 var(--gold);background:linear-gradient(90deg,rgba(201,162,39,.10),rgba(201,162,39,0) 42%);padding-left:15px;margin-left:-15px;border-radius:3px}@media(prefers-reduced-motion:no-preference){.nw:target,.nw.tgt{animation:nwfound 1.6s ease-out 1}@keyframes nwfound{0%{background-color:rgba(201,162,39,.22)}100%{background-color:transparent}}}
.nw:last-child{border-bottom:0}
.nwb{min-width:0;flex:1}
.nwb h3{margin:0 0 4px;font-size:17px;line-height:1.3}
.nwb p{margin:0}
.nwmeta{display:flex;align-items:center;gap:8px;font-size:13px;color:var(--slate);margin-bottom:8px!important}
.nwln{margin-top:12px!important}
/* The way on from an entry (the customer, 28.09). The title is a link too and keeps its
   look: a tap on it now goes somewhere. The link at the end is a chip with an arrow — a
   plain line with a hairline underline read as one more line of text. An arrow pointing
   up and right says the link leaves the site. */
.nwb h3 a{color:inherit;text-decoration:none}
.nwb h3 a:hover,.nwb h3 a:focus-visible{text-decoration:underline;text-decoration-color:var(--gold);text-decoration-thickness:2px;text-underline-offset:4px}
.nwb h3 a:focus-visible{outline:2px solid var(--gold);outline-offset:2px;border-radius:2px}
.nwln a.rt,.nwmore a.rt{display:inline-block;max-width:100%;padding:10px 16px;border:1px solid rgba(201,162,39,.6);border-radius:22px;background:rgba(201,162,39,.15);color:var(--ink);font-size:15px;font-weight:600;line-height:1.3;text-wrap:balance;transition:background-color .14s,border-color .14s,color .14s}
/* The arrow is an inline run glued to the last word (a word joiner, then padding the
   mask is drawn on): a label that wraps takes its arrow to the second line with its last
   word, and the arrow is never left on a line of its own. */
.nwln a.rt::after,.nwmore a.rt::after{content:"\2060";padding-left:27px;background:currentColor;-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 12h15M13 6l6 6-6 6'/%3E%3C/svg%3E") right 3px center/16px 16px no-repeat;mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 12h15M13 6l6 6-6 6'/%3E%3C/svg%3E") right 3px center/16px 16px no-repeat;transition:-webkit-mask-position .14s,mask-position .14s}
.nwln a.rt[target="_blank"]::after{-webkit-mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M7 17L17 7M8 7h9v9'/%3E%3C/svg%3E");mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M7 17L17 7M8 7h9v9'/%3E%3C/svg%3E")}
.nwln a.rt:hover,.nwmore a.rt:hover,.nwln a.rt:focus-visible,.nwmore a.rt:focus-visible,.nwln a.rt:active,.nwmore a.rt:active{background:var(--gold);border-color:var(--gold);color:#0C2740}
.nwln a.rt:not([target]):hover::after,.nwmore a.rt:hover::after{-webkit-mask-position:right 0 center;mask-position:right 0 center}
.nwln a.rt:focus-visible,.nwmore a.rt:focus-visible{outline:2px solid var(--gold);outline-offset:2px}
@media(prefers-reduced-motion:reduce){.nwln a.rt,.nwmore a.rt,.nwln a.rt::after,.nwmore a.rt::after{transition:none}}
.nwa{position:absolute;right:0;top:18px;color:var(--line-2);text-decoration:none;font-size:15px}
.nwa:hover{color:var(--gold)}
.nwlog{margin-top:34px;padding-top:18px;border-top:1px solid var(--line);color:var(--ink-2)}
@media(max-width:640px){.nw{gap:12px;padding-right:24px}.nwb h3{font-size:16px}}


nav.mega .eb2{margin-top:14px;padding-top:12px;border-top:1px solid var(--line)}
nav.mega .it .nwt{margin-right:2px}

.fdates{display:flex;flex-direction:column;gap:3px;align-items:flex-start}
.fdates .bld{font-size:12px;color:var(--slate);text-decoration:none}
.fdates .bld:hover{color:var(--gold)}

.nwtab{margin:14px 0 4px;border-top:1px solid var(--line-2);border-bottom:1px solid var(--line-2)}
.nwtr{display:grid;grid-template-columns:1fr auto auto;gap:10px;align-items:baseline;padding:8px 0;border-bottom:1px solid var(--line)}
.nwtr:last-child{border-bottom:0}
.nwth{font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--slate);padding:6px 0}
.nwc1{font-size:13px;min-width:0}
.nwc2{font-size:13px;font-family:var(--mono,ui-monospace,monospace);text-align:right;white-space:nowrap}
.nwtr .nwc2:last-child{min-width:58px}
.up{color:var(--ok)}.down{color:var(--alert)}
.nwspark{margin:12px 0 2px;color:var(--tone,#17706E);background:var(--panel);border:1px solid var(--line);border-radius:var(--r-s);padding:2px}
.nwspark svg{display:block;width:100%;height:auto}
@media(max-width:640px){.nwtr{grid-template-columns:1fr auto auto;gap:8px}.nwc1,.nwc2{font-size:12px}}
.nwsig{margin-top:12px!important;font-size:12px;color:var(--slate)}

.nwhl{display:inline-flex;gap:3px;align-items:flex-end;height:12px;margin-left:2px;color:var(--tone,#5E6E80)}
.nwhl i{display:block;width:4px;border-radius:1px;background:currentColor;opacity:.22}
.nwhl i:nth-child(1){height:5px}.nwhl i:nth-child(2){height:8px}.nwhl i:nth-child(3){height:12px}
.nwhl.l2 i:nth-child(-n+2),.nwhl.l3 i{opacity:1}
.nwmeta .nwhl{color:var(--tone)}
.nwev{margin:10px 0 0;border:1px solid var(--line);border-radius:var(--r-s);background:var(--panel)}
.nwev summary{cursor:pointer;padding:10px 14px;font-weight:500;font-size:14px;line-height:1.35;list-style:none;display:flex;gap:10px;align-items:baseline}
.nwev summary::-webkit-details-marker{display:none}
.nwev summary::before{content:"";flex:0 0 auto;width:7px;height:7px;border-right:1.6px solid var(--gold);border-bottom:1.6px solid var(--gold);transform:rotate(-45deg) translateY(2px);transition:transform .16s}
.nwev[open] summary::before{transform:rotate(45deg) translateY(-1px)}
.nwev p{padding:0 14px 12px;margin:0!important;font-size:14px;color:var(--ink-2);line-height:1.55}
.nwmt{margin-top:14px!important;background:transparent;border-style:dashed}
.nwmt summary{color:var(--slate);font-weight:400}
.nwmt p{color:var(--slate);font-size:13px}
.nwanc{margin-top:14px!important;padding:12px 14px;border-left:3px solid var(--gold);background:var(--panel-2);color:var(--ink);font-size:14px;border-radius:0 var(--r-s) var(--r-s) 0}
.nwchart{margin:14px 0 4px;padding:6px 6px 2px;border:1px solid var(--line);border-radius:var(--r-s);background:var(--panel);color:var(--tone,#17706E)}
.nwchart svg{display:block;width:100%;height:auto}
.nwchart .band{fill:currentColor;opacity:.09}
.nwchart .grid{stroke:var(--line-2);stroke-width:.6;stroke-dasharray:3 4}
.nwchart .ax{font-size:11px;fill:var(--slate);font-family:var(--mono,ui-monospace,monospace)}
.nwchart .line{stroke:currentColor;stroke-width:2;stroke-linejoin:round;stroke-linecap:round}
.nwchart .dot{fill:currentColor}
.nwchart .val{font-size:12px;fill:var(--ink);font-family:var(--mono,ui-monospace,monospace);font-weight:500}
@media(max-width:900px){.nwchart{display:none}}

table.nwtab{width:100%;border-collapse:collapse;margin:14px 0 4px;font-size:13px}
table.nwtab th{font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--slate);font-weight:500;text-align:left;padding:6px 0;border-bottom:1px solid var(--line-2)}
table.nwtab td{padding:8px 0;border-bottom:1px solid var(--line);vertical-align:baseline}
table.nwtab tr:last-child td{border-bottom:1px solid var(--line-2)}
table.nwtab .num{text-align:right;font-family:var(--mono,ui-monospace,monospace);white-space:nowrap;padding-left:12px}
.nwmore{margin-top:12px!important}
.nwpage .nw{border-bottom:0;padding-right:0}
.nwpage .nwa{display:none}
.nwpage h1{font-size:28px;line-height:1.2;margin:0 0 6px}
.nwback{margin-top:28px}
.nw a.tl,.nwpage a.tl{color:inherit;text-decoration:none;border-bottom:1px dotted var(--gold)}
.nw a.tl:hover,.nwpage a.tl:hover{color:var(--gold)}


.nwchart .ax{font:400 12px 'IBM Plex Mono',monospace;fill:var(--slate)}
.nwchart .bl{font:400 13px 'Inter',sans-serif;fill:var(--ink-2)}
.nwchart .bv{font:400 13px 'IBM Plex Mono',monospace;fill:var(--ink)}
.nwchart .bv.sm{font-size:11.5px;fill:var(--slate)}
.nwchart .kl{font:400 12px 'Inter',sans-serif;fill:var(--slate)}
.nwchart .zero,.nwchart .ref{stroke:var(--line-2);stroke-width:1}
.nwchart .br.pos{fill:var(--ok)}
.nwchart .br.neg{fill:var(--alert)}
.nwchart .br.p0{fill:var(--ink)}
.nwchart .br.p1{fill:var(--gold)}
.c-parts .sg.s0{fill:var(--ink)}.c-parts .sg.s1{fill:var(--gold)}
.c-parts .sg.s2{fill:#6E93B5}.c-parts .sg.s3{fill:#B9A16B}.c-parts .sg.s4{fill:#8FA8BE}
.c-parts .sg.rest{fill:var(--line)}
.c-parts .sgl{font:500 12px 'IBM Plex Mono',monospace;fill:var(--paper)}
.c-dist .stem{stroke:var(--line-2);stroke-width:2}
.c-dist .pt-d{fill:var(--gold)}

.c-series .hit{fill:transparent}
.c-series .mk{fill:var(--gold);opacity:0}
.c-series .ptip{font:400 12px 'IBM Plex Mono',monospace;fill:var(--ink);opacity:0;
 paint-order:stroke;stroke:var(--paper);stroke-width:3px;stroke-linejoin:round}
.c-series .pt:hover .mk,.c-series .pt:hover .ptip{opacity:1}
.c-series .pt:hover{cursor:default}
@media(prefers-color-scheme:dark){
 .nwchart .br.pos{fill:#4EA47C}
 .nwchart .br.neg{fill:#D9705F}
 .c-parts .sg.s0{fill:#7FA8CC}.c-parts .sg.s2{fill:#5C7E9E}.c-parts .sg.s4{fill:#6A8399}
 .c-parts .sgl{fill:#0F2236}
 .nwchart .br.p0{fill:#7FA8CC}
}



.nwwide{--w-bg:#0C2740;--w-ink:#EDE7D6;--w-ink-2:#C6CEDA;--w-dim:#8496A9;
 --w-gold:#C9A227;--w-line:rgba(237,231,214,.18);--w-panel:rgba(237,231,214,.07);
 --w-pos:#5FB58C;--w-neg:#D9705F;--w-chip:#14283C;
 position:relative;background:var(--w-bg);color:var(--w-ink);border:0;border-radius:14px;
 padding:22px 24px 18px;display:block;overflow:hidden;box-shadow:0 10px 30px rgba(12,39,64,.18)}
@media(prefers-color-scheme:dark){
 .nwwide{--w-bg:#F2EEE2;--w-ink:#12395C;--w-ink-2:#3F5468;--w-dim:#6B7A8C;
  --w-gold:#9A7A1C;--w-line:rgba(18,57,92,.16);--w-panel:rgba(18,57,92,.05);
  --w-pos:#2E7D5B;--w-neg:#C0392B;--w-chip:#F7F4EA;
  box-shadow:0 10px 30px rgba(0,0,0,.35)}}
.nwwide::before{content:"";position:absolute;left:0;right:0;top:0;height:5px;
 background:repeating-linear-gradient(135deg,var(--w-gold) 0 12px,transparent 12px 22px)}
.nwwide .nwb{margin:0}
.nwwide h3{font-family:'PT Serif',Georgia,serif;color:var(--w-ink);font-size:29px;
 line-height:1.1;margin:6px 0 12px;letter-spacing:-.01em}
.nwwide .nwmeta{display:flex;gap:12px;align-items:center;margin:0 0 4px;font-size:13px;color:var(--w-dim)}
.nwwide .wchip{font:600 11px/1 'IBM Plex Mono','Inter',monospace;letter-spacing:.22em;
 text-transform:uppercase;background:var(--w-gold);color:var(--w-chip);padding:5px 9px;border-radius:3px}
.nwwide .wmark{position:absolute;right:22px;top:18px;width:68px;height:68px;color:var(--w-gold);opacity:.92}
.nwwide .wmark svg{width:100%;height:100%}
.nwwide .wlead{color:var(--w-ink-2);font-size:16.5px;line-height:1.6;margin:0 0 16px;max-width:68ch}
.nwwide .nwev{background:transparent;border:1px solid var(--w-line);border-radius:8px;margin:8px 0 0}
.nwwide .nwev summary{color:var(--w-ink);font-weight:500;font-size:14.5px}
.nwwide .nwev summary::before{border-color:var(--w-gold)}
.nwwide .nwev p{color:var(--w-ink-2);font-size:14px}
.nwwide .nwmt{border-style:dashed;margin-top:14px!important}
.nwwide .nwmt summary,.nwwide .nwmt p{color:var(--w-dim);font-weight:400}
.nwwide .nwanc{margin-top:16px!important;padding:14px 16px;border-left:3px solid var(--w-gold);
 background:var(--w-panel);color:var(--w-ink);font-size:14.5px;border-radius:0 8px 8px 0}
.nwwide .nwsig{margin-top:14px!important;font-size:12px;color:var(--w-dim)}

.nwwide .nwchart{background:var(--w-panel);border:0;border-radius:10px;padding:10px 8px;color:var(--w-gold)}
.nwwide .nwchart .bl{fill:var(--w-ink-2)}
.nwwide .nwchart .bv{fill:var(--w-ink)}
.nwwide .nwchart .kl,.nwwide .nwchart .ax{fill:var(--w-dim)}
.nwwide .nwchart .zero,.nwwide .nwchart .ref{stroke:var(--w-line)}
.nwwide .nwchart .br.pos{fill:var(--w-pos)}
.nwwide .nwchart .br.neg{fill:var(--w-neg)}


.nwcd{position:relative;padding:0;display:block}
.nwcd .nwcl{display:flex;flex-direction:column;gap:6px;height:100%;padding:14px 16px;color:inherit;text-decoration:none}
.nwcd .nwcm{margin-top:auto;padding-top:8px}
.nwcd.pin{border-color:var(--gold);box-shadow:inset 3px 0 0 var(--gold)}
.nwcd .nwpin{position:absolute;right:8px;top:8px;width:30px;height:30px;padding:6px;border:0;background:transparent;color:var(--gold);cursor:pointer;border-radius:50%}
.nwcd .nwpin:hover{background:var(--panel-2)}
.nwcd .nwpin svg{width:100%;height:100%}
.nwcd{transition:opacity .3s,transform .3s}
.nwcd.unpinning{opacity:0;transform:translateY(-10px) scale(.97)}
@media(prefers-reduced-motion:reduce){.nwcd{transition:none}}
.nwmenu{display:contents}

.nwhome{scroll-margin-top:88px}
html{scroll-behavior:smooth}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}

.nwstrip{display:flex;align-items:center;gap:12px;margin:18px 0 0;padding:10px 14px;border:1px solid var(--line);
 border-radius:999px;background:var(--panel);color:inherit;text-decoration:none;transition:border-color .16s}
.nwstrip.pin{border-color:var(--gold)}


.nwstrip .chv{flex:0 0 auto;width:16px;height:16px;color:var(--slate);transition:transform .16s,color .16s}
.nwstrip:hover,.nwstrip:focus-visible{background:var(--panel-2);border-color:var(--line-2)}
.nwstrip.pin:hover,.nwstrip.pin:focus-visible{border-color:var(--gold)}
.nwstrip:hover .chv,.nwstrip:focus-visible .chv{transform:translateY(3px);color:var(--gold)}
.nwstrip:hover b{color:var(--ink-deep)}
@media(prefers-reduced-motion:reduce){.nwstrip .chv{transition:color .16s}
 .nwstrip:hover .chv{transform:none}}
.nwstrip .lb{font:600 10.5px/1 'Inter',sans-serif;letter-spacing:.2em;text-transform:uppercase;color:var(--slate);flex:0 0 auto}
.nwstrip b{font-weight:500;color:var(--ink);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex:1 1 auto}
.nwstrip time{font:400 12.5px 'IBM Plex Mono',monospace;color:var(--slate);flex:0 0 auto}
@media(max-width:640px){.nwstrip .lb{display:none}.nwstrip time{display:none}}

.nwprev{margin:22px 0 0}
.nwprev a{display:flex;flex-direction:column;gap:2px;padding:12px 16px;border:1px solid var(--line);border-left:3px solid var(--gold);border-radius:0 var(--r-s) var(--r-s) 0;background:var(--panel);text-decoration:none}
.nwprev a:hover{border-color:var(--line-2);border-left-color:var(--gold)}
.nwprev .lb{font-size:12px;letter-spacing:.04em;color:var(--slate);text-transform:uppercase}
.nwprev b{color:var(--ink);font-weight:500}
.nwprev time{font-size:12.5px;color:var(--slate);font-family:'IBM Plex Mono',monospace}

.nwt.nwtx{display:inline-flex;align-items:center;justify-content:center;font-family:'IBM Plex Mono',monospace;font-weight:500;font-size:calc(var(--s) * .62);line-height:1}
.nwt.nwtk{font-size:calc(var(--s) * .34);letter-spacing:.02em}
nav.mega a.it.pin{box-shadow:inset 3px 0 0 var(--gold);padding-left:12px}
.nwt.t-article,.nwt.t-answer{background:var(--panel-2);color:var(--ink-2)}
.nwr.t-article,.nwr.t-answer{color:var(--ink-2)}

.nwlatest{margin:34px 0 8px;padding-top:18px;border-top:1px solid var(--line)}
.nwlatest .nwhh h2{font-size:18px;margin:0 0 12px}

/* testnet: addresses of an earlier deployment, folded under the note */
.tn-old{margin-top:14px}.tn-old>div{padding:2px 0 18px}
.tn-first p+p{margin-top:10px}


.socs{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px 6px;margin:4px 0 12px}
.fcols a.soc{display:flex;flex-direction:column;align-items:center;gap:7px;padding:2px 0;border:0;color:var(--slate);text-align:center;min-width:0;-webkit-tap-highlight-color:transparent}
.soc .si{display:grid;place-items:center;width:44px;height:44px;border-radius:50%;border:1px solid var(--line-2);background:var(--panel);color:var(--ink);transition:background .18s,color .18s,border-color .18s,transform .18s,box-shadow .18s}
.soc .si svg{width:20px;height:20px;display:block}
.soc .sl{font-size:12.5px;line-height:1.25;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.fcols a.soc:hover{color:var(--ink);border-bottom-color:transparent}
.fcols a.soc:hover .si,.fcols a.soc:focus-visible .si{background:var(--ink);border-color:var(--ink);color:var(--gold-soft);transform:translateY(-2px);box-shadow:var(--shadow-s)}
.fcols a.soc:active .si{transform:scale(.94)}
.fcols a.soc:focus-visible{outline:none}
.fcols a.soc:focus-visible .si{outline:2px solid var(--gold);outline-offset:3px}
@media(prefers-reduced-motion:reduce){.soc .si{transition:none}.fcols a.soc:hover .si,.fcols a.soc:focus-visible .si,.fcols a.soc:active .si{transform:none}}


.fowl{--mute:#5A6A7C}
.fowl .owl{display:block;width:auto;opacity:.92}
.fowl-col{display:flex;justify-content:center;align-items:flex-end;gap:26px;margin-top:20px}
.fowl-col .owl,.fowl-col .ebm{height:80px}


.fsign{display:block;line-height:0;border-radius:10px;transition:transform .18s ease}
.fsign:hover,.fsign:focus-visible{transform:translateY(-3px)}
.fsign:focus-visible{outline:2px solid var(--gold);outline-offset:5px}
.fowl .ebm{display:block;width:auto;--ebb:#12395C;--ebw:#0D2840;--ebl:#94A6B6}
@media(prefers-color-scheme:dark){.fowl .ebm{--ebb:#AFC4D8;--ebw:#7F9CB8;--ebl:#E1E9F1}}
.ebm .eye{transform-box:fill-box;transform-origin:center}
.ebm.blink .eye{animation:owl-blink .17s ease-in-out}
.ebm.blink2 .eye{animation:owl-blink2 .66s ease-in-out}
@media(prefers-reduced-motion:reduce){.fsign{transition:none}.fsign:hover,.fsign:focus-visible{transform:none}.ebm.blink .eye,.ebm.blink2 .eye{animation:none}}
@keyframes owl-blink{0%,100%{transform:scaleY(1)}42%,58%{transform:scaleY(.08)}}
@keyframes owl-blink2{0%,100%{transform:scaleY(1)}11%,19%{transform:scaleY(.08)}34%{transform:scaleY(1)}49%,57%{transform:scaleY(.08)}72%{transform:scaleY(1)}}
.owl .eye{transform:scaleY(1)}
.owl.blink .eye{animation:owl-blink .17s ease-in-out}
.owl.blink2 .eye{animation:owl-blink2 .66s ease-in-out}
@media(prefers-reduced-motion:reduce){.owl.blink .eye,.owl.blink2 .eye{animation:none}}
@media(max-width:720px){
  .fowl-col{display:none}
  .fbottom.has-owl{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));column-gap:6px;row-gap:14px}
  .fbottom.has-owl>*{grid-column:1/-1}
  .fbottom.has-owl>.fdates{grid-column:1/-1}
  

  .fbottom.has-owl{margin-bottom:64px}
}


.fowl-strip{display:none}
@media(max-width:720px){
  .fowl-strip{display:block;margin:26px 0 0;line-height:0}
  .fowl-strip svg{display:block;width:100%;height:auto;max-height:80px}
  .fbottom.has-owl{border-top:0;padding-top:10px;margin-top:0}
}


.tour{margin-top:8px}
.player.tour-tall{display:none;aspect-ratio:9/16;max-width:380px;margin:0 auto}
.tour-tall-l{display:none}
.tour-subs{font-size:14px;color:var(--slate)}
@media(max-width:720px){.player.tour-wide{display:none}.player.tour-tall{display:block}.tour-wide-l{display:none}.tour-tall-l{display:inline-flex}}


.nwshow{display:flex;justify-content:center;margin:26px 0 8px}
.nwshow[hidden]{display:none}



html:has(.eb),body:has(.eb){overflow-x:clip}
body:has(.eb) header{position:relative}
.eb-hero{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(0,1fr);gap:28px;align-items:center;margin:0 0 26px}
.eb-eyebrow{font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:var(--slate);margin:0 0 10px}
.eb-hero h1{margin-bottom:12px}
.eb-hero .lede{margin-bottom:10px}
.eb-equal{color:var(--ink-2);font-size:16.5px;max-width:58ch;margin:0}
.eb-cta{display:flex;flex-wrap:wrap;gap:10px;margin-top:22px}
.eb-cta a svg{width:18px;height:18px;flex:0 0 auto}
.eb-hero-v{position:relative;justify-self:center;width:270px;height:262px}
.eb-mark{display:block;width:210px;height:210px;margin:26px auto 0;filter:drop-shadow(0 14px 26px rgba(18,57,92,.20))}
.eb-fly{position:absolute;display:block;line-height:0}
.eb-fly .eb-bird-in{display:block;filter:drop-shadow(0 4px 8px rgba(18,57,92,.14))}
.eb-fly0{left:0;top:30px}.eb-fly1{right:4px;top:8px}.eb-fly2{right:-6px;top:168px}.eb-fly3{left:-8px;top:190px}.eb-fly4{left:124px;top:-4px}
@media(prefers-reduced-motion:no-preference){.eb-fly{animation:ebfly 6s ease-in-out infinite}.eb-fly1{animation-delay:-1.5s}.eb-fly2{animation-delay:-3s}.eb-fly3{animation-delay:-4.2s}.eb-fly4{animation-delay:-2.2s}
@keyframes ebfly{0%,100%{transform:translateY(0)}50%{transform:translateY(-6px)}}}
.eb-facts{list-style:none;margin:0 0 34px;padding:0;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));border:1px solid var(--line);border-radius:var(--r);background:var(--panel)}
.eb-facts li{padding:15px 18px;border-left:1px solid var(--line)}
.eb-facts li:first-child{border-left:0}
.eb-facts b{display:block;font-family:'PT Serif',Georgia,serif;font-weight:400;font-size:25px;line-height:1.15;color:var(--ink)}
.eb-facts span{display:block;font-size:13.5px;color:var(--slate);line-height:1.35;margin-top:4px}
.eb-grid{display:grid;grid-template-columns:212px minmax(0,1fr);gap:40px;align-items:start}
.eb-toc{position:sticky;top:24px;max-height:calc(100vh - 48px);overflow:auto;font-size:14px;padding:2px 4px 8px 0;scrollbar-width:thin}
.eb-toc b,.eb-panel b{display:block;font-size:11.5px;letter-spacing:.1em;text-transform:uppercase;color:var(--slate);margin:0 0 10px;font-weight:600}
.eb-toc ol,.eb-panel ol{list-style:none;margin:0;padding:0}
.eb-toc a,.eb-panel a{display:flex;gap:10px;padding:6px 8px 6px 10px;border-left:2px solid var(--line);color:var(--ink-2);line-height:1.35}
.eb-toc a .n,.eb-panel a .n{font-family:'IBM Plex Mono',ui-monospace,monospace;font-size:12px;color:var(--slate);padding-top:1px;flex:0 0 auto}
.eb-toc a:hover,.eb-panel a:hover{color:var(--ink);border-left-color:var(--line-2)}
.eb-toc a.on,.eb-panel a.on{color:var(--ink);border-left-color:var(--gold);background:linear-gradient(90deg,rgba(201,162,39,.13),rgba(201,162,39,0))}
.eb-toc a.on .n,.eb-panel a.on .n{color:var(--gold)}
.eb-main{min-width:0}
.eb-main p{max-width:none}
.eb-s{scroll-margin-top:24px;margin:0 0 56px}
.eb-s:last-of-type{margin-bottom:28px}
.eb-s h2 a{color:inherit}
.eb-n{font-family:'IBM Plex Mono',ui-monospace,monospace;font-size:14px;color:var(--gold);letter-spacing:.04em}
.eb-h3{scroll-margin-top:24px;margin:30px 0 10px}
.eb-ul,.eb-ol{margin:0 0 16px 1.25em;padding:0}
.eb-ul li,.eb-ol li{margin:0 0 8px;padding-left:4px}
.eb-ul li::marker{color:var(--gold)}
.eb-ol li::marker{color:var(--gold);font-weight:600}
.eb-main code{background:var(--panel-2);border-radius:4px;padding:1px 5px;font-size:.88em;word-break:break-word}
.eb-call{max-width:none}
.eb-tw{margin:6px 0 20px}
.eb-t{width:100%;border-collapse:collapse;font-size:15px;table-layout:fixed}
.eb-t th{text-align:left;font-weight:600;font-size:11.5px;letter-spacing:.07em;text-transform:uppercase;color:var(--slate);padding:9px 12px;border-bottom:2px solid var(--line-2);vertical-align:bottom}
.eb-t td{padding:11px 12px;border-bottom:1px solid var(--line);vertical-align:top;line-height:1.45}
.eb-t tbody tr:nth-child(even) td{background:rgba(241,237,225,.5)}
.eb-t td:first-child{font-weight:600;color:var(--ink)}
.eb-t td.eb-num{font-family:'IBM Plex Mono',ui-monospace,monospace;font-size:14px}
.eb-step{display:inline-flex;align-items:center;gap:10px;white-space:nowrap}
.eb-sk{display:inline-flex;gap:2px;color:var(--alert)}
.eb-skull{width:17px;height:17px;display:block}
.eb-fig{margin:16px 0 26px;padding:18px 18px 14px;border:1px solid var(--line);border-radius:var(--r);background:var(--panel)}
.eb-fig figcaption{font-size:13.5px;color:var(--slate);margin-top:10px;line-height:1.45}
.eb-fig svg text{font-family:'Inter',system-ui,sans-serif}
.eb-line > svg{display:block;width:100%;height:auto}
.eb-zone{fill:rgba(201,162,39,.12);stroke:rgba(201,162,39,.4)}
.eb-d1{fill:var(--ink)}.eb-d2{fill:var(--line-2)}
.eb-gold{stroke:var(--gold)}
.eb-lbl{font-size:12px;font-weight:600;fill:var(--slate)}
.eb-lblg{fill:#A8841A}.eb-lblb{fill:var(--ink)}.eb-small{font-size:11.5px;font-weight:400;fill:var(--ink-2)}
.eb-arrow{stroke:var(--ink-2);stroke-width:1.6;fill:none}.eb-ahead{fill:var(--ink-2)}
.eb-tl ol{list-style:none;margin:4px 0 0;padding:0;display:grid;grid-template-columns:repeat(7,minmax(0,1fr));position:relative}
.eb-tl ol::before{content:"";position:absolute;left:7%;right:7%;top:9px;height:2px;background:var(--line-2)}
.eb-tl-i{position:relative;text-align:center;padding:0 3px}
.eb-tl-dot{display:block;width:16px;height:16px;border-radius:50%;background:var(--panel);border:3px solid var(--ink);margin:1px auto 10px;position:relative;z-index:1}
.eb-tl-i b{display:block;font-family:'IBM Plex Mono',ui-monospace,monospace;font-size:12.5px;color:var(--ink);font-weight:400;line-height:1.3}
.eb-tl-i > span:last-child{display:block;font-size:13px;color:var(--ink-2);line-height:1.3;margin-top:3px}
.eb-tl-span .eb-tl-dot{background:var(--gold);border-color:var(--gold);width:44px;border-radius:8px}
.eb-tl-plan .eb-tl-dot{border-style:dashed;border-color:var(--slate)}
.eb-tl-plan b,.eb-tl-plan > span:last-child{color:var(--slate)}
.eb-flock{display:grid;grid-template-columns:210px minmax(0,1fr);gap:20px;align-items:center}
.eb-flock-svg{display:block;width:100%;height:auto}
.eb-thread{stroke:var(--line-2);stroke-width:1.3;stroke-dasharray:3 3}
.eb-flock-t p{margin:0 0 12px;display:flex;flex-direction:column;gap:2px}
.eb-flock-t b{font-weight:600;color:var(--ink);font-size:16px}
.eb-flock-t span{color:var(--slate);font-size:14px}
.eb-flock figcaption{grid-column:1/-1;margin-top:0}
.eb-pr-h{display:flex;gap:12px;align-items:baseline;flex-wrap:wrap;margin:0 0 12px;font-size:13.5px;color:var(--slate)}
.eb-pr-h b{font-family:'PT Serif',Georgia,serif;font-weight:400;font-size:24px;color:var(--ink)}
.eb-pr{display:grid;grid-template-columns:92px minmax(0,1fr) 92px;gap:12px;align-items:center;margin:9px 0}
.eb-pr-l{font-size:14px;font-weight:600;color:var(--ink)}
.eb-pr-bar{display:block;height:18px;background:var(--panel-2);border-radius:6px;overflow:hidden}
.eb-pr-bar i{display:block;height:100%;width:var(--w);background:linear-gradient(90deg,var(--gold),#E4C45C);border-radius:6px}
.eb-pr-many{display:flex;gap:3px}
.eb-pr-many i{display:block;flex:1 1 0;min-width:4px;height:18px;background:var(--gold-soft);border-radius:3px}
.eb-pr b{font-family:'IBM Plex Mono',ui-monospace,monospace;font-size:14px;font-weight:400;text-align:right;white-space:nowrap}
.eb-admins ul{list-style:none;display:flex;flex-wrap:wrap;gap:14px 24px;margin:0;padding:0;justify-content:center}
.eb-admins li{display:flex;flex-direction:column;align-items:center;gap:6px;font-size:13px;font-weight:600}
.eb-admins .eb-bird-in{display:block}
.eb-task{border:1px solid var(--line);border-radius:var(--r);background:var(--panel);padding:18px 20px 6px;margin:18px 0;scroll-margin-top:24px}
.eb-task:target{box-shadow:0 0 0 2px var(--gold)}
.eb-task-h{display:flex;align-items:baseline;justify-content:space-between;gap:10px 14px;flex-wrap:wrap;margin-bottom:10px}
.eb-task-h h3{margin:0;font-size:19px}
.eb-task-h h3 a{color:inherit}
.eb-range{font-family:'IBM Plex Mono',ui-monospace,monospace;font-size:13.5px;background:var(--ink);color:var(--paper);padding:3px 11px;border-radius:999px;white-space:nowrap}
.eb-range small{opacity:.75;font-size:11.5px}
.eb-lv{margin:6px 0 14px;border-top:1px solid var(--line)}
.eb-lv-r{display:grid;grid-template-columns:54px minmax(0,1fr);gap:12px;padding:10px 0;border-bottom:1px solid var(--line)}
.eb-lv-s{font-family:'PT Serif',Georgia,serif;font-size:25px;line-height:1;color:#A8841A;text-align:center;padding-top:1px}
.eb-lv-r p{margin:0;font-size:15.5px}
.eb-no{margin:4px 0 14px;padding:12px 14px;background:var(--alert-bg);border-radius:var(--r-s)}
.eb-no b{display:block;font-size:11.5px;letter-spacing:.08em;text-transform:uppercase;color:var(--alert);margin-bottom:6px}
.eb-no ul{list-style:none;margin:0;padding:0}
.eb-no li{display:flex;gap:8px;align-items:flex-start;margin:4px 0;font-size:15px;color:var(--ink-2)}
.eb-x{width:16px;height:16px;flex:0 0 auto;color:var(--alert);margin-top:4px}
.eb-route{list-style:none;margin:12px 0 18px;padding:0}
.eb-route li{display:grid;grid-template-columns:34px minmax(0,1fr);gap:12px;align-items:start;padding:5px 0;position:relative}
.eb-route li:not(:last-child)::after{content:"";position:absolute;left:16px;top:40px;bottom:-5px;width:2px;background:var(--line-2)}
.eb-route-n{width:34px;height:34px;border-radius:50%;background:var(--ink);color:var(--paper);display:grid;place-items:center;font-weight:600;font-size:15px}
.eb-route li > span:last-child{padding-top:5px}
.eb-reasons{list-style:none;margin:6px 0 18px;padding:0;display:grid;grid-template-columns:1fr 1fr;gap:8px 12px}
.eb-reasons li{display:flex;gap:8px;align-items:flex-start;padding:9px 11px;border:1px solid var(--line);border-radius:8px;background:var(--panel);font-size:15px;line-height:1.4}
.eb-reasons li.eb-final{border-color:#E7B9B4;background:var(--alert-bg)}
.eb-badge{font-style:normal;font-size:10.5px;font-weight:600;text-transform:uppercase;letter-spacing:.08em;background:var(--alert);color:#fff;border-radius:999px;padding:1px 7px;margin-left:4px;white-space:nowrap;vertical-align:1px}
.eb-roles{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin:6px 0 18px}
.eb-role{border:1px solid var(--line);border-radius:var(--r);background:var(--panel);padding:16px 18px}
.eb-role-h{display:flex;align-items:center;gap:12px;margin-bottom:8px}
.eb-role h3{margin:0}
.eb-role p{font-size:15px;margin:0;color:var(--ink-2);line-height:1.5}
.eb-ver{font-size:13.5px;color:var(--slate);border-top:1px solid var(--line);padding-top:14px;margin:0}

.eb-more{display:inline-flex;vertical-align:middle;margin:0 2px 0 6px}
.eb-morebtn.tipbtn{width:auto;height:auto;border-radius:999px;border:0;padding:3px 10px 3px 8px;gap:5px;font-family:'Inter',system-ui,sans-serif;font-size:12.5px;font-weight:700;letter-spacing:.02em;line-height:1.25;color:#0C2740;background:linear-gradient(135deg,#F6CF5E,#E0A21B);box-shadow:0 2px 8px rgba(224,162,27,.45);white-space:nowrap}
.eb-morebtn.tipbtn:hover,.eb-morebtn.tipbtn[aria-expanded="true"]{background:linear-gradient(135deg,#FFDA70,#E9AB20);border:0}
.eb-morebtn svg{width:13px;height:13px;flex:0 0 auto}
.eb-more .tip{font-family:'Inter',system-ui,sans-serif;font-size:14px;font-weight:400;line-height:1.5;color:var(--ink-2);text-transform:none;letter-spacing:0;white-space:normal;text-align:left}
.eb-more .tip strong{color:var(--ink)}
@media(hover:hover){.eb-more:hover .tip{display:block;opacity:1;visibility:visible;transform:none}}
@media(prefers-reduced-motion:no-preference){.eb-morebtn.tipbtn{animation:ebglow 2.8s ease-in-out infinite}
@keyframes ebglow{0%,100%{box-shadow:0 2px 8px rgba(224,162,27,.40)}50%{box-shadow:0 2px 16px rgba(224,162,27,.85)}}}
.eb-facts li{position:relative}
.eb-facts b{display:inline-block;vertical-align:middle}
.eb-facts .eb-more{margin-left:8px}
.eb-pr-h .eb-more{margin:0}
.eb-bar{display:none}
@media(max-width:1023px){
.eb-grid{grid-template-columns:1fr;gap:0}
.eb-toc{position:static;max-height:none;overflow:visible;border:1px solid var(--line);border-radius:var(--r);background:var(--panel);padding:14px 14px 10px;margin:0 0 32px}
.eb-toc ol{columns:2;column-gap:18px}
.eb-toc li{break-inside:avoid}
.eb-bar{display:block;position:fixed;left:0;right:0;top:0;z-index:19;transform:translateY(-120%);visibility:hidden;transition:transform .2s ease,visibility .2s;background:rgba(247,244,234,.97);backdrop-filter:blur(8px);border-bottom:1px solid var(--line);box-shadow:0 6px 16px rgba(18,57,92,.08)}
.eb-bar.show{transform:none;visibility:visible}
.eb-bar button{width:100%;display:flex;align-items:center;gap:10px;padding:10px 20px;background:none;border:0;font:inherit;color:var(--ink);cursor:pointer;text-align:left}
.eb-bar-l{font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:var(--slate);flex:0 0 auto}
.eb-cur{flex:1 1 auto;font-weight:600;font-size:15px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.eb-chev{width:18px;height:18px;flex:0 0 auto;transition:transform .2s}
.eb-bar.open .eb-chev{transform:rotate(180deg)}
.eb-panel{display:none;max-height:calc(100vh - 70px);overflow:auto;padding:4px 16px 14px;border-top:1px solid var(--line)}
.eb-panel b{display:none}
.eb-bar.open .eb-panel{display:block}
.eb-s,.eb-h3,.eb-task{scroll-margin-top:64px}
.eb-hero{grid-template-columns:1fr;gap:6px}
.eb-hero-v{order:-1;width:236px;height:200px}
.eb-mark{width:160px;height:160px;margin-top:20px}
.eb-fly0{left:6px;top:24px}.eb-fly1{right:6px;top:8px}.eb-fly2{right:0;top:134px}.eb-fly3{left:0;top:144px}.eb-fly4{left:104px;top:-6px}
.eb-facts{grid-template-columns:1fr 1fr}
.eb-facts li:nth-child(3){border-left:0}
.eb-facts li:nth-child(n+3){border-top:1px solid var(--line)}
}
@media(max-width:720px){
.eb-toc ol{columns:1}
.eb-facts b{font-size:22px}
.eb-facts li{padding:13px 14px}
.eb-t,.eb-t tbody,.eb-t tr,.eb-t td{display:block;width:auto}
.eb-t colgroup,.eb-t thead{display:none}
.eb-t tr{border:1px solid var(--line);border-radius:10px;padding:8px 12px;margin-bottom:10px;background:var(--panel)}
.eb-t tbody tr:nth-child(even) td{background:none}
.eb-t td{display:grid;grid-template-columns:minmax(78px,32%) minmax(0,1fr);gap:10px;align-items:baseline;border:0;padding:4px 0;font-size:15px}
.eb-t td::before{content:attr(data-l);font-size:10.5px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--slate)}
.eb-t td:first-child{display:block;font-size:16px;padding:2px 0 6px}
.eb-t td:first-child::before{display:none}
.eb-tl ol{grid-template-columns:1fr;gap:0}
.eb-tl ol::before{left:9px;right:auto;top:10px;bottom:10px;width:2px;height:auto}
.eb-tl-i{display:grid;grid-template-columns:20px 118px minmax(0,1fr);gap:10px;text-align:left;align-items:baseline;padding:6px 0}
.eb-tl-dot{margin:0;align-self:center}
.eb-tl-span .eb-tl-dot{width:16px;height:30px}
.eb-tl-i > span:last-child{margin-top:0}
.eb-flock{grid-template-columns:1fr}
.eb-flock-svg{max-width:230px;margin:0 auto}
.eb-pr{grid-template-columns:70px minmax(0,1fr) 78px;gap:8px}
.eb-prizes-wide .eb-pr{grid-template-columns:62px minmax(0,1fr) 104px}
.eb-pr-many{gap:2px}
.eb-reasons{grid-template-columns:1fr}
.eb-roles{grid-template-columns:1fr}
.eb-task{padding:16px 14px 4px}
.eb-range{white-space:normal;border-radius:14px}
.eb-lv-r{grid-template-columns:42px minmax(0,1fr);gap:10px}
.eb-lv-s{font-size:22px}
}
@media(prefers-color-scheme:dark){
.eb-bar{background:rgba(15,39,64,.97)}
.eb-t tbody tr:nth-child(even) td{background:rgba(26,58,92,.35)}
.eb-lblg,.eb-lv-s{fill:var(--gold);color:var(--gold)}
.eb-no{background:#3A2226}.eb-no li{color:#E8CFCB}
.eb-reasons li.eb-final{border-color:#7A3A34;background:#3A2226}
.eb-main code{background:var(--panel-2)}
.eb-mark{filter:drop-shadow(0 14px 26px rgba(0,0,0,.35))}
}
