.scanspin-root{--red:#c41230;--red-deep:#9f0712;--red-dark:#6b0710;--gold:#ffd93d;--gold-deep:#e6b800;--cream:#fff;--cream-2:#fafafa;--cream-3:#f2ece0;--ink:#1a1a1a;--ink-2:#2a2826;--mute:#1a1a1a8c;--mute-2:#1a1a1a61;--mute-light:#ffffffad;--line:#1a1a1a1a;--roo-red:var(--red);--roo-red-deep:var(--red-deep);--roo-cream:var(--cream);--roo-cream-2:var(--cream-2);--roo-gold:var(--gold);--roo-gold-deep:var(--gold-deep);--roo-dark:var(--ink);--roo-light:var(--cream);--united-red:var(--red);--united-yellow:var(--gold);--warm:var(--gold);--font-display:"Montserrat", system-ui, sans-serif;--font-sans:"Inter", system-ui, sans-serif;--font-mono:"JetBrains Mono", ui-monospace, monospace;--mx-dur-xs:.12s;--mx-dur-sm:.22s;--mx-dur-md:.36s;--mx-dur-lg:.62s;--mx-spring:cubic-bezier(.2,.9,.25,1.2);--mx-ease:cubic-bezier(.2,.7,.25,1);--mx-in:cubic-bezier(.4,0,1,.6);font-family:var(--font-sans);background:var(--ink);color:var(--cream);font-feature-settings:"ss01","cv11";-webkit-font-smoothing:antialiased;background-image:radial-gradient(900px 600px at 85% 20%,#c4123073 0%,#0000 60%),radial-gradient(700px 500px at 15% 85%,#ffd93d1a 0%,#0000 55%);background-color:var(--ink);min-height:100vh}.scanspin-root *,.scanspin-root :before,.scanspin-root :after{box-sizing:border-box}.scanspin-root button,.scanspin-root input,.scanspin-root [role=button]{-webkit-tap-highlight-color:transparent}.scanspin-fullscreen{background:var(--ink);width:100vw;height:100dvh;position:fixed;inset:0;overflow:hidden}.scanspin-fullscreen>.scene-frame{width:100%;height:100%;position:absolute;inset:0}.scanspin-root .mono{font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.12em;font-weight:500}.scanspin-root .rg-scene-bg{background:radial-gradient(ellipse 700px 500px at 80% 15%, #c412306b 0%, transparent 60%), radial-gradient(ellipse 500px 400px at 10% 90%, #ffd93d14 0%, transparent 55%), var(--ink)}.scanspin-root .rg-scene-bg-intense{background:radial-gradient(ellipse 900px 700px at 50% 15%, #c41230a6 0%, #6b071066 40%, transparent 75%), radial-gradient(ellipse 600px 500px at 50% 90%, #ffd93d1f 0%, transparent 60%), var(--ink)}.scanspin-root .stage-root{grid-template-columns:1fr auto 1fr;align-items:center;gap:32px;min-height:100vh;padding:32px;display:grid}@media (max-width:1100px){.scanspin-root .stage-root{grid-template-columns:1fr;padding:16px}.scanspin-root .stage-root>.side{display:none}}.scanspin-root .side{flex-direction:column;align-self:stretch;gap:16px;min-width:0;display:flex}.scanspin-root .side.right{align-items:flex-end}.scanspin-root .scene-rail{-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#ffffff05;border:1px solid #ffffff14;border-radius:24px;max-width:340px;padding:24px;position:sticky;top:32px}.scanspin-root .scene-rail h1{font-family:var(--font-display);letter-spacing:-.02em;margin:0 0 4px;font-size:28px;font-style:italic;font-weight:900;line-height:.95}.scanspin-root .scene-rail h1 em{color:var(--roo-gold);font-style:italic}.scanspin-root .scene-rail .sub{letter-spacing:.22em;text-transform:uppercase;color:#ffffff73;margin-bottom:20px;font-size:11px}.scanspin-root .scene-list{flex-direction:column;gap:2px;display:flex}.scanspin-root .scene-item{cursor:pointer;color:inherit;text-align:left;font:inherit;background:0 0;border:none;border-radius:12px;grid-template-columns:28px 1fr;align-items:center;gap:10px;width:100%;padding:10px;transition:background .12s;display:grid}.scanspin-root .scene-item:hover{background:#ffffff0a}.scanspin-root .scene-item.active{background:#e6c2881a}.scanspin-root .scene-item .num{font-family:var(--font-mono);color:#fff6;font-size:11px;font-weight:700}.scanspin-root .scene-item.active .num{color:var(--roo-gold)}.scanspin-root .scene-item .label{color:#ffffffb3;font-size:13px;font-weight:500}.scanspin-root .scene-item.active .label{color:#fff;font-weight:600}.scanspin-root .scene-item.done .num{color:var(--roo-red)}.scanspin-root .kbd-hint{color:#fff6;border-top:1px solid #ffffff14;margin-top:16px;padding-top:16px;font-size:11px;line-height:1.7}.scanspin-root .kbd{font-family:var(--font-mono);color:#fffc;background:#ffffff14;border-radius:4px;margin:0 2px;padding:2px 6px;font-size:10px}.scanspin-root .ctx-card{background:#ffffff05;border:1px solid #ffffff14;border-radius:20px;max-width:340px;padding:20px 22px}.scanspin-root .ctx-card .k{letter-spacing:.22em;text-transform:uppercase;color:var(--roo-gold);margin-bottom:6px;font-size:10px}.scanspin-root .ctx-card h2{font-family:var(--font-display);margin:0 0 10px;font-size:20px;font-style:italic;font-weight:900;line-height:1.05}.scanspin-root .ctx-card p{color:#ffffffa6;margin:0;font-size:13px;line-height:1.55}.scanspin-root .ctx-card .tech{font-family:var(--font-mono);color:#ffffff80;border-top:1px dashed #ffffff1a;margin-top:12px;padding-top:12px;font-size:11px;line-height:1.5}.scanspin-root .ctx-card .tech .pill{color:var(--roo-gold);background:#e6c2881f;border-radius:4px;margin-right:4px;padding:2px 6px;display:inline-block}.scanspin-root .phone-stage{flex-direction:column;align-items:center;gap:20px;display:flex}.scanspin-root .controls{background:#ffffff0a;border:1px solid #ffffff14;border-radius:999px;align-items:center;gap:8px;padding:8px;display:flex}.scanspin-root .ctrl-btn{color:#fff;cursor:pointer;background:#ffffff0f;border:none;border-radius:999px;justify-content:center;align-items:center;width:40px;height:40px;transition:background .12s,transform 80ms;display:flex}.scanspin-root .ctrl-btn:hover{background:#ffffff1f}.scanspin-root .ctrl-btn:active{transform:scale(.94)}.scanspin-root .ctrl-btn.primary{background:linear-gradient(180deg, var(--roo-gold) 0%, var(--roo-gold-deep) 100%);color:var(--roo-dark);letter-spacing:.04em;text-transform:uppercase;gap:8px;width:auto;padding:0 18px;font-size:13px;font-weight:700}.scanspin-root .ctrl-btn.primary:hover{filter:brightness(1.1)}.scanspin-root .ctrl-btn:disabled{opacity:.35;cursor:not-allowed}.scanspin-root .ctrl-ctr{font-family:var(--font-mono);color:#fff9;padding:0 10px;font-size:11px}.scanspin-root .scene-frame{background:var(--roo-dark);width:100%;height:100%;position:relative;overflow:hidden}.scanspin-root .spinner{border:2.5px solid #fff3;border-top-color:#fff;border-radius:999px;width:18px;height:18px;animation:.8s linear infinite scanspin-spin}@keyframes scanspin-spin{to{transform:rotate(360deg)}}@keyframes pulse-glow{0%,to{box-shadow:0 0 20px #e6c28866,0 0 40px #e6c28833}50%{box-shadow:0 0 30px #e6c288b3,0 0 60px #e6c28859}}@keyframes prize-pop{0%{opacity:0;transform:scale(0)rotate(-12deg)}60%{opacity:1;transform:scale(1.08)rotate(3deg)}to{opacity:1;transform:scale(1)rotate(0)}}@keyframes shimmer-x{0%{background-position:-200% 0}to{background-position:200% 0}}@keyframes fade-up{0%{opacity:0;transform:translateY(14px)}to{opacity:1;transform:translateY(0)}}@keyframes handoff-flash{0%{opacity:0;transform:scale(.9)}30%{opacity:1;transform:scale(1.05)}to{opacity:0;transform:scale(1.2)}}@keyframes confetti-fall{0%{opacity:0;transform:translateY(-20px)rotate(0)}10%{opacity:1}to{transform:translate3d(var(--tx), var(--ty), 0) rotate(var(--tr));opacity:0}}@keyframes confetti-burst{0%{opacity:0;transform:translate(0,0)rotate(0)scale(.3)}15%{opacity:1;transform:translate3d(calc(var(--tx) * .25), calc(var(--ty) * .15), 0) rotate(calc(var(--tr) * .3)) scale(1.1)}75%{opacity:1}to{transform:translate3d(var(--tx), var(--ty), 0) rotate(var(--tr)) scale(.9);opacity:0}}@keyframes confetti-ring{0%{opacity:1;border-width:4px;width:10px;height:10px;margin-top:-5px;margin-left:-5px}to{opacity:0;border-width:1px;width:560px;height:560px;margin-top:-280px;margin-left:-280px}}@keyframes confetti-flash{0%{opacity:0}20%{opacity:1}to{opacity:0}}body.scanspin-motion-reduced .scanspin-root *{transition-duration:80ms!important;animation-duration:0s!important}body.scanspin-motion-reduced .scanspin-root .mx-ambient{display:none!important}body.scanspin-motion-off .scanspin-root *{transition:none!important;animation:none!important}@media (prefers-reduced-motion:reduce){body:not(.scanspin-motion-off):not(.scanspin-motion-reduced) .scanspin-root *{transition-duration:80ms!important;animation-duration:0s!important}body:not(.scanspin-motion-off):not(.scanspin-motion-reduced) .scanspin-root .mx-ambient{display:none!important}}@keyframes mx-slide-in-right{0%{opacity:.6;transform:translate(100%)}to{opacity:1;transform:translate(0)}}@keyframes mx-slide-in-left{0%{opacity:.6;transform:translate(-100%)}to{opacity:1;transform:translate(0)}}@keyframes mx-gold-flash{0%{opacity:0}20%{opacity:1}to{opacity:0}}.scanspin-root .mx-scene-enter-fwd{animation:mx-slide-in-right var(--mx-dur-md) var(--mx-ease) both}.scanspin-root .mx-scene-enter-back{animation:mx-slide-in-left var(--mx-dur-md) var(--mx-ease) both}@keyframes mx-ripple{0%{opacity:.35;transform:scale(0)}to{opacity:0;transform:scale(2.4)}}@keyframes mx-wobble-x{0%,to{transform:translate(0)}20%{transform:translate(-2px)}40%{transform:translate(2px)}60%{transform:translate(-2px)}80%{transform:translate(2px)}}@keyframes mx-glow-pulse-red{0%,to{box-shadow:0 0 #c4123000}30%{box-shadow:0 0 0 6px #c4123059}to{box-shadow:0 0 0 14px #c4123000}}@keyframes mx-breathe-red{0%,to{opacity:.35}50%{opacity:.55}}@keyframes mx-pulse-gold{0%,to{transform:scale(1);box-shadow:0 0 #ffd93d99}50%{transform:scale(1.08);box-shadow:0 0 0 8px #ffd93d00}}@keyframes mx-coin-bob{0%,to{transform:translate(-50%,-50%)translateY(0)}50%{transform:translate(-50%,-50%)translateY(-4px)}}@keyframes mx-coin-rain{0%{opacity:0;transform:translateY(-20px)rotate(0)scale(.6)}15%{opacity:1}to{transform:translate3d(var(--tx), var(--ty), 0) rotate(var(--tr)) scale(1);opacity:0}}@keyframes mx-pointer-tick{0%{transform:translate(-50%)rotate(0)}40%{transform:translate(-50%)rotate(-14deg)}to{transform:translate(-50%)rotate(0)}}@keyframes mx-laser-sweep{0%{opacity:0;transform:translateY(-100%)}10%{opacity:1}90%{opacity:1}to{opacity:0;transform:translateY(100%)}}@keyframes mx-reticle-snap{0%{opacity:.6;transform:translate(-50%,-50%)scale(1.3)}to{opacity:1;transform:translate(-50%,-50%)scale(1)}}@keyframes mx-digit-pop{0%{opacity:0;transform:scale(.4)}60%{opacity:1;transform:scale(1.18)}to{opacity:1;transform:scale(1)}}@keyframes mx-shake-land{0%,to{transform:translate(0)}20%{transform:translate(-3px,2px)}40%{transform:translate(3px,-2px)}60%{transform:translate(-2px,1px)}80%{transform:translate(2px,-1px)}}@keyframes mx-processing-shimmer{0%{background-position:-200% 0}to{background-position:200% 0}}@keyframes mx-processing-bar{0%{transform:translate(-100%)}to{transform:translate(250%)}}@keyframes fade-in{0%{opacity:0}to{opacity:1}}@keyframes sheet-up{0%{transform:translateY(100%)}to{transform:translateY(0)}}.scanspin-root .mx-wobble{animation:mx-wobble-x .32s var(--mx-ease) both}.scanspin-root .mx-glow-err{animation:mx-glow-pulse-red .8s var(--mx-ease) both}.scanspin-root .mx-shake{animation:mx-shake-land .42s var(--mx-ease) both}.scanspin-root .mx-flash{pointer-events:none;background:radial-gradient(80% 60% at 50% 40%,#ffd93d73 0%,#0000 70%);animation:.34s ease-out both mx-gold-flash;position:absolute;inset:0}.scanspin-root .mx-tap{transition:transform .12s var(--mx-ease), box-shadow .18s var(--mx-ease), filter .18s var(--mx-ease);cursor:pointer;-webkit-tap-highlight-color:transparent;position:relative;overflow:hidden}.scanspin-root .mx-tap:active:not(:disabled){transform:scale(.96)}.scanspin-root .mx-tap:focus-visible{outline:none;box-shadow:0 0 0 2px #1a1a1a,0 0 0 4px #ffd93de6,0 0 24px #ffd93d73}.scanspin-root .mx-tap[disabled]{cursor:not-allowed}.scanspin-root .mx-ripple{pointer-events:none;width:120px;height:120px;animation:mx-ripple .52s var(--mx-ease) forwards;background:radial-gradient(circle,#ffd93d8c 0%,#ffd93d00 70%);border-radius:50%;margin:-60px 0 0 -60px;position:absolute;top:0;left:0}.scanspin-root .mx-tap--light .mx-ripple{background:radial-gradient(circle,#1a1a1a47 0%,#1a1a1a00 70%)}.scanspin-root .mx-ambient-breathe{animation:6s ease-in-out infinite mx-breathe-red}.scanspin-root .mx-gold-dot{width:6px;height:6px;animation:mx-pulse-gold 1.6s var(--mx-ease) infinite;background:#ffd93d;border-radius:999px;display:inline-block;box-shadow:0 0 #ffd93db3}.scanspin-root .glass{-webkit-backdrop-filter:blur(22px)saturate(1.6);backdrop-filter:blur(22px)saturate(1.6);background:#ffffff1a;border:1px solid #ffffff2e;position:relative;box-shadow:inset 0 1px #ffffff38,inset 0 -1px #0000001a,0 8px 24px -8px #00000059}.scanspin-root .glass.dark{background:#1a1a1a85;border-color:#ffffff1f;box-shadow:inset 0 1px #ffffff1a,inset 0 -1px #00000040,0 10px 30px -10px #0000008c}.scanspin-root .glass.gold{-webkit-backdrop-filter:blur(18px)saturate(1.8);backdrop-filter:blur(18px)saturate(1.8);background:linear-gradient(135deg,#ffd93d59 0%,#b88d3e40 100%);border-color:#ffd93d59;box-shadow:inset 0 1px #ffffff47,inset 0 -1px #00000026,0 12px 28px -10px #b88d3e73}.scanspin-root .glass:before{content:"";border-radius:inherit;pointer-events:none;background:linear-gradient(#ffffff24 0%,#0000 45%);position:absolute;inset:0}.scanspin-root .glass>*{z-index:1;position:relative}