:root{--ui:rgba(20,20,24,.82);--fg:#fff}
*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}
html,body{margin:0;height:100%;background:#000;color:var(--fg);overflow:hidden;font:15px -apple-system,system-ui,"Segoe UI",sans-serif;overscroll-behavior:none;touch-action:manipulation}
#cam,#ov,#bg{position:fixed;inset:0;width:100%;height:100%;display:block}
#cam{object-fit:cover;background:#000}
#ov{pointer-events:none}
#bg{z-index:0}#cam{z-index:1}#ov{z-index:2}
body.replay #cam{display:none}
#flash{position:fixed;inset:0;background:#fff;opacity:0;pointer-events:none;z-index:6;transition:opacity .25s ease-out}
#flash.on{opacity:.85;transition:none}
#tag{position:fixed;z-index:3;right:calc(10px + env(safe-area-inset-right));top:calc(6px + env(safe-area-inset-top));font-size:10px;opacity:.45;letter-spacing:.06em;text-transform:uppercase;pointer-events:none}
#badge{position:fixed;z-index:4;left:50%;transform:translateX(-50%);bottom:calc(120px + env(safe-area-inset-bottom));background:var(--ui);padding:6px 12px;border-radius:16px;font-size:13px;max-width:90vw}
#land{position:fixed;z-index:9;left:0;right:0;top:50%;text-align:center;background:var(--ui);padding:10px;font-size:14px}
#done{position:fixed;z-index:4;left:50%;transform:translateX(-50%);bottom:calc(120px + env(safe-area-inset-bottom));background:var(--ui);padding:8px 16px;border-radius:18px}
button{font:inherit;color:var(--fg);border:0;cursor:pointer}
#gear{position:fixed;z-index:5;left:calc(10px + env(safe-area-inset-left));top:calc(10px + env(safe-area-inset-top));width:44px;height:44px;border-radius:22px;background:var(--ui);font-size:22px;line-height:44px;padding:0}
#shutter{position:fixed;z-index:5;left:50%;transform:translateX(-50%);bottom:calc(24px + env(safe-area-inset-bottom));width:72px;height:72px;border-radius:50%;background:rgba(255,255,255,.18);border:4px solid #fff;padding:0}
#shutter:active{background:rgba(255,255,255,.7)}
#count{position:fixed;z-index:5;left:calc(50% + 46px);bottom:calc(40px + env(safe-area-inset-bottom));min-width:28px;height:28px;border-radius:14px;background:var(--ui);text-align:center;line-height:28px;font-size:14px;padding:0 8px;pointer-events:none}
#sheet{position:fixed;inset:0;z-index:7;background:rgba(0,0,0,.35);display:flex;align-items:flex-end}
#sheet[hidden]{display:none}
#sheetBody{width:100%;max-height:70vh;overflow:auto;background:rgba(24,24,28,.96);border-radius:16px 16px 0 0;padding:8px 16px calc(12px + env(safe-area-inset-bottom))}
.row{display:flex;align-items:center;justify-content:space-between;min-height:44px;width:100%}
.row input{width:22px;height:22px}
.btn{background:#2c6df0;border-radius:10px;justify-content:center;margin:8px 0}
.info{font-size:12px;opacity:.75;padding:3px 0}
#start{position:fixed;inset:0;z-index:8;background:#000;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:14px}
#start[hidden]{display:none}
#startBtn{min-width:160px;min-height:56px;border-radius:28px;background:#2c6df0;font-size:20px;font-weight:600}
#err{color:#ff8a80;font-size:13px;max-width:85vw;text-align:center;min-height:16px}
[hidden]{display:none!important}

#load{position:fixed;z-index:4;left:50%;transform:translateX(-50%);bottom:calc(112px + env(safe-area-inset-bottom));background:var(--ui);padding:6px 12px 8px;border-radius:12px;font-size:13px;width:min(260px,80vw);text-align:center}
#loadBar{height:3px;margin-top:5px;background:rgba(255,255,255,.2);border-radius:2px;overflow:hidden}
#loadFill{display:block;height:100%;width:0;background:#2c6df0}
#fol{position:fixed;z-index:3;left:calc(10px + env(safe-area-inset-left));bottom:calc(8px + env(safe-area-inset-bottom));font-size:12px;opacity:.6;pointer-events:none}
.ta{width:100%;height:90px;font:11px monospace;background:#111;color:#ddd;border:1px solid #444;border-radius:6px;margin:4px 0}
#crash{background:var(--ui);border-radius:14px;padding:12px 16px;width:min(320px,88vw);text-align:center}
#crash p{margin:0 0 6px}
#crash .btn{width:100%;min-height:44px;display:flex;align-items:center}
