:root{color-scheme:dark;font-family:'Avenir Next','Trebuchet MS',sans-serif;color:#fff3dd;background:#28153d}*{box-sizing:border-box;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;-webkit-user-drag:none}html,body{margin:0;width:100%;height:100%;overflow:hidden;overscroll-behavior:none;touch-action:none}button,a{touch-action:manipulation}button{font:inherit;cursor:pointer}button:focus-visible,a:focus-visible,input:focus-visible{outline:3px solid #ffdb70;outline-offset:4px}button:disabled{opacity:.55;cursor:wait}[hidden]{display:none!important}#game{display:block;width:100%;height:100dvh;outline:none}.screen{position:fixed;inset:0;z-index:30}#lobby{background:linear-gradient(90deg,#27153e55,transparent 70%),url('../lobby-v2.webp') center/cover no-repeat;display:flex;align-items:center;padding:4vh 5vw}.lobby-menu{width:min(43vw,580px);text-align:center;display:grid;gap:8px}.lobby-menu h1{margin:0 0 8px}.lobby-menu h1 img{display:block;width:100%;max-height:28vh;object-fit:contain}.art-button{display:block;width:90%;margin:auto;padding:0;border:0;background:none;transition:transform .14s,filter .14s}.art-button img{display:block;width:100%;max-height:10vh;object-fit:contain}.art-button:hover{transform:translateY(-2px);filter:brightness(1.08)}.art-button:active{transform:scale(.97)}#exit,#rotateBack{color:#fff2da;text-shadow:0 2px 4px #27133c;padding:12px;font-size:14px}#loading{margin:0;font-size:13px;min-height:18px}.language{position:absolute;right:max(18px,env(safe-area-inset-right));top:max(16px,env(safe-area-inset-top));display:flex;gap:8px}.language button,.glass{border:1px solid #fffc;border-radius:50%;color:#fff8e5;background:#3a1b4944;box-shadow:inset 0 1px 8px #fff5,0 3px 12px #26133233;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px)}.language button{border-radius:12px;padding:10px 14px}.language [aria-pressed=true]{background:#ffe0ad;color:#3a2048}#hud{position:fixed;z-index:10;top:0;left:0;right:0;padding:calc(10px + env(safe-area-inset-top)) max(16px,env(safe-area-inset-right)) 14px max(16px,env(safe-area-inset-left));display:flex;gap:12px;align-items:center;background:linear-gradient(#2b183c99,transparent);pointer-events:none}#hud button{pointer-events:auto}.glass{width:48px;height:48px;font-size:25px}.chapter{display:grid;gap:3px;text-shadow:0 2px 5px #1e1229}.chapter strong{font-size:20px}.chapter small{font-size:12px}.stats{margin-left:auto;display:flex;align-items:center;gap:12px}.stats span{background:#28153766;border:1px solid #ffffff40;padding:8px 12px;border-radius:20px;font-size:16px;color:#ffe5a7}.progress{position:absolute;bottom:0;left:2%;right:2%;height:3px;background:#fff2}.progress i{height:100%;width:0;display:block;background:linear-gradient(90deg,#ff9bcf,#ffe394,#bc9cff)}#touch{position:fixed;z-index:12;inset:auto max(22px,env(safe-area-inset-right)) max(18px,env(safe-area-inset-bottom)) max(22px,env(safe-area-inset-left));display:flex;align-items:flex-end;gap:16px;pointer-events:none}#touch button{pointer-events:auto;width:72px;height:72px;font-size:34px;touch-action:none}.directions{display:flex;gap:20px}.flight-controls{margin-left:auto}#touch .jump{margin-left:auto;width:94px;height:94px;display:flex;flex-direction:column;align-items:center;justify-content:center}.jump span{font-size:11px;letter-spacing:.08em}.modal{display:grid;place-items:center;background:#24133680;backdrop-filter:blur(12px);padding:24px}.panel{position:relative;max-width:540px;width:90vw;max-height:86dvh;overflow:auto;padding:30px;background:linear-gradient(135deg,#512a68f2,#281b44f2);border:1px solid #ffe3bc99;border-radius:24px;box-shadow:0 18px 70px #13091e88;text-align:center}.panel h2{font:700 28px Georgia,serif;margin:12px 0}.panel p{font-size:16px;line-height:1.6}.close{position:absolute;right:10px;top:10px;width:35px;height:35px}.plain{display:block;border:1px solid #ffe9ba;border-radius:16px;background:#efbcdf;color:#432344;padding:12px 20px;margin:12px auto;font-weight:800;min-width:180px}#settingsControls label{display:block;margin:15px 0 8px}input[type=range]{width:90%;accent-color:#f8c3e9;touch-action:auto}#toast{position:fixed;z-index:22;top:100px;left:50%;transform:translate(-50%,-10px);max-width:80vw;padding:11px 22px;border-radius:20px;background:#36204ce8;color:#ffecc9;border:1px solid #f9d2f5aa;opacity:0;pointer-events:none;transition:opacity .2s,transform .2s;text-align:center}#toast.show{opacity:1;transform:translate(-50%,0)}#transition{position:fixed;z-index:20;inset:0;display:flex;flex-direction:column;justify-content:center;align-items:center;text-align:center;background:linear-gradient(transparent,#3a205588,transparent);pointer-events:none;text-shadow:0 3px 15px #27133c}#transition h2{font:700 clamp(30px,5vw,60px) Georgia,serif;margin:10px}#transition p{font-size:18px}.cake{width:130px;height:130px;object-fit:contain}#rotate{display:none}@media(pointer:fine){#touch{opacity:.55}#touch:hover{opacity:1}}@media(max-height:500px){#hud{padding-top:6px}.chapter strong{font-size:15px}.chapter small{font-size:10px}.stats span{font-size:13px;padding:6px 9px}.glass{width:40px;height:40px}.lobby-menu{gap:5px;width:44vw}.lobby-menu h1 img{max-height:29vh}.art-button img{max-height:12vh}#exit{padding:5px}#loading{font-size:10px}.panel{padding:20px;max-height:90dvh}.panel p{font-size:14px}.panel h2{font-size:22px}#touch button{width:62px;height:62px}#touch .jump{width:78px;height:78px}#toast{top:75px;font-size:13px}}@media(orientation:portrait) and (pointer:coarse){#rotate{position:fixed;z-index:100;inset:0;background:#39224d;display:grid;align-content:center;justify-items:center;gap:24px;padding:28px;text-align:center}#rotate span{font-size:64px}#rotate strong{font:28px Georgia,serif}}@media(prefers-reduced-motion:reduce){*{transition:none!important}}

.flight-controls{display:flex;gap:16px;align-items:flex-end}#touch .speed{display:flex;flex-direction:column;align-items:center;justify-content:center}.speed span{font-size:10px;letter-spacing:.06em}.speed.active{background:#b681dc66;box-shadow:0 0 24px #ffdf98aa,inset 0 0 12px #fff8}@media(max-width:900px){.flight-controls{gap:10px}#touch{gap:10px}.directions{gap:14px}}

#touch.flying .directions{display:none}#touch.flying .flight-controls{margin-left:0}#touch.flying .speed{width:82px;height:82px}@media(max-height:500px){#touch.flying .speed{width:68px;height:68px}}

#intro{position:fixed;inset:0;z-index:90;background:#120c1c;display:grid;place-items:center}#intro video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;display:block}#introSkip{position:absolute;right:max(20px,env(safe-area-inset-right));bottom:max(20px,env(safe-area-inset-bottom));width:auto;height:48px;padding:0 22px;border-radius:24px;font:600 15px system-ui;background:#24172b99;color:white}#introPlay{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);background:#36204ce8;color:white}

/* Composite the final decoded video frame over an already-painted game scene. */
#intro{opacity:1;will-change:opacity;transition:opacity var(--scene-blend-ms,580ms) cubic-bezier(.22,.61,.36,1)}
#intro.is-leaving{opacity:0;pointer-events:none}
#sceneReveal{position:fixed;inset:0;z-index:91;pointer-events:none;opacity:0;background:radial-gradient(ellipse at 50% 55%,#ffe8f944,transparent 70%)}
#sceneReveal::after{content:"";position:absolute;inset:0;background-image:url('../star-v2.webp'),url('../star-v2.webp'),url('../star-v2.webp');background-repeat:no-repeat;background-size:32px,44px,24px;background-position:28% 48%,67% 38%,56% 66%}
#sceneReveal.is-active{animation:scene-shimmer 580ms ease-out both}
@keyframes scene-shimmer{0%{opacity:0;transform:scale(.99)}30%{opacity:.65}100%{opacity:0;transform:scale(1.035)}}
@media(prefers-reduced-motion:reduce){#sceneReveal.is-active{animation:none}#intro{transition-duration:160ms!important}}

.gamepad-active #touch{display:none}
[data-gamepad-focus]{outline:3px solid #ffdb70!important;outline-offset:4px}
#controllerHint{margin:0;font-size:clamp(10px,1vw,13px);color:#ffe5b7;text-shadow:0 2px 5px #241331}
