:root{color-scheme:dark;--bg:#102629;--panel:#19383b;--line:#365654;--cream:#f5eed8;--muted:#b2c9bf;--gold:#f3cc68;--ink:#172d2d}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--cream);font:16px/1.5 'DM Sans',sans-serif}button,a{-webkit-tap-highlight-color:transparent}button{font:inherit;cursor:pointer;transition:transform .15s,background .15s;border:1px solid var(--line);background:#173437;color:var(--cream);border-radius:9px;padding:9px 13px;min-height:44px}button:disabled{cursor:default;opacity:.45}button:focus-visible,a:focus-visible{outline:3px solid #75d9fb;outline-offset:4px}button:hover:not(:disabled){border-color:var(--gold);background:#294b43}button:active:not(:disabled){transform:translateY(2px)}[hidden]{display:none!important}h1,h2,h3,p{margin:0}h1,h2{font-family:'Fraunces',Georgia,serif}h1{font-size:38px;line-height:1.15}h2{font-size:27px}h3{font-size:16px}.eyebrow{font-size:12px;letter-spacing:1.7px;font-weight:700;color:var(--muted)}#camp{max-width:1320px;margin:auto;padding:25px 32px}.mast{display:flex;align-items:center;gap:30px;padding-bottom:22px;border-bottom:1px solid var(--line)}.brand{display:flex;align-items:center;gap:12px;color:var(--cream);text-decoration:none;font-size:13px;font-weight:700;line-height:1.1;letter-spacing:2px}.brand b{font-size:19px;letter-spacing:1px}.brand>span{font-size:50px;color:var(--gold);line-height:1}.edition{font-size:12px;color:#8ba99b;letter-spacing:2px}.tools{margin-left:auto;display:flex;gap:7px}.tools button{font-size:12px;background:transparent}.camp-heading{display:flex;align-items:center;gap:25px;padding:30px 0}.camp-heading h1{margin-top:5px}.route-track{display:flex;gap:8px;align-items:center;margin:auto}.route-node{width:29px;height:29px;border:1px solid #57736d;border-radius:50%;text-align:center;line-height:27px;font-size:12px;color:var(--muted)}.route-node.current{background:var(--gold);border-color:var(--gold);color:var(--ink);box-shadow:0 0 0 5px #f3cc6815}.route-node.done{background:#387460;color:#dff5bc;border-color:#387460}.route-line{width:8px;height:1px;background:var(--line)}.supplies{display:grid;text-align:right;gap:5px}.supplies strong{color:var(--gold);letter-spacing:3px;white-space:nowrap}.decision{padding:27px 30px;border:1px solid #597563;border-radius:16px;background:linear-gradient(115deg,#29473b,#1a3638);margin-bottom:28px;animation:arrive .35s ease-out}.decision-top{display:flex;gap:25px;align-items:center;justify-content:space-between}.decision h2{font-size:31px;margin:5px 0 8px}.decision p{max-width:760px;font-size:15px;color:var(--muted)}.primary{background:var(--gold);color:var(--ink);border:1px solid #ffe3a3;border-bottom:4px solid #b99742;border-radius:10px;padding:14px 27px;font-weight:900;font-size:16px;white-space:nowrap;min-height:52px}.primary:hover:not(:disabled){background:#ffdc80;color:#142e2d;transform:translateY(-2px)}.secondary{font-weight:700}.route-options{display:grid;grid-template-columns:1fr 1fr;gap:13px;margin-top:24px}.route-option{display:flex;align-items:center;text-align:left;gap:15px;padding:18px 20px;background:#102a2bcc;border-color:#456551}.route-option[aria-pressed=true]{border-color:var(--gold);box-shadow:inset 0 0 0 1px var(--gold);background:#f3cc680c}.route-icon{font-size:30px;color:#c9dea7}.route-option strong{display:block;font-size:16px}.route-option small{display:block;color:var(--muted);font-size:13px;margin-top:3px}.route-option .enemy-count{margin-left:auto;font:26px 'Fraunces',serif;color:var(--gold)}.preparation{display:grid;grid-template-columns:1.6fr 1fr;gap:24px}.section-heading{display:flex;justify-content:space-between;align-items:center;margin-bottom:14px;gap:12px}.section-heading h2{font-size:24px}.section-heading>span{font-size:12px;color:var(--muted);white-space:nowrap}.packs{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.pack{display:flex;align-items:center;gap:10px;text-align:left;padding:13px;min-width:0;background:#173437}.pack.selected{border-color:var(--gold);background:#294638}.portrait{width:68px;height:68px;flex-shrink:0}.sprite{display:inline-block;background-image:url('creatures.png');background-size:300% 200%;background-position:var(--sx) var(--sy);border-radius:50%;border:1px solid #76928366}.pack-info{min-width:0;flex:1}.pack-info strong{display:block;font-size:15px}.pack-info span{font-size:11px;letter-spacing:1px;color:var(--muted)}.pack-amount{font:26px 'Fraunces',serif;color:var(--gold)}.pack-detail{color:var(--muted);font-size:14px;min-height:50px;padding:12px 3px}.formation-panel{background:#173437;border:1px solid var(--line);border-radius:12px;padding:20px}.formation-panel p{font-size:13px;color:var(--muted);margin-bottom:14px}.formation{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.position{min-width:0;border:1px dashed #537569;min-height:56px;font-size:13px;display:flex;align-items:center;justify-content:center;gap:8px}.position.occupied{border-style:solid}.position[aria-pressed=true]{border-color:var(--gold);color:var(--gold);background:#2c4939}.mini-portrait{width:32px;height:32px;flex-shrink:0}.treasures{grid-column:1/-1;border-top:1px solid var(--line);padding-top:20px}#relics{display:flex;gap:15px;flex-wrap:wrap}#relics>p{font-size:14px;color:var(--muted)}.treasure{display:flex;gap:12px;align-items:center;max-width:280px}.treasure-icon{font-size:28px;color:var(--gold)}.treasure strong{font-size:14px;display:block}.treasure small{display:block;color:var(--muted);font-size:12px}.choices{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:17px;margin-top:24px}.choice{position:relative;display:flex;flex-direction:column;align-items:center;text-align:center;padding:25px 20px;border:1px solid #63816b;border-bottom-width:4px;border-radius:14px;background:linear-gradient(#36513c,#1b3835);gap:10px;min-height:245px;animation:cardIn .4s both}.choice:nth-child(2){animation-delay:.08s}.choice:nth-child(3){animation-delay:.16s}.choice:hover{transform:translateY(-6px);box-shadow:0 15px 30px #061a2660}.choice .portrait{width:90px;height:90px}.choice strong{font:25px 'Fraunces',serif}.choice small{font-size:14px;color:#c6d9c9;line-height:1.5}.choice .eyebrow{color:var(--gold);font-size:11px}.choice-icon{font-size:53px;height:90px;display:flex;align-items:center;color:var(--gold)}.choice .pick-label{margin-top:auto;padding-top:10px;color:var(--gold);font-size:12px;font-weight:700}.choices.two{grid-template-columns:1fr 1fr}.recap{display:flex;gap:8px;flex-wrap:wrap;margin-top:20px}.recap span{font-size:12px;padding:6px 10px;background:#102b2d;border-radius:5px;color:var(--muted)}.recap b{color:var(--cream)}footer{display:flex;justify-content:space-between;gap:10px;padding-top:25px;color:#8ba99b;font-size:11px;letter-spacing:.5px}footer b{margin-left:10px;font-weight:400}dialog{max-width:560px;width:calc(100% - 30px);color:var(--cream);background:var(--panel);border:1px solid #688379;border-radius:16px;padding:28px}dialog::backdrop{background:#05191bdb}dialog h2{margin-bottom:12px}dialog p{margin:12px 0;color:var(--muted)}dialog ol{padding-left:20px}dialog li{margin:12px 0}dialog .primary{margin-top:18px}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0)}
body[data-screen=battle]{overflow:hidden}#battleScreen{position:fixed;inset:0;isolation:isolate;background:#75936b}#arena{display:block;position:absolute;inset:0;width:100%;height:100%;touch-action:none}.battle-hud{position:absolute;top:0;left:0;right:0;display:flex;align-items:flex-start;justify-content:space-between;gap:20px;padding:25px 30px;background:linear-gradient(#102b2dea,transparent);pointer-events:none}.battle-hud>*{pointer-events:auto}.battle-title h1{font-size:30px;margin-top:4px;text-shadow:0 3px 12px #183929}.battle-title .eyebrow{color:#e0e9c8}.battle-controls{display:flex;gap:6px;flex-wrap:wrap;justify-content:flex-end}.battle-controls button{background:#173b35de;border-color:#abc29666;color:#f5eed8;font-size:12px;padding:8px 12px;backdrop-filter:blur(8px)}.fight-meters{position:absolute;top:112px;left:30px;right:30px;display:flex;justify-content:space-between;gap:70px;pointer-events:none}.fight-meters>div{width:min(31%,320px);font-size:11px;letter-spacing:1px;color:#f6f0d9;font-weight:700}.fight-meters b{float:right;letter-spacing:0}.meter{height:5px;background:#213f3966;border-radius:10px;margin-top:6px;overflow:hidden}.meter i{display:block;height:100%;width:100%;background:#f1d67e;transition:width .2s}.enemy-meter .meter i{background:#cf9cbb}.battle-footer{position:absolute;bottom:0;left:0;right:0;padding:30px;align-items:flex-end;background:linear-gradient(transparent,#143631e6);color:var(--cream);pointer-events:none}.battle-roster{display:flex;gap:12px}.roster-chip{display:flex;align-items:center;gap:7px;background:#153c35cf;border:1px solid #91b18a65;border-radius:30px;padding:5px 11px 5px 5px}.roster-chip .mini-portrait{width:35px;height:35px}.roster-chip b{font-size:14px}.combo-meter{margin-left:auto;text-align:right}.combo-meter span{display:block;font-size:10px;letter-spacing:1.3px;color:#d5e4bd}.combo-meter strong{font:36px 'Fraunces',serif;color:#fff1a6;line-height:1.2}.combo-meter.pop{animation:countPop .3s ease-out}#battleClock{font-size:14px;margin-left:18px;margin-bottom:4px}.battle-banner{position:absolute;top:24%;left:50%;transform:translateX(-50%) translateY(-10px);opacity:0;color:#fff3a6;background:#123b32df;border:1px solid #c2d89a7a;padding:11px 24px;border-radius:30px;font-weight:900;white-space:nowrap;pointer-events:none;transition:opacity .2s,transform .2s;text-shadow:0 2px #123025}.battle-banner.show{opacity:1;transform:translateX(-50%) translateY(0)}.intro{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;background:#0c2b2730;pointer-events:none;transition:opacity .45s;gap:12px;text-align:center}.intro span,.intro small{letter-spacing:3px;font-size:12px;font-weight:700;text-shadow:0 2px 4px #163629}.intro strong{font:700 clamp(35px,7vw,80px)/1.1 'Fraunces',serif;color:#fff0b9;text-shadow:0 5px 0 #314b35,0 8px 35px #16362c;animation:stamp .6s cubic-bezier(.15,.9,.3,1.3)}.intro.gone{opacity:0}.pause-overlay,.result-overlay{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;background:#0b292b9c;backdrop-filter:blur(5px);gap:20px;padding:25px}.pause-overlay{z-index:4}.result-overlay{z-index:5;overflow:auto}.pause-overlay h2{font-size:40px}.result-card{width:min(580px,100%);background:linear-gradient(140deg,#2f4c3e,#173639);border:1px solid #90a673;border-radius:20px;padding:35px;text-align:center;box-shadow:0 35px 80px #061d2b55;animation:cardIn .45s both}.result-card h2{font-size:44px;line-height:1.1;color:var(--gold);margin:8px 0 16px}.result-card p{color:var(--muted);font-size:15px}.result-card .primary{margin-top:25px;width:100%}.result-card .recap{justify-content:center}.result-card .eyebrow{color:#d9e8b8}.damage-table{margin-top:20px;text-align:left;display:grid;gap:10px}.damage-row{display:grid;grid-template-columns:110px 1fr 40px;align-items:center;gap:10px;font-size:12px}.damage-row .meter{margin:0;background:#0b292b}.damage-row b{text-align:right}.damage-row .meter i{background:var(--species-color)}.result-stats{display:flex;justify-content:center;gap:25px;margin:20px 0}.result-stats strong{display:block;font:30px 'Fraunces',serif;color:#f9e9ac}.result-stats span{font-size:11px;color:var(--muted)}.view-note{margin:15px 0 0!important;font-size:12px!important;color:#9ebaa9!important}.motion-calm *{animation:none!important;transition:none!important}
@keyframes arrive{from{opacity:0;transform:translateY(9px)}to{opacity:1;transform:translateY(0)}}@keyframes cardIn{from{opacity:0;transform:translateY(18px) scale(.95)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes stamp{from{opacity:0;transform:scale(1.5)}to{opacity:1;transform:scale(1)}}@keyframes countPop{50%{transform:scale(1.2)}}
@media(max-width:1000px){.edition{display:none}.camp-heading{flex-wrap:wrap;gap:18px}.route-track{order:3;width:100%;justify-content:center}.supplies{margin-left:auto}.preparation{grid-template-columns:1.3fr 1fr}.packs{grid-template-columns:1fr}.decision-top{align-items:start}.decision h2{font-size:27px}.battle-hud{padding:20px}.fight-meters{left:20px;right:20px}.battle-title h1{font-size:24px}}
@media(max-width:700px){#camp{padding:16px}.mast{gap:10px;align-items:flex-start}.brand{font-size:11px;gap:6px}.brand b{font-size:15px}.brand>span{font-size:39px}.tools{flex-wrap:wrap;max-width:220px;justify-content:flex-end;gap:5px}.tools button{font-size:11px;min-height:34px;padding:6px 9px}h1{font-size:30px}.camp-heading{padding:22px 0}.decision{padding:20px}.decision-top{display:block}.decision-top>.primary{width:100%;margin-top:20px}.route-options{gap:9px;margin-top:18px}.route-option{padding:13px;display:block}.route-icon{display:none}.route-option strong{font-size:14px}.route-option small{font-size:12px}.route-option .enemy-count{font-size:19px;display:block;margin-top:8px}.preparation{grid-template-columns:1fr}.packs{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.pack{padding:9px;gap:7px;flex-wrap:wrap}.portrait{width:45px;height:45px}.pack-info strong{font-size:13px}.pack-info span{font-size:10px}.pack-amount{font-size:20px}.choices,.choices.two{grid-template-columns:1fr}.choice{min-height:auto;display:grid;grid-template-columns:62px 1fr;gap:5px 12px;text-align:left;align-items:center;padding:17px}.choice>.portrait,.choice>.choice-icon{grid-row:1/4;width:60px;height:60px;font-size:42px}.choice>.eyebrow{grid-column:2}.choice>strong{grid-column:2;font-size:24px}.choice>small{grid-column:1/-1;font-size:14px;margin-top:5px}.choice>.pick-label{grid-column:1/-1;text-align:right}.choice:hover{transform:none}.treasures{grid-column:1}footer{font-size:10px}footer b{display:block;margin:3px 0}.battle-hud{padding:16px;gap:8px}.battle-controls{gap:5px;max-width:220px}.battle-controls button{font-size:11px;padding:6px 9px;min-height:34px}.battle-title h1{font-size:23px;max-width:170px}.battle-title .eyebrow{font-size:10px;letter-spacing:1px}.fight-meters{top:120px;left:16px;right:16px;gap:30px}.fight-meters>div{width:43%}.battle-footer{padding:17px;gap:10px;flex-wrap:wrap}.battle-roster{gap:6px}.roster-chip{gap:5px;padding:4px 8px 4px 4px}.roster-chip .mini-portrait{width:25px;height:25px}.roster-chip b{font-size:12px}.combo-meter{margin-left:auto}.combo-meter strong{font-size:29px}.combo-meter span{font-size:9px}#battleClock{margin-left:0;font-size:12px}.battle-banner{font-size:13px;padding:9px 14px;top:23%;max-width:94%;white-space:normal;text-align:center}.result-card{padding:24px}.result-card h2{font-size:36px}.result-overlay{padding:16px}.damage-row{grid-template-columns:95px 1fr 35px}.intro{padding:25px}.intro small{font-size:10px;letter-spacing:2px}}
@media(max-width:380px){.packs{grid-template-columns:1fr}.pack{flex-wrap:nowrap}.tools{max-width:180px}.battle-title h1{font-size:20px}.battle-controls{max-width:190px}.battle-roster{max-width:210px;flex-wrap:wrap}}
@media(max-height:500px) and (orientation:landscape){.battle-hud{padding:9px 16px}.battle-title h1{font-size:20px}.battle-title .eyebrow{font-size:9px}.fight-meters{top:73px}.battle-footer{padding:10px 16px}.battle-banner{top:26%}.result-overlay{justify-content:flex-start}.result-card{margin:auto;padding:20px}.result-card h2{font-size:30px}.result-stats{margin:10px}.damage-table{display:none}}
@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}
/* Camp decisions and pocket coaching. */
.berry-wallet{display:grid;gap:2px;max-width:180px}.berry-wallet>strong{font:27px 'Fraunces',serif;color:#e8b1d1}.berry-wallet small{font-size:10px;color:var(--muted);line-height:1.35}.camp-heading{flex-wrap:wrap}.camp-heading>.route-track{order:4;flex-basis:100%;justify-content:center}.workshop{margin-top:26px;display:grid;grid-template-columns:1fr 1.2fr;gap:24px}.training-panel,.berry-cart{padding:23px;border-radius:15px;border:1px solid var(--line);background:#193638}.training-panel>p{font-size:13px;color:var(--muted);margin:8px 0 18px}.training-panel .section-heading{margin:7px 0;align-items:start}.training-panel h2{font-size:26px}#growPack{text-align:right}#growPack button{font-size:12px;padding:8px}#growPack small{display:block;font-size:9px;color:var(--muted);max-width:140px;margin-top:4px}.training-choices{display:grid;gap:10px}.upgrade{display:grid;gap:7px;padding:15px;text-align:left;background:#27443c}.upgrade strong{font-size:15px;display:flex;justify-content:space-between;gap:10px}.upgrade strong b{color:#edbada;white-space:nowrap}.upgrade>span{font-size:13px;color:var(--cream)}.upgrade small{font-size:12px;color:var(--muted)}.learned{padding:20px;background:#e5c7780c;border:1px solid #b4b97688;border-radius:12px}.learned>span{font-size:12px;font-weight:bold;color:var(--gold)}.learned p{font-size:14px;margin:10px 0}.learned small{color:var(--muted);font-size:12px}.shop-offers{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.shop-card{display:flex;flex-direction:column;align-items:center;padding:15px 10px;gap:10px;background:linear-gradient(#394b3b,#243e37);min-width:0}.shop-icon{font:32px Georgia;color:var(--gold)}.shop-card strong{font-size:14px}.shop-card small{font-size:12px;color:var(--muted)}.shop-card>b{margin-top:auto;color:#efbadb;font-size:14px}.berry-cart>.section-heading>button{font-size:11px;white-space:nowrap}.berry-cart h2{font-size:26px}.berry-cart .eyebrow{font-size:9px}.camp-extras{display:grid;gap:10px;margin-top:14px}.extra{display:flex;gap:10px;align-items:center;text-align:left;padding:14px}.extra>span{flex:1}.extra b{font-size:13px;display:block}.extra small{font-size:12px;color:var(--muted);display:block}.extra strong{font-size:13px;color:#eeb9d9;white-space:nowrap}.synergy-notes{display:grid;gap:8px;margin-top:20px}.synergy-notes span{font-size:12px;color:#d5ddba;background:#112e2e;padding:9px 11px;border-radius:7px}details{margin-top:20px;font-size:13px;color:var(--muted)}summary{cursor:pointer;min-height:44px;padding:10px 0}summary:hover{color:var(--gold)}.evolution-grid{display:grid;grid-template-columns:1fr 1fr;gap:22px;margin-top:25px}.evolution-family h3{display:flex;align-items:center;gap:10px}.evolution-family .choices{margin-top:12px;gap:10px}.evolution-family .choice{min-height:220px;padding:17px 12px}.evolution-family .choice strong{font-size:22px}.evolution-family .choice small{font-size:12px}.starter-choices{display:grid;gap:10px}.starter-choices button{display:grid;text-align:left;gap:6px;padding:17px}.starter-choices b{font:22px 'Fraunces',serif;color:var(--gold)}.starter-choices span{font-size:14px}.starter-choices small{color:var(--muted)}.choices:has(> :nth-child(4)){grid-template-columns:repeat(4,minmax(0,1fr))}.choices:has(> :nth-child(4)) .choice{padding:22px 15px}.choices:has(> :nth-child(4)) .choice strong{font-size:23px}
.command-bar{position:absolute;bottom:88px;left:50%;transform:translateX(-50%);display:flex;align-items:stretch;gap:8px;padding:10px;background:#102f2beb;border:1px solid #a3b58b6b;border-radius:17px;box-shadow:0 9px 35px #14342f66;max-width:calc(100% - 32px);width:800px}.command-label{display:flex;flex-direction:column;justify-content:center;min-width:145px;padding:4px 10px}.command-label strong{font:22px 'Fraunces',serif;color:#ffdda0}.command-label span{font-size:11px;color:#ebefd6}.command-label small{font-size:9px;color:#b1c5b0;margin-top:5px}.command-bar>button{flex:1;min-width:0;text-align:left;padding:10px 12px;background:#365345;border-color:#96aa7366;position:relative}.command-bar b{font-size:13px;display:block}.command-bar small{font-size:10px;color:#c8ddc1;display:block;padding-top:5px}.command-bar kbd{position:absolute;top:-7px;right:5px;background:#163a33;border:1px solid #748e65;border-radius:4px;padding:0 5px;font-size:10px}.command-bar>button:disabled{opacity:.45}.battle-footer{padding:16px 28px;align-items:center}.battle-roster{pointer-events:auto;gap:8px}.roster-chip{border-radius:12px;position:relative;overflow:hidden;font-size:11px;max-width:175px;min-height:48px;text-align:left}.roster-chip span{line-height:1.2}.roster-chip b{display:block;color:#e6d8a4;font-size:10px;margin-top:3px}.roster-chip[aria-pressed=true]{background:#476343;border:2px solid #f1d081}.roster-chip .pack-hp{position:absolute;bottom:0;left:0;height:3px;background:#e0efa8}.boss-warning{position:absolute;top:158px;left:50%;transform:translateX(-50%);background:#733d31f0;color:#ffe7b1;border:1px solid #ffc778;border-radius:8px;padding:9px 17px;font-size:12px;font-weight:bold;text-align:center;max-width:90%;z-index:2}.battle-banner{top:28%}
@media(max-width:1000px){.workshop{grid-template-columns:1fr}.evolution-grid{grid-template-columns:1fr}.command-bar{width:720px}.choices:has(> :nth-child(4)){grid-template-columns:repeat(2,minmax(0,1fr))}.battle-roster{gap:5px}.roster-chip{max-width:145px;font-size:10px}}
@media(max-width:700px){.camp-heading{gap:14px}.camp-heading>div:first-child{width:100%}.berry-wallet{max-width:220px}.berry-wallet>strong{font-size:23px}.supplies{margin-left:auto}.workshop{gap:16px}.training-panel,.berry-cart{padding:18px}.berry-cart .section-heading{flex-wrap:wrap}.shop-offers{gap:7px}.shop-card{padding:12px 7px}.shop-card strong{font-size:12px}.shop-card small{font-size:11px}.shop-card>b{font-size:12px}.evolution-family .choices{grid-template-columns:1fr 1fr}.evolution-family .choice{display:flex;min-height:235px;text-align:center}.evolution-family .choice strong{font-size:20px}.evolution-family .choice small{font-size:12px}.choices:has(> :nth-child(4)){grid-template-columns:1fr}.command-bar{bottom:88px;left:10px;right:10px;transform:none;width:auto;max-width:none;padding:8px;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:7px;border-radius:13px}.command-label{grid-column:1/-1;min-width:0;flex-direction:row;justify-content:space-between;align-items:center;padding:0 2px 4px;gap:8px}.command-label strong{font-size:18px}.command-label span{font-size:11px}.command-label small{display:none}.command-bar>button{padding:12px 7px;min-height:70px}.command-bar b{font-size:11px;line-height:1.3}.command-bar small{font-size:9px;line-height:1.35}.command-bar kbd{display:none}.battle-footer{padding:10px;gap:5px}.battle-roster{width:100%;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:5px}.roster-chip{padding:6px 4px;max-width:none;min-height:53px;gap:4px;font-size:9px}.roster-chip .mini-portrait{width:22px;height:22px}.roster-chip b{font-size:9px}.combo-meter{display:none}#battleClock{display:none}.boss-warning{top:154px;font-size:11px;width:90%}.battle-banner{top:27%;font-size:12px}}
@media(max-height:550px) and (orientation:landscape){.command-bar{bottom:65px;padding:6px;max-width:85%;width:750px}.command-label{min-width:140px}.command-label strong{font-size:18px}.command-bar button{padding:6px 8px;min-height:44px}.command-bar small{display:none}.battle-footer{padding:7px 16px}.roster-chip{min-height:43px}.boss-warning{top:94px;padding:5px 10px}.battle-banner{top:32%}}
.pause-overlay{pointer-events:none;background:#0b292b66}.pause-overlay button{pointer-events:auto}.pause-overlay p{font-size:13px;text-align:center;max-width:360px}.pause-overlay h2{text-shadow:0 3px 20px #113529}.camp-jump{font-size:12px;background:transparent;margin-top:12px}.workshop{scroll-margin-top:20px}
.pause-overlay{inset:155px auto auto 50%;transform:translateX(-50%);width:min(390px,90%);padding:20px;backdrop-filter:none;border:1px solid #b4c78b80;border-radius:16px;background:#163a33f2;gap:10px}.pause-overlay h2{font-size:28px}.pause-overlay .primary{padding:9px 20px;min-height:44px}.pause-overlay p{font-size:12px}.battle-footer{z-index:2}.command-bar{z-index:2}.result-overlay{z-index:6}
.pack-numbers{display:flex;gap:7px;flex-wrap:wrap;margin-bottom:14px}.pack-numbers span{font-size:11px;color:var(--muted);background:#1c3937;border:1px solid #38584c;border-radius:7px;padding:6px 8px}.pack-numbers span b{color:var(--cream)}.support-stats{grid-column:1/-1;color:#bfd2b9;font-size:10px;margin-top:-5px}.support-stats:empty{display:none}
.camp-ready{display:flex;justify-content:flex-end;margin-top:20px}.camp-ready button{width:100%}.training-panel:focus-within{border-color:#8ba673}
.battle-banner{top:auto;bottom:195px;z-index:1}@media(max-width:700px){.battle-banner{top:auto;bottom:225px}}@media(max-height:550px) and (orientation:landscape){.battle-banner{top:102px;bottom:auto;font-size:11px;padding:5px 12px}}
.pause-overlay{top:210px}@media(max-width:700px){.pause-overlay{top:205px}}@media(max-height:550px) and (orientation:landscape){.pause-overlay{inset:108px auto auto 18px;transform:none;width:250px;padding:12px}.pause-overlay h2{font-size:20px}.pause-overlay p{font-size:10px}.pause-overlay .primary{font-size:13px;min-height:36px;padding:6px 10px}}
/* An evening in the orchard: quiet presentation, more decisions. */
.mast{gap:16px;flex-wrap:wrap}.tools{flex-wrap:wrap;justify-content:flex-end}.tactics-panel{grid-column:1/-1;padding:20px;border:1px solid var(--line);border-radius:14px;background:#173437}.tactics-panel>p{font-size:13px;color:var(--muted);margin:4px 0 14px}#tacticChoices{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.tactic-choice{display:flex;flex-direction:column;gap:7px;text-align:left;padding:16px}.tactic-choice strong{color:var(--gold)}.tactic-choice small{color:var(--muted);font-size:12px;line-height:1.5}.tactic-choice[aria-pressed=true],.mode-choices button[aria-pressed=true]{border-color:var(--gold);background:#344b3c;box-shadow:inset 0 0 0 1px #f3cc6855}.mode-choices{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:20px 0}.mode-choices button{display:grid;text-align:left;gap:7px;padding:14px}.mode-choices small,.small-note{font-size:12px;color:var(--muted)}.journal-counts{display:flex;justify-content:space-between;gap:12px;padding:15px 0;margin-bottom:10px;border-block:1px solid var(--line);font-size:12px}.journal-counts b{display:block;font:24px 'Fraunces',serif;color:var(--gold)}.sticker-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.sticker{display:grid;gap:5px;border:1px dashed #597368;border-radius:12px;padding:15px;background:#173234}.sticker>span{font:32px Georgia;color:#738e80}.sticker b{font-size:13px;color:var(--muted)}.sticker small{font-size:11px;color:var(--muted)}.sticker.collected{border:1px solid #d4bc73;background:#40503a}.sticker.collected>span,.sticker.collected b{color:#ffe3a0}.discovery-list{display:grid;grid-template-columns:1fr 1fr;gap:8px}.discovery-list span{font-size:12px;color:#91a89d}.discovery-list .found{color:#f3df9e}.journal-history-title{margin-top:22px}.history-row{display:grid;gap:4px;padding:14px 0;border-bottom:1px solid var(--line);font-size:12px}.history-row span,.history-row small{color:var(--muted)}.field-note{font-size:13px!important;line-height:1.6;color:#e4e9c8!important;margin:12px 0!important}.sticker-earned{padding:9px;border:1px solid #bcaa68;border-radius:8px;color:#ffe09a!important;font-size:12px!important}.result-card{max-height:calc(100vh - 30px);overflow:auto}
@media(max-width:700px){.mast{gap:12px}.tools{margin-left:0;justify-content:flex-start;width:100%;gap:5px}.tools button{padding:7px 10px;flex:1;white-space:nowrap}.tactics-panel{padding:17px}#tacticChoices{grid-template-columns:1fr}.tactic-choice{padding:12px}.tactics-panel .section-heading{flex-wrap:wrap}.mode-choices{grid-template-columns:1fr}.sticker{padding:12px}.journal-counts{font-size:11px}.result-card{padding:23px!important}.result-card h2{font-size:30px!important}}
/* Keep a paused battle visible while choosing a rescue. */
.pause-overlay{top:155px;width:330px;padding:10px 14px;gap:4px}.pause-overlay h2{font-size:18px}.pause-overlay p{font-size:11px}.pause-overlay .primary{padding:5px 14px;min-height:36px;font-size:12px}@media(max-width:700px){.pause-overlay{top:158px;width:280px}.pause-overlay h2{font-size:17px}}@media(max-height:550px) and (orientation:landscape){.pause-overlay{inset:98px auto auto 12px;width:240px}}

@media(min-width:701px) and (min-height:551px){.pause-overlay{left:25px;transform:none;width:250px;top:160px}}
/* Clear scouting and free per-pack battle plans. */
.scout-list{display:flex;flex-wrap:wrap;gap:10px;margin-top:18px}.scout-list>span{display:grid;gap:3px;padding:10px 13px;background:#112d30;border:1px solid #466253;border-radius:9px;flex:1;min-width:150px}.scout-list b{font-size:14px;color:#e5dcc1}.scout-list small{font-size:12px;color:var(--muted)}.training-pack-picker{display:flex;flex-wrap:wrap;gap:7px;margin:14px 0}.training-pack-picker button{display:flex;align-items:center;gap:6px;padding:7px 10px;font-size:13px}.training-pack-picker button[aria-pressed=true],.pack-orders button[aria-pressed=true]{border-color:var(--gold);background:#3b503f;color:#ffe1a0}.pack-orders{border-block:1px solid var(--line);padding:17px 0;margin-bottom:20px}.pack-orders p{font-size:13px;color:var(--muted);margin:6px 0 12px}.pack-orders>div{display:grid;gap:8px}.pack-orders button{text-align:left;display:grid;gap:4px;padding:12px}.pack-orders strong{font-size:14px}.pack-orders small{color:var(--muted);font-size:12px}.battle-controls button{font-size:13px}.shop-card small,.upgrade small,.upgrade>span{font-size:14px}.shop-card strong{font-size:15px}.pack-detail{font-size:15px}.command-bar b{font-size:14px}.command-bar small{font-size:12px}@media(max-width:700px){.battle-controls{max-width:225px}.battle-controls button{font-size:12px;min-height:36px;padding:6px 8px}.command-bar b{font-size:12px}.command-bar small{font-size:11px}.training-pack-picker button{flex:1;font-size:12px}.scout-list>span{min-width:130px}.shop-offers{grid-template-columns:1fr}.shop-card{display:grid;grid-template-columns:35px 1fr;text-align:left;gap:5px 10px}.shop-card small{grid-column:2}.shop-card>b{grid-column:2}.shop-card .shop-icon{grid-row:1/4}.shop-card strong{font-size:15px}.shop-card small{font-size:14px}}

.roster-chip.needs-care{border-color:#ffd18b;background:#64483b}.roster-chip.needs-care .pack-hp{background:#ffcb8d}.command-label{max-width:215px}.command-label span{line-height:1.35}@media(max-width:700px){.command-label{max-width:none}.command-label span{font-size:10px;max-width:65%;text-align:right}}

/* The long way home: legible chapter choices and ongoing progression. */
.chapter-node{display:grid;gap:3px;min-width:44px;padding:8px;background:transparent;color:var(--muted,#adc0ba);border:1px solid #55705e;border-radius:12px}.chapter-node span{font-size:20px}.chapter-node.current{color:#ffe7a2;background:#40594b;border-color:#e5c578}.chapter-node.done{color:#bfe9ae}.route-track{gap:6px}.next-guardian{display:grid;gap:8px;padding:17px 20px;margin-top:18px;border:1px solid #63735a;border-radius:14px;background:#31493a55}.next-guardian strong{font-size:20px}.next-guardian p{margin:0!important}.next-guardian button{justify-self:start}.treasure{text-align:left;width:100%;color:inherit}.treasure.stored{opacity:.65;border-style:dashed}.treasure.active{border-color:#82976c}.treasure:disabled{opacity:1}.loadout-note{font-size:12px;line-height:1.5}.mastery-choices,.trinket-choices{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:9px}.mastery-choices button,.trinket-choices button{display:grid;gap:9px;text-align:left;background:#253e37;padding:14px;line-height:1.4}.mastery-choices small,.trinket-choices small{font-size:12px;color:#c0d0bb}.mastery-choices span,.trinket-choices span{font-size:11px;color:#ead495}.trinket-choices [aria-pressed=true]{border-color:#edce81;background:#41503b}#masteryPanel{border-top:1px solid #56634c;padding-top:20px;margin-top:24px}#masteryPanel p{line-height:1.5;font-size:13px}.chapter-list{display:grid;gap:14px}.chapter-list section{border:1px solid #566e5e;padding:18px;border-radius:15px}.chapter-list .current{border-color:#e6c978;background:#3d513b}.chapter-list h3{margin:8px 0 12px}.chapter-list small{color:#cfddb8}.length-choices{margin-bottom:15px}.length-choices button{display:grid;gap:8px}.route-options{flex-wrap:wrap}.route-option{min-width:200px;flex:1}.route-option small{line-height:1.5}@media(max-width:650px){.mastery-choices,.trinket-choices{grid-template-columns:1fr}.chapter-node{min-width:36px;padding:6px}.route-options{display:grid;grid-template-columns:1fr}.route-option{min-width:0}.chapter-node span{font-size:16px}}

.dialog-close{position:sticky;top:0;float:right;z-index:5;background:#233e35;border:1px solid #a2b088;border-radius:50%;width:44px;height:44px;box-shadow:0 2px 10px #10251c77;margin:-14px -12px 0 8px}.mastery-choices button:disabled{opacity:.55}.next-guardian p{max-width:80ch}

.sprite.new-friend{background-image:url('./new-friends.png');background-size:200% 100%;background-repeat:no-repeat}#rosterControls{border:1px solid #66836a;background:#2d493d;padding:16px;margin:16px 0;border-radius:14px}#rosterControls p{font-size:14px;margin:10px 0}.reserve-swaps{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.reserve-swaps button{display:flex;align-items:center;gap:8px;text-align:left}#storedTreasures{margin-top:12px}#storedTreasures .treasure{margin-top:8px}@media(max-width:540px){.reserve-swaps{grid-template-columns:1fr}}

.trail-bargain{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:18px;margin-top:20px;border:1px solid #aebd85;border-radius:12px;background:#102b2d}.trail-bargain h3{font-size:21px;color:var(--gold);margin:5px 0}.trail-bargain small{display:block;color:var(--muted);font-size:12px;margin-top:8px}.trail-bargain button{flex-shrink:0}.trail-bargain button[aria-pressed=true]{background:#54784a;border-color:var(--gold)}.battle-bargain{font-size:12px;max-width:460px;color:#fff1ba;background:#19382ddd;padding:5px 8px;border-radius:6px;margin-top:5px}@media(max-width:700px){.trail-bargain{flex-direction:column;align-items:stretch}.battle-bargain{max-width:260px;font-size:10px}}

.workshop-disclosure{margin-top:24px;border:1px solid var(--line);border-radius:12px;padding:16px}.workshop-disclosure>summary{cursor:pointer;font-size:19px;font-weight:700;color:var(--gold);min-height:44px;padding:8px}.workshop-disclosure>summary span{font-size:13px;color:var(--muted);margin-left:15px;font-weight:400}.workshop-disclosure .workshop{margin-top:16px}

#battleScreen[data-bargain=true] .fight-meters{top:158px}@media(max-width:700px){#battleScreen[data-bargain=true] .fight-meters{top:185px}}@media(max-height:550px) and (orientation:landscape){#battleScreen[data-bargain=true] .fight-meters{top:120px}.battle-bargain{font-size:10px;max-width:350px}}

#guideSearch{width:100%;background:#102b2d;color:var(--cream);border:1px solid #809786;border-radius:8px;padding:12px;font:inherit;margin:8px 0}.guide-filters{display:flex;flex-wrap:wrap;gap:6px}.guide-filters [aria-pressed=true]{border-color:var(--gold);background:#36533f}.guide-entry{border:1px solid var(--line);border-radius:9px;margin:9px 0;padding:12px}.guide-entry summary{cursor:pointer;display:flex;gap:12px;align-items:center;min-height:32px}.guide-entry summary small{font-size:10px;color:var(--muted);text-transform:uppercase;min-width:64px}.guide-entry summary strong{color:var(--gold)}.guide-entry section{border-top:1px solid var(--line);padding-top:10px;margin-top:10px}.guide-entry p{font-size:14px}#packDetail button{font-size:12px;margin-top:8px}

.collection-medals{border-top:1px solid var(--line);padding-top:16px;margin-top:16px}.collection-medals summary{cursor:pointer;color:var(--gold);font-weight:700}.collection-medals h3{margin:16px 0 8px}.medal-row,.medal-head{display:grid;grid-template-columns:1fr 65px 65px;gap:8px;align-items:center;padding:6px 0;font-size:12px;border-bottom:1px solid #36565455}.medal-row .medal,.medal-head span{text-align:center}.rank-1{color:#e5ad83}.rank-2{color:#d4e4ee}.rank-3{color:var(--gold);font-weight:900}.rank-0{color:#8ba99b}
#battleScreen[data-bargain=true] .pause-overlay{top:220px}@media(max-width:700px){#battleScreen[data-bargain=true] .pause-overlay{top:225px}}@media(max-height:550px) and (orientation:landscape){#battleScreen[data-bargain=true] .pause-overlay{top:158px}}
.guide-entry summary::after{content:'+';margin-left:auto;color:var(--muted);font-size:20px}.guide-entry[open] summary::after{content:'−'}

.medal-row,.medal-head{grid-template-columns:minmax(90px,1fr) repeat(3,55px);gap:5px}.result-stats{flex-wrap:wrap}.result-stats span{max-width:120px;display:block}

.branch-comparison{display:block;margin-bottom:10px}.branch-comparison b{display:block;color:var(--cream,#f4edd8);font-size:inherit}

#customCrew{margin-top:20px;padding:18px;border:1px solid #63816b;border-radius:12px}#customCrew summary{cursor:pointer;font-weight:700;color:#f1d284}.crew-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.crew-tile{display:flex;flex-direction:column;gap:5px;min-width:0}.crew-tile>[data-crew]{display:flex;flex-direction:column;align-items:center;gap:7px;padding:12px;flex:1}.crew-tile button[aria-pressed=true]{border-color:#f1d284;background:#395a43}.crew-tile small{font-size:10px;letter-spacing:1px}.crew-lead{font-size:12px;padding:8px}.crew-preview{font-weight:700;color:#f1d284}@media(max-width:550px){.crew-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}

.sprite.song-friend{background-image:url('./humbun.png');background-size:contain;background-position:center;background-repeat:no-repeat}

.pack-numbers .song-summary{flex-basis:100%;color:#ffd5f7}

@media(max-width:700px) and (min-height:551px){
 .battle-hud{display:block}
 .battle-title h1{max-width:none}
 .battle-controls{max-width:none;margin-top:10px;justify-content:flex-start}
 #battleScreen .fight-meters,#battleScreen[data-bargain=true] .fight-meters{top:calc(var(--battle-hud-height,150px) + 4px)}
 #battleScreen .pause-overlay,#battleScreen[data-bargain=true] .pause-overlay{top:calc(var(--battle-hud-height,150px) + 112px)}
}

@media(max-width:380px) and (min-height:551px){.battle-controls button{font-size:11px}}

.camp-plans{grid-column:1/-1;padding:18px;border:1px solid #698363;border-radius:14px;background:#173a32}.camp-plans summary{cursor:pointer;font-weight:700;color:var(--gold)}.camp-plans p{font-size:13px;color:var(--muted);margin:12px 0}.camp-plans ul{padding-left:20px;font-size:13px;line-height:1.7}#campPlanCards{display:grid;grid-template-columns:1fr 1fr;gap:16px}#campPlanCards section{padding:14px;border:1px solid #6a856c;border-radius:10px;min-width:0}#campPlanCards button{margin:4px 4px 0 0;font-size:12px}@media(max-width:650px){#campPlanCards{grid-template-columns:1fr}}

#campEvolution:not(:empty){margin:18px 0;padding:16px;border:1px solid var(--line);border-radius:12px}#campEvolution>p{margin:8px 0 12px;color:var(--muted);font-size:13px}#campEvolution button:disabled{opacity:1;border-style:dashed}#campEvolution button:disabled small{color:var(--muted)}

/* A short stop between fights; the full workshop is one choice away. */
.camp-next-actions{display:flex;gap:18px;align-items:center;flex-wrap:wrap;margin-top:16px}.camp-next-actions span{font-size:12px;color:var(--muted)}.next-guardian{padding:0 16px;gap:0;margin-top:12px}.next-guardian>summary{color:#dfddb6;font-weight:700}.next-guardian>div{display:grid;gap:8px;padding-bottom:15px}.completed-choice{margin:0}.completed-choice summary{color:#e8d498}.with-rewards{justify-content:flex-start;padding:24px}.with-rewards .result-card{width:min(1160px,100%);margin:auto;padding:24px}.with-rewards .result-card h2{font-size:32px;margin:5px 0 8px}.with-rewards .choices,.with-rewards .choices:has(> :nth-child(4)){grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-top:18px}.with-rewards .choice{min-height:205px;padding:16px 14px;gap:7px}.with-rewards .choice .portrait,.with-rewards .choice-icon{width:52px;height:52px;font-size:36px}.with-rewards .choice strong{font-size:23px}.battle-recap{margin:4px 0;text-align:left}.battle-recap>summary{text-align:center;padding:6px 0;min-height:34px}.with-rewards .field-note{margin:8px 0}.with-rewards .result-stats{margin:12px 0}
@media(max-width:700px){.with-rewards{padding:12px}.with-rewards .result-card{padding:18px}.with-rewards .choices,.with-rewards .choices:has(> :nth-child(4)){grid-template-columns:1fr}.with-rewards .choice{min-height:0;padding:14px}.with-rewards .choice strong{font-size:22px}.with-rewards .result-card h2{font-size:29px}.camp-next-actions{gap:8px}.camp-next-actions>button{width:100%}}

@media(min-width:1100px){.with-rewards .choices:has(> :nth-child(5)){grid-template-columns:repeat(5,minmax(0,1fr))}.with-rewards .choice{min-height:275px}.with-rewards .choice small{font-size:13px}.with-rewards .choice strong{font-size:22px}}

/* Let the crew be the interface. Detailed planning is an optional stop. */
.camp-menu{position:relative;margin-left:auto}.camp-menu>summary{padding:10px 16px;cursor:pointer;color:var(--cream);border:1px solid var(--line);border-radius:20px;list-style:none}.camp-menu .tools{position:absolute;right:0;top:48px;z-index:5;display:grid;grid-template-columns:1fr 1fr;width:310px;padding:12px;background:#173a32;border:1px solid var(--line);border-radius:14px;box-shadow:0 12px 30px #061d2b55}.camp-menu:not([open]) .tools{display:none}.camp-heading{padding:22px 0}.camp-heading h1{font-size:30px}.camp-heading .route-track{display:none}.camp-friends{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin:26px 0}.camp-friends>button{display:flex;flex-direction:column;align-items:center;gap:5px;text-align:center;padding:16px 10px;background:#173b3322;border:1px solid #b6c29b40;min-width:0}.camp-friends .portrait{width:100px;height:100px;background-color:transparent;border:none;box-shadow:none}.camp-friends strong{font:22px 'Fraunces',serif;color:var(--cream)}.camp-friends span:not(.portrait){color:var(--gold);font-weight:700}.camp-friends small{color:var(--muted);font-size:12px;max-width:180px;line-height:1.4}.camp-friends:has(> :last-child:nth-child(2)){grid-template-columns:repeat(2,minmax(0,1fr));max-width:560px;margin-left:auto;margin-right:auto}.trail-details>summary{cursor:pointer;padding:12px 0;color:var(--muted);font-size:14px}.camp-next-actions{border-top:1px solid var(--line);padding-top:15px;justify-content:space-between}.decision .decision-top p{max-width:700px;font-size:15px}.decision .decision-top h2{font-size:32px}.pause-settings{display:flex;flex-wrap:wrap;gap:6px;justify-content:center;margin:16px 0}.pause-settings button{font-size:12px;padding:8px}.battle-hud{padding:18px 24px;background:linear-gradient(#17352d99,transparent)}.battle-title h1{font-size:24px}.battle-title .eyebrow{font-size:10px}.fight-meters>div:first-child{display:none}.fight-meters{top:82px;left:auto;right:24px;width:250px}.fight-meters .enemy-meter{width:100%;font-size:11px}.combo-meter{display:none}.battle-footer{background:linear-gradient(transparent,#14363199)}.battle-roster{gap:8px}.roster-chip .mini-portrait{width:40px;height:40px}.roster-chip{border-radius:14px;background:#193e34d9;padding:6px 10px}.roster-chip span{font-size:11px}.command-label small{display:none}.command-bar small{display:none}.command-bar{gap:8px}.command-bar button{padding:12px}.command-label{font-size:12px}.pause-overlay{width:min(440px,calc(100% - 32px));left:50%;transform:translateX(-50%);z-index:4}.with-rewards .result-card{width:min(920px,100%);padding:26px}.with-rewards .choice{min-height:250px;padding:20px;gap:12px}.with-rewards .choices:has(> :last-child:nth-child(2)){grid-template-columns:repeat(2,minmax(0,1fr))}.with-rewards .choice .portrait{width:88px;height:88px;background-color:transparent;border:none;box-shadow:none}.with-rewards .choice .choice-icon{width:88px;height:88px;font-size:52px}.with-rewards .choice strong{font-size:26px}.reward-change{display:block;font-size:18px;color:#fff0b1;line-height:1.5;margin-bottom:8px}.reward-change b{font-weight:700}.with-rewards .choice small{font-size:14px;line-height:1.5}.with-rewards .battle-recap{margin-top:10px}.with-rewards .result-card h2{font-size:32px}.with-rewards .result-card>p{font-size:14px}.battle-recap .field-note{margin:10px 0}.with-rewards .choices:has(> :nth-child(5)){grid-template-columns:repeat(3,minmax(0,1fr))}
@media(max-width:700px){.camp-menu .tools{max-width:calc(100vw - 32px)}.camp-friends,.camp-friends:has(> :last-child:nth-child(2)){grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.camp-friends .portrait{width:86px;height:86px}.camp-friends strong{font-size:19px}.camp-friends small{font-size:11px}.camp-heading{gap:12px}.camp-heading h1{font-size:25px}.camp-heading .supplies{margin-left:auto}.camp-heading .berry-wallet .eyebrow,.camp-heading .supplies .eyebrow{display:none}.berry-wallet small{display:none}.decision{padding:20px}.decision .decision-top h2{font-size:27px}.with-rewards .choices,.with-rewards .choices:has(> :last-child:nth-child(2)),.with-rewards .choices:has(> :nth-child(5)){grid-template-columns:1fr}.with-rewards .choice{min-height:0;padding:14px;grid-template-columns:72px 1fr;gap:6px 12px}.with-rewards .choice .portrait,.with-rewards .choice .choice-icon{width:70px;height:70px}.with-rewards .choice strong{font-size:22px}.with-rewards .choice small{font-size:13px}.reward-change{font-size:17px;margin-bottom:4px}.with-rewards .result-card{padding:18px}.battle-hud{display:flex;padding:14px}.battle-controls{margin-top:0;flex-wrap:nowrap}.battle-title h1{font-size:19px;max-width:210px}.battle-title .eyebrow{font-size:9px}.fight-meters,#battleScreen .fight-meters,#battleScreen[data-bargain=true] .fight-meters{top:calc(var(--battle-hud-height,80px) + 2px);right:14px;left:auto;width:190px}.roster-chip .mini-portrait{width:32px;height:32px}.roster-chip span{font-size:10px}.roster-chip{padding:4px 7px}.command-bar{padding:10px;gap:6px}.command-bar button{padding:9px 5px}.command-bar b{font-size:12px}.command-label{font-size:10px}.command-label strong{font-size:12px}#battleClock{display:none}#battleScreen .pause-overlay,#battleScreen[data-bargain=true] .pause-overlay{top:calc(var(--battle-hud-height,80px) + 54px)}}

.command-bar button small{display:block;font-size:11px;line-height:1.3;margin-top:3px;color:#c4d5b9}.command-bar button{padding:10px 12px}.camp-friends small{min-height:34px}@media(max-width:700px){.command-bar button small{font-size:10px}.command-bar button{padding:9px 5px}}

#camp:is([data-phase=prepare],[data-phase=retry]) .camp-heading>div:first-child,#camp[data-phase=reward] .camp-heading{display:none}#camp:is([data-phase=prepare],[data-phase=retry]) .camp-heading{justify-content:flex-end;gap:28px;padding:14px 0}#camp:is([data-phase=prepare],[data-phase=retry]) .berry-wallet .eyebrow,#camp:is([data-phase=prepare],[data-phase=retry]) .supplies .eyebrow{display:none}#camp:is([data-phase=prepare],[data-phase=retry]) .berry-wallet small{display:none}#camp:is([data-phase=prepare],[data-phase=retry]) .berry-wallet strong,#camp:is([data-phase=prepare],[data-phase=retry]) .supplies strong{font-size:22px}#camp:is([data-phase=prepare],[data-phase=retry]) .decision{padding-top:24px}.decision .choices .portrait{background-color:transparent;border:none;box-shadow:none}.decision .choices{margin-top:20px}.decision .reward-change{margin-bottom:8px}

@media(min-width:701px){.camp-friends:has(> :last-child:nth-child(3)){grid-template-columns:repeat(3,minmax(0,1fr))}}
/* A camp is a decision; shopping is a separate stop. */
.camp-next-actions{flex-wrap:wrap;gap:12px}.camp-next-actions .next-cart{font-size:13px;color:var(--muted)}
.camp-friends>button{position:relative}.buddy-line{display:flex;justify-content:center;align-items:center;flex-wrap:wrap;gap:0;min-height:30px}.buddy{display:inline-block;width:30px;height:30px;flex:0 0 30px}.buddy-line .sprite{background-size:300% 200%}.buddy-line .new-friend{background-size:200% 100%}.buddy-line .song-friend{background-size:contain;background-position:center;background-repeat:no-repeat}
.keepsake-art{display:inline-block;width:86px;height:86px}.keepsake-art svg,.keepsake-badge svg{width:100%;height:100%}.keepsake-badge{position:absolute;width:40px;height:40px;top:15px;right:15px;background:#eef0d6;border-radius:50%;padding:3px}
.camp-dialog{width:min(920px,calc(100vw - 32px));max-width:920px;padding:30px}.camp-dialog #modalContent{min-height:340px}.camp-tabs{display:flex;gap:8px;border-bottom:1px solid #68897950;padding-bottom:12px;margin:20px 0}.camp-tabs button{flex:1}.camp-tabs button[aria-pressed=true],.family-picker button[aria-pressed=true],.formation-place[aria-pressed=true]{border-color:#e9cc7e;background:#e9cc7e17}
.camp-tab-content h3{margin:22px 0 10px}.family-picker{display:flex;gap:8px;flex-wrap:wrap}.family-picker button{display:flex;align-items:center;gap:5px;padding:7px 10px;font-size:12px}.family-picker .mini-portrait{width:30px;height:30px}.team-profile{display:flex;align-items:center;gap:18px;margin:20px 0}.team-profile>.portrait{width:110px;height:110px;flex:0 0 110px}.team-profile .buddy-line{justify-content:flex-start}.team-profile p{margin:6px 0}.team-profile h3{margin:0}.formation-heading{display:flex;justify-content:space-between;align-items:center;gap:8px;max-width:600px}.formation-heading small{font-size:11px;font-weight:400;color:var(--muted)}.formation-board{display:grid;grid-template-columns:48px repeat(2,minmax(0,1fr));gap:8px;align-items:stretch;margin-top:14px;max-width:600px}.formation-board>b{text-align:center;color:var(--muted);font-size:13px}.formation-lane{align-self:center;color:var(--muted);font-size:12px}.formation-place{display:flex;align-items:center;flex-direction:column;justify-content:center;gap:3px;min-width:0;padding:9px 6px;min-height:108px}.formation-place .mini-portrait{width:44px;height:44px}.formation-place strong{font-size:12px;overflow-wrap:anywhere}.formation-place small{font-size:11px;color:var(--muted)}.formation-place.empty{border-style:dashed;background:transparent}.formation-place.empty>span{font-size:24px;line-height:1.3;color:var(--muted)}.keepsake-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.keepsake-card{display:flex;flex-direction:column;align-items:center;text-align:center;gap:9px;padding:18px}.keepsake-card small{line-height:1.5}.keepsake-card[aria-pressed=true]{border-color:#e9cc7e}.cart-heading{display:flex;justify-content:space-between;gap:12px;align-items:center}.cart-heading>strong{font-size:26px;color:#e9cc7e}.cart-heading h2{margin:0}.cart-stock{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-top:18px}.cart-growth{margin:18px 0}.cart-growth small{display:block;margin-top:6px}.replacement-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:12px}.replacement-grid button{display:flex;flex-direction:column;gap:8px;padding:16px;text-align:left}.camp-tab-content>.shop-offers{grid-template-columns:repeat(3,1fr)}.camp-tab-content .camp-extras{margin:15px 0}.camp-dialog #closeModal{margin-top:22px;width:100%}.camp-dialog .loadout-note{display:none}
/* Quiet running battle; instructions remain available while paused or on hover. */
.command-label>small,.battle-bargain,.combo-meter,#battleBanner{display:none!important}.battle-title h1{font-size:22px}.boss-warning{font-size:19px;letter-spacing:.02em}.battle-title .eyebrow{font-size:11px}.intro>span,.intro>small{display:none}.battle-roster .roster-chip>span{font-size:0}.battle-roster .roster-chip>span>b{font-size:14px}.command-bar{min-height:unset}.fight-meters span{font-size:12px}
@media(max-width:650px){.camp-dialog{padding:20px 14px;width:calc(100vw - 16px)}.camp-tabs{gap:5px}.camp-tabs button{font-size:12px;padding:9px 5px}.camp-tab-content>.shop-offers,.keepsake-grid,.replacement-grid{grid-template-columns:1fr}.team-profile>.portrait{width:78px;height:78px;flex-basis:78px}.buddy{width:24px;height:24px;flex-basis:24px}.cart-heading>strong{font-size:21px}.battle-title h1{font-size:17px}.command-bar button b{font-size:12px}}
.team-orders{margin:18px 0}.team-orders summary{cursor:pointer;padding:14px;background:#233f3f;border-radius:10px}.team-orders .pack-orders button{display:grid;text-align:left;gap:6px}.cart-departure{font-size:13px;color:var(--muted);margin-top:24px}.camp-tab-content .loadout-note{display:none}
/* Focused equipment decisions; the shop keeps its place after purchases. */
.camp-feedback{padding:12px 16px;background:#29494a;border:1px solid #91b9a7;border-radius:12px;color:#e4eedc;font-size:14px;outline-offset:4px}.gear-award{display:flex;align-items:center;gap:20px;margin:0 0 24px}.gear-award .keepsake-art{width:112px;height:112px;flex:0 0 112px}.gear-award h2{margin:4px 0 8px}.gear-award p{margin:0}.gear-recipients{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.gear-recipients>button{display:flex;flex-direction:column;align-items:center;gap:9px;padding:22px;text-align:center}.gear-recipients .portrait{width:100px;height:100px}.gear-recipients>button>small{font-size:14px;line-height:1.4}.gear-stats{display:flex;justify-content:center;gap:14px;width:100%;border-top:1px solid #68897950;padding-top:12px}.gear-stats>span{display:flex;flex-direction:column;gap:5px}.gear-stats small{font-size:12px;color:var(--muted)}.gear-stats b{font-size:15px}.family-picker button,.camp-tabs button{font-size:14px}.camp-tab-content details{margin-top:16px}.camp-tab-content summary{cursor:pointer;padding:12px 0}.team-profile small{font-size:13px;line-height:1.45}
@media(max-width:650px){.gear-award{gap:12px;align-items:flex-start}.gear-award .keepsake-art{width:72px;height:72px;flex-basis:72px}.gear-award h2{font-size:24px}.gear-recipients{grid-template-columns:1fr}.gear-recipients>button{padding:18px}.gear-stats{gap:16px}.camp-tabs{flex-wrap:wrap}.camp-tabs button{flex:1 1 40%;font-size:14px}.family-picker button{font-size:14px}}

.camp-feedback{position:sticky;top:0;z-index:3;box-shadow:0 6px 16px #10262980}
.gear-stats{flex-wrap:wrap}.gear-effect{color:#b8e0cd}.gear-loss{color:#e1b9a5}
.camp-dialog:has(.gear-award) #closeModal{background:transparent;border-color:#688979;color:var(--cream);box-shadow:none}.gear-recipients>button:hover,.replacement-grid>button:hover{border-color:#e9cc7e;background:#e9cc7e0c}
.role-stats{display:block;padding-top:10px;margin-top:10px;border-top:1px solid #68897950;font-size:14px;color:#e7d5a0}.choice .branch-comparison{margin-bottom:8px}.choice .small-note{display:block;margin-top:10px;font-size:12px;color:var(--muted)}
.sprite.evolved-friend{background-image:url('./evolutions.png');background-repeat:no-repeat}.training-comparison{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-top:12px}.training-comparison>button,.current-training{display:flex;flex-direction:column;gap:9px;padding:16px;border:1px solid var(--line);border-radius:10px;text-align:left}.training-comparison small{font-size:14px;line-height:1.5}.current-training{background:#25443d}.current-training span{font-size:12px;color:var(--muted)}
@media(max-width:650px){.training-comparison{grid-template-columns:1fr}}

#battleScreen .pause-overlay,#battleScreen[data-bargain=true] .pause-overlay{left:50%;right:auto;top:16px;transform:translateX(-50%);width:270px;padding:14px;display:flex;flex-direction:row;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:8px;text-align:left}.pause-overlay h2{font-size:20px}.pause-options{margin:0;pointer-events:auto}.pause-options>summary{cursor:pointer;font-size:13px;color:var(--muted);padding:4px}.pause-options[open]{flex-basis:100%}.pause-options .pause-settings{justify-content:flex-start;margin:10px 0 0}.pause-overlay p{order:3;flex-basis:100%;margin-top:4px;line-height:1.5}
@media(max-width:999px){#battleScreen .pause-overlay,#battleScreen[data-bargain=true] .pause-overlay{left:14px;top:calc(var(--battle-hud-height,80px) + 52px);transform:none;width:min(270px,calc(100% - 28px));padding:12px}}

.roster-chip.pod-threatened{border-color:#ffbc72;box-shadow:inset 0 0 0 1px #ffbc72}.battle-roster .roster-chip .pod-risk{position:relative;align-self:flex-start;margin-left:3px;font:700 11px system-ui;background:#563d2d;color:#ffe7bd;border:1px solid #ffbc72;border-radius:7px;padding:2px 5px;z-index:1}

@media(min-width:1000px){}
@media(max-width:700px){.battle-roster .roster-chip{display:grid;grid-template-columns:28px minmax(0,1fr);justify-content:center;align-content:center;align-items:center;gap:3px;padding:4px;min-height:64px}.battle-roster .roster-chip .mini-portrait{width:28px;height:28px}.battle-roster .roster-chip>span{min-width:0}.battle-roster .roster-chip>span>b{font-size:11px;white-space:nowrap;margin:0}.battle-roster .roster-chip .pod-risk{grid-column:1/-1;margin:0;padding:1px 3px;font-size:10px;text-align:center}.command-bar{bottom:98px}}
@media(max-width:380px){.battle-roster .roster-chip{grid-template-columns:24px minmax(0,1fr)}.battle-roster .roster-chip .mini-portrait{width:24px;height:24px}.battle-roster .roster-chip>span>b{font-size:10px}}

@media(max-width:999px){}

/* Show only values changed by the proposed training. */
.upgrade-changes{display:grid;gap:6px;width:100%;text-align:left}.upgrade-changes>span{display:flex;justify-content:space-between;align-items:baseline;gap:14px}.upgrade-changes small{font-size:12px;color:var(--muted)}.upgrade-changes b{font-size:14px;white-space:nowrap;color:var(--cream)}.upgrade-note{display:block;font-size:12px;line-height:1.4;color:var(--muted)}.upgrade-price{font-size:13px;color:#efbadb}.camp-tab-content .upgrade-rule{font-size:13px;margin:0 0 12px}.camp-tab-content .mastery-choices small{font-size:13px}.camp-tab-content .mastery-choices small b{display:block;color:var(--cream);font-size:15px;margin-top:3px}.camp-tab-content .training-choices>.upgrade{gap:12px}.camp-tab-content .training-comparison>.current-training{justify-content:center}.camp-tab-content .training-comparison>button{gap:12px}
@media(max-width:650px){.upgrade-changes>span{gap:8px}.upgrade-changes b{font-size:13px}.camp-tab-content .training-comparison{gap:8px}.camp-tab-content .training-comparison>.current-training{padding:12px}.camp-tab-content .training-comparison>.current-training small{font-size:12px}}
.extra small.availability-note{color:#efcf91;margin-top:4px}

.respec-ranks{display:flex;gap:8px;flex-wrap:wrap;border-bottom:1px solid var(--line);padding-bottom:9px}.respec-ranks>span{display:flex;gap:4px;font-size:11px;color:var(--muted)}.respec-ranks b{color:var(--cream);white-space:nowrap}.mastery-choices .upgrade-changes small{font-size:11px}.mastery-choices .upgrade-changes small b{display:inline;margin:0}.respec .mastery-choices>button{gap:12px}.beneficiary-note{display:block;color:#efcf91!important;font-size:12px!important;line-height:1.4}.shop-card .beneficiary-note{margin-top:0}.replacement-grid .beneficiary-note{min-height:0}.gear-award .beneficiary-note{margin-top:8px}

.team-treasures,.team-treasures .stored-treasure-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.team-treasures>details,.team-treasures>p{grid-column:1/-1}.team-treasures .treasure{max-width:none;min-width:0;display:grid;grid-template-columns:28px minmax(0,1fr);align-items:start;padding:14px;gap:10px}.team-treasures .treasure-icon{line-height:1.2}.team-treasures .treasure small{margin-top:5px}.team-treasures .treasure.stored{opacity:1}.team-treasures .stored-treasure-grid{margin-top:10px}
@media(max-width:850px){.team-treasures,.team-treasures .stored-treasure-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:650px){.team-treasures,.team-treasures .stored-treasure-grid{grid-template-columns:1fr}}

.extra>.mini-portrait{flex:0 0 40px;width:40px;height:40px}

/* Give short portrait displays an actual arena between the controls. */
@media(max-width:700px) and (max-height:600px) and (orientation:portrait){
 .battle-hud{padding:8px 10px}.battle-title .eyebrow{display:none}.battle-title h1{font-size:16px}.battle-controls button{padding:6px 9px}
 .command-bar{bottom:94px;padding:8px;gap:4px}.command-bar button{min-height:44px;padding:6px 3px}.command-bar button b{font-size:11px}.command-bar kbd{display:none}
}

@media(max-width:700px){.battle-roster{max-width:none}}
@media(max-width:700px) and (max-height:600px) and (orientation:portrait){
 #battleScreen .pause-overlay,#battleScreen[data-bargain=true] .pause-overlay{top:calc(var(--battle-hud-height,52px) + 36px);width:100px;padding:4px 6px;gap:0}
 .pause-overlay h2{display:none}.pause-options>summary{font-size:11px;padding:2px}
 #battleScreen .pause-overlay:has(.pause-options[open]){width:min(270px,calc(100% - 28px))}
}

/* Preview the next fight before choosing a reward; detail stays optional. */
.reward-scout{margin:6px 0 0;text-align:left;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.reward-scout>summary{cursor:pointer;padding:10px 4px;min-height:44px;font-size:14px;color:var(--cream)}
.reward-scout>summary span{color:var(--gold);white-space:nowrap}
.reward-scout-body{padding:0 4px 12px}
.reward-scout-body>p{color:var(--muted);font-size:13px;margin:4px 0 8px;line-height:1.5}
.reward-scout .scout-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));margin:8px 0 0;text-align:left}
.reward-scout .scout-list>span{min-width:0}
.reward-scout+.choices{margin-top:14px}
@media(max-width:700px){.reward-scout .scout-list{grid-template-columns:1fr}}

.growth-picker{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.growth-picker button{min-width:0;text-align:left;align-items:center;padding:10px;gap:9px}.growth-picker-info{display:grid;gap:5px;min-width:0;flex:1}.growth-picker-title{display:flex;flex-wrap:wrap;gap:3px 8px;align-items:center;justify-content:space-between}.growth-picker-title strong{font-size:14px}.growth-picker-title b{font-size:12px;color:var(--gold);white-space:nowrap}.growth-picker-info small{font-size:12px;line-height:1.4;color:var(--muted)}.growth-picker .mini-portrait{flex:0 0 30px}@media(min-width:800px){.growth-picker{grid-template-columns:repeat(4,minmax(0,1fr))}}@media(max-width:400px){.growth-picker button{padding:8px;gap:6px}.growth-picker .mini-portrait{width:24px;height:24px;flex-basis:24px}.growth-picker-title strong{font-size:12px}.growth-picker-info small{font-size:11px}}

/* Attack warnings identify families without covering battlefield faces. */
.battle-roster .roster-portrait{display:block;position:relative;flex:none;line-height:0}
.roster-portrait .mini-portrait{display:block}
.archer-risk{position:absolute;inset:0;width:100%;height:100%;overflow:visible;pointer-events:none;filter:drop-shadow(0 0 1px #493d33)}
.archer-risk circle{fill:none;stroke:#ffe0a3;stroke-width:3;stroke-dasharray:100;transform:rotate(-90deg);transform-origin:center;stroke-linecap:round}
.roster-chip.archer-threatened{box-shadow:inset 0 0 0 2px #ffe0a3;border-color:#ffe0a3}

.cart-mastery{margin:18px 0}.cart-mastery>summary{line-height:1.5}.cart-mastery .mastery-choices{margin:12px 0}.cart-mastery .section-heading{margin-bottom:4px}

.cart-profile>.portrait{width:64px;height:64px;flex:0 0 64px}.cart-profile{gap:12px;margin:16px 0}.cart-heading>strong{white-space:nowrap;flex-shrink:0}

/* Replacement choices show the item being stored, with advice only where needed. */
.replacement-grid .replacement-choice{display:grid;grid-template-columns:28px minmax(0,1fr);align-items:start;gap:10px;padding:14px}
.replacement-choice .shop-icon{font-size:24px;line-height:1.2}
.replacement-info{display:grid;gap:7px;min-width:0}
.replacement-info small{line-height:1.45}

.healing-heart{position:absolute;right:-3px;bottom:-3px;z-index:2;width:17px;height:17px;border-radius:50%;background:#163d31;color:#b8f0c6;border:1px solid #b8f0c6;font:bold 13px/15px Georgia;text-align:center;pointer-events:none}
.healing-heart[hidden]{display:none}

/* Optional guardian preparation: one owned item and its actual tradeoff. */
.scout-gear{border-top:1px solid var(--line);margin-top:18px;padding-top:16px}.scout-gear h3{font-size:17px;margin:0 0 12px}.scout-gear-selects{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.scout-gear-selects label{display:flex;flex-direction:column;gap:6px;font-size:13px;color:var(--muted)}.scout-gear select{width:100%;min-width:0;min-height:44px;padding:9px;border:1px solid var(--line);border-radius:9px;background:var(--panel,#203635);color:var(--cream);font:inherit}.scout-gear select:focus-visible{outline:2px solid #b8e0cd;outline-offset:3px}.scout-gear-preview{display:flex;align-items:flex-start;gap:12px}.scout-gear-preview>.keepsake-art{width:56px;height:56px;flex:0 0 56px}.scout-gear-preview>div{flex:1;min-width:0;display:grid;gap:8px}.scout-gear-preview small,.scout-gear-donor>small{display:block;font-size:13px;line-height:1.45}.scout-gear .gear-stats{justify-content:flex-start;padding-top:8px}.scout-gear-donor{display:grid;gap:6px;margin-top:16px;padding:12px;border:1px solid #e1b9a560;border-radius:9px}.scout-gear-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:14px}.scout-gear-status{color:#b8e0cd;font-size:13px;line-height:1.4;outline-offset:4px}.scout-gear-status:empty{display:none}@media(max-width:450px){.scout-gear-selects{grid-template-columns:1fr;gap:10px}.scout-gear-actions>button{width:100%}}

.guardian-mechanics{max-width:76ch;font-size:14px;line-height:1.6;color:var(--muted);margin:12px 0 18px}

.inactive-treasure{color:#efcf91;font-size:12px;line-height:1.45}
.retained-note{font-size:12px;line-height:1.4}.retained-note.loss{color:#e1b9a5}.retained-note.restore{color:#b8e0cd}

/* Keep the marked ground visible while choosing a phone battle response. */
@media(max-width:700px) and (min-height:601px) and (orientation:portrait){
 #battleScreen .pause-overlay,#battleScreen[data-bargain=true] .pause-overlay{top:calc(var(--battle-hud-height,80px) + 36px);padding:6px 10px;gap:8px}
 #battleScreen .pause-overlay h2{font-size:16px;margin:0}
 #battleScreen .pause-options>summary{padding:2px 4px}
}

/* A compact phone selector leaves room for the purchase being considered. */
.cart-family-select{display:none}
@media(max-width:500px){
 .cart-family-select{display:grid;gap:6px;color:var(--muted);font-size:12px}
 .cart-family-select select{width:100%;min-width:0;min-height:44px;padding:9px 8px;border:1px solid var(--line);border-radius:9px;background:#203635;color:var(--cream);font:inherit;font-size:13px}
 .cart-family-select select:focus-visible{outline:2px solid var(--gold);outline-offset:3px}
 .camp-tab-content>.growth-picker{display:none}
 .cart-profile p{font-size:13px;line-height:1.4}
 .cart-profile h3{font-size:16px}
}

/* A garden's payoff belongs to the camp where it is collected. */
.garden-harvest{display:flex;flex-wrap:wrap;gap:5px;align-items:center;margin:0 0 18px;padding:10px 14px;border:1px solid #b8e0cd60;border-radius:10px;background:#b8e0cd0a;color:#b8e0cd;font-size:14px}
.garden-harvest strong{color:var(--gold)}

/* Reward completion and optional cart entry share one clear camp landing. */
.camp-reward-receipt{margin:0 0 18px;padding:10px 14px;border-left:3px solid var(--gold);background:#f3cc6808;color:var(--cream)!important;font-size:14px!important}
.camp-decision-actions{display:grid;gap:8px;flex:0 0 auto;min-width:230px}.camp-decision-actions>small{max-width:270px;color:var(--muted);font-size:12px;text-align:center}.camp-decision-actions>.secondary{font-size:14px;border-color:#91b9a7;color:#dfecd4;font-weight:700}
@media(max-width:700px){.camp-decision-actions{width:100%;min-width:0}.camp-decision-actions>button{width:100%}.camp-decision-actions>small{max-width:none}}

/* Compare a resting family with the traveling family it replaces. */
.reserve-swaps button{align-items:flex-start}.reserve-swaps button>.mini-portrait{flex:0 0 40px}.reserve-swaps button>span{display:grid;gap:5px;min-width:0}.reserve-swaps button strong{font-size:13px;line-height:1.35}.reserve-swaps button small{font-size:12px;line-height:1.4;color:var(--muted)}.reserve-swaps .swap-total{font-size:12px;font-weight:600;color:var(--cream)}.swap-incoming{display:flex;align-items:center;gap:10px;margin:15px 0}.swap-incoming>div{display:grid;gap:5px}.swap-incoming small{font-size:12px;line-height:1.4;color:var(--muted)}

/* Keep cart choices and their prices together on a small screen. */
@media(max-width:650px){
 .camp-tabs[aria-label="Cart sections"]{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:5px}
 .camp-tabs[aria-label="Cart sections"]>button{min-width:0;min-height:48px;font-size:13px;padding:7px 4px;line-height:1.25}
 .cart-mastery .mastery-choices>button[data-buy="mastery"]{grid-template-columns:minmax(0,1fr) auto;gap:4px 10px;padding:11px 12px;align-items:center}
 .cart-mastery .mastery-choices>button[data-buy="mastery"]>strong{grid-column:1}
 .cart-mastery .mastery-choices>button[data-buy="mastery"]>small{grid-column:1}
 .cart-mastery .mastery-choices>button[data-buy="mastery"]>span{grid-column:2;grid-row:1 / 3;font-size:13px;white-space:nowrap;color:var(--gold)}
}

.detour-preview{margin:18px 0;padding:16px;border:1px solid var(--gold);border-radius:12px;background:#31453e}.detour-preview p{font-size:14px;margin:8px 0}.detour-prizes{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin:14px 0}.detour-prizes>div{display:grid;gap:6px}.detour-prizes small{font-size:13px;line-height:1.4;color:var(--muted)}@media(max-width:650px){.detour-prizes{grid-template-columns:1fr}}

.scout-tactic{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:16px 0;padding:12px;border:1px solid var(--line);border-radius:10px}.scout-tactic>div{display:grid;gap:4px}.scout-tactic small{color:var(--muted);font-size:11px}.scout-tactic strong{font-size:14px}.scout-tactic button{font-size:12px;min-height:44px;white-space:nowrap}

.reward-context{position:relative;margin:8px 0 0}.reward-context>button{position:absolute;right:0;top:0;min-height:44px;padding:8px 12px;font-size:13px}.reward-context .reward-scout>summary{padding-right:100px}.reward-context+.choices{margin-top:14px}.inspection-families{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.inspection-family{min-width:0;padding:14px;border:1px solid var(--line);border-radius:12px}.inspection-family .team-profile{gap:10px;margin:0}.inspection-family .team-profile .portrait{width:64px;height:64px;flex-shrink:0}.inspection-family h3{font-size:19px;margin:0}.inspection-family p{font-size:13px;line-height:1.5}.inspection-family small{font-size:12px;color:var(--muted)}.inspection-stats{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin:12px 0}.inspection-stats dt{font-size:11px;color:var(--muted)}.inspection-stats dd{margin:4px 0 0;font-size:17px;font-weight:700}.inspection-family summary,.inspection-treasures summary{min-height:44px;padding:12px 0;cursor:pointer;font-size:13px}.inspection-result{color:var(--gold)}.inspection-keepsake{display:flex;gap:10px;align-items:center}.inspection-keepsake .keepsake-art{width:44px;height:44px;flex-shrink:0}.inspection-abilities{display:grid;gap:8px;font-size:12px}.inspection-abilities>div{display:flex;justify-content:space-between;gap:12px}.inspection-abilities dd{margin:0;font-weight:700}.inspection-treasures{margin-top:14px}.inspection-treasures p{font-size:13px;line-height:1.5}@media(max-width:650px){.inspection-families{grid-template-columns:1fr}}

.choice .role-stats{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px 12px}.choice .role-stats>span{display:grid;gap:2px}.choice .role-stats small{color:var(--muted);font-size:12px}.choice .role-stats b{font-size:13px;white-space:nowrap}

/* Ordinary intermissions keep the ready controls and optional preparation together. */
.intermission-income{color:var(--gold);font-size:14px;margin:6px 0 12px}
.intermission-team{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin:18px 0 12px}
.intermission-team>button{display:grid;justify-items:center;gap:4px;padding:10px 5px;min-width:0;background:#173b3322;border:1px solid #b6c29b40}
.intermission-team .mini-portrait{width:44px;height:44px;background-color:transparent;border:0;box-shadow:none}
.intermission-team strong{font-size:13px;line-height:1.2;white-space:nowrap}.intermission-team>button>span:last-child{font-size:12px;color:var(--gold);white-space:nowrap}
.intermission-tools{display:flex;gap:8px;flex-wrap:wrap}.intermission-tools button{min-height:44px;font-size:13px}
.compact-intermission .trail-details{margin-top:12px}.compact-intermission .decision-top h2{font-size:28px}.compact-intermission .camp-heading{padding:8px 0}
@media(max-width:700px){.compact-intermission .decision{padding:16px}.compact-intermission .decision-top h2{font-size:24px}.intermission-team strong{font-size:12px}.intermission-team .mini-portrait{width:38px;height:38px}.intermission-team>button>span:last-child{font-size:11px}}


.next-expansion{margin:10px 0;padding:10px 12px;border-left:2px solid var(--gold);font-size:13px;color:var(--gold)}.next-expansion small{display:block;margin-top:4px;color:var(--muted);font-size:12px}

/* Keep the cart's optional build disclosures within easy reach on phones. */
.camp-dialog:has(.cart-heading) .cart-profile{margin:12px 0}
.camp-dialog:has(.cart-heading) .cart-growth{margin:12px 0}
.camp-dialog:has(.cart-heading) .cart-mastery{margin:12px 0}
.camp-tab-content>details.cart-mastery:not([open]){margin:8px 0}
.camp-tab-content>.training-choices>details.completed-choice{margin-top:0}
.camp-tab-content>details.cart-build{margin-top:8px}
.camp-dialog:has(.cart-heading) .camp-tab-content summary{padding:8px 0;min-height:44px}
.camp-dialog:has(.cart-heading) .cart-departure{margin-top:16px}
.camp-dialog:has(.cart-heading) #closeModal{margin-top:14px}
.decision .decision-top p.guardian-prep{margin:4px 0 12px;font-size:13px;font-weight:700;color:#f2d98d}
.enemy-meter.time-low #enemyLabel{color:#ffb38a}

/* A scheduled visit is distinct from free team preparation. */
.cart-arrival{display:flex;flex-wrap:wrap;gap:6px 18px;background:#554525;border:1px solid #cba968;border-radius:12px;padding:12px 16px;margin:16px 0;color:#f9e8b2}.cart-arrival strong{font-size:16px}.cart-arrival span{font-size:13px;line-height:1.5}.battle-rule{font-size:13px;color:var(--muted);margin:12px 0}

/* Truthful battle summaries keep health, population and deadline visible. */
#battleScreen .fight-meters,#battleScreen[data-bargain=true] .fight-meters{top:calc(var(--battle-hud-height,78px) + 4px);left:auto;right:24px;width:min(520px,calc(100% - 48px));display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
#battleScreen .fight-meters>div{display:block;width:auto;min-width:0;padding:7px 9px;border:1px solid #9db58a70;border-radius:8px;background:#173b32eb;font-size:11px;letter-spacing:0}
#battleScreen .fight-meters>div>span{display:flex;justify-content:space-between;align-items:center;gap:6px;white-space:nowrap;font-size:10px}
#battleScreen .fight-meters b{float:none;font-size:11px;white-space:nowrap}
#battleScreen .fight-meters>div>b{display:block;margin-top:1px;color:#e5efd7}
#battleScreen .fight-meters .meter{height:7px;margin-top:5px;background:#0d2823}
#battleScreen .fight-meters .meter i{transition:width .08s linear}
#battleScreen .friend-meter .meter i{background:#cef2b0}
#battleScreen .enemy-meter .meter i{background:#eeb2ce}
#battleScreen .battle-deadline{display:grid;gap:0;min-width:68px;padding:3px 8px;text-align:center;border:1px solid #b7c79a80;border-radius:8px;background:#193d33;color:#f4eed2;line-height:1.15}
#battleScreen .battle-deadline small{font-size:9px;font-weight:700;letter-spacing:.3px}
#battleScreen .battle-deadline #battleClock{display:block;margin:0;font:bold 20px/1.2 'DM Sans',sans-serif;font-variant-numeric:tabular-nums}
#battleScreen .battle-deadline.time-low{background:#6b3e29;border:2px solid #ffd18b;color:#fff0be}
#battleScreen .battle-roster .roster-chip{padding-bottom:13px;min-width:0}
#battleScreen .battle-roster .roster-chip .pack-hp{height:7px;background:#cef2b0;box-shadow:0 -1px #203e37}
#battleScreen .battle-roster .roster-chip.needs-care .pack-hp{background:#ffd18b}
#battleScreen .battle-roster .pack-status{display:grid;gap:2px;min-width:0}
#battleScreen .battle-roster .pack-status>b{font-size:12px;white-space:nowrap;margin:0;line-height:1.2}
#battleScreen .battle-roster .pack-status>small{display:block;font:700 11px/1.2 'DM Sans',sans-serif;color:#f4f0d7;white-space:nowrap}
#battleScreen .battle-roster .pack-status>.pack-shield{color:#b5edf6;font-size:10px}
#battleScreen .command-bar{bottom:calc(var(--battle-roster-height,88px) + 10px)}
@media(max-width:700px){
 #battleScreen .battle-hud{display:grid;grid-template-columns:minmax(0,1fr) auto;padding:10px;gap:4px 8px}
 #battleScreen .battle-title{grid-column:1/-1;min-width:0}
 #battleScreen .battle-title h1{max-width:none;margin-top:1px;font-size:18px;line-height:1.2}
 #battleScreen .battle-title .eyebrow{font-size:9px;letter-spacing:.6px}
 #battleScreen .battle-controls{grid-column:1/-1;display:flex;flex-wrap:nowrap;max-width:none;align-items:center;margin-top:0;gap:6px}
 #battleScreen .battle-controls .battle-deadline{margin-right:auto;min-width:75px}
 #battleScreen .battle-controls button{min-height:44px;min-width:44px;font-size:12px}
 #battleScreen .fight-meters,#battleScreen[data-bargain=true] .fight-meters{left:10px;right:10px;width:auto;gap:6px}
 #battleScreen .fight-meters>div{padding:5px 7px}
 #battleScreen .fight-meters>div>span{font-size:9px;gap:3px}
 #battleScreen .fight-meters b{font-size:10px}
 #battleScreen .battle-roster .roster-chip{display:grid;grid-template-columns:24px minmax(0,1fr);align-items:center;align-content:center;gap:3px 2px;padding:5px 4px 12px;min-height:66px}
 #battleScreen .battle-roster .roster-chip .roster-portrait{grid-column:1;grid-row:1;justify-self:center}
 #battleScreen .battle-roster .roster-chip .mini-portrait{width:24px;height:24px}
 #battleScreen .battle-roster .pack-status{display:contents}
 #battleScreen .battle-roster .pack-status>b{grid-column:1/-1;grid-row:2;text-align:center;font-size:10px}
 #battleScreen .battle-roster .pack-status>small{grid-column:2;grid-row:1;font-size:10px;text-align:center}
 #battleScreen .battle-roster .pack-status>.pack-shield{grid-column:1/-1;grid-row:3;font-size:10px;text-align:center}
 #battleScreen .battle-roster .roster-chip .pod-risk{grid-column:1/-1;grid-row:4}
}
@media(max-width:380px){
 #battleScreen .battle-roster .roster-chip{grid-template-columns:20px minmax(0,1fr);padding-inline:2px;gap:3px 1px}
 #battleScreen .battle-roster .roster-chip .mini-portrait{width:20px;height:20px}
 #battleScreen .battle-roster .pack-status>small{font-size:9px}
}

.family-recaps{display:grid;gap:12px;text-align:left;margin-top:18px}.family-recap{background:#102d2bcc;border:1px solid #627f64;border-left:4px solid var(--species-color);border-radius:10px;padding:12px}.family-recap header{display:flex;justify-content:space-between;gap:10px;font-size:14px}.family-recap header span{font-size:12px;color:var(--muted)}.family-recap dl{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin:12px 0}.family-recap dt{font-size:11px;color:var(--muted)}.family-recap dd{font-size:21px;margin:4px 0;color:var(--gold)}.family-recap .recap-context,.family-recap .recap-contributions,.recap-note{font-size:12px!important;line-height:1.5!important;margin:8px 0!important}.artifact-build{padding:12px;background:#153831;border-radius:10px;margin:16px 0}.artifact-build h3{font-size:18px;margin-top:16px}.artifact-entry summary small{font-size:11px;color:var(--muted);min-width:66px}.artifact-tradeoff{color:#f2d398}.reward-placement .gear-award{margin-top:8px}#artifactSearch{width:100%;padding:12px;margin:8px 0 14px;border:1px solid #83986e;border-radius:8px;background:#12302e;color:var(--cream);font:inherit}
#battleScreen .fight-meters #enemyLabel{font-size:inherit}
@media(max-width:700px){#battleScreen .battle-roster .pack-status>b{white-space:normal;overflow-wrap:anywhere;line-height:1.15}}

.artifact-threat{display:block;color:#e7d39d;font-size:12px;line-height:1.5;margin-top:6px}

/* Difficulty and its reward stay beside the decision to start. */
.ready-difficulty{display:grid;gap:5px;padding:9px;border:1px solid #91b9a770;border-radius:10px;background:#112f2b}
.ready-difficulty>span{font-size:11px;font-weight:700;color:#d5e6cb}
.ready-difficulty>div{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px}
.ready-difficulty .difficulty-pick{display:grid;gap:1px;min-width:0;min-height:48px;padding:5px 7px;text-align:center}
.ready-difficulty .difficulty-pick strong{font-size:14px}
.ready-difficulty .difficulty-pick small{font-size:11px;white-space:nowrap;color:#d4e2c7}
.ready-difficulty .difficulty-pick[aria-pressed=true]{background:#476343;border:2px solid #f1d081;color:#fff2b8}
.ready-difficulty>small{font-size:10px;color:var(--muted);line-height:1.35}
@media(max-width:700px){.ready-difficulty{width:100%}.ready-difficulty .difficulty-pick{min-height:48px}}
.scout-rules{margin:8px 0}.scout-rules summary{cursor:pointer;font-size:13px;color:var(--muted)}.scout-rules p{font-size:13px;margin:6px 0 0}

/* During live play expose only the shared recovery, not the paused instructions. */
#battleScreen:not(.is-paused) .command-bar[data-recovering=true] #commandTarget{display:block!important}
#commandTarget{font-variant-numeric:tabular-nums}
.treasure-notes{text-align:left}.treasure-notes ul{margin:6px 0 0;padding-left:18px}.treasure-notes li{font-size:13px;line-height:1.45;margin:3px 0;overflow-wrap:anywhere}

.scout-plans{border-top:1px solid var(--line);margin-top:18px;padding-top:16px}.scout-plans h3{font-size:17px;margin:0 0 12px}.scout-plan-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.scout-plan-list>button{display:flex;align-items:center;gap:8px;min-width:0;padding:8px 10px;text-align:left}.scout-plan-list .mini-portrait{flex:0 0 32px;width:32px;height:32px}.scout-plan-list>button>span{display:grid;gap:2px;min-width:0}.scout-plan-list strong{font-size:13px;line-height:1.25;overflow-wrap:anywhere}.scout-plan-list>button>span>span{font-size:12px;line-height:1.3;color:var(--gold);overflow-wrap:anywhere}
@media(max-width:380px){.scout-plan-list{grid-template-columns:minmax(0,1fr)}}

#modal .team-orders>summary{scroll-margin-top:64px}
/* Battle recap only: its footer is a plain close, so keep it within thumb reach while scrolling. */
#modal:has(#modalContent .family-recaps) #closeModal{position:sticky;bottom:0;z-index:4;width:100%;min-height:44px;box-shadow:0 -14px 14px var(--panel)}

/* Ownership isolation dims only the three application roots, never the Retry notice. */
#camp[inert],#battleScreen[inert],#modal[inert]{opacity:.45}
.ownership-notice{position:fixed;left:8px;right:8px;top:max(8px,env(safe-area-inset-top));z-index:1000;display:flex;gap:12px;align-items:center;justify-content:space-between;padding:10px 14px;border-radius:12px;background:#24303a;color:#fff;box-shadow:0 4px 16px #0006;font:600 15px/1.3 system-ui}.ownership-notice p{margin:0}.ownership-notice button{min-height:44px;padding:0 16px}

/* Paused single-friend inspection (paused only): a compact bottom panel replaces the inert treat bar and roster;
   battleInsets reads its actual top, keeping the 26px clearance, so the same whole-world frame grows. */
.inspect-panel{position:relative;z-index:3;display:flex;flex-wrap:wrap;align-items:center;align-content:center;gap:6px;padding:6px 8px;box-sizing:border-box;background:#102f2b;border-radius:inherit}
.inspect-info{flex:1 1 96px;min-width:0;display:grid;gap:1px;font-size:12px;line-height:1.25;color:#f5eed8}
.inspect-info b{font-size:13px;color:#ffdda0;overflow-wrap:anywhere}
.inspect-actions{display:flex;gap:6px;flex:0 0 auto;margin-left:auto}
.inspect-actions button{min-width:44px;min-height:44px;padding:0 10px;font-size:12px}
.command-bar[data-inspecting=true]>:not(.inspect-panel){display:none}
#battleScreen[data-inspecting=true] .command-bar{bottom:max(8px,env(safe-area-inset-bottom));display:block;padding:0}
#battleScreen[data-inspecting=true] .battle-footer{background:none}
#battleScreen[data-inspecting=true] #battleRoster{visibility:hidden}
/* Retained HUD controls (Resume, Speed) meet 44x44 while inspecting; live HUD widths are unchanged. */
#battleScreen[data-inspecting=true] .battle-controls button{min-width:44px;min-height:44px}
.pause-settings [data-friend-inspect]{min-height:44px}
.inspect-marker{position:absolute;left:0;top:0;--d:40px;width:var(--d);height:var(--d);margin:calc(var(--d)/-2) 0 0 calc(var(--d)/-2);box-sizing:border-box;border:3px solid #fff3a6;border-radius:50%;box-shadow:0 0 0 2px #123b32;pointer-events:none;z-index:1}
.inspect-marker span{position:absolute;left:50%;bottom:100%;transform:translateX(-50%);margin-bottom:2px;padding:0 4px;border-radius:4px;background:#123b32e0;color:#fff3a6;font:700 11px system-ui;white-space:nowrap}
.inspect-panel[hidden],.inspect-marker[hidden],.inspect-info [hidden]{display:none!important}

.inspect-info>span{overflow-wrap:anywhere;min-width:0}

/* The treat status keeps a one-line footprint live and paused, so recovery and napping text never change the bar
   height; its complete text stays in the DOM and in its title. */
@media(max-width:700px){#battleScreen .command-label #commandTarget{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}}

/* JHU-180 fight breakdown: compact share bar and a second three-column row inside the existing recap card. */
.battle-breakdown dl{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin:0}.battle-breakdown dt{font-size:11px;color:var(--muted)}.battle-breakdown dd{font-size:17px;margin:4px 0;color:var(--gold)}
.damage-share{position:relative;height:18px;border-radius:9px;background:#0b2422;overflow:hidden;margin:4px 0}.damage-share i{position:absolute;inset:0 auto 0 0;background:var(--species-color);opacity:.55}.damage-share span{position:relative;font-size:11px;line-height:18px;padding-left:8px;color:#fff8df}
.family-recap dl.recap-taken dd{font-size:16px}
#inspectStats{font-size:12px;overflow-wrap:anywhere}

/* JHU-180: the per-friend rate note sits under the existing camp Stats chips as plain text. */
.pack-numbers .pack-numbers-note{flex-basis:100%;background:none;border:0;padding:0}

/* Up to four family cards: risk uses the existing gap without moving the arena. */
@media(max-width:700px){
 #battleScreen #battleRoster:not(:has(>.roster-chip:nth-child(5))) .roster-chip{overflow:visible}
 #battleScreen #battleRoster:not(:has(>.roster-chip:nth-child(5))) .roster-chip .pod-risk{position:absolute;top:auto;left:0;right:0;bottom:calc(100% + 2px);grid-column:auto;grid-row:auto;align-self:auto;line-height:1.2}
 #battleScreen #battleRoster:not(:has(>.roster-chip:nth-child(5))) .roster-chip .pack-hp{border-bottom-left-radius:12px;border-bottom-right-radius:12px}
}
