:root{font-family:Nunito,system-ui,sans-serif;color:#17335f;background:#10233f;font-synthesis:none;--blue:#2769a6;--navy:#17335f;--yellow:#ffc43d;--cream:#fff8e9;--coral:#ee704f}*{box-sizing:border-box}html,body,#root{margin:0;width:100%;height:100%;overflow:hidden}button,input,select{font:inherit}button{border:0;border-radius:16px;padding:.8rem 1.1rem;font-weight:900;color:var(--navy);background:#fff;box-shadow:0 5px #cbd5df;cursor:pointer;transition:transform .15s,filter .15s}button:hover{filter:brightness(1.04);transform:translateY(-2px)}button:active{transform:translateY(3px);box-shadow:0 2px #cbd5df}button:disabled{opacity:.55;cursor:default}.primary{color:#17335f;background:linear-gradient(#ffd75f,#ffb92e);box-shadow:0 5px #c47c15}.splash,.auth-screen,.fatal{height:100%;display:grid;place-content:center;text-align:center;background:radial-gradient(circle at 50% 25%,#5285b9,#18365e 55%,#10233f);color:#fff}.logo{position:relative;display:inline-flex;flex-direction:column;align-items:center;font-family:"Baloo 2",system-ui;line-height:.73;filter:drop-shadow(0 5px 0 #112c52);transform:rotate(-1deg);padding:1rem}.logo small{font-size:clamp(.75rem,2vw,1.1rem);letter-spacing:.08em;color:#fff}.logo strong{font-size:clamp(3rem,8vw,5.4rem);color:#ffad32;-webkit-text-stroke:3px #fff3d2}.logo b{font-size:clamp(2.1rem,6vw,4rem);color:#65cced;-webkit-text-stroke:2px white}.logo em{position:absolute;color:#ffd14a;font-size:2rem;left:5%;bottom:8%}.loading-bar{width:min(75vw,360px);height:13px;border-radius:20px;background:#ffffff30;overflow:hidden;margin:auto}.loading-bar i{display:block;height:100%;background:var(--yellow);animation:load 1.2s ease-in-out forwards}@keyframes load{0%{width:5%}to{width:100%}}.auth-card{width:min(92vw,460px);padding:1.6rem 2.2rem 2rem;border-radius:32px;background:#ffffff12;border:1px solid #ffffff3b;backdrop-filter:blur(18px);box-shadow:0 30px 80px #07162b99}.tagline{color:#dcecff}.auth-card form{display:flex;flex-direction:column;align-items:center;gap:1rem}.pin-label{font-size:.78rem;letter-spacing:.2em;font-weight:900}.pin-dots{display:flex;gap:14px}.pin-dots span{width:22px;height:22px;background:#fff2;border:2px solid #fff;border-radius:8px}.pin-dots span.filled{background:var(--yellow);border-color:var(--yellow);box-shadow:0 0 18px #ffce58}.pin-input{position:absolute;opacity:.01;width:180px;height:52px}.remember{font-size:.9rem;display:flex;gap:.5rem;align-items:center}.error{color:#ffd0c8;margin:0}.menu-screen{width:100%;height:100%;display:grid;grid-template-columns:minmax(0,1.35fr) minmax(340px,.65fr);background:linear-gradient(135deg,#71b4d4,#305f91);color:#fff}.menu-scene{position:relative;overflow:hidden;background:linear-gradient(#65a8cf 0 45%,#eadfc9 45%);perspective:700px}.menu-scene:after{content:"";position:absolute;inset:45% 0 0;background:repeating-linear-gradient(90deg,#eee9df 0 12%,#d8d1c6 12.5% 13%);transform:rotateX(55deg);transform-origin:top}.giant-bed{position:absolute;z-index:1;width:65%;height:45%;right:-12%;bottom:5%;background:#dce6bd;border:20px solid #b88a5a;border-radius:35px 0 0 20px;box-shadow:-20px 20px 40px #1b345855}.hero-preview{position:absolute;z-index:3;left:28%;bottom:19%;width:42px;height:100px;animation:breathe 2s ease-in-out infinite}.hero-preview .face{position:absolute;display:grid;place-items:center;width:50px;height:48px;background:#d99c75;border-radius:50%;font-style:normal;color:#40211c;font-weight:900;z-index:2}.hero-preview .hair{position:absolute;width:54px;height:26px;background:#2c1714;border-radius:60% 60% 30% 30%;top:-3px;z-index:3}.hero-preview .body{position:absolute;width:36px;height:40px;background:#f3e1bd;top:43px;left:7px;border-radius:13px}.hero-preview .legs{position:absolute;width:34px;height:28px;border:10px solid #3976ad;border-top:0;top:77px;left:8px}.float-star{position:absolute;z-index:4;color:#ffd14a;text-shadow:0 3px #b77819;animation:float 3s ease-in-out infinite}.s1{left:10%;top:20%;font-size:2rem}.s2{left:70%;top:15%;font-size:1.3rem;animation-delay:-1s}.s3{left:40%;top:44%;font-size:1.5rem;animation-delay:-2s}.s4{left:12%;bottom:12%;font-size:1rem}.s5{right:8%;top:38%;font-size:2rem}.menu-card{z-index:5;padding:max(1.2rem,env(safe-area-inset-top)) clamp(1.2rem,4vw,3rem) max(1.2rem,env(safe-area-inset-bottom));display:flex;flex-direction:column;justify-content:center;background:#17335fe8;backdrop-filter:blur(15px);overflow:auto}.menu-card .logo{align-self:center}.menu-card h1{font-family:"Baloo 2";font-size:1.6rem;line-height:1.1;margin:.5rem 0 1rem}.menu-card h1 span{font-size:1rem;color:#bedcf2}.menu-buttons{display:grid;grid-template-columns:1fr 1fr;gap:.65rem}.menu-buttons .big{grid-column:1/-1;font-size:1.15rem}.text-button{background:none;color:#bcd5e9;box-shadow:none;font-size:.75rem;margin-top:1rem}.game-shell,.viewport{position:absolute;inset:0}.viewport canvas{display:block;width:100%;height:100%;touch-action:none}.hud{position:absolute;top:max(14px,env(safe-area-inset-top));left:max(14px,env(safe-area-inset-left));right:max(14px,env(safe-area-inset-right));display:flex;gap:.7rem;pointer-events:none}.quest-pill,.counter{background:#102b50d9;color:#fff;border:1px solid #ffffff30;border-radius:15px;padding:.6rem .85rem;box-shadow:0 8px 25px #07152f4d;backdrop-filter:blur(10px);font-weight:800}.quest-pill small{display:block;font-size:.6rem;color:#9fd9ee;letter-spacing:.1em}.counter{margin-left:auto;font-size:1.2rem}.pause-btn{pointer-events:auto;width:46px;padding:.5rem;background:#fff;box-shadow:0 4px #aebdcb}.minigame-fab{position:absolute;right:max(18px,env(safe-area-inset-right));bottom:max(18px,env(safe-area-inset-bottom));font-size:1.35rem}.prompt{position:absolute;bottom:16%;left:50%;transform:translate(-50%);background:#102b50e8;color:#fff;padding:.65rem 1rem;border-radius:15px}.toasts{position:absolute;right:18px;top:88px;display:flex;flex-direction:column;gap:.5rem}.toast{padding:.75rem 1rem;border-radius:14px;background:#fff;color:var(--navy);box-shadow:0 9px 30px #08182c66;animation:toast-in .35s}.toast.achievement{background:#ffd561}.toast.save{font-size:.75rem;background:#ddf5e9}.modal-backdrop{position:fixed;z-index:20;inset:0;display:grid;place-items:center;padding:1rem;background:#07172ba8;backdrop-filter:blur(8px)}.panel{color:var(--navy);background:linear-gradient(145deg,#fffdf6,#eaf3f5);box-shadow:0 25px 80px #06152c99}.modal-panel{position:relative;width:min(94vw,580px);max-height:90vh;overflow:auto;border-radius:28px;padding:2rem;display:flex;flex-direction:column;gap:.8rem}.modal-panel h2,.modal-panel h3{font-family:"Baloo 2";margin:.2rem 0}.close{position:absolute;right:14px;top:14px;padding:.3rem;width:38px;height:38px;border-radius:50%;font-size:1.5rem}.list{display:grid;gap:.5rem}.list>div{display:flex;gap:.7rem;align-items:center;background:#fff;padding:.6rem;border-radius:13px}.list small{display:block;color:#61758b}.card-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:.8rem}.game-card{min-height:100px;display:flex;flex-direction:column;align-items:center;justify-content:center}.game-card span{font-size:2rem}.minigame{text-align:center;min-height:300px}.big-emoji{font-size:5rem}.ball-bounce{animation:bounce 1s infinite}.scoreline{font-weight:900;margin:1rem}.back{align-self:flex-start;padding:.4rem .8rem}.memory-grid,.puzzle-grid{display:grid;grid-template-columns:repeat(3,72px);gap:9px;justify-content:center;margin:1rem}.memory-grid button,.puzzle-grid button{height:72px;font-size:2rem;padding:0}.puzzle-grid button{background:#4a8bbc;color:#fff}.puzzle-grid .empty{visibility:hidden}.toy-row{display:flex;justify-content:center;gap:.5rem}.toy-row button{font-size:2rem}.toy-box{margin:1.5rem auto;border:4px dashed #65a15c;padding:2rem;width:70%;border-radius:20px}.lava-track{display:flex;justify-content:center;gap:.5rem}.lava-track button{font-size:1.5rem}.lava-track .passed{background:#a9df9f}.room-code{font-size:2.5rem;letter-spacing:.2em;font-weight:900;color:#286fa8;text-align:center;background:#dceef8;padding:1rem;border-radius:18px}.emotes,.poses{display:flex;gap:.5rem;flex-wrap:wrap}.emotes button{font-size:1.5rem}.modal-panel input,.modal-panel select{padding:.7rem;border:2px solid #c2d2df;border-radius:12px}.modal-panel label{display:flex;justify-content:space-between;align-items:center;gap:1rem}.collection-grid,.badge-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:.6rem}.collection-grid span,.badge-grid span{display:flex;flex-direction:column;text-align:center;filter:grayscale(1);opacity:.4;background:#fff;border-radius:13px;padding:.7rem}.collection-grid span,.badge-grid .earned{filter:none;opacity:1}.fatal{gap:1rem}.fatal button{margin:auto}.debug-panel{position:absolute;left:8px;bottom:8px;margin:0;padding:8px;background:#000c;color:#7dff9c;font:12px monospace;pointer-events:none}.touch-controls,.rotate-hint{display:none}@keyframes breathe{50%{transform:scaleY(1.02) translateY(-2px)}}@keyframes float{50%{transform:translateY(-12px) rotate(10deg)}}@keyframes toast-in{0%{transform:translate(120%);opacity:0}}@keyframes bounce{50%{transform:translateY(-12px) rotate(12deg)}}@media(max-width:760px){.menu-screen{grid-template-columns:1fr}.menu-scene{position:absolute;inset:0;opacity:.38}.menu-card{margin:auto;width:min(92%,470px);max-height:96%;border-radius:26px}.menu-card .logo{padding:.5rem}.menu-card h1{margin:.2rem 0 .7rem}.menu-buttons{gap:.45rem}.menu-buttons button{padding:.62rem}.touch-controls{display:flex;position:absolute;left:max(12px,env(safe-area-inset-left));right:max(12px,env(safe-area-inset-right));bottom:max(15px,env(safe-area-inset-bottom));justify-content:space-between;align-items:end;pointer-events:none}.touch-controls button{pointer-events:auto;width:54px;height:54px;padding:0;border-radius:50%;opacity:.75;touch-action:none}.dpad>button{display:block;margin:auto}.dpad div{display:flex;gap:4px}.action-buttons{display:flex;gap:8px;align-items:end}.action-buttons button:nth-child(2){width:68px;height:68px;background:#ffd04c}.quest-pill{max-width:55%;font-size:.78rem}.toasts{left:50%;right:auto;top:84px;transform:translate(-50%);width:82%;align-items:center}.toast{text-align:center}.minigame-fab{bottom:100px}.collection-grid,.badge-grid{grid-template-columns:repeat(2,1fr)}}@media(orientation:portrait)and (pointer:coarse){.game-shell .rotate-hint{display:flex}.rotate-hint{position:fixed;z-index:50;inset:0;background:#102b50ee;color:#fff;align-items:center;justify-content:center;flex-direction:column;font-size:4rem}.rotate-hint b{font-size:1rem;margin-top:1rem}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;transition:none!important}}
