:root{--ui-font:"Noto Sans TC","Microsoft JhengHei",system-ui,sans-serif;--ink:#163d48;--muted:#637c80;--teal:#147b74;--mint:#def2e7;--paper:#fffdf7;--orange:#db6747;--line:#d7e3da;--purple:#7456a1}*{box-sizing:border-box}body{margin:0;background:#f0f3e9;color:var(--ink);font-family:"Noto Sans TC","Microsoft JhengHei",system-ui,sans-serif;font-size:17px;line-height:1.65}button,input,a{touch-action:manipulation}button,input{font:inherit}button,a{ -webkit-tap-highlight-color:transparent}button{cursor:pointer;border:0;transition:background .15s,transform .15s}button:hover:not(:disabled){transform:translateY(-2px)}button:disabled{cursor:default;opacity:.5}button:focus-visible,a:focus-visible,input:focus-visible{outline:3px solid #f2b63c;outline-offset:4px}[hidden]{display:none!important}.topbar{display:flex;align-items:center;justify-content:space-between;padding:17px max(22px,calc((100vw - 1000px)/2));border-bottom:1px solid #d8e1d3;background:#f8faf1}.topbar>div{display:flex;align-items:center;gap:8px}.brand{font-weight:900;font-size:26px;letter-spacing:-1px;text-decoration:none;color:var(--ink)}.brand span{font-size:12px;letter-spacing:2px;margin-left:9px;font-weight:600}.pill{font-size:12px;background:#d9e8dc;border-radius:20px;padding:5px 12px}.small{font-size:13px;border:1px solid #ccdbd1;background:transparent;padding:7px 12px;color:var(--ink);border-radius:8px;text-decoration:none;display:inline-block}.small.active{background:var(--ink);color:white}main{max-width:1020px;margin:auto;padding:0 24px}.masthead{padding:32px 0 21px}.eyebrow{font-size:11px;font-weight:800;letter-spacing:2.5px;color:var(--teal)}h1{font-size:clamp(27px,4.7vw,45px);margin:8px 0;letter-spacing:1px;line-height:1.3}h2{font-size:24px;margin:4px 0 12px;line-height:1.45}h3{font-size:17px;margin:15px 0 10px}p{margin:8px 0 16px}.masthead p{margin:0;color:var(--muted);font-size:15px}.city-panel{position:relative;border-radius:17px;background:#d3e8de;border:1px solid #c3d9cc;overflow:hidden;margin-bottom:22px}.city-label{display:flex;justify-content:space-between;padding:14px 20px 0;font-size:12px;letter-spacing:1px;font-weight:700}.city-label strong{color:#397769}#city{display:block;width:100%;height:auto;margin-top:0}.stations{display:grid;grid-template-columns:repeat(12,1fr);gap:5px;padding:0 17px 16px}.station{height:6px;border-radius:4px;background:#b3cbbc}.station.done{background:#168577}.station.current{background:#efa842}.paper{padding:28px 32px;border:1px solid var(--line);background:var(--paper);border-radius:16px;box-shadow:0 5px 0 #dfe5d9;margin-bottom:24px}.intro-art{width:133px;float:right;margin:-6px 0 0 20px}#rules{font-size:15px;max-width:700px;color:var(--muted)}.mode-links{display:flex;gap:8px;flex-wrap:wrap;margin:18px 0}.start-row{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.start-row label{font-size:14px;font-weight:700}input{padding:11px 13px;max-width:100%;width:220px;border:1px solid #b8ccc0;border-radius:9px;background:white;color:var(--ink)}.primary{background:var(--teal);color:white;padding:12px 23px;border-radius:10px;box-shadow:0 3px 0 #0d574f;font-weight:800}.primary:hover:not(:disabled){background:#126b64}.secondary{padding:11px 20px;background:#edf2e8;color:var(--ink);border:1px solid #d2ded1;border-radius:9px}.principle{border-top:1px dashed #ccdbcd;margin-top:23px;padding-top:17px;font-size:13px;color:var(--muted)}.level-head{display:flex;justify-content:space-between;gap:10px;align-items:flex-start}.stats{display:flex;gap:16px;white-space:nowrap;font-size:14px;font-variant-numeric:tabular-nums;padding-top:8px}.stats #score{font-weight:800;color:var(--teal)}#prompt{font-size:16px}.equation-row{display:flex;gap:15px;align-items:center;flex-wrap:wrap;margin:15px 0}.equation-row>span{font-size:12px;color:var(--muted)}.formula{font-family:Georgia,"Times New Roman",serif;font-size:29px;letter-spacing:1px;line-height:1.6}.formula i{font-style:italic}.frac{display:inline-flex;flex-direction:column;vertical-align:middle;text-align:center;font-size:.8em;line-height:1.15;margin:0 2px;min-width:18px}.frac>span:first-child{border-bottom:1.5px solid;padding:0 3px 2px}.frac>span:last-child{padding-top:2px}.unknown{margin-left:auto;border:1px dashed #baabd2;color:var(--purple);background:#f2eef7;border-radius:7px;padding:3px 12px;font-family:Georgia,serif;font-size:23px}.arena{position:relative;background:#eaf0e8;border:1px solid #d5e1d4;border-radius:13px;overflow:hidden;padding:14px 16px 0;min-height:230px}.arena-heading{display:flex;justify-content:space-between;gap:10px;font-size:11px;color:var(--muted);margin-bottom:12px}.twins{display:grid;grid-template-columns:1fr 36px 1fr;align-items:stretch;gap:9px;position:relative}.energy-board{position:relative;min-height:112px;border:2px solid #a9c8bc;border-radius:12px;display:flex;align-items:center;justify-content:center;gap:8px;padding:18px 12px;flex-wrap:wrap;background:#f8fbf6;box-shadow:0 4px 0 #d0dfd3}.connector{display:flex;align-items:center;justify-content:center;font-size:31px;color:var(--teal);font-weight:800}.connector.broken{color:var(--orange)}.token{display:inline-flex;align-items:center;justify-content:center;position:relative;min-width:36px;height:40px;padding:0 9px;border:1px solid;border-bottom-width:4px;border-radius:7px;font-size:18px;font-weight:800;line-height:1.2}.token.pos{background:#d8eee7;border-color:#6ba99c;color:#16635c}.token.neg{background:#fae2d5;border-color:#da9278;color:#a3442d}.token.x{background:#e7def2;border-color:#a38abc;color:#65458d;font-family:Georgia,serif}.token.zero{color:#87988c;border:1px dashed #b7c8b9;background:transparent}.token b{font-size:12px;margin-left:5px}.token.fragment{border-style:dashed}.group{display:flex;gap:5px;flex-wrap:wrap;align-items:center;justify-content:center;padding:8px;border:1.5px dashed #8fb8aa;border-radius:8px;min-height:62px;flex:1}.group.muted-group{opacity:.4}.group-label{display:block;font-size:10px;width:100%;text-align:center;color:var(--muted)}.live{text-align:center;font-size:24px;margin:10px 0 3px;min-height:39px}.collection{border-top:1px dashed #c6d8c9;display:flex;align-items:center;gap:8px;min-height:35px;font-size:11px;color:#6a8174;padding:5px 0}#bin{font-family:Georgia,serif;font-size:17px;color:var(--ink)}#motionLayer{position:absolute;inset:0;pointer-events:none;overflow:hidden}.fly-token{position:absolute;z-index:4}.zero-pair{display:flex;gap:3px;border:1.5px dashed #8ea690;border-radius:7px;padding:3px}.choices{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-bottom:16px}.choice{text-align:left;background:#fff;border:1px solid #d2ded4;border-bottom:3px solid #d2ded4;border-radius:10px;min-height:62px;padding:12px 16px;color:var(--ink);display:flex;align-items:center;gap:12px;font-size:20px}.choice .key{font:700 11px system-ui;background:#edf1e9;border:1px solid #d4dfd0;border-radius:6px;padding:2px 6px;color:var(--muted)}.choice.selected{border-color:var(--teal);background:#e6f3eb}.choice.selected .key{background:var(--teal);color:white}.choice.correct{border-color:#168577;background:#e0f4e9}.choice.wrong{border-color:#d8866b;background:#fbece4}#feedback{margin:18px 0 12px;font-size:15px}#feedback.good{color:#137465}#feedback.bad{color:#b25233}.operation-text{padding:13px 16px;background:#f7edda;border-left:3px solid #e8af48;border-radius:0 8px 8px 0;font-size:15px;margin:15px 0}.history{padding-left:24px;margin:16px 0}.history li{font-size:13px;color:var(--muted);padding:8px 0;border-bottom:1px solid #edf0e8}.history .formula{font-size:20px;color:var(--ink)}.history small{display:block;margin-top:3px}.construction{margin-top:20px;background:#dfefe3;border-radius:12px;overflow:hidden;text-align:center;border:1px solid #c8dfcf}.construction svg{display:block;width:100%;height:auto}.construction p{font-size:14px;padding:0 15px;margin-bottom:12px}.construction button{margin-bottom:13px}.after{display:flex;gap:10px;flex-wrap:wrap;margin-top:20px}.error{color:#b34d32;font-size:14px;white-space:pre-line}.error:empty{display:none}.muted{color:var(--muted);font-size:13px}.result-numbers{font-size:54px;font-weight:850;color:var(--teal);line-height:1.4}.result-numbers small{font-size:17px}.save-line{display:flex;gap:12px;align-items:center;flex-wrap:wrap;margin:12px 0;font-size:14px}.board-top{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}.board-top h2{font-size:20px}.table-scroll{overflow-x:auto}table{width:100%;border-collapse:collapse;font-size:14px;margin-top:12px;white-space:nowrap}th{font-weight:600;color:var(--muted);font-size:11px;text-align:left;padding:10px;border-bottom:1px solid var(--line)}td{padding:12px 10px;border-bottom:1px solid #edf0e8}td:nth-child(3){font-weight:800;color:var(--teal)}.pagination{display:flex;gap:15px;justify-content:center;align-items:center;margin-top:12px;font-size:12px}footer{text-align:center;color:var(--muted);font-size:11px;padding:10px 0 30px}footer a{color:var(--teal);text-decoration:none}#facility .moving{transform-box:fill-box;transform-origin:center}#city .built{opacity:1}#city .unbuilt{opacity:.38;filter:saturate(.35)}@media(max-width:600px){body{font-size:16px}.topbar{padding:12px 15px}.brand span{display:none}.topbar>div{gap:5px}.small{padding:7px 10px;font-size:12px}.pill{padding:4px 8px;font-size:11px}main{padding:0 13px}.masthead{padding:23px 0 17px}.paper{padding:20px 16px}.city-panel{margin-bottom:17px}#city{min-height:110px}.city-label{padding:12px 13px 0;font-size:10px}.stations{padding:0 13px 12px}.intro-art{width:88px;margin-left:8px}h2{font-size:20px}.choices{grid-template-columns:1fr}.choice{min-height:55px;font-size:18px}.level-head{flex-wrap:wrap}.stats{padding:0;font-size:12px}.energy-board{padding:12px 6px;min-height:120px;gap:4px}.twins{grid-template-columns:1fr 23px 1fr;gap:5px}.token{min-width:29px;height:34px;padding:0 6px;font-size:16px}.arena{padding:11px 9px 0}.arena-heading{font-size:10px}.formula{font-size:26px}.live{font-size:22px}.unknown{font-size:20px}.group{padding:5px 3px;min-width:38px}.group .token{min-width:23px;padding:0 4px;font-size:14px}.start-row input{width:100%}.start-row .primary{width:100%}.board-top h2{margin-bottom:0}.primary{padding:12px 19px}.equation-row{gap:10px}.operation-text{font-size:14px}footer span{display:block}}@media(prefers-reduced-motion:reduce){*,*::before,*::after{scroll-behavior:auto!important;transition:none!important}}

.city-label{position:relative;z-index:1}
