@import "https://fonts.googleapis.com/css2?family=Inter:wght@400;700&family=JetBrains+Mono:wght@400&display=swap";:root{--color-obsidian:#101010;--color-carbon:#080808;--color-chalk:#f3f3f3;--color-smoke:#9c9c9c;--color-ash:#c1c1c1;--color-graphite:#212121;--color-iron:#474747;--color-signal-white:#fff;--color-compass-gold:#6f6759;--color-card-slate:#3b3d45;--color-pulse-green:#98ff38;--color-danger:#f44;--font-aeonik:"Inter", ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, sans-serif;--font-input:"JetBrains Mono", ui-monospace, "Cascadia Code", monospace;--text-caption:13px;--text-body:16px;--text-heading-xs:18px;--text-subheading:21px;--text-heading-sm:23px;--text-heading:34px;--text-heading-lg:44px;--text-display:63px;--spacing-4:4px;--spacing-8:8px;--spacing-12:12px;--spacing-16:16px;--spacing-20:20px;--spacing-24:24px;--spacing-32:32px;--spacing-40:40px;--spacing-48:48px;--radius-tags:4px;--radius-cards:8px;--radius-buttons:9999px;--page-max-width:1200px}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html{-webkit-text-size-adjust:100%;height:100%;overflow-y:auto}body{font-family:var(--font-aeonik);font-weight:400;font-size:var(--text-body);color:var(--color-chalk);background:var(--color-obsidian);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;min-height:100%;line-height:1.25}#root{flex-direction:column;min-height:100vh;display:flex}a{color:var(--color-chalk);text-decoration:none}button{font-family:var(--font-aeonik);cursor:pointer;color:inherit;background:0 0;border:none}input,textarea{font-family:var(--font-aeonik);color:var(--color-chalk);background:0 0;border:none;outline:none}::selection{background:var(--color-compass-gold);color:var(--color-obsidian)}::-webkit-scrollbar{width:4px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:var(--color-graphite);border-radius:2px}::-webkit-scrollbar-thumb:hover{background:var(--color-iron)}.navbar{z-index:50;-webkit-backdrop-filter:blur(12px);border-bottom:1px solid var(--color-graphite);background:#101010eb;position:sticky;top:0}.navbar__inner{max-width:var(--page-max-width);padding:var(--spacing-16) var(--spacing-24);justify-content:space-between;align-items:center;margin:0 auto;display:flex}.navbar__left{align-items:center;display:flex}.navbar__brand{font-size:var(--text-heading-xs);color:var(--color-chalk);letter-spacing:.05em;font-weight:400}.navbar__back{color:var(--color-smoke);text-transform:uppercase;letter-spacing:.05em;padding:var(--spacing-8) var(--spacing-12);border-radius:var(--radius-tags);font-size:14px;font-weight:400;transition:color .2s}.navbar__back:hover{color:var(--color-chalk)}.navbar__links{align-items:center;gap:var(--spacing-24);display:flex}.navbar__link{color:var(--color-smoke);text-transform:uppercase;letter-spacing:.05em;padding:var(--spacing-4) 0;font-size:14px;font-weight:400;transition:color .2s;position:relative}.navbar__link:hover,.navbar__link--active{color:var(--color-chalk)}.navbar__link--active:after{content:"";background:var(--color-chalk);height:1px;position:absolute;bottom:-2px;left:0;right:0}.page-shell{max-width:var(--page-max-width);padding:var(--spacing-40) var(--spacing-24);flex:1;width:100%;margin:0 auto}.section-divider{background:var(--color-graphite);height:1px;margin:var(--spacing-32) 0;border:none}.pill-button{align-items:center;gap:var(--spacing-8);background:var(--color-signal-white);color:var(--color-obsidian);border-radius:var(--radius-buttons);font-family:var(--font-aeonik);text-transform:uppercase;letter-spacing:.05em;cursor:pointer;white-space:nowrap;border:none;padding:12px 24px;font-size:14px;font-weight:400;transition:opacity .2s;display:inline-flex}.pill-button:disabled{opacity:.5;cursor:not-allowed}.ghost-button{align-items:center;gap:var(--spacing-8);color:var(--color-signal-white);border:1px solid var(--color-signal-white);border-radius:var(--radius-cards);font-family:var(--font-aeonik);text-transform:uppercase;letter-spacing:.05em;cursor:pointer;white-space:nowrap;background:0 0;padding:10px 20px;font-size:14px;font-weight:400;transition:background .2s,color .2s;display:inline-flex}.ghost-button:hover{background:#ffffff0f}.ghost-button:disabled{opacity:.4;cursor:not-allowed}.ghost-button--danger{border-color:var(--color-danger);color:var(--color-danger)}.ghost-button--danger:hover{background:#ff444414}.status-badge{align-items:center;gap:var(--spacing-8);border:1px solid var(--color-graphite);border-radius:var(--radius-tags);font-family:var(--font-aeonik);color:var(--color-smoke);text-transform:uppercase;letter-spacing:.5px;background:#1a1a1a;padding:8px 14px;font-size:12px;display:inline-flex}.status-badge__dot{background:var(--color-pulse-green);border-radius:50%;flex-shrink:0;width:6px;height:6px;animation:2s ease-in-out infinite pulse}@keyframes pulse{0%,to{opacity:1}50%{opacity:.3}}.modal-overlay{z-index:100;padding:var(--spacing-24);background:#080808d9;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.modal-content{background:var(--color-carbon);border:1px solid var(--color-graphite);border-radius:var(--radius-cards);padding:var(--spacing-48);width:100%;max-width:480px;max-height:90vh;overflow-y:auto}.modal-title{font-size:var(--text-heading-sm);color:var(--color-chalk);margin-bottom:var(--spacing-32);letter-spacing:.02em;font-weight:400}.input-group{gap:var(--spacing-8);margin-bottom:var(--spacing-20);flex-direction:column;display:flex}.input-label{font-family:var(--font-input);font-size:var(--text-caption);color:var(--color-smoke);text-transform:uppercase;letter-spacing:-.022em}.input-field{font-family:var(--font-aeonik);font-size:var(--text-body);color:var(--color-chalk);border:1px solid var(--color-graphite);border-radius:var(--radius-tags);background:0 0;outline:none;padding:12px 16px;transition:border-color .2s}.input-field::placeholder{color:var(--color-iron)}.input-field:focus{border-color:var(--color-iron)}.input-field--error{border-color:var(--color-danger)}.input-error{font-size:var(--text-caption);color:var(--color-danger)}.spinner-container{padding:var(--spacing-40) 0;justify-content:center;align-items:center;display:flex}.spinner{animation:1s linear infinite spin}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.form-error{font-size:var(--text-caption);color:var(--color-danger);margin-bottom:var(--spacing-16)}.lobby__header{text-align:center;padding:var(--spacing-40) 0}.lobby__title{font-size:var(--text-display);color:var(--color-chalk);letter-spacing:-.69px;margin-bottom:var(--spacing-16);font-weight:400;line-height:1.05}.lobby__subtitle{font-size:var(--text-subheading);color:var(--color-smoke);margin-bottom:var(--spacing-24);font-weight:400;line-height:.95}.lobby__actions{align-items:center;gap:var(--spacing-16);flex-wrap:wrap;justify-content:center;display:flex}.lobby__grid{gap:var(--spacing-16);grid-template-columns:1fr;display:grid}.lobby__empty{text-align:center;padding:var(--spacing-40) 0}.lobby__empty-text{font-size:var(--text-body);color:var(--color-smoke)}.create-room-form,.join-invite-form{flex-direction:column;display:flex}.create-room-form .pill-button,.join-invite-form .pill-button{margin-top:var(--spacing-8);align-self:flex-start}.room-card{border:1px solid var(--color-graphite);border-radius:var(--radius-cards);padding:var(--spacing-32);cursor:pointer;background:0 0;transition:border-color .25s}.room-card:hover{border-color:var(--color-iron)}.room-card__header{justify-content:space-between;align-items:center;gap:var(--spacing-12);margin-bottom:var(--spacing-8);display:flex}.room-card__title{font-size:var(--text-heading-xs);color:var(--color-chalk);font-weight:400;line-height:1.3}.room-card__lock{flex-shrink:0;font-size:14px}.room-card__content{color:var(--color-smoke);margin-bottom:var(--spacing-16);font-size:14px;line-height:1.4}.room-card__footer{justify-content:space-between;align-items:center;gap:var(--spacing-12);display:flex}.room-card__meta{font-family:var(--font-input);font-size:var(--text-caption);color:var(--color-smoke);text-transform:uppercase;letter-spacing:-.022em}.room-page__header{margin-bottom:var(--spacing-8)}.room-page__info{gap:var(--spacing-4);flex-direction:column;display:flex}.room-page__title{font-size:var(--text-heading);color:var(--color-chalk);font-weight:400;line-height:1.03}.room-page__content-title{font-family:var(--font-input);font-size:var(--text-caption);color:var(--color-smoke);text-transform:uppercase;letter-spacing:-.022em}.room-page__body{gap:var(--spacing-24);min-height:0;display:flex}.room-page__chat{flex:1;min-width:0}.room-page__sidebar{gap:var(--spacing-16);flex-direction:column;flex-shrink:0;width:280px;display:flex}.room-page__owner-actions{gap:var(--spacing-12);flex-direction:column;display:flex}.room-error{text-align:center;padding:var(--spacing-40) 0;align-items:center;gap:var(--spacing-24);color:var(--color-smoke);flex-direction:column;display:flex}.player-panel{align-items:center;gap:var(--spacing-16);padding:var(--spacing-12) var(--spacing-16);border:1px solid var(--color-graphite);border-radius:var(--radius-tags);background:var(--color-carbon);margin-bottom:var(--spacing-8);display:flex}.player-panel__status{align-items:center;gap:var(--spacing-8);display:flex}.player-panel__indicator{background:var(--color-iron);border-radius:50%;flex-shrink:0;width:8px;height:8px}.player-panel__indicator--playing{background:var(--color-pulse-green);animation:1.5s ease-in-out infinite pulse}.player-panel__state{font-family:var(--font-input);font-size:var(--text-caption);color:var(--color-smoke);text-transform:uppercase;letter-spacing:-.022em}.player-panel__timecode{font-family:var(--font-input);font-size:var(--text-body);color:var(--color-chalk);letter-spacing:-.022em}.player-panel__source{font-family:var(--font-input);color:var(--color-compass-gold);text-transform:uppercase;letter-spacing:-.022em;text-overflow:ellipsis;white-space:nowrap;max-width:200px;margin-left:auto;font-size:11px;overflow:hidden}.chat-panel{border:1px solid var(--color-graphite);border-radius:var(--radius-cards);flex-direction:column;height:60vh;min-height:400px;display:flex}.chat-panel__messages{padding:var(--spacing-16);gap:var(--spacing-8);flex-direction:column;flex:1;display:flex;overflow-y:auto}.chat-panel__empty{flex:1;justify-content:center;align-items:center;display:flex}.chat-panel__empty-text{color:var(--color-iron);font-size:14px}.chat-panel__input-bar{align-items:center;gap:var(--spacing-8);padding:var(--spacing-12) var(--spacing-16);border-top:1px solid var(--color-graphite);display:flex}.chat-panel__input{font-family:var(--font-aeonik);font-size:var(--text-body);color:var(--color-chalk);padding:var(--spacing-8) 0;background:0 0;border:none;outline:none;flex:1}.chat-panel__input::placeholder{color:var(--color-iron)}.chat-panel__send{background:var(--color-signal-white);width:40px;height:40px;color:var(--color-obsidian);cursor:pointer;border:none;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;font-size:18px;transition:opacity .2s;display:flex}.chat-panel__send:disabled{opacity:.3;cursor:not-allowed}.message{padding:var(--spacing-12) var(--spacing-16);border-radius:var(--radius-tags);background:var(--color-carbon);border:1px solid var(--color-graphite);max-width:85%;position:relative}.message--own{background:var(--color-graphite);border-color:var(--color-iron);align-self:flex-end}.message__header{justify-content:space-between;align-items:center;gap:var(--spacing-12);margin-bottom:var(--spacing-4);display:flex}.message__username{font-family:var(--font-input);color:var(--color-compass-gold);text-transform:uppercase;letter-spacing:-.022em;font-size:12px}.message__time{font-family:var(--font-input);color:var(--color-iron);font-size:11px}.message__text{color:var(--color-chalk);word-break:break-word;font-size:14px;line-height:1.45}.message__image{border-radius:var(--radius-tags);max-width:100%;margin-top:var(--spacing-8)}.message__delete{top:var(--spacing-8);right:var(--spacing-8);width:20px;height:20px;color:var(--color-smoke);opacity:0;cursor:pointer;border-radius:50%;justify-content:center;align-items:center;font-size:14px;transition:opacity .2s,color .2s;display:flex;position:absolute}.message:hover .message__delete{opacity:1}.message__delete:hover{color:var(--color-danger)}.participant-list__title{font-family:var(--font-input);font-size:var(--text-caption);color:var(--color-smoke);text-transform:uppercase;letter-spacing:-.022em;margin-bottom:var(--spacing-12)}.participant-list__items{gap:var(--spacing-8);flex-direction:column;display:flex}.participant-item{padding:var(--spacing-8) var(--spacing-12);border:1px solid var(--color-graphite);border-radius:var(--radius-tags);justify-content:space-between;align-items:center;display:flex}.participant-item__name{color:var(--color-chalk);font-size:14px}.participant-item__role{font-family:var(--font-input);text-transform:uppercase;letter-spacing:-.022em;color:var(--color-smoke);font-size:11px}.participant-item__role--owner{color:var(--color-compass-gold)}.invite-section{gap:var(--spacing-12);flex-direction:column;display:flex}.invite-code{gap:var(--spacing-4);flex-direction:column;display:flex}.invite-code__label{font-family:var(--font-input);color:var(--color-smoke);text-transform:uppercase;letter-spacing:-.022em;font-size:11px}.invite-code__value{font-family:var(--font-input);font-size:var(--text-caption);color:var(--color-chalk);background:var(--color-carbon);border:1px solid var(--color-graphite);border-radius:var(--radius-tags);padding:var(--spacing-8) var(--spacing-12);word-break:break-all}.search-page__title{font-size:var(--text-heading-lg);color:var(--color-chalk);letter-spacing:-.31px;font-weight:400;line-height:1.07}.search-page__subtitle{font-size:var(--text-body);color:var(--color-smoke);margin-top:var(--spacing-8)}.search-page__form{gap:var(--spacing-12);align-items:stretch;display:flex}.search-page__input{font-family:var(--font-aeonik);font-size:var(--text-body);color:var(--color-chalk);border:1px solid var(--color-graphite);border-radius:var(--radius-tags);background:0 0;outline:none;flex:1;padding:12px 16px;transition:border-color .2s}.search-page__input::placeholder{color:var(--color-iron)}.search-page__input:focus{border-color:var(--color-iron)}.search-page__empty{font-size:var(--text-body);color:var(--color-smoke);text-align:center;padding:var(--spacing-40) 0}.search-results{gap:var(--spacing-16);flex-direction:column;display:flex}.search-result{padding:var(--spacing-24);border:1px solid var(--color-graphite);border-radius:var(--radius-cards);text-decoration:none;transition:border-color .25s;display:block}.search-result:hover{border-color:var(--color-iron)}.search-result__title{font-size:var(--text-heading-xs);color:var(--color-chalk);margin-bottom:var(--spacing-8);font-weight:400;line-height:1.3}.search-result__description{color:var(--color-smoke);margin-bottom:var(--spacing-12);font-size:14px;line-height:1.5}.search-result__url{font-family:var(--font-input);color:var(--color-iron);letter-spacing:-.022em;word-break:break-all;font-size:12px}.profile-page__title{font-size:var(--text-heading-lg);color:var(--color-chalk);letter-spacing:-.31px;font-weight:400;line-height:1.07}.profile-page__subtitle{font-size:var(--text-body);color:var(--color-smoke);margin-top:var(--spacing-8)}.profile-page__info{gap:var(--spacing-16);flex-direction:column;display:flex}.profile-page__field{align-items:baseline;gap:var(--spacing-16);display:flex}.profile-page__label{font-family:var(--font-input);font-size:var(--text-caption);color:var(--color-smoke);text-transform:uppercase;letter-spacing:-.022em;min-width:120px}.profile-page__value{font-size:var(--text-body);color:var(--color-chalk)}.profile-page__form{flex-direction:column;max-width:400px;display:flex}.profile-page__form .pill-button{align-self:flex-start}@media (width<=768px){.lobby__title{font-size:var(--text-heading);letter-spacing:0}.lobby__subtitle{font-size:var(--text-body)}.room-page__body{flex-direction:column}.room-page__sidebar{width:100%}.room-page__title{font-size:var(--text-heading-sm)}.navbar__links{gap:var(--spacing-16)}.navbar__link{font-size:12px}.page-shell{padding:var(--spacing-24) var(--spacing-16)}.modal-content{padding:var(--spacing-32) var(--spacing-24)}.chat-panel{height:50vh;min-height:300px}.search-page__form{flex-direction:column}.search-page__title,.profile-page__title{font-size:var(--text-heading)}.profile-page__field{gap:var(--spacing-4);flex-direction:column}.profile-page__label{min-width:auto}}@media (width>=769px){.lobby__grid{grid-template-columns:repeat(2,1fr)}}@media (width>=1024px){.lobby__grid{grid-template-columns:repeat(3,1fr)}}
