/* Shared MiniVille identity, loaded last on every screen. */
:root{--mv-blue:#368fc7;--mv-blue-dark:#235d80;--mv-sky:#c7e5f5;--mv-paper:#fffaf0;--mv-green:#76b34a;--mv-orange:#ed8a43;--mv-purple:#9466b6;--mv-yellow:#ffd15c;--mv-ink:#29495b;--mv-border:#8bb6ce;--mv-shadow:#84abc0;--ink:var(--mv-ink);--sage:var(--mv-blue-dark)}
body{background:var(--mv-sky)!important;color:var(--mv-ink);font-family:Arial,Helvetica,sans-serif;font-size:18px;line-height:1.6}.home,.app{max-width:1100px;margin:auto;padding:26px 28px}.brand{display:flex;align-items:center;text-decoration:none;flex-shrink:0}.brand-logo{display:block;width:245px;height:auto}.brand svg{display:none}.identity-bar,.home>header{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:14px 18px;background:var(--mv-paper);border:2px solid var(--mv-border);border-radius:20px;box-shadow:0 4px 0 var(--mv-shadow);margin-bottom:24px}.level{border:1px solid var(--mv-border);background:#e5f2fa;color:var(--mv-blue-dark);font-size:12px}.welcome h1,.section-title h1,h1{color:var(--mv-blue-dark)}.welcome p,.section-title p,.back,footer,footer a{color:#345d75}.back,.menu-return{color:var(--mv-blue-dark)!important;font-weight:700}.app>header{margin:20px 0}.app .eyebrow{color:#42657a}.app .intro{background:#e1efce;border:2px solid #91b969;border-radius:20px;box-shadow:0 4px 0 #99b774}.app .intro h2{color:var(--mv-blue-dark)}.apps,.subapps{background:#e1efce;border:2px solid #91b969;box-shadow:0 6px 0 #99b774}.app-tile{--accent:var(--mv-blue);border:2px solid var(--mv-border);border-top:7px solid var(--accent);background:var(--mv-paper);box-shadow:0 4px 0 var(--mv-shadow)}.universe-1{--accent:var(--mv-blue)}.universe-2{--accent:var(--mv-orange)}.universe-3{--accent:var(--mv-green)}.universe-4{--accent:var(--mv-purple)}.app-tile.locked{border-top-color:var(--accent)}.app-label{color:var(--mv-ink)}.app-icon{overflow:hidden;background:#e5f2fa}.world-art{display:block;width:100%;height:100%;object-fit:cover;border-radius:10px}.subapps .app-icon{height:155px}.mini-game,.practice,.panel,.city-card{background:var(--mv-paper);border:2px solid var(--mv-border);border-radius:22px;box-shadow:0 5px 0 var(--mv-shadow);color:var(--mv-ink)}.mini-game{max-width:800px;background:#e1efce;border-color:#91b969;box-shadow:0 5px 0 #99b774}.mission-card,.question,.route-piece{background:var(--mv-paper);border:2px solid #c4bfa9;border-radius:15px;box-shadow:0 3px 0 #c4bfa9}.mission-card h3,.question{color:var(--mv-ink)}.mission-card{border-top:6px solid var(--mv-blue)}.tokens .token.earned,.tabletop-tokens .earned{background:var(--mv-yellow);border-color:#bc942f;box-shadow:0 2px 0 #bc942f}.destination,.shop-destinations .choice{border-radius:16px;border-width:2px;box-shadow:0 4px 0 var(--mv-shadow);color:var(--mv-ink)}.small-building{width:150px;height:105px;overflow:hidden;border-radius:10px;margin-bottom:12px}.french-shop{width:100%;height:130px;overflow:hidden;border-radius:10px;margin-bottom:10px}.shop-destinations .choice{padding:12px;min-height:195px;font-size:19px}.shop-destinations .choice.independent{background:#ffead8;border-color:#d99461}.shop-destinations .choice.integrated{background:#e1f1fb;border-color:#68a3c8}.shop-destinations .choice.associated{background:#edf5dd;border-color:#a0bc78}.destination.bin-0{background:#e1f1fb;border-color:#68a3c8}.destination.bin-1{background:#ffead8;border-color:#d99461}.primary,.start,.resource{background:var(--mv-blue-dark);color:white;border-radius:13px;min-height:48px;font-size:18px;font-weight:700}.resource.paper,.secondary{color:var(--mv-blue-dark);background:var(--mv-paper);border:1px solid var(--mv-border)}.steps button[aria-current="step"]{background:var(--mv-yellow)!important;color:#59491e!important;border-color:#bc942f!important}.steps button{background:var(--mv-paper);border-color:var(--mv-border);color:var(--mv-blue-dark);font-size:16px;box-shadow:0 3px 0 var(--mv-shadow)}.steps button:disabled{background:#eef2f2;border-color:#b1c3cb;color:#596c74;box-shadow:none}.score{background:#fff0bb;border:2px solid #c8a644;border-radius:16px;box-shadow:0 3px 0 #c8a644;color:var(--mv-ink)}.score strong{color:#846519}.reading-tools,.memo,.game-help,.hint,.word-help{background:var(--mv-paper);border-color:var(--mv-border);border-radius:16px;color:var(--mv-ink)}.reading-tools button{color:var(--mv-blue-dark);border-color:var(--mv-border)}.tag{background:#fff0bb;color:#725820}.feedback.good{background:#e5f1d6;color:#3d602b}.feedback.retry,.feedback.bad{background:#fff0d9;color:#805129}.game-badge{background:#d6edfa;color:var(--mv-blue-dark)}.game-app{border-top-color:var(--mv-blue)}.city-heading,.city-footer{background:var(--mv-paper);color:var(--mv-ink)}.city-heading h2{color:var(--mv-blue-dark)}.legend{color:var(--mv-ink)}.route-slots .placed{background:#dcefc7;border-color:#8faf64}.small-building svg{display:none}
button:focus-visible,a:focus-visible,summary:focus-visible{outline:3px solid #245d7e;outline-offset:4px}.locked .world-art{filter:saturate(.65)}
@media(max-width:600px){.home,.app{padding:18px 14px}.brand-logo{width:180px}.identity-bar,.home>header{padding:10px 12px;gap:8px;border-radius:16px}.level{font-size:10px;padding:5px 8px}.subapps .app-icon{height:120px}.french-shop{width:100px;height:90px;margin:0;flex-shrink:0}.shop-destinations .choice{min-height:120px;gap:16px}.small-building{width:120px;height:90px}.app>header{gap:12px}h1{font-size:27px}.steps button{font-size:14px}}@media(max-width:360px){.brand-logo{width:155px}.level{font-size:9px}.identity-bar,.home>header{padding:8px}.french-shop{width:82px;height:80px}}

.intro-art{width:260px;min-height:125px;flex-shrink:0;border-left:2px solid #91b969;overflow:hidden}.intro-art .world-art{border-radius:0;object-position:0% center}.app .intro>div:first-child{padding:20px}.app .intro .intro-art{padding:0}.identity-bar .level{display:inline-block;border-radius:20px;padding:6px 13px;font-weight:700;white-space:nowrap}@media(max-width:720px){.intro-art{display:none}.identity-bar .level{font-size:10px;padding:5px 8px}}

/* Every illustration depicts its own learning concept, shown without cropping. */
.app-icon,.small-building,.french-shop{background:#fffaf1}.scene-image,.world-art.scene-image{object-fit:contain!important;object-position:center!important}.scene-triptych{display:flex;width:100%;height:100%;gap:3px;padding:3px;background:#fffaf1;align-items:center;border-radius:10px;overflow:hidden}.scene-triptych img{width:calc((100% - 6px)/3);height:100%;object-fit:contain!important;object-position:center!important;min-width:0}.intro-art .scene-triptych{border-radius:0;padding:6px}.subapps .app-icon{height:190px}.app-icon img.scene-image{width:100%;height:100%;object-fit:contain!important}.french-shop{height:155px}.small-building{height:125px;width:170px}.library-grid .app-icon .scene-triptych{gap:1px;padding:0}.app-icon>.scene-triptych{position:relative}@media(max-width:600px){.subapps .app-icon{height:150px}.french-shop{height:95px;width:100px}.small-building{height:95px;width:125px}}

/* Final board-game palette: warm paper canvas, vivid card colours. */
:root{--mv-blue:#278fc4;--mv-blue-dark:#205777;--mv-sky:#fff2d5;--mv-paper:#fffdf5;--mv-green:#69ac3a;--mv-orange:#f08b34;--mv-purple:#9560bb;--mv-yellow:#ffd454;--mv-ink:#293f4d;--mv-border:#c9b78e;--mv-shadow:#b7a47b}
.identity-bar,.home>header{border-color:#d3b97c;box-shadow:0 4px 0 #bca472}.level{background:#fff0ba;border-color:#d5b457}.apps,.subapps{background:#e9f3cd;border-color:#9ebf59;box-shadow:0 6px 0 #9ebf59}.app-tile{border-top:10px solid var(--accent)}.universe-1{--accent:#278fc4}.universe-2{--accent:#f08b34}.universe-3{--accent:#69ac3a}.universe-4{--accent:#9560bb}.app-tile.locked{border-color:#c9b78e;border-top-color:var(--accent);background:#fff9ed}.app-tile.locked .app-label,.app-caption{color:#526273}.app-icon{background:#fffdf5}.panel{border-top:8px solid var(--mv-blue)}.intro{background:#ffedac!important;border-color:#d7b851!important;box-shadow:0 4px 0 #d7b851!important}.steps button:nth-child(1){border-top:5px solid #278fc4}.steps button:nth-child(2){border-top:5px solid #69ac3a}.steps button:nth-child(3){border-top:5px solid #f08b34}.steps button:nth-child(4){border-top:5px solid #9560bb}.steps button[aria-current="step"]{background:#ffdc68!important;border-color:#b99433!important}.primary{background:#205777}.question{border-left:6px solid #f0b43f;background:#fff9e9}.choice .letter{background:#e3f2fa;color:#205777}.choice.chosen{outline-color:#278fc4!important}.tabletop-tokens span{background:#fff5d9;color:#64552f}.tabletop-tokens .earned{background:#ffcf42}.shop-destinations .choice.integrated,.destination.bin-0{background:#dceffa;border-color:#278fc4}.town-panorama{box-shadow:0 5px 0 #b7a47b}
.intro>.intro-art{flex:0 0 190px;display:grid;place-items:center;padding:8px;background:#fff9e5;border-left:2px solid #d7b851}.intro-art>img{display:block;width:165px;height:125px;object-fit:contain!important;margin:0;border-radius:12px}.memo #theory:has(>.theory-card:only-child){display:block;max-width:800px;margin:18px auto}.memo #theory>.theory-card:only-child{background:#fff8df;border-left:5px solid #efad32;color:#293f4d}.memo #theory>.theory-card:only-child p{font-size:var(--reading-size);margin:18px 0}
@media(max-width:720px){.intro>.intro-art{flex-basis:90px;padding:4px}.intro-art>img{display:block!important;width:80px;height:85px}.intro>div{padding:14px}.intro-art .scene-triptych{display:flex}.intro-art .scene-triptych img{display:block!important}.intro .scene-triptych{height:85px}.intro-art .scene-triptych img{width:calc((100% - 6px)/3);height:85px}}
@media(max-width:600px){.steps{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.steps button{min-width:0;min-height:48px}.reading-tools .voice-choice{flex-basis:auto;flex:1;min-width:150px}.reading-tools .voice-choice select{min-width:105px;max-width:150px}.reading-tools button{padding:8px 10px}}

/* MiniVille · minimal interface, calm surfaces and clear actions. */
:root{--mv-blue:#238fd1;--mv-blue-dark:#0066cc;--mv-sky:#f5f5f7;--mv-paper:#ffffff;--mv-green:#75ad43;--mv-orange:#ed8b3d;--mv-purple:#9864bc;--mv-yellow:#ffd454;--mv-ink:#1d1d1f;--mv-border:#dce0e5;--mv-shadow:#dce0e5;--ink:var(--mv-ink);--sage:var(--mv-blue-dark)}
body{background:var(--mv-sky)!important;color:var(--mv-ink);font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Arial,sans-serif;line-height:1.55}
.identity-bar,.home>header{background:#fff;border:1px solid #e2e5e9;border-radius:20px;box-shadow:0 3px 15px #1d1d1f06;padding:12px 20px}.brand-logo{width:220px}.level,.identity-bar .level{background:#f5f5f7;border:0;color:#62676f;font-weight:600}
.welcome h1,.section-title h1,h1{color:#1d1d1f;font-weight:650;letter-spacing:-.025em;line-height:1.2}.welcome h1{font-size:38px}.welcome p,.section-title p,.back,footer,footer a,.app .eyebrow,.app-caption{color:#62676f}.back,.menu-return{color:#0066cc!important}
.app .intro{background:#fff;border:1px solid #e2e5e9;border-radius:20px;box-shadow:0 3px 15px #1d1d1f06}.app .intro h2{color:#1d1d1f;font-weight:650}.intro-art{border-left:1px solid #e2e5e9}
.apps,.subapps{background:transparent;border:0;box-shadow:none;padding:0}.app-tile,.app-tile.locked{background:#fff;border:1px solid #e2e5e9;border-top:3px solid var(--accent);border-radius:20px;box-shadow:0 3px 16px #1d1d1f08}.app-tile.locked{opacity:.8}.app-label,.app-tile.locked .app-label{color:#1d1d1f;font-weight:650}.app-tile.locked .app-caption{color:#62676f}
.app-icon,.small-building,.french-shop,.scene-triptych{background:#fff}.town-panorama{border:1px solid #e2e5e9;box-shadow:0 3px 16px #1d1d1f08;border-radius:22px}
.panel,.city-card,.practice,.mini-game,.mission-card,.question,.route-piece,.reading-tools,.memo,.game-help,.hint,.word-help,.form-card,.game-app,.retry-list article{background:#fff;border:1px solid #e2e5e9;border-radius:20px;color:#1d1d1f;box-shadow:0 3px 16px #1d1d1f06}
.panel,.mini-game,.mission-card{border-top:1px solid #e2e5e9}.question{background:#f5f7fa;box-shadow:none;border-color:#e5e8ee;border-radius:16px}.mission-card h3,.question,.panel h2{color:#1d1d1f;font-weight:650}
.steps button,.steps button:nth-child(2),.steps button:nth-child(3),.steps button:nth-child(4){background:#fff;border:1px solid #dce0e5;border-radius:14px;color:#41464d;box-shadow:none;font-weight:600}.steps button:disabled{background:#f0f1f4;border:1px solid #e2e5e9;color:#696e76;box-shadow:none}.steps span,.steps button:disabled span{color:inherit}.steps button[aria-current="step"]{background:#e8f2ff!important;color:#0059b3!important;border:1px solid #6ba6e8!important;box-shadow:none}
.shop-destinations .choice,.destination{border-width:1px;box-shadow:none;border-radius:16px}.shop-destinations .choice.independent{background:#fff5ec;border-color:#e8b890}.shop-destinations .choice.integrated,.destination.bin-0{background:#eef6ff;border-color:#a6c8e5;box-shadow:none}.shop-destinations .choice.associated{background:#f2f8ea;border-color:#bed3a6}.destination.bin-1{background:#fff5ec;border-color:#e8b890}.choice.chosen,.shop-destinations .choice.chosen{outline:2px solid #0066cc;outline-offset:2px}
.primary,.start,.resource{background:#0066cc;color:#fff;border:0;border-radius:12px;box-shadow:none;font-weight:600}.secondary,.resource.paper{background:#fff;color:#0066cc;border:1px solid #dce0e5;border-radius:12px}.reading-tools button{background:#fff;color:#0066cc;border:1px solid #dce0e5;border-radius:10px}.voice-choice,.voice-choice select{color:#41464d}.voice-choice select{background:#fff;border-color:#dce0e5;border-radius:10px}.reading-tools #reading-status{color:#62676f}
.tag{background:#edf3fb;color:#39628a;border-radius:7px;font-weight:600}.score{background:#fff;border:1px solid #e2e5e9;box-shadow:none;border-radius:16px;color:#62676f}.score strong{color:#1d1d1f;font-weight:650}.game-badge{background:#edf3fb;color:#0066cc}.city-heading,.city-footer{background:#fff;color:#1d1d1f}.city-heading h2{color:#1d1d1f}
.small,.muted,.score-note,.form-card p,.result small,.result-label,.progress-head,.retry-list p,.memo .definition,.memo summary span,.memo #course>summary:after{color:#62676f}.module-count{background:#f0f2f5;color:#41464d}.tabletop-tokens span,.tokens .token{box-shadow:none;border-width:1px;background:#f0f2f5;color:#62676f}.tabletop-tokens .earned,.tokens .token.earned{background:#fff0b9;border-color:#e5c56b;color:#66521b;box-shadow:none}.feedback.good{background:#edf7ee;color:#2e6338}.feedback.retry,.feedback.bad{background:#fff4e6;color:#81511f}
button:focus-visible,a:focus-visible,summary:focus-visible{outline:3px solid #0066cc;outline-offset:4px}
@media(max-width:600px){.brand-logo{width:170px}.identity-bar,.home>header{padding:10px 12px}.welcome h1{font-size:29px}.steps{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.steps button{min-width:0;min-height:48px}.reading-tools .voice-choice{flex-basis:auto;flex:1;min-width:150px}.reading-tools .voice-choice select{min-width:105px;max-width:150px}.reading-tools button{padding:8px 10px}}
@media(max-width:360px){.brand-logo{width:150px}}

.choice{background:#fff;border-color:#dce0e5;color:#1d1d1f}.choice.chosen{background:#e8f2ff;border-color:#0066cc}.choice.chosen .letter{background:#0066cc;color:#fff}.choice.good{background:#edf7ee;border-color:#99c4a0}.steps button[aria-current="step"] span{color:#0059b3}.result{color:#1d1d1f}
progress{accent-color:#0066cc}progress::-webkit-progress-bar{background:#e8ebef}progress::-webkit-progress-value{background:#0066cc}progress::-moz-progress-bar{background:#0066cc}
.repere,.lock-note,.course-pocket summary,.programme-list details{background:#fff;border-color:#e2e5e9;color:#41464d;box-shadow:none}.repere h2,.lock-note h2{color:#1d1d1f}.voice-choice select:focus-visible{outline:3px solid #0066cc;outline-offset:3px}
.app .intro>.intro-art{background:#fff;border-left-color:#e2e5e9}.intro-art>.scene-triptych{background:#fff}.memo #theory>.theory-card:only-child{background:#fff;border-left:3px solid #dce0e5;color:#1d1d1f}

.practice .choice{background:#fff;border:1px solid #dce0e5;font-family:inherit}.practice .choice.correct{background:#edf7ee;border-color:#99c4a0}.game-closed .game-badge,.repere li:before{background:#f0f2f5;color:#62676f;border-color:#dce0e5}.route-slots li{background:#fff;border-color:#dce0e5}.route-slots .placed{background:#edf7ee;border-color:#99c4a0}.app-tile:before{display:none}.choice,.primary,.secondary,.start,.resource,.reading-tools button{font-family:inherit}.programme-list a{color:#0066cc}

/* Audit: final surfaces override earlier decorative rules; image answers follow A+. */
.app .intro{background:#fff!important;border:1px solid #e2e5e9!important;box-shadow:0 3px 15px #1d1d1f06!important}
.choice{font-size:var(--reading-size,18px)}
.shop-destinations .choice{font-size:max(19px,var(--reading-size,18px))}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{scroll-behavior:auto!important;transition:none!important;animation:none!important}}

.choice:not(.chosen):not(.good){border-color:#7d8895}

.city-heading span,.intro details summary{color:#62676f}
.city-footer strong,#notice{color:#41464d}

/* Comfortable targets in both readers, including A− and A+. */
.reading-tools button{min-width:44px;min-height:44px}
