html,body{height:100%;margin:0}body{background:#0b0f1a;overflow:hidden;font-family:system-ui,sans-serif}body.cursor-hidden{cursor:none}body.cursor-hidden *{cursor:none!important}#game{display:block;width:100vw;height:100vh;outline:none;touch-action:none;-webkit-user-select:none;user-select:none;-ms-user-select:none;-moz-user-select:none;-webkit-touch-callout:none}.loading-screen{position:fixed;top:0;right:0;bottom:0;left:0;background:linear-gradient(135deg,#0b0f1a,#1a1f2e);display:flex;align-items:center;justify-content:center;z-index:9999;transition:opacity .5s ease-out}.loading-screen.hidden{opacity:0;pointer-events:none}.loading-content{text-align:center;max-width:90vw;width:400px;padding:2rem}.loading-title{color:#fff;font-size:2rem;font-weight:600;margin:0 0 2rem;text-shadow:0 2px 8px rgba(0,0,0,.5)}.loading-bar-container{width:100%;height:8px;background:#ffffff1a;border-radius:4px;overflow:hidden;margin-bottom:1rem}.loading-bar{height:100%;background:linear-gradient(90deg,#4a9eff,#7dabff);border-radius:4px;width:0%;transition:width .3s ease-out;box-shadow:0 0 10px #4a9eff80}.loading-text{color:#7dabff;font-size:1.2rem;font-weight:500;margin:0 0 .5rem}.loading-status{color:#ffffffb3;font-size:.9rem;margin:0;min-height:1.5em}@supports (height: 100svh){#game{height:100svh}}@media (hover:none) and (pointer:coarse){html,body,.controls{-webkit-user-select:none;user-select:none;-ms-user-select:none;-moz-user-select:none;-webkit-touch-callout:none}}.kbd-bar{position:fixed;top:.75rem;right:.75rem;display:flex;align-items:center;gap:.4rem;z-index:20}.kbd-toggle{display:flex;gap:.25rem}.kbd-btn{font-size:.8rem;padding:.35rem .5rem;border-radius:.5rem;border:1px solid rgba(255,255,255,.25);background:#ffffff1f;color:#fff;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}.kbd-btn[aria-pressed=true],.kbd-btn[aria-expanded=true]{background:#ffffff3d;border-color:#ffffff80}.options-wrapper{position:relative}.options-panel{position:absolute;top:calc(100% + .45rem);right:0;display:none;flex-direction:column;gap:.85rem;width:min(260px,72vw);background:#0e1320eb;border:1px solid rgba(255,255,255,.22);border-radius:.75rem;padding:.75rem .85rem;box-shadow:0 14px 32px #00000073;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);z-index:35}.options-panel.open{display:flex}.options-group{display:flex;flex-direction:column;gap:.5rem}.options-title{margin:0;font-size:.72rem;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:#ffffff9e}.option-row{display:flex;flex-direction:column;gap:.25rem;font-size:.78rem;color:#fff}.option-row label{display:flex;justify-content:space-between;align-items:center;gap:.4rem}.option-row input[type=range]{width:100%;accent-color:#7da4ff}.option-button{width:100%}.save-info{color:#fff9;font-size:.75rem;margin:.5rem 0 0;text-align:center;min-height:1em}@media (hover:none) and (pointer:coarse){.kbd-toggle{display:none}}.touch-hint{display:none}@media (hover:none) and (pointer:coarse){.touch-hint{position:fixed;inset:auto 0 2.5rem 0;display:flex;justify-content:center;z-index:15;padding-bottom:calc(env(safe-area-inset-bottom) + .25rem);pointer-events:none}.touch-hint .bubble{background:#ffffff1f;border:1px solid rgba(255,255,255,.28);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);color:#fff;padding:.6rem .8rem;border-radius:.75rem;font-size:.95rem;max-width:min(92vw,28rem);text-align:center;pointer-events:none}}.control-guides{position:fixed;left:1.1rem;bottom:2rem;max-width:18rem;padding:.6rem .85rem;border-radius:.65rem;background:#0c121ead;color:#edf6ff;font-size:.9rem;line-height:1.35;letter-spacing:.01em;box-shadow:0 10px 22px #080e1c52;opacity:0;pointer-events:none;transition:opacity .2s ease;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);z-index:18}.control-guides.visible{opacity:1}.inventory{position:fixed;top:3.25rem;left:.75rem;display:none;gap:.4rem;z-index:20;background:#00000040;padding:.3rem .4rem;border-radius:.5rem;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.inventory.visible{display:flex}.inv-item{display:flex;flex-direction:column;align-items:center;gap:.15rem}.inv-btn{width:2.2rem;height:2.2rem;border:none;border-radius:.35rem;background:#ffffff1a;padding:.15rem}.inv-btn[aria-pressed=true]{outline:2px solid rgba(255,255,255,.7);background:#ffffff2e}.inv-btn img{width:100%;height:100%;object-fit:contain;pointer-events:none}.inv-key{font-size:.6rem;color:#fff9;font-weight:600;text-align:center;min-width:1rem;padding:.1rem .2rem;border-radius:.2rem;background:#0000004d;pointer-events:none}.inventory-hint{position:fixed;top:8rem;left:.75rem;display:none;z-index:20;font-size:.7rem;color:#ffffffb3;background:#0006;padding:.3rem .5rem;border-radius:.35rem;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.inventory-hint.visible{display:block}.hint-text{white-space:nowrap}@media (hover:hover) and (pointer:fine){.inv-btn:hover{background:#fff3}}.kbd-bar{padding-top:env(safe-area-inset-top);padding-right:env(safe-area-inset-right)}.tap-overlay{display:none}@media (hover:none) and (pointer:coarse){.tap-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:30;display:flex;align-items:center;justify-content:center;color:#fff;background:#00000080;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;-webkit-tap-highlight-color:transparent;padding:0 1rem calc(env(safe-area-inset-bottom) + 2rem);text-align:center}.tap-overlay .bubble{background:#ffffff1f;border:1px solid rgba(255,255,255,.25);padding:.85rem 1.1rem;border-radius:.75rem;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);font-size:1.05rem}}.joystick{display:none}@media (hover:none) and (pointer:coarse){.joystick{position:fixed;right:calc(env(safe-area-inset-right) + 1rem);bottom:calc(env(safe-area-inset-bottom) + 1rem);width:120px;height:120px;border-radius:60px;background:#ffffff0f;border:1px solid rgba(255,255,255,.18);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);z-index:25;touch-action:none}.joystick .stick{position:absolute;left:50%;top:50%;width:54px;height:54px;border-radius:27px;transform:translate(-50%,-50%);background:#ffffff24;border:1px solid rgba(255,255,255,.28);pointer-events:none}.joystick.active{background:#ffffff1f;border-color:#ffffff47}.joystick.active .stick{background:#ffffff38;border-color:#fff6}.btn-interact{position:fixed;left:calc(env(safe-area-inset-left) + 1rem);bottom:calc(env(safe-area-inset-bottom) + 1.2rem);width:68px;height:68px;border-radius:34px;border:1px solid rgba(255,255,255,.22);background:#ffffff24;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);box-shadow:0 4px 18px #00000059;z-index:25;touch-action:manipulation}.btn-interact:after{content:"◎";color:#fff;font-size:24px}.btn-interact:active{background:#ffffff42}}.controls-overlay{position:fixed;top:0;right:0;bottom:0;left:0;display:none;align-items:center;justify-content:center;background:#060a128c;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);z-index:40}.controls-overlay.visible{display:flex}.controls-panel{background:#121826eb;border:1px solid rgba(140,200,255,.35);border-radius:16px;padding:24px 28px;min-width:260px;max-width:440px;color:#e7f6ff;box-shadow:0 18px 42px #00000073}.controls-panel h2{margin:0 0 14px;font-size:20px;font-weight:600}.controls-list{display:flex;flex-direction:column;gap:8px;font-size:14px}.controls-row{display:flex;justify-content:space-between;gap:18px}.controls-row .label{font-weight:600;color:#bcdcff}.controls-row .value{color:#f5fbff;text-align:right}.controls-hint{margin-top:16px;text-align:right;font-size:12px;color:#dcf0ffa6}.error-display{position:fixed;top:0;right:0;bottom:0;left:0;background:#000000e6;display:flex;align-items:center;justify-content:center;z-index:10000;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);transition:opacity .3s ease-out;padding:1rem}.error-display.hidden{opacity:0;pointer-events:none}.error-content{background:linear-gradient(135deg,#2a1a1f,#1a1a2e);border:2px solid rgba(255,100,100,.5);border-radius:12px;max-width:600px;width:90%;max-height:80vh;overflow-y:auto;box-shadow:0 20px 60px #ff00004d}.error-header{display:flex;align-items:center;gap:1rem;padding:1.5rem;border-bottom:1px solid rgba(255,100,100,.3)}.error-icon{font-size:2rem;animation:pulse 2s ease-in-out infinite}@keyframes pulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.7;transform:scale(1.1)}}.error-header h2{margin:0;color:#ff6b6b;font-size:1.5rem;font-weight:600}.error-body{padding:1.5rem}.error-message{color:#e0e0e0;font-size:1rem;line-height:1.6;margin:0 0 1rem}.error-details{margin-top:1rem;cursor:pointer}.error-details summary{color:#aaa;font-size:.9rem;padding:.5rem;border-radius:4px;background:#ffffff0d;-webkit-user-select:none;user-select:none;list-style-position:inside}.error-details summary:hover{background:#ffffff14}.error-stack{margin:.5rem 0 0;padding:1rem;background:#0006;border-radius:4px;color:#ccc;font-size:.85rem;font-family:Courier New,monospace;overflow-x:auto;white-space:pre-wrap;word-break:break-all}.error-actions{display:flex;gap:.75rem;padding:1.5rem;border-top:1px solid rgba(255,100,100,.3);flex-wrap:wrap}.error-btn{flex:1;min-width:120px;padding:.75rem 1.25rem;border:none;border-radius:6px;font-size:1rem;font-weight:500;cursor:pointer;transition:all .2s ease}.error-btn-primary{background:linear-gradient(135deg,#ff6b6b,#ee5a6f);color:#fff}.error-btn-primary:hover{background:linear-gradient(135deg,#ff5252,#e04a5e);transform:translateY(-1px);box-shadow:0 4px 12px #ff646466}.error-btn-secondary{background:#ffffff1a;color:#e0e0e0;border:1px solid rgba(255,255,255,.2)}.error-btn-secondary:hover{background:#ffffff26;border-color:#ffffff4d}.error-footer{padding:0 1.5rem 1.5rem;margin:0;color:#888;font-size:.85rem;text-align:center;line-height:1.4}.dev-tools{position:fixed;top:50px;left:10px;background:#000000d9;border:1px solid rgba(100,200,255,.4);border-radius:8px;padding:12px;font-family:Courier New,monospace;font-size:13px;color:#e0e0e0;min-width:280px;z-index:9998;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);box-shadow:0 4px 20px #00000080;transition:opacity .2s ease}.dev-tools.hidden{opacity:0;pointer-events:none}.dev-tools-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:10px;padding-bottom:8px;border-bottom:1px solid rgba(100,200,255,.3)}.dev-tools-title{font-weight:700;color:#64c8ff;font-size:14px}.dev-tools-hint{font-size:11px;color:#888}.dev-tools-content{display:flex;flex-direction:column;gap:6px}.dev-section{display:grid;grid-template-columns:130px 1fr;gap:8px;align-items:baseline}.dev-label{color:#aaa;font-weight:600}.dev-value{color:#4ade80;font-weight:500;word-break:break-all}#dev-fps{font-weight:700;font-size:15px}
