:root{color-scheme:light;--navy:#101a3b;--paper:#fff9ef;--mint:#bce8d4;--lavender:#d8cef2;--pink:#f5c3d1;--yellow:#ffe79a;--ink:#172343}
*{box-sizing:border-box}body{margin:0;background:radial-gradient(ellipse at top,#293c68,var(--navy) 65%);color:var(--paper);font-family:'Comic Sans MS','Comic Sans',system-ui,sans-serif;min-height:100svh}button,input,select{font:inherit}button{cursor:pointer;touch-action:manipulation;border:2px solid transparent;border-radius:13px;min-height:44px;padding:10px 16px;font-weight:700;background:var(--lavender);color:var(--ink)}button:disabled{cursor:default;opacity:.65}button:focus-visible,input:focus-visible,select:focus-visible,summary:focus-visible{outline:3px solid #6f47b5;outline-offset:3px}button:hover:enabled{filter:brightness(1.06)}h1,h2,h3,p{margin:0}h1{font-size:clamp(1.05rem,3.7vw,1.5rem)}h2{font-size:clamp(1.35rem,4vw,2rem)}h3{font-size:1.1rem}p{line-height:1.5}small{display:block;line-height:1.4}a{color:#3c458d}.brand{display:flex;gap:12px;align-items:center;max-width:980px;margin:auto;padding:16px 20px}.brand img{background:var(--paper);border-radius:12px;object-fit:contain}.brand p{font-size:.82rem;color:#e4d9f1}main{max-width:960px;margin:auto;padding:0 18px 28px}.panel{background:var(--paper);color:var(--ink);border:1px solid #f2e2ce;border-radius:24px;padding:clamp(18px,4vw,30px);box-shadow:0 14px 40px #0003}.eyebrow{font-size:.78rem;text-transform:uppercase;letter-spacing:.1em;font-weight:700;color:#4c4a7c;margin-bottom:7px}.lead{margin:10px 0 20px}.name-row{display:grid;gap:7px;max-width:480px}.name-row input{width:100%;min-height:48px;background:white;border:2px solid #9c9aba;border-radius:12px;padding:9px 12px;color:var(--ink)}.avatar-label{margin:16px 0 8px}.avatars{display:flex;flex-wrap:wrap;gap:7px}.avatar{padding:7px 9px;border:2px solid transparent;min-width:70px;font-size:.74rem;background:#f1eafa}.avatar[aria-pressed=true]{border-color:#293c68;background:var(--mint)}.avatar svg{width:36px;height:36px;display:block;margin:auto}.mission-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin:22px 0}.mission{padding:21px 18px;text-align:left;border:2px solid #596183;display:flex;flex-direction:column;gap:8px}.mission.tonic{background:var(--mint)}.mission.vowels{background:var(--lavender)}.mission strong{font-size:1.2rem}.mission .enter{margin-top:auto;font-size:.88rem;text-decoration:underline;text-underline-offset:3px}.launch-options{display:flex;align-items:center;flex-wrap:wrap;gap:10px;margin:12px 0}.launch-options select{padding:8px;border:2px solid #8c8ba8;border-radius:9px;background:white;max-width:100%}.actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:16px}.primary{background:var(--mint);border-color:#447064}.secondary{background:var(--lavender);border-color:#777393}.quiet{background:transparent;border-color:#a5a1b3}.help{border-top:1px solid #d8d2db;margin-top:20px;padding-top:14px}.help summary{cursor:pointer;font-weight:bold;padding:5px}.help p,.help ol{margin:10px 0;line-height:1.55}.storage-note{font-size:.82rem;background:var(--yellow);padding:8px 12px;border-radius:8px;margin-top:12px}.storage-note:empty{display:none}.toolbar{display:flex;justify-content:space-between;align-items:center;gap:10px}.toolbar strong{font-size:.84rem}.toolbar button{font-size:.8rem;padding:7px 10px}.status{display:flex;justify-content:space-between;gap:8px;font-size:.8rem;margin:9px 0 5px}.progress{display:block;width:100%;height:7px;accent-color:#537c70;margin:0 0 10px}.game{max-width:760px;margin:auto;padding:16px 20px}.instruction{background:var(--yellow);padding:10px 13px;border-radius:12px;font-size:clamp(1rem,3.8vw,1.25rem);line-height:1.35}.subinstruction{font-size:.83rem;margin-top:5px}.context{font-size:.84rem;margin:7px 0 0}.context:empty{display:none}.arena{height:168px;position:relative;display:flex;flex-direction:column;align-items:center;justify-content:space-between;overflow:hidden;border-radius:18px;background:radial-gradient(circle at 14% 24%,#fff9 1px,transparent 2px),radial-gradient(circle at 84% 64%,#fff8 1px,transparent 2px),linear-gradient(#17234a,#263c65);background-size:97px 73px,137px 97px,auto;margin:10px 0}.target{display:flex;justify-content:center;align-items:center;flex-wrap:wrap;gap:0;color:var(--paper);padding:12px 8px 8px;line-height:1.2;font-size:clamp(1.45rem,6vw,2.6rem);font-weight:700;max-width:100%;position:relative;z-index:2}.target .letter{padding:1px 2px;display:inline-block}.target button.letter{font-size:inherit;border-radius:7px;background:#eee7fc;color:var(--ink);border:2px solid #c4b1e8;padding:1px 5px;min-width:30px;min-height:40px;margin:0 1px}.target .tonic-vowel{outline:3px solid var(--pink);border-radius:5px;color:#fff}.target mark{border-radius:5px;background:var(--yellow);color:var(--ink);padding:0 2px}.target .correct-vowel{background:var(--mint)!important;border-color:#3e695a!important}.ship{width:50px;height:67px;flex-shrink:0;position:relative;z-index:1;display:block;margin-bottom:5px}.arena.miss .target{animation:fall .8s ease-in forwards}.options{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.options.three{grid-template-columns:repeat(3,minmax(0,1fr))}.choice{padding:9px 6px;min-height:52px;background:#eee8f8;border:2px solid #b7accb;overflow-wrap:anywhere;font-size:1rem}.choice small{font-weight:400;font-size:.72rem;margin-top:2px}.choice.correct{background:var(--mint);border-color:#3d7963;opacity:1}.choice.wrong{background:#fbd2d8;border-color:#a54662;opacity:1}.feedback{min-height:38px;font-size:.85rem;line-height:1.4;margin-top:9px;padding:8px 10px;border-radius:10px;background:#f0eafa}.feedback.ok{background:#d2efdf}.feedback.error{background:#f9dce0}.feedback:empty{display:none}.flight-controls{display:flex;gap:7px;flex-wrap:wrap;margin-top:9px}.flight-controls button{font-size:.76rem;padding:7px 9px;min-height:40px}.flight-controls label{font-size:.76rem;display:flex;align-items:center;gap:6px;min-height:40px}.flight-controls input{width:18px;height:18px;accent-color:#437564}.next-dock{position:sticky;bottom:0;background:var(--paper);padding:8px 0 max(7px,env(safe-area-inset-bottom));display:flex;align-items:center;gap:8px;z-index:5;border-top:1px solid #e4d8df;margin-top:7px}.next-dock button{flex:1;padding:8px;font-size:.9rem}.next-dock span{font-size:.76rem;flex:1}.next-dock[hidden]{display:none}.rank-badge{display:inline-block;background:var(--yellow);border-radius:20px;padding:5px 13px;font-weight:bold;font-size:.9rem;margin:10px 0}.stats-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:9px;margin:17px 0}.stat{background:#eee7f6;padding:12px 9px;border-radius:12px;text-align:center}.stat strong{font-size:1.4rem;display:block}.stat small{font-size:.76rem}.review{padding-left:21px;line-height:1.4}.review li{margin:10px 0}.review small{color:#4a4c60}.rank-list{display:grid;gap:6px;padding-left:22px}.profile-note{margin-top:13px;font-size:.8rem}.summary-title{overflow-wrap:anywhere}.muted{font-size:.84rem;color:#55546b}.game-help{margin-top:9px}.game-help summary{font-size:.8rem}.game-help p{font-size:.83rem;margin:8px 0}
@keyframes fly{to{transform:translateY(-106px) scale(.7);opacity:0}}@keyframes destroy{0%,35%{opacity:1}65%{transform:scale(1.08);filter:brightness(2)}100%{transform:translateY(-18px) scale(.5);opacity:0}}@keyframes laser{0%{transform:scaleY(0)}40%{transform:scaleY(1)}100%{opacity:0}}@keyframes fall{to{transform:translateY(100px) rotate(8deg);opacity:0}}@keyframes split-left{to{transform:translateX(-22px)}}@keyframes split-right{to{transform:translateX(22px)}}
@media(max-width:540px){.brand{padding:10px 12px;gap:9px}.brand img{width:38px;height:38px}.brand p{font-size:.7rem}main{padding:0 8px 15px}.panel{border-radius:18px;padding:17px 14px}.game{padding:10px 12px}.mission-grid{grid-template-columns:1fr;gap:10px;margin:17px 0}.mission{padding:15px;gap:5px}.mission strong{font-size:1.1rem}.mission small{font-size:.8rem}.avatars{gap:5px}.avatar{min-width:64px;flex:1;padding:6px 3px}.stats-grid{gap:6px}.stat{padding:10px 5px}.stat strong{font-size:1.15rem}.status{font-size:.73rem}.arena{height:138px;margin:8px 0}.ship{height:55px;width:44px}.target{padding:8px 4px;font-size:clamp(1.3rem,6.4vw,2.2rem)}.target button.letter{min-width:24px;padding:1px 3px;min-height:37px}.instruction{padding:9px 10px}.choice{min-height:48px;font-size:.88rem}.choice small{font-size:.65rem}.options.three{gap:6px}.feedback{padding:7px 8px}.flight-controls{gap:5px}.flight-controls button{padding:7px;font-size:.72rem}}
@media(max-height:600px) and (orientation:landscape){.brand{padding:6px 12px}.brand img{width:30px;height:30px}.brand p{display:none}.arena{height:104px}.ship{height:40px}.target{font-size:1.6rem}.game{padding:9px 14px}.instruction{padding:5px 10px}.flight-controls{margin-top:5px}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation-duration:.01ms!important;transition:none!important;scroll-behavior:auto!important}}
.target mark.tonic-vowel{color:var(--ink)}
@keyframes join{from{transform:translateX(var(--spread))}to{transform:translateX(0)}}
/* Tras responder, la explicación ocupa el lugar de los controles ya resueltos. */
.game.answered .instruction,.game.answered .subinstruction,.game.answered .context,.game.answered .options{display:none}
.game.answered .arena{height:110px}
.avatars{display:grid;grid-template-columns:repeat(6,minmax(0,1fr))}.avatar{min-width:0}
@media(max-width:540px){.avatars{grid-template-columns:repeat(3,minmax(0,1fr))}}

/* Aproximación dirigida, rayo fugaz y disolución desde el punto de impacto. */
.ship{position:absolute;left:50%;bottom:6px;margin:0;transform:translateX(-50%);transform-origin:50% 10%;z-index:3;will-change:transform}
.target [data-glyph]{display:inline-block;transform-origin:center;will-change:transform,opacity}
.shot-effects{pointer-events:none;position:absolute;z-index:4}
.shot-laser{inset:0;width:100%;height:100%;overflow:visible;filter:drop-shadow(0 0 4px #a5ffe1)}
.shot-impact{width:22px;height:22px;border:2px solid #bce8d4;border-radius:50%;box-shadow:0 0 8px #fff4}
.shot-spark{width:4px;height:4px;border-radius:50%;box-shadow:0 0 5px currentColor}
.shot-running .ship{filter:drop-shadow(0 5px 5px #ffe79a77)}
.arena.firing .ship{filter:drop-shadow(0 0 6px #bce8d499)}
/* Nave 3: corazones, decisiones encadenadas y comandante. */
.mission.accent{background:#f7ddb2;grid-column:1/-1;border-color:#9a7855}
.accent-hud{display:flex;justify-content:space-between;align-items:center;gap:7px;margin:8px 0;font-size:.8rem;font-weight:bold}
.hearts{display:flex;align-items:center;gap:5px}.heart{display:block;width:21px;height:23px}.heart svg{width:100%;height:100%;fill:#cf4869;stroke:#93324b;stroke-width:1.2}.heart.lost svg{fill:#ddd5db;stroke:#8a8091}.heart-count{margin-left:4px;font-size:.76rem}
.decision-trail{display:flex;gap:5px;flex-wrap:wrap;margin:6px 0}.decision-trail:empty{display:none}.decision-trail span{font-size:.7rem;border-radius:12px;padding:3px 8px;background:#d9eddf}
.vowel-key{font-size:.73rem;margin:3px 0 9px;line-height:1.35;color:#55516b}
.accent-game .ship{transition:left .18s ease-out}
.accent-game .target .accent-glyph{display:inline-block;padding:0 1px}
.accent-game .target .group-vowel{background:var(--yellow);color:var(--ink);border-radius:4px}
.accent-game .target .tonic-vowel{outline:3px solid #ee9eb9;outline-offset:1px}
.accent-game .target .accent-aim{outline:3px solid #ee9eb9;outline-offset:1px;border-radius:5px}
.accent-game .target button.letter{min-height:40px;min-width:27px;padding:1px 4px}
.accent-game .options:not(.three) button:last-child:nth-child(odd){grid-column:1/-1}
.commander{display:flex;gap:10px;margin-top:9px;background:#e8e0f4;border:1px solid #a69bbe;border-radius:13px;padding:11px;color:var(--ink)}
.commander[hidden]{display:none}.commander.ok{background:#e0f1e6;border-color:#8eb39c}.commander.error{background:#f9e2e5;border-color:#ce9aa6}
.commander-avatar{width:45px;flex:0 0 45px}.commander-avatar svg{width:45px;height:45px}.commander strong{font-size:.85rem}.commander p{font-size:.83rem;line-height:1.45;margin-top:4px}
.accent-game.answered .vowel-key,.accent-game.answered .decision-trail{display:none}.flight-lives-summary{background:var(--yellow);border-radius:10px;padding:9px 12px;margin:10px 0}
@media(max-width:540px){.accent-game .toolbar strong{font-size:.76rem}.accent-game .toolbar button{font-size:.75rem}.accent-game .arena{height:125px}.accent-game .instruction{font-size:.96rem}.accent-game .subinstruction{font-size:.79rem}.accent-game .choice{font-size:.83rem}.accent-game .choice small{font-size:.65rem}.accent-game .decision-trail span{font-size:.66rem}.accent-game .commander{padding:8px;gap:7px}.commander-avatar,.commander-avatar svg{width:30px;height:30px;flex-basis:30px}.commander p{font-size:.79rem}.heart{width:18px;height:20px}.hearts{gap:3px}}
.commander-scroll-note{font-size:.68rem;color:#605375;margin:4px 0}
.commander-scroll-note[hidden]{display:none}
@media(max-width:540px) and (max-height:700px){.accent-game.answered .commander{max-height:max(120px,calc(100svh - 420px));overflow-y:auto;overscroll-behavior:contain;scrollbar-gutter:stable}}
