:root{font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;color:#f8ebea;background:#111625;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;--pink: #f2a5ca;--cream: #fff0de;--left: max(16px,env(safe-area-inset-left));--right: max(16px,env(safe-area-inset-right));--top: max(14px,env(safe-area-inset-top));--bottom: max(18px,env(safe-area-inset-bottom))}*{box-sizing:border-box}html,body,#app{margin:0;width:100%;height:100%;overflow:hidden;overscroll-behavior:none}body{background:#141524;position:fixed;inset:0;-webkit-text-size-adjust:100%;text-size-adjust:100%}button{font:inherit;cursor:pointer;-webkit-tap-highlight-color:transparent;transition:filter .15s,transform .15s}button:disabled{opacity:.6;cursor:wait}button:hover:not(:disabled){filter:brightness(1.12)}button:active:not(:disabled){transform:scale(.97)}button:focus-visible{outline:2px solid #ffe0a8;outline-offset:3px}button svg{display:block}button,svg{user-select:none}.hidden{display:none!important}.game-shell{position:fixed;left:0;top:0;width:100%;height:100%;height:100dvh;touch-action:none;overflow:hidden;isolation:isolate;background:linear-gradient(#a4cfda,#f8dfbc)}#game-canvas{position:absolute;inset:0;overflow:hidden}#game-canvas canvas{display:block;margin:0;padding:0;border:0;max-width:none;max-height:none}.world-vignette{position:absolute;inset:0;pointer-events:none;box-shadow:inset 0 0 100px #1a193920;z-index:1}.hud{position:absolute;inset:0;pointer-events:none;z-index:2}.hero-status{position:absolute;left:var(--left);top:var(--top);display:flex;gap:10px;align-items:center;background:linear-gradient(120deg,#202239e8,#26243ccb);border:1px solid #ffffff35;border-radius:15px;padding:8px 13px 8px 8px;box-shadow:0 6px 25px #15203930;width:218px;backdrop-filter:blur(8px)}.avatar{position:relative;width:44px;height:48px;flex-shrink:0;overflow:hidden;border-radius:10px;background:linear-gradient(120deg,#c0a0b9,#f7d1ca);border:1px solid #ffeed84d}.avatar img{position:absolute;width:90px;max-width:none;left:-6px;top:-1px}.hero-vitals{flex:1;min-width:0}.hero-name{font-weight:800;font-size:11px;letter-spacing:1.5px;color:#fff1e7;display:flex;justify-content:space-between;gap:6px}.hero-name span{font-size:7px;color:#e1c0ff;letter-spacing:.3px}.hp-track{height:8px;background:#ffffff1a;border-radius:20px;margin:8px 0 5px;overflow:hidden}.hp-track i{display:block;height:100%;width:100%;background:linear-gradient(90deg,#c9edc7,#8cddb9);border-radius:20px;transition:width .12s}.vitals-bottom{display:flex;justify-content:space-between;align-items:center;font-size:9px;color:#d2ccd9;font-variant-numeric:tabular-nums}.coins{color:#ffe3a7;letter-spacing:1px}.coins strong{font-weight:600}.chapter-status{position:absolute;top:calc(var(--top) + 1px);left:50%;transform:translate(-50%);text-align:center;min-width:220px;text-shadow:0 1px 8px #1b254c9e;color:#fff8e6}.eyebrow{font-size:8px;font-weight:750;letter-spacing:2px;color:#dcb2cb;margin:0 0 9px}.chapter-status .eyebrow{display:block;color:#fff1d9;font-size:7px;letter-spacing:2.3px;margin-bottom:4px}.chapter-status strong{display:block;font-size:13px;font-weight:650}.journey-track{height:3px;background:#ffffff30;border-radius:4px;margin:8px auto 5px;max-width:170px;overflow:hidden}.journey-track i{display:block;height:100%;background:#fff2cd;width:0}.chapter-status #objective{font-size:8px;letter-spacing:.2px;color:#fff3e3}.game-tools{position:absolute;top:var(--top);right:var(--right);display:flex;gap:7px;z-index:8}.tool-button{display:grid;place-items:center;width:40px;height:40px;background:#25243bd4;border:1px solid #fff4e62b;border-radius:12px;color:#f6dfe8;font-size:20px;backdrop-filter:blur(8px)}.desktop-skills{position:absolute;left:var(--left);bottom:var(--bottom);display:flex;gap:9px}.skill-chip{display:flex;align-items:center;gap:9px;border:1px solid #a8e3ed55;border-radius:10px;background:#222b3edb;padding:9px 14px 9px 9px;color:#e6f6f4}.skill-chip>span{font-size:9px;font-weight:650;letter-spacing:.3px}.skill-chip small{display:block;font-size:9px;letter-spacing:1px;color:#b6aebe;margin-top:3px}.skill-chip small.ready{color:#aee7ca}.ultimate-chip{border-color:#efb0e15c;background:#362842de}.skill-chip kbd{font-size:14px;width:29px;height:30px;display:grid;place-items:center;background:#ffffff10;border:1px solid #ffffff1d;border-radius:6px;color:#e5e7ed}.desktop-controls{position:absolute;right:var(--right);bottom:calc(var(--bottom) + 15px);font-size:9px;color:#f9eadc;background:#26283bb5;border:1px solid #ffffff1d;border-radius:25px;padding:9px 14px;text-shadow:0 1px 2px #181721}kbd{font-family:inherit;display:inline-block;padding:3px 5px;min-width:16px;background:#ffffff0d;border:1px solid #ffffff24;border-bottom-width:2px;border-radius:4px;font-size:9px;color:#f8e5eb;margin:0 3px 0 0;text-align:center}.boss-hud{position:absolute;top:calc(var(--top) + 75px);left:50%;transform:translate(-50%);width:min(410px,48%);z-index:3;background:#241d35d9;border:1px solid #edbac529;border-radius:9px;padding:9px 12px;pointer-events:none;box-shadow:0 5px 24px #120d241e}.boss-hud>div:first-child{display:flex;align-items:center;justify-content:space-between;gap:10px;font-size:9px;letter-spacing:.5px;color:#fce5e6;margin-bottom:7px}.boss-hud #boss-state{font-size:7px;color:#ffc49d}.boss-hud #boss-hp{font-size:8px;color:#f9ccde;font-variant-numeric:tabular-nums}.boss-track{position:relative;height:7px;background:#ffffff16;border-radius:7px;overflow:hidden}.boss-track i{position:absolute;left:0;top:0;display:block;height:100%;background:linear-gradient(90deg,#c569a8,#ffb7b0);border-radius:7px;transition:width .1s}#boss-trail{background:#ffe0a3}.boss-hit #boss-fill{filter:brightness(1.6)}.boss-hit #boss-name{color:#fff7d9}.toast{position:absolute;bottom:calc(var(--bottom) + 75px);left:50%;transform:translate(-50%);width:max-content;max-width:55%;z-index:4;font-size:10px;line-height:1.5;text-align:center;color:#fff0dd;padding:10px 18px;border-radius:30px;background:#27243ee8;border:1px solid #fff0d735;pointer-events:none;box-shadow:0 5px 30px #24203930}.overlay{position:absolute;inset:0;display:grid;place-items:center;padding:18px;background:#141c3159;backdrop-filter:blur(5px);z-index:6;overflow:auto}.title-card{position:relative;display:grid;grid-template-columns:.9fr 1fr;grid-template-rows:1fr auto auto;width:min(920px,calc(var(--surface-width, 100vw) * .95));max-height:calc(var(--surface-height, 100dvh) - 40px);background:linear-gradient(125deg,#30293ff2,#1c2236f7);border:1px solid #ffe2e12b;border-radius:24px;box-shadow:0 25px 100px #15132c55;overflow:auto}.portrait-panel{position:relative;overflow:hidden;min-height:360px;background:radial-gradient(ellipse at 50% 55%,#af64832e,transparent 65%)}.portrait-halo{position:absolute;left:9%;top:11%;width:80%;aspect-ratio:1;border-radius:50%;border:1px solid #f0c5d931;outline:1px solid #f0c5d914;outline-offset:16px;background:radial-gradient(circle,#e9a0b715,transparent 70%)}.hero-portrait{position:absolute;height:96%;width:auto;max-width:none;bottom:0;left:5%;filter:drop-shadow(0 16px 15px #0e112b80)}.hero-spark{position:absolute;color:#e6b9d0;z-index:2;font-family:Georgia,serif}.spark-one{font-size:38px;left:9%;top:22%}.spark-two{font-size:18px;right:15%;top:15%}.character-tag{position:absolute;bottom:24px;left:30px;font-size:14px;font-weight:700;letter-spacing:4px;color:#fff2df;z-index:2;text-shadow:0 2px 10px #251a39}.character-tag small{display:block;font-size:6px;color:#dcc4d4;letter-spacing:2px;margin-top:7px}.title-copy{align-self:center;padding:35px 40px 28px 5px}.title-copy .eyebrow{font-size:8px;letter-spacing:2px}.title-copy h1{margin:20px 0 16px;font-weight:500;letter-spacing:-2px;line-height:1}.title-copy h1 span{display:block;font-size:41px;color:#fff0df;font-weight:650}.title-copy h1 em{display:block;font-family:Georgia,serif;font-size:95px;font-weight:400;letter-spacing:-5px;line-height:.96;color:#f1b3d0;text-shadow:0 3px 40px #eeb0d01a}.title-story{font-size:11px;line-height:1.85;color:#bfb6cb;margin-bottom:19px}.title-skills{display:flex;gap:15px;font-size:6px;letter-spacing:1px;color:#c4d0df;margin-bottom:18px}.title-skills span{display:flex;align-items:center;gap:5px}.title-skills svg{width:18px;height:18px;color:#dbb5eb}.primary-button{display:flex;align-items:center;justify-content:space-between;gap:20px;width:100%;min-height:44px;padding:13px 18px;background:linear-gradient(110deg,#f4b2ce,#e5acd1);border:1px solid #ffdae9;color:#35253e;border-radius:9px;font-size:11px;font-weight:750;box-shadow:0 4px 22px #f3a8cf10}.primary-button span{font-size:19px;font-weight:400}.menu-options{display:flex;justify-content:center;gap:20px;margin-top:14px}.menu-options button,.text-button{background:transparent;border:0;color:#c8b8d0;font-size:9px;padding:6px;text-decoration:underline;text-underline-offset:4px}.save-note{font-size:7px;color:#9d91ae;text-align:center;margin:11px 0 0}.level-nav{grid-column:1/-1;display:grid;grid-template-columns:repeat(5,1fr);gap:8px;padding:0 22px}.level-tab{position:relative;text-align:left;padding:12px;background:#ffffff04;border:1px solid #ffffff10;border-radius:9px;color:#c8bfcc;min-height:76px}.level-tab.selected{border-color:#edafd28c;background:linear-gradient(125deg,#e3a5c51a,#ffffff04)}.level-tab>span{display:block;font-size:19px;font-family:Georgia,serif;color:var(--level-color);margin-bottom:5px}.level-tab strong{display:block;font-size:8px;font-weight:650}.level-tab small{display:block;font-size:5px;letter-spacing:1px;margin-top:6px;color:#9a91ac}.level-tab i{position:absolute;right:10px;top:10px;color:#acdbc0;font-size:12px;font-style:normal}.fiction-note{grid-column:1/-1;text-align:center;font-size:7px;color:#8c809c;margin:14px 14px 17px}.compact-modal{width:min(480px,calc(var(--surface-width, 100vw) * .9));max-height:calc(var(--surface-height, 100dvh) - 36px);overflow:auto;background:linear-gradient(140deg,#2d2940f9,#20243afa);border:1px solid #ffd6e732;border-radius:20px;padding:30px;text-align:center;box-shadow:0 20px 90px #17132950}.compact-modal h2{font-family:Georgia,serif;font-size:33px;font-weight:400;letter-spacing:-1px;color:var(--cream);margin:12px 0}.compact-modal>p:not(.eyebrow){font-size:11px;line-height:1.8;color:#bfb3cb;margin:12px 0 20px}.modal-symbol{font-family:Georgia,serif;display:block;font-size:43px;color:#eeb2d0;margin-bottom:12px}.compact-modal .primary-button{margin-top:22px}.button-pair{display:flex;gap:9px;margin-top:9px}.secondary-button{flex:1;min-height:40px;background:#ffffff05;border:1px solid #ffffff19;color:#ddc9df;border-radius:7px;padding:10px;font-size:10px}.compact-modal .text-button{margin-top:12px;text-decoration:none}.result-stats{display:flex;gap:32px;justify-content:center;margin:24px 0}.result-stats div{display:grid;gap:8px}.result-stats strong{font-family:Georgia,serif;font-size:26px;font-weight:400;color:#f5ccd6}.result-stats small{font-size:7px;letter-spacing:2px;color:#aa9ab8}.help-modal{width:min(580px,calc(var(--surface-width, 100vw) * .9))}.help-grid{display:grid;grid-template-columns:1fr 1.4fr;gap:11px;text-align:left;margin:20px 0}.help-grid span,.help-grid p{font-size:10px;margin:0;line-height:1.5;align-self:center;color:#d7c4dd}.help-grid span{white-space:nowrap;color:#eac6dc}.compact-modal .help-note{font-size:9px!important;text-align:left;line-height:1.7;margin:10px 0!important}.touch-controls{position:absolute;inset:0;z-index:5;pointer-events:none;user-select:none;-webkit-user-select:none}.joystick{position:absolute;left:calc(var(--left) + 12px);bottom:calc(var(--bottom) + 16px);width:108px;height:108px;border-radius:50%;border:1px solid #fff2e54d;background:radial-gradient(circle,#302d456e,#20284183);box-shadow:inset 0 0 24px #ede5ff0d,0 4px 18px #16203916;display:grid;place-items:center;touch-action:none;pointer-events:auto}.joystick-axis{font-size:78px;font-weight:200;color:#fff2e514;line-height:1}#joystick-knob{position:absolute;width:43px;height:43px;left:calc(50% - 21.5px);top:calc(50% - 21.5px);border-radius:50%;background:linear-gradient(135deg,#e1d5e9a6,#8d819fb8);border:1px solid #fff1f563;box-shadow:0 4px 15px #1b163c3d}.joystick small{position:absolute;bottom:-16px;font-size:6px;font-weight:650;letter-spacing:2px;color:#fff1eac9;text-shadow:0 1px 5px #192743}.action-cluster{position:absolute;right:calc(var(--right) + 4px);bottom:calc(var(--bottom) + 5px);width:240px;height:160px;pointer-events:none}.action-button{position:absolute;display:flex;flex-direction:column;align-items:center;justify-content:center;border-radius:50%;width:57px;height:57px;border:1px solid #fff2eb66;color:#fff0e5;background:#33374bab;box-shadow:0 4px 18px #18203833,inset 0 0 20px #ffffff09;pointer-events:auto;touch-action:none;overflow:hidden;--cooldown: 0deg}.action-button:before{content:"";position:absolute;inset:0;border-radius:50%;background:conic-gradient(#131b36aa var(--cooldown),transparent var(--cooldown));z-index:0}.action-button>*{position:relative;z-index:1}.action-icon{font-size:30px;line-height:1;display:block}.action-icon svg{width:28px;height:28px}.action-button small{font-size:6px;letter-spacing:.8px;margin-top:3px;font-weight:650}.action-button b{position:absolute;inset:0;display:grid;place-items:center;font-size:13px;font-weight:750;color:#fff5ed;text-shadow:0 2px 5px #152039}.action-button:not(.on-cooldown) b.ready{display:none}.action-button.on-cooldown .action-icon{opacity:.17}.action-button.on-cooldown small{opacity:.6}.action-button.pressed{background:#947399e8;transform:none;border-color:#fff1e5}.ultimate-button{left:7px;top:0;background:#704870b5;border-color:#f2a5e282;color:#f7c8fa;width:60px;height:60px}.thrust-button{left:80px;top:0;background:#356c80bd;border-color:#abebf280;color:#c6f4fc;width:60px;height:60px}.dash-button{right:13px;top:17px;width:53px;height:53px}.dash-button b{font-size:11px}.attack-button{left:57px;bottom:0;width:84px;height:84px;background:linear-gradient(145deg,#be7899b8,#894f87d4);border:2px solid #f5d0dfb5;box-shadow:0 3px 25px #da96c02b,inset 0 0 18px #ffe3f220}.attack-button svg{width:39px;height:39px}.attack-button small{font-size:8px;letter-spacing:1px}.jump-button{right:0;bottom:0;width:69px;height:69px;background:#46566cbd;border-color:#d4e9f39e}.jump-button .action-icon{font-size:33px}.show-touch .desktop-skills,.show-touch .desktop-controls{display:none}.show-touch .toast{bottom:calc(var(--bottom) + 15px);max-width:40%;font-size:9px}.rotate-prompt{display:none;position:absolute;inset:0;z-index:30;place-content:center;text-align:center;padding:30px;background:radial-gradient(circle at 50% 30%,#573854,#191d32 65%)}.rotate-prompt>span{font-size:65px;color:#efbbd3;letter-spacing:15px}.rotate-prompt h2{font-family:Georgia,serif;font-size:29px;font-weight:400;color:#ffe8db}.rotate-prompt p{font-size:12px;line-height:1.8;color:#c5aecb}@media(min-aspect-ratio:21/9){.chapter-status{top:var(--top)}.title-card{max-width:820px}.portrait-panel{min-height:300px}}@media(max-height:540px){:root{--top: max(9px,env(safe-area-inset-top));--bottom: max(12px,env(safe-area-inset-bottom));--left: max(12px,env(safe-area-inset-left));--right: max(12px,env(safe-area-inset-right))}.hero-status{width:182px;padding:6px;gap:7px;border-radius:11px}.avatar{width:34px;height:39px;border-radius:7px}.avatar img{width:72px;left:-4px}.hero-name{font-size:10px;letter-spacing:1px}.hero-name span{font-size:6px}.hp-track{height:6px;margin:6px 0 5px}.vitals-bottom{font-size:9px}.chapter-status{min-width:190px}.chapter-status .eyebrow{font-size:8px}.chapter-status strong{font-size:12px}.chapter-status #objective{font-size:8px}.journey-track{margin:6px auto 4px;max-width:145px}.tool-button{width:36px;height:36px;border-radius:9px;font-size:18px}.boss-hud{top:calc(var(--top) + 58px);padding:7px 9px;width:min(340px,43%);border-radius:7px}.boss-hud>div:first-child{font-size:10px;gap:5px;margin-bottom:5px}.boss-hud #boss-state{font-size:8px}.boss-track{height:5px}.boss-hud #boss-hp{font-size:9px}.title-card{grid-template-columns:.8fr 1fr;width:min(790px,calc(var(--surface-width, 100vw) * .94));max-height:calc(var(--surface-height, 100dvh) - 20px);border-radius:17px;overflow:auto}.portrait-panel{min-height:215px}.title-copy{padding:17px 30px 12px 0}.title-copy .eyebrow{font-size:6px;letter-spacing:1.2px;margin-bottom:7px}.title-copy h1{margin:10px 0}.title-copy h1 span{font-size:29px;letter-spacing:-1.1px}.title-copy h1 em{font-size:63px;letter-spacing:-3px}.title-story{font-size:8px;line-height:1.55;margin:8px 0 10px}.title-skills{margin-bottom:9px;font-size:5px;gap:10px}.title-skills svg{width:14px;height:14px}.primary-button{min-height:38px;font-size:9px;padding:9px 13px;border-radius:7px}.menu-options{margin-top:7px;gap:15px}.menu-options button{font-size:7px;padding:4px}.save-note{font-size:6px;margin-top:7px}.hero-portrait{left:9%;height:98%}.character-tag{font-size:10px;left:20px;bottom:14px;letter-spacing:3px}.character-tag small{font-size:5px}.level-nav{padding:0 15px;gap:6px}.level-tab{min-height:57px;padding:8px 10px;border-radius:7px}.level-tab>span{font-size:15px;margin:0 0 4px}.level-tab strong{font-size:7px}.level-tab small{font-size:4px;margin-top:3px}.fiction-note{font-size:6px;margin:8px 10px 10px}.spark-one{font-size:25px}.compact-modal{padding:20px 25px;max-height:calc(var(--surface-height, 100dvh) - 20px);border-radius:16px}.modal-symbol{font-size:28px;margin-bottom:6px}.compact-modal h2{font-size:27px;margin:8px 0}.compact-modal .eyebrow{font-size:6px;margin-bottom:7px}.compact-modal>p:not(.eyebrow){font-size:9px;margin:10px 0}.compact-modal .primary-button{margin-top:14px}.result-stats{margin:15px 0}.result-stats strong{font-size:23px}.result-stats small{font-size:6px}.help-modal{width:min(620px,calc(var(--surface-width, 100vw) * .9));padding:15px 25px}.help-modal h2{font-size:22px}.help-grid{gap:6px;margin:12px 0}.help-grid span,.help-grid p{font-size:8px}.help-grid kbd{font-size:7px}.compact-modal .help-note{font-size:7px!important;margin:7px 0!important}.help-modal .primary-button{margin-top:10px}.joystick-axis{font-size:65px}.action-button .action-icon svg{width:25px;height:25px}.attack-button .action-icon svg{width:34px;height:34px}.action-button small{font-size:6px}.attack-button small{font-size:7px}.desktop-controls{font-size:8px}.skill-chip{padding:7px 10px 7px 7px}.skill-chip>span{font-size:8px}.skill-chip small{font-size:8px}.toast{font-size:9px;padding:8px 13px}}@media(max-height:370px)and (orientation:landscape){.title-card{grid-template-columns:.7fr 1fr}.portrait-panel{min-height:170px}.title-copy{padding:11px 25px 8px 0}.title-copy h1 span{font-size:24px}.title-copy h1 em{font-size:49px}.title-copy h1{margin:8px 0}.title-story{font-size:7px;margin:7px 0}.title-skills{display:none}.menu-options{margin-top:5px}.save-note{display:none}.level-tab{min-height:48px;padding:6px 9px}.level-tab>span{font-size:13px}.level-tab small{display:none}.fiction-note{margin:6px 10px 8px}.primary-button{min-height:34px}.boss-hud{width:42%}.boss-hud #boss-state{display:none}.show-touch .toast{bottom:10px;max-width:36%;font-size:8px}.game-tools{gap:4px}.tool-button{width:34px;height:34px}.help-grid{gap:4px}.help-modal .eyebrow{display:none}}@media(pointer:coarse){.tool-button{min-width:40px;min-height:40px}.game-shell{touch-action:none}.overlay,.title-card,.compact-modal{touch-action:pan-y}.primary-button{min-height:44px}.menu-options button,.text-button{min-height:32px}.level-tab{min-height:52px}}.show-touch .game-shell[data-orientation=portrait] .rotate-prompt{display:grid}.show-touch .game-shell[data-orientation=portrait] .game-tools{display:none}@media(max-width:650px)and (orientation:landscape){.chapter-status{min-width:150px;left:52%}.chapter-status #objective{max-width:155px;display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.chapter-status strong{font-size:9px}.hero-status{width:162px}.hero-name{font-size:7px}.avatar{width:29px}.title-card{width:calc(var(--surface-width, 100vw) * .96)}.level-tab strong{font-size:6px}.level-nav{padding:0 10px}.game-tools{gap:3px}.tool-button{width:32px}.boss-hud{width:43%;left:51%}}@media(prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}.asset-loading{position:absolute;inset:0;z-index:15;display:flex;gap:14px;align-items:center;justify-content:center;background:#171a2bea;color:#f8e3ec;font-size:14px}.asset-loading span{width:22px;height:22px;border:2px solid #f4b1d440;border-top-color:#f4b1d4;border-radius:50%;animation:load-spin .9s linear infinite}@keyframes load-spin{to{transform:rotate(360deg)}}.audio-settings{margin:12px 0;padding:10px 12px;background:#11172780;border:1px solid #ffffff1c;border-radius:10px}.audio-settings label{display:grid;grid-template-columns:42px 1fr 34px;gap:8px;align-items:center;font-size:11px;color:#e0ccdc}.audio-settings input{min-width:0;width:100%;accent-color:#f0a0ca;touch-action:pan-x}.audio-settings output{font-size:10px;font-variant-numeric:tabular-nums}.audio-settings a{display:inline-block;margin-top:6px;font-size:10px;color:#edbfd9}.show-touch .touch-controls{--cluster-size: clamp(228px,calc(var(--surface-width, 800px) * .29),270px);--touch-lift: clamp(26px,calc(var(--surface-width, 800px) * .035),42px)}.show-touch .joystick{left:calc(var(--left) + clamp(8px,calc(var(--surface-width, 800px) * .02),26px));bottom:calc(var(--bottom) + var(--touch-lift));width:clamp(116px,calc(var(--surface-width, 800px) * .15),148px);height:auto;aspect-ratio:1;background:radial-gradient(circle,#39334b55,#20284166);border:2px solid #fff2e54d}.show-touch #joystick-knob{width:38%;height:38%;left:31%;top:31%}.show-touch .joystick-axis{font-size:82px}.show-touch .action-cluster{width:var(--cluster-size);height:calc(var(--cluster-size) * .69);right:calc(var(--right) + clamp(4px,calc(var(--surface-width, 800px) * .01),16px));bottom:calc(var(--bottom) + var(--touch-lift));transform:none}.show-touch .action-button{height:auto;aspect-ratio:1;background-color:#33374b8c}.show-touch .ultimate-button{width:26%;left:0;top:0;background:#704870a0}.show-touch .thrust-button{width:26%;left:32%;top:0;background:#356c809e}.show-touch .dash-button{width:24%;right:0;top:6%}.show-touch .attack-button{width:36%;left:24%;bottom:0;background:linear-gradient(145deg,#be78999e,#894f87b8)}.show-touch .jump-button{width:29%;right:0;bottom:5%;background:#46566ca0}.show-touch .action-button small{font-size:7px}.show-touch .action-button.pressed{background:#947399e8}.action-button:active:not(:disabled){transform:none}.version-settings{margin-top:10px;display:flex;flex-wrap:wrap;justify-content:center;gap:6px 12px;font-size:10px;color:#dcc6d7}.version-settings small{width:100%;overflow-wrap:anywhere;font-variant-numeric:tabular-nums}.version-settings button,.update-notice button,.viewport-debug button{background:#503d60;color:#fff0ec;border:1px solid #ffffff4a;border-radius:7px;padding:7px 12px;min-height:36px;touch-action:manipulation}.update-notice{position:absolute;z-index:22;right:var(--right);bottom:var(--bottom);max-width:min(340px,calc(100% - var(--left) - var(--right)));background:#202136f5;border:1px solid #f3b5d480;padding:12px;border-radius:12px;font-size:12px}.update-notice p{font-size:11px;line-height:1.5}.game-shell[data-mode=playing] .update-notice{display:none}.viewport-debug{position:absolute;z-index:60;top:var(--top);left:var(--left);width:min(400px,calc(100% - var(--left) - var(--right)));max-height:calc(100% - var(--top) - var(--bottom));overflow:auto;padding:8px 10px;border:1px solid #baf9e3;border-radius:8px;background:#101c27f2;color:#ddfff4;font:11px/1.45 ui-monospace,monospace;touch-action:pan-y;overscroll-behavior:contain;user-select:text;-webkit-user-select:text}.viewport-debug summary{padding:4px 0;cursor:pointer;font-weight:700}.viewport-debug pre{white-space:pre-wrap;overflow-wrap:anywhere;margin-bottom:4px}.viewport-debug span{padding-left:8px}@media(max-height:370px)and (orientation:landscape){.boss-hud #boss-state{display:inline;font-size:6px;max-width:58%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}}
