:root{--ink: #0a0b0d;--ink-2: #12141a;--line: rgba(255, 244, 220, .12);--paper: #f4efe4;--muted: #b7b0a3;--gold: #e8c36a;--gold-2: #f3d78a;--good: #8fd6a8;--bad: #e08b7a;--warn: #e6c27a;--safe: env(safe-area-inset-top, 0px);--safe-b: env(safe-area-inset-bottom, 0px)}*{box-sizing:border-box}html,body,#root{height:100%}body{margin:0;color:var(--paper);background:radial-gradient(1200px 700px at 80% -10%,rgba(232,195,106,.12),transparent 55%),radial-gradient(900px 500px at 0% 100%,rgba(143,214,168,.07),transparent 50%),var(--ink);font-family:Outfit,system-ui,sans-serif;-webkit-font-smoothing:antialiased}button,input,select{font:inherit}h1,h2,.serif{font-family:Fraunces,Georgia,serif;font-weight:560;letter-spacing:-.03em}.demo{min-height:100dvh;padding:calc(28px + var(--safe)) 20px calc(40px + var(--safe-b));max-width:980px;margin:0 auto}.brand{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:48px}.mark{display:inline-flex;align-items:center;gap:10px;font-weight:600;letter-spacing:.04em;text-transform:uppercase;font-size:13px}.mark i{width:18px;height:18px;border:1.5px solid var(--gold);border-radius:99px;position:relative}.mark i:after{content:"";position:absolute;inset:4px;border-radius:99px;background:var(--gold)}.hero h1{font-size:clamp(40px,8vw,76px);line-height:.95;margin:0 0 16px}.hero p{max-width:36rem;color:var(--muted);font-size:17px;line-height:1.5}.panel{margin-top:36px;padding:22px;border:1px solid var(--line);background:#12141ab8;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);border-radius:24px}.row{display:flex;flex-wrap:wrap;gap:12px;align-items:center}label.field{display:flex;flex-direction:column;gap:6px;color:var(--muted);font-size:12px;letter-spacing:.04em;text-transform:uppercase}select,.ghost{appearance:none;background:#0d0f13;color:var(--paper);border:1px solid var(--line);border-radius:14px;padding:12px 14px}.btn{border:0;border-radius:999px;padding:13px 20px;background:linear-gradient(180deg,var(--gold-2),var(--gold));color:#2a1f0a;font-weight:600;cursor:pointer}.btn:disabled{opacity:.5;cursor:wait}.btn.secondary{background:transparent;color:var(--paper);border:1px solid var(--line)}.result{margin-top:18px;padding:16px 18px;border-radius:16px;border:1px solid var(--line)}.result.pass{border-color:#8fd6a873}.result.fail{border-color:#e08b7a73}.result code{display:block;margin-top:8px;color:var(--muted);font-size:12px;word-break:break-all}.capture{position:relative;height:100dvh;overflow:hidden;background:#050608}video.cam{width:100%;height:100%;object-fit:cover;transform:scaleX(-1)}.overlay{position:absolute;inset:0;display:grid;place-items:center;pointer-events:none}.oval{width:min(86vw,68vh,520px);aspect-ratio:3 / 4;border-radius:50%;box-shadow:0 0 0 200vmax #0506089e;border:3px solid rgba(244,239,228,.34);transition:border-color .16s ease,border-width .16s ease,box-shadow .16s ease}.oval.ready{border-width:10px;border-color:var(--good);box-shadow:0 0 0 200vmax #05060875,0 0 0 18px #8fd6a847}.oval.busy{border-width:8px;border-color:var(--gold)}.hud{position:absolute;inset:0;display:flex;flex-direction:column;justify-content:space-between;padding:calc(16px + var(--safe)) 18px calc(22px + var(--safe-b))}.chips{display:flex;flex-wrap:wrap;gap:8px}.chip{pointer-events:none;padding:6px 10px;border-radius:999px;background:#0a0b0d94;border:1px solid var(--line);font-size:12px;color:var(--muted)}.chip.on{color:var(--good);border-color:#8fd6a859}.prompt{text-align:center;max-width:22rem;margin:0 auto}.prompt strong{display:block;font-family:Fraunces,serif;font-size:clamp(26px,5vw,38px);line-height:1.1}.age-readout{display:block;margin-top:14px;color:var(--gold-2);font-size:15px;letter-spacing:.04em}.age-readout.muted{color:var(--muted, rgba(255, 255, 255, .55));font-size:13px;margin-top:10px}.sheet{position:absolute;inset:0;display:flex;flex-direction:column;justify-content:flex-end;padding:calc(20px + var(--safe)) 18px calc(24px + var(--safe-b));background:linear-gradient(180deg,#0a0b0d26,#0a0b0de0 42%,#0a0b0d)}.sheet .card{max-width:460px;width:100%;margin:0 auto}.note{color:var(--muted);line-height:1.5}@media(orientation:landscape)and (max-height:520px){.oval{width:min(48vw,78vh,560px);aspect-ratio:3 / 4}.hero h1{font-size:44px}}@media(min-width:960px){.demo{padding-top:56px}}
