:root{--bg:#f4f1ea;--panel:#ffffff;--text:#22201c;--muted:#6c665c;--border:#ddd6c8;--accent:#b5302e;--button:#efe9dd;--button-hover:#e4dccb;--message:#fff4d6;font-family:system-ui,-apple-system,Segoe UI,PingFang SC,Microsoft YaHei,sans-serif;color:var(--text);background:var(--bg)}@media (prefers-color-scheme:dark){:root{--bg:#1d1c1a;--panel:#282623;--text:#ece7de;--muted:#a59e92;--border:#3d3a35;--button:#35322d;--button-hover:#423e38;--message:#4a3f22}}*{box-sizing:border-box}body{margin:0;background:var(--bg)}.layout{display:grid;grid-template-columns:minmax(0,620px) minmax(260px,360px);gap:24px;justify-content:center;padding:24px 16px}@media (max-width:860px){.layout{grid-template-columns:minmax(0,1fr);padding:12px 16px}}.board-col{min-width:0}.panel{background:var(--panel);border:1px solid var(--border);border-radius:12px;padding:16px 18px;align-self:start}h1{font-size:20px;margin:0 0 4px}h2{text-transform:uppercase;letter-spacing:.04em;margin:20px 0 8px}.muted,.sub,h2{font-size:14px;color:var(--muted)}.muted,.sub{margin:0}.status{display:flex;align-items:center;gap:8px;margin-top:14px;font-weight:600;font-size:16px}.status .dot{width:12px;height:12px;border-radius:50%;background:var(--muted)}.status.red .dot{background:#c0262d}.status.black .dot{background:#1d1d1d;outline:1px solid var(--muted)}.status.over{color:var(--accent)}.message{margin-top:10px;padding:8px 10px;background:var(--message);border-radius:8px;font-size:14px}.buttons{display:flex;flex-wrap:wrap;gap:8px;margin-top:14px}button{font:inherit;font-size:14px;padding:7px 12px;border-radius:8px;border:1px solid var(--border);background:var(--button);color:var(--text);cursor:pointer}button:hover:not(:disabled){background:var(--button-hover)}button:disabled{opacity:.5;cursor:default}.options{display:grid;grid-template-columns:1fr 1fr;gap:10px 12px;margin-top:16px}.options label{display:flex;flex-direction:column;gap:4px;font-size:13px;color:var(--muted)}.options label.check{flex-direction:row;align-items:center;gap:6px;color:var(--text)}input,select{font:inherit;font-size:14px;padding:6px 8px;border-radius:6px;border:1px solid var(--border);background:var(--bg);color:var(--text);min-width:0}.moves{list-style:none;padding:0;margin:0;max-height:260px;overflow-y:auto;font-size:15px}.moves li{display:grid;grid-template-columns:36px 1fr 1fr;padding:3px 0;border-bottom:1px solid var(--border)}.fen,.moves .num{color:var(--muted)}.fen{display:block;font-size:12px;word-break:break-all}.fen-form{display:flex;gap:8px;margin-top:8px}.fen-form input{flex:1 1}.topnav{display:flex;gap:18px;align-items:center;padding:10px 16px;border-bottom:1px solid var(--border);background:var(--panel)}.topnav a{color:var(--muted);text-decoration:none;font-size:15px}.topnav a[aria-current=page]{color:var(--text);font-weight:600;border-bottom:2px solid var(--accent)}.analysis{display:grid;grid-template-columns:minmax(0,640px) minmax(280px,400px);gap:24px;justify-content:center;align-items:start;padding:20px 16px}@media (max-width:900px){.analysis{grid-template-columns:minmax(0,1fr)}}.board-wrap{display:grid;grid-template-columns:28px minmax(0,1fr);gap:8px;align-items:stretch;min-width:0}.evalbar{display:flex}.engine{border:1px solid var(--border);border-radius:10px;padding:10px 12px}.engine-head{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.engine-status{flex:1 1;font-size:13px;color:var(--muted);min-width:0}.switch{display:flex;gap:6px;align-items:center;font-weight:600;font-size:14px}.lines{list-style:none;padding:0;margin:8px 0 0}.line{display:flex;gap:8px;align-items:baseline;padding:4px 0;border-top:1px solid var(--border);font-size:14px}.line.empty{color:var(--muted)}.score{font-weight:700;font-feature-settings:"tnum";font-variant-numeric:tabular-nums;min-width:52px;text-align:center;border-radius:4px;padding:1px 4px;font-size:13px}.score.red{background:#c0262d;color:#fff}.score.black{background:#1d1d1d;color:#fff}.pv{display:flex;flex-wrap:wrap;gap:2px 6px;min-width:0}.link,.mv,.pvmove{background:none;border:none;padding:1px 3px;border-radius:4px;font:inherit;color:var(--text);cursor:pointer}.link:hover,.mv:hover,.pvmove:hover{background:var(--button-hover)}.nav{display:flex;gap:6px;margin:12px 0 8px}.tree{border:1px solid var(--border);border-radius:10px;padding:8px 10px;max-height:280px;overflow-y:auto;line-height:1.9;font-size:15px}.tree .tok{white-space:nowrap;margin-right:4px}.tree .num{color:var(--muted);margin-right:2px;font-size:13px}.tree .mv.current{background:var(--accent);color:#fff}.tree .mv.check:after{content:"+";color:var(--accent)}.tree .mv.current.check:after{color:#fff}.tree .variation{margin:2px 0 2px 14px;padding-left:8px;border-left:2px solid var(--border);font-size:14px}.tree .variation,.tree .variation .mv{color:var(--muted)}.tree .comment{color:#3a7d44;font-size:13px;margin-left:4px;white-space:normal}.comment-box{display:flex;flex-direction:column;gap:4px;font-size:13px;color:var(--muted);margin-top:10px}textarea{font:inherit;font-size:14px;padding:6px 8px;border-radius:6px;border:1px solid var(--border);background:var(--bg);color:var(--text);resize:vertical;width:100%}.io{font-family:ui-monospace,monospace;font-size:12px}.saved{list-style:none;padding:0;margin:0;font-size:14px}.saved li{display:flex;align-items:center;gap:4px;padding:3px 0;border-bottom:1px solid var(--border)}.saved .link{text-align:left}.link.danger{margin-left:auto;color:var(--accent)}button.primary{background:var(--accent);color:#fff;border-color:var(--accent)}.editor{display:grid;grid-template-columns:minmax(0,560px) minmax(260px,360px);gap:24px;justify-content:center;padding:20px 16px}@media (max-width:900px){.editor{grid-template-columns:minmax(0,1fr)}}.palette{display:grid;grid-template-columns:repeat(7,1fr);gap:4px;margin:10px 0}.swatch{padding:2px;border-radius:8px;display:flex;justify-content:center}.swatch.active{outline:3px solid #3c8cff}.swatch.erase{font-size:18px}.errors{color:var(--accent);font-size:13px;padding-left:18px}.ok{color:#3a7d44;font-size:14px}.buttons label{display:flex;align-items:center;gap:4px;font-size:14px}.avatar{position:relative;display:inline-flex;align-items:center;justify-content:center;border-radius:50%;color:#fff;font-weight:700;flex:none;font-family:KaiTi,STKaiti,"Noto Serif SC",serif}.avatar.you{font-family:inherit;font-size:13px}.avatar .stars{position:absolute;bottom:-8px;left:50%;transform:translateX(-50%);font-size:11px;line-height:1;padding:1px 3px;border-radius:6px;background:#000a;color:#f2c230;white-space:nowrap}.earned{margin:6px 0;font-size:14px}.stars-big{font-size:22px;color:#e8b923;letter-spacing:2px}.stars-big .dim{color:var(--border)}.picker{display:grid;grid-template-columns:minmax(0,620px) minmax(280px,380px);gap:24px;justify-content:center;padding:20px 16px;align-items:start}@media (max-width:900px){.picker{grid-template-columns:minmax(0,1fr)}}.bot-group h2{margin-top:0}.bot-cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(130px,1fr));gap:10px;margin-bottom:18px}.bot-card{display:flex;flex-direction:column;align-items:center;gap:6px;padding:12px 8px;border-radius:12px}.bot-card.active{outline:3px solid var(--accent)}.bot-name{font-weight:600}.bot-rating{font-size:12px;color:var(--muted);font-weight:500}.bot-head{display:flex;gap:14px;align-items:center}.bot-head h1{margin:0}.assists{display:grid;grid-template-columns:1fr 1fr;gap:6px 12px;border:none;padding:0;margin:14px 0}.assists .check{display:flex;align-items:center;gap:6px;font-size:14px}button.play{width:100%;font-size:16px;padding:10px}.botgame{display:grid;grid-template-columns:minmax(0,600px) minmax(280px,380px);gap:24px;justify-content:center;padding:16px;align-items:start}@media (max-width:900px){.botgame{grid-template-columns:minmax(0,1fr)}}.player-bar{display:flex;align-items:center;gap:10px;padding:6px 0;min-height:52px}.player-bar .who{flex:1 1;min-width:0}.bubble{display:inline-block;margin-top:4px;padding:5px 10px;background:var(--panel);border:1px solid var(--border);border-radius:12px 12px 12px 2px;font-size:14px}.clock{font-feature-settings:"tnum";font-variant-numeric:tabular-nums;font-size:20px;font-weight:700;padding:4px 10px;border-radius:6px;background:var(--button)}.clock.running{background:var(--accent);color:#fff}.opening{margin:6px 0 0;color:var(--muted);font-size:14px}.feedback{margin-top:10px;padding:6px 10px;border-radius:8px;font-weight:600;font-size:14px;background:var(--button)}.g-best,.g-excellent,.g-good{color:#3a7d44}.g-book{color:#a88865}.g-inaccuracy{color:#c99a1e}.g-mistake{color:#e58f2a}.g-miss{color:#d2683c}.g-blunder{color:#ca3431}.gameover{margin-top:12px;padding:12px;border:1px solid var(--border);border-radius:10px}.gameover h2{margin:0 0 4px;font-size:18px;text-transform:none;letter-spacing:0;color:var(--text)}.grades{width:100%;border-collapse:collapse;font-size:14px;margin:8px 0}.grades td{padding:3px 0;border-bottom:1px solid var(--border)}.grades td:last-child{text-align:right;font-weight:700}a.button{font-size:14px;padding:7px 12px;border-radius:8px;border:1px solid var(--border);background:var(--button);color:var(--text);text-decoration:none}.learn{display:grid;grid-template-columns:minmax(0,560px) minmax(260px,360px);gap:24px;justify-content:center;padding:20px 16px;align-items:start}@media (max-width:900px){.learn{grid-template-columns:minmax(0,1fr)}.learn-side{order:-1}}.path{gap:6px;padding:10px 0 30px}.path,.path-row{display:flex;flex-direction:column;align-items:center}.path-row{transform:translateX(var(--shift))}.path-node{position:relative;width:76px;height:76px;border-radius:50%;display:flex;align-items:center;justify-content:center;border:3px solid var(--border);background:var(--panel);padding:0}.path-node.mastered{border-color:#3a7d44}.path-node.next{border-color:var(--accent);box-shadow:0 0 0 6px color-mix(in srgb,var(--accent) 25%,transparent)}.path-node .tick{position:absolute;bottom:-4px;right:-4px;background:#3a7d44;color:#fff;border-radius:50%;width:24px;height:24px;font-size:14px;display:flex;align-items:center;justify-content:center}.path-node .next-tag{position:absolute;top:-12px;background:var(--accent);color:#fff;font-size:11px;padding:1px 8px;border-radius:10px}.path-label{font-size:14px;margin-top:4px;color:var(--muted)}.rank{display:flex;gap:12px;align-items:center;margin:14px 0}.lang{display:block;margin-top:14px;font-size:13px;color:var(--muted)}.lesson{padding:12px 16px 24px;max-width:1040px;margin:0 auto}.lesson-head{display:flex;align-items:center;gap:12px;margin-bottom:12px}.lesson-head h1{font-size:18px;margin:0;white-space:nowrap}.steps-bar{display:flex;gap:4px;flex:1 1}.steps-bar span{flex:1 1;height:8px;border-radius:4px;background:var(--border)}.steps-bar span.done{background:#3a7d44}.steps-bar span.now{background:var(--accent)}.lesson-body{display:grid;grid-template-columns:minmax(0,560px) minmax(260px,380px);gap:24px;justify-content:center;align-items:start}.lesson-body.no-board{grid-template-columns:minmax(260px,520px)}@media (max-width:900px){.lesson-body{grid-template-columns:minmax(0,1fr)}}.coach{display:flex;gap:10px;align-items:flex-start}.coach .bubble{font-size:16px;line-height:1.5}.say{margin-top:12px;padding:8px 12px;border-radius:8px;background:var(--button);font-weight:600}.say.ok{background:color-mix(in srgb,#3a7d44 22%,var(--panel))}.say.bad{background:color-mix(in srgb,#ca3431 20%,var(--panel))}.quiz{display:flex;flex-direction:column;gap:8px;width:100%}.quiz .option{text-align:left;padding:10px 12px;font-size:15px}.quiz .option.right{border-color:#3a7d44;background:color-mix(in srgb,#3a7d44 25%,var(--panel))}.quiz .option.wrong{border-color:#ca3431;background:color-mix(in srgb,#ca3431 20%,var(--panel))}button.continue{width:100%;margin-top:16px;padding:10px;font-size:16px}.lesson-done{max-width:480px;margin:40px auto;text-align:center}.big-check{width:72px;height:72px;margin:0 auto 8px;border-radius:50%;background:#3a7d44;color:#fff;font-size:40px;display:flex;align-items:center}.big-check,.lesson-done .buttons{justify-content:center}.puzzle-head{display:flex;justify-content:space-between;align-items:flex-end}.big-rating{font-size:28px;font-weight:700;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.big-rating .up{color:#3a7d44;font-size:16px}.big-rating .down{color:#ca3431;font-size:16px}.themes{margin-top:12px;display:flex;flex-wrap:wrap;gap:6px;align-items:center}.chip{padding:2px 8px;border-radius:10px;background:var(--button);border:1px solid var(--border)}.chip,.small{font-size:12px}.small{margin-top:12px}.topnav{flex-wrap:wrap}.topnav .brand{color:var(--text);font-weight:700;text-decoration:none;font-size:17px}.topnav-links{display:flex;gap:16px;flex-wrap:wrap;flex:1 1}.topnav-right{display:flex;gap:14px}.home{max-width:1060px;margin:0 auto;padding:24px 16px 40px}.hero{display:grid;grid-template-columns:1fr minmax(0,360px);gap:32px;align-items:center}@media (max-width:760px){.hero{grid-template-columns:1fr}.hero-board{max-width:320px}}.hero h1{font-size:34px;margin:0 0 10px;line-height:1.2}.hero .sub{font-size:17px;line-height:1.5;margin-bottom:20px}a.button.big{font-size:17px;padding:11px 22px}a.button.primary{background:var(--accent);color:#fff;border-color:var(--accent)}.cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:14px;margin-top:32px}.card{display:flex;flex-direction:column;gap:4px;padding:16px;border:1px solid var(--border);border-radius:12px;background:var(--panel);color:var(--text);text-decoration:none}.card:hover{border-color:var(--accent)}.card-kicker{font-size:12px;text-transform:uppercase;letter-spacing:.05em;color:var(--accent);font-weight:700}.card strong{font-size:18px}.center{text-align:center}.settings{display:grid;grid-template-columns:minmax(0,480px) minmax(280px,420px);gap:24px;justify-content:center;padding:20px 16px;align-items:start}@media (max-width:860px){.settings{grid-template-columns:minmax(0,1fr)}}:focus-visible{outline:3px solid #3c8cff;outline-offset:2px}.lesson-index,.lesson-text{max-width:760px;margin:24px auto;padding:0 16px;color:var(--muted);font-size:14px;line-height:1.6}.lesson-text h2{color:var(--text)}.difficulty{gap:8px;margin:8px 0;font-size:14px;color:var(--muted)}.dash-head,.difficulty{display:flex;align-items:center}.dash-head{flex-wrap:wrap;justify-content:space-between;gap:12px}.dash-head h1{font-size:28px;margin:0}.recent{margin-top:28px}.recent h2{font-size:18px;margin:0}.recent-games{list-style:none;padding:0;margin:8px 0 0;border:1px solid var(--border);border-radius:12px;background:var(--panel)}.recent-games li{display:grid;grid-template-columns:3.5em 1fr auto auto;gap:12px;align-items:center;padding:8px 14px;border-top:1px solid var(--border);font-size:14px}.recent-games li:first-child{border-top:0}.recent-games .result{font-weight:700}.recent-games .result.win{color:#3a7d44}.recent-games .result.loss{color:#ca3431}.milestones{list-style:none;padding:0;margin:24px 0 0;display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:10px}.milestones li{display:flex;flex-direction:column;gap:2px;padding:10px 14px;border:1px dashed var(--border);border-radius:10px}.milestones li:not(.earned) strong{color:var(--muted);font-weight:600}.milestones li.earned{border-style:solid;border-color:var(--accent)}.milestones li.earned strong:before{content:"★ ";color:#e0a030}.streak{text-align:center;margin:16px auto 4px;font-size:14px}.streak.done strong{color:#e8762b}.tabs{display:flex;gap:4px;justify-content:center;margin:12px auto 0;flex-wrap:wrap}.tabs button{border-radius:999px}.tabs button.active{background:var(--accent);color:#fff}.daily-calendar{display:grid;grid-template-columns:repeat(7,1fr);gap:4px;list-style:none;padding:0;margin:8px 0}.daily-calendar li{text-align:center;padding:6px 0;border-radius:6px;background:var(--button);font-size:13px;color:var(--muted)}.daily-calendar li.solved{background:#3a7d44;color:#fff;font-weight:600}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}.rush-start{max-width:560px;margin:24px auto}.rush-modes{display:grid;gap:8px;margin-top:12px}.rush-mode{display:flex;flex-direction:column;align-items:flex-start;gap:2px;padding:12px 14px;text-align:left}.rush-bar{display:flex;align-items:center;gap:16px;margin-bottom:10px}.rush-score{font-size:32px;font-weight:700;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.strikes{display:flex;gap:4px;font-weight:700}.strike{color:var(--border)}.strike.hit{color:#ca3431}.rush-missed{padding-left:18px}.review{margin:10px 0}.accuracy{display:flex;gap:16px;margin-bottom:8px}.accuracy div{display:flex;flex-direction:column;flex:1 1;padding:8px 10px;border-radius:8px;background:var(--button)}.accuracy strong{font-size:22px;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.eval-graph{width:100%;height:72px;display:block;border-radius:6px;overflow:hidden}.eval-bg{fill:#2b2b2b}.eval-area{fill:#e9e4d8}.eval-mid{stroke:#888;stroke-width:.5;stroke-dasharray:3 3}.eval-cursor{stroke:var(--accent);stroke-width:1.5}.key-moments,.moment{margin-top:8px}.moment{padding:8px 10px;border-left:3px solid;background:var(--button);border-radius:6px}.moment p{color:var(--text);margin:0 0 6px;font-size:14px}.confirm-move{display:flex;gap:8px;justify-content:center;margin-top:8px}.play-clocks{display:flex;gap:8px;margin:10px 0}.help{max-width:760px;margin:24px auto;padding:0 16px;line-height:1.6}.help h2{margin-top:28px}.keys{width:100%;border-collapse:collapse;font-size:14px}.keys td,.keys th{text-align:left;padding:6px 8px;border-bottom:1px solid var(--border);vertical-align:top}kbd{font-family:ui-monospace,monospace;font-size:.9em;padding:1px 5px;border:solid var(--border);border-width:1px 1px 2px;border-radius:4px;background:var(--button)}.reset-progress{margin-top:20px}.skill-question,.sync-notice,.update-banner{display:flex;gap:12px;align-items:center;justify-content:center;padding:8px 16px;background:var(--panel);border-bottom:1px solid var(--border);font-size:14px}.skill-question p,.sync-notice p{margin:0}.skill-question>button,.sync-notice button{border:0;background:none;font-size:18px;line-height:1;padding:4px 8px;cursor:pointer;color:inherit}.skill-question{flex-wrap:wrap}.skill-question .skill-options{display:flex;flex-wrap:wrap;gap:6px}.skill-question .skill-options button{font-size:14px;padding:6px 10px;border:1px solid var(--border);border-radius:8px;background:var(--bg,transparent)}.skill-question .skill-options button.link{border-color:transparent;text-decoration:underline}.classical{margin:0 0 6px;font-size:14px}.rated-choice{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:12px 0}.rated-choice .choice{display:flex;flex-direction:column;gap:2px;padding:10px 12px;border:1px solid var(--border);border-radius:10px;cursor:pointer;font-size:13px}.rated-choice .choice.active{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent) inset}.rated-choice input{position:absolute;opacity:0;pointer-events:none}.rated-choice .choice:focus-within{outline:2px solid var(--accent);outline-offset:2px}.rating-line{margin:6px 0;font-size:14px}.rating-line .up{color:#3a7d44}.rating-line .down{color:#ca3431}.stats{max-width:960px;margin:24px auto;padding:0 16px}.stat-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:10px;margin:16px 0}.stat-card{display:flex;flex-direction:column;gap:2px;padding:12px 14px;border:1px solid var(--border);border-radius:10px;background:var(--panel)}.stat-card strong{font-size:26px;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.stats-head{display:flex;align-items:center;justify-content:space-between;gap:12px}.charts{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:12px}.chart{margin:0;padding:10px 12px;border:1px solid var(--border);border-radius:10px}.chart figcaption{font-size:14px;margin-bottom:4px}.chart svg{width:100%;height:auto;display:block}.chart-grid{stroke:var(--border);stroke-width:1;stroke-dasharray:3 3}.chart-label{font-size:10px;fill:var(--muted)}.chart-line{fill:none;stroke:var(--accent);stroke-width:2}.chart-dot{fill:var(--accent)}.game-list,.results{width:100%;border-collapse:collapse;font-size:14px;margin:8px 0}.game-list td,.game-list th,.results td,.results th{text-align:left;padding:6px 8px;border-bottom:1px solid var(--border)}.game-list .opponent{white-space:nowrap}.game-list .opponent .avatar{vertical-align:middle}.game-list .up,.results .up{color:#3a7d44}.game-list .down{color:#ca3431}.filters{display:flex;flex-wrap:wrap;gap:12px;margin:12px 0;font-size:14px}.filters label{display:flex;align-items:center;gap:6px}@media (max-width:640px){.game-list td:nth-child(5),.game-list td:nth-child(6),.game-list th:nth-child(5),.game-list th:nth-child(6){display:none}}.stats .tabs{justify-content:flex-start;margin-left:0}.account-links,.topnav-right{align-items:center}.account-links{display:flex;gap:12px}.topnav a.small-button{color:#fff;font-size:14px;padding:5px 12px}.account-menu{position:relative}.account-button{display:flex;align-items:center;gap:6px;padding:4px 10px 4px 4px;border-radius:18px}.account-avatar{width:26px;height:26px;border-radius:50%;background:var(--accent);color:#fff;display:inline-flex;align-items:center;justify-content:center;font-weight:700;font-size:13px}.account-dropdown{position:absolute;right:0;top:calc(100% + 6px);z-index:20;min-width:200px;list-style:none;margin:0;padding:6px;background:var(--panel);border:1px solid var(--border);border-radius:10px;box-shadow:0 6px 24px rgb(0 0 0/.15)}.account-dropdown li>a,.account-dropdown li>button{display:block;width:100%;text-align:left;padding:7px 10px;border:0;border-radius:6px;background:none;color:var(--text);font-size:14px}.account-dropdown li>a:hover,.account-dropdown li>button:hover{background:var(--button-hover)}.account-dropdown .account-email{padding:6px 10px 8px;font-size:13px;border-bottom:1px solid var(--border);margin-bottom:4px;overflow-wrap:anywhere}.auth{max-width:440px;margin:40px auto;padding:0 16px}.auth .panel{padding:24px}.auth h1{font-size:24px;margin-bottom:10px}.auth form{margin-top:16px}.field{display:flex;flex-direction:column;gap:4px;margin-bottom:14px}.field label{font-size:14px;font-weight:600}.field-input{display:flex;gap:6px}.field input{flex:1 1;min-width:0;font:inherit;font-size:16px;padding:9px 10px;border-radius:8px;border:1px solid var(--border);background:var(--bg,var(--panel));color:var(--text)}.field input[aria-invalid=true]{border-color:var(--accent)}.field-hint{font-size:13px}.field-error,.form-error{color:var(--accent);font-size:13px;margin:0}.form-error,.form-ok{font-size:14px;margin-bottom:12px}.form-ok{color:#3a7d44}.field-aside{margin:-6px 0 14px;font-size:14px}.link-button{background:none;border-color:transparent;color:var(--muted)}button.wide{width:100%;padding:10px;font-size:16px}.auth-alt{margin:18px 0 0;font-size:14px;text-align:center}.check-email p{margin:0 0 10px}.providers{display:flex;flex-direction:column;gap:8px;margin-top:16px}.providers .provider{width:100%;padding:10px;font-size:15px;font-weight:600}.providers .or{display:flex;align-items:center;gap:10px;color:var(--muted);font-size:13px;margin:8px 0 0}.providers .or:after,.providers .or:before{content:"";flex:1 1;border-top:1px solid var(--border)}.linked-sign-ins ul{list-style:none;margin:0;padding:0}.linked-sign-ins li{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:8px 0;border-bottom:1px solid var(--border);font-size:14px}.profile{max-width:860px;margin:24px auto;padding:0 16px}.profile-head{display:flex;align-items:center;gap:16px}.profile-head h1{margin:0 0 4px}.profile h2{font-size:18px;margin:24px 0 8px}.account-avatar.piece-black,.account-avatar.piece-red{background:#f6e3b8;border:2px solid #8a5a2b;font-family:KaiTi,STKaiti,"Noto Serif SC",serif}.account-avatar.piece-red{color:#c8281e}.account-avatar.piece-black{color:#1f1f1f}.fairplay-record{display:grid;grid-template-columns:max-content 1fr;gap:6px 16px;margin:0 0 8px}.fairplay-record dt{color:var(--muted)}.fairplay-record dd{margin:0;font-weight:600}.online-page{max-width:760px;margin:24px auto;padding:0 16px}.checklist{list-style:none;padding:0;line-height:1.8}.checklist ul{list-style:none;padding-left:22px;margin:4px 0}.checklist li>span[aria-hidden]{display:inline-block;width:1.2em;color:var(--muted)}.checklist li.done>span[aria-hidden]{color:#2e8b57;font-weight:700}.birth-month fieldset{border:0;padding:0;margin:4px 0;display:flex;gap:8px;flex-wrap:wrap;align-items:center}.online-settings h2{font-size:16px;margin:20px 0 6px}.online-settings .check{display:flex;gap:8px;align-items:center}.block-list{padding-left:18px}.profile-bots{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(96px,1fr));gap:10px}.profile-bots li{display:flex;flex-direction:column;align-items:center;gap:4px;text-align:center;color:var(--muted)}.profile-bots li:not(.beaten) .avatar{filter:grayscale(1);opacity:.5}.profile-bots li.beaten{color:var(--text);font-weight:600}.avatar-picker{display:flex;flex-wrap:wrap;gap:6px;border:0;padding:0;margin:0 0 12px}.avatar-picker legend{font-weight:600;margin-bottom:6px}.avatar-picker button{padding:3px;border:2px solid transparent;border-radius:50%;background:none;cursor:pointer}.avatar-picker button.active{border-color:var(--accent)}.country-picker{display:flex;flex-direction:column;gap:4px;max-width:320px;margin-bottom:16px;font-weight:600}.country-picker select{font-weight:400}.change-username{max-width:320px}.account-settings section{margin-top:22px}.account-settings h2{font-size:17px;margin:0 0 6px}.account-form{max-width:360px}.danger-zone{border-top:1px solid var(--border);padding-top:16px}.deletion-notice{padding:10px 12px;border:1px solid #b3261e;border-radius:8px;background:var(--panel)}.age-gate fieldset{border:0;padding:0;margin:0 0 12px;display:flex;gap:8px;flex-wrap:wrap}.age-gate legend{font-weight:600;margin-bottom:6px}.age-gate label{display:flex;flex-direction:column;gap:4px;font-weight:600;margin-bottom:8px}.age-gate select{font-weight:400}.big{font-size:17px;padding:10px 18px}a.button.big{display:inline-block}.tiles{display:flex;flex-wrap:wrap;gap:12px}.tile-group{display:flex;flex-direction:column;gap:6px;min-width:96px}.tile{font-size:18px;font-weight:600;padding:10px 12px;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.segmented .selected,.tile.selected{background:var(--accent);color:#fff;border-color:var(--accent)}.segmented{display:inline-flex;gap:0}.segmented button{border-radius:0}.segmented button:first-child{border-radius:6px 0 0 6px}.segmented button:last-child{border-radius:0 6px 6px 0}.friend-page .options{margin-top:12px}.friend-page>.primary.big{margin-top:20px}.challenge-code{font-size:40px;font-weight:700;letter-spacing:.15em;font-feature-settings:"tnum";font-variant-numeric:tabular-nums;margin:16px 0 8px}.share-link{display:flex;gap:8px;max-width:560px}.share-link input{flex:1 1;min-width:0}.challenge-terms{font-size:18px}.tile{display:flex;flex-direction:column;align-items:center;gap:2px}.tile.main{border-color:var(--accent)}.tile-count{font-size:12px;font-weight:400;color:var(--muted)}.quick-pair .buttons{display:flex;flex-wrap:wrap;gap:8px}.quick-pair .invite{margin:12px 0;padding:10px 12px;border:1px solid var(--accent);border-radius:8px}.quick-pair .nearest ul{list-style:none;padding:0;margin:4px 0 12px;line-height:2}.quick-pair .nearest button{padding:2px 10px}.sportsmanship .warning{margin:8px 0}.live-notice,.sportsmanship .warning{padding:10px 12px;border:1px solid var(--accent);border-radius:8px}.checklist-done{margin:16px 0}.checklist-done summary{cursor:pointer;font-weight:600}.waiting{display:flex;align-items:center;gap:8px;margin:16px 0}.waiting .dot{width:10px;height:10px;border-radius:50%;background:var(--accent);animation:xq-pulse 1.2s ease-in-out infinite}@keyframes xq-pulse{50%{opacity:.25}}@media (prefers-reduced-motion:reduce){.waiting .dot{animation:none}}.offer{margin-top:10px;padding:8px 10px;border:1px solid var(--accent);border-radius:8px;font-size:14px}.offer button{margin-top:6px}.phrases{display:flex;flex-wrap:wrap;gap:6px;margin-top:12px}.phrase{font-size:13px;padding:4px 8px}.clock.low{background:#b3261e}.online-game .who a{color:var(--text);font-weight:600}.online-game .player-bar{height:56px;position:relative}.online-game .player-bar .who{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.online-game .player-bar .bubble{position:absolute;left:50px;top:46px;z-index:2;white-space:nowrap;pointer-events:none}.game-review{margin-top:12px}.game-review h3{margin:0 0 4px;font-size:15px}.grade-counts{list-style:none;padding:0;margin:4px 0;display:grid;grid-template-columns:repeat(3,auto);gap:2px 12px;font-size:14px}.report-form fieldset{border:0;padding:0;margin:8px 0;display:flex;flex-direction:column;gap:4px}.report-form legend{font-weight:600;margin-bottom:4px}.report-form textarea{width:100%}.notices{list-style:none;padding:0;margin:12px 0;display:flex;flex-direction:column;gap:8px}.notices li,.sanction{padding:10px 12px;border:1px solid var(--accent);border-radius:8px}.leaderboard,.mod-table{border-collapse:collapse;margin:12px 0;width:100%;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.leaderboard td,.leaderboard th,.mod-table td,.mod-table th{text-align:left;padding:4px 8px;border-bottom:1px solid var(--border);vertical-align:top}.moderate-page{max-width:1100px}.moderate-page .mod-table{font-size:14px;display:block;overflow-x:auto}.mod-note{display:flex;flex-direction:column;gap:4px;max-width:640px}.mod-log,.mod-reports,.mod-sanctions{padding-left:18px;font-size:14px;line-height:1.7}button.danger{background:#b3261e;color:#fff;border-color:#b3261e}.triage{list-style:none;padding-left:12px;margin:2px 0 6px;font-size:13px}.triage-valid strong{color:#b3261e}.triage-invalid strong{color:#2e8b57}.contact-form{display:grid;gap:6px;max-width:520px}.contact-form label{display:flex;flex-direction:column;gap:2px}.operator-contact{font-style:normal;margin:8px 0 16px;line-height:1.6}.key-list{list-style:none;padding:0;margin:6px 0;font-size:14px;line-height:1.8}.key-list .dot{display:inline-block;width:9px;height:9px;border-radius:50%;vertical-align:middle}.key-list li.selected button{font-weight:600}.site-footer{display:flex;flex-wrap:wrap;justify-content:center;gap:6px 18px;margin:40px auto 24px;padding:12px 16px 0;border-top:1px solid var(--border);max-width:760px;font-size:13px}.site-footer a{color:var(--muted,inherit)}.feedback-kinds{border:0;padding:0;margin:0 0 8px;display:flex;flex-direction:column;gap:4px}.contact-form label.inline,.feedback-kinds label{flex-direction:row;align-items:center;gap:6px}.donate-buttons{display:flex;flex-wrap:wrap;gap:10px;margin:16px 0}.donate-buttons a.button{font-size:16px;padding:10px 18px}.mod-tabs{display:flex;gap:4px;margin:0 0 16px;border-bottom:1px solid var(--border)}.mod-tabs a{padding:6px 12px;text-decoration:none;border-bottom:2px solid transparent}.mod-tabs a[aria-current=page]{border-bottom-color:var(--accent);font-weight:600}.feedback-list{list-style:none;padding:0;display:grid;gap:12px}.feedback-list li{border:1px solid var(--border);border-radius:8px;padding:10px 12px}.feedback-list .message{white-space:pre-wrap;margin:6px 0}.digest{border:1px solid var(--border);border-radius:8px;padding:4px 14px 10px;margin:12px 0 20px}.digest h3{margin:8px 0 4px;font-size:16px}.digest h4{margin:12px 0 4px;font-size:14px}.mfa-gate{position:fixed;inset:0;background:rgba(0,0,0,.45);display:flex;align-items:center;justify-content:center;z-index:100;padding:16px}.mfa-gate-box{background:var(--bg,#fff);color:var(--text);border-radius:12px;padding:20px 24px;max-width:420px;width:100%}.enroll-2fa img{background:#fff;padding:8px;border-radius:8px}.confirm-its-you{border:1px solid var(--border);border-radius:8px;padding:10px 14px;margin:8px 0}