/* Ledger of Evals — ledger paper, serif ink, one green for the check, red ink for what's struck. */
:root{
  --paper:#FAFAF7; --sheet:#FFFFFF; --sunk:#F2F2EE;
  --rule:#E7ECEF; --margin:#CFDCE3;
  --ink:#141414; --ink-2:#3B3B3B; --muted:#6D7175; --faint:#A2A5A8;
  --line:#E7E6E0; --line-2:#D6D5CE;
  --green:#1D7A4C; --green-bg:#E8F2EB; --red:#B2382C; --red-bg:#F7E8E5;
  --serif:"Source Serif 4","Source Serif Pro",Georgia,serif; --sans:"IBM Plex Sans",ui-sans-serif,system-ui,sans-serif; --mono:"IBM Plex Mono",ui-monospace,Menlo,monospace;
  --w:1200px; --gut:max(20px,4vw); --lh:32px;
}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth;background:var(--paper)}
body{margin:0;background:var(--paper);color:var(--ink);font:400 15px/1.6 var(--sans);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}
a{color:inherit;text-decoration:none}
button,input,select,textarea{font:inherit;color:inherit}
::selection{background:#D9EBDF}
em{font-style:italic;color:var(--muted)}
.mono{font-family:var(--mono);font-size:.88em}
.tnum{font-variant-numeric:tabular-nums}
.muted{color:var(--muted)}
main{min-height:70vh;outline:none}

/* ruled paper */
.ruled{position:relative;background-color:var(--paper);background-image:linear-gradient(var(--rule) 1px,transparent 1px);background-size:100% var(--lh);background-position:0 23px}
.ruled::before{content:"";position:absolute;top:0;bottom:0;left:max(12px,calc(50% - var(--w)/2 - 28px));width:1px;background:var(--margin);pointer-events:none}

/* top */
.demo-bar{background:var(--ink);color:#BEBEB8;text-align:center;font:400 10.5px/1 var(--mono);letter-spacing:.12em;padding:8px 12px;text-transform:uppercase}
.top{position:sticky;top:0;z-index:40;background:rgba(250,250,247,.9);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border-bottom:1px solid var(--line)}
.top-in{max-width:var(--w);margin:0 auto;padding:0 var(--gut);height:64px;display:flex;align-items:center;gap:36px}
.brand{display:flex;align-items:center;gap:11px;color:var(--ink)}
.mark{width:31px;height:22px;overflow:visible}
.mark path{fill:none;stroke-linecap:round;stroke-linejoin:round;stroke-width:26}
.mark .l{stroke:#0E1116}
.mark .c{stroke:#157A57}
.brand-name{font:600 22px/1 var(--serif);letter-spacing:-.02em;white-space:nowrap}
.brand-name i,.wordmark i{font-weight:400;color:#6B7178;letter-spacing:-.03em;margin:0 .02em}
.brand-tick{font:400 11px/1 var(--mono);color:var(--muted);border:1px solid var(--line-2);padding:3px 5px;border-radius:2px}
.nav{display:flex;gap:4px}
.nav a{padding:6px 10px;color:var(--ink-2);font-size:14px;position:relative}
.nav a:hover{color:var(--ink)}
.nav a.on{color:var(--ink)}
.nav a.on::after{content:"";position:absolute;left:10px;right:10px;bottom:-1px;height:1.5px;background:var(--green)}
.top-right{margin-left:auto;display:flex;align-items:center;gap:18px}
.slot{display:flex;align-items:center;gap:8px;font:400 12px/1 var(--mono);color:var(--muted);white-space:nowrap}
.slot i{width:6px;height:6px;border-radius:50%;background:var(--green);animation:pulse 2.4s ease-in-out infinite}
@keyframes pulse{50%{opacity:.25}}

/* buttons */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:9px;height:44px;padding:0 20px;border:1px solid var(--ink);border-radius:2px;font:500 14px/1 var(--sans);cursor:pointer;transition:background .15s,color .15s,border-color .15s,transform .15s;white-space:nowrap;background:transparent;color:var(--ink)}
.btn:hover{background:var(--ink);color:var(--paper)}
.btn-ink,.btn-seal{background:var(--ink);color:var(--paper)}
.btn-ink:hover,.btn-seal:hover{background:#2B2B2B}
.btn-line{background:var(--sheet);border-color:var(--line-2)}
.btn-line:hover{border-color:var(--ink);background:var(--sheet);color:var(--ink)}
.btn-sm{height:34px;padding:0 13px;font-size:13px}
.btn-xs{height:27px;padding:0 10px;font-size:11.5px;font-family:var(--mono)}
.btn[disabled]{opacity:.4;cursor:not-allowed}
.btn svg{width:15px;height:15px}

/* verdict marks */
.pill{display:inline-flex;align-items:center;gap:6px;height:22px;padding:0 8px;border:1px solid currentColor;border-radius:2px;font:500 10.5px/1 var(--mono);letter-spacing:.07em;text-transform:uppercase;white-space:nowrap}
.v-clear{color:var(--green);background:var(--green-bg);border-color:transparent}
.v-clear::before{content:"✓";font-size:11px}
.v-elevated{color:var(--ink)}
.v-critical{color:#fff;background:var(--red);border-color:var(--red)}
.v-none{color:var(--faint);border-style:dashed}
.tag{display:inline-flex;align-items:center;height:22px;padding:0 8px;font:400 12px/1 var(--sans);color:var(--ink-2);background:var(--sunk);border-radius:2px;white-space:nowrap}
.tag-ind,.tag-gov{color:var(--ink);background:#EEF1F2}
.tag-self{color:var(--muted);background:transparent;border:1px dashed var(--line-2)}
.tag-amend{color:var(--red);background:transparent;border:1px solid var(--red);font-family:var(--mono);font-size:10px;text-transform:uppercase;letter-spacing:.06em}
.ok,.bad{display:inline-grid;place-items:center;width:17px;height:17px;flex:none;border-radius:50%;color:#fff;background:var(--green)}
.ok svg,.bad svg{width:10px;height:10px}
.bad{background:var(--red)}

/* hero */
.hero{border-bottom:1px solid var(--line);overflow:hidden}
.hero-in{position:relative;max-width:var(--w);margin:0 auto;padding:72px var(--gut) 64px;display:grid;grid-template-columns:1fr 1.05fr;gap:24px;align-items:center;min-height:620px}
.eyebrow{display:inline-block;font:400 11px/1 var(--mono);letter-spacing:.14em;text-transform:uppercase;color:var(--muted)}
.eyebrow b{color:var(--green);font-weight:500}
h1.display{font:600 clamp(46px,5.6vw,80px)/1 var(--serif);letter-spacing:-.03em;margin:26px 0 26px}
h1.display i{font-weight:400;font-style:italic;color:#6B7178}
.lede{font-size:17.5px;line-height:1.65;color:var(--ink-2);max-width:31em;margin:0 0 34px}
.cta{display:flex;gap:10px;flex-wrap:wrap}
.hero-note{margin-top:34px;display:flex;gap:22px;flex-wrap:wrap;font:400 11px/1.4 var(--mono);letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}
.hero-note span{display:flex;gap:8px;align-items:center}
.hero-note span::before{content:"✓";color:var(--green);font-size:12px}
.rise{opacity:0;transform:translateY(14px);animation:rise .9s cubic-bezier(.2,.7,.2,1) forwards}
.rise.d1{animation-delay:.08s}.rise.d2{animation-delay:.18s}.rise.d3{animation-delay:.28s}.rise.d4{animation-delay:.38s}.rise.d5{animation-delay:.5s}
@keyframes rise{to{opacity:1;transform:none}}
@keyframes float{50%{top:47%}}

/* 3D ledger stack */
.stage{position:relative;height:540px;perspective:1700px;perspective-origin:50% 30%}
.stack{position:absolute;left:50%;top:50%;animation:float 8s ease-in-out infinite;transform-style:preserve-3d;transform:rotateX(calc(57deg + var(--ry,0deg))) rotateZ(calc(-36deg + var(--rx,0deg)));transition:transform .6s cubic-bezier(.2,.7,.2,1)}
.shadow{position:absolute;left:-240px;top:-170px;width:480px;height:340px;background:radial-gradient(closest-side,rgba(20,20,20,.22),transparent);filter:blur(18px);transform:translateZ(-2px) translate(26px,26px)}
.sheet{position:absolute;left:-215px;top:-145px;width:430px;height:290px;background:var(--sheet);background-image:linear-gradient(var(--rule) 1px,transparent 1px);background-size:100% 28px;background-position:0 59px;border:1px solid #D9D9D2;box-shadow:0 1px 0 rgba(0,0,0,.04);transform:translateZ(calc(var(--i) * 11px));transition:transform 1.1s cubic-bezier(.2,.8,.2,1),opacity .9s;padding:16px 20px 0 46px;overflow:hidden;color:var(--ink);backface-visibility:hidden}
.sheet::before{content:"";position:absolute;top:0;bottom:0;left:30px;width:1px;background:#EDC9C3}
.sheet .hd{display:flex;justify-content:space-between;font:500 9px/1 var(--mono);letter-spacing:.14em;text-transform:uppercase;color:var(--muted);height:22px}
.sheet .tt{font:600 23px/28px var(--serif);letter-spacing:-.01em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.sheet .tt i{font-weight:400;color:#6B7178}
.sheet .ln{font:400 11.5px/28px var(--mono);color:var(--ink-2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.sheet .ln b{font-weight:500;color:var(--ink)}
.sheet .ln span{color:var(--faint);white-space:pre}
.sheet .ck{position:absolute;right:22px;bottom:22px;width:64px;height:48px}
.sheet .ck path{fill:none;stroke:var(--green);stroke-width:5;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:80;stroke-dashoffset:80}
.sheet.signed .ck path{transition:stroke-dashoffset .7s .15s cubic-bezier(.6,0,.2,1);stroke-dashoffset:0}
.sheet .stp{position:absolute;right:100px;bottom:26px;font:500 9px/1.35 var(--mono);letter-spacing:.12em;text-transform:uppercase;color:var(--green);border:1.5px solid var(--green);padding:5px 7px;transform:rotate(-4deg) scale(1.3);opacity:0}
.sheet.signed .stp{transition:all .35s .6s cubic-bezier(.2,1.5,.4,1);opacity:1;transform:rotate(-4deg) scale(1)}
.sheet.incoming{transform:translateZ(calc(var(--i) * 11px + 340px)) translate(-30px,-40px) rotateZ(6deg);opacity:0}
.sheet.leaving{opacity:0}
.stage-cap{position:absolute;left:0;right:0;bottom:6px;text-align:center;font:400 10.5px/1 var(--mono);letter-spacing:.12em;text-transform:uppercase;color:var(--muted)}
.stage-cap b{color:var(--ink);font-weight:500}

/* stats */
.band{border-bottom:1px solid var(--line);background:var(--sheet)}
.stats{max-width:var(--w);margin:0 auto;padding:0 var(--gut);display:grid;grid-template-columns:repeat(5,1fr)}
.stat{padding:28px 22px 28px 0;border-right:1px solid var(--line);margin-right:22px}
.stat:last-child{border-right:0}
.stat b{display:block;font:600 40px/1 var(--serif);letter-spacing:-.02em}
.stat span{display:block;margin-top:10px;font:400 10.5px/1.4 var(--mono);letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}

/* sections */
.sec{max-width:var(--w);margin:0 auto;padding:104px var(--gut)}
.sec-head{display:grid;grid-template-columns:1fr 1fr;gap:48px;align-items:end;margin-bottom:44px}
.sec-head h2,.h2{font:600 clamp(32px,3.6vw,48px)/1.06 var(--serif);letter-spacing:-.025em;margin:16px 0 0}
.sec-head h2 i,.h2 i{font-weight:400;color:#6B7178}
.sec-head p{color:var(--ink-2);margin:0;font-size:16px;max-width:34em}
.sec-head > a{justify-self:end}
.problem{display:grid;grid-template-columns:repeat(3,1fr);border-top:2px solid var(--ink)}
.problem div{padding:24px 28px 8px 0;margin-right:28px;border-right:1px solid var(--line)}
.problem div:last-child{border-right:0;margin-right:0}
.problem .n,.step .n{font:400 11px var(--mono);letter-spacing:.1em;color:var(--muted)}
.problem h3{font:600 23px/1.2 var(--serif);letter-spacing:-.015em;margin:12px 0 10px}
.problem p{margin:0;color:var(--muted);font-size:14.5px}

.steps{display:grid;grid-template-columns:repeat(4,1fr);background:var(--sheet);border:1px solid var(--line-2)}
.step{position:relative;padding:26px 24px 22px;border-right:1px solid var(--line);display:flex;flex-direction:column;min-height:270px}
.step:last-child{border-right:0}
.step .big{font:400 54px/1 var(--serif);color:var(--line-2);margin-bottom:6px}
.step h3{font:600 20px/1.25 var(--serif);letter-spacing:-.01em;margin:10px 0 8px}
.step p{margin:0 0 18px;color:var(--muted);font-size:14px}
.step .code{margin-top:auto;font:400 11px/1.7 var(--mono);border-top:1px dashed var(--line-2);padding-top:12px;color:var(--ink-2);word-break:break-all}
.step .code i{font-style:normal;color:var(--green)}
.verifyline{display:flex;align-items:center;justify-content:space-between;gap:24px;background:var(--ink);color:#EDEDE8;padding:26px 28px;border-radius:0 0 2px 2px}
.verifyline h3{margin:0;font:600 24px/1.25 var(--serif)}
.verifyline h3 i{font-weight:400;color:#A7ADB3}
.verifyline p{margin:6px 0 0;color:#A9A9A3;font-size:14px}
.verifyline .btn{background:var(--paper);color:var(--ink);border-color:var(--paper)}
.verifyline .btn:hover{background:#fff}

/* amendment: strike, never erase */
.night{border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.diff{display:grid;grid-template-columns:1fr 56px 1fr;align-items:stretch}
.dcard{position:relative;background:var(--sheet);background-image:linear-gradient(var(--rule) 1px,transparent 1px);background-size:100% 38px;background-position:0 77px;border:1px solid var(--line-2);padding:22px 24px 18px 52px;box-shadow:0 18px 40px -28px rgba(0,0,0,.25)}
.dcard::before{content:"";position:absolute;top:0;bottom:0;left:34px;width:1px;background:#EDC9C3}
.dcard .top-l{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;height:56px}
.dcard h4{margin:0;font:600 18px var(--serif)}
.dcard .meta{display:block;margin-top:5px;font:400 10.5px var(--mono);color:var(--muted)}
.drow{display:grid;grid-template-columns:1fr auto;gap:10px;height:38px;align-items:center;font-size:14px;color:var(--ink-2)}
.drow .mono{font-size:13.5px;color:var(--ink)}
.drow.chg .mono{position:relative;color:var(--muted)}
.drow.chg .mono::after{content:"";position:absolute;left:-4px;right:-4px;top:52%;height:1.5px;background:var(--red);transform:rotate(-4deg)}
.dcard.after .drow.chg .mono{color:var(--ink);font-weight:500}
.dcard.after .drow.chg .mono::after{display:none}
.darrow{display:grid;place-items:center;color:var(--faint)}
.dhash{margin-top:12px;font:400 10.5px/1.6 var(--mono);color:var(--muted);word-break:break-all}
.dsig{position:absolute;right:26px;top:56px;font:italic 400 20px var(--serif);color:var(--red);transform:rotate(-6deg);opacity:.85}

/* who */
.parties{display:grid;grid-template-columns:repeat(4,1fr);border-top:2px solid var(--ink)}
.party{padding:26px 24px 22px 0;margin-right:24px;border-right:1px solid var(--line)}
.party:last-child{border-right:0;margin-right:0}
.party .ic{width:34px;height:34px;border:1px solid var(--line-2);border-radius:50%;display:grid;place-items:center;margin-bottom:20px;color:var(--ink)}
.party .ic svg{width:16px;height:16px}
.party h3{margin:0 0 4px;font:600 22px var(--serif)}
.party ul{margin:16px 0 0;padding:0;list-style:none;font-size:14px;color:var(--ink-2)}
.party li{padding:8px 0;border-top:1px solid var(--rule)}
.party.token{background:var(--ink);color:var(--paper);padding:26px 24px 22px;margin-right:0}
.party.token h3{color:var(--paper)}
.party.token .ic{border-color:#444;color:#7FD3A6}
.party.token li{border-color:#2E2E2E;color:#D5D5D0}
.party.token p{color:#9C9C96!important}

.faq{max-width:840px}
.faq details{border-top:1px solid var(--line-2);padding:20px 0}
.faq details:last-child{border-bottom:1px solid var(--line-2)}
.faq summary{cursor:pointer;list-style:none;display:flex;justify-content:space-between;gap:20px;font:600 20px/1.35 var(--serif)}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"+";font:300 22px/1 var(--sans);color:var(--muted)}
.faq details[open] summary::after{content:"−"}
.faq p{margin:10px 0 0;color:var(--ink-2);max-width:44em}

.endcta{border-top:1px solid var(--line)}
.endcta-in{max-width:var(--w);margin:0 auto;padding:110px var(--gut) 120px;text-align:center}
.endcta .mark{width:68px;height:48px;margin-bottom:26px}
.endcta h2{font:600 clamp(38px,5vw,66px)/1.02 var(--serif);letter-spacing:-.03em;margin:0 0 16px}
.endcta h2 i{font-weight:400;color:#6B7178}
.endcta p{font:400 11px/1.5 var(--mono);letter-spacing:.14em;text-transform:uppercase;color:var(--muted);margin:0 0 34px}
.endcta .cta{justify-content:center}

/* pages */
.page{max-width:var(--w);margin:0 auto;padding:48px var(--gut) 100px}
.crumbs{display:flex;gap:8px;align-items:center;font:400 11.5px var(--mono);color:var(--faint);margin-bottom:22px;flex-wrap:wrap}
.crumbs a{color:var(--muted)}
.crumbs a:hover{color:var(--ink)}
.ptitle{display:flex;justify-content:space-between;align-items:end;gap:24px;flex-wrap:wrap;margin-bottom:30px;padding-bottom:28px;border-bottom:2px solid var(--ink)}
.ptitle h1{font:600 clamp(34px,4.2vw,54px)/1.05 var(--serif);letter-spacing:-.025em;margin:0}
.ptitle h1 em,.ptitle h1 i{font-weight:400;font-style:italic;color:#6B7178}
.ptitle p{margin:12px 0 0;color:var(--ink-2);max-width:42em}
.card{background:var(--sheet);border:1px solid var(--line-2)}
.card-h{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:14px 20px;border-bottom:1px solid var(--line-2)}
.card-h h3{margin:0;font:600 17px var(--serif)}
.card-h .muted{font-family:var(--mono);font-size:11px!important;letter-spacing:.04em}
.card-b{padding:20px}

/* registry */
.toolbar{display:flex;gap:12px;align-items:center;flex-wrap:wrap;margin-bottom:14px}
.search{flex:1 1 320px;position:relative}
.search input{width:100%;height:44px;border:1px solid var(--line-2);border-radius:2px;background:var(--sheet);padding:0 14px 0 42px;font:400 13px var(--mono);outline:none}
.search input::placeholder,.hashin input::placeholder,.input::placeholder{color:var(--faint)}
.search input:focus{border-color:var(--ink)}
.search svg{position:absolute;left:15px;top:14px;width:16px;height:16px;color:var(--muted)}
.tabs{display:inline-flex;border:1px solid var(--line-2);background:var(--sheet);border-radius:2px}
.tabs button{border:0;border-right:1px solid var(--line-2);background:none;height:42px;padding:0 15px;font-size:13.5px;color:var(--muted);cursor:pointer}
.tabs button:last-child{border-right:0}
.tabs button.on{background:var(--ink);color:var(--paper)}
.tabs button b{font:400 11px var(--mono);margin-left:6px;opacity:.6}
.chips{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:18px}
.chip{height:30px;padding:0 11px;border:1px solid var(--line-2);border-radius:2px;background:var(--sheet);font-size:12.5px;cursor:pointer;color:var(--ink-2)}
.chip:hover{border-color:var(--ink)}
.chip.on{background:var(--ink);border-color:var(--ink);color:var(--paper)}
.chip-sep{width:1px;background:var(--line-2);margin:4px 6px}

table.t{width:100%;border-collapse:collapse;font-size:14px;background:var(--sheet)}
.t th{text-align:left;font:400 10px/1 var(--mono);text-transform:uppercase;letter-spacing:.1em;color:var(--muted);padding:13px 14px;border-bottom:3px double var(--ink);white-space:nowrap;background:var(--sheet)}
.t td{padding:14px;border-bottom:1px solid var(--rule);vertical-align:middle}
.t td + td,.t th + th{border-left:1px solid #F0EFEA}
.t tr:last-child td{border-bottom:0}
.t tbody tr{cursor:pointer;transition:background .12s}
.t tbody tr:hover{background:#F6F9F7}
.t .id{font:500 12.5px var(--mono);white-space:nowrap}
.t .m b{display:block;font:600 16px/1.25 var(--serif)}
.t .m span{font-size:12.5px;color:var(--muted)}
.t .m b,.t .m span{white-space:nowrap}
.t .h{font:400 12px var(--mono);color:var(--ink-2)}
.t a.tx{font:400 12px var(--mono);color:var(--muted)}
.t a.tx:hover{color:var(--green);text-decoration:underline}
.t .proofcell{white-space:nowrap}
.t .proofcell .h,.t .proofcell .tx{display:block;width:max-content}
.t .proofcell .tx{margin-top:4px}
.t td .tag{max-width:170px;overflow:hidden;text-overflow:ellipsis;display:inline-block;line-height:22px}
.t .when{display:block;color:var(--faint);white-space:nowrap;font:400 11px var(--mono);margin-top:4px}
.t td .tag-amend{display:table;margin-top:6px}
.qv{min-width:74px}
.qv.done{background:var(--green);color:#fff;border-color:var(--green)}
.qv.fail{background:var(--red);color:#fff;border-color:var(--red)}
.empty{padding:60px 20px;text-align:center;color:var(--muted)}

.mgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(270px,1fr));gap:14px}
.mcard{background:var(--sheet);border:1px solid var(--line-2);padding:20px;display:block;transition:border-color .15s,transform .2s,box-shadow .2s}
.mcard:hover{border-color:var(--ink);transform:translateY(-2px);box-shadow:0 14px 30px -22px rgba(0,0,0,.35)}
.mcard .lab{font:400 11px var(--mono);color:var(--muted);letter-spacing:.03em}
.mcard h3{margin:6px 0 16px;font:600 23px/1.15 var(--serif);letter-spacing:-.02em}
.cov{display:grid;grid-template-columns:repeat(6,1fr);gap:4px}
.cov i{height:20px;border:1px dashed var(--line-2);border-radius:1px}
.cov i.clear{background:var(--green);border:0}
.cov i.elevated{background:var(--ink);border:0}
.cov i.critical{background:var(--red);border:0}
.cov i.self{background-image:repeating-linear-gradient(-45deg,transparent 0 3px,rgba(255,255,255,.55) 3px 5px)}
.mcard .foot{display:flex;justify-content:space-between;margin-top:14px;padding-top:10px;border-top:1px solid var(--rule);background:none;font:400 11px var(--mono);color:var(--muted)}
.legend{display:flex;gap:16px;flex-wrap:wrap;margin:0 0 14px;font:400 11px var(--mono);color:var(--muted)}
.legend span{display:flex;align-items:center;gap:6px}
.legend i{width:14px;height:10px;display:inline-block}

/* run */
.detail{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(0,1fr);gap:20px;align-items:start}
.banner{display:flex;gap:14px;align-items:flex-start;padding:15px 18px;margin-bottom:20px;font-size:14px;border:1px solid var(--line-2);background:var(--sheet);color:var(--ink-2)}
.banner b{display:block;margin-bottom:2px;color:var(--ink);font-weight:600}
.banner.amber{border-color:var(--red);border-left-width:3px}
.banner.amber svg{color:var(--red)}
.banner a{text-decoration:underline;text-underline-offset:3px;color:var(--ink)}
.banner svg{width:16px;height:16px;flex:none;margin-top:3px;color:var(--muted)}
.res{width:100%;border-collapse:collapse;font-size:14px}
.res td,.res th{padding:14px 0;border-bottom:1px solid var(--rule);text-align:left;vertical-align:middle}
.res th{font:400 10px var(--mono);text-transform:uppercase;letter-spacing:.1em;color:var(--muted);border-bottom:3px double var(--ink)}
.res tr:last-child td{border-bottom:0}
.res .num{text-align:right;font:400 13.5px var(--mono);white-space:nowrap;padding-left:12px}
.bar{position:relative;height:6px;background:var(--sunk);margin-top:9px;max-width:340px}
.bar i{position:absolute;left:0;top:0;bottom:0;background:var(--green)}
.bar i.over{background:var(--ink)}
.bar i.crit{background:var(--red)}
.bar u{position:absolute;top:-5px;bottom:-5px;width:2px;background:var(--ink)}
.proof .row{padding:15px 20px;border-bottom:1px solid var(--line)}
.proof .row:last-child{border-bottom:0}
.proof .lbl{font:400 10px var(--mono);text-transform:uppercase;letter-spacing:.1em;color:var(--muted);margin-bottom:8px;display:flex;justify-content:space-between;align-items:center}
.copy{border:0;background:none;color:var(--muted);cursor:pointer;font:400 10.5px var(--mono);padding:0;text-transform:uppercase;letter-spacing:.08em}
.copy:hover{color:var(--green)}
.sig{display:grid;grid-template-columns:17px 1fr;gap:12px;padding:8px 0}
.sig + .sig{border-top:1px dashed var(--line)}
.sig .who{font-weight:600;font-size:14px}
.sig .who span{font-weight:400;color:var(--muted)}
.sig .addr{font:400 11.5px/1.5 var(--mono);color:var(--muted);word-break:break-all}
.actions{display:flex;gap:8px;flex-wrap:wrap;padding:15px 20px;border-top:1px solid var(--line-2);background:#FBFBF9}
.vlog{margin:0;padding:15px 20px;font:400 12px/1.85 var(--mono);white-space:pre-wrap;word-break:break-all;background:var(--ink);color:#C9C9C2;display:none}
.vlog.on{display:block}
.vlog .g{color:#7FD3A6}
.vlog .r{color:#FF9C8F}
.vlog .d{color:#77776F}
.meta-grid{display:grid;grid-template-columns:repeat(3,1fr);margin:0}
.meta-grid div{padding:14px 20px;border-right:1px solid var(--line);border-bottom:1px solid var(--line)}
.meta-grid div:nth-child(3n),.meta-grid div[style*="span 3"]{border-right:0}
.meta-grid div:last-child{border-bottom:0}
.meta-grid dt{font:400 10px var(--mono);color:var(--muted);margin-bottom:5px;text-transform:uppercase;letter-spacing:.08em}
.meta-grid dd{margin:0;font-size:14px;word-break:break-all}
.hist a{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:14px 20px;border-bottom:1px solid var(--line);font-size:14px}
.hist a:last-child{border-bottom:0}
.hist a:hover{background:#F6F9F7}

/* model */
.covgrid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}
.cv{border:1px solid var(--line-2);background:var(--sheet);padding:16px 18px;min-height:122px;display:flex;flex-direction:column}
.cv.none{background:repeating-linear-gradient(-45deg,var(--paper) 0 7px,#F1F1EC 7px 14px);border-style:dashed}
.cv h4{margin:0 0 4px;font:600 18px var(--serif)}
.cv .s{font:400 11px var(--mono);color:var(--muted)}
.cv .b{margin-top:auto;display:flex;gap:6px;align-items:center;flex-wrap:wrap;padding-top:12px}
.facts{display:flex;gap:34px;flex-wrap:wrap;font-size:14px;margin-top:20px}
.facts div > span:first-child{display:block;color:var(--muted);font:400 10px var(--mono);text-transform:uppercase;letter-spacing:.1em;margin-bottom:5px}
.facts div b{font-weight:500}
.facts .pill{font-weight:500}

/* tx */
.txcard .kv{grid-template-columns:170px 1fr;gap:0}
.txcard .kv dt,.txcard .kv dd{padding:14px 20px;border-bottom:1px solid var(--rule)}
.txcard .kv dt{font:400 10.5px/1.9 var(--mono);text-transform:uppercase;letter-spacing:.08em;color:var(--muted)}
.txcard .kv dd{font:400 13px/1.55 var(--mono);word-break:break-all}
.txcard .kv dt:last-of-type,.txcard .kv dd:last-of-type{border-bottom:0}

.kv{display:grid;grid-template-columns:110px 1fr;gap:10px 14px;font-size:14px;align-items:center;margin:0}
.kv dt{color:var(--muted)}
.kv dd{margin:0;min-width:0}
.hash{font:400 12.5px/1.6 var(--mono);word-break:break-all;color:var(--ink)}
.sigrow{display:flex;align-items:center;gap:8px;min-width:0}
.sigrow .addr{font:400 12px var(--mono);color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}

/* verify */
.vwrap{max-width:880px;margin:0 auto}
.drop{display:block;border:1.5px dashed var(--line-2);background:var(--sheet);background-image:linear-gradient(var(--rule) 1px,transparent 1px);background-size:100% 30px;padding:56px 28px;text-align:center;cursor:pointer;transition:border-color .15s}
.drop:hover,.drop.over{border-color:var(--green)}
.drop .ic{width:46px;height:46px;margin:0 auto 16px;border:1px solid var(--line-2);border-radius:50%;background:var(--sheet);display:grid;place-items:center}
.drop .ic svg{width:19px;height:19px}
.drop h3{margin:0 0 6px;font:600 22px var(--serif)}
.drop p{margin:0;color:var(--muted);font-size:14px}
.or{display:flex;align-items:center;gap:14px;color:var(--faint);font:400 10.5px var(--mono);text-transform:uppercase;letter-spacing:.12em;margin:22px 0}
.or::before,.or::after{content:"";flex:1;height:1px;background:var(--line-2)}
.hashin{display:flex;gap:8px}
.hashin input{flex:1;height:44px;border:1px solid var(--line-2);border-radius:2px;background:var(--sheet);padding:0 14px;font:400 13px var(--mono);outline:none;min-width:0}
.hashin input:focus{border-color:var(--ink)}
.samples{display:flex;gap:6px;align-items:center;flex-wrap:wrap;margin-top:16px;font:400 11.5px var(--mono);color:var(--muted)}
.vres{margin-top:28px;border:1px solid var(--line-2);background:var(--sheet);animation:rise .4s cubic-bezier(.2,.7,.2,1) both}
.vres-h{display:flex;gap:18px;align-items:flex-start;padding:24px}
.vres-h .big{width:44px;height:44px;border-radius:50%;display:grid;place-items:center;flex:none;color:#fff;font:600 18px var(--serif)}
.vres-h .big svg{width:20px;height:20px}
.vres-h h3{margin:0;font:600 28px/1.15 var(--serif);letter-spacing:-.015em}
.vres-h p{margin:6px 0 0;color:var(--ink-2)}
.vres.match{border-top:3px solid var(--green)}
.vres.match .big{background:var(--green)}
.vres.amend{border-top:3px solid var(--ink)}
.vres.amend .big{background:var(--ink)}
.vres.tamper{border-top:3px solid var(--red)}
.vres.tamper .big{background:var(--red)}
.vres.tamper h3{color:var(--red)}
.vres.none .big{background:var(--faint)}
.vres .kv{padding:20px 24px;border-top:1px solid var(--line);grid-template-columns:140px 1fr}
.dlist{padding:4px 24px 20px}
.dl{display:grid;grid-template-columns:1.4fr 1fr 1fr;gap:10px;padding:11px 0;border-top:1px solid var(--rule);font:400 12.5px var(--mono);align-items:center}
.dl.h{font:400 10px var(--mono);text-transform:uppercase;letter-spacing:.1em;color:var(--muted);border-top:0}
.dl s{color:var(--red);text-decoration-thickness:1.5px}
.dl ins{text-decoration:none;color:var(--green);font-weight:500}
.hashing{margin-top:22px;font:400 12.5px/1.6 var(--mono);color:var(--muted)}
.hashing b{color:var(--ink);font-weight:400;word-break:break-all}

/* submit */
.sub{display:grid;grid-template-columns:240px minmax(0,1fr);gap:32px;align-items:start}
.stepper{position:sticky;top:96px;list-style:none;margin:0;padding:0;counter-reset:s}
.stepper li{display:flex;gap:14px;align-items:flex-start;padding:11px 0;color:var(--faint);font-size:14px;border-bottom:1px solid var(--rule)}
.stepper li i{width:26px;height:26px;border-radius:50%;border:1px solid var(--line-2);display:grid;place-items:center;font:400 11px var(--mono);font-style:normal;background:var(--sheet);flex:none}
.stepper li i svg{width:11px;height:11px}
.stepper li b{display:block;font:600 16px/1.3 var(--serif);color:inherit}
.stepper li small{display:block;font:400 10.5px var(--mono);color:var(--faint);margin-top:2px}
.stepper li.on{color:var(--ink)}
.stepper li.on i{background:var(--ink);border-color:var(--ink);color:var(--paper)}
.stepper li.done{color:var(--ink-2)}
.stepper li.done i{background:var(--green);border-color:var(--green);color:#fff}
.panel{background:var(--sheet);border:1px solid var(--line-2);box-shadow:0 24px 50px -36px rgba(0,0,0,.3)}
.panel-h{padding:26px 28px 6px}
.panel-h .n{font:400 10.5px var(--mono);color:var(--muted);letter-spacing:.1em}
.panel-h h2{margin:10px 0 6px;font:600 32px/1.1 var(--serif);letter-spacing:-.02em}
.panel-h p{margin:0;color:var(--ink-2);font-size:14.5px}
.panel-b{padding:22px 28px 28px}
.panel-f{display:flex;justify-content:space-between;gap:10px;padding:16px 28px;border-top:1px solid var(--line);background:#FBFBF9}
.labs{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}
.opt{display:flex;gap:12px;align-items:center;padding:13px;border:1px solid var(--line-2);border-radius:2px;cursor:pointer;background:var(--sheet);text-align:left;transition:border-color .15s}
.opt:hover{border-color:var(--muted)}
.opt.on{border-color:var(--ink);box-shadow:inset 3px 0 0 var(--green)}
.opt .av,.av{width:36px;height:36px;border-radius:50%;display:grid;place-items:center;font:600 14px var(--serif);color:var(--ink);background:var(--sunk)!important;border:1px solid var(--line-2);flex:none}
.opt b{display:block;font:600 16px var(--serif)}
.opt span{display:block;font-size:12px;color:var(--muted)}
.field{margin-bottom:18px}
.field label{display:block;font:400 10.5px var(--mono);text-transform:uppercase;letter-spacing:.1em;color:var(--muted);margin-bottom:8px}
.field .hint{font-size:12.5px;color:var(--muted);margin-top:6px}
.select,.input{width:100%;height:44px;border:1px solid var(--line-2);border-radius:2px;background:var(--sheet);padding:0 14px;font-size:14.5px;outline:none;appearance:none;-webkit-appearance:none}
.select{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%236D7175' stroke-width='2'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 14px center;padding-right:36px}
.select:focus,.input:focus{border-color:var(--ink)}
.two{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.pre{margin:0;max-height:250px;overflow:auto;font:400 11.5px/1.65 var(--mono);background:var(--ink);color:#BDBDB6;padding:14px 16px;white-space:pre}
.pre .k{color:#E8E8E2}.pre .s{color:#7FD3A6}.pre .n{color:#F2C38B}
.hashbox{margin-top:12px;padding:13px 15px;border:1px solid var(--line-2);background:var(--paper);display:flex;gap:14px;align-items:center}
.hashbox .lbl{font:400 10px var(--mono);text-transform:uppercase;letter-spacing:.1em;color:var(--muted);margin-bottom:4px}
.signers{display:grid;gap:10px}
.signer{display:flex;align-items:center;gap:14px;padding:15px;border:1px solid var(--line-2)}
.signer .st{margin-left:auto}
.signer .who b{display:block;font:600 16px var(--serif)}
.signer .who span{font:400 11.5px var(--mono);color:var(--muted)}
.spin{width:14px;height:14px;border:1.5px solid var(--line-2);border-top-color:var(--ink);border-radius:50%;animation:spin .7s linear infinite;flex:none}
.btn-ink .spin{border-color:#666;border-top-color:#fff}
@keyframes spin{to{transform:rotate(360deg)}}
.txprev{border:1px solid var(--line-2)}
.txprev .kv{padding:16px 18px;grid-template-columns:120px 1fr}
.txprev .kv dt{font:400 10.5px var(--mono);text-transform:uppercase;letter-spacing:.08em;color:var(--muted)}
.txprev .kv dd{font:400 12.5px var(--mono);word-break:break-all}
.progress{margin-top:16px;font:400 13px var(--mono)}
.progress div{display:flex;align-items:center;gap:12px;padding:9px 0;color:var(--faint);border-bottom:1px solid var(--rule)}
.progress div.on{color:var(--ink)}
.progress div.done{color:var(--ink-2)}
.progress .dot{width:17px;height:17px;border:1px solid var(--line-2);border-radius:50%;flex:none}
.receipt{text-align:center;padding:10px 0 4px}
.receipt .seal{width:84px;height:84px;margin:4px auto 18px;border-radius:50%;border:2px solid var(--green);display:grid;place-items:center;color:var(--green);animation:pop .5s cubic-bezier(.2,1.5,.4,1)}
.receipt .seal svg{width:36px;height:36px}
@keyframes pop{from{transform:scale(.6);opacity:0}}
.receipt h3{font:600 34px/1.1 var(--serif);margin:0 0 8px;letter-spacing:-.02em}
.receipt p{color:var(--ink-2);margin:0 auto 20px;max-width:32em}
.receipt .kv{text-align:left;max-width:580px;margin:0 auto 22px;border:1px solid var(--line-2);padding:16px 18px}

.toast{position:fixed;left:50%;bottom:26px;transform:translate(-50%,16px);background:var(--ink);color:var(--paper);padding:11px 16px;font:400 12.5px var(--mono);opacity:0;pointer-events:none;transition:all .25s;z-index:60}
.toast.on{opacity:1;transform:translate(-50%,0)}

/* footer */
.foot{border-top:2px solid var(--ink);background:var(--sheet)}
.foot-in{max-width:var(--w);margin:0 auto;padding:48px var(--gut);display:flex;justify-content:space-between;gap:40px;flex-wrap:wrap}
.foot-brand{max-width:360px}
.foot-brand .brand{margin-bottom:14px}
.foot-brand p{color:var(--muted);font-size:14px;margin:0}
.foot-cols{display:flex;gap:56px;flex-wrap:wrap}
.foot-cols div{display:flex;flex-direction:column;gap:9px;font-size:14px}
.foot-cols b{font:400 10.5px var(--mono);text-transform:uppercase;letter-spacing:.1em;color:var(--muted);margin-bottom:3px}
.foot-cols a{color:var(--ink-2)}
.foot-cols a:hover{color:var(--green)}
.foot-cols .ca{font:400 12px var(--mono);color:var(--muted)}
.foot-legal{max-width:var(--w);margin:0 auto;padding:16px var(--gut) 28px;font:400 11px var(--mono);color:var(--faint);border-top:1px solid var(--line)}

.skel{background:var(--sunk);height:14px}

@media (prefers-reduced-motion:reduce){.rise{animation:none;opacity:1;transform:none}.sheet{transition:none}}

@media (max-width:1020px){
  .hero-in{grid-template-columns:1fr;padding-top:52px;gap:0;min-height:0}
  .stage{height:430px;margin-top:10px}
  .steps,.parties{grid-template-columns:repeat(2,1fr)}
  .step:nth-child(2){border-right:0}
  .step:nth-child(-n+2){border-bottom:1px solid var(--line)}
  .party:nth-child(2){border-right:0;margin-right:0}
  .stats{grid-template-columns:repeat(3,1fr)}
  .stat:nth-child(3){border-right:0}
  .detail,.sub{grid-template-columns:1fr}
  .sec-head{grid-template-columns:1fr;gap:20px}
  .sec-head > a{justify-self:start}
  .stepper{position:static;display:flex;overflow-x:auto;gap:18px}
  .stepper li{flex:none;border-bottom:0}
  .stepper li small{display:none}
  .top-in{gap:14px;flex-wrap:wrap;height:auto;padding-top:12px;padding-bottom:0}
  .nav{order:3;width:100%;overflow-x:auto;padding:2px 0 8px;scrollbar-width:none;margin-left:-10px}
  .nav a{white-space:nowrap}
}
@media (max-width:720px){
  body{font-size:14.5px}
  .slot,.brand-tick{display:none}
  .brand-name{font-size:20px}
  .stage{height:340px}
  .stack{scale:.72}
  .problem{grid-template-columns:1fr}
  .problem div{border-right:0;margin-right:0;border-bottom:1px solid var(--line);padding-bottom:22px}
  .steps,.parties,.covgrid,.labs,.two{grid-template-columns:1fr}
  .step,.party{border-right:0!important;margin-right:0!important;border-bottom:1px solid var(--line)}
  .stats{grid-template-columns:repeat(2,1fr)}
  .stat:nth-child(2n){border-right:0}
  .stat:nth-child(3){border-right:1px solid var(--line)}
  .stat b{font-size:32px}
  .sec{padding:68px var(--gut)}
  .diff{grid-template-columns:1fr}
  .darrow{transform:rotate(90deg);height:44px}
  .verifyline{flex-direction:column;align-items:start}
  .meta-grid{grid-template-columns:1fr 1fr}
  .meta-grid div{border-right:0!important}
  .meta-grid div[style]{grid-column:span 2!important}
  table.t thead{display:none}
  table.t,.t tbody,.t tr,.t td{display:block;width:100%}
  .t tr{padding:12px 14px;border-bottom:1px solid var(--rule);display:grid!important;grid-template-columns:1fr auto;gap:6px 10px}
  .t td{padding:0;border:0!important}
  .t td.hide-m{display:none}
  .kv,.vres .kv,.txcard .kv{grid-template-columns:1fr}
  .txcard .kv dt{border-bottom:0;padding-bottom:0}
  .dl{grid-template-columns:1fr}
  .hashin{flex-direction:column}
  .panel-h,.panel-b{padding-left:18px;padding-right:18px}
  .panel-f{padding:14px 18px}
}

/* ---------- opening sequence ---------- */
.hero{position:relative}
.hero-in{min-height:calc(100svh - 64px)}
.hero-copy .rise{animation:none}
.hero-copy.go .rise{animation:rise .9s cubic-bezier(.2,.7,.2,1) forwards}
.stage .stack,.stage .stage-cap{transition:opacity 1s ease}
.stage.waiting .stack,.stage.waiting .stage-cap{opacity:0;visibility:hidden}
.intro{position:absolute;left:0;right:0;top:0;height:min(100%,calc(100svh - 64px));z-index:5;pointer-events:none}
.intro-c{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:34px;perspective:1700px}
.skip{position:absolute;right:max(20px,4vw);bottom:22px;pointer-events:auto;border:0;background:none;font:400 10.5px var(--mono);letter-spacing:.14em;text-transform:uppercase;color:var(--faint);cursor:pointer}
.skip:hover{color:var(--ink)}
.isheet{position:relative;width:620px;background:var(--sheet);background-image:linear-gradient(var(--rule) 1px,transparent 1px);background-size:100% 30px;background-position:0 15px;border:1px solid #D9D9D2;padding:24px 34px 26px 72px;color:var(--ink);opacity:0;transform:translateY(40px) rotateX(22deg);transform-origin:50% 60%;transition:opacity 1s ease,transform 1.3s cubic-bezier(.2,.75,.2,1);box-shadow:0 50px 90px -50px rgba(20,20,20,.45),0 1px 0 rgba(0,0,0,.03)}
.isheet::before{content:"";position:absolute;top:0;bottom:0;left:50px;width:1px;background:#EDC9C3}
.isheet.on{opacity:1;transform:rotateX(8deg)}
.ihd{display:flex;justify-content:space-between;font:500 10px/30px var(--mono);letter-spacing:.16em;text-transform:uppercase;color:var(--muted)}
.itt{font:600 30px/40px var(--serif);letter-spacing:-.02em;margin-top:2px;padding-right:120px}
.itt i{font-weight:400;color:#6B7178}
.imeta{font:400 12.5px/30px var(--sans);color:var(--muted)}
.irows{margin-top:0}
.irow{display:grid;grid-template-columns:1fr 64px 52px;gap:10px;font:400 13px/30px var(--mono);color:var(--ink-2);clip-path:inset(0 100% 0 0);transition:clip-path .55s cubic-bezier(.5,0,.3,1)}
.irow span{font-family:var(--sans);font-size:14px}
.irow b{font-weight:500;color:var(--ink);text-align:right}
.irow em{font-style:normal;color:var(--faint);text-align:right}
.irow.w{clip-path:inset(0 0 0 0)}
.ihash{margin-top:8px;padding:9px 12px;border:1px solid var(--line);background:var(--paper);display:grid;grid-template-columns:70px 1fr;gap:10px;align-items:center;font:400 12px/1.5 var(--mono);transition:border-color .5s,background .5s}
.ihash span{font-size:10px;letter-spacing:.14em;color:var(--muted)}
.ihash b{font-weight:400;color:var(--faint);word-break:break-all;letter-spacing:.02em}
.isheet.scan .ihash b{color:var(--ink)}
.isheet.hashed .ihash{border-color:var(--green);background:var(--green-bg)}
.isheet.hashed .ihash b{color:var(--green)}
.iscan{position:absolute;left:0;right:0;top:0;height:90px;transform:translateY(-100%);background:linear-gradient(to bottom,rgba(29,122,76,0),rgba(29,122,76,.08));border-bottom:1.5px solid var(--green);opacity:0;pointer-events:none}
.isheet.scan .iscan{animation:scan 1.15s cubic-bezier(.45,0,.4,1) forwards}
@keyframes scan{0%{opacity:0;top:0;transform:translateY(-100%)}12%{opacity:1}88%{opacity:1}100%{opacity:0;top:100%;transform:translateY(-100%)}}
.isigs{display:grid;grid-template-columns:170px 170px;gap:24px;margin-top:16px}
.isig svg{display:block;width:150px;height:42px}
.isig path{fill:none;stroke:var(--ink);stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:420;stroke-dashoffset:420}
.isig span{display:block;border-top:1px solid var(--ink-2);margin-top:2px;padding-top:6px;font:400 10px var(--mono);letter-spacing:.06em;color:var(--muted);opacity:0;transition:opacity .4s .5s}
.isig span i{font-style:normal;color:var(--green)}
.isheet.sig1 .s1 path,.isheet.sig2 .s2 path{transition:stroke-dashoffset .95s cubic-bezier(.5,0,.3,1);stroke-dashoffset:0}
.isheet.sig1 .s1 span,.isheet.sig2 .s2 span{opacity:1}
.icheck{position:absolute;right:34px;top:46px;width:112px;height:86px;overflow:visible}
.icheck path{fill:none;stroke:var(--green);stroke-width:7;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:80;stroke-dashoffset:80}
.isheet.seal .icheck path{transition:stroke-dashoffset .6s cubic-bezier(.6,0,.2,1);stroke-dashoffset:0}
.istamp{position:absolute;right:30px;bottom:30px;font:500 10.5px/1.4 var(--mono);letter-spacing:.14em;text-transform:uppercase;color:var(--green);border:2px solid var(--green);padding:7px 10px;opacity:0;transform:rotate(-5deg) scale(1.8)}
.isheet.seal .istamp{animation:stamp .45s .55s cubic-bezier(.2,1.4,.4,1) forwards}
@keyframes stamp{0%{opacity:0;transform:rotate(-5deg) scale(1.8)}60%{opacity:1;transform:rotate(-5deg) scale(.94)}100%{opacity:1;transform:rotate(-5deg) scale(1)}}
.isheet.seal{animation:press .4s .62s ease-out}
@keyframes press{50%{transform:rotateX(8deg) translateY(3px)}}
.inarr{height:16px;font:400 11px/16px var(--mono);letter-spacing:.16em;text-transform:uppercase;color:var(--muted);opacity:0;transform:translateY(6px);transition:opacity .3s,transform .3s}
.inarr b{font-weight:500;color:var(--green);margin-right:10px}
.inarr.on{opacity:1;transform:none}
.inarr.done{font:600 20px/16px var(--serif);letter-spacing:-.01em;text-transform:none;color:var(--ink)}

/* ---------- scroll reveals ---------- */
[data-rv]{opacity:0;transform:translateY(22px);transition:opacity 1s cubic-bezier(.2,.7,.2,1),transform 1s cubic-bezier(.2,.7,.2,1)}
[data-rv].in{opacity:1;transform:none}
.sec-head[data-rv] h2{clip-path:inset(0 0 100% 0);transition:clip-path 1.1s .1s cubic-bezier(.6,0,.2,1)}
.sec-head[data-rv].in h2{clip-path:inset(0 0 -10% 0)}
.problem[data-rv]{border-top-color:transparent;background:linear-gradient(var(--ink),var(--ink)) top left/0 2px no-repeat;transition:opacity 1s,transform 1s,background-size 1.2s cubic-bezier(.6,0,.2,1)}
.problem[data-rv].in{background-size:100% 2px}
.problem[data-rv] > div,.parties[data-rv] > div,.steps[data-rv] > .step{opacity:0;transform:translateY(16px);transition:opacity .8s,transform .8s cubic-bezier(.2,.7,.2,1)}
.problem[data-rv].in > div,.parties[data-rv].in > div,.steps[data-rv].in > .step{opacity:1;transform:none}
.problem[data-rv].in > div:nth-child(2),.parties[data-rv].in > div:nth-child(2),.steps[data-rv].in > .step:nth-child(2){transition-delay:.15s}
.problem[data-rv].in > div:nth-child(3),.parties[data-rv].in > div:nth-child(3),.steps[data-rv].in > .step:nth-child(3){transition-delay:.3s}
.parties[data-rv].in > div:nth-child(4),.steps[data-rv].in > .step:nth-child(4){transition-delay:.45s}
.steps{position:relative}
.steps::after{content:"";position:absolute;left:0;top:-1px;height:2px;width:100%;background:var(--green);transform:scaleX(0);transform-origin:left;transition:transform 2s .3s cubic-bezier(.6,0,.2,1)}
.steps.in::after{transform:scaleX(1)}
.step .big{transition:color .6s}
.steps.in .step .big{color:var(--ink)}
.steps.in .step:nth-child(1) .big{transition-delay:.5s}.steps.in .step:nth-child(2) .big{transition-delay:.95s}.steps.in .step:nth-child(3) .big{transition-delay:1.4s}.steps.in .step:nth-child(4) .big{transition-delay:1.85s}
.card[data-rv] tbody tr{opacity:0;transform:translateY(8px);transition:opacity .6s,transform .6s}
.card[data-rv].in tbody tr{opacity:1;transform:none}
.card[data-rv].in tbody tr:nth-child(2){transition-delay:.08s}.card[data-rv].in tbody tr:nth-child(3){transition-delay:.16s}.card[data-rv].in tbody tr:nth-child(4){transition-delay:.24s}.card[data-rv].in tbody tr:nth-child(5){transition-delay:.32s}.card[data-rv].in tbody tr:nth-child(6){transition-delay:.4s}
.diff[data-rv] .drow.chg .mono::after{transform:rotate(-4deg) scaleX(0);transform-origin:left;transition:transform .45s cubic-bezier(.6,0,.2,1)}
.diff[data-rv].in .dcard:not(.after) .drow.chg .mono::after{transform:rotate(-4deg) scaleX(1)}
.diff[data-rv].in .drow.chg:nth-of-type(2) .mono::after{transition-delay:.9s}
.diff[data-rv].in .drow.chg:nth-of-type(3) .mono::after{transition-delay:1.1s}
.diff[data-rv].in .drow.chg:nth-of-type(4) .mono::after{transition-delay:1.3s}
.diff[data-rv].in .drow.chg:nth-of-type(5) .mono::after{transition-delay:1.5s}
.diff[data-rv] .dsig{clip-path:inset(0 100% 0 0);transition:clip-path .8s 1.8s cubic-bezier(.5,0,.3,1)}
.diff[data-rv].in .dsig{clip-path:inset(-10px -10px -10px -10px)}
.diff[data-rv] .dcard.after{opacity:0;transform:translateX(-16px);transition:opacity .8s 2.2s,transform .8s 2.2s cubic-bezier(.2,.7,.2,1)}
.diff[data-rv].in .dcard.after{opacity:1;transform:none}
.diff[data-rv] .darrow{opacity:0;transition:opacity .6s 2s}
.diff[data-rv].in .darrow{opacity:1}
.endcta-in[data-rv] .mark path{stroke-dasharray:420;stroke-dashoffset:420;transition:stroke-dashoffset .8s cubic-bezier(.6,0,.2,1)}
.endcta-in[data-rv].in .mark path{stroke-dashoffset:0}
.endcta-in[data-rv].in .mark path:nth-child(2){transition-delay:.2s}
.endcta-in[data-rv].in .mark path:nth-child(3){transition-delay:.45s}

@media (prefers-reduced-motion:reduce){[data-rv],[data-rv] *{transition:none!important;opacity:1!important;transform:none!important;clip-path:none!important}}
@media (max-width:1020px){.hero-in{min-height:0}}
@media (max-width:720px){
  .isheet{scale:.56;margin:-90px 0}
  .intro-c{gap:0}
  .intro{height:calc(100svh - 140px)}
  .inarr{font-size:9.5px;letter-spacing:.1em;text-align:center;padding:0 16px;height:auto;margin-top:6px}
  .inarr.done{font-size:18px}
}

/* ---------- wallet ---------- */
.wwrap{position:relative}
.wdot{width:7px;height:7px;border-radius:50%;background:var(--green);display:inline-block}
.wmenu{position:absolute;right:0;top:calc(100% + 8px);min-width:230px;background:var(--sheet);border:1px solid var(--line-2);box-shadow:0 20px 40px -24px rgba(0,0,0,.35);padding:6px;z-index:50}
.wmenu .wm-a{font:400 10.5px/1.5 var(--mono);color:var(--muted);word-break:break-all;padding:8px 10px 10px;border-bottom:1px solid var(--line);margin-bottom:4px}
.wmenu a,.wmenu button{display:block;width:100%;text-align:left;background:none;border:0;padding:9px 10px;font-size:13.5px;color:var(--ink-2);cursor:pointer}
.wmenu a:hover,.wmenu button:hover{background:var(--sunk);color:var(--ink)}
.wmodal{position:fixed;inset:0;z-index:80;background:rgba(20,20,20,.28);backdrop-filter:blur(3px);-webkit-backdrop-filter:blur(3px);display:grid;place-items:center;padding:20px;opacity:0;transition:opacity .2s}
.wmodal.on{opacity:1}
.wbox{width:min(420px,100%);background:var(--sheet);background-image:linear-gradient(var(--rule) 1px,transparent 1px);background-size:100% 30px;border:1px solid var(--line-2);box-shadow:0 40px 80px -40px rgba(0,0,0,.45);padding:22px 22px 18px;transform:translateY(10px);transition:transform .25s cubic-bezier(.2,.8,.2,1)}
.wmodal.on .wbox{transform:none}
.wh{display:flex;justify-content:space-between;align-items:center}
.wh h3{margin:0;font:600 24px var(--serif)}
.wx{border:0;background:none;font-size:24px;line-height:1;color:var(--muted);cursor:pointer}
.wbox > p{margin:8px 0 16px;font-size:13.5px;color:var(--ink-2)}
.wlist{display:grid;gap:8px}
.wopt{display:flex;align-items:center;gap:12px;padding:12px 14px;border:1px solid var(--line-2);background:var(--sheet);cursor:pointer;text-align:left;transition:border-color .15s}
.wopt:hover{border-color:var(--ink)}
.wopt b{font:600 17px var(--serif)}
.wopt em{margin-left:auto;font:400 10.5px var(--mono);letter-spacing:.08em;text-transform:uppercase;font-style:normal;color:var(--muted)}
.wopt[disabled]{opacity:.7}
.wbox .wnote{margin:14px 0 0;font:400 10.5px/1.5 var(--mono);letter-spacing:.04em;color:var(--muted)}
.wlogo{width:34px;height:34px;border-radius:9px;flex:none;object-fit:cover}
.lede br{display:block}
@media (max-width:720px){.lede br{display:none}}

/* ---------- CA, X, alerts ---------- */
.cabar{display:inline-flex;align-items:center;gap:14px;margin-top:22px;padding:9px 14px;border:1px solid var(--line-2);background:var(--sheet);font:400 12px var(--mono);flex-wrap:wrap}
.cabar .cl{font-size:10px;letter-spacing:.14em;color:var(--muted)}
.cabar code{font:500 12.5px var(--mono);color:var(--ink)}
.cabar a{color:var(--green);text-decoration:underline;text-underline-offset:3px}
.foot-cols .ca code{color:var(--ink)}
.xtop{display:grid;place-items:center;width:34px;height:34px;color:var(--ink-2)}
.xtop svg{width:16px;height:16px}
.xtop:hover{color:var(--ink)}
.xtop[hidden]{display:none}
.alerts-grid{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.4fr);gap:20px;align-items:start}
.gate{display:flex;flex-direction:column;align-items:flex-start;gap:14px;padding:28px}
.gate h3{margin:0;font:600 28px/1.1 var(--serif)}
.gate h3 i{font-weight:400;color:#6B7178;font-size:20px}
.gate p{margin:0;color:var(--ink-2)}
.gate .btn + .btn{margin-top:-4px}
.feed{position:relative}
.feed-row{display:grid;grid-template-columns:130px 1fr auto;gap:14px;align-items:center;padding:14px 20px;border-bottom:1px solid var(--rule);font-size:14px}
.feed-row:last-child{border-bottom:0}
.feed-row:hover{background:#F6F9F7}
.feed-row .ft{font:500 10px var(--mono);letter-spacing:.1em;text-transform:uppercase;color:var(--muted)}
.feed-row.t-amendment .ft,.feed-row.t-critical .ft{color:var(--red)}
.feed-row.t-untested .ft{color:var(--ink)}
.feed-row .fa{font:400 11px var(--mono);color:var(--faint);white-space:nowrap}
.feed.locked .feed-row{filter:blur(4px);pointer-events:none;user-select:none}
.feed.locked::after{content:"Locked";position:absolute;inset:0;display:grid;place-items:center;font:500 11px var(--mono);letter-spacing:.2em;text-transform:uppercase;color:var(--ink);background:linear-gradient(rgba(255,255,255,.2),rgba(255,255,255,.6))}
@media (max-width:1020px){.alerts-grid{grid-template-columns:1fr}.feed-row{grid-template-columns:1fr auto}.feed-row .ft{grid-column:1/-1}}
.nav a{white-space:nowrap}
@media (max-width:1240px){.slot{display:none}.top-in{gap:24px}}

/* ---------- guilloché background (security printing) ---------- */
.hero{background:radial-gradient(ellipse 60% 70% at 72% 48%,#FFFFFF 0%,rgba(255,255,255,0) 70%),var(--paper)}
.gl{position:absolute;pointer-events:none;z-index:0;opacity:0;animation:glin 2.6s .15s ease forwards}
.gl svg{display:block;width:100%;height:100%;animation:spinr 420s linear infinite}
@keyframes glin{to{opacity:1}}
@keyframes spinr{to{transform:rotate(360deg)}}
.gl-hero{width:min(1080px,96vw);aspect-ratio:1;right:max(-160px,calc(50% - 760px));top:50%;margin-top:calc(min(1080px,96vw) / -2)}
.hero-in,.night .sec,.endcta-in{position:relative;z-index:1}
.night{position:relative;overflow:hidden;background:var(--sunk)}
.gl-night{width:1200px;height:1200px;left:-420px;top:50%;margin-top:-600px}
.endcta{position:relative;overflow:hidden}
.gl-end{width:900px;height:900px;left:50%;top:50%;margin:-450px 0 0 -450px}
.gl-end svg{animation-direction:reverse}
.micro{position:relative;z-index:1;overflow:hidden;white-space:nowrap;border-top:1px solid var(--line);padding:7px 0;background:var(--paper)}
.micro span{display:inline-block;font:500 6.5px/1 var(--mono);letter-spacing:.32em;color:var(--green);opacity:.55;animation:micro 160s linear infinite}
@keyframes micro{to{transform:translateX(-50%)}}
.gband{height:34px;background-image:var(--gband);background-repeat:repeat-x;background-position:center;border-top:1px solid var(--line);opacity:.9}
.foot{border-top:0}
.ruled::before{display:none}
@media (max-width:1020px){.gl-hero{right:-35%;top:auto;bottom:-12%;margin-top:0}}
@media (prefers-reduced-motion:reduce){.gl svg,.micro span{animation:none}}
