:root{color:#f7f4ed;font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background:#080806;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}*{box-sizing:border-box}html,body,#root{min-height:100%;margin:0}body{min-width:320px;min-height:100svh;overflow:hidden auto}button,input{font:inherit}button{-webkit-tap-highlight-color:transparent}.camera-shell{background:radial-gradient(circle at 50% 15%,#edb14c33,#0000 30%),linear-gradient(145deg,#14120d 0%,#070706 62%,#11100d 100%);justify-content:center;width:100vw;min-height:100svh;display:flex;position:relative;overflow:hidden auto}.camera-feed,.fallback-scene{object-fit:cover;width:100%;height:100%;position:absolute;inset:0}.camera-feed{z-index:0;transform-origin:50%;background:#111;transition:filter .36s,transform .78s cubic-bezier(.16,1,.3,1)}.camera-shell.analyzing .camera-feed{filter:brightness(96%)contrast(104%)saturate(98%)!important}.fallback-scene{z-index:0;opacity:.72;background:linear-gradient(90deg,#ffffff0f 1px,#0000 1px) 0 0/64px 64px,linear-gradient(#ffffff0a 1px,#0000 1px) 0 0/64px 64px,linear-gradient(140deg,#e2a64140,#0000 34%),linear-gradient(20deg,#17130d,#050505)}.analysis-canvas{display:none}.viewfinder{z-index:1;background:linear-gradient(#000000b8,#0000002e 16%,#0000 28%),linear-gradient(#0000 54%,#000000b8 76%,#000000f5);width:min(100vw,440px);min-height:100svh;padding:0 14px;position:relative}.top-bar{top:max(14px, env(safe-area-inset-top));z-index:5;justify-content:space-between;align-items:center;gap:16px;min-height:44px;display:flex;position:fixed;left:14px;right:14px}.eyebrow{color:#e7ba69;letter-spacing:.08em;text-transform:uppercase;margin:0 0 3px;font-size:10px;font-weight:800}.aim-status{color:#fff7e8d6;-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);background:#08080680;border:1px solid #ffffff21;border-radius:999px;align-items:center;max-width:min(220px,100vw - 94px);min-height:24px;margin:0;padding:0 10px;font-size:12px;font-weight:700;line-height:24px;display:inline-flex}.icon-button,.secondary-button{color:#fff7e8;-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);background:#09090785;border:1px solid #fff3;justify-content:center;align-items:center;display:inline-flex}.icon-button{border-radius:999px;flex:none;width:44px;height:44px}.install-panel{top:calc(max(14px, env(safe-area-inset-top)) + 66px);z-index:5;grid-template-columns:auto minmax(0,1fr);align-items:center;gap:8px;min-height:42px;padding:0 0 10px;display:grid;position:fixed;left:14px;right:14px}.install-panel button{color:#120d04;background:#e7ba69;border:1px solid #e7ba6966;border-radius:999px;justify-content:center;align-items:center;gap:6px;min-height:34px;font-size:13px;font-weight:700;display:inline-flex}.install-panel span{color:#fff7e8c2;min-width:0;font-size:12px;line-height:1.25}.level-chip{top:calc(max(14px, env(safe-area-inset-top)) + 66px);z-index:6;color:#fff7e8db;-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);background:#08080694;border:1px solid #ffffff29;border-radius:999px;min-height:30px;padding:0 11px;font-size:12px;font-weight:700;line-height:30px;position:fixed;right:14px}.level-chip.interactive{color:#100c04;background:#e7ba69}.level-chip.level-ok{color:#b8f2c2;border-color:#74e68a52}.stage{top:calc(max(14px, env(safe-area-inset-top)) + 88px);left:14px;right:14px;bottom:calc(218px + env(safe-area-inset-bottom));z-index:1;pointer-events:none;background:#080806;border:1px solid #ffffff29;border-radius:14px;position:fixed;overflow:hidden;box-shadow:0 18px 70px #0000004d,inset 0 0 0 1px #e7ba6914}.camera-shell.analyzing .stage{box-shadow:0 18px 70px #0000004d,inset 0 0 0 1px #e7ba6952}.grid-lines span{z-index:1;background:#ffffff3d;position:absolute}.grid-lines span:first-child,.grid-lines span:nth-child(2){width:1px;top:0;bottom:0}.grid-lines span:first-child{left:33.333%}.grid-lines span:nth-child(2){left:66.666%}.grid-lines span:nth-child(3),.grid-lines span:nth-child(4){height:1px;left:0;right:0}.grid-lines span:nth-child(3){top:33.333%}.grid-lines span:nth-child(4){top:66.666%}.horizon{z-index:2;background:linear-gradient(90deg,#0000,#e7ba69d9,#0000);height:2px;transition:top .7s;position:absolute;left:8%;right:8%}.focus-target{z-index:4;color:#0c0904;background:#e7ba69eb;border:2px solid #ffffffb8;border-radius:50%;place-items:center;width:62px;height:62px;transition:left .18s linear,top .18s linear,opacity .18s,box-shadow .18s;animation:1.8s ease-in-out infinite targetPulse;display:grid;position:absolute;transform:translate(-50%,-50%);box-shadow:0 0 34px #e7ba6985}.focus-target.locked{animation:none;box-shadow:0 0 24px #e7ba6980}.focus-target.aligned{color:#061006;background:#74e68af0;border-color:#ffffffe6;box-shadow:0 0 30px #74e68a94}.focus-target.searching{opacity:.55;box-shadow:0 0 18px #e7ba6952}.final-frame{z-index:3;aspect-ratio:4/5;border:2px solid #74e68aeb;border-radius:10px;width:min(76%,320px);animation:.62s cubic-bezier(.16,1,.3,1) finalFrameIn;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);box-shadow:0 0 0 999px #0000002e,0 0 32px #74e68a5c,inset 0 0 0 1px #ffffff47}.final-frame span{color:#061006;white-space:nowrap;background:#74e68af0;border-radius:999px;align-items:center;min-height:24px;padding:0 9px;font-size:11px;font-weight:800;line-height:24px;display:inline-flex;position:absolute;top:-32px;left:50%;transform:translate(-50%)}.zoom-flare{z-index:6;pointer-events:none;background:radial-gradient(circle,#74e68a3d,#0000 34%),#fff7e833;animation:.9s ease-out both zoomFlare;position:absolute;inset:0}.center-reticle{z-index:3;border:1px solid #ffffff7a;border-radius:50%;width:92px;height:92px;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.center-reticle:before,.center-reticle:after{content:"";background:#ffffff9e;position:absolute}.center-reticle:before{width:1px;top:14px;bottom:14px;left:50%}.center-reticle:after{height:1px;top:50%;left:14px;right:14px}.level-meter{z-index:2;opacity:.92;width:min(280px,76vw);height:46px;transition:transform .12s linear,opacity .16s;position:absolute;top:50%;left:50%}.level-meter span{background:linear-gradient(90deg,#0000,#fff7e8b8,#0000);height:2px;position:absolute;top:50%;left:0;right:0}.level-meter:before,.level-meter:after{content:"";border-top:2px solid #fff7e8b8;border-left:2px solid #fff7e8b8;width:8px;height:8px;position:absolute;top:50%}.level-meter:before{left:18%;transform:translateY(-50%)rotate(-45deg)}.level-meter:after{right:18%;transform:translateY(-50%)rotate(135deg)}.level-meter.level-ok span{background:linear-gradient(90deg,#0000,#74e68ae0,#0000)}.level-meter.level-ok:before,.level-meter.level-ok:after{border-color:#74e68ae0}.scan-line{z-index:2;background:linear-gradient(#0000,#e7ba691f,#0000);height:110px;animation:3.2s linear infinite scan;position:absolute;left:0;right:0}.stability-overlay,.tracking-badge{z-index:5;pointer-events:none;color:#fff7e8;-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);background:#08080694;border:1px solid #e7ba6947;border-radius:999px;align-items:center;gap:7px;padding:7px 10px;display:inline-flex;position:absolute;top:12px;left:50%;transform:translate(-50%)}.tracking-badge{top:auto;bottom:12px}.stability-overlay span,.tracking-badge span{background:#e7ba69;border-radius:50%;width:7px;height:7px;animation:1s ease-in-out infinite statusBlink;box-shadow:0 0 10px #e7ba69cc}.tracking-badge span{background:#74e68a;box-shadow:0 0 10px #74e68ac7}.tracking-badge.searching span{background:#e7ba69;box-shadow:0 0 10px #e7ba69cc}.stability-overlay strong,.tracking-badge strong{color:#fff7e8d1;white-space:nowrap;font-size:11px;font-weight:650;line-height:1}.permission-panel{z-index:6;color:#fff7e8;text-align:center;-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);background:#080806c2;border:1px solid #e7ba6957;border-radius:8px;place-items:center;gap:12px;width:min(280px,100% - 32px);padding:18px;display:grid;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.permission-panel p{margin:0;font-size:14px;line-height:1.5}.coach-panel{left:14px;right:14px;bottom:calc(104px + env(safe-area-inset-bottom));z-index:4;pointer-events:auto;display:block;position:fixed}.coach-copy{-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);background:#080806b3;border:1px solid #ffffff21;border-radius:8px;gap:6px;min-width:0;padding:7px 8px 8px 10px;display:grid}.coach-heading{grid-template-columns:minmax(0,1fr) auto auto;align-items:center;gap:7px;display:grid}.coach-copy strong{color:#fff7e8;text-overflow:ellipsis;white-space:nowrap;min-width:0;font-size:13px;overflow:hidden}.coach-heading span{color:#e7ba69d1;text-overflow:ellipsis;white-space:nowrap;min-width:0;font-size:11px;overflow:hidden}.coach-toggle{color:#fff7e8db;background:#ffffff14;border:1px solid #ffffff1f;border-radius:999px;place-items:center;width:28px;height:28px;display:grid}.cue-chips{flex-wrap:wrap;gap:5px;min-width:0;display:flex}.cue-chips span{color:#fff7e8d6;text-overflow:ellipsis;white-space:nowrap;background:#ffffff14;border:1px solid #ffffff1a;border-radius:999px;align-items:center;max-width:100%;min-height:24px;padding:0 8px;font-size:11.5px;line-height:24px;display:inline-flex;overflow:hidden}.cue-chips span:nth-child(2){color:#b8f2c2}.cue-chips span:nth-child(3){color:#e7ba69}.controls{left:14px;right:14px;bottom:max(12px, env(safe-area-inset-bottom));z-index:5;gap:8px;display:grid;position:fixed}.control-drawer{animation:.18s ease-out previewIn}.mode-tabs{grid-template-columns:repeat(4,minmax(0,1fr));gap:7px;display:grid}.mode-tabs button{color:#fff7e8b8;background:#09090780;border:1px solid #ffffff21;border-radius:999px;justify-content:center;align-items:center;gap:5px;min-width:0;min-height:38px;font-size:13px;display:inline-flex}.mode-tabs button.active{color:#0d0902;background:#e7ba69;border-color:#e7ba69}.settings-strip{background:#ffffff1a;border:1px solid #ffffff21;border-radius:8px;grid-template-columns:repeat(4,minmax(0,1fr));gap:1px;display:grid;overflow:hidden}.settings-strip div{color:#fff7e8e0;background:#07070594;place-items:center;gap:2px;min-height:38px;font-size:12px;display:grid}.zoom-control{color:#fff7e8b8;grid-template-columns:68px minmax(0,1fr) 96px;align-items:center;gap:10px;font-size:13px;display:none}.zoom-control input{accent-color:#e7ba69;width:100%}.zoom-control em{color:#e7ba69db;text-align:right;white-space:nowrap;font-size:12px;font-style:normal}.shutter-row{grid-template-columns:minmax(0,1fr) 86px minmax(0,1fr);place-items:center;gap:10px;padding-top:0;display:grid}.secondary-button{border-radius:999px;gap:7px;min-width:86px;min-height:38px;font-size:13px}.secondary-button:disabled{opacity:.48}.shutter-button{background:#fff7e829;border:3px solid #fff7e8;border-radius:50%;place-items:center;width:70px;height:70px;display:grid}.shutter-button span{border-radius:inherit;background:#fff7e8;width:50px;height:50px;box-shadow:inset 0 0 0 4px #e7ba6970}.tool-buttons{justify-self:end;gap:8px;display:inline-flex}.tool-button{color:#fff7e8e0;-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);background:#09090785;border:1px solid #fff3;border-radius:999px;place-items:center;width:38px;height:38px;display:grid}.tool-button.active{color:#100c04;background:#e7ba69;border-color:#e7ba69}.preview-drawer{left:14px;right:14px;bottom:calc(18px + env(safe-area-inset-bottom));z-index:8;color:#fff7e8;-webkit-backdrop-filter:blur(22px);backdrop-filter:blur(22px);background:#080806db;border:1px solid #e7ba694d;border-radius:8px;grid-template-columns:72px minmax(0,1fr);align-items:center;gap:12px;padding:10px;animation:.28s ease-out previewIn;display:grid;position:fixed;box-shadow:0 18px 80px #00000073}.preview-drawer img{object-fit:cover;border-radius:6px;width:72px;height:72px}.preview-drawer strong{margin-bottom:4px;font-size:14px;display:block}.preview-drawer p{color:#fff7e8b3;margin:0;font-size:12px;line-height:1.4}.preview-actions{gap:8px;margin-top:8px;display:flex}.preview-actions button{color:#100c04;background:#e7ba69;border:1px solid #e7ba6957;border-radius:999px;justify-content:center;align-items:center;gap:6px;min-height:32px;font-size:12px;font-weight:700;display:inline-flex}.preview-actions button:last-child{color:#fff7e8e0;background:#ffffff14;border-color:#ffffff2e;width:34px}.flash{z-index:9;pointer-events:none;opacity:0;background:#fff;transition:opacity .18s;position:fixed;inset:0}.flash.active{opacity:.82}button:focus-visible,input:focus-visible{outline-offset:3px;outline:2px solid #e7ba69}@keyframes scan{0%{transform:translateY(-120px)}to{transform:translateY(calc(100% + 120px))}}@keyframes targetPulse{0%,to{scale:1}50%{scale:1.07}}@keyframes statusBlink{0%,to{opacity:.45}50%{opacity:1}}@keyframes previewIn{0%{opacity:0;transform:translateY(18px)}to{opacity:1;transform:translateY(0)}}@keyframes finalFrameIn{0%{opacity:0;transform:translate(-50%,-50%)scale(1.18)}to{opacity:1;transform:translate(-50%,-50%)scale(1)}}@keyframes zoomFlare{0%{opacity:0;transform:scale(.96)}28%{opacity:1}to{opacity:0;transform:scale(1.12)}}@media (width>=760px){.camera-shell{padding:28px}.viewfinder{border:1px solid #ffffff29;border-radius:28px;width:min(430px,100vw - 56px);box-shadow:0 30px 100px #0000007a}.top-bar,.install-panel,.stage,.coach-panel,.controls{width:min(402px,100vw - 84px);left:50%;right:auto;transform:translate(-50%)}.stage{max-width:402px}.level-chip{left:50%;right:auto;transform:translate(78px)}.preview-drawer{width:min(402px,100vw - 84px);left:50%;right:auto;transform:translate(-50%)}}@media (height<=820px){.viewfinder{padding:0 14px}.eyebrow{font-size:10px}.top-bar{min-height:42px}.install-panel{min-height:34px;padding-bottom:6px}.install-panel button{min-height:30px;font-size:12px}.coach-panel{bottom:calc(96px + env(safe-area-inset-bottom))}.coach-copy{padding:7px 9px}.cue-chips span{min-height:22px;font-size:11px;line-height:22px}.controls{gap:7px}.mode-tabs button{min-height:34px;font-size:12px}.settings-strip div{min-height:36px;font-size:11px}.zoom-control{grid-template-columns:58px minmax(0,1fr) 86px;gap:8px;font-size:12px}.zoom-control em{font-size:11px}.secondary-button{min-width:72px;min-height:34px;font-size:12px}.shutter-button{width:62px;height:62px}.shutter-button span{width:44px;height:44px}}@media (height<=700px){.top-bar{min-height:40px}.stage{top:calc(max(10px, env(safe-area-inset-top)) + 78px);bottom:calc(184px + env(safe-area-inset-bottom))}.coach-panel{bottom:calc(88px + env(safe-area-inset-bottom))}.control-drawer{display:none}.shutter-button{width:58px;height:58px}.shutter-button span{width:40px;height:40px}}
