*{margin:0;padding:0;box-sizing:border-box}:root{--bg-primary: #1a1a2e;--bg-secondary: #232342;--bg-card: #2d2d4a;--text-primary: #ffffff;--text-secondary: #b0b0c0;--accent: #e31837;--accent-hover: #ff3050;--danger: #e31837;--success: #4aff9f;--border: #3a3a5e}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,sans-serif;background-color:var(--bg-primary);color:var(--text-primary);min-height:100vh}.app{display:flex;flex-direction:column;min-height:100vh}.header{background-color:var(--bg-secondary);border-bottom:1px solid var(--border);padding:1rem 2rem;position:sticky;top:0;z-index:100}.header-content{max-width:1400px;margin:0 auto;display:flex;justify-content:space-between;align-items:center}.logo{display:flex;align-items:center;text-decoration:none}.logo-img{height:50px;width:auto;object-fit:contain}.nav{display:flex;gap:1rem}.nav-link{color:var(--text-secondary);text-decoration:none;padding:.5rem 1rem;border-radius:8px;transition:all .2s ease}.nav-link:hover{color:var(--text-primary);background-color:var(--bg-card)}.nav-link.active{color:var(--accent);background-color:var(--bg-card)}.nav-link.donate-link{background-color:var(--accent);color:#fff;font-weight:600}.nav-link.donate-link:hover{background-color:var(--accent-hover);color:#fff}.main{flex:1;max-width:1400px;margin:0 auto;padding:2rem;width:100%}.footer{background-color:var(--bg-secondary);border-top:1px solid var(--border);padding:1.5rem 2rem;text-align:center;color:var(--text-secondary)}.stream-list{display:flex;flex-direction:column;gap:2rem}.page-title{font-size:2rem;font-weight:700;display:flex;align-items:center;gap:.75rem}.live-indicator{display:inline-flex;align-items:center;gap:.5rem;background-color:var(--danger);color:#fff;padding:.25rem .75rem;border-radius:4px;font-size:.875rem;font-weight:600}.live-dot{width:8px;height:8px;background-color:#fff;border-radius:50%;animation:pulse 1.5s ease-in-out infinite}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}.streams-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:1.5rem}.no-streams{text-align:center;padding:4rem 2rem;color:var(--text-secondary)}.no-streams h3{font-size:1.25rem;margin-bottom:.5rem}.stream-card{background-color:var(--bg-card);border-radius:12px;overflow:hidden;transition:transform .2s ease,box-shadow .2s ease;cursor:pointer;text-decoration:none;color:inherit;display:block}.stream-card:hover{transform:translateY(-4px);box-shadow:0 8px 24px #4a9eff26}.stream-thumbnail{position:relative;aspect-ratio:16/9;background-color:var(--bg-secondary);display:flex;align-items:center;justify-content:center}.stream-thumbnail img{width:100%;height:100%;object-fit:cover}.stream-thumbnail .placeholder{font-size:3rem;color:var(--text-secondary)}.stream-badge{position:absolute;top:.75rem;left:.75rem;background-color:var(--danger);color:#fff;padding:.25rem .5rem;border-radius:4px;font-size:.75rem;font-weight:600;display:flex;align-items:center;gap:.25rem}.stream-viewers{position:absolute;bottom:.75rem;right:.75rem;background-color:#000000b3;color:#fff;padding:.25rem .5rem;border-radius:4px;font-size:.75rem}.stream-info{padding:1rem}.stream-title{font-size:1rem;font-weight:600;margin-bottom:.25rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.stream-meta{color:var(--text-secondary);font-size:.875rem}.video-player-container{display:flex;flex-direction:column;gap:1.5rem}.back-link{display:inline-flex;align-items:center;gap:.5rem;color:var(--text-secondary);text-decoration:none;font-size:.875rem;transition:color .2s ease}.back-link:hover{color:var(--accent)}.player-wrapper{position:relative;width:100%;aspect-ratio:16/9;background-color:#000;border-radius:12px;overflow:hidden}.player-wrapper video{width:100%;height:100%;object-fit:contain}.player-overlay{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;flex-direction:column;align-items:center;justify-content:center;background-color:#000c;color:var(--text-secondary)}.player-overlay.loading{background-color:#0009}.spinner{width:48px;height:48px;border:3px solid var(--border);border-top-color:var(--accent);border-radius:50%;animation:spin 1s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.stream-details{display:flex;flex-direction:column;gap:1rem}.stream-details h1{font-size:1.5rem;font-weight:700}.stream-stats{display:flex;gap:2rem;color:var(--text-secondary);font-size:.875rem}.stat{display:flex;align-items:center;gap:.5rem}.download-link{color:var(--accent);text-decoration:none;cursor:pointer}.download-link:hover{text-decoration:underline}.viewer-panel{background-color:var(--bg-card);border-radius:12px;padding:1.25rem;border:1px solid var(--border)}.viewer-panel-header{display:flex;align-items:baseline;gap:.5rem;margin-bottom:.75rem}.viewer-count{font-size:1.75rem;font-weight:700;color:var(--success)}.viewer-label{font-size:.9rem;color:var(--text-secondary)}.viewer-locations{list-style:none;display:flex;flex-wrap:wrap;gap:.5rem}.viewer-location{display:flex;align-items:center;gap:.375rem;background-color:var(--bg-secondary);padding:.375rem .75rem;border-radius:20px;font-size:.8rem}.location-count{font-weight:600;color:var(--text-primary);min-width:1.25rem;text-align:center}.location-name{color:var(--text-secondary)}.recordings-list{display:flex;flex-direction:column;gap:2rem}.page-title-count{font-size:1rem;font-weight:400;color:var(--text-secondary)}.recordings-filters{display:flex;gap:.75rem;flex-wrap:wrap;align-items:center;padding:1rem;background-color:var(--bg-card);border-radius:12px}.recordings-search{flex:1 1 240px;min-width:0;padding:.625rem .875rem;background-color:var(--bg-secondary);color:var(--text-primary);border:1px solid var(--border);border-radius:8px;font-size:.9375rem;font-family:inherit}.recordings-search::placeholder{color:var(--text-secondary)}.recordings-search:focus,.recordings-select:focus{outline:none;border-color:var(--accent)}.recordings-select{padding:.625rem .875rem;background-color:var(--bg-secondary);color:var(--text-primary);border:1px solid var(--border);border-radius:8px;font-size:.9375rem;font-family:inherit;cursor:pointer}.recordings-clear{padding:.625rem 1rem;background-color:transparent;color:var(--text-secondary);border:1px solid var(--border);border-radius:8px;font-size:.875rem;font-family:inherit;cursor:pointer;transition:color .15s ease,border-color .15s ease}.recordings-clear:hover{color:var(--text-primary);border-color:var(--text-secondary)}.recordings-date-group{display:flex;flex-direction:column;gap:1rem}.recordings-date-header{display:flex;align-items:baseline;justify-content:space-between;gap:1rem;padding-bottom:.5rem;border-bottom:1px solid var(--border)}.recordings-date-title{font-size:1.125rem;font-weight:600;color:var(--text-primary)}.recordings-date-count{font-size:.875rem;color:var(--text-secondary);white-space:nowrap}.recording-card .recording-time{font-size:.8125rem;font-weight:600;color:var(--accent);letter-spacing:.02em;margin-bottom:.25rem;text-transform:uppercase}.recording-archived-badge{position:absolute;top:.75rem;left:.75rem;background-color:#000000bf;color:#b0b0c0;padding:.25rem .5rem;border:1px solid #5a5a78;border-radius:4px;font-size:.6875rem;font-weight:600;letter-spacing:.04em;text-transform:uppercase}.recording-progress-track{position:absolute;left:0;right:0;bottom:0;height:4px;background-color:#ffffff2e;pointer-events:none}.recording-progress-bar{height:100%;background-color:var(--accent)}.recording-card.is-archived{opacity:.75}.recording-card.is-archived:hover{opacity:1}.recording-favorite-button{position:absolute;top:.5rem;right:.5rem;width:2rem;height:2rem;display:flex;align-items:center;justify-content:center;background-color:#0000008c;color:#ffffffd9;border:0;border-radius:50%;font-size:1.125rem;line-height:1;cursor:pointer;transition:transform .15s ease,color .15s ease,background-color .15s ease}.recording-favorite-button:hover{background-color:#000000bf;transform:scale(1.1)}.recording-favorite-button.is-favorite{color:#ffd24a}.recordings-favorite-toggle{display:inline-flex;align-items:center;gap:.4rem;padding:.625rem .875rem;background-color:var(--bg-secondary);color:var(--text-primary);border:1px solid var(--border);border-radius:8px;font-size:.9375rem;font-family:inherit;cursor:pointer;transition:border-color .15s ease,color .15s ease}.recordings-favorite-toggle:hover:not(:disabled){border-color:var(--text-secondary)}.recordings-favorite-toggle:disabled{opacity:.5;cursor:not-allowed}.recordings-favorite-toggle.is-active{border-color:#ffd24a;color:#ffd24a}.recordings-favorite-toggle .favorite-icon{font-size:1.0625rem}.share-button{background-color:var(--bg-secondary);color:var(--text-primary);border:1px solid var(--border);border-radius:8px;font-family:inherit;cursor:pointer;transition:border-color .15s ease,color .15s ease}.share-button:hover{border-color:var(--text-secondary)}.next-game-card{background:linear-gradient(135deg,var(--bg-card) 0%,var(--bg-secondary) 100%);border:1px solid var(--border);border-radius:16px;padding:2.5rem 2rem;text-align:center;display:flex;flex-direction:column;gap:.5rem}.next-game-eyebrow{font-size:.75rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--accent);margin:0}.next-game-eyebrow-secondary{font-size:.75rem;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:var(--text-secondary);margin:0}.next-game-title{font-size:1.75rem;font-weight:700;color:var(--text-primary);margin:.25rem 0 0}.next-game-when{font-size:1.0625rem;color:var(--text-primary);margin:0}.next-game-countdown{font-size:.9375rem;color:var(--text-secondary);margin:.25rem 0 0}.stream-chat{background-color:var(--bg-card);border-radius:12px;padding:1rem 1.25rem 1.25rem;display:flex;flex-direction:column;gap:.75rem;max-height:480px}.stream-chat-header{display:flex;align-items:baseline;justify-content:space-between}.stream-chat-header h3{font-size:1rem;font-weight:700;letter-spacing:.02em;text-transform:uppercase;margin:0}.stream-chat-status{font-size:.75rem;color:var(--text-secondary);text-transform:capitalize}.stream-chat-status.is-connected{color:var(--success)}.stream-chat-messages{flex:1 1 auto;overflow-y:auto;min-height:200px;padding:.5rem .25rem;background-color:var(--bg-secondary);border-radius:8px;display:flex;flex-direction:column;gap:.375rem}.stream-chat-empty{color:var(--text-secondary);font-size:.875rem;text-align:center;margin:auto;padding:1.5rem 1rem}.stream-chat-message{display:flex;gap:.5rem;align-items:baseline;padding:.25rem .5rem;font-size:.9375rem;line-height:1.4}.stream-chat-time{font-size:.6875rem;color:var(--text-secondary);flex-shrink:0}.stream-chat-author{font-weight:600;color:var(--accent);flex-shrink:0}.stream-chat-text{word-break:break-word;flex:1 1 auto}.stream-chat-form{display:flex;gap:.5rem;flex-wrap:wrap}.stream-chat-name-input,.stream-chat-input{padding:.5rem .75rem;background-color:var(--bg-secondary);color:var(--text-primary);border:1px solid var(--border);border-radius:8px;font-size:.9375rem;font-family:inherit}.stream-chat-name-input{flex:0 0 140px}.stream-chat-input{flex:1 1 200px;min-width:0}.stream-chat-name-input:focus,.stream-chat-input:focus{outline:none;border-color:var(--accent)}.stream-chat-send{padding:.5rem 1rem;background-color:var(--accent);color:#fff;border:0;border-radius:8px;font-weight:600;font-family:inherit;cursor:pointer;transition:background-color .15s ease,opacity .15s ease}.stream-chat-send:hover:not(:disabled){background-color:var(--accent-hover)}.stream-chat-send:disabled{opacity:.4;cursor:not-allowed}.donate-cta{position:absolute;top:0;right:0;bottom:0;left:0;background-color:#0f0f1eeb;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:2rem;text-align:center;gap:.5rem;z-index:5}.donate-cta-close{position:absolute;top:.75rem;right:.75rem;width:2rem;height:2rem;border-radius:50%;border:0;background-color:#ffffff14;color:var(--text-secondary);font-size:1.25rem;line-height:1;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background-color .15s ease,color .15s ease}.donate-cta-close:hover{background-color:#ffffff2e;color:var(--text-primary)}.donate-cta-eyebrow{font-size:.75rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--accent);margin:0}.donate-cta-title{font-size:1.5rem;font-weight:700;color:var(--text-primary);margin:.25rem 0;max-width:32rem}.donate-cta-copy{font-size:.9375rem;color:var(--text-secondary);max-width:28rem;margin:0 0 1rem;line-height:1.5}.donate-cta-actions{display:flex;gap:.75rem;flex-wrap:wrap;justify-content:center}.donate-cta-primary{display:inline-block;padding:.75rem 1.5rem;background-color:var(--accent);color:#fff;text-decoration:none;border-radius:8px;font-weight:600;transition:background-color .15s ease}.donate-cta-primary:hover{background-color:var(--accent-hover)}.donate-cta-secondary{padding:.75rem 1.25rem;background-color:transparent;color:var(--text-secondary);border:1px solid var(--border);border-radius:8px;font-family:inherit;font-size:.9375rem;cursor:pointer;transition:color .15s ease,border-color .15s ease}.donate-cta-secondary:hover{color:var(--text-primary);border-color:var(--text-secondary)}.error-message{text-align:center;padding:2rem;color:var(--danger)}.footer-analytics-link{display:inline-block;margin-top:.5rem;color:var(--text-secondary);text-decoration:none;font-size:.75rem;opacity:.6;transition:opacity .2s ease}.footer-analytics-link:hover{opacity:1;color:var(--accent)}.analytics-page{display:flex;flex-direction:column;gap:1.5rem}.analytics-loading{display:flex;justify-content:center;padding:4rem 0}.analytics-login{display:flex;flex-direction:column;align-items:center;gap:.75rem;max-width:300px;margin:3rem auto}.analytics-login-input{width:100%;padding:.75rem 1rem;background-color:var(--bg-card);border:1px solid var(--border);border-radius:8px;color:var(--text-primary);font-size:.95rem;outline:none}.analytics-login-input:focus{border-color:var(--accent)}.analytics-login-btn{width:100%;padding:.75rem 1rem;background-color:var(--accent);color:#fff;border:none;border-radius:8px;font-size:.95rem;font-weight:600;cursor:pointer;transition:background-color .2s ease}.analytics-login-btn:hover{background-color:var(--accent-hover)}.analytics-login-error{color:var(--danger);font-size:.85rem}.analytics-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:1rem}.analytics-cards-small{grid-template-columns:repeat(auto-fit,minmax(160px,1fr));max-width:400px}.analytics-card{background-color:var(--bg-card);border-radius:12px;padding:1.25rem;border:1px solid var(--border);text-align:center}.analytics-card-value{font-size:2rem;font-weight:700;color:var(--text-primary)}.analytics-card-label{font-size:.8rem;color:var(--text-secondary);margin-top:.25rem}.analytics-section{display:flex;flex-direction:column;gap:.75rem}.analytics-section-title{font-size:1.1rem;font-weight:600;color:var(--text-secondary)}.analytics-chart{display:flex;align-items:flex-end;gap:2px;height:160px;background-color:var(--bg-card);border-radius:12px;padding:1rem .75rem 2.5rem;border:1px solid var(--border);overflow-x:auto}.analytics-bar-col{flex:1;min-width:18px;display:flex;flex-direction:column;align-items:center;justify-content:flex-end;height:100%;position:relative}.analytics-bar{width:100%;max-width:32px;min-height:2px;background-color:var(--accent);border-radius:3px 3px 0 0;transition:height .3s ease}.analytics-bar-value{font-size:.6rem;color:var(--text-secondary);margin-bottom:2px}.analytics-bar-label{font-size:.55rem;color:var(--text-secondary);position:absolute;bottom:-1.5rem;white-space:nowrap;transform:rotate(-45deg);transform-origin:top left}.analytics-geo-row{display:grid;grid-template-columns:1fr 1fr;gap:1.5rem}.analytics-geo-section{min-width:0}.analytics-geo-list{list-style:none;background-color:var(--bg-card);border-radius:12px;border:1px solid var(--border);overflow:hidden}.analytics-geo-item{display:flex;justify-content:space-between;align-items:center;padding:.625rem 1rem;border-bottom:1px solid var(--border)}.analytics-geo-item:last-child{border-bottom:none}.analytics-geo-name{color:var(--text-primary);font-size:.875rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.analytics-geo-count{color:var(--text-secondary);font-size:.8rem;font-weight:600;flex-shrink:0;margin-left:.5rem}.analytics-recording-link{color:var(--text-primary);text-decoration:none;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.analytics-recording-link:hover{color:var(--accent)}@media (max-width: 768px){.header-content{flex-direction:column;gap:1rem}.main{padding:1rem}.recordings-filters{padding:.75rem}.recordings-date-header{flex-direction:column;align-items:flex-start;gap:.25rem}.analytics-geo-row{grid-template-columns:1fr}}
