html,body{width:100%;height:100%;overflow:hidden}#status-bar{position:fixed;top:12px;left:12px;display:flex;align-items:center;gap:8px;padding:6px 12px;background:#172c49cc;border-radius:20px;font-size:12px;color:var(--text-secondary);z-index:100;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}#connection-dot{width:8px;height:8px;border-radius:50%;background:var(--accent);flex-shrink:0;transition:background .3s}#connection-dot.connected{background:#34d399}#wheel-container{display:flex;align-items:center;justify-content:center;width:100%;height:100%}#wheel-canvas{display:block;max-width:90vw;max-height:85vh}#qr-container{position:fixed;bottom:24px;right:24px;width:200px;padding:16px;background:#172c49d9;border-radius:0 10px 0 20px;border:1px solid var(--border);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);z-index:50;text-align:center;transition:opacity .4s,transform .4s}#qr-container.hidden{opacity:0;pointer-events:none;transform:translateY(20px)}#qr-code svg,#qr-code img{width:100%;height:auto;border-radius:4px}.qr-url{margin-top:8px;font-size:11px;color:var(--text-secondary);word-break:break-all;line-height:1.3}.sti-logo{width:160px;height:auto;margin-bottom:10px}.qr-label{margin-bottom:8px;font-size:13px;font-weight:600;color:var(--text-primary);letter-spacing:.5px;text-transform:uppercase}#result-overlay{position:fixed;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;background:#0f1f36cc;z-index:200;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);transition:opacity .3s}#result-overlay.hidden{opacity:0;pointer-events:none}#result-overlay:not(.hidden) #result-content{animation:resultScaleIn .5s cubic-bezier(.34,1.56,.64,1) forwards}#result-content{text-align:center;padding:48px 64px;border-radius:24px;background:#172c49f2;border:2px solid var(--border);box-shadow:0 8px 48px #0009;max-width:80vw}#result-label{font-size:clamp(48px,8vw,120px);font-weight:800;color:#fff;line-height:1.2;margin-bottom:16px;text-shadow:0 4px 20px rgba(0,0,0,.5)}#result-subtitle{font-size:clamp(18px,3vw,32px);color:var(--text-secondary);font-weight:400}@keyframes resultScaleIn{0%{transform:scale(.3);opacity:0}60%{transform:scale(1.05);opacity:1}80%{transform:scale(.97)}to{transform:scale(1);opacity:1}}
