/* A tactile, source-backed budget table. */
.budget-game{--paper:#f6f3ed;--edge:#c9bea7;--deep:#002e1d;--accent:#f26522;max-width:1500px;margin:auto}.game-mode-switch{display:inline-flex;padding:5px;background:#f6f3ed;border:1px solid #dcd4c4;border-radius:9px;gap:5px;margin-bottom:28px}.game-mode-switch button{padding:11px 18px;border:0;border-radius:5px;background:transparent;font-size:16px;font-weight:750;color:#002e1d;cursor:pointer}.game-mode-switch button.active{background:#002e1d;color:white}.game-heading{margin:0 0 26px}.game-heading h1{font-size:clamp(36px,4vw,58px);margin:9px 0 14px;line-height:1.15}.game-heading p{font-size:21px;max-width:850px;line-height:1.7}.game-controls{display:flex;align-items:center;gap:17px;flex-wrap:wrap;margin-bottom:22px}.game-controls label{display:flex;align-items:center;gap:10px;font-size:15px;font-weight:700}.game-controls select{font-family:inherit;font-size:15px;max-width:340px;padding:10px;border:1px solid var(--edge);background:white;border-radius:5px;color:var(--deep)}.game-unit-switch{display:flex;gap:4px;margin-right:auto}.game-unit-switch button{border:1px solid #dcd4c4;border-radius:5px;padding:10px 12px;background:white;font-size:14px;color:var(--deep);cursor:pointer}.game-unit-switch button.active{background:var(--paper);border-color:#635b4a;font-weight:750}.budget-game button:focus-visible{outline:3px solid #f26522;outline-offset:4px}.budget-game button:disabled{opacity:.38;cursor:default}.game-score{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));border:1px solid var(--edge);border-radius:10px;overflow:hidden;background:var(--paper);margin-bottom:26px}.game-score>div{padding:20px 23px}.game-score>div+div{border-left:1px solid var(--edge)}.game-score span{display:block;font-size:16px;color:#635b4a;margin-bottom:7px}.game-score strong{font-size:30px;line-height:1.3;font-weight:800;color:var(--deep);font-variant-numeric:tabular-nums}.game-score strong small{display:block;font:600 13px Raleway,sans-serif;margin-top:5px}.game-score-result{background:#002e1d}.game-score .game-score-result span{color:#e2d9c9}.game-score .game-score-result strong{color:white}.game-score.borrowing .game-score-result strong{color:#ffb08b}.game-bank{display:grid;grid-template-columns:145px minmax(0,1fr) 190px;align-items:center;gap:22px;padding:24px;border:1px solid var(--edge);border-radius:12px;background:var(--paper);position:relative;margin-bottom:30px;box-shadow:0 5px 0 #e9e1d3}.game-bank-note{text-align:center}.game-bank-note .game-note{width:130px;height:91px;margin:0 auto 12px;transform:rotate(-5deg)}.game-bank-copy h2{font-size:29px;margin:6px 0 9px}.game-bank-copy p{font-size:16px;line-height:1.7;max-width:650px}.game-bank-rule{padding-left:20px;border-left:1px solid var(--edge)}.game-bank-rule strong{display:block;font-size:16px;line-height:1.6;color:var(--deep)}.game-bank-rule span{display:block;font-size:13px;color:#635b4a;margin-top:10px;line-height:1.6}.game-denominations{display:flex;gap:7px;margin-top:14px;flex-wrap:wrap}.game-denominations button{font:700 15px Raleway,sans-serif;padding:7px 13px;border:1px solid var(--edge);border-radius:5px;color:var(--deep);background:#fff;cursor:pointer}.game-denominations button.active{background:var(--deep);border-color:var(--deep);color:white}.game-return{border:0;background:transparent;color:var(--deep);font-size:14px;font-weight:750;padding:6px;cursor:pointer}.game-envelopes{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px 20px}.game-envelope{position:relative;min-width:0;padding:23px 21px 0;border:1px solid #bbae91;border-radius:11px;background:linear-gradient(155deg,#fffdf8,#f0e9d8);box-shadow:0 5px 0 #e6dfd1;isolation:isolate;transition:box-shadow .15s,outline .15s;overflow:hidden}.game-envelope:before{content:'';position:absolute;inset:0;border:5px double #bbae9128;border-radius:10px;pointer-events:none;z-index:-1}.game-envelope-top{display:flex;gap:12px;align-items:flex-start;min-height:64px;color:var(--deep)}.game-envelope-top svg{flex:none;width:31px;height:34px;margin-top:1px}.game-envelope-top h2{font-size:23px;line-height:1.22;margin:0;flex:1;overflow-wrap:anywhere}.game-info{border:1px solid #a99b7d;border-radius:50%;font:700 13px Georgia,serif;color:#635b4a;background:transparent;width:22px;height:22px;cursor:pointer;flex:none}.game-envelope-amount{font-size:30px;font-weight:800;color:var(--deep);line-height:1.25;font-variant-numeric:tabular-nums;margin:13px 0 3px}.game-envelope-amount small{font-size:14px;font-weight:600;white-space:nowrap}.game-actual{font-size:13px!important;color:#635b4a;margin:4px 0 10px!important;line-height:1.5}.game-envelope-delta{font-size:14px!important;color:#635b4a;min-height:23px;margin:0 0 13px!important}.game-envelope-pocket{position:relative;display:flex;align-items:center;justify-content:center;gap:20px;height:105px;padding-bottom:18px}.game-note{display:flex;align-items:center;justify-content:center;flex-direction:column;position:relative;width:112px;height:77px;border:3px double #657a62;border-radius:5px;background:repeating-linear-gradient(25deg,#ece8d8 0,#ece8d8 2px,#e3e2ce 2px,#e3e2ce 3px);box-shadow:0 3px 4px #002e1d1a;cursor:grab;touch-action:none;user-select:none;-webkit-user-select:none;flex-shrink:0;color:#244635;transform:rotate(-3deg);transition:transform .15s;z-index:2;font-family:Raleway,sans-serif}.game-note strong{font-size:30px;line-height:1.1;background:#e9e6d6b0;padding:0 6px}.game-note-corner{position:absolute;left:6px;top:3px;font-size:10px;font-weight:700}.game-note-action{font-size:10px;font-weight:750;margin-top:5px;white-space:nowrap}.game-note:hover{transform:rotate(0) translateY(-3px)}.game-note.selected{outline:3px solid #f26522;outline-offset:3px;transform:rotate(0) translateY(-5px)}.game-round{height:36px;width:36px;display:grid;place-items:center;border:1px solid var(--edge);border-radius:50%;background:#fffdf7e0;font-size:23px;color:#002e1d;cursor:pointer;flex:none;z-index:3}.game-round:hover{border-color:#f26522;color:#b34c1c}.game-envelope-lip{position:absolute;bottom:0;height:25px;left:0;right:0;border-top:1px solid #bbae91;background:linear-gradient(160deg,#e4dac2,#f5eedf);box-shadow:0 -2px 4px #7862451a;z-index:4;pointer-events:none}.game-envelope.picked{outline:2px solid #f26522;outline-offset:2px}.game-envelope.changed{animation:game-arrived .6s ease}.game-drop-active{outline:4px solid #f26522!important;outline-offset:3px!important;box-shadow:0 0 0 7px #f2652218!important}.game-drag-ghost{position:fixed;left:0;top:0;z-index:10000;pointer-events:none;background:#e9e6d6;border:3px double #34593b;color:#002e1d;padding:17px 25px;font-size:23px;font-weight:800;border-radius:6px;box-shadow:0 10px 30px #002e1d30}.game-dragging,.game-dragging *{cursor:grabbing!important;user-select:none!important}.game-interest{display:flex;align-items:center;gap:16px;background:#f6f3ed;border:1px dashed #c3b699;border-radius:8px;padding:20px 24px;margin:25px 0;color:var(--deep)}.game-interest>svg{width:30px;height:34px;flex:none}.game-interest strong{font-size:18px}.game-interest p{font-size:15px;margin:5px 0 0;line-height:1.6}.game-after-move{padding:20px 24px;border-left:4px solid #f26522;margin:28px 0;background:var(--paper);border-radius:0 7px 7px 0;line-height:1.7;font-size:17px}.game-after-move p{font-size:16px;margin:8px 0 0;color:#635b4a}.game-funding{margin:35px 0;padding:27px;border:1px solid var(--edge);border-radius:10px}.game-funding h2{font-size:30px;margin:7px 0 12px}.game-funding p{font-size:16px;line-height:1.7}.game-funding-options{display:flex;gap:12px;margin-top:22px;flex-wrap:wrap}.game-funding-options button{padding:15px 20px;border:1px solid var(--edge);color:var(--deep);background:var(--paper);font:700 16px Raleway,sans-serif;border-radius:6px;cursor:pointer}.game-funding-options button.active{color:white;background:var(--deep);border-color:var(--deep)}.game-funding-explanation{background:var(--paper);padding:15px;margin-top:17px}.game-home{padding:28px;border:1px solid var(--edge);border-top:5px solid #f26522;border-radius:10px}.game-home-heading{display:flex;align-items:center;gap:20px;justify-content:space-between;flex-wrap:wrap}.game-home h2{font-size:31px;line-height:1.25;margin:8px 0 14px}.game-home>p{font-size:14px;line-height:1.6;color:#635b4a}.game-horizons{display:flex;gap:4px}.game-horizons button{padding:10px 11px;background:white;border:1px solid var(--edge);border-radius:4px;font:700 14px Raleway,sans-serif;cursor:pointer}.game-horizons button.active{color:white;background:var(--deep);border-color:var(--deep)}.game-home-cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:15px;margin-top:25px}.game-home-cards article{background:var(--paper);padding:20px;border-radius:7px;border:1px solid #e0d8c7;min-width:0}.game-home-cards span{display:block;font-size:15px;line-height:1.6;min-height:48px}.game-home-cards strong{font-size:27px;display:block;margin:15px 0 8px;overflow-wrap:anywhere;font-variant-numeric:tabular-nums}.game-home-cards .gain{color:#002e1d}.game-home-cards .loss{color:#ac4518}.game-home-cards p{font-size:14px;line-height:1.6}.game-future-summary{display:flex;gap:25px;flex-wrap:wrap;margin:22px 0;font-size:15px;line-height:1.7}.game-sources{font-size:16px;line-height:1.8;padding:24px;background:var(--paper);border-radius:8px;margin-top:30px}.game-sources summary{font-size:18px;color:var(--deep);font-weight:750;cursor:pointer}.game-sources p{margin:15px 0}.lab>.game-mode-switch{margin-bottom:20px}
@keyframes game-arrived{0%{box-shadow:0 0 0 5px #f2652255}100%{box-shadow:0 5px 0 #e6dfd1}}
@media(min-width:1600px){.game-envelopes{grid-template-columns:repeat(4,minmax(0,1fr))}}
@media(max-width:1200px){.game-envelopes{grid-template-columns:repeat(2,minmax(0,1fr))}.game-bank{grid-template-columns:135px minmax(0,1fr)}.game-bank-rule{grid-column:1/-1;border-left:0;border-top:1px solid var(--edge);padding:12px 0 0;display:flex;gap:20px;justify-content:space-between}.game-bank-rule span{margin:0;max-width:260px}.game-score strong{font-size:26px}}
@media(max-width:700px){.game-heading h1{font-size:36px}.game-heading p{font-size:19px}.game-mode-switch{display:flex}.game-mode-switch button{font-size:14px;padding:10px 12px;flex:1}.game-controls{gap:12px}.game-controls label{display:block;width:100%}.game-controls select{display:block;margin-top:5px;width:100%;max-width:none;font-size:16px}.game-unit-switch{width:100%}.game-unit-switch button{flex:1;font-size:14px}.game-score{grid-template-columns:1fr 1fr}.game-score>div{padding:15px}.game-score .game-score-result{grid-column:auto;display:block}.game-score>div:nth-child(3){border-left:0;border-top:1px solid var(--edge)}.game-score>div:nth-child(4){border-top:1px solid var(--edge)}.game-score strong{font-size:26px}.game-score strong small{font-size:12px}.game-score span{font-size:14px}.game-bank{grid-template-columns:105px minmax(0,1fr);padding:18px 14px;gap:14px}.game-bank-note .game-note{width:100px;height:80px}.game-bank-copy h2{font-size:24px}.game-bank-copy p{font-size:15px}.game-bank-copy .mini-label{font-size:10px}.game-denominations{gap:5px}.game-denominations button{font-size:13px;padding:7px 9px}.game-bank-rule{display:block}.game-bank-rule span{max-width:none;margin-top:6px}.game-return{font-size:13px}.game-envelopes{gap:22px 12px}.game-envelope{padding:16px 12px 0}.game-envelope-top{min-height:72px;gap:6px}.game-envelope-top svg{width:23px;height:28px}.game-envelope-top h2{font-size:19px}.game-info{width:20px;height:20px;font-size:11px}.game-envelope-amount{font-size:28px}.game-envelope-amount small{font-size:12px;display:block;margin-top:2px}.game-envelope-delta{font-size:12px!important}.game-actual{font-size:11px!important}.game-envelope-pocket{gap:6px;height:98px}.game-envelope-pocket .game-note{width:74px;height:67px}.game-note strong{font-size:27px}.game-note-action{font-size:8px}.game-round{width:29px;height:29px;font-size:21px}.game-home,.game-funding{padding:20px}.game-home h2,.game-funding h2{font-size:28px}.game-home-cards{grid-template-columns:1fr}.game-home-cards span{min-height:0}.game-home-cards strong{font-size:29px;margin-top:10px}.game-future-summary{display:block}.game-home .button{white-space:normal;line-height:1.6}.game-home-heading{gap:10px}.game-funding-options{display:grid}.game-after-move{font-size:16px;padding:17px}.game-interest{padding:18px}.game-interest strong{font-size:16px}}
@media(max-width:380px){.game-envelopes{grid-template-columns:1fr}.game-envelope-top{min-height:45px}.game-envelope-top h2{font-size:23px}.game-envelope-amount small{display:inline}.game-envelope-pocket{gap:25px}.game-envelope-pocket .game-note{width:112px;height:77px}.game-note-action{font-size:10px}.game-round{width:36px;height:36px}}
@media(prefers-reduced-motion:reduce){.game-envelope,.game-note{transition:none;animation:none}}
@media print{.game-controls,.game-bank,.game-mode-switch,.game-envelope-pocket,.game-funding-options,.game-horizons{display:none}.game-envelopes{grid-template-columns:repeat(3,1fr)}.game-envelope{break-inside:avoid}.game-score-result{background:#eee!important}.game-score .game-score-result span,.game-score .game-score-result strong{color:black!important}}
.game-live{position:sticky;top:5px;z-index:20;display:grid;grid-template-columns:repeat(4,minmax(0,1fr)) auto;gap:14px;align-items:center;padding:14px 18px;margin:0 0 24px;background:#fffdf8f5;backdrop-filter:blur(9px);border:1px solid var(--edge);border-bottom:3px solid #f26522;border-radius:7px;box-shadow:0 4px 10px #002e1d12}.game-live small{display:block;font-size:12px;line-height:1.5;color:#635b4a}.game-live strong{display:block;font-size:18px;color:#002e1d;white-space:nowrap;font-variant-numeric:tabular-nums}.game-live .loss{color:#ac4518}.game-live-detail{font:700 13px Raleway,sans-serif;color:#002e1d;border:0;background:transparent;cursor:pointer;padding:8px 0}#game-households{scroll-margin-top:110px}@media(max-width:700px){.game-live{grid-template-columns:1fr 1fr;gap:9px;padding:12px}.game-live small{font-size:11px}.game-live strong{font-size:16px}.game-live-detail{display:none}#game-households{scroll-margin-top:135px}}@media print{.game-live{display:none}}

.game-home-cards .game-home-start{font-size:13px;line-height:1.7;margin:12px 0 6px}.game-home-start b{white-space:nowrap}.game-future-summary>p{flex:1 1 40%}@media(max-width:1100px) and (min-width:701px){.game-score{grid-template-columns:1fr 1fr}.game-score>div:nth-child(3){border-left:0;border-top:1px solid var(--edge)}.game-score>div:nth-child(4){border-top:1px solid var(--edge)}}
