/* Reasonwell local review: readable entrances, compact mobile workbench. */
.screen--landing .brand-mark h1,.screen--landing .brand-mark p{text-shadow:none}
.screen--landing .logica-fit{font-size:13px;color:#2e5141;font-weight:600}
.screen--landing .hero-copy>p{font-size:1rem;font-weight:500;line-height:1.6;max-width:52ch;margin-bottom:1.4rem}
.screen--landing .hero-copy h2{font-size:clamp(1.8rem,3vw,2.8rem);max-width:24ch}
.screen--landing .atlas-map-region--uncharted .atlas-map-region__shape{opacity:.8;background:#ded9c7;border-color:#716a55}
.screen--landing .atlas-map-region__name{color:#292c25;text-shadow:none}
.logica-skills{max-width:1160px;margin:2.5rem auto 1rem;border-top:1px solid #d8d0bf;padding-top:2rem;color:#22201c}.logica-section-label{font-size:.75rem;text-transform:uppercase;letter-spacing:.1em;color:#8f3a20;font-weight:700}.logica-skills h2{font-size:1.7rem;margin:.65rem 0}.logica-skills>p{font-size:.94rem;max-width:70ch;line-height:1.6}.logica-skill-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:.8rem;margin:1.3rem 0}.logica-skill-grid a{display:flex;flex-direction:column;gap:.4rem;padding:1.2rem;border:1px solid #d8d0bf;border-radius:6px;background:#fffdf7;text-decoration:none;color:#22201c;text-shadow:none}.logica-skill-grid a:hover{border-color:#2e5141}.logica-skill-grid span{font-size:.75rem;color:#8f3a20}.logica-skill-grid strong{font-size:1.1rem}.logica-skill-grid small{font-size:.8rem;color:#2e5141}.logica-parent-note{font-size:.8rem!important}.logica-parent-note a{text-decoration:underline}
.logica-skill-grid a:focus-visible,.candidate-tile:focus-visible{outline:3px solid #edc969;outline-offset:4px}
@media(max-width:640px){
 .screen--landing .app-topbar{flex-direction:row;align-items:center;gap:.7rem;padding-bottom:1rem}.screen--landing .brand-mark{gap:8px}.screen--landing .brand-mark h1{font-size:1.6rem}.screen--landing .brand-mark p{font-size:.75rem}.screen--landing .logica-fit{font-size:11px;max-width:100px;text-align:right}.screen--landing .hero-panel{padding-top:1.3rem}.screen--landing .hero-actions{gap:.6rem;margin:1rem 0}.logica-skill-grid{grid-template-columns:1fr 1fr}.logica-skill-grid a{padding:1rem}.logica-skills h2{font-size:1.5rem}
 /* Keep the puzzle first in normal document flow; the six-panel collection follows it. */
 .mosaic-room__scene{display:flex;flex-direction:column;gap:14px;min-height:0;aspect-ratio:auto;padding:18px 12px 22px;background-position:center}
 .mosaic-room__copy,.mosaic-room__station,.mosaic-room__feedback,.mosaic-room__wall{position:relative;inset:auto;transform:none;width:100%;max-width:none;margin:0}
 .mosaic-room__copy{order:0}.mosaic-room__copy h2{font-size:1.65rem;line-height:1.1;text-shadow:0 2px 3px #0008}.mosaic-room__copy p{font-weight:600;font-size:.95rem;line-height:1.4;text-shadow:0 1px 2px #000}
 .mosaic-room__station{order:1;padding:10px;gap:12px}.mosaic-room__feedback{order:2}.mosaic-room__wall{order:3;padding:10px;border-width:1px;gap:8px}.mosaic-room__wall-title{display:flex;justify-content:space-between;align-items:center}.mosaic-room__wall-title strong{font-size:.85rem}.mini-wall{grid-template-columns:repeat(6,1fr);gap:5px}.mini-panel{aspect-ratio:1;min-height:0}.mini-panel__num{font-size:10px;top:2px;left:2px;transform:none;width:15px;height:15px}.mosaic-board{max-height:none;aspect-ratio:1.2}.reward-panel{position:relative;inset:auto;transform:none;width:100%;margin:1rem 0}.mosaic-room__scene.is-door{min-height:500px}.room-topbar{display:grid;grid-template-columns:auto 1fr;gap:.6rem}.room-topbar>div{align-self:center}.room-topbar strong{font-size:.95rem}.room-topbar p{grid-column:1/-1;font-size:.8rem}.room-topbar>.btn{padding:.6rem .75rem;font-size:.8rem}
}

/* Every atlas room: a readable workbench with the collection beside it. */
#app .room-page{padding:20px;max-width:1240px;margin:auto;color:#f9eed8}
#app .room-topbar{display:grid;grid-template-columns:auto 1fr auto;gap:18px;padding:14px 18px;margin-bottom:12px;background:#183331;border:1px solid #b5a37766;border-radius:6px}
#app .room-topbar strong{font-size:1.15rem;line-height:1.3;font-weight:700}
#app .room-topbar p,#app .room-topbar span{font-weight:600;color:#e1d8bc}
#app .room-page .btn{font-family:var(--font-body);font-size:.9rem;letter-spacing:.01em;text-transform:none;padding:11px 17px;min-height:44px;line-height:1.3;border-radius:5px;box-shadow:none;text-shadow:none}
#app .room-page .btn--primary{background:#edca7b;color:#252a25;border:1px solid #f3dfa9;box-shadow:0 3px 0 #60482e}
#app .room-page .btn--ghost,#app .room-page .btn--secondary{background:#183d39;color:#fff1d0;border:1px solid #ab9b70}
#app .room-page :is(button,input):focus-visible{outline:3px solid #90def0;outline-offset:4px;box-shadow:0 0 0 6px #163d35}
#app .room-page button:not(:disabled){touch-action:manipulation}
#app .room-page .mosaic-room__scene{display:grid;grid-template-columns:minmax(0,3fr) minmax(200px,1fr);align-items:start;gap:20px;aspect-ratio:auto;min-height:620px;height:auto;padding:24px;overflow:hidden;background-position:center}
#app .room-page .mosaic-room__copy{position:relative;inset:auto;transform:none;grid-column:1/-1;grid-row:1;order:0;max-width:none;width:100%;margin:0;padding:16px 20px;background:#15362ef5;border:1px solid #bca57588;border-left:4px solid #efc96c;border-radius:5px;text-align:left;text-shadow:none}
#app .room-page .mosaic-room__copy h2{font-size:clamp(1.4rem,2.5vw,2rem);line-height:1.2;text-shadow:none;margin:5px 0 8px;font-weight:700}
#app .room-page .mosaic-room__copy p{font-size:1rem;line-height:1.5;text-shadow:none;font-weight:600}
#app .room-page .mosaic-room__copy>span{font-size:.7rem;letter-spacing:.11em;color:#e7c479}
#app .room-page .mosaic-room__scene > :is([class*="-room__station"],.paperfold-room__choices){position:relative;inset:auto;transform:none;grid-column:1;grid-row:auto;order:1;width:100%;max-width:none;margin:0;padding:16px;min-width:0;border-width:1px;border-color:#ba9d6977;box-shadow:0 8px 20px #0003;background:#272b24f5;border-radius:6px}
#app .room-page .mosaic-room__scene > :is([class*="-room__wall"],.sorting-room__tray,.quant-room__tray,.spatial-room__rail,.analogy-room__avenue){position:relative;inset:auto;transform:none;grid-column:2;grid-row:2;order:4;width:100%;max-width:none;margin:0;padding:12px;border:1px solid #b2a27577;box-shadow:none;background:#183831f2;border-radius:6px}
#app .room-page .mosaic-room__scene > [class*="-room__feedback"]{position:relative;inset:auto;transform:none;grid-column:1;grid-row:auto;order:3;width:100%;max-width:none;margin:0;padding:18px;background:#173c33;border:1px solid #c5bd8c;border-radius:6px;box-shadow:none}
#app .room-page [class*="-room__feedback"] p{font-size:1rem;line-height:1.55}
#app .room-page .mosaic-room__scene > .reward-panel{position:relative;inset:auto;transform:none;grid-column:1/-1;width:min(700px,100%);max-width:none;margin:36px auto;padding:26px}
#app .room-page :is(.candidate-tile,.object-card,.analogy-choice,.paperfold-choice){border-radius:6px;border-width:1px;border-color:#c6ad75;box-shadow:0 3px 8px #0003}
#app .room-page :is(.candidate-tile,.object-card,.analogy-choice,.paperfold-choice):hover{border-color:#fff0bc}
#app .room-page :is(.candidate-tile,.object-card,.analogy-choice,.paperfold-choice).is-selected{outline:3px solid #f1cd74;outline-offset:2px}
#app .room-page :is(.counter-btn,.counter-controls button){min-width:44px;min-height:44px}
#app .room-page .mosaic-board{width:100%;max-width:650px;border-width:3px;max-height:none}
#app .room-page :is(.mini-wall,.removed-grid,.quant-slots,.spatial-slots,.paperfold-slots,.serial-slots,.analogy-slots){grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
#app .room-page :is(.mini-panel,.removed-slot,.quant-slot,.spatial-slot,.paperfold-slot,.serial-slot,.analogy-slot){min-height:0;aspect-ratio:1.15}
#app .room-page :is(.quant-board,.spatial-room__surface,.paperfold-room__surface,.analogy-room__surface,.serial-room__surface){min-width:0;max-width:100%;border-width:1px;border-color:#bfa37066;border-radius:5px}
@media(max-width:800px){
 #app .room-page{padding:12px 10px 32px}
 #app .room-topbar{grid-template-columns:auto 1fr;gap:10px;padding:12px}
 #app .room-topbar p{grid-column:1/-1;font-size:.8rem}
 #app .room-topbar strong{font-size:1rem}
 #app .room-topbar .btn{font-size:.8rem;padding:9px 10px}
 #app .room-page .mosaic-room__scene{display:flex;flex-direction:column;gap:14px;padding:14px 10px;min-height:0}
 #app .room-page .mosaic-room__copy{padding:14px}
 #app .room-page .mosaic-room__copy h2{font-size:1.55rem}
 #app .room-page .mosaic-room__copy p{font-size:.95rem}
 #app .room-page .mosaic-room__scene > :is([class*="-room__station"],.paperfold-room__choices){padding:10px}
 #app .room-page .paperfold-room__choices{order:2}
 #app .room-page :is(.mini-wall,.removed-grid,.quant-slots,.spatial-slots,.paperfold-slots,.serial-slots,.analogy-slots){grid-template-columns:repeat(6,minmax(0,1fr));gap:5px}
 #app .room-page :is(.mini-panel,.removed-slot,.quant-slot,.spatial-slot,.paperfold-slot,.serial-slot,.analogy-slot){min-height:0;aspect-ratio:1;padding:3px}
 #app .room-page :is(.removed-slot,.quant-slot,.spatial-slot,.paperfold-slot,.serial-slot,.analogy-slot) svg{width:100%;height:auto;max-height:50px}
 #app .room-page .mosaic-room__wall-title{display:flex;justify-content:space-between;gap:8px;margin-bottom:6px}
 #app .room-page .mosaic-room__wall-title strong{font-size:.8rem}
 #app .room-page .mosaic-room__wall-title span{font-size:.65rem}
 #app .room-page :is(.serial-room__surface,.analogy-room__surface,.paperfold-room__surface){min-height:0}
 #app .room-page .mosaic-room__scene.is-door{min-height:460px}
}
#app .room-page .abacus-rail__beads{max-width:100%;align-items:center;gap:4px}
#app .room-page .abacus-bead{flex:0 1 30px;min-width:0;width:30px;height:auto;aspect-ratio:1}
#app .room-page .abacus-bead .coin-svg{width:100%;height:100%;max-width:none;max-height:none}
@media(max-width:800px){#app .room-page .analogy-bridge__sentence{display:none}}

/* A single illustrated landscape; the paths and destinations share its coordinates. */
.screen--landing .hero-panel--map{grid-template-columns:minmax(0,1fr);gap:30px}
.screen--landing .hero-panel--map>.hero-copy{display:grid;grid-template-columns:1.1fr 1fr;column-gap:70px;align-items:start}
.screen--landing .hero-panel--map>.hero-copy h2{grid-row:1/3;max-width:20ch;font-size:clamp(1.9rem,3.1vw,3rem);margin:0}
.screen--landing .hero-panel--map>.hero-copy>p{margin:0 0 16px;max-width:54ch}
.screen--landing .hero-panel--map .hero-actions{grid-template-columns:1fr 1fr;max-width:none;gap:12px;margin:0}
.screen--landing .hero-panel--map .hero-actions .btn{min-height:48px;font-size:.85rem;padding:12px}
.screen--landing .reason-atlas{background:#f8f2e2;border:1px solid #95896a;border-radius:7px;padding:24px;box-shadow:0 5px 0 #d7ceba}
.screen--landing .reason-atlas .atlas-map-header{align-items:center;border-bottom:1px solid #bdb293;margin-bottom:20px;padding-bottom:20px}
.screen--landing .reason-atlas .atlas-map-header h3{font-family:'Spectral',Georgia,serif;font-size:clamp(1.8rem,3vw,2.5rem);font-weight:600;line-height:1.15;letter-spacing:-.025em;color:#293e32}
.screen--landing .reason-atlas .atlas-map-kicker{font-size:.7rem;color:#905236;letter-spacing:.16em}
.screen--landing .reason-atlas .atlas-map-subtitle{font-size:.9rem;margin-top:8px;max-width:55ch;color:#565849}
.screen--landing .reason-atlas .rank-badge{background:#e4dfbf;border:1px solid #92946d;border-radius:5px;box-shadow:none;padding:10px 14px;min-width:195px}
.screen--landing .reason-atlas .rank-badge b{font-size:.9rem;color:#2d4437}
.screen--landing .reason-atlas .rank-badge em{font-size:.75rem;color:#585d43}
.screen--landing .reason-atlas .rank-badge__mark{width:34px;height:34px;font-size:1rem}
.reason-atlas__viewport{width:100%;overflow-x:auto;overflow-y:hidden;border:1px solid #6d7d67;border-radius:4px;background:#a7c4bc;scrollbar-color:#637d6d #ddd8bb;scrollbar-width:thin}
.reason-atlas__viewport:focus-visible{outline:3px solid #b85231;outline-offset:4px}
.reason-atlas__canvas{position:relative;width:100%;min-width:760px;aspect-ratio:1000/720;isolation:isolate}
.reason-atlas__terrain{display:block;width:100%;height:100%;position:absolute;inset:0;pointer-events:none}
.reason-atlas__road-edge{fill:none;stroke:#aa9674;stroke-width:12;stroke-linecap:round;opacity:.55}
.reason-atlas__road{fill:none;stroke:#f3e4b9;stroke-width:9;stroke-linecap:round}
.reason-atlas__route{fill:none;stroke:#9a7751;stroke-width:1.8;stroke-dasharray:2 7;stroke-linecap:round}
.reason-atlas__route.is-charted{stroke:#315f4d;stroke-width:3;stroke-dasharray:none}
.reason-atlas__place{position:absolute;left:var(--map-x);top:var(--map-y);translate:-50% -50%;transform:none;width:170px;min-height:136px;border:0;background:none;display:flex;align-items:center;flex-direction:column;padding:0;cursor:pointer;color:#293d31;z-index:1;font-family:'Nunito',sans-serif;text-align:center}
.reason-atlas__landmark{display:block;width:146px;height:90px;filter:drop-shadow(0 3px 1px #4a584323);transition:transform .18s ease}
.reason-atlas__label{display:grid;justify-items:center;gap:4px;background:#fff5dcf2;border:1px solid #9b916c;border-radius:4px;padding:7px 11px;box-shadow:0 2px 0 #746b4940;min-width:134px}
.reason-atlas__label strong{font-family:'Spectral',Georgia,serif;font-size:17px;font-weight:600;line-height:1.1;white-space:nowrap;color:#293d31}
.reason-atlas__label small{font-size:11px;font-weight:700;line-height:1.2;color:#555844}
.reason-atlas__progress{display:flex;gap:5px;margin-top:1px}
.reason-atlas__progress i,.reason-atlas__legend i{display:inline-block;width:7px;height:7px;border:1px solid #7b8267;border-radius:50%;background:#fdf6df}
.reason-atlas__progress i.is-complete,.reason-atlas__legend i.is-complete{background:#3c6951;border-color:#3c6951}
.reason-atlas__place.is-charted .reason-atlas__label{border:2px solid #42664b;background:#eef1d9}
.reason-atlas__place.is-charting .reason-atlas__label{border-color:#506b4b}
.reason-atlas__place:hover,.reason-atlas__place:focus-visible{z-index:3;outline:0}
.reason-atlas__place:hover .reason-atlas__landmark,.reason-atlas__place:focus-visible .reason-atlas__landmark{transform:translateY(-4px)}
.reason-atlas__place:hover .reason-atlas__label{background:#fff9e9;border-color:#3e6853}
.reason-atlas__place:focus-visible .reason-atlas__label{outline:3px solid #ac4e2c;outline-offset:4px}
.reason-atlas__legend{display:flex;gap:18px;flex-wrap:wrap;align-items:center;margin-top:15px;font-size:.75rem;color:#586049}
.reason-atlas__legend>span{display:flex;align-items:center;gap:7px}
.reason-atlas__legend p{font-size:.75rem;margin:0 0 0 auto;font-style:italic}
.reason-atlas__pan-hint{display:none}
@media(max-width:900px){.screen--landing .hero-panel--map>.hero-copy{gap:30px}.screen--landing .reason-atlas .atlas-map-header{flex-direction:row}.screen--landing .reason-atlas{padding:18px}.screen--landing .hero-panel--map .hero-actions{grid-template-columns:1fr}.reason-atlas__place{width:155px}.reason-atlas__label strong{font-size:15px}.reason-atlas__landmark{width:128px;height:78px}.reason-atlas__label{min-width:124px}}
@media(max-width:760px){.screen--landing .hero-panel--map>.hero-copy{display:block}.screen--landing .hero-panel--map>.hero-copy h2{max-width:21ch;margin-bottom:18px}.screen--landing .hero-panel--map .hero-actions{grid-template-columns:1fr 1fr}.screen--landing .reason-atlas .atlas-map-header{flex-direction:column;align-items:start;gap:14px;padding-bottom:16px;margin-bottom:0}.screen--landing .reason-atlas .rank-badge{min-width:0}.reason-atlas__pan-hint{display:block;font-size:.76rem;color:#566049;margin:12px 0}.reason-atlas__legend{gap:10px 16px}.reason-atlas__legend p{flex-basis:100%;margin:0}.screen--landing .reason-atlas{padding:14px}.reason-atlas__place{min-height:124px}.reason-atlas__viewport{scrollbar-width:auto}}
@media(prefers-reduced-motion:reduce){.reason-atlas__landmark{transition:none}.reason-atlas__place:hover .reason-atlas__landmark,.reason-atlas__place:focus-visible .reason-atlas__landmark{transform:none}}

@media(max-width:1100px){.reason-atlas__place{width:155px;min-height:124px}.reason-atlas__label strong{font-size:15px}.reason-atlas__landmark{width:128px;height:78px}.reason-atlas__label{min-width:124px}}
