@font-face{font-family:"Fredoka";src:url("fonts/Fredoka.ttf") format("truetype");font-weight:300 700;}
*{box-sizing:border-box;margin:0;padding:0}
html,body{width:100%;height:100%;background:#1d2b53;overflow:hidden;font-family:"Fredoka",system-ui,sans-serif;font-weight:500;user-select:none;-webkit-user-select:none;touch-action:none}
#wrap{position:fixed;inset:0;display:flex;align-items:center;justify-content:center}
#stage{position:relative;flex:none;width:960px;height:540px;transform-origin:center center;border-radius:0;overflow:hidden;box-shadow:0 10px 40px rgba(0,0,0,.45)}
canvas{display:block;width:960px;height:540px}
.hidden{display:none!important}
#hud{position:absolute;left:0;right:0;top:0;height:56px;display:flex;align-items:center;gap:14px;padding:0 116px 0 16px;color:#fff;font-weight:600;font-size:22px;text-shadow:0 2px 0 rgba(0,0,0,.35);pointer-events:none}
#hudLeft{flex:0 0 220px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
#hudMid{flex:1;display:flex;align-items:center;gap:10px;min-width:0}
#bar{flex:1 1 0;min-width:0;height:18px;background:rgba(255,255,255,.35);border-radius:10px;overflow:hidden;border:2px solid #fff}
#barFill{height:100%;width:0;background:linear-gradient(90deg,#ffd23f,#ff8c42);transition:width .2s}
#hudGoal{flex:none;white-space:nowrap;font-size:18px}
#hudRight{flex:none;white-space:nowrap}
#topBtns{position:absolute;right:10px;top:8px;display:flex;gap:8px;z-index:5}
button{font-family:inherit;cursor:pointer;border:none}
.round{width:42px;height:42px;border-radius:50%;background:#fff;font-size:20px;box-shadow:0 3px 0 #c9c9c9}
#overlay{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;pointer-events:none}
#overlay>*{pointer-events:auto}
.panel{background:#fffaf0;border-radius:24px;padding:24px 30px;box-shadow:0 8px 0 #e3c48a,0 12px 30px rgba(0,0,0,.3);max-width:760px;width:88%;text-align:center;color:#3b2a1a;border:4px solid #ffd27a}
.panel h1{font-size:46px;color:#ff6b35;line-height:1.25;text-shadow:0 3px 0 #ffd27a}
.panel h2{font-size:32px;color:#2e86ab;margin-bottom:6px}
.panel p{font-size:21px;line-height:1.35;margin:8px 0}
.panel .ref{font-size:17px;color:#8a6d4b;font-style:italic}
.btn{display:inline-block;margin:12px 8px 0;padding:12px 30px;border-radius:40px;font-size:24px;font-weight:600;color:#fff;background:#3bb273;box-shadow:0 5px 0 #23804f;transition:transform .08s}
.btn:active{transform:translateY(3px);box-shadow:0 2px 0 #23804f}
.btn.blue{background:#2e86ab;box-shadow:0 5px 0 #1d5d78}
.btn.orange{background:#ff8c42;box-shadow:0 5px 0 #c8641f}
.levels{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-top:14px}
.lvl{background:#fff;border-radius:18px;padding:10px 6px 12px;border:4px solid #ffd27a;font-size:18px;font-weight:600;color:#3b2a1a;box-shadow:0 5px 0 #e3c48a;min-height:170px;display:flex;flex-direction:column;align-items:center;justify-content:space-between}
.lvl .ico{font-size:44px;line-height:1.1}
.lvl .ico canvas{width:90px;height:70px}
.lvl .name{line-height:1.15;margin:4px 0}
.lvl .stars{font-size:20px;letter-spacing:2px;color:#ffb400}
.lvl.locked{opacity:.55;filter:grayscale(.8);cursor:not-allowed}
.answers{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:14px}
.ans{padding:14px 10px;border-radius:16px;font-size:21px;font-weight:600;background:#fff;color:#3b2a1a;border:4px solid #9fd8f0;box-shadow:0 4px 0 #9fd8f0;line-height:1.2}
.ans.ok{background:#c9f5d6;border-color:#3bb273}
.ans.bad{background:#ffd9d2;border-color:#ff6b6b;animation:shake .3s}
@keyframes shake{25%{transform:translateX(-6px)}75%{transform:translateX(6px)}}
.bigstars{font-size:54px;color:#ffb400;letter-spacing:6px;margin:6px 0}
.dim{color:#e0d3c0}
.small{font-size:15px!important;color:#8a6d4b}
.touchpad{position:absolute;bottom:12px;display:flex;gap:10px;opacity:.8}
.tp{width:70px;height:70px;border-radius:50%;background:rgba(255,255,255,.75);font-size:32px;box-shadow:0 4px 0 rgba(0,0,0,.2)}
/* ---- Estilo premium ---- */
.panel{background:linear-gradient(180deg,#fffdf6 0%,#fff3d9 100%);border:5px solid #fff;outline:4px solid #ffc857;box-shadow:0 10px 0 #e0a83a,0 18px 40px rgba(40,20,0,.35),inset 0 0 0 3px #ffe7a8;animation:pop .38s cubic-bezier(.2,1.4,.4,1)}
@keyframes pop{0%{transform:scale(.7);opacity:0}100%{transform:scale(1);opacity:1}}
.panel h1{font-size:54px;font-weight:700;background:linear-gradient(180deg,#ffb347,#ff5e3a);-webkit-background-clip:text;background-clip:text;color:transparent;filter:drop-shadow(0 3px 0 #fff) drop-shadow(0 5px 0 #e0a83a);text-shadow:none}
.panel h2{font-weight:700;color:#2178a8;text-shadow:0 2px 0 #fff}
.btn{position:relative;overflow:hidden;font-weight:700;letter-spacing:.3px;border:3px solid rgba(255,255,255,.85);background:linear-gradient(180deg,#5fd68e,#2fa864);box-shadow:0 6px 0 #1f7a47,0 10px 16px rgba(0,0,0,.2);text-shadow:0 2px 0 rgba(0,0,0,.2)}
.btn::after{content:"";position:absolute;left:8%;right:8%;top:3px;height:40%;border-radius:30px;background:linear-gradient(180deg,rgba(255,255,255,.55),rgba(255,255,255,0))}
.btn.blue{background:linear-gradient(180deg,#5cc0f0,#2b86c4);box-shadow:0 6px 0 #1b5d8a,0 10px 16px rgba(0,0,0,.2)}
.btn.orange{background:linear-gradient(180deg,#ffb067,#ff7a2f);box-shadow:0 6px 0 #c2571a,0 10px 16px rgba(0,0,0,.2)}
.btn:hover,.lvl:not(.locked):hover,.ans:hover{transform:translateY(-3px)}
.btn,.lvl,.ans{transition:transform .12s}
.lvl{background:linear-gradient(180deg,#fff,#fff6e0);border:4px solid #fff;outline:3px solid #ffc857;box-shadow:0 6px 0 #e0a83a,0 10px 18px rgba(0,0,0,.15)}
.lvl .ico canvas{border-radius:12px;box-shadow:inset 0 0 0 2px rgba(0,0,0,.08)}
.ans{background:linear-gradient(180deg,#fff,#eef8ff);border:4px solid #8fd0f2;box-shadow:0 5px 0 #5aa9d6}
.ans.ok{background:linear-gradient(180deg,#e5ffe9,#b8f0c8);border-color:#3bb273;box-shadow:0 5px 0 #23804f}
.ans.bad{background:linear-gradient(180deg,#fff0ec,#ffd2c8);border-color:#ff6b6b;box-shadow:0 5px 0 #c94b4b}
#hud{top:8px;left:10px;right:160px;height:46px;padding:0 16px;border-radius:26px;background:linear-gradient(180deg,rgba(40,60,120,.55),rgba(30,40,90,.4));border:2px solid rgba(255,255,255,.7);backdrop-filter:blur(4px);box-shadow:0 4px 12px rgba(0,0,0,.18)}
#bar{height:20px;border-radius:12px;box-shadow:inset 0 2px 4px rgba(0,0,0,.25)}
#barFill{background:linear-gradient(180deg,#ffe066,#ff9f1c);box-shadow:inset 0 3px 0 rgba(255,255,255,.5)}
.round{background:linear-gradient(180deg,#fff,#e9f2ff);border:3px solid #fff;box-shadow:0 4px 0 #9db4cf,0 6px 12px rgba(0,0,0,.2)}
.bigstars{text-shadow:0 3px 0 #e09b00;animation:pop .6s .15s both}
#rotate{display:none}
@media (orientation:portrait) and (max-width:820px){#rotate{display:flex;position:fixed;left:0;right:0;bottom:0;padding:14px 18px;justify-content:center;text-align:center;font-size:18px;font-weight:600;color:#fff;background:rgba(20,30,70,.85)}}

/* ---- v2: idiomas, 2 jugadores, escenas ---- */
.panel h1{font-size:48px}
.opts{display:flex;justify-content:center;gap:14px;margin:8px 0 2px;flex-wrap:wrap}
.seg{display:inline-flex;background:#ffe7b0;border-radius:24px;padding:4px;box-shadow:inset 0 2px 4px rgba(0,0,0,.15)}
.sb{padding:7px 16px;border-radius:20px;font-size:18px;font-weight:600;background:transparent;color:#8a6d4b;white-space:nowrap}
.sb.on{background:linear-gradient(180deg,#5cc0f0,#2b86c4);color:#fff;box-shadow:0 3px 0 #1b5d8a}
.tag{font-size:19px!important;margin:6px 0!important}
#pMenu .levels{margin-top:8px}
#pMenu .lvl{min-height:156px}
.chip{position:absolute;top:12px;left:14px;max-width:700px;padding:8px 18px;border-radius:22px;background:rgba(30,40,90,.6);color:#fff;font-size:20px;font-weight:600;border:2px solid rgba(255,255,255,.7);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.chip:empty{display:none}
.dlg{position:absolute;left:30px;right:30px;bottom:18px;background:linear-gradient(180deg,#fffdf6,#fff1d2);border:5px solid #fff;outline:4px solid #ffc857;border-radius:24px;padding:26px 26px 14px;box-shadow:0 8px 0 #e0a83a,0 14px 30px rgba(0,0,0,.35);color:#3b2a1a;animation:slide .35s ease-out}
@keyframes slide{0%{transform:translateY(40px);opacity:0}100%{transform:none;opacity:1}}
.who{position:absolute;top:-20px;left:22px;padding:5px 18px;border-radius:16px;color:#fff;font-size:20px;font-weight:700;border:3px solid #fff;box-shadow:0 3px 0 rgba(0,0,0,.2)}
.say{font-size:23px;line-height:1.35;margin:0}
.how{font-size:18px;line-height:1.3;margin:8px 0 0;padding:8px 12px;background:#e9f7ff;border-radius:12px;border:2px solid #9fd8f0}
.dlgBtns{text-align:right}
.dlgBtns .btn{margin:8px 0 0;padding:8px 26px;font-size:21px}
#pads{position:absolute;left:0;right:0;bottom:10px;display:flex;justify-content:space-between;padding:0 12px;pointer-events:none;z-index:4}
.pad{display:flex;align-items:center;gap:8px;pointer-events:auto;background:rgba(20,30,70,.28);padding:6px 10px;border-radius:40px}
.pad .pl{color:#fff;font-weight:700;font-size:16px;padding:4px 10px;border-radius:12px;border:2px solid #fff}
.pad .tp{width:62px;height:62px;border-radius:50%;font-size:26px;color:#3b2a1a;background:linear-gradient(180deg,#fff,#dde9f7);border:3px solid #fff;box-shadow:0 4px 0 rgba(0,0,0,.25);touch-action:none}
.pad .tp.down{transform:translateY(3px);box-shadow:0 1px 0 rgba(0,0,0,.25);background:#ffe7a8}
#hud.two #hudLeft{display:none}
#hudScore{white-space:nowrap}
.vs{display:flex;justify-content:center;gap:12px;margin:6px 0}
.vs span{color:#fff;font-weight:700;font-size:22px;padding:6px 16px;border-radius:16px;border:3px solid #fff}
.win{font-weight:700;color:#ff6b35;font-size:24px!important}

/* ---- Reino ---- */
.btn.big{font-size:30px;padding:14px 46px;margin-top:6px}
.intro{font-size:18px!important;color:#6b5236;max-width:620px;margin:4px auto!important}
#overlay:has(.hubp){align-items:flex-end;padding-bottom:10px}
.hubp{max-width:920px;width:94%;padding:12px 18px 14px;background:linear-gradient(180deg,rgba(255,253,246,.96),rgba(255,241,210,.96))}
.hubTop{display:flex;align-items:center;justify-content:space-between;gap:10px}
.hubTop h2{margin:0;font-size:26px;white-space:nowrap}
.res{display:flex;gap:8px;flex-wrap:nowrap}
.res span{background:#fff;border:2px solid #ffd27a;border-radius:14px;padding:3px 9px;font-size:15px;white-space:nowrap}
.res .rk{background:#ffe7a8}
.tabs{display:flex;gap:8px;justify-content:center;margin:8px 0 2px}
.tb{padding:6px 16px;border-radius:18px;font-size:18px;font-weight:600;background:#ffe7b0;color:#8a6d4b}
.tb.on{background:linear-gradient(180deg,#ffb067,#ff7a2f);color:#fff;box-shadow:0 3px 0 #c2571a}
.hubp .lvl{min-height:150px;font-size:16px}
.blds{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin-top:8px}
.bld{background:#fff;border:3px solid #ffd27a;border-radius:16px;padding:8px;display:flex;flex-direction:column;align-items:center;gap:3px;font-size:16px}
.bld .bi{font-size:30px}.bld .lv{color:#2178a8;font-weight:600}.bld .bd{font-size:13px;color:#8a6d4b;min-height:32px;text-align:center}
.btn.small2{font-size:14px;padding:6px 10px;margin:4px 0 0;line-height:1.2}
.btn.off{filter:grayscale(.7);opacity:.75}
.decs{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:8px}
.dec{background:#fff;border:3px solid #9fd8f0;border-radius:16px;padding:8px 12px;text-align:left;display:flex;flex-direction:column;gap:2px;font-family:inherit;color:#3b2a1a}
.dec .dr{font-weight:700;color:#2178a8;font-size:15px}.dec .dt{font-size:15px;line-height:1.25}.dec .ds{align-self:flex-end;font-weight:700;color:#3bb273}
.dec.locked{opacity:.6}.dec.done{border-color:#3bb273;background:#f0fff3}
.gain{font-weight:700;color:#3bb273}

/* ---- Reino compacto: la ciudad es protagonista ---- */
.hubp{padding:8px 14px 10px}
.hubp .hubTop h2{font-size:22px}
.hubp .tabs{margin:6px 0 0}
.hubp .tb{font-size:16px;padding:4px 14px}
.hubp .levels{gap:10px;margin-top:6px}
.hubp .lvl{min-height:0;padding:6px 4px 6px;font-size:14px}
.hubp .lvl .ico canvas{width:72px;height:56px}
.hubp .lvl .stars{font-size:16px}
.hubp .blds{gap:8px;margin-top:6px}
.hubp .bld{padding:5px;font-size:14px;gap:1px}
.hubp .bld .bi{font-size:22px}
.hubp .bld .bd{min-height:0;font-size:12px}
.hubp .decs{grid-template-columns:repeat(4,1fr);gap:8px;margin-top:6px}
.hubp .dec{padding:6px 8px}
.hubp .dec .dt{font-size:12.5px;line-height:1.2}
.hubp .dec .dr{font-size:13px}
.cityTip{font-size:16px!important;margin:6px 0 0!important;color:#6b5236}
#overlay:has(.hubp.city){align-items:flex-start;justify-content:flex-start;padding:8px 0 0 10px}
.hubp.city{width:790px;max-width:790px;animation:none}
.lnk{background:none;border:0;color:inherit;text-decoration:underline;font:inherit;cursor:pointer;padding:0}
#pAbout{max-width:820px}
#pAbout .aboutTxt{font-size:15px;line-height:1.35;text-align:left;max-height:340px;overflow:auto}
#pAbout .aboutTxt p{margin:6px 0}
#wrap{padding:env(safe-area-inset-top) env(safe-area-inset-right) env(safe-area-inset-bottom) env(safe-area-inset-left)}
html,body{overscroll-behavior:none;-webkit-text-size-adjust:100%;text-size-adjust:100%}
#pads .pad{transform:scale(var(--ui,1))}
#pads .pad.p0{transform-origin:left bottom}
#pads .pad.p1{transform-origin:right bottom}
.hubp .levels{grid-template-columns:repeat(7,1fr);gap:6px}
.hubp .lvl{font-size:12.5px}
.hubp .lvl .ico canvas{width:64px;height:50px}
.hubp .lvl .stars{font-size:13px;letter-spacing:0}
.hubp .blds{grid-template-columns:repeat(6,1fr);gap:6px}
.hubp .bld .bd{font-size:11px}
.hubp .btn.small2{font-size:12px;padding:5px 6px}
.hubp .decs{grid-template-columns:repeat(4,1fr);gap:6px}
.hubp .dec .dt{font-size:11.5px;line-height:1.15}
.hubp .dec .dr{font-size:12px}
/* v3: textos más grandes */
.panel p{font-size:23px}.panel .ref{font-size:19px}.say{font-size:25px;line-height:1.3}.how{font-size:19px}.ans{font-size:23px}
.small{font-size:16px}.intro{font-size:19px}.tag{font-size:21px}.who{font-size:21px}.chip{font-size:21px}#hudGoal{font-size:20px}
#pAbout .aboutTxt{font-size:17px}
.hubp .hubTop h2{font-size:24px}.hubp .res span{font-size:16px}.hubp .tb{font-size:18px}
.hubp .levels{grid-template-columns:repeat(4,1fr);gap:8px}
.hubp .lvl{font-size:15px;flex-direction:row;justify-content:flex-start;gap:6px;text-align:left;padding:5px 6px}
.hubp .lvl .ico canvas{width:58px;height:45px}
.hubp .lvl .name{flex:1;line-height:1.12}
.hubp .lvl .stars{font-size:14px;position:absolute;right:8px;bottom:2px}
.hubp .lvl{position:relative;padding-bottom:16px}
.hubp .blds{grid-template-columns:repeat(3,1fr);gap:6px}
.hubp .bld{flex-direction:row;flex-wrap:wrap;justify-content:center;column-gap:8px;font-size:16px;padding:4px 6px}
.hubp .bld .bd{font-size:14px;width:100%}
.hubp .btn.small2{font-size:14px;padding:4px 8px;width:100%}
.hubp .decs{grid-template-columns:repeat(4,1fr);gap:6px}
.hubp .dec .dt{font-size:14px;line-height:1.15}.hubp .dec .dr{font-size:14px}
#wrap{height:100vh;height:100dvh}
#rotate,body.rot #rotate{display:none !important}
/* Trivia */
#pTriv{max-width:900px;width:94%;padding:14px 22px 10px}
.tvTop{display:flex;justify-content:space-between;align-items:center;font-size:19px;font-weight:600;color:#8a6d4b}
.tvs{display:inline-block;padding:3px 12px;border-radius:14px;background:#ffe7b0;color:#3b2a1a;margin-left:6px;font-size:20px}
.tvs.p0{background:#2e86ab;color:#fff}.tvs.p1{background:#ff7a2f;color:#fff}
.tbar{height:12px;border-radius:8px;background:#f1e2c4;margin:8px 0;overflow:hidden}
#tFill{height:100%;width:100%;background:linear-gradient(90deg,#3bb273,#8ac926);transition:width .1s linear}#tFill.low{background:#ff7a2f}
#pTriv .tq{font-size:27px;line-height:1.25;font-weight:600;margin:6px 0 10px;color:#3b2a1a}
.tans{display:grid;grid-template-columns:1fr 1fr;gap:10px}
#pTriv .ans.trow{font-size:23px;text-align:left;padding:12px 14px;min-height:62px}
.trow b{display:inline-block;width:30px;height:30px;line-height:30px;text-align:center;border-radius:50%;background:#9fd8f0;color:#fff;margin-right:6px;font-size:18px}
#pTriv.two .tans{grid-template-columns:1fr;gap:7px}
#pTriv.two .trow{display:flex;align-items:center;gap:10px;background:#fff;border:4px solid #9fd8f0;border-radius:16px;padding:4px 6px}
#pTriv.two .tat{flex:1;font-size:22px;font-weight:600;text-align:left;color:#3b2a1a}
.tpb{width:62px;height:48px;border-radius:14px;font-size:24px;font-weight:700;color:#fff;border:3px solid #fff;box-shadow:0 3px 0 rgba(0,0,0,.2);flex:none}
.tpb.p0{background:#2e86ab}.tpb.p1{background:#ff7a2f}.tpb:disabled{opacity:.45}.tpb.pick{opacity:1;outline:4px solid #ffd23f}
.trow.ok{border-color:#3bb273 !important;background:#e7ffe9 !important}.trow.bad{border-color:#ff595e !important;background:#ffecec !important}
.ans.pick{outline:4px solid #ffd23f}
#tvMsg{font-size:20px;font-weight:600;min-height:28px;margin-top:6px}
#pMenu .btn.big{margin:6px 6px 0}
#pTvMenu .seg{margin:4px}
#overlay:has(#pTriv){padding-top:50px;padding-bottom:4px}
#pTriv .tq{margin:2px 0 8px}
#pTriv.two .trow{padding:2px 6px}
#pTriv.two .tpb{height:44px}
#pTriv #tvMsg{font-size:20px;margin-top:4px}
