:root{color-scheme:dark;background:#090b17;--panel:rgba(13,16,34,.92);--white:#fff;--muted:#b8c0e8;--pink:#ff5f8f;--yellow:#ffd166;--mint:#55e6bd;--blue:#70a7ff;--purple:#bd8cff}
*{box-sizing:border-box;-webkit-tap-highlight-color:transparent;-webkit-touch-callout:none;-webkit-user-select:none;user-select:none}
html,body{margin:0;width:100%;height:100%;overflow:hidden;background:#090b17;font-family:-apple-system,BlinkMacSystemFont,"SF Pro Display","Segoe UI",system-ui,sans-serif}
html{height:-webkit-fill-available}body{min-height:-webkit-fill-available;overscroll-behavior:none;touch-action:none}
button{font:inherit}
#gameWrap{position:fixed;inset:0;width:100%;height:100vh;height:100dvh;overflow:hidden;background:radial-gradient(circle at 50% 12%,#31386c 0,#171a38 43%,#090b17 100%)}
canvas#game{position:absolute;inset:0;width:100%;height:100%;display:block}
#hud{position:absolute;inset:0;z-index:3;pointer-events:none;color:#fff;text-shadow:0 2px 8px #0008}.brand{position:absolute;top:max(15px,calc(env(safe-area-inset-top) + 7px));left:max(16px,calc(env(safe-area-inset-left) + 16px));font-size:11px;font-weight:900;letter-spacing:.15em;opacity:.78}#score{position:absolute;top:max(44px,calc(env(safe-area-inset-top) + 34px));left:50%;transform:translateX(-50%);font-size:55px;line-height:1;font-weight:950}#best{position:absolute;top:max(16px,calc(env(safe-area-inset-top) + 8px));right:max(16px,calc(env(safe-area-inset-right) + 16px));font-size:11px;font-weight:850;letter-spacing:.07em;opacity:.78}#rankPill{position:absolute;top:max(109px,calc(env(safe-area-inset-top) + 97px));left:50%;transform:translateX(-50%);white-space:nowrap;background:#ffffff12;border:1px solid #ffffff18;border-radius:999px;padding:7px 12px;font-size:11px;font-weight:900;letter-spacing:.08em}
.panel{position:absolute;z-index:10;left:50%;top:50%;transform:translate(-50%,-50%) scale(.96);width:min(88vw,370px);padding:28px 23px;border-radius:27px;background:var(--panel);border:1px solid #ffffff1f;box-shadow:0 24px 80px #0007;-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);color:#fff;text-align:center;opacity:0;pointer-events:none;transition:.18s ease}.panel.show{opacity:1;pointer-events:auto;transform:translate(-50%,-50%) scale(1)}.panel h1,.panel h2{margin:0 0 10px;font-size:38px;line-height:1.02}.panel p{margin:0 0 20px;color:#dce1ff;line-height:1.42}.panel small{display:block;margin-top:12px;color:#aab2dc;line-height:1.38}.heroEmoji{font-size:54px;line-height:1;margin-bottom:10px}
button{border:0;border-radius:999px;min-height:51px;padding:13px 25px;font-size:16px;font-weight:950;touch-action:manipulation}.primary{width:100%;background:#fff;color:#11142b;box-shadow:0 10px 25px #0005}.secondary{width:100%;margin-top:10px;background:#ffffff12;color:#fff;border:1px solid #ffffff20}.textBtn{width:100%;margin-top:8px;background:transparent;color:#bfc7ef;min-height:42px;font-size:13px;box-shadow:none}button:active{transform:scale(.98)}
.touchZone{position:absolute;z-index:2;bottom:0;width:50%;height:74%;touch-action:none}.touchZone.disabled{pointer-events:none}#leftZone{left:0}#rightZone{right:0}#controlHint{position:absolute;z-index:4;left:0;right:0;bottom:max(15px,calc(env(safe-area-inset-bottom) + 7px));display:flex;justify-content:space-between;padding:0 24px;pointer-events:none;color:#ffffff99;font-size:13px;font-weight:900;letter-spacing:.06em}#controlHint span{background:#ffffff0d;border:1px solid #ffffff12;border-radius:999px;padding:8px 13px}
#achievementToast{position:absolute;z-index:8;left:50%;top:max(145px,calc(env(safe-area-inset-top) + 132px));transform:translate(-50%,-18px) scale(.96);min-width:255px;padding:12px 18px;border-radius:18px;background:#fff;color:#11142b;text-align:center;box-shadow:0 16px 40px #0007;opacity:0;pointer-events:none;transition:.25s ease}#achievementToast.show{opacity:1;transform:translate(-50%,0) scale(1)}#achievementToast .tiny{font-size:9px;font-weight:900;letter-spacing:.13em;opacity:.55}#achievementName{font-size:22px;font-weight:950;line-height:1.05;margin-top:3px}#achievementSub{font-size:12px;font-weight:800;opacity:.62;margin-top:3px}
.cameraBadge{display:inline-block;background:#ff5f8f22;color:#ff93b5;border:1px solid #ff82aa44;border-radius:999px;padding:7px 11px;font-size:11px;font-weight:950;letter-spacing:.08em;margin-bottom:13px}.gateRank{font-size:34px;font-weight:950;line-height:1;margin-bottom:10px}.photoGatePanel p{font-size:15px}
.cameraPanel{position:absolute;z-index:14;inset:0;background:#070913;display:flex;flex-direction:column;opacity:0;pointer-events:none;transition:.18s ease}.cameraPanel.show{opacity:1;pointer-events:auto}.cameraTop{height:calc(78px + env(safe-area-inset-top));padding:max(13px,env(safe-area-inset-top)) 15px 10px;display:grid;grid-template-columns:44px 1fr 44px;gap:10px;align-items:center;color:#fff;text-align:center}.cameraTop div{display:flex;flex-direction:column;gap:2px}.cameraTop b{font-size:14px;letter-spacing:.06em}.cameraTop span{font-size:11px;color:#bdc5ed;font-weight:800}.roundBtn{width:42px;height:42px;min-height:42px;padding:0;border-radius:50%;background:#ffffff12;color:#fff;border:1px solid #ffffff18;font-size:24px}.cameraStage{position:relative;flex:1;min-height:0;overflow:hidden;background:linear-gradient(145deg,#2f3666,#171a36);border-radius:26px;margin:0 12px}.cameraStage video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transform:scaleX(-1);background:#15182c}.cameraStage.rear video{transform:none}.cameraFallback{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;text-align:center;padding:30px;color:#d9def8;font-weight:850;line-height:1.5}.cameraStage.hasVideo .cameraFallback{display:none}#faceOverlay{position:absolute;inset:0;pointer-events:none;font-size:72px;text-align:center;text-shadow:0 4px 12px #0008}#countdown{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;font-size:120px;font-weight:950;color:#fff;text-shadow:0 8px 25px #000;pointer-events:none}.cameraActions{padding:17px 20px max(18px,calc(env(safe-area-inset-bottom) + 10px));text-align:center;color:#9fa9d5}.cameraActions small{display:block;margin-top:10px;font-size:10px}.shutter{width:74px;height:74px;min-height:74px;padding:0;border-radius:50%;background:#fff;border:5px solid #ffffff55;box-shadow:0 8px 25px #0007}.shutter span{display:block;width:56px;height:56px;margin:auto;border:3px solid #11142b22;border-radius:50%}
.photoResultPanel{width:min(92vw,390px);padding:20px}.photoResultPanel h2{font-size:27px;margin-bottom:12px}.photoResultPanel img{display:block;width:100%;max-height:54vh;object-fit:contain;border-radius:18px;background:#11152c;border:1px solid #ffffff18}.resultActions{margin-top:12px}
.tinyLabel{font-size:10px;font-weight:950;letter-spacing:.13em;color:#aeb7e2;margin-bottom:6px}.gameOverPanel h2{font-size:34px}.finalScore{font-size:72px;font-weight:950;line-height:1;margin:4px 0 8px}.newBest{display:none;margin:4px auto 15px;width:max-content;padding:7px 11px;border-radius:999px;background:#ffd166;color:#15162c;font-size:12px;font-weight:950}.newBest.show{display:block}.gameOverPanel p{margin-bottom:16px}
.installPanel{z-index:16}.closeBtn{position:absolute;top:10px;right:12px;width:40px;height:40px;min-width:40px;min-height:40px;padding:0;background:transparent;color:#fff;font-size:29px;box-shadow:none}.installSteps{display:grid;gap:10px;margin:4px 0 14px;text-align:left}.installSteps div{display:flex;align-items:center;gap:12px;padding:11px 13px;border-radius:15px;background:#ffffff0d;border:1px solid #ffffff12}.installSteps span{display:inline-flex;align-items:center;justify-content:center;width:34px;height:34px;border-radius:10px;background:#fff;color:#11142b;font-size:21px}
@media(min-width:800px){#gameWrap{left:50%;width:430px;transform:translateX(-50%);box-shadow:0 0 90px #000}}
