.gyre-stage{--gyre-ease:cubic-bezier(0.22,1,0.36,1);--gyre-spring:cubic-bezier(0.2,1.4,0.35,1);--gyre-slot-w:42px;--gyre-slot-h:48px;--gyre-r-slot:12px;--gyre-stage-bg:rgba(0,106,105,0.035);--gyre-stage-border:rgba(0,106,105,0.15);--gyre-sunk:#ffffff;--gyre-sunk-border:#e2e8f0;--gyre-text:#0f172a;--gyre-ice:#006a69;--gyre-ice-lift:#006a69;--gyre-ice-glow:rgba(0,106,105,0.18);--gyre-ok:#0ea5a4;--gyre-ok-glow:rgba(14,165,164,0.30);--gyre-bad:#ef4444;--gyre-bad-glow:rgba(239,68,68,0.25);--gyre-track:rgba(0,106,105,0.22);--gyre-status-text:#64748b;position:relative;width:100%;background:var(--gyre-stage-bg);border:1px solid var(--gyre-stage-border);border-radius:20px;padding:24px 16px 20px;margin:14px 0;box-shadow:inset 0 1px 3px rgba(0,0,0,.02),0 2px 8px -2px rgba(0,0,0,.04);overflow:hidden;contain:paint;user-select:none;display:flex;flex-direction:column;align-items:center;justify-content:center;transition:border-color .25s ease,background-color .25s ease}.dark .gyre-stage,[data-theme=dark] .gyre-stage{--gyre-stage-bg:rgba(14,165,164,0.05);--gyre-stage-border:rgba(255,255,255,0.10);--gyre-sunk:#131a1d;--gyre-sunk-border:rgba(255,255,255,0.14);--gyre-text:#f8fafc;--gyre-ice:#0ea5a4;--gyre-ice-lift:#ffffff;--gyre-ice-glow:rgba(14,165,164,0.30);--gyre-ok:#2ee6a8;--gyre-ok-glow:rgba(46,230,168,0.35);--gyre-bad:#ff4d6a;--gyre-bad-glow:rgba(255,77,106,0.35);--gyre-track:rgba(14,165,164,0.25);--gyre-status-text:#94a3b8}.gyre-container{flex-direction:column;min-height:140px}.gyre-container,.gyre-wrap{position:relative;width:100%;display:flex;align-items:center;justify-content:center}.gyre-wrap{isolation:isolate;min-height:60px}.gyre-orbit{inset:0;z-index:1}.gyre-orbit,.gyre-orbit__ring{position:absolute;pointer-events:none}.gyre-orbit__ring{width:0;height:0;overflow:visible;opacity:0;transition:opacity .25s ease}.gyre-orbit__path{fill:none;stroke:var(--gyre-track);stroke-width:2;stroke-dasharray:4 4}.gyre-orbit__hub{position:absolute;width:10px;height:10px;margin:-5px 0 0 -5px;border-radius:50%;background:var(--gyre-ok);box-shadow:0 0 16px var(--gyre-ok-glow);opacity:0;pointer-events:none}.gyre-code{position:relative;z-index:2;display:flex;justify-content:center;align-items:center;gap:8px}@media (min-width:480px){.gyre-code{gap:10px}}.gyre-slot{position:relative;width:var(--gyre-slot-w);height:var(--gyre-slot-h);border-radius:var(--gyre-r-slot);background:var(--gyre-sunk);box-shadow:inset 0 0 0 1.5px var(--gyre-sunk-border),0 2px 6px rgba(0,0,0,.04);cursor:text;display:flex;align-items:center;justify-content:center;transition:box-shadow .2s var(--gyre-ease),background-color .2s var(--gyre-ease),transform .2s var(--gyre-ease);will-change:transform,opacity}.gyre-slot:hover{box-shadow:inset 0 0 0 1.5px var(--gyre-ice),0 2px 8px var(--gyre-ice-glow)}.gyre-slot:focus-within{background:var(--gyre-sunk);box-shadow:inset 0 0 0 2px var(--gyre-ice),0 0 0 4px var(--gyre-ice-glow);transform:translateY(-1px)}.gyre-stage[data-state=error] .gyre-slot{box-shadow:inset 0 0 0 2px var(--gyre-bad),0 0 0 4px var(--gyre-bad-glow);animation:gyre-shake .4s ease}.gyre-stage[data-locked] .gyre-slot{box-shadow:inset 0 0 0 2px var(--gyre-ok),0 0 0 5px var(--gyre-ok-glow)}.gyre-slot__input{position:absolute;inset:0;z-index:3;width:100%;height:100%;padding:0;border:0;background:transparent;color:transparent;caret-color:transparent;text-align:center;outline:none;font-family:inherit;font-size:1px}.gyre-slot__win{position:absolute;inset:0;z-index:2;overflow:hidden;border-radius:inherit;display:flex;align-items:center;justify-content:center;pointer-events:none}.gyre-slot__digit{font-size:21px;font-weight:700;font-family:ui-monospace,monospace;color:var(--gyre-text);line-height:1;display:inline-block}.gyre-slot__glow{inset:-4px;border-radius:calc(var(--gyre-r-slot) + 4px);background:var(--gyre-ice-glow);z-index:1}.gyre-slot__glow,.gyre-slot__spark{position:absolute;opacity:0;pointer-events:none}.gyre-slot__spark{inset:-1px;width:calc(100% + 2px);height:calc(100% + 2px);overflow:visible;z-index:4}.gyre-slot__arc{fill:none;stroke:var(--gyre-ice);stroke-width:2;stroke-dasharray:1;stroke-dashoffset:1}.gyre-seal{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;pointer-events:none;z-index:5;opacity:0;transform:scale(.6);transition:opacity .4s var(--gyre-ease),transform .5s var(--gyre-spring)}.gyre-stage[data-state=ok] .gyre-seal{opacity:1;transform:scale(1)}.gyre-seal__tile{position:relative;width:52px;height:52px;border-radius:14px;background:linear-gradient(135deg,#0ea5a4,#006a69);box-shadow:0 0 24px var(--gyre-ok-glow),0 8px 20px -4px rgba(0,0,0,.35);display:flex;align-items:center;justify-content:center;overflow:hidden}.gyre-seal__sheen{position:absolute;inset:0;background:linear-gradient(135deg,rgba(255,255,255,.45),transparent 50%);pointer-events:none}.gyre-seal__svg{width:28px;height:28px}.gyre-seal__check{stroke:#ffffff;stroke-width:3.5;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:1;stroke-dashoffset:1;animation:gyre-check .45s cubic-bezier(.16,1,.3,1) .15s forwards}@keyframes gyre-check{to{stroke-dashoffset:0}}.gyre-burst{inset:0;z-index:6;display:flex;align-items:center;justify-content:center}.gyre-burst,.gyre-mote{position:absolute;pointer-events:none}.gyre-mote{width:6px;height:6px;border-radius:50%;background:var(--gyre-ok);box-shadow:0 0 10px var(--gyre-ok-glow)}.gyre-status{margin-top:18px;display:flex;align-items:center;justify-content:center;min-height:22px}.gyre-status__item{font-size:.76rem;font-weight:600;display:inline-flex;align-items:center;gap:6px;letter-spacing:.01em;transition:color .2s ease,opacity .2s ease}.gyre-status--idle{color:var(--gyre-status-text);opacity:.85}.gyre-status--checking,.gyre-status--ready{color:var(--gyre-ice);font-weight:700}.gyre-status--ok{color:var(--gyre-ok);font-weight:700}.gyre-status--error{color:var(--gyre-bad);font-weight:700}.gyre-err{margin-top:8px;font-size:.78rem;font-weight:600;color:var(--gyre-bad);text-align:center}@keyframes gyre-shake{0%,to{transform:translateX(0)}20%,60%{transform:translateX(-5px)}40%,80%{transform:translateX(5px)}}@media (max-width:420px){.gyre-stage{--gyre-slot-w:36px;--gyre-slot-h:44px;--gyre-r-slot:10px;padding:20px 10px 16px}.gyre-slot__digit{font-size:19px}.gyre-code{gap:6px}}