:root{
  --cream:#f4ecdc; --paper:#fbf6ea; --ink:#2b2117; --muted:#7a6a55; --rule:#d9c8a6;
  --gold:#b07d1f; --amber:#d39a2b; --wine:#8c2f24; --sage:#4f6b3a;
  --serif:'Source Serif 4',Georgia,serif; --display:'Playfair Display',Georgia,serif; --sans:'DM Sans',system-ui,sans-serif;
}
*{box-sizing:border-box;margin:0;padding:0}
body{background:var(--cream);color:var(--ink);font:17px/1.6 var(--serif);
  background-image:radial-gradient(rgba(120,90,40,.06) 1px,transparent 1px);background-size:5px 5px}
.paper{max-width:1120px;margin:28px auto;background:var(--paper);padding:34px clamp(18px,4vw,56px) 40px;box-shadow:0 1px 0 var(--rule),0 30px 60px -30px rgba(80,55,20,.35);border:1px solid #eadcbf}
.masthead{text-align:center;border-bottom:3px double var(--ink);padding-bottom:14px}
.mast-top,.mast-bot{font:700 11px var(--sans);letter-spacing:.22em;text-transform:uppercase;color:var(--muted);display:flex;justify-content:center;gap:14px;flex-wrap:wrap}
.mast-top{border-bottom:1px solid var(--rule);padding-bottom:10px}
.dot{color:var(--gold)}
.masthead h1{font:800 clamp(52px,10vw,104px)/1 var(--display);letter-spacing:-.02em;margin:14px 0 8px}
.masthead h1 em{font-style:italic;font-weight:600;color:var(--gold)}
.notice{margin:22px 0 6px;background:#f3e3bf;border-left:5px solid var(--amber);padding:14px 18px;font-size:15px}
.notice strong{font-family:var(--display);font-size:17px}
.layout{display:grid;grid-template-columns:5fr 7fr;gap:48px;margin-top:28px}
.inputs{border-right:1px solid var(--rule);padding-right:40px}
.kicker{font:700 12px var(--sans);letter-spacing:.24em;text-transform:uppercase;color:var(--gold);border-bottom:1px solid var(--ink);padding-bottom:6px;margin-bottom:16px}
.tabs{display:grid;grid-template-columns:1fr 1fr;border:1px solid var(--ink)}
.tabs button{background:transparent;border:0;font:600 17px var(--display);padding:11px 6px;cursor:pointer;color:var(--ink)}
.tabs button.on{background:var(--ink);color:var(--paper)}
.lede{font-style:italic;color:var(--muted);margin:16px 0 18px;font-size:16px}
.lede::first-letter{font:800 44px/0.8 var(--display);float:left;margin:6px 8px 0 0;color:var(--gold);font-style:normal}
form label{display:grid;grid-template-columns:1fr auto 120px;align-items:end;gap:8px;padding:10px 0;border-bottom:1px dotted var(--rule);font-size:16px}
form label[hidden]{display:none}
form label span{font:500 12px var(--sans);color:var(--muted);padding-bottom:6px}
form input{width:100%;border:0;border-bottom:2px solid var(--ink);background:transparent;font:600 20px var(--display);color:var(--ink);text-align:right;padding:2px 2px;outline:none;font-variant-numeric:lining-nums tabular-nums}
form input:focus{border-bottom-color:var(--gold);background:#f6ebd2}
form input.bad{border-bottom-color:var(--wine);color:var(--wine)}
.errors{color:var(--wine);font-size:14.5px;margin-top:12px;font-style:italic}
.hero-num{display:grid;grid-template-columns:1fr 1fr;gap:24px;border-bottom:1px solid var(--rule);padding-bottom:18px}
.cap{font:700 11px var(--sans);letter-spacing:.18em;text-transform:uppercase;color:var(--muted)}
.fig{font:800 clamp(38px,5.5vw,58px)/1.05 var(--display);margin-top:4px;font-variant-numeric:lining-nums}
.fig.gold{color:var(--gold)}
.ledger{width:100%;border-collapse:collapse;margin-top:8px}
.ledger td{padding:9px 0;border-bottom:1px dotted var(--rule);font-size:16px}
.ledger td:last-child{text-align:right;font:600 18px var(--display);font-variant-numeric:lining-nums tabular-nums}
.ledger .em td:last-child{color:var(--gold)}
.ledger .sub{display:block;font-size:13px;color:var(--muted);font-style:italic}
.pull{margin:26px 0;padding:18px 22px;border-top:3px solid var(--wine);border-bottom:1px solid var(--wine);font:italic 600 20px/1.45 var(--display);color:var(--wine);background:linear-gradient(#f7e9df,#fbf3ea)}
.pull b{font-style:normal;font-family:var(--sans);font-size:11px;letter-spacing:.2em;display:block;margin-bottom:6px}
.pull small{display:block;font:italic 400 15px var(--serif);color:var(--ink);margin-top:8px}
.sec{font:600 24px var(--display);margin:26px 0 10px}
.assign{columns:2;column-gap:28px;column-rule:1px solid var(--rule);font-size:15.5px}
.assign p{margin-bottom:10px;break-inside:avoid}
.table-wrap{overflow-x:auto}
.scen{width:100%;border-collapse:collapse;font-size:15px;min-width:460px}
.scen th{font:700 11px var(--sans);letter-spacing:.14em;text-transform:uppercase;color:var(--muted);text-align:right;border-bottom:1.5px solid var(--ink);padding:6px 6px}
.scen th:first-child,.scen td:first-child,.scen th:nth-child(3),.scen td:nth-child(3){text-align:left}
.scen td{padding:7px 6px;border-bottom:1px dotted var(--rule);text-align:right;font-variant-numeric:lining-nums tabular-nums}
.scen tr.now td{background:#f3e3bf}
.pos{color:var(--sage);font-weight:600} .neg{color:var(--wine);font-weight:600}
.fine{font-size:13.5px;color:var(--muted);font-style:italic;margin-top:14px}
.colophon{margin-top:36px;border-top:3px double var(--ink);padding-top:16px;font-size:14px;color:var(--muted)}
.colophon strong{color:var(--ink)}
.sig{text-align:center;font:700 11px var(--sans);letter-spacing:.2em;text-transform:uppercase;margin-top:14px;color:var(--gold)}
@media (max-width:880px){.layout{grid-template-columns:1fr;gap:28px}.inputs{border-right:0;padding-right:0}.assign{columns:1}}
@media (max-width:480px){.paper{margin:0;border:0}.hero-num{grid-template-columns:1fr;gap:12px}form label{grid-template-columns:1fr auto 100px}body{font-size:16px}.pull{font-size:18px}}
