@import"https://fonts.googleapis.com/css2?family=Ma+Shan+Zheng&family=Noto+Sans+SC:wght@400;600;800;900&display=swap";:root{--ink: #14110d;--paper: #fff1b8;--paper-2: #ffe679;--cream: #fff9df;--lime: #c7ff3a;--cyan: #22c7e8;--red: #ff4d4d;--pink: #ff79a7;--green: #18a55b;--shadow: 7px 7px 0 var(--ink);--thin: 2px solid var(--ink);--safe-bottom: env(safe-area-inset-bottom, 0px);font-family:Noto Sans SC,Microsoft YaHei,sans-serif;color:var(--ink);background:var(--paper);letter-spacing:0}*{box-sizing:border-box}html{min-height:100%;background:var(--paper)}body{min-height:100%;margin:0;overflow-x:hidden;background:repeating-linear-gradient(135deg,rgba(20,17,13,.04) 0 2px,transparent 2px 16px),linear-gradient(180deg,var(--paper) 0%,#fff7cf 48%,#dff7ff 100%)}button,input{font:inherit}button{color:inherit;cursor:pointer}button:disabled{cursor:wait;opacity:.7}.boot-screen{min-height:100dvh;display:grid;place-items:center;font-family:Ma Shan Zheng,Noto Sans SC,sans-serif;font-size:2.4rem}.auth-shell{min-height:100dvh;position:relative;display:grid;place-items:center;padding:18px;isolation:isolate}.auth-shell:before{content:"";position:fixed;top:0;right:0;bottom:0;left:0;z-index:-2;background:linear-gradient(90deg,transparent 0 18px,rgba(20,17,13,.12) 18px 20px,transparent 20px 40px),linear-gradient(0deg,transparent 0 18px,rgba(20,17,13,.08) 18px 20px,transparent 20px 40px);background-size:40px 40px}.auth-shell:after{content:"";position:fixed;inset:auto -10% 7% -10%;height:28vh;z-index:-1;background:var(--cyan);border-top:3px solid var(--ink);transform:rotate(-5deg)}.auth-marquee{position:fixed;left:-18px;right:-18px;top:22px;display:flex;justify-content:space-around;gap:20px;transform:rotate(-3deg);pointer-events:none}.auth-marquee span{min-width:90px;padding:6px 12px;border:var(--thin);background:var(--lime);font-weight:900;text-align:center;box-shadow:4px 4px 0 var(--ink)}.auth-stage{width:min(100%,420px);margin-top:46px;padding:22px;border:3px solid var(--ink);border-radius:8px;background:var(--cream);box-shadow:var(--shadow);transform:rotate(.7deg)}.brand-lockup{display:grid;gap:10px;justify-items:start;margin-bottom:18px}.brand-stamp,.mini-brand span{display:grid;place-items:center;width:54px;height:54px;border:3px solid var(--ink);border-radius:50%;background:var(--red);color:#fff;font-family:Ma Shan Zheng,Noto Sans SC,sans-serif;font-size:2rem;box-shadow:4px 4px 0 var(--ink)}.brand-lockup h1{margin:0;font-family:Ma Shan Zheng,Noto Sans SC,sans-serif;font-size:3rem;font-weight:400;line-height:1}.mode-switch{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-bottom:16px}.mode-switch button,.launch-button,.quick-choice,.invite-button,.copy-button,.room-code button{min-height:44px;border:var(--thin);border-radius:6px;background:#fff;font-weight:900;box-shadow:4px 4px 0 var(--ink);transition:transform .16s ease,box-shadow .16s ease,background .16s ease}.mode-switch button.is-on{background:var(--lime)}.mode-switch button:active,.launch-button:active,.quick-choice:active,.invite-button:active,.copy-button:active,.room-code button:active,.bottom-nav button:active,.ghost-icon:active{transform:translate(3px,3px);box-shadow:1px 1px 0 var(--ink)}.auth-form{display:grid;gap:12px}.auth-form label{display:grid;gap:5px;font-weight:800}.auth-form input:not([type=checkbox]){width:100%;min-height:48px;border:var(--thin);border-radius:6px;padding:0 12px;background:#fff;outline:none}.auth-form input:focus{box-shadow:0 0 0 4px var(--cyan)}.age-line{grid-template-columns:24px 1fr;align-items:center}.age-line input{width:20px;height:20px;accent-color:var(--red)}.form-error{margin:0;padding:8px 10px;border:var(--thin);background:#ffd7d7;font-weight:800}.launch-button{display:inline-flex;align-items:center;justify-content:center;gap:8px;margin-top:4px;background:var(--red);color:#fff}.app-shell{min-height:100dvh;padding:12px 12px calc(86px + var(--safe-bottom))}.top-bar{position:sticky;top:0;z-index:20;display:grid;grid-template-columns:1fr auto auto;align-items:center;gap:9px;min-height:60px;padding:8px 0;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.mini-brand{display:flex;align-items:center;min-width:0;gap:10px}.mini-brand span{width:38px;height:38px;font-size:1.45rem;box-shadow:3px 3px 0 var(--ink);flex:0 0 auto}.mini-brand strong{overflow:hidden;font-family:Ma Shan Zheng,Noto Sans SC,sans-serif;font-size:1.7rem;font-weight:400;line-height:1;text-overflow:ellipsis;white-space:nowrap}.live-pill,.ghost-icon{display:inline-flex;align-items:center;justify-content:center;min-width:44px;height:38px;border:var(--thin);border-radius:999px;background:#fff;box-shadow:3px 3px 0 var(--ink)}.live-pill{gap:5px;padding:0 11px;background:var(--lime);font-weight:900}.ghost-icon{padding:0}.dashboard{max-width:1180px;margin:0 auto}.hello-line{display:inline-flex;align-items:center;gap:8px;margin:4px 0 10px;padding:6px 10px;border:var(--thin);background:#fff;font-weight:900;transform:rotate(-1.5deg)}.panels{display:block}.panels>div{display:none}.panels>div.mobile-visible{display:block}.panel{position:relative;min-width:0}.timer-panel{display:grid;gap:16px;justify-items:center}.timer-dial{width:min(100%,340px);aspect-ratio:1;display:grid;place-items:center;border:4px solid var(--ink);border-radius:50%;background:conic-gradient(from 0deg,var(--red),var(--paper-2),var(--lime),var(--cyan),var(--red)),var(--paper-2);box-shadow:10px 10px 0 var(--ink);transition:transform .22s ease}.timer-dial.is-running{animation:dial-pulse 1.2s steps(2,end) infinite}@keyframes dial-pulse{50%{transform:rotate(1deg) scale(1.015)}}.dial-face{width:76%;aspect-ratio:1;display:grid;place-items:center;align-content:center;gap:12px;border:3px solid var(--ink);border-radius:50%;background:var(--cream);text-align:center}.eyebrow{margin:0;font-weight:900}.big-time{font-size:3.5rem;line-height:1;font-variant-numeric:tabular-nums;font-weight:900}.start-button,.stop-button{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-width:112px;min-height:46px;border:var(--thin);border-radius:999px;color:#fff;font-weight:900;box-shadow:4px 4px 0 var(--ink)}.start-button{background:var(--green)}.stop-button{background:var(--red)}.quick-row{display:grid;grid-template-columns:1fr 1fr;gap:10px;width:min(100%,380px)}.quick-choice{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:0 12px}.quick-choice.is-hot{background:var(--red);color:#fff}.quick-choice.is-cool{background:var(--cyan)}.time-ribbon{display:inline-flex;align-items:center;justify-content:center;gap:7px;min-height:34px;padding:4px 12px;border:var(--thin);background:var(--paper-2);font-weight:900;box-shadow:4px 4px 0 var(--ink)}.stats-strip{width:min(100%,520px);display:grid;grid-template-columns:repeat(3,1fr);border:var(--thin);background:var(--ink);gap:2px;box-shadow:5px 5px #14110dbf}.stats-strip span{display:grid;gap:2px;min-height:64px;align-content:center;justify-items:center;padding:8px 4px;background:#fff;font-size:.78rem;font-weight:800;text-align:center}.stats-strip b{max-width:100%;overflow:hidden;font-size:1rem;text-overflow:ellipsis;white-space:nowrap}.section-head{display:flex;align-items:center;gap:8px;margin:2px 0 12px;padding-left:4px}.section-head h2{margin:0;font-size:1.35rem}.rank-filter{display:grid;grid-template-columns:repeat(3,1fr);gap:7px;margin:0 0 12px}.rank-filter button{min-height:38px;border:var(--thin);border-radius:999px;background:#fff;font-weight:900}.rank-filter button.is-on{background:var(--ink);color:#fff}.rank-runway{display:grid;gap:10px;margin:0;padding:0;list-style:none}.rank-lane,.empty-lane{position:relative;min-height:56px;display:grid;grid-template-columns:38px minmax(0,1fr) auto;align-items:center;gap:8px;overflow:hidden;border:var(--thin);background:#fff;box-shadow:5px 5px 0 var(--ink);transform:skew(-4deg)}.rank-lane>*,.empty-lane{transform:skew(4deg)}.rank-lane.is-me{border-width:3px}.lane-fill{position:absolute;inset:0 auto 0 0;z-index:0;background:linear-gradient(90deg,var(--lime),rgba(199,255,58,.12));transform:skew(0)}.rank-number,.runner-name,.runner-time{position:relative;z-index:1}.rank-number{display:grid;place-items:center;height:100%;background:var(--ink);color:#fff;font-weight:900}.runner-name{min-width:0;overflow:hidden;font-weight:900;text-overflow:ellipsis;white-space:nowrap}.runner-name i{display:inline-flex;margin-left:6px;padding:1px 5px;border:1px solid var(--ink);background:var(--red);color:#fff;font-size:.66rem;font-style:normal}.runner-time{padding-right:10px;font-weight:900;white-space:nowrap}.empty-lane{display:grid;place-items:center;background:#fff;font-weight:900;transform:none}.invite-console{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-bottom:14px}.invite-button,.copy-button{display:inline-flex;align-items:center;justify-content:center;gap:7px;padding:0 10px}.invite-button{background:var(--lime)}.copy-button{background:var(--cyan)}.room-board,.room-empty{border:3px solid var(--ink);background:var(--cream);box-shadow:7px 7px 0 var(--ink)}.room-board{display:grid;gap:12px;padding:12px}.room-empty{display:grid;min-height:140px;place-items:center;padding:18px;font-weight:900;text-align:center}.room-code{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:10px;min-height:52px}.room-code span{padding:3px 8px;background:var(--ink);color:#fff;font-weight:900}.room-code strong{overflow:hidden;font-size:1.4rem;text-overflow:ellipsis;white-space:nowrap}.room-code button{min-height:38px;padding:0 10px;background:#fff}.member-orbit{display:grid;gap:9px;margin:0;padding:0;list-style:none}.member-dot{display:grid;grid-template-columns:32px minmax(0,1fr) auto;align-items:center;gap:8px;min-height:48px;border:var(--thin);background:#fff}.member-dot.is-active{background:var(--lime)}.member-dot span{display:grid;place-items:center;height:100%;background:var(--ink);color:#fff;font-weight:900}.member-dot strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.member-dot em{padding-right:8px;font-style:normal;font-weight:900}.bottom-nav{position:fixed;left:12px;right:12px;bottom:calc(12px + var(--safe-bottom));z-index:30;display:grid;grid-template-columns:repeat(3,1fr);gap:8px;max-width:520px;margin:0 auto;padding:8px;border:var(--thin);border-radius:999px;background:#fff9dfeb;box-shadow:5px 5px 0 var(--ink);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.bottom-nav button{display:inline-flex;align-items:center;justify-content:center;gap:5px;min-width:0;min-height:42px;border:0;border-radius:999px;background:transparent;font-size:.9rem;font-weight:900}.bottom-nav button.is-on{background:var(--ink);color:#fff}.toast{position:fixed;left:50%;bottom:calc(78px + var(--safe-bottom));z-index:40;min-width:130px;max-width:min(90vw,420px);padding:10px 14px;border:var(--thin);background:var(--red);color:#fff;font-weight:900;text-align:center;box-shadow:4px 4px 0 var(--ink);transform:translate(-50%)}@media (min-width: 760px){.app-shell{padding:18px 24px 28px}.top-bar{min-height:70px}.mini-brand strong{font-size:2.15rem}.panels{display:grid;grid-template-columns:minmax(320px,.95fr) minmax(300px,1fr);grid-template-areas:"timer rank" "timer party";gap:22px;align-items:start}.panels>div,.panels>div.mobile-visible{display:block}.panels>div:nth-child(1){grid-area:timer}.panels>div:nth-child(2){grid-area:rank}.panels>div:nth-child(3){grid-area:party}.timer-dial{width:min(100%,420px)}.big-time{font-size:4.2rem}.bottom-nav{display:none}}
