/* Trainer camp: action first, environment and inspectable portraits second.
   Readability pass: fluid page width (up to 1760px), larger sprites, >=14px meta text. */
.titlearea { max-width:var(--page-max); margin:auto; padding:clamp(22px,2vw,36px) 0; background:none; border-bottom:1px solid var(--line); display:grid; grid-template-columns:minmax(0,1fr) clamp(300px,22vw,380px); align-items:center; gap:24px; }
.titlearea .eyebrow { font-size:var(--fs-meta); color:var(--accent); }
.titlearea h1 { font-size:clamp(30px,2.6vw + 6px,56px); }
.hub-intro { color:var(--muted); font-size:clamp(17px,0.35vw + 12px,21px); line-height:1.5; max-width:720px; margin-top:12px; }
.hub-actions { display:grid; grid-template-columns:1fr 1fr; gap:8px; }
.hub-primary { grid-column:1/-1; text-align:center; font-size:clamp(18px,0.3vw + 14px,22px); }
.hub-link { color:var(--text); display:flex; align-items:center; min-height:52px; padding:8px 12px; font-size:var(--fs-meta); border:2px solid var(--line); background:var(--surface); text-decoration:none; }
.hub-link:hover { border-color:var(--accent); }
.exploresection, .dash { max-width:var(--page-max); padding-left:0; padding-right:0; }
.exploregrid { grid-template-columns:minmax(0,1fr) clamp(300px,22vw,380px); align-items:stretch; }
.dash { grid-template-columns:minmax(0,1fr) clamp(300px,22vw,380px); }
.mapframe { display:flex; flex-direction:column; }
.map { flex:1; min-height:clamp(320px,26vw,560px); }
.windowbar { font-size:var(--fs-meta); gap:8px; min-height:44px; height:auto; padding:10px 12px; flex-wrap:wrap; }
.scene-label { margin-left:auto; color:var(--accent); font-size:var(--fs-meta); }
.maptag,.mapnotice { font-size:var(--fs-meta); padding:8px 12px; }
.mapnotice { bottom:18px; max-width:94%; white-space:normal; text-align:center; }
.mapbottom { font-size:var(--fs-meta); min-height:44px; height:auto; padding:10px; gap:12px; }
.wild img { width:clamp(96px,7vw,144px); height:clamp(96px,7vw,144px); }
.wild span { font-size:var(--fs-meta); padding:4px 8px; }
.wild.one { left:14%; bottom:100px; }
.wild.three { right:12%; bottom:82px; }
.wild.two { bottom:145px; }
.partnerstage { height:clamp(150px,11vw,210px); background:var(--raised); border-bottom:1px solid var(--line); }
.partnerstage img { width:clamp(128px,9vw,192px); height:clamp(128px,9vw,192px); }
.partnerinfo { padding:18px; }
.partnerinfo .eyebrow { font-size:var(--fs-meta); }
.partnerinfo h2 { font-size:clamp(28px,1vw + 18px,38px); }
.partner-copy { font-size:clamp(16px,0.3vw + 12px,19px); }
.partner-hint { font-size:var(--fs-meta); line-height:1.45; }
.partner-cta .action { font-size:clamp(15px,0.25vw + 12px,18px); min-height:52px; }
.sectionhead { flex-wrap:wrap; gap:8px 20px; }
.sectionhead h2 { font-size:clamp(24px,0.6vw + 16px,32px); }
.sectionhead span { font-size:var(--fs-meta); }
.partygrid { gap:12px; }
.roster { font-family:inherit; padding:14px 8px; box-shadow:3px 3px 0 #0004; }
.roster img { width:clamp(96px,6vw,128px); height:clamp(96px,6vw,128px); }
.roster .rname { font-size:clamp(16px,0.3vw + 12px,19px); }
.roster.selected { box-shadow:inset 0 -4px var(--accent),3px 3px 0 #0004; }
.coins-grid { grid-template-columns:repeat(auto-fill,minmax(clamp(200px,13vw,250px),1fr)); }
.coin-card { text-decoration:none; padding:16px 12px; }
.coin-card .poke-sprite { width:clamp(112px,7.5vw,144px); height:clamp(112px,7.5vw,144px); }
.coin-card .cname { font-size:clamp(18px,0.35vw + 13px,22px); }
.coin-card .csym { font-size:var(--fs-meta); }
.coin-card .cspecies,.coin-card .cwp { font-size:var(--fs-meta); }
.lb-name, .quest-title { font-size:clamp(16px,0.25vw + 13px,19px); }
.quest-reward,.lb-pts,.lb-rank,.quest-prog,.bp-cap,.balance-line,.connect-notice { font-size:var(--fs-meta); }
@media(max-width:960px) {
 .exploresection, .dash { max-width:none; padding-left:16px; padding-right:16px; }
 .dash { grid-template-columns:minmax(0,1fr); }
 .titlearea { max-width:none; padding-left:16px; padding-right:16px; }
}
@media(max-width:720px) {
 .titlearea { padding:22px 16px; grid-template-columns:1fr; gap:18px; }
 .hub-actions { grid-template-columns:1fr 1fr; }
 .exploregrid { grid-template-columns:minmax(0,1fr); gap:16px; }
 .map { min-height:270px; height:270px; }
 .wild img { width:72px; height:72px; }
 .wild.one { left:5%; bottom:82px; }
 .wild.three { right:4%; bottom:72px; }
 .wild.two { bottom:112px; }
 .wild span { font-size:13px; }
 .maptag { font-size:14px; }
 .mapnotice { font-size:14px; }
 .mapbottom span:last-child { display:none; }
 .partnerstage { height:140px; }
 .partnerinfo { gap:10px; }
 .partygrid { grid-template-columns:repeat(2,minmax(0,1fr)); }
 .roster { padding:12px; }
 .roster img { width:96px; height:96px; }
 .roster .rname { font-size:17px; }
 .coins-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
 .coin-card .poke-sprite { width:96px; height:96px; }
 .coin-card .cname { font-size:17px; }
}
/* Real practice data: stats grid, dex numbers and honest empty states. */
.partner-stats { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:6px; margin:10px 0 4px; }
.partner-stats div { background:var(--bg); border:1px solid var(--line); padding:6px 4px; text-align:center; }
.partner-stats dt { font-size:var(--fs-meta); color:var(--muted); }
.partner-stats dd { margin:0; font-family:ui-monospace,Consolas,monospace; font-size:18px; color:var(--text); }
.roster .rdex { font-family:ui-monospace,Consolas,monospace; font-size:var(--fs-meta); color:var(--muted); margin-bottom:4px; }
.coins-grid.is-empty { display:block; }
.coins-empty { color:var(--muted); font-size:var(--fs-meta); padding:18px; border:1px dashed var(--line); background:var(--surface); line-height:1.5; }
#war-lb .coins-empty { border:none; background:none; padding:12px 0; }
@media(min-width:721px) { .partygrid { grid-template-columns:repeat(auto-fit,minmax(clamp(150px,11vw,220px),1fr)); } }

/* ── v2 readability (owner msg 1562434757483175968): bigger type + sprites, no dead space ── */
.titlearea { grid-template-columns:minmax(0,1fr) clamp(340px,26vw,520px); }
.titlearea .eyebrow { font-size:var(--fs-meta); }
.titlearea h1 { font-size:clamp(34px,2.8vw + 8px,72px); }
.hub-intro { font-size:clamp(19px,0.45vw + 13px,26px); max-width:900px; }
.hub-primary { font-size:clamp(20px,0.4vw + 15px,27px); }
.hub-link { font-size:var(--fs-meta); min-height:56px; }
.hub-guide { grid-column:1/-1; display:flex; align-items:center; gap:14px; min-height:72px; padding:8px 14px; color:var(--text); text-decoration:none; background:var(--raised); border:3px solid var(--accent); box-shadow:3px 3px 0 #0004; }
.hub-guide:hover, .hub-guide:focus-visible { border-color:var(--action); outline:none; }
.hub-guide img { width:56px; height:56px; image-rendering:pixelated; flex-shrink:0; }
.hub-guide b { display:block; font-weight:normal; font-size:clamp(18px,0.35vw + 13px,23px); color:var(--accent); }
.hub-guide small { display:block; font-size:var(--fs-small); color:var(--muted); margin-top:2px; }
@media(min-width:721px) { .exploregrid { grid-template-columns:minmax(0,1fr) clamp(340px,26vw,520px); } }
@media(min-width:961px) { .dash { grid-template-columns:minmax(0,1fr) clamp(340px,26vw,520px); } }
.map { min-height:clamp(380px,30vw,720px); }
.windowbar, .scene-label, .maptag, .mapnotice, .mapbottom, .wild span { font-size:var(--fs-meta); }
.wild img { width:clamp(128px,9.5vw,220px); height:clamp(128px,9.5vw,220px); }
.wild.one { bottom:clamp(96px,8vw,170px); }
.wild.three { bottom:clamp(80px,6.5vw,140px); }
.wild.two { bottom:clamp(150px,11vw,250px); }
.partnerstage { height:clamp(200px,15vw,320px); }
.partnerstage img { width:clamp(176px,12.5vw,288px); height:clamp(176px,12.5vw,288px); }
.partnerinfo h2 { font-size:clamp(30px,1.2vw + 18px,46px); }
.partner-copy { font-size:clamp(17px,0.4vw + 12px,23px); }
.partner-hint, .partnerinfo .eyebrow { font-size:var(--fs-meta); }
.partner-cta .action { font-size:var(--fs-btn); min-height:56px; }
.partner-stats dt { font-size:var(--fs-small); }
.partner-stats dd { font-size:clamp(20px,0.4vw + 15px,26px); }
.sectionhead h2 { font-size:clamp(26px,0.8vw + 16px,38px); }
.sectionhead span { font-size:var(--fs-meta); }
.roster img { width:clamp(128px,8.5vw,192px); height:clamp(128px,8.5vw,192px); }
.roster .rname { font-size:clamp(18px,0.4vw + 13px,24px); }
.roster .rdex { font-size:var(--fs-small); }
@media(min-width:721px) { .partygrid { grid-template-columns:repeat(auto-fit,minmax(clamp(180px,13vw,300px),1fr)); } }
.coins-grid { grid-template-columns:repeat(auto-fill,minmax(clamp(230px,15vw,320px),1fr)); }
.coin-card .poke-sprite { width:clamp(144px,10vw,208px); height:clamp(144px,10vw,208px); }
.coin-card .cname { font-size:clamp(20px,0.45vw + 14px,27px); }
.coin-card .csym, .coin-card .cspecies, .coin-card .cwp { font-size:var(--fs-meta); }
.lb-name, .quest-title { font-size:clamp(17px,0.35vw + 13px,23px); }
.quest-reward, .lb-pts, .lb-rank, .quest-prog, .bp-cap, .balance-line, .connect-notice, .coins-empty { font-size:var(--fs-meta); }
.quest-bar { height:12px; }
.dash > div:first-child { display:flex; flex-direction:column; gap:28px; }
.dash > div:first-child > .h { margin-bottom:-14px; }
.trainer-stats { display:grid; grid-template-columns:repeat(auto-fit,minmax(180px,1fr)); gap:12px; }
.trainer-tile { background:var(--surface); border:3px solid var(--line); box-shadow:3px 3px 0 #0004; padding:14px 16px; display:flex; flex-direction:column; gap:4px; min-width:0; }
.trainer-tile .tt-label { font-size:var(--fs-small); color:var(--muted); letter-spacing:1px; }
.trainer-tile .tt-value { font-weight:normal; font-family:ui-monospace,Consolas,monospace; font-size:clamp(26px,0.8vw + 16px,38px); color:var(--action); overflow-wrap:anywhere; }
.trainer-tile:nth-child(2) .tt-value { font-family:'Pixelify',monospace; color:var(--accent); }
.trainer-tile .tt-sub { font-size:var(--fs-small); color:var(--muted); }
.trainer-signed-out a { color:var(--action); }
.guide-strip { background:var(--surface); border:3px solid var(--line); box-shadow:4px 4px 0 #0004; padding:18px 20px 20px; }
.guide-strip-head { display:flex; flex-wrap:wrap; align-items:baseline; justify-content:space-between; gap:8px 20px; margin-bottom:14px; }
.guide-strip-head .h { margin:0; }
.guide-strip-link { color:var(--action); font-size:var(--fs-meta); text-decoration:none; min-height:44px; display:inline-flex; align-items:center; }
.guide-strip-link:hover { text-decoration:underline; }
.guide-steps { list-style:none; counter-reset:gs; display:grid; grid-template-columns:repeat(auto-fit,minmax(200px,1fr)); gap:12px; }
.guide-steps li { counter-increment:gs; position:relative; background:var(--raised); border:2px solid var(--line); padding:14px; display:flex; flex-direction:column; align-items:center; text-align:center; gap:6px; }
.guide-steps li::before { content:counter(gs); position:absolute; top:8px; left:10px; font-size:clamp(20px,0.4vw + 14px,26px); color:var(--action); }
.guide-steps img { width:clamp(96px,6.5vw,144px); height:clamp(96px,6.5vw,144px); image-rendering:pixelated; object-fit:contain; }
.guide-steps b { font-weight:normal; font-size:clamp(18px,0.35vw + 13px,24px); color:var(--text); }
.guide-steps span { font-size:var(--fs-meta); color:var(--muted); line-height:1.45; }
@media(max-width:720px) {
 .titlearea { grid-template-columns:1fr; }
 .exploregrid, .dash { grid-template-columns:minmax(0,1fr); }
 .map { min-height:300px; height:300px; }
 .wild img { width:88px; height:88px; }
 .wild.one { bottom:86px; } .wild.three { bottom:76px; } .wild.two { bottom:118px; }
 .wild span, .maptag, .mapnotice { font-size:15px; }
 .partnerstage { height:180px; }
 .partnerstage img { width:160px; height:160px; }
 .roster img { width:112px; height:112px; }
 .roster .rname { font-size:18px; }
 .coin-card .poke-sprite { width:120px; height:120px; }
 .coin-card .cname { font-size:19px; }
 .guide-steps { grid-template-columns:repeat(2,minmax(0,1fr)); }
 .guide-steps img { width:88px; height:88px; }
 .trainer-stats { grid-template-columns:repeat(2,minmax(0,1fr)); }
 .hub-guide img { width:48px; height:48px; }
}
.wild, .roster { font-family: inherit; }
