/* Shared reading, action and focus tokens across child and parent surfaces. */
:root{--dim:#6d5c48;--action:#f16524;--action-ink:#2b2018;--ui-radius:18px;--ui-tap:44px}
.btn,.cta,.wc-go{background:var(--action);color:var(--action-ink);text-shadow:none}
.btn:hover:not(:disabled),.cta:hover{filter:none;background:#ff985e;color:var(--action-ink)}
.btn:active:not(:disabled){background:#f16524;color:var(--action-ink)}
button:focus-visible,a:focus-visible,summary:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid #2b2018;outline-offset:4px}
.backlink,.leave,.map-back,.chiptop,.dock-topics .chiptop,.qopt,.link,.dock-head .btn{min-height:var(--ui-tap)}
.chiptop,.dock-topics .chiptop{font:500 15px/1.4 system-ui;padding:10px 14px;text-align:left}
.eyebrow,.mission-kicker{line-height:1.4}
.home-screen .hero{min-height:0;padding-bottom:24px}
.home-screen .hero h1{font-size:clamp(32px,4vw,48px);max-width:18ch;line-height:1.12}
.home-screen .speech{min-height:0;font-size:17px;max-width:42ch;margin:14px 0 22px}
.home-screen .mission-card{margin-top:20px}
.home-screen .bigcta{margin-top:14px}
.child-context{display:flex;align-items:center;gap:10px;margin:0 0 14px;color:var(--dim);font-size:14px}
.child-context .link{font-size:14px;padding:4px 8px}
.practice-options,.all-games{border:1px solid var(--rule);border-radius:var(--ui-radius);background:#fff;margin:14px 0;padding:0 16px}
.practice-options>summary,.all-games>summary{cursor:pointer;min-height:48px;padding:12px 0;font-weight:650;line-height:1.5}
.practice-options .questbar{margin:0 0 14px;border:0;padding:6px 0;background:none;backdrop-filter:none}
.topics{display:block}
.dock-topics{display:flex;flex-wrap:wrap;gap:8px;margin:6px 0}
.practice-shortcuts{display:flex;gap:10px;flex-wrap:wrap;margin:18px 0}
.practice-shortcuts .backlink{background:#fff;border:1px solid var(--rule);border-radius:14px;padding:12px 16px;cursor:pointer;font:600 15px system-ui;color:var(--ink)}
.resume-card{border:1px solid #96b5a8;background:#eef7f0;border-radius:18px;padding:16px;margin-bottom:18px}
.resume-card p{margin:0 0 12px}
.resume-card .btn{width:auto;min-height:48px}
.ui-dialog{border:1px solid var(--rule);border-radius:22px;padding:24px;max-width:min(620px,calc(100vw - 24px));color:var(--ink);background:#fffdf8;box-sizing:border-box}
.ui-dialog::backdrop{background:#2b201870}
/* Opens with a short settle, centred: a modal has no trigger to grow from.
   --ease-out lives in index.html only, hence the fallback copy. */
.ui-dialog[open],.ui-dialog[open]::backdrop{transition:opacity .2s var(--ease-out,cubic-bezier(.23,1,.32,1)),scale .2s var(--ease-out,cubic-bezier(.23,1,.32,1))}
@starting-style{.ui-dialog[open]{opacity:0;scale:.96}.ui-dialog[open]::backdrop{opacity:0}}
@media(prefers-reduced-motion:reduce){.ui-dialog[open]{transition-property:opacity}}
.ui-dialog h2{margin:0 0 14px;font-size:24px}
.ui-dialog label{display:block;margin:14px 0 6px;font-weight:600}
.ui-dialog input,.ui-dialog select{display:block;width:100%;min-height:48px;padding:10px 12px;border:1px solid #9d8e7f;border-radius:10px;font:16px system-ui;color:var(--ink);background:white}
.ui-dialog .btn{margin:16px 0;width:auto}
.ui-dialog p[role=status]{min-height:1.6em;color:#6d3820}
.ui-close{margin-top:14px}
.diagram-open{display:block;margin:12px 0 4px;background:white;padding:9px 14px;color:var(--ink);border:1px solid #9d8e7f;border-radius:12px;cursor:pointer}
.diagram-large{overflow:auto;max-height:65vh;max-width:100%;background:white;padding:12px}
.diagram-large svg{min-width:600px;width:100%;height:auto;max-height:none}
.ui-error{color:#773510;background:#fff2e9;border-left:3px solid #bd5826;padding:12px 16px;border-radius:8px}
#fb{outline-offset:4px}
.all-games .wc-tiles{padding:12px 0}
.wc-scene .wc-tiles{grid-template-columns:repeat(3,minmax(0,1fr))}
.wc-scene .wc-how{font-size:14px;color:var(--dim)}
.wc-scene .wc-go{font-size:14px}
[hidden]{display:none!important}
@media(max-width:760px){
 html[data-world-mode=home] #world-layer{height:170px;opacity:.8;pointer-events:none}
 .home-screen .hero{padding-top:76px}
 .home-screen .hero h1{font-size:34px;max-width:18ch}
 .home-screen .speech{font-size:16px;margin:12px 0 16px}
 .home-screen .subj-row{grid-template-columns:repeat(2,minmax(0,1fr))}
 .home-screen .subj:last-child{grid-column:auto}
 .home-screen .subj{font-size:16px;padding:12px;min-height:80px}
 .home-screen .cove{margin-top:18px}
 .question-screen .opts:has(.shape){grid-template-columns:repeat(2,minmax(0,1fr))}
 .opt.shape svg{max-height:140px}
 .wc-scene .wc-tiles{grid-template-columns:repeat(2,minmax(0,1fr))}
 .diagram-large svg{min-width:520px}
}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important}}

h1[tabindex="-1"]:focus,.question-prompt[tabindex="-1"]:focus,.qhead[tabindex="-1"]:focus{outline:none}
