@import "https://fonts.googleapis.com/css2?family=Noto+Serif+TC:wght@500;900&family=Noto+Sans+TC:wght@400;500&display=swap";:root{--bg:#f6f5f1;--card:#fff;--ink:#23262b;--muted:#6b7078;--line:#d9d7cf;--accent:#2f5d62;--danger:#a33a3a;--ok:#2d6a4f}@media (prefers-color-scheme:dark){:root{--bg:#1c1e21;--card:#26292d;--ink:#ececec;--muted:#9aa0a8;--line:#3a3e44;--accent:#7fb3b8;--danger:#e08585;--ok:#7fcf9f}}body{background:var(--bg);color:var(--ink);margin:0;font-family:Noto Sans TC,system-ui,sans-serif}.admin{max-width:720px;margin:0 auto;padding:16px}.admin header{justify-content:space-between;align-items:center;display:flex}.admin h1{font-size:1.4rem}.admin h2{margin-top:28px;font-size:1.1rem}.admin form{background:var(--card);border:1px solid var(--line);border-radius:8px;gap:12px;padding:16px;display:grid}.admin label{color:var(--muted);gap:4px;font-size:.9rem;display:grid}.admin input,.admin select,.admin textarea{font:inherit;color:var(--ink);background:var(--bg);border:1px solid var(--line);border-radius:6px;padding:8px 10px;font-size:16px}.admin button{font:inherit;cursor:pointer;border:1px solid var(--line);background:var(--card);color:var(--ink);border-radius:6px;padding:8px 14px}.admin button.primary{background:var(--accent);border-color:var(--accent);color:#fff}.admin button.danger{color:var(--danger)}.admin :focus-visible{outline:2px solid var(--accent);outline-offset:2px}.row3{grid-template-columns:1fr 72px 1fr;gap:8px;display:grid}.inline{align-items:center;gap:8px;display:flex}.inline input{flex:1;min-width:0}.preview{border:1px dashed var(--line);border-radius:6px;padding:12px;font-size:1.3rem}.preview mark{color:var(--accent);background:0 0;font-weight:700}.preview span{color:var(--muted);margin-top:4px;font-size:.9rem;display:block}.search{box-sizing:border-box;width:100%;margin-bottom:8px}.list{margin:0;padding:0;list-style:none}.list li{border-bottom:1px solid var(--line);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;padding:12px 0;display:flex}.list li div:first-child{gap:2px;display:grid}.list span,.list small{color:var(--muted);font-size:.9rem}.error{color:var(--danger)}.ok{color:var(--ok)}.admin .card{background:var(--card);border:1px solid var(--line);border-radius:8px;gap:12px;margin-top:24px;padding:16px;display:grid}.admin .card h2{margin:0}.admin .hint{color:var(--muted);margin:0;font-size:.85rem}.admin .errors{margin:0;padding-left:18px}.admin button:disabled{opacity:.5;cursor:not-allowed}.admin .tabs{gap:8px;margin:12px 0;display:flex}.admin .tabs button.active{background:var(--accent);border-color:var(--accent);color:#fff}.admin details summary{cursor:pointer}.admin fieldset.tests{border:1px solid var(--line);border-radius:6px;flex-wrap:wrap;gap:18px;margin:0;padding:8px 12px;display:flex}.admin fieldset.tests legend{color:var(--muted);padding:0 6px;font-size:.9rem}.admin label.check{color:var(--ink);align-items:center;gap:6px;display:flex}.admin label.check input{width:auto;padding:0}.admin .tog button{color:var(--muted);padding:2px 10px;font-size:14px}.admin .tog button.active{background:var(--accent);border-color:var(--accent);color:#fff}.game{--g-bg:#f3eee2;--g-card:#fbf8f0;--g-ink:#23201b;--g-muted:#6f6654;--g-line:#dcd2bd;--g-red:#b4382b;--g-tint:#f6e3dd;--g-ok:#2e6b4d;box-sizing:border-box;min-height:100vh;padding-top:env(safe-area-inset-top,0px);background:var(--g-bg);color:var(--g-ink);font:16px/1.7 Noto Sans TC,PingFang TC,Microsoft JhengHei,sans-serif}@media (prefers-color-scheme:dark){.game{--g-bg:#1a1814;--g-card:#24211c;--g-ink:#ece5d4;--g-muted:#a69c86;--g-line:#3b362d;--g-red:#e2705c;--g-tint:#3a2621;--g-ok:#7cc79b}}.game *,.game :before,.game :after{box-sizing:border-box}.game h1,.game h2,.game h3,.g-opt span,.g-ep,.g-ei strong,.g-seal,.g-stamp{font-family:Noto Serif TC,Songti TC,PMingLiU,serif}.game button{font:inherit;color:inherit;cursor:pointer}.game :focus-visible{outline:2px solid var(--g-red);outline-offset:2px}.game mark{color:var(--g-red);background:0 0;font-weight:900}.g-wrap{max-width:640px;margin:0 auto;padding:20px 16px 120px}.g-hero h1{letter-spacing:.1em;margin:24px 0 0;font-size:clamp(60px,20vw,92px);font-weight:900;line-height:1.05}.g-stamp{border:2px solid var(--g-red);color:var(--g-red);border-radius:4px;padding:0 10px;font-weight:900;display:inline-block;transform:rotate(-3deg)}.g-lead{color:var(--g-muted);margin:8px 0 22px}.g-card{background:var(--g-card);border:1px solid var(--g-line);border-radius:12px;margin:0 0 18px;padding:14px 18px}.g-card h3{margin:0 0 8px;font-size:16px}.g-card ul{margin:0;padding-left:20px}.g-note{color:var(--g-muted);border-left:3px solid var(--g-red);margin:0 0 18px;padding:2px 0 2px 10px;font-size:14px}.g-row{flex-wrap:wrap;gap:10px;display:flex}.g-btn{border:1px solid var(--g-line);background:0 0;border-radius:10px;min-height:46px;padding:12px 20px}.g-btn.primary{background:var(--g-ink);color:var(--g-bg);border-color:var(--g-ink);font-weight:500}.g-btn:disabled{opacity:.4;cursor:not-allowed}.g-chips{flex-wrap:wrap;gap:8px;display:flex}.g-chip{border:1px solid var(--g-line);background:0 0;border-radius:999px;padding:4px 14px;font-size:15px}.g-chip.on{background:var(--g-ink);color:var(--g-bg);border-color:var(--g-ink)}.g-chip small{opacity:.7;margin-left:4px}.g-seg{gap:8px;display:flex}.g-seg button{border:1px solid var(--g-line);background:0 0;border-radius:10px;flex:1;padding:8px 0}.g-seg button.on{background:var(--g-ink);color:var(--g-bg);border-color:var(--g-ink)}.g-top{justify-content:space-between;align-items:center;margin-bottom:10px;display:flex}.g-tag{border:1px solid var(--g-line);color:var(--g-muted);border-radius:999px;padding:1px 12px;font-size:14px}.g-cnt{color:var(--g-muted);font-size:14px}.g-dots{gap:6px;margin-bottom:22px;display:flex}.g-dots i{background:var(--g-line);cursor:pointer;border-radius:4px;flex:1;height:8px}.g-dots i.done{background:var(--g-ink)}.g-dots i.cur{outline:2px solid var(--g-red);outline-offset:2px}.g-prompt{margin:0 0 18px;font-size:21px;font-weight:500;line-height:1.55}.g-prompt small{color:var(--g-muted);font-family:Noto Sans TC,sans-serif;font-size:14px;display:block}.g-opts{gap:12px;display:grid}.g-opt{text-align:left;background:var(--g-card);border:1.5px solid var(--g-line);border-radius:12px;gap:12px;width:100%;padding:14px;display:flex}.g-opt b{border:1px solid var(--g-muted);width:28px;height:28px;color:var(--g-muted);border-radius:50%;flex:none;place-items:center;font-size:14px;font-weight:500;display:grid}.g-opt span{gap:6px;font-size:19px;display:grid}.g-opt em{font-style:normal}.g-opt em+em{border-top:1px dashed var(--g-line);padding-top:6px}.g-opt.sel{border-color:var(--g-red);background:var(--g-tint)}.g-opt.sel b{background:var(--g-red);border-color:var(--g-red);color:var(--g-bg)}.g-bar{background:var(--g-bg);border-top:1px solid var(--g-line);padding:12px 16px calc(12px + env(safe-area-inset-bottom,0px));position:fixed;bottom:0;left:0;right:0}.g-bar div{justify-content:space-between;gap:10px;max-width:640px;margin:0 auto;display:flex}.g-bar .primary{flex:1}.g-eyebrow{color:var(--g-muted);text-align:center;margin:16px 0 8px}.g-seal{border:3px solid var(--g-red);width:140px;height:140px;color:var(--g-red);box-shadow:inset 0 0 0 4px var(--g-bg), inset 0 0 0 5px var(--g-red);text-align:center;border-radius:6px;place-items:center;margin:0 auto 14px;line-height:1.1;display:grid;transform:rotate(-2deg)}.g-seal small{font-size:16px;display:block}.g-seal strong{font-size:56px;font-weight:900}.g-sum{text-align:center;color:var(--g-muted);margin:0 0 20px}.g-panel{background:var(--g-card);border:1px solid var(--g-red);border-radius:12px;margin-bottom:22px;padding:16px}.g-panel.plain{border-color:var(--g-line)}.g-panel input{width:100%;font:inherit;border:1px solid var(--g-line);background:var(--g-bg);color:var(--g-ink);border-radius:8px;margin:8px 0;padding:10px 12px;font-size:16px}.g-hint{color:var(--g-muted);justify-content:space-between;font-size:14px;display:flex}.game h3.g-h{margin:26px 0 10px;font-size:20px}.g-ex{background:var(--g-card);border:1px solid var(--g-line);border-radius:12px;margin-bottom:10px;padding:2px 14px}.g-ex summary{cursor:pointer;align-items:center;gap:10px;padding:10px 0;list-style:none;display:flex}.g-ex summary::-webkit-details-marker{display:none}.g-mk{border-radius:50%;flex:none;place-items:center;width:26px;height:26px;font-size:14px;font-weight:700;display:grid}.g-mk.y{background:var(--g-ok);color:var(--g-bg)}.g-mk.n{background:var(--g-red);color:var(--g-bg)}.g-ep{color:var(--g-muted);margin:0 0 10px}.g-eo{border-top:1px solid var(--g-line);padding:10px 0}.g-eh{align-items:center;gap:8px;font-size:14px;display:flex}.g-eh b{color:var(--g-muted)}.g-eh u{border:1px solid var(--g-ok);color:var(--g-ok);border-radius:999px;padding:0 8px;font-size:12px;text-decoration:none}.g-eh u.me{border-color:var(--g-red);color:var(--g-red)}.g-eh s{color:var(--g-muted);margin-left:auto;text-decoration:none}.g-ei{flex-wrap:wrap;align-items:baseline;gap:2px 12px;margin-top:4px;display:flex}.g-ei strong{font-size:17px;font-weight:500}.g-ei span{color:var(--g-muted);font-size:14px}.g-ei p{color:var(--g-muted);flex-basis:100%;margin:0;font-size:14px}.g-ttl{margin:18px 0 6px;font-size:30px}.g-sub{color:var(--g-muted);margin:0 0 14px;font-size:14px}.g-lb{margin:0;padding:0;list-style:none}.g-lb li{border-bottom:1px solid var(--g-line);align-items:center;gap:14px;padding:12px 4px;display:flex}.g-lb li.me{background:var(--g-tint);border-radius:10px;padding-left:10px;padding-right:10px}.g-lb i{width:34px;height:34px;color:var(--g-muted);border-radius:50%;flex:none;place-items:center;font-family:Noto Serif TC,serif;font-style:normal;font-weight:900;display:grid}.g-lb li:nth-child(-n+3) i{background:var(--g-red);color:var(--g-bg)}.g-lb div{flex:1;min-width:0}.g-lb strong{overflow-wrap:anywhere;display:block}.g-lb small{color:var(--g-muted)}.g-lb em{font-family:Noto Serif TC,serif;font-size:22px;font-style:normal;font-weight:900}.g-foot{color:var(--g-muted);margin-top:28px;font-size:12px}@media (prefers-reduced-motion:no-preference){.g-opt{transition:border-color .15s,background .15s}}.g-modes{gap:10px;display:grid}.g-mode{text-align:left;border:1.5px solid var(--g-line);background:0 0;border-radius:12px;gap:2px;padding:12px 14px;display:grid}.g-mode strong{font-size:17px}.g-mode span{color:var(--g-muted);font-size:14px}.g-mode.on{border-color:var(--g-red);background:var(--g-tint)}.g-stem{margin:6px 0 4px;font-family:Noto Serif TC,Songti TC,PMingLiU,serif;font-size:26px;line-height:1.5}.g-opt em.g-long{font-size:17px;line-height:1.5}.g-opt.ok{border-color:var(--g-ok);background:color-mix(in srgb, var(--g-ok) 14%, var(--g-card))}.g-opt.ok b{background:var(--g-ok);border-color:var(--g-ok);color:var(--g-bg)}.g-opt.bad{border-color:var(--g-red);background:var(--g-tint)}.g-opt.bad b{background:var(--g-red);border-color:var(--g-red);color:var(--g-bg)}.g-reveal{background:var(--g-card);border:1px solid var(--g-line);border-radius:12px;margin-top:18px;padding:4px 14px 10px}.g-reveal>p{margin:10px 0 2px;font-weight:500}.g-reveal>p.good{color:var(--g-ok)}.g-reveal>p.wrong{color:var(--g-red)}.g-seg button small{letter-spacing:.1em;opacity:.85;font-size:11px;line-height:1.1;display:block}.g-seg button.sp:not(.on){border-color:var(--g-red);color:var(--g-red)}.g-special{color:var(--g-muted);border-left:3px solid var(--g-line);margin:10px 0 0;padding:2px 0 2px 10px;font-size:14px}.g-special strong{color:var(--g-red)}.g-special.on{border-left-color:var(--g-red);color:var(--g-ink)}.g-cardbox{margin:0 0 22px}.g-cardimg{-webkit-touch-callout:default;-webkit-user-select:auto;user-select:auto;border-radius:14px;width:100%;max-width:420px;margin:10px auto;display:block;box-shadow:0 6px 24px #0000002e}.g-cardimg.ph{aspect-ratio:1080/1800;color:var(--g-muted);background:var(--g-card);border:1px dashed var(--g-line);box-shadow:none;place-items:center;display:grid}.g-cname{color:var(--g-muted);gap:4px;max-width:420px;margin:0 auto;font-size:14px;display:grid}.g-cname input{font:inherit;border:1px solid var(--g-line);background:var(--g-bg);color:var(--g-ink);border-radius:8px;width:100%;padding:10px 12px;font-size:16px}.g-cardbox .g-row{justify-content:center}.g-cardbox a.g-btn{color:inherit;align-items:center;text-decoration:none;display:inline-flex}.g-quit{border:1px solid var(--g-line);background:var(--g-card);color:var(--g-muted);border-radius:999px;min-height:34px;padding:4px 12px;font-size:14px}.g-quit:hover{border-color:var(--g-red);color:var(--g-red)}.g-tr{align-items:center;gap:10px;display:flex}
