:root{--bg: #0B0B0E;--bg-deep: #050507;--surface: #17171C;--surface-2: #22222A;--surface-3: #2F2F38;--text: #F5F1E8;--text-dim: #CEC6B4;--text-muted: #9A9283;--sun: #FFE066;--sun-deep: #E6C642;--tile-blue: #1B3A7A;--tile-blue-soft: #3A5FAD;--danger: #E63946;--safe: #2A9D8F;--ink: #0B0B0E;--team1: #2E5CB8;--team2: #D4A017;--team3: #C1272D;--team1-soft: rgba(46, 92, 184, .16);--team2-soft: rgba(212, 160, 23, .16);--team3-soft: rgba(193, 39, 45, .16);--font-display: "Bowlby One SC", "Anton", "Impact", sans-serif;--font-body: "Inter Tight", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;--radius: 14px;--radius-sm: 8px;--radius-lg: 20px;--btn-height: 60px;--shadow-lg: 0 18px 48px -10px rgba(0, 0, 0, .75);--shadow-inner: inset 0 1px 0 rgba(255, 255, 255, .06);--ease-out: cubic-bezier(.16, 1, .3, 1);--ease-out-back: cubic-bezier(.34, 1.56, .64, 1);--ease-out-expo: cubic-bezier(.19, 1, .22, 1);--dur-tap: .12s;--dur-fast: .2s;--dur-base: .35s;--dur-reveal: .6s;--dur-theatre: 1.4s}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{font-size:16px;-webkit-text-size-adjust:100%;background:var(--bg)}body{font-family:var(--font-body);background:var(--bg);color:var(--text);min-height:100dvh;overflow-x:hidden;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;line-height:1.45;font-feature-settings:"ss01","cv11";text-rendering:optimizeLegibility;position:relative}img{max-width:100%;display:block}button{font-family:inherit}*{-webkit-tap-highlight-color:transparent}input,select,textarea,button{font-family:inherit}body:before{content:"";position:fixed;top:0;right:0;bottom:0;left:0;pointer-events:none;z-index:0;background:radial-gradient(ellipse 80% 60% at 15% 0%,rgba(255,224,102,.045),transparent 60%),radial-gradient(ellipse 80% 60% at 85% 100%,rgba(27,58,122,.08),transparent 60%),var(--bg);transform:translateZ(0);will-change:auto}#app{min-height:100dvh;display:flex;flex-direction:column;position:relative;z-index:2}.container{padding:1.25rem 1.25rem 120px;max-width:460px;margin:0 auto;width:100%;flex:1;position:relative}.screen{animation:screenEnter var(--dur-base) var(--ease-out);position:relative}.screen.is-exiting{animation:screenExit var(--dur-fast) var(--ease-out) forwards}h1,h2,h3{letter-spacing:-.01em}h1{font-size:2rem;font-weight:900;line-height:1.05}h2{font-size:1.5rem;font-weight:800;line-height:1.15}h3{font-size:1.2rem;font-weight:800}.display{font-family:var(--font-display);letter-spacing:.01em;line-height:.95;text-transform:uppercase}.text-muted{color:var(--text-muted)}.text-dim{color:var(--text-dim)}.section-label{text-transform:uppercase;letter-spacing:.18em;font-size:.72rem;font-weight:800;color:var(--text-muted);margin-bottom:.75rem}button{font-size:1.05rem;font-weight:800;letter-spacing:.02em;min-height:var(--btn-height);width:100%;border:none;border-radius:var(--radius);cursor:pointer;transition:transform var(--dur-tap) var(--ease-out),background var(--dur-fast),opacity var(--dur-fast),box-shadow var(--dur-fast);padding:.75rem 1rem;position:relative;overflow:hidden;box-shadow:var(--shadow-inner)}button:active{transform:scale(.97)}.btn-primary{background:var(--sun);color:var(--ink);box-shadow:0 6px 24px #ffe0663d,var(--shadow-inner)}.btn-primary:active{box-shadow:0 2px 8px #ffe0664d}.btn-danger{background:var(--danger);color:#fff;box-shadow:0 6px 20px #e6394640,var(--shadow-inner)}.btn-team1{background:var(--team1);color:#fff;box-shadow:0 6px 20px #2e5cb84d,var(--shadow-inner)}.btn-team2{background:var(--team2);color:#151004;box-shadow:0 6px 20px #d4a0174d,var(--shadow-inner)}.btn-team3{background:var(--team3);color:#fff;box-shadow:0 6px 20px #c1272d4d,var(--shadow-inner)}.btn-ghost{background:transparent;border:2px solid var(--surface-3);color:var(--text)}.btn-ghost:hover{border-color:var(--text-muted)}.btn-confirm{animation:confirmPulse .8s ease-in-out infinite;background:var(--danger)!important;color:#fff!important}button.disabled,button:disabled{opacity:.35;cursor:not-allowed;transform:none!important;box-shadow:none!important}button .ripple{position:absolute;border-radius:50%;transform:translate(-50%,-50%) scale(0);pointer-events:none;background:currentColor;opacity:.25;width:220px;height:220px;animation:rippleOut .5s var(--ease-out) forwards}.team-color-1{color:var(--team1)}.team-color-2{color:var(--team2)}.team-color-3{color:var(--team3)}.team-bg-1{background:var(--team1);color:#fff}.team-bg-2{background:var(--team2);color:#151004}.team-bg-3{background:var(--team3);color:#fff}.team-soft-1{background:var(--team1-soft)}.team-soft-2{background:var(--team2-soft)}.team-soft-3{background:var(--team3-soft)}.boot-splash{position:fixed;top:0;right:0;bottom:0;left:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1.6rem;z-index:10;background:var(--bg);animation:fadeOut .4s var(--ease-out) .2s forwards;pointer-events:none}.boot-portrait{width:192px;height:256px;border-radius:18px;overflow:hidden;background:radial-gradient(circle at 30% 30%,#4a3a8c,#1a1330);box-shadow:0 0 0 3px var(--bg),0 0 0 6px var(--sun),0 18px 38px #7b2bb159,inset 0 0 0 2px #ffffff1f;display:flex;align-items:flex-start;justify-content:center;transform:rotate(-2deg)}.boot-portrait img{width:100%;height:100%;object-fit:cover;object-position:center 18%;display:block}.boot-wordmark{display:flex;flex-direction:column;align-items:center;gap:.5rem;font-family:var(--font-display);line-height:.88}.boot-wah{font-size:6.4rem;color:var(--sun);letter-spacing:.005em;text-shadow:0 4px 0 #1a1306,0 6px 18px rgba(255,224,102,.28);transform:rotate(-2deg)}.boot-tag{font-size:.78rem;color:var(--text-muted);letter-spacing:.32em;font-family:var(--font-body);font-weight:700;padding-left:.32em}.boot-dots{display:flex;gap:.5rem}.boot-dots span{width:6px;height:6px;border-radius:50%;background:var(--text-muted);animation:dotPulse 1.2s ease-in-out infinite}.boot-dots span:nth-child(2){animation-delay:.2s}.boot-dots span:nth-child(3){animation-delay:.4s}.wordmark{display:flex;flex-direction:column;align-items:center;gap:1rem;margin-bottom:1.25rem;position:relative}.wordmark-text{display:flex;flex-direction:column;align-items:center;font-family:var(--font-display);text-transform:uppercase;line-height:.88}.wordmark-wah{font-size:5.4rem;color:var(--sun);letter-spacing:.005em;text-shadow:0 4px 0 #1a1306,0 5px 14px rgba(255,224,102,.28);transform:rotate(-2deg)}.wordmark-tag{font-size:.72rem;letter-spacing:.32em;color:var(--text-muted);margin-top:.55rem;font-family:var(--font-body);font-weight:700;padding-left:.32em}.wah-portrait{width:156px;height:208px;border-radius:16px;overflow:hidden;background:radial-gradient(circle at 30% 30%,#4a3a8c,#1a1330);box-shadow:0 0 0 3px var(--bg),0 0 0 6px var(--sun),0 16px 32px #7b2bb159,inset 0 0 0 2px #ffffff1f;display:flex;align-items:flex-start;justify-content:center;position:relative;transform:rotate(-2deg);animation:stagGlow 2.6s ease-in-out infinite}.wah-portrait-img{width:100%;height:100%;object-fit:cover;object-position:center 18%;display:block}.wah-portrait.is-fallback{background:radial-gradient(circle at 30% 30%,#6c4fbf,#1a1330);align-items:center}.wah-portrait-fallback{font-family:var(--font-display);font-size:4.8rem;color:var(--sun);text-shadow:0 3px 0 #1a1306;transform:rotate(-4deg);margin-top:.3em}.dev-badge{position:fixed;top:calc(10px + env(safe-area-inset-top,0px));right:10px;padding:.22rem .55rem;background:var(--sun);color:var(--ink);font-size:.62rem;font-weight:900;border-radius:999px;text-transform:uppercase;z-index:1000;letter-spacing:.15em;font-family:var(--font-body)}.conn-banner{position:fixed;top:0;left:0;right:0;background:var(--danger);color:#fff;text-align:center;font-size:.8rem;font-weight:700;padding:calc(.35rem + env(safe-area-inset-top,0px)) .5rem .35rem;z-index:1100;letter-spacing:.08em;text-transform:uppercase;animation:slideDown .3s var(--ease-out)}.install-toast{position:fixed;left:50%;bottom:calc(1rem + env(safe-area-inset-bottom,0px));transform:translate(-50%);background:var(--surface);border:1px solid var(--surface-3);color:var(--text);padding:.75rem 1rem;border-radius:999px;font-size:.85rem;font-weight:700;z-index:950;box-shadow:var(--shadow-lg);display:flex;gap:.75rem;align-items:center;animation:toastIn .4s var(--ease-out-back);max-width:calc(100vw - 2rem)}.install-toast button{width:auto;min-height:auto;padding:.4rem .8rem;font-size:.8rem;border-radius:999px;background:var(--sun);color:var(--ink);box-shadow:none}.install-toast-dismiss{background:transparent;color:var(--text-muted);font-size:1.25rem;padding:0 .25rem;min-height:0;width:auto}.lobby-title{margin-top:1rem}.hero-tile{width:100%;aspect-ratio:16 / 9;border-radius:var(--radius);position:relative;overflow:hidden;margin-bottom:1.25rem;background:radial-gradient(circle at 25% 25%,rgba(255,224,102,.25),transparent 50%),radial-gradient(circle at 75% 75%,rgba(193,39,45,.15),transparent 50%),linear-gradient(135deg,var(--tile-blue) 0%,#0E2552 100%);box-shadow:0 10px 30px #00000080,var(--shadow-inner)}.hero-tile:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background-image:radial-gradient(circle at 50% 50%,rgba(255,255,255,.14) 0,rgba(255,255,255,.14) 1.5px,transparent 2px),radial-gradient(circle at 0% 0%,rgba(255,224,102,.2) 0,rgba(255,224,102,.2) 3px,transparent 4px),radial-gradient(circle at 100% 100%,rgba(255,224,102,.2) 0,rgba(255,224,102,.2) 3px,transparent 4px);background-size:32px 32px;opacity:.8;mix-blend-mode:overlay}.hero-tile.has-photo:before{display:none}.hero-tile.has-photo{aspect-ratio:4 / 3;background:#0b0b0e}.hero-tile-photo{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;object-fit:cover;object-position:center 35%;filter:saturate(1.05) contrast(1.02)}.hero-tile.has-photo:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(180deg,#0b0b0e0d,#0b0b0e26 45%,#0b0b0ed9),radial-gradient(circle at 50% 35%,transparent 40%,rgba(11,11,14,.35) 100%);pointer-events:none}.hero-tile.has-photo .hero-tile-content{justify-content:flex-end;padding-bottom:1.1rem}.hero-tile.has-photo .hero-tile-date,.hero-tile.has-photo .hero-tile-place,.hero-tile.has-photo .hero-tile-tag{text-shadow:0 2px 12px rgba(0,0,0,.85),0 1px 3px rgba(0,0,0,.9)}.hero-tile-content{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:1rem}.hero-tile-date{font-family:var(--font-display);font-size:.85rem;letter-spacing:.5em;color:#ffffffd9;text-shadow:0 2px 8px rgba(0,0,0,.5);padding-left:.5em}.hero-tile-place{font-family:var(--font-display);font-size:2.25rem;letter-spacing:.02em;color:var(--sun);text-shadow:0 4px 24px rgba(0,0,0,.7);margin-top:.25rem}.hero-tile-tag{font-size:.7rem;letter-spacing:.4em;text-transform:uppercase;color:#ffffffb3;margin-top:.5rem;padding-left:.4em}.lobby-cta{text-align:center;font-size:1.05rem;font-weight:700;color:var(--text);margin:.25rem 0}.lobby-cta .accent{color:var(--sun)}.join-count{text-align:center;color:var(--text-muted);font-size:.8rem;font-weight:600;letter-spacing:.1em;text-transform:uppercase;margin-bottom:1rem}.player-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(86px,1fr));gap:.85rem .6rem;margin-bottom:1.5rem;justify-items:center}.player-card{display:flex;flex-direction:column;align-items:center;gap:.45rem;padding:.65rem .3rem .55rem;border-radius:var(--radius-sm);cursor:pointer;transition:background var(--dur-fast),transform var(--dur-fast) var(--ease-out),opacity var(--dur-fast);position:relative;width:100%;max-width:100px}.player-card:active{transform:scale(.94)}.player-card.is-pending{opacity:.42;filter:grayscale(.8)}.player-card.is-pending .avatar{opacity:.85}.player-card.is-joined{opacity:1;filter:none}.player-card.is-me{background:#ffe06614;outline:2px solid var(--sun);outline-offset:-2px;box-shadow:0 0 0 4px #ffe0661f,0 0 22px #ffe0662e}.avatar{width:56px;height:56px;border-radius:50%;background:var(--surface-2);display:flex;align-items:center;justify-content:center;flex-shrink:0;position:relative;box-shadow:inset 0 0 0 2px #ffffff14,0 4px 14px #0000004d}.avatar-kit.neutral-kit{background:linear-gradient(160deg,#2a2a31,#1a1a20)}.avatar-kit.team-bg-1{background:linear-gradient(160deg,#3a72d6 0%,var(--team1) 65%,#1f4690 100%);box-shadow:inset 0 0 0 2px #ffffff2e,0 6px 16px #2e5cb859}.avatar-kit.team-bg-2{background:linear-gradient(160deg,#efbb33 0%,var(--team2) 65%,#a37a0a 100%);box-shadow:inset 0 0 0 2px #ffffff38,0 6px 16px #d4a01759}.avatar-kit.team-bg-3{background:linear-gradient(160deg,#d83a40 0%,var(--team3) 65%,#8a1a1f 100%);box-shadow:inset 0 0 0 2px #ffffff2e,0 6px 16px #c1272d59}.avatar-kit.is-stag-kit{background:linear-gradient(160deg,#ffe98a 0%,var(--sun) 60%,#b8951f 100%);box-shadow:inset 0 0 0 2px #ffffff59,0 0 0 2px #ffe06673,0 0 22px #ffe06673;animation:stagGlow 2.2s ease-in-out infinite}.avatar-sm{width:38px;height:38px;box-shadow:inset 0 0 0 1.5px #ffffff26,0 2px 6px #00000040}.avatar-lg{width:76px;height:76px}.avatar-letter{font-family:var(--font-display);font-size:1.6rem;color:#fff;-webkit-user-select:none;user-select:none;line-height:1;text-shadow:0 1px 2px rgba(0,0,0,.35);letter-spacing:.02em}.avatar-kit.team-bg-2 .avatar-letter,.avatar-kit.is-stag-kit .avatar-letter{color:#1a1306;text-shadow:0 1px 1px rgba(255,255,255,.25)}.avatar-kit.neutral-kit .avatar-letter{color:#f0ecdf}.avatar-sm .avatar-letter{font-size:1.05rem}.avatar-lg .avatar-letter{font-size:2.1rem}.kit-number{position:absolute;bottom:-2px;right:-3px;min-width:20px;height:20px;padding:0 5px;border-radius:10px;background:#0b0b0e;color:#fff;font-family:var(--font-display);font-size:.7rem;display:flex;align-items:center;justify-content:center;line-height:1;box-shadow:0 0 0 2px #ffffff1f,0 2px 4px #0006;letter-spacing:.02em}.avatar-sm .kit-number{min-width:14px;height:14px;font-size:.55rem;padding:0 3px;bottom:-1px;right:-2px}.avatar-lg .kit-number{min-width:24px;height:24px;font-size:.85rem}.captain-pip{position:absolute;top:-3px;right:-3px;width:18px;height:18px;border-radius:50%;background:var(--sun);color:#1a1306;display:flex;align-items:center;justify-content:center;font-size:.7rem;line-height:1;box-shadow:0 0 0 2px var(--bg),0 2px 4px #0006}.avatar-sm .captain-pip{width:12px;height:12px;font-size:.5rem;top:-2px;right:-2px}.stag-crown{position:absolute;top:-8px;left:50%;transform:translate(-50%);font-size:.95rem;color:var(--sun);text-shadow:0 0 6px rgba(255,224,102,.8),0 1px 2px rgba(0,0,0,.6);pointer-events:none}.avatar-sm .stag-crown{font-size:.7rem;top:-6px}.player-name{font-size:.95rem;font-weight:700;text-align:center;line-height:1.15;word-break:break-word;letter-spacing:.005em;color:var(--text)}.player-card.is-me .player-name{color:var(--sun)}.you-pip{font-family:var(--font-display);font-size:.55rem;letter-spacing:.18em;background:var(--sun);color:#1a1306;padding:2px 6px 1px;border-radius:10px;line-height:1;margin-top:-.15rem;box-shadow:0 2px 6px #ffe06659}.join-check{position:absolute;bottom:22px;right:4px;width:16px;height:16px;background:var(--safe);color:#fff;border-radius:50%;font-size:.6rem;font-weight:900;display:flex;align-items:center;justify-content:center;box-shadow:0 2px 6px #0006;animation:popIn .35s var(--ease-out-back)}.screen-drink-order{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:70vh;text-align:center}.drink-order-card{width:100%;background:linear-gradient(180deg,var(--surface),var(--bg-deep));border:1px solid var(--surface-3);border-radius:var(--radius-lg);padding:2rem 1.5rem;position:relative;box-shadow:var(--shadow-lg)}.drink-order-card:before{content:"";position:absolute;top:0;left:0;right:0;height:4px;background:linear-gradient(90deg,var(--sun),var(--sun-deep));border-radius:var(--radius-lg) var(--radius-lg) 0 0}.drink-order-eyebrow{font-family:var(--font-body);font-size:.72rem;letter-spacing:.35em;color:var(--text-muted);font-weight:700;text-transform:uppercase;margin-bottom:1rem}.drink-order-text{font-family:var(--font-display);font-size:1.85rem;color:var(--sun);line-height:1.15;margin-bottom:.5rem;letter-spacing:.005em}.drink-order-phonetic{font-size:.95rem;font-style:italic;color:var(--text-dim);font-weight:500;margin-bottom:1rem}.drink-instruction{font-size:.85rem;color:var(--text-muted);font-style:italic;margin-top:1rem;line-height:1.5}.screen-team-reveal{display:flex;flex-direction:column;align-items:center}.team-reveal-card{width:100%;border-radius:var(--radius-lg);padding:2.25rem 1.5rem;text-align:center;margin-bottom:1.5rem;position:relative;overflow:hidden;box-shadow:var(--shadow-lg);animation:cardReveal .5s var(--ease-out-back);transform:translateZ(0);will-change:transform,opacity}.team-reveal-card:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background-image:radial-gradient(circle at 30% 20%,rgba(255,255,255,.16),transparent 55%),radial-gradient(circle at 80% 80%,rgba(0,0,0,.22),transparent 55%);pointer-events:none}.team-reveal-label{font-family:var(--font-body);font-size:.72rem;text-transform:uppercase;letter-spacing:.45em;opacity:.85;margin-bottom:.75rem;font-weight:700;padding-left:.4em;position:relative}.team-reveal-name{font-family:var(--font-display);font-size:3.25rem;color:#fff;text-shadow:0 3px 12px rgba(0,0,0,.4);margin-bottom:1.25rem;letter-spacing:.01em;line-height:.9;position:relative;animation:letterDrop .55s var(--ease-out-back) .12s backwards}.team-bg-2 .team-reveal-name{color:#151004;text-shadow:0 6px 20px rgba(0,0,0,.2)}.teammate-list{display:flex;flex-direction:column;gap:.4rem;text-align:left;position:relative;padding:1rem;background:#00000038;border-radius:var(--radius)}.team-bg-2 .teammate-list{background:#15100440}.teammate{display:flex;align-items:center;gap:.65rem;padding:.2rem 0;animation:teammateSlide .5s var(--ease-out) backwards}.teammate.is-captain{font-weight:800}.teammate.is-stag{border-top:1px dashed rgba(255,255,255,.3);margin-top:.3rem;padding-top:.5rem}.team-bg-2 .teammate.is-stag{border-top-color:#15100466}.teammate-name{font-size:.98rem}.captain-badge{display:inline-flex;align-items:center;gap:.2rem;padding:.12rem .45rem;background:#0006;color:#fff;font-family:var(--font-body);font-size:.58rem;font-weight:900;border-radius:999px;text-transform:uppercase;letter-spacing:.15em;margin-left:auto}.team-bg-2 .captain-badge{background:#15100480}.captain-order{text-align:left;font-size:1rem;color:var(--sun);font-weight:600;line-height:1.4;margin-top:1rem;padding:1.25rem;border:2px dashed var(--sun);border-radius:var(--radius);background:#ffe0660d;position:relative}.captain-order:before{content:"★ CAPTAIN";position:absolute;top:-10px;left:16px;background:var(--bg);color:var(--sun);font-family:var(--font-body);font-size:.65rem;font-weight:900;letter-spacing:.3em;padding:0 .6rem}.captain-order-phonetic{font-size:.85rem;color:var(--text-muted);font-style:italic;font-weight:500;margin-top:.5rem}.game-eyebrow{display:flex;align-items:center;gap:.5rem;text-transform:uppercase;letter-spacing:.25em;font-size:.72rem;font-weight:800;color:var(--sun);margin-bottom:.5rem;padding-left:.25em}.game-eyebrow-dot{width:6px;height:6px;border-radius:50%;background:var(--sun);box-shadow:0 0 8px var(--sun)}.game-name{font-family:var(--font-display);font-size:2.5rem;margin-bottom:.75rem;color:var(--text);letter-spacing:.005em;line-height:.95}.game-description{font-size:1.08rem;color:var(--text-dim);line-height:1.5;margin-bottom:1.5rem}.team-order-card{background:var(--surface);border-radius:var(--radius);padding:1.25rem;margin-bottom:1.25rem;border-left:4px solid var(--sun);box-shadow:var(--shadow-inner)}.team-order-label{font-size:.72rem;font-weight:800;letter-spacing:.2em;color:var(--text-muted);margin-bottom:.5rem;text-transform:uppercase}.team-order-text{font-size:1.1rem;color:var(--sun);line-height:1.5;font-family:var(--font-display)}.boat-race-drinks{background:var(--surface);border-radius:var(--radius);padding:1rem 1.25rem;margin-bottom:1.25rem;box-shadow:var(--shadow-inner)}.boat-race-label{font-size:.72rem;font-weight:800;letter-spacing:.2em;color:var(--text-muted);margin-bottom:.75rem;text-transform:uppercase}.boat-race-drink{display:flex;gap:.75rem;padding:.45rem 0;border-bottom:1px solid var(--surface-2);align-items:center}.boat-race-drink:last-child{border-bottom:none}.boat-race-pos{color:var(--sun);font-family:var(--font-display);font-size:1.1rem;min-width:1.5rem}.boat-race-name{color:var(--text);font-weight:500}.james-team-indicator{display:inline-flex;align-items:center;gap:.4rem;font-size:.85rem;padding:.4rem .75rem;background:var(--surface);border-radius:999px;margin-bottom:1rem;color:var(--text-dim)}.james-team-name{font-weight:800}.james-team-dot{width:8px;height:8px;border-radius:50%}.scoreboard{display:grid;grid-template-columns:repeat(3,1fr);gap:.6rem;margin-bottom:1.5rem}.scoreboard-col{text-align:center;padding:1.1rem .5rem 1.25rem;border-radius:var(--radius);background:var(--surface);border-top:4px solid transparent;position:relative;box-shadow:var(--shadow-inner);overflow:hidden}.scoreboard-col.team-bg-1{background:var(--surface);border-top-color:var(--team1);color:var(--text)}.scoreboard-col.team-bg-2{background:var(--surface);border-top-color:var(--team2);color:var(--text)}.scoreboard-col.team-bg-3{background:var(--surface);border-top-color:var(--team3);color:var(--text)}.scoreboard-col.is-leader{box-shadow:0 0 0 2px var(--danger),var(--shadow-inner)}.scoreboard-team-name{font-family:var(--font-display);font-size:.95rem;letter-spacing:.01em;margin-bottom:.35rem;line-height:1}.scoreboard-losses{font-family:var(--font-display);font-size:3.25rem;line-height:.9;color:var(--text)}.scoreboard-losses-label{font-size:.65rem;color:var(--text-muted);text-transform:uppercase;letter-spacing:.15em;margin-top:.25rem;font-weight:700}.scoreboard-losses.is-new{animation:scoreDrop .6s var(--ease-out-back)}.mini-scoreboard{display:flex;justify-content:space-around;gap:.5rem;padding:.75rem 1rem;border-radius:var(--radius);background:var(--surface);margin-top:auto;box-shadow:var(--shadow-inner)}.mini-score{display:flex;flex-direction:column;align-items:center;gap:.15rem;font-size:.75rem;font-weight:700;letter-spacing:.08em}.mini-score-name{font-family:var(--font-display);font-size:.72rem;text-transform:uppercase;letter-spacing:.05em}.mini-score-val{font-family:var(--font-display);font-size:1.25rem;color:var(--text)}.trivia-mode-label{display:inline-flex;align-items:center;justify-content:center;padding:.35rem .85rem;background:var(--surface);color:var(--text-muted);font-size:.72rem;font-weight:800;text-transform:uppercase;letter-spacing:.25em;border-radius:999px;margin:0 auto .9rem;width:fit-content;display:flex}.trivia-mode-row{display:flex;justify-content:center;margin-bottom:.5rem}.double-or-nothing-label{background:#e6394626;color:var(--danger);animation:donPulse 2s ease-in-out infinite}.tiebreaker-label{background:#ffe06626;color:var(--sun)}.james-banner{background:linear-gradient(90deg,var(--sun-deep),var(--sun),var(--sun-deep));background-size:200% 100%;color:var(--ink);padding:.85rem 1rem;border-radius:var(--radius);text-align:center;margin-bottom:1.1rem;animation:shimmer 3s linear infinite,bannerFloat 2.4s ease-in-out infinite;transform-origin:center;box-shadow:0 8px 24px #ffe06640,var(--shadow-inner)}.james-banner-text{font-family:var(--font-display);font-size:1rem;letter-spacing:.15em}.trivia-framing{font-style:italic;color:var(--text-muted);font-size:1rem;margin-bottom:.3rem;line-height:1.4}.trivia-question{font-family:var(--font-display);font-size:1.65rem;margin-bottom:1.25rem;line-height:1.15;color:var(--text)}.trivia-target-label{text-align:center;margin-bottom:.75rem;font-size:.8rem;color:var(--text-muted)}.trivia-options{display:flex;flex-direction:column;gap:.6rem;margin-bottom:1rem}.trivia-option{background:var(--surface);color:var(--text);border:2px solid var(--surface-2);text-align:left;padding:1rem 1.1rem 1rem 3.4rem;font-size:1.05rem;font-weight:600;min-height:var(--btn-height);transition:border-color var(--dur-fast),background var(--dur-fast),transform var(--dur-tap) var(--ease-out),opacity var(--dur-base),box-shadow var(--dur-fast);position:relative;letter-spacing:0}.trivia-option:before{content:attr(data-letter);position:absolute;left:.75rem;top:50%;transform:translateY(-50%);width:2rem;height:2rem;border-radius:50%;background:var(--surface-2);color:var(--text-dim);font-family:var(--font-display);font-size:1rem;display:flex;align-items:center;justify-content:center;transition:background var(--dur-fast),color var(--dur-fast)}.trivia-option.selected{border-color:var(--sun);background:#ffe06614}.trivia-option.selected:before{background:var(--sun);color:var(--ink)}.trivia-option.locked-in{border-color:var(--sun);background:#ffe0661f;opacity:.7}.trivia-option.correct{border-color:#22c55e;background:#22c55e2e;box-shadow:0 0 0 1px #22c55e,0 0 28px #22c55e59;animation:correctPulse .7s var(--ease-out-back)}.trivia-option.correct:before{background:#22c55e;color:#04180a}.trivia-option.wrong{border-color:#e6394666;opacity:.3;transition-delay:.3s}.trivia-option.wrong.was-chosen{animation:wrongShake .4s ease-out;opacity:.55}.trivia-lock-in{margin-top:.35rem}.trivia-lock-in.disabled{opacity:.35;cursor:not-allowed}.trivia-status{text-align:center;padding:1rem;font-style:italic;font-size:.95rem;color:var(--text-muted)}.trivia-results{display:flex;flex-direction:column;gap:.4rem;margin-top:1rem;padding-top:1rem;border-top:1px solid var(--surface-2)}.trivia-result{display:flex;justify-content:space-between;align-items:center;padding:.65rem .9rem;border-radius:var(--radius-sm);background:var(--surface);animation:resultSlide .5s var(--ease-out) backwards;box-shadow:var(--shadow-inner)}.trivia-result-team{font-family:var(--font-display);font-size:1rem;letter-spacing:.01em}.trivia-result-verdict{font-weight:800;font-size:.88rem;display:flex;align-items:center;gap:.35rem;text-transform:uppercase;letter-spacing:.1em}.result-correct{box-shadow:inset 3px 0 #22c55e}.result-correct .trivia-result-verdict{color:#22c55e}.result-wrong{box-shadow:inset 3px 0 0 var(--danger)}.result-wrong .trivia-result-verdict{color:var(--danger)}.screen-walking{text-align:center}.walking-hero{aspect-ratio:16 / 10;margin:1rem 0 1.25rem}.walking-hint{padding:1.15rem 1.25rem;border-left:4px solid var(--sun);background:var(--surface);border-radius:0 var(--radius) var(--radius) 0;text-align:left;box-shadow:var(--shadow-inner)}.walking-hint-label{font-size:.72rem;font-weight:800;text-transform:uppercase;letter-spacing:.2em;color:var(--sun);margin-bottom:.4rem}.walking-hint-text{font-family:var(--font-display);font-size:1.25rem;color:var(--text);line-height:1.2;letter-spacing:.005em}.screen-ceremony{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:70vh;text-align:center}.ceremony-suspense{animation:fadeIn .5s var(--ease-out);width:100%}.ceremony-title{font-family:var(--font-display);font-size:3rem;color:var(--sun);margin-bottom:.5rem;letter-spacing:.01em;text-shadow:0 0 40px rgba(255,224,102,.3)}.ceremony-subtitle{margin-bottom:1.5rem;font-size:1.05rem;color:var(--text-dim)}.slot-machine{width:100%;height:160px;border-radius:var(--radius-lg);background:linear-gradient(180deg,var(--bg-deep),var(--surface),var(--bg-deep));border:1px solid var(--surface-3);box-shadow:var(--shadow-lg),inset 0 4px 30px #000c;overflow:hidden;position:relative;margin-bottom:1.5rem}.slot-machine:before,.slot-machine:after{content:"";position:absolute;left:0;right:0;height:40px;z-index:2;pointer-events:none}.slot-machine:before{top:0;background:linear-gradient(180deg,var(--bg-deep) 0%,transparent 100%)}.slot-machine:after{bottom:0;background:linear-gradient(0deg,var(--bg-deep) 0%,transparent 100%)}.slot-window{position:absolute;top:50%;left:8%;right:8%;transform:translateY(-50%);height:60px;border-top:2px solid var(--sun);border-bottom:2px solid var(--sun);box-shadow:0 0 20px #ffe06666;pointer-events:none;z-index:3}.slot-reel{position:absolute;top:0;left:0;right:0;display:flex;flex-direction:column;align-items:center;will-change:transform}.slot-reel-idle{animation:slotIdle 1.6s linear infinite}@keyframes slotIdle{0%{transform:translateY(40px)}to{transform:translateY(-200px)}}.slot-item{height:80px;display:flex;align-items:center;justify-content:center;font-family:var(--font-display);font-size:2.2rem;text-transform:uppercase;letter-spacing:.01em;width:100%}.ceremony-result{width:100%;border-radius:var(--radius-lg);padding:2.25rem 1.5rem;animation:cardReveal .8s var(--ease-out-back);margin-bottom:1.5rem;box-shadow:var(--shadow-lg)}.ceremony-safe{background:linear-gradient(180deg,#2a9d8f33,#2a9d8f14);border:2px solid var(--safe)}.ceremony-loser{background:linear-gradient(180deg,#e6394640,#e6394614);border:2px solid var(--danger);animation:cardReveal .8s var(--ease-out-back),ceremonyGlow 1.8s ease-in-out infinite .8s}.ceremony-verdict{font-family:var(--font-display);font-size:3.25rem;letter-spacing:.01em;line-height:.9}.ceremony-safe .ceremony-verdict{color:var(--safe)}.ceremony-loser .ceremony-verdict{color:var(--danger)}.ceremony-team-name{font-family:var(--font-display);font-size:1.5rem;margin:.75rem 0}.ceremony-forfeit-text{font-size:1rem;line-height:1.55;margin-top:1rem;color:var(--text)}.ceremony-forfeit-text strong{color:var(--sun)}.screen-forfeit{text-align:center;display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:70vh}.forfeit-title{font-family:var(--font-display);font-size:3rem;color:var(--danger);margin-bottom:.75rem;letter-spacing:.01em;text-shadow:0 0 40px rgba(230,57,70,.4)}.forfeit-team{font-family:var(--font-display);font-size:2.25rem;margin-bottom:1.5rem}.forfeit-details{background:var(--surface);border:2px dashed var(--danger);border-radius:var(--radius-lg);padding:1.75rem 1.5rem;margin-bottom:1.5rem;width:100%;box-shadow:var(--shadow-lg)}.forfeit-details-row{display:flex;align-items:center;gap:.75rem;padding:.5rem 0;font-size:1.05rem;line-height:1.4;text-align:left}.forfeit-details-num{font-family:var(--font-display);font-size:1.75rem;color:var(--danger);line-height:1;min-width:1.8rem}.forfeit-losers{margin-top:1rem;width:100%}.forfeit-losers-label{font-size:.72rem;font-weight:800;text-transform:uppercase;letter-spacing:.3em;color:var(--text-muted);margin-bottom:.75rem;text-align:center}.forfeit-loser-row{display:flex;flex-wrap:wrap;justify-content:center;gap:.75rem}.forfeit-loser{display:flex;align-items:center;gap:.45rem;padding:.4rem .75rem .4rem .4rem;background:var(--surface);border-radius:999px}.screen-game-over{text-align:center;display:flex;flex-direction:column;align-items:center;padding-top:1rem}.game-over-title{font-family:var(--font-display);font-size:3.5rem;color:var(--sun);text-shadow:0 0 40px rgba(255,224,102,.4);margin-bottom:1rem;letter-spacing:.01em;line-height:.9}.game-over-message{font-size:1.1rem;color:var(--text-dim);margin:1rem 0 1.5rem;font-style:italic;line-height:1.5}.game-over-share{margin-top:.5rem;width:100%}.gm-bar{position:fixed;bottom:0;left:0;right:0;background:#0b0b0eeb;backdrop-filter:blur(14px) saturate(1.1);-webkit-backdrop-filter:blur(14px) saturate(1.1);padding:.75rem .75rem calc(.75rem + env(safe-area-inset-bottom,0px));display:flex;gap:.5rem;align-items:flex-end;z-index:900;border-top:1px solid var(--surface-3)}.gm-context{display:flex;flex-direction:column;gap:.5rem;width:100%}.gm-breadcrumb{display:flex;align-items:center;gap:.4rem;font-family:var(--font-body);font-size:.68rem;font-weight:800;color:var(--text-muted);letter-spacing:.15em;text-transform:uppercase;padding:.25rem .6rem;background:var(--surface);border-radius:999px;width:fit-content;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.gm-breadcrumb-dot{width:5px;height:5px;border-radius:50%;background:var(--sun);flex-shrink:0}.gm-btn{flex:1}.gm-team-buttons{display:flex;flex-direction:column;gap:.5rem;width:100%}.gm-team-label{text-align:center;font-size:.72rem;margin-bottom:.15rem;letter-spacing:.2em;text-transform:uppercase;font-weight:700}.gm-team-btn{min-height:50px;font-family:var(--font-display);letter-spacing:.02em}.gm-status{flex:1;text-align:center;padding:.75rem;font-size:.9rem;letter-spacing:.1em;text-transform:uppercase;color:var(--text-muted)}.gm-override-toggle{width:54px;min-height:54px;flex:none;background:var(--surface-2);color:var(--text);font-family:var(--font-display);font-size:.75rem;letter-spacing:.1em;border-radius:var(--radius);display:flex;align-items:center;justify-content:center;padding:0;border:1px solid var(--surface-3);align-self:stretch}.gm-optional-wrapper{display:flex;gap:.5rem;width:100%}.gm-optional-wrapper .gm-btn{flex:1}.gm-skip-btn{flex:0 0 80px!important;min-height:50px}.gm-reveal-wrapper{display:flex;flex-direction:column;gap:.5rem;width:100%}.gm-lockin-status{display:flex;justify-content:center;gap:.75rem;font-size:.72rem;letter-spacing:.1em;text-transform:uppercase}.gm-lockin-team{font-weight:800;display:flex;align-items:center;gap:.3rem}.gm-lockin-team:before{content:"";width:7px;height:7px;border-radius:50%;background:var(--text-muted)}.gm-lockin-done:before{background:#22c55e;box-shadow:0 0 8px #22c55e}.gm-lockin-waiting:before{animation:dotPulse 1s ease-in-out infinite}.gm-override-menu{position:fixed;top:0;right:0;bottom:0;left:0;background:#000000bf;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:950;display:flex;align-items:flex-end;justify-content:center;animation:fadeIn .2s var(--ease-out)}.gm-override-panel{background:var(--surface);border-radius:var(--radius-lg) var(--radius-lg) 0 0;padding:1.5rem 1.5rem calc(1.5rem + env(safe-area-inset-bottom,0px));width:100%;max-width:460px;max-height:82vh;overflow-y:auto;animation:slideUp var(--dur-base) var(--ease-out-expo);border-top:1px solid var(--surface-3)}.gm-override-handle{width:40px;height:4px;background:var(--surface-3);border-radius:999px;margin:-.5rem auto 1rem}.gm-override-title{text-align:center;font-family:var(--font-display);font-size:1.1rem;color:var(--sun);margin-bottom:.25rem;letter-spacing:.1em}.gm-override-subtitle{text-align:center;font-size:.72rem;color:var(--text-muted);letter-spacing:.2em;text-transform:uppercase;margin-bottom:1rem}.gm-override-section{font-size:.7rem;font-weight:800;text-transform:uppercase;letter-spacing:.25em;color:var(--text-muted);margin:1.25rem 0 .5rem}.gm-override-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:.4rem}.gm-override-btn{min-height:44px;background:var(--surface-2);color:var(--text);font-size:.9rem;border-radius:var(--radius-sm);font-family:var(--font-display)}.gm-override-btn-sm{min-height:36px;font-size:.78rem;width:auto;padding:0 .75rem;font-family:var(--font-body);letter-spacing:.1em;text-transform:uppercase}.gm-override-select{width:100%;min-height:42px;background:var(--bg);color:var(--text);border:1px solid var(--surface-3);border-radius:var(--radius-sm);padding:.5rem .75rem;font-size:.9rem;font-family:var(--font-body);margin-bottom:.5rem}.gm-captain-row{display:flex;align-items:center;gap:.5rem;margin-bottom:.5rem}.gm-captain-team{font-family:var(--font-display);font-size:.82rem;min-width:78px}.gm-captain-select{flex:1;margin-bottom:0}.gm-override-divider{border:none;border-top:1px solid var(--surface-3);margin:1.25rem 0}.gm-override-close{margin-top:1rem;background:var(--surface-2);color:var(--text);font-family:var(--font-body);text-transform:uppercase;letter-spacing:.15em;font-size:.85rem}.confetti-layer{position:fixed;top:0;right:0;bottom:0;left:0;pointer-events:none;z-index:500;overflow:hidden}.confetti-piece{position:absolute;top:-20px;width:10px;height:16px;background:var(--sun);will-change:transform,opacity;animation:confettiFall var(--conf-dur, 2.6s) linear forwards;border-radius:1px}.flash-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#fff;opacity:0;pointer-events:none;z-index:800;animation:flashBurst .45s var(--ease-out) forwards}@keyframes fadeIn{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeOut{to{opacity:0;visibility:hidden}}@keyframes screenEnter{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}@keyframes screenExit{to{opacity:0;transform:translateY(-8px)}}@keyframes slideUp{0%{transform:translateY(100%)}to{transform:translateY(0)}}@keyframes slideDown{0%{transform:translateY(-100%)}to{transform:translateY(0)}}@keyframes toastIn{0%{opacity:0;transform:translate(-50%,30px)}to{opacity:1;transform:translate(-50%)}}@keyframes cardReveal{0%{opacity:0;transform:scale(.85)}to{opacity:1;transform:scale(1)}}@keyframes letterDrop{0%{opacity:0;transform:translateY(-20px) scale(.9)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes teammateSlide{0%{opacity:0;transform:translate(-8px)}to{opacity:1;transform:translate(0)}}@keyframes popIn{0%{transform:scale(0) rotate(-10deg)}to{transform:scale(1) rotate(0)}}@keyframes dotPulse{0%,to{transform:scale(1);opacity:1}50%{transform:scale(1.3);opacity:.5}}@keyframes bannerFloat{0%,to{transform:translateY(0) rotate(-.5deg)}50%{transform:translateY(-2px) rotate(.5deg)}}@keyframes shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}@keyframes correctPulse{0%{transform:scale(1)}35%{transform:scale(1.04)}to{transform:scale(1)}}@keyframes wrongShake{0%,to{transform:translate(0)}20%{transform:translate(-6px)}40%{transform:translate(6px)}60%{transform:translate(-4px)}80%{transform:translate(4px)}}@keyframes ceremonyGlow{0%,to{box-shadow:var(--shadow-lg),0 0 20px #e6394633}50%{box-shadow:var(--shadow-lg),0 0 50px #e639468c}}@keyframes donPulse{0%,to{background:#e6394626}50%{background:#e6394647}}@keyframes stagGlow{0%,to{box-shadow:0 0 0 3px #ffe06626,0 0 24px #ffe06666}50%{box-shadow:0 0 0 5px #ffe06638,0 0 36px #ffe06699}}@keyframes resultSlide{0%{opacity:0;transform:translate(-6px)}to{opacity:1;transform:translate(0)}}@keyframes scoreDrop{0%{transform:translateY(-24px) scale(.5);opacity:0}50%{transform:translateY(4px) scale(1.15)}to{transform:translateY(0) scale(1);opacity:1}}@keyframes rippleOut{0%{transform:translate(-50%,-50%) scale(0);opacity:.35}to{transform:translate(-50%,-50%) scale(1);opacity:0}}@keyframes confettiFall{0%{transform:translateY(0) rotate(0) rotateX(0);opacity:1}to{transform:translateY(120vh) rotate(720deg) rotateX(360deg);opacity:.85}}@keyframes flashBurst{0%{opacity:0}12%{opacity:.85}to{opacity:0}}@keyframes confirmPulse{0%,to{box-shadow:0 0 #e6394699}50%{box-shadow:0 0 0 10px #e6394600}}.container.no-entry-anim .screen,.container.no-entry-anim .team-reveal-card,.container.no-entry-anim .team-reveal-name,.container.no-entry-anim .teammate,.container.no-entry-anim .trivia-result,.container.no-entry-anim .ceremony-result,.container.no-entry-anim .ceremony-suspense,.container.no-entry-anim .drink-order-card,.container.no-entry-anim .scoreboard-losses.is-new,.container.no-entry-anim .join-check{animation:none!important}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}.boot-dots span{opacity:.7}.ceremony-loser{animation:none}}:focus-visible{outline:3px solid var(--sun);outline-offset:3px;border-radius:4px}
