:root{--night:#071e29;--deep:#0b2c37;--cream:#f4f1e7;--mint:#67d9c1;--line:#78b5b391}
body:not(.is-print){height:100dvh;overflow:hidden;overscroll-behavior:none}
body:not(.is-print) .app{height:100dvh;min-height:0;overflow:hidden}
.frame{position:fixed;inset:0;width:100%;height:100dvh;min-height:0;overflow:hidden;padding-left:env(safe-area-inset-left);padding-right:env(safe-area-inset-right);color:var(--cream);background:radial-gradient(circle at 45% -8%,#1b6470 0,transparent 42%),linear-gradient(135deg,#061923,#103642 70%,#09212c);font-family:'DM Sans',Arial,sans-serif}
.frame button{touch-action:manipulation}
.game-top{height:100%;min-height:0;display:flex;align-items:center;justify-content:space-between;gap:12px;border-bottom:1px solid #73b6b459;padding:0 clamp(14px,2vw,30px);background:#041923ac;z-index:2}
.game-brand{display:flex;align-items:center;gap:9px;color:#f5f3e9;text-decoration:none;font:700 clamp(1rem,1.5vw,1.3rem)/1 Fraunces,Georgia,serif;white-space:nowrap}
.game-brand:hover{color:#fff}
.brand-wave{display:grid;place-items:center;width:31px;height:31px;border:2px solid var(--mint);border-radius:50%;color:var(--mint);font:700 1.5rem/1 Georgia,serif}
.season-marker{font-size:.8rem;letter-spacing:.08em;text-transform:uppercase;color:#b2d1cc;white-space:nowrap}
.season-marker b{color:#fff;font-size:1rem}
.menu-button{width:44px;height:42px;border:1px solid #72aea8;border-radius:10px;background:#123d46;color:#e9f7f0;font-size:1.2rem}
.game-screen{display:grid;grid-template-columns:minmax(134px,174px) minmax(0,1fr) minmax(190px,258px);grid-template-rows:60px minmax(0,1fr);gap:0;padding:0 max(0px,calc((100vw - 1500px)/2))}
.game-screen>.game-top{grid-column:1/-1}
.status-rail{grid-column:1;grid-row:2;display:flex;flex-direction:column;gap:9px;padding:clamp(13px,2vw,26px) 11px 16px clamp(12px,2vw,28px);min-height:0;border-right:1px solid #72aea840}
.condition-chip,.resource-chip{display:flex;align-items:center;justify-content:space-between;position:relative;min-height:68px;width:100%;padding:9px 10px 14px;border:1px solid #5b858b;border-left:4px solid var(--chip,#78cdb7);border-radius:11px;background:#123942;color:#e6f7f1;text-align:left}
.condition-chip:hover,.resource-chip:hover{background:#1a4c55}
.condition-chip.urgent{background:#533833;border-color:#f89b7c}
.chip-name,.resource-chip span{font-weight:700;font-size:.88rem;line-height:1.1}
.condition-chip strong,.resource-chip strong{font-size:1.5rem;font-variant-numeric:tabular-nums;color:var(--chip,#dff9ef)}
.condition-chip small{color:#adc8c6;font-size:.65rem;font-weight:500}
.condition-chip i{position:absolute;bottom:8px;left:10px;right:10px;height:4px;background:linear-gradient(to right,var(--chip) var(--fill),#547179 var(--fill));border-radius:5px}
.resource-chip{min-height:50px;border-left-color:#95b8b1;background:#0c303b;padding:8px 11px}
.resource-chip strong{font-size:1.25rem}
.choice-stage{grid-column:2;grid-row:2;display:flex;flex-direction:column;align-items:center;gap:10px;padding:clamp(13px,2vw,22px) clamp(10px,2vw,30px) 16px;min-width:0;min-height:0}
.stage-heading{width:min(100%,720px);display:flex;justify-content:space-between;align-items:center;gap:8px;color:#a7d6cc;text-transform:uppercase;letter-spacing:.1em;font-size:.72rem;font-weight:800}
.stage-heading strong{color:#f7d6a0;white-space:nowrap}
.focus-zone{width:min(100%,720px);flex:1;min-height:0;display:grid;grid-template-columns:42px minmax(0,1fr) 42px;align-items:center;gap:10px}
.cycle-button{width:42px;height:58px;align-self:center;border:1px solid #81b3aa;border-radius:12px;background:#17434e;color:#f2f8f3;font:400 2.5rem/1 Georgia,serif}
.cycle-button:hover{background:#27616b}
.focus-card{height:100%;min-height:0;display:flex;flex-direction:column;overflow:hidden;border:2px solid var(--accent);border-radius:18px;background:#e6ede4;color:#153c42;box-shadow:0 14px 38px #00101699}
.focus-photo{position:relative;flex:0 0 39%;min-height:100px;border-bottom:5px solid var(--accent)}
.focus-photo .photo-location{font-size:.69rem;left:13px;bottom:7px}
.card-category{position:absolute;top:12px;left:13px;max-width:calc(100% - 26px);padding:7px 9px;border-radius:6px;background:#062c34db;color:#e6f6ec;font-size:.7rem;font-weight:800;letter-spacing:.1em;text-transform:uppercase}
.focus-body{min-height:0;flex:1;display:flex;flex-direction:column;padding:clamp(10px,1.6vw,20px) clamp(12px,1.8vw,22px) clamp(10px,1.5vw,17px)}
.focus-topline{display:flex;align-items:center;justify-content:space-between;gap:9px;color:#437171;font-size:.67rem;font-weight:800;letter-spacing:.11em;text-transform:uppercase}
.cost-badge{padding:5px 8px;background:#d0e0d5;border-radius:6px;color:#205a59;text-align:right;letter-spacing:0;white-space:nowrap;font-size:.7rem}
.focus-body h1{font:700 clamp(1.45rem,2.7vw,2.4rem)/1.05 Fraunces,Georgia,serif;margin:10px 0 5px;letter-spacing:-.04em}
.focus-effect{font-weight:800;color:#08776c;font-size:1rem;margin:0 0 8px}
.focus-description{font-size:.9rem;line-height:1.35;color:#345a5c;margin:0}
.focus-ongoing{margin:9px 0 0;border-left:4px solid var(--accent);padding:7px 9px;background:#d2e2d8;border-radius:0 7px 7px 0;color:#244c4c;font-size:.83rem;line-height:1.25}
.focus-ongoing b{color:#12685f}
.choose-button{margin-top:auto;min-height:44px;width:100%;border:0;border-radius:9px;background:#0b4952;color:#fff;font-weight:800;font-size:.93rem}
.choose-button:hover{background:#126a71}
.choose-button:disabled{background:#abc0b9;color:#435e60}
.no-card{display:grid;place-items:center;text-align:center;height:100%;padding:25px;border:1px dashed #79aaa5;border-radius:18px;color:#c9ded7}
.deck-picker{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:6px;width:min(100%,634px);min-height:54px}
.deck-picker button{min-width:0;display:flex;align-items:center;gap:6px;border:1px solid #65918e;border-radius:9px;padding:5px 7px;background:#103641;color:#d3e9e1;text-align:left}
.deck-picker button[aria-pressed=true]{border-color:#78e3c8;background:#265b5e;color:#fff}
.deck-picker span{color:#83dbc7;font-size:.72rem;font-weight:800}
.deck-picker b{min-width:0;overflow:hidden;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;font-size:.75rem;line-height:1.12}
.stage-actions{display:grid;grid-template-columns:1fr 1.25fr;gap:10px;width:min(100%,634px)}
.stage-actions button{min-height:48px}
.effort-trigger{border:1px solid #6ebbb0;border-radius:10px;background:#12404a;color:#e7f7ef;font-weight:700}
.effort-trigger b{color:#80e6cf}
.effort-trigger:disabled{opacity:.5}
.stage-actions .primary{box-shadow:none}
.side-rail{grid-column:3;grid-row:2;display:flex;flex-direction:column;gap:10px;padding:clamp(13px,2vw,26px) clamp(12px,2vw,28px) 16px 11px;border-left:1px solid #72aea840;min-height:0}
.side-item{display:flex;flex-direction:column;align-items:flex-start;justify-content:center;gap:6px;min-height:125px;width:100%;padding:16px;border:1px solid #619390;border-radius:13px;background:#103744;color:#eaf4ef;text-align:left}
.side-item:hover{background:#1c4d58}
.side-item span{color:#8cdbc8;text-transform:uppercase;font-size:.72rem;letter-spacing:.1em;font-weight:800}
.side-item strong{font:700 clamp(1.05rem,1.45vw,1.35rem)/1.18 Fraunces,Georgia,serif}
.side-item small{color:#bad4ce;font-size:.78rem;line-height:1.3}
.leader-item{border-color:var(--role);border-left:5px solid var(--role);background:linear-gradient(135deg,#27404e,#312c4b)}
.leader-item span{color:var(--role)}
.panel-layer{position:fixed;inset:0;z-index:8;display:flex;justify-content:flex-end}
.panel-backdrop{position:absolute;inset:0;border:0;background:#001922b8}
.edge-sheet{position:relative;width:min(420px,100%);height:100dvh;overflow-y:auto;overscroll-behavior:contain;background:#e8eee5;color:#173b40;padding:max(18px,env(safe-area-inset-top)) 22px max(24px,env(safe-area-inset-bottom));box-shadow:-22px 0 55px #00151b88}
.edge-head{display:flex;align-items:center;justify-content:space-between}
.edge-kicker{color:#287b75;text-transform:uppercase;letter-spacing:.13em;font-size:.75rem;font-weight:800}
.edge-head button{border:1px solid #8caeab;border-radius:9px;background:transparent;color:#18484d;width:42px;height:42px;font-size:1.6rem;line-height:1}
.edge-sheet h2{font:700 2rem/1.04 Fraunces,Georgia,serif;letter-spacing:-.04em;margin:22px 0 16px}
.edge-sheet p{line-height:1.45}
.panel-lead{color:#466669;margin:0 0 17px;font-size:.94rem}
.panel-list,.readout-list,.effort-choices,.menu-list{display:grid;gap:10px}
.panel-row,.service-row{border:1px solid #a2c1b6;border-radius:11px;background:#f8f8ee;padding:15px}
.forecast-row{display:flex;gap:15px;align-items:center}
.forecast-row span{color:#187e70;font-weight:800}
.forecast-row strong{font:700 1.15rem Fraunces,Georgia,serif}
.role-emblem{display:grid;place-items:center;width:88px;height:88px;border-radius:50%;background:var(--role);color:#182f3c;font:700 3rem Fraunces,Georgia,serif}
.panel-power{font-weight:800;color:#226a65}
.panel-primary{width:100%;box-shadow:none}
.service-row{border-left:5px solid var(--accent)}
.service-row h3{font:700 1.18rem Fraunces,Georgia,serif;margin:0}
.service-row p{font-size:.84rem;color:#496567;margin:8px 0}
.service-actions{display:flex;gap:8px}
.service-actions button{min-height:39px;border:0;border-radius:7px;background:#12515a;color:#fff;padding:7px 12px;font-size:.8rem;font-weight:700}
.service-actions button.ghost{border:1px solid #6b9b93;background:transparent;color:#236165}
.service-actions button:disabled{opacity:.5}
.effort-choices{grid-template-columns:1fr 1fr}
.effort-choices button{border:1px solid #75aaa0;border-left:5px solid var(--accent);border-radius:9px;background:#f9faf0;color:#174b51;padding:16px 10px;font-weight:800}
.effort-choices button:disabled{opacity:.5}
.readout-row{display:grid;grid-template-columns:1fr auto;gap:6px;padding:10px;border-radius:8px;background:#f8f8ee;font-weight:700}
.readout-row strong{font-variant-numeric:tabular-nums}
.readout-row i{grid-column:1/-1;height:6px;background:#bdd0c9;border-radius:5px;overflow:hidden}
.readout-row em{display:block;height:100%}
.menu-list>*{width:100%;min-height:48px;border:1px solid #8ab2a9;border-radius:8px;background:#f9faf0;color:#194e52;padding:12px;text-align:left;text-decoration:none;font-size:.92rem;font-weight:700}
.menu-list>*:hover{background:#d7eae0;color:#124247}
.setup-screen{background:linear-gradient(90deg,#041923e8 0%,#09222ebb 54%,#071d2c55),var(--setup-photo) center/cover no-repeat}
.setup-screen .game-top{height:60px}
.setup-label{font-size:.75rem;text-transform:uppercase;letter-spacing:.12em;color:#bce3d4}
.setup-main{height:calc(100dvh - 60px);display:grid;grid-template-columns:minmax(0,1fr) minmax(280px,380px);align-items:center;gap:35px;max-width:1150px;margin:auto;padding:20px clamp(20px,4vw,60px)}
.setup-copy h1{max-width:750px;font:700 clamp(2.4rem,5.5vw,5.5rem)/.99 Fraunces,Georgia,serif;letter-spacing:-.06em;margin:15px 0}
.setup-copy p{max-width:51ch;font-size:clamp(1rem,1.5vw,1.25rem);line-height:1.45;color:#d7e7de}
.setup-controls{display:grid;gap:14px;padding:25px;border:1px solid #a3ddc28f;border-radius:18px;background:#092731eb;box-shadow:0 20px 55px #00192080}
.setup-controls>span{font-weight:800}
.player-choice{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}
.player-choice button{min-height:58px;border:1px solid #77afa8;border-radius:10px;background:#16434d;color:#e8f8ee;font-weight:800;font-size:1.2rem}
.player-choice button[aria-pressed=true]{background:#70dec4;border-color:#70dec4;color:#073238}
.setup-controls .primary{box-shadow:none}
.setup-controls small{color:#bad2ca;line-height:1.3}
.setup-credit{position:absolute;right:16px;bottom:12px;color:#fff;font-size:.7rem;text-shadow:0 1px 4px #001e2b}
.event-screen{background-image:linear-gradient(90deg,#061823e8,#04192388),var(--photo);background-size:cover;background-position:center}
.event-screen.graphic-event{background:radial-gradient(circle at 75% 48%,color-mix(in srgb,var(--event-color) 32%,transparent),transparent 38%),repeating-linear-gradient(125deg,#143b4a 0 12px,#102f3d 12px 24px);overflow:hidden}
.event-art-symbol{position:absolute;right:4%;top:10%;font:700 clamp(13rem,35vw,38rem)/1 Fraunces,Georgia,serif;color:var(--event-color);opacity:.27;transform:rotate(-12deg);pointer-events:none}
.event-signal{position:absolute;right:clamp(20px,5vw,64px);top:24%;z-index:1;display:grid;gap:2px;justify-items:center;min-width:145px;padding:14px 20px;background:#e58146;color:#112e36;border:4px solid #ffe3ac;box-shadow:0 12px 0 #051c26aa,0 22px 45px #03151bb3;transform:rotate(8deg);font-weight:900;text-align:center;text-transform:uppercase;letter-spacing:.05em}
.event-signal strong{font:900 clamp(4rem,10vw,8rem)/.8 Fraunces,Georgia,serif}.event-signal span{font-size:.76rem}
.event-shade{position:absolute;inset:0;background:radial-gradient(circle at 60% 50%,transparent,#0015217c);pointer-events:none}
.event-top{position:absolute;top:0;left:0;right:0;display:flex;justify-content:space-between;padding:22px;color:#d1e7e0;text-transform:uppercase;letter-spacing:.1em;font-weight:800;font-size:.8rem}
.event-centre{position:relative;height:100%;display:flex;flex-direction:column;align-items:flex-start;justify-content:center;max-width:760px;padding:clamp(25px,6vw,75px)}
.event-glyph{width:70px;height:70px;border:4px solid #f3bb7d;border-radius:50%;display:grid;place-items:center;font-size:3.3rem;font-weight:800;color:#ffd393;animation:alarm .65s ease-out both}
@keyframes alarm{from{transform:scale(2);opacity:0}to{transform:scale(1);opacity:1}}
.event-centre .eyebrow{margin-top:24px;color:#ffd393}
.event-centre h1{font:700 clamp(3rem,7vw,6.5rem)/.96 Fraunces,Georgia,serif;letter-spacing:-.06em;margin:10px 0}
.event-centre p{font-size:clamp(1.05rem,2vw,1.4rem);line-height:1.4;max-width:45ch}
.event-centre .primary{background:#ffbd81;box-shadow:none;margin-top:18px}
.event-credit{position:absolute;right:18px;bottom:16px;font-size:.74rem;color:#e1eae5}
.impact-screen{display:grid;grid-template-rows:60px minmax(0,1fr)}
.impact-main{display:grid;grid-template-columns:46% 54%;min-height:0}
.impact-photo{position:relative;background:linear-gradient(180deg,transparent 60%,#061923c9),var(--event-image) center/cover}
.graphic-event .impact-photo{background:radial-gradient(circle at center,color-mix(in srgb,var(--event-color) 38%,transparent),transparent 62%),repeating-linear-gradient(125deg,#173b49 0 12px,#0b2a39 12px 24px);display:grid;place-items:center}
.event-impact-symbol{font:700 clamp(7rem,23vw,20rem)/1 Fraunces,Georgia,serif;color:var(--event-color);text-shadow:0 18px 40px #00141c8a}
.impact-signal{top:22%;right:12%;min-width:130px;transform:rotate(-7deg)}
.impact-photo>span{position:absolute;bottom:18px;left:20px;font-size:.75rem}
.impact-report{display:flex;flex-direction:column;min-height:0;padding:clamp(18px,3vw,44px);background:#102f3a;overflow:auto}
.impact-report h1{font:700 clamp(2rem,4vw,4rem)/1 Fraunces,Georgia,serif;margin:9px 0;letter-spacing:-.05em}
.impact-story{color:#d0ded7;line-height:1.35;margin:0 0 14px}
.impact-values{display:flex;flex-wrap:wrap;gap:7px}
.impact-values div{display:flex;align-items:center;gap:12px;padding:11px 13px;background:#27424c;border:1px solid #547d81;border-radius:9px}
.impact-values strong{font-size:1.35rem;color:#ffc18d}
.impact-protection{font-size:.9rem;color:#b9dcd2}
.impact-current{display:flex;flex-wrap:wrap;gap:7px;margin-top:auto}
.impact-current span{padding:7px 9px;border:1px solid #6fa69f;border-radius:6px;color:#d5f0e5;font-size:.8rem}
.impact-current b{color:#fff;margin-left:5px}
.impact-bottom{display:flex;align-items:center;justify-content:space-between;gap:15px;margin-top:16px}
.impact-bottom .primary{box-shadow:none}
.result-screen{--grade:#6de1b8;--grade-bg:#0d3d45}
.result-screen.mixed{--grade:#edc376;--grade-bg:#493f2e}
.result-screen.fragile{--grade:#f39782;--grade-bg:#503234}
.result-screen{background:radial-gradient(circle at 45% 0%,#255e62,transparent 47%),#0a2630}
.result-screen .game-top{height:60px}
.result-main{box-sizing:border-box;display:flex;flex-direction:column;max-width:800px;max-height:calc(100dvh - 90px);min-height:0;margin:clamp(14px,3vh,30px) auto;padding:clamp(20px,3vw,35px);border:3px solid var(--grade);border-radius:20px;background:var(--grade-bg);box-shadow:0 25px 75px #0008}
.result-label{font-size:.75rem;letter-spacing:.15em;color:var(--grade);font-weight:800}
.result-header{display:flex;align-items:end;justify-content:space-between;gap:15px;margin:10px 0 18px}
.result-header span{font-size:.9rem;color:#d3e3db}
.result-header h1{font:700 clamp(2.8rem,5vw,4.6rem)/1 Fraunces,Georgia,serif;letter-spacing:-.05em;margin:3px 0;color:var(--grade)}
.total-score{display:flex;align-items:baseline;gap:4px}
.total-score strong{font-size:clamp(2.8rem,6vw,5rem);line-height:1;color:#fff}
.result-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}
.result-grid>div{display:grid;grid-template-columns:1fr auto;gap:7px;background:#061e2b8c;border-radius:10px;padding:14px}
.result-grid span{font-weight:700}
.result-grid strong{color:var(--accent);font-size:1.2rem}
.result-grid small{font-size:.75rem;color:#c9d9d1}
.result-grid i{grid-column:1/-1;height:7px;border-radius:5px;background:#617a79;overflow:hidden}
.result-grid em{display:block;height:100%;background:var(--accent)}
.result-foot{display:flex;justify-content:space-between;gap:18px;margin:18px 0;color:#d5e5dd;font-size:.9rem}
.result-foot p{margin:0;max-width:34ch;line-height:1.4}
.result-main .primary{align-self:flex-start;box-shadow:none}
@media(max-width:900px){.game-screen{grid-template-columns:minmax(0,1fr);grid-template-rows:50px 94px minmax(0,1fr) 78px;padding:0}.game-screen>.game-top{grid-column:1;grid-row:1}.status-rail{grid-column:1;grid-row:2;display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:5px;border:0;border-bottom:1px solid #72aea840;padding:8px 10px}.condition-chip,.resource-chip{min-width:0;min-height:0;padding:6px;border-left-width:0;border-top:3px solid var(--chip,#8cb8ae);flex-direction:column;justify-content:center;gap:4px;text-align:center}.condition-chip i{bottom:5px;left:7px;right:7px;height:3px}.condition-chip strong,.resource-chip strong{font-size:1.25rem}.chip-name,.resource-chip span{font-size:.73rem}.resource-chip{border-top-color:#87aeb0}.choice-stage{grid-column:1;grid-row:3;padding:8px 8px 6px;gap:5px}.side-rail{grid-column:1;grid-row:4;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:5px;padding:6px 10px 10px;border:0;border-top:1px solid #72aea840}.side-item{min-height:0;height:100%;padding:7px;gap:4px}.side-item span{font-size:.64rem}.side-item strong{font:700 .86rem/1.15 Fraunces,Georgia,serif;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.side-item small{display:none}.stage-heading{padding:0 3px;font-size:.64rem}.focus-zone{width:min(100%,590px);grid-template-columns:29px minmax(0,1fr) 29px;gap:4px}.cycle-button{width:29px;height:64px;padding:0;border-radius:8px;font-size:1.7rem}.focus-photo{flex-basis:34%;min-height:75px}.focus-body{padding:9px 11px 10px}.focus-body h1{font-size:clamp(1.35rem,5vw,1.9rem);margin:6px 0 3px}.focus-effect{font-size:.88rem;margin-bottom:5px}.focus-description{font-size:.82rem;line-height:1.25}.focus-ongoing{font-size:.76rem;margin-top:5px;padding:5px 7px}.focus-topline{font-size:.6rem}.cost-badge{font-size:.65rem;padding:4px 6px}.deck-picker{min-height:40px;max-height:42px}.deck-picker b{font-size:.65rem}.deck-picker span{font-size:.62rem}.stage-actions{gap:6px}.stage-actions button{min-height:43px;font-size:.8rem}.setup-main{grid-template-columns:1fr;align-content:center;gap:15px;max-width:620px}.setup-copy h1{font-size:clamp(2.3rem,8vw,4.5rem)}.setup-controls{padding:16px;max-width:380px}.impact-main{grid-template-columns:1fr;grid-template-rows:27% 73%}.impact-report{padding:18px}.impact-photo>span{bottom:7px}.result-main{margin:12px;padding:22px;max-height:calc(100dvh - 75px)}}
@media(max-width:560px){.game-screen{grid-template-rows:48px 110px minmax(0,1fr) 77px}.game-top{padding:0 11px}.game-brand{font-size:1rem}.brand-wave{width:27px;height:27px;font-size:1.35rem}.season-marker{font-size:.69rem}.season-marker b{font-size:.87rem}.menu-button{width:38px;height:38px}.status-rail{grid-template-columns:repeat(3,minmax(0,1fr));grid-template-rows:repeat(2,1fr);padding:5px 7px}.condition-chip,.resource-chip{flex-direction:row;text-align:left;justify-content:space-between;padding:4px 7px}.chip-name,.resource-chip span{font-size:.7rem}.condition-chip strong,.resource-chip strong{font-size:1.08rem}.condition-chip small{font-size:.54rem}.condition-chip i{left:6px;right:6px;bottom:3px;height:2px}.stage-heading{font-size:.57rem;letter-spacing:.04em}.card-category{top:7px;left:8px;font-size:.58rem;padding:5px 6px}.focus-photo .photo-location{font-size:.59rem}.deck-picker button{padding:4px;display:block;text-align:center}.deck-picker span{display:block}.deck-picker b{font-size:.64rem;-webkit-line-clamp:2}.side-rail{padding:5px 7px 8px}.side-item{padding:6px}.side-item strong{font-size:.82rem}.side-item span{font-size:.59rem}.setup-main{height:calc(100dvh - 48px);padding:15px 19px;gap:10px}.setup-screen .game-top{height:48px}.setup-copy h1{font-size:clamp(2.25rem,10vw,3.8rem)}.setup-copy p{font-size:.95rem}.setup-controls{gap:9px}.player-choice button{min-height:48px}.setup-credit{font-size:.62rem}.event-centre{padding:25px}.event-centre h1{font-size:clamp(2.6rem,11vw,4.5rem)}.event-centre p{font-size:1rem}.event-glyph{width:55px;height:55px;font-size:2.7rem}.impact-screen{grid-template-rows:48px minmax(0,1fr)}.impact-main{grid-template-rows:24% 76%}.impact-report h1{font-size:2rem}.impact-values div{padding:7px 9px}.impact-story{font-size:.86rem}.impact-protection{margin:8px 0}.impact-current{gap:4px}.impact-current span{padding:5px;font-size:.68rem}.impact-bottom{margin-top:9px}.impact-bottom .primary{min-height:42px;padding:8px;font-size:.82rem}.result-screen .game-top{height:48px}.result-main{max-height:calc(100dvh - 65px);padding:17px;margin:8px 10px}.result-header{margin:8px 0 13px}.result-header h1{font-size:2.6rem}.total-score strong{font-size:3rem}.result-grid{gap:7px}.result-grid>div{padding:10px}.result-foot{margin:12px 0;font-size:.8rem}.result-foot p{max-width:20ch}}
@media(max-height:700px){.game-screen{grid-template-rows:44px 86px minmax(0,1fr) 65px}.choice-stage{padding-top:5px;gap:4px}.stage-heading{font-size:.56rem}.focus-photo{flex-basis:30%;min-height:58px}.focus-body h1{font-size:1.3rem;margin:4px 0 2px}.focus-description{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden;font-size:.76rem}.focus-ongoing{font-size:.7rem;line-height:1.15}.focus-topline{font-size:.55rem}.choose-button{min-height:38px;font-size:.78rem}.deck-picker{min-height:34px;max-height:34px}.stage-actions button{min-height:38px}.side-item strong{font-size:.76rem}.side-item span{font-size:.55rem}.setup-copy p{font-size:.82rem}.setup-copy h1{font-size:2.4rem}.setup-controls{padding:12px}.result-main{max-height:calc(100dvh - 55px);padding:12px}.result-grid>div{padding:7px}.result-foot{margin:7px 0}.result-header{margin:5px 0 8px}.result-main .primary{min-height:38px;padding:8px 14px}.event-centre h1{font-size:2.7rem}.event-centre p{margin:8px 0}.event-centre .primary{margin-top:6px}}
@media(max-width:900px) and (orientation:landscape){.game-screen{grid-template-columns:95px minmax(0,1fr) 140px;grid-template-rows:42px minmax(0,1fr)}.game-screen>.game-top{grid-column:1/-1}.status-rail{grid-column:1;grid-row:2;grid-template-columns:1fr;grid-template-rows:repeat(6,1fr);padding:4px}.condition-chip,.resource-chip{padding:3px 5px}.choice-stage{grid-column:2;grid-row:2}.side-rail{grid-column:3;grid-row:2;display:flex;flex-direction:column;padding:4px}.side-item{flex:1}.focus-photo{flex-basis:28%}.focus-body h1{font-size:1.2rem}.focus-description{display:none}.deck-picker{min-height:30px}.stage-actions button{min-height:34px}}
@media(max-width:560px){.event-signal{right:15px;top:19%;min-width:88px;padding:7px 9px;border-width:3px;opacity:.95}.event-signal strong{font-size:3rem}.event-signal span{font-size:.56rem}.impact-signal{top:8%;right:12px;padding:3px 7px;min-width:70px}.impact-signal strong{font-size:2.3rem}.impact-signal span{font-size:.47rem}}
@media(max-width:560px) and (max-height:700px){.focus-photo{flex-basis:22%;min-height:43px}.focus-body{padding:5px 8px}.focus-body h1{font-size:1.1rem;line-height:1.04}.focus-effect{font-size:.75rem;margin:2px 0}.focus-description{display:none}.focus-ongoing{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden;font-size:.64rem;line-height:1.1;margin-top:3px;padding:4px 6px}.choose-button{min-height:34px;font-size:.73rem}.focus-topline{font-size:.5rem}.cost-badge{font-size:.55rem}.setup-copy h1{font-size:2.1rem}.setup-copy p{font-size:.77rem}.setup-controls{gap:7px}.setup-controls .primary{min-height:40px}.player-choice button{min-height:40px}.result-foot{font-size:.7rem}}
@media(max-width:900px) and (orientation:portrait){.game-screen{grid-template-rows:calc(50px + env(safe-area-inset-top)) 94px minmax(0,1fr) calc(78px + env(safe-area-inset-bottom))}.game-screen>.game-top{padding-top:env(safe-area-inset-top)}.side-rail{padding-bottom:calc(10px + env(safe-area-inset-bottom))}.setup-screen .game-top,.result-screen .game-top{height:calc(60px + env(safe-area-inset-top));padding-top:env(safe-area-inset-top)}.setup-main{height:calc(100dvh - 60px - env(safe-area-inset-top) - env(safe-area-inset-bottom))}.impact-screen{grid-template-rows:calc(60px + env(safe-area-inset-top)) minmax(0,1fr)}.impact-screen .game-top{padding-top:env(safe-area-inset-top)}.impact-report{padding-bottom:calc(18px + env(safe-area-inset-bottom))}.result-main{max-height:calc(100dvh - 90px - env(safe-area-inset-top) - env(safe-area-inset-bottom))}.event-top{padding-top:calc(22px + env(safe-area-inset-top))}}
@media(max-width:560px) and (orientation:portrait){.game-screen{grid-template-rows:calc(48px + env(safe-area-inset-top)) 110px minmax(0,1fr) calc(77px + env(safe-area-inset-bottom))}.setup-screen .game-top,.result-screen .game-top{height:calc(48px + env(safe-area-inset-top))}.setup-main{height:calc(100dvh - 48px - env(safe-area-inset-top) - env(safe-area-inset-bottom))}.impact-screen{grid-template-rows:calc(48px + env(safe-area-inset-top)) minmax(0,1fr)}.result-main{max-height:calc(100dvh - 65px - env(safe-area-inset-top) - env(safe-area-inset-bottom))}}
@media(prefers-reduced-motion:reduce){.event-glyph{animation:none}}
@media print{body.is-print{overflow:visible!important}.frame,.panel-layer{display:none!important}}

/* Local vector icon system — Phosphor duotone + Island Together outrigger. */
.ui-icon{display:inline-block;width:1.15em;height:1.15em;flex:0 0 auto;vertical-align:-.18em;color:currentColor}
.brand-wave{overflow:hidden}
.brand-wave .ui-icon{width:24px;height:24px}
.menu-button{display:grid;place-items:center}
.menu-button .ui-icon{width:23px;height:23px}
.chip-label{display:flex;align-items:center;gap:7px;min-width:0}
.condition-chip .chip-label>.ui-icon{width:22px;height:22px;color:var(--chip)}
.resource-chip .chip-label>.ui-icon{width:20px;height:20px;color:#b9ddd4}
.card-category{display:inline-flex;align-items:center;gap:6px}
.card-category .ui-icon{width:18px;height:18px;color:#91ead2}
.cost-badge{display:inline-flex;align-items:center;gap:8px}
.cost-badge>span{display:inline-flex;align-items:center;gap:3px}
.cost-badge .ui-icon{width:16px;height:16px;color:#287168}
.cost-badge b{font-size:.8rem}
.stage-actions button{display:flex;align-items:center;justify-content:center;gap:8px}
.effort-trigger .ui-icon,.face-button .ui-icon{width:21px;height:21px}
.side-item>.side-label{display:flex;align-items:center;gap:7px}
.side-label>.ui-icon{width:22px;height:22px}
.role-icons{display:inline-flex;align-items:center;gap:2px}
.role-icons .ui-icon{width:1.15em;height:1.15em}
.rail-role{margin-right:1px}
.role-emblem{font:inherit}
.role-emblem .role-icons{gap:5px}
.role-emblem .ui-icon{width:38px;height:38px}
.forecast-row{gap:9px}
.panel-row-icon{display:grid;place-items:center;width:34px;height:34px;border-radius:50%;background:#d8ebe3;color:#16786f}
.panel-row-icon .ui-icon{width:22px;height:22px}
.forecast-number{color:#187e70;font-weight:800}
.service-title{display:flex;align-items:center;gap:8px}
.service-title>.ui-icon{width:23px;height:23px;color:var(--accent)}
.service-title h3{margin:0}
.effort-choices button{display:flex;align-items:center;justify-content:flex-start;gap:8px}
.effort-choices .ui-icon{width:22px;height:22px;color:var(--accent)}
.readout-name{display:flex;align-items:center;gap:7px}
.readout-name>.ui-icon{width:20px;height:20px;color:#267d73}
.event-art-symbol{width:clamp(13rem,35vw,38rem);height:clamp(13rem,35vw,38rem);font:inherit}
.event-art-symbol .ui-icon{width:100%;height:100%}
.event-signal strong{display:grid;place-items:center;width:clamp(4rem,10vw,8rem);height:clamp(4rem,10vw,8rem);font:inherit}
.event-signal strong .ui-icon{width:100%;height:100%}
.event-glyph .ui-icon{width:43px;height:43px}
.event-impact-symbol{display:block;width:clamp(7rem,23vw,20rem);height:clamp(7rem,23vw,20rem);font:inherit}
.event-impact-symbol .ui-icon{width:100%;height:100%}
.impact-values div{gap:8px}
.impact-values .ui-icon{width:22px;height:22px;color:#8fe0cf}
.impact-current span{display:inline-flex;align-items:center;gap:5px}
.impact-current .ui-icon{width:16px;height:16px;color:#8fe0cf}
.result-name{display:flex;align-items:center;gap:7px}
.result-name .ui-icon{width:22px;height:22px;color:var(--accent)}
@media(max-width:900px){
  .chip-label{gap:4px}
  .condition-chip .chip-label>.ui-icon,.resource-chip .chip-label>.ui-icon{width:17px;height:17px}
  .side-label>.ui-icon{width:17px;height:17px}
  .role-icons .ui-icon{width:16px;height:16px}
}
@media(max-width:560px){
  .brand-wave .ui-icon{width:20px;height:20px}
  .chip-label{gap:3px}
  .condition-chip .chip-label>.ui-icon,.resource-chip .chip-label>.ui-icon{width:15px;height:15px}
  .card-category .ui-icon{width:14px;height:14px}
  .cost-badge{gap:5px}
  .cost-badge .ui-icon{width:13px;height:13px}
  .cost-badge b{font-size:.68rem}
  .stage-actions button{gap:5px}
  .effort-trigger .ui-icon,.face-button .ui-icon{width:17px;height:17px}
  .event-glyph .ui-icon{width:34px;height:34px}
}
