:root{font-family:Inter,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;line-height:1.5;font-weight:400;color:#0f172a;background-color:#f8fafc;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}*,:after,:before{box-sizing:border-box}body{margin:0;min-height:100vh;background-color:#f8fafc}a{color:inherit}button{font-family:inherit}#__next{min-height:100vh}.app{max-width:1200px;margin:0 auto;padding:32px 24px 80px;display:flex;flex-direction:column;gap:24px}.app__header{text-align:center}.app__header h1{margin:0;font-size:2.75rem;font-weight:700;color:#0f172a}.subtitle{margin:8px 0 0;color:#475569}.alert{padding:12px 16px;border-radius:12px;border:1px solid #cbd5f5;background:#e0e7ff;color:#1e3a8a}.alert--error{border-color:#fecdd3;background:#fee2e2;color:#b91c1c}.panel{background:#ffffff;border-radius:20px;padding:24px;box-shadow:0 12px 40px -16px rgba(15,23,42,.2)}.form,.panel{gap:16px}.form,.form label,.panel{display:flex;flex-direction:column}.form label{align-items:flex-start;gap:8px;font-weight:600;color:#334155}input{width:100%;padding:12px 14px;border-radius:12px;border:1px solid #cbd5f5;font-size:1rem;background:#f8fafc;transition:border .2s}input:focus{outline:none;border-color:#6366f1;background:#ffffff}button{border:none;border-radius:12px;padding:12px 18px;font-size:1rem;font-weight:600;background:#e2e8f0;color:#0f172a;cursor:pointer;transition:all .2s ease}button:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 8px 20px -12px rgba(15,23,42,.4)}button:disabled{cursor:not-allowed;opacity:.6}.primary{background:#0f172a;color:#ffffff}.primary:hover:not(:disabled){background:#1e293b}.actions{display:flex;flex-wrap:wrap;gap:12px;align-items:center}.join{display:flex;gap:8px}.landing-panel{max-width:500px;margin:0 auto}.landing-form{gap:20px}.landing-form,.landing-label{display:flex;flex-direction:column}.landing-label{gap:8px;font-weight:600;color:#0f172a;font-size:.95rem}.landing-input{width:100%;max-width:300px;margin:0 auto;padding:12px 16px;font-size:1rem;border-radius:10px;border:2px solid #e2e8f0;text-align:center;transition:border-color .2s ease}.landing-input:focus{border-color:#0f172a;outline:none}.landing-input.input-error{border-color:#ef4444;animation:shake .4s ease}.landing-input.input-error:focus{border-color:#dc2626}.landing-buttons{display:flex;gap:12px;justify-content:center}.landing-btn{flex:1 1;min-width:140px;padding:14px 24px;font-size:1rem;font-weight:600;border-radius:12px;border:2px solid #0f172a;cursor:pointer;transition:all .2s ease}.landing-btn-play{background:#ffffff;color:#0f172a}.landing-btn-play:hover:not(:disabled){background:#f8fafc;transform:translateY(-2px);box-shadow:0 4px 12px rgba(15,23,42,.15)}.landing-btn-create{background:#0f172a;color:#ffffff}.landing-btn-create:hover:not(:disabled){background:#1e293b;transform:translateY(-2px);box-shadow:0 4px 12px rgba(15,23,42,.3)}.landing-join{display:flex;gap:10px;align-items:center;padding-top:12px;border-top:1px solid #e2e8f0}.landing-join-input{flex:1 1;padding:12px 16px;font-size:1rem;border-radius:10px;border:2px solid #e2e8f0;text-transform:uppercase;text-align:center;font-weight:600;letter-spacing:2px;transition:border-color .2s ease}.landing-join-input:focus{border-color:#0f172a;outline:none}.landing-join-input.input-error{border-color:#ef4444;animation:shake .4s ease}.landing-join-input.input-error:focus{border-color:#dc2626}@keyframes shake{0%,to{transform:translateX(0)}25%{transform:translateX(-8px)}75%{transform:translateX(8px)}}@keyframes rainbow{0%{filter:hue-rotate(0deg) saturate(2)}to{filter:hue-rotate(1turn) saturate(2)}}@keyframes pulse-crazy{0%,to{transform:scale(1)}25%{transform:scale(1.1) rotate(2deg)}50%{transform:scale(1.15) rotate(-2deg)}75%{transform:scale(1.1) rotate(2deg)}}@keyframes bounce-wild{0%,to{transform:translateY(0) scale(1)}25%{transform:translateY(-30px) scale(1.1)}50%{transform:translateY(-50px) scale(1.15) rotate(5deg)}75%{transform:translateY(-30px) scale(1.1) rotate(-5deg)}}@keyframes rotate-360{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}@keyframes glow-pulse{0%,to{box-shadow:0 0 20px #FFD700,0 0 40px #FFA500,0 0 60px #FF6B6B;text-shadow:0 0 10px #FFD700,0 0 20px #FFA500}50%{box-shadow:0 0 40px #FFD700,0 0 80px #FFA500,0 0 120px #FF6B6B;text-shadow:0 0 20px #FFD700,0 0 40px #FFA500,0 0 60px #FF6B6B}}@keyframes screen-shake{0%,to{transform:translate(0)}10%{transform:translate(-10px,-5px)}20%{transform:translate(10px,5px)}30%{transform:translate(-10px,5px)}40%{transform:translate(10px,-5px)}50%{transform:translate(-10px,-5px)}60%{transform:translate(10px,5px)}70%{transform:translate(-10px,5px)}80%{transform:translate(10px,-5px)}90%{transform:translate(-5px,5px)}}@keyframes float-up{0%{transform:translateY(0);opacity:1}to{transform:translateY(-100px);opacity:0}}.winner-celebration{animation:screen-shake .5s ease-in-out 0s 3}.winner-celebration .winner-banner{animation:pulse-crazy .8s ease-in-out infinite,rainbow 3s linear infinite,glow-pulse 1.5s ease-in-out infinite;border:5px solid #ffd700;overflow:visible}.winner-celebration .winner-banner:before{content:"🎉";position:absolute;font-size:4rem;animation:rotate-360 2s linear infinite;left:-60px;top:50%;transform:translateY(-50%)}.winner-celebration .winner-banner:after{content:"🏆";position:absolute;font-size:4rem;animation:bounce-wild 1s ease-in-out infinite;right:-60px;top:50%;transform:translateY(-50%)}.winner-celebration .winner-banner h2{animation:bounce-wild .6s ease-in-out infinite,rainbow 2s linear infinite;text-shadow:0 0 10px #FFD700,0 0 20px #FFA500,0 0 30px #FF6B6B,0 0 40px #4ECDC4;font-size:3.5rem!important}.winner-celebration .winner-subtitle{animation:pulse-crazy 1s ease-in-out infinite;text-shadow:0 0 10px #fff,0 0 20px #FFD700,0 0 30px #FFA500;font-size:1.8rem!important}.winner-celebration .winner-time{animation:glow-pulse 1.5s ease-in-out infinite;font-size:1.5rem!important;font-weight:700!important}.winner-celebration .winner-card{animation:pulse-crazy 1s ease-in-out infinite;background:linear-gradient(135deg,#FFD700,#FFA500 50%,#FF6B6B);background-size:200% 200%;animation:pulse-crazy 1s ease-in-out infinite,rainbow 3s linear infinite;border:3px solid #ffd700;box-shadow:0 0 30px #FFD700,0 0 60px #FFA500}.winner-celebration .results{animation:glow-pulse 2s ease-in-out infinite}.winner-celebration .winner-banner{position:relative;z-index:1}.winner-celebration .winner-banner h2:before{content:"⭐";position:absolute;left:10%;animation:float-up 3s ease-out infinite}.winner-celebration .winner-banner h2:after{content:"✨";position:absolute;right:10%;animation:float-up 2.5s ease-out .5s infinite}.winner-celebration .player-result-name{animation:pulse-crazy 1.2s ease-in-out infinite}@keyframes sparkle{0%,to{opacity:0;transform:scale(0) rotate(0deg)}50%{opacity:1;transform:scale(1.5) rotate(180deg)}}.winner-celebration .winner-badge{animation:sparkle 1s ease-in-out infinite,rotate-360 3s linear infinite;font-size:1.2rem!important;background:linear-gradient(135deg,#FFD700,#FFA500)!important;border:2px solid #ff6b6b!important;box-shadow:0 0 20px #FFD700!important}.winner-celebration button{animation:pulse-crazy 2s ease-in-out infinite;box-shadow:0 0 20px rgba(255,215,0,.5)}.landing-btn-join{flex:0 0 auto;min-width:120px;background:#ffffff;color:#0f172a}.landing-btn-join:hover:not(:disabled){background:#f8fafc;transform:translateY(-2px);box-shadow:0 4px 12px rgba(15,23,42,.15)}.hint{margin:0;color:#64748b;font-size:.95rem}.lobby{background:#ffffff;border-radius:20px;padding:24px;box-shadow:0 16px 32px -20px rgba(15,23,42,.25);display:flex;flex-direction:column;gap:24px}.lobby-header{display:flex;justify-content:space-between;align-items:center;gap:16px;flex-wrap:wrap}.back-button{background:#ffffff;color:#0f172a;border:2px solid #0f172a;padding:8px 16px;border-radius:8px;font-size:.95rem;font-weight:600;cursor:pointer;transition:all .2s ease}.back-button:hover{background:#f8fafc;transform:translateY(-1px)}.lobby-code-display{display:flex;flex-direction:column;gap:4px;align-items:flex-end}.lobby__info{display:flex;gap:24px;flex-wrap:wrap;font-weight:600}.label{font-size:.75rem;text-transform:uppercase;letter-spacing:.08em;color:#64748b;display:block}.code{font-size:1.75rem;font-weight:700;letter-spacing:.3em}.code,.value{color:#1e293b}.value{font-size:1.5rem}.lobby__body{display:flex;gap:24px}.lobby__sidebar{flex:1 1 240px;background:#f1f5f9;border-radius:16px;padding:16px}.lobby__sidebar h2{margin:0 0 12px;font-size:1.1rem}.lobby__sidebar ul{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:10px}.lobby__sidebar li{background:#ffffff;border-radius:12px;padding:12px;display:flex;flex-direction:column;gap:6px;border:1px solid transparent}.lobby__sidebar li.self{border-color:#64748b}.lobby__sidebar li.host{border-color:#0f172a}.lobby__sidebar li.disconnected{opacity:.6}.badge{align-self:flex-start;background:#e2e8f0;color:#0f172a;padding:2px 8px;border-radius:999px;font-size:.75rem;font-weight:600}.small{font-size:.85rem;color:#64748b}.lobby__main{flex:2 1 520px;display:flex;flex-direction:column;gap:20px}.lobby__main--solo{flex:1 1 100%}.articles{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));grid-gap:16px;gap:16px}.article-card{padding:20px;border-radius:16px;background:#f8fafc;display:flex;flex-direction:column;gap:12px}.article-card h3{margin:0;color:#1e293b;font-size:1.1rem}.article-title{margin:0;font-size:1.1rem;font-weight:600;color:#0f172a}.controls{display:flex;gap:8px;flex-wrap:wrap}.controls input{flex:1 1 160px}.controls button{flex:0 0 auto}.random-button{background:#ffffff!important;color:#0f172a!important;border:2px solid #e2e8f0!important;padding:12px 18px;font-size:1rem}.random-button:hover:not(:disabled){background:#f8fafc!important;border-color:#cbd5e1!important;transform:translateY(-1px)}.start{display:flex;gap:12px;align-items:center}.overlay{position:-webkit-sticky;position:sticky;top:0;z-index:10;background:rgba(15,23,42,.85);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-radius:16px;margin:0 auto;padding:10px 18px;color:#f8fafc;max-width:520px;display:flex;justify-content:center;gap:32px}.overlay .label{color:rgba(226,232,240,.9)}.countdown{position:fixed;inset:0;display:flex;align-items:center;justify-content:center;pointer-events:none;font-size:6rem;font-weight:800;color:rgba(67,56,202,.12);text-shadow:0 0 80px rgba(67,56,202,.18)}.game-fullscreen{position:fixed;top:0;left:0;right:0;bottom:0;background:#ffffff;display:flex;flex-direction:column;z-index:1000}.game-topbar{background:#0f172a;color:#ffffff;padding:12px 24px;display:flex;justify-content:space-between;align-items:center;gap:24px;box-shadow:0 4px 12px rgba(0,0,0,.15);flex-shrink:0}.game-topbar__info{display:flex;gap:32px;align-items:center}.game-topbar__info .label{color:rgba(226,232,240,.8);font-size:.7rem;margin-bottom:2px}.game-topbar__info strong{font-size:1rem;font-weight:600}.stop-button{background:rgba(239,68,68,.9);color:#ffffff;padding:8px 16px;border-radius:8px;font-size:.9rem;font-weight:600;border:none;cursor:pointer;transition:all .2s ease}.stop-button:hover{background:rgba(220,38,38,1);transform:translateY(-1px);box-shadow:0 4px 12px rgba(239,68,68,.4)}.game-content{flex:1 1;overflow:hidden;position:relative;background:#ffffff}.game-content iframe{width:100%;height:100%;border:none;display:block}.game-content .alert,.game-content .loading{position:absolute;top:20px;left:50%;transform:translateX(-50%);z-index:10;padding:12px 24px;border-radius:12px;box-shadow:0 8px 20px rgba(0,0,0,.15)}.results{background:#ffffff;border-radius:20px;padding:32px;box-shadow:0 12px 32px -20px rgba(15,23,42,.25);display:flex;flex-direction:column;gap:24px}.winner-banner{text-align:center;padding:32px;background:#0f172a;border-radius:16px;color:white;box-shadow:0 8px 24px rgba(15,23,42,.3)}.winner-banner h2{margin:0;font-size:2.5rem;font-weight:700}.winner-subtitle{margin:8px 0;font-size:1.3rem;font-weight:600;color:#fff;opacity:.95;text-shadow:0 2px 4px rgba(0,0,0,.1)}.winner-banner .winner-time{margin:12px 0 0;font-size:1.25rem;opacity:.95}.results-header{text-align:center;padding:24px;background:#f8fafc;border-radius:16px}.results-header h2{margin:0 0 8px;font-size:2rem}.results-header p{margin:0;font-size:1.1rem;color:#475569}.winner-name{color:#6366f1;font-size:1.25rem}.results-header .winner-time{color:#64748b;font-size:1rem}.results-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));grid-gap:16px;gap:16px}.player-result{background:#f8fafc;border-radius:12px;padding:16px;border:2px solid #e2e8f0;transition:all .2s ease}.player-result:hover{border-color:#cbd5e1;box-shadow:0 4px 12px rgba(0,0,0,.05)}.winner-card{background:#f8fafc;border-color:#0f172a;border-width:2px}.self-card{border-color:#64748b;background:#f8fafc}.player-result-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px;padding-bottom:12px;border-bottom:1px solid #e2e8f0}.player-result-name{font-weight:600;font-size:1.1rem;color:#0f172a}.winner-badge{background:#0f172a;color:white;padding:4px 12px;border-radius:999px;font-size:.85rem;font-weight:600;box-shadow:0 2px 8px rgba(251,191,36,.3)}.player-result-stats{display:flex;gap:16px;margin-bottom:12px}.stat{flex:1 1;display:flex;flex-direction:column;gap:4px}.stat-label{font-size:.75rem;text-transform:uppercase;letter-spacing:.05em;color:#64748b;font-weight:600}.stat-value{font-size:1.25rem;font-weight:700;color:#1e293b}.player-path{background:white;padding:12px;border-radius:8px;border:1px solid #e2e8f0}.path-label{font-size:.75rem;font-weight:600;color:#64748b;text-transform:uppercase;letter-spacing:.05em;display:block;margin-bottom:6px}.path-content{font-size:.9rem;color:#475569;line-height:1.5;word-break:break-word}.results-actions{display:flex;gap:12px;justify-content:center;padding-top:16px;border-top:1px solid #e2e8f0}.footer{margin-top:auto;text-align:center;color:#94a3b8;font-size:.85rem}@media (max-width:860px){.lobby-header,.lobby__body{flex-direction:column}.lobby-header{align-items:stretch}.lobby-code-display{align-items:flex-start}.overlay{max-width:100%;border-radius:0}.actions{align-items:stretch}.actions,.join,.landing-buttons{flex-direction:column}.landing-btn{width:100%}.landing-join{flex-direction:column}.landing-btn-join,.landing-join-input{width:100%}}