/* The board owns the viewport. Controls never change its dimensions. */
.edge-handle:before{content:'';position:absolute;inset:-4px}
.immersive-table{position:fixed;inset:0;display:block!important;width:100%;height:100dvh;overflow:hidden;background:#111a1b}
.immersive-table .game-header,.immersive-table .table-tabs,.immersive-table .board-top,.immersive-table #ritual-strip,.immersive-table .turn-banner,.immersive-table .map-legend,.immersive-table .ambience-tools,.immersive-table .map-controls{display:none!important}
.immersive-table .game-layout{position:absolute;inset:0;width:100%;height:100%;display:block}
.immersive-table .game-layout>.center{display:block!important;position:absolute;inset:0;margin:0!important;width:100%;height:100%}
.immersive-table .board-view{position:absolute;inset:0;width:100%;height:100%;min-height:0;border:0;background:radial-gradient(ellipse,#3c382c,#0a1014 80%)}
.immersive-table .game-layout>.right-panel,.immersive-table .game-layout>.sidebar{display:block!important;position:fixed;inset:0 0 0 auto;width:min(390px,88vw);height:100dvh;z-index:75;padding:18px 22px calc(22px + env(safe-area-inset-bottom));margin:0;visibility:hidden;transform:translateX(102%);transition:transform .28s ease,visibility .28s;overflow:auto;overscroll-behavior:contain;border:1px solid #9f875741;background:linear-gradient(150deg,#19272bee,#10171dfc);backdrop-filter:blur(22px);box-shadow:-15px 0 65px #0007}
.immersive-table .game-layout>.sidebar{inset:0 auto 0 0;transform:translateX(-102%);width:min(340px,88vw)}
.immersive-table[data-drawer=actions] #actions-panel,.immersive-table[data-drawer=players] #players-panel{visibility:visible;transform:translateX(0)}
.immersive-table .right-panel .panel-heading{display:none}.immersive-table .pyramid-portraits{display:flex}.immersive-table .illustrated-pyramid .action-art-button{height:83px;min-height:83px}.immersive-table .right-panel .action-pyramid{max-width:none;margin-top:18px}.immersive-table .right-panel .resource-chips{margin:10px 0}.immersive-table .resource-chips>span{padding:8px}
.edge-hud{position:absolute;inset:0;z-index:35;pointer-events:none}.edge-hud button{pointer-events:auto}.edge-handle{position:absolute;top:46%;min-height:62px;width:38px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;background:#101d23df;border:1px solid #d0ad6c66;color:#e5c98a;box-shadow:0 4px 22px #0006;backdrop-filter:blur(10px)}.edge-handle span{font:7px system-ui}.edge-handle svg{width:19px}.edge-left{left:env(safe-area-inset-left);border-radius:0 13px 13px 0}.edge-right{right:env(safe-area-inset-right);border-radius:13px 0 0 13px}.edge-handle:focus-visible{outline-offset:-4px}
.edge-turn{position:absolute;top:max(9px,env(safe-area-inset-top));left:50%;transform:translateX(-50%);display:flex;align-items:center;gap:10px;max-width:min(78vw,340px);min-height:43px;padding:7px 13px;border:1px solid color-mix(in srgb,var(--turn-color),transparent 35%);border-radius:24px;background:#0c1922e8;box-shadow:0 5px 24px #0005;color:#e8dfca;backdrop-filter:blur(12px)}.edge-turn>i{width:9px;height:9px;border-radius:50%;background:var(--turn-color);box-shadow:0 0 12px var(--turn-color);flex:none}.edge-turn>span{text-align:left;min-width:0}.edge-turn strong{font:13px Georgia;display:block;white-space:nowrap;text-overflow:ellipsis;overflow:hidden;max-width:175px}.edge-turn small{display:block;font-size:8px;color:#9eb0b2;margin-top:2px}.edge-turn>b{font:16px Georgia;color:#e8c580;padding-left:9px;border-left:1px solid #69808066;white-space:nowrap}.edge-turn em{font-style:normal;color:var(--turn-color);transform:rotate(-90deg)}
.edge-tools{position:absolute;right:max(12px,env(safe-area-inset-right));bottom:max(12px,env(safe-area-inset-bottom));display:flex;gap:5px;opacity:0;transform:translateY(14px);visibility:hidden;transition:.25s}.hud-awake .edge-tools,.edge-tools:focus-within{opacity:1;visibility:visible;transform:none}.edge-tools .icon-button{background:#0d1c23e8;width:38px;height:38px;border-radius:10px;backdrop-filter:blur(12px);font-size:20px;color:#e3c58e}.edge-hint{position:absolute;bottom:max(13px,env(safe-area-inset-bottom));left:18px;font-size:8px;color:#eee0c3;background:#0b1822c9;border:1px solid #a4ad8d22;border-radius:20px;padding:8px 11px;opacity:0;transition:opacity .3s}.hud-awake .edge-hint{opacity:1}.edge-hud:focus-within .edge-tools{visibility:visible;opacity:1;transform:none}
.edge-shade{position:absolute;inset:0;z-index:60;background:#020a103d;opacity:0;visibility:hidden;transition:opacity .25s}.immersive-table[data-drawer]:not([data-drawer=""]) .edge-shade{visibility:visible;opacity:1}
.edge-drawer{position:fixed;inset:0 auto 0 0;z-index:75;width:min(350px,88vw);padding:22px 24px calc(24px + env(safe-area-inset-bottom));height:100dvh;overflow:auto;overscroll-behavior:contain;background:linear-gradient(145deg,#243031f5,#101821fc);border-right:1px solid #bda06b66;backdrop-filter:blur(24px);box-shadow:15px 0 65px #0007;transform:translateX(-102%);visibility:hidden;transition:transform .28s ease,visibility .28s}.immersive-table[data-drawer=menu] .edge-menu{visibility:visible;transform:none}
.edge-drawer-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:0 0 16px;padding-top:env(safe-area-inset-top)}.edge-drawer-heading small{color:#aa9470;font-size:8px;letter-spacing:.19em}.edge-drawer-heading h2{font:29px Georgia;color:#ead4a3;margin-top:4px}.edge-drawer-heading .icon-button{width:36px;height:36px;border-radius:50%;background:#0c171b88}.edge-room{padding-bottom:18px;color:#8da9ac;font-size:10px;letter-spacing:.08em}.edge-menu-links{display:grid;gap:5px}.edge-menu-links>button{display:flex;text-align:left;align-items:center;gap:13px;padding:13px 11px;background:#a3bea207;border:1px solid #9cb1a319;border-radius:10px}.edge-menu-links>button:hover{background:#d1b87916;border-color:#baa27566}.edge-menu-links svg{color:#d9ba7f;width:23px}.edge-menu-links span{flex:1;font:17px Georgia;color:#e5d5b4}.edge-menu-links small{display:block;margin-top:4px;font:10px system-ui;color:#91a6a9}.edge-menu-links b{color:#b19a72;font-weight:400}.edge-menu-footer{display:flex;flex-wrap:wrap;gap:7px;margin-top:20px}.edge-tip{font-size:10px;color:#8d9f9f;margin:18px 0}.edge-menu .btn{border-radius:10px}
.immersive-mode #modal:not([data-kind=battle]){inset:0 0 0 auto;margin:0;width:min(620px,94vw);max-width:94vw;height:100dvh;max-height:100dvh;border-radius:20px 0 0 20px;border-width:0 0 0 1px;padding:30px 28px;animation:edge-in-right .28s ease-out}
.immersive-mode #modal[data-kind=territory]{width:min(430px,88vw)}.immersive-mode #help-dialog{inset:0 0 0 auto;margin:0;width:min(510px,94vw);max-width:94vw;height:100dvh;max-height:100dvh;border-radius:18px 0 0 18px;animation:edge-in-right .28s ease-out}.immersive-mode #market-dialog{animation:edge-in-bottom .28s ease-out}.immersive-mode dialog::backdrop{background:#030c1480;backdrop-filter:blur(2px)}
.terrain-zone .zone-label{background:#12262cdb;border-color:#829da755;color:#d5e2d6;font-size:7px;letter-spacing:.04em}.terrain-zone .zone-pin{border-radius:50%;border-color:#a6b4a6;background:#122b30df}.terrain-zone .zone-role{display:none}.terrain-zone.selected .zone-role,.terrain-zone.reachable .zone-role{display:block;background:#0a1b22e8;color:#d1ddc1;padding:3px;font-size:7px;border-radius:3px}.immersive-table .zone-pyramid{font-size:7px}.immersive-table .city-standard{display:none}.immersive-table .zone.selected .city-standard{display:block}.immersive-table .zone-reward{font-size:7px;white-space:nowrap}.immersive-table .zone-reward,.immersive-table .zone-pyramid{padding:2px 4px}.zone-destination{display:block;background:#0b302feF;color:#c4ffdb;border:1px solid #80d6ad;padding:4px 6px;margin-top:4px;font-size:9px;border-radius:6px;box-shadow:0 4px 14px #0008;white-space:nowrap}.zone:not(.reachable) .zone-destination{display:none}.immersive-table #march-help{top:auto;bottom:max(12px,env(safe-area-inset-bottom));left:50%;transform:translateX(-50%);width:min(560px,83vw);background:#0a2127ed;border:1px solid #72cbb08a;border-radius:14px;padding:12px 40px 12px 15px;box-shadow:0 10px 40px #0007}.march-title{display:block;color:#f0d6a1;font:16px Georgia;margin-bottom:4px}.march-note{font-size:10px;color:#b3c5c4}.immersive-table:has(#march-help:not([hidden])) .edge-tools,.immersive-table:has(#march-help:not([hidden])) .edge-hint{display:none}
.territory-purpose{display:grid;gap:9px;background:linear-gradient(120deg,#2d413b,#142b33);padding:18px;border:1px solid #a1b28c66;border-radius:13px;margin:18px 0}.territory-purpose strong{font:24px Georgia;color:#edd39a}.territory-purpose p{font-size:12px;color:#c0cfca}.territory-presence{font-size:12px;margin-bottom:14px;color:#abc4c5}.territory-connections{display:grid;gap:7px;margin-top:12px}.territory-connections button{display:flex;align-items:center;justify-content:space-between;text-align:left;padding:13px;border-radius:10px;background:#a0b89c08;border:1px solid #9eac8a30;font-size:12px;gap:10px}.territory-connections small{display:block;margin-top:4px;font-size:9px;color:#94aaa7}.territory-note{font-size:10px;color:#99acab;margin-top:15px}.immersive-table .turn-toast{top:64px;bottom:auto;width:auto;max-width:75%;border-radius:18px;left:50%;transform:translateX(-50%);font-size:13px}
.immersive-table .edge-turn{left:max(12px,env(safe-area-inset-left));transform:none}
.immersive-table .zone.reachable.hostile .zone-pin{background:#8d3f35;color:#fff1d0;border-color:#efa787;box-shadow:0 0 16px #e5684e88}
.immersive-table .zone.hostile .zone-destination{background:#3e1e1eeF;color:#ffdfbf;border-color:#d18f73}
.immersive-table .zone-label{font-size:8px;letter-spacing:.05em}.immersive-table .zone-pyramid{min-width:29px;font-size:8px}
@keyframes edge-in-right{from{transform:translateX(100%);opacity:.6}to{transform:none;opacity:1}}@keyframes edge-in-bottom{from{transform:translateY(12%);opacity:.3}to{transform:none;opacity:1}}
@media(orientation:landscape) and (max-height:600px){.edge-turn{top:max(6px,env(safe-area-inset-top));min-height:36px;padding:5px 11px}.edge-turn strong{font-size:12px}.edge-turn small{font-size:7px}.edge-handle{width:34px;min-height:55px}.edge-hint{font-size:7px}.immersive-table .zone-reward,.immersive-table .zone-pyramid{font-size:6px}.immersive-table .terrain-zone .zone-label{font-size:6px}.immersive-mode #modal:not([data-kind=battle]){padding:22px;width:min(560px,84vw)}.immersive-mode #modal[data-kind=territory]{width:min(385px,78vw)}.edge-drawer-heading h2{font-size:25px}.edge-drawer-heading{margin-bottom:12px}.edge-menu-links>button{padding:10px}.edge-menu-links span{font-size:16px}.edge-menu-links small{font-size:9px}.edge-drawer{padding:16px 20px}.immersive-table .game-layout>.right-panel{width:min(360px,85vw);padding:14px 20px}.immersive-table .pyramid-portraits{display:flex}.immersive-table .zone-destination{font-size:7px;padding:3px 4px}}
@media(max-width:500px) and (orientation:portrait){.edge-hint{bottom:64px;left:50%;transform:translateX(-50%);width:max-content;max-width:84vw;text-align:center}.edge-tools{bottom:max(15px,env(safe-area-inset-bottom))}.edge-turn{max-width:82vw}.immersive-mode #modal:not([data-kind=battle]){width:96vw;max-width:96vw;padding:26px 18px}.immersive-mode #modal[data-kind=territory]{inset:auto 0 0;margin:0;width:100vw;max-width:100vw;height:auto;max-height:68dvh;border-radius:20px 20px 0 0;border-width:1px 0 0;animation:edge-in-bottom .25s}.immersive-table .zone-destination{white-space:normal;max-width:110px;font-size:7px}}
@media(prefers-reduced-motion:reduce){.immersive-mode dialog,.immersive-table *, .immersive-table *:before{animation:none!important;transition:none!important}}
