:root{color-scheme:light;--ink:#f1f5f7;--ink-deep:#080d13;--paper:#080d13;--cream:#101b27;--surface:#101b27;--surface-raised:#172635;--line:#2b3b4b;--line-strong:#566676;--muted:#abb8c5;--gold:#e6b86b;--orange:#e6b86b;--teal:#97c0b8;--blue:#91b3ce;--shadow:0 16px 40px #0005,inset 0 1px 0 #ffffff08;--radius:12px;--font-display:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;font-family:var(--font-display);color:var(--ink);background:var(--paper);font-synthesis:none}
*{box-sizing:border-box}
body{margin:0;min-width:320px;background-image:radial-gradient(#d6edf506 .65px,transparent .65px);background-size:5px 5px}
button,input,select{font:inherit}
button,a,input,select{touch-action:manipulation}
button{cursor:pointer}
button:disabled{cursor:not-allowed;opacity:.42}
a{color:inherit}
button,input,select{outline-offset:4px}
button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,summary:focus-visible{outline:3px solid #7ba9bd}
h1,h2,h3,p{margin-top:0}
button{color:inherit}
h1,h2,.serif{font-family:var(--font-display);font-weight:400}
.site-header{max-width:1680px;margin:auto;padding:24px 4vw 20px;display:flex;align-items:center;justify-content:space-between;gap:24px;border-bottom:1px solid var(--line)}
.brand{text-decoration:none;display:flex;gap:11px;align-items:center;font-size:14px;letter-spacing:2.1px;line-height:1.3}
.brand b{font-weight:800}
.brand small{display:block;font-size:7.7px;letter-spacing:1.8px;margin-top:6px}
.brand-mark{font-size:43px;line-height:1;font-family:var(--font-display);position:relative}
.brand-mark:before{content:"";position:absolute;border:1px solid var(--line-strong);inset:-3px 2px;border-radius:50%}
.site-header nav{display:flex;gap:14px;align-items:center}
.text-button{border:0;background:transparent;font-size:12px;font-weight:650;padding:12px 6px;white-space:nowrap}
.text-button:hover{text-decoration:underline;text-underline-offset:5px}
.site-footer{max-width:1680px;margin:auto;padding:26px 4vw;display:flex;justify-content:space-between;gap:20px;color:var(--muted);font-size:10px;letter-spacing:.6px;border-top:1px solid var(--line)}
.skip-link{position:fixed;top:8px;left:8px;z-index:100;background:var(--surface-raised);color:white;padding:12px;transform:translateY(-150%)}
.skip-link:focus{transform:none}
.primary-button,.secondary-button,.danger-button{border:1px solid var(--line-strong);min-height:46px;border-radius:7px;padding:12px 21px;font-weight:650;font-size:13px;display:inline-flex;align-items:center;justify-content:center;gap:13px}
.primary-button{background:var(--surface-raised);color:var(--cream);box-shadow:0 4px 0 #00000055}
.primary-button:hover{background:#d6edf5}
.primary-button .arrow{font-size:19px}
.secondary-button{background:transparent;color:var(--ink)}
.secondary-button:hover{background:#d6edf509}
.danger-button{background:#edf7fa;border-color:#7ba9bd;color:#08658f}
.icon-button{border:1px solid var(--line);background:var(--cream);width:37px;height:37px;display:inline-grid;place-items:center;font-size:21px;border-radius:50%;flex:none}
.icon-button:hover{background:#edf7fa}
.eyebrow{display:inline-flex;align-items:center;gap:8px;font-size:9px;letter-spacing:2.2px;text-transform:uppercase;font-weight:750}
.eyebrow:before{content:"";width:22px;height:1px;background:currentColor}
.hero{max-width:1400px;padding:54px 4vw 34px;margin:auto;display:grid;grid-template-columns:1fr 1fr;align-items:center;gap:56px}
.hero-copy .eyebrow{color:#08658f;margin-bottom:20px}
.hero h1{font-size:clamp(44px,4.6vw,74px);line-height:1.02;letter-spacing:-2px;max-width:650px;margin-bottom:24px}
.hero h1 em{font-weight:400;color:var(--orange)}
.hero-copy p{font-size:14px;line-height:1.8;max-width:430px;color:#35566b;margin-bottom:24px}
.hero-tags{display:flex;flex-wrap:wrap;gap:8px}
.pill{font-size:9px;letter-spacing:1px;border:1px solid var(--line);border-radius:50px;display:inline-flex;gap:6px;align-items:center;padding:7px 11px;color:#35566b}
.pill svg{width:12px;height:12px}
.hero-art{position:relative;max-width:560px;justify-self:end;width:100%;transform:rotate(1deg);padding:9px;background:#edf7fa;box-shadow:8px 11px 0 #00000055,0 15px 25px #00000013;border:1px solid #7ba9bd}
.hero-art:before{content:"THE WORLD IS NOT QUITE AS YOU REMEMBER IT";position:absolute;bottom:36px;left:0;right:0;text-align:center;color:#173653;letter-spacing:1.8px;font-size:7px;z-index:1}
.hero-art svg{display:block;width:100%;height:auto}
.poster-caption{font-size:8px;letter-spacing:2px;text-transform:uppercase;display:flex;justify-content:space-between;padding:9px 4px 3px}
.setup-section{max-width:1400px;padding:20px 4vw 48px;margin:auto}
.section-heading{display:flex;justify-content:space-between;align-items:flex-end;gap:20px;margin-bottom:20px}
.section-heading .eyebrow{color:#08658f;margin-bottom:8px}
.section-heading h2{font-size:30px;letter-spacing:-.5px;margin:0}
.subtle{font-size:11px;line-height:1.7;color:var(--muted)}
.setup-count{display:flex;align-items:center;gap:12px;font-size:11px}
.segmented{display:flex;gap:3px;padding:4px;border:1px solid var(--line);border-radius:8px;background:#edf7fa}
.segmented button{border:0;padding:7px 14px;border-radius:4px;background:transparent;font-size:11px}
.segmented button.selected{background:var(--surface-raised);color:var(--cream);box-shadow:0 2px 4px #00000020}
.explorer-selection{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}
.explorer-slot{border:1px solid var(--line);background:var(--cream);border-radius:10px;overflow:hidden;position:relative;box-shadow:0 3px 0 #00000055}
.explorer-slot .slot-art{width:100%;height:136px;display:block;background:var(--player-color)}
.slot-caption{padding:16px}
.slot-number{font-size:8px;text-transform:uppercase;letter-spacing:1.6px;color:var(--muted);margin-bottom:7px}
.explorer-slot select{border:0;background:transparent;font-weight:750;color:var(--ink);width:100%;padding:3px 19px 3px 0;font-size:13px;cursor:pointer}
.explorer-role{font-family:var(--font-display);font-style:italic;font-size:13px;color:#08658f;margin:6px 0 12px}
.explorer-ability{font-size:10px;line-height:1.7;min-height:50px;margin-bottom:12px;color:#35566b}
.explorer-slot input{width:100%;font-size:11px;border:1px solid #7ba9bd;padding:10px;border-radius:5px;background:#edf7fa}
.explorer-slot .limits{display:flex;gap:10px;font-size:8px;color:var(--muted);margin:10px 0 0}
.setup-bottom{display:flex;justify-content:space-between;align-items:center;gap:20px;padding-top:24px}
.setup-bottom p{font-size:10px;color:var(--muted);line-height:1.8;max-width:590px;margin:0}
.setup-bottom .buttons{display:flex;gap:12px;flex-wrap:wrap}
.intro-note{background:#edf7fa;border:1px solid #7ba9bd;padding:11px 16px;border-radius:6px;font-size:10px;line-height:1.7;color:#35566b;margin-top:22px}
.loading-state{padding:100px 30px;text-align:center}
.compass-star{font-size:70px;color:var(--orange)}
.loading-state h1{font-size:36px}
.loading-state p{color:var(--muted)}
.game-shell{max-width:1680px;padding:25px 3vw 36px;margin:auto}
.round-banner{display:flex;justify-content:space-between;gap:20px;align-items:center;margin-bottom:20px}
.turn-heading{display:flex;align-items:center;gap:13px}
.avatar-dot{display:inline-grid;place-items:center;background:var(--player-color,var(--orange));color:white;width:43px;height:43px;border-radius:50%;font-family:var(--font-display);font-size:21px;border:3px solid var(--cream);box-shadow:0 0 0 1px var(--line);flex:none}
.turn-heading .eyebrow{font-size:8px;color:#08658f;margin-bottom:5px;display:flex}
.turn-heading .eyebrow:before{display:none}
.turn-heading h1{font-size:26px;margin:0;line-height:1.1}
.round-facts{display:flex;gap:22px;align-items:center;font-size:10px}
.round-facts strong{font-size:19px;font-family:var(--font-display);font-weight:400;display:block;color:var(--ink);margin-top:3px}
.round-facts>div{color:var(--muted)}
.round-progress{display:flex;gap:5px;margin-top:8px}
.round-progress span{display:block;width:12px;height:4px;background:#edf7fa;border-radius:5px}
.round-progress .past{background:#edf7fa}
.round-progress .current{background:var(--orange)}
.final-flag{background:#edf7fa;color:#08658f;border:1px solid #7ba9bd;border-radius:5px;padding:8px 12px;font-size:10px}
.players-strip{display:grid;grid-template-columns:repeat(var(--player-count,4),1fr);gap:10px;margin-bottom:19px}
.player-summary{background:#edf7fa;border:1px solid #7ba9bd;border-radius:8px;padding:13px 15px;text-align:left;position:relative;overflow:hidden;min-height:94px}
.player-summary:before{content:"";position:absolute;left:0;top:0;bottom:0;width:4px;background:var(--player-color)}
.player-summary.is-active{border-color:var(--player-color);box-shadow:0 3px 0 var(--player-color)}
.player-summary:hover{background:var(--surface-raised)}
.player-summary-top{display:flex;justify-content:space-between;align-items:flex-start;gap:10px}
.player-summary strong{font-size:11px;display:block}
.player-summary .role-label{font-size:8px;color:var(--muted);margin-top:4px;display:block}
.score{font-family:var(--font-display);font-size:28px;line-height:.95;display:flex;align-items:center;gap:5px;white-space:nowrap}
.score small{font-family:system-ui,sans-serif;font-size:7px;text-transform:uppercase;letter-spacing:.7px;max-width:30px;white-space:normal;line-height:1.4;color:var(--muted)}
.player-stats{display:flex;gap:12px;font-size:9px;flex-wrap:wrap;margin-top:13px;color:#35566b}
.player-stats b{color:var(--ink)}
.game-layout{display:grid;grid-template-columns:minmax(0,1fr) 320px;gap:18px;align-items:start}
.panel{background:#edf7fa;border:1px solid var(--line);border-radius:10px;overflow:hidden;box-shadow:var(--shadow)}
.panel-head{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:15px 18px;border-bottom:1px solid var(--line)}
.panel-head h2{font-size:19px;margin:0}
.panel-head .eyebrow{font-size:8px}
.map-tools{display:flex;gap:6px;align-items:center}
.map-tools button{width:29px;height:29px;font-size:16px}
.map-tools .center-map{width:auto;font-family:system-ui,sans-serif;font-size:9px;padding:0 10px;border-radius:20px}
.map-viewport{height:440px;overflow:auto;position:relative;scroll-behavior:smooth;background-color:#edf7fa;background-image:linear-gradient(30deg,#edf7fa11 12%,transparent 12.5%,transparent 87%,#edf7fa11 87.5%,#edf7fa11),linear-gradient(150deg,#edf7fa11 12%,transparent 12.5%,transparent 87%,#edf7fa11 87.5%,#edf7fa11),linear-gradient(30deg,#edf7fa11 12%,transparent 12.5%,transparent 87%,#edf7fa11 87.5%,#edf7fa11),linear-gradient(150deg,#edf7fa11 12%,transparent 12.5%,transparent 87%,#edf7fa11 87.5%,#edf7fa11);background-size:70px 120px}
.map-canvas{position:relative;min-width:100%;min-height:100%;margin:auto;background-image:radial-gradient(#d6edf518 1px,transparent 1px);background-size:var(--tile-step) var(--tile-step);background-position:calc(var(--tile-step)/2) calc(var(--tile-step)/2)}
.map-compass{position:sticky;left:18px;top:17px;width:32px;z-index:3;text-align:center;pointer-events:none;color:#35566b;opacity:.6;font-size:8px;line-height:1}
.map-compass span{display:block;font-size:37px;font-family:var(--font-display);margin-top:3px}
.map-tile{position:absolute;padding:0;border:2px solid #7ba9bd;border-radius:9px;box-shadow:0 4px 0 #00000036,0 2px 7px #00000020;overflow:hidden;text-align:left;background:#edf7fa;transition:box-shadow .15s;isolation:isolate}
.map-tile:hover{box-shadow:0 0 0 3px #00000055,0 6px 8px #00000030;z-index:4}
.map-tile.is-selected{outline:3px solid var(--ink);outline-offset:2px;z-index:3}
.map-tile.is-current{box-shadow:0 0 0 3px #00000055,0 5px 0 #00000036}
.tile-scene{position:absolute;inset:0;width:100%;height:100%;opacity:.94;z-index:-1}
.tile-road{position:absolute;background:#edf7fa;border:1px solid #7ba9bd;z-index:1}
.tile-road.N{width:9%;height:29%;top:-1px;left:45.5%;border-top:0}
.tile-road.S{width:9%;height:29%;bottom:-1px;left:45.5%;border-bottom:0}
.tile-road.E{width:29%;height:9%;right:-1px;top:45.5%;border-right:0}
.tile-road.W{width:29%;height:9%;left:-1px;top:45.5%;border-left:0}
.tile-road:after{content:"";position:absolute;inset:0;border-left:1px dashed #7ba9bd;left:50%}
.tile-road.E:after,.tile-road.W:after{border-left:0;border-top:1px dashed #7ba9bd;top:50%;left:0}
.tile-label{position:absolute;bottom:0;left:0;right:0;min-height:30%;padding:6px 6px 5px;background:linear-gradient(transparent,#d6edf5e8 27%);z-index:2;color:#173653;display:flex;align-items:flex-end;justify-content:space-between;gap:3px}
.tile-name{font-family:var(--font-display);font-size:10px;line-height:1.1;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.tile-renown{font-size:10px;font-weight:700;color:#08658f}
.tile-pawns{position:absolute;top:5px;left:5px;z-index:3;display:flex;gap:2px;flex-wrap:wrap;max-width:65%}
.pawn{display:inline-flex;align-items:center;justify-content:center;min-width:18px;height:18px;border:1.5px solid #7ba9bd;border-radius:50%;font-size:8px;color:#173653;background:var(--player-color);font-weight:750;box-shadow:0 1px 3px #00000033}
.tile-owner{position:absolute;top:0;right:0;z-index:3;width:0;height:0;border-top:20px solid var(--player-color);border-left:20px solid transparent}
.tile-legend{position:absolute;right:5px;top:25px;z-index:3;background:#d6edf5;color:#173653;border:1px solid #7ba9bd;min-width:23px;height:23px;border-radius:50%;display:grid;place-items:center;font-size:10px;font-weight:700}
.frontier-tile{position:absolute;display:grid;place-items:center;color:#35566b;pointer-events:none;border:1px dashed #7ba9bd88;border-radius:9px;font-size:23px;opacity:.55}
.map-legend{display:flex;align-items:center;flex-wrap:wrap;gap:14px;padding:11px 16px;font-size:8px;color:#35566b;border-top:1px solid var(--line)}
.map-legend span{display:inline-flex;align-items:center;gap:5px}
.mini-line{display:inline-block;width:17px;height:5px;border:1px solid #7ba9bd;background:#edf7fa}
.mini-claim{width:0;height:0;border-top:10px solid var(--orange);border-left:10px solid transparent}
.map-detail{padding:14px 18px;background:#edf7fa;border-top:1px solid var(--line)}
.map-detail h3{font-family:var(--font-display);font-weight:400;font-size:18px;margin-bottom:5px}
.map-detail p{font-size:10px;line-height:1.65;margin:5px 0 0;color:#35566b}
.map-detail .location-meta{font-size:8px;text-transform:uppercase;letter-spacing:1px;color:#08658f}
.map-detail .legend-info{margin-top:11px;padding:11px;background:#edf7fa;border:1px solid #7ba9bd;border-radius:7px}
.legend-info strong{font-size:11px}
.legend-info p{font-size:9px}
.discovery-panel{margin-top:16px}
.discovery-row{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;padding:15px 17px}
.discovery-card{border:1px solid #7ba9bd;background:#edf7fa;border-radius:7px;overflow:hidden;text-align:left;padding:0;position:relative}
.discovery-card:hover{border-color:var(--line-strong)}
.discovery-art{height:68px;width:100%;display:block}
.discovery-copy{padding:9px 10px 11px}
.discovery-copy strong{font-family:var(--font-display);font-size:13px;line-height:1.15;font-weight:400;display:block;margin-bottom:6px}
.discovery-copy span{font-size:8px;color:#35566b}
.discovery-badge{position:absolute;top:7px;right:7px;background:#edf7fadd;font-size:8px;padding:4px 6px;border-radius:4px}
.actions-panel{position:sticky;top:14px}
.actions-panel .panel-head{background:var(--surface-raised);color:#173653;padding:17px}
.actions-panel .panel-head h2{font-size:21px}
.phase-label{font-size:8px;color:#173653;letter-spacing:1px;text-transform:uppercase}
.action-intro{font-size:10px;line-height:1.7;color:#35566b;padding:14px 16px 0;margin-bottom:8px}
.action-groups{padding:6px 12px 12px;max-height:640px;overflow:auto}
.action-group{border-bottom:1px solid #7ba9bd}
.action-group:last-child{border-bottom:0}
.action-group>summary{display:flex;justify-content:space-between;list-style:none;padding:14px 5px;font-size:11px;font-weight:750;cursor:pointer}
.action-group>summary:after{content:"+";font-size:14px;font-weight:400;color:#35566b}
.action-group[open]>summary:after{content:"−"}
.action-group>summary::-webkit-details-marker{display:none}
.action-count{font-weight:400;margin-left:auto;margin-right:9px;font-size:9px;color:#35566b}
.choice-button{width:100%;border:1px solid #7ba9bd;border-radius:6px;background:#edf7fa;padding:10px 11px;text-align:left;margin:0 0 6px;display:block;font-size:10px;line-height:1.5}
.choice-button:hover{border-color:var(--line-strong);background:#edf7fa}
.choice-button.selected{background:#edf7fa;border-color:var(--line-strong)}
.choice-button small{display:block;font-size:8px;color:#35566b;margin-top:3px}
.choice-form{padding:14px 16px;border-top:1px solid var(--line);background:#edf7fa}
.choice-form h3{font-size:13px;margin-bottom:6px}
.choice-form>p{font-size:10px;line-height:1.6;color:#35566b}
.field{margin-top:12px}
.field>label,.field>legend{font-size:10px;font-weight:700;display:block;margin-bottom:6px}
.field select,.field input[type=number],.field input[type=text]{width:100%;border:1px solid #7ba9bd;background:#edf7fa;color:var(--ink);padding:10px;font-size:11px;border-radius:5px}
.field fieldset,fieldset.field{border:0;padding:0;margin-left:0;margin-right:0}
.check-options{max-height:210px;overflow:auto;border:1px solid #7ba9bd;background:#edf7fa;border-radius:5px}
.check-option{padding:9px;display:flex;gap:8px;border-bottom:1px solid #7ba9bd;font-size:10px;line-height:1.6;align-items:flex-start}
.check-option:last-child{border-bottom:0}
.check-option input{margin-top:2px;accent-color:var(--ink)}
.choice-form .primary-button{margin-top:16px;width:100%;min-height:42px;font-size:11px;box-shadow:none}
.field-hint{font-size:8px;color:#35566b;margin-top:5px;line-height:1.5}
.error-message{font-size:11px;line-height:1.6;background:#edf7fa;border:1px solid #7ba9bd;color:#08658f;border-radius:5px;padding:10px;margin-top:12px}
.end-turn-button{background:#edf7fa;border-color:#7ba9bd;color:#08658f;font-weight:750}
.hand-panel{margin-top:18px}
.hand-panel .panel-head .text-button{font-size:9px;padding:3px}
.hand-row{display:flex;gap:12px;overflow-x:auto;padding:17px;align-items:stretch;scroll-snap-type:x proximity;min-height:110px}
.hand-card{flex:0 0 167px;border:1px solid #7ba9bd;border-radius:9px;background:#edf7fa;overflow:hidden;scroll-snap-align:start;box-shadow:0 3px 0 #00000055;position:relative;display:flex;flex-direction:column}
.card-top{display:flex;align-items:center;justify-content:space-between;gap:5px;background:var(--card-color,#d6edf5);padding:9px 11px;color:#173653;font-size:7px;text-transform:uppercase;letter-spacing:.8px}
.cost-token{font-family:var(--font-display);font-size:16px;line-height:1}
.card-content{padding:13px 11px 11px;display:flex;flex-direction:column;flex:1}
.card-content h3{font-family:var(--font-display);font-size:16px;font-weight:400;line-height:1.1;margin-bottom:9px}
.card-content p{font-size:9px;line-height:1.65;color:#35566b;margin:0}
.card-bottom{font-size:8px;display:flex;justify-content:space-between;margin-top:auto;padding-top:13px;color:#35566b}
.card-bottom strong{color:#173653;font-size:10px}
.hand-hidden{width:100%;padding:13px;display:flex;align-items:center;justify-content:center;gap:15px;flex-wrap:wrap;color:#35566b;font-size:11px}
.card-backs{display:flex;gap:6px}
.card-back{width:35px;height:48px;border:2px solid #7ba9bd;background:repeating-linear-gradient(45deg,#d6edf5 0,#d6edf5 3px,#d6edf5 3px,#d6edf5 6px);border-radius:4px;color:#35566b;display:grid;place-items:center;font-size:20px}
.party-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(170px,1fr));gap:12px}
.public-card{border:1px solid var(--line);padding:14px;border-radius:7px;background:#edf7fa}
.public-card.exhausted{background:#edf7fa;opacity:.8}
.public-card strong{font-family:var(--font-display);display:block;font-size:16px;font-weight:400;margin-bottom:6px}
.public-card p{font-size:10px;line-height:1.6;margin-bottom:7px;color:var(--muted)}
.card-status{font-size:8px;letter-spacing:.5px;color:#35566b;display:block;text-transform:uppercase}
.card-status.exhausted{color:#08658f}
.log-panel{margin-top:18px}
.log-panel summary{padding:16px 18px;cursor:pointer;font-size:11px}
.event-log{padding:0 18px 16px;max-height:220px;overflow:auto;margin:0;list-style:none}
.event-log li{font-size:10px;line-height:1.65;border-left:1px solid #7ba9bd;margin-left:5px;padding:0 0 12px 15px;color:#35566b;position:relative}
.event-log li:before{content:"";position:absolute;left:-3px;top:5px;background:#edf7fa;width:5px;height:5px;border-radius:50%}
.event-log li:first-child{color:var(--ink)}
.privacy-overlay{position:fixed;inset:0;background:#d6edf5fa;z-index:50;display:flex;align-items:center;justify-content:center;padding:25px;color:#173653;text-align:center}
.privacy-card{max-width:460px;width:100%;position:relative}
.privacy-card .eyebrow{color:#08658f;font-size:9px}
.privacy-card .avatar-dot{width:81px;height:81px;font-size:38px;margin:26px 0 25px;box-shadow:0 0 0 1px #00000055;border:6px solid #7ba9bd}
.privacy-card h2{font-size:43px;line-height:1.1;margin-bottom:16px}
.privacy-card p{color:#35566b;font-size:12px;line-height:1.8;max-width:355px;margin:0 auto 25px}
.privacy-card .primary-button{background:#edf7fa;color:#173653;border-color:#7ba9bd;box-shadow:0 4px 0 #00000055;min-width:250px}
.privacy-card small{font-size:9px;color:#35566b;display:block;margin-top:25px;line-height:1.7}
.privacy-card .secondary-button{border-color:#7ba9bd;color:#173653;margin-top:12px;min-width:250px;font-size:10px}
.game-shell.is-private{visibility:hidden}
.toast{position:fixed;bottom:26px;left:50%;transform:translateX(-50%);background:#d6edf5;color:#173653;border:1px solid #7ba9bd;border-radius:8px;padding:13px 20px;max-width:90vw;z-index:80;box-shadow:0 4px 25px #00000033;font-size:11px;line-height:1.5}
.toast.error{background:#d6edf5}
.toast[hidden]{display:none}
dialog{border:1px solid #7ba9bd;background:var(--paper);border-radius:14px;box-shadow:0 25px 100px #00000055;color:var(--ink);max-width:min(760px,calc(100vw - 30px));width:760px;max-height:90dvh;padding:0}
dialog::backdrop{background:#d6edf5bd;backdrop-filter:blur(2px)}
.dialog-top{padding:21px 25px;display:flex;align-items:center;justify-content:space-between;gap:20px;border-bottom:1px solid var(--line);background:var(--cream);position:sticky;top:0;z-index:1}
.dialog-top h2{font-size:26px;margin:0}
#dialog-content{padding:25px;font-size:12px;line-height:1.8}
#dialog-content h3{font-family:var(--font-display);font-size:22px;font-weight:400;margin:25px 0 10px}
#dialog-content h3:first-child{margin-top:0}
#dialog-content ul,#dialog-content ol{padding-left:22px}
#dialog-content li{padding:4px 0}
.rules-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.rules-grid section{border:1px solid var(--line);padding:15px;border-radius:8px}
.rules-grid section h3{margin-top:0!important;font-size:19px!important}
.rules-grid section p{margin-bottom:0;font-size:11px}
.rules-callout{padding:14px 17px;background:#edf7fa;border-left:3px solid #7ba9bd;margin:20px 0;font-size:11px}
.results-banner{background:var(--surface-raised);color:#173653;text-align:center;border-radius:14px;padding:42px 25px;margin:0 0 23px;position:relative;overflow:hidden}
.results-banner:before,.results-banner:after{content:"✦";position:absolute;font-size:160px;color:#08658f15;top:-5px;left:30px}
.results-banner:after{left:auto;right:30px}
.results-banner .eyebrow{color:#08658f}
.results-banner h1{font-size:43px;margin:14px 0}
.results-banner p{font-size:12px;color:#35566b;line-height:1.8;margin:0}
.results-table{width:100%;border-collapse:collapse;font-size:11px;margin:18px 0}
.results-table th{text-align:left;font-size:8px;text-transform:uppercase;letter-spacing:1px;color:#35566b;padding:10px}
.results-table td{padding:14px 10px;border-top:1px solid var(--line)}
.results-table td:last-child{font-size:20px;font-family:var(--font-display)}
.empty-message{font-size:11px;color:var(--muted);padding:18px;line-height:1.7}
.saved-notice{margin-bottom:24px;padding:15px 18px;background:#edf7fa;border:1px solid #7ba9bd;border-radius:9px;display:flex;align-items:center;justify-content:space-between;gap:20px;font-size:11px}
.saved-notice p{margin:0;line-height:1.7}
.saved-notice button{flex:none;min-height:35px;padding:8px 16px;font-size:10px}
.no-engine{max-width:620px;margin:60px auto;padding:30px}
.no-engine h1{font-size:34px}
.no-engine p{font-size:13px;line-height:1.8;color:var(--muted)}
.combat-banner{padding:15px 18px;border:1px solid #7ba9bd;background:#edf7fa;margin-bottom:16px;border-radius:9px;display:flex;align-items:center;gap:18px}
.combat-banner .combat-mark{font-size:29px;color:#08658f}
.combat-banner h2{font-size:19px;margin:0 0 4px}
.combat-banner p{font-size:10px;line-height:1.6;color:#08658f;margin:0}
.disabled-hint{font-size:9px;color:var(--muted);padding:0 16px 14px;line-height:1.7}

@media(min-width:1500px){.game-layout{grid-template-columns:minmax(0,1fr) 355px}
.map-viewport{height:510px}
.hero{padding-top:65px;padding-bottom:40px}
.hero-art{max-width:590px}
.slot-art{height:150px!important}
}

@media(max-width:1100px){.hero{gap:30px;padding-top:35px}
.hero h1{font-size:53px}
.hero-copy p{font-size:12px}
.explorer-selection{gap:10px}
.slot-caption{padding:13px}
.explorer-slot .slot-art{height:115px}
.game-layout{grid-template-columns:minmax(0,1fr) 285px;gap:13px}
.player-summary{padding:12px 11px}
.player-stats{gap:7px}
.map-viewport{height:390px}
.score{font-size:24px}
}

@media(max-width:820px){.site-header{padding:18px 22px}
.site-header nav{gap:9px}
.text-button{font-size:10px}
.brand{font-size:12px;letter-spacing:1.5px}
.brand small{font-size:6px;letter-spacing:1.2px}
.brand-mark{font-size:34px}
.hero{grid-template-columns:1fr 1fr;gap:22px;padding:35px 25px 25px}
.hero h1{font-size:43px;letter-spacing:-1.5px}
.hero-copy .eyebrow{font-size:7px;letter-spacing:1.6px;margin-bottom:13px}
.hero-copy p{font-size:11px;line-height:1.75;margin-bottom:18px}
.hero-tags{gap:5px}
.pill{font-size:7px;padding:6px 8px;letter-spacing:.5px}
.hero-art{box-shadow:6px 7px 0 #00000055;transform:rotate(1deg)}
.hero-art:before{font-size:5px;letter-spacing:1px;bottom:30px}
.poster-caption{font-size:5.5px;letter-spacing:1.2px}
.setup-section{padding:24px 25px 35px}
.section-heading h2{font-size:27px}
.explorer-selection{grid-template-columns:repeat(2,1fr);gap:14px}
.explorer-slot{display:grid;grid-template-columns:105px 1fr}
.explorer-slot .slot-art{height:100%;min-height:197px;object-fit:cover}
.slot-caption{padding:13px}
.explorer-ability{min-height:0;font-size:9px;margin-bottom:10px}
.explorer-role{font-size:12px;margin:5px 0 8px}
.explorer-slot select{font-size:12px}
.slot-number{font-size:7px}
.setup-bottom{align-items:flex-start}
.setup-bottom p{max-width:365px}
.setup-bottom .buttons{flex:none}
.game-shell{padding:20px 20px 30px}
.game-layout{grid-template-columns:minmax(0,1fr) 270px;gap:12px}
.players-strip{gap:8px}
.player-summary{padding:11px 10px}
.player-summary-top{gap:3px}
.player-summary strong{font-size:10px}
.player-summary .role-label{font-size:7px}
.player-stats{font-size:8px;gap:6px}
.score{font-size:23px}
.score small{display:none}
.turn-heading h1{font-size:24px}
.round-facts{gap:14px;font-size:8px}
.round-facts strong{font-size:17px}
.round-progress span{width:10px}
.map-viewport{height:380px}
.discovery-row{gap:6px;padding:11px}
.discovery-art{height:57px}
.discovery-copy{padding:7px}
.discovery-copy strong{font-size:11px}
.discovery-copy span{font-size:7px}
.panel-head{padding:13px}
.panel-head h2{font-size:18px}
.map-tools{gap:3px}
.map-tools .center-map{font-size:8px;padding:0 7px}
.map-tools button{width:25px;height:25px}
.actions-panel .panel-head{padding:14px}
.actions-panel .panel-head h2{font-size:19px}
.action-groups{max-height:560px}
.site-footer{padding:22px;flex-direction:column;gap:8px}
}

@media(max-width:640px){.site-header{padding:15px 16px;gap:10px;align-items:center}
.brand{font-size:10px;letter-spacing:1.2px;gap:8px}
.brand small{font-size:5px;letter-spacing:.85px;margin-top:4px}
.brand-mark{font-size:30px}
.site-header nav{gap:4px;flex-wrap:wrap;justify-content:flex-end;max-width:145px}
.site-header nav button{font-size:8px;padding:6px 4px}
.hero{grid-template-columns:1fr;padding:30px 23px 18px;gap:30px}
.hero h1{font-size:52px;max-width:400px;letter-spacing:-1.8px;margin-bottom:18px}
.hero-copy .eyebrow{font-size:8px;margin-bottom:17px}
.hero-copy p{font-size:12px;max-width:390px}
.hero-tags .pill{font-size:8px;padding:7px 10px}
.hero-art{width:88%;max-width:410px;justify-self:center;transform:rotate(-1.5deg)}
.hero-art:before{font-size:5px;letter-spacing:1.3px}
.poster-caption{font-size:6px;letter-spacing:1.4px}
.setup-section{padding:28px 20px}
.section-heading{align-items:flex-start;gap:15px;margin-bottom:17px;flex-direction:column}
.section-heading h2{font-size:29px}
.section-heading .eyebrow{font-size:8px}
.setup-count{width:100%;justify-content:space-between;font-size:10px}
.explorer-selection{grid-template-columns:1fr;gap:12px}
.explorer-slot{grid-template-columns:115px 1fr}
.explorer-slot .slot-art{min-height:186px}
.slot-caption{padding:14px}
.explorer-slot select{font-size:14px}
.explorer-role{font-size:13px}
.explorer-ability{font-size:10px;line-height:1.6}
.explorer-slot .limits{font-size:8px}
.setup-bottom{flex-direction:column;gap:19px}
.setup-bottom p{max-width:none;font-size:10px}
.setup-bottom .buttons{width:100%;flex-direction:column}
.setup-bottom .primary-button{width:100%;min-height:50px}
.intro-note{font-size:9px;margin-top:20px}
.saved-notice{flex-direction:column;align-items:stretch;font-size:10px;gap:12px}
.game-shell{padding:17px 12px 24px}
.round-banner{gap:12px;margin-bottom:16px;align-items:flex-start}
.avatar-dot{width:36px;height:36px;font-size:18px;border-width:2px}
.turn-heading{gap:10px}
.turn-heading .eyebrow{font-size:7px;letter-spacing:1px;margin-bottom:6px}
.turn-heading h1{font-size:22px}
.round-facts{gap:11px;font-size:7px;flex-wrap:wrap;justify-content:flex-end;max-width:140px}
.round-facts strong{font-size:16px}
.round-progress{gap:3px;margin-top:6px}
.round-progress span{width:7px;height:3px}
.round-facts .deck-fact{display:none}
.final-flag{padding:4px 6px;font-size:7px;flex:0 0 100%;text-align:center}
.players-strip{grid-template-columns:repeat(2,1fr);gap:8px;margin-bottom:16px}
.player-summary{padding:10px 12px;min-height:82px}
.player-summary strong{font-size:10px}
.player-summary .role-label{font-size:8px}
.score{font-size:26px}
.score small{display:block;font-size:6px}
.player-stats{font-size:8px;gap:9px;margin-top:12px}
.game-layout{grid-template-columns:1fr;gap:15px}
.actions-panel{position:static;grid-row:2}
.map-viewport{height:345px}
.panel-head{padding:14px}
.panel-head h2{font-size:19px}
.map-tools button{width:29px;height:29px}
.map-tools .center-map{font-size:8px;padding:0 10px}
.map-detail{padding:13px 14px}
.map-detail h3{font-size:18px}
.map-detail p{font-size:10px}
.map-legend{padding:11px 14px;font-size:8px;gap:13px}
.discovery-panel{margin-top:13px}
.discovery-row{padding:12px;gap:9px}
.discovery-art{height:62px}
.discovery-copy{padding:9px 8px}
.discovery-copy strong{font-size:12px}
.discovery-copy span{font-size:7px}
.actions-panel .panel-head{padding:15px}
.actions-panel .panel-head h2{font-size:22px}
.action-intro{font-size:11px}
.action-groups{max-height:none;padding:4px 13px 12px;display:grid;grid-template-columns:1fr 1fr;gap:0 12px;align-items:start}
.action-group>summary{font-size:11px;padding:13px 3px}
.choice-button{font-size:10px}
.choice-form{padding:17px}
.choice-form h3{font-size:15px}
.choice-form>p{font-size:11px}
.field>label,.field>legend{font-size:11px}
.field select,.field input[type=number],.field input[type=text]{font-size:14px;padding:11px}
.check-option{font-size:11px;padding:10px}
.choice-form .primary-button{min-height:46px;font-size:12px}
.hand-panel{margin-top:14px}
.hand-row{padding:14px;gap:10px}
.hand-card{flex-basis:159px}
.card-content h3{font-size:16px}
.card-content p{font-size:9px}
.privacy-card h2{font-size:37px}
.privacy-card p{font-size:12px}
.privacy-card .eyebrow{font-size:8px;letter-spacing:1.8px}
.privacy-card small{font-size:9px}
.dialog-top{padding:17px}
.dialog-top h2{font-size:24px}
#dialog-content{padding:18px;font-size:11px}
.rules-grid{grid-template-columns:1fr}
.party-grid{grid-template-columns:1fr 1fr;gap:10px}
.public-card{padding:11px}
.public-card strong{font-size:15px}
.public-card p{font-size:9px}
.combat-banner{gap:12px;padding:13px}
.combat-banner h2{font-size:18px}
.combat-banner p{font-size:9px}
.results-banner{padding:30px 17px}
.results-banner h1{font-size:34px}
.results-banner p{font-size:11px}
.results-banner:before,.results-banner:after{font-size:100px;left:-20px;top:15px}
.results-banner:after{left:auto;right:-20px}
.results-table{font-size:9px}
.results-table th{font-size:7px;padding:8px 5px}
.results-table td{padding:11px 5px}
.site-footer{font-size:8px;padding:19px 16px}
.hand-hidden{font-size:10px}
.log-panel summary{font-size:10px}
}

@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important}
}

.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}
.discovery-art{overflow:hidden}
.discovery-art svg{display:block;width:100%;height:100%;object-fit:cover}
.private-info{font-size:10px;margin:12px 16px;background:#edf7fa;border:1px solid #7ba9bd;border-radius:5px;padding:10px}
.private-info summary{cursor:pointer;font-weight:700}
.private-info p{font-size:10px;line-height:1.7;margin:8px 0 0;color:#35566b}
.tile-scene svg{display:block;width:100%;height:100%}

.tile-road.N,.tile-road.S{height:51%}
.tile-road.E,.tile-road.W{width:51%}
.tile-road{z-index:2;opacity:.95}
.tile-hub{position:absolute;left:44%;top:44%;width:12%;height:12%;border-radius:50%;background:#edf7fa;border:1px solid #7ba9bd;z-index:3}
.tile-label{z-index:4;background:none;align-items:flex-end;pointer-events:none}
.tile-name{max-width:42%;font-size:8px;padding:3px;background:#d6edf5d9;border-radius:3px;line-height:1.2;-webkit-line-clamp:3}
.tile-renown{background:#d6edf5d9;border-radius:3px;padding:3px}
.tile-pawns,.tile-owner,.tile-legend{z-index:5}
.turn-usage{display:flex;flex-wrap:wrap;gap:6px;padding:8px 16px 4px;font-size:8px;color:#35566b}
.turn-usage span{padding:4px 6px;border:1px solid #7ba9bd;border-radius:4px;background:#edf7fa}

.card-full{font-size:8px;line-height:1.6;margin-top:8px}
.card-full summary{cursor:pointer;color:#35566b}
.card-full p{margin-top:7px}
.phase-label{max-width:100px;text-align:right;line-height:1.5}

.choice-button{font-size:11px}
.choice-button small{font-size:9px}
.action-intro{font-size:11px}
.hand-card{flex-basis:185px}
.card-content p{font-size:11px;line-height:1.6}
.card-top{font-size:8px}
.card-bottom{font-size:9px}
.public-card p{font-size:11px}
.check-option{font-size:11px}
.field>label,.field>legend{font-size:11px}
.choice-form>p{font-size:11px}
.action-group>summary{font-size:12px}
.hand-hidden{font-size:11px}
.card-full{font-size:9px}

@media(max-width:640px){.hand-card{flex-basis:178px}
.card-content p{font-size:11px}
.choice-button{font-size:11px}
.public-card p{font-size:10px}
.action-group>summary{font-size:11px}
}

/* In-place teaching aids: responsive cards and ordered windows, never a wide print table. */
.quick-reference{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin:15px 0}
.quick-reference section{border:1px solid #7ba9bd;border-radius:8px;padding:14px;background:#edf7fa}
.quick-reference h4{margin:0 0 8px;font-family:var(--font-display);font-size:17px;font-weight:400;line-height:1.4}
.quick-reference h4 b{display:block;font-family:system-ui,sans-serif;font-size:10px;font-weight:700;color:#08658f;margin-top:4px}
.quick-reference p{font-size:11px;line-height:1.7;margin:0}
.help-detail{border:1px solid #7ba9bd;border-radius:8px;padding:12px 15px;margin:14px 0;background:#edf7fa}
.help-detail>summary{cursor:pointer;font-weight:700;font-size:12px}
.help-detail>p{font-size:11px;margin-bottom:0}
.glossary{margin:14px 0;display:grid;gap:10px}
.glossary>div{border-bottom:1px solid #7ba9bd;padding-bottom:10px}
.glossary>div:last-child{border-bottom:0}
.glossary dt{font-weight:750;font-size:12px}
.glossary dd{margin:5px 0 0;font-size:11px;line-height:1.8;color:#35566b}
.help-fight-guides{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin:18px 0}
.encounter-guide-layout{display:grid;grid-template-columns:minmax(0,1fr) minmax(290px,38%);gap:13px;margin-bottom:16px;align-items:start}
.encounter-guide-layout .combat-banner{margin:0;min-height:94px}
.fight-guide{border:1px solid #7ba9bd;background:#edf7fa;border-radius:9px;overflow:hidden}
.fight-guide>summary{cursor:pointer;padding:12px 14px;font-size:12px;line-height:1.5;color:#08658f}
.fight-guide>summary>span{font-weight:750}
.fight-guide>summary>small{display:block;font-size:9px;color:#08658f;line-height:1.6;margin:4px 0 0 14px}
.fight-guide>ol{margin:0;padding:0 12px 12px;list-style:none;counter-reset:fight-stage}
.fight-guide li{counter-increment:fight-stage;position:relative;margin:0;padding:10px 10px 10px 35px;border-top:1px solid #7ba9bd;border-radius:4px;font-size:10px;line-height:1.65;color:#35566b}
.fight-guide li:before{content:counter(fight-stage);position:absolute;left:7px;top:11px;border:1px solid #7ba9bd;border-radius:50%;width:18px;height:18px;text-align:center;font-size:9px;line-height:17px;color:#08658f}
.fight-guide li b{display:block;font-size:11px;color:#35566b}
.fight-guide li span{display:block;margin-top:4px}
.fight-guide li.current-stage{background:#edf7fa;border:1px solid #7ba9bd;color:#35566b;margin:3px 0}
.fight-guide li.current-stage:before{background:#d6edf5;border-color:#7ba9bd;color:#173653}
.fight-guide li.current-stage b{color:#35566b}
.fight-guide li.completed-stage{opacity:.68}
.fight-guide li:not(.current-stage) span{font-size:9px}
.fight-interruption{margin-top:8px!important;font-style:italic}
.explore-help{border-top:1px solid #7ba9bd;background:#edf7fa;padding:11px 16px}
.explore-help summary{cursor:pointer;font-size:11px;font-weight:700;color:#35566b}
.explore-help p{font-size:10px;line-height:1.8;margin:9px 0 0;color:#35566b}
.explore-help[data-explore-status=no-frontier],.explore-help[data-explore-status=no-fit]{background:#edf7fa}
.explore-help[data-explore-status=no-frontier] summary,.explore-help[data-explore-status=no-fit] summary{color:#08658f}

@media(max-width:820px){.encounter-guide-layout{grid-template-columns:1fr;gap:9px}
.fight-guide>ol{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:5px}
.help-fight-guides .fight-guide>ol{display:block}
}

@media(max-width:640px){.quick-reference,.help-fight-guides{grid-template-columns:1fr}
.quick-reference h4{font-size:18px}
.quick-reference h4 b{font-size:11px}
.quick-reference p,.glossary dd{font-size:11px}
.fight-guide>ol{display:block}
.fight-guide li span,.fight-guide li:not(.current-stage) span{font-size:10px}
.fight-guide>summary{font-size:12px}
.fight-guide>summary>small{font-size:10px}
.explore-help{padding:12px 14px}
.explore-help summary{font-size:12px}
.explore-help p{font-size:11px}
}

.retired-panel{margin-top:16px;box-shadow:none}
.retired-panel>summary{padding:14px 18px;font-size:11px;cursor:pointer}
.retired-panel>p{font-size:10px;line-height:1.8;color:#35566b;margin:0 18px 12px}
.retired-list{list-style:none;margin:0;padding:0 18px 16px;display:flex;gap:8px;flex-wrap:wrap}
.retired-list li{border:1px solid #7ba9bd;border-radius:5px;padding:7px 10px;font-size:11px;background:#edf7fa}
.retired-list li span{font-size:8px;color:#08658f;margin-right:5px}
.retired-panel .retired-empty{font-style:italic;color:#35566b}

@media(max-width:640px){.retired-panel>summary{font-size:11px;padding:14px}
.retired-panel>p{margin-left:14px;margin-right:14px;font-size:11px}
.retired-list{padding-left:14px;padding-right:14px}
}

#dialog-content .fight-guide>ol{padding:0 12px 12px}
#dialog-content .fight-guide li{padding:10px 10px 10px 35px}

/* First-encounter presentation uses a separate ephemeral normal-rules state. */
.landing-actions{display:flex;gap:16px;flex-wrap:wrap;margin-top:25px}
.landing-actions>div{display:flex;flex-direction:column;align-items:flex-start;gap:9px}
.landing-actions small{font-size:9px;color:#35566b;line-height:1.6}
.landing-actions .primary-button,.landing-actions .secondary-button{min-height:47px;padding:12px 17px;font-size:12px}
.practice-shell{max-width:1180px;margin:auto;padding:28px 4vw 45px}
.practice-toolbar{display:flex;align-items:center;justify-content:space-between;gap:18px;margin-bottom:13px}
.practice-mode{font-size:10px;letter-spacing:.5px;font-weight:750;color:#35566b}
.practice-toolbar .secondary-button{min-height:44px;font-size:11px;padding:10px 15px}
.practice-notice{font-size:10px;line-height:1.8;color:#35566b;max-width:930px;margin-bottom:22px}
.practice-progress{display:flex;gap:9px;margin:0 0 26px}
.practice-progress span{display:grid;place-items:center;width:29px;height:29px;border:1px solid #7ba9bd;border-radius:50%;font-size:10px;color:#35566b;background:#edf7fa}
.practice-progress .done{background:#edf7fa;color:#35566b;border-color:#7ba9bd}
.practice-progress .current{background:#d6edf5;color:#173653;border-color:#7ba9bd;box-shadow:0 0 0 3px #00000055}
.practice-layout{display:grid;grid-template-columns:minmax(0,1fr) minmax(300px,43%);gap:55px;align-items:start}
.practice-copy .eyebrow{font-size:8px;color:#08658f;line-height:1.7;margin-bottom:15px}
.practice-copy h1{font-size:44px;line-height:1.08;letter-spacing:-1.2px;margin-bottom:20px;outline-offset:7px}
.practice-instruction{font-size:14px;color:#35566b;line-height:1.9;margin-bottom:20px}
.practice-copy>.primary-button{width:100%;min-height:51px;justify-content:space-between;font-size:12px;padding:14px 18px;white-space:normal;text-align:left}
.practice-copy>.primary-button:disabled{opacity:.72}
.practice-support{display:flex;flex-wrap:wrap;gap:8px;margin:14px 0}
.practice-support .text-button{font-size:10px;min-height:44px;padding:10px 4px}
.practice-equation{border:1px solid #7ba9bd;background:#edf7fa;border-radius:9px;padding:17px 18px;font-family:var(--font-display);font-size:21px;line-height:1.6;margin:18px 0 22px}
.practice-equation strong{display:block;font-family:var(--font-display);font-size:22px;font-weight:400;color:#35566b}
.practice-equation span{display:block;font-family:system-ui,sans-serif;font-size:10px;color:#35566b;line-height:1.8;margin-top:4px}
.practice-earned{font-size:31px;color:#35566b;background:#edf7fa;border-color:#7ba9bd}
.practice-earned strong{font-family:system-ui,sans-serif;font-size:11px;line-height:1.8;margin-top:7px}
.practice-receipt{font-size:10px;line-height:1.8;color:#35566b;border-left:2px solid #7ba9bd;padding-left:12px;margin-top:20px}
.practice-limits{font-size:11px;color:#35566b;line-height:1.8;border-top:1px solid var(--line);padding-top:17px}
.practice-success-actions{display:flex;gap:10px;flex-wrap:wrap;margin:20px 0}
.practice-success-actions .primary-button,.practice-success-actions .secondary-button{min-height:46px;font-size:11px;flex:1 1 180px}
.practice-success-actions .text-button{min-height:44px}
.practice-place{position:relative;overflow:hidden;background:#edf7fa;border:1px solid #7ba9bd;border-radius:11px;box-shadow:0 5px 0 #00000055;padding:0 20px 20px}
.practice-place-art{height:180px;margin:0 -20px 19px;overflow:hidden;background:#edf7fa}
.practice-place-art svg{width:100%;height:100%;display:block;object-fit:cover}
.practice-place>.eyebrow{font-size:8px;letter-spacing:1.4px;color:#08658f}
.practice-place h2{font-size:29px;line-height:1.1;margin:12px 0 14px}
.practice-road-preview{font-size:12px;line-height:1.8;margin-bottom:0;color:#35566b}
.practice-road-preview span{font-size:10px;color:#35566b}
.practice-legend{border:1px solid #7ba9bd;background:#edf7fa;border-radius:8px;padding:14px}
.practice-legend>span{font-size:10px;color:#08658f}
.practice-legend h3{font-family:var(--font-display);font-size:22px;font-weight:400;margin:7px 0 10px}
.practice-legend p{font-size:11px;line-height:1.7;color:#35566b;margin:8px 0 0}
.practice-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin:18px 0}
.practice-stats span{font-size:9px;line-height:1.7;color:#35566b;text-align:center;border-right:1px solid #7ba9bd}
.practice-stats span:last-child{border-right:0}
.practice-stats b{font-family:var(--font-display);display:block;font-size:25px;font-weight:400;color:#35566b}
.practice-party{display:grid;gap:10px}
.practice-companion{padding:14px 16px;border:1px solid #7ba9bd;background:#edf7fa;border-radius:8px}
.practice-companion.is-exhausted{background:#edf7fa;border-color:#7ba9bd}
.practice-companion h3{font-family:var(--font-display);font-size:20px;font-weight:400;margin:8px 0}
.practice-companion p{font-size:11px;color:#35566b;line-height:1.7;margin:0}
.card-shortcut{margin-top:12px;min-height:40px;border:1px solid #7ba9bd;border-radius:5px;background:#edf7fa;color:#35566b;font-size:11px;padding:8px 10px;text-align:left}
.card-shortcut:hover{background:#edf7fa}
.mobile-jumps{display:none}
#map-region,#actions-region,#hand-region{scroll-margin-top:65px}

@media(max-width:820px){.practice-layout{gap:28px;grid-template-columns:minmax(0,1fr) minmax(260px,42%)}
.practice-copy h1{font-size:37px}
.practice-instruction{font-size:13px}
.practice-place h2{font-size:26px}
.practice-place-art{height:155px}
}

@media(max-width:640px){.landing-actions{gap:12px;margin-top:23px}
.landing-actions .primary-button,.landing-actions .secondary-button{min-height:46px;font-size:12px}
.landing-actions small{font-size:9px}
.practice-shell{padding:18px 17px 30px}
.practice-toolbar{gap:10px;margin-bottom:12px}
.practice-mode{font-size:9px;line-height:1.7;max-width:170px}
.practice-toolbar .secondary-button{font-size:11px;white-space:nowrap;min-height:44px;padding:10px 12px}
.practice-notice{font-size:10px;line-height:1.7;margin-bottom:17px}
.practice-progress{margin-bottom:21px;gap:8px}
.practice-progress span{width:27px;height:27px}
.practice-layout{grid-template-columns:minmax(0,1fr);gap:25px}
.practice-copy h1{font-size:36px;letter-spacing:-1px;margin-bottom:15px}
.practice-copy .eyebrow{font-size:8px;margin-bottom:12px}
.practice-instruction{font-size:13px;line-height:1.8}
.practice-copy>.primary-button{font-size:12px;min-height:50px}
.practice-equation{font-size:21px;padding:14px;margin:17px 0 20px}
.practice-equation strong{font-size:21px}
.practice-earned{font-size:30px}
.practice-earned strong{font-size:11px}
.practice-support{justify-content:space-between;gap:4px}
.practice-support .text-button{font-size:10px;max-width:48%;white-space:normal;text-align:left;line-height:1.6}
.practice-place-art{height:140px}
.practice-place h2{font-size:28px}
.practice-stats span{font-size:9px}
.practice-party{grid-template-columns:minmax(0,1fr)}
.practice-success-actions{flex-direction:column}
.practice-success-actions .primary-button,.practice-success-actions .secondary-button{flex:auto;min-height:46px}
.mobile-jumps{display:flex;position:sticky;top:0;z-index:7;gap:6px;padding:7px;background:#edf7faf2;border:1px solid #7ba9bd;border-radius:9px;margin:0 0 14px;backdrop-filter:blur(6px)}
.mobile-jumps button{flex:1;min-height:44px;border:1px solid #7ba9bd;border-radius:5px;background:#edf7fa;font-size:11px;font-weight:700;color:#35566b}
.card-shortcut{min-height:44px;font-size:11px}
.field select,.field input[type=number],.field input[type=text],.explorer-slot input,.explorer-slot select{font-size:16px}
}

/* Primary first-session text remains readable on compact screens. */
.practice-instruction{font-size:16px;line-height:1.8}
.practice-notice{font-size:12px;line-height:1.7}
.practice-mode{font-size:12px;line-height:1.6}
.practice-copy>.primary-button,.practice-toolbar .secondary-button,.practice-success-actions .primary-button,.practice-success-actions .secondary-button{font-size:14px}
.practice-support .text-button,.practice-success-actions .text-button{font-size:13px}
.practice-copy .eyebrow{font-size:11px}
.practice-equation span,.practice-limits,.practice-receipt{font-size:12px}
.practice-place>.eyebrow,.practice-legend>span{font-size:11px}
.practice-legend p,.practice-companion p,.practice-road-preview{font-size:12px}
.practice-earned strong{font-size:12px}
.landing-actions small{font-size:12px}
.practice-road-preview span{font-size:11px}

@media(max-width:640px){.practice-mode{max-width:185px;font-size:12px}
.practice-toolbar .secondary-button{font-size:13px}
.practice-notice{font-size:12px}
.practice-instruction{font-size:16px}
.practice-copy>.primary-button{font-size:14px}
.practice-support .text-button{font-size:12px;line-height:1.7}
.practice-copy .eyebrow{font-size:11px}
.practice-equation span,.practice-limits,.practice-receipt{font-size:12px}
.practice-success-actions .primary-button,.practice-success-actions .secondary-button{font-size:14px}
.landing-actions small{font-size:12px}
.practice-place{min-width:0}
.practice-copy,.practice-scene{min-width:0}
.practice-instruction,.practice-notice,.practice-copy h1{overflow-wrap:break-word}
}


/* Cinematic expedition skin — no rules, game state or interaction changes. */
body{background:#edf7fa;background-image:radial-gradient(ellipse at 75% 0,#d6edf588,transparent 55%);background-attachment:fixed;background-size:auto}
::selection{background:#d6edf5;color:#35566b}
button,a,input,select,summary{-webkit-tap-highlight-color:transparent}
button{transition:background .16s,border-color .16s,box-shadow .16s}
button:disabled{opacity:.46}
button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,summary:focus-visible,[tabindex]:focus-visible{outline:3px solid #7ba9bd;outline-offset:4px}
button[hidden]{display:none!important}
h1,h2,h3,.serif{font-family:var(--font-display);font-weight:600}
.site-header{max-width:1680px;padding:24px 4vw;background:#edf7fab3;border-color:#7ba9bd10;min-height:94px}
.brand{font-size:13px;letter-spacing:2px;color:#173653}
.brand small{color:#35566b;font-size:8px;letter-spacing:1.8px}
.brand-mark{color:var(--gold);font-size:37px;margin-right:3px}
.brand-mark:before{border-color:#7ba9bd66;inset:-6px -3px}
.site-header nav{gap:20px}.text-button{font-size:12px;color:#35566b;min-height:40px}
.site-header .text-button{color:#173653}.text-button:hover{color:var(--gold)}
.site-footer{color:#35566b;font-size:11px;padding-top:28px;padding-bottom:28px;border-color:#7ba9bd10}
.skip-link{background:var(--gold);color:#35566b;border-radius:5px}
.primary-button,.secondary-button,.danger-button{border-radius:5px;min-height:48px;font-size:13px;letter-spacing:.02em}
.primary-button{background:linear-gradient(135deg,#d6edf5,#d6edf5);border-color:#7ba9bd;color:#35566b;box-shadow:inset 0 1px #fff8,0 5px 20px #0004;font-weight:750}
.primary-button:hover{background:linear-gradient(135deg,#d6edf5,#d6edf5);border-color:#7ba9bd;box-shadow:inset 0 1px #fffb,0 5px 25px #b07e3620}
.secondary-button{background:linear-gradient(145deg,#d6edf5,#edf7fa);border-color:#7ba9bd;color:#173653;box-shadow:inset 0 1px #ffffff08}
.secondary-button:hover{background:#d6edf5;border-color:#7ba9bd}
.danger-button{background:#d6edf5;border-color:#7ba9bd;color:#08658f}
.icon-button{border:1px solid #7ba9bd;background:#d6edf5;color:#173653;border-radius:5px;box-shadow:inset 0 1px #ffffff08}
.icon-button:hover{background:#d6edf5;border-color:#7ba9bd}
.eyebrow{color:var(--gold);font-size:10px;letter-spacing:2.5px}
.hero{position:relative;isolation:isolate;display:flex;align-items:center;max-width:1680px;min-height:650px;margin:0 auto;padding:70px 6vw 85px;overflow:hidden;background:#edf7fa;border-bottom:1px solid #7ba9bd14;gap:0}
.hero-copy{position:relative;z-index:2;width:min(585px,53%);padding:0}
.hero-copy .eyebrow{color:#08658f;font-size:10px;margin-bottom:26px;line-height:1.8;letter-spacing:2.5px}
.hero h1{font-size:clamp(56px,5.1vw,83px);letter-spacing:-.055em;font-weight:650;line-height:1.02;color:#173653;margin-bottom:24px;max-width:640px;text-shadow:0 3px 24px #0005}
.hero h1 em{font-style:normal;color:#08658f;font-weight:500}
.hero-copy p{color:#35566b;font-size:14px;line-height:1.85;max-width:455px;margin-bottom:25px}
.hero-art{position:absolute;inset:0;z-index:0;width:100%;max-width:none;padding:0;border:0;transform:none;background:#edf7fa;box-shadow:none;overflow:hidden}
.hero-art .hero-image{display:block;width:100%;height:100%;object-fit:cover;object-position:68% center;filter:saturate(.86)}
.hero-art:before{content:"";position:absolute;inset:0;z-index:1;background:linear-gradient(90deg,#edf7faf2 0%,#edf7fadf 24%,#edf7faad 41%,#edf7fa30 63%,#edf7fa00 82%),linear-gradient(0deg,#edf7fadc 0%,transparent 23%,transparent 70%,#edf7fa30 100%);pointer-events:none}
.poster-caption{position:absolute;z-index:2;bottom:25px;right:4vw;display:flex;gap:24px;padding:0;color:#35566b;font-size:8px;letter-spacing:2px}
.hero-tags{gap:8px}.pill{border:1px solid #7ba9bd77;border-radius:3px;color:#35566b;background:#edf7fa9c;padding:8px 11px;font-size:9px;letter-spacing:1px}
.landing-actions{gap:17px;margin-top:29px}.landing-actions .primary-button,.landing-actions .secondary-button{min-height:48px;padding:13px 18px;font-size:12px}.landing-actions small{color:#35566b;font-size:11px;max-width:225px;line-height:1.65}
.setup-section{max-width:1440px;padding:42px 4vw 54px}
.section-heading{margin-bottom:24px}.section-heading .eyebrow{color:var(--gold);font-size:9px;margin-bottom:12px}.section-heading h2{font-size:29px;letter-spacing:-.035em}
.setup-count{font-size:12px;color:#35566b}.segmented{background:#edf7fa;border-color:#7ba9bd;padding:4px;border-radius:6px}.segmented button{color:#35566b;font-size:11px;min-height:36px;padding:8px 14px}.segmented button.selected{background:#d6edf5;color:#35566b;box-shadow:inset 0 1px #fff5;font-weight:750}
.explorer-selection{grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:18px}
.explorer-slot{background:linear-gradient(145deg,#d6edf5,#edf7fa);border-color:#7ba9bd;border-radius:8px;box-shadow:0 10px 24px #0004,inset 0 1px #ffffff0a;display:grid;grid-template-columns:150px minmax(0,1fr);min-width:0}
.explorer-slot .slot-art{height:100%;min-height:258px;position:relative;overflow:hidden;background:#edf7fa;border-right:1px solid #7ba9bd;isolation:isolate}
.slot-art img{display:block;position:absolute;inset:0;width:100%;height:100%;object-fit:cover;filter:saturate(.75) brightness(.78)}
.slot-art:after{content:"";position:absolute;inset:0;background:linear-gradient(0deg,#edf7fabb,transparent 65%);pointer-events:none}
.explorer-art-index{position:absolute;bottom:15px;left:15px;font-size:36px;letter-spacing:-2px;font-weight:300;color:#08658f;z-index:1}
.slot-caption{padding:22px 19px}.slot-number{font-size:9px;color:#35566b;letter-spacing:1.3px;line-height:1.5}.explorer-slot select{color:#173653;font-size:16px;font-weight:650;padding:5px 20px 5px 0;min-height:36px}
.explorer-role{font-family:var(--font-display);font-style:normal;font-size:12px;color:#08658f;line-height:1.5;margin:6px 0 12px}.explorer-ability{font-size:11px;line-height:1.8;color:#35566b;min-height:57px}.explorer-slot input{background:#edf7fa;border-color:#7ba9bd;color:#173653;padding:11px;font-size:12px;min-height:40px}.explorer-slot input::placeholder{color:#35566b;opacity:1}.explorer-slot .limits{font-size:9px;gap:12px;color:#35566b;margin-top:12px}
.setup-bottom{padding-top:24px}.setup-bottom p{font-size:11px;color:#35566b;max-width:700px}.intro-note{margin-top:28px;border-color:#7ba9bd;background:#edf7fa;color:#35566b;font-size:11px;padding:15px 18px;line-height:1.8;border-left:2px solid #7ba9bd}.intro-note b{color:#173653}
.saved-notice{background:linear-gradient(130deg,#d6edf5,#edf7fa);border-color:#7ba9bd;color:#173653;font-size:12px}.saved-notice button{min-height:44px;font-size:11px}
.game-shell{padding-top:26px}.round-banner{padding-bottom:4px}.turn-heading h1{font-size:27px;letter-spacing:-.035em}.turn-heading .eyebrow{color:#08658f}.round-facts{font-size:11px}.round-facts strong{font-family:var(--font-display);font-weight:500;color:#173653;font-variant-numeric:tabular-nums}.round-progress span{background:#d6edf5}.round-progress .past{background:#d6edf5}.round-progress .current{background:#d6edf5}.final-flag{background:#d6edf5;border-color:#7ba9bd;color:#08658f}
.avatar-dot{border-color:#7ba9bd;box-shadow:0 0 0 1px #5d6c78;font-family:var(--font-display);font-weight:650}.player-summary{background:linear-gradient(145deg,#d6edf5,#edf7fa);border:1px solid #7ba9bd;box-shadow:inset 0 1px #ffffff08;border-radius:6px}.player-summary:hover{background:#d6edf5}.player-summary.is-active{box-shadow:inset 0 1px #ffffff0a,0 0 0 1px var(--player-color);background:linear-gradient(145deg,#d6edf5,#edf7fa)}.player-summary strong{font-size:12px}.player-summary .role-label{font-size:9px;color:#35566b}.player-stats{color:#35566b;font-size:10px}.player-stats b{color:#173653}.score{font-family:var(--font-display);font-weight:450}.score small{color:#35566b;font-size:8px}
.panel{background:linear-gradient(135deg,#edf7fa,#edf7fa);border-color:#7ba9bd;border-radius:8px;box-shadow:0 12px 28px #0004,inset 0 1px #ffffff09}.panel-head{border-color:#7ba9bd;background:#d6edf502;padding:16px 18px}.panel-head h2{font-size:18px;font-weight:600;letter-spacing:-.025em}.panel-head .eyebrow{font-size:9px;color:#35566b}
.map-viewport{background:#edf7fa;background-image:linear-gradient(#d6edf508 1px,transparent 1px),linear-gradient(90deg,#d6edf508 1px,transparent 1px),radial-gradient(ellipse at center,#d6edf566,transparent 75%);background-size:40px 40px,40px 40px,100% 100%;box-shadow:inset 0 0 60px #0008}.map-canvas{background-image:radial-gradient(#d6edf538 1px,transparent 1px)}.map-compass{color:#35566b;opacity:.8}.frontier-tile{border:1px dashed #7ba9bd66;color:#35566b;opacity:.52;border-radius:5px}
.map-tile{background:#d6edf5;border:1px solid #7ba9bd;border-radius:5px;box-shadow:0 4px 9px #0008,inset 0 1px #ffffff26}.map-tile:hover{box-shadow:0 0 0 2px #e6b86b,0 5px 15px #000b}.map-tile.is-selected{outline:2px solid #7ba9bd;outline-offset:3px}.map-tile.is-current{box-shadow:0 0 0 2px #e6b86b,0 5px 15px #0009}.tile-scene{opacity:1}
.location-art{display:block;position:relative;width:100%;height:100%;overflow:hidden;background:linear-gradient(145deg,#d6edf5,#edf7fa);isolation:isolate}.location-art img{width:100%;height:100%;display:block;object-fit:cover;filter:saturate(.8) brightness(.83)}.location-art.has-scene:after{content:"";position:absolute;inset:0;background:linear-gradient(0deg,#edf7fa55,transparent 70%);pointer-events:none}.location-emblem{display:block;width:100%;height:100%;padding:15%;fill:none;stroke:#08658f;stroke-width:1.65;stroke-linejoin:round;stroke-linecap:round;opacity:.7}.tile-scene .location-emblem{padding:12%;opacity:.55}
.tile-road{background:#d6edf5;border-color:#7ba9bd;box-shadow:0 0 3px #0009;opacity:.97}.tile-road:after{border-color:#7ba9bd}.tile-road.E:after,.tile-road.W:after{border-color:#7ba9bd}.tile-hub{background:#d6edf5;border-color:#7ba9bd}.tile-name{font-family:var(--font-display);font-size:8px;color:#173653;font-weight:600;background:#edf7faed;border:1px solid #7ba9bd16;line-height:1.3}.tile-renown{color:#08658f;background:#edf7faee;border:1px solid #7ba9bd16;font-size:10px}.tile-legend{background:#edf7fa;color:#08658f;border-color:#7ba9bd;box-shadow:0 2px 6px #0006}.pawn{border-color:#7ba9bd;box-shadow:0 2px 5px #0009}.mini-line{background:#d6edf5;border-color:#7ba9bd}.map-legend{color:#35566b;font-size:9px;background:#edf7fa;border-color:#7ba9bd}.map-detail{background:#edf7fa;border-color:#7ba9bd}.map-detail h3{font-size:18px;font-weight:600}.map-detail p{color:#35566b;font-size:11px}.map-detail .location-meta{color:#08658f;font-size:9px}.map-detail .legend-info{background:#d6edf5;border-color:#7ba9bd}.legend-info p{font-size:11px}
.discovery-card{background:linear-gradient(145deg,#d6edf5,#edf7fa);border-color:#7ba9bd;border-radius:5px;box-shadow:0 3px 10px #0003}.discovery-card:hover{border-color:#7ba9bd;background:#d6edf5}.discovery-art{height:105px}.discovery-art .location-emblem{padding:8%}.discovery-copy{display:block;padding:11px 10px 12px}.discovery-copy strong{font-family:var(--font-display);font-weight:550;font-size:13px;line-height:1.4}.discovery-copy span{font-size:9px;color:#35566b}.discovery-badge{background:#edf7faeb;color:#08658f;border:1px solid #7ba9bd66;padding:5px 6px;font-size:8px}
.actions-panel .panel-head{background:linear-gradient(120deg,#d6edf5,#d6edf5);border-bottom:1px solid #7ba9bd;color:#173653}.actions-panel .panel-head h2{font-size:22px}.phase-label{color:#08658f;font-size:9px}.action-intro{color:#35566b;font-size:12px;line-height:1.8}.turn-usage{font-size:9px;color:#35566b}.turn-usage span{background:#edf7fa;border-color:#7ba9bd;padding:5px 7px}.action-group{border-color:#7ba9bd}.action-group>summary{font-size:13px;color:#173653}.action-group>summary:after{color:#35566b}.action-count{font-size:10px;color:#35566b}.choice-button{border-color:#7ba9bd;background:linear-gradient(120deg,#d6edf5,#edf7fa);color:#173653;font-size:12px;padding:12px;border-radius:5px;box-shadow:inset 0 1px #ffffff04}.choice-button:hover{background:#d6edf5;border-color:#7ba9bd}.choice-button.selected{background:#d6edf5;border-color:#7ba9bd;box-shadow:inset 2px 0 #e6b86b}.choice-button small{color:#35566b;font-size:10px;line-height:1.65}.end-turn-button{background:#d6edf5;border-color:#7ba9bd;color:#08658f}.choice-form{background:#edf7fa;border-color:#7ba9bd;padding:18px 16px}.choice-form h3{font-size:16px}.choice-form>p{font-size:12px;color:#35566b}.field>label,.field>legend{font-size:12px;color:#173653}.field select,.field input[type=number],.field input[type=text]{background:#edf7fa;border-color:#7ba9bd;color:#173653;font-size:13px;min-height:43px}.check-options{background:#edf7fa;border-color:#7ba9bd}.check-option{font-size:12px;border-color:#7ba9bd;padding:11px}.check-option input{accent-color:#e6b86b;min-width:16px;min-height:16px}.field-hint{color:#35566b;font-size:10px}.choice-form .primary-button{min-height:46px;font-size:13px}.error-message{background:#d6edf5;border-color:#ba6870;color:#08658f;font-size:12px}.disabled-hint{color:#35566b;font-size:10px;line-height:1.75}
.hand-row{gap:14px;padding:18px}.hand-card{flex-basis:205px;background:linear-gradient(135deg,#d6edf5,#edf7fa 75%);border:1px solid #7ba9bd;border-radius:7px;box-shadow:0 8px 15px #0005,inset 0 1px #ffffff0b}.card-top{background:linear-gradient(120deg,#d6edf5,#d6edf5);color:#08658f;border-bottom:1px solid #7ba9bd66;font-size:8px;padding:12px}.cost-token{color:#08658f;font-family:var(--font-display);font-size:18px;font-weight:600}.card-content{padding:15px 13px 13px}.card-content h3{font-family:var(--font-display);font-size:17px;font-weight:600;line-height:1.25;letter-spacing:-.025em;margin-bottom:12px}.card-content p{font-size:12px;color:#35566b;line-height:1.75}.card-bottom{font-size:10px;color:#35566b;gap:10px;padding-top:19px}.card-bottom strong{color:#08658f;font-size:11px;white-space:nowrap}.card-shortcut{background:#d6edf5;border-color:#7ba9bd;color:#08658f;min-height:43px;font-size:11px;border-radius:4px}.card-shortcut:hover{background:#d6edf5;border-color:#7ba9bd}.card-full summary{color:#35566b;font-size:11px}.card-full p{font-size:11px}.hand-hidden{color:#35566b;font-size:12px}.card-back{background:linear-gradient(135deg,#d6edf5,#edf7fa);border-color:#7ba9bd;color:#08658f;box-shadow:inset 0 0 0 3px #101b27}.public-card{background:linear-gradient(145deg,#d6edf5,#edf7fa);border-color:#7ba9bd}.public-card.exhausted{background:#edf7fa;opacity:1;border-color:#7ba9bd}.public-card strong{font-family:var(--font-display);font-size:16px;font-weight:600}.public-card p{font-size:12px;color:#35566b}.card-status{color:#35566b;font-size:9px}.card-status.exhausted{color:#08658f}
.event-log li{color:#35566b;border-color:#7ba9bd;font-size:11px}.event-log li:before{background:#d6edf5}.retired-list li{background:#d6edf5;border-color:#7ba9bd;color:#173653}.retired-list li span{color:#08658f}.retired-panel>p,.retired-panel .retired-empty{color:#35566b;font-size:11px}.private-info{background:#d6edf5;border-color:#7ba9bd;color:#173653;font-size:12px}.private-info p{color:#35566b;font-size:11px}
.privacy-overlay{background:#edf7fa;background-image:linear-gradient(90deg,#edf7faed,#edf7fad9),url('./assets/bright-v1/expedition-hero.webp');background-size:cover;background-position:center;color:#173653;overflow:auto;padding:32px 20px;z-index:50}
.privacy-card{max-width:520px;padding:35px 26px;border:1px solid #7ba9bd;background:linear-gradient(145deg,#d6edf5f5,#edf7fafc);border-radius:9px;box-shadow:0 25px 90px #000b,inset 0 1px #ffffff16}.privacy-card .eyebrow{color:#08658f;font-size:9px;letter-spacing:1.8px}.privacy-card .avatar-dot{border-color:#7ba9bd;box-shadow:0 0 0 1px #b89c6b;margin:24px 0;font-size:34px;border-width:5px}.privacy-card h2{font-size:37px;letter-spacing:-.04em;font-weight:550;line-height:1.17}.privacy-card p{color:#35566b;font-size:13px;line-height:1.8}.privacy-card .primary-button{background:linear-gradient(135deg,#d6edf5,#d6edf5);color:#35566b;border-color:#7ba9bd;box-shadow:inset 0 1px #fff8,0 5px 20px #0004}.privacy-card .secondary-button{background:#d6edf5;border-color:#7ba9bd;color:#173653;font-size:12px}.privacy-card small{color:#35566b;font-size:11px}
.toast{background:#d6edf5;color:#173653;border-color:#7ba9bd;font-size:12px;box-shadow:0 8px 35px #0007}.toast.error{background:#d6edf5;color:#08658f;border-color:#ba6870}
dialog{background:#edf7fa;color:#173653;border-color:#7ba9bd;border-radius:9px;box-shadow:0 35px 120px #000c}dialog::backdrop{background:#edf7fae6;backdrop-filter:blur(7px)}.dialog-top{background:#d6edf5;border-bottom-color:#7ba9bd;padding:21px 25px}.dialog-top h2{font-size:25px;letter-spacing:-.035em}.dialog-top .icon-button{min-width:40px;min-height:40px}#dialog-content{font-size:13px;line-height:1.85;padding:25px}#dialog-content h3{font-family:var(--font-display);font-size:21px;font-weight:600;letter-spacing:-.025em;color:#173653}#dialog-content a{color:#08658f;text-underline-offset:4px}.rules-grid section{background:#d6edf5;border-color:#7ba9bd}.rules-grid section h3{font-size:17px!important}.rules-grid section p{font-size:12px;color:#35566b}.rules-callout{background:#d6edf5;color:#35566b;border-left-color:#7ba9bd;font-size:12px}.quick-reference section{background:#d6edf5;border-color:#7ba9bd}.quick-reference h4{font-family:var(--font-display);font-weight:600;font-size:16px}.quick-reference h4 b{color:#08658f;font-size:11px}.quick-reference p{font-size:12px;color:#35566b}.help-detail{background:#edf7fa;border-color:#7ba9bd}.help-detail>summary{font-size:13px}.help-detail>p{font-size:12px}.glossary>div{border-color:#7ba9bd}.glossary dt{font-size:13px}.glossary dd{color:#35566b;font-size:12px}
.fight-guide{background:#d6edf5;border-color:#7ba9bd}.fight-guide>summary{color:#08658f;font-size:12px}.fight-guide>summary>small{color:#08658f;font-size:10px}.fight-guide li{border-color:#7ba9bd;color:#35566b;font-size:11px}.fight-guide li b{color:#173653;font-size:12px}.fight-guide li:before{border-color:#7ba9bd;color:#35566b}.fight-guide li.current-stage{background:#d6edf5;border-color:#7ba9bd;color:#173653}.fight-guide li.current-stage:before{background:#d6edf5;border-color:#7ba9bd;color:#35566b}.fight-guide li.current-stage b{color:#173653}.fight-guide li.completed-stage{opacity:.8}.fight-guide li:not(.current-stage) span{font-size:10px}.explore-help{background:#d6edf5;border-color:#7ba9bd}.explore-help summary{color:#35566b;font-size:12px}.explore-help p{color:#35566b;font-size:11px}.explore-help[data-explore-status=no-frontier],.explore-help[data-explore-status=no-fit]{background:#d6edf5}.explore-help[data-explore-status=no-frontier] summary,.explore-help[data-explore-status=no-fit] summary{color:#08658f}
.combat-banner{background:linear-gradient(120deg,#d6edf5,#d6edf5);border-color:#7ba9bd}.combat-banner .combat-mark{color:#08658f}.combat-banner h2{font-size:20px}.combat-banner p{color:#08658f;font-size:11px}.results-banner{background:linear-gradient(90deg,#edf7faef,#edf7fac9),url('./assets/bright-v1/expedition-hero.webp') center 45%/cover;border:1px solid #7ba9bd;box-shadow:0 16px 40px #0005;border-radius:8px;padding:50px 25px;color:#173653}.results-banner:before,.results-banner:after{display:none}.results-banner .eyebrow{color:#08658f}.results-banner h1{font-size:42px;font-weight:550;letter-spacing:-.045em}.results-banner p{color:#35566b;font-size:13px}.results-table{font-size:12px}.results-table th{font-size:9px;color:#35566b}.results-table td{border-color:#7ba9bd}.results-table td:last-child{font-family:var(--font-display);color:#08658f;font-weight:600}
.practice-shell{max-width:1280px;padding:35px 4vw 50px}.practice-toolbar{padding-bottom:17px;border-bottom:1px solid #7ba9bd}.practice-mode{font-size:12px;letter-spacing:.04em;color:#08658f}.practice-notice{color:#35566b;font-size:12px;line-height:1.85;margin-bottom:24px}.practice-progress{gap:12px;margin-bottom:33px}.practice-progress span{width:32px;height:32px;border-radius:5px;background:#edf7fa;color:#35566b;border-color:#7ba9bd;font-size:11px}.practice-progress .done{background:#d6edf5;color:#35566b;border-color:#7ba9bd}.practice-progress .current{background:#d6edf5;color:#35566b;border-color:#7ba9bd;box-shadow:0 0 0 3px #e6b86b1f;font-weight:700}.practice-layout{gap:60px;grid-template-columns:minmax(0,1fr) minmax(320px,44%)}.practice-copy .eyebrow{color:#08658f;letter-spacing:1.5px;font-size:11px}.practice-copy h1{font-size:46px;line-height:1.1;letter-spacing:-.045em;font-weight:550;margin-bottom:24px}.practice-instruction{font-size:16px;color:#35566b;line-height:1.85}.practice-copy>.primary-button{font-size:14px;min-height:54px;padding:15px 19px}.practice-support .text-button{color:#35566b;font-size:12px}.practice-equation{background:linear-gradient(135deg,#d6edf5,#edf7fa);border:1px solid #7ba9bd;border-radius:6px;font-family:var(--font-display);font-size:23px;font-weight:500;color:#173653;box-shadow:inset 0 1px #ffffff0a;padding:20px}.practice-equation strong{font-family:var(--font-display);font-weight:550;font-size:23px;color:#08658f}.practice-equation span{color:#35566b;font-size:12px}.practice-earned{background:linear-gradient(135deg,#d6edf5,#edf7fa);color:#35566b;border-color:#7ba9bd;font-size:32px}.practice-earned strong{color:#173653;font-size:12px;font-weight:500}.practice-receipt{color:#35566b;border-left-color:#7ba9bd;font-size:12px}.practice-limits{color:#35566b;font-size:12px}.practice-place{background:linear-gradient(145deg,#d6edf5,#edf7fa);border:1px solid #7ba9bd;box-shadow:0 16px 35px #0005,inset 0 1px #ffffff14;border-radius:7px;padding:0 23px 23px}.practice-place-art{height:230px;background:#edf7fa;margin:0 -23px 23px;border-bottom:1px solid #7ba9bd}.practice-place-art .location-art img{filter:saturate(.8) brightness(.9);object-position:center 46%}.practice-place>.eyebrow{color:#08658f;font-size:10px}.practice-place h2{font-size:29px;font-weight:550;line-height:1.16;letter-spacing:-.035em}.practice-road-preview{color:#35566b;font-size:12px}.practice-road-preview span{color:#35566b;font-size:11px}.practice-legend{background:#edf7fa;border-color:#7ba9bd;border-radius:5px;padding:16px}.practice-legend>span{color:#08658f;font-size:11px}.practice-legend h3{font-family:var(--font-display);font-size:21px;font-weight:600;letter-spacing:-.025em}.practice-legend p{color:#35566b;font-size:12px;line-height:1.8}.practice-stats{margin:20px 0;padding:16px 0;background:#edf7fa;border:1px solid #7ba9bd;border-radius:6px}.practice-stats span{font-size:10px;color:#35566b;border-right-color:#7ba9bd}.practice-stats b{font-family:var(--font-display);font-size:26px;font-weight:500;color:#08658f}.practice-companion{background:linear-gradient(120deg,#d6edf5,#edf7fa);border:1px solid #7ba9bd;box-shadow:inset 0 1px #ffffff08;padding:17px;border-radius:6px}.practice-companion.is-exhausted{background:#d6edf5;border-color:#7ba9bd}.practice-companion h3{font-family:var(--font-display);font-size:19px;font-weight:550;letter-spacing:-.02em}.practice-companion p{font-size:12px;color:#35566b;line-height:1.8}.practice-success-actions .primary-button,.practice-success-actions .secondary-button{font-size:13px}
.mobile-jumps{background:#edf7faf5;border-color:#7ba9bd}.mobile-jumps button{background:#d6edf5;border-color:#7ba9bd;color:#173653}
@media(min-width:1500px){.hero{min-height:720px;padding-top:80px;padding-bottom:90px}.hero h1{font-size:86px}.hero-copy{width:610px}.explorer-slot .slot-art{height:100%!important}.setup-section{padding-top:48px}}
@media(max-width:1100px){.hero{min-height:620px;padding:55px 5vw 72px}.hero-copy{width:58%;max-width:540px}.hero h1{font-size:65px}.hero-copy p{font-size:13px}.hero-art .hero-image{object-position:62% center}.hero-art:before{background:linear-gradient(90deg,#edf7faf2,#edf7fadd 34%,#edf7fa55 72%,#edf7fa22),linear-gradient(0deg,#edf7fac9,transparent 40%)}.explorer-slot{grid-template-columns:115px minmax(0,1fr)}.slot-caption{padding:18px 15px}.explorer-ability{min-height:65px}.explorer-selection{gap:13px}.practice-layout{gap:35px}.practice-copy h1{font-size:40px}.practice-place-art{height:210px}.discovery-art{height:84px}}
@media(max-width:820px){.site-header{padding:21px 24px;min-height:86px}.site-header nav{gap:9px}.brand{font-size:12px}.brand small{font-size:7px}.hero{min-height:620px;padding:45px 30px 70px}.hero-copy{width:68%;max-width:505px}.hero h1{font-size:61px}.hero-copy .eyebrow{font-size:9px}.hero-copy p{font-size:13px;line-height:1.85}.hero-art{width:100%;max-width:none;transform:none;box-shadow:none}.hero-art .hero-image{object-position:58% center}.hero-art:before{background:linear-gradient(90deg,#edf7faee,#edf7fad9 43%,#edf7fa66 80%,#edf7fa22),linear-gradient(0deg,#edf7fabf,transparent 50%)}.poster-caption{font-size:7px;right:30px;bottom:24px}.hero-tags .pill{font-size:8px;padding:8px}.landing-actions{gap:16px}.landing-actions small{font-size:10px;max-width:210px}.setup-section{padding:32px 25px 42px}.section-heading h2{font-size:26px}.section-heading{align-items:flex-start;flex-direction:column}.setup-count{align-self:stretch;justify-content:space-between}.explorer-selection{grid-template-columns:repeat(2,minmax(0,1fr))}.explorer-slot{display:block}.explorer-slot .slot-art{height:145px;min-height:0;border-right:0;border-bottom:1px solid #7ba9bd}.explorer-ability{min-height:62px}.slot-caption{padding:18px}.slot-art img{object-position:center 50%}.practice-layout{grid-template-columns:minmax(0,1fr) minmax(260px,44%);gap:28px}.practice-copy h1{font-size:36px}.practice-place{padding:0 18px 18px}.practice-place-art{margin:0 -18px 18px;height:180px}.practice-place h2{font-size:25px}.practice-equation{font-size:21px;padding:16px}.practice-equation strong{font-size:21px}.practice-earned{font-size:30px}.practice-earned strong{font-size:12px}.game-layout{grid-template-columns:minmax(0,1fr) 290px}.choice-button{font-size:11px}.discovery-art{height:75px}.discovery-copy strong{font-size:11px}.discovery-copy span{font-size:8px}.discovery-copy{padding:9px 7px}.player-summary strong{font-size:10px}.player-summary .role-label{font-size:8px}.player-stats{font-size:9px}}
@media(max-width:640px){.site-header{padding:18px 18px;min-height:79px;gap:12px}.brand{font-size:10px;letter-spacing:1.4px;gap:9px}.brand-mark{font-size:29px}.brand small{font-size:6px;letter-spacing:.9px}.brand-mark:before{inset:-5px -2px}.site-header nav{max-width:139px;gap:1px}.site-header nav button{min-height:35px;font-size:10px;padding:6px 4px}.hero{min-height:760px;padding:40px 24px 180px;align-items:flex-start}.hero-copy{width:100%;max-width:480px}.hero h1{font-size:57px;letter-spacing:-.055em;line-height:1.02;margin-bottom:22px}.hero-copy .eyebrow{font-size:9px;letter-spacing:1.7px;margin-bottom:22px}.hero-copy p{max-width:385px;font-size:13px;line-height:1.85;margin-bottom:22px}.hero-art{inset:0;width:100%;height:100%;max-width:none;transform:none}.hero-art .hero-image{object-position:62% center;filter:saturate(.8)}.hero-art:before{background:linear-gradient(180deg,#edf7faed 0%,#edf7fad9 35%,#edf7fa99 62%,#edf7fa33 84%,#edf7fa99 100%),linear-gradient(90deg,#edf7fa77,transparent 95%)}.poster-caption{right:24px;left:24px;bottom:23px;justify-content:space-between;font-size:6px;letter-spacing:1.4px;gap:12px}.hero-tags{gap:5px}.hero-tags .pill{font-size:7px;padding:7px 8px;letter-spacing:.7px}.landing-actions{gap:14px;margin-top:27px}.landing-actions>div{gap:7px}.landing-actions .primary-button,.landing-actions .secondary-button{min-height:46px;padding:12px 15px;font-size:12px}.landing-actions small{max-width:280px;font-size:11px}.setup-section{padding:30px 18px 37px}.section-heading{gap:20px;margin-bottom:20px}.section-heading .eyebrow{font-size:9px}.section-heading h2{font-size:27px;line-height:1.2}.setup-count{font-size:11px;gap:10px}.segmented button{padding:8px 11px;font-size:10px}.explorer-selection{grid-template-columns:minmax(0,1fr);gap:15px}.explorer-slot{display:grid;grid-template-columns:100px minmax(0,1fr)}.explorer-slot .slot-art{height:100%;min-height:230px;border-right:1px solid #7ba9bd;border-bottom:0}.slot-caption{padding:17px 14px}.slot-number{font-size:8px;letter-spacing:1px}.explorer-slot select{font-size:16px;min-height:38px}.explorer-role{font-size:11px}.explorer-ability{font-size:11px;min-height:0;line-height:1.75}.explorer-slot input{font-size:16px;padding:10px;min-width:0}.explorer-slot .limits{font-size:8px;gap:9px}.setup-bottom p,.intro-note{font-size:11px}.intro-note{padding:15px}.setup-bottom .primary-button{min-height:50px}.site-footer{font-size:10px;padding:24px 18px;line-height:1.7;gap:7px}.game-shell{padding:20px 12px 28px}.game-layout{grid-template-columns:minmax(0,1fr);gap:16px}.turn-heading h1{font-size:23px}.turn-heading .eyebrow{font-size:8px}.round-facts{font-size:8px}.round-facts strong{font-size:18px}.player-summary strong{font-size:11px}.player-summary .role-label{font-size:9px}.player-stats{font-size:9px;gap:9px}.score small{font-size:7px}.panel-head{padding:15px 14px}.panel-head h2{font-size:18px}.panel-head .eyebrow{font-size:8px;letter-spacing:1.2px}.map-legend{font-size:9px;line-height:1.6;gap:9px}.map-detail p{font-size:11px}.discovery-row{gap:8px;padding:12px}.discovery-art{height:85px}.discovery-copy strong{font-size:11px}.discovery-copy span{font-size:8px;line-height:1.6}.discovery-badge{top:5px;right:4px;font-size:7px;padding:4px}.action-groups{gap:0 11px}.action-group>summary{font-size:12px}.choice-button{font-size:11px;min-height:44px;padding:11px 9px}.choice-button small{font-size:10px}.action-intro{font-size:12px}.hand-row{padding:15px}.hand-card{flex-basis:195px}.card-content p{font-size:12px}.field select,.field input[type=number],.field input[type=text]{font-size:16px}.choice-form{padding:18px 14px}.check-option{font-size:12px;min-height:44px}.choice-form h3{font-size:16px}.choice-form>p{font-size:12px}.privacy-card{padding:30px 18px}.privacy-card h2{font-size:33px;line-height:1.18}.privacy-card p{font-size:13px}.privacy-card .eyebrow{font-size:8px}.privacy-card small{font-size:10px}.privacy-card .primary-button,.privacy-card .secondary-button{min-width:230px;max-width:100%;font-size:12px}.dialog-top{padding:18px}.dialog-top h2{font-size:23px}#dialog-content{padding:20px 17px;font-size:13px}.rules-grid section p,.quick-reference p,.glossary dd{font-size:12px}.quick-reference h4{font-size:17px}.fight-guide>summary{font-size:12px}.fight-guide li{font-size:11px}.fight-guide li span,.fight-guide li:not(.current-stage) span{font-size:10px}.results-banner{padding:38px 18px}.results-banner h1{font-size:33px}.results-banner p{font-size:12px}.results-table{font-size:10px}.results-table th{font-size:7px;letter-spacing:.3px;padding:8px 4px}.results-table td{padding:11px 4px}.results-table td:last-child{font-size:18px}.practice-shell{padding:22px 18px 35px}.practice-toolbar{gap:14px}.practice-mode{font-size:11px;max-width:175px;line-height:1.65}.practice-toolbar .secondary-button{font-size:12px;min-height:44px;padding:10px 12px}.practice-notice{font-size:12px;line-height:1.8;margin-bottom:22px}.practice-progress{gap:10px;margin-bottom:27px}.practice-progress span{width:30px;height:30px}.practice-layout{grid-template-columns:minmax(0,1fr);gap:30px}.practice-copy h1{font-size:36px;line-height:1.13;margin-bottom:20px}.practice-copy .eyebrow{font-size:10px;letter-spacing:1.25px}.practice-instruction{font-size:16px;line-height:1.85}.practice-equation{font-size:22px;padding:18px;margin:20px 0 24px}.practice-equation strong{font-size:22px}.practice-equation span{font-size:12px}.practice-earned{font-size:31px}.practice-earned strong{font-size:12px}.practice-copy>.primary-button{font-size:14px;min-height:55px;padding:15px 17px}.practice-support .text-button{font-size:12px;line-height:1.75}.practice-place-art{height:210px}.practice-place h2{font-size:29px}.practice-place>.eyebrow{font-size:10px}.practice-stats span{font-size:10px}.practice-stats b{font-size:27px}.practice-success-actions .primary-button,.practice-success-actions .secondary-button{font-size:14px}.mobile-jumps{border-radius:6px;background:#edf7faf5;border-color:#7ba9bd;padding:7px;box-shadow:0 8px 25px #0005}.mobile-jumps button{font-size:12px;background:#d6edf5;border-color:#7ba9bd;color:#173653}}
@media(max-width:370px){.hero{padding-left:20px;padding-right:20px;min-height:795px}.hero h1{font-size:52px}.hero-copy .eyebrow{font-size:8px}.hero-tags .pill{font-size:6.5px;padding:7px}.setup-count{align-items:flex-start;flex-direction:column}.explorer-slot{grid-template-columns:83px minmax(0,1fr)}.slot-caption{padding:15px 12px}.site-header{padding-left:14px;padding-right:14px}.brand small{font-size:5px}.practice-copy h1{font-size:33px}.privacy-card h2{font-size:29px}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;transition:none!important;animation:none!important}}
/* Three- and four-player rosters need full-width captions, not narrow slivers. */
@media(min-width:641px){.explorer-selection:has(>.explorer-slot:nth-child(3)) .explorer-slot{display:block}.explorer-selection:has(>.explorer-slot:nth-child(3)) .slot-art{height:170px!important;min-height:0;border-right:0;border-bottom:1px solid #7ba9bd}.explorer-selection:has(>.explorer-slot:nth-child(3)) .slot-caption{padding:19px}.explorer-selection:has(>.explorer-slot:nth-child(3)) .explorer-ability{min-height:62px}}
.privacy-overlay{align-items:safe center}.privacy-card{flex-shrink:0}
/* Keep long user-entered names and dense scores within compact viewports. */
.turn-heading,.turn-heading>div,.player-summary-top,.player-summary-top>div{min-width:0}.turn-heading h1,.player-summary strong,.privacy-card h2,.results-banner h1{overflow-wrap:anywhere}.results-table{table-layout:fixed}.results-table td:first-child{overflow-wrap:anywhere}.results-table th{overflow-wrap:break-word}.card-top{border-top:2px solid var(--card-color,#7ba9bd)}
/* The Huntress uses only the pine-forest foreground, not a mislabeled Iberian garden. */
.slot-art[data-explorer-art="2"] img{object-position:right bottom;transform:scale(2.3);transform-origin:right bottom}

/* Contextual orientation; no new actions or rule state. */
.next-step{margin:16px 16px 0;padding:15px 16px;border:1px solid #7ba9bd;border-left:3px solid #7ba9bd;border-radius:6px;background:linear-gradient(130deg,#d6edf5,#edf7fa);color:#173653;overflow-wrap:anywhere}
.next-step .eyebrow{display:block;color:#08658f;font-size:9px;letter-spacing:1.4px;margin-bottom:8px}
.next-step h3{font-family:var(--font-display);font-size:18px;line-height:1.3;font-weight:600;margin:0 0 8px}
.next-step p{font-size:13px;line-height:1.65;color:#35566b;margin:0}
@media(max-width:640px){.next-step{margin:14px 14px 0;padding:14px}.next-step p{font-size:14px}.next-step h3{font-size:19px}}

/* Luminous atlas / game-only colour refresh. Original palette; no brand affiliation.
   Colour and finish only: rules, layout, interaction, privacy and asset paths unchanged. */
:root{color-scheme:light;--ink:#173653;--ink-deep:#173653;--paper:#d6edf5;--cream:#edf7fa;--surface:#edf7fa;--surface-raised:#d9eff5;--line:#a1c7d6;--line-strong:#648fa5;--muted:#35566b;--gold:#08658f;--orange:#08658f;--teal:#08736e;--blue:#087fbe;--shadow:0 12px 30px #087fbe18,inset 0 1px #ffffffb3}
body{background:radial-gradient(ellipse at 90% 5%,#19b6d24d,transparent 45%),radial-gradient(ellipse at 0 70%,#14a6a02b,transparent 48%),linear-gradient(140deg,#cceafa,#e5f5f6 55%,#c2e8ed);background-attachment:fixed;background-size:auto}
::selection{background:#19b6d2;color:#173653}
button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,summary:focus-visible,[tabindex]:focus-visible{outline-color:#08658f}
.site-header{background:#edf7fae8;border-color:#87b8ce}.brand{color:#173653}.brand-mark{color:#087fbe}.brand small,.site-header .text-button,.text-button{color:#35566b}.site-footer{color:#35566b;border-color:#87b8ce}
.primary-button,.privacy-card .primary-button{background:linear-gradient(135deg,#0879b5,#086aab);border-color:#08658f;color:#fff;box-shadow:inset 0 1px #ffffff55,0 5px 16px #087fbe28}
.primary-button:hover,.privacy-card .primary-button:hover{background:#08658f;border-color:#173653}
.secondary-button,.privacy-card .secondary-button{background:#edf7fa;border-color:#648fa5;color:#173653}.secondary-button:hover{background:#d0eaf5}
.danger-button{background:#fff0f0;border-color:#ba6870;color:#9a303c}.icon-button{background:#edf7fa;color:#173653}.icon-button:hover{background:#c8e8f2}
.hero{background:#c7eaf1}.hero-art .hero-image,.slot-art img,.location-art img,.practice-place-art .location-art img{filter:none}
.hero-art:before{background:linear-gradient(90deg,#edf7fafc 0%,#edf7faf5 32%,#edf7fac9 48%,#edf7fa22 68%,transparent 85%)}
.hero h1{color:#173653;text-shadow:none}.hero h1 em{color:#08658f}.hero-copy .eyebrow,.hero-copy p,.landing-actions small{color:#35566b}
.pill,.poster-caption{background:#edf7faf5;color:#173653;border-color:#87b8ce}.poster-caption{padding:7px 10px;border-radius:4px}
.slot-art:after{background:linear-gradient(0deg,#17365380,transparent 40%)}.explorer-art-index{color:#fff;text-shadow:0 2px 5px #173653}
.segmented button.selected,.practice-progress .current{background:#0879b5;color:#fff;border-color:#08658f}.practice-progress .done{background:#dff0d0;color:#315d18;border-color:#76be43}
.panel,.explorer-slot,.player-summary,.hand-card,.public-card,.practice-place{box-shadow:var(--shadow)}
.player-summary.is-active{background:linear-gradient(135deg,#d3eef7,#edf7fa);box-shadow:0 0 0 1px var(--player-color)}
.map-viewport{background-color:#b8dee9;background-image:linear-gradient(#087fbe12 1px,transparent 1px),linear-gradient(90deg,#087fbe12 1px,transparent 1px),radial-gradient(ellipse at center,#edf7fa99,transparent 75%);box-shadow:inset 0 0 45px #087fbe15}
.map-canvas{background-image:radial-gradient(#087fbe44 1px,transparent 1px)}.map-compass{color:#35566b}.frontier-tile{color:#35566b;border-color:#648fa5;opacity:.8}
.location-art.has-scene:after{background:linear-gradient(0deg,#17365318,transparent 40%)}
.tile-name,.tile-renown,.discovery-badge{background:#edf7faf5;color:#173653;border-color:#648fa5}.tile-road,.mini-line{background:#f2b75d;border-color:#765014}.tile-hub{background:#fff0cf;border-color:#765014}.tile-road:after,.tile-road.E:after,.tile-road.W:after{border-color:#765014}
.map-tile.is-selected{outline-color:#08658f}.map-tile.is-current{box-shadow:0 0 0 2px #087fbe,0 5px 15px #087fbe33}
.actions-panel .panel-head{background:linear-gradient(120deg,#c3e9f4,#d9f0ed);color:#173653;border-color:#648fa5}.phase-label{color:#08658f}
.choice-button.selected{background:#c5e8f5;border-color:#087fbe;box-shadow:inset 3px 0 #087fbe}.end-turn-button{background:#fff0cf;color:#765014;border-color:#ad7a28}
.next-step{background:linear-gradient(130deg,#d5eff8,#e1f4ef);color:#173653;border-color:#648fa5;border-left-color:#087fbe}.next-step .eyebrow{color:#08658f}.next-step p{color:#35566b}
.card-status{color:#246325}.card-status.exhausted{color:#765014}.public-card.exhausted,.practice-companion.is-exhausted{background:#e2e9ec;border-style:dashed}
.privacy-overlay{background-image:linear-gradient(90deg,#cbeaf35e,#14a6a033),url('./assets/bright-v1/expedition-hero.webp');color:#173653}.privacy-card{background:#edf7faf7;box-shadow:0 20px 65px #17365344;border-color:#648fa5}.privacy-card p,.privacy-card small{color:#35566b}
.toast{background:#edf7fa;color:#173653}.toast.error,.error-message{background:#fff0f0;color:#9a303c;border-color:#ba6870}
dialog{background:#edf7fa;color:#173653}dialog::backdrop{background:#17365399}.fight-guide li.current-stage{background:#d7f0e7;border-color:#14a6a0;color:#173653}.fight-guide li.current-stage b{color:#173653}.fight-guide li.current-stage:before{background:#08736e;color:#fff;border-color:#08736e}
.results-banner{background:linear-gradient(90deg,#edf7faf5,#edf7fada),url('./assets/bright-v1/expedition-hero.webp') center 45%/cover;color:#173653}.results-banner p{color:#35566b}
.practice-earned{background:linear-gradient(135deg,#dcf0cb,#def3e9);color:#315d18;border-color:#76be43}.practice-earned strong{color:#315d18}
.mobile-jumps{background:#edf7faf5}.mobile-jumps button{background:#d7edf5;color:#173653}
@media(max-width:1100px){.hero-art:before{background:linear-gradient(90deg,#edf7fafc,#edf7faf0 40%,#edf7fa44 75%,transparent)}}
@media(max-width:640px){.hero-art:before{background:linear-gradient(0deg,#edf7fafc 0%,#edf7faf5 46%,#edf7fa88 72%,transparent 100%)}.hero-copy p,.landing-actions small{color:#35566b}}

/* EI-261025-B3 — bold navy/teal presentation candidate.
   Append-only and reversible. Artwork, rules, JavaScript and save data unchanged; wrapper identity is tracked separately. */
:root {
  color-scheme: dark;
  --ink: #edf4f5; --ink-deep: #edf4f5; --paper: #091520;
  --cream: #122839; --surface: #122839; --surface-raised: #1b3948;
  --line: #31515f; --line-strong: #6c909e; --muted: #b9cbd3;
  --gold: #f2bb61; --orange: #67dcc8; --teal: #67dcc8; --blue: #8bcbe7;
  --shadow: 0 12px 30px #00000035, inset 0 1px #ffffff0a;
}
body { background: radial-gradient(ellipse at 90% 0, #16455370, transparent 52%), linear-gradient(145deg, #091520, #102b35); }
::selection { background: #67dcc8; color: #091520; }
button:focus-visible, a:focus-visible, input:focus-visible, select:focus-visible, summary:focus-visible, [tabindex]:focus-visible { outline-color: #f2bb61; }
.site-header { background: #0b1c28; border-color: #31515f; }
.brand, .site-header .text-button, .hero h1 { color: #edf4f5; }
.brand-mark, .hero h1 em { color: #67dcc8; }
.brand-mark:before { border-color: #6c909e; }
.brand small, .text-button, .site-footer { color: #b9cbd3; }
.site-footer { border-color: #31515f; }
.skip-link { background: #f2bb61; color: #091520; }
.primary-button, .privacy-card .primary-button {
  background: linear-gradient(135deg, #f2bb61, #e5a74b); color: #091520;
  border-color: #f2bb61; box-shadow: inset 0 1px #ffffff40, 0 5px 16px #00000040; font-weight: 800;
}
.primary-button:hover, .privacy-card .primary-button:hover { background: #ffd18a; color: #091520; border-color: #ffd18a; box-shadow: 0 6px 18px #00000050; }
.secondary-button, .privacy-card .secondary-button, .icon-button { background: #1b3948; color: #edf4f5; border-color: #6c909e; }
.secondary-button:hover, .privacy-card .secondary-button:hover, .icon-button:hover { background: #244b5b; color: #edf4f5; border-color: #8bcbe7; }
.danger-button { background: #482936; color: #ffd7db; border-color: #b27987; }
.hero, .hero-art { background: #091520; border-color: #31515f; }
.hero-art .hero-image, .slot-art img, .location-art img, .practice-place-art .location-art img { filter: none; }
.hero-art:before { background: linear-gradient(90deg, #09152066, transparent 65%); }
.hero-copy { background: linear-gradient(110deg, #091520f5, #102b35f0); padding: 28px; border: 1px solid #31515f; border-radius: 12px; }
.hero h1 { text-shadow: none; }
.hero-copy .eyebrow { color: #67dcc8; }
.hero-copy p, .landing-actions small { color: #d3e0e5; }
.pill, .poster-caption { background: #102b35f5; color: #edf4f5; border-color: #6c909e; }
.segmented, .explorer-slot input, .field select, .field input[type=number], .field input[type=text] { background: #0b1c28; color: #edf4f5; border-color: #6c909e; }
.segmented button { color: #b9cbd3; }
.segmented button.selected, .practice-progress .current { background: #67dcc8; color: #091520; border-color: #67dcc8; box-shadow: none; }
.explorer-slot, .player-summary, .panel, .discovery-card, .hand-card, .public-card, .practice-place, .practice-companion, .saved-notice {
  background: linear-gradient(135deg, #183647, #122839); color: #edf4f5; border-color: #31515f; box-shadow: var(--shadow);
}
.explorer-slot .slot-art, .practice-place-art { background: #122839; border-color: #31515f; }
.explorer-slot select, .round-facts strong, .player-stats b, .intro-note b, .action-group>summary, .field>label, .field>legend { color: #edf4f5; }
.explorer-slot input::placeholder { color: #b9cbd3; }
.setup-count, .slot-number, .explorer-ability, .explorer-slot .limits, .setup-bottom p,
.player-summary .role-label, .player-stats, .score small, .panel-head .eyebrow,
.map-compass, .map-detail p, .discovery-copy span, .action-intro, .turn-usage,
.action-group>summary:after, .action-count, .choice-button small, .choice-form>p,
.field-hint, .disabled-hint, .card-content p, .card-bottom, .card-full summary,
.hand-hidden, .public-card p, .event-log li, .private-info p, .retired-panel>p,
.retired-panel .retired-empty, .privacy-card p, .privacy-card small,
.rules-grid section p, .quick-reference p, .glossary dd, .fight-guide li,
.fight-guide li:before, .explore-help summary, .explore-help p,
.results-table th, .results-banner p, .practice-notice, .practice-instruction,
.practice-support .text-button, .practice-equation span, .practice-receipt,
.practice-limits, .practice-road-preview, .practice-road-preview span,
.practice-legend p, .practice-stats span, .practice-companion p, .next-step p { color: #b9cbd3; }
.explorer-role, .turn-heading .eyebrow, .map-detail .location-meta, .phase-label,
.cost-token, .card-bottom strong, .retired-list li span, .privacy-card .eyebrow,
#dialog-content a, .quick-reference h4 b, .fight-guide>summary,
.fight-guide>summary>small, .combat-banner .combat-mark, .combat-banner p,
.results-banner .eyebrow, .results-table td:last-child, .practice-mode,
.practice-copy .eyebrow, .practice-equation strong, .practice-place>.eyebrow,
.practice-legend>span, .practice-stats b, .next-step .eyebrow,
.explore-help[data-explore-status=no-frontier] summary, .explore-help[data-explore-status=no-fit] summary { color: #67dcc8; }
.player-summary:hover, .discovery-card:hover { background: #244b5b; border-color: #6c909e; }
.player-summary.is-active { background: #1b3948; box-shadow: inset 0 0 0 1px var(--player-color); }
.panel-head, .actions-panel .panel-head, .dialog-top, .card-top { background: #1b3948; color: #67dcc8; border-color: #31515f; }
.actions-panel .panel-head { color: #edf4f5; }
.map-viewport { background-color: #102c36; background-image: linear-gradient(#8bcbe714 1px, transparent 1px), linear-gradient(90deg, #8bcbe714 1px, transparent 1px); box-shadow: inset 0 0 45px #00000028; }
.map-canvas { background-image: radial-gradient(#8bcbe744 1px, transparent 1px); }
.frontier-tile { color: #b9cbd3; border-color: #6c909e; opacity: 1; }
.map-tile { background: #1b3948; border-color: #6c909e; }
.location-art { background: #1b3948; }
.location-emblem { stroke: #8bcbe7; }
.tile-name, .tile-renown, .discovery-badge, .tile-legend { background: #0b1c28f5; color: #edf4f5; border-color: #6c909e; }
.tile-road, .mini-line { background: #f2bb61; border-color: #a56c25; }
.tile-hub { background: #f2bb61; border-color: #a56c25; }
.tile-road:after, .tile-road.E:after, .tile-road.W:after { border-color: #a56c25; }
.map-tile.is-selected { outline-color: #f2bb61; }
.map-tile.is-current { box-shadow: 0 0 0 2px #67dcc8, 0 5px 15px #00000040; }
.map-legend, .map-detail, .intro-note, .choice-form, .check-options, .practice-legend, .practice-stats, .help-detail { background: #122839; color: #b9cbd3; border-color: #31515f; }
.map-detail .legend-info, .turn-usage span, .private-info, .retired-list li, .quick-reference section, .rules-grid section, .rules-callout, .fight-guide, .explore-help,
.explore-help[data-explore-status=no-frontier], .explore-help[data-explore-status=no-fit] { background: #1b3948; color: #edf4f5; border-color: #31515f; }
.choice-button, .card-shortcut { background: #1b3948; color: #edf4f5; border-color: #6c909e; }
.choice-button:hover, .card-shortcut:hover { background: #244b5b; color: #edf4f5; border-color: #8bcbe7; }
.choice-button.selected { background: #244b5b; color: #edf4f5; border-color: #67dcc8; box-shadow: inset 3px 0 #67dcc8; }
.end-turn-button, .final-flag { background: #3a3023; color: #f2cc8e; border-color: #ab8959; }
.next-step, .combat-banner, .practice-equation { background: linear-gradient(130deg, #183647, #163b3c); color: #edf4f5; border-color: #6c909e; border-left-color: #67dcc8; }
.card-back { background: linear-gradient(135deg, #183647, #122839); color: #67dcc8; border-color: #6c909e; }
.card-status { color: #9bd99f; }
.card-status.exhausted { color: #f2cc8e; }
.public-card.exhausted, .practice-companion.is-exhausted { background: #222e39; border-color: #6c909e; border-style: dashed; }
.action-group, .check-option, .event-log li, .glossary>div, .results-table td { border-color: #31515f; }
.round-progress span { background: #31515f; }
.round-progress .past { background: #6c909e; }
.round-progress .current, .event-log li:before { background: #67dcc8; }
.privacy-overlay { background-color: #091520; background-image: linear-gradient(90deg, #09152080, #102b3580), url('./assets/bright-v1/expedition-hero.webp'); color: #edf4f5; }
.privacy-card { background: #122839fa; color: #edf4f5; border-color: #6c909e; box-shadow: 0 20px 65px #00000066; }
.toast { background: #1b3948; color: #edf4f5; border-color: #6c909e; }
.toast.error, .error-message { background: #482936; color: #ffd7db; border-color: #b27987; }
dialog { background: #122839; color: #edf4f5; border-color: #6c909e; }
dialog::backdrop { background: #050d17b3; }
#dialog-content h3, .fight-guide li b { color: #edf4f5; }
.fight-guide li.current-stage { background: #164439; color: #edf4f5; border-color: #67dcc8; }
.fight-guide li.current-stage b { color: #edf4f5; }
.fight-guide li.current-stage:before { background: #67dcc8; color: #091520; border-color: #67dcc8; }
.results-banner { background: linear-gradient(90deg, #091520f5, #102b35e8), url('./assets/bright-v1/expedition-hero.webp') center 45%/cover; color: #edf4f5; border-color: #31515f; }
.practice-progress span { background: #1b3948; color: #b9cbd3; border-color: #6c909e; }
.practice-progress .current { background: #67dcc8; color: #091520; border-color: #67dcc8; }
.practice-progress .done, .practice-earned { background: #164439; color: #b8ebbe; border-color: #6caf8c; }
.practice-earned strong { color: #b8ebbe; }
.mobile-jumps { background: #0b1c28fa; border-color: #6c909e; }
.mobile-jumps button { background: #1b3948; color: #edf4f5; border-color: #6c909e; }
@media (max-width: 1100px) {
  .hero-art:before { background: linear-gradient(90deg, #09152055, transparent 70%); }
}
@media (max-width: 640px) {
  /* Separate image and copy: architecture stays bright, not hidden under a text wash. */
  .hero { display: flex; flex-direction: column; align-items: stretch; min-height: 0; padding: 0; }
  .hero-art { position: relative; inset: auto; order: -1; width: 100%; height: 250px; flex: none; }
  .hero-art .hero-image { object-position: 65% center; filter: none; }
  .hero-art:before { background: linear-gradient(0deg, #091520, transparent 28%); }
  .hero-copy { width: 100%; max-width: none; padding: 22px 24px 34px; border: 0; border-radius: 0; background: #091520; }
  .hero-copy .eyebrow { color: #67dcc8; }
  .hero-copy p, .landing-actions small { color: #d3e0e5; }
  .poster-caption { bottom: 18px; }
  .landing-actions .primary-button, .landing-actions .secondary-button { min-height: 50px; }
}

/* Keep the existing player colours; give their letter marks measurable contrast. */
.avatar-dot, .pawn { color: #000000; }
.player-summary, .discovery-card { border-color: #6c909e; }
.player-summary:hover, .discovery-card:hover { border-color: #8bcbe7; }
/* The existing round denominator has an inline muted colour. */
.round-facts strong>span { color: #b9cbd3 !important; }

/* E1 Explorer portrait review candidate. Presentation only; no place-art changes. */
.explorer-preview-note {
  margin: 0 0 24px; padding: 14px 18px; border: 1px solid #6c909e;
  border-left: 4px solid #54d8c4; border-radius: 8px;
  background: #122839; color: #c6d7df; font-size: 14px; line-height: 1.65;
}
.explorer-preview-note strong { display: block; color: #edf4f5; }
.explorer-selection {
  grid-template-columns: repeat(2,minmax(0,1fr)); gap: 22px;
  max-width: 760px; margin-inline: auto; align-items: start;
}
.explorer-selection .explorer-slot[data-explorer-portrait-card] {
  display: block; min-width: 0; background: #122839;
  border: 1px solid #6c909e; border-top: 4px solid var(--player-color);
  border-radius: 10px; color-scheme: dark;
}
.explorer-selection .explorer-slot[data-explorer-portrait-card] .slot-art[data-explorer-art] {
  display: block; position: relative; width: 100%; height: auto !important;
  min-height: 0; aspect-ratio: 3 / 4; background: #0b1c28;
  border: 0; border-bottom: 1px solid #31515f;
}
.explorer-selection .explorer-slot[data-explorer-portrait-card] .slot-art[data-explorer-art] img {
  display: block; position: absolute; inset: 0; width: 100%; height: 100%;
  object-fit: contain; object-position: center; transform: none;
  filter: none; opacity: 1;
}
.explorer-selection .explorer-slot[data-explorer-portrait-card] .slot-art:after { content: none; background: none; }
.explorer-selection .explorer-slot[data-explorer-portrait-card] .slot-caption { padding: 20px; }
.explorer-slot[data-explorer-portrait-card] .slot-number { font-size: 11px; line-height: 1.7; color: #c6d7df; }
.explorer-slot[data-explorer-portrait-card] .explorer-select-label {
  display: block; margin-top: 12px; color: #c6d7df; font-size: 12px; line-height: 1.6;
}
.explorer-slot[data-explorer-portrait-card] select {
  min-height: 48px; width: 100%; min-width: 0; max-width: 100%;
  padding: 8px 28px 8px 10px; margin-top: 5px;
  border: 1px solid #6c909e; border-radius: 6px;
  background: #0b1c28; color: #edf4f5; font-size: 18px; font-weight: 700;
}
.explorer-slot[data-explorer-portrait-card] select option { background: #0b1c28; color: #edf4f5; }
.explorer-slot[data-explorer-portrait-card] .explorer-role {
  font-size: 15px; line-height: 1.5; color: #54d8c4; margin: 12px 0;
}
.explorer-selection .explorer-slot[data-explorer-portrait-card] .explorer-ability {
  font-size: 15px; line-height: 1.65; color: #edf4f5; min-height: 0; margin: 0 0 18px;
}
.explorer-slot[data-explorer-portrait-card] input {
  font-size: 16px; min-height: 48px; padding: 11px; min-width: 0;
  background: #0b1c28; color: #edf4f5; border-color: #6c909e;
}
.explorer-slot[data-explorer-portrait-card] .limits {
  flex-wrap: wrap; font-size: 11px; gap: 8px 14px; line-height: 1.7;
  color: #c6d7df; margin-top: 14px;
}
.explorer-slot[data-explorer-portrait-card] select:focus-visible,
.explorer-slot[data-explorer-portrait-card] input:focus-visible {
  outline: 3px solid #54d8c4; outline-offset: 3px;
}
@media(min-width:1100px) {
  .explorer-selection:has(>.explorer-slot:nth-child(3)) {
    grid-template-columns: repeat(4,minmax(0,1fr)); max-width: none;
  }
}
@media(max-width:640px) {
  .explorer-selection { grid-template-columns: minmax(0,1fr); max-width: 400px; gap: 24px; }
  .explorer-selection .explorer-slot[data-explorer-portrait-card] .slot-caption { padding: 18px; }
  .explorer-preview-note { padding: 13px 15px; }
}

/* C1 signature companion frames. Four exact approved card plates only.
   Source 3:4 remains intact. HTML begins at 68% of image height, below anatomy.
   Text is never rasterized, clamped or reduced to fit; cards grow vertically. */
.signature-card {
  --signature-frame: #142b43; --signature-accent: #d6b46c;
  --signature-paper: #f5ebd7; --signature-ink: #26364a;
  box-sizing: border-box; min-width: 0; width: 250px; max-width: 100%;
  padding: 4px; border: 2px solid var(--signature-accent); border-radius: 10px;
  background: var(--signature-frame); color: var(--signature-ink);
  box-shadow: 0 5px 14px #00000040; overflow: visible;
}
.hand-row .signature-card.hand-card { flex: 0 0 250px; width: 250px; max-width: none; }
.signature-card[data-explorer-id="0"] { --signature-frame: #142b43; --signature-accent: #d6b46c; }
.signature-card[data-explorer-id="1"] { --signature-frame: #f4fafb; --signature-accent: #266b87; --signature-paper: #f4fafb; --signature-ink: #173e53; }
.signature-card[data-explorer-id="2"] { --signature-frame: #324438; --signature-accent: #b6c1b2; --signature-paper: #e9eddf; --signature-ink: #29372e; }
.signature-card[data-explorer-id="3"] { --signature-frame: #702e32; --signature-accent: #e1be70; --signature-paper: #f8ebd7; --signature-ink: #572c30; }
.signature-card .signature-header {
  display: flex; justify-content: space-between; align-items: center; gap: 8px;
  min-height: 54px; padding: 8px 10px; background: var(--signature-frame);
  color: var(--signature-accent); font-size: 14px; line-height: 1.4;
}
.signature-card .signature-cost { flex: 0 0 auto; font-size: 22px; font-weight: 700; text-align: right; }
.signature-card .signature-cost span { display: block; font-size: 14px; font-weight: 500; }
.signature-card .signature-art { position: relative; width: 100%; aspect-ratio: 3 / 4; background: var(--signature-frame); }
.signature-card .signature-art img {
  display: block; width: 100%; height: auto; aspect-ratio: 3 / 4;
  object-fit: contain; object-position: center; transform: none; filter: none;
}
.signature-card [data-signature-fallback] {
  position: absolute; inset: 0; padding: 30% 15px 0; text-align: center;
  color: var(--signature-accent); background: var(--signature-frame);
  font-size: 16px; line-height: 1.5;
}
.signature-card .signature-art img[hidden], .signature-card [data-signature-fallback][hidden] { display: none; }
.signature-card .signature-copy {
  position: relative; margin-top: -42.666667%; padding: 14px 12px 12px;
  border-top: 2px solid var(--signature-accent); border-radius: 10px 10px 5px 5px;
  background: var(--signature-paper); color: var(--signature-ink);
}
.signature-card .signature-alias { margin: 0 0 8px; font-size: 15px; font-weight: 700; line-height: 1.4; color: var(--signature-ink); }
.signature-card .signature-alias span { font-size: 14px; font-weight: 400; }
.signature-card .signature-copy h3 {
  margin: 0 0 12px; font-family: var(--font-display); font-size: 21px;
  font-weight: 600; line-height: 1.15; letter-spacing: -.02em;
  color: var(--signature-ink); overflow-wrap: anywhere;
}
.signature-card .signature-copy p { color: var(--signature-ink); }
.signature-card .signature-copy .signature-rule { margin: 0 0 14px; font-size: 15px; line-height: 1.5; overflow-wrap: anywhere; }
.signature-card .signature-stats { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 8px; border-top: 1px solid var(--signature-ink); padding-top: 10px; font-size: 14px; line-height: 1.4; }
.signature-card .signature-stats strong { font-family: inherit; font-size: 15px; font-weight: 700; color: var(--signature-ink); }
.signature-card .signature-status, .signature-card .signature-used { font-size: 14px; font-weight: 600; line-height: 1.5; margin: 9px 0 0; color: var(--signature-ink); }
.signature-card.exhausted { opacity: 1; border-style: dashed; background: var(--signature-frame); }
/* Outrank inherited exhausted public/practice borders without changing state semantics. */
.signature-card.public-card.exhausted, .signature-card.practice-companion.is-exhausted { border-color: var(--signature-accent); }
.signature-card .card-shortcut { width: 100%; margin-top: 12px; min-height: 44px; padding: 10px; font-size: 15px; background: var(--signature-frame); color: var(--signature-accent); border: 1px solid var(--signature-accent); }
.signature-card .card-shortcut:hover { background: var(--signature-frame); color: var(--signature-accent); text-decoration: underline; }
.signature-card .card-shortcut:focus-visible { outline: 3px solid var(--signature-ink); outline-offset: 3px; }
.party-grid:has(.signature-card) { grid-template-columns: repeat(auto-fit,minmax(min(250px,100%),1fr)); align-items: start; }
.party-grid .signature-card, .practice-party .signature-card { justify-self: center; }
#dialog-content > .signature-card { margin: 0 auto 20px; }

/* C1.1 compact signature frames: a preferred 250 × 333⅓ px VISUAL CARD,
   not merely a 3:4 image in a taller bordered article. No raster changes.
   The shared grid's ratio spacer is a minimum, not a clipping height:
   normal-flow copy can expand the row under font zoom or longer wrapping.
   Image remains full, at natural 3:4. Copy starts at 65% of image height.
   Browser ratio/overflow/anatomy verification is still required in staging. */
.signature-card.signature-compact {
  display: block; align-self: start; padding: 0; border: 0; border-radius: 0;
  background: transparent; box-shadow: none; overflow: visible;
}
.signature-card.signature-compact .signature-visual {
  position: relative; display: grid; grid-template-columns: minmax(0,1fr);
  isolation: isolate; width: 100%; min-width: 0; background: var(--signature-frame);
  border-radius: 8px; box-shadow: 0 5px 14px #00000040;
}
/* Ratio spacer and normal-flow layout share one auto-sized grid cell.
   The taller intrinsic requirement wins; never constrain text with a height. */
.signature-card.signature-compact .signature-visual::before {
  content: ''; grid-area: 1 / 1; display: block; aspect-ratio: 3 / 4;
  pointer-events: none;
}
/* Inset visual border adds no extra height to the 3:4 frame box. */
.signature-card.signature-compact .signature-visual::after {
  content: ''; position: absolute; inset: 0; z-index: 2; box-sizing: border-box;
  border: 2px solid var(--signature-accent); border-radius: 8px; pointer-events: none;
}
.signature-card.signature-compact.exhausted .signature-visual::after,
.signature-card.signature-compact.is-exhausted .signature-visual::after {
  border-style: dashed; border-color: var(--signature-accent);
}
.signature-card.signature-compact .signature-art {
  position: absolute; inset: 0 0 auto; width: 100%; height: auto; aspect-ratio: 3 / 4;
}
.signature-card.signature-compact .signature-art img {
  display: block; width: 100%; height: auto; object-fit: contain;
  object-position: center; transform: none; filter: none;
}
.signature-card.signature-compact .signature-art img[hidden] { display: none; }
.signature-card.signature-compact .signature-layout {
  position: relative; grid-area: 1 / 1; display: flex; flex-direction: column; min-width: 0;
}
.signature-card.signature-compact .signature-layout::before {
  content: ''; display: block; flex: 0 0 auto; padding-top: 86.666667%;
}
.signature-card.signature-compact .signature-copy {
  flex: 1 0 auto; min-width: 0; margin: 0; padding: 5px 8px 6px;
  border-top: 1px solid var(--signature-accent); border-radius: 0 0 8px 8px;
  background: var(--signature-paper); color: var(--signature-ink);
}
.signature-card.signature-compact .signature-copy .signature-alias,
#dialog-content .signature-card.signature-compact .signature-copy .signature-alias {
  margin: 0; font-size: 20px; font-weight: 700; line-height: 1.1;
  letter-spacing: 0; overflow-wrap: anywhere; color: var(--signature-ink);
}
.signature-card.signature-compact .signature-copy .signature-rule {
  margin: 4px 0; font-size: 14px; line-height: 1.3;
  overflow-wrap: anywhere; color: var(--signature-ink);
}
.signature-card.signature-compact .signature-copy .signature-stats {
  display: flex; flex-wrap: wrap; justify-content: space-between; align-items: baseline;
  gap: 2px 6px; padding: 0; border: 0; font-size: 14px; line-height: 1.3;
}
.signature-card.signature-compact .signature-copy .signature-stats strong,
.signature-card.signature-compact .signature-copy .signature-cost {
  display: inline; flex: 0 1 auto; margin: 0; padding: 0; font-family: inherit; font-size: 14px;
  line-height: 1.3; font-weight: 700; white-space: normal; color: var(--signature-ink);
}
.signature-card.signature-compact .signature-caption {
  margin: 8px 0 0; padding: 0; font-size: 14px; line-height: 1.4;
  color: #edf4f5; overflow-wrap: anywhere;
}
.signature-card.signature-compact .signature-canonical-name { font-weight: 600; }
.signature-card.signature-compact .signature-support { margin: 0; }
.signature-card.signature-compact .signature-support .signature-status,
.signature-card.signature-compact .signature-support .signature-used {
  margin: 5px 0 0; font-size: 14px; line-height: 1.4; color: #edf4f5;
}
.signature-card.signature-compact .signature-support .card-shortcut {
  margin-top: 8px; min-height: 44px; font-size: 15px;
}
.signature-card.signature-compact .signature-support .card-shortcut:focus-visible {
  outline: 3px solid #edf4f5; outline-offset: 3px;
}
