:root{--ink:#302e50;--muted:#79758c;--cream:#fffaf0;--purple:#7861bd;--gold:#ffe6a5;--safe-top:env(safe-area-inset-top,0px);--safe-bottom:env(safe-area-inset-bottom,0px)}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}html,body{margin:0;height:100%;overflow:hidden;background:#b8dfeb;color:var(--ink);font-family:ui-rounded,'SF Pro Rounded','Trebuchet MS',system-ui,sans-serif;touch-action:none;overscroll-behavior:none}button{font:inherit;cursor:pointer;border:0;color:inherit;touch-action:manipulation}button:focus-visible{outline:3px solid #fff;outline-offset:4px}button:active{transform:scale(.96)}button:disabled{cursor:default;opacity:.45}button:disabled:active{transform:none}.hidden{display:none!important}#world{position:fixed;width:100%;height:100%;inset:0;outline:none}.screen{position:fixed;inset:0}.home-art{position:absolute;inset:0;background:url(assets/nova-final-scene.png) 70% center/cover;transform:scale(1.035);animation:breathe 18s ease-in-out infinite alternate}.home-shade{position:absolute;inset:0;background:linear-gradient(90deg,rgba(23,30,45,.85),rgba(30,39,46,.44) 48%,rgba(30,35,45,.04) 80%),linear-gradient(0deg,rgba(18,32,42,.7),transparent 35%)}.home-top{position:absolute;top:max(26px,var(--safe-top));left:5%;right:4%;display:flex;align-items:center;justify-content:space-between;color:white}.eyebrow{font-size:10px;letter-spacing:3px;font-weight:bold}.home-content{position:absolute;left:8%;top:50%;transform:translateY(-49%);color:var(--cream)}.brand{font-size:clamp(66px,9vw,124px);line-height:.95;font-weight:1000;letter-spacing:-8px;text-shadow:0 4px 0 #aa834d,0 7px 24px #0002;color:#fff4d5;transform:rotate(-3deg);display:inline-block}.brand span{display:block;font-size:clamp(10px,1.2vw,15px);letter-spacing:4px;line-height:1.8;font-weight:800;text-shadow:none;padding-left:9px;margin-top:12px}.tagline{font-size:clamp(24px,3.2vw,43px);font-weight:800;line-height:1.15;margin:25px 0 14px;letter-spacing:-1px}.home-desc{font-size:13px;line-height:1.7;color:#eff4e3ce;margin-bottom:25px}.primary{background:linear-gradient(115deg,#fff0b6,#ffd888);color:#493c37;font-weight:900;border-radius:16px;padding:16px 24px;box-shadow:0 5px 0 #b98c49,0 12px 25px #0002;transition:transform .15s}.primary.large{min-width:275px;font-size:16px;text-align:left;display:flex;justify-content:space-between;gap:30px;align-items:center}.primary span{font-size:24px}.home-meta{display:flex;gap:18px;margin-top:25px;color:#fff8dcaa;font-size:10px;letter-spacing:.4px}.home-footer{position:absolute;bottom:max(22px,var(--safe-bottom));left:8%;color:#fff9;font-size:8px;letter-spacing:1.8px}.home-footer span{padding:0 12px}.film-btn{position:absolute;right:5%;bottom:65px;display:flex;align-items:center;gap:12px;color:white;background:#ffffff17;backdrop-filter:blur(18px);border:1px solid #fff5;border-radius:18px;text-align:left;padding:13px 18px;font-size:9px;letter-spacing:1px}.film-btn b{display:block;font-size:12px;font-weight:500;letter-spacing:0;margin-top:5px}.play-icon{display:grid;place-items:center;font-size:30px;width:35px}.round{border:1px solid #fff6;width:44px;height:44px;border-radius:15px;background:#fff6;backdrop-filter:blur(16px);font-size:20px;font-weight:bold;box-shadow:0 4px 18px #30354510}.home-top .round{background:#ffffff20;color:white}.textbtn{background:none;color:inherit;padding:16px 8px;font-size:12px;text-decoration:underline;text-underline-offset:4px}#load{position:fixed;inset:0;z-index:50;background:radial-gradient(ellipse at 50% 25%,#7169ad,#292c50);display:flex;align-items:center;justify-content:center;flex-direction:column;color:#f8eed7;gap:25px}.loader{width:110px;height:4px;background:#ffffff24;position:relative;overflow:hidden;border-radius:5px;margin-top:30px}.loader:after{content:'';position:absolute;background:#ffe4ab;width:40%;height:100%;animation:load 1.5s ease-in-out infinite}#load p{font-size:12px;letter-spacing:2px}#hud{position:fixed;inset:0;pointer-events:none}#hud button,#joystick{pointer-events:auto}.topbar{position:absolute;top:max(18px,var(--safe-top));left:max(22px,env(safe-area-inset-left));right:max(22px,env(safe-area-inset-right));display:flex;justify-content:space-between;gap:12px;align-items:flex-start}.chapter-badge{display:flex;gap:12px;align-items:center;text-align:left;background:#fff9;backdrop-filter:blur(20px);border:1px solid #fff9;border-radius:16px;padding:10px 16px;box-shadow:0 6px 22px #31325a0a}.chapter-badge>span{font-size:25px;color:#9a78a5}.chapter-badge small{display:block;font-size:8px;letter-spacing:2px;color:#82778f;margin-bottom:4px}.chapter-badge strong{font-size:13px}.top-right{display:flex;gap:10px;align-items:center}.star-counter{background:#fff9;backdrop-filter:blur(20px);border-radius:15px;padding:12px 14px;color:#ad7c30;font-size:19px;white-space:nowrap}.star-counter b{font-size:16px;margin-left:5px}.star-counter small{font-size:10px;color:#988d81;margin-left:3px}.mission{position:absolute;top:100px;left:24px;width:270px;background:linear-gradient(105deg,#fffaf0ed,#fffcf0b0);border:1px solid #fff8;border-radius:18px;padding:16px 18px;box-shadow:0 8px 32px #31325a0a;backdrop-filter:blur(14px)}.mission-label{display:flex;align-items:center;gap:6px;font-size:8px;letter-spacing:1.5px;font-weight:bold;color:#99909c;margin-bottom:8px}.mission-dot{background:#a28aca;border-radius:50%;height:6px;width:6px}#missionCount{margin-left:auto;color:#8e6bb2;font-size:10px;letter-spacing:0}.mission strong{font-size:15px;display:block}.mission p{font-size:11px;color:#888094;line-height:1.5;margin:7px 0 12px}.progress-track{height:3px;background:#e9e2e6;border-radius:3px;overflow:hidden}.progress-track i{display:block;height:100%;background:linear-gradient(90deg,#ad87c6,#e7bc84);transition:width .6s}.bottom-info{position:absolute;bottom:max(12px,var(--safe-bottom));left:25px;right:25px;display:flex;align-items:center;justify-content:space-between;color:#3b4565b0;font-size:9px;text-shadow:0 1px 4px #fff}.bottom-info button{background:#fff9;border:1px solid #fff9;font-size:11px;padding:8px 13px;border-radius:20px;color:#675b83}#saveState{font-size:9px}#controls{position:absolute;inset:0;pointer-events:none}#stickArea{position:absolute;bottom:max(65px,calc(var(--safe-bottom) + 43px));left:max(40px,env(safe-area-inset-left));display:flex;align-items:center;flex-direction:column;gap:10px}#stickArea>span{font-size:8px;letter-spacing:2px;color:#36415e80}#joystick{width:112px;height:112px;border-radius:50%;background:#ffffff28;border:2px solid #ffffff75;box-shadow:inset 0 0 22px #ffffff30,0 8px 24px #283c4b10;backdrop-filter:blur(6px);display:grid;place-items:center;touch-action:none}#stick{height:49px;width:49px;border-radius:50%;border:1px solid #ffffffc0;background:linear-gradient(135deg,#ffffffe6,#ffffff77);box-shadow:0 3px 14px #3b4b6625;pointer-events:none}.action-area{position:absolute;bottom:max(70px,calc(var(--safe-bottom) + 45px));right:max(35px,env(safe-area-inset-right));display:flex;align-items:flex-end;gap:20px}.action-btn,.jump-btn{display:flex;align-items:center;justify-content:center;flex-direction:column;border-radius:50%;background:#fff7;border:2px solid #ffffffb0;backdrop-filter:blur(12px);box-shadow:0 5px 18px #39476720}.action-btn{height:76px;width:76px;margin-bottom:28px;transition:background .2s,box-shadow .2s}.action-btn:not(:disabled){background:#fff2c5;box-shadow:0 0 28px #fff0b5a0;animation:pulse 2s infinite}.jump-btn{width:88px;height:88px}.action-btn span{font-size:26px}.jump-btn span{font-size:32px;line-height:1}.action-btn b,.jump-btn b{font-size:8px;letter-spacing:1px;margin-top:4px}body.left-handed #stickArea{left:auto;right:40px}body.left-handed .action-area{right:auto;left:35px}#compass{position:absolute;left:50%;top:95px;transform:translateX(-50%);display:flex;flex-direction:column;align-items:center;color:#8d77a7;text-shadow:0 2px 8px #fff}#compass span{font-size:23px;display:block}#compass b{font-size:9px;background:#fff9;padding:4px 7px;border-radius:8px}#contextHint{position:absolute;left:50%;bottom:29%;transform:translateX(-50%);background:#302f50d9;color:#fff9df;border:1px solid #fff3;border-radius:30px;padding:11px 20px;font-size:12px;text-align:center;max-width:75%;backdrop-filter:blur(12px)}#toast{position:absolute;left:50%;top:22%;transform:translateX(-50%);border:1px solid #fff9;background:#fffaebed;padding:13px 24px;border-radius:40px;text-align:center;font-size:13px;font-weight:bold;box-shadow:0 8px 35px #30305015;animation:appear .3s ease;white-space:nowrap}#dialogue{position:absolute;bottom:45px;left:50%;transform:translateX(-50%);max-width:470px;width:43%;display:flex;align-items:center;gap:14px;padding:15px 20px;background:#fffcf1eb;border-radius:20px;border:1px solid white;box-shadow:0 8px 30px #30305010;pointer-events:auto;backdrop-filter:blur(16px)}.miko-avatar{width:42px;height:42px;flex:0 0 42px;display:grid;place-items:center;background:#6fc5c5;color:white;border:3px solid #ddf6ec;border-radius:40%;font-size:28px}.miko-avatar+div{flex:1}#dialogue b{font-size:9px;color:#598e9b;letter-spacing:1.5px}#dialogue b span{font-size:7px;color:#aaa2a7;letter-spacing:.7px;margin-left:8px}#dialogue p{font-size:11px;line-height:1.5;margin:5px 0 0}#closeDialogue{position:absolute;right:5px;top:3px;background:none;color:#b1a2b1;font-size:20px}#veil{position:fixed;inset:0;background:#29243e60;backdrop-filter:blur(9px);z-index:9}.modal-wrap{position:fixed;inset:0;z-index:10;display:flex;align-items:center;justify-content:center;padding:22px;touch-action:pan-y}.panel{position:relative;width:100%;max-width:490px;max-height:92dvh;overflow:auto;background:linear-gradient(150deg,#fffdf7,#eeeaf6);border:1px solid #ffffffb0;border-radius:30px;padding:32px;text-align:center;box-shadow:0 25px 100px #17162b30;touch-action:pan-y}.panel.wide{max-width:790px}.panel .close{position:absolute;top:15px;right:15px;width:32px;height:32px;border-radius:50%;background:#ded9e980;color:#8c809d;font-size:20px}.kicker{font-size:9px;letter-spacing:2px;color:#a28daf;font-weight:bold;margin-bottom:10px}.panel h2{font-size:28px;letter-spacing:-1px;margin:10px 0 12px}.panel p{font-size:13px;line-height:1.65;color:#8e859d}.panel .primary{margin:10px 0}.panel .secondary{background:#e3ddeb;color:#796389;font-weight:bold;padding:14px 22px;border-radius:15px;display:block;width:100%;margin-top:12px}.panel .big-icon{font-size:45px;color:#b597cf;margin:8px}.panel .small-note{font-size:10px}.settings-row{display:flex;align-items:center;justify-content:space-between;margin:12px 0;padding:13px 2px;border-bottom:1px solid #e4dfeb;font-size:13px;text-align:left}.toggle{background:#ded7e8;border-radius:15px;padding:8px 13px;min-width:90px;font-size:11px;font-weight:bold}.toggle.on{background:#9f8ec8;color:white}.chapter-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-top:24px;text-align:left}.chapter-card{overflow:hidden;border-radius:17px;background:white;box-shadow:0 5px 15px #3030500a;cursor:pointer;text-align:left;padding:0;position:relative}.chapter-card:disabled{opacity:.5}.chapter-card img{height:110px;object-fit:cover;width:100%;display:block}.chapter-card .dream{height:110px;background:radial-gradient(circle at 50% 80%,#ffe9a6,transparent 24%),linear-gradient(150deg,#5a76a7,#d2a9dd);display:grid;place-items:center;color:#fff2c5;font-size:55px}.chapter-card .card-body{padding:14px}.chapter-card small{font-size:8px;letter-spacing:1.2px;color:#9f8daa}.chapter-card b{display:block;font-size:14px;margin:6px 0 8px}.chapter-card span{font-size:10px;color:#a69bb1}.gear-puzzle{display:flex;justify-content:center;gap:12px;margin:28px 0}.gear-wrap{text-align:center;flex:1}.gear-wheel{width:90px;height:90px;position:relative;font-size:70px;background:radial-gradient(circle,#f6e2b8,#e7c283);border:6px dotted #bb975e;border-radius:50%;color:#b68c4c;transition:transform .25s;line-height:1}.gear-wheel:after{content:'↑';display:block;font-size:40px;position:absolute;inset:12px 0;line-height:1}.gear-wrap small{display:block;font-size:9px;margin-top:14px;color:#a295a5}.gear-wrap .target{color:#ad89be;font-size:20px;margin-bottom:8px}.flower-keys{display:flex;justify-content:center;gap:18px;margin:26px 0}.flower-key{width:85px;height:85px;border-radius:35%;font-size:35px;color:#fff;box-shadow:0 6px 0 #0002;opacity:.7;transition:transform .12s,filter .12s}.flower-key.lit{transform:scale(1.15);filter:brightness(1.4);opacity:1;box-shadow:0 0 30px currentColor}.melody-dots{display:flex;gap:10px;justify-content:center;margin:20px}.melody-dots i{width:10px;height:10px;border-radius:50%;background:#d9d2e3}.melody-dots i.done{background:#9dc7b6}.result-stars{font-size:40px;letter-spacing:10px;color:#e3b464;margin:20px 0}.stats{display:flex;justify-content:space-around;margin:20px 0;padding:18px 0;border-top:1px solid #e2dce9;border-bottom:1px solid #e2dce9}.stats b{display:block;font-size:22px;color:#8e76ad}.stats span{font-size:9px;color:#a195ad}.outfits{display:flex;justify-content:center;gap:12px}.outfit{width:55px;height:55px;border-radius:18px;font-size:20px;border:3px solid transparent;position:relative}.outfit.active{border-color:#5f5480}.outfit[disabled]:after{content:'🔒';position:absolute;font-size:13px;right:-5px;bottom:-5px}.video-panel{width:min(100%,980px);position:relative}.video-panel video{width:100%;max-height:80dvh;border-radius:20px;background:black}.video-panel button{position:absolute;right:5px;top:-40px;background:#fff;color:#555;width:32px;height:32px;border-radius:50%;font-size:24px}#chapterIntro{position:fixed;inset:0;z-index:8;pointer-events:none;display:flex;flex-direction:column;justify-content:center;align-items:center;text-align:center;color:white;background:linear-gradient(transparent,#29284933,transparent);text-shadow:0 3px 24px #31335080;animation:intro 3.3s both}#chapterIntro small{font-size:10px;letter-spacing:5px}#chapterIntro h1{font-size:clamp(25px,4vw,50px);letter-spacing:-1.5px;margin:15px}#chapterIntro p{font-size:13px;color:#fff9dd}#flash{position:fixed;inset:0;background:#fff2d5;pointer-events:none;opacity:0;transition:opacity .4s;z-index:7}.fatal{background:#f4efe7;color:#3a3547;max-width:500px;padding:30px;border-radius:24px;text-align:center;margin:25px}.fatal h1{font-size:22px}.fatal p{line-height:1.6;font-size:14px}.fatal button{padding:14px;border-radius:12px;background:#cab2e2}
@keyframes appear{from{opacity:0;translate:0 10px}to{opacity:1;translate:0 0}}@keyframes breathe{to{transform:scale(1.09) translate(-1%,0)}}@keyframes load{from{left:-40%}to{left:100%}}@keyframes pulse{50%{box-shadow:0 0 30px #fff0b5ff}}@keyframes intro{0%,100%{opacity:0}20%,70%{opacity:1}}
@media (min-width:1200px){#stickArea{opacity:.55} .action-area{opacity:.7}}
@media (orientation:portrait){.home-shade{background:linear-gradient(0deg,#172433ed 0%,#22373a85 60%,#273b4430)}.home-art{background-position:64% center}.home-content{left:8%;right:8%;top:auto;bottom:130px;transform:none}.brand{font-size:88px}.brand span{font-size:11px;letter-spacing:3px}.tagline{font-size:29px;margin-top:25px}.home-desc{font-size:12px}.home-meta{gap:14px;font-size:9px}.film-btn{bottom:48px;right:8%;left:8%;padding:10px 16px}.home-footer{display:none}.home-top{top:max(20px,var(--safe-top));left:8%;right:8%}.eyebrow{font-size:8px;letter-spacing:2px}.topbar{left:14px;right:14px;top:max(14px,var(--safe-top))}.chapter-badge{padding:9px 11px;gap:8px}.chapter-badge strong{font-size:11px}.chapter-badge small{font-size:7px}.chapter-badge>span{font-size:20px}.round{height:39px;width:39px;border-radius:13px}.star-counter{padding:10px;font-size:15px}.top-right{gap:7px}.mission{left:14px;top:83px;width:230px;padding:12px 14px;border-radius:15px}.mission strong{font-size:13px}.mission p{font-size:10px;margin-bottom:8px}.mission-label{font-size:7px;margin-bottom:6px}#compass{top:96px;left:auto;right:22px;transform:none}#stickArea{left:25px;bottom:max(70px,calc(var(--safe-bottom) + 35px))}#joystick{width:108px;height:108px}.action-area{right:20px;gap:14px;bottom:max(80px,calc(var(--safe-bottom) + 40px))}.action-btn{height:64px;width:64px;margin-bottom:46px}.jump-btn{height:75px;width:75px}.bottom-info{left:18px;right:18px;bottom:max(14px,var(--safe-bottom))}#desktopHelp{display:none}#dialogue{width:calc(100% - 32px);max-width:420px;bottom:215px;padding:12px 17px;gap:10px}#dialogue p{font-size:11px}#contextHint{bottom:29%;max-width:90%;width:max-content;font-size:11px;padding:10px 16px}#toast{top:25%;max-width:92%;white-space:normal;font-size:12px}.panel{padding:30px 22px;border-radius:25px}.panel h2{font-size:25px}.chapter-grid{grid-template-columns:1fr;gap:10px}.chapter-card{display:flex;align-items:center}.chapter-card img,.chapter-card .dream{width:100px;height:90px;flex-shrink:0}.chapter-card .card-body{padding:10px 16px}.chapter-card b{font-size:13px}.gear-wheel{width:77px;height:77px}.gear-wheel:after{font-size:34px}.flower-key{width:73px;height:73px}.flower-keys{gap:12px}body.left-handed #stickArea{right:25px}body.left-handed .action-area{left:20px}}
@media (orientation:landscape) and (max-height:550px){.home-content{left:7%;top:49%}.brand{font-size:68px;letter-spacing:-5px}.brand span{font-size:8px;margin-top:7px;letter-spacing:3px}.tagline{font-size:23px;margin:16px 0 10px}.home-desc{display:none}.primary.large{padding:11px 20px;min-width:250px;font-size:13px;margin-top:17px}.home-meta{margin-top:18px;font-size:8px}.home-top{top:14px}.home-footer{font-size:7px;bottom:12px}.film-btn{bottom:38px}.topbar{top:10px;left:18px;right:18px}.chapter-badge{padding:7px 12px}.chapter-badge strong{font-size:11px}.round{height:36px;width:36px}.star-counter{padding:8px 12px}.mission{top:77px;left:18px;width:230px;padding:10px 14px}.mission strong{font-size:12px}.mission p{font-size:9px;margin:5px 0 8px}.mission-label{font-size:7px;margin-bottom:5px}#compass{top:60px}#joystick{width:88px;height:88px}#stick{width:40px;height:40px}#stickArea{bottom:42px;left:32px;gap:5px}.action-area{right:30px;bottom:42px;gap:14px}.jump-btn{height:70px;width:70px}.action-btn{height:60px;width:60px;margin-bottom:20px}#dialogue{bottom:24px;width:44%;padding:10px 15px;gap:10px}#dialogue p{font-size:10px}.miko-avatar{width:32px;height:32px;flex-basis:32px}#desktopHelp{display:none}.bottom-info{bottom:7px;font-size:8px}#contextHint{bottom:30%;padding:8px 16px}#toast{top:18%;padding:9px 20px}.panel{padding:22px 28px;max-height:94dvh}.panel h2{font-size:22px;margin:5px 0}.panel p{font-size:11px}.panel .big-icon{font-size:25px;margin:0}.gear-puzzle{margin:15px 0}.gear-wheel{width:65px;height:65px}.gear-wheel:after{font-size:29px;inset:9px 0}.gear-wrap small{margin-top:8px}.flower-key{height:60px;width:60px}.flower-keys{margin:18px 0}.settings-row{margin:6px 0;padding:8px 0}.chapter-card img,.chapter-card .dream{height:80px}.chapter-grid{margin-top:15px}.result-stars{font-size:27px;margin:10px 0}.stats{margin:10px 0;padding:10px 0}.home-content .textbtn{padding:10px 8px}}
@media (prefers-reduced-motion:reduce){.home-art,.action-btn{animation:none!important}}

.fatal{position:relative}.fatal .close{position:absolute;right:12px;top:10px;padding:3px 9px;background:#e5dce9;font-size:22px}

/* The opening is the live game world. UI leaves the characters and environment visible. */
.home-shade{background:linear-gradient(0deg,#15272bc7,transparent 58%),linear-gradient(90deg,#162b3155,transparent 56%)}
.home-content{top:auto;bottom:95px;left:6%;transform:none}
.home-content .brand{font-size:74px;letter-spacing:-5px}.home-content .brand span{font-size:9px;letter-spacing:3px;margin-top:9px}
.home-content .tagline{font-size:23px;margin:20px 0 8px}.home-content .home-desc{font-size:11px;margin:0 0 20px}.home-meta{display:none}
.home-top .eyebrow{font-size:8px;letter-spacing:2.4px}.film-btn{right:4%;bottom:30px;font-size:8px;padding:10px 13px;border-radius:12px}.home-footer{font-size:7px;bottom:25px;left:6%}
.primary.large{min-width:250px;font-size:13px;padding:14px 18px;border-radius:10px;box-shadow:0 2px 0 #ad8345,0 8px 28px #0002}
.topbar{top:max(15px,var(--safe-top));left:17px;right:17px;align-items:center}
.chapter-badge{padding:8px 11px;border-radius:10px;background:#182b32b0;color:#fff3dc;border-color:#ffffff24;box-shadow:none;backdrop-filter:blur(15px);gap:9px}
.chapter-badge>span{font-size:18px;color:#e7c38c}.chapter-badge small{color:#decfb8;font-size:6px;letter-spacing:1.8px;margin-bottom:3px}.chapter-badge strong{font-size:10px}
.top-right{gap:7px}.star-counter{padding:9px 10px;border-radius:10px;background:#182b32b0;color:#f7d091;font-size:14px}.star-counter b{font-size:12px}.star-counter small{font-size:8px;color:#d3d0c5}
#pauseBtn{width:34px;height:34px;font-size:16px;border-radius:10px;background:#182b32b0;color:#fff3dc;border-color:#ffffff24;box-shadow:none}
.mission{background:transparent;border:0;backdrop-filter:none;box-shadow:none;top:76px;left:22px;width:240px;padding:0;color:#fff9e9;text-shadow:0 1px 9px #17252b,0 1px 3px #17252b}
.mission-label{font-size:6px;letter-spacing:1.6px;color:#f3e2c7;margin-bottom:5px}.mission-dot{background:#e5c08a;width:4px;height:4px}.mission strong{font-size:12px;font-weight:700;line-height:1.5}#missionCount{color:#ffe4b4;font-size:9px}
.mission p{display:none}.progress-track{width:110px;height:2px;margin-top:7px;background:#fff4}.progress-track i{background:#f0c58d}
#compass{top:130px;left:25px;right:auto;transform:none;color:#ffe3ac;text-shadow:0 1px 5px #173244}#compass span{font-size:18px}#compass b{background:#18334070;color:#fff6e0;font-size:8px;padding:3px 6px}
#cinemaBtn{position:absolute;right:18px;top:70px;border:1px solid #ffffff40;background:#18303a7d;backdrop-filter:blur(12px);color:#fff6e6;border-radius:8px;font-size:9px;padding:7px 10px;pointer-events:auto;z-index:2}
#dialogue{bottom:26px;width:41%;max-width:390px;left:50%;border-radius:13px;padding:10px 15px;background:#152e36c7;color:#fff7e9;border-color:#ffffff21;box-shadow:none}
#dialogue p{font-size:10px;margin:4px 0 0;line-height:1.5}#dialogue b{color:#9edbdf;font-size:8px}#dialogue b span{display:none}.miko-avatar{height:30px;width:30px;flex-basis:30px;font-size:20px;border-width:2px;background:#4a9a9e;border-color:#abd8d2}#closeDialogue{font-size:17px;color:#ded8cc}
#joystick{width:96px;height:96px;background:#17384322;border:1px solid #ffffff70;box-shadow:inset 0 0 24px #ffffff0b;backdrop-filter:blur(2px)}#stick{width:41px;height:41px;background:#f8f2e0a8;box-shadow:0 3px 12px #1d313a33;border-color:#fff9}
#stickArea{left:25px;bottom:max(45px,calc(var(--safe-bottom) + 20px));gap:7px}#stickArea>span{color:#fff9;font-size:6px;text-shadow:0 1px 5px #1d313a}
.action-area{right:25px;bottom:max(50px,calc(var(--safe-bottom) + 25px));gap:13px}.action-btn,.jump-btn{background:#17384340;color:#fff7e8;border:1px solid #fff8;backdrop-filter:blur(5px);box-shadow:0 4px 18px #17384313}.jump-btn{width:70px;height:70px}.action-btn{width:57px;height:57px;margin-bottom:32px}.action-btn b,.jump-btn b{font-size:6px;letter-spacing:1px}.jump-btn span{font-size:27px}.action-btn span{font-size:23px}.action-btn:not(:disabled){background:#f4dc9fe0;color:#4d432d}.action-btn:disabled{opacity:.5}
.bottom-info{bottom:max(9px,var(--safe-bottom));left:19px;right:19px;color:#fff9;font-size:7px;text-shadow:0 1px 5px #173843}#saveState{font-size:7px}.bottom-info button{padding:5px 9px;font-size:8px;background:#17384355;color:#fff4dd;border-color:#fff3}
#contextHint{bottom:22%;font-size:10px;border-radius:10px;background:#17313bd9;padding:9px 13px}
#toast{top:24%;background:#16323be8;color:#fff1cf;border-color:#ffe2aa40;font-size:12px;border-radius:12px}
body.cinema .mission,body.cinema #compass,body.cinema #dialogue,body.cinema .bottom-info,body.cinema .topbar,body.cinema #controls,body.cinema #contextHint,body.cinema #rewardStreak{display:none!important}body.cinema #cinemaBtn{top:20px;background:#17313b70}
@media(orientation:portrait){
 .home-content{left:7%;right:7%;bottom:88px}.home-content .brand{font-size:64px}.home-content .brand span{font-size:8px}.home-content .tagline{font-size:21px;margin-top:17px}.home-content .home-desc{font-size:10px;margin-bottom:17px}.home-content .primary.large{min-width:0;max-width:290px}.home-shade{background:linear-gradient(0deg,#11252be3,transparent 65%)}.home-top{top:max(20px,var(--safe-top));left:7%;right:7%}.home-footer{display:none}.film-btn{left:7%;right:auto;bottom:23px;padding:7px 11px;font-size:7px}.film-btn .play-icon{font-size:20px;width:20px}.film-btn b{font-size:9px;margin-top:2px}
 .topbar{top:max(12px,var(--safe-top));left:12px;right:12px}.chapter-badge{padding:8px 9px}.chapter-badge>span{font-size:16px}.chapter-badge strong{font-size:9px}.chapter-badge small{font-size:5px}.star-counter{padding:9px 8px;font-size:12px}.star-counter b{font-size:11px}.star-counter small{font-size:7px}#pauseBtn{width:31px;height:31px}.mission{top:68px;left:17px;width:210px}.mission strong{font-size:10px}.mission-label{font-size:5px}#compass{top:118px;left:20px}#cinemaBtn{top:66px;right:12px;padding:6px 8px;font-size:8px}
 #dialogue{width:calc(100% - 36px);left:18px;transform:none;bottom:165px;padding:9px 13px;gap:9px;max-width:390px}#dialogue p{font-size:9px}#joystick{height:92px;width:92px}#stick{width:38px;height:38px}#stickArea{left:22px;bottom:max(45px,calc(var(--safe-bottom) + 22px))}.action-area{right:21px;bottom:max(52px,calc(var(--safe-bottom) + 26px));gap:12px}.jump-btn{height:64px;width:64px}.action-btn{height:53px;width:53px;margin-bottom:31px}#contextHint{bottom:27%;font-size:9px}
}
@media(orientation:landscape) and (max-height:550px){.home-content{left:5%;bottom:45px}.home-content .brand{font-size:58px}.home-content .tagline{font-size:19px;margin:13px 0 8px}.home-content .home-desc{display:none}.home-content .primary.large{min-width:230px;margin-top:15px;padding:11px 15px}.home-footer{display:none}.film-btn{bottom:20px}.mission{top:64px}.mission strong{font-size:10px}#compass{top:112px}#cinemaBtn{top:60px}.jump-btn{width:60px;height:60px}.action-btn{width:49px;height:49px}#joystick{width:78px;height:78px}#stick{width:34px;height:34px}#stickArea,.action-area{bottom:30px}#dialogue{bottom:15px;padding:8px 12px}#dialogue p{font-size:9px}}

/* Keep the live characters visible on the opening screen. */
.home-content{inset:0;transform:none;pointer-events:none}
.home-content .brand{position:absolute;left:6%;top:15%;font-size:76px}
.home-content .tagline{position:absolute;left:6%;top:calc(15% + 116px);margin:0;font-size:21px}
.home-content .home-desc{display:none}
.home-content .primary.large{position:absolute;left:6%;bottom:75px;pointer-events:auto}
.home-content #chaptersHome{position:absolute;left:6%;bottom:20px;pointer-events:auto}
.home-shade{background:linear-gradient(0deg,#14292bd9,transparent 30%),linear-gradient(180deg,#16303555,transparent 36%)}
.home-footer{display:none}
@media(orientation:portrait){
 .home-content{inset:0}
 .home-content .brand{left:7%;top:max(78px,calc(var(--safe-top) + 58px));font-size:64px}
 .home-content .tagline{left:7%;top:max(186px,calc(var(--safe-top) + 166px));font-size:19px}
 .home-content .primary.large{left:7%;right:7%;bottom:max(76px,calc(var(--safe-bottom) + 55px));max-width:none}
 .home-content #chaptersHome{left:auto;right:7%;bottom:max(18px,var(--safe-bottom));font-size:10px;padding:12px 0}
 .film-btn{bottom:max(18px,var(--safe-bottom));left:7%;max-width:180px}
}
@media(orientation:landscape) and (max-height:550px){
 .home-content{inset:0}
 .home-content .brand{top:57px;left:5%;font-size:58px}
 .home-content .tagline{top:145px;left:5%;font-size:17px;margin:0}
 .home-content .primary.large{left:5%;bottom:52px;margin:0}
 .home-content #chaptersHome{left:5%;bottom:9px;padding:9px 0;font-size:10px}
}

/* Keep the landscape call to action clear of Nova and Miko. */
@media(orientation:landscape){
 .home-content .primary.large{left:auto;right:6%;bottom:80px}
 .home-content #chaptersHome{left:auto;right:6%;bottom:22px}
 .film-btn{left:6%;right:auto;bottom:22px}
}
@media(orientation:landscape) and (max-height:550px){
 .home-content .primary.large{right:5%;bottom:52px}
 .home-content #chaptersHome{right:5%;bottom:9px}
 .film-btn{left:5%;bottom:16px}
}

/* HeroX: a glossy adventure identity, with the live scene kept in view. */
:root{--purple:#5773cc;--gold:#ffdc7c}
.brand{width:min(350px,78vw);transform:rotate(-3deg);line-height:1;letter-spacing:0;font-size:0;filter:drop-shadow(0 8px 16px #15284f26)}
.brand img{display:block;width:100%;height:auto}
.brand span{font-size:10px!important;letter-spacing:3px!important;text-align:center;padding:0;margin-top:0!important;color:#fff9df;font-weight:900;text-shadow:0 2px 8px #193349b0}
.home-content .brand{width:clamp(270px,29vw,390px);font-size:0;top:14%;left:6%}
.home-content .tagline{top:calc(14% + clamp(110px,10vw,145px));font-size:18px;letter-spacing:-.4px;color:#fffdf0;text-shadow:0 2px 8px #17264a80}
.home-top .eyebrow{display:flex;align-items:center;gap:8px;letter-spacing:2px;font-weight:900;text-shadow:0 2px 8px #173147}
.eyebrow i{width:6px;height:6px;border-radius:50%;background:#8ffff0;box-shadow:0 0 14px #53ffcf}
#load{background:radial-gradient(ellipse at 50% 28%,#3979a1 0%,#303967 48%,#1c2249 100%)}
#load .brand{width:min(340px,78vw)}
#load .loader{background:#ffffff20;width:135px;height:5px;margin-top:14px}.loader:after{background:linear-gradient(90deg,#7df2e2,#fff0a6)}
.primary,.primary.large{position:relative;overflow:hidden;background:linear-gradient(165deg,#ccfff1 0%,#88f2d6 35%,#39c7c5 100%);color:#163b57;border:1px solid #d8fff4;border-bottom:0;border-radius:18px;box-shadow:0 5px 0 #167e9d,0 14px 25px #17275030}
.primary:before{content:'';position:absolute;left:12%;right:12%;height:1px;top:6px;background:linear-gradient(90deg,transparent,#fff,transparent);opacity:.9}
.primary.large{min-width:270px;font-size:15px;font-weight:900;padding:17px 22px;transition:transform .16s,box-shadow .16s}
.primary:active{transform:translateY(3px);box-shadow:0 2px 0 #167e9d,0 6px 12px #17275024}
.primary.large span{background:#eaffee91;border-radius:50%;width:28px;height:28px;display:grid;place-items:center;font-size:20px}
.round{border-radius:50%}.home-top .round{background:#18375055;box-shadow:inset 0 1px 0 #fff5}
.chapter-badge,.star-counter,#pauseBtn{background:linear-gradient(145deg,#273d69e8,#1e344bd9);border:1px solid #bddfff40;box-shadow:inset 0 1px 0 #ffffff1c}
.chapter-badge small{color:#94f1e1;letter-spacing:1px}.chapter-badge>span{color:#ffdc88}.star-counter{color:#ffe29c}
.progress-track i{background:linear-gradient(90deg,#71e8db,#ffdf87)}
.jump-btn{background:linear-gradient(145deg,#fff9,#92dad33a);color:#1e455b;box-shadow:inset 0 2px 1px #ffffffb0,0 4px 0 #1b526a55,0 7px 16px #19335222;border-color:#e7ffef}
.jump-btn.charged{background:linear-gradient(145deg,#ddfff4,#57dcd1);box-shadow:0 0 22px #76f9e67a,inset 0 2px 1px #fff;animation:charged 1s ease-in-out infinite}
.jump-btn.charged:after{content:'×2';position:absolute;right:-5px;top:-4px;background:#fff1a6;color:#355170;font-size:10px;font-weight:1000;border:2px solid #fff9df;border-radius:9px;padding:3px 5px}
.action-btn:not(:disabled){background:linear-gradient(155deg,#fff7c9,#f4c66b);box-shadow:inset 0 2px 1px #fff9,0 3px 0 #aa7a4055,0 0 18px #ffe7a540}
#rewardStreak{position:absolute;top:calc(24% + 52px);left:50%;transform:translateX(-50%) rotate(-3deg);color:#fff6c7;text-shadow:0 2px 0 #426796,0 0 18px #244063;font-size:15px;font-weight:1000;letter-spacing:.2px;white-space:nowrap;animation:rewardPop .35s cubic-bezier(.2,1.6,.5,1)}
#dialogue{border-color:#83e4d350}.miko-avatar{background:linear-gradient(145deg,#a0f1dc,#43b7c5);color:#fff9e4}
.panel{border-top:3px solid #83d9d7}.toggle.on{background:#2a9cae}.kicker{color:#598bac}
@keyframes charged{50%{filter:brightness(1.1)}}
@keyframes rewardPop{from{opacity:0;scale:.7;translate:0 8px}to{opacity:1;scale:1;translate:0 0}}
@media(orientation:portrait){
 .home-content .brand{width:270px;max-width:84vw;left:7%;top:max(82px,calc(var(--safe-top) + 60px))}
 .home-content .tagline{left:7%;right:7%;top:max(200px,calc(var(--safe-top) + 178px));font-size:16px;line-height:1.4;max-width:330px}
 .primary.large{min-width:0;padding:16px 20px;border-radius:16px;font-size:14px}
 #rewardStreak{top:calc(25% + 48px);font-size:13px}
}
@media(orientation:landscape) and (max-height:550px){
 .home-content .brand{top:48px;left:5%;width:210px}
 .home-content .tagline{top:140px;left:5%;font-size:12px;max-width:230px}
 .film-btn{padding:7px 10px;font-size:7px;gap:8px}.film-btn .play-icon{font-size:20px;width:20px}.film-btn b{font-size:9px;margin-top:2px}
 .primary.large{min-width:235px;padding:12px 17px;font-size:13px}
 #rewardStreak{top:calc(18% + 42px);font-size:12px}
}
@media(prefers-reduced-motion:reduce){.jump-btn.charged,#rewardStreak{animation:none!important}}

/* Language selection is lightweight and independent of WebGL / model downloads. */
.language-screen{position:fixed;inset:0;z-index:1000;overflow-y:auto;overscroll-behavior:contain;touch-action:pan-y;background:radial-gradient(ellipse at 20% 0%,#467b9e 0,transparent 55%),radial-gradient(ellipse at 95% 85%,#246978 0,transparent 55%),#202b52;color:#fff9eb;display:flex;align-items:center;justify-content:center;padding:max(24px,env(safe-area-inset-top)) 22px max(24px,env(safe-area-inset-bottom))}
.language-panel{width:100%;max-width:470px;text-align:center;margin:auto}
.language-logo{display:block;width:min(265px,65vw);height:auto;margin:0 auto 22px;filter:drop-shadow(0 9px 18px #10234455);transform:rotate(-3deg)}
.language-panel h1{font-size:clamp(24px,5vw,31px);line-height:1.2;letter-spacing:-.7px;margin:0 0 9px;font-weight:900}
#languageSubtitle{font-size:14px;color:#d5e6ee;margin:0 0 27px;line-height:1.5}
.language-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;direction:ltr}
.language-option{display:flex;align-items:center;gap:10px;min-height:68px;min-width:0;padding:13px 12px;border:1px solid #b6e2ee40;border-radius:17px;color:#fffaf1;background:linear-gradient(145deg,#ffffff14,#ffffff05);box-shadow:inset 0 1px 0 #ffffff17;font:inherit;font-weight:700;line-height:1.3;text-align:start;cursor:pointer;transition:background .15s,border-color .15s,transform .15s;touch-action:manipulation}
.language-option>span:nth-child(2){font-size:15px;font-weight:750}.language-badge{display:grid;place-items:center;width:31px;height:31px;flex-shrink:0;font-size:10px;font-weight:900;letter-spacing:.5px;background:#16385166;border-radius:10px;color:#b9eceb;direction:ltr}
.language-check{margin-inline-start:auto;color:#b6ffeb;visibility:hidden;font-size:14px}
.language-option[aria-pressed=true]{border-color:#8df2dc;background:linear-gradient(135deg,#70ecd72a,#8be8eb12);box-shadow:inset 0 1px 0 #c8ffff38,0 0 0 1px #8df2dc22}
.language-option[aria-pressed=true] .language-check{visibility:visible}.language-option:active{transform:scale(.98)}
.language-option:focus-visible,#languageContinue:focus-visible,#languageCancel:focus-visible{outline:3px solid #fff0ae;outline-offset:4px}
#languageContinue{width:100%;margin-top:25px;min-height:52px;font-size:16px;font-weight:900;display:block}
#languageHint{font-size:12px;line-height:1.6;color:#cedee7;margin:20px auto 0;max-width:340px}
#languageCancel{color:#d9f2f5;margin:9px auto 0;padding:10px 20px;font-size:13px}
body.choosing-language #load{visibility:hidden}
/* Text direction never reverses movement, camera input or the left-handed setting. */
html[dir=rtl] body,.language-screen[dir=rtl]{font-family:Tahoma,Arial,system-ui,sans-serif}
html[dir=rtl] .kicker,html[dir=rtl] .mission-label,html[dir=rtl] .chapter-badge small,html[dir=rtl] .eyebrow,html[dir=rtl] #dialogue b,html[dir=rtl] .action-btn b,html[dir=rtl] .jump-btn b,html[dir=rtl] .stats span{letter-spacing:0}
html[dir=rtl] #controls,html[dir=rtl] .topbar,html[dir=rtl] #compass,html[dir=rtl] .star-counter,html[dir=rtl] .stats b{direction:ltr}
html[dir=rtl] .chapter-badge div,html[dir=rtl] .mission,html[dir=rtl] #dialogue>div:not(.miko-avatar){direction:rtl;text-align:right}
html[dir=rtl] #dialogue p{font-size:12px;line-height:1.7}
html[dir=rtl] .chapter-badge strong{font-size:11px}
html[dir=rtl] .action-btn b,html[dir=rtl] .jump-btn b{font-size:9px}
html[dir=rtl] .home-content .brand{transform:rotate(-3deg)}
#dialogue p{overflow-wrap:anywhere}.settings-row{gap:12px}.settings-row>span{flex:1;text-align:start}.settings-row .toggle{flex-shrink:0;min-width:78px}
.action-btn b,.jump-btn b{letter-spacing:.3px}
.home-content .tagline{top:calc(14% + clamp(95px,9vw,130px))}
@media(orientation:portrait){.home-content .tagline{top:max(185px,calc(var(--safe-top) + 163px))}}
@media(orientation:landscape) and (max-height:550px){
 .language-screen{padding:18px max(22px,env(safe-area-inset-right)) 18px max(22px,env(safe-area-inset-left))}.language-panel{max-width:630px}.language-logo{width:150px;margin-bottom:5px}.language-panel h1{font-size:22px;margin-bottom:5px}#languageSubtitle{margin-bottom:14px;font-size:12px}.language-grid{grid-template-columns:repeat(3,1fr);gap:8px}.language-option{min-height:48px;padding:8px 10px;border-radius:12px}.language-option>span:nth-child(2){font-size:14px}.language-badge{height:26px;width:26px}.language-panel #languageContinue{max-width:290px;margin:14px auto 0;min-height:43px;padding:10px}#languageHint{margin-top:11px;font-size:11px;max-width:none}#languageCancel{position:absolute;top:12px;inset-inline-end:12px;margin:0}.home-content .tagline{top:123px;font-size:12px}
}
@media(max-width:350px){.language-screen{padding-inline:15px}.language-grid{gap:9px}.language-option{gap:7px;padding:10px 8px}.language-option>span:nth-child(2){font-size:13px}.language-badge{width:26px;height:28px}.language-panel h1{font-size:23px}}
