:root{--bg-primary: #0b0f17;--panel-bg: rgba(15, 23, 42, .75);--panel-border: rgba(255, 255, 255, .12);--panel-backdrop: blur(16px);--accent-pink: #ff758f;--accent-blue: #38bdf8;--accent-gold: #fbbf24;--accent-green: #34d399;--text-main: #f8fafc;--text-muted: #94a3b8;--font-sans: "Plus Jakarta Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;--font-jp: "Zen Kaku Gothic New", sans-serif}*{margin:0;padding:0;box-sizing:border-box;user-select:none;-webkit-user-select:none}html,body{width:100%;height:100%;overflow:hidden;background-color:var(--bg-primary);font-family:var(--font-sans);color:var(--text-main);touch-action:none}#game-container{position:relative;width:100vw;height:100vh;width:100dvw;height:100dvh;overflow:hidden;background-color:var(--bg-primary)}#game-container:fullscreen,#game-container:-webkit-full-screen,#game-container:-moz-full-screen,#game-container:-ms-fullscreen{width:100vw;height:100vh;width:100%;height:100%;max-width:100%;max-height:100%;overflow:hidden;background-color:var(--bg-primary)}#webgl-canvas{position:absolute;top:0;left:0;width:100%;height:100%;display:block;z-index:1;outline:none}#ui-root{position:absolute;top:0;left:0;width:100%;height:100%;pointer-events:none;z-index:10}.screen-layer{position:absolute;top:0;left:0;width:100%;height:100%;display:flex;flex-direction:column;transition:opacity .5s cubic-bezier(.16,1,.3,1),transform .5s cubic-bezier(.16,1,.3,1)}.title-screen{justify-content:center;align-items:center;background:radial-gradient(circle at 50% 50%,#0f172a40,#0b0f17bf);pointer-events:auto;z-index:100}.title-backdrop-gradient{position:absolute;bottom:0;left:0;width:100%;height:45%;background:linear-gradient(to top,rgba(11,15,23,.85),transparent);pointer-events:none}.title-content{position:relative;display:flex;flex-direction:column;align-items:center;text-align:center;z-index:2;gap:2.2rem;max-width:600px}.title-identity{display:flex;flex-direction:column;align-items:center;gap:.4rem}.title-kanji{font-family:var(--font-jp);font-weight:900;font-size:clamp(3.8rem,8vw,6.2rem);letter-spacing:.18em;color:var(--accent-pink);text-shadow:0 0 35px rgba(255,117,143,.45);animation:title-fade-in 1.2s cubic-bezier(.16,1,.3,1) forwards}.title-romaji{font-size:clamp(1.4rem,2.6vw,2rem);font-weight:800;letter-spacing:.35em;color:#fff;text-transform:uppercase;margin-top:-.4rem;animation:title-fade-in 1.4s cubic-bezier(.16,1,.3,1) forwards}.title-subtitle{font-size:clamp(.9rem,1.4vw,1.1rem);font-weight:400;color:var(--text-muted);letter-spacing:.08em;animation:title-fade-in 1.6s cubic-bezier(.16,1,.3,1) forwards}@keyframes title-fade-in{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}.title-menu{display:flex;flex-direction:column;align-items:center;gap:1.2rem;animation:title-fade-in 1.8s cubic-bezier(.16,1,.3,1) forwards}.btn-primary{position:relative;z-index:10;background:linear-gradient(135deg,#ff758ff2,#f43f5ee6);color:#fff;border:1px solid rgba(255,255,255,.3);padding:.85rem 3.2rem;border-radius:9999px;cursor:pointer;display:flex;flex-direction:column;align-items:center;box-shadow:0 8px 25px #ff758f59;transition:all .25s cubic-bezier(.16,1,.3,1);pointer-events:auto;user-select:none;-webkit-user-select:none;touch-action:manipulation;outline:none}.btn-primary:focus-visible{outline:2px solid #ffffff;outline-offset:4px}.btn-primary:hover{transform:translateY(-2px) scale(1.02);box-shadow:0 12px 32px #ff758f80;background:linear-gradient(135deg,#ff758f,#f43f5e)}.btn-primary:active{transform:translateY(0) scale(.98);box-shadow:0 4px 16px #ff758f66}.btn-primary *{pointer-events:none}.btn-text{font-size:1.05rem;font-weight:700;letter-spacing:.18em;pointer-events:none}.btn-subtext{font-size:.65rem;font-family:var(--font-jp);opacity:.85;letter-spacing:.1em;pointer-events:none}.title-secondary-actions{display:flex;align-items:center;gap:.9rem}.btn-secondary{background:transparent;border:none;color:var(--text-muted);font-size:.85rem;font-weight:500;cursor:pointer;padding:.3rem .6rem;border-radius:6px;transition:all .2s ease}.btn-secondary:hover{color:#fff;background:#ffffff14}.action-divider{color:#fff3;font-size:.8rem}.title-footer-hint{font-size:.72rem;color:#fff6;letter-spacing:.08em;animation:title-fade-in 2s cubic-bezier(.16,1,.3,1) forwards}.loading-screen{justify-content:center;align-items:center;background:#0b0f17f2;backdrop-filter:blur(24px);-webkit-backdrop-filter:blur(24px);z-index:30;pointer-events:auto}.loading-content{display:flex;flex-direction:column;align-items:center;gap:2rem;width:min(340px,85vw)}.loading-brand{display:flex;align-items:baseline;gap:.6rem}.loading-kanji{font-family:var(--font-jp);font-size:1.8rem;font-weight:900;color:var(--accent-pink)}.loading-en{font-size:1.1rem;font-weight:700;letter-spacing:.15em;color:#fff}.loading-indicator-area{display:flex;flex-direction:column;align-items:center;gap:.8rem;width:100%}.loading-track{width:100%;height:3px;background:#ffffff1f;border-radius:9999px;overflow:hidden}.loading-fill{height:100%;background:linear-gradient(90deg,var(--accent-pink),var(--accent-blue));border-radius:9999px;transition:width .25s ease}.loading-stage{font-size:.72rem;font-weight:600;letter-spacing:.12em;color:var(--text-muted)}.gameplay-hud{justify-content:space-between;padding:1.25rem 1.5rem;pointer-events:none}.hud-top-left{position:absolute;top:1.25rem;left:1.5rem;display:flex;align-items:flex-start;gap:.75rem;z-index:25}.minimap-wrapper{position:relative;width:84px;height:84px;border-radius:50%;background:#0f172abf;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border:1.5px solid rgba(255,255,255,.16);box-shadow:0 6px 20px #00000059;overflow:hidden;display:flex;align-items:center;justify-content:center;cursor:pointer;pointer-events:auto;user-select:none;-webkit-user-select:none;touch-action:manipulation;transition:width .3s cubic-bezier(.16,1,.3,1),height .3s cubic-bezier(.16,1,.3,1),border-radius .3s cubic-bezier(.16,1,.3,1),box-shadow .3s cubic-bezier(.16,1,.3,1),border-color .2s ease,transform .2s ease}.minimap-wrapper:hover{border-color:#38bdf88c;box-shadow:0 8px 25px #38bdf840;transform:scale(1.03)}.minimap-wrapper:active{transform:scale(.98)}.minimap-wrapper.expanded{width:min(280px,85vw);height:min(280px,55vh);border-radius:20px;background:#0b0f17f0;backdrop-filter:blur(24px);-webkit-backdrop-filter:blur(24px);border:1.5px solid rgba(255,255,255,.24);box-shadow:0 16px 40px #000000a6,0 0 0 1px #ffffff14;transform:none}#minimap-canvas{width:100%;height:100%;display:block}.minimap-toggle-hint{position:absolute;bottom:4px;right:6px;font-size:.55rem;font-weight:700;color:#ffffffa6;background:#0f172abf;padding:.08rem .28rem;border-radius:4px;border:1px solid rgba(255,255,255,.12);pointer-events:none;letter-spacing:.05em;transition:all .2s ease}.minimap-wrapper.expanded .minimap-toggle-hint{top:8px;right:10px;bottom:auto;font-size:.58rem;color:#ffffffe6;background:#ffffff1f}.district-badge{display:flex;align-items:center;gap:.4rem;background:#0f172a59;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);border:1px solid rgba(255,255,255,.06);padding:.3rem .65rem;border-radius:9999px;box-shadow:0 2px 8px #00000026}.badge-kanji,.badge-separator{display:none}.badge-name{font-size:.75rem;color:#f1f5f9d9;font-weight:500;letter-spacing:.04em}.hud-top-right{position:absolute;top:1.25rem;right:1.5rem;display:flex;align-items:center;gap:.5rem}.hud-time-widget{display:flex;align-items:center;gap:.45rem;background:#0f172a59;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);border:1px solid rgba(255,255,255,.06);padding:.3rem .65rem;border-radius:9999px;box-shadow:0 2px 8px #00000026;pointer-events:auto}.time-icon{font-size:.75rem;opacity:.8}.time-text{font-size:.76rem;font-weight:500;color:#ffffffd9;letter-spacing:.04em}.hud-step-btn{background:transparent;border:none;color:#fff6;padding:.1rem .25rem;font-size:.68rem;cursor:pointer;transition:color .2s ease}.hud-step-btn:hover{color:#ffffffe6}.objective-card{position:absolute;bottom:1.75rem;left:1.75rem;display:flex;flex-direction:column;gap:.2rem;background:#0f172a59;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);border:1px solid rgba(255,255,255,.06);border-radius:8px;padding:.45rem .75rem;box-shadow:0 4px 12px #00000026;max-width:240px;opacity:.9;transition:opacity .35s ease,transform .35s ease}.objective-tag{font-size:.6rem;font-weight:600;letter-spacing:.12em;color:#ffffff80;text-transform:uppercase}.objective-title{font-size:.8rem;font-weight:500;color:#f8fafc;letter-spacing:.02em}.objective-desc{font-size:.7rem;color:#cbd5e1b3;display:none}.startup-control-hint{position:absolute;top:4.5rem;left:50%;transform:translate(-50%);display:flex;align-items:center;gap:.75rem;background:#0f172a73;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);border:1px solid rgba(255,255,255,.08);padding:.35rem .9rem;border-radius:9999px;box-shadow:0 4px 12px #0003;opacity:1;transition:opacity .8s ease,transform .8s ease}.hint-item{display:flex;align-items:center;gap:.3rem;font-size:.68rem;color:#e2e8f0bf;font-weight:500}.key-pill{background:#ffffff1f;color:#ffffffe6;padding:.08rem .32rem;border-radius:4px;font-size:.64rem;font-weight:600}.interaction-prompt{position:absolute;bottom:2.5rem;left:50%;transform:translate(-50%);display:flex;align-items:center;gap:.5rem;background:#0f172a8c;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);border:1px solid rgba(255,255,255,.1);padding:.35rem .85rem;border-radius:9999px;box-shadow:0 4px 14px #00000040;transition:opacity .2s ease,transform .2s ease}.prompt-key{background:#ffffff2e;color:#fff;font-weight:600;font-size:.72rem;padding:.1rem .38rem;border-radius:4px;display:flex;align-items:center;justify-content:center}.prompt-label{font-size:.78rem;font-weight:500;color:#ffffffeb;letter-spacing:.02em}.dialogue-modal{position:absolute;bottom:3.5rem;left:50%;transform:translate(-50%);width:min(600px,90vw);background:#0f172aeb;backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);border:1px solid rgba(255,255,255,.2);border-radius:20px;padding:1.25rem 1.5rem;display:flex;gap:1.2rem;align-items:flex-start;box-shadow:0 20px 50px #00000080;z-index:50;pointer-events:auto}.dialogue-avatar{width:52px;height:52px;border-radius:14px;background:linear-gradient(135deg,#ff758f33,#38bdf833);border:1px solid rgba(255,255,255,.2);display:flex;align-items:center;justify-content:center;font-size:1.6rem;flex-shrink:0}.dialogue-body{flex:1;display:flex;flex-direction:column;gap:.35rem}.dialogue-speaker{font-size:.92rem;font-weight:700;color:var(--accent-pink);font-family:var(--font-jp)}.dialogue-text{font-size:.92rem;line-height:1.55;color:#e2e8f0;min-height:2.6rem}.dialogue-footer{display:flex;justify-content:flex-end}.dialogue-hint{font-size:.7rem;color:var(--text-muted);background:#ffffff14;padding:.18rem .45rem;border-radius:6px}.pause-modal{position:absolute;top:0;left:0;width:100%;height:100%;background:#0b0f17cc;backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);display:flex;align-items:center;justify-content:center;z-index:60;pointer-events:auto}.pause-card{display:flex;flex-direction:column;align-items:center;gap:1.8rem;width:min(340px,85vw);text-align:center}.pause-header{display:flex;flex-direction:column;gap:.2rem}.pause-jp{font-family:var(--font-jp);font-size:.85rem;letter-spacing:.2em;color:var(--accent-pink)}.pause-title{font-size:2.2rem;font-weight:900;letter-spacing:.2em;color:#fff}.pause-menu-actions{display:flex;flex-direction:column;gap:.75rem;width:100%}.btn-pause{background:#ffffff14;border:1px solid rgba(255,255,255,.15);color:#fff;padding:.75rem 1rem;border-radius:12px;font-size:.9rem;font-weight:600;cursor:pointer;transition:all .2s ease}.btn-pause:hover{background:#ffffff26;transform:translateY(-1px)}.btn-pause.primary{background:linear-gradient(135deg,var(--accent-pink),#f43f5e);border-color:#ffffff40;box-shadow:0 4px 16px #ff758f4d}.btn-pause.primary:hover{box-shadow:0 6px 20px #ff758f73}.btn-pause.danger{color:#fda4af}.btn-pause.danger:hover{background:#f43f5e33;border-color:#f43f5e66}.info-modal{position:fixed;top:0;right:0;bottom:0;left:0;width:100vw;height:100vh;background:#0b0f17e0;backdrop-filter:blur(24px);-webkit-backdrop-filter:blur(24px);display:flex;align-items:center;justify-content:center;z-index:500;pointer-events:auto;padding:1.5rem}.info-card{position:relative;background:#0f172af5;backdrop-filter:blur(24px);-webkit-backdrop-filter:blur(24px);border:1px solid rgba(255,255,255,.18);border-radius:20px;padding:1.8rem 2rem;width:min(480px,92vw);max-height:85vh;display:flex;flex-direction:column;gap:1.2rem;box-shadow:0 25px 60px #000000bf;pointer-events:auto}.info-header{display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid rgba(255,255,255,.1);padding-bottom:.8rem}.info-header h3{font-size:1.25rem;font-weight:700;letter-spacing:.05em;color:#fff}.btn-close{background:#ffffff0f;border:1px solid rgba(255,255,255,.15);color:var(--text-muted);font-size:1.1rem;line-height:1;width:32px;height:32px;display:flex;align-items:center;justify-content:center;cursor:pointer;border-radius:8px;transition:all .2s ease}.btn-close:hover{color:#fff;background:#ffffff2e;border-color:#ffffff59}.info-body{overflow-y:auto;font-size:.9rem;color:#cbd5e1;line-height:1.65;display:flex;flex-direction:column;gap:1rem;padding-right:.25rem}.settings-list{display:flex;flex-direction:column;gap:.9rem}.settings-item{display:flex;flex-direction:column;gap:.25rem;background:#ffffff0a;padding:.75rem 1rem;border-radius:10px;border:1px solid rgba(255,255,255,.08)}.settings-label{font-weight:600;font-size:.92rem;color:#fff}.settings-desc{font-size:.82rem;color:var(--text-muted);line-height:1.45}.about-content{display:flex;flex-direction:column;gap:.85rem}.about-content p{margin:0;font-size:.9rem;line-height:1.6}.credits-panel{display:flex;flex-direction:column;gap:1rem}.credits-header{text-align:center;padding-bottom:.6rem;border-bottom:1px solid rgba(255,255,255,.1)}.credits-section{background:#ffffff0a;border:1px solid rgba(255,255,255,.08);border-radius:12px;padding:.95rem}.credits-link{color:#38bdf8;text-decoration:underline;font-weight:500;cursor:pointer;transition:color .15s ease,opacity .15s ease;pointer-events:auto}.credits-link:hover{color:#7dd3fc;opacity:.9}.settings-nav-bar{display:flex;flex-wrap:wrap;gap:.5rem;padding-bottom:.75rem;border-bottom:1px solid rgba(255,255,255,.08);margin-bottom:.5rem}.settings-nav-btn{background:#ffffff0f;border:1px solid rgba(255,255,255,.12);color:#cbd5e1;padding:.35rem .75rem;border-radius:8px;font-size:.8rem;font-weight:500;cursor:pointer;transition:all .15s ease}.settings-nav-btn:hover{background:#ffffff1f;color:#fff;border-color:#ffffff40}.settings-nav-btn.active{background:#38bdf826;border-color:#38bdf866;color:#38bdf8}.btn-reset-game{margin-top:.5rem;align-self:flex-start;background:#ef444429;border:1px solid rgba(239,68,68,.38);color:#fca5a5;padding:.45rem 1rem;border-radius:8px;font-size:.84rem;font-weight:600;cursor:pointer;transition:all .2s ease}.btn-reset-game:hover{background:#ef444447;border-color:#ef4444a6;color:#fff;transform:translateY(-1px)}.key-bindings-section{display:flex;flex-direction:column;gap:.6rem;border-top:1px solid rgba(255,255,255,.08);padding-top:.9rem}.key-bindings-header{display:flex;justify-content:space-between;align-items:center}.key-bindings-list{display:flex;flex-direction:column;gap:.35rem;max-height:220px;overflow-y:auto;padding-right:4px}.key-binding-row{display:flex;justify-content:space-between;align-items:center;padding:.45rem .75rem;background:#ffffff08;border-radius:6px;border:1px solid rgba(255,255,255,.06);transition:background .15s ease}.key-binding-row:hover{background:#ffffff0f}.key-action-label{font-size:.85rem;color:#e2e8f0;font-weight:500}.key-binding-controls{display:flex;align-items:center;gap:.6rem}.key-binding-badge{font-size:.8rem;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;font-weight:600;background:#38bdf81f;color:#38bdf8;padding:.15rem .55rem;border-radius:4px;border:1px solid rgba(56,189,248,.28);min-width:32px;text-align:center}.btn-change-key{padding:.3rem .65rem;font-size:.78rem;cursor:pointer}.btn-change-key.listening{background:#38bdf840!important;border-color:#38bdf8!important;color:#fff!important;animation:pulse-border 1.5s infinite}@keyframes pulse-border{0%,to{box-shadow:0 0 #38bdf866}50%{box-shadow:0 0 0 4px #38bdf826}}.confirm-modal{position:fixed;top:0;right:0;bottom:0;left:0;width:100vw;height:100vh;background:#0b0f17eb;backdrop-filter:blur(28px);-webkit-backdrop-filter:blur(28px);display:flex;align-items:center;justify-content:center;z-index:600;pointer-events:auto;padding:1.5rem}.confirm-card{background:#0f172afa;backdrop-filter:blur(24px);-webkit-backdrop-filter:blur(24px);border:1px solid rgba(255,255,255,.22);border-radius:18px;padding:1.6rem 1.8rem;width:min(400px,90vw);display:flex;flex-direction:column;gap:1rem;box-shadow:0 30px 70px #000000d9;pointer-events:auto}.confirm-header h3{margin:0;font-size:1.2rem;font-weight:700;color:#fff}.confirm-body{font-size:.88rem;color:#cbd5e1;line-height:1.5}.confirm-actions{display:flex;justify-content:flex-end;gap:.75rem;margin-top:.4rem}.btn-confirm{padding:.55rem 1.1rem;border-radius:8px;font-size:.86rem;font-weight:600;cursor:pointer;transition:all .2s ease}.btn-confirm.secondary{background:#ffffff14;border:1px solid rgba(255,255,255,.18);color:#e2e8f0}.btn-confirm.secondary:hover{background:#ffffff2e;color:#fff}.btn-confirm.danger{background:linear-gradient(135deg,#ef4444,#dc2626);border:1px solid rgba(255,255,255,.25);color:#fff;box-shadow:0 4px 14px #ef444459}.btn-confirm.danger:hover{background:linear-gradient(135deg,#f87171,#ef4444);box-shadow:0 6px 18px #ef44448c;transform:translateY(-1px)}.toast-container{position:absolute;top:5.5rem;left:1.5rem;display:flex;flex-direction:column;gap:.6rem;pointer-events:none;z-index:80}.toast{background:#0f172ae6;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);border:1px solid rgba(255,255,255,.16);border-left:4px solid var(--accent-pink);border-radius:10px;padding:.6rem 1rem;font-size:.8rem;color:#f1f5f9;box-shadow:0 4px 16px #00000059;animation:slide-in .3s cubic-bezier(.16,1,.3,1),fade-out .4s ease 2.8s forwards}@keyframes slide-in{0%{opacity:0;transform:translate(-20px)}to{opacity:1;transform:translate(0)}}@keyframes fade-out{to{opacity:0;transform:translateY(-8px)}}.orientation-screen{justify-content:center;align-items:center;background:radial-gradient(circle at 50% 40%,#0f172af5,#0b0f17fc);backdrop-filter:blur(24px);-webkit-backdrop-filter:blur(24px);z-index:99999;pointer-events:auto;padding:2rem}.orientation-content{display:flex;flex-direction:column;align-items:center;text-align:center;gap:1.4rem;max-width:380px}.orientation-kanji{font-family:var(--font-jp);font-size:3.2rem;font-weight:900;color:var(--accent-pink);text-shadow:0 0 25px rgba(255,117,143,.4)}.orientation-device-icon{position:relative;width:72px;height:72px;display:flex;align-items:center;justify-content:center}.device-rotate-svg{width:58px;height:58px;color:#38bdf8;animation:phone-turn 2.4s ease-in-out infinite}@keyframes phone-turn{0%,15%{transform:rotate(0)}50%,80%{transform:rotate(90deg)}to{transform:rotate(0)}}.orientation-title{font-size:1.25rem;font-weight:700;color:#fff;letter-spacing:.05em}.orientation-message{font-size:.92rem;line-height:1.55;color:var(--text-muted)}.orientation-action-box{display:flex;flex-direction:column;align-items:center;gap:.75rem;width:100%;margin-top:.4rem}.orientation-btn-fullscreen{width:100%;max-width:280px;padding:.85rem 1.6rem;font-size:.95rem;font-weight:700;letter-spacing:.06em;box-shadow:0 4px 20px #ff758f66;cursor:pointer;pointer-events:auto}.orientation-btn-skip{background:transparent;border:none;color:var(--text-muted);font-size:.82rem;font-family:inherit;cursor:pointer;padding:.4rem .8rem;transition:color .2s ease;text-decoration:underline;text-underline-offset:3px;pointer-events:auto}.orientation-btn-skip:hover{color:#fff}.touch-controls-root{position:absolute;top:0;left:0;width:100%;height:100%;pointer-events:none;z-index:25;user-select:none;-webkit-user-select:none;touch-action:none}.touch-joystick-zone{position:absolute;bottom:clamp(12px,3vh,24px);left:clamp(12px,4vw,36px);width:140px;height:140px;display:flex;align-items:center;justify-content:center;pointer-events:auto;touch-action:none}.joystick-base{position:relative;width:110px;height:110px;border-radius:50%;background:#0f172a73;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);border:2px solid rgba(255,255,255,.18);box-shadow:0 4px 20px #00000059;display:flex;align-items:center;justify-content:center}.joystick-knob{width:50px;height:50px;border-radius:50%;background:radial-gradient(circle at 35% 35%,#ffffffe6,#f472b6d9);border:1.5px solid rgba(255,255,255,.6);box-shadow:0 2px 10px #ff758f66;pointer-events:none;transform:translateZ(0);transition:transform .04s ease-out}.touch-look-zone{position:absolute;top:0;right:0;width:55%;height:100%;pointer-events:auto;touch-action:none;z-index:22}.touch-action-buttons{position:absolute;bottom:clamp(12px,3vh,24px);right:clamp(12px,4vw,36px);display:flex;align-items:flex-end;gap:.9rem;pointer-events:auto;z-index:26}.touch-btn{background:#0f172a8c;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border:1.5px solid rgba(255,255,255,.22);color:#fff;border-radius:50%;display:flex;flex-direction:column;align-items:center;justify-content:center;cursor:pointer;box-shadow:0 4px 16px #00000059;transition:transform .1s ease,background .15s ease,border-color .15s ease,box-shadow .15s ease;touch-action:none;-webkit-tap-highlight-color:transparent}.touch-btn-sub{font-size:.55rem;letter-spacing:.08em;opacity:.7;font-weight:700;text-transform:uppercase}.touch-btn-label{font-size:.75rem;font-weight:700;letter-spacing:.06em}.touch-btn-jump{width:68px;height:68px;background:#0f172a99}.touch-btn-interact{width:76px;height:76px;background:linear-gradient(135deg,#ff758f59,#0f172abf);border-color:#ff758f66}.touch-btn-jog{width:58px;height:58px}.touch-btn:active,.touch-btn-active{transform:scale(.9)!important;background:#ffffff40!important}.touch-btn-focused{background:linear-gradient(135deg,#ff758fd9,#f43f5ed9)!important;border-color:#fff9!important;box-shadow:0 0 20px #ff758f99!important;animation:pulse-focus 1.2s ease-in-out infinite alternate}@keyframes pulse-focus{0%{transform:scale(1)}to{transform:scale(1.06)}}.touch-btn-toggled{background:linear-gradient(135deg,#38bdf8cc,#0ea5e9cc)!important;border-color:#fff!important;box-shadow:0 0 16px #38bdf880!important}.touch-btn-pause{position:absolute;top:clamp(10px,2.5vh,18px);right:clamp(10px,3vw,24px);width:38px;height:38px;border-radius:10px;background:#0f172a73;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);border:1px solid rgba(255,255,255,.15);color:#fff;font-size:1.05rem;display:flex;align-items:center;justify-content:center;cursor:pointer;pointer-events:auto;touch-action:none;z-index:30;-webkit-tap-highlight-color:transparent}.touch-btn-pause:active{transform:scale(.92);background:#fff3}@media(max-height:560px)and (orientation:landscape),(max-width:920px)and (orientation:landscape){.gameplay-hud{padding-top:max(.6rem,env(safe-area-inset-top,.6rem));padding-bottom:max(.6rem,env(safe-area-inset-bottom,.6rem));padding-left:max(.8rem,env(safe-area-inset-left,.8rem));padding-right:max(.8rem,env(safe-area-inset-right,.8rem))}.hud-top-left{top:max(.6rem,env(safe-area-inset-top,.6rem));left:max(.8rem,env(safe-area-inset-left,.8rem));gap:.5rem}.minimap-wrapper{width:62px;height:62px}.district-badge{padding:.2rem .5rem}.badge-name{font-size:.68rem}.hud-top-right{top:max(.6rem,env(safe-area-inset-top,.6rem));right:max(3.4rem,calc(3.4rem + env(safe-area-inset-right,0px)));gap:.35rem}.hud-time-widget{padding:.2rem .5rem}.time-text{font-size:.7rem}.objective-card{top:auto;bottom:max(155px,calc(155px + env(safe-area-inset-bottom,0px)));left:max(1rem,env(safe-area-inset-left,1rem));padding:.35rem .6rem;max-width:190px}.objective-tag{font-size:.52rem}.objective-title{font-size:.72rem}.touch-joystick-zone{left:max(12px,env(safe-area-inset-left,12px));bottom:max(12px,env(safe-area-inset-bottom,12px))}.touch-action-buttons{right:max(12px,env(safe-area-inset-right,12px));bottom:max(12px,env(safe-area-inset-bottom,12px))}.touch-btn-pause{top:max(10px,env(safe-area-inset-top,10px));right:max(12px,env(safe-area-inset-right,12px))}.startup-control-hint,.interaction-prompt{display:none!important}.dialogue-modal{bottom:max(1rem,env(safe-area-inset-bottom,1rem));width:min(520px,92vw);padding:.9rem 1.1rem;border-radius:14px;gap:.9rem}.dialogue-avatar{width:44px;height:44px;font-size:1.3rem}.dialogue-speaker{font-size:.82rem}.dialogue-text{font-size:.82rem;line-height:1.4;min-height:2.2rem}}.hidden,.hidden *{pointer-events:none!important}.hidden{opacity:0!important;visibility:hidden!important;transform:scale(.96)!important}
