:root{--paper:#f7f3e9;--ink:#203b36;--muted:#5e6b62;--teal:#18574e;--teal-soft:#e2ece4;--rust:#a94e32;--gold:#e5b664;--line:#d8d9c9;--scale:1;color-scheme:light;font-size:calc(16px * var(--scale))}
*{box-sizing:border-box}body{margin:0;color:var(--ink);background:var(--paper);font-family:"Segoe UI",system-ui,sans-serif;line-height:1.5}button,input,select{font:inherit}button,select{cursor:pointer}button,a,input,select{touch-action:manipulation}button{min-height:46px;border:1px solid var(--line);border-radius:9px;padding:10px 18px;color:var(--ink);background:#fffdf7;font-weight:600;transition:background .15s,transform .15s}button:hover:not(:disabled){background:#edeede}button:active:not(:disabled){transform:translateY(1px)}button:disabled{opacity:.5;cursor:not-allowed}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,summary:focus-visible{outline:3px solid #be602f;outline-offset:4px}input,select{border:1px solid #82978b;border-radius:7px;background:#fffdf8;color:var(--ink);min-height:44px;padding:9px 12px;max-width:100%}a{color:var(--teal)}h1,h2,h3,p{margin-top:0}h1,h2{font-family:Georgia,"Noto Serif",serif;font-weight:500;line-height:1.08;letter-spacing:-.035em}h1{font-size:clamp(3.4rem,6vw,5.7rem);margin-bottom:22px}h2{font-size:clamp(2rem,4vw,3.2rem);margin-bottom:20px}h3{font-size:1.15rem;line-height:1.3;margin-bottom:12px}p{margin-bottom:16px}.masthead{max-width:1440px;margin:auto;padding:24px 38px 16px;display:flex;align-items:center;justify-content:space-between;gap:18px;border-bottom:1px solid var(--line)}.brand{display:flex;align-items:center;gap:13px;text-decoration:none;color:var(--ink);font-size:.85rem;font-weight:800;letter-spacing:.08em}.brand small{display:block;font-size:.61rem;letter-spacing:.18em;margin-top:5px;font-weight:500}.brand-mark{background:var(--teal);color:#fff7df;width:51px;height:55px;display:flex;flex-direction:column;align-items:center;justify-content:center;font-family:Georgia,serif;font-size:1.15rem;border-radius:2px 2px 13px 2px;letter-spacing:0}.brand-mark span{font:8px system-ui;letter-spacing:2px}.masthead nav{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.quiet{background:transparent;border-color:transparent;font-size:.85rem;padding:8px 10px}.text-size{font-size:.8rem;display:flex;align-items:center;gap:7px}.text-size select{padding:4px 6px;min-height:34px;font-size:.8rem}.audio-line{max-width:1440px;margin:auto;min-height:37px;padding:6px 38px;display:flex;gap:14px;align-items:center;font-size:.75rem;color:var(--muted)}.audio-line button{min-height:28px;padding:2px 10px;font-size:.75rem}main{max-width:1364px;margin:auto;padding:28px 38px 56px;min-height:70vh}main:focus{outline:none}footer{max-width:1364px;border-top:1px solid var(--line);margin:auto;padding:20px 38px 28px;font-size:.75rem;color:var(--muted);display:flex;justify-content:space-between;gap:15px}.eyebrow{text-transform:uppercase;font-size:.73rem;font-weight:800;letter-spacing:.18em;color:var(--rust);margin-bottom:16px}.hero{display:grid;grid-template-columns:.93fr 1.07fr;gap:65px;align-items:center;padding:20px 0 38px}.hero .lead{font-size:1.13rem;line-height:1.7;max-width:465px;color:#526159}.hero em{font-style:italic;color:var(--teal)}.postcard{position:relative}.courtyard{display:block;width:100%;height:auto;border-radius:20px}.scene-note{display:flex;justify-content:space-between;gap:15px;color:var(--muted);font-size:.75rem;margin:13px 4px 0}.seal{position:absolute;right:15px;top:-17px;border:1px solid #d6b66f;color:#78562b;background:#f9e9bb;border-radius:50%;width:83px;height:83px;display:grid;place-content:center;transform:rotate(9deg);text-align:center;font-family:Georgia,serif;line-height:1.2;font-size:1.1rem}.seal small{font:9px system-ui;letter-spacing:.12em;margin-top:5px}.pill{display:inline-flex;align-items:center;gap:7px;padding:6px 12px;background:var(--teal-soft);border-radius:30px;font-size:.74rem;font-weight:650}.hero-facts{display:flex;gap:10px;flex-wrap:wrap}.setup{border-top:1px solid var(--line);padding-top:26px;display:grid;grid-template-columns:1fr 1.18fr;gap:38px}.step-label{font-size:.72rem;letter-spacing:.13em;text-transform:uppercase;color:var(--muted);font-weight:800;margin-bottom:12px}.segmented{display:grid;grid-template-columns:1fr 1fr;gap:10px}.mode-card{text-align:left;padding:15px 18px;background:transparent;min-height:85px}.mode-card strong{display:block}.mode-card small{display:block;color:var(--muted);font-weight:400;margin-top:5px}.mode-card[aria-pressed=true],.range-card[aria-pressed=true]{border-color:var(--teal);background:var(--teal-soft);box-shadow:inset 0 0 0 1px var(--teal)}.ranges{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.range-card{padding:14px 12px;text-align:left;background:transparent}.range-card strong{display:block;font-family:Georgia,serif;font-size:1.7rem;letter-spacing:-.05em}.range-card small{font-size:.72rem;color:var(--muted)}.setup-bottom{margin-top:25px;display:flex;align-items:center;justify-content:space-between;gap:15px;grid-column:1/-1}.setup-bottom p{font-size:.85rem;margin:0;max-width:590px;color:var(--muted)}.primary{background:var(--teal);color:#fffaf0;border-color:var(--teal)}.primary:hover:not(:disabled){background:#103f39}.start-button{font-size:1.03rem;min-width:232px;min-height:54px}.team-settings{grid-column:1/-1;background:#eeece1;padding:20px;border-radius:12px}.team-fields{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-top:14px}.team-fields label{font-size:.8rem}.team-fields input{width:100%;margin-top:5px}.team-top{display:flex;gap:20px;align-items:center;flex-wrap:wrap}.team-top label{font-size:.85rem}.screen-head{display:flex;justify-content:space-between;gap:20px;align-items:center;margin-bottom:24px}.screen-head .eyebrow{margin-bottom:5px}.screen-head h2{font-size:2rem;margin:0}.controls{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.round-layout{display:grid;grid-template-columns:minmax(0,1fr) 320px;gap:28px}.play-card{background:#fffdf7;border:1px solid var(--line);border-radius:20px;padding:32px}.round-meta{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:22px}.round-meta span{font-size:.78rem;color:var(--muted)}.progress{height:5px;display:flex;gap:5px;margin-bottom:24px}.progress i{display:block;flex:1;border-radius:5px;background:#dfe1d6}.progress i.done{background:var(--teal)}.progress i.now{background:var(--rust)}.play-card h2{font-size:2.5rem;margin-bottom:13px}.prompt{font-size:1.08rem;color:var(--muted);max-width:630px}.listen-area{display:flex;gap:18px;align-items:center;margin:23px 0}.listen-button{border-radius:50%;width:82px;height:82px;min-width:82px;background:var(--teal);border-color:var(--teal);color:white;display:grid;place-content:center}.listen-button:hover:not(:disabled){background:#103f39}.listen-button svg{width:32px;height:32px}.listen-copy strong{display:block;font-size:1rem}.listen-copy .quiet{padding-left:0;color:var(--teal)}.choices{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-top:22px}.choice{padding:17px 10px;text-align:center;border-radius:12px;position:relative;min-height:108px;background:var(--paper)}.choice .letter{display:block;font:700 .68rem system-ui;letter-spacing:.05em;color:var(--muted)}.choice .value{display:block;font-family:Georgia,serif;font-size:2.15rem;letter-spacing:-.05em;line-height:1.3;margin:4px 0}.choice .unit{font-size:.72rem;font-weight:400;color:var(--muted)}.choice.selected{border-color:var(--teal);box-shadow:inset 0 0 0 2px var(--teal);background:var(--teal-soft)}.choice.correct{background:#e2eddf;border-color:#4d7853}.choice.wrong{border:2px dashed var(--rust);background:#f8e9dc}.choice:disabled{opacity:1}.round-actions{display:flex;justify-content:space-between;gap:12px;align-items:center;margin-top:25px;flex-wrap:wrap}.round-actions .primary{min-width:150px}.text-button{border:none;background:none;color:var(--teal);font-size:.85rem;text-decoration:underline;text-underline-offset:4px;padding:9px 0}.support{background:#f1f4eb;border-left:3px solid var(--teal);padding:15px 20px;margin-top:18px}.zh{font-size:2rem;font-family:"Microsoft YaHei","Noto Sans CJK SC",sans-serif;letter-spacing:.08em;line-height:1.5}.py{color:var(--teal);font-size:1.05rem;margin-top:4px}.clue{color:#59645d;font-size:.85rem;margin-top:6px}.en{font-size:.9rem;margin-top:10px;font-weight:650}.feedback{border-top:1px solid var(--line);margin-top:24px;padding-top:23px}.feedback h3{font-family:Georgia,serif;font-size:1.55rem}.feedback .support{margin-bottom:18px}.insight{background:#f7edcf;border-radius:10px;padding:15px 18px;font-size:.9rem;margin-top:18px}.insight strong{display:block;margin-bottom:5px}.insight p{margin:0}.side-scene{padding:15px;border:1px solid var(--line);border-radius:18px;background:#efeede}.side-scene .courtyard{border-radius:10px}.side-scene h3{font-family:Georgia,serif;font-size:1.25rem;margin:17px 4px 7px}.side-scene p{font-size:.8rem;color:var(--muted);margin:0 4px 8px}.scoreboard{padding:22px 2px}.score-row{display:flex;justify-content:space-between;align-items:center;padding:12px 3px;border-bottom:1px solid var(--line);gap:12px}.score-row strong{font-family:Georgia,serif;font-size:1.6rem}.score-row .name{overflow-wrap:anywhere}.role-note{color:var(--muted);font-size:.82rem;line-height:1.7;margin-top:18px}.team-entry{margin-top:22px;display:grid;grid-template-columns:repeat(2,1fr);gap:12px}.team-entry label{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:12px;background:var(--paper);border-radius:9px;font-size:.86rem}.team-entry label span{overflow-wrap:anywhere}.team-entry select{min-width:106px}.notice{font-size:.82rem;color:var(--rust);margin-top:14px}.timer{font-variant-numeric:tabular-nums;font-weight:700;border:1px solid var(--line);border-radius:7px;padding:7px 12px;font-size:.85rem}.end-layout{display:grid;grid-template-columns:1.05fr 1fr;gap:50px;align-items:center;padding-top:30px}.end-score{font-family:Georgia,serif;font-size:4.5rem;line-height:1;margin:24px 0 15px;color:var(--teal)}.end-score small{font-size:1.8rem;color:var(--muted)}.end-layout .controls{margin-top:25px}.winner-names{font-size:1.35rem;font-weight:700;color:var(--teal);overflow-wrap:anywhere}.practice-card{max-width:700px;margin:25px auto}.practice-top{display:flex;justify-content:space-between;align-items:center;gap:15px;margin-bottom:22px}.practice-top label{display:flex;gap:10px;align-items:center;font-size:.85rem}.practice-top input{width:115px}.practice-card .support{text-align:center;padding:35px 15px}.practice-card .zh{font-size:3rem}.practice-controls{display:flex;justify-content:center;gap:10px;flex-wrap:wrap;margin-top:25px}.setup-practice{margin-top:18px;font-size:.8rem;color:var(--muted)}dialog{border:1px solid var(--line);border-radius:16px;background:#fffdf6;color:var(--ink);max-width:630px;width:calc(100% - 32px);padding:32px;max-height:88vh;overflow:auto;box-shadow:0 20px 90px #122c3e44}dialog::backdrop{background:#203b36a8;backdrop-filter:blur(4px)}dialog h2{font-size:2rem}dialog p,dialog li{font-size:.94rem}dialog li{margin-bottom:10px}dialog .primary{margin-top:12px}.modal-actions{display:flex;gap:12px;margin-top:22px}.small{font-size:.8rem;color:var(--muted)}.spark{color:var(--rust)}
@media(min-width:1600px){main{padding-top:45px}.play-card{padding:42px}.round-layout{grid-template-columns:minmax(0,1fr) 360px}.choices .value{font-size:2.5rem}}
@media(max-width:1050px){.hero{gap:30px}.masthead{align-items:flex-start}.masthead nav{justify-content:flex-end}.text-size{display:none}.round-layout{grid-template-columns:minmax(0,1fr) 250px}.choices{gap:8px}.play-card{padding:24px}.setup{gap:25px}.team-fields{grid-template-columns:repeat(2,1fr)}}
@media(max-width:780px){.masthead{padding:18px 20px 12px;flex-wrap:wrap}.masthead nav{width:100%;justify-content:flex-start;gap:4px}.masthead .quiet{font-size:.75rem;padding:7px 9px;min-height:38px}.text-size{display:flex;margin-left:auto}.audio-line{padding:5px 20px;min-height:40px}main{padding:15px 20px 35px}.hero{grid-template-columns:1fr;gap:26px;padding-top:15px}.hero h1{font-size:3.65rem}.hero .lead{max-width:100%;font-size:1rem}.hero .postcard{max-width:540px}.seal{width:67px;height:67px;font-size:.9rem;top:-7px}.setup{grid-template-columns:1fr;gap:22px}.setup-bottom{margin-top:0;align-items:stretch;flex-direction:column}.start-button{width:100%}.round-layout{grid-template-columns:1fr}.round-sidebar{display:flex;gap:20px;flex-wrap:wrap}.side-scene{width:180px;flex:1;min-width:160px}.side-scene .courtyard{max-height:170px}.side-scene h3{font-size:1rem}.scoreboard{flex:1;min-width:150px;padding-top:0}.role-note{width:100%;margin-top:0}.screen-head{align-items:flex-start}.screen-head h2{font-size:1.5rem}.controls button{padding:8px 12px;font-size:.8rem}.play-card{padding:22px 18px}.play-card h2{font-size:2rem}.choice{padding:14px 5px;min-height:100px}.choice .value{font-size:1.9rem}.choice .unit{font-size:.63rem}.end-layout{grid-template-columns:1fr;gap:30px}.end-layout h1{font-size:3.2rem}.end-layout .postcard{order:-1;max-width:500px}.end-layout .courtyard{max-height:240px}footer{padding:18px 20px;flex-wrap:wrap}.zh{font-size:1.7rem}.team-entry{grid-template-columns:1fr}.practice-top{flex-wrap:wrap}.practice-card .zh{font-size:2rem}}
@media(max-width:420px){.text-size{margin-left:0}.hero h1{font-size:3.25rem}.ranges{gap:7px}.range-card{padding:12px 8px}.range-card strong{font-size:1.5rem}.range-card small{font-size:.65rem}.mode-card{padding:13px}.choices{grid-template-columns:repeat(2,1fr)}.choice{min-height:94px}.listen-area{gap:12px}.listen-button{width:67px;height:67px;min-width:67px}.round-meta{align-items:flex-start}.screen-head{flex-wrap:wrap}.team-fields{grid-template-columns:1fr}.practice-top label{flex-wrap:wrap}}
@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important;scroll-behavior:auto!important}}
@media(min-width:781px) and (max-width:1050px){.text-size{display:flex}.masthead nav{max-width:440px}}

/* Shared CSL navigation remains available across every game screen. */
.site-identity{display:flex;align-items:center;gap:20px;flex-wrap:wrap}.hub-link{display:flex;flex-direction:column;align-items:center;flex-shrink:0;text-decoration:none;color:var(--teal);font-size:.72rem;font-weight:650;gap:3px}.hub-link img{display:block;width:150px;height:75px;object-fit:contain;background:transparent;mix-blend-mode:multiply}.hub-link:hover span{text-decoration:underline;text-underline-offset:3px}.site-identity .brand{padding-left:18px;border-left:1px solid var(--line)}
@media(max-width:1050px){.masthead{flex-wrap:wrap}.site-identity{gap:14px}}
@media(max-width:420px){.site-identity{gap:10px}.hub-link img{width:116px;height:58px}.site-identity .brand{padding-left:10px;font-size:.72rem}.brand small{font-size:.54rem}}
