:root{--ink:#1b3446;--muted:#627684;--line:#d9e2e8;--paper:#fff;--blue:#1d668d;--sea:#227c88;--orange:#bd6a38;--pale:#f4f8fa;font-family:"Microsoft YaHei","PingFang SC",sans-serif;color:var(--ink);background:var(--paper);font-size:15px;line-height:1.75}
*{box-sizing:border-box}body{margin:0}main{max-width:1320px;margin:0 auto;padding:30px 32px}header{margin-bottom:28px}.eyebrow{color:var(--sea);font-size:12px;margin:0 0 8px;letter-spacing:.12em}h1{font-family:"Noto Serif SC","Songti SC",serif;font-size:34px;line-height:1.25;margin:0 0 10px}h2{font-size:21px;line-height:1.4;margin:0}h3{font-size:14px;margin:0}.intro{color:var(--muted);margin:0;max-width:900px}.section-heading{display:flex;align-items:flex-start;gap:12px;margin:28px 0 18px}.section-heading p{font-size:13px;color:var(--muted);margin:4px 0 0}.step{width:30px;height:30px;flex-shrink:0;border:1px solid var(--blue);color:var(--blue);text-align:center;font-family:Consolas,monospace;line-height:28px}.experiment{display:grid;grid-template-columns:minmax(0,1fr) 260px;border-top:1px solid var(--line);border-bottom:1px solid var(--line);gap:20px;padding:15px 0}.stage{min-width:0}.toolbar{display:flex;align-items:center;gap:7px;flex-wrap:wrap;margin-bottom:10px}button,select{font:inherit;font-size:13px;line-height:1.5;padding:8px 10px;border:1px solid var(--line);border-radius:4px;background:white;color:var(--ink)}button{cursor:pointer}button.primary{background:var(--blue);color:white;border-color:var(--blue)}button:disabled{opacity:.4;cursor:default}button:hover:not(:disabled){border-color:var(--blue)}button:focus-visible,select:focus-visible,input:focus-visible,summary:focus-visible,a:focus-visible{outline:2px solid var(--sea);outline-offset:3px}.view-control{display:flex;align-items:center;gap:5px;font-size:12px;margin-left:auto}.viewport{position:relative;border:1px solid var(--line);background:var(--pale)}canvas#field{display:block;width:100%;height:auto;cursor:crosshair}.flow-label,.axis-label{position:absolute;font-size:11px;color:#536c7c;background:#ffffffd9;pointer-events:none;padding:1px 6px}.flow-label{top:8px;left:8px}.axis-label{right:8px;bottom:8px}.legend{display:flex;align-items:center;justify-content:center;gap:9px;font:11px Consolas,"Microsoft YaHei",monospace;margin:8px 0}.legend-bar{display:block;width:150px;height:7px;background:linear-gradient(90deg,#245d9f,#f8fafb,#b65c36)}.legend-bar.speed{background:linear-gradient(90deg,#f6fafb,#68b8cd,#173c78)}.readout{display:flex;justify-content:space-between;gap:8px;flex-wrap:wrap;font:11px Consolas,"Microsoft YaHei",monospace;color:var(--muted)}.status{min-height:22px;font-size:12px;color:var(--sea);margin:5px 0 12px}.probe-title{display:flex;justify-content:space-between;align-items:baseline;gap:12px}#probeReadout{font:11px Consolas,"Microsoft YaHei",monospace;color:var(--muted)}#history{width:100%;height:auto;display:block}.caption,.control-note{font-size:12px;color:var(--muted);margin:7px 0 12px;line-height:1.65}.parameters{border-left:1px solid var(--line);padding-left:20px}.parameters label,.scale-controls label{display:block;font-size:13px;margin-bottom:16px}.parameters select{width:100%;margin-top:6px}.parameters output,.scale-controls label>span{float:right;color:var(--blue);font:600 15px Consolas,"Microsoft YaHei",monospace}input[type=range]{display:block;width:100%;accent-color:var(--blue);margin:10px 0 0;cursor:pointer}.parameters [hidden]{display:none}.solver-control{background:var(--pale);padding:10px 12px;margin:12px -1px 0}.solver-control label{margin:0}.solver-control p{font-size:12px;color:var(--muted);margin:8px 0 0}.task{padding:13px 16px;background:var(--pale);font-size:13px;line-height:1.85;border-left:2px solid var(--sea);margin:20px 0}.comparison{margin:18px 0}.comparison.has-records{display:grid;grid-template-columns:1fr 1fr;gap:15px}.empty-note{font-size:12px;color:var(--muted)}.comparison figure{margin:0;border:1px solid var(--line);padding:10px}.comparison img{width:100%;display:block}.comparison figcaption{font-size:12px;line-height:1.7}.comparison figcaption strong{color:var(--blue)}.scale-controls{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:24px}.formula{font:19px Georgia,"Times New Roman",serif;letter-spacing:.01em;margin:12px 0}#reScale{width:100%;height:auto;display:block;margin:18px 0}.table-wrap{overflow-x:auto}table{border-collapse:collapse;width:100%;font-size:13px}th,td{text-align:left;border-bottom:1px solid var(--line);padding:12px 10px}thead th{font-weight:500;color:var(--muted)}td:nth-child(n+3){font-family:Consolas,monospace}tbody tr:last-child{background:#f0f6fa}.scale-conclusion{border-left:2px solid var(--orange);padding:1px 16px;margin:22px 0;font-size:14px}.scale-conclusion p{margin:10px 0}.reading-links{display:flex;gap:18px;flex-wrap:wrap}a{color:var(--blue);text-underline-offset:3px}details{font-size:13px;border-top:1px solid var(--line);margin:24px 0;padding-top:14px}summary{cursor:pointer;color:var(--muted)}details p{max-width:1000px}footer{display:flex;justify-content:space-between;gap:12px;border-top:1px solid var(--line);padding:16px 0;margin-top:28px;font-size:12px;color:var(--muted)}body.embed main{padding:14px}body.embed h1{font-size:27px}body.embed footer{display:none}
@media(max-width:1000px){.experiment{grid-template-columns:1fr}.parameters{border-left:0;border-top:1px solid var(--line);padding:15px 0 0;display:grid;grid-template-columns:1fr 1fr;gap:0 20px}.parameters>.control-note,.solver-control{grid-column:1/-1}.parameters label{margin-bottom:12px}.scale-controls{grid-template-columns:1fr 1fr}.view-control{margin-left:0}}
@media(max-width:600px){main{padding:18px 16px}.comparison.has-records{grid-template-columns:1fr}h1{font-size:28px}.legend{gap:5px}.legend-bar{width:90px}.probe-title{display:block}.scale-controls{gap:10px 18px}.table-wrap{font-size:12px}th,td{padding:9px 5px}footer{display:block}}

.performance{font:12px Consolas,"Microsoft YaHei",monospace;color:var(--blue);padding:7px 10px;background:var(--pale);margin:8px 0}.export-actions{display:flex;flex-wrap:wrap;gap:10px}.run-guide{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:22px;border-top:1px solid var(--line);margin-top:18px}.run-guide p{font-size:13px}.run-guide strong{display:block;color:var(--blue)}.export-section{padding-bottom:15px}input[hidden]{display:none}
