:root{--ink: #16202c;--ink-soft: #2c3a48;--muted: #5c6b77;--paper: #e9edef;--surface: #ffffff;--surface-2: #f6f9fa;--rule: #d2dadf;--rule-soft: #e3e9ec;--star-red: #c8232c;--star-red-deep: #9c1a21;--chi-blue: #41b6e6;--chi-blue-ink: #0e6ba8;--green: #2e7d4f;--gold: #b07d12;--font-display: "Libre Franklin", system-ui, -apple-system, sans-serif;--font-serif: "Newsreader", Georgia, "Times New Roman", serif;--font-mono: "Space Mono", ui-monospace, "SFMono-Regular", monospace;--r: 5px;--r-lg: 9px;--shadow: 0 1px 2px rgba(22, 32, 44, .04), 0 6px 18px rgba(22, 32, 44, .05)}*{box-sizing:border-box}body{margin:0;background-color:var(--paper);background-image:linear-gradient(var(--rule-soft) 1px,transparent 1px),linear-gradient(90deg,var(--rule-soft) 1px,transparent 1px);background-size:28px 28px;background-position:-1px -1px;color:var(--ink);font-family:var(--font-serif);font-size:16px;line-height:1.55;-webkit-font-smoothing:antialiased}#app{max-width:760px;margin:0 auto;padding:28px 20px 72px}body.layout-play #app{max-width:1140px}.gap-hero__value,.meter__value,.choice__sub,.led__amt,.card__source{font-family:var(--font-mono);font-variant-numeric:tabular-nums}.masthead{margin-bottom:22px}.masthead__top{display:flex;align-items:center;justify-content:space-between;gap:12px}.masthead__eyebrow{font-family:var(--font-display);font-size:.7rem;font-weight:700;letter-spacing:.16em;text-transform:uppercase;color:var(--muted)}.masthead__stars{display:inline-flex;gap:4px;font-size:.82rem;line-height:1}.masthead__star{color:var(--rule)}.masthead__star--on{color:var(--star-red)}.masthead__title{font-family:var(--font-display);font-weight:800;font-size:clamp(1.7rem,4vw,2.4rem);letter-spacing:-.022em;line-height:1.02;margin:10px 0 0;color:var(--ink)}.masthead__title .star{color:var(--star-red);margin-right:.12em}.masthead__tag{font-family:var(--font-display);font-weight:500;color:var(--muted);margin:6px 0 0;font-size:.98rem}.masthead__rule{margin-top:14px;height:5px;border-top:2px solid var(--chi-blue);border-bottom:2px solid var(--chi-blue)}.meters{display:flex;flex-wrap:wrap;align-items:center;gap:12px 28px;background:var(--ink);color:#eef3f6;border-radius:var(--r-lg);padding:14px 20px;margin-bottom:20px}body.layout-play .meters{position:sticky;top:0;z-index:5;box-shadow:0 6px 18px #16202c2e}.gap-hero{display:flex;flex-direction:column;text-align:left}.gap-hero__label{font-family:var(--font-display);font-size:.66rem;text-transform:uppercase;letter-spacing:.12em;color:#9fb2bf}.gap-hero__value{font-size:1.7rem;font-weight:700;letter-spacing:-.01em;color:#ff6b6b}.meter--gap{flex:1 1 220px;min-width:170px}.meter__bar{margin-top:7px;height:7px;background:#ffffff24;border-radius:999px;overflow:hidden}.meter__fill{height:100%;background:var(--chi-blue);transition:width .45s cubic-bezier(.22,.61,.36,1)}.meter__label{font-family:var(--font-display);font-size:.64rem;text-transform:uppercase;letter-spacing:.1em;color:#9fb2bf}.meter__value{font-weight:700}.meters>.meter:not(.meter--gap){display:flex;align-items:baseline;gap:8px;flex:0 0 auto}.meters>.meter:not(.meter--gap) .meter__value{font-size:1.02rem;color:#fff}.meters>.meter--warn .meter__value{color:#ffd479}.meters>.meter--danger .meter__value{color:#ff6b6b}.meters__warn{flex:1 1 100%;display:flex;flex-wrap:wrap;gap:6px 16px;margin-top:2px;padding-top:10px;border-top:1px solid rgba(255,255,255,.12)}.meters__warn-item{font-family:var(--font-display);font-size:.8rem;font-weight:700;letter-spacing:.01em}.meters__warn-item--warn{color:#ffd479}.meters__warn-item--danger{color:#ff8a8a}.statedep{display:flex;flex-direction:column;gap:4px;border-radius:var(--r);padding:11px 14px;margin:14px 0}.statedep--state{background:#fdecec;border:1px solid #f1c5c5;border-left:3px solid var(--star-red)}.statedep--mixed{background:#fbf4e7;border:1px solid #ecdcbb;border-left:3px solid var(--gold)}.statedep__tag{font-family:var(--font-display);font-weight:800;font-size:.72rem;text-transform:uppercase;letter-spacing:.08em}.statedep--state .statedep__tag{color:var(--star-red-deep)}.statedep--mixed .statedep__tag{color:var(--gold)}.statedep__line{font-family:var(--font-display);font-size:.92rem;font-weight:500;color:var(--ink-soft)}.flash{background:var(--ink);color:#fff;font-family:var(--font-display);font-weight:600;font-size:.96rem;border-radius:var(--r);border-left:4px solid var(--star-red);padding:12px 16px;margin-bottom:16px;box-shadow:var(--shadow);animation:flash-in .32s cubic-bezier(.22,.61,.36,1)}@keyframes flash-in{0%{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:translateY(0)}}.ledger__springfield{display:flex;justify-content:space-between;align-items:baseline;gap:10px;margin:14px 0 0;padding-top:10px;border-top:1px solid var(--rule)}.ledger__springfield-label{font-family:var(--font-display);font-size:.74rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--star-red-deep)}.ledger__springfield-amt{font-family:var(--font-mono);font-variant-numeric:tabular-nums;font-weight:700;font-size:.85rem;color:var(--star-red-deep)}h2,h3{font-family:var(--font-display);letter-spacing:-.01em}.splash{background:var(--surface);border:1px solid var(--rule);border-top:5px solid var(--star-red);border-radius:var(--r-lg);padding:28px 30px 26px;box-shadow:var(--shadow)}.splash__eyebrow{font-family:var(--font-display);font-size:.7rem;font-weight:700;text-transform:uppercase;letter-spacing:.14em;color:var(--star-red);margin:0 0 6px}.splash__title{font-family:var(--font-display);font-weight:800;font-size:clamp(1.6rem,3.4vw,2.1rem);letter-spacing:-.02em;margin:0 0 10px;color:var(--ink)}.splash__lede{font-size:1.12rem;line-height:1.5;color:var(--ink-soft);margin:0 0 22px}.splash__stats{display:grid;grid-template-columns:repeat(6,1fr);gap:10px;margin:0 0 24px;padding:16px 0;border-top:1px solid var(--rule);border-bottom:1px solid var(--rule)}.splash__stat{display:flex;flex-direction:column;align-items:center;text-align:center;gap:3px}.splash__stat-num{font-family:var(--font-mono);font-variant-numeric:tabular-nums;font-weight:700;font-size:1.5rem;color:var(--chi-blue-ink);line-height:1}.splash__stat-label{font-family:var(--font-display);font-size:.66rem;text-transform:uppercase;letter-spacing:.05em;color:var(--muted);line-height:1.2}.splash__blocks{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin:0 0 22px}.splash__block{background:var(--surface-2);border:1px solid var(--rule);border-left:3px solid var(--rule);border-radius:var(--r);padding:13px 16px}.splash__block--real{border-left-color:var(--chi-blue)}.splash__block--model{border-left-color:var(--star-red)}.splash__block-head{font-family:var(--font-display);font-weight:700;font-size:.96rem;margin:0 0 5px;color:var(--ink)}.splash__block-body{margin:0;font-size:.92rem;line-height:1.5;color:var(--ink-soft)}.splash__sources{margin:0 0 24px;padding:14px 18px;background:var(--surface-2);border:1px solid var(--rule);border-left:4px solid var(--chi-blue);border-radius:var(--r)}.splash__sources-label{display:block;font-family:var(--font-display);font-size:.68rem;font-weight:700;text-transform:uppercase;letter-spacing:.12em;color:var(--chi-blue-ink);margin-bottom:8px}.splash__sources-list{margin:0;padding:0;list-style:none;display:grid;gap:5px}.splash__sources-list li{font-family:var(--font-serif);font-size:1rem;font-weight:500;line-height:1.4;color:var(--ink)}.splash__sources-list li:before{content:"✶";color:var(--star-red);margin-right:.5em;font-size:.8em}.splash__cta{justify-content:center;font-weight:700}.splash__byline{margin-top:20px;padding-top:16px;border-top:1px solid var(--rule);text-align:center}.splash__byline-name{font-family:var(--font-display);font-weight:700;margin:0;color:var(--ink)}.splash__byline-note{font-size:.85rem;color:var(--muted);margin:3px 0 8px}.splash__links{margin:0;font-family:var(--font-display);font-size:.9rem}.splash__link{color:var(--chi-blue-ink);text-decoration:none;font-weight:600}.splash__link:hover{text-decoration:underline}@media (max-width: 680px){.splash__stats{grid-template-columns:repeat(3,1fr);gap:14px 10px}.splash__blocks{grid-template-columns:1fr}}.targets{display:grid;gap:14px}.targets>h2{font-size:1.15rem;margin:6px 0 2px}.target{display:flex;flex-direction:column;gap:5px;text-align:left;background:var(--surface);border:1px solid var(--rule);border-left:4px solid var(--chi-blue);border-radius:var(--r);padding:18px 20px;cursor:pointer;transition:border-color .15s,transform .12s,box-shadow .15s}.target:hover{border-left-color:var(--star-red);transform:translateY(-1px);box-shadow:var(--shadow)}.target__name{font-family:var(--font-display);font-weight:700;font-size:1.08rem;color:var(--ink)}.target__blurb{color:var(--muted);font-size:.95rem}.intro{background:var(--surface);border:1px solid var(--rule);border-top:4px solid var(--star-red);border-radius:var(--r-lg);padding:26px 26px 24px;box-shadow:var(--shadow)}.intro__stakes{font-family:var(--font-serif);font-size:1.22rem;line-height:1.5;margin:0 0 4px;color:var(--ink)}.intro>h2{font-size:1.05rem;margin:18px 0 8px;color:var(--chi-blue-ink)}.intro__blurb{color:var(--muted);margin:0 0 8px}.gauges{margin:8px 0 18px;padding:0;list-style:none;display:grid;gap:10px}.gauges li{font-size:.94rem;color:var(--muted);padding-left:16px;border-left:2px solid var(--rule)}.gauges__name{font-family:var(--font-display);font-weight:700;color:var(--ink)}.play{display:grid;grid-template-columns:minmax(0,1fr) 332px;gap:24px;align-items:start}.play__main{min-width:0}.play__aside{position:sticky;top:98px;max-height:calc(100vh - 116px);overflow:auto;display:flex;flex-direction:column;gap:18px}.play__aside .map,.play__aside .ledger{margin:0}.card{background:var(--surface);border:1px solid var(--rule);border-radius:var(--r-lg);padding:24px 26px;box-shadow:var(--shadow)}.card__act{font-family:var(--font-display);margin:0 0 5px;font-size:.7rem;text-transform:uppercase;letter-spacing:.12em;font-weight:700;color:var(--star-red)}.card__act:before{content:"✶ "}.card__step{font-family:var(--font-mono);margin:0 0 8px;font-size:.72rem;letter-spacing:.02em;color:var(--muted)}.card__title{font-family:var(--font-display);font-weight:800;margin:0 0 14px;font-size:1.42rem;line-height:1.12;letter-spacing:-.018em}.badges{display:flex;flex-wrap:wrap;gap:8px;margin:12px 0}.badge{display:inline-flex;align-items:baseline;gap:6px;max-width:100%;background:var(--surface-2);border:1px solid var(--rule);border-radius:var(--r);padding:5px 11px;font-family:var(--font-display);font-size:.8rem}.badge__label{text-transform:uppercase;letter-spacing:.05em;font-size:.64rem;font-weight:600;color:var(--muted);white-space:nowrap}.badge__value{font-weight:700;color:var(--ink);overflow-wrap:anywhere}.consequence{display:flex;align-items:baseline;gap:9px;background:var(--surface-2);border:1px solid var(--rule);border-left:3px solid var(--chi-blue);border-radius:var(--r);padding:9px 13px;margin:14px 0}.consequence__text{font-family:var(--font-display);font-weight:600;font-size:.95rem}.card__meta p,.card__dissent{color:var(--ink-soft)}.field{margin:14px 0}.field__label{font-family:var(--font-display);font-size:.66rem;text-transform:uppercase;letter-spacing:.1em;color:var(--chi-blue-ink);font-weight:700;margin-bottom:3px}.field__body{margin:0;font-size:.99rem;line-height:1.55;color:var(--ink-soft)}.refs{margin-top:12px;padding-top:10px;border-top:1px dashed var(--rule)}.refs__item{margin:2px 0;font-size:.8rem;color:var(--muted)}.dissent{margin-top:16px;background:#fbf7ec;border:1px solid #ecdfc0;border-left:3px solid var(--gold);border-radius:var(--r);padding:14px 16px}.dissent__speaker{font-family:var(--font-display);margin:0 0 5px;font-weight:700;font-size:.82rem;letter-spacing:.01em;color:var(--ink)}.dissent__arg{margin:0;font-family:var(--font-serif);font-size:.97rem;font-style:italic;line-height:1.55;color:var(--ink-soft)}.choices{display:grid;gap:10px;margin-top:18px}.choice{display:flex;justify-content:space-between;align-items:center;gap:8px;background:var(--surface);border:1px solid var(--rule);border-radius:var(--r);padding:13px 16px;font-family:var(--font-display);font-size:1rem;cursor:pointer;text-align:left;transition:border-color .14s,background .14s,box-shadow .14s}.choice:hover{border-color:var(--star-red);background:snow}.choice--selected{border-color:var(--star-red);background:#fff4f4;box-shadow:inset 4px 0 0 var(--star-red)}.choice__label{font-weight:600}.choice__sub{color:var(--muted)}.card__source{margin:16px 0 0;font-size:.72rem;color:var(--muted)}.nav{display:flex;gap:10px;margin-top:18px}.nav__btn{flex:1;background:var(--surface);border:1px solid var(--rule);border-radius:var(--r);padding:11px 14px;font-family:var(--font-display);font-weight:600;font-size:.95rem;cursor:pointer;transition:border-color .14s,background .14s}.nav__btn:hover:not(:disabled){border-color:var(--ink);background:var(--surface-2)}.nav__btn:disabled{opacity:.38;cursor:default}.nav__btn--end{background:var(--ink);color:#fff;border-color:var(--ink)}.nav__btn--end:hover:not(:disabled){background:var(--star-red);border-color:var(--star-red)}.map{background:var(--surface);border:1px solid var(--rule);border-radius:var(--r-lg);padding:16px 16px 12px;box-shadow:var(--shadow)}.map__title{font-family:var(--font-display);margin:0 0 10px;font-size:.72rem;text-transform:uppercase;letter-spacing:.12em;color:var(--muted)}.map__act{font-family:var(--font-display);margin:12px 0 4px;font-size:.66rem;text-transform:uppercase;letter-spacing:.1em;font-weight:700;color:var(--chi-blue-ink)}.map__act:before{content:"✶ ";color:var(--star-red)}.map__item{display:flex;align-items:baseline;gap:9px;width:100%;text-align:left;background:none;border:none;border-radius:var(--r);padding:6px 9px;cursor:pointer;font-family:var(--font-display);font-size:.88rem;color:var(--ink-soft);transition:background .12s}.map__item:hover{background:var(--surface-2)}.map__item--current{background:#eef6fb;box-shadow:inset 0 0 0 1px var(--chi-blue)}.map__glyph{width:1.1em;text-align:center;font-family:var(--font-mono)}.map__item--adopted .map__glyph{color:var(--green)}.map__item--scaled .map__glyph{color:var(--gold)}.map__item--passed .map__glyph{color:var(--star-red)}.map__item--undecided{color:var(--muted)}.map__name{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.map__status{font-size:.72rem;color:var(--muted);white-space:nowrap}.ledger{background:var(--surface);border:1px solid var(--rule);border-radius:var(--r-lg);padding:16px 18px;box-shadow:var(--shadow)}.ledger__title{font-family:var(--font-display);font-size:.72rem;text-transform:uppercase;letter-spacing:.1em;color:var(--muted);margin:14px 0 6px}.ledger__title:first-child{margin-top:0}.ledger__list{margin:0;padding:0;list-style:none}.ledger__list li{display:flex;justify-content:space-between;align-items:baseline;gap:10px;padding:3px 0;border-bottom:1px dotted var(--rule-soft);font-size:.88rem}.led__amt{font-size:.85rem;color:var(--green);font-weight:700;white-space:nowrap}.ending{background:var(--surface);border:1px solid var(--rule);border-top:5px solid var(--star-red);border-radius:var(--r-lg);padding:28px 28px 24px;box-shadow:var(--shadow)}.ending h2{font-family:var(--font-display);font-weight:800;font-size:1.7rem;letter-spacing:-.02em;margin:0 0 8px}.ending p{color:var(--ink-soft)}.ending__shortfall{font-family:var(--font-mono);font-size:1.05rem;font-weight:700;color:var(--ink);margin:14px 0 6px}.ending__drama{font-family:var(--font-serif);font-style:italic;font-size:1.05rem;color:var(--ink-soft)}.ending .choice{margin-top:12px;justify-content:center}@media (max-width: 860px){body.layout-play #app{max-width:760px}.play{grid-template-columns:minmax(0,1fr)}.play__aside{position:static;max-height:none;overflow:visible}body.layout-play .meters{position:static;box-shadow:none}}:focus-visible{outline:2px solid var(--chi-blue-ink);outline-offset:2px}@media (prefers-reduced-motion: reduce){*{transition:none!important}}.sitenav{display:flex;flex-wrap:wrap;gap:6px 16px;margin:10px 0 18px;font-family:var(--font-display);font-size:.9rem;font-weight:600}.sitenav__link{color:var(--chi-blue-ink);text-decoration:none;padding:2px 0;border-bottom:2px solid transparent}.sitenav__link[aria-current=page]{color:var(--ink);border-bottom-color:var(--star-red)}.page__soon{color:var(--muted);margin:0 0 14px}.page__back{font-family:var(--font-display);font-weight:600;color:var(--chi-blue-ink)}
