:root{--paper:#f7faf6;--ink:#193b2c;--muted:#728276;--green:#22ce8b;--line:#e0e9e1}*{box-sizing:border-box}body{background:var(--paper);color:var(--ink);margin:0;font-family:Inter,PingFang SC,Microsoft YaHei,sans-serif;font-size:15px;line-height:1.65}button,input,select,textarea{font:inherit}button,a,input,select,textarea{-webkit-tap-highlight-color:transparent}button{cursor:pointer;border:1px solid var(--line);min-height:46px;color:var(--ink);background:#fff;border-radius:12px;padding:10px 17px;font-weight:600;transition:background .15s}button:hover{background:#e6f8ef}button:disabled{opacity:.48;cursor:not-allowed}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline-offset:3px;outline:3px solid #17885d}a{color:inherit}h1,h2,h3,p{margin-top:0}h1{letter-spacing:-1.2px;font-size:34px;line-height:1.3}h2{margin-bottom:14px;font-size:21px;line-height:1.5}h3{margin-bottom:8px;font-size:16px}p{margin-bottom:16px}input,select,textarea{border:1px solid var(--line);color:var(--ink);background:#fbfcfa;border-radius:10px;width:100%;min-height:48px;padding:10px 12px}input,textarea{margin-top:8px}label{margin-bottom:18px;font-size:13px;font-weight:600;display:block}textarea{resize:vertical;min-height:95px}.topbar{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;max-width:1180px;height:86px;margin:auto;padding:0 28px;display:flex}.brand{letter-spacing:.5px;align-items:center;gap:10px;font-size:19px;font-weight:800;text-decoration:none;display:flex}.brand-mark{object-fit:contain;flex-shrink:0;width:35px;height:35px;display:block}.pill{color:#376451;white-space:nowrap;background:#e7f4ed;border-radius:30px;padding:4px 11px;font-size:12px;display:inline-flex}main{max-width:1180px;min-height:calc(100vh - 155px);margin:0 auto;padding:34px 28px 56px}.landing{grid-template-columns:1.12fr 1fr;align-items:center;gap:75px;padding:24px 30px;display:grid}.hero{min-width:0;position:relative}.eyebrow{color:#4b8067;letter-spacing:1.7px;margin-bottom:14px;font-size:11px;font-weight:700}.hero h1{margin-bottom:8px;font-size:44px;line-height:1.35}.hero p{color:var(--muted);font-size:16px}.hero .hero-subtitle{color:var(--ink);margin-bottom:22px;font-size:22px;font-weight:600}.record-art{background:radial-gradient(#d5f4d9 0,#0000 67%);justify-content:center;align-items:center;height:220px;display:flex;position:relative}.vinyl{background:repeating-radial-gradient(circle,#242e29 0 3px,#364139 4px,#27372e 5px);border-radius:50%;place-items:center;width:185px;height:185px;display:grid;transform:rotate(-15deg);box-shadow:8px 15px 28px #1b55301f}.vinyl span{background:var(--green);border:8px solid #88eec0;border-radius:50%;place-items:center;width:76px;height:76px;font-size:42px;line-height:1;display:grid}.float-note{background:#fffffff2;border:1px solid #cce5d5;border-radius:10px;padding:10px 17px;font-size:12px;font-weight:600;position:absolute;bottom:22px;right:5px;transform:rotate(-5deg)}.hero-facts{border-top:1px solid var(--line);justify-content:space-between;padding-top:18px;font-weight:600;display:flex}.hero-facts small{color:var(--muted);font-size:12px;font-weight:400}.panel{border:1px solid var(--line);background:#fff;border-radius:22px;margin-bottom:22px;padding:28px;box-shadow:0 8px 30px #23382903}.entry{padding:35px 32px}.entry h2{margin-bottom:25px;font-size:27px}.segmented{background:#f0f5f1;border-radius:13px;gap:4px;margin-bottom:25px;padding:5px;display:flex}.segmented button{color:var(--muted);background:0 0;border:none;flex:1}.segmented button[aria-pressed=true]{color:var(--ink);background:#fff;box-shadow:0 2px 9px #2338290a}.primary{background:var(--green);border-color:var(--green);color:#083a29}.primary:hover{background:#23d397}.full{width:100%}.small{font-size:12px}.muted{color:var(--muted)}.entry .muted{margin-top:18px}.platform-note{border-top:1px solid var(--line);color:var(--muted);padding-top:18px;font-size:12px}.room-heading{justify-content:space-between;align-items:center;gap:20px;margin:6px 0 20px;display:flex}.room-heading h1{margin-bottom:8px}.room-heading p{margin:0}@property --step-glow-angle{syntax:"<angle>";inherits:false;initial-value:0deg}.steps{border-bottom:1px solid var(--line);grid-template-columns:minmax(0,1fr) 24px minmax(0,1fr) 24px minmax(0,1fr);align-items:center;gap:14px;margin-bottom:26px;padding:4px 0 23px;display:grid}.steps button{border:1px solid var(--line);min-width:0;min-height:70px;color:var(--muted);background:#ffffffb3;border-radius:16px;justify-content:center;align-items:center;gap:12px;padding:14px 18px;font-size:16px;display:flex;position:relative}.steps button:hover:not(:disabled){color:#146747;background:#ecf9f1}.steps button[aria-current=step]{color:#146747;background:#e0f8eb;border-color:#9bdcba;box-shadow:0 0 0 4px #22ce8b0a,0 5px 20px #22ce8b12}.steps button[aria-current=step]:before{content:"";border-radius:inherit;background:conic-gradient(from var(--step-glow-angle), transparent 0% 55%, #a2f2c7 72%, #1acb89 86%, #119963 94%, transparent 100%);pointer-events:none;padding:2px;animation:3.2s linear infinite step-border-orbit;position:absolute;inset:-2px;-webkit-mask-image:linear-gradient(#fff 0 0),linear-gradient(#fff 0 0);mask-image:linear-gradient(#fff 0 0),linear-gradient(#fff 0 0);-webkit-mask-position:0 0,0 0;mask-position:0 0,0 0;-webkit-mask-size:auto,auto;mask-size:auto,auto;-webkit-mask-repeat:repeat,repeat;mask-repeat:repeat,repeat;-webkit-mask-clip:content-box,border-box;mask-clip:content-box,border-box;-webkit-mask-origin:content-box,border-box;mask-origin:content-box,border-box;-webkit-mask-composite:xor;mask-composite:exclude;-webkit-mask-source-type:auto,auto;mask-mode:match-source,match-source}@keyframes step-border-orbit{to{--step-glow-angle:360deg}}.steps .step-number{font-variant-numeric:tabular-nums;background:#edf2ee;border-radius:9px;flex:none;place-items:center;width:30px;height:30px;font-size:13px;display:grid}.steps button[aria-current=step] .step-number{color:#fff;background:#146747}.steps .step-label{white-space:nowrap}.step-arrow{fill:none;stroke:#91b5a0;stroke-width:1.8px;stroke-linecap:round;stroke-linejoin:round;width:24px;height:24px}.content-grid{grid-template-columns:minmax(0,1fr) 330px;align-items:start;gap:26px;display:grid}.section-title{justify-content:space-between;align-items:center;gap:10px;margin-bottom:16px;display:flex}.section-title h2{margin:0}.preference-groups{border-bottom:1px solid var(--line);gap:14px;margin:24px 0 32px;padding-bottom:28px;display:grid}.preference-group{background:#f8fbf8;border:1px solid #e3ebe5;border-radius:16px;min-width:0;padding:18px 20px}.preference-group-heading{justify-content:space-between;align-items:center;gap:12px;margin-bottom:14px;display:flex}.preference-group-heading>div{flex-wrap:wrap;align-items:baseline;gap:4px 12px;display:flex}.preference-group-heading h3{margin:0;font-size:14px}.preference-count{color:var(--muted);flex-shrink:0;font-size:11px}.preference-count[data-selected=true]{color:#0f6546;font-weight:600}.tag-list{flex-wrap:wrap;gap:10px;margin:0;display:flex}.tag-list button{white-space:nowrap;border-radius:24px;justify-content:center;align-items:center;gap:7px;min-height:44px;padding:9px 15px;font-size:13px;display:inline-flex}.tag-indicator{fill:none;stroke:currentColor;stroke-width:1.6px;stroke-linecap:round;stroke-linejoin:round;opacity:.65;flex-shrink:0;width:14px;height:14px}.tag-list button[aria-pressed=true] .tag-indicator{opacity:1}.tag-list button[aria-pressed=true],.preset-list button[aria-pressed=true]{color:#0f6546;background:#e3f9ee;border-color:#46cf92}.search{margin-top:20px}.song-suggestions-heading{flex-wrap:wrap;gap:12px}.song-suggestions-heading h2{margin:0}.song-suggestions-heading button{flex-shrink:0;min-height:44px}.song-list{scrollbar-width:thin;max-height:590px;overflow-y:auto}.song-row{border-bottom:1px solid #edf1ed;align-items:center;gap:13px;padding:16px 0;display:flex}.song-number{color:#97a89d;flex-shrink:0;width:18px;font-size:12px}.song-info{flex:1;min-width:0}.song-info strong{overflow-wrap:anywhere;font-size:14px;display:block}.song-info small{color:var(--muted);margin-top:3px;font-size:11px;display:block}.level{flex-shrink:0;width:137px;margin:0}.level select{padding:8px;font-size:12px}.profile-summary{background:#f0fbf4;position:sticky;top:24px}.profile-summary h2{font-size:29px}.stat-pair{color:var(--muted);gap:26px;margin:28px 0;font-size:12px;display:flex}.stat-pair b{color:var(--ink);margin-right:4px;font-size:30px}.text-button{background:0 0;border-color:#0000;font-size:13px;font-weight:400}.message{color:#245f43;overflow-wrap:anywhere;background:#ecf6f0;border:1px solid #d0e6d9;border-radius:12px;margin:0 0 22px;padding:13px 17px;font-size:13px}.error{color:#942c1c;background:#fff0ed;border-color:#f5c4bb}.hidden{display:none}.member{border-bottom:1px solid #edf1ed;align-items:center;gap:14px;padding:17px 0;display:flex}.members{margin-bottom:24px}.avatar{color:#256546;background:#e4f6e9;border-radius:50%;flex-shrink:0;place-items:center;width:44px;height:44px;font-size:19px;font-weight:600;display:grid}.ready{color:#168151;font-size:12px;font-weight:700}.member>.muted{white-space:nowrap;font-size:12px}.preset-list{gap:16px;display:grid}.preset-list+.preset-list:not(:empty){border-top:1px solid var(--line);margin-top:24px;padding-top:24px}.preset-list button{text-align:left;white-space:normal}.preset-list strong,.preset-list small{display:block}.preset-list small{color:var(--muted);margin-top:4px;font-size:11px;font-weight:400}.preset-list+p{margin-top:18px}.assessment-stats{justify-content:space-between;gap:10px;margin:24px 0;display:flex}.assessment-stats b{font-size:29px;line-height:1.3;display:block}.assessment-stats span{color:var(--muted);font-size:11px}.score-line{border-top:1px solid var(--line);justify-content:space-between;gap:15px;margin-bottom:8px;padding-top:8px;font-size:13px;display:flex}.score-line span{overflow-wrap:anywhere}.score-line b{color:#207c54}.review-row{border-top:1px solid var(--line);padding:22px 0}.review-row audio{width:100%;margin:12px 0;display:block}.review-row label{margin-top:15px}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;padding:0;position:absolute;overflow:hidden}footer{text-align:center;padding:20px 16px calc(20px + env(safe-area-inset-bottom));color:#819287;border-top:1px solid var(--line);font-size:11px}@media (width<=900px){.landing{gap:30px;padding:10px 0}.hero h1{font-size:35px}.content-grid{grid-template-columns:minmax(0,1fr) 290px;gap:18px}.panel{padding:23px}.hero-facts{gap:14px;font-size:13px}}@media (width<=650px){.topbar{height:72px;padding:0 max(18px, env(safe-area-inset-left))}.brand{font-size:16px}.brand-mark{width:30px;height:30px}main{padding:24px max(16px, env(safe-area-inset-right)) 32px}.landing{flex-direction:column;align-items:stretch;gap:20px;display:flex}.hero{padding:6px 8px 0}.hero h1{letter-spacing:-.8px;font-size:34px}.hero .eyebrow{font-size:9px}.hero p{margin-bottom:14px;font-size:14px}.hero .hero-subtitle{font-size:18px}.record-art{opacity:.75;pointer-events:none;width:120px;height:135px;position:absolute;top:94px;right:0}.vinyl{width:115px;height:115px}.vinyl span{border-width:5px;width:48px;height:48px;font-size:27px}.float-note{display:none}.hero-facts{margin-top:40px;padding-top:14px;font-size:12px}.hero-facts small{font-size:10px}.entry{margin-bottom:0;padding:25px 22px}.entry h2{margin-bottom:18px;font-size:23px}.content-grid{flex-direction:column;gap:0;display:flex}.content-grid>section,.content-grid>aside{width:100%}.room-heading{flex-wrap:wrap;align-items:start;gap:12px}.room-heading h1{font-size:27px}.room-heading .eyebrow{letter-spacing:.8px;font-size:10px}.room-heading>button{min-height:44px;font-size:12px}.steps{grid-template-columns:minmax(0,1fr) 16px minmax(0,1fr) 16px minmax(0,1fr);gap:6px;margin-bottom:20px;padding-bottom:18px}.steps button{border-radius:13px;flex-direction:column;gap:5px;min-height:82px;padding:10px 4px;font-size:13px}.steps .step-number{border-radius:8px;width:26px;height:26px;font-size:12px}.step-arrow{width:16px;height:16px}.panel{border-radius:18px;margin-bottom:17px;padding:21px 17px}.song-row{gap:8px}.preference-group{padding:16px 14px}.preference-group-heading>div{display:block}.preference-group-heading h3{margin-bottom:2px}.tag-list{gap:8px}.tag-list button{padding-inline:12px}.song-number{display:none}.level{width:122px}.song-info strong{font-size:13px}.section-title{align-items:flex-start}h2{font-size:19px}.profile-summary{position:static}.profile-summary h2{font-size:25px}.section-title button{font-size:12px}.assessment-stats b{font-size:27px}.room-heading p{font-size:13px}}@media (prefers-reduced-motion:reduce){.steps button[aria-current=step]:before{background:#22b77b;animation:none}*{transition:none!important}}.duel-panel{max-width:980px;margin:0 auto}.duel-start{border-radius:18px;width:min(100%,360px);min-height:72px;margin:28px auto 0;padding:18px 28px;font-size:20px;font-weight:700;display:block}.duel-start-notice{margin:28px 0 0}.section-heading,.duel-score{justify-content:space-between;align-items:center;gap:16px;display:flex}.duel-score{background:#eaf8f0;border-radius:18px;padding:16px}.duel-score small{color:#5b7065;display:block}.song-grid{grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:10px;margin:20px 0;display:grid}.song-card{overflow-wrap:anywhere;text-align:left;color:#223b30;touch-action:manipulation;background:#fff;border:1px solid #dce9e2;border-radius:14px;min-height:64px;padding:12px;font-size:14px;line-height:1.4}.song-card[aria-pressed=true]{background:#dcf8e9;border-color:#148f5b;box-shadow:inset 0 0 0 1px #148f5b}.hand{margin-top:24px}.duel-result{background:#ecf8f0;border-radius:18px;margin:20px 0;padding:24px}@media (width<=540px){.song-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.song-card{min-height:68px}.section-heading{align-items:flex-start}.duel-score{font-size:14px}.app-shell:has(.hand) .room-heading{display:none}.app-shell:has(.hand) footer{display:none}.app-shell:has(.hand) .topbar{padding-top:10px;padding-bottom:10px}.hand{margin-top:12px}.hand h3{margin:6px 0}.hand .song-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:6px;margin:8px 0}.hand .song-card{min-height:62px;padding:7px 5px;font-size:12px}.duel-panel:has(.hand){padding:14px}.app-shell:has(.hand) .steps{border:0;margin:0 0 12px;padding:0}.app-shell:has(.hand) .steps button{padding:10px 6px}.duel-panel:has(.hand) h2{margin:6px 0;font-size:20px}.duel-panel:has(.hand) .eyebrow{display:none}.duel-panel:has(.hand) p{margin:8px 0}.duel-panel:has(.hand) .duel-score{padding:10px}.hand .song-card{min-height:52px}}.multiplayer-panel .duel-score{grid-template-columns:repeat(auto-fit,minmax(85px,1fr));display:grid}.multiplayer-panel .duel-score>span{overflow-wrap:anywhere;min-width:0}@media (width<=540px){.app-shell:has(.multiplayer-active) .room-heading{display:none}.app-shell:has(.multiplayer-active) footer{display:none}.app-shell:has(.multiplayer-active) .steps{border:0;margin:0 0 12px;padding:0}.app-shell:has(.multiplayer-active) .steps button{padding:10px 6px}.multiplayer-active{padding:14px}.multiplayer-active .song-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.multiplayer-active .song-card{padding:8px;font-size:13px}}.bracket{grid-template-columns:repeat(auto-fit,minmax(min(100%,230px),1fr));gap:16px;display:grid}.bracket-match{border:1px solid var(--line,#dde6e1);overflow-wrap:anywhere;border-radius:16px;margin-bottom:12px;padding:14px}.tournament-controls{flex-wrap:wrap;gap:8px;display:flex}.tournament-controls .message{flex-basis:100%}
