:root{
  --navy:#14233f; --ink:#08142f; --paper:#fffaf0; --yellow:#ffd34f; --coral:#f17955;
  --teal:#4cc6c0; --lime:#a8dc62; --pink:#ff8eb6; --sky:#bfe7ff; --white:#fff;
  --shadow:6px 6px 0 #08142f; --radius:18px;
}
*{box-sizing:border-box} html,body{margin:0;min-height:100%;font-family:Inter,Arial,sans-serif;background:#91d4f4;color:var(--ink)}
body{background-image:linear-gradient(rgba(255,255,255,.2) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.2) 1px,transparent 1px);background-size:24px 24px}
button{font:inherit}.hidden{display:none!important}.app-shell{min-height:100vh;display:flex;flex-direction:column}
.topbar{position:sticky;top:0;z-index:20;display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:12px;padding:10px 16px;background:var(--navy);color:#fff;border-bottom:4px solid var(--yellow)}
.brand{font-weight:900;letter-spacing:.14em;text-align:center}.top-actions{display:flex;gap:8px}.top-btn,.icon-btn{border:2px solid #fff;background:#24436f;color:#fff;border-radius:10px;padding:9px 12px;font-weight:800;cursor:pointer}.icon-btn{width:42px;padding:9px 0}.top-btn:hover,.icon-btn:hover{background:#315788}.top-btn:focus-visible,.icon-btn:focus-visible,.choice:focus-visible,.country-card:focus-visible{outline:4px solid var(--yellow);outline-offset:2px}
#main{flex:1;display:flex;align-items:stretch;justify-content:center;padding:18px}.screen{width:min(1240px,100%);margin:auto}.panel{background:var(--paper);border:4px solid var(--ink);border-radius:var(--radius);box-shadow:var(--shadow)}
.hero{overflow:hidden;display:grid;grid-template-columns:1.2fr .8fr;min-height:68vh}.hero-art{background:#000;min-height:420px}.hero-art img{width:100%;height:100%;object-fit:cover;display:block}.hero-copy{padding:34px;display:flex;flex-direction:column;justify-content:center}.eyebrow{font-weight:900;color:#b6422e;letter-spacing:.12em}.hero h1{font-size:clamp(38px,6vw,78px);margin:8px 0 10px;line-height:.92}.hero p{font-size:18px;line-height:1.5}.primary,.secondary{border:3px solid var(--ink);border-radius:12px;padding:13px 18px;font-weight:900;cursor:pointer;box-shadow:4px 4px 0 var(--ink)}.primary{background:var(--yellow)}.secondary{background:#fff}.buttons{display:flex;gap:12px;flex-wrap:wrap;margin-top:18px}
.country-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:14px}.country-card{position:relative;min-height:430px;border:4px solid var(--ink);border-radius:18px;overflow:hidden;background:#fff;cursor:pointer;box-shadow:5px 5px 0 var(--ink);text-align:left;padding:0}.country-card img{width:100%;height:330px;object-fit:cover;display:block}.country-card .country-label{padding:14px;font-size:21px;font-weight:900}.country-card .country-role{display:block;font-size:12px;margin-top:5px;color:#4b566c}.country-card:hover{transform:translateY(-3px)}
.setup{padding:24px}.setup h2{margin-top:0}.population-row{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.population-row input{width:120px;border:3px solid var(--ink);border-radius:10px;padding:10px;font-size:20px;font-weight:900}.hint{font-size:14px;color:#5b6475}
.game{display:grid;grid-template-rows:auto 1fr auto;gap:12px}.hud{display:grid;grid-template-columns:repeat(4,1fr);gap:10px}.meter{background:#fff;border:3px solid var(--ink);border-radius:14px;padding:10px 12px}.meter-top{display:flex;justify-content:space-between;font-weight:900;font-size:13px}.bar{height:14px;background:#e4e8ef;border:2px solid var(--ink);border-radius:99px;overflow:hidden;margin-top:6px}.fill{height:100%;background:var(--teal);width:50%}.meter.economy .fill{background:var(--yellow)}.meter.support .fill{background:var(--pink)}.meter.population .fill{background:var(--lime)}
.story-panel{display:grid;grid-template-columns:1.08fr .92fr;overflow:hidden;min-height:560px}.scene-art{background:#0a1326;position:relative}.scene-art img{width:100%;height:100%;object-fit:cover;display:block}.scene-badge{position:absolute;top:14px;left:14px;background:var(--yellow);border:3px solid var(--ink);border-radius:10px;padding:7px 10px;font-weight:900}.story-copy{padding:24px;display:flex;flex-direction:column}.story-copy h2{font-size:30px;margin:0 0 10px}.story-copy p{font-size:17px;line-height:1.45}.choice-grid{display:grid;gap:10px;margin-top:auto}.choice{border:3px solid var(--ink);border-radius:12px;background:#fff;padding:13px 14px;text-align:left;font-weight:800;cursor:pointer}.choice:hover{background:#fff2b8}.choice b{display:block;margin-bottom:4px}.choice small{font-weight:500;color:#566070}.round-line{display:flex;justify-content:space-between;align-items:center;font-size:13px;font-weight:900}.consequence{background:#fff;border:3px dashed var(--ink);border-radius:12px;padding:14px;margin-top:12px}.delta{display:inline-block;margin:4px 4px 0 0;border:2px solid var(--ink);border-radius:999px;padding:5px 8px;background:#fff;font-size:12px;font-weight:900}.delta.pos{background:#dff7c4}.delta.neg{background:#ffd6d1}
.end-grid{display:grid;grid-template-columns:1fr 1fr;overflow:hidden}.end-art img{width:100%;height:100%;object-fit:cover}.end-copy{padding:30px}.rank{font-size:60px;font-weight:1000;margin:0;color:#d95135}.report{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin:16px 0}.report .meter{background:#fff}.score{font-size:26px;font-weight:900}
.modal-layer{position:fixed;inset:0;z-index:100;background:rgba(5,12,28,.72);display:flex;align-items:center;justify-content:center;padding:20px}.modal{width:min(920px,100%);max-height:90vh;overflow:auto;background:var(--paper);border:4px solid var(--ink);border-radius:18px;box-shadow:8px 8px 0 var(--ink);padding:24px}.modal h2{margin-top:0}.tutorial-step{font-size:18px;line-height:1.5}.vocab-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:8px}.vocab-item{background:#fff;border:2px solid var(--ink);border-radius:10px;padding:9px}.vocab-item b{display:block}.print-only{display:none}
.crossword-wrap{margin-top:16px;overflow:auto}.crossword{border-collapse:collapse;margin:auto}.crossword td{width:28px;height:28px;border:1px solid #777;background:#fff;text-align:center;position:relative;font-weight:900}.crossword td.block{background:#1a2740}.crossword td .num{position:absolute;top:1px;left:2px;font-size:8px;font-weight:700}.clues{columns:2;column-gap:28px;margin-top:18px}.clue{break-inside:avoid;margin:0 0 8px}.teacher-answer{color:#8a1f1f}
@media(max-width:980px){.country-grid{grid-template-columns:repeat(2,1fr)}.hero,.story-panel,.end-grid{grid-template-columns:1fr}.hero-art{min-height:280px}.scene-art{min-height:360px}.hud{grid-template-columns:repeat(2,1fr)}}
@media(max-width:560px){#main{padding:10px}.country-grid{grid-template-columns:1fr}.country-card{min-height:0}.country-card img{height:230px}.topbar{grid-template-columns:1fr auto}.brand{display:none}.story-copy{padding:16px}.hud{grid-template-columns:1fr 1fr}.vocab-grid{grid-template-columns:1fr}.clues{columns:1}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important;animation:none!important}.country-card:hover{transform:none}}
@media print{body{background:#fff}.app-shell,.modal-layer{display:none!important}.print-only{display:block!important}.print-sheet{padding:8mm;color:#000}.crossword td{width:7mm;height:7mm}.clues{columns:2}.teacher-answer{color:#000}}

/* v17.6 — tutorial/modal overlays never participate in document flow. */
.modal-layer{
  position:fixed!important;
  inset:0!important;
  z-index:1000!important;
  width:100vw!important;
  height:100dvh!important;
  contain:layout paint;
}
.modal-layer.hidden{display:none!important}
.modal-layer>.modal{position:relative;max-height:calc(100dvh - 32px);overflow:auto}
