*{box-sizing:border-box;margin:0;padding:0}html,body{height:100%;background:#000;color:#fff;font-family:-apple-system,BlinkMacSystemFont,PingFang SC,Helvetica Neue,sans-serif;overflow:hidden;-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent}#stage{position:fixed;inset:0;overflow:hidden;background:#000;display:flex;flex-direction:column}#top{flex:none;padding:calc(env(safe-area-inset-top,0px) + 8px) 12px 8px}#vf-wrap{flex:1 1 auto;min-height:0;display:flex;align-items:center;justify-content:center}#viewfinder{position:relative;overflow:hidden;background:#111}#bottom{flex:none;padding:8px 8px calc(env(safe-area-inset-bottom,0px) + 10px);display:flex;flex-direction:column;gap:8px}#video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}#grid{position:absolute;inset:0;pointer-events:none}#grid i{position:absolute;background:#ffffff73}#grid .v{top:0;bottom:0;width:1px}#grid .h{left:0;right:0;height:1px}#grid .v1{left:33.333%}#grid .v2{left:66.667%}#grid .h1{top:33.333%}#grid .h2{top:66.667%}.hint{padding:10px 14px;border-radius:14px;font-size:20px;font-weight:600;line-height:1.35;text-align:center;transition:background-color .2s;z-index:5}.hint--idle{background:#3c3c3cbf}.hint--bad{background:#d63031e0}.hint--good{background:#20a050e6}#start-screen{position:absolute;inset:0;z-index:20;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:20px;padding:24px;text-align:center;background:#111}#start-screen h1{font-size:32px}#start-screen p{font-size:16px;line-height:1.6;color:#ccc}#start-screen .intro{color:#fff;font-weight:600}#start-btn{font-size:22px;font-weight:600;padding:14px 56px;border:none;border-radius:999px;background:#20a050;color:#fff}#start-btn:disabled{opacity:.6}.error{color:#ff7b7b!important;white-space:pre-line}#rotate-tip{display:none;position:absolute;inset:0;z-index:30;align-items:center;justify-content:center;font-size:22px;background:#000000d9}@media(orientation:landscape)and (max-height:500px){#rotate-tip{display:flex}}#start-screen[hidden]{display:none}#guide{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}#reminder{position:absolute;top:8px;left:8px;right:8px;z-index:4;padding:6px 10px;border-radius:10px;background:#f0b414eb;color:#1a1300;font-size:15px;font-weight:600;line-height:1.35;text-align:center}#reminder[hidden]{display:none}#hold{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);z-index:5;padding:10px 22px;border-radius:14px;background:#000000bf;font-size:22px;font-weight:700}#hold[hidden]{display:none}#overlay{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}#debug-hotspot{position:absolute;top:0;right:0;width:64px;height:64px;z-index:8;touch-action:manipulation}#debug-panel{position:absolute;left:6px;right:6px;bottom:6px;max-height:62%;overflow:hidden;z-index:7;padding:8px 10px;border-radius:10px;background:#000000b3;font:11px/1.4 ui-monospace,Menlo,monospace;white-space:pre-wrap;pointer-events:none}#debug-panel[hidden]{display:none}#rec-bar{position:absolute;top:48px;right:8px;z-index:8}#rec-bar[hidden]{display:none}#rec-btn{font-size:14px;font-weight:600;padding:8px 12px;border:none;border-radius:10px;background:#000000b3;color:#fff}#rec-btn.recording{background:#d63031e6}#toolbar{display:flex;align-items:center;justify-content:space-around}#toolbar[hidden]{visibility:hidden}#shutter-btn{width:76px;height:76px;border-radius:50%;border:5px solid #fff;background:#ffffff59;touch-action:manipulation}#shutter-btn:active{background:#fffc}#shutter-btn.ready{border-color:#3ddc84}.side-btn{width:72px;height:56px;border:none;border-radius:14px;background:#00000073;color:#fff;font-size:22px;display:flex;flex-direction:column;align-items:center;justify-content:center;touch-action:manipulation}.side-btn span{font-size:11px;margin-top:2px}.side-btn--placeholder{visibility:hidden}#shutter-btn.busy{opacity:.5}#save-btn{position:relative}#save-btn .badge{position:absolute;top:-6px;right:-6px;min-width:22px;height:22px;padding:0 6px;border-radius:11px;background:#e5484d;font-size:13px;line-height:22px;font-weight:700}#save-btn.side-btn--done{background:#20a0508c}#strip{display:flex;height:66px;align-items:center;gap:8px;padding:6px 8px;border-radius:12px;background:#00000073}#strip.strip--empty{visibility:hidden}#strip-count{flex:0 0 auto;font-size:13px;font-weight:600;white-space:nowrap}#strip-list{display:flex;gap:6px;overflow-x:auto;scrollbar-width:none;-webkit-overflow-scrolling:touch}#strip-list::-webkit-scrollbar{display:none}.thumb{position:relative;flex:0 0 auto;width:40px;height:54px;padding:0;border:2px solid #fff;border-radius:6px;overflow:hidden;background:#222;touch-action:manipulation}.thumb img{width:100%;height:100%;object-fit:cover;display:block}.thumb--saved:after{content:"✓";position:absolute;right:1px;bottom:0;font-size:12px;font-weight:700;color:#3ddc84;text-shadow:0 0 2px #000}#toast{position:absolute;left:50%;top:40%;transform:translate(-50%);z-index:16;max-width:80%;padding:10px 18px;border-radius:12px;background:#000c;font-size:16px;text-align:center;pointer-events:none}#toast[hidden]{display:none}#flash{position:absolute;inset:0;background:#fff;opacity:0;pointer-events:none;z-index:9;transition:opacity .25s}#flash.on{opacity:.8;transition:none}#preview{position:absolute;inset:0;z-index:15;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;padding:calc(env(safe-area-inset-top,0px) + 16px) 16px calc(env(safe-area-inset-bottom,0px) + 16px);background:#000000eb}#preview[hidden]{display:none}#preview img{max-width:100%;max-height:70vh;border-radius:8px;-webkit-touch-callout:default}#preview p{font-size:14px;color:#bbb}.preview-actions{display:flex;gap:16px}.preview-actions button{font-size:17px;padding:12px 24px;border:none;border-radius:999px;background:#444;color:#fff}#preview-delete{background:#c0392b}#load-progress{width:240px;display:flex;flex-direction:column;align-items:center;gap:8px}#load-progress .bar{width:100%;height:6px;border-radius:3px;background:#ffffff26;overflow:hidden}#load-progress .bar i{display:block;height:100%;width:0;background:#3ddc84}#load-text{font-size:13px;color:#aaa;white-space:pre-line;text-align:center}#load-progress.done #load-text{color:#3ddc84}#load-progress.failed #load-text{color:#ff7b7b}
