:root { color-scheme:light; --ink:#10231e; --green:#153f35; --green2:#26735e; --mint:#eaf4ef; --line:#d8e4df; --muted:#60736c; --danger:#a33a38; --white:#fff; }
* { box-sizing:border-box; }
body { margin:0; min-height:100vh; background:linear-gradient(155deg,#eef6f2 0%,#faf8f2 58%,#edf2ee 100%); color:var(--ink); font-family:Inter,ui-sans-serif,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif; }
body::before { content:""; position:fixed; z-index:2; inset:0 0 auto; height:7px; background:linear-gradient(90deg,var(--green),#d7a44c); }
.shell { width:min(100%,560px); margin:0 auto; padding:30px 16px max(38px,env(safe-area-inset-bottom)); }
.brand { display:flex; align-items:center; gap:12px; margin:10px 4px 24px; }
.brand-mark { display:grid; place-items:center; width:44px; height:44px; border-radius:14px; background:var(--green); color:white; font:bold 22px Georgia,serif; box-shadow:0 8px 24px #153f3533; }
.brand h1 { margin:0; font:700 19px/1.1 Georgia,serif; }.brand p{margin:4px 0 0;color:var(--muted);font-size:13px}
.card { margin-bottom:16px; padding:22px; border:1px solid #fff; border-radius:22px; background:#ffffffee; box-shadow:0 16px 45px #153f3512; }
.intro h2,.checklist h2 { margin:4px 0 10px; font:700 28px/1.15 Georgia,serif; }.intro>p:not(.eyebrow){margin:0;color:var(--muted);line-height:1.55}
.eyebrow { margin:0 0 7px; color:var(--green2); font-size:11px; font-weight:800; letter-spacing:.13em; }
.privacy { margin-top:16px; padding:12px 13px; border-radius:12px; background:var(--mint); color:var(--green); font-size:13px; line-height:1.45; }
.section-heading { display:flex; align-items:flex-start; gap:13px; }.step{display:grid;place-items:center;flex:0 0 34px;height:34px;border-radius:50%;background:var(--green);color:#fff;font-weight:800}.section-heading h2{margin:0;font:700 23px/1.2 Georgia,serif}.section-heading p{margin:5px 0 0;color:var(--muted);font-size:14px;line-height:1.4}
.message,.error { margin:17px 0 13px; padding:11px 13px; border-radius:12px; background:#f3f6f4; color:var(--muted); font-size:13px; line-height:1.45; }.error{background:#fbeceb;color:var(--danger);font-weight:650}
.camera-frame { overflow:hidden; width:100%; aspect-ratio:3/4; margin:12px 0; border-radius:17px; background:#111d19; }.camera-frame video,.camera-frame canvas{display:block;width:100%;height:100%;object-fit:cover}.camera-frame video{transform:scaleX(-1)}
.actions{display:grid;gap:10px;margin-top:13px}button{width:100%;min-height:50px;border:0;border-radius:13px;padding:0 17px;font:750 15px inherit;cursor:pointer;touch-action:manipulation}.primary{background:var(--green);color:white;box-shadow:0 8px 18px #153f3525}.secondary{background:var(--mint);color:var(--green)}button:disabled{opacity:.55;cursor:wait}
.result-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:12px 0}.result-grid div,.gps-result div{padding:12px;border:1px solid var(--line);border-radius:12px}.result-grid span,.gps-result dt{display:block;color:var(--muted);font-size:11px;text-transform:uppercase;letter-spacing:.06em}.result-grid strong,.gps-result dd{display:block;margin:5px 0 0;font-size:14px;font-weight:750;overflow-wrap:anywhere}
.gps-result{display:grid;grid-template-columns:1fr 1fr;gap:9px;margin:13px 0}.gps-result div{margin:0}.checklist ul{list-style:none;margin:17px 0;padding:0;display:grid;gap:11px}.checklist li{display:flex;align-items:center;gap:9px;padding:12px;border-radius:12px;background:#f4f6f5;color:var(--muted);font-size:14px}.checklist li.pass{background:var(--mint);color:var(--green);font-weight:700}.checklist li.pass span{font-size:0}.checklist li.pass span::after{content:"✓";font-size:17px}
.hidden{display:none!important}.busy::after{content:"";display:inline-block;width:14px;height:14px;margin-left:8px;border:2px solid #ffffff66;border-top-color:white;border-radius:50%;vertical-align:-2px;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}
@media (orientation:landscape) and (max-height:560px){.shell{width:min(100%,760px)}.camera-frame{max-height:68vh;aspect-ratio:4/3}}
@media (max-width:370px){.shell{padding-inline:11px}.card{padding:18px}.gps-result{grid-template-columns:1fr}.intro h2{font-size:25px}}
@media (prefers-reduced-motion:reduce){*{animation:none!important}}

