: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%);width:100vw;min-height:100svh;position:relative;overflow:hidden auto}.camera-feed,.fallback-scene{object-fit:cover;width:100%;height:100%;position:fixed;inset:0}.camera-feed{z-index:0;transform-origin:50%;background:#111;transition:filter .36s,transform .36s}.camera-shell.analyzing .camera-feed{filter:brightness(96%)contrast(104%)saturate(98%)!important}.fallback-scene{z-index:-1;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(#000c,#0000 22%),linear-gradient(#0000 56%,#000000e6);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:flex-start;gap:16px;min-height:62px;display:flex;position:fixed;left:14px;right:14px}.eyebrow{color:#e7ba69;letter-spacing:.08em;text-transform:uppercase;margin:0 0 4px;font-size:12px;font-weight:800}h1{color:#fffaf0;letter-spacing:0;max-width:280px;margin:0;font-size:24px;font-weight:750;line-height:1.05}.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}.stage{z-index:1;pointer-events:none;min-height:100svh;position:fixed;inset:0;overflow:hidden}.camera-shell.analyzing .stage{box-shadow:inset 0 0 0 1px #e7ba6929}.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 .85s cubic-bezier(.2,.8,.2,1),top .85s cubic-bezier(.2,.8,.2,1);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}.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}.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{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%)}.stability-overlay span{background:#e7ba69;border-radius:50%;width:7px;height:7px;animation:1s ease-in-out infinite statusBlink;box-shadow:0 0 10px #e7ba69cc}.stability-overlay 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(174px + env(safe-area-inset-bottom));z-index:4;pointer-events:none;display:block;position:fixed}.coach-copy{-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);background:#08080694;border:1px solid #ffffff21;border-radius:8px;gap:2px;min-width:0;padding:7px 10px;display:grid}.coach-copy p{margin:0}.coach-heading{justify-content:space-between;align-items:center;gap:8px;display:flex}.coach-copy strong{color:#fff7e8;text-overflow:ellipsis;white-space:nowrap;min-width:0;font-size:13px;overflow:hidden}.coach-heading span{color:#e7ba69d1;flex:none;font-size:11px}.coach-copy p{color:#fff7e8d6;-webkit-line-clamp:1;-webkit-box-orient:vertical;font-size:11px;line-height:1.3;display:-webkit-box;overflow:hidden}.coach-copy .subject-cue{display:none}.controls{left:14px;right:14px;bottom:max(12px, env(safe-area-inset-bottom));z-index:5;gap:8px;display:grid;position:fixed}.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:1fr 86px 1fr;place-items:center;gap:14px;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}.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(100svh + 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)}}@media (width>=760px){.camera-shell{place-items:center;padding:28px;display:grid}.camera-feed,.fallback-scene{border-radius:28px;width:min(430px,100vw - 56px);height:min(880px,100svh - 56px);left:50%;transform:translate(-50%)}.viewfinder{border:1px solid #ffffff29;border-radius:28px;width:min(430px,100vw - 56px);min-height:min(880px,100svh - 56px);box-shadow:0 30px 100px #0000007a}.top-bar,.install-panel,.coach-panel,.controls,.preview-drawer{width:min(402px,100vw - 84px);left:50%;right:auto;transform:translate(-50%)}}@media (height<=820px){.viewfinder{padding:0 14px}h1{font-size:21px}.eyebrow{font-size:11px}.top-bar{min-height:56px}.install-panel{min-height:34px;padding-bottom:6px}.install-panel button{min-height:30px;font-size:12px}.stage{min-height:100svh}.coach-panel{bottom:calc(158px + env(safe-area-inset-bottom))}.coach-copy{padding:7px 9px}.coach-copy p{-webkit-line-clamp:1;font-size:11px;line-height:1.24}.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:48px}.coach-panel{bottom:calc(114px + env(safe-area-inset-bottom))}.settings-strip{display:none}}
