:root{--header-h:calc(54px + env(safe-area-inset-top,0px));--dock-space:80px}
html,body.mobile-game{height:100%;overflow:hidden;overscroll-behavior:none}.mobile-game .app-shell{height:100dvh;min-height:0;overflow:hidden}.mobile-game .app-header{height:var(--header-h);padding:env(safe-area-inset-top,0px) 14px 0;display:flex;gap:12px;align-items:center;justify-content:space-between;border-bottom:1px solid #d5bf7930;background:#122d26;position:relative;z-index:10}
.compact-brand{display:flex;gap:5px;align-items:center;color:#dbc794;text-decoration:none;font:30px Georgia,serif;white-space:nowrap}.compact-brand span{font-size:14px;letter-spacing:.07em}.compact-hud{display:flex;gap:24px;align-items:center}.compact-hud>span{display:flex;gap:6px;align-items:center}.compact-hud small{font-size:8px;color:#a8b89b;letter-spacing:.05em}.compact-hud b{font:19px Georgia,serif;color:#e8dcba;min-width:25px}.mobile-game .app-header .icon-button{min-width:42px;min-height:42px}
.mobile-game .game-layout{display:block;height:calc(100dvh - var(--header-h));min-height:0}.mobile-game .world-panel{position:relative;height:100%;min-height:0;max-height:none;width:100%;overflow:hidden;background:#193e43}.mobile-game #scene{position:absolute;inset:0;outline:none;touch-action:none}.mobile-game #scene canvas{display:block;width:100%;height:100%;touch-action:none}.phase-chip{position:absolute;z-index:2;top:12px;left:50%;transform:translateX(-50%);max-width:calc(100% - 144px);padding:8px 13px;border:1px solid #c9bb7c26;border-radius:24px;background:#102e25c7;color:#d4d9bc;font-size:11px;text-align:center;pointer-events:none;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.floating-button,.mobile-game .time-controls button{height:44px;min-width:44px;padding:8px 12px;border:1px solid #bead7044;border-radius:9px;background:#183b30eb;color:#d7d5ac;font-family:inherit;font-size:12px;cursor:pointer;box-shadow:0 3px 14px #071c2529}.floating-button.active,.floating-button[aria-pressed=true]{background:#8b9e62;color:#142e22;border-color:#e1d39a}.floating-button:focus-visible,.instant-card:focus-visible{outline:2px solid #e4d49a;outline-offset:3px}.floating-button b:empty{display:none}.floating-button b{font-size:10px;padding:2px 5px;border-radius:10px;background:#aabd80;color:#193525}
.view-menu{position:absolute;z-index:5;top:12px;left:12px}.view-menu>button{font-size:25px;padding:2px 10px}#map-options{position:absolute;top:51px;left:0;width:195px;border:1px solid #b6b17a55;border-radius:10px;background:#15372ef5;box-shadow:0 10px 30px #06201b55;padding:6px}#map-options button{display:block;width:100%;min-height:42px;border:0;border-radius:5px;text-align:left;background:none;color:#d3dabc;font-family:inherit;font-size:12px;padding:9px 12px}#map-options button:hover,#map-options button[aria-pressed=true]{background:#b5bc7d22}.keeper-summary{padding:10px 12px;color:#92aa90;font-size:10px;border-top:1px solid #b2b98222}.book-shortcut{position:absolute;z-index:4;top:12px;right:12px;display:flex;gap:7px;align-items:center}.map-tools{position:absolute;z-index:3;left:12px;bottom:calc(var(--dock-space) + 10px)}.mobile-game .time-controls{position:absolute;z-index:3;right:12px;bottom:calc(var(--dock-space) + 10px);display:flex;gap:5px;background:none;padding:0}.mobile-game .time-controls button{font-size:15px}
.quick-wave{position:absolute;top:66px;right:12px;z-index:4;display:flex;gap:12px;align-items:center;justify-content:center;min-height:44px;border:1px solid #e2cf95;border-radius:8px;padding:10px 15px;background:linear-gradient(130deg,#d8ca92,#a3b37b);font-family:inherit;font-size:12px;font-weight:600;color:#193627;box-shadow:0 4px 23px #131c1e35;cursor:pointer}.quick-wave[hidden]{display:none}.quick-wave b{font-size:20px;font-weight:400}
.action-dock{position:absolute;z-index:4;left:50%;transform:translateX(-50%);bottom:max(8px,env(safe-area-inset-bottom,0px));width:min(570px,calc(100% - 24px));padding:8px;border:1px solid #d2c18a35;border-radius:13px;background:#16392ff2;box-shadow:0 9px 32px #061f2150;display:flex;flex-direction:column;gap:6px}.action-dock[hidden]{display:none}.mobile-game .draft-strip{display:flex;justify-content:center;gap:7px;margin:0}.mobile-game .draft-slot{height:46px;width:54px;flex:0 1 54px;border-radius:7px;padding:0;min-width:0}.mobile-game .draft-slot img{height:43px;width:45px;object-fit:contain}.mobile-game .draft-slot small{font-size:10px;right:4px;bottom:3px}.mobile-game .draft-slot.empty{display:grid;place-items:center;font-size:19px;color:#78947555}.selected-card{display:flex;align-items:center;gap:8px;min-height:48px;flex-wrap:wrap}.selected-card[hidden]{display:none}.mini-gem{width:45px;height:46px;object-fit:contain;flex-shrink:0}.mini-identity{flex:1;min-width:70px}.mini-identity b{display:block;color:#e4d8b3;font:18px Georgia,serif}.mini-identity small{display:block;color:#acbda2;font-size:9px;line-height:1.55;margin-top:3px}.keep-action,.mini-replace{min-height:42px;padding:7px 12px;background:#b7c38b;border:1px solid #d5d09d;border-radius:6px;color:#1c3927;font-family:inherit;font-size:11px;font-weight:600;cursor:pointer}.mini-replace{background:#355541;color:#cdd6b5;border-color:#9fae6c66;padding:7px 9px}.mini-info,.selection-close{width:30px;height:36px;border:0;background:none;color:#aebc9e;font-size:16px;cursor:pointer}.selection-close{font-size:22px;width:24px}.mini-rock{width:40px;text-align:center;font-size:30px;color:#9daa90}.gem-details{width:100%;padding:8px;border-top:1px solid #bac18433;color:#bac8aa;font-size:11px;line-height:1.7}.gem-details button{margin-left:10px;background:none;border:1px solid #d2c68f55;color:#c9cd9c;border-radius:5px;padding:6px}
.instant-actions{display:flex;gap:6px;overflow-x:auto;overscroll-behavior-x:contain;scrollbar-width:thin;scrollbar-color:#81936b transparent;padding:2px 0}.instant-actions[hidden]{display:none}.instant-card{display:flex;align-items:center;gap:6px;flex:0 0 auto;min-height:48px;max-width:210px;padding:4px 10px 4px 5px;border:1px solid #d4c28599;border-radius:7px;background:#6d82512e;color:#eee2b8;text-align:left;cursor:pointer}.instant-card img{width:35px;height:38px;object-fit:contain}.instant-card>span{font:15px Georgia,serif;white-space:nowrap}.instant-card small{display:block;font:9px Arial,sans-serif;color:#aebf9a;margin-top:3px}.instant-card.saved{border-color:#7ebfb5aa;background:#33726724}.instant-card.upgrade{border-color:#9dbb71aa}.instant-card:hover{background:#8b9e623b}
.mobile-game .toast{z-index:8;bottom:calc(var(--dock-space) + 62px);left:50%;right:auto;transform:translate(-50%,8px);width:max-content;max-width:min(420px,calc(100% - 38px));padding:10px 15px;font-size:11px;pointer-events:none}.mobile-game .toast.visible{transform:translate(-50%,0)}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.mobile-game dialog{z-index:50}.mobile-game .welcome-dialog{max-height:90dvh}.mobile-game .welcome-copy{padding:28px}.mobile-game .welcome-copy h2{font-size:36px}
@media(max-width:600px){.compact-brand span{display:none}.compact-brand{font-size:32px}.compact-hud{gap:18px}.compact-hud>span{display:block;text-align:center}.compact-hud small{display:block;font-size:7px;margin-bottom:3px}.compact-hud b{font-size:18px}.mobile-game .app-header{padding-left:12px;padding-right:10px;gap:8px}.phase-chip{font-size:10px;padding:8px 10px;max-width:calc(100% - 154px)}.book-shortcut{padding:8px 10px;font-size:11px}.action-dock{padding:7px;gap:5px}.instant-card>span{font-size:14px}.mini-identity b{font-size:16px}.mini-identity small{font-size:8px}.mini-info{width:26px}.keep-action{padding:7px 10px}.quick-wave{font-size:11px}.mobile-game .fatal-error{inset:20% 8%;padding:18px}}
@media(max-height:500px) and (orientation:landscape){:root{--header-h:44px}.compact-hud>span{display:flex;gap:5px}.compact-hud small{margin:0}.compact-hud b{font-size:17px}.mobile-game .app-header .icon-button{min-height:38px;min-width:38px}.compact-brand{font-size:26px}.compact-brand span{display:inline;font-size:12px}.action-dock{width:min(610px,calc(100% - 160px));padding:5px;gap:3px}.mobile-game .draft-strip{gap:5px}.mobile-game .draft-slot{height:38px;width:44px;flex-basis:44px}.mobile-game .draft-slot img{height:35px}.selected-card{min-height:39px}.mini-gem{height:37px;width:37px}.instant-card{min-height:39px}.instant-card img{height:31px;width:30px}.keep-action{min-height:36px}.mini-info,.selection-close{height:32px}.view-menu,.book-shortcut{top:8px}.phase-chip{top:8px}.quick-wave{top:60px}.floating-button,.mobile-game .time-controls button{height:40px;min-width:40px}.mobile-game .toast{bottom:calc(var(--dock-space) + 8px)}}

/* Colour comes from opaque surfaces and existing accents, without image filters. */
.mobile-game .app-header{background:#0a302e;border-bottom-color:#d6ab5866}
.compact-brand{color:#f3c86c}.compact-hud small{color:#bbd7c6}
.compact-hud b{color:#fff0c3}.compact-hud>span:last-child b{color:#f3cc76}
.mobile-game .world-panel{background:#103f55}
.phase-chip{background:#083a36ed;border-color:#4d9d8c7a;color:#e6f2d8}
.floating-button,.mobile-game .time-controls button{background:#0e413deb;border-color:#61b5a177;color:#f1e5bd}
.book-shortcut{border-color:#dfb75b99;color:#ffe2a0}
.floating-button.active,.floating-button[aria-pressed=true]{background:#dfaa59;color:#16392f;border-color:#ffe1a0}
.floating-button:focus-visible,.instant-card:focus-visible{outline-color:#73e2cd}
#map-options{background:#0c3533f9;border-color:#60a59188}
#map-options{max-height:calc(100dvh - var(--header-h) - 90px);overflow-y:auto}
#map-options a{display:block;padding:9px 12px;min-height:42px;border-radius:5px;color:#f3d08c;font-size:12px;text-decoration:none}
#map-options a:hover,#map-options a:focus-visible{background:#49b49d29}
#map-options button{color:#e0ecda}#map-options button:hover,#map-options button[aria-pressed=true]{background:#49b49d29}
.keeper-summary{color:#b2d0bc}
.quick-wave{background:linear-gradient(125deg,#f4ce78,#d8a853);border-color:#ffe4a5;color:#173c32}
.action-dock{background:#0a342ff5;border-color:#71baa173}
.mobile-game .draft-slot{background:#123f37;border-color:#6eac9466}
.mobile-game .draft-slot.selected{border-color:#ffcf75;background:#275849}
.mobile-game .draft-slot.empty{color:#82b99b88}
.mini-identity b{color:#ffe5ab}.mini-identity small{color:#bdd8bc}
.keep-action{background:#e6bc68;border-color:#ffe1a0;color:#163b2f}
.mini-replace{background:#235d4c;color:#e2efcf;border-color:#6ec4a399}
.instant-card{background:#a77c2929;border-color:#e9be68bb;color:#fff0c4}
.instant-card small{color:#c2d9b8}.instant-card.saved{background:#209c832d;border-color:#6bdbb7bb}
.instant-card.upgrade{background:#71964030;border-color:#b0d97cbb}
.instant-card:hover{background:#4eaf8f3b}
.wave-guide{display:flex;gap:6px;align-items:center;min-height:44px;padding:0;border:0;background:none;color:inherit;font:inherit;cursor:pointer}
.wave-guide:focus-visible{outline:2px solid #73e2cd;outline-offset:4px;border-radius:4px}
.wave-guide-list article{padding:12px 15px;border:1px solid #70b49a40;border-radius:8px;margin:10px 0}
.wave-guide-list article h3{margin:0 0 5px}.wave-guide-list article p{margin:0;font-size:13px}
.wave-guide-list .current-wave{border-color:#e8c174;background:#bd9c3430}
@media(max-width:600px){.wave-guide{display:block;text-align:center}}

.draft-area{display:flex;align-items:center;gap:6px;min-width:0}.draft-area[hidden],.draft-navigation[hidden]{display:none}.draft-navigation{flex:0 0 44px}.draft-navigation>span{display:none}.draft-navigation button{width:44px;height:44px;padding:0;border:1px solid #6fbba178;border-radius:7px;background:#14463d;color:#d8ebd6;cursor:pointer}.draft-navigation b{display:block;font-size:22px;line-height:23px;font-weight:400}.draft-navigation small{display:block;font-size:9px}.draft-area .draft-strip{flex:1;min-width:0}.draft-area .draft-slot{position:relative;overflow:hidden}.draft-index{position:absolute;top:2px;left:3px;z-index:1;padding:1px 3px;border-radius:3px;background:#0a403ee8;color:#c9ffff;font-size:9px}.draft-favorite{position:absolute;top:2px;right:3px;color:#ffe49b;font-size:11px;text-shadow:0 1px 2px #000}.mobile-game .draft-slot.is-favorite{border-color:#f5d47f;box-shadow:inset 0 0 0 1px #f5d47f77}
.favorite-toggle{flex:0 0 44px;min-width:44px;width:44px;min-height:44px;height:44px;padding:0;border:1px solid #7caa8b55;border-radius:6px;background:#143c3288;color:#aac7b0;font-size:23px;line-height:1;cursor:pointer}.favorite-toggle.is-favorite{color:#ffdc7e;border-color:#e8c36b99;background:#70512644}.favorite-toggle:focus-visible,.draft-navigation button:focus-visible{outline:2px solid #8aefe4;outline-offset:2px}.stock-gem .favorite-toggle,.recipe-component .favorite-toggle{margin-left:2px}.recipe-detail h3{display:flex;align-items:center;justify-content:space-between;gap:7px}.recipe-detail h3 .favorite-toggle{flex-shrink:0}.recipe-component{max-width:100%}.recipe-component>span{overflow-wrap:anywhere}
.draft-map-markers{position:absolute;inset:0;pointer-events:none;overflow:hidden;z-index:1}.draft-map-marker{position:absolute;left:0;top:0;min-width:23px;padding:3px 5px;border:1px solid #a3ffff;border-radius:5px;background:#084746f2;color:#e0ffff;box-shadow:0 2px 4px #001e2b88;text-align:center;font:600 11px/14px Arial,sans-serif;white-space:nowrap}.draft-map-marker::after{content:'';position:absolute;bottom:-7px;left:50%;width:1px;height:6px;background:#9fffff}.draft-map-marker.favorite{background:#624a1bf5;color:#ffe6a5;border-color:#ffe2a3}.draft-map-marker.favorite::after{background:#ffe2a3}.draft-map-marker.selected{outline:2px solid #fff;outline-offset:2px}.draft-map-marker[hidden]{display:none}
@media(max-height:500px) and (orientation:landscape){.draft-area{grid-column:1;grid-row:1;gap:4px}.draft-area .draft-slot{flex-basis:42px}.draft-navigation{flex-basis:40px}.draft-navigation button{width:40px}.selected-card{gap:4px}.selected-card .mini-identity{min-width:50px}.selected-card .keep-action{padding:6px 7px}.selected-card .mini-info{width:22px}.selected-card .selection-close{width:20px}}
.recipe-row .favorite-toggle{width:44px;min-width:44px;height:44px;min-height:44px;padding:0;font:23px/1 Arial,sans-serif;color:#aac7b0;background:#143c3288;border:1px solid #7caa8b55;border-radius:6px}.recipe-row .favorite-toggle.is-favorite{color:#ffdc7e;border-color:#e8c36b99;background:#70512644}.recipe-row .favorite-toggle:hover{background:#416c4e77}
@media(max-width:600px){.selected-card{gap:4px}.selected-card .mini-gem{width:32px;height:36px}.selected-card .mini-identity{min-width:0}.selected-card .mini-identity b{font-size:16px;overflow-wrap:anywhere}.selected-card .mini-identity small{font-size:8px}.selected-card .mini-info{width:22px;padding:0}.selected-card .selection-close{width:20px;padding:0}.selected-card .keep-action{min-height:44px;padding:7px 8px}.draft-area .draft-slot img{max-width:100%}}

.phase-chip.enraged{background:#60382def;color:#ffe1a5;border:1px solid #e8a16888}
