:root{--ui-text:#f0e8d6eb;--ui-dim:#f0e8d68c;--ui-bg:#0c0a0861;--hp:#b8322a;--stamina:#c9a447;--fire:#e3672b;font-family:Iowan Old Style,Palatino Linotype,Palatino,Georgia,serif}*{box-sizing:border-box}html,body{height:100%;color:var(--ui-text);overscroll-behavior:none;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;-webkit-tap-highlight-color:transparent;touch-action:none;background:#0b0a09;margin:0;overflow:hidden}#app,#app canvas{width:100%;height:100%;display:block;position:fixed;inset:0}.hud{pointer-events:none;opacity:0;flex-direction:column;gap:7px;transition:opacity 1.2s;display:flex;position:fixed;bottom:30px;left:32px}.hud.visible{opacity:1}.hud-bar{background:var(--ui-bg);border:1px solid #f0e8d62e;width:210px;height:5px;overflow:hidden}.hud-bar>span{transform-origin:0;width:100%;height:100%;transition:transform .12s linear;display:block}.hud-bar.hp>span{background:var(--hp)}.hud-bar.stamina>span{background:var(--stamina)}.hud-bar.fire>span{background:var(--fire)}.hud-bar.fire{position:relative}.hud-bar.fire:after{content:"";top:0;bottom:0;left:var(--fireball-cost,30%);background:#f0e8d680;width:1px;position:absolute}.hud-pip{vertical-align:1px;background:var(--fire);opacity:.22;border-radius:50%;width:5px;height:5px;margin-left:8px;transition:opacity .2s,box-shadow .2s;display:inline-block}.hud-pip.ready{opacity:1;box-shadow:0 0 6px var(--fire)}.hud-label{letter-spacing:.22em;text-transform:uppercase;color:var(--ui-dim);margin-bottom:-3px;font-size:10px}.hud-progress,.hud-score{letter-spacing:.12em;text-transform:uppercase;color:var(--ui-dim);text-shadow:0 1px 5px #000000b3;font-size:10px}.hud-progress{color:var(--ui-text);margin-top:8px}.hud-score{color:var(--stamina)}.hud-message{letter-spacing:.18em;text-transform:uppercase;color:var(--ui-text);text-shadow:0 1px 6px #000000b3;opacity:0;pointer-events:none;font-size:15px;transition:opacity .5s;position:fixed;top:22%;left:50%;transform:translate(-50%)}.hud-message.visible{opacity:1}.hud-reticle{pointer-events:none;opacity:0;background:#f0e8d673;border-radius:50%;width:4px;height:4px;margin:-2px 0 0 -2px;transition:opacity .6s;position:fixed;top:50%;left:50%}.hud-reticle.visible{opacity:1}.damage-flash{pointer-events:none;opacity:0;background:radial-gradient(#0000 55%,#780a008c 100%);transition:opacity .35s;position:fixed;inset:0}.overlay{z-index:20;cursor:pointer;text-align:center;background:linear-gradient(#08060400 45%,#080604bf);flex-direction:column;justify-content:flex-end;align-items:center;gap:14px;padding-bottom:12vh;transition:opacity 1s;display:flex;position:fixed;inset:0}.overlay.loading{cursor:default;background:#0b0a09;justify-content:center;padding-bottom:0}.overlay.hidden{opacity:0;pointer-events:none}.overlay h1{letter-spacing:.32em;text-transform:uppercase;text-shadow:0 2px 18px #0009;margin:0;font-size:clamp(30px,5vw,58px);font-weight:400}.overlay p{color:var(--ui-dim);letter-spacing:.16em;text-transform:uppercase;margin:0;font-size:13px}.overlay .controls{color:var(--ui-dim);letter-spacing:.08em;grid-template-columns:repeat(4,auto);gap:6px 22px;margin-top:10px;font-size:12px;display:grid}.overlay .controls b{color:var(--ui-text);font-weight:400}.overlay .error{color:#e08a7a;text-transform:none;letter-spacing:.02em;max-width:640px}.debug-panel{color:#d8f0d0;white-space:pre;pointer-events:none;background:#0000009e;border-left:2px solid #5a8f4e;min-width:230px;padding:10px 12px;font:11px/1.55 ui-monospace,SFMono-Regular,Menlo,monospace;position:fixed;top:12px;right:12px}.debug-panel.hidden{display:none}@media (max-width:640px){.hud{bottom:18px;left:16px}.hud-bar{width:150px}.overlay .controls{grid-template-columns:repeat(2,auto)}}body.touch .hud{top:max(14px, env(safe-area-inset-top));bottom:auto;left:max(16px, env(safe-area-inset-left))}body.touch .hud-bar{width:min(170px,28vw)}body.touch .hud-message{text-align:center;width:90vw;font-size:13px;top:16%}body.touch .overlay{padding-bottom:max(8vh, env(safe-area-inset-bottom))}body.touch .overlay .controls{grid-template-columns:repeat(2,auto);font-size:12px}.touch-layer{z-index:10;touch-action:none;pointer-events:none;opacity:0;transition:opacity .6s;position:fixed;inset:0}.touch-layer.visible{pointer-events:auto;opacity:1}.touch-stick{opacity:0;pointer-events:none;background:radial-gradient(circle,#0c0a0826,#0c0a0866);border:1px solid #f0e8d647;border-radius:50%;width:124px;height:124px;margin:-62px 0 0 -62px;transition:opacity .15s;position:absolute;top:0;left:0}.touch-stick.active{opacity:1}.touch-stick-knob{background:#f0e8d659;border:1px solid #f0e8d699;border-radius:50%;width:52px;height:52px;margin:-26px 0 0 -26px;position:absolute;top:50%;left:50%}.touch-btn{color:var(--ui-text);font:inherit;letter-spacing:.16em;text-transform:uppercase;touch-action:none;-webkit-user-select:none;user-select:none;-webkit-backdrop-filter:blur(3px);background:#0c0a086b;border:1px solid #e8c47873;border-radius:50%;justify-content:center;align-items:center;padding:0;font-size:11px;display:flex;position:absolute}.touch-btn.active{background:#e8c47852;border-color:#ffdc96e6}.touch-btn svg{width:22px;height:22px;fill:var(--ui-text);stroke:var(--ui-text)}.touch-btn.sound.off svg .wave{display:none}.touch-btn.sound.off{opacity:.55}.touch-btn.fire{width:92px;height:92px;right:max(22px, env(safe-area-inset-right));bottom:max(22px, env(safe-area-inset-bottom));background:radial-gradient(circle,#e3672b47,#0c0a0873);border-color:#e3672bbf;font-size:12px}.touch-btn.fire.active{background:radial-gradient(circle,#ff8c3c99,#a0320a80)}.touch-btn.fireball{width:60px;height:60px;right:calc(max(22px, env(safe-area-inset-right)) + 60px);bottom:calc(max(22px, env(safe-area-inset-bottom)) + 184px);background:radial-gradient(circle,#e3672b38,#0c0a0873);border-color:#e3672bbf;font-size:10px;transition:opacity .2s}.touch-btn.fireball.active{background:radial-gradient(circle,#ff8c3c99,#a0320a80)}.touch-btn.fireball.cooling{opacity:.4}.touch-btn.flap{width:70px;height:70px;right:calc(max(22px, env(safe-area-inset-right)) + 108px);bottom:max(18px, env(safe-area-inset-bottom))}.touch-btn.boost{width:60px;height:60px;right:calc(max(22px, env(safe-area-inset-right)) + 16px);bottom:calc(max(22px, env(safe-area-inset-bottom)) + 108px)}.touch-btn.land{width:52px;height:52px;right:calc(max(22px, env(safe-area-inset-right)) + 96px);bottom:calc(max(22px, env(safe-area-inset-bottom)) + 92px);font-size:9px}.touch-btn.small{width:42px;height:42px;top:max(12px, env(safe-area-inset-top));border-color:#f0e8d64d}.touch-btn.pause{right:max(16px, env(safe-area-inset-right))}.touch-btn.sound{right:calc(max(16px, env(safe-area-inset-right)) + 54px)}@media (min-width:900px) and (min-height:600px){.touch-btn.fire{width:108px;height:108px}.touch-btn.flap{width:80px;height:80px;right:calc(max(26px, env(safe-area-inset-right)) + 124px)}.touch-btn.boost{bottom:calc(max(22px, env(safe-area-inset-bottom)) + 124px)}.touch-btn.land{right:calc(max(22px, env(safe-area-inset-right)) + 112px);bottom:calc(max(22px, env(safe-area-inset-bottom)) + 108px)}.touch-btn.fireball{width:64px;height:64px;right:calc(max(22px, env(safe-area-inset-right)) + 76px);bottom:calc(max(22px, env(safe-area-inset-bottom)) + 186px)}}.rotate-hint{display:none}@media (orientation:portrait) and (max-width:600px) and (pointer:coarse){.rotate-hint{z-index:30;color:var(--ui-dim);letter-spacing:.16em;text-transform:uppercase;text-align:center;background:#0b0a09;flex-direction:column;justify-content:center;align-items:center;gap:18px;padding:0 32px;font-size:13px;display:flex;position:fixed;inset:0}.rotate-hint svg{fill:none;width:64px;height:64px;stroke:var(--ui-text);stroke-width:1.4px;animation:2.4s ease-in-out infinite rotate-hint}}@keyframes rotate-hint{0%,30%{transform:rotate(0)}60%,to{transform:rotate(-90deg)}}.combat-hud{z-index:5;pointer-events:none;opacity:0;transition:opacity .6s;position:fixed;inset:0}.combat-hud.visible{opacity:1}.fire-marker{border:1.5px solid #ffc482b3;border-radius:50%;width:22px;height:22px;margin:-11px 0 0 -11px;transition:width .15s,height .15s,margin .15s,border-color .15s;position:absolute;top:0;left:0;box-shadow:0 0 4px #00000080}.fire-marker:after{content:"";background:#ffd296e6;border-radius:50%;width:3px;height:3px;margin:-1.5px 0 0 -1.5px;position:absolute;top:50%;left:50%}.fire-marker.out-of-range{opacity:.45;border-style:dashed}.fire-marker.locked{border:2px solid #ff7a2e;width:32px;height:32px;margin:-16px 0 0 -16px;box-shadow:0 0 8px #ff6e28b3}.threat{flex-direction:column;align-items:center;width:64px;margin:-7px 0 0 -32px;display:flex;position:absolute;top:0;left:0}.threat.hidden{display:none}.threat-icon{border:2px solid #f0e8d68c;width:14px;height:14px;transform:rotate(45deg);box-shadow:0 0 4px #0009}.threat.engaging .threat-icon{background:#e8442c4d;border-color:#e8442c;animation:.8s ease-in-out infinite threat-pulse}.threat.firing .threat-icon{background:#ff5a30;box-shadow:0 0 12px #ff5a30}.threat-label{letter-spacing:.12em;color:var(--ui-dim);text-shadow:0 1px 3px #000;white-space:nowrap;margin-top:4px;font-size:10px}.threat.engaging .threat-label{color:#f2937c}.threat-hp{background:#0c0a0899;border:1px solid #f0e8d64d;width:48px;height:6px;margin-top:5px;overflow:hidden}.threat-hp>span{transform-origin:0;background:#e0552f;height:100%;transition:transform .15s linear;display:block}.threat.wounded .threat-hp>span{background:#ffb347}.threat.edge .threat-hp{display:none}.threat-arrow{transform-origin:0;transform:rotate(var(--arrow,0deg)) translateX(13px);border-top:6px solid #0000;border-bottom:6px solid #0000;border-left:10px solid #f0e8d699;margin-top:-6px;display:none;position:absolute;top:7px;left:50%}.threat.edge .threat-arrow{display:block}.threat.edge.engaging .threat-arrow{border-left-color:#e8442c}@keyframes threat-pulse{0%,to{transform:rotate(45deg)scale(1)}50%{transform:rotate(45deg)scale(1.35)}}.hit-indicator{opacity:0;width:min(70vw,70vh);height:min(70vw,70vh);position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.hit-indicator:before{content:"";filter:drop-shadow(0 0 6px #ff2814d9);border-top:5px solid #eb2d14f2;border-radius:50% 50% 0 0/100% 100% 0 0;height:22px;position:absolute;top:0;left:28%;right:28%}
