:root{font-family:system-ui,Avenir,Helvetica,Arial,sans-serif;line-height:1.5;font-weight:400;color-scheme:light dark;color:#ffffffde;background-color:#242424;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}a{font-weight:500;color:#646cff;text-decoration:inherit}a:hover{color:#535bf2}body{margin:0;display:flex;place-items:center;min-width:320px;min-height:100vh}h1{font-size:3.2em;line-height:1.1}button{border-radius:8px;border:1px solid transparent;padding:.6em 1.2em;font-size:1em;font-weight:500;font-family:inherit;background-color:#1a1a1a;cursor:pointer;transition:border-color .25s}button:hover{border-color:#646cff}button:focus,button:focus-visible{outline:4px auto -webkit-focus-ring-color}@media(prefers-color-scheme:light){:root{color:#213547;background-color:#fff}a:hover{color:#747bff}button{background-color:#f9f9f9}}html,body{margin:0;height:100%;display:flex;justify-content:center;align-items:flex-start;min-height:100vh}:root{--accent: #E17055;--success: #00B894;--warning: #FDCB6E;--bg: #FDF6F0;--card: #FFFFFF;--text: #2D3436;--text-light: #636E72;--border: #E8E0D8}*{margin:0;padding:0;box-sizing:border-box;-webkit-tap-highlight-color:transparent}body{font-family:Noto Sans TC,-apple-system,sans-serif;background:var(--bg);color:var(--text);min-height:100vh}.header{background:var(--card);padding:14px 20px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--border)}.logo{font-size:1.3rem;font-weight:600}.logo span{color:var(--accent)}.nav-tabs{display:flex;background:var(--card);border-bottom:1px solid var(--border)}.nav-tab{flex:1;padding:12px;text-align:center;font-size:.85rem;font-weight:500;color:var(--text-light);border:none;background:none;cursor:pointer;position:relative}.nav-tab.active{color:var(--accent)}.nav-tab.active:after{content:"";position:absolute;bottom:0;left:20%;right:20%;height:3px;background:var(--accent);border-radius:3px 3px 0 0}.main{padding:16px;max-width:480px;margin:0 auto}.screen{display:none}.screen.active{display:block}.camera-preview{background:var(--card);border-radius:20px;padding:16px;margin-bottom:16px;box-shadow:0 4px 20px #00000014}.preview-box{position:relative;width:100%;aspect-ratio:3/4;background:#222;border-radius:16px;overflow:hidden}.preview-video{width:100%;height:100%;object-fit:contain;background:#000;transform:scaleX(-1)}.preview-overlay{position:absolute;inset:0;display:flex;align-items:center;justify-content:center}.preview-placeholder{text-align:center;color:#fff9}.preview-placeholder-icon{font-size:3rem;margin-bottom:10px}.tap-hint{position:absolute;bottom:16px;left:50%;transform:translate(-50%);background:#000000b3;color:#fff;padding:10px 20px;border-radius:20px;font-size:.9rem}.mode-selector{display:flex;gap:10px;margin-bottom:16px}.mode-btn{flex:1;padding:14px;border:2px solid var(--border);border-radius:12px;background:var(--card);cursor:pointer;text-align:center}.mode-btn.active{border-color:var(--accent);background:#e1705514}.mode-btn-icon{font-size:1.5rem}.mode-btn-label{font-size:.8rem;font-weight:500;margin-top:4px}.start-btn{width:100%;padding:16px;background:var(--accent);color:#fff;border:none;border-radius:14px;font-size:1rem;font-weight:600;cursor:pointer}.fullscreen-camera.active{display:grid;grid-template-rows:1fr auto 1fr;height:100dvh;width:100vw}.fs-topbar{display:flex;justify-content:space-between;align-items:flex-start;padding:calc(12px + env(safe-area-inset-top)) 16px 12px}.fs-close{width:44px;height:44px;border-radius:999px;background:#ffffff2e;border:none;color:#fff;font-size:1.5rem;cursor:pointer;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.fs-mode{background:#ffffff2e;padding:8px 14px;border-radius:999px;color:#fff;font-size:.85rem;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);white-space:nowrap}.fs-status-pill{display:inline-flex;align-items:center;gap:8px;padding:10px 16px;border-radius:999px;background:#0000008c;color:#fff;font-size:.9rem;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.fs-status-pill.aligned{background:#00b894d9}.fs-stage{display:flex;align-items:center;justify-content:center}.fs-stage-inner{position:relative;width:min(100vw,75dvh);aspect-ratio:3 / 4;background:#000;overflow:hidden}.fs-video,.fs-ref-image,.fs-overlay{position:absolute;inset:0;width:100%;height:100%;transform:scaleX(-1)}.fs-video{object-fit:contain;background:#000}.fs-ref-image{object-fit:contain;opacity:.45;pointer-events:none;mix-blend-mode:screen}.fs-overlay{pointer-events:none}.fs-guide{position:absolute;inset:0;pointer-events:none;padding:min(4vw,18px);box-sizing:border-box;background:url(/mask-guide.svg) center/contain no-repeat;background-origin:content-box;background-clip:content-box}.fs-bottombar{display:flex;align-items:flex-end;justify-content:center;padding:12px 16px calc(16px + env(safe-area-inset-bottom))}.fs-bottom-grid{width:min(520px,100%);display:grid;grid-template-columns:1fr auto 1fr;grid-template-rows:auto auto;gap:10px 12px;align-items:center}.fs-bottom-hint{grid-column:2;grid-row:1;justify-self:center;text-align:center;color:#fff;background:#0000008c;padding:10px 16px;border-radius:999px;font-size:.9rem;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);max-width:min(92vw,360px)}.fs-capture-btn{grid-column:2;grid-row:2;justify-self:center;align-self:center;width:80px;height:80px;border-radius:50%;background:#fff;border:4px solid rgba(255,255,255,.3);cursor:pointer;position:relative;display:block;box-sizing:border-box}.fs-capture-btn:after{content:"";position:absolute;top:50%;left:50%;width:60px;height:60px;background:#fff;border-radius:50%;transform:translate(-50%,-50%);transition:transform .1s}.fs-debug{grid-column:1;grid-row:2;justify-self:start;align-self:end;color:#ffffffd9;font-size:12px;line-height:1.35}.fs-baseline{grid-column:3;grid-row:2;justify-self:end;align-self:end;display:flex;flex-direction:column;align-items:center;gap:6px}.fs-ref-btn{width:50px;height:50px;border-radius:50%;background:#fff3;border:none;font-size:1.5rem;cursor:pointer;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.fs-ref-btn.active{background:var(--success)}.fs-ref-label{color:#fff;font-size:.7rem}.guide-modal,.success-modal{position:fixed;inset:0;background:#000000e6;z-index:1100;display:none;align-items:center;justify-content:center;padding:20px}.guide-modal.active,.success-modal.active{display:flex}.guide-content{background:var(--card);border-radius:24px;max-width:360px;width:100%;padding:30px 24px;text-align:center}.guide-icon{font-size:4rem;margin-bottom:16px}.guide-title{font-size:1.3rem;font-weight:600;margin-bottom:8px}.guide-subtitle{color:var(--text-light);font-size:.9rem;margin-bottom:24px}.guide-steps{text-align:left;margin-bottom:24px}.guide-step{display:flex;gap:12px;padding:12px 0;border-bottom:1px solid var(--border)}.guide-step:last-child{border-bottom:none}.guide-step-num{width:28px;height:28px;background:var(--accent);color:#fff;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:.85rem;font-weight:600;flex-shrink:0}.guide-step-text{font-size:.9rem;line-height:1.5}.guide-btn{width:100%;padding:16px;background:var(--accent);color:#fff;border:none;border-radius:14px;font-size:1rem;font-weight:600;cursor:pointer}.success-content{text-align:center}.success-check{width:100px;height:100px;background:var(--success);border-radius:50%;display:flex;align-items:center;justify-content:center;margin:0 auto 20px}.success-check-icon{font-size:3rem;color:#fff}.success-text{color:#fff;font-size:1.4rem;font-weight:600;margin-bottom:16px}.success-thumb{width:120px;height:160px;border-radius:12px;overflow:hidden;margin:0 auto 24px;border:3px solid white}.success-thumb img{width:100%;height:100%;object-fit:cover}.success-btns{display:flex;gap:12px;justify-content:center}.success-btn{padding:14px 28px;border-radius:12px;font-size:.95rem;font-weight:500;cursor:pointer;border:none}.success-btn.primary{background:#fff;color:var(--text)}.success-btn.secondary{background:#fff3;color:#fff}.history-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px}.history-title{font-size:1.1rem;font-weight:600}.history-count{font-size:.85rem;color:var(--text-light)}.history-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.history-item{aspect-ratio:3/4;border-radius:12px;overflow:hidden;cursor:pointer;position:relative;background:var(--border)}.history-item img{width:100%;height:100%;object-fit:cover}.history-item-date{position:absolute;bottom:0;left:0;right:0;padding:6px;background:linear-gradient(transparent,#000000b3);color:#fff;font-size:.7rem;text-align:center}.history-item-badge{position:absolute;top:6px;left:6px;background:var(--accent);color:#fff;font-size:.6rem;padding:2px 6px;border-radius:6px}.history-item-score{position:absolute;right:6px;bottom:34px;background:#0009;color:#fff;font-size:.65rem;padding:2px 6px;border-radius:6px;z-index:3}.empty-state{text-align:center;padding:50px 20px;color:var(--text-light)}.empty-state-icon{font-size:3rem;margin-bottom:12px;opacity:.3}.compare-slots{display:flex;gap:10px;margin-bottom:16px}.compare-slot{flex:1;aspect-ratio:3/4;border-radius:14px;background:var(--card);border:2px dashed var(--border);display:flex;align-items:center;justify-content:center;flex-direction:column;cursor:pointer;position:relative;overflow:hidden}.compare-slot.filled{border:none}.compare-slot img{width:100%;height:100%;object-fit:cover}.compare-slot-label{position:absolute;top:8px;left:8px;background:#0009;color:#fff;padding:4px 10px;border-radius:10px;font-size:.7rem}.compare-slot-icon{font-size:2rem;opacity:.3;margin-bottom:6px}.compare-slot-hint{color:var(--text-light);font-size:.8rem}.slider-box{position:relative;width:100%;aspect-ratio:3/4;border-radius:16px;overflow:hidden;margin-bottom:16px;touch-action:none}.slider-img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}.slider-img.before{clip-path:inset(0 50% 0 0)}.slider-handle{position:absolute;top:0;bottom:0;left:50%;width:4px;background:#fff;transform:translate(-50%);box-shadow:0 0 10px #0000004d}.slider-handle:before{content:"";position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:32px;height:32px;background:#fff;border-radius:50%;box-shadow:0 2px 10px #0003}.slider-handle:after{content:"⟷";position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);font-size:.85rem;color:#666}.slider-label{position:absolute;top:10px;background:#0009;color:#fff;padding:4px 10px;border-radius:10px;font-size:.7rem}.slider-label.before{left:10px}.slider-label.after{right:10px}.metrics-card{background:var(--card);border-radius:14px;padding:16px;margin-bottom:12px}.metrics-title{font-size:.8rem;color:var(--text-light);margin-bottom:12px}.metrics-row{display:flex;justify-content:space-between;align-items:center;padding:10px 0;border-bottom:1px solid var(--border);font-size:.85rem}.metrics-row:last-child{border-bottom:none}.metrics-change{display:flex;align-items:center;gap:6px}.metrics-before{color:var(--text-light)}.metrics-after{font-weight:600;color:var(--success)}.metrics-diff{font-size:.75rem;padding:2px 6px;border-radius:6px}.metrics-diff.up{background:#00b89426;color:var(--success)}.metrics-diff.down{background:#e1705526;color:var(--accent)}.reset-btn{width:100%;padding:14px;background:var(--border);border:none;border-radius:12px;font-size:.9rem;cursor:pointer}.loading-overlay{position:fixed;inset:0;background:var(--bg);display:flex;flex-direction:column;align-items:center;justify-content:center;z-index:2000}.loading-overlay.hidden{display:none}.spinner{width:50px;height:50px;border:4px solid var(--border);border-top-color:var(--accent);border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.loading-text{margin-top:20px;color:var(--text-light)}#root{width:100%;max-width:520px}header,.nav-tabs,.main{width:100%}.history-item-delete{position:absolute;top:6px;right:6px;width:28px;height:28px;border-radius:999px;border:none;background:#0000008c;color:#fff;cursor:pointer;z-index:4;display:flex;align-items:center;justify-content:center;line-height:1}.history-item-delete:active{transform:scale(.96)}.fs-debug{position:absolute;left:calc(var(--vidLeft, 0px) + 12px);bottom:calc(100% - (var(--vidTop, 0px) + var(--vidH, 100%)) + 12px);padding:10px 12px;background:#0000008c;color:#fff;font-size:12px;line-height:1.35;border-radius:12px;z-index:30;pointer-events:none;max-width:calc(var(--vidW, 100%) - 24px);white-space:pre-line}@media(max-width:520px){.fs-video,.fs-ref-image{object-fit:cover}}.fs-debug{position:absolute;left:14px;bottom:calc(10px + env(safe-area-inset-bottom));color:#ffffffd9;font-size:12px;line-height:1.25;pointer-events:none;max-width:45%;text-shadow:0 1px 2px rgba(0,0,0,.55)}@media(max-width:520px){.fs-debug{font-size:11px;max-width:55%}}.fs-header{position:relative!important;background:#000!important;padding:12px 14px!important;display:flex!important;align-items:center!important;justify-content:space-between!important;gap:12px!important}.fs-top-center{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;min-width:0}.fs-status{position:relative!important;top:auto!important;left:auto!important;transform:none!important;margin:0!important}.fs-hint-top{color:#ffffffd9;font-size:12px;line-height:1.2;text-align:center;max-width:92%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.fs-controls{position:relative}.fs-debug{position:absolute;left:14px;bottom:calc(10px + env(safe-area-inset-bottom));color:#ffffffd9;font-size:12px;line-height:1.25;pointer-events:none;max-width:55%;text-shadow:0 1px 2px rgba(0,0,0,.55)}@media(max-width:520px){.fs-debug{font-size:11px;max-width:60%}}.fullscreen-camera{position:fixed;inset:0;background:#000}.fs-header,.fs-topbar{position:absolute;top:0;left:0;right:0;height:72px;padding:14px 16px;display:flex;align-items:center;justify-content:space-between;gap:12px;background:#000000e6;z-index:30}.fs-controls,.fs-bottombar{position:absolute;left:0;right:0;bottom:0;height:180px;padding:12px 16px calc(16px + env(safe-area-inset-bottom)) 16px;background:#000000eb;z-index:30}.fs-video-container{position:absolute;inset:72px 0 180px;overflow:hidden}.fs-video{width:100%;height:100%;object-fit:contain;background:#000;transform:scaleX(-1)}.fs-ref-image{opacity:.45;transform:scaleX(-1)}.fs-guide{position:absolute;inset:0;pointer-events:none;padding:min(4vw,18px);box-sizing:border-box;background:url(/mask-guide.svg) center/contain no-repeat;background-origin:content-box;background-clip:content-box}.fs-controls .fs-debug,.fs-bottombar .fs-debug{position:absolute;left:16px;bottom:calc(12px + env(safe-area-inset-bottom));max-width:48%;font-size:12px;line-height:1.35;color:#ffffffeb;pointer-events:none}.fs-header .fs-debug,.fs-topbar .fs-debug{display:none!important}.fs-controls .fs-hint,.fs-bottombar .fs-hint{position:absolute;left:50%;bottom:calc(108px + env(safe-area-inset-bottom));transform:translate(-50%);max-width:78%;text-align:center}.fs-controls .fs-capture-btn,.fs-bottombar .fs-capture-btn{position:absolute;left:50%;bottom:calc(18px + env(safe-area-inset-bottom));transform:translate(-50%)}.fs-ref-toggle{position:absolute;right:16px;bottom:calc(12px + env(safe-area-inset-bottom))}.fullscreen-camera.active{display:flex;flex-direction:column}.fs-topbar{background:#000;display:flex;align-items:center;gap:12px;padding:calc(10px + env(safe-area-inset-top)) 12px 10px;z-index:20}.fs-topbar .fs-status{position:static!important;transform:none!important;margin:0 auto}.fs-video-container{flex:1;min-height:0;background:#000}.fs-bottombar{background:#000;display:grid;grid-template-columns:1fr auto 1fr;align-items:end;gap:12px;padding:10px 12px calc(10px + env(safe-area-inset-bottom));z-index:20}.fs-bottom-center{display:flex;flex-direction:column;align-items:center;justify-content:flex-end;gap:10px}.fs-bottombar .fs-hint{position:static!important;left:auto!important;bottom:auto!important;transform:none!important;max-width:min(92vw,320px);margin:0}.fs-debug{font-size:12px;line-height:1.25;color:#ffffffd9}.fs-bottombar .fs-ref-toggle{position:static!important;right:auto!important;bottom:auto!important;justify-self:end}.fs-bottombar{grid-template-columns:minmax(150px,1fr) auto minmax(92px,1fr);align-items:center}.fs-bottom-center{justify-self:center}.fs-bottombar .fs-debug{justify-self:start;max-width:160px}.fs-bottombar .fs-ref-toggle{justify-self:end;margin-left:8px}.fs-ref-btn{width:44px;height:44px}.fs-controls{position:absolute;left:0;right:0;bottom:0;height:170px;padding:18px 18px calc(18px + env(safe-area-inset-bottom)) 18px;display:flex;align-items:flex-end;justify-content:center;background:linear-gradient(to top,rgba(0,0,0,.85),rgba(0,0,0,.35),transparent);z-index:30}.fs-capture-btn{margin-bottom:8px}.fs-debug{position:absolute;left:14px;bottom:calc(18px + env(safe-area-inset-bottom));z-index:31;max-width:170px;pointer-events:none}.fs-ref-toggle{position:absolute;right:14px;bottom:calc(18px + env(safe-area-inset-bottom));z-index:31}.fs-hint{bottom:calc(95px + env(safe-area-inset-bottom));z-index:31;max-width:92%}.fullscreen-camera{position:fixed;inset:0;background:#000;z-index:1000;display:none}.fullscreen-camera.active{--barMin: clamp(86px, 11svh, 140px);display:grid;grid-template-rows:minmax(var(--barMin),1fr) auto minmax(var(--barMin),1fr);width:100vw;height:100svh;height:100dvh}.fs-header{grid-row:1;position:relative;display:flex;align-items:flex-start;justify-content:space-between;gap:12px;padding:calc(10px + env(safe-area-inset-top)) 14px 10px;background:#000000eb;z-index:40}.fs-video-container{grid-row:2;position:relative;overflow:hidden;background:#000;justify-self:center;align-self:center;aspect-ratio:3 / 4;width:min(100vw,calc((100dvh - 2 * var(--barMin)) * .75))}.fs-video{width:100%;height:100%;object-fit:contain;object-position:center center;background:#000;transform:scaleX(-1);display:block}.fs-ref-image,.fs-overlay,.fs-guide{position:absolute;left:var(--vidLeft, 0px);top:var(--vidTop, 0px);width:var(--vidW, 100%);height:var(--vidH, 100%)}.fs-ref-image{object-fit:contain;opacity:.45;pointer-events:none;mix-blend-mode:screen;transform:scaleX(-1)}.fs-guide{pointer-events:none;padding:min(4vw,18px);box-sizing:border-box;background:url(/mask-guide.svg) center/contain no-repeat;background-origin:content-box;background-clip:content-box}.fs-video-container>.fs-hint{display:none!important}.fs-controls{grid-row:3;position:relative;background:#000000eb;padding:12px 14px calc(14px + env(safe-area-inset-bottom));z-index:50;display:grid!important;grid-template-columns:1fr auto 1fr;grid-template-rows:auto 1fr;grid-template-areas:"hint hint hint" "debug shutter baseline";align-items:center;column-gap:12px;row-gap:10px}.fs-controls .fs-hint{grid-area:hint;justify-self:center;align-self:start;background:#000000b3;color:#fff;padding:10px 18px;border-radius:20px;font-size:.9rem;text-align:center;max-width:92%;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.fs-debug{grid-area:debug;justify-self:start;align-self:end;font-size:clamp(10px,2.6vw,12px);line-height:1.25;color:#ffffffd9;pointer-events:none}.fs-controls .fs-capture-btn{grid-area:shutter;justify-self:center;align-self:end;width:clamp(64px,18vw,86px);height:clamp(64px,18vw,86px);border-radius:50%;background:#fff;border:4px solid rgba(255,255,255,.25);cursor:pointer;position:relative}.fs-controls .fs-capture-btn:after{content:"";position:absolute;top:50%;left:50%;width:calc(100% - 20px);height:calc(100% - 20px);transform:translate(-50%,-50%);border-radius:50%;background:#fff;transition:transform .1s}.fs-controls .fs-capture-btn:active:after{transform:translate(-50%,-50%) scale(.92)}.fs-controls .fs-capture-btn.aligned{border-color:var(--success)}.fs-controls .fs-ref-toggle{grid-area:baseline;justify-self:end;align-self:end}.fullscreen-camera.active{display:grid!important;height:100dvh;width:100%;grid-template-rows:minmax(140px,1fr) minmax(260px,min(calc(100dvw / .75),calc(100dvh - 280px))) minmax(140px,1fr);background:#000}.fs-topbar{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:10px;padding:calc(12px + env(safe-area-inset-top)) 16px 12px 16px;background:#000}.fs-statuspill{justify-self:center;display:inline-flex;align-items:center;gap:8px;padding:10px 16px;border-radius:999px;background:#0000008c;color:#fff;font-size:14px;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.fs-statuspill.ready{background:#00b89473}.fs-statuspill.aligned{background:#00b894d9}.fs-statusdot{width:10px;height:10px;border-radius:50%;background:#fdcb6e}.fs-statuspill.ready .fs-statusdot{background:#00b894}.fs-statuspill.aligned .fs-statusdot{background:#fff}.fs-modepill{justify-self:end;padding:8px 14px;border-radius:999px;background:#ffffff2e;color:#fff;font-size:13px;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.fs-stage-wrap{display:flex;align-items:center;justify-content:center;overflow:hidden;background:#000}.fs-stage-inner{height:100%;aspect-ratio:3 / 4;max-width:100%;position:relative;overflow:hidden;border-radius:18px;background:#000}.fs-video,.fs-ref-image,.fs-overlay,.fs-guide{position:absolute;inset:0;width:100%;height:100%}.fs-video{object-fit:cover;transform:scaleX(-1)}.fs-ref-image{object-fit:cover;transform:scaleX(-1);opacity:.45;mix-blend-mode:screen;pointer-events:none}.fs-overlay{pointer-events:none;transform:scaleX(-1)}.fs-guide{pointer-events:none;background:url(/mask-guide.svg) center/contain no-repeat;padding:min(4vw,18px);box-sizing:border-box;background-origin:content-box;background-clip:content-box}.fs-bottombar{display:grid;grid-template-columns:1fr auto 1fr;grid-template-rows:auto 1fr;grid-template-areas:"hint hint hint" "debug shutter base";gap:12px;align-items:end;padding:12px 16px calc(16px + env(safe-area-inset-bottom)) 16px;background:#000}.fs-hint{grid-area:hint;justify-self:center;align-self:start;background:#000000a6;color:#fff;padding:10px 18px;border-radius:999px;font-size:14px;max-width:92%;text-align:center;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.fs-capture-btn{grid-area:shutter;justify-self:center;align-self:center}.fs-debug{grid-area:debug;justify-self:start;align-self:end;color:#ffffffe6;font-size:12px;line-height:1.35;opacity:.95;background:#00000059;padding:10px 12px;border-radius:12px;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.fs-ref-toggle{grid-area:base;justify-self:end;align-self:end;position:static}.fullscreen-camera.active{display:grid;grid-template-rows:1fr auto 1fr;height:100svh;background:#000}.fs-topbar{display:flex;align-items:flex-start;justify-content:space-between;padding:calc(12px + env(safe-area-inset-top)) 14px 12px;color:#fff}.fs-stage{display:flex;justify-content:center;align-items:center;padding:0 10px}.fs-video-container{position:relative;width:100vw;max-width:100vw;height:min(62svh,calc(100vw * 4 / 3));background:#000;overflow:hidden}.fs-video{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;background:#000;transform:scaleX(-1)}.fs-ref-image{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;background:#000;opacity:.45;pointer-events:none;mix-blend-mode:screen;transform:scaleX(-1)}.fs-overlay{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;transform:scaleX(-1)}.fs-guide{position:absolute;inset:0;pointer-events:none;padding:min(4vw,18px);box-sizing:border-box;background:url(/mask-guide.svg) center/contain no-repeat;background-origin:content-box;background-clip:content-box}.fs-status{display:flex;align-items:center;gap:8px;padding:10px 14px;border-radius:999px;background:#0000008c;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);font-size:14px}.fs-status.aligned{background:#00b894d9}.fs-status-dot{width:10px;height:10px;border-radius:50%;background:var(--warning)}.fs-status-dot.ready{background:var(--success)}.fs-status-dot.aligned{background:#fff}.fs-bottombar{display:grid;grid-template-columns:1fr 1fr 1fr;grid-template-rows:auto 1fr auto;align-items:center;padding:14px 16px calc(14px + env(safe-area-inset-bottom));color:#fff}.fs-hintbar{grid-column:2;grid-row:1;justify-self:center;align-self:start;background:#0000008c;padding:10px 16px;border-radius:999px;font-size:14px;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);text-align:center;max-width:90%}.fs-capture-btn{grid-column:2;grid-row:2;justify-self:center;align-self:center;width:clamp(64px,9vh,80px);height:clamp(64px,9vh,80px);border-radius:50%;background:#fff;border:4px solid rgba(255,255,255,.3);cursor:pointer;position:relative}.fs-capture-btn:after{content:"";position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:70%;height:70%;background:#fff;border-radius:50%;transition:transform .1s}.fs-capture-btn:active:after{transform:translate(-50%,-50%) scale(.9)}.fs-capture-btn.aligned{border-color:var(--success)}.fs-debug{grid-column:1;grid-row:3;justify-self:start;align-self:end;font-size:12px;line-height:1.25;opacity:.9;padding-bottom:2px}.fs-baseline{grid-column:3;grid-row:3;justify-self:end;align-self:end;display:flex;flex-direction:column;align-items:center;gap:6px}.fs-ref-btn{width:52px;height:52px;border-radius:50%;background:#ffffff26;border:1px solid rgba(255,255,255,.15);font-size:22px;cursor:pointer;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.fs-ref-btn.active{background:#00b894f2}.fs-ref-label{font-size:12px;opacity:.95}@media(min-width:760px){.fs-video-container{width:min(520px,100vw);height:min(70svh,calc(min(520px,100vw) * 4 / 3))}}.fullscreen-camera.active{--barMin: clamp(110px, 14svh, 170px);display:grid!important;grid-template-rows:1fr auto 1fr!important;width:100vw;height:100svh;height:100dvh;background:#000}.fs-topbar{grid-row:1;align-self:start}.fs-bottombar{grid-row:3;align-self:end;position:relative!important;min-height:220px;padding:0 16px calc(16px + env(safe-area-inset-bottom)) 16px!important;background:#000}.fs-stage{grid-row:2;display:flex!important;align-items:center!important;justify-content:center!important;padding:0 10px}.fs-stage-inner,.fs-video-container{position:relative!important;width:min(100vw,calc((100dvh - (2 * var(--barMin))) * .75));aspect-ratio:3 / 4;max-width:100vw;max-height:calc(100dvh - (2 * var(--barMin)));margin:0 auto!important;overflow:hidden;background:#000}.fs-guide{position:absolute!important;inset:0!important;box-sizing:border-box;padding:clamp(10px,3.2vw,18px)!important;background-position:center!important;background-repeat:no-repeat!important;background-size:90% 90%!important;pointer-events:none}.fs-bottom-grid{position:relative!important;width:100%;min-height:220px}.fs-bottom-hint,.fs-hintbar{position:absolute!important;top:20px!important;left:50%!important;transform:translate(-50%)!important;max-width:88%;text-align:center;z-index:2}.fs-capture-btn{position:absolute!important;left:50%!important;top:50%!important;transform:translate(-50%,-50%)!important;z-index:2}.fs-debug{position:absolute!important;left:16px!important;bottom:calc(12px + env(safe-area-inset-bottom))!important;justify-self:auto!important;align-self:auto!important;z-index:1}.fs-baseline,.fs-ref-toggle{position:absolute!important;right:16px!important;bottom:calc(12px + env(safe-area-inset-bottom))!important;justify-self:auto!important;align-self:auto!important;z-index:1}@media(min-width:760px){.fs-stage-inner,.fs-video-container{width:min(520px,calc((100dvh - (2 * var(--barMin))) * .75))}}.fullscreen-camera.active{display:grid!important;grid-template-rows:1fr auto 1fr!important;width:100vw!important;height:100svh!important;height:100dvh!important;background:#000!important}.fs-stage{grid-row:2!important;display:flex!important;align-items:center!important;justify-content:center!important;width:100%!important;padding:0 10px!important;box-sizing:border-box!important}.fs-stage-inner,.fs-video-container{position:relative!important;width:min(100vw,calc((100dvh - 240px)*.75))!important;aspect-ratio:3 / 4!important;max-width:100vw!important;max-height:calc(100dvh - 240px)!important;margin:0 auto!important;overflow:hidden!important;background:#000!important;border-radius:0!important}.fs-video,.fs-ref-image,.fs-overlay{position:absolute!important;inset:0!important;width:100%!important;height:100%!important}.fs-guide{position:absolute!important;inset:0!important;pointer-events:none!important;box-sizing:border-box!important;padding:clamp(18px,5vw,28px)!important;background-position:center center!important;background-repeat:no-repeat!important;background-size:78% 78%!important;background-origin:content-box!important;background-clip:content-box!important}.fs-bottombar{grid-row:3!important;align-self:end!important;position:relative!important;width:100%!important;min-height:220px!important;padding:0 16px calc(16px + env(safe-area-inset-bottom)) 16px!important;box-sizing:border-box!important;background:#000!important}.fs-bottom-grid{position:relative!important;width:100%!important;min-height:220px!important}.fs-bottom-hint,.fs-hintbar{position:absolute!important;top:22px!important;left:50%!important;transform:translate(-50%)!important;width:max-content!important;max-width:88%!important;text-align:center!important;z-index:2!important}.fs-capture-btn{position:absolute!important;left:50%!important;top:50%!important;transform:translate(-50%,-50%)!important;margin:0!important;z-index:2!important}@media(min-width:760px){.fs-stage-inner,.fs-video-container{width:min(520px,calc((100dvh - 240px)*.75))!important}}.fs-bottombar{flex:1 1 0!important;min-height:220px!important;width:100%!important;box-sizing:border-box!important;background:#000!important;padding:12px 16px calc(16px + env(safe-area-inset-bottom)) 16px!important;display:flex!important;align-items:stretch!important}.fs-stage-inner,.fs-video-container{position:relative!important;width:min(100vw,calc((100dvh - 220px)*.75))!important;aspect-ratio:3 / 4!important;max-width:100vw!important;max-height:calc(100dvh - 220px)!important;margin:0 auto!important;overflow:hidden!important;background:#000!important}.fs-bottom-grid{position:relative!important;width:100%!important;height:100%!important;min-height:190px!important;display:grid!important;grid-template-columns:1fr auto 1fr!important;grid-template-rows:auto 1fr auto!important;align-items:center!important}.fs-bottom-hint,.fs-hintbar{position:static!important;grid-column:2!important;grid-row:1!important;justify-self:center!important;align-self:start!important;transform:none!important;text-align:center!important;max-width:88%!important;z-index:2!important}.fs-capture-btn{position:static!important;grid-column:2!important;grid-row:2!important;justify-self:center!important;align-self:center!important;margin:0!important;transform:none!important;z-index:2!important}.fs-capture-btn:after{top:50%!important;left:50%!important;transform:translate(-50%,-50%)!important}.fs-debug{position:static!important;grid-column:1!important;grid-row:3!important;justify-self:start!important;align-self:end!important;z-index:1!important}.fs-baseline,.fs-ref-toggle{position:static!important;grid-column:3!important;grid-row:3!important;justify-self:end!important;align-self:end!important;right:auto!important;bottom:auto!important;z-index:1!important}@media(min-width:760px){.fs-stage-inner,.fs-video-container{width:min(520px,calc((100dvh - 220px)*.75))!important}}.fullscreen-camera.active{--stageW: min(100vw, 520px);--stageH: min( calc(100dvh - 250px) , calc(var(--stageW) * 4 / 3));display:grid!important;grid-template-rows:calc((100dvh - var(--stageH)) / 2) var(--stageH) calc((100dvh - var(--stageH)) / 2)!important;width:100vw!important;height:100svh!important;height:100dvh!important;background:#000!important}.fs-topbar,.fs-header{grid-row:1!important;align-self:start!important;width:100%!important;box-sizing:border-box!important}.fs-stage{grid-row:2!important;display:flex!important;align-items:center!important;justify-content:center!important;width:100%!important;height:100%!important;min-height:0!important;padding:0 10px!important;box-sizing:border-box!important}.fs-stage-inner,.fs-video-container{position:relative!important;height:100%!important;aspect-ratio:3 / 4!important;width:auto!important;max-width:100vw!important;margin:0 auto!important;overflow:hidden!important;background:#000!important}.fs-stage .fs-hint,.fs-video-container .fs-hint{display:none!important}.fs-video{object-fit:contain!important;object-position:center center!important;background:#000!important}.fs-guide{box-sizing:border-box!important;padding:clamp(22px,6vw,34px) clamp(18px,4vw,28px) clamp(44px,10vw,64px) clamp(18px,4vw,28px)!important;background-position:center center!important;background-repeat:no-repeat!important;background-size:100% 100%!important;background-origin:content-box!important;background-clip:content-box!important;pointer-events:none!important}.fs-bottombar{grid-row:3!important;align-self:end!important;position:relative!important;width:100%!important;height:100%!important;min-height:0!important;padding:0 16px calc(16px + env(safe-area-inset-bottom)) 16px!important;box-sizing:border-box!important;background:#000!important}.fs-bottom-grid{position:relative!important;width:100%!important;height:100%!important;min-height:0!important}.fs-bottom-hint,.fs-hintbar{position:absolute!important;top:14px!important;left:50%!important;transform:translate(-50%)!important;width:max-content!important;max-width:88%!important;text-align:center!important;z-index:2!important}.fs-baseline,.fs-ref-toggle{position:absolute!important;right:16px!important;bottom:calc(12px + env(safe-area-inset-bottom))!important;z-index:1!important}@media(min-width:760px){.fs-stage-inner,.fs-video-container{height:100%!important;max-width:520px!important}}.fullscreen-camera.active{display:flex!important;flex-direction:column!important;width:100vw!important;height:100svh!important;height:100dvh!important;background:#000!important}.fs-topbar,.fs-header{flex:1 1 0!important;min-height:110px!important;width:100%!important;box-sizing:border-box!important}.fs-bottombar{flex:1 1 0!important;min-height:220px!important;width:100%!important;box-sizing:border-box!important;background:#000!important;position:relative!important;padding:0 16px calc(16px + env(safe-area-inset-bottom)) 16px!important}.fs-stage{flex:0 0 auto!important;width:100%!important;display:flex!important;align-items:center!important;justify-content:center!important;padding:0 10px!important;box-sizing:border-box!important}.fs-stage-inner,.fs-video-container{position:relative!important;width:min(100vw,calc((100dvh - 260px)*.75))!important;height:auto!important;aspect-ratio:3 / 4!important;max-width:100vw!important;max-height:calc(100dvh - 260px)!important;margin:0 auto!important;overflow:hidden!important;background:#000!important}.fs-video,.fs-ref-image,.fs-overlay,.fs-guide{position:absolute!important;inset:0!important;width:100%!important;height:100%!important}.fs-video{object-fit:cover!important;object-position:center center!important;background:#000!important}.fs-ref-image{object-fit:cover!important;object-position:center center!important;opacity:.45!important;pointer-events:none!important;mix-blend-mode:screen!important}.fs-guide{box-sizing:border-box!important;padding:clamp(28px,7vw,40px) clamp(20px,5vw,28px) clamp(58px,14vw,82px) clamp(20px,5vw,28px)!important;background-position:center center!important;background-repeat:no-repeat!important;background-size:100% 100%!important;background-origin:content-box!important;background-clip:content-box!important;pointer-events:none!important}.fs-bottom-grid{position:static!important;width:100%!important;height:100%!important;min-height:0!important}.fs-bottom-hint,.fs-hintbar{position:absolute!important;top:16px!important;left:50%!important;transform:translate(-50%)!important;width:max-content!important;max-width:88%!important;text-align:center!important;z-index:2!important}.fs-capture-btn{position:absolute!important;left:50%!important;top:50%!important;transform:translate(-50%,-50%)!important;margin:0!important;width:84px!important;height:84px!important;z-index:2!important}.fs-capture-btn:after{top:50%!important;left:50%!important;width:62px!important;height:62px!important;transform:translate(-50%,-50%)!important}.fs-debug{position:absolute!important;left:16px!important;bottom:calc(12px + env(safe-area-inset-bottom))!important;z-index:1!important}.fs-baseline,.fs-ref-toggle{position:absolute!important;right:16px!important;bottom:calc(12px + env(safe-area-inset-bottom))!important;left:auto!important;top:auto!important;transform:none!important;z-index:1!important}@media(min-width:760px){.fs-stage-inner,.fs-video-container{width:min(520px,calc((100dvh - 260px)*.75))!important}}.fs-bottombar .fs-bottom-hint,.fs-bottombar .fs-hintbar{position:absolute!important;inset:16px auto auto 50%!important;transform:translate(-50%)!important;margin:0!important;width:max-content!important;max-width:88%!important;display:flex!important;align-items:center!important;justify-content:center!important;text-align:center!important;z-index:2!important}.fs-bottombar .fs-baseline,.fs-bottombar .fs-ref-toggle{position:absolute!important;right:16px!important;left:auto!important;top:auto!important;bottom:calc(12px + env(safe-area-inset-bottom))!important;transform:none!important;margin:0!important;display:flex!important;flex-direction:column!important;align-items:center!important;justify-content:center!important;gap:6px!important;z-index:1!important}.fs-bottombar .fs-ref-label{text-align:center!important}.fs-guide{inset:0!important;padding:0!important;background-position:center center!important;background-repeat:no-repeat!important;background-size:auto 75%!important;transform:none!important}html,body,#root{width:100%;min-height:100svh;min-height:100dvh;overflow-x:hidden}.fullscreen-camera,.fullscreen-camera.active,.fs-stage,.fs-stage-inner,.fs-video-container{writing-mode:horizontal-tb!important;transform:none!important}@media(orientation:landscape){.fullscreen-camera.active{width:100vw!important;height:100dvh!important}.fs-stage-inner,.fs-video-container{aspect-ratio:3 / 4!important;width:min(56.25dvh,100vw)!important;height:auto!important;max-height:100dvh!important;margin:0 auto!important}}.fs-guide{inset:0!important;padding:0!important;background-position:center 58%!important;background-repeat:no-repeat!important;background-size:auto 75%!important;transform:none!important;pointer-events:none!important}html,body,#root{overflow-x:hidden!important}.fullscreen-camera.active{position:fixed!important;inset:0!important;width:100vw!important;height:100svh!important;height:100dvh!important;display:block!important;background:#000!important;overflow:hidden!important;z-index:9999!important}.fullscreen-camera.active .fs-topbar,.fullscreen-camera.active .fs-bottombar{display:none!important}.fullscreen-camera.active .fs-stage-wrap,.fullscreen-camera.active .fs-stage-inner,.fullscreen-camera.active .fs-video-container{position:absolute!important;inset:0!important;width:100%!important;height:100%!important;max-width:none!important;max-height:none!important;aspect-ratio:auto!important;margin:0!important;padding:0!important;border-radius:0!important;overflow:hidden!important;background:#000!important}.fullscreen-camera.active .fs-guide{inset:0!important;padding:0!important;background-position:center 37%!important;background-repeat:no-repeat!important;background-size:auto 50%!important;transform:none!important;pointer-events:none!important}.fullscreen-camera.active .fs-close{position:absolute!important;top:calc(16px + env(safe-area-inset-top))!important;left:16px!important;z-index:6!important;width:56px!important;height:56px!important;border-radius:999px!important;border:none!important;background:#282828eb!important;color:#fff!important;font-size:22px!important;display:grid!important;place-items:center!important}.fullscreen-camera.active .fs-modepill{position:absolute!important;top:calc(18px + env(safe-area-inset-top))!important;right:16px!important;left:auto!important;z-index:5!important;justify-self:auto!important;padding:12px 18px!important;border-radius:999px!important;background:#222222eb!important;color:#fff!important;font-size:16px!important;line-height:1!important;-webkit-backdrop-filter:blur(10px)!important;backdrop-filter:blur(10px)!important}.fullscreen-camera.active .fs-stage-status{position:absolute!important;top:calc(18px + env(safe-area-inset-top))!important;left:50%!important;transform:translate(-50%)!important;z-index:5!important}.fullscreen-camera.active .fs-guide-hint{position:absolute!important;left:50%!important;top:min(69%,calc(100% - 210px))!important;transform:translate(-50%)!important;z-index:4!important;width:max-content!important;max-width:86%!important;text-align:center!important;color:#fff!important;font-size:14px!important;line-height:1.4!important;padding:10px 18px!important;border-radius:999px!important;background:#0000008c!important;-webkit-backdrop-filter:blur(10px)!important;backdrop-filter:blur(10px)!important}.fullscreen-camera.active .fs-capture-btn{position:absolute!important;left:50%!important;top:min(80%,calc(100% - 110px))!important;transform:translate(-50%)!important;z-index:4!important;width:92px!important;height:92px!important;margin:0!important}.fullscreen-camera.active .fs-capture-btn:after{width:68px!important;height:68px!important;top:50%!important;left:50%!important;transform:translate(-50%,-50%)!important}.fullscreen-camera.active .fs-debug{position:absolute!important;left:16px!important;bottom:calc(16px + env(safe-area-inset-bottom))!important;z-index:3!important;color:#ffffffeb!important;font-size:12px!important;line-height:1.35!important;background:#00000059!important;padding:10px 12px!important;border-radius:12px!important;-webkit-backdrop-filter:blur(10px)!important;backdrop-filter:blur(10px)!important}.fullscreen-camera.active .fs-ref-toggle{position:absolute!important;right:16px!important;bottom:calc(16px + env(safe-area-inset-bottom))!important;left:auto!important;top:auto!important;transform:none!important;z-index:3!important;display:flex!important;flex-direction:column!important;align-items:center!important;gap:6px!important}.fullscreen-camera.active .fs-ref-label{color:#fff!important;font-size:12px!important;text-align:center!important}.fullscreen-camera.active .fs-guide{background-position:center 30%!important;background-size:auto 60%!important}.fullscreen-camera.active .fs-preview-shell{position:absolute!important;inset:0!important;z-index:1!important;transform:scale(.8)!important;transform-origin:center center!important;pointer-events:none!important}.fullscreen-camera.active .fs-guide{position:absolute!important;inset:0!important;z-index:2!important;background-position:center 25%!important;background-size:auto 70%!important;background-repeat:no-repeat!important;pointer-events:none!important}.fullscreen-camera.active .fs-preview-shell{position:absolute!important;inset:0!important;z-index:1!important;transform:scale(.5)!important;transform-origin:center center!important;pointer-events:none!important}.fullscreen-camera.active .fs-close{position:absolute!important;top:calc(16px + env(safe-area-inset-top))!important;left:16px!important;z-index:6!important;width:56px!important;height:56px!important;padding:0!important;border-radius:999px!important;border:none!important;background:#282828eb!important;color:#fff!important;font-size:24px!important;line-height:1!important;display:flex!important;align-items:center!important;justify-content:center!important;text-align:center!important}.fullscreen-camera.active .fs-stage-wrap,.fullscreen-camera.active .fs-stage-inner,.fullscreen-camera.active .fs-video-container{position:absolute!important;inset:0!important;width:100%!important;height:100%!important;max-width:none!important;max-height:none!important;margin:0!important;padding:0!important;overflow:hidden!important;background:#000!important}.fullscreen-camera.active .fs-preview-shell{position:absolute!important;left:50%!important;top:50%!important;width:min(100vw,56.25dvh)!important;height:min(100dvh,calc(100vw * 16 / 9))!important;transform:translate(-50%,-50%) scale(1)!important;transform-origin:center center!important;z-index:1!important;overflow:hidden!important;background:#000!important;pointer-events:none!important}.fullscreen-camera.active .fs-video,.fullscreen-camera.active .fs-ref-image,.fullscreen-camera.active .fs-overlay{position:absolute!important;inset:0!important;width:100%!important;height:100%!important}.fullscreen-camera.active .fs-ref-image{object-fit:cover!important;object-position:center center!important;opacity:.45!important;pointer-events:none!important;mix-blend-mode:screen!important;transform:scaleX(-1)!important}.fullscreen-camera.active .fs-guide{position:absolute!important;inset:0!important;z-index:2!important;background-position:center 15%!important;background-size:auto 80%!important;background-repeat:no-repeat!important;pointer-events:none!important}.fullscreen-camera.active .fs-close{display:flex!important;align-items:center!important;justify-content:center!important;text-align:center!important;padding:0!important;line-height:1!important}@media(orientation:landscape){.fullscreen-camera.active .fs-preview-shell{width:min(56.25dvh,100vw)!important;height:min(100dvh,calc(100vw * 16 / 9))!important}}.fullscreen-camera.active .fs-video,.fullscreen-camera.active .fs-ref-image,.fullscreen-camera.active .fs-overlay,.fullscreen-camera.active .fs-guide{position:absolute!important;inset:0!important;width:100%!important;height:100%!important}.fullscreen-camera.active .fs-video{object-fit:cover!important;object-position:center center!important;transform:scaleX(-1)!important}.fullscreen-camera.active .fs-ref-image{object-fit:cover!important;object-position:center center!important;opacity:.45!important;mix-blend-mode:screen!important;transform:scaleX(-1)!important}.fullscreen-camera.active .fs-overlay{transform:scaleX(-1)!important}.fullscreen-camera.active .fs-guide{background-repeat:no-repeat!important;background-position:center 15%!important;background-size:auto 80%!important;pointer-events:none!important}@media(orientation:landscape){.fullscreen-camera.active .fs-preview-shell{width:min(75dvh,100vw)!important;height:min(100dvh,calc(100vw * 4 / 3))!important}}.fullscreen-camera.active .fs-ref-image{transform:none!important}.compare-confidence{margin-top:12px;padding:10px 12px;border-radius:12px;border:1px solid var(--border);background:#fff}.compare-confidence-grade{font-size:13px;font-weight:700;margin-bottom:4px}.compare-confidence-hint{font-size:12px;line-height:1.5;color:#4b5563}.compare-confidence-a{background:#10b98114}.compare-confidence-b{background:#f59e0b1a}.compare-confidence-c{background:#ef444414}#screen-camera.active{display:flex!important;flex-direction:column!important;gap:10px!important;min-height:calc(100svh - 142px)!important}.camera-preview{flex:1 1 auto!important;display:flex!important;align-items:stretch!important;justify-content:center!important;background:var(--card)!important;border-radius:18px!important;padding:10px!important;margin-bottom:8px!important;box-shadow:0 4px 20px #00000014!important}.preview-box{position:relative!important;width:100%!important;aspect-ratio:3 / 4!important;min-height:min(48svh,500px)!important;max-height:min(52svh,540px)!important;background:#000!important;border-radius:16px!important;overflow:hidden!important}.preview-overlay{position:absolute!important;inset:0!important;display:flex!important;align-items:center!important;justify-content:center!important;background:linear-gradient(to bottom,#0000001f,#00000047)!important}.preview-placeholder{display:grid!important;gap:8px!important;place-items:center!important;color:#fff!important;text-align:center!important;padding:18px!important}.preview-placeholder-icon{font-size:34px!important}.tap-hint{position:absolute!important;left:50%!important;bottom:14px!important;transform:translate(-50%)!important;background:#0000009e!important;color:#fff!important;padding:8px 16px!important;border-radius:999px!important;font-size:12px!important;line-height:1.2!important;white-space:nowrap!important}.mode-selector{display:flex!important;gap:8px!important;margin-bottom:8px!important}.mode-btn{flex:1 1 0!important;padding:12px 10px!important;border:2px solid var(--border)!important;border-radius:12px!important;background:var(--card)!important;cursor:pointer!important;text-align:center!important}.mode-btn-icon{font-size:1.25rem!important}.mode-btn-label{font-size:.78rem!important;font-weight:600!important;margin-top:3px!important}.start-btn{width:100%!important;min-height:52px!important;padding:14px 16px!important;background:var(--accent)!important;color:#fff!important;border:none!important;border-radius:14px!important;font-size:1rem!important;font-weight:700!important;cursor:pointer!important;margin-top:auto!important}@media(max-width:768px){#screen-camera.active{min-height:calc(100svh - 132px)!important;gap:8px!important}.camera-preview{padding:8px!important;margin-bottom:6px!important}.preview-box{min-height:min(46svh,460px)!important;max-height:min(50svh,500px)!important;border-radius:14px!important}.mode-selector{gap:6px!important;margin-bottom:6px!important}.mode-btn{padding:10px 8px!important}.mode-btn-icon{font-size:1.1rem!important}.mode-btn-label{font-size:.74rem!important}.start-btn{min-height:50px!important;padding:13px 14px!important}}@media(max-height:740px){#screen-camera.active{min-height:calc(100svh - 124px)!important}.preview-box{min-height:min(42svh,420px)!important;max-height:min(46svh,460px)!important}.mode-btn{padding:9px 8px!important}.start-btn{min-height:48px!important;padding:12px 14px!important}}.fullscreen-camera.active .fs-guide{opacity:.38!important;background-repeat:no-repeat!important;background-position:center 15%!important;background-size:auto 80%!important;pointer-events:none!important}.fullscreen-camera.active .fs-overlay{pointer-events:none!important;transform:scaleX(-1)!important}#screen-camera.active{display:flex!important;flex-direction:column!important;gap:12px!important;min-height:calc(100svh - 150px)!important}.camera-preview{flex:1 1 auto!important;display:flex!important;align-items:stretch!important;justify-content:center!important;background:var(--card)!important;border-radius:20px!important;padding:12px!important;margin-bottom:12px!important;box-shadow:0 4px 20px #00000014!important}.preview-box{position:relative!important;width:100%!important;aspect-ratio:3 / 4!important;min-height:min(52svh,520px)!important;max-height:min(56svh,560px)!important;background:#000!important;border-radius:16px!important;overflow:hidden!important}.preview-video{width:100%!important;height:100%!important;object-fit:cover!important;object-position:center center!important;background:#000!important;transform:scaleX(-1)!important}.preview-overlay{position:absolute!important;inset:0!important;display:flex!important;align-items:center!important;justify-content:center!important}.tap-hint{position:absolute!important;bottom:16px!important;left:50%!important;transform:translate(-50%)!important;background:#000000b3!important;color:#fff!important;padding:10px 20px!important;border-radius:20px!important;font-size:.95rem!important;max-width:84%!important;text-align:center!important}.mode-selector{display:flex!important;gap:10px!important;margin-bottom:12px!important}.mode-btn{flex:1!important;padding:12px!important;min-height:92px!important;border:2px solid var(--border)!important;border-radius:12px!important;background:var(--card)!important;cursor:pointer!important;text-align:center!important}.mode-btn-icon{font-size:1.35rem!important}.mode-btn-label{font-size:.9rem!important;font-weight:600!important;margin-top:4px!important}.start-btn{width:100%!important;padding:14px 16px!important;min-height:56px!important;background:var(--accent)!important;color:#fff!important;border:none!important;border-radius:14px!important;font-size:1rem!important;font-weight:700!important;cursor:pointer!important;position:sticky!important;bottom:calc(8px + env(safe-area-inset-bottom))!important;z-index:2!important}.fullscreen-camera.active .fs-preview-shell{position:absolute!important;left:50%!important;top:50%!important;width:min(100vw,75dvh)!important;height:min(100dvh,calc(100vw * 4 / 3))!important;transform:translate(-50%,-50%)!important;transform-origin:center center!important;z-index:1!important;overflow:hidden!important;background:#000!important;pointer-events:none!important}.fullscreen-camera.active .fs-video{object-fit:cover!important;object-position:center center!important;background:#000!important;transform:scaleX(-1)!important}.fullscreen-camera.active .fs-ref-image{object-fit:cover!important;object-position:center center!important;opacity:.45!important;mix-blend-mode:screen!important;transform:none!important}@media(max-width:430px){#screen-camera.active{min-height:calc(100svh - 138px)!important}.camera-preview{padding:10px!important;margin-bottom:10px!important}.preview-box{min-height:min(50svh,500px)!important;max-height:min(54svh,540px)!important}.mode-btn{min-height:84px!important;padding:10px!important}.start-btn{padding:13px 14px!important}}.fs-ref-label{display:none!important}.fs-ref-toggle{display:flex;align-items:center;justify-content:center}.fs-ref-btn{display:flex!important;align-items:center;justify-content:center;width:56px;min-width:56px;height:56px;padding:0!important;border-radius:50%!important;font-size:14px;font-weight:700;line-height:1;box-shadow:none!important;-webkit-backdrop-filter:none!important;backdrop-filter:none!important}.fs-ref-btn.is-off{background:transparent!important;border:2px solid rgba(255,255,255,.3)!important;color:#111!important}.fs-ref-btn.is-on{background:var(--success)!important;border:2px solid var(--success)!important;color:#fff!important}.fs-ref-btn:disabled{opacity:1!important;cursor:default!important;pointer-events:none!important}.success-modal,.success-modal.active{z-index:10001!important}.success-content{position:relative;z-index:10002!important}.success-btns{display:flex;gap:12px;justify-content:center;align-items:center;flex-wrap:nowrap}.success-btn{min-width:96px}.success-btn.ghost{background:#ffffff1a!important;color:#fff!important;border:1px solid rgba(255,255,255,.3)!important}.success-btn:disabled{opacity:.72;cursor:default}@media(max-width:430px){.success-btns{gap:8px}.success-btn{min-width:84px;padding:12px 16px}}.history-item.locked{cursor:not-allowed}.history-item-overlay{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;background:#0000008f;color:#fff;font-size:.82rem;font-weight:700;z-index:2;pointer-events:none}.history-item-delete,.history-item-badge,.history-item-score,.history-item-date{z-index:3}.auth-shell{min-height:100svh;min-height:100dvh;display:flex;align-items:center;justify-content:center;background:#f5f6f8;padding:24px}.auth-card{width:min(420px,92vw);background:#fff;border:1px solid #e7e7e7;border-radius:16px;box-shadow:0 10px 30px #00000014;padding:32px 28px}.auth-card-small{width:min(420px,92vw)}.auth-brand{margin-bottom:24px}.auth-logo{font-size:2rem;font-weight:700;letter-spacing:.2px;color:#1f2937}.auth-logo span{color:#e16f53}.auth-subtitle{margin-top:8px;color:#6b7280;font-size:.95rem}.auth-form{display:flex;flex-direction:column;gap:10px}.auth-label{font-size:.92rem;color:#374151;font-weight:600}.auth-input{height:46px;border:1px solid #d1d5db;border-radius:10px;padding:0 14px;font-size:.95rem;background:#fafafa;color:#6b7280}.auth-line-btn{margin-top:10px;height:48px;border:none;border-radius:12px;background:#06c755;color:#fff;font-size:1rem;font-weight:700;cursor:pointer}.auth-links,.auth-oa{margin-top:10px;text-align:center;font-size:.92rem}.auth-links a,.auth-oa a,.auth-back-link{color:#2563eb;text-decoration:none}.auth-error{padding:10px 12px;border-radius:10px;background:#fff1f2;color:#be123c;font-size:.9rem}.auth-page-title{margin:18px 0 8px;font-size:1.4rem}.auth-page-desc{color:#6b7280;line-height:1.6}.auth-form-minimal{gap:14px}.auth-oa-disabled{color:#9ca3af;cursor:default}.auth-brand-row{display:flex;align-items:center;gap:12px}.auth-brand-logo{height:2.2rem;width:auto;display:block;flex:0 0 auto}
