.heist-fx{position:absolute;inset:0;pointer-events:none;z-index:3;overflow:hidden;--danger:0}.heist-fx-vignette{position:absolute;inset:0;opacity:0;box-shadow:inset 0 0 60px 8px #e73e4777;pointer-events:none}.heist-fx-vignette[data-tone=success]{box-shadow:inset 0 0 100px 12px #a4f4c666}.heist-fx-vignette[data-tone=capture]{box-shadow:inset 0 0 100px 16px #ef4a5577}.heist-fx-vignette.visible{animation:heist-edge .55s ease-out both}.heist-fx-message{position:absolute;left:50%;top:23%;transform:translate(-50%,-8px);opacity:0;white-space:nowrap;font-size:clamp(18px,3vw,38px);font-weight:850;letter-spacing:.09em;color:#f5dfb0;text-shadow:0 3px 18px #000,0 0 18px #9b754d}.heist-fx-message[data-kind=warning]{color:#ff8b83}.heist-fx-message[data-kind=win]{color:#a7ffe0}.heist-fx-message[data-kind=countdown]{font-size:clamp(58px,10vw,110px)}.heist-fx-message.active{animation:heist-fx-cue .85s cubic-bezier(.16,.85,.25,1) both}.heist-fx-score{position:absolute;top:12%;right:12%;font-size:clamp(22px,3.8vw,52px);font-weight:900;color:#ffdd90;text-shadow:0 0 18px #e0b85e99,0 3px 7px #000;opacity:0}.heist-fx-score.pop{animation:heist-score .8s ease-out both}.heist-fx-bar{display:none;position:absolute;left:50%;top:61%;transform:translate(-50%);width:min(260px,35vw);height:7px;border:1px solid #f8d69a99;background:#081b20b8;box-shadow:0 0 16px #0008}.heist-fx-bar.visible{display:block}.heist-fx-bar:before{content:"";display:block;width:calc(var(--progress,0)*100%);height:100%;background:linear-gradient(90deg,#b88d4b,#ffe4a7);box-shadow:0 0 12px #e4c177}@keyframes heist-fx-cue{0%{opacity:0;transform:translate(-50%,12px) scale(.86)}20%{opacity:1;transform:translate(-50%) scale(1.02)}55%{opacity:1;transform:translate(-50%) scale(1)}to{opacity:0;transform:translate(-50%,-13px) scale(1)}}@keyframes heist-score{0%{opacity:0;transform:translateY(20px) scale(.8)}22%{opacity:1;transform:translateY(0) scale(1.15)}70%{opacity:1;transform:translateY(-5px) scale(1)}to{opacity:0;transform:translateY(-25px)}}@keyframes heist-edge{0%{opacity:0}22%{opacity:1}to{opacity:0}}@media(prefers-reduced-motion:reduce){.heist-fx-message.active{animation:none;opacity:1;transform:translate(-50%)}.heist-fx-vignette.visible{animation:none;opacity:.3}.heist-fx-score.pop{animation:none;opacity:1}}*{box-sizing:border-box}html,body,#app{margin:0;width:100%;height:100%;overflow:hidden;background:#101b20;color:#f0eadc;font:15px system-ui;touch-action:none;user-select:none;-webkit-user-select:none}button,select{font:inherit;color:inherit;background:#24383e;border:1px solid #6e8886;border-radius:5px;padding:9px 13px;cursor:pointer}button:active{background:#547675}#view{position:absolute;inset:0}canvas{display:block;width:100%;height:100%;touch-action:none}#hud{position:absolute;top:0;left:0;right:0;display:flex;justify-content:space-between;gap:10px;padding:12px 18px;background:linear-gradient(#09191edb,transparent);pointer-events:none}#hud span{font-weight:700;text-shadow:0 2px 4px #000}#actions{position:absolute;right:12px;bottom:12px;display:flex;gap:7px;align-items:end}#actions button{background:#18323ccf;min-width:65px;min-height:48px}#menu{position:absolute;inset:0;display:grid;place-items:center;background:#07141be8;z-index:5}#panel{max-width:520px;width:90%;text-align:center;padding:26px;border:1px solid #648582;background:#13242a}h1{letter-spacing:.24em;font-size:clamp(25px,5vw,50px);margin:0 0 10px}#panel p{line-height:1.7;color:#b4c8c8}#panel button{margin:5px}#cross{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);pointer-events:none;font-size:22px}#stick{position:absolute;bottom:25px;left:22px;width:120px;height:120px;border-radius:50%;border:2px solid #a5c4c488;background:#15383c77;display:none;touch-action:none}#nub{position:absolute;left:40px;top:40px;width:40px;height:40px;border-radius:50%;background:#b3d2c9a8}#tip{position:absolute;left:12px;bottom:8px;background:#10272dcc;padding:7px;pointer-events:none}#guardTools{position:absolute;right:12px;top:65px;width:180px;background:#10272de8;padding:12px;display:none}#guardTools button{width:100%;margin:3px 0}#guardTools p{font-size:12px;color:#bdd0c9}#status{position:absolute;top:50px;left:15px;color:#ffcb87}@media(pointer:coarse){#stick{display:block}#tip{display:none}#actions{bottom:20px;right:15px}#actions button{padding:9px 7px;font-size:13px}}#result[hidden]{display:none!important}#result{position:absolute;inset:0;z-index:8;display:grid;place-items:center;background:#07151bd9;-webkit-backdrop-filter:blur(7px);backdrop-filter:blur(7px)}.resultPanel{width:min(460px,92vw);padding:32px 26px;text-align:center;border:1px solid #72938a;background:#14262b;box-shadow:0 18px 90px #0008}.resultPanel h2{font-size:clamp(30px,6vw,54px);margin:10px 0 18px}.resultPanel p{font-size:17px;line-height:1.6}#resultEyebrow{letter-spacing:.22em;color:#dfc38c;font-weight:700}#resultStats{margin:22px 0;color:#bbccc6}#rematch{display:block;width:100%;background:#c7a46c;color:#172126;border:0;font-weight:800;font-size:17px;padding:15px}#backToTitle{margin-top:12px;background:transparent;border:0;color:#b8c7c4}#interaction{position:absolute;top:55%;left:50%;transform:translate(-50%);text-align:center;pointer-events:none;min-width:190px;transition:opacity .15s}#target{background:#0a1c20d9;padding:8px 13px;border-radius:4px;font-weight:700;text-shadow:0 1px 3px #000}#progress{height:5px;background:#506467a0;margin-top:4px}#progressFill{display:block;height:100%;background:#e5c278;width:0;transition:width .08s}#notice{position:absolute;left:50%;top:20%;transform:translate(-50%);color:#ffe0a1;font-weight:700;text-shadow:0 2px 5px #000;pointer-events:none}@media(pointer:coarse){#actions button{touch-action:none}#panel{max-height:90dvh;overflow:auto}.resultPanel{padding:16px 22px}.resultPanel h2{margin:4px 0;font-size:28px}}#countdown[hidden]{display:none!important}#countdown{position:absolute;inset:0;display:flex;flex-direction:column;justify-content:center;align-items:center;pointer-events:none;background:radial-gradient(ellipse at center,#071b2266,transparent 65%);text-shadow:0 5px 25px #000}#countValue{font-size:clamp(72px,14vw,160px);line-height:1;font-variant-numeric:tabular-nums;color:#efcf90;animation:countPop .65s ease-out infinite alternate}#countGoal{font-weight:800;letter-spacing:.16em;font-size:clamp(15px,2vw,25px)}@keyframes countPop{0%{transform:scale(.95);opacity:.8}to{transform:scale(1.04);opacity:1}}#flash{position:absolute;inset:0;pointer-events:none;opacity:0}#flash.pulse{animation:lootPulse .55s ease-out}@keyframes lootPulse{0%{box-shadow:inset 0 0 90px 18px #ffe6a1aa;opacity:1}to{box-shadow:inset 0 0 #ffe6a100;opacity:0}}@media(prefers-reduced-motion:reduce){#countValue,#flash.pulse{animation:none}}@media(pointer:coarse)and (orientation:landscape){#guardTools{right:max(6px,env(safe-area-inset-right));top:54px;width:min(150px,19vw);padding:7px;background:#10272dd9}#guardTools p{font-size:10px;line-height:1.2;margin:6px 0}#guardTools button{font-size:12px;padding:7px 3px;min-height:34px}#hud{padding:7px max(10px,env(safe-area-inset-right))}#status{top:36px;left:10px;font-size:12px}#countValue{font-size:clamp(50px,10vw,95px)}#countGoal{font-size:14px}#actions{bottom:max(7px,env(safe-area-inset-bottom));right:max(8px,env(safe-area-inset-right));gap:4px}#actions button{min-width:52px;min-height:42px;font-size:12px}#stick{bottom:max(12px,env(safe-area-inset-bottom));left:max(12px,env(safe-area-inset-left));width:100px;height:100px}#nub{left:30px;top:30px}#interaction{top:49%}}
