@import "https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Manrope:wght@600;700;800&display=swap";:root{color:#172927;font-synthesis:none;text-rendering:optimizelegibility;--ink:#172927;--muted:#66726f;--forest:#155f54;--forest-dark:#0d473f;--mint:#dff1e9;--paper:#fffdf8;--line:#d9ddd7;--amber:#f2a33a;background:#f6f3ec;font-family:DM Sans,system-ui,sans-serif}*{box-sizing:border-box}body{background:radial-gradient(circle at 85% 3%,#dff1e9e6,#0000 27rem),#f6f3ec;min-width:320px;min-height:100vh;margin:0}button,input{font:inherit}button{-webkit-tap-highlight-color:transparent}.app-shell{min-height:100vh}.topbar{justify-content:space-between;align-items:center;max-width:760px;height:72px;margin:0 auto;padding:0 22px;display:flex}.brand{color:var(--ink);letter-spacing:-.03em;align-items:center;gap:10px;font:800 20px Manrope,sans-serif;text-decoration:none;display:inline-flex}.brand-mark{color:#fff;background:var(--forest);border-radius:13px 13px 13px 5px;place-items:center;width:40px;height:40px;display:grid}.help-button{border:1px solid var(--line);width:42px;height:42px;color:var(--forest-dark);cursor:pointer;background:#ffffff8c;border-radius:50%;place-items:center;text-decoration:none;display:grid}main{max-width:760px;margin:0 auto;padding:4px 20px 48px}.progress-wrap{max-width:620px;margin:8px auto 36px}.progress-copy{color:var(--muted);text-transform:uppercase;letter-spacing:.09em;justify-content:space-between;margin-bottom:8px;font-size:12px;font-weight:700;display:flex}.progress-copy span:last-child{color:var(--forest)}.progress-track{background:#dfe2dc;border-radius:10px;height:5px;overflow:hidden}.progress-track span{border-radius:inherit;background:var(--forest);width:50%;height:100%;display:block}.progress-labels{color:#89918e;justify-content:space-between;margin:8px 0 0;padding:0;font-size:11px;list-style:none;display:flex}.progress-labels .active{color:var(--forest);font-weight:700}.hero{max-width:620px;margin:0 auto 24px}.eyebrow{color:var(--forest);letter-spacing:.1em;text-transform:uppercase;align-items:center;gap:6px;font-size:12px;font-weight:800;display:flex}.hero h1{letter-spacing:-.055em;margin:10px 0 8px;font:800 clamp(32px,7vw,48px)/1.04 Manrope,sans-serif}.hero p{max-width:560px;color:var(--muted);margin:0;font-size:16px;line-height:1.55}.capture-card{background:#fffdf8f0;border:1px solid #d2d7cfe6;border-radius:24px;max-width:620px;margin:0 auto;padding:26px;box-shadow:0 20px 60px #1f383317}.field-group{border:0;margin:0;padding:0 0 26px}.field-group+.field-group{border-top:1px solid #e5e5df;padding-top:25px}.field-group legend,.section-heading h2{letter-spacing:-.02em;margin:0 0 14px;padding:0;font:700 17px Manrope,sans-serif}.field-group.compact{padding-bottom:25px}.choice-grid{grid-template-columns:1fr 1fr;gap:12px;display:grid}.choice-card{border:1.5px solid var(--line);min-height:144px;color:var(--ink);text-align:left;cursor:pointer;background:#fff;border-radius:16px;flex-direction:column;align-items:flex-start;gap:8px;padding:18px;transition:border-color .18s,background .18s,transform .18s;display:flex;position:relative}.choice-card:hover{border-color:#9dbab2;transform:translateY(-2px)}.choice-card.selected{border-color:var(--forest);box-shadow:inset 0 0 0 1px var(--forest);background:#f0f8f4}.choice-card svg{color:var(--forest)}.choice-card strong{margin-top:2px;font-size:15px}.choice-card small{color:var(--muted);font-size:12px;line-height:1.35}.radio-dot{background:#fff;border:1.5px solid #aeb6b2;border-radius:50%;width:17px;height:17px;position:absolute;top:16px;right:16px}.selected .radio-dot{border:5px solid var(--forest)}.segmented-control{background:#eceee9;border-radius:12px;grid-template-columns:1fr 1fr;padding:4px;display:grid}.segmented-control button{color:#66716e;cursor:pointer;background:0 0;border:0;border-radius:9px;min-height:42px;font-weight:700}.segmented-control button.active{color:var(--forest-dark);background:#fff;box-shadow:0 2px 8px #1b302c1a}.orientation-note{color:var(--muted);margin:9px 2px 0;font-size:12px}.section-heading{justify-content:space-between;align-items:baseline;gap:12px;display:flex}.section-heading h2{margin-bottom:14px}.section-heading span{color:var(--muted);font-size:11px;font-weight:600}.capture-stage{text-align:center;background:#f8faf7;border:1.5px dashed #b8c4bf;border-radius:18px;padding:14px}.guide-scene{background:linear-gradient(145deg,#ddece5,#eef5f1);border-radius:12px;height:210px;position:relative;overflow:hidden}.guide-card{aspect-ratio:1.586;color:#29433e;letter-spacing:.16em;background:#ffffffb8;border:2px solid #2b4641;border-radius:6px;flex-direction:column;justify-content:center;align-items:center;width:35%;font:800 11px Manrope,sans-serif;display:flex;position:absolute;top:51px;left:11%;transform:rotate(-2deg);box-shadow:0 8px 20px #1d322e1f}.guide-card small{letter-spacing:0;margin-top:4px;font:600 7px DM Sans,sans-serif}.guide-lens{background:radial-gradient(circle at 35% 30%,#ffffffa6,#77b3a41f);border:3px solid #155f54b3;border-radius:50% 46% 48% 52%/49% 52% 45% 51%;width:36%;height:114px;position:absolute;top:43px;right:10%;transform:rotate(2deg);box-shadow:inset 8px 7px 18px #ffffff8c,0 10px 20px #1d322e14}.guide-lens.with-frame{border-width:9px;border-color:#29443f;box-shadow:inset 0 0 0 2px #fffc}.bridge-line{background:#29443f;border-radius:5px;width:45px;height:8px;position:absolute;top:42px;left:-43px}.corner{border-color:var(--forest);border-style:solid;width:26px;height:26px;position:absolute}.top-left{border-width:2px 0 0 2px;top:14px;left:14px}.top-right{border-width:2px 2px 0 0;top:14px;right:14px}.bottom-left{border-width:0 0 2px 2px;bottom:14px;left:14px}.bottom-right{border-width:0 2px 2px 0;bottom:14px;right:14px}.capture-stage>p{color:var(--muted);margin:14px 8px;font-size:12px;line-height:1.45}.capture-actions{grid-template-columns:1fr 1fr;gap:10px;display:grid}.primary-button,.secondary-button{cursor:pointer;border-radius:11px;justify-content:center;align-items:center;gap:8px;min-height:46px;font-size:13px;font-weight:700;display:inline-flex}.primary-button{color:#fff;background:var(--forest);border:0}.primary-button:hover{background:var(--forest-dark)}.secondary-button{color:var(--forest-dark);background:#fff;border:1px solid #cbd2ce}.preview-stage{border:1px solid var(--line);background:#edf1ed;border-radius:18px;position:relative;overflow:hidden}.preview-stage img{object-fit:contain;width:100%;height:300px;display:block}.replace-button{color:var(--ink);cursor:pointer;background:#ffffffeb;border:0;border-radius:10px;align-items:center;gap:6px;padding:9px 12px;font-size:12px;font-weight:700;display:inline-flex;position:absolute;top:12px;right:12px;box-shadow:0 4px 14px #00000024}.file-summary{color:var(--muted);background:#fff;justify-content:space-between;gap:12px;padding:11px 14px;font-size:11px;display:flex}.file-summary span:first-child{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.checklist{color:#52615e;gap:9px;margin:0 0 20px;padding:0;font-size:12px;list-style:none;display:grid}.checklist li{align-items:flex-start;gap:9px;display:flex}.checklist svg{color:var(--forest);background:var(--mint);border-radius:50%;flex:none;margin-top:1px;padding:2px}.notice{color:#744b16;background:#fff3dd;border:1px solid #efd19d;border-radius:12px;gap:11px;margin:0 0 20px;padding:13px;display:flex}.notice svg{flex:none;margin-top:2px}.notice p{gap:2px;margin:0;font-size:12px;line-height:1.4;display:grid}.error-message{color:#8b2e2e;background:#fff0ee;border:1px solid #f0c0ba;border-radius:10px;margin:0 0 14px;padding:11px 13px;font-size:12px}.continue-button{color:#fff;background:var(--forest);cursor:pointer;border:0;border-radius:13px;justify-content:center;align-items:center;gap:6px;width:100%;min-height:52px;font-weight:800;transition:background .18s,opacity .18s;display:flex}.continue-button:not(:disabled):hover{background:var(--forest-dark)}.continue-button:disabled{color:#929a97;cursor:not-allowed;background:#e2e4df}.success-card{background:#ecf8f2;border:1px solid #abd0c2;border-radius:13px;align-items:center;gap:12px;padding:14px;display:flex}.success-card>span{color:#fff;background:var(--forest);border-radius:50%;place-items:center;width:36px;height:36px;display:grid}.success-card strong{font-size:14px}.success-card p{color:var(--muted);margin:3px 0 0;font-size:11px}.privacy-note{color:#74807d;justify-content:center;align-items:center;gap:6px;margin:18px 0 0;font-size:11px;display:flex}button:disabled{cursor:not-allowed;opacity:.65}.preview-placeholder{min-height:180px;color:var(--muted);padding:70px 20px 20px;font-size:14px}.calibration-result{gap:16px;display:grid}.rectified-preview{margin:0}.rectified-image{border:1px solid var(--line);border-radius:12px;position:relative;overflow:hidden}.rectified-image img{width:100%;height:auto;display:block}.rectified-image svg{pointer-events:none;width:100%;height:100%;position:absolute;inset:0}.rectified-image polygon{fill:none;stroke-width:2.5px;vector-effect:non-scaling-stroke}.rectified-image .card-outline{stroke:#087967}.rectified-image .card-corner{fill:#fff;stroke:#087967;stroke-width:2px;vector-effect:non-scaling-stroke}.rectified-image .outer-contour{stroke:#7353ba;stroke-dasharray:5 4}.rectified-image .lens-contour{stroke:#ee7b24}.rectified-preview figcaption,.calibration-note{color:var(--muted);font-size:12px;line-height:1.5}.rectified-preview figcaption{margin-top:8px}.calibration-note{margin:0}.calibration-details{gap:10px;margin:0;font-size:13px;display:grid}.calibration-details div{flex-wrap:wrap;justify-content:space-between;gap:6px;display:flex}.calibration-details dt{color:var(--muted)}.calibration-details dd{margin:0;font-weight:700}.measurement-grid{grid-template-columns:repeat(3,1fr);gap:8px;margin:0;display:grid}.measurement-grid div{text-align:center;background:#fff;border:1px solid #d9ddd7;border-radius:12px;padding:13px 9px}.measurement-grid dt{color:var(--muted);font-size:11px}.measurement-grid dd{color:var(--forest-dark);margin:5px 0 0;font:800 19px Manrope,sans-serif}.measurement-grid small{font:600 10px DM Sans,sans-serif}@media (width<=520px){.topbar{height:64px;padding:0 16px}main{padding:2px 12px 34px}.progress-wrap{margin:6px 4px 29px}.hero{padding:0 5px}.hero h1{font-size:35px}.capture-card{border-radius:20px;padding:19px 15px}.choice-card{min-height:136px;padding:15px 13px}.choice-card small{font-size:11px}.guide-scene{height:190px}.guide-lens{height:102px;top:39px}.guide-card{top:48px}.capture-actions{grid-template-columns:1fr}.preview-stage img{height:240px}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition:none!important}}
