*,*::before,*::after{box-sizing:border-box}
:root{
  --ground:#DDE9DC;
  --surface:#FAFDF8;
  --ink:#13251E;
  --ink-soft:#42564C;
  --rule:#8FAE99;
  --rule-soft:#BDD1C0;
  --blue:#22408F;
  --on-blue:#FFFFFF;
  --red:#B4362D;
  --shade:rgba(10,25,18,.5);
  --paper:#FFFFFF;
  --paper-ink:#1A1A1A;
  --paper-soft:#5C5C5C;
  --paper-rule:#B8B8B8;
  --paper-blue:#22408F;
  --display:"Rockwell","Rockwell Nova","Roboto Slab","Georgia","Times New Roman",serif;
  --text:system-ui,-apple-system,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;
  color-scheme:light dark;
}
@media (prefers-color-scheme:dark){
  :root{
    --ground:#0F1A16;
    --surface:#182A23;
    --ink:#E6EFE8;
    --ink-soft:#A8BBAF;
    --rule:#4A6658;
    --rule-soft:#2A3D34;
    --blue:#A9C0FF;
    --on-blue:#0F1A16;
    --red:#F0877B;
    --shade:rgba(0,0,0,.75);
  }
}
html{-webkit-text-size-adjust:100%;text-size-adjust:100%;scroll-behavior:smooth}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
body{margin:0;background:var(--ground);color:var(--ink);font:400 1.0625rem/1.55 var(--text)}
[hidden]{display:none !important}
a{color:var(--blue);text-underline-offset:.18em}
:focus-visible{outline:3px solid var(--blue);outline-offset:2px}
img{max-width:100%;height:auto}
.wrap{max-width:76rem;margin:0 auto;padding:0 1.15rem}
.skip{position:absolute;left:-999rem;top:0;background:var(--surface);color:var(--ink);padding:.6rem .9rem;z-index:10}
.skip:focus{left:.5rem;top:.5rem}

/* Top bar */
.top{display:flex;align-items:center;justify-content:space-between;gap:.5rem 1.5rem;flex-wrap:wrap;padding:1.05rem 0 .9rem;border-bottom:1px solid var(--rule)}
.brand{display:inline-flex;align-items:center;gap:.5rem;font:700 1.2rem/1 var(--display);color:var(--ink);text-decoration:none}
.brand img{width:1.45rem;height:1.45rem;flex:none}
.nav{display:flex;flex-wrap:wrap;gap:.3rem 1.25rem;font-size:.95rem}
.nav a{color:var(--ink);text-decoration:none;padding:.2rem 0;border-bottom:2px solid transparent}
.nav a:hover{border-bottom-color:var(--red)}
.nav a[aria-current="page"]{border-bottom-color:var(--red);font-weight:600}
@media (max-width:27rem){.nav{gap:.3rem .85rem;font-size:.88rem}}

/* Intro */
.intro{padding:2.1rem 0 1.7rem}
h1{font:700 clamp(2.05rem,1.25rem + 3.4vw,3.3rem)/1.08 var(--display);letter-spacing:-.012em;margin:0 0 1rem;max-width:17ch;text-wrap:balance}
.lede{font-size:1.2rem;line-height:1.5;margin:0 0 .9rem;max-width:34rem}
.private{margin:0;max-width:34rem;border-left:3px solid var(--blue);padding-left:.75rem;font-weight:600}
.aka{margin:.9rem 0 0;max-width:34rem;color:var(--ink-soft);font-size:.95rem}

/* Desk layout */
.hero-paper{margin:0 0 2.2rem;max-height:14rem;overflow:hidden;-webkit-mask-image:linear-gradient(#000 62%,transparent);mask-image:linear-gradient(#000 62%,transparent)}
@media (min-width:62rem){
  .desk{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,31rem);gap:0 4rem;align-items:start}
  .col-right{position:sticky;top:1.25rem;padding-top:2.5rem}
  .col-right #proof{max-width:min(31rem,calc((100vh - 8.5rem) * .7727))}
  .hero-paper{display:none}
}

/* Steps: the red rule is the ledger margin, and it carries the sequence */
.steps{list-style:none;margin:0;padding:0}
.step{display:grid;grid-template-columns:2.1rem minmax(0,1fr)}
.step-num{font:700 1.5rem/1.15 var(--display)}
.step-body{border-left:2px solid var(--red);padding:0 0 2.5rem 1rem;min-width:0}
.step:last-child .step-body{padding-bottom:.6rem}
.step h2{font:700 1.35rem/1.2 var(--display);margin:.1rem 0 .55rem}
.step p{margin:0 0 .9rem}
.note{color:var(--ink-soft)}
.problem{color:var(--red);font-weight:600}
.tally{font-weight:600}
.small{font-size:.92rem}

/* Fields */
label,.label{display:block;font-weight:600;font-size:.95rem;margin:0 0 .3rem}
.hint{font-weight:400;color:var(--ink-soft)}
input[type=text],select,textarea{width:100%;font:inherit;font-size:1rem;color:var(--ink);background:var(--surface);border:1px solid var(--rule);border-radius:4px;padding:.62rem .7rem}
textarea{resize:vertical;min-height:5.5rem}
#paste{min-height:9rem;font:400 .9rem/1.45 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;white-space:pre;overflow:auto;tab-size:24}
.fields{display:grid;gap:.9rem 1rem;grid-template-columns:minmax(0,1fr)}
@media (min-width:34rem){
  .fields{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}
  .fields .wide{grid-column:1/-1}
}
.field{min-width:0}
.check{display:flex;gap:.55rem;align-items:flex-start;font-weight:400;font-size:1rem;margin:.2rem 0}
.check input{width:1.15rem;height:1.15rem;margin:.22rem 0 0;flex:none;accent-color:var(--blue)}
fieldset{border:0;margin:0;padding:0;min-width:0}
legend{font-weight:600;font-size:.95rem;padding:0;margin:0 0 .35rem}
details.more{margin:1rem 0 .4rem;border-top:1px solid var(--rule-soft);border-bottom:1px solid var(--rule-soft);padding:.7rem 0}
details.more summary{cursor:pointer;font-weight:600}
details.more .fields{margin-top:.9rem}
.tag{display:inline-block;font-size:.72rem;font-weight:700;line-height:1.3;border:1px solid currentColor;border-radius:3px;padding:0 .35rem;margin-left:.4rem;color:var(--blue);vertical-align:.08em}
#logoThumb{height:2.4rem;max-width:8rem;object-fit:contain;background:#fff;border:1px solid var(--rule);border-radius:3px;padding:.15rem}

/* Buttons */
.row{display:flex;flex-wrap:wrap;gap:.6rem .8rem;align-items:center}
.row.end{justify-content:flex-end}
.gap-top,.step .gap-top{margin-top:.7rem}
.gap-top-lg{margin-top:1rem}
.btn{display:inline-block;font:600 1rem/1.2 var(--text);padding:.72rem 1.05rem;border-radius:4px;border:1.5px solid var(--ink);background:transparent;color:var(--ink);cursor:pointer;text-decoration:none;text-align:center}
.btn.primary{background:var(--blue);border-color:var(--blue);color:var(--on-blue)}
.btn.small{padding:.45rem .75rem;font-size:.9rem}
.btn.quiet{border-color:transparent;text-decoration:underline;text-underline-offset:.2em;padding-left:.15rem;padding-right:.15rem}
.btn[disabled],.btn[aria-disabled="true"]{opacity:.5;cursor:not-allowed}
.status{margin-top:1rem}
.status p{margin:0 0 .5rem}

/* Tally, drawn the way a ledger closes a column */
.ledger{margin:0 0 .8rem;border-top:1px solid var(--rule);max-width:24rem}
.ledger div{display:flex;justify-content:space-between;gap:1rem;padding:.4rem 0;border-bottom:1px solid var(--rule-soft)}
.ledger dt{margin:0}
.ledger dd{margin:0;font-weight:600;font-variant-numeric:tabular-nums}
.ledger .sum{border-bottom:3px double var(--ink)}
details.skips{margin:0 0 .6rem}
details.skips summary{cursor:pointer;color:var(--red);font-weight:600}
details.skips ul{margin:.5rem 0 0;padding-left:1.2rem;color:var(--ink-soft)}

/* The statement, drawn to scale: 1pt of paper is 1/612 of the sheet's width */
.paper{background:var(--paper);color:var(--paper-ink);container-type:inline-size;overflow:hidden;font-family:Helvetica,Arial,"Liberation Sans",sans-serif;box-shadow:0 1px 1px rgba(10,25,18,.14),0 22px 44px -22px var(--shade)}
.sheet{position:relative;--pt:calc(100cqw / 612);min-height:calc(var(--pt) * 792);font-size:calc(var(--pt) * 10.5);line-height:1.38}
.sheet .lh{position:absolute;left:calc(var(--pt) * 72);right:calc(var(--pt) * 72);top:calc(var(--pt) * 36);display:flex;gap:calc(var(--pt) * 14);align-items:flex-start}
.sheet .lh img{display:block;max-width:calc(var(--pt) * 150);max-height:calc(var(--pt) * 56)}
.sheet .lh-name{font-weight:700;font-size:calc(var(--pt) * 15);line-height:1.2;padding-top:calc(var(--pt) * 3)}
.sheet .lh-line{font-size:calc(var(--pt) * 9.5);line-height:calc(var(--pt) * 12);color:var(--paper-soft)}
.sheet .lh-rule{position:absolute;left:calc(var(--pt) * 72);right:calc(var(--pt) * 72);top:calc(var(--pt) * 118);border-top:1px solid var(--paper-rule)}
.sheet .win{position:absolute;left:calc(var(--pt) * 27);top:calc(var(--pt) * 163.5);width:calc(var(--pt) * 324);height:calc(var(--pt) * 81);border:1px dashed var(--paper-blue);border-radius:calc(var(--pt) * 7)}
.sheet .win span{position:absolute;right:calc(var(--pt) * 7);top:calc(var(--pt) * 4);font-size:calc(var(--pt) * 7.5);color:var(--paper-blue)}
.sheet .rcpt{position:absolute;left:calc(var(--pt) * 72);top:calc(var(--pt) * 184);font-size:calc(var(--pt) * 11);line-height:calc(var(--pt) * 13.5)}
.sheet .sdate{position:absolute;right:calc(var(--pt) * 72);top:calc(var(--pt) * 185);font-size:calc(var(--pt) * 10)}
.sheet .body{padding:calc(var(--pt) * 271) calc(var(--pt) * 72) calc(var(--pt) * 48)}
.sheet .title{font-weight:700;font-size:calc(var(--pt) * 14);margin-bottom:calc(var(--pt) * 8)}
.sheet p{margin:0 0 calc(var(--pt) * 5)}
.sheet p.fine{font-size:calc(var(--pt) * 9.5)}
.sheet table{width:100%;border-collapse:collapse;margin:calc(var(--pt) * 8) 0 calc(var(--pt) * 13);font-size:calc(var(--pt) * 10)}
.sheet th{text-align:left;font-size:calc(var(--pt) * 9);color:var(--paper-soft);border-bottom:1px solid var(--paper-ink);padding:0 calc(var(--pt) * 8) calc(var(--pt) * 3) 0}
.sheet td{padding:calc(var(--pt) * 1.6) calc(var(--pt) * 8) calc(var(--pt) * 1.6) 0;line-height:calc(var(--pt) * 10.8);border-bottom:1px solid #DEDEDE}
.sheet th.amt,.sheet td.amt{text-align:right;padding-right:0;font-variant-numeric:tabular-nums}
.sheet tr.more td{color:var(--paper-soft);font-style:italic}
.sheet tr.total td{font-weight:700;font-size:calc(var(--pt) * 10.5);border-bottom:max(3px,calc(var(--pt) * 2.5)) double var(--paper-ink)}
.sheet .sig{margin-top:calc(var(--pt) * 12)}
.sheet .sig .gap{height:calc(var(--pt) * 20)}
.sheet .sig .who{font-weight:700}
.sheet .sig .role{color:var(--paper-soft);font-size:calc(var(--pt) * 9.5)}
.sheet .missing{background:#FFF0A8}
.sheet .made{position:absolute;left:calc(var(--pt) * 72);bottom:calc(var(--pt) * 20);font-size:calc(var(--pt) * 7.5);color:var(--paper-soft)}
.paper-scroll.zoom{overflow:auto;max-height:75vh;border:1px solid var(--rule);background:var(--paper)}
.paper-scroll.zoom .paper{width:46rem;box-shadow:none}
.proof-cap{display:flex;justify-content:space-between;align-items:center;gap:.6rem;flex-wrap:wrap;margin:.85rem 0 .3rem;font-weight:600;font-size:.95rem}
.pager{display:flex;gap:.4rem}
.window-note{font-size:.9rem;margin:0 0 1.4rem}
#proofInline{margin-bottom:.2rem}

/* Dialogs */
dialog{border:1px solid var(--rule);border-radius:6px;background:var(--surface);color:var(--ink);padding:1.4rem;max-width:30rem;width:calc(100% - 2rem)}
dialog::backdrop{background:rgba(8,20,15,.6)}
dialog h2{font:700 1.4rem/1.2 var(--display);margin:0 0 .6rem}
dialog p{margin:0 0 .8rem}
.gets{margin:0 0 .9rem;padding-left:1.2rem}
.gets li{margin:.25rem 0}
.code{border-top:1px solid var(--rule-soft);margin-top:1.1rem;padding-top:1rem}
.code input{flex:1 1 10rem;width:auto;min-width:0}
.code .problem{margin:.6rem 0 0}
.pay-note{margin-top:.8rem}
.keep{border:1px solid var(--rule);border-radius:4px;background:var(--ground);padding:.8rem .9rem;margin:0 0 .9rem}
.keep p{margin:0 0 .5rem}
.keep .codeline{font:700 1.15rem/1.3 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;letter-spacing:.04em;margin:0 0 .5rem;overflow-wrap:anywhere}
.keep .linkline{font-size:.88rem;overflow-wrap:anywhere;color:var(--ink-soft);margin:0 0 .7rem}

/* Sections under the tool */
.band{border-top:1px solid var(--rule);margin-top:3rem;padding:2.2rem 0 .4rem}
.band h2{font:700 1.5rem/1.2 var(--display);margin:0 0 .8rem}
.band > p{max-width:44rem}
.plans{display:grid;gap:1rem;grid-template-columns:minmax(0,1fr);max-width:52rem;margin:1.1rem 0 .6rem}
@media (min-width:44rem){.plans{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}}
.plan{background:var(--surface);border:1px solid var(--rule);border-radius:6px;padding:1.2rem 1.25rem 1.3rem}
.plan.pass{border:2px solid var(--blue)}
.plan h3{font:700 1.15rem/1.2 var(--display);margin:0 0 .15rem}
.plan .price{font:700 2rem/1.1 var(--display);margin:.2rem 0 .1rem}
.plan .price small{font:400 .95rem/1.2 var(--text);color:var(--ink-soft)}
.plan ul{margin:.8rem 0 0;padding-left:1.15rem}
.plan li{margin:.3rem 0}
.callout{border-left:3px solid var(--blue);background:var(--surface);padding:.9rem 1rem;margin:1.4rem 0;max-width:44rem;border-radius:0 4px 4px 0}
.callout p{margin:0}
.callout p + p{margin-top:.5rem}
.guides{list-style:none;margin:.6rem 0 0;padding:0;display:grid;gap:.8rem;grid-template-columns:minmax(0,1fr);max-width:60rem}
@media (min-width:44rem){.guides{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}}
.guides a{display:block;height:100%;background:var(--surface);border:1px solid var(--rule-soft);border-radius:6px;padding:.95rem 1.05rem;text-decoration:none;color:var(--ink)}
.guides a:hover{border-color:var(--blue)}
.guides strong{display:block;font:700 1.05rem/1.25 var(--display);color:var(--blue);margin-bottom:.25rem}
.guides span{color:var(--ink-soft);font-size:.95rem}

/* Questions */
.faq{border-top:1px solid var(--rule);margin-top:2.6rem;padding:2.2rem 0 1rem}
.faq h2{font:700 1.5rem/1.2 var(--display);margin:0 0 .8rem}
.faq details{border-bottom:1px solid var(--rule-soft);padding:.85rem 0;max-width:44rem}
.faq summary{font-weight:600;cursor:pointer}
.faq p{margin:.6rem 0 0}

/* Footer */
.foot{border-top:1px solid var(--rule);margin-top:2.6rem;padding:1.6rem 0 2.6rem;color:var(--ink-soft);font-size:.95rem}
.foot-links{display:flex;flex-wrap:wrap;gap:.35rem 1.4rem;margin:0 0 1rem;padding:0;list-style:none}
.foot-links a{color:var(--ink)}
.foot p{margin:0 0 .35rem;max-width:44rem}

/* Guide and policy pages */
.prose{max-width:44rem;padding:2.1rem 0 0}
.prose h1{max-width:22ch;font-size:clamp(1.9rem,1.25rem + 2.6vw,2.8rem)}
.prose .lede{max-width:none}
.prose h2{font:700 1.45rem/1.2 var(--display);margin:2.3rem 0 .6rem;padding-top:.2rem}
.prose h3{font:700 1.12rem/1.25 var(--display);margin:1.6rem 0 .4rem}
.prose p{margin:0 0 1rem}
.prose ul,.prose ol{margin:0 0 1.1rem;padding-left:1.3rem}
.prose li{margin:.35rem 0}
.prose .meta{color:var(--ink-soft);font-size:.92rem;margin:-.3rem 0 1.4rem}
.prose figure{margin:1.5rem 0}
.prose figure img{display:block;width:100%;background:#fff;box-shadow:0 1px 1px rgba(10,25,18,.14),0 22px 44px -22px var(--shade)}
.prose figcaption{color:var(--ink-soft);font-size:.92rem;margin-top:.7rem}
.prose table{border-collapse:collapse;width:100%;margin:0 0 1.2rem;font-size:.97rem}
.prose th,.prose td{text-align:left;vertical-align:top;padding:.5rem .7rem .5rem 0;border-bottom:1px solid var(--rule-soft)}
.prose th{border-bottom:1px solid var(--ink);font-size:.9rem}
.table-scroll{overflow-x:auto}
.copybox{position:relative;background:var(--surface);border:1px solid var(--rule);border-radius:6px;margin:0 0 1.2rem}
.copybox pre{margin:0;padding:1rem 1.05rem;white-space:pre-wrap;overflow-wrap:anywhere;font:400 .92rem/1.5 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace}
.copybox .bar{display:flex;justify-content:space-between;align-items:center;gap:.6rem;border-bottom:1px solid var(--rule-soft);padding:.45rem .6rem .45rem 1.05rem;font-weight:600;font-size:.9rem}
.cta{background:var(--surface);border:1px solid var(--rule);border-left:3px solid var(--red);border-radius:0 6px 6px 0;padding:1.15rem 1.25rem 1.25rem;margin:2rem 0}
.cta h2,.cta h3{font:700 1.25rem/1.2 var(--display);margin:0 0 .4rem;padding:0}
.cta p{margin:0 0 .9rem}
.cta p:last-child{margin-bottom:0}
.sources{font-size:.95rem}
.sources li{margin:.3rem 0}
.center-page{padding:4rem 0 2rem;max-width:36rem}
