:root{--paper:#f3f2ea;--card:#faf9f4;--ink:#1b1e24;--muted:#6b7066;--hairline:#d9d6c9;--green:#0f7a5c;--green-deep:#0c6a50;--green-tint:#0f7a5c14;--thread:#b23a48;--on-primary:#ffffff;--sans:"Public Sans",system-ui,-apple-system,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;--mono:"IBM Plex Mono","Cascadia Mono",Consolas,"SF Mono",ui-monospace,monospace;--container:1140px;--gutter:28px;--section-pad:clamp(88px,12vh,140px);--radius-card:12px;--radius-tile:10px;--shadow-card:0 24px 48px -12px rgba(27,30,36,0.16),0 4px 12px rgba(27,30,36,0.05);--shadow-soft:0 14px 32px rgba(27,30,36,0.07);--ease-out:cubic-bezier(0.22,0.61,0.36,1);--ease-stamp:cubic-bezier(0.34,1.4,0.5,1);--danger:var(--thread);--danger-tint:#b23a4814;--radius-input:8px;--field-h:52px}@font-face{font-family:Public Sans;src:url(/fonts/public-sans-latin-wght-normal.woff2) format("woff2-variations");font-weight:100 900;font-style:normal;font-display:swap}@font-face{font-family:IBM Plex Mono;src:url(/fonts/ibm-plex-mono-latin-400-normal.woff2) format("woff2");font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:IBM Plex Mono;src:url(/fonts/ibm-plex-mono-latin-500-normal.woff2) format("woff2");font-weight:500;font-style:normal;font-display:swap}@font-face{font-family:IBM Plex Mono;src:url(/fonts/ibm-plex-mono-latin-600-normal.woff2) format("woff2");font-weight:600;font-style:normal;font-display:swap}*,:after,:before{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body,html{background:var(--paper)}body{margin:0;min-height:100dvh;font-family:var(--sans);font-size:17px;line-height:1.6;color:var(--ink);border-top:3px solid var(--thread);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}img,svg{display:block;max-width:100%}h1,h2,h3{text-wrap:balance;margin:0}h1{font-size:clamp(30px,5vw,44px);font-weight:750;letter-spacing:-.03em;line-height:1.04}h2{font-size:clamp(22px,3vw,30px);font-weight:700;letter-spacing:-.02em}a{color:var(--green)}button{font-family:inherit}::selection{background:rgba(15,122,92,.18)}:focus-visible{outline:2px solid var(--green);outline-offset:3px;border-radius:2px}.visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.eyebrow{display:flex;align-items:baseline;gap:14px;margin:0 0 18px;font-family:var(--mono);font-size:12px;font-weight:500;letter-spacing:.18em;text-transform:uppercase;color:var(--green)}.eyebrow .idx{color:var(--muted);font-weight:400}.mrz{font-family:var(--mono);font-size:12px;letter-spacing:.18em;white-space:nowrap;overflow:hidden;text-overflow:clip;-webkit-user-select:none;-moz-user-select:none;user-select:none;line-height:1.8}.lede,.mrz{color:var(--muted)}.lede{font-size:17px;line-height:1.6;max-width:46ch}.btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;font-family:var(--sans);font-size:15px;font-weight:600;line-height:1;letter-spacing:.01em;text-decoration:none;padding:15px 26px;border-radius:var(--radius-input);border:1px solid var(--green);background:var(--green);color:var(--on-primary);transition:background .15s ease,border-color .15s ease,opacity .15s ease;cursor:pointer}.btn:hover{background:var(--green-deep);border-color:var(--green-deep)}.btn:disabled{opacity:.45;cursor:not-allowed}.btn.ghost{background:transparent;color:var(--green)}.btn.ghost:hover{background:var(--green-tint)}.btn.block{width:100%}.btn.lg{padding:17px 30px;font-size:16px}.tile{background:var(--card);border:1px solid var(--hairline);border-radius:var(--radius-tile);padding:22px 20px 18px}.tile .k{display:block;font-family:var(--mono);font-size:11px;font-weight:500;letter-spacing:.14em;color:var(--green);margin-bottom:10px}.tile h3{font-size:16px;font-weight:650;letter-spacing:-.01em;margin-bottom:6px}.tile p{font-size:14px;line-height:1.55;color:var(--muted);margin:0}.app-shell{min-height:calc(100dvh - 3px);flex-direction:column;padding:clamp(16px,4vh,48px) 18px 64px}.app-shell,.brandbar{display:flex;align-items:center}.brandbar{width:100%;max-width:480px;justify-content:space-between;margin-bottom:20px}.brand-logo{display:block;height:28px;width:auto;max-width:min(180px,55%);object-fit:contain;object-position:left center}.brand-name{font-family:var(--sans);font-size:20px;font-weight:750;letter-spacing:-.02em;line-height:1;color:var(--ink);max-width:60%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.provider-line{width:100%;max-width:480px;margin:14px 0 0;text-align:center;font-family:var(--mono);font-size:10px;letter-spacing:.16em;text-transform:uppercase;color:var(--muted)}html[data-brand=custom] body{border-top-color:var(--green)}.doc{width:100%;max-width:480px;background:var(--card);border:1px solid var(--hairline);border-radius:var(--radius-card);box-shadow:var(--shadow-soft);padding:clamp(22px,5vw,34px);position:relative;overflow:hidden}.doc:before{content:attr(data-form);position:absolute;top:12px;right:16px;font-family:var(--mono);font-size:8.5px;letter-spacing:.16em;color:var(--muted);opacity:.7;text-transform:uppercase}.doc-head{margin-bottom:22px}.doc{--doc-min-h:calc(100dvh - clamp(16px, 4vh, 48px) - 64px - 44px);display:flex;flex-direction:column;min-height:var(--doc-min-h)}@media (min-width:720px){.doc{--doc-min-h:min(calc(100dvh - 156px),760px)}}.doc>.stack{flex:1 1 auto}.doc>.stack.gap-sm{gap:10px}.doc>.stack.gap-md{gap:16px}.doc>.stack.gap-lg{gap:24px}.doc>.stack.gap-lg>*+*,.doc>.stack.gap-md>*+*,.doc>.stack.gap-sm>*+*{margin-top:0}.doc>.stack>.btn.lg.block,.doc>.stack>.shutter{margin-top:auto}.doc>.stack>:is(.btn.lg.block,.shutter)~:is(.btn.lg.block,.shutter){margin-top:0}.doc>.stack.center{justify-content:center}.prep{display:flex;flex-direction:column;gap:8px}.prep-row{display:flex;justify-content:space-between;align-items:baseline}.prep-pct{font-size:11px;letter-spacing:.08em;color:var(--muted)}.progress{height:6px;border-radius:999px;background:var(--hairline);overflow:hidden}.progress>i{display:block;height:100%;border-radius:999px;background:var(--green);transition:width .25s var(--ease-out)}.progress.error>i{background:var(--danger)}.prep-detail{margin:0;font-size:12px;color:var(--muted)}.doc-title{margin-bottom:10px}.stepper{display:flex;margin-bottom:22px;font-family:var(--mono);font-size:10px;letter-spacing:.12em;text-transform:uppercase;color:var(--muted);flex-wrap:wrap}.stepper,.stepper .node{align-items:center;gap:6px}.stepper .node{display:inline-flex}.stepper .dot{width:8px;height:8px;border-radius:999px;border:1px solid var(--hairline);background:transparent}.stepper .node.done .dot{background:var(--green);border-color:var(--green)}.stepper .node.active .dot{border-color:var(--green);box-shadow:0 0 0 3px var(--green-tint)}.stepper .node.active{color:var(--ink)}.stepper .dot.done{background:var(--green);border-color:var(--green)}.stepper .dot.active{border-color:var(--green);box-shadow:0 0 0 3px var(--green-tint)}.stepper .sep{flex:1 1;height:1px;min-width:8px;background:var(--hairline)}.field{margin-bottom:16px}.field-label,.field>label{display:block;font-family:var(--mono);font-size:10.5px;font-weight:500;letter-spacing:.16em;text-transform:uppercase;color:var(--muted);margin-bottom:8px}.input,.select{width:100%;height:var(--field-h);padding:0 14px;font-family:var(--sans);font-size:16px;color:var(--ink);background:#fff;border:1px solid var(--hairline);border-radius:var(--radius-input);transition:border-color .15s ease,box-shadow .15s ease}.input:focus,.select:focus{outline:none;border-color:var(--green);box-shadow:0 0 0 3px var(--green-tint)}.input:disabled,.select:disabled{color:var(--muted);background:var(--paper,#f6f5ef);cursor:not-allowed;opacity:1;-webkit-text-fill-color:var(--muted)}.input.err{border-color:var(--danger)}.otp{display:flex;gap:8px}.otp input{flex:1 1;height:58px;min-width:0;text-align:center;font-family:var(--mono);font-size:24px;font-weight:500;color:var(--ink);background:#fff;border:1px solid var(--hairline);border-radius:var(--radius-input)}.otp input:focus{outline:none;border-color:var(--green);box-shadow:0 0 0 3px var(--green-tint)}.chips{display:flex;flex-wrap:wrap;gap:8px}.chip{display:inline-flex;align-items:center;gap:7px;padding:7px 12px;background:#fff;border:1px solid var(--hairline);border-radius:999px;font-size:13px;color:var(--ink)}.chip svg{color:var(--green)}.pill{display:inline-flex;align-items:center;gap:8px;padding:5px 12px;border-radius:999px;background:var(--green);color:#fff;font-family:var(--mono);font-size:10.5px;font-weight:500;letter-spacing:.12em;text-transform:uppercase}.pill.muted{background:transparent;color:var(--muted);border:1px solid var(--hairline)}.pill.danger{background:var(--danger)}.stamp{display:inline-flex;align-items:center;justify-content:center;padding:10px 18px;border:3px double var(--green);border-radius:8px;color:var(--green);font-family:var(--mono);font-weight:600;font-size:20px;letter-spacing:.18em;text-transform:uppercase;transform:rotate(-6deg)}@media (prefers-reduced-motion:no-preference){.stamp.seal{animation:seal .5s var(--ease-stamp) both}}@keyframes seal{0%{opacity:0;transform:rotate(-6deg) scale(1.6)}to{opacity:1;transform:rotate(-6deg) scale(1)}}.stage{position:relative;width:100%;border-radius:var(--radius-card);overflow:hidden;background:#0d0f12;border:1px solid var(--hairline)}.stage.doc-stage{--doc-stage-max-h:max(220px,calc(var(--doc-min-h, 600px) - 340px));aspect-ratio:var(--feed-w,856) /var(--feed-h,540);max-height:var(--doc-stage-max-h);container-type:size}.stage.doc-stage .guide{inset:auto;left:50%;top:50%;transform:translate(-50%,-50%);width:min(90cqw,calc(86cqh * 1.585));aspect-ratio:85.6/54}.stage.portrait-ratio{aspect-ratio:3/4}@media (min-width:720px){.stage.portrait-ratio{width:min(100%,380px,calc((100vh - 340px) * .75));margin-inline:auto}}.stage canvas,.stage img,.stage video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}.stage .guide{position:absolute;inset:7% 5%;border:2px solid rgba(255,255,255,.85);border-radius:10px;box-shadow:0 0 0 100vmax rgba(6,8,10,.45);pointer-events:none}.stage.portrait-ratio .guide{inset:8% 14%;border-radius:50%;overflow:hidden;transition:border-color .25s var(--ease-out),box-shadow .38s var(--ease-out)}.stage .guide.ok{border-color:var(--green)}.stage .scanline{position:absolute;left:0;right:0;height:2px;background:var(--green);box-shadow:0 0 12px 1px rgba(15,122,92,.9);opacity:0}@media (prefers-reduced-motion:no-preference){.stage.scanning .scanline{opacity:1;animation:scan 1.7s var(--ease-out) infinite}}@keyframes scan{0%{top:6%;opacity:0}12%{opacity:1}88%{opacity:1}to{top:94%;opacity:0}}.stage[data-scan=r] .guide{border-color:rgba(224,49,68,.95);box-shadow:0 0 0 100vmax rgba(6,8,10,.45),0 0 0 3px rgba(224,49,68,.35),0 0 34px 8px rgba(224,49,68,.55)}.stage[data-scan=g] .guide{border-color:rgba(21,178,120,.95);box-shadow:0 0 0 100vmax rgba(6,8,10,.45),0 0 0 3px rgba(21,178,120,.35),0 0 34px 8px rgba(21,178,120,.55)}.stage[data-scan=b] .guide{border-color:rgba(43,108,224,.95);box-shadow:0 0 0 100vmax rgba(6,8,10,.45),0 0 0 3px rgba(43,108,224,.35),0 0 34px 8px rgba(43,108,224,.55)}.stage .scan-ring{position:absolute;inset:8% 14%;width:auto;height:auto;overflow:visible;pointer-events:none}.stage .scan-ring ellipse{fill:none;stroke:var(--green);stroke-width:3.5px;stroke-linecap:round;vector-effect:non-scaling-stroke;stroke-dasharray:100;stroke-dashoffset:100;transition:stroke-dashoffset .22s linear;transform:rotate(-90deg);transform-origin:50% 50%;filter:drop-shadow(0 0 7px rgba(15,122,92,.85))}.stage .capture-flash{position:absolute;inset:0;pointer-events:none;background:#fff;opacity:0;animation:capture-flash .36s var(--ease-out)}@keyframes capture-flash{0%{opacity:.92}to{opacity:0}}@media (prefers-reduced-motion:reduce){.stage .capture-flash{display:none}.stage .guide,.stage .scan-ring ellipse{transition:none}}.stage .countdown{position:absolute;inset:0;display:grid;place-items:center;pointer-events:none}.stage .countdown span{font-family:var(--font-mono,ui-monospace,monospace);font-feature-settings:"tnum";font-variant-numeric:tabular-nums;font-size:72px;font-weight:700;color:#fff;text-shadow:0 2px 18px rgba(0,0,0,.65)}@media (prefers-reduced-motion:no-preference){.stage .countdown span{animation:countdown-pop .32s var(--ease-out)}}@keyframes countdown-pop{0%{transform:scale(1.45);opacity:.2}to{transform:scale(1);opacity:1}}.stage .challenge-rail{position:absolute;top:12px;left:50%;transform:translateX(-50%);display:flex;gap:6px}.stage .challenge-rail span{width:32px;height:4px;border-radius:999px;background:rgba(255,255,255,.35);transition:background .2s var(--ease-out)}.stage .challenge-rail span[data-done=true]{background:var(--green);box-shadow:0 0 8px rgba(15,122,92,.7)}.stage .hint{position:absolute;left:50%;bottom:14px;transform:translateX(-50%);display:inline-flex;align-items:center;gap:8px;padding:7px 14px;border-radius:999px;background:rgba(6,8,10,.7);color:#fff;font-family:var(--mono);font-size:11px;letter-spacing:.06em;text-align:center;white-space:nowrap}.stage .hint[data-state=ok]{background:rgba(15,122,92,.88)}.stage .hint[data-state=low]{background:rgba(217,139,31,.92)}.stage.doc-stage .guide{transition:border-color .25s var(--ease-out),box-shadow .38s var(--ease-out)}.stage .submit-overlay{position:absolute;inset:0;z-index:3;display:grid;place-items:center;animation:fade-in .22s var(--ease-out)}.stage .submit-overlay .still{z-index:0;animation:still-in .36s var(--ease-out)}.stage .submit-overlay:before{content:"";position:absolute;inset:0;z-index:1;background:rgba(6,8,10,.38);transition:background .32s var(--ease-out)}.stage .submit-overlay[data-kind=accepted]:before{background:rgba(15,122,92,.32)}.stage .submit-overlay[data-kind=rejected]:before{background:rgba(6,8,10,.62)}.stage .status-card{position:relative;z-index:2;display:flex;flex-direction:column;align-items:center;gap:6px;max-width:min(86%,320px);padding:16px 20px 14px;border-radius:16px;background:rgba(13,15,18,.72);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);box-shadow:0 12px 32px rgba(0,0,0,.35),inset 0 0 0 1px rgba(255,255,255,.08);color:#fff;text-align:center;animation:card-in .32s var(--ease-out)}.stage .status-card .title{font-weight:600;font-size:15px;letter-spacing:.01em}.stage .status-card .sub{font-size:12px;line-height:1.4;color:rgba(255,255,255,.72)}.stage .status-card .btn{margin-top:8px}.ring{width:56px;height:56px;margin-bottom:4px}.ring .track{fill:none;stroke:rgba(255,255,255,.16);stroke-width:4}.ring .bar{fill:none;stroke:var(--green);stroke-width:4;stroke-linecap:round;stroke-dasharray:100;stroke-dashoffset:100;transform:rotate(-90deg);transform-origin:50% 50%;transition:stroke-dashoffset .22s linear}.ring.spin .bar{stroke-dasharray:28 100;stroke-dashoffset:0;transition:none}.ring.done .bar{stroke-dashoffset:0;transition:stroke-dashoffset .34s var(--ease-out)}.ring.fail .bar{stroke:var(--red,#e03144);stroke-dashoffset:0}.ring .cross,.ring .tick{fill:none;stroke:#fff;stroke-width:4;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:100;stroke-dashoffset:100}.ring.done .tick{animation:draw-stroke .38s var(--ease-out) .14s forwards}.ring.fail .cross{animation:draw-stroke .3s var(--ease-out) 80ms forwards}@keyframes draw-stroke{to{stroke-dashoffset:0}}@keyframes ring-spin{0%{transform:rotate(-90deg)}to{transform:rotate(270deg)}}@keyframes fade-in{0%{opacity:0}to{opacity:1}}@keyframes still-in{0%{opacity:0;transform:scale(1.03)}to{opacity:1;transform:none}}@keyframes card-in{0%{opacity:0;transform:translateY(8px) scale(.98)}to{opacity:1;transform:none}}@media (prefers-reduced-motion:no-preference){.ring.spin .bar{animation:ring-spin .9s linear infinite}}@media (prefers-reduced-motion:reduce){.stage .status-card,.stage .submit-overlay,.stage .submit-overlay .still{animation:none}.ring.done .tick,.ring.fail .cross{animation:none;stroke-dashoffset:0}}.meter{display:flex;flex-direction:column;gap:7px;margin-top:10px;font-family:var(--mono);font-size:11px;letter-spacing:.06em;text-align:center;color:var(--muted)}.meter-bar{position:relative;height:6px;border-radius:999px;background:var(--hairline)}.meter-bar>i{display:block;height:100%;border-radius:999px;background:var(--amber,#d98b1f);transition:width .2s var(--ease-out),background .32s var(--ease-out)}.meter[data-state=idle] .meter-bar>i{background:var(--hairline)}.meter[data-state=ok] .meter-bar>i{background:var(--green)}.meter[data-state=ok] span{color:var(--green)}.meter-bar>b{position:absolute;top:-4px;width:2px;height:14px;border-radius:1px;background:var(--ink,#1a1c17);opacity:.45;transform:translateX(-50%)}.cam-pick{display:flex;align-items:center;gap:10px;font-family:var(--mono);font-size:10.5px;letter-spacing:.16em;text-transform:uppercase;color:var(--muted)}.cam-pick .select{flex:1 1 auto;width:auto;height:36px;padding:0 10px;font-size:14px}.cam-info{display:flex;flex-wrap:wrap;justify-content:center;align-items:center;gap:4px 10px;font-size:12px;text-align:center}.cam-info>span{display:inline-flex;align-items:center;gap:6px}.shutter{width:66px;height:66px;border-radius:999px;background:#fff;border:4px solid var(--green);cursor:pointer;margin:18px auto 0;display:block;transition:transform .1s ease}.shutter:active{transform:scale(.93)}.shutter:disabled{opacity:.5;cursor:not-allowed}.receipt dl{margin:18px 0 0;display:grid;grid-template-columns:auto 1fr;grid-gap:10px 16px;gap:10px 16px;font-family:var(--mono);font-size:12px}.receipt dt{color:var(--muted);letter-spacing:.1em;text-transform:uppercase}.receipt dd{margin:0;color:var(--ink);text-align:right;word-break:break-all}.qr-panel{display:flex;flex-direction:column;align-items:center;text-align:center;gap:14px}.qr-frame{padding:14px;background:#fff;border:1px solid var(--hairline);border-radius:var(--radius-card)}.qr-frame canvas,.qr-frame img{width:220px;height:220px}.bridge-rail{display:flex;gap:6px;align-items:center;font-family:var(--mono);font-size:10px;letter-spacing:.1em;text-transform:uppercase;color:var(--muted)}.stack{display:flex;flex-direction:column}.stack.gap-sm>*+*{margin-top:10px}.stack.gap-md>*+*{margin-top:16px}.stack.gap-lg>*+*{margin-top:24px}.row{display:flex;gap:12px}.row.wrap{flex-wrap:wrap}.center{text-align:center}.muted{color:var(--muted)}.mono{font-family:var(--mono)}.error-note{color:var(--danger);font-size:14px;margin:8px 0 0}.notice{padding:12px 14px;border-radius:var(--radius-input);border:1px solid var(--hairline);background:var(--card);font-size:14px;color:var(--muted)}.notice.warn{border-color:var(--danger);background:var(--danger-tint);color:var(--ink)}.spinner{width:34px;height:34px;border-radius:999px;border:3px solid var(--hairline);border-top-color:var(--green);margin:0 auto}@media (prefers-reduced-motion:no-preference){.spinner{animation:spin .8s linear infinite}}@keyframes spin{to{transform:rotate(1turn)}}.link-btn{background:none;border:0;color:var(--green);font-size:14px;cursor:pointer;padding:4px;font-family:var(--sans)}.link-btn:hover{text-decoration:underline}.stage .palm-overlay,.stage .palm-rail{pointer-events:none}.stage .palm-rail{position:absolute;top:12px;left:50%;transform:translateX(-50%);display:flex;gap:6px;padding:6px 10px;border-radius:999px;background:rgba(6,8,10,.55)}.stage .palm-rail span{width:8px;height:8px;border-radius:999px;background:rgba(255,255,255,.28);transition:background .15s ease,transform .15s ease}.stage .palm-rail span[data-state=active]{background:#fff;transform:scale(1.2)}.stage .palm-rail span[data-state=done]{background:var(--green)}.stage .palm-rail span.gesture{width:12px;border-radius:3px}.stage .palm-pinch-cue{position:absolute;top:44px;left:50%;transform:translateX(-50%);display:flex;align-items:center;gap:12px;max-width:calc(100% - 28px);padding:10px 16px 10px 12px;border-radius:14px;background:rgba(6,8,10,.72);color:#fff;pointer-events:none}.stage .palm-pinch-cue strong{display:block;font-size:17px;font-weight:700;line-height:1.15}.stage .palm-pinch-cue span{display:block;margin-top:2px;font-size:12.5px;line-height:1.3;color:rgba(255,255,255,.82)}.stage .palm-pinch-cue[data-cue=closer]{background:rgba(178,58,72,.82)}.stage .palm-pinch-cue[data-cue=hold]{background:rgba(15,122,92,.82)}.pinch-icon{flex:0 0 auto}.pinch-icon .pinch-line{stroke:rgba(255,255,255,.5);stroke-width:2;stroke-dasharray:3 4}.pinch-icon .pinch-tip{fill:#dfff65}.pinch-icon.closing .pinch-tip{fill:#5fd48f}@media (prefers-reduced-motion:no-preference){.pinch-icon .pinch-tip-a{animation:pinch-a 1.6s var(--ease-out) infinite}.pinch-icon .pinch-tip-b{animation:pinch-b 1.6s var(--ease-out) infinite}.pinch-icon.closing .pinch-tip-a,.pinch-icon.closing .pinch-tip-b{animation:none;transform:translateX(0)}.pinch-icon.closing .pinch-tip-a{transform:translateX(9px)}.pinch-icon.closing .pinch-tip-b{transform:translateX(-9px)}}@keyframes pinch-a{0%,15%{transform:translateX(0)}55%,70%{transform:translateX(9px)}to{transform:translateX(0)}}@keyframes pinch-b{0%,15%{transform:translateX(0)}55%,70%{transform:translateX(-9px)}to{transform:translateX(0)}}