﻿:root{--cyan:#22D3EE;--gold:#D4AF37;--nexus:#020617;--red:#EF4444;--glass:rgba(255,255,255,.05);--magenta:#FF00FF;--purple:#4B0082;--cobalt:#0047AB;--emerald:#50C878;--pink:#FFD1DC;--text:#F3F4F6;--hacker:#00FF00;--crimson:#DC143C;--uv:#9400D3;--amber:#FFBF00;--cyan-light:#E0FFFF;--line:rgba(34,211,238,.25)}
body{margin:0;min-height:100vh;font-family:Segoe UI,Arial,sans-serif;color:var(--text);background:radial-gradient(circle at 15% 12%,rgba(0,71,171,.35),transparent 32%),radial-gradient(circle at 82% 18%,rgba(75,0,130,.36),transparent 30%),radial-gradient(circle at 72% 82%,rgba(148,0,211,.22),transparent 28%),linear-gradient(140deg,var(--nexus),#08111f 58%,#0b1020);letter-spacing:0}
html{scrollbar-width:thin;scrollbar-color:var(--age,var(--cyan)) rgba(2,6,23,.72)}::-webkit-scrollbar{width:12px;height:12px}::-webkit-scrollbar-track{background:linear-gradient(180deg,rgba(2,6,23,.92),rgba(8,17,31,.86));border-left:1px solid rgba(224,255,255,.10)}::-webkit-scrollbar-thumb{border:3px solid rgba(2,6,23,.88);border-radius:999px;background:linear-gradient(180deg,var(--age,var(--cyan)),var(--age2,var(--gold)));box-shadow:0 0 16px color-mix(in srgb,var(--age,var(--cyan)),transparent 45%)}::-webkit-scrollbar-thumb:hover{background:linear-gradient(180deg,var(--age2,var(--gold)),var(--age,var(--cyan)))}
body[data-level="1"]{--age:var(--cyan);--age2:var(--amber);--soft:rgba(34,211,238,.13)}body[data-level="2"]{--age:var(--magenta);--age2:var(--hacker);--soft:rgba(255,0,255,.12)}body[data-level="3"]{--age:var(--pink);--age2:var(--emerald);--soft:rgba(255,209,220,.14)}body[data-level="4"]{--age:var(--gold);--age2:var(--cobalt);--soft:rgba(212,175,55,.14)}
*{box-sizing:border-box}button,input{font:inherit}button{cursor:pointer;border:0;border-radius:8px;padding:12px 16px;background:linear-gradient(135deg,var(--age,var(--cyan)),var(--age2,var(--gold)));color:#020617;font-weight:900}input{min-width:0;border:1px solid rgba(224,255,255,.28);background:rgba(2,6,23,.72);color:var(--text);border-radius:8px;padding:14px 16px}#particles{position:fixed;inset:0;width:100%;height:100%;pointer-events:none}.shell{position:relative;z-index:1;width:min(1180px,calc(100% - 32px));margin:auto;padding:28px 0 48px}.hidden{display:none!important}
.onboarding{min-height:calc(100vh - 56px);display:grid;align-content:center;gap:24px;max-width:860px;position:relative}
.onboard-home{position:absolute;top:0;right:0;display:inline-flex;align-items:center;gap:5px;background:rgba(34,211,238,.1);border:1px solid rgba(34,211,238,.3);color:var(--cyan);border-radius:8px;padding:8px 14px;font-weight:700;text-decoration:none;font-size:.88rem;transition:.15s}
.onboard-home:hover{background:rgba(34,211,238,.2);border-color:var(--cyan)}.brand{display:flex;align-items:center;gap:16px}.brand span{display:grid;place-items:center;width:72px;aspect-ratio:1;border:2px solid var(--cyan);border-radius:50%;font-size:2.8rem;font-weight:900;color:var(--gold);background:rgba(2,6,23,.78);box-shadow:0 0 35px rgba(34,211,238,.42)}.brand p,.map-head p{margin:0 0 6px;color:var(--cyan);text-transform:uppercase;font-size:.76rem;font-weight:800}.brand h1{margin:0;font-size:clamp(2.4rem,5vw,5.7rem);line-height:.95}.brand.small span{width:48px;font-size:1.8rem}.brand.small h2{margin:0;font-size:1.35rem}.intro{max-width:700px;color:rgba(243,244,246,.82);font-size:1.12rem}
.panel,.map-panel,.world-buttons button,.stats div,.firebase-status{background:var(--glass);border:1px solid var(--line);border-radius:8px;backdrop-filter:blur(16px);box-shadow:0 20px 60px rgba(0,0,0,.42)}.panel{padding:22px}.panel label{display:block;margin:10px 0;color:var(--cyan-light);font-weight:800}.age-grid,.levels{display:grid;grid-template-columns:repeat(4,1fr);gap:10px}.age{min-height:84px;text-align:left;background:rgba(2,6,23,.58);color:var(--text);border:1px solid rgba(224,255,255,.18)}.age b,.age small{display:block}.age small{margin-top:5px;color:rgba(243,244,246,.72)}.age.active,.levels button.active{background:linear-gradient(135deg,var(--age),var(--age2));color:#020617}.companions{display:grid;grid-template-columns:82px 82px 1fr;gap:12px;align-items:center;margin:14px 0;padding:12px;border-radius:8px;background:var(--soft);border:1px solid rgba(224,255,255,.12)}.mini svg,.avatar svg{width:100%;height:100%}.copy b{display:block;color:var(--age)}.copy span{color:rgba(243,244,246,.75)}.input-row{display:grid;grid-template-columns:1fr auto;gap:12px}
.topbar{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:12px}.stats{display:grid;grid-template-columns:repeat(3,minmax(80px,1fr));gap:10px}.stats div{padding:10px 12px;text-align:center}.stats b{display:block;color:var(--gold);font-size:1.12rem}.stats small{color:rgba(243,244,246,.72)}.data-actions{display:grid;grid-template-columns:1fr;gap:8px}.data-actions button{padding:10px 12px;background:rgba(255,255,255,.08);color:var(--text);border:1px solid rgba(224,255,255,.16)}.firebase-status{margin:0 0 14px;padding:10px 12px;font-size:.88rem;font-weight:800}.firebase-status.online{color:var(--emerald);border-color:rgba(80,200,120,.44)}.firebase-status.local{color:var(--amber);border-color:rgba(255,191,0,.36)}.levels{padding:8px;margin-bottom:16px;background:var(--glass);border:1px solid var(--line);border-radius:8px}.levels button{background:rgba(2,6,23,.52);color:var(--text)}
.world-layout{display:grid;grid-template-columns:280px 1fr;gap:18px}.world-buttons{display:grid;gap:10px;align-content:start}.world-buttons button{min-height:72px;text-align:left;color:var(--text);background:rgba(2,6,23,.52)}.world-buttons button.active{background:var(--cyan);color:#020617}.world-buttons strong,.world-buttons small{display:block}.world-buttons small{margin-top:4px;color:rgba(243,244,246,.72)}.map-panel{min-height:640px;padding:22px;position:relative;overflow:hidden}.map-head{display:flex;justify-content:space-between;gap:18px;position:relative;z-index:2}.map-head h2{margin:0;font-size:clamp(1.6rem,3vw,2.6rem)}.map-head>p{max-width:430px;color:rgba(243,244,246,.76)}.map{position:relative;min-height:520px}.continent{position:absolute;inset:110px 70px 55px;background:linear-gradient(135deg,rgba(34,211,238,.20),rgba(255,255,255,.03)),repeating-linear-gradient(45deg,rgba(224,255,255,.05) 0 2px,transparent 2px 16px);border:1px solid var(--world-color,var(--cyan));box-shadow:inset 0 0 70px rgba(2,6,23,.68),0 0 34px rgba(34,211,238,.22);opacity:.86}.route{position:absolute;height:2px;transform-origin:left center;background:linear-gradient(90deg,var(--cyan),rgba(212,175,55,.2));opacity:.42}.node{position:absolute;display:grid;place-items:center;width:86px;aspect-ratio:1;border-radius:50%;border:2px solid var(--cyan);background:rgba(2,6,23,.86);color:var(--text);box-shadow:0 0 22px rgba(34,211,238,.28);transition:.16s}.node:disabled{opacity:.42;filter:grayscale(.8);cursor:not-allowed}.node.done{border-color:var(--emerald);box-shadow:0 0 24px rgba(80,200,120,.36)}.node:hover:not(:disabled){transform:scale(1.06)}.node b{font-size:.86rem}.node small{color:var(--gold)}.node em{display:block;max-width:64px;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;color:rgba(243,244,246,.68);font-size:.65rem;font-style:normal}
dialog{width:min(900px,calc(100% - 28px));border:1px solid var(--line);border-radius:8px;padding:0;color:var(--text);background:rgba(2,6,23,.95);box-shadow:0 30px 90px rgba(0,0,0,.62)}dialog::backdrop{background:rgba(2,6,23,.72)}.close{position:absolute;top:12px;right:12px;z-index:2;width:36px;aspect-ratio:1;padding:0;background:rgba(239,68,68,.18);color:var(--text);border:1px solid rgba(239,68,68,.5)}.mission-body{padding:28px}.mission-grid{display:grid;grid-template-columns:250px 1fr;gap:20px}.card,.guide,.capsule,.surprise,.result{border-radius:8px;border:1px solid rgba(224,255,255,.16);background:rgba(255,255,255,.04);padding:18px}.guide-duo{display:grid;grid-template-columns:1fr 1fr;gap:10px}.guide .avatar{width:86px;margin:auto}.guide h3{margin:6px 0 0;font-size:.95rem}.guide p{margin:4px 0 0;font-size:.78rem;color:rgba(243,244,246,.72)}.interaction{margin-top:12px;padding:14px;border-radius:8px;background:var(--soft);border:1px solid rgba(34,211,238,.36)}.capsule{border-color:rgba(212,175,55,.32);margin-bottom:14px}.surprise{border-color:rgba(220,20,60,.48);background:linear-gradient(135deg,rgba(239,68,68,.14),rgba(220,20,60,.10),rgba(255,191,0,.08));margin-bottom:14px}.surprise h3{color:var(--amber)}.pill-row{display:flex;flex-wrap:wrap;gap:8px;margin:14px 0}.pill{border:1px solid rgba(34,211,238,.28);border-radius:999px;color:var(--cyan-light);padding:6px 10px;font-size:.84rem}.options{display:grid;gap:10px}.options button{text-align:left;color:var(--text);background:rgba(0,71,171,.18);border:1px solid rgba(34,211,238,.22)}.options button.selected{color:#020617;background:linear-gradient(135deg,var(--age),var(--age2))}.actions{display:flex;justify-content:space-between;gap:10px;margin-top:16px}.secondary{color:var(--text);background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.14)}.ok{color:var(--emerald)}.bad{color:var(--red)}
.certificate{position:relative;min-height:520px;padding:42px;border:2px solid var(--gold);border-radius:8px;background:linear-gradient(135deg,rgba(2,6,23,.96),rgba(0,71,171,.26)),radial-gradient(circle at 50% 0,rgba(212,175,55,.20),transparent 42%);text-align:center}.certificate h2{margin:20px 0 10px;color:var(--gold);font-size:clamp(2rem,5vw,4rem)}.certificate h3{color:var(--cyan-light);font-size:clamp(1.4rem,3vw,2.3rem)}.cert-name{margin:20px auto;width:min(560px,100%);border-bottom:2px solid rgba(224,255,255,.46);padding-bottom:10px;font-size:clamp(1.8rem,4vw,3.2rem);font-weight:900}
@media print{body *{visibility:hidden}#certificate-content,#certificate-content *{visibility:visible}#certificate-content{position:fixed;inset:0;background:white}.certificate{color:#020617;min-height:100vh;background:white}.actions,.close{display:none!important}}
@media(max-width:860px){.topbar,.map-head,.actions{flex-direction:column;align-items:stretch}.world-layout,.mission-grid{grid-template-columns:1fr}.age-grid,.levels{grid-template-columns:repeat(2,1fr)}.stats{grid-template-columns:repeat(3,1fr)}.input-row{grid-template-columns:1fr}}
@media(max-width:640px){.shell{width:min(100% - 20px,1180px);padding-top:16px}.brand{align-items:flex-start}.brand span{width:54px;font-size:2rem}.brand h1{font-size:2.6rem}.age-grid,.levels,.stats,.data-actions{grid-template-columns:1fr}.companions{grid-template-columns:64px 64px}.copy{grid-column:1/-1}.map-panel{min-height:560px;padding:16px}.continent{inset:140px 18px 48px}.map{min-height:470px}.node{width:68px;font-size:.75rem}.node em{display:none}.mission-body{padding:18px}.guide-duo{grid-template-columns:1fr}dialog{width:calc(100% - 14px)}}
#lang-toggle{position:fixed;top:14px;right:14px;z-index:50;width:48px;height:38px;padding:0;border-radius:999px;font-weight:900;font-size:.92rem;letter-spacing:.04em;color:#020617;background:linear-gradient(135deg,var(--age,var(--cyan)),var(--age2,var(--gold)));border:1px solid rgba(2,6,23,.3);box-shadow:0 6px 20px rgba(0,0,0,.4)}#lang-toggle:hover{filter:brightness(1.08)}@media print{#lang-toggle{display:none!important}}
.family-objective,.family-victory{display:flex;gap:14px;align-items:center;margin:14px 0;padding:14px 18px;border-radius:16px;border:1px solid var(--glass)}
.family-objective{background:linear-gradient(135deg,rgba(34,211,238,.14),rgba(212,175,55,.1));border-color:rgba(34,211,238,.4)}
.family-victory{background:linear-gradient(135deg,rgba(80,200,120,.22),rgba(212,175,55,.18));border-color:rgba(80,200,120,.55);animation:fvpop .4s ease}
.family-objective b,.family-victory b{display:block;font-size:1.05rem;color:#fff}
.family-objective small,.family-victory small{display:block;margin-top:3px;color:rgba(255,255,255,.72);font-size:.85rem}
.fo-flag,.fv-trophy{font-size:1.9rem;line-height:1}
.fv-trophy{animation:fvspin 1.2s ease infinite alternate}
@keyframes fvpop{from{transform:scale(.92);opacity:0}to{transform:scale(1);opacity:1}}
@keyframes fvspin{from{transform:rotate(-8deg) scale(1)}to{transform:rotate(8deg) scale(1.12)}}

.live-guides .guide{position:relative;overflow:hidden}.live-guides .guide.lead .avatar{animation:guidePop 1.8s ease-in-out infinite}.live-guides .guide.support .avatar{animation:guideFloat 2.2s ease-in-out infinite .25s}.live-guides .guide::after{content:"";position:absolute;right:12px;top:12px;width:8px;aspect-ratio:1;border-radius:50%;background:var(--age);box-shadow:0 0 14px var(--age);animation:guideBlink 1.4s ease-in-out infinite}.interaction p{line-height:1.45}.interaction .express{border-top:1px solid rgba(224,255,255,.14);margin-top:10px;padding-top:10px;color:var(--cyan-light)}@keyframes guidePop{0%,100%{transform:translateY(0) scale(1)}45%{transform:translateY(-7px) scale(1.04)}70%{transform:translateY(0) scale(.99)}}@keyframes guideFloat{0%,100%{transform:translateX(0) rotate(0)}50%{transform:translateX(5px) rotate(2deg)}}@keyframes guideBlink{0%,100%{opacity:.35;transform:scale(.8)}50%{opacity:1;transform:scale(1.25)}}@media (prefers-reduced-motion:reduce){.live-guides .guide .avatar,.live-guides .guide::after{animation:none!important}}

.mini,.avatar{perspective:720px;transform-style:preserve-3d}.mini .avatar3d,.avatar .avatar3d{width:100%;height:100%}.avatar3d{--look-x:0deg;--look-y:0deg;--pupil-x:0px;--pupil-y:0px;position:relative;isolation:isolate;width:82px;aspect-ratio:1;display:grid;place-items:center;filter:drop-shadow(0 18px 18px rgba(0,0,0,.38));transform-style:preserve-3d}.avatar-shadow{position:absolute;left:18%;right:18%;bottom:2%;height:14%;border-radius:50%;background:radial-gradient(ellipse,rgba(0,0,0,.42),transparent 72%);filter:blur(2px);transform:translateZ(-40px) rotateX(72deg)}.avatar-rig{position:relative;width:92%;height:96%;transform-style:preserve-3d;transform:rotateY(var(--look-x)) rotateX(var(--look-y));transition:transform .16s ease;animation:avatarIdle 3.1s ease-in-out infinite}.avatar-body{position:absolute;left:20%;right:20%;bottom:2%;height:40%;border-radius:42% 42% 26% 26%;background:radial-gradient(circle at 35% 18%,rgba(255,255,255,.48),transparent 19%),linear-gradient(135deg,var(--accent),rgba(2,6,23,.42));box-shadow:inset -12px -14px 24px rgba(2,6,23,.42),inset 8px 10px 16px rgba(255,255,255,.12),0 12px 26px rgba(0,0,0,.28);transform:translateZ(6px)}.avatar-body .chest{position:absolute;left:25%;right:25%;top:18%;height:35%;border-radius:999px;background:linear-gradient(135deg,rgba(255,255,255,.32),rgba(255,255,255,.05));border:1px solid rgba(255,255,255,.18)}.arm{position:absolute;top:18%;width:21%;height:52%;border-radius:999px;background:linear-gradient(180deg,var(--fur),var(--dark));box-shadow:inset -5px -8px 12px rgba(2,6,23,.28)}.arm-left{left:-10%;transform:rotate(18deg)}.arm-right{right:-10%;transform:rotate(-18deg)}.head{position:absolute;left:10%;right:10%;top:4%;height:70%;border-radius:48% 48% 44% 44%;background:radial-gradient(circle at 31% 20%,rgba(255,255,255,.72),transparent 17%),radial-gradient(circle at 68% 74%,rgba(0,0,0,.16),transparent 36%),linear-gradient(145deg,var(--fur),var(--dark));box-shadow:inset -15px -18px 26px rgba(2,6,23,.38),inset 12px 10px 18px rgba(255,255,255,.20),0 16px 30px rgba(0,0,0,.34),0 0 0 2px color-mix(in srgb,var(--accent),white 22%);transform:translateZ(30px)}.head::after{content:"";position:absolute;inset:9% 8% 46%;border-radius:50%;background:linear-gradient(120deg,rgba(255,255,255,.42),transparent 58%);mix-blend-mode:screen;opacity:.72}.ear{position:absolute;top:9%;width:25%;height:31%;border-radius:60% 60% 46% 46%;background:linear-gradient(145deg,var(--fur),var(--dark));box-shadow:inset -7px -8px 13px rgba(2,6,23,.32),inset 4px 5px 9px rgba(255,255,255,.16);z-index:-1}.ear-left{left:-5%;transform:rotate(-30deg) translateZ(-8px)}.ear-right{right:-5%;transform:rotate(30deg) translateZ(-8px)}.avatar-cat .ear{top:-2%;height:29%;clip-path:polygon(50% 0,100% 100%,0 100%);border-radius:8px}.avatar-setter .ear,.avatar-mastiff .ear{top:22%;height:50%;border-radius:70% 70% 46% 46%}.avatar-setter .ear-left,.avatar-mastiff .ear-left{left:-11%;transform:rotate(15deg)}.avatar-setter .ear-right,.avatar-mastiff .ear-right{right:-11%;transform:rotate(-15deg)}.mask{position:absolute;left:20%;right:20%;top:37%;height:37%;border-radius:48%;background:radial-gradient(circle at 50% 22%,rgba(255,255,255,.42),transparent 30%),linear-gradient(180deg,var(--face),color-mix(in srgb,var(--face),var(--dark) 22%));box-shadow:inset -7px -9px 13px rgba(2,6,23,.18),inset 5px 5px 10px rgba(255,255,255,.25)}.snout{position:absolute;left:34%;right:34%;top:57%;height:22%;border-radius:50%;background:linear-gradient(180deg,var(--face),rgba(255,255,255,.22));box-shadow:inset -5px -5px 9px rgba(2,6,23,.18)}.eye{position:absolute;top:42%;width:17%;aspect-ratio:1;border-radius:50%;background:radial-gradient(circle at 35% 30%,#fff,rgba(255,255,255,.86) 36%,rgba(220,245,255,.72));box-shadow:0 2px 5px rgba(0,0,0,.28),inset 0 -2px 5px rgba(34,211,238,.18);overflow:hidden;animation:blink 5.2s infinite}.eye-left{left:28%}.eye-right{right:28%}.eye i{position:absolute;left:39%;top:39%;width:43%;aspect-ratio:1;border-radius:50%;background:radial-gradient(circle at 35% 30%,#fff 0 13%,#020617 16% 100%);transform:translate(var(--pupil-x),var(--pupil-y))}.brow{position:absolute;top:36%;width:20%;height:5%;border-radius:999px;background:rgba(2,6,23,.55);box-shadow:0 1px 2px rgba(255,255,255,.12)}.brow-left{left:25%;transform:rotate(-8deg)}.brow-right{right:25%;transform:rotate(8deg)}.nose{position:absolute;left:45%;top:61%;width:10%;height:8%;border-radius:50% 50% 55% 55%;background:radial-gradient(circle at 40% 28%,rgba(255,255,255,.55),transparent 18%),#020617;box-shadow:0 2px 4px rgba(0,0,0,.4)}.mouth{position:absolute;left:42%;top:72%;width:16%;height:5%;border-radius:0 0 999px 999px;border-bottom:3px solid rgba(2,6,23,.74);transform-origin:center top}.live-guides .lead .mouth{animation:talkMouth .72s ease-in-out infinite}.live-guides .support .mouth{animation:talkMouth 1.05s ease-in-out infinite .2s}.live-guides .lead .avatar-rig{animation:avatarJump 2.3s ease-in-out infinite}.live-guides .support .avatar-rig{animation:avatarGesture 2.8s ease-in-out infinite}.guide:hover .avatar-rig,.mini:hover .avatar-rig{animation:avatarJump .8s ease-in-out 1}.guide:hover .arm-right,.mini:hover .arm-right{animation:waveArm .62s ease-in-out 2}.avatar-human .head{background:radial-gradient(circle at 31% 20%,rgba(255,255,255,.55),transparent 17%),linear-gradient(145deg,var(--skin),color-mix(in srgb,var(--skin),#5F2D18 30%));border-radius:46% 46% 42% 42%}.avatar-human .hair{position:absolute;left:10%;right:10%;top:-2%;height:34%;border-radius:50% 50% 35% 35%;background:linear-gradient(145deg,var(--dark),#111827);box-shadow:inset 6px 6px 10px rgba(255,255,255,.08);z-index:1}.avatar-human .ear{top:41%;width:12%;height:18%;background:linear-gradient(180deg,var(--skin),color-mix(in srgb,var(--skin),#5F2D18 25%));z-index:0}.avatar-human .ear-left{left:-4%;transform:rotate(-8deg)}.avatar-human .ear-right{right:-4%;transform:rotate(8deg)}.avatar-human .nose{top:57%;background:color-mix(in srgb,var(--skin),#5F2D18 34%)}.avatar-human .mouth{top:70%;border-color:#5F2D18}.human-body{background:radial-gradient(circle at 35% 18%,rgba(255,255,255,.48),transparent 19%),linear-gradient(135deg,var(--accent),#111827)}@keyframes avatarIdle{0%,100%{transform:translateY(0) rotateY(var(--look-x)) rotateX(var(--look-y))}50%{transform:translateY(-3px) rotateY(calc(var(--look-x) + 2deg)) rotateX(var(--look-y))}}@keyframes avatarJump{0%,100%{transform:translateY(0) rotateY(var(--look-x)) rotateX(var(--look-y))}35%{transform:translateY(-9px) rotateY(calc(var(--look-x) + 7deg)) rotateX(var(--look-y))}55%{transform:translateY(0) scaleY(.97) rotateY(var(--look-x)) rotateX(var(--look-y))}}@keyframes avatarGesture{0%,100%{transform:translateY(0) rotateZ(0) rotateY(var(--look-x)) rotateX(var(--look-y))}45%{transform:translateY(-4px) rotateZ(4deg) rotateY(calc(var(--look-x) - 5deg)) rotateX(var(--look-y))}}@keyframes waveArm{0%,100%{transform:rotate(-18deg)}50%{transform:rotate(-62deg) translateY(-4px)}}@keyframes talkMouth{0%,100%{height:5%;border-bottom-width:3px}50%{height:11%;border-bottom-width:7px}}@keyframes blink{0%,92%,100%{transform:scaleY(1)}94%{transform:scaleY(.08)}}@media(max-width:640px){.avatar3d{width:70px}.companions .avatar3d{width:64px}.head{top:5%;height:68%}}@media (prefers-reduced-motion:reduce){.avatar-rig,.eye,.mouth,.arm-right{animation:none!important}}

/* mobile-polish */
@media(max-width:860px){dialog{max-height:calc(100dvh - 18px);overflow:auto}.world-buttons{grid-template-columns:1fr}.map-head>p{max-width:none}.options button{min-height:48px}.pill-row{gap:6px}.pill{font-size:.8rem}}
@media(max-width:640px){body{overflow-x:hidden}.shell{width:min(100% - 16px,1180px);padding-bottom:28px}.topbar{gap:10px}.brand.small{width:100%}.brand.small h2{font-size:1.08rem}.stats div{padding:8px}.firebase-status{text-align:center}.levels{gap:8px}.levels button,.age,.world-buttons button,.options button{min-height:48px}.world-layout{gap:12px}.world-buttons{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;padding-bottom:4px;margin:0 -2px 2px}.world-buttons button{min-width:218px;scroll-snap-align:start}.world-buttons button+button{margin-left:8px}.map-panel{min-height:auto;padding:14px}.map-head{gap:8px}.map-head h2{font-size:1.45rem}.map-head>p{font-size:.9rem}.map{min-height:430px}.continent{inset:122px 10px 42px}.node{width:64px;min-width:64px;font-size:.7rem}.node small{max-width:54px;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.route{opacity:.32}.mission-body{padding:14px}.card,.guide,.capsule,.surprise,.result{padding:14px}.guide-duo{grid-template-columns:repeat(2,minmax(0,1fr))}.guide .avatar{width:70px}.interaction{padding:12px}.capsule h3,.surprise h3,.card h3{font-size:1.02rem}.options{gap:8px}.options button{padding:12px 13px;line-height:1.25}.actions{position:sticky;bottom:0;padding-top:10px;background:linear-gradient(180deg,rgba(2,6,23,0),rgba(2,6,23,.96) 34%)}.actions button{width:100%}.close{top:8px;right:8px}}
@media(max-width:390px){.brand h1{font-size:2.2rem}.companions{grid-template-columns:56px 56px}.age-grid,.levels{gap:7px}.world-buttons button{min-width:196px}.node{width:58px;min-width:58px}.map{min-height:395px}.continent{inset:118px 6px 36px}.pill{font-size:.74rem;padding:5px 8px}.guide .avatar{width:62px}.guide h3{font-size:.84rem}.guide p{font-size:.7rem}}

.decision-lab{margin:12px 0;padding:12px;border-radius:8px;border:1px solid rgba(80,200,120,.28);background:linear-gradient(135deg,rgba(80,200,120,.10),rgba(34,211,238,.07))}.decision-lab span,.impact-panel h3{display:block;margin:0 0 5px;color:var(--emerald);font-size:.72rem;text-transform:uppercase;font-weight:900}.decision-lab strong{display:block;color:var(--cyan-light);font-size:.96rem}.decision-lab small{display:block;margin-top:5px;color:rgba(243,244,246,.78);line-height:1.35}.impact-panel{margin:16px auto;padding:16px;border-radius:8px;border:1px solid rgba(212,175,55,.34);background:linear-gradient(135deg,rgba(212,175,55,.12),rgba(34,211,238,.06));max-width:720px}.impact-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:8px;margin:12px 0}.impact-grid span{display:grid;gap:3px;padding:10px 8px;border-radius:8px;background:rgba(2,6,23,.55);border:1px solid rgba(224,255,255,.12)}.impact-grid b{font-size:.74rem;color:rgba(243,244,246,.74)}.impact-grid em{font-style:normal;font-weight:900;color:var(--gold);font-size:1.05rem}.pulse-line{display:block;margin-top:8px;color:var(--gold);font-weight:900;text-transform:none;letter-spacing:0}
@media(max-width:640px){.impact-grid{grid-template-columns:repeat(2,1fr)}.impact-grid span:last-child{grid-column:1/-1}.decision-lab{padding:10px}.impact-panel{padding:12px}}

.activity{position:relative;overflow:hidden}.activity::before{content:"";position:absolute;inset:0;pointer-events:none;background:radial-gradient(circle at 12% 18%,rgba(255,191,0,.10),transparent 26%),radial-gradient(circle at 92% 12%,rgba(34,211,238,.10),transparent 24%)}.activity h3,.activity .options,.activity-visual{position:relative;z-index:1}.activity-visual{min-height:58px;margin:0 0 12px;display:flex;align-items:center;gap:10px;color:var(--cyan-light)}.choice-dial span,.true-lamp b,.buckets span,.plan-card span,.compound-grow span,.match-grid span{display:grid;place-items:center;border:1px solid rgba(224,255,255,.22);background:rgba(2,6,23,.48);border-radius:8px;font-weight:900}.choice-dial span{width:44px;aspect-ratio:1}.true-lamp b{width:52px;aspect-ratio:1;border-radius:50%;font-size:1.4rem}.step-stack{padding-left:22px;display:grid;gap:5px}.step-stack li{padding:6px 10px;border-left:3px solid var(--age);background:rgba(255,255,255,.05);border-radius:6px}.match-grid,.buckets,.plan-card,.compound-grow{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));width:100%;gap:8px}.match-grid{grid-template-columns:1fr 1fr}.buckets span,.plan-card span,.match-grid span{min-height:42px}.calc-box{font-size:1.05rem}.calc-box b{display:grid;place-items:center;width:54px;aspect-ratio:1;border-radius:50%;background:rgba(212,175,55,.18);border:1px solid rgba(212,175,55,.48);font-size:1.8rem;color:var(--gold)}.fill-line span{display:block;width:70px;height:8px;border-radius:999px;background:linear-gradient(90deg,var(--age),rgba(255,255,255,.14))}.risk-scan b{display:grid;place-items:center;width:50px;aspect-ratio:1;border-radius:50%;background:rgba(239,68,68,.16);border:1px solid rgba(239,68,68,.5);color:var(--red);font-size:1.5rem}.express-timer b{display:grid;place-items:center;width:60px;aspect-ratio:1;border-radius:50%;border:2px solid var(--amber);color:var(--amber);box-shadow:0 0 24px rgba(255,191,0,.18);animation:timerPulse 1.2s ease-in-out infinite}.compare-bars{align-items:flex-end;height:68px}.compare-bars span{display:block;width:50px;border-radius:7px 7px 0 0;background:linear-gradient(180deg,var(--age),rgba(255,255,255,.08))}.compare-bars span:first-child{height:34px}.compare-bars span:last-child{height:62px}.speech-pop,.memory-card{padding:12px 14px;border:1px solid rgba(224,255,255,.20);background:rgba(224,255,255,.07);border-radius:8px;font-weight:900}.simulate-path span{display:block;width:18px;aspect-ratio:1;border-radius:50%;background:var(--age);box-shadow:28px 0 0 rgba(212,175,55,.9),56px 0 0 rgba(80,200,120,.9)}.compound-grow span:nth-child(1){font-size:.85rem}.compound-grow span:nth-child(2){font-size:1.1rem}.compound-grow span:nth-child(3){font-size:1.35rem;color:var(--gold)}
.reaction-layer{position:fixed;inset:0;z-index:9999;pointer-events:none;overflow:hidden}.reaction-layer.win span{position:absolute;left:var(--x);top:-20px;width:10px;height:16px;border-radius:3px;background:linear-gradient(135deg,var(--age),var(--age2));transform:rotate(var(--r));animation:confettiFall var(--d) ease-in forwards}.angry-face{position:absolute;left:50%;top:46%;transform:translate(-50%,-50%);display:grid;place-items:center;gap:8px;width:160px;aspect-ratio:1;border-radius:50%;background:linear-gradient(135deg,rgba(239,68,68,.95),rgba(255,191,0,.88));color:#020617;border:4px solid rgba(255,255,255,.8);box-shadow:0 20px 70px rgba(0,0,0,.45);animation:angryPop 1.25s ease both}.angry-face b{font-size:4.3rem;line-height:.8}.angry-face small{font-weight:900}.activity-order .options button,.activity-match .options button,.activity-classify .options button,.activity-plan .options button{padding-left:18px}.activity-risk .options button{border-color:rgba(239,68,68,.28)}.activity-compound .options button{border-color:rgba(212,175,55,.32)}
.reaction-character{position:absolute;left:calc(50% - 58px);top:calc(50% - 175px);display:grid;place-items:center;gap:5px;animation:reactionHero 1.35s ease both}.reaction-character .avatar3d{width:116px}.reaction-character strong{padding:6px 12px;border-radius:999px;background:linear-gradient(135deg,var(--age),var(--age2));color:#020617;box-shadow:0 12px 30px rgba(0,0,0,.28);font-weight:900}.reaction-character.warn{top:calc(50% + 62px)}.reaction-character.warn .avatar-rig{animation:avatarGesture .7s ease-in-out infinite}.reaction-character.celebrate .avatar-rig{animation:avatarJump .62s ease-in-out infinite}
@keyframes confettiFall{0%{transform:translateY(-20px) rotate(var(--r));opacity:1}100%{transform:translateY(105vh) rotate(calc(var(--r) + 540deg));opacity:.1}}@keyframes angryPop{0%{transform:translate(-50%,-50%) scale(.45) rotate(-8deg);opacity:0}25%{transform:translate(-50%,-50%) scale(1.08) rotate(5deg);opacity:1}55%{transform:translate(-50%,-50%) scale(.98) rotate(-3deg)}100%{transform:translate(-50%,-50%) scale(.92);opacity:0}}@keyframes reactionHero{0%{transform:translateY(28px) scale(.45);opacity:0}28%{transform:translateY(-6px) scale(1.06);opacity:1}100%{transform:translateY(0) scale(.96);opacity:0}}@keyframes timerPulse{0%,100%{transform:scale(1)}50%{transform:scale(1.08)}}
@media(max-width:640px){.activity-visual{min-height:46px}.match-grid,.buckets,.plan-card,.compound-grow{grid-template-columns:1fr}.choice-dial span,.true-lamp b{width:40px}.angry-face{width:126px}.angry-face b{font-size:3.2rem}}

.activity-control{display:grid;gap:10px;position:relative;z-index:1}.activity-control button{color:var(--text);background:rgba(0,71,171,.18);border:1px solid rgba(34,211,238,.22);text-align:left}.activity-control button.selected{color:#020617;background:linear-gradient(135deg,var(--age),var(--age2));border-color:rgba(255,255,255,.62)}.order-control{grid-template-columns:repeat(2,minmax(0,1fr))}.order-control button span,.match-control button span,.compare-control button span,.express-control button span{display:block;margin-bottom:6px;color:var(--gold);font-size:.72rem;text-transform:uppercase;font-weight:900}.order-control ol{margin:0;padding-left:20px}.order-control li{margin:3px 0}.match-control{grid-template-columns:repeat(2,minmax(0,1fr))}.match-control button{display:grid;grid-template-columns:1fr 1.3fr;gap:8px;align-items:center}.match-control button b{font-size:.9rem}.classify-control{grid-template-columns:repeat(4,minmax(0,1fr))}.classify-control small{display:block;margin-bottom:6px;color:var(--cyan-light);font-weight:900}.classify-control strong{font-size:.86rem}.calc-control{grid-template-columns:repeat(4,1fr);align-items:stretch}.calc-screen{grid-column:1/-1;padding:12px 14px;border-radius:8px;background:rgba(2,6,23,.68);border:1px solid rgba(212,175,55,.34);color:var(--gold);font-weight:900;text-align:center}.calc-control button{text-align:center}.calc-control button b{font-size:1.35rem}.fill-control p{margin:0 0 4px;padding:12px;border-radius:8px;background:rgba(224,255,255,.07);border:1px solid rgba(224,255,255,.14)}.fill-control p span{color:var(--gold);font-weight:900}.fill-control{grid-template-columns:repeat(2,minmax(0,1fr))}.fill-control p{grid-column:1/-1}.risk-control button{display:flex;gap:10px;align-items:center;border-color:rgba(239,68,68,.35)}.risk-control i{display:grid;place-items:center;flex:0 0 32px;aspect-ratio:1;border-radius:50%;background:rgba(239,68,68,.18);color:var(--red);font-style:normal;font-weight:900}.express-control{grid-template-columns:70px repeat(2,minmax(0,1fr));align-items:stretch}.express-count{grid-row:1/3;display:grid;place-items:center;border-radius:8px;border:2px solid var(--amber);color:var(--amber);font-size:2rem;font-weight:900;background:rgba(255,191,0,.08)}.express-control button b{font-size:.88rem}.compare-control{grid-template-columns:repeat(2,minmax(0,1fr))}.compare-control button b{font-size:.9rem}.plan-control{grid-template-columns:repeat(2,minmax(0,1fr))}.plan-control button{display:grid;grid-template-columns:34px 1fr;gap:10px;align-items:center}.plan-control span{display:grid;place-items:center;border-radius:50%;aspect-ratio:1;background:rgba(212,175,55,.18);color:var(--gold);font-weight:900}.plan-control p{margin:0}.true-control{grid-template-columns:repeat(2,minmax(0,1fr))}.true-control button{display:grid;grid-template-columns:42px 1fr;gap:10px;align-items:center}.true-control b{display:grid;place-items:center;aspect-ratio:1;border-radius:50%;background:rgba(224,255,255,.12);color:var(--gold);font-size:1.2rem}.compound-control .compound-strip{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-bottom:2px}.compound-strip span{display:grid;place-items:center;padding:10px;border-radius:8px;border:1px solid rgba(212,175,55,.34);background:rgba(212,175,55,.10);font-weight:900;color:var(--gold)}
@media(max-width:760px){.order-control,.match-control,.classify-control,.fill-control,.express-control,.compare-control,.plan-control,.true-control{grid-template-columns:1fr}.express-count{grid-row:auto}.calc-control{grid-template-columns:repeat(2,1fr)}.match-control button{grid-template-columns:1fr}.plan-control button{grid-template-columns:30px 1fr}}

.family-game{margin-top:18px;padding:20px;border:1px solid rgba(212,175,55,.34);border-radius:8px;background:linear-gradient(135deg,rgba(212,175,55,.09),rgba(34,211,238,.05)),rgba(255,255,255,.04);box-shadow:0 20px 60px rgba(0,0,0,.32)}.family-head{display:flex;justify-content:space-between;gap:18px;margin-bottom:14px}.family-head h2{margin:0;font-size:clamp(1.8rem,3vw,3rem);color:var(--gold)}.family-head p{max-width:700px;color:rgba(243,244,246,.78)}.family-turn{min-width:180px;display:grid;align-content:center;gap:4px;padding:14px;border-radius:8px;background:rgba(2,6,23,.58);border:1px solid rgba(224,255,255,.16)}.family-turn span,.family-goal span{color:var(--cyan-light);font-size:.72rem;text-transform:uppercase;font-weight:900}.family-turn b{font-size:1.3rem;color:var(--amber)}.family-turn small{color:rgba(243,244,246,.68)}.family-controls{display:grid;grid-template-columns:1fr auto auto;gap:10px;margin-bottom:16px}.family-layout{display:grid;grid-template-columns:minmax(0,1fr) 320px;gap:16px}.family-board{display:grid;grid-template-columns:repeat(6,minmax(104px,1fr));gap:8px}.family-tile{position:relative;min-height:116px;padding:10px;text-align:left;color:var(--text);background:rgba(2,6,23,.66);border:1px solid rgba(224,255,255,.16);overflow:hidden}.family-tile::before{content:"";position:absolute;inset:0 0 auto;height:5px;background:var(--age)}.family-tile b{display:inline-grid;place-items:center;width:26px;aspect-ratio:1;border-radius:50%;background:rgba(255,255,255,.10);color:var(--gold);font-size:.76rem}.family-tile strong{display:block;margin:8px 0 6px;font-size:.92rem}.family-tile small{display:block;color:rgba(243,244,246,.68);line-height:1.25;font-weight:600}.family-tile span{position:absolute;right:8px;bottom:8px;display:flex;gap:4px}.family-tile i{display:grid;place-items:center;width:24px;aspect-ratio:1;border-radius:50%;background:var(--p);color:#020617;font-style:normal;font-weight:900;border:1px solid rgba(255,255,255,.78)}.tile-asset::before,.tile-invest::before{background:var(--emerald)}.tile-expense::before,.tile-inflation::before{background:var(--red)}.tile-card::before{background:var(--uv)}.tile-save::before,.tile-bank::before{background:var(--gold)}.tile-protect::before{background:var(--cyan-light)}.tile-goal::before,.tile-legacy::before,.tile-cooperate::before{background:var(--pink)}.family-side{display:grid;gap:12px;align-content:start}.family-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px}.family-goal,.family-player,.family-log{padding:14px;border-radius:8px;background:rgba(2,6,23,.58);border:1px solid rgba(224,255,255,.16)}.family-goal b{display:block;margin:4px 0;color:var(--gold);font-size:1.8rem}.family-goal small{color:rgba(243,244,246,.7)}.family-players{display:grid;gap:8px}.family-player{border-color:rgba(224,255,255,.20)}.family-player.active{box-shadow:0 0 0 2px var(--player),0 0 26px rgba(34,211,238,.22)}.family-player h3{margin:0 0 8px;color:var(--player)}.family-player div{display:flex;justify-content:space-between;gap:8px;padding:4px 0;border-bottom:1px solid rgba(255,255,255,.06)}.family-player span{color:rgba(243,244,246,.7)}.family-player b{color:var(--gold)}.family-player footer{margin-top:8px;font-weight:900;color:var(--cyan-light)}.family-log{max-height:240px;overflow:auto}.family-log p{margin:0 0 8px;padding-bottom:8px;border-bottom:1px solid rgba(255,255,255,.08);color:rgba(243,244,246,.78);line-height:1.35}
.tile-scam::before,.tile-fraud::before,.tile-bankruptcy::before,.tile-marketCrash::before,.tile-bubble::before{background:linear-gradient(90deg,var(--red),#020617)}.tile-stock::before,.tile-ipo::before{background:linear-gradient(90deg,var(--gold),var(--emerald))}.tile-startup::before,.tile-deal::before{background:linear-gradient(90deg,var(--magenta),var(--cyan))}.tile-loan::before,.tile-audit::before,.tile-legacyRisk::before{background:linear-gradient(90deg,var(--amber),var(--red))}.tile-recovery::before,.tile-marketBoom::before{background:linear-gradient(90deg,var(--emerald),var(--gold))}.market-tape{display:grid;grid-template-columns:1fr 1fr;gap:8px}.market-tape span{display:grid;gap:2px;padding:10px;border-radius:8px;background:rgba(2,6,23,.62);border:1px solid rgba(80,200,120,.24)}.market-tape b{color:var(--emerald)}.market-tape em{font-style:normal;color:var(--gold);font-weight:900}.market-tape small{color:rgba(243,244,246,.62);font-size:.7rem}.family-player small{display:block;margin-top:8px;color:rgba(243,244,246,.62);line-height:1.25}.tile-scam,.tile-fraud,.tile-bankruptcy,.tile-marketCrash,.tile-bubble{box-shadow:inset 0 0 28px rgba(239,68,68,.10)}
@media(max-width:980px){.family-layout{grid-template-columns:1fr}.family-board{grid-template-columns:repeat(4,minmax(104px,1fr))}.family-side{grid-template-columns:1fr 1fr}.family-log,.family-players{grid-column:1/-1}}@media(max-width:640px){.family-game{padding:14px}.family-head,.family-controls{grid-template-columns:1fr;display:grid}.family-layout{gap:12px}.family-board{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;padding-bottom:8px}.family-tile{min-width:172px;scroll-snap-align:start}.family-side{grid-template-columns:1fr}.family-actions{grid-template-columns:1fr}.family-turn{min-width:0}}

/* richer interactive characters */
.guide-click{cursor:pointer;outline:none;transform-style:preserve-3d;transition:transform .18s ease,border-color .18s ease,box-shadow .18s ease}.guide-click:hover,.guide-click:focus-visible,.guide-click.speaking{transform:translateY(-4px);border-color:color-mix(in srgb,var(--age),white 22%);box-shadow:0 18px 46px rgba(0,0,0,.38),0 0 0 2px rgba(255,255,255,.08),0 0 34px color-mix(in srgb,var(--age),transparent 62%)}.guide-click.speaking .avatar-rig{animation:avatarJump .72s ease-in-out infinite}.guide-click.speaking .mouth{animation:talkMouth .42s ease-in-out infinite}.guide-bubble{position:absolute;left:8px;right:8px;top:8px;z-index:5;padding:8px 9px;border-radius:8px;background:linear-gradient(135deg,rgba(255,255,255,.92),rgba(224,255,255,.82));color:#020617;font-size:.72rem;font-weight:900;line-height:1.18;box-shadow:0 12px 28px rgba(0,0,0,.28);opacity:0;transform:translateY(-8px) scale(.94);transition:.18s ease}.guide-bubble::after{content:"";position:absolute;left:28px;bottom:-7px;border:7px solid transparent;border-top-color:rgba(255,255,255,.88)}.guide-click:hover .guide-bubble,.guide-click:focus-visible .guide-bubble,.guide-click.speaking .guide-bubble{opacity:1;transform:translateY(0) scale(1)}.tap-hint{display:block;margin-top:6px;color:var(--gold);font-size:.66rem;font-weight:900;text-transform:uppercase}.guide-stage{margin:12px 0 0;padding:12px;border-radius:8px;border:1px solid color-mix(in srgb,var(--age),white 18%);background:linear-gradient(135deg,color-mix(in srgb,var(--age),transparent 86%),rgba(255,255,255,.05));box-shadow:inset 0 1px 0 rgba(255,255,255,.08)}.guide-stage b{display:block;color:var(--gold);margin-bottom:4px}.guide-stage span{display:block;color:rgba(243,244,246,.86);line-height:1.35}.family-presenter{width:126px;flex:0 0 126px}.family-presenter .guide{padding:12px}.family-presenter .avatar{width:88px;margin:auto}.family-presenter .guide-bubble{font-size:.68rem}.family-presenter .tap-hint{display:none}
.avatar-aura{position:absolute;inset:9%;border-radius:50%;background:radial-gradient(circle,color-mix(in srgb,var(--accent),transparent 62%),transparent 67%);filter:blur(7px);opacity:.72;animation:auraPulse 2.8s ease-in-out infinite}.tail{position:absolute;left:7%;bottom:18%;width:29%;height:16%;border-radius:999px;background:linear-gradient(90deg,var(--dark),var(--fur));box-shadow:inset -4px -5px 8px rgba(2,6,23,.32);transform:rotate(-22deg) translateZ(-4px);transform-origin:right center;animation:tailWag 1.9s ease-in-out infinite}.avatar-cat .tail{left:auto;right:2%;bottom:20%;height:18%;transform:rotate(28deg);border-radius:999px 999px 30% 999%}.avatar-human .tail{display:none}.cheek{position:absolute;top:62%;width:10%;aspect-ratio:1;border-radius:50%;background:color-mix(in srgb,var(--accent),white 62%);opacity:.5;filter:blur(.2px)}.cheek-left{left:25%}.cheek-right{right:25%}.foot{position:absolute;bottom:0;width:24%;height:12%;border-radius:999px;background:linear-gradient(180deg,var(--face),var(--dark));box-shadow:inset -3px -4px 7px rgba(2,6,23,.28),0 5px 7px rgba(0,0,0,.18);transform:translateZ(10px)}.foot-left{left:24%;transform:rotate(4deg) translateZ(10px)}.foot-right{right:24%;transform:rotate(-4deg) translateZ(10px)}.badge-dot{position:absolute;right:24%;bottom:28%;width:15%;aspect-ratio:1;border-radius:50%;background:radial-gradient(circle at 35% 30%,#fff 0 14%,var(--accent) 18% 100%);border:2px solid rgba(255,255,255,.62);box-shadow:0 0 16px color-mix(in srgb,var(--accent),transparent 35%);transform:translateZ(22px)}.avatar-setter .tail,.avatar-mastiff .tail{left:2%;bottom:22%;width:32%;height:15%;transform:rotate(-12deg)}.avatar-ferret .tail{height:18%;width:34%}.avatar-human .foot{background:linear-gradient(180deg,var(--accent),#020617);height:10%}
.reward-burst,.mistake-shake{position:absolute;left:50%;top:calc(50% + 84px);transform:translateX(-50%);padding:10px 16px;border-radius:999px;background:linear-gradient(135deg,var(--age),var(--age2));color:#020617;font-weight:900;box-shadow:0 18px 44px rgba(0,0,0,.36);animation:rewardPop 1.2s ease both}.reward-burst b,.reward-burst small{display:block;text-align:center}.mistake-shake{background:linear-gradient(135deg,var(--red),var(--amber));animation:mistakeWarn 1.2s ease both}.reaction-layer.win span:nth-child(3n){border-radius:50%;width:12px;height:12px}.reaction-layer.win span:nth-child(4n){clip-path:polygon(50% 0,61% 35%,98% 35%,68% 56%,79% 91%,50% 70%,21% 91%,32% 56%,2% 35%,39% 35%);height:15px}
@keyframes auraPulse{0%,100%{opacity:.45;transform:scale(.95)}50%{opacity:.82;transform:scale(1.07)}}@keyframes tailWag{0%,100%{rotate:0deg}50%{rotate:9deg}}@keyframes rewardPop{0%{opacity:0;transform:translateX(-50%) translateY(16px) scale(.7)}28%{opacity:1;transform:translateX(-50%) translateY(0) scale(1.06)}100%{opacity:0;transform:translateX(-50%) translateY(-8px) scale(.96)}}@keyframes mistakeWarn{0%{opacity:0;transform:translateX(-50%) translateY(18px) rotate(-3deg) scale(.7)}25%{opacity:1;transform:translateX(-50%) translateY(0) rotate(3deg) scale(1.04)}60%{transform:translateX(-50%) translateY(0) rotate(-2deg)}100%{opacity:0;transform:translateX(-50%) translateY(8px) rotate(0) scale(.96)}}
@media(max-width:760px){.family-presenter{width:auto;flex:0 0 auto}.family-presenter .guide{display:grid;grid-template-columns:76px 1fr;align-items:center;text-align:left}.family-presenter .avatar{width:72px}.family-presenter .guide h3,.family-presenter .guide p{margin-left:0}.guide-bubble{font-size:.68rem}.tap-hint{font-size:.6rem}}@media (prefers-reduced-motion:reduce){.avatar-aura,.tail,.guide-click.speaking .avatar-rig,.reward-burst,.mistake-shake{animation:none!important}}

/* character format: rounded educational-game mascots */
.avatar3d{width:96px;filter:drop-shadow(0 20px 22px rgba(0,0,0,.34));transform:translateZ(0)}.guide .avatar{width:104px}.companions .avatar3d{width:88px}.reaction-character .avatar3d{width:142px}.family-presenter .avatar{width:112px}.avatar-shadow{left:13%;right:13%;bottom:-1%;height:18%;background:radial-gradient(ellipse,rgba(0,0,0,.38),transparent 68%);filter:blur(3px)}.avatar-aura{inset:2%;background:radial-gradient(circle at 50% 38%,color-mix(in srgb,var(--accent),white 18%),transparent 60%);filter:blur(10px);opacity:.42}.avatar-rig{width:100%;height:100%;animation:mascotBreathe 3.4s ease-in-out infinite}.avatar-body{left:23%;right:23%;bottom:0;height:34%;border-radius:48% 48% 30% 30%;background:linear-gradient(155deg,color-mix(in srgb,var(--accent),white 28%),var(--accent) 54%,color-mix(in srgb,var(--accent),#020617 42%));box-shadow:inset -10px -14px 18px rgba(2,6,23,.24),inset 9px 10px 14px rgba(255,255,255,.24),0 12px 24px rgba(0,0,0,.22)}.avatar-body .chest{left:28%;right:28%;top:18%;height:42%;background:radial-gradient(circle at 35% 30%,rgba(255,255,255,.78),rgba(255,255,255,.18));border-color:rgba(255,255,255,.26)}.head{left:6%;right:6%;top:0;height:76%;border-radius:46% 46% 49% 49% / 42% 42% 56% 56%;background:radial-gradient(circle at 34% 23%,rgba(255,255,255,.72),transparent 18%),radial-gradient(circle at 68% 72%,rgba(0,0,0,.10),transparent 38%),linear-gradient(155deg,color-mix(in srgb,var(--fur),white 12%),var(--fur) 54%,var(--dark));box-shadow:inset -12px -16px 22px rgba(2,6,23,.22),inset 13px 12px 18px rgba(255,255,255,.20),0 16px 26px rgba(0,0,0,.26),0 0 0 3px rgba(255,255,255,.20),0 0 0 5px color-mix(in srgb,var(--accent),transparent 64%)}.head::after{inset:8% 9% 55%;opacity:.55}.ear{top:10%;width:24%;height:30%;z-index:0;border-radius:56% 56% 48% 48%;background:linear-gradient(155deg,color-mix(in srgb,var(--fur),white 18%),var(--dark));box-shadow:inset -5px -7px 10px rgba(2,6,23,.20),inset 4px 5px 8px rgba(255,255,255,.20)}.ear-left{left:-6%;transform:rotate(-24deg)}.ear-right{right:-6%;transform:rotate(24deg)}.avatar-ferret .ear{top:15%;width:18%;height:25%;border-radius:70%}.avatar-cat .ear{top:-4%;height:30%;width:26%;clip-path:polygon(50% 0,100% 100%,0 100%);border-radius:12px}.avatar-setter .ear,.avatar-mastiff .ear{top:24%;height:48%;width:24%}.mask{left:17%;right:17%;top:39%;height:37%;border-radius:48% 48% 52% 52%;background:linear-gradient(180deg,color-mix(in srgb,var(--face),white 16%),var(--face));box-shadow:inset -5px -7px 10px rgba(2,6,23,.12),inset 6px 7px 12px rgba(255,255,255,.30)}.snout{left:33%;right:33%;top:58%;height:19%;background:linear-gradient(180deg,color-mix(in srgb,var(--face),white 34%),var(--face));box-shadow:inset -3px -4px 8px rgba(2,6,23,.12)}.eye{top:39%;width:21%;background:radial-gradient(circle at 35% 27%,#fff 0 22%,#F8FAFC 24% 54%,#DDF7FF 56% 100%);box-shadow:0 3px 8px rgba(0,0,0,.24),inset 0 -3px 6px rgba(34,211,238,.20),0 0 0 2px rgba(255,255,255,.55)}.eye-left{left:24%}.eye-right{right:24%}.eye i{left:32%;top:34%;width:48%;background:radial-gradient(circle at 34% 29%,#fff 0 15%,#111827 17% 100%)}.brow{top:33%;height:4%;background:rgba(17,24,39,.42)}.brow-left{left:23%;transform:rotate(-5deg)}.brow-right{right:23%;transform:rotate(5deg)}.nose{left:44%;top:60%;width:12%;height:9%;background:radial-gradient(circle at 38% 30%,rgba(255,255,255,.65),transparent 18%),#111827}.mouth{left:40%;top:72%;width:20%;height:6%;border-bottom:3px solid rgba(17,24,39,.72)}.cheek{top:61%;width:12%;opacity:.42;background:color-mix(in srgb,var(--accent),white 72%)}.cheek-left{left:22%}.cheek-right{right:22%}.arm{top:20%;width:22%;height:50%;background:linear-gradient(180deg,color-mix(in srgb,var(--fur),white 12%),var(--dark));box-shadow:inset -4px -7px 10px rgba(2,6,23,.20)}.arm-left{left:-13%;transform:rotate(24deg)}.arm-right{right:-13%;transform:rotate(-24deg)}.tail{left:3%;bottom:20%;width:30%;height:17%;opacity:.95}.foot{bottom:-1%;width:25%;height:11%;background:linear-gradient(180deg,color-mix(in srgb,var(--face),white 12%),var(--dark))}.badge-dot{right:25%;bottom:27%;width:16%;box-shadow:0 0 18px color-mix(in srgb,var(--accent),transparent 22%)}.avatar-human .head{left:8%;right:8%;top:0;height:75%;border-radius:48% 48% 50% 50% / 44% 44% 56% 56%;background:radial-gradient(circle at 35% 22%,rgba(255,255,255,.55),transparent 18%),linear-gradient(155deg,color-mix(in srgb,var(--skin),white 10%),var(--skin) 58%,color-mix(in srgb,var(--skin),#5F2D18 30%));box-shadow:inset -10px -14px 20px rgba(95,45,24,.20),inset 11px 10px 16px rgba(255,255,255,.20),0 16px 26px rgba(0,0,0,.25),0 0 0 3px rgba(255,255,255,.18),0 0 0 5px color-mix(in srgb,var(--accent),transparent 66%)}.avatar-human .hair{left:4%;right:4%;top:-4%;height:38%;border-radius:50% 50% 42% 42%;background:radial-gradient(circle at 35% 18%,rgba(255,255,255,.18),transparent 20%),linear-gradient(145deg,color-mix(in srgb,var(--dark),white 8%),#111827)}.avatar-human .ear{top:42%;width:12%;height:18%}.avatar-human .eye{top:40%}.avatar-human .nose{top:58%}.avatar-human .mouth{top:70%}.avatar-human .avatar-body{background:linear-gradient(155deg,color-mix(in srgb,var(--accent),white 26%),var(--accent) 55%,#111827)}.guide-click{background:linear-gradient(180deg,rgba(255,255,255,.075),rgba(255,255,255,.035));box-shadow:inset 0 1px 0 rgba(255,255,255,.08),0 14px 34px rgba(0,0,0,.18)}.guide-click:hover .avatar3d,.guide-click:focus-visible .avatar3d,.guide-click.speaking .avatar3d{filter:drop-shadow(0 22px 24px rgba(0,0,0,.34)) drop-shadow(0 0 18px color-mix(in srgb,var(--accent),transparent 50%))}.guide-bubble{border-radius:14px;font-size:.74rem}.guide-stage{border-radius:14px}.reaction-character strong{border-radius:14px;text-transform:none}.angry-face{border-radius:28px}
@keyframes mascotBreathe{0%,100%{transform:translateY(0) rotateY(var(--look-x)) rotateX(var(--look-y))}50%{transform:translateY(-4px) rotateY(calc(var(--look-x) + 1.5deg)) rotateX(var(--look-y))}}@media(max-width:640px){.avatar3d{width:78px}.guide .avatar{width:82px}.companions .avatar3d{width:68px}.family-presenter .avatar{width:82px}.reaction-character .avatar3d{width:118px}}

/* critical situations: outside the 15 activity formats */
.critical-event{margin:0 0 14px;border-radius:8px;border:1px solid rgba(239,68,68,.48);background:linear-gradient(135deg,rgba(239,68,68,.16),rgba(255,191,0,.08),rgba(34,211,238,.06));box-shadow:0 18px 46px rgba(0,0,0,.28);overflow:hidden}.critical-head{padding:18px;border-bottom:1px solid rgba(255,255,255,.10)}.critical-head span{display:inline-grid;margin-bottom:8px;padding:5px 9px;border-radius:999px;background:rgba(239,68,68,.18);color:var(--amber);border:1px solid rgba(255,191,0,.36);font-size:.72rem;text-transform:uppercase;font-weight:900}.critical-head h3{margin:0 0 8px;color:var(--amber);font-size:1.35rem}.critical-head p{margin:0;color:rgba(243,244,246,.88);line-height:1.45}.critical-head small{display:block;margin-top:8px;color:rgba(224,255,255,.72);font-weight:800}.critical-options{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;padding:14px}.critical-option{display:grid;grid-template-columns:34px 1fr;gap:8px;align-items:start;text-align:left;color:var(--text);background:rgba(2,6,23,.66);border:1px solid rgba(224,255,255,.16);min-height:132px}.critical-option b{display:grid;place-items:center;width:30px;aspect-ratio:1;border-radius:50%;background:rgba(255,255,255,.10);color:var(--gold)}.critical-option span{font-weight:900;line-height:1.25}.critical-option small{grid-column:1/-1;color:rgba(243,244,246,.70);line-height:1.3}.critical-option.good{border-color:rgba(80,200,120,.36)}.critical-option.risk{border-color:rgba(255,191,0,.36)}.critical-option.bad{border-color:rgba(239,68,68,.36)}.critical-option.selected{color:#020617;background:linear-gradient(135deg,var(--age),var(--age2));border-color:rgba(255,255,255,.70)}.critical-option.selected small{color:rgba(2,6,23,.74)}.critical-summary{margin:0 0 14px;padding:12px 14px;border-radius:8px;border:1px solid rgba(80,200,120,.34);background:linear-gradient(135deg,rgba(80,200,120,.11),rgba(34,211,238,.06))}.critical-summary b{display:block;color:var(--emerald);margin-bottom:4px}.critical-summary span{color:rgba(243,244,246,.82);line-height:1.35}
@media(max-width:760px){.critical-options{grid-template-columns:1fr}.critical-option{min-height:auto}.critical-head{padding:14px}}

/* entry and route access */
.entry-note{margin:12px 0 0;color:rgba(224,255,255,.72);font-size:.88rem;line-height:1.35}.admin-entry{margin-top:14px;padding:12px;border-radius:8px;border:1px solid rgba(212,175,55,.24);background:rgba(2,6,23,.38)}.admin-entry summary{cursor:pointer;color:var(--gold);font-weight:900}.admin-entry label{margin-top:12px}.admin-entry p{margin:8px 0 0;color:rgba(243,244,246,.68);font-size:.84rem}.route-lock{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px;align-items:center;margin:0 0 14px;padding:14px;border-radius:8px;border:1px solid rgba(212,175,55,.30);background:linear-gradient(135deg,rgba(212,175,55,.10),rgba(34,211,238,.06)),rgba(255,255,255,.035)}.route-lock div{display:grid;gap:4px}.route-lock b{color:var(--gold)}.route-lock span,.route-lock small{color:rgba(243,244,246,.74);line-height:1.35}.route-lock small{grid-column:1/-1}.levels button:disabled{opacity:.36;filter:grayscale(.8);cursor:not-allowed}.levels button:disabled:hover{transform:none}body[data-admin="true"] .levels button:disabled{opacity:1;filter:none;cursor:pointer}
@media(max-width:640px){.route-lock{grid-template-columns:1fr}.route-lock button{width:100%}}

/* certificate, knowledge & attitudes block */
.cert-skills{margin:22px 0 18px;padding:18px 22px;border-radius:10px;border:1px solid rgba(212,175,55,.42);background:linear-gradient(135deg,rgba(212,175,55,.12),rgba(34,211,238,.06)),rgba(2,6,23,.32);text-align:left}
.cert-skills h4{margin:0 0 6px;color:var(--gold);font-size:1rem;letter-spacing:.04em;text-transform:uppercase}
.cert-skills .cert-skills-intro{margin:0 0 10px;color:rgba(243,244,246,.78);font-size:.92rem;line-height:1.4;font-style:italic}
.cert-skills ul{margin:0;padding:0;list-style:none;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px 22px}
.cert-skills li{position:relative;padding:4px 0 4px 22px;color:rgba(243,244,246,.92);font-size:.94rem;line-height:1.4}
.cert-skills li::before{content:"✓";position:absolute;left:0;top:4px;color:var(--gold);font-weight:900}
@media(max-width:640px){.cert-skills ul{grid-template-columns:1fr}.cert-skills{padding:14px 16px}}
@media print{.cert-skills{background:none!important;border-color:#bda13a;color:#020617}.cert-skills h4{color:#7a5a00}.cert-skills .cert-skills-intro{color:#374151}.cert-skills li{color:#020617}.cert-skills li::before{color:#7a5a00}}

/* ── Accessibility modes ──────────────────────────────────────────
   Applied via JS (a11y.js) as classes on <body>:
   .a11y-large | .a11y-xlarge | .a11y-dyslexia
   .a11y-noanim | .a11y-contrast | .a11y-simple
   ────────────────────────────────────────────────────────────── */

/* Lexend: legible, diseñada para dislexia y dificultades lectoras */
@import url('https://fonts.googleapis.com/css2?family=Lexend:wght@400;600;700;900&display=swap');

/* Tamaño grande */
.a11y-large{font-size:112%}
.a11y-xlarge{font-size:128%}

/* Fuente dislexia: Lexend, espaciado y trazos optimizados */
.a11y-dyslexia,.a11y-dyslexia *:not(.avatar3d):not(.avatar3d *){
  font-family:'Lexend',system-ui,sans-serif!important;
  letter-spacing:.025em;word-spacing:.12em;line-height:1.7!important}
.a11y-dyslexia .q-text,.a11y-dyslexia .card,.a11y-dyslexia .options button{
  letter-spacing:.03em}

/* Sin animaciones */
.a11y-noanim *,.a11y-noanim *::before,.a11y-noanim *::after{
  animation:none!important;transition:none!important}

/* Alto contraste */
.a11y-contrast{
  --text:#ffffff;--muted:#d1d5db;--bg:#000000;
  --card:rgba(0,0,0,.97);--soft:rgba(34,211,238,.28);
  --border:rgba(255,255,255,.55);--gold:#FFD700}
.a11y-contrast body{background:#000!important}
.a11y-contrast .panel,.a11y-contrast .map-panel,.a11y-contrast .world-buttons button,.a11y-contrast .stats div,.a11y-contrast .wf-skills-card,.a11y-contrast .wf-progress-card{background:#000!important;border-color:rgba(255,255,255,.55)!important}
.a11y-contrast .certificate{background:#000!important}
.a11y-contrast .pill{border-color:rgba(255,255,255,.6);color:#fff}
.a11y-contrast .options button{border-color:rgba(255,255,255,.55);background:rgba(0,0,60,.8)}
.a11y-contrast .options button:hover,.a11y-contrast .options button:focus{
  background:rgba(34,211,238,.35)!important;outline:3px solid var(--cyan)!important}
.a11y-contrast button:focus,.a11y-contrast a:focus{
  outline:3px solid #FFD700!important;outline-offset:2px}

/* Modo simplificado: oculta decoraciones, reduce densidad */
.a11y-simple .avatar3d,.a11y-simple .avatar-shadow,.a11y-simple .avatar-aura,
.a11y-simple .reaction-layer,.a11y-simple .confetti-piece,
.a11y-simple #lang-toggle,.a11y-simple .brand span{display:none!important}
.a11y-simple .shell{max-width:740px}
.a11y-simple .guide{max-width:100%;grid-column:1/-1}
.a11y-simple .mission-grid{grid-template-columns:1fr!important}
.a11y-simple .capsule{border-left:4px solid var(--gold);padding-left:18px}
.a11y-simple .surprise{border-left:4px solid var(--red);padding-left:18px}
.a11y-simple .options button{font-size:1.05rem!important;min-height:52px;padding:14px 18px}
.a11y-simple .world-buttons button{min-height:80px;font-size:.98rem}

/* Combinaciones: dyslexia + simplificado → máxima legibilidad */
.a11y-dyslexia.a11y-simple .options button{
  min-height:60px;padding:16px 20px;border-radius:10px}
.a11y-dyslexia.a11y-simple .card,.a11y-dyslexia.a11y-simple .capsule{
  padding:22px 24px}

/* ── Espaciado de texto (dislexia / baja visión) ───────────────── */
.a11y-spacing p,.a11y-spacing li,.a11y-spacing .q-text,.a11y-spacing .options button,
.a11y-spacing .adv-skills,.a11y-spacing .capsule,.a11y-spacing .card,
.a11y-spacing .mg-prompt,.a11y-spacing .mg-option,.a11y-spacing small{
  line-height:1.9!important;letter-spacing:.06em!important;word-spacing:.18em!important}
.a11y-spacing p,.a11y-spacing li{margin-bottom:.5em}

/* ── Paleta para daltonismo (rojo-verde) ──────────────────────────
   Desplaza verde→teal-azul y rojo→naranja para distinguir mejor,
   y refuerza con borde/grosor donde el color indica acierto/error. */
.a11y-colorblind{--green:#1f9ed1;--emerald:#1f9ed1;--red:#E8730C}
.a11y-colorblind .mg-option.mg-ok,.a11y-colorblind .wc-skills li::before,
.a11y-colorblind .option.correct,.a11y-colorblind .correct{
  border-color:#1f9ed1!important;color:#1f9ed1!important}
.a11y-colorblind .mg-option.mg-no,.a11y-colorblind .option.wrong,.a11y-colorblind .wrong{
  border-color:#E8730C!important;color:#E8730C!important}
.a11y-colorblind .mg-option.mg-ok::after{content:" ✓";font-weight:900}
.a11y-colorblind .mg-option.mg-no::after{content:" ✗";font-weight:900}
.a11y-colorblind .mg-scam-safe{background:linear-gradient(135deg,#1f9ed1,#1577a0)!important;color:#fff!important}
.a11y-colorblind .mg-scam-fraud{background:linear-gradient(135deg,#E8730C,#b85a08)!important;color:#fff!important}

/* ── Modo lectura en voz alta: resalta lo que se puede tocar ───── */
.a11y-tts [data-tts-readable]{cursor:pointer}
.a11y-tts-speaking{outline:3px solid var(--cyan)!important;outline-offset:2px;
  background:rgba(34,211,238,.12)!important;border-radius:6px}
.a11y-tts-hint{position:fixed;left:50%;bottom:84px;transform:translateX(-50%);z-index:9988;
  background:rgba(34,211,238,.95);color:#02060f;font-weight:800;font-size:.82rem;
  padding:8px 16px;border-radius:99px;box-shadow:0 8px 24px rgba(0,0,0,.4);pointer-events:none;
  animation:ttsHint 3.2s ease forwards}
@keyframes ttsHint{0%{opacity:0;transform:translate(-50%,8px)}12%{opacity:1;transform:translate(-50%,0)}85%{opacity:1}100%{opacity:0}}

/* admin direct-entry button */
.admin-direct{display:block;width:100%;margin-top:12px;padding:12px 16px;border-radius:8px;border:1px solid var(--gold);background:linear-gradient(135deg,var(--gold),#b89020);color:#020617;font-weight:900;letter-spacing:.03em;cursor:pointer;font-size:1rem}
.admin-direct:hover{filter:brightness(1.1)}

/* world footer, progress bar + skills */
.world-footer{margin-top:18px;display:grid;gap:14px}
.wf-progress-card,.wf-skills-card{padding:18px 22px;border-radius:10px;border:1px solid var(--line);background:linear-gradient(135deg,rgba(2,6,23,.62),rgba(2,6,23,.42));box-shadow:0 18px 50px rgba(0,0,0,.34)}
.wf-progress-head{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:12px;gap:14px;flex-wrap:wrap}
.wf-kicker{color:var(--age,var(--cyan));text-transform:uppercase;font-size:.78rem;letter-spacing:.08em;font-weight:900}
.wf-counter{color:var(--text);font-size:1.05rem;font-weight:700}
.wf-counter b{color:var(--gold);font-size:1.4rem;font-weight:900;margin-right:2px}
.wf-bar-track{position:relative;height:22px;border-radius:999px;background:rgba(2,6,23,.78);border:1px solid rgba(212,175,55,.28);overflow:visible}
.wf-bar-fill{height:100%;border-radius:999px;background:linear-gradient(90deg,var(--age,var(--cyan)),var(--age2,var(--gold)));box-shadow:0 0 18px color-mix(in srgb,var(--age,var(--cyan)),transparent 38%),inset 0 1px 0 rgba(255,255,255,.22);transition:width .8s cubic-bezier(.2,.8,.2,1)}
.wf-bill{position:absolute;top:50%;transform:translateY(-50%);font-size:1.4rem;filter:drop-shadow(0 2px 4px rgba(0,0,0,.5));transition:left .8s cubic-bezier(.2,.8,.2,1);pointer-events:none}
.wf-milestones{display:flex;justify-content:space-between;margin-top:8px;padding:0 4px}
.wf-milestone{font-size:.74rem;color:rgba(243,244,246,.42);letter-spacing:.04em}
.wf-milestone-on{color:var(--gold);font-weight:700}
.wf-skills-card h4{margin:0 0 4px;color:var(--gold);font-size:.95rem;letter-spacing:.06em;text-transform:uppercase}
.wf-skills-intro{margin:0 0 12px;color:rgba(243,244,246,.74);font-size:.9rem;font-style:italic;line-height:1.4}
.wf-skills-empty{margin:0;color:rgba(243,244,246,.6);font-size:.9rem;font-style:italic}
.wf-skills-list{margin:0;padding:0;list-style:none;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px 26px}
@media(max-width:860px){.wf-skills-list{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:560px){.wf-skills-list{grid-template-columns:1fr}}
.wf-skills-list li{position:relative;padding:4px 0 4px 22px;color:rgba(243,244,246,.92);font-size:.92rem;line-height:1.4}
.wf-skills-list li::before{content:"✓";position:absolute;left:0;top:4px;color:var(--age2,var(--gold));font-weight:900}
.wf-complete{display:flex;align-items:center;gap:14px;padding:16px 20px;border-radius:10px;border:1px solid var(--gold);background:linear-gradient(135deg,rgba(212,175,55,.22),rgba(34,211,238,.10));box-shadow:0 0 32px rgba(212,175,55,.28),inset 0 1px 0 rgba(255,255,255,.14);animation:wfPulse 2.4s ease-in-out infinite}
.wf-complete .wf-trophy{font-size:2.4rem;filter:drop-shadow(0 4px 8px rgba(0,0,0,.5))}
.wf-complete b{display:block;color:var(--gold);font-size:1.15rem}
.wf-complete small{display:block;margin-top:4px;color:rgba(243,244,246,.86);font-size:.88rem}
.wf-cert-btn{margin-left:auto;padding:12px 18px;border-radius:8px;border:1px solid var(--gold);background:linear-gradient(135deg,var(--gold),#b89020);color:#020617;font-weight:900;letter-spacing:.04em;cursor:pointer;white-space:nowrap}
.wf-cert-btn:hover{filter:brightness(1.1)}
@keyframes wfPulse{0%,100%{box-shadow:0 0 32px rgba(212,175,55,.28),inset 0 1px 0 rgba(255,255,255,.14)}50%{box-shadow:0 0 48px rgba(212,175,55,.48),inset 0 1px 0 rgba(255,255,255,.18)}}
@media(max-width:640px){.wf-skills-list{grid-template-columns:1fr}.wf-complete{flex-wrap:wrap}.wf-cert-btn{margin-left:0;width:100%}}

/* ── Mobile / Touch improvements ──────────────────────────────── */

/* Elimina el delay de 300ms en tap en todos los dispositivos táctiles */
button,a,[role="button"],input,select,label{touch-action:manipulation}

/* Evita selección de texto accidental al pulsar botones */
button,.age,.levels button,.world-buttons button,.options button,.plan-cta,.family-tile,.node{-webkit-user-select:none;user-select:none}

/* Levels nav: 2×2 en lugar de 4 filas apiladas en móvil */
@media(max-width:640px){
  .levels{grid-template-columns:repeat(2,1fr)!important}
  /* data-actions: fila horizontal compacta en móvil */
  .data-actions{grid-template-columns:repeat(4,minmax(0,1fr))!important;gap:6px}
  .data-actions button,.data-actions .home-link{padding:8px 5px;font-size:.72rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  /* Topbar más compacto */
  .topbar{gap:8px}
  /* Stats más apretados */
  .stats b{font-size:.98rem}
  .stats small{font-size:.65rem}
}

/* iOS Safe Area: espacio para notch y barra de inicio */
@supports(padding:env(safe-area-inset-bottom)){
  .shell{padding-bottom:max(48px,calc(env(safe-area-inset-bottom) + 16px))}
  .actions{padding-bottom:calc(10px + env(safe-area-inset-bottom))}
  dialog{padding-bottom:env(safe-area-inset-bottom)}
}
@supports(padding:env(safe-area-inset-top)){
  #lang-toggle{top:max(14px,calc(env(safe-area-inset-top) + 4px))}
}

/* Scroll suave en iOS para diálogos y paneles */
dialog,dialog *,.family-board,.world-buttons,.family-log{-webkit-overflow-scrolling:touch}

/* Mejor legibilidad en pantallas pequeñas de alta densidad */
@media(max-width:390px){
  .data-actions button{font-size:.68rem;padding:7px 3px}
  .stats b{font-size:.9rem}
  .family-head h2{font-size:1.5rem}
}

/* Evita zoom automático en inputs en iOS (requiere font-size ≥ 16px) */
@media(max-width:640px){
  input,select,textarea{font-size:max(16px,1rem)!important}
}

/* Mejor contraste del overlay de licencia en móvil */
#__lic_gate p{font-size:1rem}

/* ── Hub: pantalla de selección (mundos / familia) ──────────── */
#hub{min-height:calc(100vh - 56px);display:flex;flex-direction:column;justify-content:center;gap:30px;max-width:980px;margin:0 auto;padding:24px 0}
.hub-top{display:flex;align-items:center;justify-content:space-between;gap:16px}
.hub-top-actions{display:flex;align-items:center;gap:10px}
.home-link{display:inline-flex;align-items:center;gap:5px;background:rgba(34,211,238,.1);
  border:1px solid rgba(34,211,238,.3);color:var(--cyan);border-radius:8px;padding:9px 16px;
  font-weight:700;text-decoration:none;transition:.15s;white-space:nowrap;font-size:.92rem}
.home-link:hover{background:rgba(34,211,238,.2);border-color:var(--cyan)}
.data-actions .home-link{justify-content:center;padding:10px 12px;font-size:.92rem;border-radius:8px}
.hub-exit{background:rgba(255,255,255,.05);border:1px solid var(--line);color:rgba(243,244,246,.8);border-radius:8px;padding:9px 16px;font-weight:700;cursor:pointer;transition:.15s}
.hub-exit:hover{border-color:var(--cyan);color:var(--text)}
.hub-intro{text-align:center}
.hub-kicker{margin:0 0 6px;color:var(--cyan);text-transform:uppercase;letter-spacing:.16em;font-size:.8rem;font-weight:800}
.hub-h1{margin:0 0 10px;font-size:clamp(2rem,5vw,3.1rem);font-weight:900;letter-spacing:-.02em;color:var(--text)}
.hub-sub{margin:0 auto;max-width:54ch;color:rgba(243,244,246,.66);font-size:1.02rem;line-height:1.55}
.hub-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px}
.hub-card{display:flex;flex-direction:column;align-items:flex-start;gap:12px;text-align:left;padding:34px 30px;border-radius:20px;border:1px solid var(--line);background:rgba(255,255,255,.04);color:var(--text);cursor:pointer;transition:transform .18s ease,border-color .18s ease,box-shadow .18s ease,background .18s ease;min-height:230px}
.hub-card:hover,.hub-card:focus-visible{transform:translateY(-5px);outline:none}
.hub-card .hub-emoji{font-size:3rem;line-height:1}
.hub-card b{font-size:1.45rem;font-weight:900;letter-spacing:-.01em}
.hub-card small{font-size:.96rem;line-height:1.55;color:rgba(243,244,246,.66);flex:1}
.hub-card .hub-go{margin-top:4px;font-weight:800;font-size:.95rem;letter-spacing:.01em}
.hub-card.hub-worlds{background:linear-gradient(160deg,rgba(34,211,238,.12),rgba(255,255,255,.03))}
.hub-card.hub-worlds:hover,.hub-card.hub-worlds:focus-visible{border-color:rgba(34,211,238,.6);box-shadow:0 22px 56px rgba(34,211,238,.18)}
.hub-card.hub-worlds .hub-go{color:var(--cyan)}
.hub-card.hub-family{background:linear-gradient(160deg,rgba(212,175,55,.13),rgba(255,255,255,.03))}
.hub-card.hub-family:hover,.hub-card.hub-family:focus-visible{border-color:rgba(212,175,55,.6);box-shadow:0 22px 56px rgba(212,175,55,.18)}
.hub-card.hub-family .hub-go{color:var(--gold)}
@media(max-width:680px){.hub-grid{grid-template-columns:1fr}.hub-card{min-height:0;padding:26px 22px}.hub-top{flex-wrap:wrap}}

/* ── Vista familiar dentro de #game: oculta los mundos ────── */
#game[data-view="family"] .levels,
#game[data-view="family"] #entrepreneur-tabs,
#game[data-view="family"] #route-lock,
#game[data-view="family"] .world-layout{display:none}
#game[data-view="worlds"] #family-game{display:none}

/* ── Juego familiar: banner de turno + dado prominente ──── */
.family-turn-banner{display:flex;flex-direction:column;align-items:center;gap:.55rem;text-align:center;
  margin:16px 0;padding:20px 18px;border-radius:16px;
  border:1px solid rgba(34,211,238,.32);
  background:linear-gradient(135deg,rgba(34,211,238,.12),rgba(2,6,23,.42))}
.ftb-who span{color:rgba(243,244,246,.6);font-size:.78rem;font-weight:700;text-transform:uppercase;letter-spacing:.1em}
.ftb-who b{display:block;color:var(--text);font-size:1.55rem;font-weight:900;letter-spacing:-.01em;line-height:1.1}
.ftb-dice{padding:15px 40px;border-radius:13px;border:none;font-size:1.18rem;font-weight:800;cursor:pointer;
  background:linear-gradient(135deg,var(--cyan),#0ea5c9);color:#02060f;
  box-shadow:0 8px 28px rgba(34,211,238,.36);transition:transform .14s,box-shadow .2s;touch-action:manipulation}
.ftb-dice:hover{transform:translateY(-2px);box-shadow:0 12px 38px rgba(34,211,238,.5)}
.ftb-dice:active{transform:scale(.97)}
.ftb-hint{color:rgba(243,244,246,.55);font-size:.8rem;max-width:42ch}
.family-tile{cursor:pointer;transition:transform .12s,border-color .12s,box-shadow .12s}
.family-tile:hover{transform:translateY(-3px);border-color:var(--cyan)!important;box-shadow:0 8px 22px rgba(34,211,238,.2)}
.family-tile::after{content:"👁 ver";position:absolute;top:6px;right:8px;font-size:.58rem;color:rgba(34,211,238,.7);opacity:0;transition:opacity .14s}
.family-tile{position:relative}
.family-tile:hover::after{opacity:1}

/* ── Pantalla ¡Felicidades! (mundo completado) ────────── */
#world-complete{border:none;background:transparent;padding:0;max-width:520px;width:calc(100% - 28px);overflow:visible}
#world-complete::backdrop{background:rgba(2,6,23,.82);backdrop-filter:blur(6px)}
.world-complete-card{position:relative;background:linear-gradient(165deg,#0a1c2e,#071422);border:2px solid rgba(212,175,55,.4);border-radius:1.6rem;padding:2.4rem 2rem 2rem;text-align:center;box-shadow:0 0 70px rgba(212,175,55,.2);overflow:hidden;animation:wcPop .4s cubic-bezier(.34,1.56,.64,1)}
@keyframes wcPop{from{opacity:0;transform:scale(.9) translateY(16px)}to{opacity:1;transform:scale(1) translateY(0)}}
.wc-confetti{position:absolute;inset:0;pointer-events:none;overflow:hidden}
.wc-confetti span{position:absolute;top:-12px;left:var(--x);width:9px;height:9px;background:var(--c);border-radius:2px;animation:wcFall var(--d) linear var(--delay) infinite}
@keyframes wcFall{to{transform:translateY(560px) rotate(540deg);opacity:.3}}
.a11y-noanim .wc-confetti{display:none}
.a11y-noanim .world-complete-card{animation:none}
.wc-medal{font-size:3.4rem;line-height:1;position:relative;z-index:1;filter:drop-shadow(0 6px 16px rgba(212,175,55,.5))}
.wc-kicker{position:relative;z-index:1;color:var(--gold);font-size:.74rem;font-weight:800;text-transform:uppercase;letter-spacing:.14em;margin:.7rem 0 .2rem}
.wc-title{position:relative;z-index:1;color:#f1f5f9;font-size:1.9rem;font-weight:900;letter-spacing:-.02em;margin:0 0 .5rem}
.wc-sub{position:relative;z-index:1;color:rgba(226,232,240,.72);font-size:.95rem;line-height:1.55;margin:0 auto .3rem;max-width:40ch}
.wc-sub b{color:var(--cyan)}
.wc-skills{position:relative;z-index:1;margin:1.3rem 0 .4rem;text-align:left;background:rgba(255,255,255,.04);border:1px solid rgba(34,211,238,.18);border-radius:1rem;padding:1rem 1.2rem}
.wc-skills-h{color:var(--cyan);font-size:.72rem;font-weight:800;text-transform:uppercase;letter-spacing:.08em;margin:0 0 .55rem}
.wc-skills ul{margin:0;padding:0;list-style:none;display:flex;flex-direction:column;gap:.4rem}
.wc-skills li{position:relative;padding-left:1.5rem;color:rgba(226,232,240,.88);font-size:.86rem;line-height:1.45}
.wc-skills li::before{content:"✓";position:absolute;left:0;top:0;color:var(--green);font-weight:900}
.wc-actions{position:relative;z-index:1;display:flex;flex-direction:column;gap:.6rem;margin-top:1.5rem}
.wc-actions button{padding:.92rem 1.2rem;border-radius:.85rem;font-size:.96rem;font-weight:800;cursor:pointer;border:none;transition:transform .14s,box-shadow .2s,border-color .2s}
.wc-actions button:active{transform:scale(.98)}
.wc-cert-btn{background:linear-gradient(135deg,var(--gold),#b8902a);color:#1a1206;box-shadow:0 8px 26px rgba(212,175,55,.32)}
.wc-cert-btn:hover{transform:translateY(-2px);box-shadow:0 12px 34px rgba(212,175,55,.45)}
.wc-primary{background:linear-gradient(135deg,var(--cyan),#0ea5c9);color:#02060f;box-shadow:0 8px 26px rgba(34,211,238,.3)}
.wc-primary:hover{transform:translateY(-2px);box-shadow:0 12px 34px rgba(34,211,238,.45)}
.wc-ghost{background:transparent;border:1px solid rgba(255,255,255,.16)!important;color:rgba(226,232,240,.7)}
.wc-ghost:hover{border-color:var(--cyan)!important;color:#f1f5f9}
.wc-alldone{background:rgba(80,200,120,.1);border:1px solid rgba(80,200,120,.3);border-radius:.85rem;padding:.85rem 1rem;color:#86efac;font-size:.9rem;font-weight:600;line-height:1.5}
@media(max-width:520px){.world-complete-card{padding:2rem 1.4rem 1.6rem}.wc-title{font-size:1.6rem}}

/* ── Botón "Cómo se juega" en la cabecera del mundo ──── */
.worlds-howto-btn{margin-top:.6rem;align-self:flex-start;padding:.5rem .9rem;border-radius:.6rem;
  border:1px solid rgba(34,211,238,.3);background:rgba(34,211,238,.1);color:var(--cyan);
  font-size:.82rem;font-weight:700;cursor:pointer;transition:.15s;touch-action:manipulation}
.worlds-howto-btn:hover{background:rgba(34,211,238,.2);border-color:var(--cyan)}

/* ── Selector de juegos en familia (picker) ───────────────────── */
#family-picker{width:min(680px,calc(100% - 28px))}
.family-picker{padding:28px 26px 30px}
.family-picker .fp-kicker{margin:0 0 4px;font-size:.72rem;font-weight:800;letter-spacing:.14em;text-transform:uppercase;color:var(--cyan)}
.family-picker .fp-title{margin:0 0 6px;font-size:1.7rem;font-weight:900;letter-spacing:-.01em;color:var(--text)}
.family-picker .fp-sub{margin:0 0 22px;color:rgba(243,244,246,.66);font-size:.94rem;line-height:1.5;max-width:46ch}
.fp-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.fp-card{display:flex;flex-direction:column;align-items:flex-start;gap:8px;text-align:left;padding:20px 18px;border-radius:16px;border:1px solid var(--line);background:rgba(255,255,255,.04);color:var(--text);cursor:pointer;transition:transform .16s ease,border-color .16s ease,background .16s ease,box-shadow .16s ease}
.fp-card:hover,.fp-card:focus-visible{transform:translateY(-3px);outline:none}
.fp-card .fp-emoji{font-size:2rem;line-height:1}
.fp-card b{font-size:1.08rem;font-weight:800;letter-spacing:-.01em}
.fp-card small{font-size:.84rem;line-height:1.5;color:rgba(243,244,246,.66)}
.fp-card .fp-tag{margin-top:2px;font-size:.68rem;font-weight:800;letter-spacing:.06em;text-transform:uppercase;padding:4px 10px;border-radius:999px}
.fp-card.fp-child{background:linear-gradient(160deg,rgba(80,200,120,.10),rgba(255,255,255,.03))}
.fp-card.fp-child:hover,.fp-card.fp-child:focus-visible{border-color:rgba(80,200,120,.6);box-shadow:0 16px 40px rgba(80,200,120,.16)}
.fp-card.fp-child .fp-tag{background:rgba(80,200,120,.16);color:#86efac}
.fp-card.fp-adult{background:linear-gradient(160deg,rgba(212,175,55,.12),rgba(255,255,255,.03))}
.fp-card.fp-adult:hover,.fp-card.fp-adult:focus-visible{border-color:rgba(212,175,55,.6);box-shadow:0 16px 40px rgba(212,175,55,.16)}
.fp-card.fp-adult .fp-tag{background:rgba(212,175,55,.18);color:var(--gold)}
@media(max-width:560px){.fp-grid{grid-template-columns:1fr}.family-picker{padding:22px 18px 24px}.family-picker .fp-title{font-size:1.45rem}}

/* ── Color de iris por personaje (albino rojo, gata azul/ámbar…) ── */
.avatar3d .eye i{background:radial-gradient(circle at 34% 29%,#fff 0 15%,var(--iris,#111827) 17% 100%)}

/* ── Ojo cerrado (p.ej. Elsa, ojo derecho), párpado curvo ── */
.avatar-eyeclosed-right .eye-right,
.avatar-eyeclosed-left .eye-left{background:transparent!important;box-shadow:none!important;animation:none!important;overflow:visible}
.avatar-eyeclosed-right .eye-right i,
.avatar-eyeclosed-left .eye-left i{display:none!important}
.avatar-eyeclosed-right .eye-right::after,
.avatar-eyeclosed-left .eye-left::after{content:"";position:absolute;left:-4%;right:-4%;top:46%;height:15%;background:var(--dark,#3a3540);border-radius:999px;box-shadow:none}

