:root{color-scheme:light;--ink:#20211f;--muted:#7a7c76;--line:#e9eae5;--paper:#fff;--soft:#f8f9f6;--gold:#f6d26d}*{box-sizing:border-box}body{margin:0;background:var(--paper);color:var(--ink);font:14px/1.6 'PingFang SC','Microsoft YaHei',system-ui,sans-serif}button,input{font:inherit}button,a,input{ -webkit-tap-highlight-color:transparent}button,a{touch-action:manipulation}button{cursor:pointer}button:disabled{cursor:default;opacity:.45}a{color:inherit;text-decoration:none}[hidden]{display:none!important}:focus-visible{outline:3px solid #d5b356;outline-offset:4px}.club-header{max-width:1160px;margin:auto;height:92px;border-bottom:1px solid var(--line);display:flex;align-items:center;gap:70px;padding:0 12px}.club-brand{display:flex;align-items:center;gap:9px;font-weight:750;font-size:24px;letter-spacing:1px}.club-brand>span{font:36px Georgia;line-height:1}.club-brand small{font-size:8px;letter-spacing:2px;align-self:flex-end;line-height:3.8;color:#8b8c86}.club-header nav{display:flex;gap:10px;background:var(--soft);padding:5px;border:1px solid #f0f1ec;border-radius:13px}.club-header nav button,.library-filters button{background:none;border:0;padding:9px 22px;border-radius:9px;color:var(--muted);font-size:13px}.club-header nav button.selected,.library-filters button.selected{color:var(--ink);background:white;box-shadow:0 1px 4px #00000009}.club-header nav small{font-size:9px;opacity:.6;margin-left:5px}.account-link{margin-left:auto;font-size:12px;border:1px solid var(--line);padding:9px 17px;border-radius:30px;max-width:220px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.club-main{max-width:1030px;margin:auto;padding:0 28px;min-height:calc(100vh - 180px)}.welcome{display:flex;align-items:center;justify-content:space-between;padding:52px 24px 54px;min-height:375px}.kicker{font-size:10px;color:var(--muted);letter-spacing:2px}.welcome h1,.practice-heading h1{font-size:46px;letter-spacing:1px;line-height:1.35;font-weight:680;margin:14px 0}.welcome p,.practice-heading p{font-size:13px;color:var(--muted);margin:13px 0 25px}.button{display:inline-flex;align-items:center;justify-content:center;gap:28px;border:1px solid transparent;padding:12px 22px;border-radius:12px;font-size:13px;line-height:1.6;transition:transform .18s,background .18s}.button:hover:not(:disabled){transform:translateY(-2px)}.button.dark{background:var(--ink);color:white}.button.light{background:white;color:var(--ink);border-color:var(--line)}.small-stats{display:flex;gap:18px;margin-top:20px;font-size:10px;color:var(--muted)}.small-stats span+span{border-left:1px solid var(--line);padding-left:18px}.welcome-mascot{width:310px;height:300px;position:relative;background:radial-gradient(ellipse at center,#fbfaf4 0,white 65%);display:grid;place-items:center}.welcome-mascot img{width:230px;transform:rotate(5deg)}.bubble{position:absolute;z-index:1;top:0;right:-10px;background:white;border:1px solid var(--line);border-radius:18px 18px 18px 3px;padding:11px 17px;font-size:11px;transform:rotate(5deg)}.section-heading{display:flex;justify-content:space-between;align-items:end;margin:6px 4px 23px}.section-heading h2{font-size:21px;font-weight:650;margin:4px 0}.quiet{font-size:11px;color:var(--muted)}.challenge-map{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:14px;position:relative}.level-card{min-height:195px;border:1px solid var(--line);border-radius:18px;padding:21px 16px;background:white;position:relative;text-align:left;display:flex;flex-direction:column;color:var(--ink)}.level-card.current{border-color:#292b25;box-shadow:0 4px 0 #eeeee7}.level-card.locked{background:#fbfcfa;color:#8c8e86}.level-card.complete{background:#fafcf6}.level-card .level-number{display:grid;place-items:center;border-radius:50%;width:40px;height:40px;background:#f3f4ef;font-size:13px;margin-bottom:17px;border:1px solid #eceee6}.level-card.current .level-number{background:var(--ink);color:white;border:0}.level-card.complete .level-number{background:#eaf0df;color:#4e6543}.level-card strong{font-size:12px;line-height:1.7;font-weight:600;min-height:40px}.level-card small{font-size:9px;color:var(--muted);margin-top:5px}.level-stars{font-size:16px;color:#c7a344;letter-spacing:4px;margin-top:auto;padding-top:13px}.level-card.locked .level-stars{color:#d9dcd2}.level-card .stage-word{position:absolute;right:12px;top:15px;font-size:9px;color:var(--muted)}.footnote{text-align:center;color:#95978f;font-size:10px;padding:22px 0 15px}.club-footer{max-width:1100px;margin:26px auto 0;padding:25px 20px;border-top:1px solid var(--line);display:flex;justify-content:space-between;font-size:10px;color:#93958b}.practice-heading{padding:60px 4px 22px}.practice-heading h1{font-size:37px}.search-row{display:flex;gap:12px}.search-box{display:flex;align-items:center;gap:12px;border:1px solid var(--line);background:#fafbf8;border-radius:13px;flex:1;padding:11px 18px;min-width:0}.search-box>span{font-size:25px;line-height:1;color:#85877f}.search-box input{border:0;background:none;outline:none;min-width:0;width:100%;font-size:13px}.library-filters{display:flex;gap:8px;padding:22px 0 14px}.library-filters button{border:1px solid transparent;padding:7px 16px}.library-filters button.selected{border-color:var(--line)}.member-banner{display:flex;align-items:center;justify-content:space-between;border:1px solid #e8e9e1;border-radius:14px;background:#f9faf6;padding:19px 22px;gap:20px}.member-banner b{display:block;font-size:12px;font-weight:600}.member-banner small{display:block;font-size:11px;color:var(--muted);margin-top:4px}.member-banner .button{font-size:11px;padding:9px 15px;white-space:nowrap}.status{font-size:12px;color:var(--muted);padding:18px 3px 10px;min-height:36px}.catalog-list{display:grid;grid-template-columns:1fr 1fr;gap:15px}.score-item{border:1px solid var(--line);border-radius:16px;background:white;padding:24px;text-align:left;color:var(--ink);display:flex;align-items:center;gap:20px;min-height:130px}.score-icon{width:53px;height:66px;border:1px solid #e5e7df;border-radius:7px;display:grid;place-items:center;font:32px Georgia;background:#fafbf7;flex-shrink:0}.score-item strong{display:block;font-size:14px;font-weight:600;line-height:1.8}.score-item small{display:block;color:var(--muted);font-size:10px;margin-top:5px}.score-item .arrow{margin-left:auto;color:#999}.empty-state{padding:45px 25px;border:1px dashed var(--line);border-radius:16px;text-align:center;color:var(--muted);grid-column:1/-1;font-size:13px}.format-note{border-top:1px solid var(--line);margin-top:32px;padding-top:21px}.format-note span{display:block;font-size:13px}.format-note small{display:block;color:var(--muted);font-size:10px;line-height:1.9;margin-top:7px}dialog{border:1px solid var(--line);border-radius:24px;padding:40px;max-width:460px;width:calc(100% - 32px);color:var(--ink)}dialog::backdrop{background:#20211f50;backdrop-filter:blur(3px)}dialog h2{font-size:26px;line-height:1.5;font-weight:650}dialog p{font-size:12px;color:var(--muted)}.close-dialog{position:absolute;right:18px;top:14px;border:0;background:none;font-size:23px;color:#888}.auth-shell{max-width:425px;margin:70px auto;padding:0 20px}.auth-shell h1{font-size:31px;line-height:1.5;margin-bottom:8px}.auth-shell>p{font-size:12px;color:var(--muted)}.auth-tabs{display:flex;gap:10px;margin:25px 0}.auth-tabs button{flex:1;background:#f8f9f5;border:1px solid var(--line);padding:10px;border-radius:10px;color:#888}.auth-tabs button.selected{color:var(--ink);border-color:#333;background:white}.auth-form label{display:block;font-size:12px;margin:20px 0 6px}.auth-form input{width:100%;padding:13px;border:1px solid #dfe2d8;border-radius:10px;background:#fdfefb;font-size:14px}.auth-form .button{width:100%;margin-top:25px}.auth-bottom{display:flex;justify-content:space-between;gap:15px;margin-top:15px;font-size:11px;color:var(--muted)}.auth-bottom button{border:0;background:none;padding:0;color:inherit;font-size:inherit}.auth-message{font-size:12px;color:#6b7560;background:#f6f8f1;border-radius:10px;padding:12px;margin-top:18px;white-space:pre-line}.auth-message.error{color:#9b4d42;background:#fdf5f2}.account-box{border:1px solid var(--line);border-radius:14px;padding:22px;margin:26px 0}.account-box p{overflow-wrap:anywhere;font-size:12px}.auth-logo{display:block;text-align:center;font-size:48px;color:#b3b8a7;margin-bottom:20px}@media(max-width:900px){.club-header{margin:0 20px;gap:28px}.challenge-map{grid-template-columns:repeat(3,minmax(0,1fr))}.welcome{padding:38px 0}.club-brand small{display:none}.catalog-list{grid-template-columns:1fr}}@media(max-width:560px){.club-header{height:76px;margin:0 16px;padding:0;gap:16px;flex-wrap:wrap;justify-content:space-between}.club-brand{font-size:20px}.club-brand>span{font-size:28px}.club-header nav{gap:0;padding:3px}.club-header nav button{padding:8px 12px;font-size:12px}.club-header nav small{display:none}.account-link{font-size:10px;padding:6px 10px;max-width:100px;margin-left:0}.club-main{padding:0 20px}.welcome{padding:34px 0;min-height:300px;gap:0}.welcome>div:first-child{position:relative;z-index:1;min-width:190px}.welcome h1{font-size:34px}.welcome p{font-size:10px;max-width:210px}.welcome .kicker{font-size:8px;letter-spacing:1px}.welcome-mascot{width:135px;height:205px;margin-left:-35px;flex-shrink:0}.welcome-mascot img{width:140px;height:185px}.bubble{font-size:8px;padding:7px 9px;right:-5px;top:-7px}.button{font-size:12px;padding:11px 18px}.small-stats{font-size:9px;gap:11px}.small-stats span+span{padding-left:11px}.section-heading{align-items:start;gap:16px;margin:0 0 19px}.section-heading h2{font-size:18px}.section-heading .quiet{font-size:9px;max-width:100px;padding-top:8px}.section-heading .kicker{font-size:8px;letter-spacing:1.3px}.challenge-map{grid-template-columns:1fr 1fr;gap:12px}.level-card{min-height:188px;padding:19px 14px}.level-card strong{font-size:12px}.club-footer{flex-direction:column;gap:5px;text-align:center}.practice-heading{padding:38px 0 18px}.practice-heading h1{font-size:30px}.search-row{flex-direction:column}.search-row>.button{align-self:flex-start;width:100%}.member-banner{padding:16px;gap:12px;align-items:start;flex-direction:column}.catalog-list{gap:12px}.score-item{padding:18px;gap:15px;min-height:116px}.score-item strong{font-size:13px}.score-item small{font-size:9px}.format-note small{font-size:10px}.auth-shell{margin-top:45px}dialog{padding:30px 24px}}@media(prefers-reduced-motion:reduce){*{transition:none!important;scroll-behavior:auto!important}}
.score-row{position:relative;min-width:0}.score-row .score-item{width:100%;height:100%}.score-row:has(.score-delete) .score-item{padding-bottom:42px}.score-delete{position:absolute;right:20px;bottom:12px;border:0;background:none;color:#999;font-size:10px;padding:4px 8px}.score-delete:hover{color:#a24e42}.privacy-control{margin-top:25px;padding-top:18px;border-top:1px solid var(--line);font-size:11px;color:var(--muted)}.privacy-control label{display:flex;align-items:center;gap:8px}.privacy-control input{accent-color:#222}.privacy-control small{display:block;font-size:10px;line-height:1.9;margin-top:7px}.account-box .button{margin:5px 4px 5px 0}
