:root{--ink:#18362e;--forest:#245847;--sage:#dce9db;--paper:#f8f6f0;--cream:#eee9dc;--gold:#e8b746;--coral:#d96b4a;--line:#dedbcf;--muted:#718077;--white:#fffdf8;--shadow:0 18px 55px rgba(27,55,45,.10)}*{box-sizing:border-box}body{margin:0;background:var(--paper);color:var(--ink);font-family:"Noto Sans SC",sans-serif}.app-shell{max-width:1250px;margin:auto;padding:0 42px 48px}.topbar{height:98px;display:flex;align-items:center;justify-content:space-between}.brand{border:0;background:none;color:var(--ink);font-weight:700;font-size:21px;letter-spacing:.02em;display:flex;align-items:center;gap:10px;cursor:pointer}.brand-mark{display:grid;place-items:center;width:37px;height:37px;border-radius:12px;background:var(--forest);color:#fff;font-size:19px}.brand em{font:500 10px "DM Mono",monospace;letter-spacing:.12em;color:#809086;margin-left:3px}.nav-actions{display:flex;align-items:center;gap:21px}button{font:inherit;cursor:pointer}.text-button{border:0;background:none;color:var(--forest);font-weight:600}.pill-button,.primary-btn{background:var(--forest);color:white;border:0;border-radius:12px;padding:12px 18px;font-weight:600;box-shadow:0 6px 16px rgba(36,88,71,.16)}.view{display:none}.view.active{display:block}.eyebrow{font:500 11px "DM Mono",monospace;letter-spacing:.13em;color:#78877f;text-transform:uppercase}.hero{min-height:570px;position:relative;overflow:hidden;border-radius:28px;background:var(--sage);padding:73px 68px}.hero:after{content:"";position:absolute;width:390px;height:390px;border-radius:50%;right:-52px;top:-86px;background:#c4dac2}.hero:before{content:"";position:absolute;width:195px;height:195px;border-radius:50%;right:228px;bottom:-99px;background:var(--gold);opacity:.9}.hero-copy{position:relative;z-index:1;max-width:630px}.hero h1{font:700 clamp(44px,6vw,74px)/1.13 Fraunces,"Noto Sans SC",serif;letter-spacing:-.04em;margin:20px 0}.hero p{color:#4d675e;line-height:1.8;font-size:17px;max-width:485px}.hero-actions{margin-top:33px;display:flex;gap:13px}.primary-btn{font-size:15px;padding:15px 21px}.secondary-btn{border:1px solid #abc4ad;background:rgba(255,255,255,.43);color:var(--forest);border-radius:12px;padding:14px 19px;font-weight:600}.stat-row{position:relative;z-index:1;display:flex;gap:38px;margin-top:68px}.stat{border-left:1px solid #9bb99e;padding-left:14px}.stat b{display:block;font:700 28px Fraunces,serif}.stat span{font-size:12px;color:#5d756b}.section-head{display:flex;justify-content:space-between;align-items:end;margin:54px 0 19px}.section-head h2{font:700 29px Fraunces,"Noto Sans SC",serif;margin:8px 0 0}.set-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:17px}.set-card{background:var(--white);border:1px solid var(--line);border-radius:18px;padding:20px;min-height:172px;transition:.2s;cursor:pointer}.set-card:hover{transform:translateY(-3px);box-shadow:var(--shadow)}.card-top{display:flex;justify-content:space-between}.badge{font:500 10px "DM Mono",monospace;background:#edf4ea;color:var(--forest);padding:6px 8px;border-radius:5px;letter-spacing:.04em}.dot-menu{border:0;background:none;color:#738078;font-size:20px;line-height:1}.set-card h3{margin:20px 0 7px;font-size:18px}.set-card p{color:var(--muted);font-size:13px;margin:0}.card-bottom{display:flex;justify-content:space-between;align-items:center;margin-top:25px;font:500 11px "DM Mono",monospace;color:#89948d}.empty{padding:55px;text-align:center;border:1px dashed #b8c5b9;border-radius:18px;color:#718077}.page-title{margin:25px 0 31px}.page-title h1{font:700 42px Fraunces,"Noto Sans SC",serif;margin:8px 0}.library-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:17px}.add-card{display:grid;place-items:center;background:transparent;border:1.5px dashed #b7c8b9;color:var(--forest);font-weight:600}.editor-layout{display:grid;grid-template-columns:1fr 350px;gap:34px}.panel{background:var(--white);border:1px solid var(--line);border-radius:20px;padding:27px}.field{display:grid;gap:8px;margin-bottom:17px}.field label{font-size:13px;font-weight:600}.field input{border:1px solid #d9d8ce;border-radius:10px;background:#fffefa;padding:12px 13px;color:var(--ink);font:inherit;outline:none}.field input:focus{border-color:var(--forest);box-shadow:0 0 0 3px #e0eee0}.question-row{display:grid;grid-template-columns:38px 1fr 1fr 34px;gap:10px;align-items:center;margin-bottom:10px}.question-row input{min-width:0;border:1px solid #dddcd2;border-radius:9px;padding:11px;font:inherit}.number{font:500 12px "DM Mono",monospace;color:#849188;text-align:center}.icon-btn{border:0;background:none;color:#9c6252;font-size:19px}.add-question{width:100%;border:1px dashed #a8c3ac;background:#f5f9f3;color:var(--forest);border-radius:10px;padding:12px;font-weight:600;margin-top:6px}.side-note{background:var(--sage);border:0}.side-note h3{font:700 22px Fraunces,"Noto Sans SC",serif;margin:0 0 12px}.side-note p{color:#557064;font-size:13px;line-height:1.8}.side-note li{font-size:13px;color:#557064;margin:9px 0}.editor-actions{display:flex;gap:10px;margin-top:24px}.danger-btn{border:1px solid #e7c4ba;background:white;color:#a24f38;border-radius:10px;padding:11px 13px}.setup-card{max-width:780px;margin:40px auto;background:var(--white);border:1px solid var(--line);border-radius:25px;padding:44px}.setup-card h1{font:700 45px Fraunces,"Noto Sans SC",serif;margin:8px 0 13px}.setup-card>p{color:var(--muted)}.setup-summary{margin:28px 0;background:#f3f6ef;border-radius:14px;padding:17px;display:flex;justify-content:space-between}.setup-fields{display:grid;grid-template-columns:1fr 1fr;gap:15px}.game-wrap{min-height:calc(100vh - 146px);display:flex;flex-direction:column}.game-meta{display:flex;align-items:center;justify-content:space-between;margin:12px 0 23px}.progress-track{height:6px;background:#e2e6dd;border-radius:9px;flex:1;margin:0 20px;overflow:hidden}.progress-fill{height:100%;background:var(--gold);transition:width .35s}.counter{font:500 12px "DM Mono",monospace}.score-chip{background:#edf4ea;color:var(--forest);padding:8px 12px;border-radius:8px;font:500 12px "DM Mono",monospace}.question-stage{flex:1;background:var(--white);border:1px solid var(--line);border-radius:28px;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:38px;text-align:center;position:relative;overflow:hidden}.timer-ring{width:113px;height:113px;border-radius:50%;display:grid;place-items:center;background:conic-gradient(var(--gold) var(--timer),#eef0e9 0);margin-bottom:28px;position:relative}.timer-ring:before{content:"";position:absolute;inset:8px;border-radius:50%;background:var(--white)}.timer-ring b{position:relative;font:700 38px Fraunces,serif}.prompt{font:700 clamp(52px,8vw,94px)/1.2 Fraunces,"Noto Sans SC",serif;letter-spacing:-.04em;margin:0 0 31px}.answer-box{width:min(580px,100%);position:relative}.answer-box input{width:100%;border:1.5px solid #c8d4c7;border-radius:15px;padding:18px 126px 18px 21px;font:500 22px "Noto Sans SC",sans-serif;text-align:center;outline:0;color:var(--ink)}.answer-box input:focus{border-color:var(--forest);box-shadow:0 0 0 4px #e6f0e4}.answer-box button{position:absolute;right:6px;top:6px;bottom:6px;border:0;border-radius:10px;background:var(--forest);color:#fff;padding:0 17px;font-weight:600}.game-controls{display:flex;justify-content:space-between;padding-top:19px}.feedback{position:absolute;inset:0;background:rgba(248,246,240,.96);display:none;place-items:center;padding:30px}.feedback.show{display:grid}.feedback-card{max-width:620px;text-align:center}.feedback .symbol{font:700 68px Fraunces,serif;display:block}.feedback.good .symbol{color:var(--forest)}.feedback.bad .symbol{color:var(--coral)}.feedback h2{font:700 45px Fraunces,"Noto Sans SC",serif;margin:5px}.feedback p{color:#64746b;font-size:16px}.correct-answer{display:inline-block;background:#e8f1e5;padding:11px 20px;border-radius:10px;color:var(--forest);font:600 20px "DM Mono",monospace;margin:7px}.result-card{max-width:760px;margin:45px auto;text-align:center;background:var(--white);border:1px solid var(--line);border-radius:28px;padding:52px}.result-card h1{font:700 50px Fraunces,"Noto Sans SC",serif;margin:10px 0}.result-score{font:700 90px Fraunces,serif;color:var(--forest);line-height:1}.result-score small{font:500 24px "Noto Sans SC",sans-serif;color:#879187}.result-card>p{color:var(--muted)}.mistakes{text-align:left;margin:32px 0;border-top:1px solid var(--line)}.mistake{display:grid;grid-template-columns:1fr 1fr;gap:10px;padding:15px 0;border-bottom:1px solid var(--line);font-size:14px}.mistake span:last-child{color:var(--forest);font-family:"DM Mono",monospace}.hidden{display:none}@media(max-width:750px){.app-shell{padding:0 18px 32px}.topbar{height:75px}.brand em,.nav-actions .text-button{display:none}.hero{padding:48px 28px;min-height:500px}.set-grid,.library-grid{grid-template-columns:1fr}.editor-layout{grid-template-columns:1fr}.panel{padding:20px}.question-row{grid-template-columns:29px 1fr 1fr 28px}.setup-card{padding:28px 22px}.setup-fields{grid-template-columns:1fr}.prompt{font-size:54px}.answer-box input{padding-right:93px;font-size:17px}.answer-box button{padding:0 11px}.stat-row{margin-top:45px;gap:20px}.game-meta{margin-top:0}.timer-ring{width:90px;height:90px}.timer-ring b{font-size:30px}}

/* 2026-10-16 整体等比放大（大萤幕／电视）：倍率由 page-loading.js 算进 --bana-zoom */
html.bana-zoomed main.app-shell,html.bana-zoomed .finishfx-card{zoom:var(--bana-zoom,1)}
