:root{--ink:#173b43;--muted:#596e73;--paper:#f7f5ee;--panel:#fffefb;--teal:#146b67;--pale:#e6f0e9;--line:#d9e1d9;--orange:#b45c2e;--size:20px;font-family:'Microsoft JhengHei','PingFang TC',system-ui,sans-serif;color:var(--ink);background:var(--paper);font-size:var(--size);line-height:1.75}*{box-sizing:border-box}body{margin:0}button,input,select,textarea{font:inherit}button,a,input,select,summary{touch-action:manipulation}a{color:var(--teal);text-underline-offset:5px}button{border:1px solid var(--teal);background:var(--teal);color:white;border-radius:10px;padding:10px 20px;cursor:pointer;min-height:48px}button:hover{filter:brightness(.93)}button:disabled{opacity:.45;cursor:default}.ghost{background:transparent;color:var(--teal)}:focus-visible{outline:4px solid #d48231;outline-offset:4px}h1,h2,h3,p{margin-top:0}h1{font-size:clamp(1.7rem,3.8vw,2.6rem);line-height:1.35;letter-spacing:-.04em}h2{font-size:1.45rem;line-height:1.4}h3{font-size:1.12rem}input:not([type=range]),select,textarea{max-width:100%;padding:10px 14px;border:1px solid #91aaa7;border-radius:9px;background:white;color:var(--ink)}input[type=range]{width:100%;accent-color:var(--teal);height:34px}textarea{width:100%;min-height:100px}.topbar{height:76px;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:0 4vw;background:var(--panel);gap:16px}.brand{font-weight:800;letter-spacing:.05em;text-decoration:none;color:var(--ink)}.toplinks{display:flex;gap:20px;font-size:.78rem}.eyebrow{display:block;font-weight:800;font-size:.7rem;letter-spacing:.16em;color:var(--teal);text-transform:uppercase;margin-bottom:12px}.home{max-width:1280px;margin:auto;padding:54px 40px}.hero{display:grid;grid-template-columns:1.7fr 1fr;gap:55px;align-items:center;padding-bottom:40px}.hero p{max-width:670px;color:var(--muted)}.hero-art{border-radius:24px;background:var(--pale);padding:28px;box-shadow:10px 10px 0 #e7dfcb}.hero-art svg{display:block;width:100%}.stats{display:flex;gap:30px;padding-top:12px}.stats strong{display:block;font-size:1.7rem}.stats span{font-size:.75rem;color:var(--muted)}.filter{display:flex;gap:10px;flex-wrap:wrap;align-items:center;padding:24px 0;border-top:1px solid var(--line)}.filter button{background:transparent;color:var(--teal)}.filter button.active{background:var(--teal);color:white}.filter input{margin-left:auto;width:280px}.unit-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}.unit-card{border:1px solid var(--line);background:var(--panel);border-radius:16px;display:flex;flex-direction:column;padding:26px;text-decoration:none;position:relative;min-height:225px;color:var(--ink);transition:transform .15s}.unit-card:hover{transform:translateY(-3px);border-color:var(--teal)}.unit-card h2{font-size:1.1rem;margin:12px 0;flex:1}.unit-card p{font-size:.76rem;color:var(--muted);margin:0}.unit-card .arrow{position:absolute;right:24px;bottom:20px;color:var(--teal)}.pill{display:inline-block;width:fit-content;border-radius:5px;padding:2px 8px;background:var(--pale);font-size:.68rem;font-weight:700}.workspace{display:grid;grid-template-columns:290px minmax(0,1fr);min-height:calc(100vh - 76px)}.sidebar{padding:28px 22px;border-right:1px solid var(--line);background:#eef1e9}.sidebar h2{font-size:1rem;margin-bottom:16px}.sidebar nav{display:grid;gap:9px}.lesson-link{display:flex;gap:10px;text-align:left;border:0;background:transparent;color:var(--ink);padding:12px;border-radius:10px;font-size:.82rem}.lesson-link.active{background:white;box-shadow:0 2px 12px #173b4310;border-left:4px solid var(--teal)}.lesson-link .num{color:var(--teal);font-weight:800}.sidebar-footer{font-size:.72rem;color:var(--muted);border-top:1px solid var(--line);margin-top:25px;padding-top:20px}.main{max-width:1180px;width:100%;margin:auto;padding:34px 46px 80px}.unit-heading{display:flex;justify-content:space-between;gap:20px;align-items:start}.unit-heading h1{font-size:1.55rem;margin-bottom:8px}.toolbar{display:flex;gap:7px;flex-wrap:wrap;justify-content:flex-end}.toolbar button{font-size:.7rem;padding:6px 10px;min-height:40px}.support{display:flex;align-items:center;gap:12px;font-size:.76rem;margin:14px 0 24px}.support select{padding:6px 10px}.tabs{display:flex;flex-wrap:wrap;gap:8px;margin:22px 0}.tabs button{background:transparent;color:var(--muted);border-color:transparent;padding:8px 13px;font-size:.82rem}.tabs button.active{background:var(--ink);color:white}.panel{background:var(--panel);border:1px solid var(--line);border-radius:18px;padding:34px;min-height:410px;box-shadow:0 6px 24px #183e4304}.concept{background:var(--pale);border-left:4px solid var(--teal);padding:22px;border-radius:0 12px 12px 0;margin:20px 0}.lead{font-size:1.15rem;line-height:1.8}.note{font-size:.8rem;color:var(--muted)}.warning{background:#fcf0d9;border-left:4px solid #c79042;padding:16px;margin-top:20px;font-size:.85rem}.step{display:flex;gap:14px;border-bottom:1px solid var(--line);padding:18px 0}.step span:first-child{display:flex;align-items:center;justify-content:center;flex:0 0 34px;height:34px;background:var(--pale);border-radius:50%;font-size:.8rem;font-weight:800}.step p{margin:0}.actions{display:flex;gap:10px;flex-wrap:wrap;margin:22px 0}.feedback{margin:18px 0;padding:18px;border-radius:10px;background:var(--pale)}.feedback.bad{background:#fbefdf}.question{font-size:1.15rem;font-weight:700;margin:20px 0}.answer-form{display:flex;gap:12px;flex-wrap:wrap}.answer-form input{width:min(100%,400px)}.hints{display:grid;gap:9px}.hint{border:1px dashed #97b0a5;padding:12px 16px;border-radius:10px;font-size:.9rem}.bottom-nav{display:flex;justify-content:space-between;gap:15px;margin-top:25px}.progress-track{height:5px;background:var(--line);border-radius:5px;margin:18px 0}.progress-track div{height:100%;background:var(--teal);border-radius:5px;transition:width .2s}.status{font-size:.7rem;color:var(--muted)}.lab-controls{display:flex;gap:18px;flex-wrap:wrap;margin-bottom:20px;align-items:end}.lab-controls label{flex:1 1 180px;font-size:.82rem}.lab-controls select{display:block;width:100%}.lab-controls button{font-size:.8rem}.lab-view svg{display:block;width:100%;max-height:350px;background:#fafaf4;border:1px solid var(--line);border-radius:12px}.lab-readout{padding:18px;background:var(--pale);margin:18px 0;font-weight:700}.lab-reflect{font-size:.86rem}.token-row{display:flex;flex-wrap:wrap;gap:10px;align-items:center;justify-content:center;padding:25px}.token{background:var(--pale);padding:12px 18px;border-radius:10px}.formula{font-family:'Cambria Math','Microsoft JhengHei',serif;text-align:center;font-size:1.5rem;margin:20px}.blocks{display:grid;gap:5px;max-width:620px;margin:15px auto}.blocks span{background:#c8e4d9;text-align:center;border:1px solid #97bbad;border-radius:5px;font-size:.75rem}.pair{display:grid;grid-template-columns:1fr 1fr;gap:20px}.pair>div{padding:18px;background:var(--pale);border-radius:12px}.ball{border-radius:50%;height:50px;width:50px;text-align:center;line-height:50px;font-size:.75rem;color:white}.red{background:#a54e30}.blue{background:#386b9e}table{border-collapse:collapse;width:100%;font-size:.82rem;margin:16px 0}td,th{padding:10px 12px;text-align:center;border:1px solid var(--line)}th{background:var(--pale)}.table-scroll{overflow:auto}.source-image{display:block;max-width:100%;margin:20px auto;border:1px solid var(--line);background:white}.source-controls{display:flex;flex-wrap:wrap;gap:8px;align-items:center}.source-controls input{width:85px}.source-caption{font-size:.78rem;color:var(--muted)}details{border:1px solid var(--line);border-radius:10px;padding:14px;margin:16px 0}summary{cursor:pointer;font-weight:700}pre{white-space:pre-wrap;font:inherit;font-size:.75rem}footer{padding:24px;color:var(--muted);font-size:.72rem;text-align:center}button.link{background:none;border:none;color:var(--teal);text-decoration:underline}.teacher{max-width:1000px;margin:40px auto;padding:30px}.teacher li{margin-bottom:12px}[hidden]{display:none!important}.skip{position:absolute;top:-100px}.skip:focus{top:5px;background:white;padding:10px;z-index:99}.print-only{display:none}@media(max-width:1000px){.workspace{grid-template-columns:230px minmax(0,1fr)}.main{padding:28px 24px}.unit-grid{grid-template-columns:repeat(2,1fr)}.panel{padding:25px}.hero{gap:25px}.toplinks{gap:10px}}@media(max-width:720px){.workspace{display:block}.sidebar{border-right:0;padding:18px}.sidebar nav{display:flex;overflow:auto}.lesson-link{min-width:180px}.sidebar-footer{display:none}.main{padding:20px 16px}.unit-heading{display:block}.toolbar{justify-content:start;margin:12px 0}.panel{padding:20px}.home{padding:30px 18px}.hero{display:block}.hero-art{display:none}.unit-grid{grid-template-columns:1fr}.topbar{padding:14px 18px;height:auto}.toplinks{font-size:.65rem}.filter input{margin:0;width:100%}.tabs{gap:3px}.tabs button{padding:8px;font-size:.75rem}.stats{gap:20px}.pair{grid-template-columns:1fr}}@media print{.topbar,.sidebar,.toolbar,.tabs,.bottom-nav,.support,.actions,.lab-controls,.lab-reset,.source-controls,button{display:none!important}.workspace{display:block}.main{padding:0;max-width:none}.panel{border:0;box-shadow:none;padding:0}.print-only{display:block}.source-image{max-height:90vh;object-fit:contain}.step{break-inside:avoid}body{background:white;color:black;font-size:16px}}

.phet-role{display:inline-block;background:#f7ead6;color:#7a451d;border-radius:999px;padding:3px 10px;font-size:.75rem;font-weight:800}.phet-steps{padding-left:1.5em}.phet-steps li{margin:10px 0}.phet-launch{display:inline-block;background:var(--teal);color:white;padding:11px 18px;border-radius:10px;text-decoration:none;font-weight:800}.offline-box{background:#eef1e9;border:1px solid var(--line);padding:16px;border-radius:10px;margin-top:18px;font-size:.85rem}.offline-box p{margin:6px 0 0}.design-credit{white-space:nowrap;color:var(--muted);font-size:.68rem;font-weight:800;letter-spacing:.08em}.topbar .design-credit{margin-left:-8px}@media(max-width:720px){.design-credit{width:100%;order:3}.topbar{flex-wrap:wrap}}

.design-credit{font-size:.7rem;color:var(--muted);white-space:nowrap}.topbar{flex-wrap:wrap;height:auto;min-height:76px;padding-top:10px;padding-bottom:10px}

.header-credit{display:flex;align-items:center;gap:12px;flex-wrap:nowrap}.header-credit .design-credit{width:auto;order:initial;margin:0}.header-credit>a{display:inline-flex;align-items:center}
