:root{--void:#0c0b09;--surface:#131110;--surface-2:#1a1814;--surface-3:#232018;--surface-4:#2c2820;--border:#f0e4c40f;--border-mid:#f0e4c421;--border-hi:#f0e4c438;--text:#ede5cc;--text-muted:#7a7060;--text-faint:#4a4538;--gold:#c8921e;--amber:#e8a641;--ember:#c8921e1a;--ember-hi:#c8921e2e;--on-gold:#0c0906;--teal:#5cc4b0;--teal-bg:#5cc4b01a;--danger:#b03020;--topbar-bg:#0a0907eb;--topbar-border:#f0e4c41a;--grain-opacity:.032;--glow-opacity:1;--serif:"Cormorant Garamond", Georgia, serif;--sans:"Syne", ui-sans-serif, system-ui, sans-serif;--mono:"JetBrains Mono", "Courier New", monospace;--s1:8px;--s2:16px;--s3:24px;--s4:32px;--s6:48px;--s8:64px;--s12:96px;--r1:3px;--r2:6px;--r3:10px;--r4:16px;--ease:cubic-bezier(.16, 1, .3, 1);--ease-soft:cubic-bezier(.4, 0, .2, 1)}[data-theme=light]{--void:#f2e8d0;--surface:#faf4e4;--surface-2:#eddfc4;--surface-3:#e2d0a8;--surface-4:#d4be8c;--border:#3e260617;--border-mid:#3e26062e;--border-hi:#3e260657;--text:#180d02;--text-muted:#56381a;--text-faint:#9a6e34;--gold:#a06a00;--amber:#c28200;--ember:#a06a001c;--ember-hi:#a06a0038;--on-gold:#fff8ec;--teal:#1a9070;--teal-bg:#1a90701a;--danger:#b82820;--topbar-bg:#f2e8d0f7;--topbar-border:#3e260624;--grain-opacity:.012;--glow-opacity:.25}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth;height:100%;transition:background .4s}body{font-family:var(--sans);color:var(--text);background:var(--void);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizelegibility;min-height:100dvh;font-size:14px;line-height:1.5}body:after{content:"";pointer-events:none;z-index:0;opacity:var(--glow-opacity);background:radial-gradient(70% 50% at -5% -5%,#c8921e14 0%,#0000 55%),radial-gradient(50% 40% at 105% 105%,#b45a140d 0%,#0000 55%);transition:opacity .5s;position:fixed;inset:0}body:before{content:"";width:calc(100% + 240px);height:calc(100% + 240px);opacity:var(--grain-opacity);pointer-events:none;z-index:9999;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 512 512' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.72' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");transition:opacity .5s;animation:.35s step-end infinite grain;position:fixed;inset:-120px}@keyframes grain{0%{transform:translate(0)}14%{transform:translate(-2%,-3%)}28%{transform:translate(3%,1%)}42%{transform:translate(-1%,4%)}57%{transform:translate(4%,-2%)}71%{transform:translate(-3%,3%)}85%{transform:translate(2%,-4%)}to{transform:translate(-4%,1%)}}#root{z-index:1;flex-direction:column;min-height:100dvh;display:flex;position:relative}a{color:inherit;text-decoration:none}button,input,select{font:inherit}button{cursor:pointer;background:0 0;border:none}button:disabled{cursor:not-allowed;opacity:.45}input,select{color:var(--text);background:0 0;border:none;outline:none}.brand-mark{font-family:var(--serif);letter-spacing:.01em;color:var(--text);white-space:nowrap;align-items:center;gap:7px;font-size:22px;font-weight:500;display:inline-flex}.brand-mark svg{color:var(--gold)}.brand-mark.small{font-size:18px;text-decoration:none}.home-shell{min-height:100dvh;padding:0 var(--s3) var(--s8);flex-direction:column;align-items:center;display:flex}.home-hero{text-align:center;padding:10vh var(--s2) 6vh;align-items:center;gap:var(--s2);flex-direction:column;max-width:680px;display:flex}.home-hero .brand-mark{opacity:.55;letter-spacing:.08em;text-transform:uppercase;font-size:16px;font-family:var(--sans);margin-bottom:var(--s2);font-weight:600}.home-hero .brand-mark svg{display:none}.home-hero h1{font-family:var(--serif);letter-spacing:-.01em;color:var(--text);max-width:580px;font-size:clamp(48px,7.5vw,84px);font-style:italic;font-weight:500;line-height:1.04}.home-hero p{color:var(--text-muted);letter-spacing:.01em;max-width:380px;margin-top:var(--s1);font-size:15px;line-height:1.75}.entry-panel{gap:var(--s2);background:var(--surface-2);border:1px solid var(--border-mid);border-radius:var(--r4);width:100%;max-width:400px;padding:var(--s4);flex-direction:column;display:flex}.panel-divider{align-items:center;gap:var(--s2);color:var(--text-faint);letter-spacing:.1em;text-transform:uppercase;font-size:11px;display:flex}.panel-divider:before,.panel-divider:after{content:"";background:var(--border);flex:1;height:1px}.join-code-panel{flex-direction:column;gap:10px;display:flex}.join-code-panel>strong{letter-spacing:.1em;text-transform:uppercase;color:var(--text-faint);font-size:11px;font-weight:600}.join-form{gap:var(--s1);display:flex}.join-form input{background:var(--surface-3);border:1px solid var(--border-mid);border-radius:var(--r2);padding:10px var(--s2);font-family:var(--mono);letter-spacing:.22em;color:var(--amber);text-transform:uppercase;text-align:center;flex:1;font-size:15px;transition:border-color .2s}.join-form input:focus{border-color:var(--gold)}.join-form input::placeholder{color:var(--text-faint);letter-spacing:.15em}.field{flex-direction:column;gap:6px;display:flex}.field span{letter-spacing:.1em;text-transform:uppercase;color:var(--text-faint);font-size:11px;font-weight:600}.field input{background:var(--surface-3);border:1px solid var(--border-mid);border-radius:var(--r2);padding:10px var(--s2);color:var(--text);font-size:14px;transition:border-color .2s}.field input:focus{border-color:var(--gold)}.field input::placeholder{color:var(--text-faint)}.auth-strip{flex-direction:column;display:flex}.email-form{gap:var(--s1);display:flex}.email-form input{background:var(--surface-3);border:1px solid var(--border-mid);border-radius:var(--r2);padding:10px var(--s2);color:var(--text);flex:1;font-size:14px;transition:border-color .2s}.email-form input:focus{border-color:var(--gold)}.email-form input::placeholder{color:var(--text-faint)}.notice{color:var(--amber);font-size:13px;line-height:1.5}.muted{color:var(--text-faint);font-size:12px;line-height:1.6}.primary-button{background:var(--gold);color:var(--void);font-family:var(--sans);letter-spacing:.06em;border-radius:var(--r2);padding:11px var(--s3);transition:background .2s var(--ease), transform .15s;justify-content:center;align-items:center;gap:7px;font-size:13px;font-weight:600;display:flex}.primary-button:hover:not(:disabled){background:var(--amber);transform:translateY(-1px)}.secondary-button{background:var(--surface-3);color:var(--text);border:1px solid var(--border-mid);letter-spacing:.04em;border-radius:var(--r2);padding:10px var(--s2);white-space:nowrap;justify-content:center;align-items:center;gap:7px;font-size:13px;font-weight:500;transition:border-color .2s,background .2s,color .2s;display:flex}.icon-button{border-radius:var(--r2);width:36px;height:36px;color:var(--text-muted);background:var(--surface-3);border:1px solid var(--border);flex-shrink:0;justify-content:center;align-items:center;transition:color .15s,border-color .15s,background .15s;display:flex}.icon-button:hover:not(:disabled){color:var(--text);border-color:var(--border-mid);background:var(--surface-4)}.name-gate{min-height:100dvh;padding:var(--s6) var(--s3);justify-content:center;align-items:center;gap:var(--s3);text-align:center;flex-direction:column;width:100%;max-width:440px;margin:0 auto;display:flex}.name-gate .brand-mark{opacity:.45;margin-bottom:var(--s2)}.name-gate h1{font-family:var(--serif);color:var(--text);font-size:clamp(32px,5vw,48px);font-style:italic;font-weight:400;line-height:1.12}.name-gate p{color:var(--text-muted);max-width:340px;font-size:14px;line-height:1.7}.join-choice{width:100%}.divider-label{letter-spacing:.1em;text-transform:uppercase;color:var(--text-faint);align-items:center;gap:var(--s2);width:100%;font-size:11px;display:flex}.name-gate .field{text-align:left;width:100%}.name-gate .primary-button,.name-gate .email-form{width:100%}.app-shell{flex-direction:column;min-height:100dvh;display:flex}.topbar{align-items:center;gap:var(--s3);height:48px;padding:0 var(--s3);border-bottom:1px solid var(--topbar-border);background:var(--topbar-bg);-webkit-backdrop-filter:blur(20px)saturate(1.4);z-index:100;flex-shrink:0;transition:background .4s,border-color .4s;display:flex;position:sticky;top:0}.topbar .brand-mark{margin-right:auto}.room-meta{align-items:center;gap:var(--s1);border:1px solid var(--topbar-border);background:var(--ember);border-radius:100px;padding:5px 12px 5px 10px;transition:background .3s,border-color .3s;display:flex}.room-meta span{letter-spacing:.12em;text-transform:uppercase;color:var(--text-faint);font-size:10px}.room-meta strong{font-family:var(--mono);letter-spacing:.18em;color:var(--amber);font-size:14px;font-weight:400}.room-meta .icon-button{background:var(--surface-3);border-color:var(--border-mid);border-radius:50%;width:26px;height:26px}.realtime-badge{letter-spacing:.1em;text-transform:uppercase;color:var(--text-muted);border:1px solid var(--topbar-border);border-radius:100px;align-items:center;gap:5px;padding:5px 11px;font-size:10px;transition:border-color .3s;display:flex}.realtime-badge svg{color:var(--gold);animation:2.2s ease-in-out infinite live-pulse}@keyframes live-pulse{0%,to{opacity:1}50%{opacity:.3}}.user-badge{color:var(--text-muted);border:1px solid var(--topbar-border);border-radius:100px;align-items:center;gap:6px;padding:5px 11px 5px 9px;font-size:12px;transition:border-color .3s;display:flex}.user-badge svg{color:var(--text-faint);flex-shrink:0}.user-badge small{letter-spacing:.08em;text-transform:uppercase;color:var(--amber);border:1px solid var(--ember-hi);background:var(--ember);border-radius:100px;padding:2px 7px;font-size:10px}.app-alert{margin:var(--s2) var(--s3) 0;padding:var(--s2) var(--s3);border-radius:var(--r2);color:#e07060;background:#b0302014;border:1px solid #b030202e;font-size:13px}.loading-screen{justify-content:center;align-items:center;gap:var(--s2);color:var(--text-muted);flex:1;min-height:200px;font-size:14px;display:flex}@keyframes spin{to{transform:rotate(360deg)}}.room-layout{flex:1;grid-template-columns:minmax(0,1fr) clamp(300px,30vw,380px);min-height:0;display:grid;overflow:hidden}.main-column{border-right:1px solid var(--border);background:linear-gradient(90deg, #c8921e09, transparent 42%), var(--void);flex-direction:column;min-height:0;display:flex;overflow-y:auto}.roulette-slot{min-width:0}.mobile-roulette-slot{display:none}.roulette-slot-body{min-width:0}.mobile-roulette-trigger{display:none}.section-heading{justify-content:space-between;align-items:flex-start;gap:var(--s2);padding:var(--s3) var(--s4);border-bottom:1px solid var(--border);flex-shrink:0;display:flex}.section-heading h2{font-family:var(--serif);color:var(--text);font-size:21px;font-style:italic;font-weight:400;line-height:1.1}.section-heading p{color:var(--text-faint);letter-spacing:.02em;margin-top:3px;font-size:11px}.section-heading.compact{padding:var(--s2) var(--s3)}.section-heading.compact svg{color:var(--gold);opacity:.6;flex-shrink:0;margin-top:2px}.search-panel{padding:var(--s3) var(--s4);border-bottom:1px solid var(--border);flex-shrink:0}.search-box{align-items:center;gap:var(--s1);background:var(--surface-2);border:1px solid var(--border-mid);border-radius:var(--r2);padding:0 var(--s2);transition:border-color .2s;display:flex}.search-box svg{color:var(--text-faint);flex-shrink:0}.search-box input{color:var(--text);flex:1;padding:10px 0;font-size:14px}.search-box input::placeholder{color:var(--text-faint)}.search-results{margin-top:var(--s2);flex-direction:column;gap:2px;display:flex}.result-card{align-items:center;gap:var(--s2);border-radius:var(--r2);color:var(--text);text-align:left;background:0 0;width:100%;padding:6px 8px;transition:background .15s;display:flex}.result-card:hover{background:var(--surface-2)}.result-card .movie-poster,.result-card .poster-fallback{border-radius:var(--r1);object-fit:cover;flex-shrink:0;width:34px;height:51px}.result-card .poster-fallback{background:var(--surface-3);color:var(--text-faint);justify-content:center;align-items:center;display:flex}.result-card>span{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.result-card strong{color:var(--text);text-overflow:ellipsis;white-space:nowrap;font-size:13px;font-weight:500;overflow:hidden}.result-card small{color:var(--text-faint);font-size:11px}.result-card>svg:last-child{color:var(--text-faint);flex-shrink:0;transition:color .15s}.result-card:hover>svg:last-child{color:var(--gold)}.error-text{color:#e07060;font-size:12px}.status-tabs{gap:5px;display:flex}.status-tabs.vertical{flex-direction:column;gap:3px}.status-pill{font-family:var(--sans);letter-spacing:.09em;text-transform:uppercase;color:var(--text-faint);cursor:pointer;white-space:nowrap;background:0 0;border:1px solid #0000;border-radius:100px;padding:5px 12px;font-size:11px;font-weight:600;transition:all .15s}.status-pill:hover{color:var(--text-muted);border-color:var(--border)}.status-tabs.vertical .status-pill{text-align:center;border-radius:var(--r2)}.movie-workspace{background:0 0;flex-direction:column;flex:1;min-height:0;display:flex}.empty-state{justify-content:center;align-items:center;gap:var(--s1);padding:var(--s8) var(--s4);text-align:center;flex-direction:column;flex:1;display:flex}.empty-state strong{font-family:var(--serif);color:var(--text-muted);font-size:22px;font-style:italic;font-weight:400}.empty-state span{color:var(--text-faint);max-width:280px;font-size:13px;line-height:1.65}.movie-grid{padding:var(--s4);background:linear-gradient(#ffffff06,#0000 220px),#ffffff05;border-top:1px solid #ffffff0b;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:16px;display:grid}.movie-card{background:linear-gradient(180deg, #ffffff09, transparent 45%), var(--surface);border-radius:var(--r3);min-width:0;transition:background .2s, border-color .2s, transform .2s var(--ease);border:1px solid #ffffff13;flex-direction:column;display:flex;position:relative;overflow:hidden}.movie-card:hover{background:linear-gradient(180deg, #ffffff0b, transparent 45%), var(--surface-2);border-color:#c8921e38;transform:translateY(-1px)}.movie-card .movie-poster{aspect-ratio:2/3;object-fit:cover;background:var(--surface-3);width:100%;display:block}.movie-card .poster-fallback{aspect-ratio:2/3;background:var(--surface-3);width:100%;color:var(--text-faint);justify-content:center;align-items:center;display:flex}.movie-card-body{flex-direction:column;flex:1;gap:7px;min-width:0;padding:12px;display:flex}.movie-card-body>div:first-child{min-width:0;min-height:48px}.movie-card-body h3{min-width:0;color:var(--text);-webkit-line-clamp:2;line-clamp:2;overflow-wrap:anywhere;-webkit-box-orient:vertical;min-height:35px;max-height:35px;font-size:14px;font-weight:650;line-height:1.25;display:-webkit-box;overflow:hidden}.movie-card-body p{color:var(--text-faint);text-overflow:ellipsis;white-space:nowrap;font-size:11px;overflow:hidden}.movie-actions{grid-template-columns:minmax(0,1fr) 38px;align-items:center;gap:8px;min-width:0;margin-top:auto;padding-top:8px;display:grid}.movie-actions select{background:var(--surface-3);border:1px solid var(--border);border-radius:var(--r2);letter-spacing:.03em;width:100%;min-width:0;color:var(--text-muted);cursor:pointer;appearance:auto;-webkit-appearance:menulist;padding:9px 28px 9px 10px;font-size:12px;transition:border-color .15s}.movie-actions select:hover{border-color:var(--border-mid)}.movie-actions .icon-button{border-radius:var(--r2);color:#cc3b35;background:#b0302014;border:1px solid #b0302038;width:38px;min-width:38px;height:38px}.movie-actions .icon-button span{display:none}.movie-actions .icon-button:hover:not(:disabled){background:#b0302024;border-color:#b0302061}.roulette-panel{gap:var(--s3);padding:var(--s3);flex-direction:column;max-height:calc(100dvh - 48px);display:flex;position:sticky;top:48px;overflow-y:auto}.wheel{align-items:center;gap:var(--s2);background:var(--surface-2);border:1px solid var(--border-mid);border-radius:var(--r4);padding:var(--s3);flex-direction:column;transition:border-color .6s,box-shadow .6s;display:flex;position:relative;overflow:hidden}.wheel.has-winner{border-color:#c8921e61;animation:2.8s ease-in-out infinite winner-glow}@keyframes winner-glow{0%,to{box-shadow:0 0 #c8921e00}50%{box-shadow:0 0 28px 4px #c8921e17}}.wheel-stage-glow{pointer-events:none;z-index:0;background:radial-gradient(80% 60% at 50% 20%,#c8921e0f,#0000 65%);position:absolute;inset:0}.wheel-pointer{top:var(--s2);right:var(--s2);color:var(--gold);opacity:.6;z-index:2;position:absolute}.wheel-poster-frame{z-index:1;border-radius:var(--r2);width:112px;transition:transform .4s var(--ease), box-shadow .4s;position:relative;overflow:hidden;box-shadow:0 12px 40px #0000008c}.wheel.is-spinning .wheel-poster-frame{transform:scale(.95)}.wheel.has-winner .wheel-poster-frame{transform:scale(1.04);box-shadow:0 16px 48px #000000a6,0 0 20px #c8921e26}.wheel-poster-frame .movie-poster,.wheel-poster-frame .poster-fallback{aspect-ratio:2/3;object-fit:cover;width:100%;display:block}.wheel-poster-frame .poster-fallback{background:var(--surface-3);color:var(--text-faint);justify-content:center;align-items:center;display:flex}.wheel-copy{z-index:1;text-align:center;flex-direction:column;align-items:center;gap:4px;display:flex;position:relative}.wheel-copy span{letter-spacing:.12em;text-transform:uppercase;color:var(--text-faint);font-size:10px}.wheel-copy strong{font-family:var(--serif);color:var(--text);font-size:17px;font-style:italic;font-weight:400;line-height:1.25}.empty-wheel{align-items:center;gap:var(--s1);padding:var(--s4) var(--s2);text-align:center;color:var(--text-faint);flex-direction:column;display:flex}.empty-wheel strong{font-family:var(--serif);color:var(--text-muted);margin-top:6px;font-size:16px;font-style:italic;font-weight:400}.empty-wheel span{color:var(--text-faint);max-width:200px;font-size:12px;line-height:1.65}.pill-wrapper{position:relative}.pill-active-bg{border-radius:var(--r2);z-index:0;pointer-events:none;background:#e8a64112;border:1px solid #e8a64138;position:absolute;inset:0}.pill-wrapper .status-pill{z-index:1;position:relative}.burst-ring{border-radius:var(--r3);pointer-events:none;z-index:0;transform-origin:50%;border:1px solid #c8921e73;width:120px;height:160px;margin-top:-80px;margin-left:-60px;position:absolute;top:50%;left:50%}.auth-status-strip{color:var(--text-muted);background:var(--surface-2);border:1px solid var(--border-mid);border-radius:100px;align-items:center;gap:6px;width:100%;max-width:400px;margin-bottom:2px;padding:6px 14px;font-size:12px;display:flex}.auth-status-strip svg{color:var(--gold);flex-shrink:0}.auth-status-strip strong{color:var(--text);font-weight:500}.recent-rooms{flex-direction:column;gap:10px;width:100%;max-width:400px;margin-bottom:2px;display:flex}.recent-rooms-label{letter-spacing:.12em;text-transform:uppercase;color:var(--text-faint);align-items:center;gap:5px;font-size:10px;font-weight:600;display:flex}.recent-rooms-label svg{opacity:.7}.room-chips{flex-wrap:wrap;gap:6px;display:flex}.room-chip-wrapper{align-items:center;gap:2px;display:flex}.room-chip{background:var(--surface-2);border:1px solid var(--border-mid);border-radius:var(--r2);color:var(--text);align-items:center;gap:7px;padding:7px 12px;font-size:12px;transition:border-color .15s,background .15s;display:flex}.room-chip:hover{border-color:var(--gold);background:var(--ember)}.chip-code{font-family:var(--mono);letter-spacing:.14em;color:var(--amber);font-size:13px;font-weight:400}.chip-remove{width:18px;height:18px;color:var(--text-faint);cursor:pointer;background:0 0;border:none;border-radius:50%;justify-content:center;align-items:center;margin-left:-2px;padding:0;font-size:14px;line-height:1;transition:color .15s,background .15s;display:flex}.chip-remove:hover{color:var(--text);background:var(--surface-3)}.copy-hint{letter-spacing:.04em;color:var(--gold);white-space:nowrap;font-size:11px}.icon-button--success{color:var(--gold)!important;border-color:#c8921e4d!important}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;padding:0;position:absolute;overflow:hidden}.roulette-v2{border-left:1px solid var(--border);background:radial-gradient(circle at 50% 0,#c8921e21,#0000 44%),#110f0bdb;flex-direction:column;align-self:start;width:100%;min-width:0;max-height:calc(100dvh - 84px);display:flex;position:sticky;top:72px;overflow:hidden}.roulette-header{align-items:center;gap:var(--s2);padding:10px var(--s3) 8px;border-bottom:1px solid var(--border);flex-shrink:0;display:flex}.roulette-title{font-family:var(--sans);color:var(--text);margin:0 0 4px;font-size:18px;font-style:normal;font-weight:750;line-height:1}.roulette-subtitle{width:min(210px,100%);color:var(--text-faint);text-overflow:ellipsis;white-space:nowrap;margin:0;font-size:10px;line-height:1.3;overflow:hidden}.count-badge{letter-spacing:.09em;text-transform:uppercase;color:var(--text-faint);background:var(--surface-3);border:1px solid var(--border);white-space:nowrap;border-radius:100px;padding:3px 8px;font-size:9px;font-weight:600}.roulette-filter{padding:7px var(--s3);border-bottom:1px solid var(--border);flex-shrink:0;gap:4px;display:flex}.filter-wrapper{flex:1;position:relative}.filter-bg{border-radius:var(--r2);z-index:0;pointer-events:none;background:#e8a64112;border:1px solid #e8a64138;position:absolute;inset:0}.filter-tab{z-index:1;width:100%;font-family:var(--sans);letter-spacing:.09em;text-transform:uppercase;color:var(--text-faint);border-radius:var(--r2);cursor:pointer;white-space:nowrap;background:0 0;border:1px solid #0000;justify-content:center;align-items:center;padding:5px 4px;font-size:9px;font-weight:600;transition:color .15s;display:flex;position:relative}.filter-tab:hover:not(:disabled){color:var(--text-muted)}.filter-tab.is-active{color:var(--amber)}.filter-tab:focus-visible{outline:2px solid var(--gold);outline-offset:2px;border-radius:var(--r2)}.roulette-stage{height:auto;min-height:178px;max-height:250px;padding:8px var(--s3);overflow-clip-margin:0px;flex-direction:column;flex:210px;justify-content:center;align-items:center;display:flex;position:relative;overflow:clip;container:roulette-stage/size}.stage-backdrop-wrap{pointer-events:none;z-index:0;position:absolute;inset:0;overflow:hidden}.stage-content{z-index:1;flex-direction:column;align-items:center;gap:6px;width:100%;margin:auto 0;padding-block:0;display:flex;position:relative}.film-frame-outer{justify-content:center;align-items:center;display:flex;position:relative}.burst-ring-v2{border-radius:var(--r3);pointer-events:none;transform-origin:50%;border:1.5px solid #c8921e80;position:absolute;inset:0}.film-frame{border-radius:var(--r3);align-items:stretch;display:flex;overflow:hidden;box-shadow:0 10px 28px #00000085}.film-frame.has-winner-frame{box-shadow:0 16px 52px #000000a6,0 0 24px 4px #c8921e1f}.film-perf{background:#080706;flex-direction:column;flex-shrink:0;justify-content:space-evenly;align-items:center;gap:3px;width:10px;padding:5px 0;display:flex}.film-hole{background:#f0e4c412;border-radius:1px;flex-shrink:0;width:5px;height:4px}.film-slot{background:#0a0806;width:clamp(86px,66.6667cqh - 45.3333px,132px);position:relative;overflow:hidden}.film-slot .movie-poster,.film-slot .poster-fallback{aspect-ratio:2/3;object-fit:contain;width:100%;display:block}.film-slot .poster-fallback{color:var(--text-faint);aspect-ratio:2/3;justify-content:center;align-items:center;display:flex}.scanline{pointer-events:none;z-index:4;mix-blend-mode:screen;background:linear-gradient(90deg,#0000 0%,#c8921e8c 50%,#0000 100%);height:3px;position:absolute;left:0;right:0}.film-label{text-align:center;z-index:1;flex-direction:column;align-items:center;gap:2px;max-width:260px;min-height:34px;display:flex;position:relative}.film-label-state{letter-spacing:.14em;text-transform:uppercase;color:var(--gold);opacity:.8;font-size:8px}.film-label-title{width:100%;font-family:var(--sans);color:var(--text);text-overflow:ellipsis;white-space:nowrap;font-size:14px;font-style:normal;font-weight:760;line-height:1.25;overflow:hidden}.film-label-year{color:var(--text-faint);font-size:10px}.stage-backdrop{filter:blur(54px)saturate(.65)brightness(.2);pointer-events:none;z-index:0;background-position:top;background-size:cover;position:absolute;inset:-30px;transform:scale(1.1)}.roulette-empty{align-items:center;gap:var(--s1);text-align:center;padding:var(--s2) var(--s3);color:var(--text-faint);flex-direction:column;display:flex}.roulette-empty strong{font-family:var(--serif);color:var(--text-muted);margin-top:6px;font-size:18px;font-style:italic;font-weight:400}.roulette-empty p{color:var(--text-faint);max-width:180px;font-size:12px;line-height:1.65}.roulette-filmstrip{min-height:48px;padding:7px var(--s3);border-top:1px solid var(--border);scrollbar-width:none;flex-shrink:0;gap:5px;display:flex;overflow-x:auto;-webkit-mask-image:linear-gradient(90deg,#0000,#000 14px calc(100% - 14px),#0000)}.roulette-filmstrip::-webkit-scrollbar{display:none}.film-thumb{border-radius:var(--r1);flex-shrink:0;width:28px;transition:box-shadow .2s;overflow:hidden}.film-thumb .movie-poster,.film-thumb .poster-fallback{aspect-ratio:2/3;object-fit:cover;width:100%;display:block}.film-thumb .poster-fallback{background:var(--surface-3);color:var(--text-faint);aspect-ratio:2/3;justify-content:center;align-items:center;display:flex}.roulette-footer{border-top:1px solid var(--border);padding:8px var(--s3) 10px;background:linear-gradient(180deg, #110f0beb, #110f0bfa), var(--surface-1);flex-direction:column;flex-shrink:0;align-items:center;gap:8px;display:flex}.spin-button-v2{border-radius:var(--r2);background:var(--gold);width:100%;min-height:44px;color:var(--void);cursor:pointer;border:none;justify-content:center;align-items:center;gap:10px;font-weight:800;transition:background .2s;display:flex;position:relative}.spin-button-v2:disabled{background:var(--surface-3);color:var(--text-faint);cursor:not-allowed}.spin-button-v2:focus-visible{outline:2px solid var(--gold);outline-offset:4px}.spin-ring-svg{pointer-events:none;width:28px;height:28px;position:absolute;left:12px;overflow:visible;transform:rotate(-90deg)}.ring-track{fill:none;stroke:#c8921e24;stroke-width:2.5px}.ring-fill{fill:none;stroke:var(--gold);stroke-width:2.5px;stroke-linecap:round}.spin-label{letter-spacing:0;text-transform:none;color:currentColor;font-size:15px;font-weight:800}.spin-button-icon{margin-left:-16px}.winner-reveal{width:100%;padding:8px var(--s3);background:var(--ember);border-radius:var(--r3);text-align:left;border:1px solid #c8921e2e;grid-template-columns:22px minmax(0,1fr);align-items:center;column-gap:10px;display:grid}.winner-reveal svg{color:var(--gold);grid-row:span 3}.winner-reveal span{letter-spacing:.1em;text-transform:uppercase;min-width:0;color:var(--text-faint);font-size:9px}.winner-reveal strong{min-width:0;font-family:var(--sans);color:var(--text);text-overflow:ellipsis;white-space:nowrap;font-size:13px;font-style:normal;font-weight:780;overflow:hidden}.winner-reveal small{min-width:0;color:var(--text-faint);font-size:10px}.candidate-reel{flex-wrap:wrap;justify-content:center;gap:5px;display:flex}.candidate-dot{border-radius:var(--r1);opacity:.35;width:38px;transition:opacity .25s, transform .25s var(--ease), box-shadow .25s;overflow:hidden}.candidate-dot .movie-poster,.candidate-dot .poster-fallback{aspect-ratio:2/3;object-fit:cover;width:100%;display:block}.candidate-dot .poster-fallback{background:var(--surface-3);color:var(--text-faint);justify-content:center;align-items:center;display:flex}.winner-box{padding:var(--s2) var(--s3);background:var(--ember);border-radius:var(--r3);text-align:center;border:1px solid #c8921e2e;flex-direction:column;align-items:center;gap:4px;display:flex}.winner-box svg{color:var(--gold);margin-bottom:2px}.winner-box span{letter-spacing:.1em;text-transform:uppercase;color:var(--text-faint);font-size:10px}.winner-box strong{font-family:var(--serif);color:var(--text);font-size:16px;font-style:italic;font-weight:400}.winner-box small{color:var(--text-faint);font-size:11px}.movie-poster{object-fit:cover;display:block}.poster-fallback{justify-content:center;align-items:center;display:flex}@media (width<=768px){.app-shell{min-height:100dvh;overflow-x:hidden}.topbar{grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:10px;height:auto;padding:14px 16px 12px;display:grid}.topbar .brand-mark{grid-area:1/1;min-width:0;margin-right:0}.room-meta{order:3;grid-column:1/-1;justify-content:space-between;width:100%;padding:8px 10px 8px 12px}.room-meta .icon-button{width:34px;height:34px}.theme-toggle{background:linear-gradient(180deg, #ffffff17, #ffffff05), var(--surface-2);border-color:var(--border-mid);border-radius:999px;order:2;grid-area:1/2;justify-content:center;place-self:center end;gap:6px;width:max-content;min-width:0;height:32px;padding:4px 7px 4px 5px;box-shadow:inset 0 1px #ffffff2e,0 10px 24px #0000001f}.theme-toggle .toggle-track{width:34px;height:18px}.theme-toggle .toggle-thumb{width:12px;height:12px}.theme-toggle .toggle-icon{color:var(--amber);display:flex}.toggle-mobile-label,.user-badge,.realtime-badge{display:none}.room-layout{flex-direction:column;min-height:auto;display:flex;overflow:auto}.main-column{border-right:none;display:contents;overflow:visible}.search-panel{border:1px solid var(--border-mid);border-radius:var(--r3);background:var(--surface);order:1;margin:0 12px 10px;padding:12px}.search-box input{min-width:0}.roulette-slot{order:2;margin:0 12px 14px}.mobile-roulette-slot{display:block}.desktop-roulette-slot{display:none}.mobile-roulette-trigger{width:100%;min-height:58px;color:var(--text);background:linear-gradient(180deg, #ffffff0d, transparent), var(--surface);border:1px solid var(--border-mid);border-radius:var(--r3);text-align:left;grid-template-columns:38px minmax(0,1fr) 28px;align-items:center;gap:10px;padding:9px 10px;display:grid;box-shadow:0 10px 26px #0000001f}.mobile-roulette-icon{width:38px;height:38px;color:var(--on-gold);background:var(--gold);border-radius:var(--r2);place-items:center;display:grid}.mobile-roulette-copy{gap:1px;min-width:0;display:grid}.mobile-roulette-copy strong{color:var(--text);font-size:15px;font-weight:800}.mobile-roulette-copy small{min-width:0;color:var(--text-faint);text-overflow:ellipsis;white-space:nowrap;font-size:11px;overflow:hidden}.mobile-roulette-chevron{color:var(--text-faint);transition:transform .22s var(--ease), color .22s;justify-self:end}.roulette-slot.is-open .mobile-roulette-chevron{color:var(--amber);transform:rotate(180deg)}.roulette-slot-body{margin-top:10px;display:none}.roulette-slot.is-open .roulette-slot-body{display:block}.roulette-v2{border:1px solid var(--border-mid);border-radius:var(--r3);max-height:none;margin:0;position:relative;top:auto;overflow:hidden;box-shadow:0 14px 34px #0000001f}.roulette-header{padding:10px 12px 8px}.roulette-subtitle{width:min(240px,100%)}.roulette-filter{padding:7px 12px}.roulette-stage{min-height:176px;max-height:210px;padding:8px 12px}.film-slot{width:clamp(82px,66.6667cqh - 42.6667px,116px)}.roulette-filmstrip{min-height:44px;padding:6px 12px}.film-thumb{width:26px}.roulette-footer{padding:8px 12px 10px}.winner-reveal{padding:8px 10px}.spin-button-v2{min-height:44px}.movie-workspace{border:1px solid var(--border-mid);border-radius:var(--r3);background:var(--surface);order:3;margin:0 8px 24px;overflow:hidden}.roulette-panel{border-top:1px solid var(--border);max-height:none;position:static}.section-heading{padding:var(--s2) var(--s3)}.home-hero h1{font-size:clamp(40px,10vw,64px)}.movie-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;padding:12px}.movie-card-body{padding:10px}.movie-card-body h3{font-size:13px}.movie-actions{grid-template-columns:1fr;gap:7px}.movie-actions .icon-button{letter-spacing:.04em;text-transform:uppercase;gap:7px;width:100%;min-width:0;height:36px;font-size:11px;font-weight:700}.movie-actions .icon-button span{display:inline}.movie-actions select{padding:8px;font-size:11px}}[data-theme=light] .stage-backdrop{filter:blur(58px)saturate(1.25)brightness(1.08);opacity:.34;mix-blend-mode:multiply}[data-theme=light] .film-slot{background:#0a0806}[data-theme=light] .film-frame{box-shadow:0 14px 32px #4e310c33,0 2px 8px #4e310c1f}[data-theme=light] .film-frame.has-winner-frame{box-shadow:0 12px 40px #00000038,0 0 28px 6px #a06a002e}[data-theme=light] .roulette-stage{background:radial-gradient(80% 70% at 50% 42%,#a06a001f 0%,#0000 68%),linear-gradient(#fffcf29e,#e8d6ae57)}[data-theme=light] .burst-ring-v2{border-color:#a06a008c}[data-theme=light] .scanline{background:linear-gradient(90deg,#0000 0%,#a06a0099 50%,#0000 100%)}[data-theme=light] .roulette-v2{background:radial-gradient(circle at 50% 0,#c2820024,#0000 44%),linear-gradient(#faf4e4fa,#eddfc4f5);border-left-color:#3e260621;box-shadow:inset 1px 0 #ffffff6b}[data-theme=light] .roulette-header,[data-theme=light] .roulette-filter,[data-theme=light] .roulette-filmstrip,[data-theme=light] .roulette-footer{border-color:#3e26061f}[data-theme=light] .roulette-header{background:linear-gradient(#faf4e4c7,#eddfc452)}[data-theme=light] .roulette-title,[data-theme=light] .film-label-title,[data-theme=light] .winner-reveal strong{color:#2b1605}[data-theme=light] .roulette-subtitle,[data-theme=light] .film-label-year,[data-theme=light] .winner-reveal small{color:#7a5524}[data-theme=light] .count-badge{color:#7a4d08;background:#fff8e4eb;border-color:#a06a0033}[data-theme=light] .roulette-filter{background:#e0c79033}[data-theme=light] .filter-bg{background:#c2820021;border-color:#a06a004d}[data-theme=light] .filter-tab{color:#8a632e}[data-theme=light] .filter-tab.is-active{color:#8a5700}[data-theme=light] .roulette-filmstrip{background:#ecdab57a}[data-theme=light] .film-thumb{background:#fff8e4b3}[data-theme=light] .winner-reveal{background:linear-gradient(#fff7e0e0,#e6ca9157);border-color:#a06a0038}[data-theme=light] .roulette-footer{background:linear-gradient(180deg, #faf4e4e0, #eddfc4fa), var(--surface)}[data-theme=light] .spin-button-v2{color:#fff8ec;background:linear-gradient(#c98a08,#aa6d00);box-shadow:0 10px 24px #7a4b002e}[data-theme=light] .spin-button-v2:disabled{color:#8a632e;box-shadow:none;background:#dcc897}body{transition:background .4s,color .3s}.theme-toggle{background:var(--surface-3);border:1px solid var(--border-mid);color:var(--text-muted);border-radius:100px;flex-shrink:0;align-items:center;gap:7px;padding:5px 10px 5px 5px;transition:border-color .2s,background .2s,color .2s;display:flex}.theme-toggle:hover{border-color:var(--gold);background:var(--ember);color:var(--amber)}.toggle-track{background:var(--surface-3);border:1px solid var(--border-mid);border-radius:100px;flex-shrink:0;width:34px;height:18px;position:relative;overflow:hidden}.toggle-thumb{background:var(--gold);border-radius:50%;width:12px;height:12px;position:absolute;top:2px;box-shadow:0 1px 4px #0000004d}.toggle-icon{color:var(--amber);flex-shrink:0;align-items:center;display:flex}.toggle-mobile-label{display:none}.page-transition{flex-direction:column;flex:1;display:flex}@media (prefers-reduced-motion:reduce){body:before,.realtime-badge svg,.wheel.has-winner{animation:none}.candidate-dot.is-active{transform:none}}#root{min-height:100vh;overflow-x:clip}.home-shell,.app-shell,.name-gate{width:min(1180px,100% - 32px);margin:0 auto}.home-shell{grid-template-columns:minmax(0,1fr) 420px;align-items:center;gap:48px;min-height:100vh;padding:48px 0;display:grid}.home-hero h1,.name-gate h1{max-width:760px;color:var(--text);letter-spacing:0;margin:28px 0 18px;font-size:clamp(42px,7vw,82px);line-height:.96}.home-hero p,.name-gate p,.section-heading p{color:var(--text-muted);line-height:1.6}.brand-mark{color:var(--amber);align-items:center;gap:10px;font-size:28px;font-weight:760;text-decoration:none;display:inline-flex}.brand-mark.small{font-size:20px}.entry-panel,.name-gate,.search-panel,.movie-workspace,.roulette-panel{border:1px solid var(--border-mid);background:var(--surface-2);-webkit-backdrop-filter:blur(16px);border-radius:8px;transition:background .4s,border-color .4s;box-shadow:0 24px 80px #0000002e}.entry-panel,.name-gate{gap:18px;padding:24px;display:grid}.name-gate{max-width:520px;margin-top:12vh}.field{color:var(--text-muted);gap:8px;font-size:13px;font-weight:700;display:grid}input,select{border:1px solid var(--border-mid);background:var(--surface);width:100%;color:var(--text);border-radius:7px;outline:none;padding:12px 13px;transition:border-color .2s,background .3s,box-shadow .2s}input:focus,select:focus{border-color:var(--gold);box-shadow:0 0 0 3px var(--ember-hi)}.primary-button,.secondary-button,.icon-button,.status-pill{border:0;border-radius:7px;justify-content:center;align-items:center;gap:9px;min-height:42px;font-weight:760;transition:background .18s,color .18s,border-color .18s,transform .15s,box-shadow .18s;display:inline-flex}.primary-button{background:var(--gold);color:var(--on-gold);padding:0 16px}.primary-button:hover:not(:disabled){background:var(--amber);box-shadow:0 4px 16px var(--ember-hi);transform:translateY(-1px)}.primary-button:active:not(:disabled){transform:translateY(0)}.secondary-button{border:1px solid var(--border-mid);background:var(--surface-3);color:var(--text);padding:0 14px}.secondary-button:hover:not(:disabled){border-color:var(--gold);background:var(--ember);color:var(--amber)}.icon-button{background:var(--surface-3);width:42px;color:var(--text-muted);border:1px solid var(--border);flex:0 0 42px}.icon-button:hover:not(:disabled){background:var(--surface-4);border-color:var(--border-mid);color:var(--text)}.icon-button.danger{color:var(--danger)}.icon-button.danger:hover:not(:disabled){color:#e06050;background:#b0302014;border-color:#b0302040}.auth-strip,.join-form,.email-form,.join-choice{gap:10px;display:flex}.email-form{flex:1}.join-code-panel{border:1px solid var(--border);background:var(--ember);border-radius:8px;gap:10px;padding:12px;display:grid}.join-code-panel strong{color:var(--text);font-size:14px}.divider-label{color:var(--text-faint);align-items:center;gap:10px;font-size:13px;font-weight:700;display:flex}.divider-label:before,.divider-label:after{content:"";background:var(--border-mid);flex:1;height:1px}.muted,.notice,.error-text{color:var(--text-muted);font-size:13px}.notice{color:var(--teal)}.error-text{color:var(--danger)}.app-shell{width:min(1480px,100% - 32px);padding:24px 0 42px}.topbar{justify-content:space-between;align-items:center;gap:16px;min-height:62px;margin-bottom:18px;display:flex}.user-badge span{text-overflow:ellipsis;white-space:nowrap;max-width:160px;font-weight:760;overflow:hidden}.app-alert{color:#e07060;background:#b0302017;border:1px solid #b0302038;border-radius:8px;margin-bottom:16px;padding:12px 14px}.room-layout{grid-template-columns:minmax(0,1fr) minmax(340px,420px);align-items:start;gap:18px;min-width:0;display:grid}.main-column{gap:18px;min-width:0;display:grid}.search-panel,.movie-workspace,.roulette-panel{min-width:0;padding:18px}.search-box{background:var(--surface);border:1px solid var(--border-mid);border-radius:8px;align-items:center;gap:10px;min-width:0;padding:0 12px;transition:border-color .2s;display:flex}.search-box:focus-within{border-color:var(--gold)}.search-box input{box-shadow:none;background:0 0;border:0;min-width:0;padding-inline:0}.search-results{overscroll-behavior-inline:contain;scrollbar-width:thin;scrollbar-color:var(--amber) var(--surface-3);grid-auto-columns:clamp(190px,29vw,260px);grid-auto-flow:column;gap:10px;min-width:0;max-width:100%;min-height:96px;padding-top:14px;padding-bottom:4px;display:grid;overflow:auto hidden}.result-card{width:100%;min-width:0;color:var(--text);background:var(--surface-3);border:1px solid var(--border);text-align:left;border-radius:8px;grid-template-columns:58px minmax(0,1fr) 24px;align-items:center;gap:10px;padding:8px;transition:background .15s,border-color .15s,transform .15s;display:grid}.result-card:hover{background:var(--surface-4);border-color:var(--border-mid);transform:translateY(-1px)}.result-card .movie-poster,.result-card .poster-fallback{border-radius:6px;width:58px;height:86px}.result-card strong,.result-card small{text-overflow:ellipsis;white-space:nowrap;min-width:0;display:block;overflow:hidden}.result-card span{min-width:0}.result-card small{color:var(--text-muted);margin-top:4px}.section-heading{justify-content:space-between;align-items:flex-start;gap:18px;min-width:0;margin-bottom:18px;display:flex}.section-heading.compact{align-items:center}.section-heading h2{color:var(--text);margin:0 0 4px;font-size:24px}.status-tabs{flex-wrap:wrap;gap:8px;display:flex}.status-tabs.vertical{margin-bottom:16px}.status-pill{min-height:34px;color:var(--text-muted);background:var(--surface-3);border:1px solid var(--border);padding:0 12px;transition:background .15s,color .15s,border-color .15s}.status-pill:hover:not(:disabled){border-color:var(--border-mid);color:var(--text)}.status-pill.is-active{color:var(--on-gold);background:var(--gold);border-color:#0000}.movie-grid{grid-template-columns:repeat(auto-fill,minmax(170px,1fr));gap:14px;min-width:0;display:grid}.movie-card{background:var(--surface-3);border:1px solid var(--border);border-radius:8px;min-width:0;transition:background .2s,border-color .2s,box-shadow .2s,transform .2s;overflow:hidden}.movie-card:hover:not(.is-loading){background:var(--surface-4);border-color:var(--border-mid);transform:translateY(-2px);box-shadow:0 6px 24px #00000026}.movie-card.is-loading{opacity:.7}.movie-poster,.poster-fallback{aspect-ratio:2/3;object-fit:cover;background:var(--surface-2);width:100%;display:block}.poster-fallback{color:var(--text-faint);place-items:center;display:grid}.movie-card-body{gap:14px;padding:12px;display:grid}.movie-card h3{color:var(--text);text-overflow:ellipsis;white-space:nowrap;margin:0 0 4px;font-size:16px;line-height:1.25;overflow:hidden}.movie-card p{color:var(--text-muted);margin:0;font-size:13px}.movie-actions{gap:8px;min-width:0;display:flex}.movie-actions select{min-width:0;padding-block:9px}.empty-state,.loading-screen,.empty-wheel{min-height:220px;color:var(--text-muted);text-align:center;align-content:center;place-items:center;gap:8px;display:grid}.empty-state strong{color:var(--text)}.empty-wheel{min-height:160px;padding:22px}.empty-wheel strong{color:var(--text);font-size:18px}.roulette-panel{scrollbar-width:thin;scrollbar-color:var(--amber) var(--surface-3);max-height:calc(100vh - 36px);position:sticky;top:18px;overflow:auto}.wheel{isolation:isolate;background:radial-gradient(circle at 50% 18%, var(--ember-hi), transparent 34%), var(--surface-2);border:1px solid var(--border-mid);text-align:center;border-radius:8px;align-content:center;place-items:center;gap:12px;min-height:clamp(290px,42vh,390px);margin-bottom:14px;padding:clamp(14px,2vw,20px);display:grid;position:relative;overflow:hidden}.wheel:before,.wheel:after{content:"";z-index:-1;border:1px solid var(--ember-hi);border-radius:50%;position:absolute;inset:14px;transform:perspective(420px)rotateX(66deg)}.wheel:after{background:radial-gradient(#0000004d,#0000 68%);border:0;height:54px;inset:auto 10% 18px;transform:none}.wheel-stage-glow{z-index:-1;background:radial-gradient(circle, var(--ember-hi), transparent 58%);filter:blur(2px);border-radius:50%;position:absolute;inset:18% 12% 20%}.wheel-pointer{z-index:3;width:42px;height:42px;color:var(--on-gold);background:var(--gold);box-shadow:0 0 0 7px var(--ember), 0 12px 30px #00000047;border-radius:999px;place-items:center;display:grid;position:absolute;top:13px;left:50%;transform:translate(-50%)}.wheel-poster-frame{background:linear-gradient(145deg, var(--amber), var(--teal));width:min(220px,76%);max-height:min(58vh,330px);box-shadow:0 0 0 1px var(--border-hi), 0 22px 48px #00000061, 0 0 42px var(--ember-hi);border-radius:8px;padding:7px;position:relative}.wheel .movie-poster,.wheel .poster-fallback{border-radius:6px;width:100%;max-height:min(52vh,316px);box-shadow:0 18px 32px #0000004d}.wheel.is-spinning .wheel-stage-glow{animation:.9s linear infinite wheelGlow}.wheel.is-spinning .wheel-poster-frame{animation:.42s ease-in-out infinite alternate posterJackpot}.wheel.has-winner .wheel-poster-frame{box-shadow:0 0 0 1px var(--border-hi), 0 24px 54px #00000061, 0 0 58px var(--teal-bg)}.wheel-copy span,.winner-box span,.winner-box small{color:var(--text-muted);font-size:13px;display:block}.wheel-copy strong,.winner-box strong{color:var(--text);overflow-wrap:anywhere;margin-top:4px;display:block}.candidate-reel{background:var(--ember);border:1px solid var(--border);border-radius:8px;grid-auto-columns:38px;grid-auto-flow:column;align-items:center;gap:8px;margin:-2px 0 14px;padding:8px;display:grid;overflow:hidden}.candidate-dot{aspect-ratio:2/3;opacity:.52;border-radius:5px;width:38px;transition:opacity .18s,transform .18s,box-shadow .18s;overflow:hidden;transform:scale(.92)}.candidate-dot .movie-poster,.candidate-dot .poster-fallback{width:100%;height:100%}.candidate-dot.is-active{opacity:1;box-shadow:0 0 0 2px var(--gold);transform:scale(1)}.spin-button{width:100%}.winner-box{background:var(--teal-bg);border:1px solid var(--teal);border-radius:8px;grid-template-columns:24px minmax(0,1fr);align-items:center;column-gap:10px;margin-top:14px;padding:13px;display:grid}.winner-box svg{color:var(--teal);grid-row:span 3}.spin-icon{animation:.9s linear infinite spin}@keyframes posterJackpot{0%{transform:translateY(0)scale(.985)rotate(-.4deg)}to{transform:translateY(-9px)scale(1.02)rotate(.4deg)}}@keyframes wheelGlow{to{transform:rotate(360deg)}}@media (width<=900px){.home-shell,.room-layout{grid-template-columns:1fr}.home-shell{align-content:start;gap:24px;padding-top:28px}.topbar,.section-heading{flex-direction:column;align-items:stretch}.roulette-panel{max-height:none;position:static}}@media (width<=560px){.home-shell,.app-shell,.name-gate{width:min(100% - 20px,1180px)}.auth-strip,.join-form,.email-form,.join-choice{flex-direction:column}.room-meta,.user-badge,.realtime-badge{justify-content:space-between;width:100%}.movie-grid{grid-template-columns:1fr 1fr;gap:10px}.movie-actions{flex-direction:column}.wheel{min-height:300px}.wheel-poster-frame{width:min(185px,74%)}}
