:root{--ink:#06070d;--ink-2:#0b0e1a;--card:#141828;--card-2:#0e1120;--sunk:#ffffff09;--cream:#edf0fb;--muted:#edf0fb9e;--dim:#edf0fb99;--faint:#edf0fb57;--line:#edf0fb1a;--accent:#8b5cf6;--accent-lift:#b493ff;--accent-glow:#8b5cf66b;--ok:#1fe0c8;--ok-glow:#1fe0c857;--bad:#ff4d6d;--bad-glow:#ff4d6d4d;--font-display:"Space Grotesk", ui-sans-serif, system-ui, sans-serif;--font-ui:"Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--r-slot:18px;--r-card:30px;--ease:cubic-bezier(.22, 1, .36, 1);--spring:cubic-bezier(.2, 1.35, .35, 1)}*{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{background:var(--ink);min-height:100dvh;color:var(--cream);font-family:var(--font-ui);-webkit-font-smoothing:antialiased;justify-content:center;align-items:center;margin:0;padding:24px 20px;font-size:16px;line-height:1.5;display:flex;overflow-x:hidden}.sr-only{clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.room{z-index:0;pointer-events:none;background:radial-gradient(78% 46% at 50% 8%, #8b5cf629, transparent 68%), radial-gradient(96% 60% at 50% 112%, #1fe0c812, transparent 64%), linear-gradient(180deg, var(--ink-2), var(--ink) 62%);position:fixed;inset:0}.room:after{content:"";opacity:.04;background-image:url(/textures/grain.png);background-size:220px;position:absolute;inset:0}.stage{z-index:1;flex-direction:column;align-items:center;gap:clamp(22px,5vh,40px);width:100%;max-width:420px;display:flex;position:relative}.masthead{text-align:center}.masthead__eyebrow{letter-spacing:.22em;text-transform:uppercase;color:var(--dim);margin:0 0 10px;font-size:11px;font-weight:600}.masthead__title{font-family:var(--font-display);letter-spacing:-.028em;background:linear-gradient(120deg, var(--cream) 34%, var(--accent-lift));color:#0000;-webkit-background-clip:text;background-clip:text;margin:0;font-size:clamp(30px,8.6vw,46px);font-weight:700;line-height:1}.sheet{border-radius:var(--r-card);background:linear-gradient(168deg, var(--card), var(--card-2));width:100%;padding:20px 22px 22px;position:relative;overflow:hidden;box-shadow:inset 0 1px #ffffff12,0 1px #ffffff0a,0 40px 80px -30px #000000e6,0 0 0 1px #ffffff0b}.sheet:focus{outline:none}.sheet__grabber{background:#edf0fb29;border-radius:99px;width:42px;height:4px;margin:0 auto 22px;display:block}.sheet__flood{z-index:0;pointer-events:none;opacity:0;transition:opacity .8s var(--ease);background:radial-gradient(70% 44% at 50% 52%, var(--ok-glow), transparent 72%), radial-gradient(120% 80% at 50% 50%, #1fe0c81a, transparent 70%);position:absolute;inset:0}.sheet[data-state=ok] .sheet__flood{opacity:1}.verify{z-index:1;text-align:center;margin:0;position:relative}.verify__title,.verify__sub{display:grid;position:relative}.verify__title-in,.verify__sub-in{transition:opacity .52s var(--ease), transform .52s var(--ease);grid-area:1/1}.verify__title{font-family:var(--font-display);letter-spacing:-.014em;color:var(--cream);margin:0 0 8px;font-size:21px;font-weight:600}.verify__sub{color:var(--muted);text-wrap:balance;margin:0 0 26px;font-size:13.5px;line-height:1.55}.verify__sub b{color:#edf0fbdb;font-weight:600}[data-title-ok],[data-sub-ok]{opacity:0;pointer-events:none;transform:translateY(6px)}.sheet[data-state=ok] [data-title-idle],.sheet[data-state=ok] [data-sub-idle]{opacity:0;transform:translateY(-6px)}.sheet[data-state=ok] [data-title-ok],.sheet[data-state=ok] [data-sub-ok]{opacity:1;transition-delay:.14s;transform:none}.code-wrap{isolation:isolate;position:relative}.code{justify-content:center;gap:clamp(8px,2.6vw,13px);display:flex;position:relative}.code.is-merged{opacity:0;pointer-events:none}.slot{aspect-ratio:60/70;border-radius:var(--r-slot);background:var(--sunk);max-width:70px;box-shadow:inset 0 0 0 1px var(--line);cursor:text;transition:box-shadow .28s var(--ease), background-color .28s var(--ease);flex:1 1 0;position:relative}.slot.is-filled{background:#8b5cf612;box-shadow:inset 0 0 0 1px #8b5cf66b}html:not(.otp-live) .slot:focus-within{box-shadow:inset 0 0 0 1.5px var(--accent), 0 0 0 4px #8b5cf624;background:#8b5cf61a}.code__cursor{z-index:4;pointer-events:none;border-radius:var(--r-slot);box-shadow:inset 0 0 0 1.5px var(--accent), 0 0 0 4px #8b5cf624;opacity:0;transition:opacity .22s linear, transform .46s var(--spring);background:#8b5cf61a;position:absolute;top:0;left:0}.code__cursor.is-on{opacity:1}.code__cursor:before{content:"";border-radius:calc(var(--r-slot) + 7px);background:radial-gradient(60% 60% at 50% 50%, var(--accent-glow), transparent 72%);position:absolute;inset:-16%}.code__cursor:after{content:"";background:var(--accent-lift);border-radius:2px;width:2px;height:40%;margin-left:-1px;animation:1.1s step-end infinite blink;position:absolute;top:30%;left:50%}.code__cursor.is-moving:after,.code__cursor.has-digit:after{opacity:0;animation:none}@keyframes blink{0%,55%{opacity:1}56%,to{opacity:0}}.slot__input{z-index:3;border-radius:inherit;width:100%;height:100%;font-family:var(--font-display);color:var(--cream);caret-color:var(--accent-lift);text-align:center;-webkit-tap-highlight-color:transparent;background:0 0;border:0;outline:none;padding:0;font-size:clamp(22px,6.8vw,30px);font-weight:600;position:absolute;inset:0}.otp-live .slot__input{color:#0000;caret-color:#0000}.slot__input::selection{background:0 0}.slot__input::-webkit-contacts-auto-fill-button{opacity:0}.slot__win{z-index:2;border-radius:inherit;contain:paint;position:absolute;inset:0;overflow:hidden}.slot__digit{font-family:var(--font-display);font-variant-numeric:tabular-nums;color:var(--cream);place-items:center;font-size:clamp(22px,6.8vw,30px);font-weight:600;line-height:1;display:grid;position:absolute;inset:0}.slot__flash{z-index:1;pointer-events:none;border-radius:calc(var(--r-slot) + 3px);background:radial-gradient(58% 58% at 50% 50%, var(--accent-glow), transparent 70%);opacity:0;position:absolute;inset:-6%}.slot__spark{z-index:3;pointer-events:none;opacity:0;width:100%;height:100%;position:absolute;inset:0;overflow:visible}.slot__arc{fill:none;stroke:var(--accent-lift);stroke-width:1.7px;stroke-dasharray:.13 .87;stroke-dashoffset:1px;filter:drop-shadow(0 0 4px var(--accent))}.sheet[data-state=error] .slot__arc{stroke:var(--bad)}.scan{z-index:4;pointer-events:none;opacity:0;background:linear-gradient(100deg,#0000 34%,#b493ff33 47%,#b493ff61 50%,#b493ff33 53%,#0000 66%);position:absolute;inset:-8px -12px;transform:translate(-100%);-webkit-mask-image:linear-gradient(#0000,#000 22% 78%,#0000);mask-image:linear-gradient(#0000,#000 22% 78%,#0000)}.sheet[data-state=checking] .scan{opacity:1;animation:.75s cubic-bezier(.5,0,.5,1) 2 sweep}@keyframes sweep{0%{transform:translate(-100%)}to{transform:translate(100%)}}.sheet[data-state=checking] .slot{background:#8b5cf60f;box-shadow:inset 0 0 0 1px #8b5cf64d}.sheet[data-state=checking] .slot__digit{color:#edf0fb9e}.sheet[data-state=error] .slot,.sheet[data-state=error] .slot.is-filled{background:#ff4d6d14;box-shadow:inset 0 0 0 1.5px #ff4d6d9e}.sheet[data-state=error] html:not(.otp-live) .slot:focus-within,html:not(.otp-live) .sheet[data-state=error] .slot:focus-within{box-shadow:inset 0 0 0 1.5px var(--bad), 0 0 0 4px #ff4d6d29}.sheet[data-state=error] .code__cursor{box-shadow:inset 0 0 0 1.5px var(--bad), 0 0 0 4px #ff4d6d29;background:#ff4d6d1a}.sheet[data-state=error] .code__cursor:before{background:radial-gradient(60% 60% at 50% 50%, var(--bad-glow), transparent 72%)}.sheet[data-state=error] .code__cursor:after{background:#ffc2cd}.sheet[data-state=checking] .code__cursor{opacity:0}.sheet[data-state=error] .slot__digit{color:#ffc2cd}.sheet[data-state=error] .code{animation:.46s cubic-bezier(.36,.07,.19,.97) shake}@keyframes shake{0%,to{transform:translate(0,0)}16%{transform:translate(-7px)}33%{transform:translate(6px)}50%{transform:translate(-4px)}68%{transform:translate(3px)}84%{transform:translate(-1.5px)}}.verify__err{color:#ff8ea1;opacity:0;min-height:18px;transition:opacity .3s var(--ease), transform .3s var(--ease);margin:14px 0 0;font-size:12.5px;font-weight:500;line-height:18px;transform:translateY(-4px)}.sheet[data-state=error] .verify__err{opacity:1;transform:none}.seal{z-index:5;visibility:hidden;opacity:0;pointer-events:none;place-items:center;transition:opacity .2s linear,visibility 0s linear .2s;display:grid;position:absolute;inset:0}.sheet[data-state=ok] .seal{visibility:visible;opacity:1;transition:opacity .2s linear,visibility}.seal__svg{filter:drop-shadow(0 6px 22px #1fe0c852);width:62px;height:62px;overflow:visible}.seal__plate{fill:#0a141edb;stroke:none}.seal__ring{fill:none;stroke:var(--ok);stroke-width:2.4px;stroke-dasharray:1;stroke-dashoffset:1px}.seal__check{fill:none;stroke:#fff;stroke-width:4.4px;stroke-dasharray:1;stroke-dashoffset:1px}.seal__pulse{width:62px;height:62px;box-shadow:0 0 0 1.5px var(--ok);opacity:0;border-radius:20px;margin:auto;position:absolute;inset:0}.verify__actions{min-height:38px;margin-top:18px;display:grid}.verify__foot,.verify__done{transition:opacity .4s var(--ease), transform .4s var(--ease);grid-area:1/1;justify-content:center;align-items:center;gap:8px;display:flex}.verify__foot{color:var(--muted);font-size:12.5px}.verify__done{opacity:0;pointer-events:none;transform:translateY(8px)}.sheet[data-state=ok] .verify__foot{opacity:0;pointer-events:none;transform:translateY(-8px)}.sheet[data-state=ok] .verify__done{opacity:1;pointer-events:auto;transition-delay:1.05s;transform:none}.cta{background:linear-gradient(140deg, #4df0da, var(--ok));color:#04211d;font:inherit;letter-spacing:-.005em;cursor:pointer;transition:transform .24s var(--spring), filter .2s;border:0;border-radius:99px;padding:10px 30px;font-size:13.5px;font-weight:600}.cta:hover{filter:brightness(1.08)}.cta:active{transform:scale(.96)}.cta:focus-visible{outline:2px solid var(--ok);outline-offset:3px}.resend{box-shadow:inset 0 0 0 1px var(--line);color:var(--cream);font:inherit;cursor:pointer;transition:background-color .24s var(--ease), transform .24s var(--spring), color .24s;background:#edf0fb0f;border:0;border-radius:99px;align-items:center;gap:7px;padding:6px 12px 6px 9px;font-size:12.5px;font-weight:600;display:inline-flex}.resend:hover:not(:disabled){background:#8b5cf62e}.resend:active:not(:disabled){transform:scale(.96)}.resend:focus-visible{outline:2px solid var(--accent-lift);outline-offset:3px}.resend:disabled{cursor:default;color:var(--dim);background:#edf0fb09}.resend__ring{opacity:0;width:15px;height:15px;transition:opacity .24s;display:block}.resend:disabled .resend__ring{opacity:1}.resend__ring svg{width:100%;height:100%;display:block;transform:rotate(-90deg)}.resend__ring circle{stroke:var(--accent-lift);stroke-width:3px;stroke-dasharray:1;stroke-dashoffset:var(--cool,0);stroke-linecap:round}.sms{z-index:6;text-align:left;opacity:0;transition:opacity .42s var(--ease), transform .52s var(--spring);background:linear-gradient(170deg,#232941,#1a1f33);border-radius:18px;align-items:center;gap:11px;padding:11px 11px 11px 13px;display:flex;position:absolute;bottom:14px;left:14px;right:14px;transform:translateY(130%);box-shadow:inset 0 0 0 1px #ffffff1a,0 18px 40px -14px #000000d9}.sms.is-in{opacity:1;transform:translate(0,0)}.sms__icon{background:linear-gradient(150deg, var(--accent), #6b3fe0);color:#fff;border-radius:10px;flex:none;place-items:center;width:30px;height:30px;display:grid}.sms__icon svg{width:17px;height:17px}.sms__body{flex:auto;min-width:0;line-height:1.35;display:block}.sms__from{letter-spacing:.09em;text-transform:uppercase;color:var(--dim);font-size:10px;font-weight:600;display:block}.sms__text{color:#edf0fbd1;white-space:nowrap;text-overflow:ellipsis;font-size:12.5px;display:block;overflow:hidden}.sms__text b{font-family:var(--font-display);letter-spacing:.06em;color:var(--cream);font-weight:600}.sms__fill{background:var(--cream);color:#14162a;font:inherit;cursor:pointer;transition:transform .24s var(--spring), background-color .2s;border:0;border-radius:99px;flex:none;padding:7px 14px;font-size:12.5px;font-weight:600}.sms__fill:hover{background:#fff}.sms__fill:active{transform:scale(.94)}.sms__fill:focus-visible{outline:2px solid var(--accent-lift);outline-offset:3px}.hint{text-align:center;color:var(--dim);margin:0;font-size:12.5px}.hint__b{font-family:var(--font-display);letter-spacing:.06em;color:#edf0fb9e;font-weight:600}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}.verify__title-in,.verify__sub-in,.sheet__flood,.verify__err,.sms{transition-duration:.2s!important}.sms{transform:none}.code__cursor:after{opacity:1;animation:none}.scan{display:none}}
