:root{color-scheme:dark;--ink: #f5f0e5;--muted: #9ea89f;--muted-strong: #c2c9c2;--page: #0d120f;--panel: #151c17;--panel-raised: #1b241d;--line: rgba(238, 242, 232, .13);--line-strong: rgba(238, 242, 232, .24);--mint: #8bd3b4;--coral: #ff7b65;--amber: #f4b84f;--red: #ff6d6d;--font-body: "Avenir Next", "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", sans-serif;--font-display: "Arial Rounded MT Bold", "Avenir Next", "PingFang SC", sans-serif}*{box-sizing:border-box}html{min-width:320px;min-height:100%;background:var(--page)}body{margin:0;min-width:320px;min-height:100vh;min-height:100dvh;background:var(--page);color:var(--ink);font-family:var(--font-body);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}button,input{font:inherit}button{color:inherit;letter-spacing:0}button:focus-visible,input:focus-visible{outline:2px solid var(--mint);outline-offset:3px}button:disabled{cursor:not-allowed}img{display:block;max-width:100%}.app-shell{position:relative;min-height:100vh;min-height:100dvh;overflow:hidden;isolation:isolate}.app-shell:before{position:fixed;z-index:-2;inset:0;content:"";background-color:var(--page);background-image:linear-gradient(rgba(255,255,255,.022) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.022) 1px,transparent 1px);background-size:48px 48px;-webkit-mask-image:linear-gradient(to bottom,black,transparent 86%);mask-image:linear-gradient(to bottom,black,transparent 86%)}.shell-accent{position:fixed;z-index:20;top:0;right:0;left:0;height:3px;background:linear-gradient(90deg,var(--coral) 0 34%,var(--amber) 34% 67%,var(--mint) 67%)}.brand{display:inline-flex;align-items:center;gap:11px;min-width:0}.brand-mark{display:grid;width:40px;height:40px;place-items:center;border:1px solid var(--line-strong);background:#1a211b;color:var(--mint);font-family:var(--font-display);font-size:13px;font-weight:900;line-height:1}.brand-name{color:var(--ink);font-family:var(--font-display);font-size:17px;font-weight:900;white-space:nowrap}.landing{display:flex;width:min(1180px,calc(100% - 48px));min-height:100vh;min-height:100dvh;margin:0 auto;padding:28px 0 20px;flex-direction:column}.landing-header{display:flex;align-items:center;justify-content:space-between}.connection-pill{display:inline-flex;align-items:center;gap:7px;padding:8px 11px;border:1px solid var(--line);color:var(--muted);font-size:12px;font-weight:700}.connection-pill.is-online{border-color:#8bd3b447;color:var(--mint)}.connection-dot{width:6px;height:6px;border-radius:50%;background:currentColor}.connection-pill:not(.is-online) .connection-dot{animation:blink 1s ease-in-out infinite}.landing-hero{display:grid;margin:auto 0;padding:72px 0;grid-template-columns:minmax(0,1.45fr) minmax(340px,430px);align-items:center;gap:74px}.hero-copy{min-width:0}.eyebrow,.section-kicker{display:inline-flex;align-items:center;gap:8px;margin:0 0 18px;color:var(--mint);font-size:12px;font-weight:800;text-transform:uppercase}.hero-copy h1{margin:0;max-width:720px;color:var(--ink);font-family:var(--font-display);font-size:70px;font-weight:900;line-height:1.03}.hero-rule{margin:24px 0 0;color:var(--coral);font-size:18px;font-weight:800}.animal-parade{display:flex;margin-top:55px;padding:19px 0 21px;overflow:hidden;border-top:1px solid var(--line);border-bottom:1px solid var(--line);gap:13px}.parade-item{position:relative;display:grid;width:58px;height:58px;flex:0 0 58px;place-items:center;border:1px solid color-mix(in srgb,var(--parade-accent) 45%,transparent);background:#161d18}.parade-item img{width:38px;height:38px;object-fit:contain}.parade-item small{position:absolute;right:4px;bottom:2px;color:color-mix(in srgb,var(--parade-accent) 72%,white);font-size:8px;font-weight:800}.parade-item:nth-child(2n){transform:translateY(5px)}.parade-item:nth-child(3n){transform:translateY(-4px)}.entry-panel{position:relative;padding:30px;border:1px solid var(--line-strong);border-radius:8px;background:#141b16;box-shadow:0 24px 80px #00000047}.entry-panel:before{position:absolute;top:-1px;left:30px;width:88px;height:3px;content:"";background:var(--coral)}.entry-panel-heading{display:flex;align-items:flex-start;margin-bottom:28px;gap:15px}.entry-panel-heading h2{margin:0;font-family:var(--font-display);font-size:28px;font-weight:900}.entry-panel-heading p{margin:5px 0 0;color:var(--muted);font-size:13px}.panel-index{display:grid;width:32px;height:32px;flex:0 0 32px;place-items:center;border:1px solid var(--line);color:var(--amber);font-size:9px;font-weight:900}.field{display:grid;gap:8px}.field>span{color:var(--muted-strong);font-size:12px;font-weight:700}.field input{width:100%;height:50px;padding:0 15px;border:1px solid var(--line);border-radius:4px;background:#0f1511;color:var(--ink);font-size:15px}.field input::placeholder{color:#6e786f}.primary-button,.secondary-button,.ghost-button,.text-button,.icon-button{border:0;cursor:pointer}.primary-button,.secondary-button{display:inline-flex;min-height:50px;padding:0 18px;align-items:center;justify-content:center;border-radius:4px;gap:9px;font-weight:900;transition:transform .16s ease,background-color .16s ease,border-color .16s ease}.primary-button{background:var(--coral);color:#1f100d}.primary-button:hover:not(:disabled){transform:translateY(-1px);background:#ff947f}.primary-button:disabled{background:#373c36;color:#858d84}.secondary-button{border:1px solid var(--line-strong);background:transparent;color:var(--ink)}.secondary-button:hover:not(:disabled){border-color:var(--mint);color:var(--mint)}.secondary-button:disabled{color:#6a736a}.create-button{width:100%;margin-top:22px;justify-content:space-between}.button-icon{display:grid;width:28px;height:28px;place-items:center;border:1px solid rgba(31,16,13,.23)}.entry-divider{display:flex;margin:23px 0;align-items:center;color:#6f786f;font-size:10px;font-weight:800;gap:12px}.entry-divider:before,.entry-divider:after{height:1px;flex:1;content:"";background:var(--line)}.join-form{display:grid;grid-template-columns:minmax(0,1fr) 96px;align-items:end;gap:10px}.input-with-icon{position:relative}.input-with-icon>svg{position:absolute;top:50%;left:13px;color:var(--muted);transform:translateY(-50%)}.input-with-icon input{padding-left:40px;font-weight:800}.join-button{min-height:50px}.landing-footer{display:flex;padding-top:18px;align-items:center;justify-content:space-between;border-top:1px solid var(--line);color:#707a71;font-size:10px;font-weight:700}.game-page{width:min(1180px,calc(100% - 48px));min-height:100vh;min-height:100dvh;margin:0 auto;padding:24px 0 max(20px,env(safe-area-inset-bottom))}.game-topbar{display:flex;margin-bottom:24px;align-items:center;justify-content:space-between}.room-tools{display:flex;align-items:center;gap:8px}.room-code-button{display:flex;height:38px;padding:0 11px;align-items:center;border:1px solid var(--line);border-radius:4px;background:var(--panel);color:var(--muted);cursor:pointer;gap:8px}.room-code-button span{font-size:10px;font-weight:700}.room-code-button strong{color:var(--amber);font-size:12px}.room-code-button svg{color:var(--muted)}.icon-button{display:inline-grid;width:38px;height:38px;padding:0;place-items:center;border:1px solid var(--line);border-radius:4px;background:var(--panel);color:var(--muted-strong)}.icon-button:hover{border-color:var(--line-strong);color:var(--ink)}.table-strip{padding:22px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.table-heading,.selection-heading,.race-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:20px}.table-heading .section-kicker,.selection-heading .section-kicker,.race-heading .section-kicker{margin-bottom:8px}.table-heading h2,.selection-heading h2,.race-heading h1{margin:0;font-family:var(--font-display);font-size:24px;font-weight:900}.ghost-button,.text-button{display:inline-flex;padding:0;align-items:center;background:transparent;color:var(--muted-strong);font-size:12px;font-weight:800;gap:7px}.ghost-button:hover,.text-button:hover{color:var(--mint)}.player-rail{display:flex;margin-top:18px;padding-bottom:4px;overflow-x:auto;scrollbar-width:thin;gap:8px}.rail-player{display:flex;min-width:164px;padding:10px;align-items:center;border:1px solid var(--line);border-radius:4px;background:#ffffff04;gap:10px}.rail-player.is-offline{opacity:.48}.rail-avatar{display:grid;width:36px;height:36px;flex:0 0 36px;place-items:center;border:1px solid color-mix(in srgb,var(--avatar-accent, var(--line-strong)) 48%,transparent);border-radius:50%;background:var(--avatar-tint, #1c241e);color:var(--avatar-accent, var(--muted));font-size:13px;font-weight:900;overflow:hidden}.rail-avatar img{width:27px;height:27px;object-fit:contain}.rail-copy{display:grid;min-width:0;gap:2px}.rail-copy strong{display:inline-flex;align-items:center;overflow:hidden;font-size:12px;text-overflow:ellipsis;white-space:nowrap;gap:4px}.host-crown{flex:0 0 auto;color:var(--amber)}.rail-copy small{overflow:hidden;color:var(--muted);font-size:10px;text-overflow:ellipsis;white-space:nowrap}.rail-empty{border-style:dashed;opacity:.45}.selection-section{padding:30px 0 140px}.selection-count{display:flex;align-items:baseline;color:var(--muted);gap:4px}.selection-count strong{color:var(--mint);font-family:var(--font-display);font-size:34px;line-height:1}.selection-count span{font-size:13px;font-weight:700}.animal-grid{display:grid;margin-top:23px;grid-template-columns:repeat(6,minmax(0,1fr));gap:10px}.duration-row{display:flex;margin-top:20px;padding:10px 0;align-items:center;justify-content:space-between;border-top:1px solid var(--line);border-bottom:1px solid var(--line);gap:16px}.duration-label{display:inline-flex;align-items:center;color:var(--muted-strong);font-size:11px;font-weight:800;gap:7px}.duration-label small{color:var(--muted);font-size:9px;font-weight:600}.duration-options{display:flex;padding:3px;border:1px solid var(--line);border-radius:4px;background:#0f1511;gap:2px}.duration-options button{min-width:52px;height:30px;padding:0 9px;border:0;border-radius:2px;background:transparent;color:var(--muted);cursor:pointer;font-size:10px;font-weight:900}.duration-options button:hover:not(:disabled){color:var(--ink)}.duration-options button.is-active{background:var(--mint);color:#102018}.duration-options button:disabled{cursor:default}.animal-card{position:relative;display:flex;min-width:0;min-height:184px;padding:14px;overflow:hidden;flex-direction:column;align-items:flex-start;border:1px solid var(--line);border-radius:8px;background:#151c17;cursor:pointer;text-align:left;animation:card-in .36s both;animation-delay:var(--card-delay);transition:transform .18s ease,border-color .18s ease,background-color .18s ease}.animal-card:after{position:absolute;right:-35px;bottom:-42px;width:108px;height:108px;content:"";border:22px solid color-mix(in srgb,var(--animal-accent) 6%,transparent);border-radius:50%}.animal-card:hover:not(:disabled){z-index:1;border-color:color-mix(in srgb,var(--animal-accent) 55%,transparent);background:var(--animal-tint);transform:translateY(-3px)}.animal-card.is-mine{border-color:var(--animal-accent);background:var(--animal-tint);box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--animal-accent) 40%,transparent)}.animal-card.is-taken{cursor:default;opacity:.58}.animal-card.is-taken .animal-portrait img{filter:grayscale(.65)}.animal-order{position:absolute;top:12px;right:12px;color:color-mix(in srgb,var(--animal-accent) 65%,#7c837d);font-size:9px;font-weight:900}.animal-portrait{display:grid;width:82px;height:82px;margin:2px auto 14px;place-items:center;border-radius:50%;background:var(--animal-tint)}.animal-portrait img{width:66px;height:66px;object-fit:contain}.animal-copy{position:relative;z-index:1;display:grid;width:100%;min-width:0;gap:4px}.animal-copy strong{font-family:var(--font-display);font-size:18px;font-weight:900}.animal-copy small{overflow:hidden;color:var(--muted);font-size:10px;text-overflow:ellipsis;white-space:nowrap}.selected-check{position:absolute;z-index:2;right:10px;bottom:10px;display:grid;width:24px;height:24px;place-items:center;border-radius:50%;background:var(--animal-accent);color:#152019}.owner-badge{position:absolute;z-index:2;right:10px;bottom:10px;max-width:68px;padding:4px 6px;overflow:hidden;border:1px solid color-mix(in srgb,var(--animal-accent) 36%,transparent);background:#111713;color:var(--animal-accent);font-size:8px;font-weight:800;text-overflow:ellipsis;white-space:nowrap}.start-strip{position:sticky;z-index:10;bottom:max(14px,env(safe-area-inset-bottom));display:grid;margin-top:-106px;padding:14px;border:1px solid var(--line-strong);border-radius:8px;background:#141b16f5;box-shadow:0 22px 50px #00000061;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);grid-template-columns:minmax(200px,1fr) auto minmax(180px,220px);align-items:center;gap:18px}.start-summary{display:flex;min-width:0;align-items:center;gap:12px}.chosen-portrait{display:grid;width:54px;height:54px;flex:0 0 54px;place-items:center;border:1px solid color-mix(in srgb,var(--animal-accent) 55%,transparent);background:var(--animal-tint)}.chosen-portrait img{width:41px;height:41px;object-fit:contain}.empty-portrait{border-color:var(--line);background:#111712;color:var(--muted)}.start-summary>span:last-child{display:grid;min-width:0;gap:2px}.start-summary small{color:var(--muted);font-size:9px;font-weight:800}.start-summary strong{font-size:15px}.start-summary em{overflow:hidden;color:var(--muted);font-size:10px;font-style:normal;text-overflow:ellipsis;white-space:nowrap}.ready-copy{color:var(--muted);font-size:11px;font-weight:700;text-align:center}.start-button{width:100%}.race-screen{min-height:calc(100vh - 130px)}.race-heading{padding:9px 0 21px}.race-clock strong{color:var(--amber);font-family:var(--font-display);font-size:38px;line-height:1}.race-board{position:relative;overflow:hidden;border:1px solid var(--line-strong);border-radius:8px;background:#121813}.race-board-top{display:grid;padding:10px 14px;border-bottom:1px solid var(--line);color:#768077;font-size:9px;font-weight:800;grid-template-columns:180px minmax(0,1fr) 44px;gap:14px}.race-board-top span:nth-child(2){text-align:center}.race-board-top span:last-child{text-align:right}.lanes{display:grid}.race-lane{position:relative;display:grid;min-height:72px;padding:8px 14px;align-items:center;border-bottom:1px solid rgba(238,242,232,.075);grid-template-columns:180px minmax(0,1fr) 44px;gap:14px}.race-lane:nth-child(odd){background:#ffffff04}.race-lane.is-finished{background:color-mix(in srgb,var(--lane-tint) 34%,#121813)}.race-lane.is-disconnected .lane-identity{opacity:.5}.lane-identity{display:flex;min-width:0;align-items:center;gap:9px}.lane-animal{display:grid;width:36px;height:36px;flex:0 0 36px;place-items:center;border:1px solid color-mix(in srgb,var(--lane-accent) 40%,transparent);border-radius:50%;background:var(--lane-tint)}.lane-animal img{width:28px;height:28px;object-fit:contain}.lane-name{display:grid;min-width:0;gap:1px}.lane-name strong{overflow:hidden;font-size:12px;text-overflow:ellipsis;white-space:nowrap}.lane-name small{overflow:hidden;color:var(--muted);font-size:9px;text-overflow:ellipsis;white-space:nowrap}.lane-track{position:relative;height:44px;min-width:0;overflow:hidden}.track-base,.track-progress{position:absolute;top:50%;left:8px;height:4px;transform:translateY(-50%)}.track-base{right:8px;background-image:repeating-linear-gradient(90deg,rgba(235,241,234,.15) 0 7px,transparent 7px 14px)}.track-progress{max-width:calc(100% - 16px);background:color-mix(in srgb,var(--lane-accent) 74%,white);box-shadow:0 0 13px color-mix(in srgb,var(--lane-accent) 36%,transparent)}.track-start,.track-finish{position:absolute;z-index:0;top:50%;color:#5f6860;font-size:8px;font-weight:900;transform:translateY(-50%)}.track-start{left:-1px}.track-finish{right:1px;display:grid;width:18px;height:22px;place-items:center;border-left:1px solid rgba(255,255,255,.18);background-image:linear-gradient(45deg,rgba(255,255,255,.11) 25%,transparent 25% 75%,rgba(255,255,255,.11) 75%),linear-gradient(45deg,rgba(255,255,255,.11) 25%,transparent 25% 75%,rgba(255,255,255,.11) 75%);background-position:0 0,5px 5px;background-size:10px 10px}.lane-runner{position:absolute;z-index:2;top:50%;display:grid;width:44px;height:44px;place-items:center;border:2px solid var(--lane-accent);border-radius:50%;background:var(--lane-tint);box-shadow:0 4px 14px #00000059;transform:translateY(-50%);transition:left .12s linear}.lane-runner img{width:31px;height:31px;object-fit:contain;animation:runner-bob .52s ease-in-out infinite alternate}.runner-dust{position:absolute;right:75%;bottom:5px;width:18px;height:3px;background:color-mix(in srgb,var(--lane-accent) 30%,transparent);filter:blur(2px);animation:dust .52s linear infinite}.lane-rank{display:flex;justify-content:flex-end}.lane-rank>span{display:grid;width:29px;height:29px;place-items:center;border:1px solid var(--lane-accent);border-radius:50%;color:var(--lane-accent);font-family:var(--font-display);font-size:13px;font-weight:900}.lane-rank small{color:var(--muted);font-size:9px;font-weight:800}.countdown-overlay{position:absolute;z-index:8;inset:0;display:grid;place-content:center;background:#0a0e0be0;text-align:center;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.countdown-overlay span{color:var(--coral);font-family:var(--font-display);font-size:120px;font-weight:900;line-height:.9;animation:countdown-pop .7s ease-out infinite}.countdown-overlay small{margin-top:14px;color:var(--muted-strong);font-size:12px;font-weight:800}.game-footer{display:flex;padding-top:18px;align-items:center;justify-content:space-between;border-top:1px solid var(--line);color:#737d74;font-size:10px}.game-footer>span,.game-footer .text-button{display:inline-flex;align-items:center;gap:6px}.result-backdrop{position:fixed;z-index:50;inset:0;display:grid;padding:24px;overflow-y:auto;place-items:center;background:#070a08d6;-webkit-backdrop-filter:blur(13px);backdrop-filter:blur(13px)}.result-panel{position:relative;width:min(720px,100%);max-height:calc(100vh - 48px);padding:28px;overflow-y:auto;border:1px solid var(--line-strong);border-radius:8px;background:#151c17;box-shadow:0 30px 100px #00000085;animation:result-in .28s ease-out both}.result-panel:before{position:absolute;top:0;right:28px;left:28px;height:3px;content:"";background:linear-gradient(90deg,var(--amber),var(--coral),var(--mint))}.result-close{position:absolute;z-index:2;top:16px;right:16px}.result-head .section-kicker{margin-bottom:6px}.result-head h2{margin:0;font-family:var(--font-display);font-size:32px;font-weight:900}.podium{display:grid;margin:28px 0 20px;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.podium-place{position:relative;display:grid;min-width:0;min-height:178px;padding:16px 10px 13px;place-items:center;border:1px solid var(--line);border-radius:6px;background:#111713;text-align:center}.place-1{border-color:#f4b84f94;background:#211c12}.place-2{border-color:#b7cdc357}.place-3{border-color:#ff7b6559}.podium-rank{position:absolute;top:8px;left:9px;color:var(--amber);font-size:10px;font-weight:900}.podium-animal{display:grid;width:64px;height:64px;place-items:center;border:1px solid color-mix(in srgb,var(--podium-accent) 50%,transparent);border-radius:50%;background:var(--podium-tint)}.podium-animal img{width:50px;height:50px;object-fit:contain}.podium-place strong{width:100%;margin-top:8px;overflow:hidden;font-size:13px;text-overflow:ellipsis;white-space:nowrap}.podium-place small{width:100%;overflow:hidden;color:var(--muted);font-size:9px;text-overflow:ellipsis;white-space:nowrap}.podium-animal-name{margin-top:3px;color:var(--amber);font-size:9px;font-weight:800}.loser-spotlight{display:flex;padding:15px;align-items:center;border:1px solid rgba(255,109,109,.34);border-radius:6px;background:#241616;gap:14px}.loser-spotlight.is-me{border-color:var(--red);box-shadow:inset 0 0 0 1px #ff6d6d40}.loser-animal{display:grid;width:64px;height:64px;flex:0 0 64px;place-items:center;border:1px solid color-mix(in srgb,var(--loser-accent) 58%,transparent);border-radius:50%;background:var(--loser-tint)}.loser-animal img{width:50px;height:50px;object-fit:contain}.loser-copy{display:grid;min-width:0;gap:3px}.loser-copy>span{display:inline-flex;align-items:center;color:var(--red);font-size:9px;font-weight:900;gap:5px}.loser-copy strong{font-family:var(--font-display);font-size:22px;font-weight:900}.loser-copy small{overflow:hidden;color:var(--muted);font-size:10px;text-overflow:ellipsis;white-space:nowrap}.result-list{display:grid;max-height:230px;margin-top:16px;overflow-y:auto;border-top:1px solid var(--line)}.result-row{display:grid;min-height:48px;padding:7px 5px;align-items:center;border-bottom:1px solid var(--line);grid-template-columns:32px 30px minmax(0,1fr) auto 26px;gap:8px}.result-row img{width:27px;height:27px;object-fit:contain}.result-rank{color:var(--muted);font-size:9px;font-weight:900}.result-name{display:grid;min-width:0}.result-name strong{overflow:hidden;font-size:11px;text-overflow:ellipsis;white-space:nowrap}.result-name small{overflow:hidden;color:var(--muted);font-size:9px;text-overflow:ellipsis;white-space:nowrap}.result-animal-title{color:var(--muted-strong);font-size:9px;font-weight:700}.drink-tag{display:grid;width:21px;height:21px;place-items:center;border-radius:50%;background:var(--red);color:#24100e;font-size:9px;font-weight:900}.result-actions{display:grid;margin-top:18px;grid-template-columns:1fr 1fr;gap:10px}.toast{position:fixed;z-index:80;right:22px;bottom:max(22px,env(safe-area-inset-bottom));display:flex;width:min(390px,calc(100% - 44px));min-height:50px;padding:9px 9px 9px 15px;align-items:center;justify-content:space-between;border:1px solid rgba(244,184,79,.5);border-radius:6px;background:#241e12;color:#f7dfad;box-shadow:0 16px 50px #0000006b;font-size:12px;font-weight:700;animation:toast-in .22s ease-out both;gap:10px}.toast-close{width:30px;height:30px;flex:0 0 30px;border:0;background:transparent}@keyframes blink{0%,to{opacity:.4}50%{opacity:1}}@keyframes card-in{0%{opacity:0;transform:translateY(9px)}to{opacity:1;transform:translateY(0)}}@keyframes runner-bob{0%{transform:translateY(1px) rotate(-2deg)}to{transform:translateY(-3px) rotate(2deg)}}@keyframes dust{0%{opacity:.8;transform:translate(0) scaleX(.5)}to{opacity:0;transform:translate(-13px) scaleX(1.2)}}@keyframes countdown-pop{0%{opacity:.55;transform:scale(.85)}50%{opacity:1;transform:scale(1)}to{opacity:.75;transform:scale(1.04)}}@keyframes result-in{0%{opacity:0;transform:translateY(12px) scale(.99)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes toast-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@media(max-width:980px){.landing-hero{gap:38px;grid-template-columns:minmax(0,1fr) 370px}.hero-copy h1{font-size:58px}.animal-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.start-strip{grid-template-columns:minmax(180px,1fr) minmax(170px,210px)}.ready-copy{display:none}}@media(max-width:760px){.landing,.game-page{width:calc(100% - 28px)}.landing{padding-top:max(20px,env(safe-area-inset-top))}.landing-hero{display:flex;padding:42px 0 34px;flex-direction:column;align-items:stretch;gap:34px}.hero-copy h1{font-size:48px;line-height:1.05}.hero-rule{margin-top:16px;font-size:16px}.animal-parade{display:grid;margin-top:30px;overflow:visible;grid-template-columns:repeat(6,1fr);gap:7px}.parade-item{width:100%;height:50px;flex:auto}.parade-item:nth-child(n){transform:none}.parade-item img{width:34px;height:34px}.entry-panel{padding:23px}.entry-panel:before{left:23px}.landing-footer{margin-top:auto}.game-page{padding-top:max(17px,env(safe-area-inset-top))}.game-topbar{margin-bottom:16px}.brand-mark{width:36px;height:36px;font-size:12px}.brand-name{font-size:15px}.room-code-button span{display:none}.table-heading h2,.selection-heading h2{font-size:20px}.selection-section{padding-top:24px;padding-bottom:130px}.duration-row{align-items:flex-start;flex-direction:column;gap:9px}.duration-options{width:100%}.duration-options button{min-width:0;flex:1}.animal-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:7px}.animal-card{min-height:146px;padding:11px}.animal-portrait{width:63px;height:63px;margin-bottom:10px}.animal-portrait img{width:51px;height:51px}.animal-copy strong{font-size:15px}.animal-copy small{font-size:9px}.owner-badge{display:none}.selected-check{right:8px;bottom:8px;width:21px;height:21px}.start-strip{bottom:max(8px,env(safe-area-inset-bottom));margin-top:-116px;padding:10px;grid-template-columns:minmax(0,1fr) minmax(142px,.95fr);gap:10px}.chosen-portrait{width:45px;height:45px;flex-basis:45px}.chosen-portrait img{width:35px;height:35px}.start-summary strong{font-size:13px}.start-button{padding-inline:11px;font-size:12px}.start-button>svg:last-child{display:none}.race-heading h1{font-size:27px}.race-clock strong{font-size:31px}.race-board-top{grid-template-columns:120px minmax(0,1fr) 34px;gap:8px}.race-board-top span:first-child{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.race-lane{min-height:64px;padding:7px 9px;grid-template-columns:120px minmax(0,1fr) 34px;gap:8px}.lane-animal{width:29px;height:29px;flex-basis:29px}.lane-animal img{width:23px;height:23px}.lane-name strong{font-size:10px}.lane-name small{font-size:8.5px}.lane-runner{width:34px;height:34px}.lane-runner img{width:25px;height:25px}.lane-rank>span{width:25px;height:25px;font-size:11px}.race-note small{display:none}.game-footer{padding-bottom:8px}.result-backdrop{padding:10px;place-items:end center}.result-panel{width:100%;max-height:calc(100dvh - 20px);padding:24px 16px max(18px,env(safe-area-inset-bottom))}.result-panel:before{right:16px;left:16px}.result-close{top:11px;right:10px}.result-head h2{padding-right:40px;font-size:26px}.podium{margin-top:20px;gap:6px}.podium-place{min-height:150px;padding:13px 7px 10px}.podium-animal{width:53px;height:53px}.podium-animal img{width:40px;height:40px}.loser-spotlight{padding:12px}.loser-animal{width:54px;height:54px;flex-basis:54px}.loser-animal img{width:42px;height:42px}.loser-copy strong{font-size:18px}.toast{right:14px;bottom:max(14px,env(safe-area-inset-bottom));width:calc(100% - 28px)}}@media(max-width:420px){.hero-copy h1{font-size:42px}.eyebrow{font-size:11px}.animal-grid{gap:5px}.animal-card{min-height:138px;padding:9px}.animal-portrait{width:58px;height:58px}.animal-portrait img{width:47px;height:47px}.start-strip{grid-template-columns:minmax(0,1fr) 134px}.start-summary{gap:8px}.start-summary em{max-width:94px}.race-heading{align-items:center}.race-heading h1{font-size:23px}.race-clock small{display:none}.race-lane,.race-board-top{grid-template-columns:108px minmax(0,1fr) 31px;gap:5px}.lane-name strong{font-size:9px}.lane-name small{font-size:7px}.podium-place small{font-size:8px}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;animation-duration:1ms!important;animation-iteration-count:1!important;transition-duration:1ms!important}}.race-screen{display:flex;min-height:calc(100vh - 130px);flex-direction:column}.race-heading{padding:7px 0 15px}.race-heading h1{font-size:34px}.race-clock{display:flex;align-items:baseline;color:var(--muted);gap:4px}.race-clock small{margin-right:6px;font-size:10px;font-weight:800}.race-clock strong{color:var(--amber);font-family:var(--font-display);font-size:40px;line-height:1}.race-clock.is-urgent strong{color:var(--red);animation:race-timer-pulse .76s ease-in-out infinite}.race-clock span{font-size:12px;font-weight:800}.race-progress-bar{height:3px;margin-bottom:12px;overflow:hidden;background:#ffffff12}.race-progress-bar>span{display:block;height:100%;background:var(--mint);transition:width .12s linear}.race-progress-bar.is-urgent>span{background:var(--red)}.race-stage{position:relative;display:flex;min-height:474px;overflow:hidden;flex:1;flex-direction:column;border:1px solid var(--line-strong);border-radius:8px;background:#0b120e;box-shadow:0 28px 70px #00000052;isolation:isolate;transition:border-color .22s ease,box-shadow .22s ease}.race-stage.is-live{border-color:#8bd3b480;box-shadow:0 28px 80px #00000061,inset 0 0 0 1px #8bd3b41a}.stadium-backdrop{position:relative;height:88px;flex:0 0 88px;overflow:hidden;border-bottom:1px solid rgba(255,255,255,.1);background:linear-gradient(180deg,#1c2920 0 39%,#111a14 39% 100%)}.stadium-backdrop:before{position:absolute;right:13px;bottom:8px;color:#f5f0e50e;content:"NIGHT RUN";font-family:var(--font-display);font-size:35px;font-weight:900;line-height:1}.stadium-backdrop:after{position:absolute;right:0;bottom:39px;left:0;height:1px;content:"";background:#ffffff14}.stadium-light{position:absolute;top:-14px;width:5px;height:58px;transform:skew(-8deg)}.stadium-light:after{position:absolute;bottom:0;width:44px;height:8px;content:"";background:currentColor;opacity:.16}.light-coral{left:13%;background:var(--coral);color:var(--coral)}.light-amber{left:44%;height:46px;background:var(--amber);color:var(--amber)}.light-mint{right:13%;background:var(--mint);color:var(--mint)}.crowd-row{position:absolute;left:0;width:100%;height:12px;background-image:radial-gradient(circle,rgba(236,241,233,.25) 1.2px,transparent 1.5px);background-size:15px 12px;opacity:.42}.crowd-row-one{bottom:18px;transform:translate(3px)}.crowd-row-two{bottom:5px;background-position:6px 0;opacity:.25}.crowd-row-three{bottom:32px;background-position:10px 0;opacity:.16}.race-stage-hud{position:absolute;z-index:8;top:10px;right:12px;left:12px;display:flex;align-items:flex-start;justify-content:space-between;pointer-events:none;gap:10px}.live-ribbon{display:inline-flex;height:27px;padding:0 9px;align-items:center;border:1px solid rgba(255,109,109,.42);border-radius:3px;background:#23100fe6;color:var(--red);font-size:8px;font-weight:900;gap:5px}.is-live .live-ribbon svg{animation:race-live-beat .9s ease-in-out infinite}.standing-pair{display:flex;min-width:0;justify-content:flex-end;gap:6px}.standing-chip{display:flex;max-width:176px;height:31px;padding:4px 7px 4px 5px;align-items:center;border:1px solid var(--line);border-radius:4px;background:#0b110de6;gap:5px}.standing-chip>svg{flex:0 0 auto}.standing-leader{border-color:#8bd3b447;color:var(--mint)}.standing-trailer{border-color:#ff6d6d3d;color:var(--red)}.standing-chip img{width:22px;height:22px;flex:0 0 22px;object-fit:contain}.standing-chip>span{display:grid;min-width:0;grid-template-columns:auto minmax(0,auto);align-items:center;column-gap:4px}.standing-chip small{color:currentColor;font-size:7px;font-weight:900}.standing-chip strong{overflow:hidden;color:var(--ink);font-size:9px;text-overflow:ellipsis;white-space:nowrap}.standing-chip em{overflow:hidden;grid-column:1 / -1;color:var(--muted);font-size:7px;font-style:normal;text-overflow:ellipsis;white-space:nowrap}.stadium-track{position:relative;display:flex;min-height:0;padding-top:27px;flex:1;flex-direction:column;background-color:#111b15;background-image:linear-gradient(90deg,rgba(255,255,255,.018) 1px,transparent 1px),linear-gradient(rgba(255,255,255,.018) 1px,transparent 1px);background-size:64px 22px;transition:opacity .18s ease}.is-counting .stadium-track{opacity:.68}.is-live .stadium-track{animation:race-start-jolt .42s ease-out 1}.start-gate,.finish-gate{position:absolute;z-index:7;top:7px;display:inline-flex;align-items:center;color:#747f76;font-size:7px;font-weight:900;gap:4px}.start-gate{left:8px}.finish-gate{right:7px}.lanes{position:relative;z-index:2;display:flex;min-height:0;flex:1;flex-direction:column}.race-lane{position:relative;min-height:46px;overflow:visible;flex:1 0 46px;border-bottom:1px dashed rgba(235,241,234,.095);background:#ffffff02}.race-lane:nth-child(odd){background:#ffffff07}.race-lane:last-child{border-bottom:0}.race-lane.is-finished{background:color-mix(in srgb,var(--lane-tint) 28%,#111b15)}.race-lane.is-disconnected{opacity:.56}.lane-rail{position:absolute;top:50%;right:28px;left:28px;height:1px;background-image:repeating-linear-gradient(90deg,rgba(238,242,232,.2) 0 10px,transparent 10px 20px);background-size:20px 1px;transform:translateY(-50%)}.lane-runway{position:absolute;inset:0 43px 0 36px}.lane-marker{position:absolute;top:14%;bottom:14%;left:0;width:1px;background:color-mix(in srgb,var(--lane-accent) 42%,transparent)}.lane-finish-line{position:absolute;z-index:3;top:3px;right:20px;bottom:3px;width:14px;opacity:.42;background-color:#dce4dd;background-image:linear-gradient(45deg,#152019 25%,transparent 25% 75%,#152019 75%),linear-gradient(45deg,#152019 25%,transparent 25% 75%,#152019 75%);background-position:0 0,4px 4px;background-size:8px 8px}.runner-anchor{position:absolute;z-index:5;top:50%;width:34px;height:34px;transform:translate3d(0,-50%,0);transition:left 70ms linear;will-change:left;backface-visibility:hidden}.runner-rig{position:absolute;inset:0;transform-origin:50% 100%;transition:transform 90ms ease;backface-visibility:hidden}.runner-rig:after{position:absolute;z-index:-2;bottom:-6px;left:2px;width:31px;height:7px;content:"";border-radius:50%;background:#0000006b;filter:blur(2px)}.runner-rig.is-bursting{transform:translate3d(0,-1px,0)}.runner-body{position:absolute;inset:4px 0 0;transform-origin:50% 92%}.is-live .runner-body{animation:runner-gallop .39s ease-in-out infinite}.runner-body:before{position:absolute;z-index:1;bottom:4px;left:0;width:32px;height:17px;content:"";border:1px solid color-mix(in srgb,var(--lane-accent) 68%,transparent);border-radius:52% 58% 44% 48%;background:color-mix(in srgb,var(--lane-accent) 20%,#303a33);box-shadow:inset 0 -5px #0000002e,0 0 8px color-mix(in srgb,var(--lane-accent) 14%,transparent)}.animal-head{position:absolute;z-index:3;top:-7px;right:-1px;left:auto;display:grid;width:32px;height:32px;place-items:center;backface-visibility:hidden}.animal-head img{width:32px;height:32px;object-fit:contain;-webkit-user-select:none;user-select:none;backface-visibility:hidden}.is-live .animal-head{animation:runner-head-pump .39s ease-in-out infinite}.runner-leg{position:absolute;z-index:0;bottom:-6px;width:4px;height:13px;border-radius:2px;background:color-mix(in srgb,var(--lane-accent) 65%,#3f4841);transform-origin:50% 0}.runner-leg:after{position:absolute;bottom:-1px;left:-1px;width:6px;height:2px;content:"";border-radius:2px;background:inherit}.runner-leg-front-one{left:24px}.runner-leg-front-two{left:19px}.runner-leg-back-one{left:11px}.runner-leg-back-two{left:6px}.is-live .runner-leg-front{animation:runner-leg-front .32s linear infinite}.is-live .runner-leg-back{animation:runner-leg-back .32s linear infinite}.is-live .runner-leg-front-two,.is-live .runner-leg-back-two{animation-delay:-.16s}.runner-tail{position:absolute;z-index:0;bottom:8px;left:-5px;width:10px;height:3px;border-radius:3px;background:color-mix(in srgb,var(--lane-accent) 55%,#4a534c);transform-origin:100% 50%;transform:rotate(18deg)}.is-live .runner-tail{animation:runner-tail-swish .39s ease-in-out infinite alternate}.runner-identity{position:absolute;z-index:7;top:50%;left:39px;display:flex;min-width:108px;height:26px;padding:3px 6px 3px 4px;align-items:center;border:1px solid color-mix(in srgb,var(--lane-accent) 34%,var(--line));border-radius:3px;background:#0a100cf0;box-shadow:0 4px 13px #0000003d;pointer-events:none;transform:translate3d(0,-50%,0);backface-visibility:hidden;gap:5px}.tag-on-left .runner-identity{right:39px;left:auto}.runner-identity.is-offline{filter:grayscale(.7)}.runner-place{display:grid;width:17px;height:17px;flex:0 0 17px;place-items:center;border:1px solid color-mix(in srgb,var(--lane-accent) 58%,transparent);border-radius:50%;color:var(--lane-accent);font-size:7px;font-weight:900}.runner-name{display:flex;min-width:0;align-items:center;gap:5px}.runner-name strong{display:inline-flex;max-width:82px;overflow:hidden;color:var(--ink);font-size:9px;align-items:center;text-overflow:ellipsis;white-space:nowrap;gap:3px}.runner-name strong b{color:var(--lane-accent);font-size:6px;font-weight:900}.runner-name small{max-width:75px;overflow:hidden;color:var(--muted);font-size:7px;font-weight:700;text-overflow:ellipsis;white-space:nowrap}.runner-boost-icon{flex:0 0 auto;color:var(--amber);animation:race-boost-flash .3s ease-in-out infinite alternate}.speed-trails{position:absolute;z-index:-1;top:11px;right:29px;width:27px;height:15px;opacity:0}.is-bursting .speed-trails{opacity:1}.speed-trails i{position:absolute;right:0;height:2px;border-radius:3px;background:color-mix(in srgb,var(--lane-accent) 72%,white);animation:race-speed-streak .36s ease-out infinite}.speed-trails i:nth-child(1){top:0;width:23px}.speed-trails i:nth-child(2){top:6px;width:16px;animation-delay:80ms}.speed-trails i:nth-child(3){top:12px;width:20px;animation-delay:.15s}.runner-dust{position:absolute;z-index:-1;right:25px;bottom:-4px;width:22px;height:15px}.has-finished .speed-trails,.has-finished .runner-dust{display:none}.runner-dust i{position:absolute;right:0;bottom:0;width:5px;height:5px;border-radius:50%;background:color-mix(in srgb,var(--lane-accent) 55%,#b4b9b1);opacity:0;animation:race-dust-puff .56s ease-out infinite}.runner-dust i:nth-child(2){right:6px;bottom:3px;width:4px;height:4px;animation-delay:90ms}.runner-dust i:nth-child(3){right:12px;bottom:0;width:6px;height:6px;animation-delay:.18s}.runner-dust i:nth-child(4){right:3px;bottom:7px;width:3px;height:3px;animation-delay:.28s}.has-finished .runner-body,.has-finished .animal-head,.has-finished .runner-leg,.has-finished .runner-tail{animation:none}.has-finished .animal-head{transform:rotate(-7deg) translateY(-2px)}.finish-burst{position:absolute;z-index:-1;inset:1px;border:2px solid var(--lane-accent);animation:race-finish-burst .58s ease-out both}.countdown-overlay{position:absolute;z-index:20;inset:0;display:flex;align-items:center;justify-content:center;flex-direction:column;background:#070c09f0;text-align:center}.countdown-overlay span{color:var(--coral);font-family:var(--font-display);font-size:128px;font-weight:900;line-height:.82;text-shadow:0 0 30px rgba(255,123,101,.22);animation:race-countdown-in .38s cubic-bezier(.2,.9,.25,1) both}.countdown-overlay span.go-signal{color:var(--mint);font-size:104px;text-shadow:0 0 34px rgba(139,211,180,.3)}.countdown-overlay small{margin-top:19px;color:var(--muted-strong);font-size:11px;font-weight:800}.start-lights{display:flex;margin-bottom:25px;gap:9px}.start-lights i{width:34px;height:7px;border:1px solid rgba(255,255,255,.14);background:#232b25}.start-lights i.is-on{border-color:#ff6d6db8;background:var(--red);box-shadow:0 0 14px #ff6d6d80}.race-note{display:flex;padding:17px 4px;align-items:center;color:var(--red);font-size:12px;font-weight:800;gap:8px}.race-note small{margin-left:auto;color:var(--muted);font-size:10px;font-weight:600}.race-live-dot{width:5px;height:5px;margin-left:2px;border-radius:50%;background:var(--mint);animation:blink 1.2s ease-in-out infinite}@keyframes runner-gallop{0%,to{transform:translateY(0) rotate(-1.5deg)}50%{transform:translateY(-4px) rotate(1.5deg)}}@keyframes runner-head-pump{0%,to{transform:translateY(0) rotate(-1deg)}50%{transform:translateY(-1px) rotate(2deg)}}@keyframes runner-leg-front{0%,to{transform:rotate(38deg)}50%{transform:rotate(-38deg)}}@keyframes runner-leg-back{0%,to{transform:rotate(-38deg)}50%{transform:rotate(38deg)}}@keyframes runner-tail-swish{0%{transform:rotate(5deg)}to{transform:rotate(24deg)}}@keyframes lane-rush{0%{background-position:0 0}to{background-position:-20px 0}}@keyframes race-dust-puff{0%{opacity:0;transform:translate(0) scale(.45)}28%{opacity:.8}to{opacity:0;transform:translate(-16px,-11px) scale(1.25)}}@keyframes race-speed-streak{0%{opacity:0;transform:translate(8px) scaleX(.3)}35%{opacity:1}to{opacity:0;transform:translate(-24px) scaleX(1.15)}}@keyframes race-finish-burst{0%{opacity:1;transform:scale(.55)}to{opacity:0;transform:scale(1.8)}}@keyframes race-start-jolt{0%{transform:translate3d(5px,0,0)}25%{transform:translate3d(-4px,0,0)}55%{transform:translate3d(2px,0,0)}to{transform:translateZ(0)}}@keyframes race-countdown-in{0%{opacity:0;transform:scale(.82)}65%{opacity:1;transform:scale(1.035)}to{opacity:1;transform:scale(1)}}@keyframes race-timer-pulse{0%,to{transform:scale(1)}50%{transform:scale(1.08)}}@keyframes race-live-beat{0%,to{opacity:.65}50%{opacity:1}}@keyframes race-boost-flash{0%{opacity:.55;transform:scale(.9)}to{opacity:1;transform:scale(1.08)}}@media(max-width:760px){.race-heading{padding-top:5px;padding-bottom:12px}.race-heading h1{font-size:25px}.race-clock strong{font-size:32px}.race-progress-bar{margin-bottom:9px}.stadium-backdrop{height:72px;flex-basis:72px}.stadium-backdrop:before{font-size:26px}.race-stage-hud{top:7px;right:7px;left:7px;gap:5px}.live-ribbon{height:24px;padding-inline:7px;font-size:7px}.standing-pair{gap:4px}.standing-chip{width:96px;max-width:96px;height:27px;padding:3px 5px;gap:3px}.standing-chip>svg{display:none}.standing-chip img{width:19px;height:19px;flex-basis:19px}.standing-chip>span{display:grid;grid-template-columns:minmax(0,1fr)}.standing-chip small{display:none}.standing-chip strong{font-size:8px}.standing-chip em{font-size:6px}.stadium-track{min-height:350px;padding-top:24px}.start-gate,.finish-gate{top:6px;font-size:6px}.race-lane{min-height:42px;height:auto;flex-basis:42px}.lane-runway{right:38px;left:29px}.lane-finish-line{right:16px;width:12px}.runner-anchor{width:32px;height:32px}.runner-anchor{transition:left 70ms linear}.animal-head,.animal-head img{width:30px;height:30px}.runner-body:before{width:27px;height:14px}.runner-leg{bottom:-4px;height:8px}.runner-leg-front{left:18px}.runner-leg-back{left:10px}.runner-identity{left:35px;min-width:100px;height:23px;padding:2px 5px 2px 3px;gap:4px}.tag-on-left .runner-identity{right:35px}.runner-place{width:15px;height:15px;flex-basis:15px;font-size:6px}.runner-name{gap:4px}.runner-name strong{max-width:55px;font-size:8px}.runner-name small{max-width:65px;font-size:6.5px}.runner-boost-icon{width:10px;height:10px}.speed-trails{right:26px}.runner-dust{right:22px}.countdown-overlay span{font-size:98px}.countdown-overlay span.go-signal{font-size:82px}.countdown-overlay small{margin-top:14px;font-size:10px}.start-lights{margin-bottom:20px}.start-lights i{width:28px;height:6px}.race-note small{display:none}}@media(max-width:420px){.race-heading h1{font-size:22px}.race-clock small{display:none}.stadium-backdrop{height:62px;flex-basis:62px}.stadium-backdrop:before{font-size:21px}.standing-chip{width:89px;max-width:89px}.race-lane{min-height:39px;height:auto;flex-basis:39px}.stadium-track{min-height:328px}.lane-runway{right:34px;left:26px}.lane-finish-line{right:14px;width:11px}.runner-anchor{width:30px;height:30px}.animal-head,.animal-head img{width:28px;height:28px}.runner-body:before{width:25px;height:13px}.runner-leg-front{left:17px}.runner-leg-back{left:9px}.runner-identity{left:32px;min-width:96px;height:22px}.tag-on-left .runner-identity{right:32px}.runner-name strong{max-width:50px}.runner-name small{max-width:61px}}
