@font-face{font-family:GFF Latin;src:url(../fonts/GFF-Latin-CdMedium.otf) format("opentype");font-weight:500;font-style:normal;font-display:swap}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}button,input{font-family:inherit}html,body{width:100%;height:100%;overflow:hidden;background:#000;font-family:GFF Latin,Segoe UI,system-ui,-apple-system,sans-serif;touch-action:none;-webkit-tap-highlight-color:transparent;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none}img{-webkit-user-drag:none;-webkit-touch-callout:none;-webkit-user-select:none;user-select:none}#app{position:fixed;inset:0}canvas{display:block;width:100%!important;height:100%!important;cursor:grab}canvas.dragging{cursor:grabbing}#loader{position:fixed;inset:0;z-index:100;background:radial-gradient(ellipse at center,#0f0f1a,#050508);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:20px;transition:opacity .7s ease,visibility .7s ease}#loader.hidden{opacity:0;visibility:hidden;pointer-events:none}.loader-title{font-size:clamp(1.1rem,4vw,1.6rem);font-weight:800;color:#ff6b00;letter-spacing:.25em;text-transform:uppercase}.loader-subtitle{font-size:clamp(.65rem,2vw,.8rem);color:#ffffff59;letter-spacing:.15em;text-transform:uppercase}.loader-bar-wrap{width:min(220px,60vw);height:2px;background:#ffffff14;border-radius:2px;overflow:hidden}.loader-bar{height:100%;width:0%;background:linear-gradient(90deg,#ff6b00,#ffb700);border-radius:2px;transition:width .25s ease}.loader-percent{font-size:.8rem;color:#ffffff80;font-variant-numeric:tabular-nums;letter-spacing:.05em}#start-screen{position:fixed;inset:0;z-index:60;display:flex;align-items:center;justify-content:center;background:#0000008c;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);transition:opacity .4s ease,visibility .4s ease}#start-screen.hidden{opacity:0;visibility:hidden;pointer-events:none}.start-card{text-align:center;padding:40px 44px;background:linear-gradient(145deg,#12121ce6,#080810e6);border:1px solid rgba(255,107,0,.28);max-width:min(360px,88vw)}.start-title{font-size:clamp(1.4rem,6vw,2rem);font-weight:800;color:#ff6b00;letter-spacing:.18em;text-transform:uppercase;margin-bottom:10px}.start-sub{font-size:.82rem;color:#ffffff8c;letter-spacing:.04em;margin-bottom:28px;line-height:1.5}.start-btn{display:inline-flex;align-items:center;justify-content:center;padding:14px 44px;background:linear-gradient(135deg,#ff6b00,#ffb700);color:#fff;font-size:.95rem;font-weight:800;letter-spacing:.12em;text-transform:uppercase;border:none;cursor:pointer;box-shadow:0 6px 22px #ff6b0066;transition:transform .18s ease,box-shadow .18s ease}.start-btn:hover{transform:translateY(-2px);box-shadow:0 10px 30px #ff6b008c}.start-btn:active{transform:translateY(0)}#hud{position:fixed;inset:0;pointer-events:none;z-index:10}.hud-top-left{position:absolute;top:max(16px,env(safe-area-inset-top,16px));left:max(16px,env(safe-area-inset-left,16px));pointer-events:none}.hud-counter{display:flex;align-items:center;gap:7px;padding:9px 16px;border:1px solid rgba(255,255,255,.18);border-radius:0;background:#00000080;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);transition:border-color .3s ease,background .3s ease}.hud-counter.has-capture{border-color:#ff6b0080;background:#ff6b0026}.counter-icon{font-size:.65rem;color:#ffffff80}.counter-text{font-size:.8rem;font-weight:700;color:#ffffffd9;letter-spacing:.08em;font-variant-numeric:tabular-nums}.hud-top-right{position:absolute;top:max(16px,env(safe-area-inset-top,16px));right:max(16px,env(safe-area-inset-right,16px));display:flex;flex-direction:column;gap:10px;pointer-events:all}.hud-btn{display:flex;align-items:center;justify-content:center;gap:6px;padding:9px 16px;border:1px solid rgba(255,255,255,.18);border-radius:0;background:#00000080;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);color:#fffc;font-size:.72rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;cursor:pointer;transition:background .2s ease,border-color .2s ease,color .2s ease;user-select:none;white-space:nowrap;min-width:80px;-webkit-user-select:none}.hud-btn:active{background:#ff6b0040;border-color:#ff6b0080}.hud-btn.active{background:#ff6b0033;border-color:#ff6b008c;color:#ffb700}.hud-crosshair{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:80px;height:80px;pointer-events:none}.hud-crosshair img{width:100%;height:100%;object-fit:contain;filter:drop-shadow(0 0 6px rgba(255,140,0,.9)) drop-shadow(0 0 4px rgba(255,110,0,.6)) drop-shadow(0 0 1.5px rgba(0,0,0,.6));opacity:.95}.hud-hint{position:absolute;bottom:calc(120px + env(safe-area-inset-bottom,0px));left:50%;transform:translate(-50%);background:#0000008c;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);border:1px solid rgba(255,255,255,.1);border-radius:0;padding:9px 20px;font-size:.72rem;color:#ffffff8c;letter-spacing:.08em;white-space:nowrap;text-transform:uppercase;transition:opacity .6s ease;pointer-events:none}.hud-hint.fade{opacity:0}.hud-fire-btn{position:absolute;bottom:max(24px,env(safe-area-inset-bottom,24px));left:50%;transform:translate(-50%);width:95px;height:95px;border:none;background:none;padding:0;cursor:pointer;pointer-events:all;touch-action:none;transition:transform .08s ease,opacity .12s ease}.hud-fire-btn img{width:100%;height:100%;object-fit:contain;opacity:.78;filter:drop-shadow(0 2px 6px rgba(0,0,0,.45));-webkit-user-select:none;user-select:none;pointer-events:none}.hud-fire-btn:active{transform:translate(-50%) scale(.9)}.hud-fire-ring{position:absolute;left:50%;bottom:calc(max(24px,env(safe-area-inset-bottom,24px)) + 47.5px);width:120px;height:120px;transform:translate(-50%,50%);border-radius:50%;background:#00000059;opacity:.35;pointer-events:none;transition:opacity .18s ease}.hud-fire-ring.active{opacity:.6}.hud-fire-btn:active img{opacity:1}.hud-crosshair.fire img{animation:crosshairFire .18s ease-out}@keyframes crosshairFire{0%{transform:scale(1);opacity:.9}40%{transform:scale(1.1);opacity:1}to{transform:scale(1);opacity:.9}}.hud-hitmarker{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:34px;height:34px;pointer-events:none}.hud-hitmarker svg{width:100%;height:100%;opacity:0;filter:drop-shadow(0 0 2px rgba(0,0,0,.7))}.hud-hitmarker.show svg{animation:hitmarkerPop .28s ease-out}@keyframes hitmarkerPop{0%{transform:scale(1.6);opacity:1}to{transform:scale(1);opacity:0}}#success-modal{position:fixed;inset:0;z-index:50;display:flex;align-items:center;justify-content:center;opacity:0;visibility:hidden;transition:opacity .45s ease,visibility .45s ease}#success-modal.visible{opacity:1;visibility:visible}.modal-backdrop{position:absolute;inset:0;background:#000000bf;backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px)}.modal-card{position:relative;background:linear-gradient(145deg,#12121cf7,#080810f7);border:1px solid rgba(255,107,0,.28);border-radius:0;padding:44px 52px;text-align:center;transform:scale(.82) translateY(12px);transition:transform .5s cubic-bezier(.34,1.56,.64,1);min-width:280px;max-width:min(340px,88vw);box-shadow:0 0 60px #ff6b001f,0 24px 48px #0009}#success-modal.visible .modal-card{transform:scale(1) translateY(0)}.modal-icon{font-size:3.2rem;margin-bottom:18px;animation:iconPop .6s cubic-bezier(.34,1.56,.64,1) both;animation-delay:.1s}@keyframes iconPop{0%{transform:scale(0);opacity:0}to{transform:scale(1);opacity:1}}.modal-title{font-size:clamp(1.2rem,5vw,1.5rem);font-weight:800;color:#fff;margin-bottom:6px;letter-spacing:.04em}.modal-subtitle{font-size:.8rem;color:#ffffff6b;margin-bottom:30px;letter-spacing:.06em}.modal-replay-btn{display:inline-flex;align-items:center;gap:8px;padding:13px 36px;background:linear-gradient(135deg,#ff6b00,#ffb700);color:#fff;font-size:.85rem;font-weight:800;letter-spacing:.1em;text-transform:uppercase;border:none;border-radius:0;cursor:pointer;transition:transform .2s ease,box-shadow .2s ease;box-shadow:0 6px 20px #ff6b0059}.modal-replay-btn:hover{transform:translateY(-2px);box-shadow:0 10px 28px #ff6b0080}.modal-replay-btn:active{transform:translateY(0);box-shadow:0 4px 12px #ff6b004d}
