:root{--bg-deep: #0a1628;--bg-mid: #1a2744;--ocean-blue: #1e4976;--ocean-bright: #2a7de1;--sea-foam: #0d9488;--sea-foam-light: #2dd4bf;--sand: #d4a574;--sand-light: #f5e6d3;--coral: #ff6b6b;--gold: #ffd700;--text-primary: #e8f0fe;--text-muted: #8ba3c7;--card-bg: rgba(255, 255, 255, .06);--card-border: rgba(255, 255, 255, .12);--card-bg-hover: rgba(255, 255, 255, .1);--danger-bg: rgba(220, 38, 38, .15);--danger-border: #dc2626;--danger-text: #fca5a5}*,*:before,*:after{box-sizing:border-box}body{margin:0;padding:0;min-height:100vh;background:linear-gradient(170deg,var(--bg-deep) 0%,var(--bg-mid) 50%,#0f2035 100%);color:var(--text-primary);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,sans-serif;line-height:1.5;-webkit-font-smoothing:antialiased}#root{max-width:900px;margin:0 auto;padding:16px}h1{font-size:1.75rem;font-weight:800;color:var(--text-primary);text-shadow:0 0 20px rgba(42,125,225,.3);margin:0 0 8px}h2{font-size:1.25rem;font-weight:700;color:var(--sea-foam-light);margin:16px 0 8px}p{color:var(--text-muted);margin:4px 0 12px}label{display:block;color:var(--sea-foam-light);font-size:.875rem;font-weight:600;margin-bottom:4px}a{color:var(--ocean-bright)}input[type=text],input[type=number],textarea{width:100%;padding:10px 12px;background:#ffffff12;border:1.5px solid var(--card-border);border-radius:8px;color:var(--text-primary);font-size:1rem;transition:border-color .2s}input:focus,textarea:focus{outline:none;border-color:var(--ocean-bright);box-shadow:0 0 0 3px #2a7de133}textarea{resize:vertical}button{padding:10px 20px;border:none;border-radius:8px;background:linear-gradient(135deg,var(--ocean-blue),var(--sea-foam));color:#fff;font-size:.95rem;font-weight:600;cursor:pointer;transition:transform .15s,box-shadow .2s,opacity .2s;min-height:48px;min-width:48px}button:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 4px 16px #0d948859}button:active:not(:disabled){transform:translateY(0)}button:disabled{opacity:.45;cursor:default}.card{background:var(--card-bg);border:1px solid var(--card-border);border-radius:12px;padding:24px;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px)}.error-text{color:var(--coral)!important;font-size:.875rem;font-weight:600}@keyframes fadeIn{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@keyframes pulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.7;transform:scale(1.03)}}@keyframes waveFlow{0%{background-position:0% 50%}to{background-position:200% 50%}}@keyframes goldenPulse{0%,to{box-shadow:0 0 20px #ffd7004d}50%{box-shadow:0 0 40px #ffd70099}}[data-testid=create-view],[data-testid=sharing-view],[data-testid=join-view],[data-testid=error-view]{max-width:520px;margin:40px auto;background:var(--card-bg);border:1px solid var(--card-border);border-radius:16px;padding:32px;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);animation:fadeIn .4s ease-out}[data-testid=create-view] h1:before,[data-testid=join-view] h1:before{content:"🐬 "}[data-testid=create-view] h1:after,[data-testid=join-view] h1:after{content:" 🐬"}[data-testid=create-view] form>div{margin-bottom:16px}[data-testid=sharing-view] h1:before{content:"🐬 "}[data-testid=sharing-view] h1:after{content:" 🐬"}[data-testid=sharing-view] p[data-testid]{word-break:break-all;font-size:.8rem;background:#00000040;padding:8px 12px;border-radius:6px;color:var(--text-muted);font-family:monospace}[data-testid=sharing-view] canvas,[data-testid=share-section] canvas{display:block;margin:12px auto;border-radius:12px;padding:16px;background:var(--sand-light)}[data-testid=lobby-view]{animation:fadeIn .4s ease-out}[data-testid=lobby-view] h1:before{content:"⚓ "}[data-testid=word-selection-view]{animation:fadeIn .3s ease-out}[data-testid=word-selection-view] [data-testid=word-grid] button{background:var(--card-bg);border:2px solid var(--card-border);color:var(--text-primary);border-radius:8px;padding:8px 16px;transition:all .2s}[data-testid=word-selection-view] [data-testid=word-grid] button[aria-pressed=true]{border-color:var(--ocean-bright);background:#2a7de133;color:#fff;box-shadow:0 0 12px #2a7de140}[data-testid=word-selection-view] [data-testid=word-grid] button:disabled{opacity:.4}[data-testid=game-view]{animation:fadeIn .3s ease-out}[data-testid=game-view]>h1:before{content:"🐬 "}[data-testid=word-grid]{margin-bottom:16px}[data-testid^=word-tile-]{background:var(--card-bg)!important;border:2px solid var(--card-border)!important;color:var(--text-primary)!important;border-radius:10px!important;font-size:.95rem!important;transition:all .2s}[data-testid^=word-tile-][aria-pressed=true]{border-color:var(--sea-foam-light)!important;background:#2dd4bf26!important;color:var(--sea-foam-light)!important;box-shadow:0 0 12px #2dd4bf33}[data-testid^=word-tile-]:disabled:not([aria-pressed=true]){opacity:.4!important;color:var(--text-muted)!important;background:#ffffff08!important}[data-testid=tension-signal]{background:#ffd7001f!important;border-color:var(--gold)!important;color:var(--gold)!important}[data-testid=disqualified-banner]{background:var(--danger-bg)!important;border-color:var(--danger-border)!important;color:var(--danger-text)!important}[data-testid=player-list]{list-style:none;padding:0}[data-testid=player-list] li{padding:8px 12px;margin-bottom:4px;background:var(--card-bg);border:1px solid var(--card-border);border-radius:8px;color:var(--text-primary);font-size:.9rem;transition:background .2s}[data-testid=player-list] li:hover{background:var(--card-bg-hover)}[data-testid=player-list] [data-testid^=bingo-]{color:var(--gold)}[data-testid=player-list] [data-testid^=dq-]{color:var(--coral)}[data-testid=connection-banner]{border-radius:0 0 8px 8px;font-weight:600}[data-testid=connection-banner][style*=reconnecting],[data-testid=connection-banner]{background:#ff6b6b26!important;color:var(--coral)!important;border-bottom:2px solid var(--coral)}[data-testid=reconnect-button]{background:#ffffff1a;border:1px solid var(--coral);color:var(--coral)}[data-testid=bingo-announcement]{background:linear-gradient(135deg,#1a1a2e,#16213e)!important;color:var(--gold)!important;border-bottom:3px solid var(--gold);animation:goldenPulse 2s ease-in-out infinite;font-size:1.75rem!important;text-shadow:0 0 20px rgba(255,215,0,.4)}[data-testid=bingo-announcement]:before{content:"🐬 "}[data-testid=bingo-announcement]:after{content:" 🐬"}[data-testid=end-view]{max-width:600px;margin:40px auto;animation:fadeIn .4s ease-out}[data-testid=end-view] h1:before{content:"🏆 "}[data-testid=end-view] h1:after{content:" 🏆"}[data-testid=leaderboard]{list-style:none!important;padding:0!important}[data-testid=leaderboard] li{background:var(--card-bg)!important;border:1px solid var(--card-border)!important;border-radius:10px!important;color:var(--text-primary)!important;margin-bottom:6px!important;padding:10px 14px!important;transition:background .2s}[data-testid=leaderboard] li:hover{background:var(--card-bg-hover)!important}[data-testid=leaderboard] li:has([data-testid^=bingo-indicator]){border-color:var(--gold)!important;background:#ffd70014!important}[data-testid=leaderboard] li:nth-child(1){border-color:var(--gold)!important;box-shadow:0 0 12px #ffd70026}[data-testid=leaderboard] li:nth-child(2){border-color:silver!important}[data-testid=leaderboard] li:nth-child(3){border-color:#cd7f32!important}[data-testid=leaderboard] span[style*="fontWeight: 700"][style*=minWidth]{color:var(--sand)}[data-testid=leaderboard] span[style*="color: #6b7280"]{color:var(--text-muted)!important}[data-testid=leaderboard] span[style*="color: #ffd700"]{color:var(--gold)!important;text-shadow:0 0 8px rgba(255,215,0,.3)}[data-testid^=dq-indicator],[data-testid^=dq-badge]{background:var(--danger-bg)!important;color:var(--coral)!important}[data-testid=moderator-game-panel]{animation:fadeIn .3s ease-out}[data-testid=moderator-game-panel]>h1:before{content:"🧭 "}[data-testid=moderator-summary]{color:var(--text-muted);font-size:.9rem}[data-testid=moderator-error]{background:var(--danger-bg)!important;border-color:var(--danger-border)!important;color:var(--danger-text)!important}[data-testid=start-game-button]{background:linear-gradient(135deg,var(--sea-foam),var(--ocean-bright));font-size:1.05rem;padding:12px 28px}[data-testid=end-game-button],[data-testid^=disqualify-btn-]{background:transparent!important;border:1.5px solid var(--coral)!important;color:var(--coral)!important;font-weight:600;font-size:.8rem}[data-testid=end-game-button]:hover,[data-testid^=disqualify-btn-]:hover{background:#ff6b6b1a!important}button[data-testid=end-game-button][style*="background-color: rgb(220, 38, 38)"],button[data-testid^=disqualify-btn-][style*="background-color: rgb(220, 38, 38)"]{background:var(--coral)!important;border-color:var(--coral)!important;color:#fff!important}[data-testid^=moderator-player-card-]{background:var(--card-bg)!important;border:1px solid var(--card-border)!important;border-radius:10px!important;color:var(--text-primary);transition:background .2s}[data-testid^=moderator-player-card-]:hover{background:var(--card-bg-hover)!important}[data-testid^=moderator-player-card-][style*="border: 2px solid rgb(255, 215, 0)"]{border-color:var(--gold)!important;background:#ffd7000f!important;box-shadow:0 0 12px #ffd7001a}[data-testid^=player-name-]{color:var(--text-primary)!important}[data-testid^=tick-progress-]{color:var(--text-muted)!important}[data-testid^=bingo-badge-]{color:var(--gold)!important;text-shadow:0 0 6px rgba(255,215,0,.3)}[data-testid^=ready-status-]{font-weight:600}[data-testid^=mod-word-]{background:#ffffff0a!important;border-color:var(--card-border)!important;color:var(--text-muted)!important}[data-testid^=mod-word-][style*="border-color: rgb(34, 197, 94)"]{border-color:var(--sea-foam-light)!important;background:#2dd4bf1a!important;color:var(--sea-foam-light)!important}[data-testid^=reset-word-btn-]{color:var(--coral)!important;background:transparent!important}[data-testid=progress-bar]{margin-top:8px}[data-testid=progress-bar]>div:first-of-type{background:#ffffff14!important;border-radius:6px!important;overflow:hidden;height:10px!important}[data-testid=progress-fill]{background:linear-gradient(90deg,var(--ocean-blue),var(--sea-foam),var(--ocean-bright))!important;background-size:200% 100%;animation:waveFlow 3s linear infinite;border-radius:6px}[data-testid=progress-text]{font-size:.85rem;color:var(--text-muted)}[data-testid=share-section]{background:var(--card-bg);border:1px solid var(--card-border);border-radius:12px;padding:16px;margin-top:12px}[data-testid=share-section] p[data-testid=player-url]{word-break:break-all;font-size:.8rem;background:#00000040;padding:8px 12px;border-radius:6px;color:var(--text-muted);font-family:monospace}::-webkit-scrollbar{width:8px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--ocean-blue);border-radius:4px}@keyframes dolphinBob{0%,to{transform:translateY(0)}50%{transform:translateY(-3px)}}@keyframes dolphinAlert{0%,to{transform:scale(1)}50%{transform:scale(1.06)}}@keyframes dolphinFierce{0%,to{transform:scale(1) rotate(0)}25%{transform:scale(1.08) rotate(-2deg)}75%{transform:scale(1.08) rotate(2deg)}}@keyframes dolphinAnger{0%,to{transform:scale(1) rotate(0)}20%{transform:scale(1.1) rotate(-3deg)}40%{transform:scale(1.05) rotate(2deg)}60%{transform:scale(1.1) rotate(-2deg)}80%{transform:scale(1.05) rotate(3deg)}}@keyframes dolphinDoom{0%,to{transform:scale(1.1) rotate(0)}10%{transform:scale(1.15) rotate(-4deg)}30%{transform:scale(1.1) rotate(3deg)}50%{transform:scale(1.15) rotate(-3deg)}70%{transform:scale(1.1) rotate(4deg)}90%{transform:scale(1.15) rotate(-2deg)}}@keyframes dolphinConfused{0%{transform:rotate(0)}20%{transform:rotate(15deg)}50%{transform:rotate(10deg)}80%{transform:rotate(12deg)}to{transform:rotate(0)}}@keyframes dolphinCelebrate{0%{transform:scale(1) rotate(0);filter:drop-shadow(0 0 4px var(--gold))}25%{transform:scale(1.3) rotate(-10deg);filter:drop-shadow(0 0 16px var(--gold))}50%{transform:scale(1.2) rotate(10deg);filter:drop-shadow(0 0 24px var(--gold))}75%{transform:scale(1.3) rotate(-5deg);filter:drop-shadow(0 0 16px var(--gold))}to{transform:scale(1.1) rotate(0);filter:drop-shadow(0 0 8px var(--gold))}}[data-testid=dolphin-mascot]{transition:filter .5s ease,transform .3s ease}[data-testid=dolphin-mascot].dolphin-tier-0{animation:dolphinBob 3s ease-in-out infinite;filter:drop-shadow(0 0 4px rgba(126,203,245,.3))}[data-testid=dolphin-mascot].dolphin-tier-1{animation:dolphinAlert 2s ease-in-out infinite;filter:drop-shadow(0 0 6px rgba(42,125,225,.4))}[data-testid=dolphin-mascot].dolphin-tier-2{animation:dolphinFierce 1.5s ease-in-out infinite;filter:drop-shadow(0 0 8px rgba(42,125,225,.5))}[data-testid=dolphin-mascot].dolphin-tier-3{animation:dolphinAnger 1s ease-in-out infinite;filter:drop-shadow(0 0 10px var(--coral))}[data-testid=dolphin-mascot].dolphin-tier-4{animation:dolphinDoom .6s ease-in-out infinite;filter:drop-shadow(0 0 14px rgba(255,0,0,.7)) brightness(1.1);box-shadow:0 0 12px 4px #00000080;border-radius:50%}[data-testid=dolphin-mascot].dolphin-confused{animation:dolphinConfused .6s ease-in-out!important}[data-testid=dolphin-mascot].dolphin-celebrating{animation:dolphinCelebrate 3s ease-in-out forwards!important;filter:drop-shadow(0 0 20px var(--gold))!important}@keyframes dolphinSwimWobble{0%,to{transform:translateY(0) rotate(0)}25%{transform:translateY(-8px) rotate(2deg)}75%{transform:translateY(8px) rotate(-2deg)}}@keyframes dolphinBurst{0%{transform:translate(0) scale(.2) rotate(0);opacity:0}15%{opacity:1;transform:translate(calc(var(--end-x) * .3),calc(var(--end-y) * .3)) scale(1.2) rotate(calc(var(--rotation) * .5))}50%{opacity:1;transform:translate(calc(var(--end-x) * .7),calc(var(--end-y) * .7)) scale(1) rotate(var(--rotation))}80%{opacity:.7;transform:translate(var(--end-x),var(--end-y)) scale(.8) rotate(calc(var(--rotation) * 1.5))}to{opacity:0;transform:translate(var(--end-x),calc(var(--end-y) + 20px)) scale(.3) rotate(calc(var(--rotation) * 2))}}.celeb-dolphin{filter:drop-shadow(0 0 8px rgba(255,215,0,.6))}[data-testid=player-list] [data-testid=dolphin-mascot]{width:24px!important;height:24px!important;min-width:24px!important;min-height:24px!important}@media(prefers-reduced-motion:reduce){[data-testid=dolphin-mascot],.background-dolphins,.celebration-dolphins,.celeb-dolphin{animation:none!important;transition:none!important}.background-dolphins{display:none!important}}@media(max-width:480px){#root{padding:8px}[data-testid=create-view],[data-testid=sharing-view],[data-testid=join-view],[data-testid=error-view]{margin:16px auto;padding:20px}h1{font-size:1.4rem}}
