:root{--paper:#fbf6ec;--ink:#33271f;--muted:#8c8175;--red:#a94130;--gold:#c8952d;--green:#2f825d;--line:#e6dccd;--shadow:0 18px 60px #34271f26;--sans:Inter, "PingFang SC", "Microsoft YaHei", system-ui, sans-serif;--serif:"Noto Serif SC", "Songti SC", "SimSun", serif;font-family:var(--sans);color:var(--ink);font-synthesis:none;text-rendering:optimizelegibility;background:#e9dfd0}*{box-sizing:border-box}body{min-width:320px;min-height:100svh;margin:0}button,input{font:inherit}button{cursor:pointer}button:focus-visible,input:focus-visible{outline-offset:2px;outline:3px solid #c8952d66}button:disabled{cursor:not-allowed}#root{text-align:center;min-height:100svh}.home-page,.game-shell{background:var(--paper);width:min(100%,540px);min-height:100svh;margin:auto;position:relative;overflow:hidden}.home-page{padding:0 22px 32px}.home-nav,.game-header{justify-content:space-between;align-items:center;height:68px;display:flex}.home-nav strong{align-items:center;gap:9px;display:flex}.home-nav i{background:var(--red);color:#fff;border-radius:50%;place-items:center;width:34px;height:34px;font-style:normal;display:grid}.home-nav button,.icon-button{color:var(--ink);background:0 0;border:0;font-weight:700}.nav-actions{gap:4px;display:flex}.nav-actions button{padding:7px;font-size:12px}.hero-section{text-align:center;padding:42px 0 24px}.eyebrow{color:var(--red);letter-spacing:.16em;text-transform:uppercase;font-size:12px;font-weight:800;display:inline-block}.hero-section h1{font-family:var(--serif);margin:16px 0 14px;font-size:48px;line-height:1.15}.hero-section h1 em{color:var(--red);font-style:normal}.hero-section p{color:var(--muted);max-width:390px;margin:auto;font-size:15px}.demo-family{grid-template-rows:1fr 1fr;grid-template-columns:1fr 94px 1fr;align-items:center;gap:8px;height:170px;margin-top:28px;display:grid}.demo-family b{background:var(--red);color:#fff;width:88px;height:88px;font:56px var(--serif);border-radius:24px;grid-area:1/2/3;place-items:center;display:grid;box-shadow:0 14px 30px #a43a272f}.demo-family span{border:1px solid var(--line);font:24px var(--serif);background:#fff;border-radius:14px;justify-self:end;align-items:center;gap:8px;padding:9px 12px;display:flex}.demo-family span:nth-of-type(2n){justify-self:start}.demo-family small{font:13px var(--sans);color:var(--muted)}.entry-card,.round-panel{border:1px solid var(--line);background:#fff;border-radius:24px;padding:20px;box-shadow:0 18px 50px #543b2314}.profile-line{align-items:center;gap:14px;display:flex}.avatar-picker{background:var(--gold);color:#fff;width:54px;height:54px;font:30px var(--serif);border:0;border-radius:16px;flex:none}.profile-line label{text-align:left;flex:1}.profile-line label span{color:var(--muted);margin-bottom:3px;font-size:11px;display:block}.profile-line input,.join-line input{border:0;border-bottom:1px solid var(--line);width:100%;font:inherit;box-sizing:border-box;outline:none;padding:5px 0}.primary-button{background:var(--red);color:#fff;border:0;border-radius:16px;width:100%;padding:15px;font-size:16px;font-weight:800;box-shadow:0 8px 20px #a43a2738}.entry-card>.primary-button{margin-top:18px}.wechat-button{color:#168743;background:#f2fff6;border:1px solid #9bd3af;border-radius:16px;width:100%;margin-top:10px;padding:12px;font-weight:800}.wechat-button b{color:#fff;background:#20b358;border-radius:50%;place-items:center;width:23px;height:23px;margin-right:7px;display:inline-grid}.wechat-button:disabled{opacity:.65}.primary-button:disabled{opacity:.5}.join-line{gap:10px;margin-top:12px;display:flex}.join-line input{border:1px solid var(--line);text-transform:uppercase;border-radius:12px;padding:10px 12px}.join-line button,.share-actions button{border:1px solid var(--line);background:#fff;border-radius:12px;padding:0 16px;font-weight:700}.invite-note{color:#745c26;background:#fff5db;border-radius:10px;margin-top:14px;padding:9px;font-size:13px}.form-error{color:var(--red);margin-top:10px;font-size:13px}.rules-row{grid-template-columns:repeat(3,1fr);gap:8px;margin-top:18px;display:grid}.rules-row article{background:#f5eee1;border-radius:14px;flex-direction:column;padding:14px 6px;display:flex}.rules-row b{color:var(--red);font-size:22px}.rules-row b small{font-size:11px}.rules-row span{color:var(--muted);font-size:10px}.game-shell{padding-bottom:92px}.game-header{border-bottom:1px solid var(--line);padding:0 16px}.game-header>div{text-align:center;flex-direction:column;display:flex}.game-header small{color:var(--muted);font-size:11px}.icon-button{background:#f4ecdf;border-radius:50%;width:42px;height:42px;font-size:25px}.status-strip{align-items:center;gap:12px;padding:14px 18px;display:flex}.timer{color:var(--red);align-items:baseline;display:flex}.timer span{font-size:32px;font-weight:900}.timer small{font-size:11px}.timer.urgent{animation:.7s infinite pulse}.progress-wrap{flex:1}.progress-label{justify-content:space-between;font-size:11px;display:flex}.progress-track{background:#e8dfd1;border-radius:9px;height:7px;margin-top:5px;overflow:hidden}.progress-track i{background:var(--gold);height:100%;transition:width .25s;display:block}.connection{color:var(--muted);font-size:10px}.connection.online{color:var(--green)}.players-row{gap:7px;padding:4px 18px 12px;display:flex;overflow-x:auto}.player-chip,.invite-chip{border:1px solid var(--line);background:#fff;border-radius:20px;flex:none;align-items:center;gap:5px;padding:5px 9px;display:flex}.player-chip.active{border-color:var(--green)}.player-chip small{text-overflow:ellipsis;max-width:54px;overflow:hidden}.invite-chip{color:var(--red);font-weight:700}.character-stage{text-align:center;flex-direction:column;justify-content:center;min-height:220px;display:flex;position:relative}.character-stage p{color:var(--muted);font-size:12px}.base-character{font:128px/1.15 var(--serif);color:var(--ink);text-shadow:3px 3px #fff}.floating-feedback{box-shadow:var(--shadow);white-space:nowrap;background:#fff;border-radius:15px;padding:7px 12px;font-size:13px;animation:.35s floatIn;position:absolute;bottom:0;left:50%;transform:translate(-50%)}.floating-feedback.correct{color:var(--green)}.floating-feedback.wrong{color:var(--red)}.option-grid{grid-template-columns:repeat(4,1fr);gap:9px;padding:12px 16px;display:grid}.radical-card{border:1px solid var(--line);background:#fff;border-radius:17px;flex-direction:column;justify-content:center;align-items:center;min-height:94px;transition:all .2s;display:flex;box-shadow:0 6px 16px #543b230d}.radical-card strong{font:38px var(--serif);color:var(--ink)}.radical-card small{color:var(--muted);font-size:9px;line-height:1.3}.radical-card:active:not(:disabled){transform:scale(.92)}.radical-card.claimed{box-shadow:none;background:#e6e2da}.radical-card.claimed strong{color:#9b958d}.radical-card.missing{animation:1s infinite glow}.radical-card.just-correct{border-color:var(--green);animation:.35s correctPop;box-shadow:0 0 0 5px #2f825d2e}.radical-card.just-wrong{border-color:var(--red);animation:.35s shake}.contribution-bar{color:#fff;background:#34271f;border-radius:17px;justify-content:space-between;align-items:center;padding:11px 14px;font-size:11px;display:flex;position:absolute;bottom:14px;left:14px;right:14px}.contribution-bar div{gap:8px;display:flex}.contribution-bar b{font-weight:500}.round-panel{text-align:center;margin:40px 18px;padding:28px 20px}.round-panel h1{font:32px var(--serif);margin:12px 0}.round-panel>p{color:var(--muted);margin-bottom:24px;font-size:14px}.seal{border:3px double var(--red);width:74px;height:74px;font:44px var(--serif);color:var(--red);border-radius:50%;place-items:center;margin:auto;display:grid}.seal.win{background:var(--red);color:#fff}.word-family{gap:7px;margin:18px 0;display:flex;overflow:auto}.word-family span{background:#f6efe3;border-radius:12px;min-width:62px;padding:8px}.word-family small,.word-family b{display:block}.word-family small{color:var(--muted);font-size:9px}.word-family b{font:28px var(--serif)}.score-summary{flex-wrap:wrap;justify-content:center;gap:10px;margin-bottom:14px;font-size:11px;display:flex}.score-summary strong{color:var(--red)}.mvp-card{text-align:left;background:#fff6dc;border-radius:14px;align-items:center;gap:12px;margin:12px 0;padding:10px;display:flex}.mvp-card>span{font-size:30px}.mvp-card div>*{margin:0;display:block}.mvp-card small{color:var(--gold)}.mvp-card p{color:var(--muted);font-size:10px}.share-actions{justify-content:center;gap:7px;margin-top:12px;display:flex}.share-actions button{padding:8px;font-size:11px}.text-button{color:var(--red);background:0 0;border:0;padding:10px;font-weight:700}.lock-overlay,.modal-backdrop{z-index:20;background:#211810bd;place-items:center;padding:22px;display:grid;position:fixed;inset:0}.lock-overlay{color:#fff;align-content:center}.lock-overlay strong{font-size:82px}.lock-overlay span{display:block}.help-card,.ranking-card{box-sizing:border-box;text-align:center;background:#fffaf1;border-radius:24px;width:min(100%,390px);padding:28px;position:relative}.help-card h2{font:32px var(--serif);margin:10px}.help-card p{color:var(--muted);margin-bottom:18px;font-size:13px}.toast{z-index:30;color:#fff;box-shadow:var(--shadow);background:#34271f;border:0;border-radius:20px;padding:10px 18px;position:fixed;bottom:24px;left:50%;transform:translate(-50%)}.ranking-card{max-height:80vh;overflow:auto}.ranking-card h2{font:30px var(--serif)}.ranking-card h3{text-align:left;color:var(--muted);margin-top:20px;font-size:12px}.close-button{background:0 0;border:0;font-size:26px;position:absolute;top:12px;right:14px}.rank-row{text-align:left;border-bottom:1px solid var(--line);grid-template-columns:25px 1fr auto;padding:10px;font-size:13px;display:grid}.rank-row>strong{color:var(--red)}.history-card{width:min(100%,440px)}.history-summary{grid-template-columns:repeat(4,1fr);gap:7px;margin:16px 0 10px;display:grid}.history-summary span{color:var(--muted);background:#f5eee1;border-radius:12px;padding:10px 4px;font-size:10px}.history-summary b{color:var(--red);font-size:20px;display:block}.history-accuracy{color:var(--muted);margin-bottom:14px;font-size:12px}.history-list article{border-top:1px solid var(--line);text-align:left;grid-template-columns:48px 1fr;gap:10px;padding:11px 0;display:grid}.history-base{width:46px;height:46px;color:var(--muted);font:26px var(--serif);background:#ece6dc;border-radius:13px;place-items:center;display:grid}.history-base.success{color:var(--green);background:#e7f5eb}.history-list strong,.history-list small,.history-list p{display:block}.history-list small,.history-list p{color:var(--muted);margin:3px 0 0;font-size:10px}@keyframes pulse{50%{transform:scale(1.12)}}@keyframes floatIn{0%{opacity:0;transform:translate(-50%,10px)}}@keyframes glow{50%{border-color:var(--gold);box-shadow:0 0 0 5px #dcaa3745}}@keyframes correctPop{50%{transform:scale(1.1)}}@keyframes shake{25%{transform:translate(-6px)}75%{transform:translate(6px)}}@media (width<=380px){.option-grid{grid-template-columns:repeat(3,1fr)}.hero-section h1{font-size:40px}}@media (prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}
