
:root{font-family:'Segoe UI',system-ui,sans-serif;color:#203c35;background:#f6f8f7;font-synthesis:none}*{box-sizing:border-box}body{margin:0}button,a{-webkit-tap-highlight-color:transparent}button{font:inherit;cursor:pointer;border:0}button:focus-visible,a:focus-visible{outline:3px solid #cc6e26;outline-offset:5px}h1:focus{outline:none}header,main,footer{max-width:1120px;margin:auto}header{display:flex;justify-content:space-between;align-items:center;padding:28px 32px;border-bottom:1px solid #dce5df}.brand{display:flex;align-items:center;gap:12px;font-size:18px;font-weight:750;text-decoration:none;color:inherit}.brand-icon{background:#203f35;color:white;border-radius:12px;padding:8px 13px;font-size:25px}.quiet{background:transparent;color:#486356;padding:12px 0;font-size:15px}main{padding:46px 32px 50px;min-height:75vh}.eyebrow{font-size:12px;letter-spacing:2px;font-weight:750;color:#657d70;margin:0 0 18px}h1{font-size:clamp(32px,4.1vw,48px);line-height:1.16;letter-spacing:-1.6px;margin:0 0 18px;font-weight:720}p{line-height:1.7;color:#62776b;font-size:16px}.intro{margin-bottom:32px}.intro>p:last-child{margin:0}.daily{background:#e0eddf;border-radius:24px;display:grid;grid-template-columns:1.4fr 1fr;padding:34px 40px;gap:20px;position:relative;overflow:hidden}.tag{font-size:12px;letter-spacing:1.8px;font-weight:700;color:#446648}.daily h2{font-size:29px;letter-spacing:-.6px;margin:16px 0 10px}.daily p{color:#506e53;margin-top:0}.primary{display:inline-flex;align-items:center;justify-content:space-between;gap:35px;background:#214c3b;color:white;min-height:52px;padding:14px 25px;border-radius:12px;font-weight:650}.primary:hover{background:#143b2c}.duration{display:block;font-size:13px;color:#506e53;margin-top:14px}.word-art{display:flex;flex-direction:column;justify-content:center;align-items:center;transform:rotate(-5deg);color:#2c5e40;border-left:1px solid #bdd4b9}.word-art>span{font-size:23px}.word-art strong{font-size:56px;line-height:.98;letter-spacing:-2px}.word-art i{font-size:14px;margin-top:20px;background:#f5e99b;padding:8px 18px;border-radius:30px;font-style:normal;transform:rotate(5deg)}.languages{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-top:22px}.languages article{display:flex;align-items:center;gap:12px;position:relative;background:white;border:1px solid #e1e7e2;border-radius:16px;padding:22px 18px 43px}.language-code{font-weight:750;background:#edf1f8;color:#526985;border-radius:9px;padding:11px;font-size:14px}.selected .language-code{background:#e6eedc;color:#4b6d39}.languages h2{font-size:17px;margin:0}.languages p{font-size:13px;margin:4px 0 0}.pill,.soon{position:absolute;bottom:14px;left:18px;font-size:12px;color:#617569}.pill{color:#3f6a34}footer{border-top:1px solid #dce5df;display:flex;justify-content:space-between;padding:24px 32px;font-size:12px;color:#697c70}.exercise,.parent{max-width:850px;margin:auto}.exercise>.quiet,.parent>.quiet{margin-bottom:32px}.sentence{font-size:clamp(23px,3vw,32px);color:#294538;background:white;border:1px solid #dee7df;padding:30px;border-radius:18px;margin:28px 0}.options{display:flex;gap:14px;flex-wrap:wrap}.option{background:white;border:2px solid #cfdbd1;border-radius:12px;padding:18px 28px;font-size:21px;color:#203c35;min-width:140px}.option:disabled{cursor:default;opacity:.7}.option.correct{border-color:#577b4a;background:#e0eddf;opacity:1}.feedback{margin-top:28px;padding:25px;background:#e9efe6;border-radius:16px}.feedback strong{font-size:21px}.feedback p{margin-top:8px}.finish{text-align:center;padding:50px 0}.finish-icon{display:block;color:#bd783d;font-size:75px;margin-bottom:30px}.finish .primary{margin-top:20px}.parent-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px;margin-top:25px}.parent-grid article{background:white;border:1px solid #dce5df;padding:24px;border-radius:18px}.parent-grid h2{font-size:21px}li{padding:8px 0;line-height:1.5}.note{font-size:14px} @media(max-width:700px){header{padding:18px 20px}.brand{font-size:15px;gap:8px}.quiet{font-size:14px}main{padding:32px 20px}.daily{padding:28px;grid-template-columns:1fr}.word-art{display:none}.languages{grid-template-columns:1fr}.languages article{padding:20px}.pill,.soon{position:static;margin-left:auto}.languages p{font-size:14px}.parent-grid{grid-template-columns:1fr}.option{flex:1;min-width:110px;padding:16px}.sentence{padding:23px}.daily h2{font-size:25px}footer{padding:20px;gap:20px;flex-wrap:wrap}}


/* Accueil enfant V2 — styles limités à l'accueil. */
body.child-home{background:#f5f5fc;color:#202346;min-height:100vh}
.child-home header{border:0;padding-top:26px}
.child-home .brand-icon{background:#5a4bdf;border-radius:14px;transform:rotate(-7deg)}
.child-home header .quiet{color:#555974;min-height:48px}
.child-home main{padding-top:40px}
.child-home footer{display:none}
.home-intro{margin-bottom:32px}
.home-intro h1{font-size:clamp(38px,5vw,56px);font-weight:800;letter-spacing:-2px;margin-bottom:8px}
.home-intro h1 span{display:inline-block;color:#ffac45;font-size:.85em;margin-left:8px}
.home-intro p{font-size:20px;color:#606480;margin:0}
.challenge-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px}
.challenge-card{background:#e5eeff;border:2px solid #d2e1ff;border-radius:30px;padding:28px;position:relative;overflow:hidden;box-shadow:0 8px 0 #d7e1f6}
.card-top{display:flex;align-items:center;justify-content:space-between;gap:16px}
.subject-code{background:#fff;color:#2754b3;border-radius:14px;padding:12px 14px;font-size:20px;font-weight:850}
.time-label{font-weight:700;color:#294984;background:#ffffffa8;border-radius:30px;padding:9px 15px}
.letter-art{height:144px;display:flex;align-items:center;justify-content:center;gap:12px;user-select:none}
.letter-art span{display:grid;place-items:center;background:#3972eb;color:white;width:72px;height:78px;border-radius:18px;font-size:48px;font-weight:800;transform:rotate(-12deg);box-shadow:0 5px 0 #b4ccfb}
.letter-art span:nth-child(2){background:white;color:#3566d5;transform:rotate(9deg) translateY(9px)}
.letter-art span:nth-child(3){width:48px;height:52px;background:#ffc65c;color:#684413;font-size:30px;transform:rotate(16deg) translateY(-13px)}
.challenge-card h2{font-size:32px;letter-spacing:-.8px;margin:12px 0 6px}
.challenge-card>p{font-size:16px;margin:0 0 26px;color:#435780}
.challenge-start,.completed{display:flex;align-items:center;justify-content:space-between;width:100%;min-height:60px;border-radius:16px;padding:17px 22px;font-size:16px;font-weight:800;letter-spacing:.6px;background:#285bd7;color:#fff}
.challenge-start:hover{background:#1949bf}
.challenge-start:active{transform:translateY(2px)}
.challenge-start span{font-size:24px;line-height:1}
.completed{justify-content:center;gap:12px;background:#fff;color:#2854ae;letter-spacing:0}
.is-done .letter-art{opacity:.65}
@media(max-width:600px){.child-home main{padding:24px 20px 36px}.home-intro{margin-bottom:24px}.challenge-grid{grid-template-columns:1fr;gap:24px}.challenge-card{padding:24px}.letter-art{height:115px}.challenge-card h2{font-size:29px}}
.challenge-card:only-child{grid-column:1 / -1;width:100%;max-width:540px}@media(min-width:601px) and (max-width:850px){.challenge-card{padding:24px}.letter-art{gap:7px}.letter-art span{width:60px;height:68px}}

/* Défi enfant : mêmes couleurs et boutons tactiles que l'accueil. */
body.child-play{background:#f5f5fc;color:#202346;min-height:100vh}
.child-play header{border:0}.child-play .brand-icon{background:#5a4bdf;border-radius:14px;transform:rotate(-7deg)}
.child-play .quiet{color:#555974;min-height:48px}.child-play footer{display:none}
.child-play main{padding-top:24px}.play-screen{max-width:760px;margin:0 auto}
.play-top{display:flex;justify-content:space-between;align-items:center;margin-bottom:24px;gap:16px}
.play-subject{background:#e5eeff;color:#2854ae;border-radius:24px;padding:10px 16px;font-weight:750;font-size:14px}
.play-screen h1{font-weight:800;font-size:clamp(32px,4vw,44px);margin-bottom:8px}
.play-instruction{margin:0;color:#606480;font-size:18px}
.question-panel{position:relative;background:#e5eeff;border:2px solid #d2e1ff;border-radius:26px;padding:28px;margin:26px 0;display:flex;align-items:center;gap:22px}
.puzzle-icon{display:grid;place-items:center;flex-shrink:0;width:66px;height:72px;border-radius:17px;transform:rotate(-8deg);background:#3972eb;color:white;font-size:28px;font-weight:800;box-shadow:0 5px 0 #bfd2fb}
.child-play .sentence{background:none;border:0;padding:0;margin:0;color:#202346;font-size:clamp(23px,3vw,30px);line-height:1.6}
.blank{display:inline-block;min-width:48px;text-align:center;color:#285bd7;border-bottom:3px solid #7da2f4}
.child-play .options{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}
.child-play .option{min-width:0;min-height:82px;padding:18px 12px;border-radius:20px;border:2px solid #ccc7ed;background:#eeebff;color:#35305e;font-size:clamp(21px,3vw,26px);font-weight:750;box-shadow:0 4px 0 #ddd8ef;overflow-wrap:anywhere}
.child-play .option:nth-child(2){background:#fff0d5;border-color:#e8d2a8;box-shadow:0 4px 0 #ebddc0}
.child-play .option:nth-child(3){background:#e2f4f3;border-color:#b7d9d6;box-shadow:0 4px 0 #c8e3df}
.child-play .option:nth-child(4){background:#ffe8e4;border-color:#e6c0b8;box-shadow:0 4px 0 #efd1cb}

.child-play .option.chosen{border-color:#5140c5;box-shadow:0 0 0 2px #5140c5;transform:translateY(2px)}
.child-play .retry-message{min-height:28px;margin:20px 0 12px;color:#555174;font-size:17px}
.validate{max-width:320px;margin-left:auto}.validate:disabled{background:#d9ddeb;color:#555974;cursor:default}
.found-screen{text-align:center;padding-top:40px;max-width:620px}
.found-icon{display:grid;place-items:center;width:86px;height:86px;background:#e7e2ff;color:#6146d4;border-radius:26px;margin:0 auto 26px;font-size:46px;transform:rotate(-7deg)}
.found-word{color:#285bd7;font-size:38px;font-weight:800;margin:20px 0 30px}
.memory-tip{background:#fff0d5;border:2px solid #f1d9ac;border-radius:24px;text-align:left;padding:24px;margin:0 0 30px}
.memory-tip h2{font-size:19px;margin:0 0 8px;color:#684413}.memory-tip p{color:#534c40;font-size:20px;line-height:1.55;margin:0}
.found-screen .challenge-start{max-width:380px;margin:30px auto 0}
@media(max-width:600px){.child-play main{padding:12px 20px 30px}.play-top{margin-bottom:18px}.question-panel{padding:22px 18px;gap:14px;margin:22px 0}.puzzle-icon{width:44px;height:52px;font-size:22px}.child-play .options{gap:14px}.child-play .option{min-height:72px}.validate{max-width:none}.found-screen{padding-top:24px}}

.child-play .option:nth-child(5){background:#e4edff;border-color:#becfee;box-shadow:0 4px 0 #cedbf1}
.child-play .option:nth-child(6){background:#f5e6f4;border-color:#dfc3dc;box-shadow:0 4px 0 #e8d3e5}
.child-play .option.chosen{border-color:#5140c5;box-shadow:0 0 0 2px #5140c5}
@media(prefers-reduced-motion:no-preference){.option{transition:transform .12s,border-color .12s}.found-icon{animation:found-pop .25s ease-out}@keyframes found-pop{from{transform:scale(.85) rotate(-7deg)}to{transform:scale(1) rotate(-7deg)}}}

.anagram-play .question-panel{background:#eee9ff;border-color:#dcd1fc}.anagram-play .puzzle-icon{background:#7954d7;box-shadow:0 5px 0 #d3c1f6}
.anagram-play .play-subject{background:#eee9ff;color:#6341b5}.anagram-play .challenge-start{background:#6842c3}
.anagram-play .validate:disabled{background:#d9ddeb;color:#555974}
.letter-row{display:flex;flex-wrap:wrap;gap:10px;justify-content:center}
.letter-slot,.letter-tile{width:56px;min-height:60px;border-radius:14px;font-size:27px;font-weight:800;text-transform:uppercase;padding:8px;color:#49327c}
.letter-slot{background:white;border:2px solid #c3b1e6}.letter-slot:disabled{background:#ede8f8;border:2px dashed #c3b1e6;color:#766394;cursor:default}
.letter-bank{padding:24px 16px;background:#eee9f8;border-radius:22px}.letter-tile{background:#7954d7;color:white;box-shadow:0 4px 0 #5734a8}
.letter-tile.is-placed{background:transparent;color:#8973af;box-shadow:none;border:2px dashed #c3b1e6}.letter-tile:active:enabled{transform:translateY(3px);box-shadow:none}
.letter-help{text-align:center;font-size:14px;color:#655b7e;margin:16px 0 22px}
@media(max-width:600px){.letter-row{gap:8px}.letter-slot,.letter-tile{width:44px;min-height:48px;font-size:24px}.letter-bank{padding:18px 12px}}

/* Saisie libre : champ et validation côte à côte pour le clavier de la tablette. */
.writing-play .question-panel{background:#dff5f1;border-color:#b4e0d8;margin:20px 0;padding:24px}
.writing-play .puzzle-icon{background:#168575;box-shadow:0 5px 0 #a8d9d1}
.writing-play .play-subject{background:#dff5f1;color:#17695e}
.writing-play .blank{color:#17695e;border-color:#6bb5a8}
.writing-play .word-meaning{font-size:16px;line-height:1.45;color:#4d716b;margin:10px 0 0}
.writing-label{display:block;font-size:16px;font-weight:750;margin-bottom:10px;color:#355f58}
.writing-controls{display:flex;align-items:stretch;gap:14px}
#written-word{font:inherit;font-size:28px;font-weight:650;min-width:0;flex:1;width:100%;border:2px solid #9dccbf;border-radius:18px;background:#fff;padding:16px 18px;color:#214c44;min-height:68px;scroll-margin:20px}
#written-word::placeholder{font-weight:400;font-size:21px;color:#668b82}
#written-word:focus{outline:3px solid #168575;outline-offset:3px}
.writing-play .validate{width:auto;max-width:none;background:#117565;gap:18px;margin:0}
.writing-play .validate:disabled{background:#d5e7e1;color:#506f66;cursor:default}
.writing-play .found-word{color:#117565}.writing-play .found-icon{background:#dff5f1;color:#117565}
@media(max-width:600px){.writing-controls{gap:10px}.writing-play .validate{padding:14px;font-size:14px}.writing-play .validate span{display:none}#written-word{font-size:24px;padding:14px;min-height:60px}.writing-play .question-panel{padding:18px}.writing-play .play-top{margin-bottom:12px}}
@media(max-height:650px){.writing-play header{padding-top:10px;padding-bottom:10px}.writing-play main{padding-top:8px}.writing-play .play-top{margin-bottom:8px}.writing-play .question-panel{margin:12px 0;padding:16px}.writing-play .play-screen h1{font-size:30px}.writing-play .puzzle-icon{width:44px;height:48px}.writing-play .retry-message{margin-top:10px}}

.spelling-review{margin-top:18px}.spelling-review[hidden]{display:none}.spelling-letters{display:flex;flex-wrap:wrap;gap:6px}.spelling-letter{display:grid;place-items:center;min-width:36px;min-height:42px;padding:4px 8px;border-radius:9px;background:#f0edf7;color:#65577b;border:1px solid #d6cee4;font-size:24px;font-weight:750}.spelling-letter.correct{background:#e1f3e7;color:#216638;border-color:#93c9a3;border-bottom-width:3px}.spelling-letter.missing{border-style:dashed}.spelling-review p{font-size:13px;color:#506f66;margin:8px 0 0;line-height:1.4}

/* Groupes de mots : cases fixes, mêmes gestes que les lettres en vrac. */
.sentence-play .play-subject{background:#fff0c9;color:#795714}
.sentence-board{margin:26px 0 0;padding:24px;border-radius:26px;background:#fff4d9;border:2px solid #f0d89d}
.board-label{display:flex;align-items:center;gap:12px;color:#705218;font-weight:750;font-size:16px;margin-bottom:20px}
.pieces-icon{background:#f4ce6b;color:#705218;border-radius:10px;padding:8px 10px;transform:rotate(-6deg);font-size:20px}
.phrase-row{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.sentence-play .phrase-piece{width:100%;min-height:66px;height:auto;padding:14px 12px;font-size:19px;line-height:1.35;text-transform:none;overflow-wrap:anywhere;border-radius:14px}
.sentence-play .letter-slot{background:#fffdf7;color:#3c354d;border:2px solid #d4bb7e}
.sentence-play .letter-slot:disabled{background:#faefd3;border:2px dashed #d8c18d;color:#a38951}
.phrase-bank{padding:20px;border-radius:22px;background:#eeebf8}
.sentence-play .letter-tile{background:#63508b;color:#fff;box-shadow:0 4px 0 #49376d}
.sentence-play .letter-tile.is-placed{background:transparent;color:#82749c;border:2px dashed #c4b9d8;box-shadow:none}
.sentence-play .validate{background:#72521a}.sentence-play .validate:disabled{background:#e9dfc9;color:#75684d}
.sentence-play .found-icon{background:#fff0c9;color:#795714}.sentence-play .found-sentence{font-size:clamp(24px,3vw,32px);line-height:1.55;color:#58451e}
@media(max-width:600px){.sentence-board{padding:18px;margin-top:20px}.phrase-bank{padding:16px}.phrase-row{gap:10px}.sentence-play .phrase-piece{font-size:17px;min-height:64px;padding:12px 10px}}
@media(max-width:360px){.phrase-row{grid-template-columns:1fr}}

.anagram-play .letter-slot.is-fixed:disabled{background:#e1f3e7;color:#216638;border:2px solid #93c9a3;border-bottom-width:4px;opacity:1}.anagram-play .letter-tile.is-fixed{background:#e1f3e7;color:#39794b;border:2px solid #93c9a3;box-shadow:none;cursor:default;opacity:.7}

.preview-menu{margin-top:36px}.preview-menu h2{font-size:20px;color:#444566}.preview-menu>div{display:flex;flex-wrap:wrap;gap:12px}.preview-menu a{display:flex;align-items:center;min-height:48px;padding:12px 18px;border:1px solid #d8d4ed;background:#fff;border-radius:14px;color:#514284;text-decoration:none;font-weight:650}.preview-menu a:hover{background:#eeebff}.next-game{color:#606480;font-size:16px;margin-top:22px}

.header-actions{display:flex;align-items:center;gap:16px}.test-access{display:flex;align-items:center;min-height:44px;padding:10px 14px;background:#eee9ff;border:1px solid #d8ccef;border-radius:12px;color:#514284;text-decoration:none;font-size:14px;font-weight:700}.preview-menu{margin:0 0 30px}.found-screen+.preview-menu,.found-screen+div{margin-top:32px}.challenge-start[href]{text-decoration:none}.header-actions .quiet{white-space:nowrap}@media(max-width:600px){header{flex-wrap:wrap;gap:14px}.header-actions{gap:12px}.test-access{font-size:13px;padding:8px 12px}}

/* Memory : vingt cartes, lisibles sur tablette, aucun compteur. */
.memory-screen{max-width:1000px;margin:auto}.memory-play main{padding-top:14px}.memory-screen .play-top{margin-bottom:12px}.memory-screen h1{font-size:clamp(30px,4vw,42px);margin-bottom:6px;color:#242c57}.memory-screen .play-instruction{font-size:17px}
.memory-play .play-subject{background:#e4eafa;color:#344878}
.memory-board{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:12px;margin-top:22px}
.memory-card{position:relative;min-width:0;min-height:118px;border-radius:18px;padding:24px 10px 14px;border:2px solid #405582;background:linear-gradient(145deg,#31466f,#253358);color:#dbe7ff;box-shadow:0 4px 0 #182545;display:flex;align-items:center;justify-content:center;touch-action:manipulation}
.memory-back-mark{font-size:35px;opacity:.8}.memory-card.is-open{background:#fffdf6;color:#222b4c;border-color:#edce87;box-shadow:0 4px 0 #e0cfaa}.memory-card.is-matched{background:#e8f4ec;color:#294e3b;border-color:#b1d4be;box-shadow:0 4px 0 #c9e0d1;cursor:default}
.memory-language{position:absolute;top:8px;left:10px;font-size:10px;letter-spacing:1px;font-weight:800;color:#62738a}.memory-word{font-size:clamp(14px,1.9vw,19px);font-weight:700;line-height:1.3;overflow-wrap:anywhere;hyphens:auto;text-align:center}
.memory-status{min-height:24px;margin:18px 0 12px;font-size:16px;color:#5a6581}.memory-screen #memory-finish{max-width:280px;margin-left:auto}.memory-screen #memory-finish[hidden]{display:none}
.memory-play .found-icon{background:#e4eafa;color:#344878}
@media(max-width:600px){.memory-board{gap:8px}.memory-card{min-height:105px;padding:23px 5px 10px;border-radius:12px}.memory-word{font-size:14px}.memory-language{top:6px;left:6px}.memory-play main{padding-left:12px;padding-right:12px}.memory-back-mark{font-size:25px}}
@media(max-width:450px){.memory-board{grid-template-columns:repeat(4,minmax(0,1fr))}.memory-card{min-height:100px}}
@media(min-width:701px) and (max-height:780px){.memory-play header{padding-top:12px;padding-bottom:12px}.memory-card{min-height:94px}.memory-board{margin-top:16px}}
@media(prefers-reduced-motion:no-preference){.memory-card{transition:background-color .15s,border-color .15s}}

/* Les deux faces restent montées pour une rotation continue, y compris sur Safari. */
.memory-card,.memory-card.is-open,.memory-card.is-matched{padding:0;background:transparent;border:0;box-shadow:none;perspective:900px;overflow:visible;transition:none}
.memory-card-inner{position:absolute;inset:0;display:block;transform-style:preserve-3d;transition:transform .6s cubic-bezier(.35,.05,.2,1);border-radius:inherit;pointer-events:none}
.memory-card.is-open .memory-card-inner{transform:rotateY(180deg)}
.memory-face{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;border-radius:inherit;padding:24px 10px 14px;backface-visibility:hidden;-webkit-backface-visibility:hidden;border:2px solid #405582}
.memory-face-back{background:linear-gradient(145deg,#31466f,#253358);color:#dbe7ff;box-shadow:0 4px 0 #182545;font-size:35px;transform:rotateY(0deg)}
.memory-face-front{transform:rotateY(180deg);background:#fffdf6;color:#222b4c;border-color:#edce87;box-shadow:0 4px 0 #e0cfaa}
.memory-card.is-matched .memory-face-front{background:#e8f4ec;color:#294e3b;border-color:#b1d4be;box-shadow:0 4px 0 #c9e0d1}
@media(max-width:600px){.memory-face{padding:23px 5px 10px}.memory-face-back{font-size:25px}}
@media(prefers-reduced-motion:reduce){.memory-card-inner{transition:none}}

.rebuild-screen .letter-slot,.rebuild-screen .letter-tile{text-transform:none}
.rebuild-screen .article-label{font-size:24px;font-weight:750;color:#6341b5;text-align:center;margin:12px}
.hint-controls{display:flex;justify-content:center;align-items:center;gap:16px;margin:22px 0;flex-wrap:wrap}
.hint-button{background:#fff1c9;color:#634919;border:2px solid #dfc16d;border-radius:14px;min-height:48px;padding:12px 20px;font-weight:750}
.hint-button:disabled{opacity:.6;cursor:default}.hint-controls span{font-size:14px;color:#655b7e}

.found-screen .challenge-start:disabled{background:#d9ddeb;color:#555974;cursor:default;box-shadow:none;opacity:.75}

.session-toolbar{max-width:1000px;margin:0 auto 16px;display:flex;align-items:center;justify-content:space-between;gap:16px;color:#514284;font-weight:700;font-size:15px}
.session-toolbar[hidden],.session-overlay[hidden]{display:none}
.session-intro{max-width:720px;margin:auto;padding-top:20px}.session-intro h1{margin-top:20px}.session-intro .challenge-start{max-width:360px;margin:28px 0 12px}
.session-games{display:flex;flex-wrap:wrap;gap:12px;margin:28px 0}.session-games span{background:#eee9ff;border:1px solid #d8ccef;border-radius:14px;padding:14px;color:#514284;font-weight:700}
.session-trial-note{font-size:14px;color:#666c86}
.session-overlay{position:fixed;inset:0;z-index:100;background:rgba(29,31,59,.6);display:grid;place-items:center;padding:24px;overflow:auto}
.session-overlay>section{width:min(100%,560px);background:#faf9ff;border-radius:28px;padding:32px;box-shadow:0 20px 80px #141d4933}
.session-overlay h2{font-size:30px;color:#30265a;margin:0 0 18px}.session-overlay p{line-height:1.65}.session-overlay .challenge-start{margin-top:24px;width:100%}.session-overlay a{display:block;margin-top:20px;color:#514284;text-align:center;padding:12px}
#session-game[inert]{pointer-events:none}
@media(max-width:600px){.session-toolbar{font-size:13px}.session-overlay>section{padding:24px}.session-games{gap:8px}.session-games span{padding:12px}}

/* One persistent validation area, with space to scroll every answer above it. */
.child-play main{padding-bottom:calc(132px + env(safe-area-inset-bottom,0px))}
.validation-dock{position:fixed;z-index:20;inset:auto 0 var(--validation-inset,0px);display:flex;justify-content:flex-end;align-items:center;min-height:88px;padding:14px max(20px,calc((100vw - 752px)/2)) calc(14px + env(safe-area-inset-bottom,0px));background:#f6f6fc;border-top:1px solid #dedfee;box-shadow:0 -5px 20px #2529570a}
.child-play .validation-dock .validate{position:static;width:min(320px,100%);max-width:320px;min-height:54px;margin:0;flex:none}
.writing-controls{display:block}.writing-controls #written-word{width:100%;scroll-margin-bottom:120px}
.child-play .options,.child-play .letter-bank,.child-play .phrase-bank,.child-play .hint-controls,.child-play .retry-message{scroll-margin-bottom:120px}
@media(max-width:600px){.validation-dock{padding-left:20px;padding-right:20px;min-height:78px}.child-play .validation-dock .validate{width:100%;max-width:none}.child-play main{padding-bottom:calc(120px + env(safe-area-inset-bottom,0px))}}
@media(max-height:800px) and (min-width:701px){.child-play header{padding-top:12px;padding-bottom:12px}.child-play main{padding-top:14px}.child-play .play-top{margin-bottom:12px}.child-play .play-screen h1{font-size:34px;margin-bottom:10px}.child-play .question-panel{margin:16px 0;padding:18px 22px}.child-play .option{min-height:60px;padding:14px}.child-play .hint-controls{margin:14px 0}.child-play .letter-help{margin:12px 0}}

.sentence-translation{font-size:clamp(19px,2.4vw,24px);line-height:1.5;color:#545b70;margin:-12px 0 30px;}

/* Shared validation colours in every game. */
.child-play .validate{background:#285bd7;color:#fff}
.child-play .validate:hover:not(:disabled){background:#1949bf}
.child-play .validate:disabled{background:#d9ddeb;color:#555974;cursor:default}

/* Exercise workspace: keep navigation, give the space to the game. */
.child-play header .brand{display:none}
.child-play header{padding:4px 20px;border:0;justify-content:flex-end;min-height:44px}
.child-play header .test-access{min-height:36px;padding:8px 12px}
.child-play header .quiet{padding:8px 0}
.child-play main{padding-top:8px;min-height:0}
.child-play .play-top{margin-bottom:6px}
.child-play .play-top .quiet{padding:8px 0}
.child-play .play-screen h1{font-size:clamp(25px,3vw,34px);margin-bottom:6px}
.child-play .play-instruction{margin:4px 0 8px;line-height:1.4}
.child-play .question-panel{margin:10px 0;padding:14px 20px}
.sentence-play .sentence-screen{max-width:1000px}
.sentence-play .question-panel .sentence{font-size:clamp(20px,2.5vw,26px);line-height:1.35}
.sentence-play .hint-controls{margin:6px 0;min-height:40px;gap:12px}
.sentence-play .hint-controls .letter-help{margin:0}
.sentence-play .sentence-board{margin:8px 0 0;padding:12px;border-radius:18px}
.sentence-play .board-label{margin-bottom:8px;font-size:14px;gap:8px}
.sentence-play .pieces-icon{padding:3px 6px;font-size:16px}
.sentence-play .phrase-row{grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}
.sentence-play .phrase-piece{min-height:48px;padding:8px;font-size:18px;line-height:1.25}
.sentence-play .phrase-bank{padding:12px;margin:0;border-radius:18px}
.sentence-play .letter-help{margin:7px 0;font-size:13px;line-height:1.35}
.sentence-play .retry-message{margin:8px 0;min-height:20px;font-size:14px;line-height:1.35}
.sentence-play main{padding-bottom:calc(96px + env(safe-area-inset-bottom,0px))}
@media(min-width:900px) and (max-height:850px){
 .sentence-play .sentence-screen:has(#sentence-hint){display:grid;grid-template-columns:1fr 1fr;column-gap:16px}
 .sentence-screen>*{grid-column:1 / -1}
 .sentence-play .sentence-board{grid-column:1;grid-row:6;margin:0}
 .sentence-play .phrase-bank{grid-column:2;grid-row:6;align-content:start;padding-top:44px}
 .sentence-play .phrase-row{grid-template-columns:repeat(3,minmax(0,1fr))}
 .sentence-play .sentence-screen>.letter-help{grid-row:7}
 .sentence-play .sentence-screen>.retry-message{grid-row:8}
 .sentence-play .sentence-screen>.validation-dock{display:flex}
}
@media(max-width:600px){
 .sentence-play .phrase-row{grid-template-columns:repeat(2,minmax(0,1fr))}
 .sentence-play .phrase-piece{font-size:16px}
}


/* Tablet portrait: use the available height to separate the exercise areas. */
@media (orientation:portrait) and (min-width:601px) and (min-height:850px){
 .sentence-play main{padding-top:clamp(14px,2vh,24px)}
 .sentence-play .play-top{margin-bottom:clamp(12px,1.8vh,22px)}
 .sentence-play .play-screen h1{margin-bottom:12px;font-size:30px}
 .sentence-play .play-instruction{margin:8px 0 16px}
 .sentence-play .question-panel{margin:18px 0;padding:18px 22px}
 .sentence-play .hint-controls{margin:16px 0 20px;gap:16px;min-height:44px}
 .sentence-play .sentence-board{margin-top:clamp(14px,2vh,24px);padding:18px}
 .sentence-play .board-label{margin-bottom:14px}
 .sentence-play .phrase-row{gap:12px}
 .sentence-play .phrase-piece{min-height:56px;padding:10px;font-size:19px}
 .sentence-play .sentence-screen>.letter-help{margin:14px 0;line-height:1.4}
 .sentence-play .phrase-bank{padding:18px}
 .sentence-play .retry-message{margin:12px 0}
}

/* Let short success messages sit near the centre of a portrait screen.
   A minimum height, rather than a fixed height, keeps longer explanations readable. */
@media (orientation:portrait) and (min-width:601px){
 .child-play .success-transition{display:flex;flex-direction:column;justify-content:center;align-items:center;min-height:calc(100vh - 210px);min-height:calc(100svh - 210px);padding:24px 0;margin-inline:auto;width:100%}
 .child-play .success-transition>*{flex-shrink:0;max-width:100%}
 .child-play .success-transition .found-word{overflow-wrap:anywhere}
 .child-play .success-transition .memory-tip{width:100%}
}

/* Consistent, compact Continue button in both orientations. */
.child-play .success-transition .challenge-start,
.child-play .found-screen #next{width:280px;max-width:100%;min-height:54px;padding:14px 20px;margin:24px auto 0;align-self:center;flex-shrink:0}

/* Memory has no fixed validation dock: do not reserve its empty space. */
.child-play.memory-play main{padding-bottom:12px}
@media (orientation:landscape) and (min-width:701px){
 .memory-play header{padding-block:4px}
 .memory-play .memory-board{margin-top:10px;gap:8px}
 .memory-play .memory-card{min-height:clamp(64px,calc((100svh - 320px)/4),104px)}
 .memory-play .memory-status{margin:8px 0;min-height:20px;line-height:1.25}
 .memory-play .memory-screen .play-top{margin-bottom:4px}
 .memory-play .memory-screen .play-instruction{margin:4px 0}
 .child-play main:has(.options):not(:has(.success-transition)){padding-top:clamp(16px,calc((100svh - 540px)/3),65px)}
}


/* Fit a reconstructed word into one row; the reserve uses the same sizing. */
.rebuild-screen .letter-row{container-type:inline-size;display:grid;grid-template-columns:repeat(var(--letter-count),minmax(0,56px));gap:clamp(3px,.7vw,8px);justify-content:center;flex-wrap:nowrap}
.rebuild-screen .letter-slot,.rebuild-screen .letter-tile{width:100%;min-width:0;min-height:48px;padding:6px 0;border-radius:10px;font-size:clamp(12px,calc(48cqw / var(--letter-count)),27px)}
.rebuild-screen .letter-bank{padding:16px 8px}
.where-screen{max-width:900px}
.where-instruction{background:#e8edff;border:1px solid #cdd8f5;border-radius:20px;padding:12px 20px;display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin:12px 0}
.where-instruction>p:first-child{font-size:clamp(20px,2.4vw,27px);color:#293b69;margin:0;flex:1}
.where-instruction #where-help{flex-basis:100%;font-size:15px;margin:0;color:#4b5570}
.where-instruction #where-help:empty{display:none}
.where-target{text-align:center;font-weight:750;font-size:20px;margin:12px;color:#4a3972}
.where-target>span{font-size:26px}
.where-scene{border-radius:24px;padding:14px 18px;background:#dfeafb;border:2px solid #c5d4ef}
.scene-caption{text-align:center;font-size:13px;font-weight:800;letter-spacing:3px;margin:0 0 12px;color:#485c82}
.where-map-wrap{display:flex;gap:12px}
.where-map{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;flex:1;min-width:0}
.floor-labels{display:grid;grid-template-rows:repeat(3,1fr);align-items:center;font-weight:750;color:#455477;font-size:14px}
.where-cell{min-height:76px;min-width:0;border-radius:12px;border:2px solid #9bafd4;background:#f9fbff;color:#7585ab;font-size:30px;display:flex;flex-direction:column;justify-content:center;align-items:center;gap:2px;box-shadow:0 3px 0 #bccce6;touch-action:manipulation}
.where-cell.reference{background:#fce7b7;border-color:#debd7b;color:#53452c}
.where-cell small{font-size:clamp(11px,1.4vw,16px);overflow-wrap:anywhere;max-width:100%;line-height:1.2}
.where-cell.selected{background:#e7dfff;border:3px solid #7751bd;color:#44316b}
.where-scene.town{background:#e6efe1;border-color:#c8d9bf}
.town .where-map{grid-template-columns:repeat(5,minmax(0,1fr));gap:12px}
.town .where-cell{border-color:#c0cbb5;box-shadow:0 3px 0 #c0cbb5}
.town .where-cell.park{background:transparent;border:0;box-shadow:none}
.where-scene.room{background:#f2e6d5;border-color:#dcc6a7}
.room .where-map{border:7px solid #c6ac89;border-radius:6px;padding:10px;background:#fff6e8}
@media(orientation:portrait) and (min-width:601px){.where-screen .where-scene{margin-top:22px;padding:20px}.where-screen .where-cell{min-height:94px}.where-screen .where-instruction{margin:20px 0}}
@media(orientation:landscape) and (max-height:750px){.where-screen .where-cell{min-height:58px}.where-screen .where-target{margin:6px}.where-screen .where-instruction{margin:6px 0;padding:8px 16px}.where-screen .where-scene{padding:10px 14px}.where-screen .scene-caption{margin-bottom:6px}}
@media(max-width:600px){.where-scene{padding:10px}.where-map{gap:6px}.town .where-map{gap:6px}.where-cell{min-height:60px}.where-instruction{padding:10px}.where-instruction>p:first-child{font-size:20px}}

/* Dialogue trial: the scene and speaker establish the meaning before choosing. */
.dialogue-screen{max-width:820px}
.dialogue-situation{margin:14px 0 18px;padding:14px 18px;border-radius:18px;background:#50428b}
.dialogue-context-heading{display:flex;align-items:baseline;justify-content:space-between;flex-wrap:wrap;gap:4px 16px;font-size:15px;font-weight:800;color:#ffdf93}
.dialogue-scene{font-size:13px;font-weight:600;color:#eee8ff}
.dialogue-situation strong{font-weight:850;color:#fff1bd}
.dialogue-situation p{margin:5px 0 0;font-size:16px;line-height:1.45;color:#fff}
.dialogue-conversation{display:flex;align-items:center;gap:16px;margin:16px 0 20px}
.dialogue-avatar{display:grid;place-items:center;flex-shrink:0;width:54px;height:54px;border-radius:18px;background:#7760c7;color:white;font-size:25px;font-weight:800}
.dialogue-name{font-size:13px;font-weight:750;color:#655780}
.dialogue-bubble{font-size:clamp(20px,2.6vw,27px);font-weight:650;line-height:1.4;color:#3b3264;background:#ede7fa;padding:16px 22px;border-radius:20px 20px 20px 5px;margin:6px 0 0}
.dialogue-reply-label{font-size:14px;font-weight:750;margin:0 0 10px;color:#4c5876}
.dialogue-options{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
.dialogue-option{min-height:70px;text-align:left;padding:16px 20px;border-radius:18px 18px 5px 18px;background:white;border:2px solid #d4dced;color:#273d64;font-size:20px;line-height:1.35;box-shadow:0 3px 0 #e0e5f0}
.dialogue-option.chosen{border-color:#285bd7;background:#e7efff;box-shadow:0 3px 0 #b1c5f2}
.dialogue-help{display:flex;align-items:center;gap:18px;margin:12px 0;min-height:44px}
.dialogue-help .quiet{flex-shrink:0;min-height:44px;color:#594394;font-weight:650}
.dialogue-help p{margin:0;font-size:14px;line-height:1.4}
.dialogue-screen .retry-message{font-size:14px;line-height:1.4;margin:6px 0;min-height:20px}
.dialogue-summary{width:100%;text-align:left;margin:12px 0}
.dialogue-summary .reply{background:#e1eee9;color:#24594e;border-radius:20px 20px 5px 20px;margin-left:0}
.dialogue-translation{font-size:16px;line-height:1.4;margin:8px 12px 18px;color:#5a6274}
@media(orientation:portrait) and (min-width:601px){.dialogue-screen{padding-top:14px}.dialogue-screen .dialogue-situation{margin:22px 0}.dialogue-conversation{margin:24px 0 28px}.dialogue-option{min-height:82px}.dialogue-help{margin-top:20px}}
@media(orientation:landscape) and (max-height:750px){.dialogue-screen .dialogue-situation{margin:8px 0;padding:8px 16px}.dialogue-conversation{margin:8px 0 12px}.dialogue-bubble{padding:10px 18px}.dialogue-option{min-height:58px;padding:10px 16px;font-size:18px}.dialogue-options{gap:10px}.dialogue-help{margin:6px 0}}
@media(max-width:600px){.dialogue-options{gap:10px}.dialogue-option{font-size:17px;padding:12px;min-height:74px}.dialogue-conversation{gap:10px}.dialogue-avatar{width:42px;height:42px}.dialogue-bubble{padding:12px;font-size:20px}.dialogue-help{align-items:flex-start}}


/* Detective trial: generous touch targets, compact landscape layout. */
.detective-screen{max-width:820px}
.detective-words{display:flex;justify-content:center;flex-wrap:wrap;gap:10px;margin:26px 0}
.detective-word{min-height:58px;padding:12px 16px;border:2px solid #d4dced;border-radius:14px;background:#fff;color:#273d64;font-size:clamp(20px,2.6vw,27px);box-shadow:0 3px 0 #e0e5f0}
.detective-word.chosen{border-color:#285bd7;background:#e7efff}
.detective-word:disabled{opacity:1;color:#273d64;background:#f0f2f8;box-shadow:none}
.detective-word.located{border-color:#997226;background:#fff0c9;color:#62460d}
.detective-screen .retry-message{min-height:24px;font-size:15px}
@media(orientation:portrait) and (min-width:601px){.detective-words{margin:42px 0}.detective-screen .dialogue-option{min-height:78px}}
@media(orientation:landscape) and (max-height:750px){.detective-words{margin:12px 0}.detective-word{min-height:48px;padding:8px 14px;font-size:22px}.detective-screen .dialogue-situation{margin:8px 0;padding:10px 16px}.detective-screen .dialogue-help{margin:6px 0}}

/* Voluntary listening, guided writing and plural trials. */
.extra-screen{max-width:820px}
.extra-audio-controls{display:flex;justify-content:center;align-items:center;gap:16px;flex-wrap:wrap;margin:22px 0 8px}
.extra-audio-controls .challenge-start{width:240px;max-width:100%;min-height:60px}
.extra-audio-controls .quiet{min-height:48px;font-weight:700;color:#50428b}
#extra-audio-status{font-size:14px;line-height:1.4;text-align:center;min-height:22px;margin:8px 0 20px}
.extra-cue,.extra-writing-frame>span:first-child{display:block;font-size:clamp(22px,3vw,29px);line-height:1.5;text-align:center;color:#273d64;margin:24px 0}
.extra-gap{color:#7055b1;font-weight:800}
.extra-input-label{display:block;font-size:14px;color:#4c5876;margin:0 0 8px;font-weight:700}
#extra-input{box-sizing:border-box;width:100%;min-height:56px;border:2px solid #9eadd1;border-radius:14px;padding:12px 16px;background:#fff;color:#273d64;font-size:22px}
#extra-input:focus{outline:3px solid #c9b9f1;outline-offset:2px}
.extra-characters{display:flex;justify-content:center;gap:8px;flex-wrap:wrap;margin:12px 0}
.extra-characters button{min-width:44px;min-height:44px;border:1px solid #c5cce0;background:white;border-radius:10px;color:#273d64;font-size:20px}
.extra-screen .retry-message{min-height:24px;font-size:15px;line-height:1.4}
@media(orientation:landscape) and (max-height:750px){.extra-screen .dialogue-situation{margin:8px 0;padding:10px 16px}.extra-audio-controls{margin:10px 0 6px}.extra-cue,.extra-writing-frame>span:first-child{margin:10px 0}.extra-screen .dialogue-help{margin:6px 0}#extra-audio-status{margin:6px 0 12px}}
/* Keep validation reachable above the software keyboard while writing. */
.extra-writing .validation-dock{position:static;margin-top:12px;padding:0;background:transparent;box-shadow:none;width:100%;transform:none}

/* Prepositions: each choice is a whole scene; positions differ without text answers. */
.where-scene.pictures{padding:12px;background:#e9edf8;border-color:#d5dcef}
.pictures .where-map-wrap{display:block}
.pictures .where-map{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.where-picture{display:block;min-width:0;padding:3px;border:3px solid transparent;background:#fff;border-radius:16px;box-shadow:0 3px 0 #ccd4e8}
.where-picture svg{display:block;width:100%;height:clamp(105px,18vh,170px)}
.where-picture.selected{border-color:#285bd7;background:#e7efff}
.scene-word{font:12px system-ui,sans-serif;text-anchor:middle;fill:#34415e;font-weight:650}
.where-screen:has(.pictures) .where-target{margin:4px 0;font-size:18px}
@media(orientation:landscape) and (max-height:850px){.where-screen:has(.pictures) .where-instruction{margin:8px 0;padding:8px 14px}.where-screen:has(.pictures) .play-instruction{margin:6px 0}.where-screen:has(.pictures) .where-target{display:none}.pictures .where-map{grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}.where-picture svg{height:clamp(115px,22vh,165px)}.pictures .scene-caption{margin:0 0 8px}}
/* Local trial: one short message, with persistent spelling feedback. */
.message-screen{max-width:760px;margin-inline:auto}
.message-instruction{text-align:center;color:#4c5876;margin:4px 0 16px}
.message-card{background:#eef1ff;border:2px solid #d5dcfa;border-radius:24px 24px 24px 6px;padding:20px 24px;margin:12px 0}
.message-label{font-size:14px;font-weight:700;color:#655096}
.message-card p{font-size:clamp(21px,3vw,29px);line-height:1.5;margin:12px 0 0;color:#273d64}
.message-card strong{color:#7053af;border-bottom:3px dotted #ab93d0}
#message-letters{display:flex;justify-content:center;gap:4px;margin:14px 0;flex-wrap:wrap}
.message-letter{font-size:clamp(18px,3vw,25px);min-width:20px;border-bottom:2px solid #c8d1e4;text-align:center;color:#71819d}
.message-letter.known{color:#167051;border-color:#63b799;background:#e7f5ee;border-radius:5px}
.message-hint-row{display:flex;align-items:center;gap:14px;min-height:44px;margin-top:8px}
#message-hint-text{font-size:18px;color:#5e418b;font-weight:700}
.message-screen #message-feedback{min-height:24px;margin:8px 0}
@media(orientation:landscape) and (max-height:800px){.message-card{padding:12px 20px;margin:8px 0}.message-card p{margin-top:6px}.message-instruction{margin-bottom:6px}#message-letters{margin:8px 0}.message-screen h1{margin-block:8px}}

.message-screen #message-letters{display:grid;grid-template-columns:repeat(var(--message-length,10),minmax(0,1fr));gap:5px;width:100%;max-width:620px;margin:16px auto}
.message-tile{border:2px solid #c4bbdf;border-radius:12px;background:white;color:#493571;font:700 23px inherit;font-size:23px;font-weight:700;min-width:0;min-height:46px;padding:6px;touch-action:manipulation;cursor:pointer}
.message-tile.known{background:#e0f3e8;border-color:#6fb992;color:#17613e;opacity:1}
.message-tile.used{background:transparent;border-style:dashed;color:#9e94af}
.message-tile:disabled{cursor:default}
#message-reserve{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:8px;max-width:500px;margin:10px auto 16px}
.message-reserve-label{text-align:center;font-size:15px;color:#4c5876;margin:8px 0}
.message-tile:focus-visible{outline:3px solid #9275cd;outline-offset:2px}
@media(max-width:450px){.message-screen #message-letters{gap:3px}.message-screen #message-letters .message-tile{font-size:18px;padding:3px}.message-card{padding:14px}.message-tile{min-height:44px}}
.word-puzzle{max-width:820px;margin-inline:auto}
#puzzle-slots{display:flex;justify-content:center;gap:8px;margin:18px 0 0}
.puzzle-piece{min-height:48px;min-width:0;border:2px solid #bcb0da;border-radius:13px;padding:8px 12px;background:#fff;color:#493571;font-size:clamp(18px,2.5vw,24px);font-weight:750;touch-action:manipulation;cursor:pointer}
#puzzle-slots .puzzle-piece{flex:1;max-width:190px}
.puzzle-piece.known{background:#dff4e8;border-color:#72b798;color:#17613e}
.puzzle-piece.used{background:transparent;border-style:dashed;color:#b0a5be}
.puzzle-piece:focus-visible{outline:3px solid #9d7ce2;outline-offset:2px}
.puzzle-piece:disabled{cursor:default}
#puzzle-built{min-height:35px;text-align:center;font-size:clamp(22px,3vw,32px);font-weight:750;color:#654399;overflow-wrap:anywhere;margin:10px 0}
#puzzle-reserve{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:9px}
.puzzle-actions{display:flex;justify-content:center;margin-top:10px}.puzzle-actions button{width:min(100%,310px)}
.puzzle-answer{font-size:clamp(27px,4.5vw,44px);font-weight:800;color:#654399;overflow-wrap:anywhere;margin:12px 0}
.puzzle-context{font-size:21px;line-height:1.5;text-align:center}
.word-puzzle .message-card{margin:10px 0;padding:14px 20px}.word-puzzle .message-card p{margin:0}
.word-puzzle .retry-message{min-height:24px;margin:10px 0 0}
@media(max-width:480px){#puzzle-reserve{grid-template-columns:repeat(3,minmax(0,1fr));gap:6px}.puzzle-piece{padding:7px 5px}.word-puzzle h1{font-size:28px}}
@media(orientation:landscape) and (max-height:800px){.word-puzzle h1{margin:6px 0}.word-puzzle .message-instruction{margin:4px}.word-puzzle .message-card{padding:9px 16px}#puzzle-slots{margin-top:10px}#puzzle-built{margin:4px 0}.word-puzzle .puzzle-piece{min-height:44px;padding:5px 8px}}
