:root{color-scheme:dark;font:100%/1.35 system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;--ink:#f7efd9;--muted:#c4caba;--gold:#f1cc7e;--line:#c8ae7370;--air:#b0dded;--fire:#ffa58a;--earth:#bfdb9a;--water:#c6bdff;--role:var(--gold);--frame:#e5e5d9;--edge:#77796d}
*{box-sizing:border-box}html,body{width:100%;height:100%;margin:0;overflow:hidden}body{height:100dvh;display:flex;flex-direction:column;isolation:isolate;color:var(--ink);background:#0c191a}h1,h2,h3,p{margin:0}h1,h2,h3{font-family:Georgia,"Times New Roman",serif;font-weight:400}button,select{font:inherit;font-size:14px;line-height:1.2;color:inherit;cursor:pointer;padding:7px 10px;border:1px solid var(--line);border-radius:5px;background:linear-gradient(#314033,#17271f);touch-action:manipulation}button:hover:not(:disabled){border-color:#ffe0a1;box-shadow:0 0 12px #d7b15b30}button:focus-visible,select:focus-visible,a:focus-visible{outline:3px solid #ffe6a7;outline-offset:2px}button:disabled{opacity:.45;cursor:default}.primary{background:linear-gradient(#efd695,#c19b53);border-color:#f2d795;color:#19241f;font-weight:750}.primary:hover:not(:disabled){background:linear-gradient(#ffe9b6,#e0bc77)}[hidden]{display:none!important}.icon{width:24px;height:24px;display:inline-block;flex:none;vertical-align:middle;fill:none;stroke:currentColor;stroke-width:1.65;stroke-linecap:round;stroke-linejoin:round}.world-art,.world-shade{position:fixed;inset:0;z-index:-2;pointer-events:none}.world-art{background:#122225 url('assets/greenwood-v1.png') center 47%/cover no-repeat;filter:saturate(.78) brightness(.73);transition:filter 1s,transform 1s}.world-shade{z-index:-1;background:linear-gradient(#07141699,transparent 30%,#09181719 60%,#061215b3),radial-gradient(ellipse at 50% 45%,transparent 15%,#04101777)}body[data-depth="1"] .world-art{filter:saturate(.67) hue-rotate(5deg) brightness(.63);transform:scale(1.025)}body[data-depth="2"] .world-art{filter:saturate(.65) hue-rotate(15deg) brightness(.55);transform:scale(1.055)}body[data-depth="3"] .world-art{filter:saturate(.7) hue-rotate(24deg) brightness(.46);transform:scale(1.085)}body[data-phase="camp"] .world-shade{background:radial-gradient(ellipse at 50% 70%,#df942522,transparent 60%),linear-gradient(#07141777,#07161766)}
.top{display:flex;justify-content:space-between;align-items:center;gap:15px;height:52px;flex:none;padding:5px 22px;background:linear-gradient(#0b1b1eef,#10201c77);border-bottom:1px solid #b8995a28}.brand{display:flex;align-items:center;gap:8px;text-decoration:none;color:var(--ink);font:20px/1 Georgia,serif}.brand img{width:38px;height:38px;object-fit:contain;filter:drop-shadow(0 3px 4px #0009)}.brand strong{color:var(--gold);font-weight:400}.brand small{display:block;font:12px/1.25 system-ui,sans-serif;color:var(--muted);margin-top:4px;letter-spacing:.4px}.top-actions{display:flex;gap:5px}.top-actions button{width:32px;height:32px;padding:5px;display:grid;place-items:center;background:#12241ac9}.top-actions .icon{width:20px;height:20px}.journey-bar{height:69px;flex:none;display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:15px;padding:5px 22px;text-shadow:0 2px 5px #000}.chapter{min-width:0}.eyebrow{font-size:12px;color:var(--gold);letter-spacing:1.5px;font-weight:600}h1{font-size:24px;line-height:1.1;margin:3px 0}.chapter>p:last-child{font-size:12px;color:#e1e0ca}.enemy-status{text-align:center;justify-self:center;min-width:210px}#enemyStatus{display:flex;justify-content:center;align-items:center;gap:10px;font-size:12px;margin-bottom:5px}.threat-badge{display:flex;align-items:center;gap:4px;color:#f5b093}.threat-badge .icon{width:17px;height:17px}.run-progress{color:#f2dfb1}.threat-pips{display:inline-flex;gap:3px}.threat-pips i{display:block;width:5px;height:10px;background:#a74d32;border:1px solid #e9935a;border-radius:1px}.threat-pips i.inactive,.threat-pips i.spent{background:#25392d;border-color:#5c6c57}#trail{display:flex;align-items:center;justify-content:center;gap:20px}.trail-node{display:flex;align-items:center;gap:5px;font-size:12px;color:#c5c8ad;position:relative}.trail-node span{display:none}.trail-node i{font-style:normal;display:grid;place-items:center;width:23px;height:23px;border:1px solid #baaa7b66;border-radius:50%;background:#11231ccc}.trail-node .icon{width:14px;height:14px}.trail-node:not(:last-child):after{content:"";position:absolute;top:11px;right:-18px;height:1px;width:15px;background:#bca56b66}.trail-node.current i{border-color:var(--gold);background:#62502ae0;box-shadow:0 0 12px #d9b15b33;color:#ffe5a2}.trail-node.complete i{color:#c1e0a9;background:#365131;border-color:#94b481}.forecast-button{justify-self:end;display:flex;align-items:center;gap:6px;max-width:200px;font-size:14px;text-align:left;background:#11251cd9}.forecast-button .icon{color:var(--gold);width:21px;height:21px}
main{flex:1;min-height:0;display:flex;padding:0 20px 7px}.play{height:100%;width:100%;max-width:1440px;margin:auto;min-height:0}#game{height:100%;min-height:0;display:grid;grid-template-rows:minmax(0,1fr) minmax(0,1.65fr) minmax(0,1.12fr) 38px;gap:6px}.section-line,.hand-heading{height:20px;display:flex;align-items:center;justify-content:center;gap:12px;text-shadow:0 2px 4px #000;flex:none}.section-line h2,.hand-heading h2{font:600 12px/1.2 system-ui,sans-serif;text-transform:uppercase;letter-spacing:.5px}.section-line>span,.hand-heading>span{font-size:12px;color:#d7dbc8}.encounter{min-height:0;display:flex;flex-direction:column;align-items:center}.enemy-grid{display:flex;justify-content:center;gap:15px;min-height:0;flex:1;width:100%;container-type:size}.enemy{position:relative;width:min(106px,78cqh);height:100%;min-width:0;padding:0;border:2px solid #b19a78;border-radius:9px 9px 7px 7px;background:linear-gradient(#27332ac4,#1b261ef5);box-shadow:0 5px 0 #443a2b,0 9px 14px #0008,inset 0 0 0 2px #2b241b;isolation:isolate;overflow:visible}.enemy:disabled{opacity:1}.enemy>img{width:100%;height:100%;object-fit:contain;object-position:center 40%;position:absolute;inset:0;z-index:-1;filter:drop-shadow(0 4px 4px #000b)}.enemy-copy{position:absolute;inset:0;display:flex;flex-direction:column;justify-content:flex-end;border-radius:7px;background:linear-gradient(transparent 35%,#101c16e0 72%);padding:3px 4px}.enemy .role{position:absolute;top:3px;left:3px;font-size:12px;display:flex;align-items:center;gap:2px;text-shadow:0 1px 3px #000}.role{font-size:12px;color:var(--role)}.role .icon{width:14px;height:14px}.enemy h3{font-size:14px;line-height:1.1;text-align:center;text-shadow:0 1px 4px #000;margin-bottom:3px}.enemy-short-name{display:none}.enemy .hp{position:absolute;top:2px;right:2px;border:1px solid #d0b98d99;border-radius:5px;background:#241f1bdf;padding:2px 3px;display:flex;align-items:center;font-size:12px;gap:1px;color:#ffe5c7}.hp .icon{width:12px;height:12px}.health-track{height:3px;border-radius:3px;overflow:hidden;background:#030b09;margin:2px 0;box-shadow:0 0 0 1px #d6c29740}.health-track i{display:block;height:100%;background:linear-gradient(90deg,#6c9e69,#c5dea3)}.enemy .health-track i{background:linear-gradient(90deg,#ad533a,#eda479)}.intent{display:block;font-size:12px;line-height:1.15;text-align:center;color:#ffd1a5;padding-top:2px}.intent .icon{width:12px;height:12px}.formation{min-height:0;display:flex;flex-direction:column;gap:4px}.formation>.section-line{height:17px}.formation-row{display:flex;align-items:stretch;justify-content:center;min-height:0;gap:5px;flex:1}.row-label{width:39px;flex:none;display:flex;align-items:center;justify-content:flex-end;font-size:12px;color:#dcdbc0;text-shadow:0 1px 4px #000}.hero-row{display:flex;justify-content:center;align-items:stretch;gap:12px;min-height:0;min-width:0;container-type:size;width:420px;max-width:calc(100% - 44px)}.hero,.empty{width:min(104px,73cqh);height:100%;position:relative;min-width:0;flex:none;border-radius:7px;aspect-ratio:.73}.hero{border:2px solid var(--frame);padding:0;background:radial-gradient(ellipse at 50% 20%,#4d665180,#13251de6 75%);box-shadow:0 3px 0 var(--edge),0 7px 10px #0008,inset 0 0 0 2px #0b181c;isolation:isolate;overflow:visible}.hero:before,.ability:before{content:"";position:absolute;inset:3px;pointer-events:none;border:1px solid #d1c29a55;border-radius:4px;z-index:2}.hero>img{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;object-position:center 25%;z-index:-1;filter:drop-shadow(0 4px 3px #0008)}.hero-select{position:absolute;inset:0;width:100%;height:100%;padding:0;background:transparent;border:0;z-index:3;border-radius:5px}.hero-select:hover:not(:disabled){background:#ffe1a00b;box-shadow:none}.hero-select:disabled{opacity:1}.hero-body{height:100%;position:relative;pointer-events:none;background:linear-gradient(transparent 35%,#12231be8 77%);border-radius:4px}.hero h3{position:absolute;left:0;right:0;bottom:26px;font-size:14px;line-height:1.05;text-align:center;text-shadow:0 1px 4px #000;padding:3px 1px 2px;background:linear-gradient(90deg,#16211bee,#30382de8,#16211bee);border-top:1px solid #c8ac7044}.hero .role{display:none}.rank-badge{position:absolute;top:0;left:0;transform:translate(-20%,-110%);display:grid;place-items:center;min-width:20px;height:21px;font:700 12px/1 Georgia,serif;border:1px solid var(--frame);background:#12231cef;color:var(--frame);border-radius:3px;box-shadow:0 2px 5px #0009}.hero .hp{position:absolute;top:2px;right:1px;padding:2px 3px;font-size:12px;line-height:1.1;background:#22301de8;border:1px solid #a2b57b;border-radius:5px;color:#eef4cd;display:flex;align-items:center;gap:1px}.hero .health-track{position:absolute;bottom:24px;left:2px;right:2px;margin:0;height:3px}.hero .stats{display:none}.hero .guard{position:absolute;top:24px;right:2px;display:flex;align-items:center;gap:1px;font-size:12px;color:#bfddf0;background:#132a2edb;padding:1px 2px;border-radius:3px}.guard .icon{width:12px;height:12px}.hero .guard+.guard{top:40px}.rank-controls{position:absolute;left:0;right:0;bottom:0;height:23px;z-index:4;pointer-events:auto}.hero .promote{display:flex;align-items:center;justify-content:center;gap:2px;height:23px;min-height:23px;width:100%;border:0;border-top:1px solid #c8ac7066;border-radius:0 0 4px 4px;padding:1px 2px;font-size:14px;line-height:1;color:#f8d991;background:linear-gradient(#29362a,#14231c)}.promote .icon{width:14px;height:14px}.promote .icon:nth-child(2){width:16px;height:16px}.rank-controls select{display:none}.empty{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;padding:2px;border:1px dashed #cabf8f55;background:#10221c33;color:#c5ceb5;font-size:12px;box-shadow:inset 0 0 16px #0004}.empty .icon{width:20px;height:20px}.empty small{font-size:12px}.empty:disabled{opacity:.5}.targetable,.selected{outline:2px solid #ffda87;outline-offset:2px}.hero.selected{box-shadow:0 0 15px #eac57466,0 3px 0 var(--edge),0 7px 10px #0008}.targetable:hover{box-shadow:0 0 17px #f0c97466}.hero[data-rank="1"],.ability[data-rank="1"]{--frame:#e5e5d9;--edge:#77796d}.hero[data-rank="2"],.ability[data-rank="2"]{--frame:#78b9ef;--edge:#284f87}.hero[data-rank="3"],.ability[data-rank="3"]{--frame:#c096ed;--edge:#603e87}.hero[data-rank="4"],.ability[data-rank="4"]{--frame:#b58b61;--edge:#614028}.hero[data-rank="5"],.ability[data-rank="5"]{--frame:#514d48;--edge:#111315;border-color:#d1b77b;box-shadow:0 0 0 2px #111619,0 4px 0 #322b22,0 7px 13px #000a;background:radial-gradient(ellipse at 50% 25%,#343e3c,#091213)}.hero[data-rank="5"]:before,.ability[data-rank="5"]:before{border-color:#d6b66d99}.hero[data-rank="5"] .rank-badge{background:#090f12;border-color:#d6b66d;color:#f2d38e}.hero[data-rank="3"]:before,.ability[data-rank="3"]:before{border-color:#d8c0f177}.hero[data-rank="4"]:before,.ability[data-rank="4"]:before{border-color:#d5ac7d99}
#handSection{display:flex;flex-direction:column;min-height:0}.hand-heading{height:20px;flex:none}.hand-paging{display:flex;align-items:center;gap:5px;font-size:12px}.hand-paging button{padding:0 5px;min-width:24px;height:21px;font-size:19px;line-height:1}.hand{display:flex;justify-content:center;align-items:stretch;gap:9px;flex:1;min-height:0;padding:2px 3px 4px;container-type:size}.ability{height:100%;width:min(125px,75cqh);flex:0 1 auto;min-width:0;padding:0 4px 4px;display:flex;flex-direction:column;justify-content:flex-end;gap:2px;position:relative;isolation:isolate;overflow:visible;text-align:center;border:2px solid var(--frame);border-radius:8px;background:radial-gradient(ellipse at 50% 30%,#49614a90,#11271f 80%);box-shadow:0 4px 0 var(--edge),0 7px 12px #0009}.ability .ability-art{position:absolute;inset:0;z-index:-1;overflow:hidden;border-radius:5px}.ability-art img{width:100%;height:100%;object-fit:contain;object-position:center top;filter:drop-shadow(0 3px 4px #0008)}.ability-art:after{content:"";position:absolute;inset:0;background:linear-gradient(transparent 25%,#14281f66 48%,#10251cf7 78%)}.ability .action-symbol{position:absolute;right:4px;top:4px;color:var(--role);filter:drop-shadow(0 1px 3px #000)}.action-symbol .icon{width:20px;height:20px}.ability .cost{position:absolute;top:-3px;left:-5px;z-index:5;display:flex;align-items:center;justify-content:center;gap:1px;border-radius:50%;height:32px;min-width:32px;color:#ffe9ae;text-shadow:0 2px 3px #000;font:bold 22px/1 Georgia,serif;background:#27281ddf;border:1px solid #d7b365;box-shadow:0 2px 5px #0008}.cost .icon{width:22px;height:22px}.cost b{font:inherit;margin-right:4px}.ability .mana-cost{position:absolute;left:1px;top:31px;display:flex;align-items:center;gap:1px;color:#d6c6ff;font-size:12px;z-index:3;text-shadow:0 1px 2px #000}.mana-cost .icon{width:13px;height:13px}.ability strong{font:600 14px/1.05 Georgia,serif;position:relative;text-shadow:0 1px 3px #000;margin:0 -2px;padding:3px 1px 1px;color:#f8efd4}.ability .owner{font-size:12px;line-height:1.1;color:var(--role);text-shadow:0 1px 2px #000}.effect-strip{display:flex;align-items:center;justify-content:center;gap:3px;min-height:22px;margin:0 -1px 2px;padding:2px 0;border:1px solid #baa67577;border-radius:4px;background:#091d17e8;position:relative;z-index:2;color:#f2deaf;font-size:12px;line-height:1}.effect-token{display:inline-flex;align-items:center;justify-content:center;gap:1px;white-space:nowrap}.effect-token .icon{width:16px;height:16px;color:var(--role)}.effect-token b{font-size:14px;line-height:1}.effect-token small{font-size:12px}.effect-separator{font-size:12px;color:#d0bd95}.ability:disabled{opacity:.55;filter:saturate(.6)}.ability.selected{outline-offset:1px;box-shadow:0 0 15px #f2c36c66,0 4px 0 var(--edge),0 7px 12px #0009}.empty-hand{font-size:14px;align-self:center;background:#14241fdd;border:1px dashed var(--line);padding:12px;border-radius:5px}.controls{height:38px;min-height:0;display:flex;align-items:center;justify-content:space-between;gap:10px;padding:2px 8px;border-radius:5px;background:linear-gradient(90deg,transparent,#10241cd9 25%,#10241ce8 75%,transparent);position:relative}.action-information{flex:1;min-width:0}.action-information p{font-size:12px;line-height:1.2;color:#f3d99d}.action-information #actionDetail{display:none}.turn-actions{display:flex;align-items:center;gap:6px;flex:none}.turn-actions button{font-size:14px;display:flex;align-items:center;justify-content:center;gap:4px;padding:6px 9px;min-height:30px}.turn-actions .icon{width:17px;height:17px}.player-hud{height:77px;flex:none;display:flex;align-items:center;justify-content:center;padding:5px 15px 9px;background:linear-gradient(transparent,#061615e8 37%);position:relative}.hud{display:flex;align-items:center;justify-content:center;gap:clamp(18px,3vw,40px);padding:5px 25px 4px;border:1px solid #b6a06b66;border-radius:35px 35px 10px 10px;min-width:450px;background:linear-gradient(#23372bf5,#12221ef5);box-shadow:0 3px 18px #000a,inset 0 1px #ddbf7744;position:relative}.resource{display:grid;grid-template-columns:26px auto;align-items:center;column-gap:5px}.resource-symbol{grid-row:1/3;color:var(--gold);display:flex;align-items:center}.resource-symbol .icon{width:25px;height:25px}.resource-value{font:700 23px/1 Georgia,serif}.resource-label{font-size:12px;color:var(--muted)}.coin-purse{display:grid;grid-template-columns:44px auto;align-items:center;gap:0 7px;color:var(--gold);position:relative;min-width:100px;padding:1px 7px 2px;margin-top:-12px;filter:drop-shadow(0 3px 6px #0005)}.purse-icon{grid-row:1/3;width:44px;height:44px;filter:drop-shadow(0 0 10px #ffc25c44)}.coin-count{font:700 43px/.95 Georgia,serif;color:#ffe6a3;text-shadow:0 2px #5b4321}.coin-caption{font-size:12px;letter-spacing:1.5px;color:#edd8a5}.coin-pips{display:flex;gap:4px;margin-top:3px}.coin-pips i{display:block;width:8px;height:5px;background:#f2cf79;border:1px solid #ffe9aa;border-radius:2px;box-shadow:0 0 5px #e0b25e44}.coin-pips i.spent{background:#364532;border-color:#707d59;box-shadow:none}.welcome-resources{display:flex;align-items:center;gap:9px;font-size:14px;color:#eddaa5}.welcome-resources .icon{color:var(--gold)}
[data-element="Fire"]{--role:var(--fire)}[data-element="Earth"]{--role:var(--earth)}[data-element="Air"]{--role:var(--air)}[data-element="Water"]{--role:var(--water)}.welcome{height:100%;display:flex;flex-direction:column;align-items:center;min-height:0;padding:8px 0 10px}.welcome-title{flex:none;text-align:center;text-shadow:0 2px 6px #000}.welcome-title h2{font-size:32px;line-height:1.1;margin:5px 0}.welcome-title>p:last-child{font-size:14px;color:#dddcc8}.starter-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px;max-width:850px;width:100%;flex:1;min-height:0;margin-top:15px}.starter{min-width:0;min-height:0;display:flex;flex-direction:column;padding:0;overflow:hidden;text-align:left;background:linear-gradient(#30433177,#11251be8);border:2px solid #e5dfc0;border-radius:10px;box-shadow:0 5px 0 #787057,0 13px 20px #0009;position:relative;isolation:isolate}.starter:before{content:"";position:absolute;inset:4px;border:1px solid #caba8c66;border-radius:5px;pointer-events:none;z-index:2}.starter>img{min-height:0;height:0;width:100%;flex:1;object-fit:contain;object-position:center bottom;padding:5px 10px 0;filter:drop-shadow(0 5px 6px #0007)}.starter .copy{flex:none;display:grid;gap:5px;padding:12px 14px;background:linear-gradient(#15271ae6,#12241a)}.starter .role{font-size:12px}.starter h3{font-size:25px}.starter p{font-size:14px;line-height:1.35;color:#d9dfce}.starter-choice{display:flex;justify-content:center;align-items:center;gap:6px;padding:7px 5px;margin-top:4px;border:1px solid #d5be7b;background:#8b723b33;border-radius:4px;font-size:14px;color:#f8dfa4}.starter-choice .icon{width:18px;height:18px}.starter:hover:not(:disabled){box-shadow:0 0 0 1px #ffe0a1,0 5px 0 #787057,0 15px 25px #000a}
body[data-phase="camp"] #game,body[data-phase="ended"] #game{grid-template-rows:minmax(0,1fr) 38px}body[data-phase="camp"] .encounter,body[data-phase="ended"] .encounter,body[data-phase="camp"] .formation,body[data-phase="ended"] .formation,body[data-phase="camp"] #handSection,body[data-phase="ended"] #handSection{display:none}.camp-panel,.result-panel{align-self:center;justify-self:center;width:min(100%,900px);max-height:100%;min-height:0;background:linear-gradient(135deg,#24382cef,#0e201aef);border:1px solid #baa16f99;border-radius:10px;padding:20px 25px;box-shadow:0 10px 35px #0009}.camp-title{display:flex;align-items:center;justify-content:center;gap:15px;text-align:left}.camp-title>.icon{width:45px;height:45px;color:var(--gold)}.camp-title h2{font-size:29px;line-height:1.15;margin:3px 0 5px}.camp-title p:last-child{font-size:14px;color:var(--muted)}.camp-companions{display:flex;justify-content:center;gap:18px;margin:15px 0}.camp-companions>div{display:flex;flex-direction:column;align-items:center;max-width:120px;min-width:0;font-size:14px}.camp-companions>div>img{height:135px;width:100%;object-fit:contain;filter:drop-shadow(0 4px 6px #0008)}.camp-companions small{font-size:12px;color:#d4e3bf;margin-top:3px}.camp-companions .icon{width:13px;height:13px}.camp-actions{display:flex;justify-content:center;gap:9px;flex-wrap:wrap}.camp-actions button{display:flex;align-items:center;justify-content:center;gap:4px;font-size:14px}.camp-actions .icon{width:18px;height:18px}.camp-note{font-size:12px;color:#d1d9bf;text-align:center;margin-top:12px}.camp-note .icon{width:16px;height:16px;color:var(--gold)}.result-panel{max-width:660px;text-align:center}.result-symbol{width:48px;height:48px;color:var(--gold);margin-bottom:6px}.result-panel h2{font-size:31px;margin:4px 0}.result-score{font:48px/1.15 Georgia,serif;color:var(--gold);margin:10px 0}.result-score small{display:block;font:12px/1.3 system-ui,sans-serif;letter-spacing:1.5px}.result-panel>p{font-size:14px;margin:9px 0;line-height:1.4;color:#d4ddc8}.result-panel .result-note{font-size:12px}.result-panel button{display:inline-flex;align-items:center;gap:6px;margin-top:10px}.result-panel button .icon{width:18px;height:18px}.overlay{position:fixed;inset:0;z-index:30;display:grid;place-items:center;padding:15px;background:#020b11bb;backdrop-filter:blur(6px)}.overlay-card{max-height:100%;min-height:0;display:flex;flex-direction:column;width:min(100%,710px);padding:20px;border:1px solid #d1b87e99;border-radius:10px;background:linear-gradient(135deg,#23372df7,#0d211af7);box-shadow:0 20px 50px #000b}.overlay-heading{display:flex;justify-content:space-between;align-items:center;gap:15px;margin-bottom:12px}.overlay-heading h2{font-size:27px}.overlay-heading button{font-size:25px;line-height:1;padding:2px 8px}.overlay-card p,.overlay-card ul,.overlay-card ol{font-size:14px;line-height:1.45;color:#dbe2cd;margin:9px 0}.overlay-card ul,.overlay-card ol{padding-left:21px}.overlay-card li+li{margin-top:6px}.overlay-card h3{font-size:22px;color:var(--gold);margin:8px 0}.overlay-card .icon{width:19px;height:19px;color:var(--gold)}.overlay-paging{display:flex;align-items:center;justify-content:space-between;gap:12px;font-size:12px;color:var(--muted);margin-top:auto;padding-top:13px}.contribution{display:flex;align-items:center;gap:10px;font-size:14px;border-bottom:1px solid #b0b88730;padding:7px 0}.contribution b{margin-left:auto}.recruits{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin:10px 0}.recruit{display:flex;flex-direction:column;align-items:center;min-width:0;padding:8px;border:1px solid #cab27a77;border-top:2px solid var(--role);border-radius:6px;background:#1a3027aa;text-align:center}.recruit>img{height:130px;width:100%;object-fit:contain}.recruit>div{width:100%;min-width:0}.recruit h3{font-size:20px;margin:4px 0}.recruit .role{font-size:12px}.recruit .role .icon{width:14px;height:14px}.recruit button{font-size:14px;display:flex;align-items:center;justify-content:center;gap:3px;width:100%;padding:7px 3px;margin-top:7px}.recruit button .icon{width:15px;height:15px}.inspected-hero{display:grid;grid-template-columns:35% 1fr;gap:20px;min-height:0}.inspected-hero>img{width:100%;height:270px;object-fit:contain}.inspected-hero h3{font-size:30px}.inspect-stats{display:flex;flex-wrap:wrap;gap:8px 16px;font-size:14px}.inspect-stats span{display:flex;align-items:center;gap:4px}.inspect-promotion{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin-top:14px;font-size:14px}.inspect-promotion button{display:flex;gap:4px;align-items:center}.camp-formation{display:flex;flex-direction:column;gap:8px;min-height:0;align-items:center}.camp-formation>p{font-size:12px;margin:2px 0}.camp-formation .hero-row{height:145px;flex:none;width:440px;max-width:100%;container-type:size}.camp-formation .hero h3{bottom:4px}.camp-formation .hero .health-track{bottom:2px}#retreatInfo{border-top:1px solid var(--line);padding-top:12px}
@media(min-height:850px) and (min-width:701px){.top{height:58px}.journey-bar{height:78px}.player-hud{height:90px}.hud{padding:7px 30px}.coin-count{font-size:49px}.purse-icon{width:52px;height:52px}.coin-purse{grid-template-columns:52px auto}#game{grid-template-rows:minmax(0,1fr) minmax(0,1.8fr) minmax(0,1.25fr) 40px;gap:9px}.hero,.empty{width:min(120px,73cqh)}.hero-row{width:450px}.ability{width:min(140px,75cqh)}.enemy{width:min(125px,78cqh)}.hero .stats{position:absolute;left:3px;top:25px;display:flex;flex-direction:column;gap:2px;font-size:12px;color:#e0e9cb}.stats span{display:flex;align-items:center;background:#14271edb;padding:1px 2px;border-radius:3px;gap:1px}.stats .icon{width:12px;height:12px}}
@media(max-width:1000px){.top{padding-right:12px;padding-left:12px}.journey-bar{padding-right:12px;padding-left:12px;gap:9px}.chapter .eyebrow{display:none}h1{font-size:22px}.enemy-status{min-width:180px}.forecast-button{max-width:175px}.hero-row{gap:10px}.effect-token small{display:none}.ability .owner{display:none}.effect-strip{margin-bottom:1px}.enemy-full-name{display:none}.enemy-short-name{display:inline}}
@media(max-width:700px) and (min-height:501px){.top{height:49px;padding:5px 9px;gap:8px}.brand{font-size:17px;gap:5px}.brand img{width:31px;height:31px}.brand small{display:none}.top-actions{gap:3px}.top-actions button{width:28px;height:30px;padding:4px}.journey-bar{height:79px;padding:4px 9px;grid-template-columns:1fr auto;gap:3px 6px}.chapter{grid-column:1;grid-row:1}.chapter>p:last-child{display:none}h1{font-size:20px;margin:0}.forecast-button{grid-column:2;grid-row:1;max-width:140px;padding:5px;font-size:14px}.forecast-button .icon{width:18px;height:18px}.enemy-status{grid-column:1/-1;grid-row:2;min-width:0;display:flex;align-items:center;justify-content:center;gap:14px;width:100%}#enemyStatus{margin:0;gap:7px}#trail{gap:10px}.trail-node i{width:20px;height:20px}.trail-node .icon{width:12px;height:12px}.trail-node:not(:last-child):after{width:6px;right:-8px;top:9px}main{padding:0 7px 5px}#game{grid-template-rows:minmax(0,.95fr) minmax(0,1.9fr) minmax(0,1.15fr) 37px;gap:5px}.section-line,.hand-heading{height:18px;gap:7px}.section-line h2,.hand-heading h2{font-size:12px;letter-spacing:0}.section-line>span{font-size:12px}.formation>.section-line{height:17px}.formation>.section-line>span{display:none}.enemy-grid{gap:12px}.enemy{width:min(90px,86cqh)}.enemy .role{display:none}.enemy h3{font-size:14px;margin-bottom:2px}.enemy .hp{font-size:12px;right:0;top:1px;padding:1px 2px}.enemy .hp .icon{width:11px;height:11px}.enemy .intent{font-size:12px;line-height:1.1}.enemy .intent .icon{display:none}.hero-row{gap:12px;width:290px;max-width:calc(100% - 19px)}.row-label{width:14px;writing-mode:vertical-rl;transform:rotate(180deg);justify-content:center;font-size:12px}.hero,.empty{width:min(88px,78cqh)}.hero h3{font-size:14px;bottom:25px;padding:2px 0}.hero .hp{font-size:12px;padding:1px 2px}.hero .hp .icon{display:none}.rank-badge{min-width:17px;height:18px;font-size:12px;left:3px;transform:translate(-15%,-110%)}.hero .promote{font-size:14px;height:23px}.hero .promote .icon:first-child{display:none}.hero .guard{font-size:12px;right:1px;top:21px}.empty span{font-size:12px;line-height:1.1}.empty .icon{width:16px;height:16px}.empty small{font-size:12px}.hand-heading{justify-content:space-between;gap:4px}.hand-heading h2{font-size:12px}.hand-heading>span{display:none}.hand-paging{font-size:12px;gap:4px}.hand{gap:10px;padding-left:7px;padding-right:7px}.ability{width:min(107px,85cqh);padding-bottom:3px}.ability .action-symbol .icon{width:17px;height:17px}.ability strong{font-size:14px;line-height:1.05}.ability .cost{height:28px;min-width:28px;font-size:20px;left:-4px;top:-2px}.cost .icon{width:18px;height:18px}.cost b{margin-right:3px}.ability .mana-cost{top:27px}.effect-strip{gap:2px;padding:2px 0;min-height:20px;margin-bottom:1px}.effect-token .icon{width:14px;height:14px}.effect-token b{font-size:14px}.effect-token small{display:none}.effect-separator{font-size:12px}.controls{height:37px;padding:1px 2px;gap:5px}.action-information p{font-size:12px}.turn-actions{gap:4px}.turn-actions button{font-size:14px;padding:6px 7px;gap:3px}.turn-actions .icon{width:15px;height:15px}.player-hud{height:67px;padding:4px 6px 7px}.hud{min-width:0;width:100%;max-width:470px;gap:8px;padding:5px 9px 3px;border-radius:24px 24px 8px 8px}.resource{grid-template-columns:1fr;justify-items:center;gap:0;min-width:46px}.resource-symbol{grid-row:1;display:none}.resource-value{font-size:19px}.resource-label{font-size:12px;line-height:1.15}.coin-purse{min-width:80px;grid-template-columns:31px auto;gap:0 3px;padding:0 2px 2px;margin-top:-7px}.purse-icon{width:31px;height:31px}.coin-count{font-size:35px}.coin-caption{font-size:12px;letter-spacing:.5px}.coin-pips{gap:3px;margin-top:2px}.coin-pips i{width:6px;height:4px}.welcome-resources{font-size:12px;gap:5px}.welcome-resources .icon{width:19px;height:19px}.welcome{padding:6px 0 8px}.welcome-title h2{font-size:25px;margin:3px 0 5px}.welcome-title>p:last-child{font-size:12px}.welcome-title .eyebrow{font-size:12px;letter-spacing:.8px}.starter-grid{gap:7px;margin-top:11px}.starter .copy{padding:7px 6px;gap:6px}.starter .role{font-size:12px}.starter .role .icon{display:none}.starter h3{font-size:21px}.starter p{font-size:12px;line-height:1.25}.starter>img{padding:0}.starter-choice{font-size:14px;line-height:1.1;padding:6px 2px}.starter-choice .icon{display:none}.camp-panel,.result-panel{padding:13px 11px}.camp-title{gap:8px}.camp-title>.icon{width:31px;height:31px}.camp-title h2{font-size:23px}.camp-title .eyebrow{letter-spacing:.5px;font-size:12px}.camp-title p:last-child{font-size:12px}.camp-companions{gap:8px;margin:12px 0}.camp-companions>div>img{height:110px}.camp-companions>div{font-size:12px;max-width:80px}.camp-companions small{font-size:12px}.camp-actions{display:grid;grid-template-columns:1fr 1fr;gap:7px}.camp-actions button{font-size:14px;padding:8px 4px;gap:3px}.camp-actions .icon{width:15px;height:15px}.camp-note{font-size:12px;line-height:1.3}.result-panel h2{font-size:27px}.result-panel>p{font-size:14px}.result-score{font-size:38px}.result-symbol{width:35px;height:35px}.overlay{padding:10px}.overlay-card{padding:14px}.overlay-heading{margin-bottom:8px}.overlay-heading h2{font-size:23px}.overlay-card p,.overlay-card ul,.overlay-card ol{font-size:14px;line-height:1.35;margin:7px 0}.overlay-paging{padding-top:10px}.overlay-paging button{font-size:14px;padding:6px 9px}.recruits{grid-template-columns:1fr 1fr;gap:10px}.recruit>img{height:155px}.recruit h3{font-size:22px}.recruit button .icon:first-child{display:none}.inspected-hero{grid-template-columns:30% 1fr;gap:10px}.inspected-hero>img{height:220px}.inspected-hero h3{font-size:26px}.inspect-stats{gap:7px;font-size:14px}.camp-formation .hero-row{height:130px;width:330px}.camp-formation .hero,.camp-formation .empty{width:min(92px,78cqh)}}
/* Medium-height desktop reserves the complete hand and controls before sizing the stage. */
@media(min-width:701px) and (min-height:501px) and (max-height:700px){
#game{grid-template-columns:minmax(0,40%) minmax(0,1fr);grid-template-rows:minmax(0,1fr) 112px 38px;gap:6px 14px}
.encounter{grid-column:1;grid-row:1}.enemy-grid{align-items:center;gap:12px}.enemy{height:min(100cqh,190px);width:min(125px,calc((100cqw - 24px)/3))}.enemy .role{display:none}.enemy-full-name{display:none}.enemy-short-name{display:inline}
.formation{grid-column:2;grid-row:1;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);grid-template-rows:20px minmax(0,1fr);gap:3px 12px}.formation>.section-line{grid-column:1/-1;height:20px}.formation>.section-line>span{display:none}.formation-row{display:flex;flex-direction:column;gap:3px;min-height:0;min-width:0}.row-label{height:17px;width:auto;justify-content:center;font-size:12px;writing-mode:horizontal-tb;transform:none;flex:none}.hero-row{width:100%;max-width:100%;flex:1;gap:6px;align-items:center;justify-content:center;min-height:0;container-type:size}
.hero{height:min(100cqh,177px);width:min(108px,calc(100cqw - 76px));align-self:center}.hero-row:has(.hero~.hero) .hero{width:min(108px,calc((100cqw - 44px)/2))}.hero-row:has(.hero~.hero~.hero) .hero{width:min(108px,calc((100cqw - 12px)/3))}.empty{width:32px;height:48px;align-self:center;flex:none;aspect-ratio:auto;gap:2px;font-size:12px;line-height:1.1}.empty span,.empty small{display:none}.empty .icon{width:14px;height:14px}.empty small{font-size:12px;line-height:1}.hero .hp{font-size:12px}.hero h3{font-size:14px}.hero .role-seal{bottom:46px;width:22px;height:22px}
#handSection{grid-column:1/-1;grid-row:2}.hand-heading{height:20px}.hand{gap:14px;padding:3px 5px 5px}.ability{width:107px;max-width:125px;flex:0 1 107px}.ability strong{font-size:14px;line-height:1.05}.effect-strip{gap:1px 5px;min-height:21px}.ability .cost{height:29px;min-width:29px;top:-3px;left:-5px;font-size:20px}.ability .cost .icon{width:20px;height:20px}.ability .owner .role-emblem{width:21px;height:21px}.controls{grid-column:1/-1;grid-row:3;height:38px}
.welcome{display:grid;grid-template-columns:180px minmax(0,1fr);gap:18px;padding:4px 0 9px;align-items:stretch}.welcome-title{align-self:center;text-align:left}.welcome-title h2{font-size:29px;line-height:1.1;margin:7px 0}.welcome-title>p:last-child{font-size:14px;line-height:1.35}.starter-grid{height:100%;max-width:660px;width:100%;margin:0;gap:13px;justify-self:center;align-self:stretch}.starter{display:flex;flex-direction:column;min-height:0}.starter>img{height:0;min-height:0;flex:1;object-fit:contain;padding:0 5px}.starter .copy{padding:7px 8px;gap:4px}.starter .role{font-size:12px}.starter h3{font-size:22px}.starter p{font-size:12px;line-height:1.2}.starter-choice{font-size:14px;line-height:1.1;margin-top:2px;padding:5px 2px}.starter-choice .icon{display:none}
}

/* Short landscape: a single split stage, a three-card hand, and the bottom coin rail. */
@media(max-height:500px){.top{height:36px;padding:3px 10px;gap:8px}.brand{font-size:17px;gap:5px}.brand img{width:27px;height:27px}.brand small{display:none}.top-actions{gap:4px}.top-actions button{width:27px;height:27px;padding:4px}.top-actions .icon{width:18px;height:18px}.journey-bar{height:40px;min-height:40px;padding:3px 10px;grid-template-columns:1fr auto 1fr;gap:6px}.chapter .eyebrow,.chapter>p:last-child{display:none}h1{font-size:19px;margin:0}.enemy-status{display:flex;align-items:center;gap:10px;min-width:0}.run-progress{font-size:12px}#enemyStatus{font-size:12px;gap:5px;margin:0}#trail{gap:8px}.trail-node i{width:19px;height:19px}.trail-node .icon{width:11px;height:11px}.trail-node:not(:last-child):after{width:4px;right:-6px;top:9px}.forecast-button{font-size:14px;max-width:145px;padding:4px;gap:3px}.forecast-button .icon{width:16px;height:16px}main{padding:0 8px 4px}#game{grid-template-columns:42% 1fr;grid-template-rows:minmax(0,1fr) 78px 31px;gap:4px 8px}.encounter{grid-column:1;grid-row:1}.formation{grid-column:2;grid-row:1;gap:2px}.section-line,.formation>.section-line{height:16px}.section-line h2,.section-line>span,.hand-heading h2{font-size:12px;letter-spacing:0}.formation>.section-line>span{display:none}.enemy-grid{gap:9px}.enemy{width:min(79px,77cqh)}.enemy .role{display:none}.enemy h3{font-size:14px;margin:0}.enemy .hp{font-size:12px;padding:1px}.enemy .hp .icon{display:none}.enemy .intent{font-size:12px;line-height:1}.enemy .intent .icon{display:none}.enemy-copy{padding:2px 2px}.enemy .health-track{margin:1px 0;height:2px}.hero-row{gap:8px;width:240px;max-width:calc(100% - 17px)}.row-label{width:13px;font-size:12px;writing-mode:vertical-rl;transform:rotate(180deg);justify-content:center}.hero,.empty{width:min(63px,98cqh);border-radius:5px}.hero>img{object-position:30% center}.hero h3{font-size:14px;line-height:1;bottom:0;padding:2px 0}.hero .rank-badge{top:0;left:0;transform:translate(-15%,-110%);height:16px;min-width:16px;font-size:12px}.hero .hp{font-size:12px;line-height:1;top:1px;right:1px;padding:1px}.hero .hp .icon{display:none}.hero .health-track{bottom:0;height:2px}.hero .role,.hero .stats,.hero .guard{display:none}.rank-controls{position:absolute;top:-4px;bottom:auto;right:-7px;left:auto;width:24px;height:24px;transform:translateX(50%)}.hero .promote{width:24px;height:24px;min-height:24px;padding:1px;position:relative;font-size:14px;border:1px solid #d7b56f;border-radius:50%;background:#193125;box-shadow:0 2px 5px #0008}.hero .promote>.icon:first-child{display:none}.hero .promote>.icon:nth-child(2){width:20px;height:20px}.hero .promote span{position:absolute;inset:0;display:grid;place-items:center;font-size:14px;color:#1e241d;font-weight:800;text-shadow:0 1px #ffe7a6}.empty{font-size:12px;gap:0}.empty .icon,.empty small{display:none}.empty span{font-size:12px;line-height:1.05}.formation-row{gap:3px;min-height:0}#handSection{grid-column:1/-1;grid-row:2}.hand-heading{height:17px;gap:8px}.hand-heading>span{font-size:12px}.hand-paging{font-size:12px;gap:4px}.hand-paging button{height:17px;min-width:20px;font-size:17px;padding:0 4px}.hand{gap:13px;padding:2px 5px 3px}.ability{width:81px;min-width:0;max-width:95px;padding:0 3px 2px;border-radius:6px}.ability .owner{display:none}.ability .ability-art img{object-position:center 35%;height:130%}.ability strong{font-size:14px;line-height:1;padding:1px 0;margin:0}.ability .action-symbol{display:none}.ability .cost{height:24px;min-width:24px;font-size:17px;left:-7px;top:-3px}.cost .icon{width:17px;height:17px}.cost b{margin-right:2px}.ability .mana-cost{font-size:12px;left:-4px;top:23px}.mana-cost .icon{width:11px;height:11px}.effect-strip{gap:2px;min-height:18px;padding:1px 0;margin:0 -1px 1px;border-color:#ad966399}.effect-token .icon{width:13px;height:13px}.effect-token b{font-size:14px}.effect-token small{display:none}.controls{grid-column:1/-1;grid-row:3;height:31px;padding:0 3px;gap:5px}.action-information p{font-size:12px}.turn-actions{gap:4px}.turn-actions button{font-size:14px;min-height:27px;padding:4px 6px}.turn-actions .icon{width:14px;height:14px}.player-hud{height:52px;padding:2px 7px 4px}.hud{min-width:380px;gap:23px;padding:3px 17px 2px;border-radius:25px 25px 8px 8px}.resource{grid-template-columns:19px auto;column-gap:3px}.resource-symbol .icon{width:18px;height:18px}.resource-value{font-size:18px}.resource-label{font-size:12px;line-height:1}.coin-purse{min-width:78px;grid-template-columns:30px auto;gap:0 3px;margin-top:-5px;padding:0 2px}.purse-icon{width:30px;height:30px}.coin-count{font-size:32px}.coin-caption{font-size:12px;letter-spacing:0}.coin-pips{gap:3px;margin-top:1px}.coin-pips i{width:6px;height:3px}.welcome-resources{font-size:14px;gap:7px}.welcome{padding:0 0 4px;display:grid;grid-template-columns:175px 1fr;gap:12px}.welcome-title{text-align:left}.welcome-title h2{font-size:25px;margin:5px 0}.welcome-title .eyebrow{font-size:12px;letter-spacing:.5px}.welcome-title>p:last-child{font-size:12px}.starter-grid{height:100%;margin:0;gap:10px}.starter{display:grid;grid-template-columns:38% 1fr;align-items:center}.starter>img{height:100%;width:100%;padding:0}.starter .copy{padding:6px;background:#102319b3;gap:4px}.starter .role{font-size:12px}.starter .role .icon{display:none}.starter h3{font-size:19px}.starter p{font-size:12px;line-height:1.15}.starter-choice{font-size:14px;padding:5px 2px;gap:2px;line-height:1.05}.starter-choice .icon{display:none}.camp-panel,.result-panel{grid-column:1/-1;padding:8px 13px}.camp-title{gap:8px}.camp-title>.icon{width:27px;height:27px}.camp-title h2{font-size:22px;margin:1px 0 3px}.camp-title .eyebrow{font-size:12px;letter-spacing:.5px}.camp-title p:last-child{display:none}.camp-companions{gap:14px;margin:5px 0}.camp-companions>div>img{height:61px}.camp-companions>div{font-size:12px;max-width:95px}.camp-companions small{font-size:12px;margin-top:1px}.camp-actions{gap:6px}.camp-actions button{font-size:14px;padding:5px 6px}.camp-actions .icon{width:14px;height:14px}.camp-note{font-size:12px;line-height:1.15;margin-top:5px}.result-symbol{display:none}.result-panel h2{font-size:23px;margin:2px 0}.result-panel .eyebrow{font-size:12px}.result-score{font-size:29px;margin:4px 0}.result-score small{font-size:12px}.result-panel>p{font-size:14px;line-height:1.15;margin:4px 0}.result-panel .result-note{font-size:12px}.result-panel button{margin-top:4px;padding:4px 8px}.overlay{padding:8px}.overlay-card{padding:10px 14px;width:min(100%,740px)}.overlay-heading{margin-bottom:5px}.overlay-heading h2{font-size:23px}.overlay-heading button{font-size:23px;padding:1px 7px}.overlay-card p,.overlay-card ul,.overlay-card ol{font-size:14px;line-height:1.25;margin:5px 0}.overlay-card li+li{margin-top:4px}.overlay-card h3{font-size:19px;margin:4px 0}.overlay-paging{padding-top:6px;font-size:12px}.overlay-paging button{font-size:14px;padding:4px 8px}.contribution{font-size:14px;padding:3px 0}.recruits{margin:4px 0;gap:10px}.recruit{padding:4px}.recruit>img{height:95px}.recruit h3{font-size:18px;margin:2px 0}.recruit .role{font-size:12px}.recruit .role .icon{display:none}.recruit button{font-size:14px;padding:4px 2px;margin-top:4px}.recruit button .icon:first-child{display:none}.inspected-hero{grid-template-columns:25% 1fr;gap:12px}.inspected-hero>img{height:180px}.inspected-hero h3{font-size:24px}.inspect-stats{font-size:14px;gap:5px 12px}.inspect-promotion{margin-top:7px;gap:6px}.camp-formation{display:grid;grid-template-columns:auto 1fr auto 1fr;gap:7px;align-items:center}.camp-formation>p{font-size:12px;writing-mode:vertical-rl;transform:rotate(180deg)}.camp-formation .hero-row{height:140px;width:260px;max-width:100%;gap:8px}.camp-formation .hero,.camp-formation .empty{width:min(75px,73cqh)}.camp-formation .hero h3{bottom:3px}}
@media(max-height:390px) and (max-width:720px){.chapter{display:none}.journey-bar{grid-template-columns:1fr auto;height:34px;min-height:34px}.enemy-status{justify-self:center;gap:8px}.forecast-button{font-size:14px;max-width:140px}.top{height:34px}.player-hud{height:49px}.hud{min-width:0;width:min(100%,490px);gap:18px}.resource{grid-template-columns:auto}.resource-symbol{display:none}.coin-purse{min-width:76px}.hero,.empty{width:min(58px,100cqh)}.hero-row{gap:10px}.rank-controls{right:-4px;width:22px;height:22px}.hero .promote{height:22px;min-height:22px;width:22px}.hero .hp{top:0;font-size:12px}.hero .hp .icon{display:none}.hero .rank-badge{left:3px}.enemy{width:min(75px,82cqh)}.hand{gap:13px}.ability{width:86px}.welcome{grid-template-columns:130px 1fr;gap:9px}.welcome-title h2{font-size:23px}.starter{display:flex;flex-direction:column}.starter>img{height:0;min-height:0;flex:1}.starter .copy{flex:none;gap:3px;padding:5px}.starter .role,.starter p{display:none}.starter h3{font-size:18px;text-align:center}.starter-choice{font-size:14px;min-height:30px;margin:0;padding:4px 1px}.starter-grid{gap:8px}.starter{border-radius:7px}.overlay-card p,.overlay-card ul,.overlay-card ol{font-size:14px}.camp-actions{gap:5px}.camp-actions button{font-size:14px;padding:5px 4px}.camp-actions button .icon{display:none}.camp-companions>div>img{height:50px}.camp-note{font-size:12px}.camp-title h2{font-size:21px}.camp-title .eyebrow{display:none}.camp-companions{margin:4px 0}.recruit>img{height:74px}.camp-formation .hero-row{height:118px;width:220px}.inspected-hero>img{height:155px}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{transition:none!important;animation:none!important}}
/* Direct one-rank promotion and explicit temporary-effect symbols. */
.hero .promote{position:absolute;left:0;right:0;bottom:0;z-index:4;pointer-events:auto}.hero:not(:has(.promote)) h3{bottom:3px}.hero:not(:has(.promote)) .health-track{bottom:1px}.effect-strip{flex-wrap:wrap}.effect-token small{display:inline!important;font-size:12px}.threat-pips i{background:#27372d;border-color:#687057}.threat-pips i.lit{background:#c26b3d;border-color:#efbc7a;box-shadow:0 0 5px #da8b4433}#inspectPromote{display:flex;align-items:center;gap:5px;margin-top:12px}.hero .promote span{font-size:14px}
@media(max-width:1000px){.effect-separator{display:none}.effect-token:has(use[href$="#ally"]),.effect-token:has(use[href$="#skull"]){display:none}.effect-strip{gap:2px 5px}.effect-token small{font-size:12px}}
@media(max-width:700px) and (min-height:501px){.enemy-status{gap:0;justify-content:center}.enemy-status #trail{display:none}.effect-strip{gap:2px 4px}.effect-token{min-height:15px}.hero .promote{left:0;right:0;bottom:0}.threat-pips{gap:2px}.threat-pips i{width:4px}}
@media(max-height:500px){.hero .promote{display:none;left:auto;right:-8px;bottom:auto;top:-3px;width:24px;height:24px;transform:translateX(50%)}.hero h3,.hero:has(.promote) h3{bottom:0}.hero:not(:has(.promote)) h3{bottom:2px}.hero .health-track{bottom:0}.effect-token small{display:inline!important}.effect-strip{gap:1px 4px;min-height:17px}.effect-token .icon{width:12px;height:12px}.effect-token b{font-size:14px}.ability{width:100px;max-width:110px}.ability .cost{top:-3px;left:-7px}.effect-token:has(use[href$="#ally"]),.effect-token:has(use[href$="#skull"]),.effect-separator{display:none}.enemy-status #trail{display:none}.enemy-status{gap:0}#enemyStatus{gap:8px}.hero .promote span{font-size:14px}.overlay-card #inspectPromote{margin-top:7px}}
@media(max-height:390px) and (max-width:720px){.hero .promote{height:22px;min-height:22px;width:22px;right:-4px}.effect-strip{gap:1px 4px}.ability{width:100px;max-width:108px}.enemy-status{justify-self:start}.run-progress{font-size:12px}.threat-pips{display:none}.forecast-button{max-width:127px}.journey-bar{gap:5px}}
/* A card's rank, role and Health occupy separate corners. */
.hero h3{top:0;display:flex;align-items:flex-end;justify-content:center;padding-bottom:3px;background:linear-gradient(transparent calc(100% - 20px),#1b2a20ef calc(100% - 20px))}.hero .rank-badge{top:2px;left:2px;transform:none}.role-emblem{object-fit:contain;fill:none;stroke:none;filter:drop-shadow(0 1px 2px #0008)}.hero .role-seal{position:absolute;left:3px;bottom:46px;width:22px;height:22px;z-index:3;pointer-events:none;filter:drop-shadow(0 2px 3px #000a)}.role-seal .role-emblem{display:block;width:100%;height:100%;object-fit:contain}.ability .action-symbol{display:none}.ability .owner{position:absolute;top:3px;right:3px;display:block!important;font-size:0;line-height:0;color:transparent;z-index:3}.ability .owner .role-emblem{display:block;width:23px;height:23px;object-fit:contain}.recruit{display:grid;grid-template-columns:minmax(35px,35%) minmax(0,1fr);gap:5px;align-items:stretch;text-align:left;padding:6px;overflow:visible;background:#152a21}.recruit>img{width:100%;height:150px;object-fit:contain;align-self:center;object-position:center bottom;position:static;filter:drop-shadow(0 3px 3px #0008)}.recruit>div{display:flex;flex-direction:column;align-items:flex-start;justify-content:center;min-width:0;background:#172d23;padding:6px 2px;position:relative;z-index:1}.recruit .role{display:flex;align-items:center;gap:3px;font-size:12px;min-width:0}.recruit .role .role-emblem{display:inline-block!important;width:20px;height:20px;object-fit:contain;flex:none}.recruit h3{font-size:18px;margin:6px 0;color:#f5e6bf;position:static}.recruit button{font-size:14px;display:flex;flex-wrap:wrap;gap:2px;padding:6px 2px;margin-top:7px;white-space:normal;background:#34402b;width:100%;position:static}.recruit button>.icon:first-child{display:none}.recruit button>.icon{width:14px;height:14px}.camp-companions .role-emblem{width:20px;height:20px;object-fit:contain}.starter .role .role-emblem{display:inline-block!important;width:18px;height:18px;object-fit:contain}
@media(max-width:700px) and (min-height:501px){.hero h3{bottom:25px;padding-bottom:3px}.hero .rank-badge{top:2px;left:2px;transform:none}.hero .role-seal{width:19px;height:19px;bottom:44px;left:2px}.ability .owner .role-emblem{width:19px;height:19px}.recruit{grid-template-columns:35% minmax(0,1fr);gap:5px}.recruit>img{height:175px}.recruit .role{font-size:12px;gap:2px}.recruit h3{font-size:19px}.recruit .role .role-emblem{width:20px;height:20px}.recruit button{font-size:14px;min-height:34px;padding:6px 3px}.starter .role .role-emblem{width:16px;height:16px}}
@media(max-height:500px){.hero h3,.hero:has(.promote) h3{top:0;bottom:0;padding-bottom:2px;background:linear-gradient(transparent calc(100% - 16px),#15271df2 calc(100% - 16px))}.hero .rank-badge{top:1px;left:1px;transform:none;min-width:15px;height:15px}.hero .role-seal{width:17px;height:17px;left:1px;bottom:17px}.ability .owner{top:2px;right:2px}.ability .owner .role-emblem{width:17px;height:17px}.recruit{grid-template-columns:34% minmax(0,1fr)}.recruit>img{height:105px}.recruit .role .role-emblem{width:20px;height:20px}.recruit .role{font-size:12px}.recruit h3{font-size:18px;margin:4px 0}.recruit button{font-size:14px;padding:4px 2px;margin-top:5px}.starter .role .role-emblem{width:16px;height:16px}.camp-formation .hero .role-seal{bottom:24px;width:23px;height:23px}}
@media(max-height:390px) and (max-width:720px){.hero .role-seal{width:16px;height:16px;bottom:16px}.hero .rank-badge{top:1px;left:1px}.recruit>img{height:93px}}
body[data-phase="camp"] .controls,body[data-phase="ended"] .controls{grid-row:2;grid-column:1/-1}body[data-phase="camp"] .camp-panel,body[data-phase="ended"] .result-panel{grid-row:1;grid-column:1/-1}
/* Camp recovery is a preview: solid Health is current, hatched gold is potential. */
.camp-companions>div{height:166px;width:112px;position:relative;display:block;border:1px solid #b1b88a77;border-radius:7px;background:radial-gradient(ellipse at 50% 30%,#64805d33,#10241cf0);box-shadow:0 4px 10px #0006;isolation:isolate;overflow:visible}.camp-companions>div>img{width:100%;height:100%;object-fit:contain;object-position:center 30%;padding-bottom:13px;position:absolute;inset:0;z-index:-1}.camp-companions>div>span:not(.camp-hp):not(.heal-gain):not(.rest-health-track){position:absolute;left:0;right:0;bottom:17px;display:block;padding:3px 2px;text-align:center;font-size:14px;line-height:1.1;background:#15271dec;text-shadow:0 1px 3px #000}.camp-hp{position:absolute;top:4px;right:4px;display:flex;align-items:center;gap:2px;padding:3px 4px;font-size:12px;line-height:1;border:1px solid #bbd19477;background:#20351ee8;border-radius:4px;color:#e5f0cb}.camp-hp .icon{width:12px;height:12px}.rest-health-track{position:absolute;left:5px;right:5px;bottom:6px;height:8px;display:block;overflow:hidden;background:#07130e;border:1px solid #a4ba8666;border-radius:4px;box-shadow:0 1px 4px #0005}.rest-health-track>i{position:absolute;top:0;height:100%;display:block;min-width:0;font-style:normal}.rest-health-track .health-current{left:0;background:linear-gradient(#bbd898,#749657);z-index:1}.rest-health-track .health-preview{background:repeating-linear-gradient(125deg,#f4d991 0,#f4d991 2px,#9a794044 2px,#9a794044 5px);border:1px solid #f3d38c;border-left:1px solid #ffe6b2;z-index:2;box-shadow:inset 0 0 0 1px #e4c07533}.heal-gain{position:absolute;right:4px;top:29px;padding:2px 4px;display:flex;align-items:center;gap:2px;font-size:14px;line-height:1.1;font-weight:700;background:#3e3822f2;color:#ffe1a0;border:1px dashed #f0cc7d;border-radius:4px;box-shadow:0 2px 4px #0005}.heal-gain .icon{width:13px;height:13px}.heal-gain:empty{display:none}.camp-action-budget{display:flex;align-items:center;justify-content:center;gap:6px;width:fit-content;max-width:100%;margin:8px auto 10px;padding:5px 12px;font-size:14px;line-height:1.2;color:#f2d795;border:1px solid #d4b67577;border-radius:20px;background:#10251de8}.camp-action-budget .icon{width:20px;height:20px;color:var(--gold)}.camp-action-budget.spent,.camp-action-budget[data-available="false"]{color:#c6ccb8;border-color:#7a896a77}.camp-actions button:disabled{opacity:.48;border-color:#73836566;background:#1b2d22;color:#c1c8b5}.camp-panel:has(#restButton:disabled) .heal-gain{border-style:dashed}
/* Events have explicit pages and immediate Continue, with no timed dismissal. */
.event-card{width:min(100%,940px);padding:22px 24px;background:radial-gradient(ellipse at 50% 0%,#38523b,#172d24 65%,#10221c);border:2px solid #d5b879;box-shadow:0 0 0 3px #101c18,0 20px 65px #000c}.event-card .overlay-heading{margin-bottom:16px;padding-bottom:12px;border-bottom:1px solid #bca36b66}.event-card .overlay-heading h2{font-size:31px;line-height:1.1;color:#f9e4b4}.event-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;min-height:0}.event-entry{position:relative;min-width:0;min-height:0;display:flex;flex-direction:column;align-items:center;text-align:center;padding:13px 12px 14px;border:1px solid #b7b18777;border-top:2px solid var(--role);border-radius:7px;background:linear-gradient(#263f31dd,#10281fef);box-shadow:0 5px 12px #0005}.event-entry>img{width:100%;height:150px;object-fit:contain;object-position:center bottom;filter:drop-shadow(0 4px 5px #0008);flex:none;margin-bottom:6px}.event-entry>svg.icon{width:48px;height:48px;color:var(--gold);margin:15px 0}.event-entry h3{font-size:24px;line-height:1.1;color:#f2dfb1;margin:5px 0 9px}.event-numbers{display:flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:6px 10px;margin:0 0 7px;padding:7px 9px;border:1px solid #b4a97466;background:#0d211ae8;border-radius:5px;font-size:20px;font-weight:700;line-height:1.1;color:#f6e4b5;max-width:100%}.event-numbers .icon{width:23px;height:23px;color:var(--gold)}.event-numbers>span{display:inline-flex;align-items:center;gap:3px}.event-numbers small{font-size:12px;font-weight:400}.event-card .event-copy{font-size:14px;line-height:1.35;color:#d7e2cc;margin:0;max-width:100%}.event-entry:not(:has(>img)){justify-content:center;min-height:185px;background:radial-gradient(ellipse at 50% 20%,#49603b55,#10271ff2)}.event-card .overlay-paging{padding-top:18px;gap:10px}.event-card .overlay-paging button{font-size:14px;min-height:35px;padding:7px 12px}.event-card .overlay-paging .primary,.event-card #eventContinue{min-width:122px;font-weight:700;background:linear-gradient(#efd594,#bd9650);color:#15251c;border-color:#f1d58c}.event-card .overlay-paging>div{display:flex;align-items:center;gap:7px}.event-grid:has(>.event-entry:only-child){grid-template-columns:minmax(0,1fr);max-width:580px;width:100%;margin:auto}.event-grid:has(>.event-entry:only-child)>.event-entry{display:grid;grid-template-columns:34% 1fr;gap:3px 15px;text-align:left;align-items:center;padding:15px 20px}.event-grid:has(>.event-entry:only-child)>.event-entry>img{grid-column:1;grid-row:1/4;height:195px;margin:0}.event-grid:has(>.event-entry:only-child)>.event-entry>h3{grid-column:2;align-self:end;margin:0 0 6px}.event-grid:has(>.event-entry:only-child)>.event-entry>.event-numbers{grid-column:2;justify-content:flex-start;justify-self:start}.event-grid:has(>.event-entry:only-child)>.event-entry>.event-copy{grid-column:2;align-self:start}.event-grid:has(>.event-entry:only-child)>.event-entry:not(:has(>img)){display:flex;text-align:center;min-height:160px}
@media(max-width:700px) and (min-height:501px){.camp-companions>div{height:143px;width:79px;max-width:calc((100vw - 65px)/4)}.camp-companions>div>img{height:100%;padding-bottom:13px}.camp-companions>div>span:not(.camp-hp):not(.heal-gain):not(.rest-health-track){font-size:12px;bottom:16px;padding:3px 1px}.camp-hp{top:3px;right:2px;font-size:12px;padding:2px}.camp-hp .icon{display:none}.heal-gain{top:25px;right:2px;font-size:14px;padding:1px 3px}.rest-health-track{left:3px;right:3px;bottom:5px;height:7px}.camp-action-budget{font-size:14px;margin:7px auto 8px;padding:4px 9px}.event-card{padding:15px 13px}.event-card .overlay-heading{margin-bottom:11px;padding-bottom:10px}.event-card .overlay-heading h2{font-size:26px}.event-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}.event-entry{padding:9px 7px 11px}.event-entry>img{height:150px;margin-bottom:5px}.event-entry h3{font-size:21px;margin:4px 0 8px}.event-numbers{font-size:21px;padding:6px 5px;gap:5px}.event-numbers .icon{width:21px;height:21px}.event-card .event-copy{font-size:14px;line-height:1.3}.event-entry:not(:has(>img)){min-height:210px}.event-card .overlay-paging{padding-top:12px;gap:7px;flex-wrap:wrap}.event-card .overlay-paging button{font-size:14px;min-height:35px;padding:7px 9px}.event-card .overlay-paging .primary,.event-card #eventContinue{min-width:94px}.event-grid:has(>.event-entry:only-child)>.event-entry{grid-template-columns:32% 1fr;padding:11px 9px;gap:3px 9px}.event-grid:has(>.event-entry:only-child)>.event-entry>img{height:190px}.event-grid:has(>.event-entry:only-child)>.event-entry>h3{font-size:24px}.event-grid:has(>.event-entry:only-child)>.event-entry>.event-numbers{font-size:22px}}
@media(max-height:500px){.camp-companions{margin:5px 0}.camp-companions>div{height:87px;width:90px;max-width:95px}.camp-companions>div>img{height:100%;padding-bottom:10px}.camp-companions>div>span:not(.camp-hp):not(.heal-gain):not(.rest-health-track){font-size:12px;bottom:12px;padding:2px 1px}.camp-hp{top:2px;right:2px;font-size:12px;padding:1px 2px}.camp-hp .icon{display:none}.heal-gain{top:21px;right:2px;font-size:14px;padding:1px 3px}.rest-health-track{height:6px;bottom:3px;left:3px;right:3px}.camp-action-budget{margin:3px auto 5px;padding:3px 9px;font-size:14px}.camp-action-budget .icon{width:16px;height:16px}.camp-panel{padding-top:7px;padding-bottom:7px}.camp-title h2{font-size:21px}.camp-note{margin-top:4px}.event-card{padding:11px 15px;width:min(100%,850px)}.event-card .overlay-heading{margin-bottom:8px;padding-bottom:7px}.event-card .overlay-heading h2{font-size:25px}.event-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.event-entry{display:grid;grid-template-columns:29% minmax(0,1fr);grid-template-rows:auto auto 1fr;gap:3px 8px;align-items:center;text-align:left;padding:9px 10px;min-height:135px}.event-entry>img{grid-column:1;grid-row:1/4;height:135px;width:100%;margin:0}.event-entry>h3{grid-column:2;grid-row:1;font-size:22px;margin:0 0 3px}.event-entry>.event-numbers{grid-column:2;grid-row:2;justify-self:start;justify-content:flex-start;font-size:20px;margin:0;padding:5px 6px;gap:4px}.event-numbers .icon{width:19px;height:19px}.event-entry>.event-copy{grid-column:2;grid-row:3;align-self:start;font-size:14px;line-height:1.25;margin:2px 0 0}.event-entry:not(:has(>img)){display:flex;flex-direction:column;justify-content:center;text-align:center;min-height:135px}.event-entry:not(:has(>img))>h3{font-size:23px;margin-bottom:5px}.event-entry:not(:has(>img))>.event-copy{align-self:center}.event-entry>svg.icon{width:30px;height:30px;margin:0 0 4px}.event-card .overlay-paging{padding-top:9px;gap:8px}.event-card .overlay-paging button{min-height:31px;font-size:14px;padding:5px 10px}.event-card .overlay-paging .primary,.event-card #eventContinue{min-width:110px}.event-grid:has(>.event-entry:only-child){max-width:650px}.event-grid:has(>.event-entry:only-child)>.event-entry{grid-template-columns:24% 1fr;gap:3px 15px;padding:9px 17px;min-height:130px}.event-grid:has(>.event-entry:only-child)>.event-entry>img{height:140px}.event-grid:has(>.event-entry:only-child)>.event-entry>h3{font-size:25px}.event-grid:has(>.event-entry:only-child)>.event-entry>.event-numbers{font-size:22px}.event-grid:has(>.event-entry:only-child)>.event-entry:not(:has(>img)){min-height:130px}.event-card .event-copy{font-size:14px}}
@media(max-height:390px) and (max-width:720px){.camp-companions>div{height:75px;width:82px}.camp-companions>div>img{height:100%}.camp-companions{margin:4px 0}.camp-action-budget{font-size:14px;margin:2px auto 4px;padding:2px 8px}.camp-title h2{font-size:20px}.event-card{padding:10px 12px}.event-card .overlay-heading h2{font-size:24px}.event-card .overlay-heading{margin-bottom:7px;padding-bottom:6px}.event-grid{gap:8px}.event-entry{grid-template-columns:26% minmax(0,1fr);gap:3px 6px;padding:8px;min-height:120px}.event-entry>img{height:118px}.event-entry>h3{font-size:20px}.event-entry>.event-numbers{font-size:19px;padding:4px;gap:4px}.event-entry>.event-copy{font-size:14px;line-height:1.2}.event-entry:not(:has(>img)){min-height:120px}.event-entry:not(:has(>img))>h3{font-size:21px}.event-grid:has(>.event-entry:only-child)>.event-entry>img{height:125px}.event-card .overlay-paging{padding-top:8px}.event-card .overlay-paging button{font-size:14px;padding:5px 8px}.event-card .overlay-paging .primary,.event-card #eventContinue{min-width:100px}}
/* Camp and results own a fitted content grid, including their final action. */
@media(max-height:700px){
.camp-panel{height:100%;max-height:none;align-self:stretch;display:grid;grid-template-columns:minmax(0,1fr) auto;grid-template-rows:48px minmax(0,1fr) 38px;gap:6px 10px;align-items:center;padding:10px 14px;min-height:0}
.camp-panel>.camp-title{grid-column:1;grid-row:1;justify-content:flex-start;min-width:0}.camp-title>.icon{width:30px;height:30px}.camp-title .eyebrow,.camp-title p:last-child{display:none}.camp-panel .camp-title h2{font-size:24px;line-height:1.1;margin:0}
.camp-panel>.camp-action-budget{grid-column:2;grid-row:1;margin:0;padding:5px 9px;max-width:280px;min-width:0;text-align:center;flex-wrap:wrap;gap:3px 6px;font-size:14px}.camp-action-budget span{font-size:12px}
.camp-panel>.camp-companions{grid-column:1/-1;grid-row:2;height:100%;min-height:0;align-items:center;margin:0;container-type:size;gap:13px}.camp-companions>div{height:min(100cqh,166px);width:min(112px,calc((100cqw - 39px)/4));max-width:112px;flex:none;min-height:0}.camp-companions>div>img{height:100%}
.camp-panel>.camp-actions{grid-column:1/-1;grid-row:3;min-height:0;align-self:stretch;display:flex;flex-wrap:nowrap;gap:7px}.camp-actions button{font-size:14px;padding:6px 8px;min-height:0;line-height:1.15}.camp-panel>.camp-note{display:none}
.result-panel{height:100%;max-height:none;align-self:stretch;display:grid;grid-template-rows:auto auto minmax(0,1fr) auto auto 36px;align-content:center;justify-items:center;gap:5px;padding:12px 18px;min-height:0}.result-panel>.result-symbol{display:none}.result-panel>.eyebrow{grid-row:1;font-size:12px;margin:0}.result-panel>h2{grid-row:2;font-size:27px;line-height:1.1;margin:0}.result-panel>.result-score{grid-row:3;align-self:center;font-size:38px;line-height:1;margin:0}.result-score small{font-size:12px;line-height:1.3;margin-top:5px}.result-panel>p:not(.eyebrow):not(.result-note){grid-row:4;font-size:14px;line-height:1.2;margin:0}.result-panel>.result-note{grid-row:5;font-size:12px;line-height:1.25;margin:0}.result-panel>#replayButton{grid-row:6;min-height:0;height:36px;margin:0;font-size:14px;padding:6px 12px}
}
@media(max-width:700px) and (min-height:501px) and (max-height:700px){.camp-panel{grid-template-columns:minmax(0,1fr) auto;grid-template-rows:52px minmax(0,1fr) 72px;padding:10px;gap:6px}.camp-panel .camp-title h2{font-size:21px}.camp-title>.icon{display:none}.camp-panel>.camp-action-budget{max-width:145px;gap:3px 5px;padding:5px}.camp-action-budget>span{display:none}.camp-panel>.camp-actions{display:grid;grid-template-columns:1fr 1fr;grid-template-rows:1fr 1fr;gap:6px}.camp-actions button{font-size:14px;padding:5px}.camp-panel>.camp-companions{gap:7px}.camp-companions>div{width:min(79px,calc((100cqw - 21px)/4));height:min(100cqh,145px)}.result-panel{padding:10px;gap:6px}.result-panel>h2{font-size:25px}.result-panel>.result-score{font-size:38px}}
@media(max-height:500px){.camp-panel{grid-template-rows:32px minmax(0,1fr) 32px;padding:7px 10px;gap:4px 8px}.camp-panel .camp-title h2{font-size:21px}.camp-title>.icon{width:25px;height:25px}.camp-panel>.camp-action-budget{max-width:260px;flex-wrap:nowrap;gap:4px;padding:3px 7px}.camp-action-budget>span{display:none}.camp-panel>.camp-companions{gap:13px}.camp-companions>div{height:min(100cqh,110px);width:min(90px,calc((100cqw - 39px)/4))}.camp-panel>.camp-actions{gap:6px}.camp-actions button{font-size:14px;padding:4px 7px}.result-panel{grid-template-rows:16px 25px minmax(0,1fr) 17px 28px 30px;gap:3px;padding:7px 12px}.result-panel>h2{font-size:23px}.result-panel>.result-score{font-size:29px}.result-score small{margin-top:2px}.result-panel>p:not(.eyebrow):not(.result-note){font-size:14px;line-height:1.1}.result-panel>.result-note{font-size:12px;line-height:1.1}.result-panel>#replayButton{height:30px;padding:4px 9px}}
@media(max-height:390px) and (max-width:720px){.camp-panel .camp-title h2{font-size:20px}.camp-title>.icon{display:none}.camp-panel>.camp-action-budget{max-width:215px}.camp-panel>.camp-actions{gap:5px}.camp-actions button{font-size:14px;padding:4px}.camp-actions button>.icon{display:none}.camp-panel>.camp-companions{gap:10px}.camp-companions>div{width:min(83px,calc((100cqw - 30px)/4));height:min(100cqh,100px)}}
/* Full rules are available to pointer and keyboard users above the selected card. */
.hand{overflow:visible}.ability{overflow:visible}.ability:hover,.ability:focus-visible{z-index:18}.card-tooltip{display:none;position:absolute;z-index:25;left:50%;bottom:calc(100% + 10px);transform:translateX(-50%);width:min(300px,calc(100vw - 60px));padding:11px 13px;border:1px solid #ecd08a;border-radius:7px;background:#0b1d18;color:#f4ecd5;font:14px/1.4 system-ui,sans-serif;font-weight:400;text-align:left;box-shadow:0 5px 20px #000b;pointer-events:none;text-shadow:none}.ability:hover>.card-tooltip,.ability:focus-visible>.card-tooltip{display:block}.ability:first-child>.card-tooltip{left:0;right:auto;transform:none}.ability:last-child>.card-tooltip{left:auto;right:0;transform:none}.ability:only-child>.card-tooltip{left:50%;right:auto;transform:translateX(-50%)}#promoteSelected{display:none}#promoteSelected .icon{width:17px;height:17px}#promoteSelected{color:#ffe1a1;border-color:#cba765;background:linear-gradient(#37432b,#1b3021)}
@media(max-height:500px){.hero>.hero-body>.promote{display:none}.hero:has(.promote) h3{bottom:0}.turn-actions #promoteSelected:not([hidden]){display:flex;align-items:center;justify-content:center;gap:3px;min-height:27px;padding:4px 6px;font-size:14px}.turn-actions #promoteSelected .icon{width:16px;height:16px}.card-tooltip{padding:9px 11px;font-size:14px;line-height:1.3}}
.camp-companions .heal-gain{color:#ffe1a0;font-size:14px;margin-top:0}.camp-companions .camp-hp{font-size:12px;white-space:nowrap}.rest-health-track.unavailable .health-preview{opacity:.45}
/* Compact enemy names leave the enlarged Health badge its own corner. */
@media(min-width:1101px) and (max-height:800px){.enemy-full-name{display:none}.enemy-short-name{display:inline}.enemy .role{font-size:0;gap:0;left:1px}.enemy .role .icon{width:11px;height:12px}}
/* One enlarged, viewport-clamped inspection serves pointer, keyboard and touch. */
.card-inspection{position:fixed;z-index:28;width:300px;height:min(445px,calc(100dvh - 20px));pointer-events:none;filter:drop-shadow(0 12px 22px #000a)}.inspection-card{position:relative;display:grid;grid-template-rows:minmax(0,1fr) auto;height:100%;width:100%;padding:5px;border:3px solid var(--frame);border-radius:13px;background:radial-gradient(ellipse at 50% 25%,#3a5540,#10261f 75%);box-shadow:0 4px 0 var(--edge),inset 0 0 0 2px #d8bc7466;overflow:hidden}.inspection-card[data-rank="1"]{--frame:#e5e5d9;--edge:#77796d}.inspection-card[data-rank="2"]{--frame:#78b9ef;--edge:#284f87}.inspection-card[data-rank="3"]{--frame:#c096ed;--edge:#603e87}.inspection-card[data-rank="4"]{--frame:#b58b61;--edge:#614028}.inspection-card[data-rank="5"]{--frame:#d1b77b;--edge:#111315;background:radial-gradient(ellipse at 50% 20%,#303e3b,#091212);box-shadow:0 0 0 3px #080e10,0 5px 0 #403427,inset 0 0 0 2px #d8bc7466}.inspection-art{position:relative;min-height:0;overflow:hidden;border-radius:7px;background:radial-gradient(ellipse at 50% 55%,#b4bc8b22,transparent 70%)}.inspection-art>img{width:100%;height:100%;object-fit:contain;filter:drop-shadow(0 5px 6px #0008)}.inspection-rank{position:absolute;top:6px;left:7px;padding:4px 7px;background:#14261ce8;border:1px solid var(--frame);border-radius:4px;color:var(--frame);font:700 18px/1 Georgia,serif}.inspection-art .cost{position:absolute;bottom:6px;left:8px;display:flex;align-items:center;gap:4px;color:#ffe4a0;font:700 30px/1 Georgia,serif;background:#19261ee8;border:1px solid #d6b771;border-radius:23px;padding:4px 9px 4px 4px}.inspection-art .cost .icon{width:34px;height:34px}.inspection-art .mana-cost{position:absolute;bottom:10px;right:10px;display:flex;align-items:center;gap:4px;font-size:20px;color:#d2c4ff;background:#19251fe8;border-radius:5px;padding:4px}.inspection-art .mana-cost .icon{width:24px;height:24px}.inspection-role{position:absolute;right:7px;top:7px}.inspection-role .role-emblem{width:36px;height:36px}.inspection-copy{padding:10px 11px 12px;border-top:1px solid #c9b27399;background:linear-gradient(#24392a,#12281e);min-height:0}.inspection-subtitle{font-size:12px;color:var(--role);line-height:1.25;margin:0 0 4px}.inspection-copy h2{font-size:27px;line-height:1.05;margin:0 0 8px;color:#f6e4bd}.inspection-copy .effect-strip{margin:0 0 7px;min-height:26px;padding:4px;gap:5px}.inspection-copy .effect-token .icon{width:20px;height:20px}.inspection-copy .effect-token b{font-size:18px}.inspection-copy .effect-token small{font-size:14px}.inspection-rules,.inspection-rule-note{font-size:14px;line-height:1.35;color:#e3e8d4;margin:0}.inspection-rule-note{font-size:12px;margin:6px 0}.inspection-stats{display:flex;align-items:center;justify-content:center;gap:4px;font-size:18px;color:#e9dfb6;margin:8px 0}.inspection-stats .icon{width:19px;height:19px}.inspection-stats b{margin-right:6px}#closeInspection{position:absolute;z-index:5;right:7px;top:6px;font-size:26px;line-height:1;padding:1px 7px;background:#12261ef2}.card-inspection.pinned{position:fixed;inset:0;width:auto;height:auto;max-height:none;display:grid;place-items:center;pointer-events:auto;padding:12px;filter:none;background:#041015c9;backdrop-filter:blur(5px)}.card-inspection.pinned .inspection-card{width:min(330px,100%);height:min(490px,calc(100dvh - 24px))}.card-inspection.pinned .inspection-role{right:48px}#inspectHandButton{display:grid;place-items:center;width:26px;height:23px;min-height:0;padding:2px;background:#12271fdf}#inspectHandButton>.icon{width:17px;height:17px}#inspectHandButton[aria-pressed="true"]{border-color:#ffe1a1;background:#6a5934}.hero .hp,.enemy .hp{font-size:14px;font-weight:700;line-height:1.1;padding:3px 4px}.hero .health-track{height:7px;bottom:24px;border:1px solid #c4db9677}.hero h3{bottom:33px}.hero:not(:has(.promote)) h3{bottom:10px}.hero:not(:has(.promote)) .health-track{bottom:2px}.enemy .health-track{height:7px;margin:4px 0 2px;border:1px solid #efc39766}.hero .role-seal{bottom:55px}.hero .hp .icon,.enemy .hp .icon{width:14px;height:14px}.enemy-copy{padding-bottom:5px}.hero.fx-hurt,.enemy.fx-hurt{animation:exp-hurt .3s ease-out}.hero.fx-heal{animation:exp-heal .48s ease-out}.hero.fx-promote{animation:exp-promote .5s ease-out}.hero.fx-attack{animation:exp-attack .26s ease-out}.hero.fx-arrive,.enemy.fx-arrive{animation:exp-arrive .38s ease-out}.coin-purse.fx-coin{animation:exp-coin .28s ease-out}.ability{transition:transform .15s,box-shadow .15s,border-color .15s}.ability:hover:not(:disabled),.ability:focus-visible{transform:translateY(-3px)}.event-entry{animation:exp-arrive .3s ease-out}
@keyframes exp-hurt{0%{filter:brightness(1.8) sepia(.6);transform:translateX(0)}35%{transform:translateX(-3px)}70%{transform:translateX(3px)}100%{filter:none;transform:none}}@keyframes exp-heal{0%{box-shadow:0 0 0 2px #d1f0af,0 0 30px #b7e59299;filter:brightness(1.35)}100%{filter:none}}@keyframes exp-promote{0%{transform:translateY(-5px);filter:brightness(1.7);box-shadow:0 0 28px #f4d795bb}100%{transform:none;filter:none}}@keyframes exp-attack{40%{transform:translateY(-6px)}100%{transform:none}}@keyframes exp-arrive{0%{opacity:.35;transform:translateY(7px)}100%{opacity:1;transform:none}}@keyframes exp-coin{45%{filter:brightness(1.5);transform:scale(1.05)}100%{filter:none;transform:none}}
@media(max-width:700px) and (min-height:501px){.card-inspection{width:min(290px,calc(100vw - 20px));height:min(425px,calc(100dvh - 20px))}.top{gap:5px}.top-actions{gap:2px}.top-actions button{width:25px;height:29px}.brand{font-size:16px}.brand img{width:27px;height:27px}.hero .hp{font-size:14px;right:0;top:1px;padding:2px}.hero .hp .icon{display:none}.hero h3{bottom:32px}.hero .role-seal{bottom:52px;width:19px;height:19px}.hero .health-track{height:6px}.hero:not(:has(.promote)) h3{bottom:9px}.enemy .hp{font-size:14px;padding:2px}.enemy .hp .icon{display:none}.enemy .health-track{height:6px}.hand-heading h2{font-size:12px}.hand-heading{gap:5px}}
@media(max-height:500px){.card-inspection{width:min(470px,calc(100vw - 20px));height:min(285px,calc(100dvh - 20px))}.inspection-card{grid-template-columns:42% minmax(0,1fr);grid-template-rows:minmax(0,1fr);padding:5px}.inspection-copy{border-top:0;border-left:1px solid #c9b27377;padding:13px 12px;display:flex;flex-direction:column;justify-content:center}.inspection-copy h2{font-size:25px;margin-bottom:9px}.inspection-rules{font-size:14px;line-height:1.3}.inspection-art .cost{font-size:27px;bottom:5px;left:5px}.inspection-art .cost .icon{width:30px;height:30px}.inspection-art .mana-cost{bottom:55px;left:6px;right:auto;font-size:18px}.inspection-role .role-emblem{width:30px;height:30px}.card-inspection.pinned .inspection-card{width:min(490px,100%);height:min(285px,calc(100dvh - 24px))}.card-inspection.pinned .inspection-role{right:7px;top:40px}.formation{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);grid-template-rows:16px minmax(0,1fr);gap:3px 8px}.formation>.section-line{grid-column:1/-1}.formation-row{display:flex;flex-direction:column;gap:2px}.row-label{height:15px;width:auto;writing-mode:horizontal-tb;transform:none;justify-content:center;flex:none}.hero-row{width:100%;max-width:100%;gap:6px;flex:1;align-items:center}.hero{height:100%;width:min(80px,calc(100cqw - 68px))}.hero-row:has(.hero~.hero) .hero{width:min(75px,calc((100cqw - 38px)/2))}.hero-row:has(.hero~.hero~.hero) .hero{width:min(70px,calc((100cqw - 12px)/3))}.empty{width:28px;height:35px;aspect-ratio:auto;align-self:center}.empty span,.empty small{display:none}.hero .hp{left:1px;right:1px;top:1px;font-size:14px;padding:2px 0;justify-content:center;border-radius:3px}.hero .hp .icon{display:none}.hero .health-track,.hero:not(:has(.promote)) .health-track{height:6px;bottom:16px;left:1px;right:1px}.hero h3,.hero:has(.promote) h3,.hero:not(:has(.promote)) h3{bottom:0;padding-bottom:1px;font-size:14px;background:linear-gradient(transparent calc(100% - 16px),#15271df2 calc(100% - 16px))}.hero .rank-badge{top:auto;left:1px;bottom:25px;height:17px;min-width:17px;font-size:12px}.hero .role-seal{left:auto;right:2px;bottom:25px;width:19px;height:19px}.enemy .hp{left:1px;right:1px;top:1px;justify-content:center;padding:2px 0;font-size:14px}.enemy .hp .icon{display:none}.enemy .health-track{height:6px;margin:3px 0 2px}.event-entry{grid-template-rows:auto auto auto minmax(0,1fr)}.event-entry>img{grid-row:1/5}.event-entry>.event-numbers:nth-of-type(2){grid-row:3}.event-entry:has(>.event-numbers:nth-of-type(2))>.event-copy{grid-row:4}.event-grid:has(>.event-entry:only-child)>.event-entry>img{grid-row:1/5}.event-grid:has(>.event-entry:only-child)>.event-entry>.event-numbers:nth-of-type(2){grid-row:3}.event-grid:has(>.event-entry:only-child)>.event-entry:has(>.event-numbers:nth-of-type(2))>.event-copy{grid-row:4}}
@media(prefers-reduced-motion:reduce){.ability:hover:not(:disabled),.ability:focus-visible{transform:none}*,*:before,*:after{animation:none!important;transition:none!important}}
.ability[aria-disabled="true"]{opacity:.62;filter:saturate(.65);cursor:help}.ability[aria-disabled="true"]:hover,.ability[aria-disabled="true"]:focus-visible{opacity:1;filter:none}

/* Tavern and disposable lane preview keep the expedition runtime intact. */
body[data-view="tavern"] .journey-bar,body[data-view="tavern"] #playerHud,body[data-view="lanes"] .journey-bar,body[data-view="lanes"] #playerHud{display:none}
body[data-view="tavern"] main,body[data-view="lanes"] main{padding:7px 12px 10px}
body[data-view="tavern"] .play,body[data-view="lanes"] .play{max-width:none}
.result-panel>.result-actions{grid-row:6;display:flex;justify-content:center;align-items:stretch;gap:8px;min-height:0;height:36px}.result-actions>button{margin:0;min-height:0;height:100%;font-size:14px;padding:6px 10px}
@media(max-height:500px){.result-panel>.result-actions{height:30px}.result-actions>button{padding:4px 8px}}
