.personal-points{position:absolute;top:22px;left:0;color:#b8cbb4;font:9px monospace;letter-spacing:.5px}
.coin-count{position:absolute;right:0;top:22px;color:#f1ce81;font:700 10px monospace;pointer-events:none}
.shop-open{position:absolute;left:50%;transform:translateX(-50%);bottom:205px;background:#efce8c;color:#1c2c21;padding:14px 20px;min-height:46px;border-radius:5px;font:700 11px monospace;pointer-events:auto}
.shop-screen{z-index:28;overflow-y:auto;align-items:flex-start;padding:24px;background:#071610f2}
.shop-modal{width:900px;max-width:100%;margin:auto;padding:24px;background:#142b23;border:1px solid #d9c08866;border-radius:12px}
.shop-head{display:flex;justify-content:space-between;align-items:center;gap:15px}.shop-head small{color:#a6bda9;font:9px monospace}.shop-head h2{font-size:28px;margin:7px 0}.shop-head strong{color:#f0d090;font:12px monospace;white-space:nowrap}.shop-head button,.shop-item button{min-height:44px;padding:10px 13px;border:1px solid #c4d6b740;background:#d4e1c312;color:#dce6cf;border-radius:4px;font:10px monospace}
.shop-modal>p{font-size:12px;color:#b3cbb9;line-height:1.5}.shop-items{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-top:18px}.shop-item{background:#1d372e;border:1px solid #c4d6b72b;border-radius:7px;overflow:hidden;display:flex;flex-direction:column;padding:8px}.shop-item canvas{width:100%;height:auto;border-radius:4px}.shop-item h3{font-size:13px;margin:12px 2px 6px}.shop-item p{font-size:11px;line-height:1.5;color:#b6c6b3;margin:0 2px 14px;flex:1}.shop-item button{color:#f0d090}.shop-item button:disabled{opacity:.45}.shop-message{min-height:20px;color:#efcf8a!important}
.story-screen{position:absolute;inset:0;z-index:50;background:#071411;overflow:hidden}.story-screen canvas{display:block;width:100%;height:100%}.story-top{position:absolute;inset:calc(22px + var(--safe-top)) 24px auto;display:flex;justify-content:space-between;align-items:center;gap:15px;color:#bfd4b3;font:9px monospace;letter-spacing:1.5px}.story-top button{min-height:44px;background:#13271dcc;border:1px solid #a4b98e55;padding:10px 13px;border-radius:4px;font:10px monospace}.story-caption{position:absolute;bottom:calc(70px + var(--safe-bottom));left:50%;transform:translateX(-50%);width:620px;max-width:calc(100% - 44px);text-align:center;text-shadow:0 2px 10px #000}.story-caption small{color:#d3b77a;font:9px monospace;letter-spacing:2px}.story-caption h2{font-size:32px;line-height:1.15;margin:14px 0 12px}.story-caption p{font-size:14px;line-height:1.65;color:#cfddc8;max-width:520px;margin:auto}.story-bottom{position:absolute;bottom:calc(18px + var(--safe-bottom));left:24px;right:24px;display:flex;align-items:center;gap:20px}.story-bottom>div{height:3px;background:#bbd3a833;flex:1}.story-bottom i{display:block;height:100%;background:#d6c18a}.story-bottom button{min-height:44px;background:none;border:1px solid #bed2aa45;padding:10px 14px;font:10px monospace;letter-spacing:1px}.story-screen::after{content:'';position:absolute;inset:0;background:linear-gradient(transparent 45%,#06150ec9 84%);pointer-events:none}.story-top,.story-caption,.story-bottom{z-index:1}.story-entry{width:100%;margin:8px 0 0;font:10px monospace;letter-spacing:1px;min-height:40px;color:#b7c9a8;background:none}
@media(max-width:700px){.personal-points{font-size:8px}.shop-open{bottom:calc(200px + var(--safe-bottom));font-size:10px}.shop-screen{padding:12px}.shop-modal{padding:16px}.shop-items{grid-template-columns:repeat(2,1fr);gap:9px}.shop-head{flex-wrap:wrap;gap:8px}.shop-head>div{flex:1 1 60%}.shop-head h2{font-size:25px}.shop-head button{margin-left:auto}.shop-item h3{font-size:12px}.story-caption h2{font-size:29px}.story-caption p{font-size:13px}.story-caption{bottom:calc(87px + var(--safe-bottom))}.story-top{left:16px;right:16px;font-size:8px}}
@media(max-height:500px) and (orientation:landscape){.story-caption{bottom:62px;width:75%}.story-caption h2{font-size:23px;margin:7px 0}.story-caption p{font-size:11px;max-width:600px}.story-top{top:10px}.story-bottom{bottom:8px}.shop-open{bottom:25px}.shop-items{grid-template-columns:repeat(4,1fr)}}
/* The shelter is a room you enter; its computer contains the catalogue. */
.house-modal{width:920px;padding:22px;background:linear-gradient(145deg,#1d352c,#12271f);box-shadow:0 20px 90px #0005}
.house-modal .shop-head h2{font-size:30px}.house-modal #house-context{margin:10px 0 4px;font-size:11px}.house-modal .shop-message{margin:6px 0 10px;font-size:11px;min-height:17px}
#house-canvas{display:block;width:min(100%,71vh);height:auto;max-height:none;margin-inline:auto;aspect-ratio:800/650;background:#0d201c;border:1px solid #b3c59f30;border-radius:8px;touch-action:none;cursor:crosshair}
.house-actions,.house-editor-actions{display:flex;justify-content:center;gap:8px;flex-wrap:wrap;margin-top:12px}
.house-modal button{min-height:44px;padding:10px 13px;border:1px solid #c4d6b740;background:#d4e1c312;color:#dce6cf;border-radius:4px;font:10px monospace;cursor:pointer}
.house-modal button:hover{border-color:#daca9e}.house-modal button:disabled{opacity:.4;cursor:default}.house-modal button.selected{background:#d9bf83;color:#172b22;border-color:#eddbab}
.house-actions #house-computer{background:#d4bc84;color:#1a2e24;border:0;font-weight:bold}.house-hint{text-align:center;color:#b1c2ab;font:10px/1.6 monospace;margin:10px 0 0}
.house-inventory{display:flex;flex-wrap:wrap;gap:7px;margin-top:13px;border-top:1px solid #c4d6b72b;padding-top:13px}.house-inventory button{flex:1 1 150px;text-align:left;font-size:10px}.house-inventory p,#house-editor>p{color:#b1c2ab;font-size:11px;line-height:1.6}
.computer-heading{display:flex;justify-content:space-between;gap:15px;align-items:center;margin-top:20px}.computer-heading small{font:9px monospace;color:#9cbfaa;letter-spacing:1px}.computer-heading h3{font-size:23px;margin:6px 0}.house-tabs{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin-top:18px}.house-tabs button{padding:11px 5px;font-size:9px}.house-modal #house-computer-panel>p{color:#b1c2ab;font-size:11px;line-height:1.6}
.house-modal .shop-items{margin-top:12px}.house-modal .shop-item button{font-size:9px;padding:10px 5px;color:#f0d090}.house-modal .shop-item button:disabled{color:#c3c9aa}
@media(max-width:700px){.house-modal{padding:14px}.house-modal .shop-head h2{font-size:25px}.house-modal .shop-head>div{flex-basis:55%}.house-modal .shop-head strong{font-size:10px}.house-modal .shop-head>button{font-size:9px}.house-modal #house-context{font-size:10px;line-height:1.6}#house-canvas{width:min(100%,59vh)}.house-actions button{font-size:9px;padding:9px 10px}.house-hint{font-size:9px}.house-tabs{gap:5px}.house-tabs button{font-size:8px}.computer-heading h3{font-size:20px}.computer-heading button{font-size:9px}.house-inventory button{flex-basis:120px;font-size:9px}.shop-screen{padding:calc(10px + var(--safe-top)) 10px calc(10px + var(--safe-bottom))}.house-modal .shop-message{font-size:10px}}
@media(orientation:landscape) and (max-height:500px){.house-modal{width:900px}#house-canvas{width:min(100%,69vh)}.house-tabs{margin-top:10px}.house-hint{margin-bottom:4px}.house-modal .shop-head h2{font-size:25px}}
.menu.online-menu{overflow-y:auto;overscroll-behavior:contain}.menu.online-menu .menu-header,.menu.online-menu .menu-footer,.menu.online-menu .menu-content{flex-shrink:0}

/* Construction workshop: one upgrade path per card, rather than fifteen repeated products. */
.house-modal .shop-items.defense-catalog{display:flex;flex-direction:column;gap:20px}
.defense-note{margin:0;padding:13px 16px;border:1px solid #9fcab42b;border-radius:9px;background:#11271f;color:#bdcfc2;font-size:12px;line-height:1.6}
.defense-group{padding:18px;background:#142b23;border:1px solid #a8d6b52b;border-radius:12px}
.defense-group-heading{display:flex;gap:13px;align-items:center;margin-bottom:17px}
.defense-emblem{display:grid;place-items:center;width:44px;height:44px;border-radius:11px;background:#bde39214;color:#d3edaa;border:1px solid #c2e39d30;flex:none}
.defense-group-heading h3{font-size:20px;margin:0 0 4px;color:#eceddb}.defense-group-heading p{font-size:12px;color:#a9bfae;margin:0;line-height:1.5}
.defense-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
.defense-upgrade{min-width:0;padding:16px;display:flex;flex-direction:column;background:#20382e;border:1px solid #b3d3ae30;border-radius:9px}
.defense-card-top{display:flex;justify-content:space-between;gap:8px;align-items:start}.defense-card-top h4{margin:0;font-size:14px;color:#f0efdb}.defense-card-top>span{font:9px monospace;color:#c7d6bb;white-space:nowrap}
.defense-levels{display:flex;gap:6px;margin:16px 0}.defense-levels span{flex:1;text-align:center;border:1px solid #9fbea13d;border-radius:5px;padding:6px;color:#849b8c;font:11px monospace}.defense-levels .owned{background:#a6d09a26;color:#d6efbb;border-color:#b7d99b61}.defense-levels .next{border-color:#e0c184;color:#e8cd99}
.defense-upgrade p{font-size:13px;line-height:1.6;color:#d1dccb;margin:0 0 9px}.defense-upgrade small{display:block;font-size:11px;color:#a5bba9;margin-bottom:17px}
.house-modal .defense-buy{margin-top:auto;width:100%;min-height:42px;background:#d0e7a7;color:#1c3122;border:0;font-size:10px;font-weight:800;padding:11px 7px;letter-spacing:.4px}.house-modal .defense-buy:disabled{opacity:1;background:#2b4235;color:#a5b69d;border:1px solid #abc29e2b}.defense-upgrade.complete{border-color:#a5ca7655}
@media(max-width:700px){.defense-group{padding:13px}.defense-grid{grid-template-columns:1fr;gap:10px}.defense-upgrade{padding:14px}.defense-group-heading h3{font-size:18px}.defense-card-top h4{font-size:15px}.defense-note{font-size:11px}.defense-levels{margin:12px 0}.house-tabs{grid-template-columns:repeat(3,1fr)}}

.defense-grid.trap-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
@media(max-width:700px){.defense-grid.trap-grid{grid-template-columns:1fr}}

body.house-open #village-screen{visibility:hidden}body.house-open #shop-screen{visibility:visible}

.defense-catalog{display:block!important}.defense-group{margin:0 0 24px;padding:22px;background:linear-gradient(130deg,#24362e,#14231e);border:1px solid #9bae7a40;border-radius:14px}.defense-showcase{display:flex;align-items:center;gap:22px;margin-bottom:20px}.defense-showcase .shop-equipment-art{width:150px;flex-shrink:0;margin:0}.defense-showcase .shop-equipment-art svg{width:150px;height:130px}.defense-showcase h3{font-size:23px;margin:0 0 8px}.defense-showcase p{font-size:13px;color:#acbbab}.defense-grid{display:grid!important;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.defense-upgrade{display:flex;flex-direction:column;padding:17px;background:#0e1d18;border:1px solid #94aa7b35;border-radius:10px}.defense-upgrade h4{margin:0;font-size:16px}.defense-upgrade p{font-size:12px;line-height:1.6;color:#b8c4b3}.defense-upgrade button{margin-top:auto;min-height:42px}.defense-upgrade small{font-size:11px;line-height:1.5;margin-bottom:12px;color:#b7c6ab}.purchase-comparison{padding:12px 0;margin:8px 0 14px;border-block:1px solid #b6c29c22;text-align:left}.purchase-comparison>span{font-size:11px;color:#bac8b2}.purchase-comparison>div{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-top:8px}.purchase-comparison small{font:9px monospace;color:#a7b49c;margin:0}.purchase-comparison strong{display:block;font:600 18px sans-serif;color:#e0d9b2;margin-top:5px}.purchase-comparison small:last-child strong{color:#c9e3a5}.purchase-comparison b{color:#73886a}.mine-effects{border-top:1px solid #9bae7a33;padding-top:18px;margin-top:18px;grid-template-columns:repeat(auto-fit,minmax(180px,1fr))}.effect-chip{border-left:3px solid var(--effect-color);padding-left:10px;color:var(--effect-color);font-size:14px}.weapon-upgrade-buy{width:100%;padding:12px!important}.weapon-upgrade-buy .purchase-comparison{margin-bottom:0}.shop-item canvas{background:#18271f;border-radius:10px}
@media(max-width:700px){.defense-group{padding:14px}.defense-grid{grid-template-columns:1fr}.defense-showcase{gap:12px}.defense-showcase h3{font-size:19px}.defense-showcase .shop-equipment-art{width:100px}.defense-showcase .shop-equipment-art svg{width:100px;height:100px}}

.house-modal:has(#house-room:not(.hidden)){width:100%;max-width:1100px;padding:10px;background:#0c1514}.house-modal:has(#house-room:not(.hidden)) #house-context,.house-modal:has(#house-room:not(.hidden)) .shop-head h2{display:none}#house-canvas{width:min(100%,96vh);border:0;border-radius:0}#house-hint{text-align:center;font-size:12px}#house-room .house-actions{justify-content:center}
