:root{--ink:#17130e;--ink-soft:#221c14;--parchment:#e9dfc9;--parchment-dim:#c7bba2;--muted:#9d927f;--gold:#c9a45c;--gold-bright:#e3c37b;--crimson:#8e332b;--line:#c9a45c3d;--line-strong:#c9a45c80;--panel:#120f0ac7;--panel-strong:#0f0c08ed;--serif:Georgia, "Iowan Old Style", "Palatino Linotype", "Book Antiqua", serif;--sans:"Inter", "Segoe UI", system-ui, -apple-system, sans-serif;--mono:"SFMono-Regular", "Cascadia Mono", Consolas, monospace}*{box-sizing:border-box}html,body,#root{width:100%;height:100%;margin:0}body{color:var(--parchment);font-family:var(--sans);-webkit-font-smoothing:antialiased;-webkit-user-select:none;user-select:none;background:#0b0906;overflow:hidden}button{font:inherit;color:inherit}.app{position:fixed;inset:0;overflow:hidden}.game-canvas{outline:none;width:100%;height:100%;display:block;position:absolute;inset:0}.vignette{z-index:1;pointer-events:none;background:radial-gradient(#0000 42%,#00000061 100%),linear-gradient(#00000047,#0000 18% 78%,#00000057);position:absolute;inset:0}.hud{z-index:2;pointer-events:none;font-family:var(--sans);position:absolute;inset:0}.hud-top-left{text-shadow:0 2px 14px #000000d9;align-items:center;gap:12px;display:flex;position:absolute;top:20px;left:24px}.sigil{border:1px solid var(--line-strong);clip-path:polygon(50% 0,100% 18%,100% 60%,50% 100%,0 60%,0 18%);background:#14100bb3;width:34px;height:40px;position:relative;box-shadow:0 0 24px #c9a45c1f}.sigil span{background:var(--crimson);clip-path:polygon(50% 0,100% 18%,100% 60%,50% 100%,0 60%,0 18%);position:absolute;inset:7px}.sigil span:before,.sigil span:after{content:"";background:var(--gold-bright);position:absolute}.sigil span:before{width:1px;height:16px;top:4px;left:50%;transform:translate(-50%)}.sigil span:after{width:16px;height:1px;top:8px;left:4px}.place-kicker{letter-spacing:.2em;text-transform:uppercase;color:var(--gold);font-size:9px}.place-name{font-family:var(--serif);letter-spacing:.04em;color:var(--parchment);font-size:19px}.hud-top-right{text-shadow:0 2px 14px #000000d9;align-items:center;gap:16px;display:flex;position:absolute;top:18px;right:24px}.clock{flex-direction:column;align-items:flex-end;line-height:1.05;display:flex}.clock-day{letter-spacing:.18em;text-transform:uppercase;color:var(--gold);font-size:9px}.clock-time{font-family:var(--serif);color:var(--parchment);font-size:24px}.compass{border:1px solid var(--line);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:#110e0a8c;border-radius:50%;width:52px;height:52px;position:relative;box-shadow:inset 0 0 18px #00000080}.compass-ring{position:absolute;inset:0}.compass-ring span{font-family:var(--mono);color:var(--parchment-dim);letter-spacing:.04em;font-size:7px;position:absolute}.compass-n{top:4px;left:50%;transform:translate(-50%);color:var(--gold-bright)!important}.compass-e{top:50%;right:5px;transform:translateY(-50%)}.compass-s{bottom:4px;left:50%;transform:translate(-50%)}.compass-w{top:50%;left:5px;transform:translateY(-50%)}.compass-arrow{border-left:3px solid #0000;border-right:3px solid #0000;border-top:5px solid var(--gold-bright);width:0;height:0;position:absolute;top:-1px;left:50%;transform:translate(-50%)}.perf{font-family:var(--mono);color:#e9dfc985;letter-spacing:.03em;flex-direction:column;align-items:flex-end;gap:1px;font-size:9px;display:flex}.crosshair{background:linear-gradient(var(--parchment), var(--parchment)) center top / 1px 7px no-repeat, linear-gradient(var(--parchment), var(--parchment)) center bottom / 1px 7px no-repeat, linear-gradient(var(--parchment), var(--parchment)) left center / 7px 1px no-repeat, linear-gradient(var(--parchment), var(--parchment)) right center / 7px 1px no-repeat;opacity:.85;filter:drop-shadow(0 0 2px #000000e6);width:24px;height:24px;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.hotbar-wrap{pointer-events:none;flex-direction:column;align-items:center;display:flex;position:absolute;bottom:18px;left:50%;transform:translate(-50%)}.selected-name{border:1px solid var(--line);color:var(--parchment);font-family:var(--serif);letter-spacing:.06em;text-shadow:0 1px 5px #000c;background:#110e0ab8;border-radius:2px;margin-bottom:7px;padding:4px 11px;font-size:13px}.hotbar{-webkit-backdrop-filter:blur(9px);backdrop-filter:blur(9px);pointer-events:auto;background:#100d09c7;border:1px solid #c9a45c4d;border-radius:3px;gap:3px;padding:5px;display:flex;box-shadow:0 14px 40px #0000007a}.slot{cursor:pointer;background:#e9dfc90b;border:1px solid #c9a45c29;border-radius:2px;place-items:center;width:52px;height:52px;padding:0;transition:transform .13s,border-color .13s,background .13s;display:grid;position:relative}.slot:hover{background:#e9dfc917;border-color:#c9a45c73}.slot.selected{border-color:var(--gold);background:#c9a45c24;transform:translateY(-3px);box-shadow:inset 0 0 0 1px #c9a45c8c,0 8px 18px #0006}.slot-number{font-family:var(--mono);color:#e9dfc973;font-size:8px;position:absolute;top:2px;left:4px}.block-icon{image-rendering:pixelated;filter:drop-shadow(0 2px 3px #00000073);display:block;position:relative;overflow:hidden}.block-icon img{object-fit:cover;width:100%;height:100%;image-rendering:pixelated;position:absolute;inset:0}.block-top{height:7px;image-rendering:pixelated;opacity:.94;background-repeat:no-repeat;background-size:100% 100%;border-bottom:1px solid #0000002e;position:absolute;top:0;left:0;right:0}.block-glint{pointer-events:none;background:linear-gradient(135deg,#fff3,#0000 48%,#00000047);position:absolute;inset:0}.campaign-chip{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#0f0c08a8;border:1px solid #c9a45c3d;width:268px;padding:8px 11px 9px;position:absolute;top:80px;left:24px;box-shadow:0 10px 26px #00000038}.campaign-chip-kicker{color:var(--gold);letter-spacing:.18em;text-transform:uppercase;font-size:7px;font-weight:600}.campaign-chip-title{font-family:var(--serif);color:var(--parchment);margin-top:3px;font-size:15px}.campaign-chip-brief{color:var(--muted);margin-top:2px;font-size:8px;line-height:1.4}.orders-panel{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);width:218px;color:var(--muted);background:#0f0c08a8;border:1px solid #c9a45c38;padding:10px 12px;font-size:10px;line-height:1.75;position:absolute;top:150px;left:24px;box-shadow:0 12px 30px #00000040}.orders-title{border-bottom:1px solid var(--line);color:var(--gold);letter-spacing:.18em;text-transform:uppercase;margin-bottom:5px;padding-bottom:5px;font-size:8px;font-weight:600}.orders-panel>div:not(.orders-title){align-items:baseline;gap:7px;transition:color .2s;display:flex}.orders-panel .done{color:var(--parchment)}.order-mark{color:#c9a45c99;width:10px;font-family:var(--mono);font-size:9px}.orders-panel .done .order-mark{color:var(--gold-bright)}.orders-panel kbd{border:1px solid var(--line);font-family:var(--mono);color:var(--parchment-dim);border-radius:2px;margin-left:auto;padding:1px 4px;font-size:7px}.survival{-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:#0f0c0894;border:1px solid #c9a45c2e;flex-direction:column;gap:4px;width:214px;padding:8px 10px;display:flex;position:absolute;bottom:72px;left:24px}.survival-row{letter-spacing:.1em;text-transform:uppercase;color:var(--muted);grid-template-columns:46px 1fr 24px;align-items:center;gap:6px;font-size:8px;display:grid}.survival-label{color:#e9dfc98c}.survival-track{background:#00000073;border:1px solid #c9a45c24;height:5px;overflow:hidden}.survival-fill{height:100%;transition:width .2s linear;display:block}.survival-row.health .survival-fill{background:linear-gradient(90deg,#7e2f28,#c5604f)}.survival-row.stamina .survival-fill{background:linear-gradient(90deg,#8a713c,#d8b872)}.survival-row.hunger .survival-fill{background:linear-gradient(90deg,#6c5a2d,#b99a56)}.survival-value{font-family:var(--mono);text-align:right;color:var(--parchment-dim);font-size:8px}.stockpile{-webkit-backdrop-filter:blur(7px);backdrop-filter:blur(7px);width:194px;color:var(--muted);background:#0f0c089e;border:1px solid #c9a45c2e;padding:9px 11px;font-size:9px;position:absolute;bottom:20px;right:24px}.stockpile-kicker{border-bottom:1px solid var(--line);color:var(--gold);letter-spacing:.18em;text-transform:uppercase;margin-bottom:5px;padding-bottom:5px;font-size:8px;font-weight:600}.stockpile-grid{grid-template-columns:1fr 1fr;gap:3px 10px;display:grid}.stockpile-grid span{white-space:nowrap;align-items:center;gap:5px;display:flex}.stockpile-grid b{color:var(--parchment);font-family:var(--mono);margin-left:auto;font-weight:500}.resource-dot{background:var(--gold);border-radius:50%;width:6px;height:6px}.resource-dot.stone{background:#b9b3a0}.resource-dot.timber{background:#a67c4a}.resource-dot.earth{background:#7b6045}.resource-dot.food{background:#c8a34e}.worker-line{border-top:1px solid var(--line);color:var(--gold-bright);font-family:var(--mono);letter-spacing:.08em;text-transform:uppercase;margin-top:6px;padding-top:5px;font-size:7px}.build-panel{border:1px solid var(--line-strong);text-align:center;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#0f0c08db;min-width:248px;padding:9px 14px;position:absolute;bottom:124px;left:50%;transform:translate(-50%);box-shadow:0 14px 34px #00000059}.build-kicker{color:var(--gold);letter-spacing:.2em;text-transform:uppercase;font-size:7px;font-weight:600}.build-title{font-family:var(--serif);color:var(--parchment);margin:3px 0 2px;font-size:18px}.build-cost{font-family:var(--mono);color:var(--parchment-dim);font-size:8px}.build-hint{letter-spacing:.04em;color:#c76a5f;margin-top:3px;font-size:8px}.build-hint.valid{color:#8fd6b4}.hurt-flash{pointer-events:none;background:radial-gradient(#0000 35%,#8e18128c 100%);animation:.55s ease-out both hurt-flash;position:absolute;inset:0}.hit-marker{pointer-events:none;width:28px;height:28px;animation:.26s ease-out both hit-marker;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.hit-marker:before,.hit-marker:after{content:"";background:#f0d9a4;width:17px;height:2px;position:absolute;top:50%;left:50%;box-shadow:0 0 4px #000c}.hit-marker:before{transform:translate(-50%,-50%)rotate(45deg)}.hit-marker:after{transform:translate(-50%,-50%)rotate(-45deg)}@keyframes hit-marker{0%{opacity:1;transform:translate(-50%,-50%)scale(1.35)}to{opacity:0;transform:translate(-50%,-50%)scale(.9)}}@keyframes hurt-flash{0%{opacity:.95}to{opacity:0}}.hud-hints{letter-spacing:.08em;color:#e9dfc973;text-shadow:0 1px 6px #000000e6;flex-wrap:wrap;gap:5px 11px;max-width:430px;font-size:9px;display:flex;position:absolute;bottom:20px;left:24px}.hud-hints b{color:var(--gold);font-weight:600}.state-chip{border:1px solid var(--line);font-family:var(--mono);letter-spacing:.16em;text-transform:uppercase;color:var(--gold-bright);background:#110e0aa6;padding:3px 8px;font-size:8px;position:absolute;top:88px;right:24px}.state-chip.water{color:#86c3cd;top:114px}.toast{border:1px solid var(--gold);color:#1b1610;font-family:var(--serif);letter-spacing:.03em;background:#e9dfc9f2;border-radius:2px;padding:8px 18px;font-size:14px;animation:.24s both toast-in;position:absolute;top:84px;left:50%;transform:translate(-50%);box-shadow:0 10px 28px #00000059}@keyframes toast-in{0%{opacity:0;transform:translate(-50%,-6px)}to{opacity:1;transform:translate(-50%)}}.banner-badge{border:1px solid var(--line-strong);text-align:center;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#0f0c08db;padding:9px 20px;position:absolute;top:18px;left:50%;transform:translate(-50%);box-shadow:0 12px 34px #0006}.banner-title{font-family:var(--serif);letter-spacing:.18em;text-transform:uppercase;color:var(--gold-bright);font-size:16px}.banner-sub{font-family:var(--mono);letter-spacing:.1em;color:var(--muted);margin-top:3px;font-size:8px}.contract-strip{border:1px solid var(--line-strong);text-align:center;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#0f0c08d1;width:min(390px,100vw - 560px);min-width:280px;padding:8px 18px 9px;position:absolute;top:18px;left:50%;transform:translate(-50%);box-shadow:0 12px 34px #0006}.contract-kicker{color:var(--gold);letter-spacing:.2em;text-transform:uppercase;font-size:7px;font-weight:600}.contract-text{font-family:var(--serif);color:var(--parchment);margin-top:2px;font-size:14px}.contract-reward{font-family:var(--mono);letter-spacing:.08em;color:var(--muted);margin-top:2px;font-size:7px}.settlement-line,.defense-line{border-top:1px solid var(--line);letter-spacing:.1em;text-transform:uppercase;color:#e9dfc980;justify-content:space-between;gap:10px;margin-top:6px;padding-top:5px;font-size:8px;display:flex}.settlement-line b,.defense-line b{color:var(--gold-bright);font-family:var(--mono);font-weight:500}.defense-line{color:#e9dfc96b;border-top:0;margin-top:3px;padding-top:3px;font-size:7px}.treasury-line{font-family:var(--mono);letter-spacing:.08em;text-transform:uppercase;color:#e9dfc975;border-top:0;justify-content:space-between;gap:10px;margin-top:3px;padding-top:3px;font-size:7px;display:flex}.treasury-line b{color:var(--gold-bright);font-weight:500}.treasury-line kbd{border:1px solid var(--line);font-family:var(--mono);color:var(--parchment-dim);border-radius:2px;padding:1px 4px;font-size:6px}.petition-chip{font-family:var(--mono);letter-spacing:.12em;text-transform:uppercase;color:var(--gold-bright);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#1e160ce0;border:1px solid #c9a45c8c;padding:6px 16px;font-size:8px;position:absolute;top:18px;left:50%;transform:translate(-50%);box-shadow:0 10px 26px #00000059}.petition-chip span{color:var(--muted)}.defense-line kbd{border:1px solid var(--line);font-family:var(--mono);color:var(--parchment-dim);border-radius:2px;padding:1px 4px;font-size:6px}.raid-banner{text-align:center;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#230c09d9;border:1px solid #c76a5fa6;min-width:300px;padding:8px 20px 9px;position:absolute;top:18px;left:50%;transform:translate(-50%);box-shadow:0 12px 34px #00000073}.raid-kicker{color:#d07a6d;letter-spacing:.2em;text-transform:uppercase;font-size:7px;font-weight:600}.raid-title{font-family:var(--serif);color:#f0d9c6;margin-top:2px;font-size:16px}.raid-count{font-family:var(--mono);letter-spacing:.1em;color:#d3a08e;margin-top:2px;font-size:8px}.sword-chip{border:1px solid var(--line-strong);font-family:var(--mono);letter-spacing:.12em;text-transform:uppercase;color:var(--gold-bright);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:#0f0c08cc;padding:5px 12px;font-size:8px;position:absolute;bottom:124px;left:50%;transform:translate(-50%)}.sword-chip span{color:var(--muted);margin-left:8px}.crosshair.sword{opacity:1;filter:drop-shadow(0 0 3px #c9a45cd9)}.debug-panel{border:1px solid var(--line);width:238px;font-family:var(--mono);color:var(--parchment-dim);background:#0f0c08e0;padding:10px 12px;font-size:10px;position:absolute;bottom:58px;left:24px;box-shadow:0 12px 30px #00000059}.debug-title{border-bottom:1px solid var(--line);color:var(--gold);letter-spacing:.14em;text-transform:uppercase;margin-bottom:6px;padding-bottom:5px;font-size:8px}.debug-panel>div:not(.debug-title){justify-content:space-between;gap:12px;line-height:1.65;display:flex}.debug-panel span{color:#e9dfc96b}.debug-panel b{color:var(--parchment);font-weight:500}.debug-panel i{color:var(--muted);font-style:normal}.start-screen{z-index:5;background:linear-gradient(90deg,#090705f2 0%,#090705c2 36%,#09070538 68%,#0907059e 100%),linear-gradient(#09070580,#0000 26% 68%,#090705d1);flex-direction:column;padding:clamp(26px,4.5vw,60px);animation:.55s both screen-in;display:flex;position:absolute;inset:0;overflow-y:auto}@keyframes screen-in{0%{opacity:0}to{opacity:1}}.start-inner{grid-template-columns:minmax(0,1.18fr) minmax(330px,.82fr);align-items:center;gap:clamp(28px,5vw,76px);width:100%;max-width:1380px;margin:auto;display:grid}.start-main{max-width:760px}.start-badge{border:1px solid var(--line-strong);color:var(--gold);letter-spacing:.2em;text-transform:uppercase;background:#0f0c0880;align-items:center;margin-bottom:22px;padding:5px 11px;font-size:9px;font-weight:600;display:inline-flex}.start-title{font-family:var(--serif);letter-spacing:.08em;color:var(--parchment);text-shadow:0 16px 50px #0000008c;margin:0;font-size:clamp(58px,9.8vw,132px);font-weight:400;line-height:.82}.start-subtitle{letter-spacing:.58em;text-transform:uppercase;color:var(--gold);margin-top:18px;padding-left:5px;font-size:clamp(11px,1.2vw,15px)}.gold-rule{background:linear-gradient(90deg, var(--gold-bright), #c9a45c1a);width:86px;height:1px;margin:27px 0}.start-lede{max-width:58ch;font-family:var(--serif);color:#e9dfc9d1;margin:0;font-size:clamp(15px,1.35vw,20px);line-height:1.6}.start-actions{flex-wrap:wrap;align-items:center;gap:12px 18px;margin-top:32px;display:flex}.start-button{color:#171208;letter-spacing:.16em;text-transform:uppercase;cursor:pointer;background:linear-gradient(#d8b872,#b8924e);border:1px solid #e3c37b;border-radius:1px;padding:15px 27px;font-size:11px;font-weight:700;transition:transform .15s,filter .15s;box-shadow:0 8px 32px #c9a45c40}.start-button:hover:not(:disabled){filter:brightness(1.07);transform:translateY(-1px)}.start-button:disabled{cursor:wait;opacity:.55}.start-button:active{transform:translateY(0)}.start-note{letter-spacing:.1em;text-transform:uppercase;color:var(--muted);font-size:10px}.start-settings{color:var(--parchment-dim);letter-spacing:.1em;text-transform:uppercase;text-underline-offset:3px;cursor:pointer;background:0 0;border:0;padding:0;font-size:10px;-webkit-text-decoration:underline #c9a45c59;text-decoration:underline #c9a45c59}.start-settings:hover{color:var(--gold-bright)}.start-new{letter-spacing:.08em;color:#e9dfc973;min-height:18px;margin-top:14px;font-size:10px}.start-new-link,.start-new-confirm-button{color:var(--gold);font-family:var(--sans);letter-spacing:.08em;cursor:pointer;text-underline-offset:3px;background:0 0;border:0;padding:0;font-size:10px;-webkit-text-decoration:underline #c9a45c59;text-decoration:underline #c9a45c59}.start-new-link:hover,.start-new-confirm-button:hover{color:var(--gold-bright)}.start-new-confirm{flex-wrap:wrap;align-items:center;gap:9px;display:inline-flex}.start-new-confirm-button{color:#c76a5f;text-decoration-color:#c76a5f66}.start-meta{letter-spacing:.15em;text-transform:uppercase;color:#e9dfc966;flex-wrap:wrap;gap:14px;margin-top:38px;font-size:9px;display:flex}.start-meta span+span:before{content:"·";color:#c9a45c73;margin-right:14px}.start-side{flex-direction:column;justify-self:end;gap:12px;width:100%;max-width:450px;display:flex}.start-panel{-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#0f0c08b3;border:1px solid #c9a45c33;padding:21px 22px;box-shadow:0 24px 60px #0000004d}.panel-kicker{color:var(--gold);letter-spacing:.22em;text-transform:uppercase;margin-bottom:9px;font-size:8px;font-weight:600}.start-panel h2{font-family:var(--serif);color:var(--parchment);margin:0 0 9px;font-size:24px;font-weight:400;line-height:1.2}.start-panel p{color:var(--muted);margin:0;font-size:12px;line-height:1.6}.start-stats{border-top:1px solid var(--line);grid-template-columns:repeat(3,1fr);gap:10px;margin-top:17px;padding-top:14px;display:grid}.start-stats b{font-family:var(--serif);color:var(--gold-bright);font-size:19px;font-weight:400;display:block}.start-stats span{letter-spacing:.13em;text-transform:uppercase;color:#e9dfc973;font-size:8px}.controls-panel{padding-bottom:18px}.control-grid{grid-template-columns:1fr 1fr;gap:7px 16px;display:grid}.control-grid>div{align-items:center;gap:8px;min-width:0;display:flex}.control-grid kbd{border:1px solid var(--line);min-width:30px;color:var(--parchment);font-family:var(--mono);text-align:center;background:#e9dfc90d;border-bottom-width:2px;border-radius:2px;flex:none;padding:3px 5px;font-size:8px}.control-grid span{color:var(--muted);white-space:nowrap;text-overflow:ellipsis;font-size:10px;overflow:hidden}.start-footer{letter-spacing:.18em;text-transform:uppercase;color:#e9dfc959;border-top:1px solid #c9a45c24;justify-content:space-between;gap:16px;width:100%;max-width:1380px;margin:26px auto 0;padding-top:14px;font-size:8px;display:flex}.pause-screen{z-index:6;-webkit-backdrop-filter:blur(7px);backdrop-filter:blur(7px);background:#07050394;place-items:center;padding:24px;animation:.2s both screen-in;display:grid;position:absolute;inset:0}.pause-panel{border:1px solid var(--line-strong);background:#100d09f2;width:min(520px,100%);padding:30px 32px;box-shadow:0 30px 80px #0000008c}.pause-panel h2{font-family:var(--serif);color:var(--parchment);margin:5px 0 7px;font-size:34px;font-weight:400}.pause-lede{font-family:var(--mono);letter-spacing:.12em;text-transform:uppercase;color:var(--muted);margin:0;font-size:9px}.pause-actions{flex-direction:column;gap:9px;margin:25px 0;display:flex}.pause-primary,.pause-secondary,.pause-danger{letter-spacing:.15em;text-transform:uppercase;cursor:pointer;border-radius:1px;padding:14px 16px;font-size:10px;font-weight:600;transition:filter .15s,background .15s}.pause-primary{border:1px solid var(--gold-bright);color:#171208;background:linear-gradient(#d8b872,#b8924e)}.pause-secondary{border:1px solid var(--line-strong);color:var(--parchment);background:0 0}.pause-danger{color:#c76a5f;background:0 0;border:1px solid #c76a5f8c}.pause-primary:hover,.pause-secondary:hover,.pause-danger:hover{filter:brightness(1.12)}.pause-confirm{background:#8e332b1f;border:1px solid #c76a5f73;padding:12px}.pause-confirm p{color:var(--parchment-dim);margin:0 0 10px;font-size:11px;line-height:1.5}.pause-confirm>div{gap:8px;display:flex}.pause-controls{border-top:1px solid var(--line);color:var(--muted);flex-wrap:wrap;gap:8px 14px;padding-top:15px;font-size:9px;display:flex}.pause-controls kbd{border:1px solid var(--line);font-family:var(--mono);color:var(--parchment);background:#e9dfc90d;border-radius:2px;padding:2px 5px;font-size:8px}.pause-hint{color:#e9dfc961;margin:14px 0 0;font-size:9px;line-height:1.5}.pause-saved{color:var(--gold-bright);font-family:var(--mono);letter-spacing:.12em;text-transform:uppercase;margin-top:10px;font-size:9px;display:block}.boot-error{z-index:20;background:#080604e8;place-items:center;padding:24px;display:grid;position:absolute;inset:0}.boot-error-panel{border:1px solid var(--line-strong);background:var(--panel-strong);width:min(560px,100%);padding:30px;box-shadow:0 30px 80px #0000008c}.boot-error-panel h2{font-family:var(--serif);margin:6px 0 10px;font-size:32px;font-weight:400}.boot-error-panel p{color:var(--muted);margin:0 0 16px;font-size:13px;line-height:1.6}.boot-error-panel code{border:1px solid var(--line);color:var(--parchment-dim);font-family:var(--mono);white-space:pre-wrap;word-break:break-word;background:#00000040;padding:10px;font-size:9px;line-height:1.5;display:block}.story-screen{z-index:9;-webkit-backdrop-filter:blur(9px);backdrop-filter:blur(9px);background:radial-gradient(#0c090573 0%,#060402d1 100%);place-items:center;padding:24px;animation:.3s both screen-in;display:grid;position:fixed;inset:0}.story-panel{border:1px solid var(--line-strong);scrollbar-width:thin;scrollbar-color:#c9a45c59 transparent;background:linear-gradient(150deg,#231b11fc,#0e0b07fc 60%,#1b140cfc);width:min(780px,100%);max-height:calc(100vh - 48px);padding:34px 42px 20px;position:relative;overflow-y:auto;box-shadow:0 40px 100px #000000b3}.story-ornament{justify-content:center;align-items:center;gap:10px;height:12px;margin-bottom:14px;display:flex}.story-ornament:before,.story-ornament:after{content:"";background:linear-gradient(90deg,#0000,#c9a45c80,#0000);flex:1;height:1px}.story-ornament span{border:1px solid var(--gold);width:7px;height:7px;transform:rotate(45deg)}.story-header{justify-content:space-between;align-items:baseline;gap:14px;display:flex}.story-act{color:var(--gold-bright);font-family:var(--serif);letter-spacing:.12em;text-transform:uppercase;font-size:14px}.story-kicker{color:var(--muted);letter-spacing:.2em;text-transform:uppercase;font-size:7px}.story-title{font-family:var(--serif);color:var(--parchment);margin:14px 0 4px;font-size:clamp(32px,4.4vw,46px);font-weight:400;line-height:1.02}.story-speaker{color:var(--gold);letter-spacing:.18em;text-transform:uppercase;font-size:8px;font-weight:600}.story-body{border-top:1px solid var(--line);margin-top:20px;padding-top:16px}.story-body p{font-family:var(--serif);color:#e9dfc9d9;margin:0 0 12px;font-size:16px;line-height:1.65}.story-body p:first-of-type:first-letter{float:left;font-family:var(--serif);color:var(--gold-bright);margin:4px 7px 0 0;font-size:3.1em;line-height:.78}.story-choices{border-top:1px solid var(--line);flex-direction:column;gap:7px;margin-top:16px;padding-top:14px;display:flex}.story-choice-kicker{color:var(--gold);letter-spacing:.2em;text-transform:uppercase;margin-bottom:2px;font-size:7px;font-weight:600}.story-choice{text-align:left;cursor:pointer;background:#e9dfc908;border:1px solid #c9a45c42;flex-direction:column;gap:3px;width:100%;padding:12px 14px;transition:border-color .15s,background .15s;display:flex}.story-choice:hover{border-color:var(--gold);background:#c9a45c17}.story-choice-label{font-family:var(--serif);color:var(--parchment);font-size:17px}.story-choice-detail{color:var(--muted);font-size:10px;line-height:1.45}.story-actions{justify-content:flex-end;margin-top:18px;display:flex}.story-continue{border:1px solid var(--gold-bright);color:#171208;letter-spacing:.16em;text-transform:uppercase;cursor:pointer;background:linear-gradient(#d8b872,#b8924e);padding:12px 20px;font-size:9px;font-weight:700}.story-continue:hover{filter:brightness(1.08)}.story-footer{border-top:1px solid var(--line);color:#e9dfc957;font-family:var(--mono);letter-spacing:.08em;text-transform:uppercase;justify-content:space-between;gap:16px;margin-top:22px;padding-top:10px;font-size:7px;display:flex}.story-footer kbd{border:1px solid var(--line);font-family:var(--mono);color:var(--parchment-dim);border-radius:2px;padding:1px 4px;font-size:6px}@media (max-width:600px){.story-panel{padding:24px 20px 16px}.story-header{flex-direction:column;gap:3px}}.court-screen{z-index:8;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#070503b3;place-items:center;padding:20px;animation:.22s both screen-in;display:grid;position:fixed;inset:0}.court-panel{border:1px solid var(--line-strong);background:linear-gradient(140deg,#201910fa,#0f0c08fc 52%,#19130cfa);flex-direction:column;width:min(1180px,100%);height:min(780px,100vh - 40px);display:flex;overflow:hidden;box-shadow:0 40px 100px #000000a6}.court-header{border-bottom:1px solid var(--line);justify-content:space-between;align-items:flex-start;gap:20px;padding:22px 26px 18px;display:flex}.court-kicker{color:var(--gold);letter-spacing:.22em;text-transform:uppercase;font-size:8px;font-weight:600}.court-header h2{font-family:var(--serif);color:var(--parchment);margin:4px 0 3px;font-size:34px;font-weight:400;line-height:1.05}.court-sub{color:var(--muted);font-family:var(--mono);letter-spacing:.08em;text-transform:uppercase;font-size:9px}.court-close{border:1px solid var(--line-strong);color:var(--parchment);letter-spacing:.14em;text-transform:uppercase;cursor:pointer;background:0 0;flex:none;padding:11px 16px;font-size:9px;font-weight:600}.court-close:hover{background:#e9dfc90f}.court-body{flex:1;grid-template-columns:190px minmax(0,1fr);min-height:0;display:grid}.court-tabs{border-right:1px solid var(--line);background:#00000024;flex-direction:column;gap:3px;padding:16px 12px;display:flex}.court-tab{width:100%;color:var(--muted);text-align:left;cursor:pointer;background:0 0;border:1px solid #0000;border-radius:2px;flex-direction:column;align-items:flex-start;gap:2px;padding:10px 11px;display:flex}.court-tab span{font-family:var(--serif);color:var(--parchment-dim);font-size:15px}.court-tab small{letter-spacing:.1em;text-transform:uppercase;color:#e9dfc952;font-size:7px}.court-tab:hover{background:#e9dfc90b}.court-tab.active{background:#c9a45c1a;border-color:#c9a45c66}.court-tab.active span{color:var(--gold-bright)}.court-tab.active small{color:var(--muted)}.court-content{scrollbar-width:thin;scrollbar-color:#c9a45c59 transparent;min-height:0;padding:22px 26px 28px;overflow-y:auto}.court-section{max-width:900px}.court-section-head{margin-bottom:16px}.court-section-head h3{font-family:var(--serif);color:var(--parchment);margin:4px 0;font-size:26px;font-weight:400}.court-section-head p{max-width:68ch;color:var(--muted);margin:0;font-size:11px;line-height:1.55}.court-stat-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;display:grid}.court-stat{background:#e9dfc906;border:1px solid #c9a45c2e;padding:12px 13px}.court-stat span{letter-spacing:.14em;text-transform:uppercase;color:#e9dfc973;font-size:8px;display:block}.court-stat b{font-family:var(--serif);color:var(--gold-bright);margin-top:4px;font-size:25px;font-weight:400;display:block}.court-stat small{letter-spacing:.08em;text-transform:uppercase;color:#e9dfc952;margin-top:1px;font-size:7px;display:block}.court-summary-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin-top:10px;display:grid}.court-summary{border-left:2px solid var(--line-strong);background:#00000029;padding:10px 12px}.court-summary span{letter-spacing:.14em;text-transform:uppercase;color:var(--muted);font-size:7px;display:block}.court-summary b{font-family:var(--serif);color:var(--parchment);margin-top:2px;font-size:18px;font-weight:400;display:block}.court-summary small{color:#e9dfc961;margin-top:2px;font-size:8px;line-height:1.35;display:block}.court-store-line{border:1px solid var(--line);font-family:var(--mono);letter-spacing:.08em;text-transform:uppercase;color:var(--muted);flex-wrap:wrap;gap:7px 18px;margin-top:12px;padding:8px 10px;font-size:8px;display:flex}.court-store-line b{color:var(--parchment);font-weight:500}.court-latest{border-top:1px solid var(--line);margin-top:16px;padding-top:12px}.court-latest p,.chronicle p{font-family:var(--serif);color:var(--parchment-dim);margin:4px 0 0;font-size:12px;line-height:1.45}.council-grid{grid-template-columns:1fr 1fr;gap:8px;display:grid}.council-card{background:#e9dfc906;border:1px solid #c9a45c29;padding:12px 14px}.council-role{color:var(--gold);letter-spacing:.2em;text-transform:uppercase;font-size:7px;font-weight:600}.council-card h3,.court-card h3,.petition-card h3{font-family:var(--serif);color:var(--parchment);margin:5px 0 3px;font-size:18px;font-weight:400}.council-trait{color:var(--gold-bright);font-family:var(--mono);letter-spacing:.08em;text-transform:uppercase;font-size:7px}.council-card p,.court-card p,.petition-card p{color:var(--muted);margin:7px 0 0;font-size:10px;line-height:1.5}.court-two-col{grid-template-columns:1fr 1.2fr;gap:8px;margin-top:12px;display:grid}.court-card,.petition-card{background:#e9dfc908;border:1px solid #c9a45c38;padding:14px}.petition-card{background:#8e332b14;border-color:#c76a5f66}.court-actions{flex-wrap:wrap;align-items:center;gap:7px;margin-top:12px;display:flex}.court-cost{font-family:var(--mono);letter-spacing:.08em;text-transform:uppercase;color:var(--muted);margin-right:auto;font-size:8px}.court-button{border:1px solid var(--gold);color:var(--gold-bright);letter-spacing:.1em;text-transform:uppercase;cursor:pointer;background:#c9a45c1f;padding:8px 11px;font-size:8px;font-weight:600}.court-button:hover:not(:disabled){background:#c9a45c38}.court-button.quiet{border-color:var(--line-strong);color:var(--parchment-dim);background:0 0}.court-button:disabled{opacity:.32;cursor:not-allowed}.policy-group{border-top:1px solid var(--line);margin-top:14px;padding-top:13px}.policy-head h4{font-family:var(--serif);color:var(--parchment);margin:0 0 2px;font-size:19px;font-weight:400}.policy-head p{color:var(--muted);margin:0 0 9px;font-size:10px}.policy-options{grid-template-columns:repeat(3,minmax(0,1fr));gap:7px;display:grid}.policy-option{text-align:left;cursor:pointer;background:#0000001f;border:1px solid #c9a45c29;flex-direction:column;align-items:flex-start;gap:3px;padding:10px 11px;display:flex}.policy-option:hover{border-color:#c9a45c66}.policy-option.selected{border-color:var(--gold);background:#c9a45c1f}.policy-label{font-family:var(--serif);color:var(--parchment);font-size:16px}.policy-option.selected .policy-label{color:var(--gold-bright)}.policy-note{font-family:var(--mono);letter-spacing:.06em;text-transform:uppercase;color:var(--gold);font-size:7px}.policy-detail{color:var(--muted);font-size:9px;line-height:1.4}.faction-grid{grid-template-columns:1fr 1fr;gap:8px;display:grid}.faction-card{background:#e9dfc906;border:1px solid #c9a45c2e;padding:13px 14px}.faction-head{justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.faction-head h3{font-family:var(--serif);color:var(--parchment);margin:0;font-size:19px;font-weight:400}.faction-status{color:var(--gold);font-family:var(--mono);letter-spacing:.14em;text-transform:uppercase;margin-top:2px;font-size:7px}.faction-value{font-family:var(--serif);color:var(--gold-bright);font-size:26px}.relation-track{background:#0000004d;border:1px solid #c9a45c29;height:5px;margin-top:8px;overflow:hidden}.relation-track span{background:linear-gradient(90deg,#8b6b35,#d8b872);height:100%;transition:width .25s;display:block}.faction-card p{color:var(--muted);margin:8px 0 0;font-size:10px;line-height:1.45}.faction-actions{flex-wrap:wrap;gap:6px;margin-top:10px;display:flex}.faction-once{font-family:var(--mono);letter-spacing:.07em;text-transform:uppercase;color:#e9dfc94d;margin-top:7px;font-size:7px}.truce-note{color:#8fd6b4;font-family:var(--mono);letter-spacing:.08em;text-transform:uppercase;border:1px solid #8fd6b44d;margin-top:7px;padding:4px 7px;font-size:7px}.house-grid{grid-template-columns:150px 1fr;align-items:stretch;gap:14px;display:grid}.house-crest{border:1px solid var(--line-strong);clip-path:polygon(50% 0,100% 15%,100% 68%,50% 100%,0 68%,0 15%);background:linear-gradient(160deg,#8e332b8c,#1e160c99);min-height:170px;position:relative}.house-crest span{border:2px solid var(--gold);clip-path:polygon(50% 0,100% 15%,100% 68%,50% 100%,0 68%,0 15%);position:absolute;inset:16px}.house-crest span:before,.house-crest span:after{content:"";background:var(--gold-bright);position:absolute}.house-crest span:before{width:3px;height:70%;top:12%;left:50%;transform:translate(-50%)}.house-crest span:after{width:64%;height:3px;top:34%;left:18%}.legitimacy-line{margin-top:12px}.legitimacy-line>span{font-family:var(--mono);letter-spacing:.08em;text-transform:uppercase;color:var(--muted);justify-content:space-between;font-size:8px;display:flex}.legitimacy-line b{color:var(--gold-bright);font-weight:500}.campaign-log{background:#0000001f;border:1px solid #c9a45c2e;margin-top:14px;padding:13px 14px}.campaign-log-row{color:var(--parchment-dim);font-family:var(--serif);align-items:baseline;gap:8px;margin:5px 0 0;font-size:13px;display:flex}.campaign-log-row span{color:var(--gold-bright);font-family:var(--mono);font-size:9px}.campaign-log-row.failed span{color:#c76a5f}.campaign-log-row.failed{color:#e9dfc973}.chronicle{border-top:1px solid var(--line);margin-top:16px;padding-top:13px}.chronicle p{border-bottom:1px solid #c9a45c14;padding:5px 0}.court-footer{border-top:1px solid var(--line);font-family:var(--mono);letter-spacing:.08em;text-transform:uppercase;color:#e9dfc961;justify-content:space-between;gap:16px;padding:10px 26px;font-size:7px;display:flex}.court-footer kbd{border:1px solid var(--line);font-family:var(--mono);color:var(--parchment-dim);border-radius:2px;padding:1px 4px;font-size:6px}.settings-screen{z-index:10;-webkit-backdrop-filter:blur(9px);backdrop-filter:blur(9px);background:#060402c2;place-items:center;padding:20px;animation:.2s both screen-in;display:grid;position:fixed;inset:0}.settings-panel{border:1px solid var(--line-strong);background:linear-gradient(140deg,#1f180ffc,#0e0b07fc 60%,#1a140cfc);flex-direction:column;width:min(860px,100%);height:min(760px,100vh - 40px);display:flex;overflow:hidden;box-shadow:0 40px 100px #000000a6}.settings-header{border-bottom:1px solid var(--line);justify-content:space-between;align-items:flex-start;gap:20px;padding:20px 26px 16px;display:flex}.settings-kicker{color:var(--gold);letter-spacing:.2em;text-transform:uppercase;font-size:8px;font-weight:600}.settings-header h2{font-family:var(--serif);color:var(--parchment);margin:3px 0 0;font-size:32px;font-weight:400}.settings-body{scrollbar-width:thin;scrollbar-color:#c9a45c59 transparent;flex:1;min-height:0;padding:8px 26px 20px;overflow-y:auto}.settings-section{border-bottom:1px solid var(--line);padding:16px 0 18px}.settings-section:last-child{border-bottom:0}.settings-section-head{margin-bottom:10px}.settings-section-head h3{font-family:var(--serif);color:var(--parchment);margin:0 0 2px;font-size:21px;font-weight:400}.settings-section-head p{color:var(--muted);margin:0;font-size:10px;line-height:1.45}.settings-row{border-top:1px solid #c9a45c14;justify-content:space-between;align-items:center;gap:24px;padding:9px 0;display:flex}.settings-row:first-of-type{border-top:0}.settings-label{color:var(--parchment-dim);font-size:11px;display:block}.settings-value{float:right;color:var(--gold-bright);font-family:var(--mono);margin-left:10px;font-size:9px}.settings-note{color:var(--muted);margin-top:2px;font-size:9px;line-height:1.4;display:block}.settings-slider{display:block}.settings-slider input[type=range]{width:100%;accent-color:var(--gold);cursor:pointer;margin-top:7px}.settings-segmented{flex:none;gap:4px;display:flex}.settings-segmented button{border:1px solid var(--line);color:var(--muted);letter-spacing:.1em;text-transform:uppercase;cursor:pointer;background:0 0;padding:7px 11px;font-size:8px}.settings-segmented button.selected{border-color:var(--gold);color:var(--gold-bright);background:#c9a45c24}.settings-toggle input[type=checkbox]{appearance:none;border:1px solid var(--line-strong);cursor:pointer;background:#00000059;border-radius:999px;flex:none;width:42px;height:22px;margin:0;position:relative}.settings-toggle input[type=checkbox]:after{content:"";background:var(--muted);border-radius:50%;width:14px;height:14px;transition:transform .16s,background .16s;position:absolute;top:3px;left:3px}.settings-toggle input[type=checkbox]:checked{border-color:var(--gold);background:#c9a45c33}.settings-toggle input[type=checkbox]:checked:after{background:var(--gold-bright);transform:translate(20px)}.settings-reset{justify-content:flex-end;margin-top:10px;display:flex}.settings-footer{border-top:1px solid var(--line);color:#e9dfc95c;font-family:var(--mono);letter-spacing:.08em;text-transform:uppercase;justify-content:space-between;gap:16px;padding:10px 26px;font-size:7px;display:flex}.settings-footer kbd{border:1px solid var(--line);color:var(--parchment-dim);border-radius:2px;padding:1px 4px;font-size:6px}.app.high-contrast{--parchment:#fff8e8;--parchment-dim:#eee2c9;--muted:#d6cbb8;--line:#e9cd9694;--line-strong:#e9cd96d6;--panel:#090704f0;--panel-strong:#070503fa}.app.high-contrast .vignette{opacity:.55}.app.reduced-motion *,.app.reduced-motion :before,.app.reduced-motion :after{transition-duration:.001ms!important;animation-duration:.001ms!important;animation-delay:0s!important}@media (max-width:1050px){.start-inner{grid-template-columns:1fr;align-items:start;gap:28px}.start-side{grid-template-columns:1fr 1fr;justify-self:start;align-items:start;max-width:640px;display:grid}.start-screen{overflow-y:auto}}@media (max-width:760px){.start-screen{padding:22px 20px}.start-side{grid-template-columns:1fr}.start-title{letter-spacing:.05em}.start-footer{flex-wrap:wrap}.hud-hints,.perf,.orders-panel,.campaign-chip,.survival,.stockpile,.build-panel,.contract-strip,.raid-banner,.sword-chip{display:none}.hud-top-left{top:14px;left:16px}.hud-top-right{gap:10px;top:13px;right:16px}.compass{width:42px;height:42px}.hotbar-wrap{bottom:12px}.slot{width:42px;height:42px}.selected-name{font-size:11px}.debug-panel{width:210px;bottom:50px;left:16px}}.demo-badge{color:var(--gold-bright);font-family:var(--sans);letter-spacing:.16em;text-transform:uppercase;vertical-align:middle;border:1px solid #c9a45c66;border-radius:1px;margin-left:8px;padding:2px 6px;font-size:8px;font-weight:600;display:inline-block}.save-slots{flex-direction:column;gap:6px;max-width:520px;margin-top:30px;display:flex}.save-slots-head{color:var(--gold);letter-spacing:.22em;text-transform:uppercase;justify-content:space-between;margin-bottom:3px;font-size:8px;font-weight:600;display:flex}.save-slot{color:#e9dfc9b8;text-align:left;cursor:pointer;background:#0f0c088c;border:1px solid #c9a45c29;border-radius:1px;align-items:center;gap:12px;width:100%;padding:9px 12px;transition:border-color .15s,background .15s;display:flex}.save-slot:hover{background:#1d170fb8;border-color:#c9a45c6b}.save-slot.active{box-shadow:inset 2px 0 0 var(--gold);background:#271e13b8;border-color:#c9a45c8c}.save-slot-index{width:22px;color:var(--gold);font-family:var(--serif);text-align:center;flex:none;font-size:15px}.save-slot-body{flex:1;min-width:0}.save-slot-body b{color:#f0e8d6eb;letter-spacing:.08em;text-transform:uppercase;font-size:10px;font-weight:600;display:block}.save-slot-body small{color:#e9dfc980;letter-spacing:.03em;text-overflow:ellipsis;white-space:nowrap;margin-top:2px;font-size:9px;display:block;overflow:hidden}.save-slot-mark{color:#c9a45ca6;letter-spacing:.14em;text-transform:uppercase;flex:none;font-size:8px}.pause-slot{color:#c9a45cb3;letter-spacing:.14em;text-transform:uppercase;margin:4px 0 14px;font-size:9px}.datapack-actions{flex-wrap:wrap;gap:8px;margin-bottom:10px;display:flex}.datapack-error,.datapack-note,.datapack-empty{margin:4px 0 8px;font-size:11px;line-height:1.5}.datapack-error{color:#d58a7e}.datapack-note{color:var(--success,#8fae7c)}.datapack-empty{color:var(--muted)}.datapack-list{flex-direction:column;gap:6px;display:flex}.datapack-row{background:#0f0c0859;border:1px solid #c9a45c29;justify-content:space-between;align-items:flex-start;gap:12px;padding:9px 10px;display:flex}.datapack-row.disabled{opacity:.55}.datapack-text{min-width:0}.datapack-text b{color:#f0e8d6eb;font-size:11px;display:block}.datapack-text b span{color:var(--muted);font-weight:400}.datapack-text small{color:var(--muted);margin-top:3px;font-size:10px;line-height:1.45;display:block}.datapack-controls{flex:none;align-items:center;gap:10px;display:flex}.datapack-toggle{color:var(--parchment-dim);letter-spacing:.1em;text-transform:uppercase;align-items:center;gap:5px;font-size:9px;display:flex}.datapack-remove{color:#c76a5fd9;letter-spacing:.08em;text-underline-offset:2px;cursor:pointer;background:0 0;border:0;padding:0;font-size:9px;text-decoration:underline}@media (max-width:640px){.save-slots{max-width:none}.datapack-row{flex-direction:column}}
