@import"https://fonts.googleapis.com/css2?family=JetBrains+Mono:wght@300;400;500;600&family=Syne:wght@400;500;600;700;800&display=swap";.error-banner{position:fixed;top:16px;left:50%;transform:translate(-50%);width:30%;min-width:280px;z-index:1000;padding:12px 20px;background:var(--bg-surface);border:1px solid var(--error);border-radius:6px;color:var(--error);font-family:var(--font-mono);font-size:.78rem;text-align:center;box-shadow:0 4px 24px #0006;animation:bannerSlideDown .35s ease}.message-banner{position:fixed;top:16px;left:50%;transform:translate(-50%);width:30%;min-width:280px;z-index:1000;padding:12px 20px;background:var(--bg-surface);border:1px solid var(--amber-border);border-radius:6px;color:var(--amber);font-family:var(--font-mono);font-size:.78rem;text-align:center;box-shadow:0 4px 24px #0006;animation:bannerSlideDown .35s ease}.error-banner--fading,.message-banner--fading{animation:bannerSlideUp .4s ease forwards}@keyframes bannerSlideDown{0%{opacity:0;transform:translate(-50%) translateY(-100%)}to{opacity:1;transform:translate(-50%) translateY(0)}}@keyframes bannerSlideUp{0%{opacity:1;transform:translate(-50%) translateY(0)}to{opacity:0;transform:translate(-50%) translateY(-100%)}}.auth-callback{display:flex;align-items:center;justify-content:center;min-height:100vh;padding:48px 20px}.auth-callback__text{font-family:var(--font-mono);font-size:.85rem;color:var(--text-3);letter-spacing:1px}.check-email{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:100vh;padding:48px 20px}.check-email__header{text-align:center;margin-bottom:52px}.check-email__logo{font-family:var(--font-display);font-size:2.4rem;font-weight:800;color:var(--text-1);letter-spacing:-.5px;line-height:1}.check-email__tagline{margin-top:14px;font-family:var(--font-mono);font-size:.72rem;font-weight:400;color:var(--text-3);letter-spacing:2.5px;text-transform:lowercase}.check-email__card{width:420px;max-width:100%;padding:28px;background:var(--bg-surface);border:1px solid var(--border-subtle);border-radius:8px;display:flex;flex-direction:column;gap:18px}.check-email__body{margin:0;font-family:var(--font-mono);font-size:.85rem;color:var(--text-2);line-height:1.6}.check-email__address{color:var(--amber);font-weight:600;word-break:break-all}.check-email__resend{width:100%;padding:13px 0;background:var(--amber);border:none;border-radius:4px;color:var(--bg);font-family:var(--font-display);font-size:.9rem;font-weight:700;letter-spacing:.5px;cursor:pointer;transition:background .2s,opacity .2s}.check-email__resend:hover:not(:disabled){background:var(--amber-hover)}.check-email__resend:disabled{opacity:.4;cursor:not-allowed}.check-email__back{text-align:center;font-family:var(--font-display);font-size:.72rem;font-weight:600;color:var(--text-3);letter-spacing:1px;text-transform:uppercase;text-decoration:none;transition:color .2s}.check-email__back:hover{color:var(--amber)}@media(max-width:480px){.check-email__logo{font-size:1.8rem}.check-email__card{padding:22px 18px}}.forgot-password{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:100vh;padding:48px 20px}.forgot-password__header{text-align:center;margin-bottom:52px}.forgot-password__logo{font-family:var(--font-display);font-size:2.4rem;font-weight:800;color:var(--text-1);letter-spacing:-.5px;line-height:1}.forgot-password__tagline{margin-top:14px;font-family:var(--font-mono);font-size:.72rem;font-weight:400;color:var(--text-3);letter-spacing:2.5px;text-transform:lowercase}.forgot-password__card{width:420px;max-width:100%;padding:28px;background:var(--bg-surface);border:1px solid var(--border-subtle);border-radius:8px;display:flex;flex-direction:column;gap:18px}.forgot-password__form{display:flex;flex-direction:column;gap:16px}.forgot-password__label{display:flex;flex-direction:column;gap:6px;font-family:var(--font-display);font-size:.72rem;font-weight:600;color:var(--text-3);letter-spacing:1px;text-transform:uppercase}.forgot-password__input{padding:11px 12px;background:var(--bg);border:1px solid var(--border-subtle);border-radius:4px;color:var(--text-1);font-family:var(--font-mono);font-size:.9rem;outline:none;transition:border-color .2s}.forgot-password__input:focus{border-color:var(--amber)}.forgot-password__input--error{border-color:var(--danger, #d05a5a)}.forgot-password__error{font-family:var(--font-mono);font-size:.7rem;color:var(--danger, #d05a5a);text-transform:none;letter-spacing:0}.forgot-password__body{margin:0;font-family:var(--font-mono);font-size:.85rem;color:var(--text-2);line-height:1.6}.forgot-password__submit{width:100%;padding:13px 0;background:var(--amber);border:none;border-radius:4px;color:var(--bg);font-family:var(--font-display);font-size:.9rem;font-weight:700;letter-spacing:.5px;cursor:pointer;transition:background .2s,opacity .2s}.forgot-password__submit:hover:not(:disabled){background:var(--amber-hover)}.forgot-password__submit:disabled{opacity:.4;cursor:not-allowed}.forgot-password__back{text-align:center;font-family:var(--font-display);font-size:.72rem;font-weight:600;color:var(--text-3);letter-spacing:1px;text-transform:uppercase;text-decoration:none;transition:color .2s}.forgot-password__back:hover{color:var(--amber)}@media(max-width:480px){.forgot-password__logo{font-size:1.8rem}.forgot-password__card{padding:22px 18px}}.navbar{display:flex;align-items:center;justify-content:space-between;padding:0 32px;height:54px;background:var(--bg-surface);border-bottom:1px solid var(--border-subtle)}.navbar__logo{font-family:var(--font-display);font-size:1.1rem;font-weight:800;color:var(--text-1);letter-spacing:-.5px;text-decoration:none}.navbar__links{display:flex;gap:28px}.navbar__link{font-family:var(--font-display);font-size:.78rem;font-weight:500;color:var(--text-3);text-decoration:none;transition:color .2s;padding:4px 0;position:relative}.navbar__link:hover{color:var(--text-2)}.navbar__link.active{color:var(--text-1)}.navbar__link.active:after{content:"";position:absolute;bottom:-2px;left:0;right:0;height:1.5px;background:var(--amber);border-radius:1px}.navbar__profile{font-family:var(--font-display);font-size:.78rem;font-weight:500;color:var(--text-3);cursor:pointer;transition:color .2s}.navbar__profile:hover{color:var(--text-1)}.navbar__return-lobby{display:flex;align-items:center;gap:6px;margin-left:8px;padding:5px 14px;background:transparent;border:1px solid var(--amber-border);border-radius:4px;color:var(--amber);font-family:var(--font-display);font-size:.72rem;font-weight:600;cursor:pointer;transition:background .2s,border-color .2s}.navbar__return-lobby:hover{background:var(--amber-muted);border-color:var(--amber)}.navbar__return-lobby-dot{width:6px;height:6px;border-radius:50%;background:var(--amber);animation:lobbyPulse 1.8s ease-in-out infinite}@keyframes lobbyPulse{0%,to{opacity:.4}50%{opacity:1}}.leaderboard-page{min-height:100vh;display:flex;flex-direction:column}.leaderboard-page__content{flex:1;max-width:960px;width:100%;margin:0 auto;padding:36px 32px;animation:leaderboardFadeIn .4s ease both}@keyframes leaderboardFadeIn{0%{opacity:0}to{opacity:1}}.leaderboard-page__header{display:flex;align-items:center;justify-content:space-between;padding-bottom:20px;border-bottom:1px solid var(--border-subtle);margin-bottom:28px}.leaderboard-page__title{font-family:var(--font-display);font-size:1.1rem;font-weight:700;color:var(--text-1)}.leaderboard-count{display:flex;gap:4px}.leaderboard-count__btn{padding:6px 12px;background:transparent;border:1px solid var(--border-subtle);border-radius:4px;color:var(--text-3);font-family:var(--font-mono);font-size:.75rem;cursor:pointer;transition:border-color .2s,color .2s}.leaderboard-count__btn:hover{border-color:var(--border);color:var(--text-2)}.leaderboard-count__btn--active{border-color:var(--amber-border);color:var(--amber);background:var(--amber-muted)}.leaderboard-table{width:100%;border-collapse:collapse;font-family:var(--font-mono);font-size:.8rem}.leaderboard-table th{text-align:left;padding:10px 12px;font-family:var(--font-display);font-size:.7rem;font-weight:600;color:var(--text-3);text-transform:uppercase;letter-spacing:.5px;border-bottom:1px solid var(--border);white-space:nowrap;-webkit-user-select:none;user-select:none}.leaderboard-table th.sortable{cursor:pointer;transition:color .2s}.leaderboard-table th.sortable:hover{color:var(--text-2)}.leaderboard-table th.active{color:var(--amber)}.leaderboard-table__sort-arrow{margin-left:4px;font-size:.6rem}.leaderboard-table td{padding:12px;border-bottom:1px solid var(--border-subtle);color:var(--text-2)}.leaderboard-table tbody tr:hover{background:var(--bg-elevated)}.leaderboard-table__player{color:var(--text-1);font-weight:500;max-width:160px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.leaderboard-table__row--gold td:first-child{color:gold;font-weight:700}.leaderboard-table__row--silver td:first-child{color:silver;font-weight:700}.leaderboard-table__row--bronze td:first-child{color:#cd7f32;font-weight:700}.leaderboard-table__row--gold{border-left:3px solid #ffd700}.leaderboard-table__row--silver{border-left:3px solid #c0c0c0}.leaderboard-table__row--bronze{border-left:3px solid #cd7f32}.leaderboard-page__empty,.leaderboard-page__loading{padding:60px 0;text-align:center;font-size:.8rem;color:var(--text-3)}@media(max-width:700px){.leaderboard-page__content{padding:24px 16px}.leaderboard-page__header{flex-direction:column;align-items:flex-start;gap:12px}.leaderboard-table{font-size:.7rem;display:block;overflow-x:auto}}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#0009;display:flex;align-items:center;justify-content:center;z-index:100;animation:backdropIn .15s ease}@keyframes backdropIn{0%{opacity:0}to{opacity:1}}.modal{width:400px;max-width:calc(100% - 32px);background:var(--bg-surface);border:1px solid var(--border);border-radius:8px;overflow:hidden;animation:modalIn .2s ease}@keyframes modalIn{0%{opacity:0;transform:translateY(8px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}.modal__header{display:flex;align-items:center;justify-content:space-between;padding:16px 20px;border-bottom:1px solid var(--border-subtle)}.modal__title{font-family:var(--font-display);font-size:1rem;font-weight:700;color:var(--text-1)}.modal__close{background:none;border:none;color:var(--text-3);font-size:1.4rem;line-height:1;cursor:pointer;padding:0 4px;transition:color .15s}.modal__close:hover{color:var(--text-1)}.modal__body{padding:20px;display:flex;flex-direction:column;gap:18px}.modal__field{display:flex;flex-direction:column;gap:7px}.modal__label{font-family:var(--font-display);font-size:.7rem;font-weight:600;color:var(--text-3);letter-spacing:1px;text-transform:uppercase}.modal__input{width:100%;padding:11px 14px;background:var(--bg);border:1px solid var(--border-subtle);border-radius:4px;color:var(--text-1);font-family:var(--font-mono);font-size:.85rem;outline:none;caret-color:var(--amber);transition:border-color .2s}.modal__input::placeholder{color:var(--text-4)}.modal__input:focus{border-color:var(--amber-border)}.modal__input--short{width:120px}.modal__input[type=number]::-webkit-inner-spin-button,.modal__input[type=number]::-webkit-outer-spin-button{opacity:1}.modal__toggle-row{display:flex;gap:4px;background:var(--bg);border-radius:4px;padding:3px;border:1px solid var(--border-subtle)}.modal__toggle-option{flex:1;padding:8px 0;background:transparent;border:none;border-radius:3px;font-family:var(--font-display);font-size:.75rem;font-weight:500;color:var(--text-3);cursor:pointer;transition:color .15s,background .15s}.modal__toggle-option:hover{color:var(--text-2)}.modal__toggle-option--active{background:var(--bg-elevated);color:var(--amber)}.modal__submit{width:100%;margin-top:4px;padding:12px 0;background:var(--amber);border:none;border-radius:4px;color:var(--bg);font-family:var(--font-display);font-size:.88rem;font-weight:700;letter-spacing:.5px;cursor:pointer;transition:background .2s,opacity .2s}.modal__submit:hover:not(:disabled){background:var(--amber-hover)}.modal__submit:disabled{opacity:.25;cursor:not-allowed}.lobbies-page{min-height:100vh;display:flex;flex-direction:column}.lobbies-page__content{flex:1;max-width:860px;width:100%;margin:0 auto;padding:36px 32px;animation:fadeIn .4s ease both}.lobby-config{display:flex;align-items:center;gap:10px;flex-wrap:wrap;padding-bottom:28px;border-bottom:1px solid var(--border-subtle);margin-bottom:28px}.lobby-config__create{padding:9px 18px;background:var(--amber);border:none;border-radius:4px;color:var(--bg);font-family:var(--font-display);font-size:.8rem;font-weight:700;cursor:pointer;transition:background .2s}.lobby-config__create:hover{background:var(--amber-hover)}.lobby-config__create+.lobby-config__create{background:transparent;color:var(--text-3);font-family:var(--font-mono);font-size:.75rem;font-weight:400}.lobby-config__create+.lobby-config__create:hover{color:var(--text-1);background:transparent}.lobby-config__join{margin-left:auto;display:flex;align-items:center;gap:10px}.lobby-config__join-label{font-family:var(--font-display);font-size:.7rem;font-weight:600;color:var(--text-3);letter-spacing:.5px;text-transform:uppercase;white-space:nowrap}.lobby-config__join-row{display:flex;gap:6px}.lobby-config__input{padding:9px 12px;width:140px;background:var(--bg);border:1px solid var(--border-subtle);border-radius:4px;color:var(--text-1);font-family:var(--font-mono);font-size:.8rem;outline:none;caret-color:var(--amber);transition:border-color .2s}.lobby-config__input::placeholder{color:var(--text-4)}.lobby-config__input:focus{border-color:var(--amber-border)}.lobby-config__join-btn{padding:9px 14px;background:transparent;border:1px solid var(--border);border-radius:4px;color:var(--text-2);font-family:var(--font-display);font-size:.75rem;font-weight:600;cursor:pointer;white-space:nowrap;transition:border-color .2s,color .2s}.lobby-config__join-btn:hover:not(:disabled){border-color:var(--amber-border);color:var(--text-1)}.lobby-config__join-btn:disabled{opacity:.25;cursor:not-allowed}.lobby-list__title{font-family:var(--font-display);font-size:1.1rem;font-weight:700;color:var(--text-1);margin-bottom:16px}.lobby-list__empty{padding:40px 0;text-align:center;font-size:.8rem;color:var(--text-3)}.lobby-list__cards{display:flex;flex-direction:column;gap:6px}.lobby-card{display:flex;align-items:center;justify-content:space-between;padding:14px 18px;background:var(--bg-surface);border:1px solid var(--border-subtle);border-radius:6px;transition:background .2s,border-color .2s}.lobby-card:hover{background:var(--bg-elevated);border-color:var(--border)}.lobby-card__info{display:flex;align-items:center;gap:14px}.lobby-card__name{font-family:var(--font-display);font-size:.88rem;font-weight:600;color:var(--text-1)}.lobby-card__count{font-family:var(--font-mono);font-size:.7rem;color:var(--text-3);padding:2px 7px;background:var(--amber-muted);border-radius:3px}.lobby-card__join{padding:7px 14px;background:transparent;border:1px solid var(--border);border-radius:4px;color:var(--text-2);font-family:var(--font-display);font-size:.72rem;font-weight:600;cursor:pointer;transition:border-color .2s,color .2s}.lobby-card__join:hover{color:var(--amber);border-color:var(--amber-border)}@media(max-width:700px){.lobbies-page__content{padding:24px 16px}.lobby-config{flex-direction:column;align-items:stretch}.lobby-config__join{margin-left:0;flex-direction:column}}.player-card{position:relative;display:flex;align-items:center;justify-content:space-between;padding:10px 14px;background:var(--bg-surface);border:1px solid var(--border-subtle);border-radius:5px;transition:background .2s,border-color .2s}.player-card:hover{background:var(--bg-elevated);border-color:var(--border)}.color-panel{left:110%;top:0;position:absolute;display:flex;flex-wrap:wrap;gap:6px;width:115px;padding:7px;background-color:var(--bg-elevated);border:1px solid var(--border-subtle);border-radius:5px;box-shadow:0 4px 12px #0000004d;z-index:100}.player-card__other{display:flex;gap:10px}.player-card__color{width:15px;height:15px;border-radius:30%;border:2px solid rgb(66,66,66);flex-shrink:0;cursor:default;box-shadow:inset 0 0 0 20px #0000001a;transition:opacity .15s,transform .15s}.player-card__color--self{cursor:pointer}.player-card__choose:hover{transform:scale(1.2);cursor:pointer}.player-card__color--self:hover{transform:scale(1.2)}.player-card__color--taken{cursor:default;position:relative}.player-card__color--taken:after{content:"";position:absolute;top:-1px;right:-1px;bottom:-1px;left:-1px;background:linear-gradient(45deg,transparent 45%,rgb(66,66,66) 45%,rgb(66,66,66) 55%,transparent 55%),linear-gradient(-45deg,transparent 45%,rgb(66,66,66) 45%,rgb(66,66,66) 55%,transparent 55%);border-radius:inherit}.player-card__color--taken:hover{transform:none}.player-card__nick{font-family:var(--font-mono);font-size:.78rem;color:var(--text-1)}.player-card__badge{font-family:var(--font-display);font-size:.62rem;font-weight:600;color:var(--amber);padding:1px 6px;background:var(--amber-muted);border-radius:3px;letter-spacing:.5px;text-transform:uppercase}.host-actions{position:absolute;top:calc(100% + 4px);left:0;right:0;display:flex;flex-direction:column;gap:2px;padding:4px;background:var(--bg-elevated);border:1px solid var(--border-subtle);border-radius:5px;box-shadow:0 4px 12px #0000004d;z-index:100}.host-actions__btn{padding:6px 10px;background:transparent;border:none;border-radius:3px;color:var(--text-2);font-family:var(--font-display);font-size:.72rem;font-weight:500;text-align:left;cursor:pointer;transition:background .15s,color .15s}.host-actions__btn:hover{background:var(--bg-surface);color:var(--text-1)}.host-actions__btn--kick:hover{color:var(--error, #e55)}.typing-area__hidden-input{position:absolute;opacity:0;pointer-events:none}.typing-area{width:100%;max-width:700px;padding:28px 32px;background:var(--bg-surface);border:1px solid var(--border-subtle);border-radius:6px;cursor:text;-webkit-user-select:none;user-select:none;transition:border-color .2s}.typing-area:hover{border-color:var(--border)}.typing-area--disabled{opacity:.5;cursor:default}.current{z-index:100}.incorrect__word-overflow{color:#f0f8ff}.typing-area__words{font-family:var(--font-mono);font-size:1.1rem;line-height:2.2;color:var(--text-4);position:relative}.typing-area__char{position:relative;transition:color .05s}.typing-area__char--correct{color:var(--text-1)}.typing-area__char--incorrect{color:var(--error-light);border-radius:2px}.typing-area__space--incorrect{color:var(--error);margin:0 1px}.typing-area__caret{position:absolute;opacity:20%;left:0;top:0;width:2px;height:1.4em;border-radius:1px;pointer-events:none;z-index:1;transition:transform .15s ease-out;will-change:transform}.current{z-index:100;opacity:100%}.typing-area__caret-label{position:absolute;bottom:100%;left:50%;transform:translate(-50%);font-size:.5rem;color:var(--bg);padding:0 2px;border-radius:2px;white-space:nowrap;pointer-events:none;transition:transform .12s ease-out}.lobby-page{min-height:100vh;display:flex;flex-direction:column}.lobby-body{flex:1;display:flex;flex-direction:column;padding:24px 32px;animation:lobbyFadeIn .4s ease both}@keyframes lobbyFadeIn{0%{opacity:0}to{opacity:1}}.lobby-topbar{display:flex;align-items:center;justify-content:space-between;padding-bottom:20px;border-bottom:1px solid var(--border-subtle);margin-bottom:20px}.lobby-topbar__info{display:flex;align-items:center;gap:14px}.lobby-topbar__name{font-family:var(--font-display);font-size:1rem;font-weight:700;color:var(--text-1)}.lobby-topbar__count{font-size:.7rem;color:var(--text-3);padding:2px 8px;background:var(--amber-muted);border-radius:3px}.lobby-topbar__mode{font-size:.7rem;color:var(--text-3)}.lobby-topbar__invite-code{font-family:var(--font-mono);font-size:.7rem;color:var(--amber);padding:2px 8px;background:var(--amber-muted);border-radius:3px;letter-spacing:1px}.lobby-topbar__leave{padding:8px 16px;background:transparent;border:1px solid var(--border);border-radius:4px;color:var(--text-3);font-family:var(--font-display);font-size:.72rem;font-weight:600;cursor:pointer;transition:border-color .2s,color .2s}.lobby-topbar__leave:hover{color:var(--error);border-color:var(--error)}.lobby-arena{flex:1;display:flex;gap:20px;min-height:0}.lobby-players-col{width:190px;flex-shrink:0;display:flex;flex-direction:column;gap:6px;overflow:visible}.lobby-player-row{display:flex;align-items:center;gap:8px}.lobby-player-row__wpm{display:inline-flex;align-items:baseline;gap:3px;padding:3px 8px;background:var(--amber-muted);border-radius:3px;font-family:var(--font-mono);line-height:1}.lobby-player-row__wpm-value{color:var(--amber);font-size:.82rem;font-weight:700}.lobby-player-row__wpm-unit{color:var(--text-3);font-size:.58rem;text-transform:uppercase;letter-spacing:.5px}.lobby-game{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:30px}.lobby-game__typing-area{width:100%;max-width:680px;padding:28px 32px;background:var(--bg-surface);border:1px solid var(--border-subtle);border-radius:6px}.lobby-game__passage{font-family:var(--font-mono);font-size:1.05rem;line-height:2.2;color:var(--text-4)}.lobby-game__waiting{font-family:var(--font-display);font-size:.78rem;color:var(--text-3);letter-spacing:.5px}.lobby-next-passage__icon{display:flex;align-items:center;justify-content:center;width:22px;height:22px;border-radius:50%;border:none;background:var(--border);color:var(--text-3);font-size:.72rem;font-weight:700;font-family:var(--font-display);cursor:pointer;transition:background .2s,color .2s}.lobby-next-passage__icon:hover{background:var(--text-3);color:var(--bg)}.lobby-footer{padding-top:20px;border-top:1px solid var(--border-subtle);margin-top:20px}.lobby-footer__start{padding:11px 28px;background:var(--amber);border:none;border-radius:4px;color:var(--bg);font-family:var(--font-display);font-size:.82rem;font-weight:700;cursor:pointer;transition:background .2s}.countdown-overlay{position:absolute;opacity:1;color:var(--amber);top:50%;left:50%;z-index:100;transform:translate(-50%,-50%);font-size:10rem}.lobby-footer__start:hover{background:var(--amber-hover)}.lobby-footer__start:disabled{background:var(--amber-muted);cursor:default}.tier{--shake: 0px;align-self:center;font-family:var(--font-display);font-weight:800;font-size:2vw;line-height:1;letter-spacing:-.02em;text-transform:uppercase;text-align:center;white-space:nowrap;color:var(--amber);text-shadow:0 1px 0 rgba(0,0,0,.4);padding:8px 18px;margin-top:-32px;margin-bottom:28px;transform:skew(-6deg);transform-origin:center;animation:tierSlam .55s cubic-bezier(.16,1,.3,1) both,tierShake .55s cubic-bezier(.36,.07,.19,.97) .05s both}@keyframes tierSlam{0%{opacity:0;transform:skew(-6deg) scale(1.35);filter:blur(6px)}60%{opacity:1;transform:skew(-6deg) scale(.97);filter:blur(0)}to{opacity:1;transform:skew(-6deg) scale(1);filter:blur(0)}}@keyframes tierShake{0%,to{margin-left:0;margin-right:0}10%{margin-left:calc(-2 * var(--shake));margin-right:calc(2 * var(--shake))}20%{margin-left:calc(2 * var(--shake));margin-right:calc(-2 * var(--shake))}30%{margin-left:calc(-1.6 * var(--shake));margin-right:calc(1.6 * var(--shake))}40%{margin-left:calc(1.6 * var(--shake));margin-right:calc(-1.6 * var(--shake))}50%{margin-left:calc(-1 * var(--shake));margin-right:calc(1 * var(--shake))}60%{margin-left:calc(1 * var(--shake));margin-right:calc(-1 * var(--shake))}70%{margin-left:calc(-.6 * var(--shake));margin-right:calc(.6 * var(--shake))}80%{margin-left:calc(.6 * var(--shake));margin-right:calc(-.6 * var(--shake))}90%{margin-left:calc(-.2 * var(--shake));margin-right:calc(.2 * var(--shake))}}.race-results{width:100%;max-width:520px;padding:28px 32px;background:var(--bg-surface);border:1px solid var(--border-subtle);border-radius:6px;animation:lobbyFadeIn .3s ease both}.race-results__title{font-family:var(--font-display);font-size:.9rem;font-weight:700;color:var(--text-1);margin-bottom:16px}.race-results__table{width:100%;border-collapse:collapse;font-family:var(--font-mono);font-size:.78rem}.race-results__table th{text-align:left;color:var(--text-3);font-weight:600;padding:6px 8px;border-bottom:1px solid var(--border-subtle)}.race-results__table td{padding:8px;color:var(--text-2);border-bottom:1px solid var(--border-subtle)}.current-player{color:var(--amber);font-weight:600}.race-results__close{margin-top:16px;padding:8px 20px;background:transparent;border:1px solid var(--border);border-radius:4px;color:var(--text-3);font-family:var(--font-display);font-size:.72rem;font-weight:600;cursor:pointer;transition:border-color .2s,color .2s}.race-results__close:hover{color:var(--text-1);border-color:var(--text-3)}@media(max-width:900px){.lobby-body{padding:16px}.lobby-arena{flex-direction:column;align-items:center}.lobby-players-col{width:100%;flex-direction:row;flex-wrap:wrap;gap:6px;overflow:visible}.lobby-topbar{flex-direction:column;align-items:flex-start;gap:12px}}.profile-page{min-height:100vh;display:flex;flex-direction:column;position:relative}.profile-page__logout{position:absolute;top:70px;right:32px;z-index:2;padding:8px 16px;background:transparent;border:1px solid var(--border-subtle);color:var(--text-2);font-family:var(--font-mono);font-size:.75rem;letter-spacing:.5px;text-transform:lowercase;cursor:pointer;transition:border-color .15s,color .15s,background .15s}.profile-page__logout:hover:not(:disabled){border-color:var(--amber);color:var(--amber);background:var(--bg-elevated)}.profile-page__logout:disabled{opacity:.5;cursor:not-allowed}@media(max-width:720px){.profile-page__logout{top:62px;right:16px;padding:6px 12px}}.profile-page__content{flex:1;max-width:960px;width:100%;margin:0 auto;padding:36px 32px;animation:profileFadeIn .4s ease both}@keyframes profileFadeIn{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}.profile-page__header{padding-bottom:20px;border-bottom:1px solid var(--border-subtle);margin-bottom:28px}.profile-page__eyebrow{display:block;font-family:var(--font-mono);font-size:.7rem;font-weight:500;text-transform:uppercase;letter-spacing:1.5px;color:var(--text-3);margin-bottom:10px}.profile-page__nick{font-family:var(--font-display);font-size:2.4rem;font-weight:700;color:var(--text-1);line-height:1;letter-spacing:-.5px;margin:0}.profile-page__meta{margin-top:12px;font-family:var(--font-mono);font-size:.8rem;color:var(--text-3)}.profile-page__meta-accent{color:var(--amber)}.profile-page__meta-sep{display:inline-block;margin:0 10px;color:var(--text-4)}.profile-hero{display:flex;align-items:baseline;justify-content:space-between;padding:28px 0 32px;border-bottom:1px solid var(--border-subtle);margin-bottom:32px}.profile-hero__label{font-family:var(--font-display);font-size:.7rem;font-weight:600;color:var(--text-3);text-transform:uppercase;letter-spacing:.5px}.profile-hero__value{font-family:var(--font-display);font-size:4.2rem;font-weight:700;color:var(--amber);line-height:1;letter-spacing:-2px}.profile-hero__unit{margin-left:6px;font-family:var(--font-mono);font-size:.9rem;font-weight:400;color:var(--text-3);letter-spacing:0}.profile-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--border-subtle);border-top:1px solid var(--border-subtle);border-bottom:1px solid var(--border-subtle)}.profile-stat{background:var(--bg);padding:22px 20px;display:flex;flex-direction:column;gap:10px;transition:background .2s}.profile-stat:hover{background:var(--bg-elevated)}.profile-stat__label{font-family:var(--font-display);font-size:.65rem;font-weight:600;color:var(--text-3);text-transform:uppercase;letter-spacing:.8px}.profile-stat__value{font-family:var(--font-mono);font-size:1.6rem;font-weight:500;color:var(--text-1);line-height:1;letter-spacing:-.5px}.profile-stat__value--muted{color:var(--text-2)}.profile-stat__suffix{margin-left:2px;font-size:.85rem;color:var(--text-3)}.profile-page__loading{padding:80px 0;text-align:center;font-family:var(--font-mono);font-size:.8rem;color:var(--text-3);letter-spacing:.5px}@media(max-width:720px){.profile-page__content{padding:24px 16px}.profile-page__nick{font-size:1.8rem}.profile-hero{flex-direction:column;align-items:flex-start;gap:14px;padding:22px 0 26px;margin-bottom:24px}.profile-hero__value{font-size:3rem}.profile-stats{grid-template-columns:repeat(2,1fr)}.profile-stat__value{font-size:1.3rem}}@media(max-width:420px){.profile-stats{grid-template-columns:1fr}}.registration{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:100vh;padding:48px 20px}.registration__header{text-align:center;margin-bottom:52px;animation:arrive .5s ease both}.registration__logo{font-family:var(--font-display);font-size:3rem;font-weight:800;color:var(--text-1);letter-spacing:-1px;line-height:1}.registration__tagline{margin-top:14px;font-family:var(--font-mono);font-size:.72rem;font-weight:400;color:var(--text-3);letter-spacing:2.5px;text-transform:lowercase}@keyframes arrive{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.registration__card{width:420px;max-width:100%;background:var(--bg-surface);border:1px solid var(--border-subtle);border-radius:8px;overflow:hidden;animation:arrive .5s ease .08s both}.registration__tabs{display:flex;border-bottom:1px solid var(--border-subtle)}.registration__tab{flex:1;padding:14px 0;background:none;border:none;font-family:var(--font-display);font-size:.78rem;font-weight:500;color:var(--text-4);cursor:pointer;transition:color .2s;position:relative}.registration__tab:hover{color:var(--text-2)}.registration__tab--active{color:var(--amber)}.registration__tab--active:after{content:"";position:absolute;bottom:-1px;left:24%;right:24%;height:2px;background:var(--amber);border-radius:1px}.registration__form{padding:28px 28px 32px;animation:fadeIn .2s ease}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.registration__fields{display:flex;flex-direction:column;gap:18px}.registration__label{display:flex;flex-direction:column;gap:7px}.registration__label span{font-family:var(--font-display);font-size:.7rem;font-weight:600;color:var(--text-3);letter-spacing:1px;text-transform:uppercase}.registration__input{width:100%;padding:12px 14px;background:var(--bg);border:1px solid var(--border-subtle);border-radius:4px;color:var(--text-1);font-family:var(--font-mono);font-size:.85rem;outline:none;caret-color:var(--amber);transition:border-color .2s}.registration__input:-webkit-autofill,.registration__input:-webkit-autofill:hover,.registration__input:-webkit-autofill:focus,.registration__input:-webkit-autofill:active{-webkit-box-shadow:0 0 0 1000px var(--bg) inset;-webkit-text-fill-color:var(--text-1);caret-color:var(--amber);transition:background-color 5000s ease-in-out 0s;border-radius:4px}.registration__input::placeholder{color:var(--text-4)}.registration__input:focus{border-color:var(--amber-border)}.registration__input--error{border-color:var(--error)}.registration__error{font-size:.7rem;color:var(--error);margin-top:2px}.registration__submit{width:100%;margin-top:24px;padding:13px 0;background:var(--amber)!important;border:none;border-radius:4px;color:var(--bg);font-family:var(--font-display);font-size:.9rem;font-weight:700;letter-spacing:.5px;cursor:pointer;transition:background .2s,opacity .2s}.registration__submit:hover:not(:disabled){background:var(--amber-hover)}.registration__submit:disabled{opacity:.25;cursor:not-allowed}.registration__forgot{display:block;margin-top:14px;text-align:center;font-family:var(--font-mono);font-size:.72rem;color:var(--text-3);letter-spacing:.5px;text-decoration:none;transition:color .2s}.registration__forgot:hover{color:var(--amber)}.registration__divider{display:flex;align-items:center;gap:10px;padding:0 28px;margin:4px 0 18px;color:var(--text-4);font-family:var(--font-mono);font-size:.65rem;letter-spacing:2px;text-transform:uppercase}.registration__divider:before,.registration__divider:after{content:"";flex:1;height:1px;background:var(--border-subtle)}.registration__google-wrap{padding:0 28px 28px}.registration__google{width:100%;padding:12px 0;background:transparent;border:1px solid var(--border-subtle);border-radius:4px;color:var(--text-2);font-family:var(--font-display);font-size:.8rem;font-weight:600;letter-spacing:.5px;cursor:pointer;transition:border-color .2s,color .2s}.registration__google:hover:not(:disabled){border-color:var(--amber-border);color:var(--text-1)}.registration__google:disabled{opacity:.4;cursor:not-allowed}.registration__footer{margin-top:28px;display:flex;align-items:center;gap:10px;font-family:var(--font-mono);font-size:.68rem;color:var(--text-3);letter-spacing:.5px;animation:arrive .5s ease .16s both}.registration__footer a{color:var(--text-3);text-decoration:none;transition:color .2s}.registration__footer a:hover{color:var(--amber)}.registration__footer-sep{color:var(--text-4);opacity:.6}@media(max-width:480px){.registration__logo{font-size:2.2rem}.registration__form{padding:22px 18px 26px}}.reset-password{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:100vh;padding:48px 20px}.reset-password__header{text-align:center;margin-bottom:52px}.reset-password__logo{font-family:var(--font-display);font-size:2.4rem;font-weight:800;color:var(--text-1);letter-spacing:-.5px;line-height:1}.reset-password__tagline{margin-top:14px;font-family:var(--font-mono);font-size:.72rem;font-weight:400;color:var(--text-3);letter-spacing:2.5px;text-transform:lowercase}.reset-password__card{width:420px;max-width:100%;padding:28px;background:var(--bg-surface);border:1px solid var(--border-subtle);border-radius:8px;display:flex;flex-direction:column;gap:18px}.reset-password__form{display:flex;flex-direction:column;gap:16px}.reset-password__label{display:flex;flex-direction:column;gap:6px;font-family:var(--font-display);font-size:.72rem;font-weight:600;color:var(--text-3);letter-spacing:1px;text-transform:uppercase}.reset-password__input{padding:11px 12px;background:var(--bg);border:1px solid var(--border-subtle);border-radius:4px;color:var(--text-1);font-family:var(--font-mono);font-size:.9rem;outline:none;transition:border-color .2s}.reset-password__input:focus{border-color:var(--amber)}.reset-password__input--error{border-color:var(--danger, #d05a5a)}.reset-password__error{font-family:var(--font-mono);font-size:.7rem;color:var(--danger, #d05a5a);text-transform:none;letter-spacing:0}.reset-password__body{margin:0;font-family:var(--font-mono);font-size:.85rem;color:var(--text-2);line-height:1.6}.reset-password__submit{width:100%;padding:13px 0;background:var(--amber);border:none;border-radius:4px;color:var(--bg);font-family:var(--font-display);font-size:.9rem;font-weight:700;letter-spacing:.5px;cursor:pointer;transition:background .2s,opacity .2s}.reset-password__submit:hover:not(:disabled){background:var(--amber-hover)}.reset-password__submit:disabled{opacity:.4;cursor:not-allowed}.reset-password__back{text-align:center;font-family:var(--font-display);font-size:.72rem;font-weight:600;color:var(--text-3);letter-spacing:1px;text-transform:uppercase;text-decoration:none;transition:color .2s}.reset-password__back:hover{color:var(--amber)}@media(max-width:480px){.reset-password__logo{font-size:1.8rem}.reset-password__card{padding:22px 18px}}.verify-email{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:100vh;padding:48px 20px}.verify-email__header{text-align:center;margin-bottom:52px}.verify-email__logo{font-family:var(--font-display);font-size:2.4rem;font-weight:800;color:var(--text-1);letter-spacing:-.5px;line-height:1}.verify-email__card{width:420px;max-width:100%;padding:28px;background:var(--bg-surface);border:1px solid var(--border-subtle);border-radius:8px;display:flex;flex-direction:column;gap:18px}.verify-email__body{margin:0;font-family:var(--font-mono);font-size:.85rem;color:var(--text-2);line-height:1.6;text-align:center}.verify-email__button{display:block;width:100%;padding:13px 0;background:var(--amber);border:none;border-radius:4px;color:var(--bg);font-family:var(--font-display);font-size:.9rem;font-weight:700;letter-spacing:.5px;text-align:center;text-decoration:none;cursor:pointer;transition:background .2s}.verify-email__button:hover{background:var(--amber-hover)}.tokenText{color:var(--amber)}:root{--bg: #111214;--bg-surface: #191b1f;--bg-elevated: #1f2227;--bg-hover: #252830;--border: #2a2d33;--border-subtle: #222529;--amber: #d4a012;--amber-hover: #e8b42a;--amber-muted: rgba(212, 160, 18, .1);--amber-border: rgba(212, 160, 18, .3);--error: #e5534b;--error-muted: rgba(229, 83, 75, .1);--error-light: #fc3a30b9;--text-1: #ede9e3;--text-2: #8a857d;--text-3: #5c5751;--text-4: #3a3631;--font-display: "Syne", sans-serif;--font-mono: "JetBrains Mono", monospace}*,*:before,*:after{margin:0;padding:0;box-sizing:border-box}html,body,#root{height:100%}body{font-family:var(--font-mono);background-color:var(--bg);color:var(--text-2);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}::selection{background:#d4a01233;color:var(--text-1)}
