@font-face{font-family:WeatherSerif;src:local('Iowan Old Style'),local('Palatino')}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;color:#dce9e3;background:#081419;font-family:'Avenir Next','PingFang SC','Microsoft YaHei',sans-serif;font-size:14px;line-height:1.65}button,input,select{font:inherit}button,select,a,input{touch-action:manipulation}button{color:inherit;background:none;border:1px solid #31454c;border-radius:3px;padding:9px 14px;cursor:pointer;transition:background .2s,border-color .2s}button:hover{background:#183038;border-color:#7dafa3}button:disabled{opacity:.35;cursor:default}button:focus-visible,a:focus-visible,input:focus-visible,summary:focus-visible{outline:2px solid #f0cb86;outline-offset:4px}a{color:inherit;text-decoration:none}button.active,button[aria-pressed=true]{background:#9bdec4;color:#0d252b;border-color:#9bdec4}[hidden]{display:none!important}.masthead{max-width:1580px;margin:auto;padding:22px 46px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid #26363b}.brand{display:flex;gap:12px;align-items:center;font-size:11px;letter-spacing:2px;font-weight:600}.brand-orbit{font-size:32px;color:#9cddc5;font-weight:400}.brand-sub{display:block;letter-spacing:1px;font-size:9px;color:#829b9e;margin-top:1px}nav{display:flex;gap:9px}nav button{border-color:transparent;font-size:12px}.lang{border-color:#3b5058}main{max-width:1488px;margin:0 auto;padding:0 42px}.intro{display:flex;align-items:center;justify-content:space-between;padding:46px 0 36px}.eyebrow{font-size:10px;letter-spacing:2.6px;color:#93b7ae;font-weight:500;margin:0 0 14px}h1{font-size:66px;letter-spacing:3px;font-weight:400;line-height:1.12;margin:0;font-family:WeatherSerif,'Songti SC','STSong',serif}.title-dot{color:#9ddbc2}html[lang=en] h1{letter-spacing:-2px;font-size:68px}.subtitle{font-size:17px;color:#98aaa9;letter-spacing:3px;margin:14px 0 0}html[lang=en] .subtitle{letter-spacing:1px}.intro-note{max-width:360px;color:#a5b6b4;font-size:12px}.intro-note p{font-size:16px;line-height:1.9;margin:14px 0 0;color:#d0ded8}.live-dot{display:inline-block;width:6px;height:6px;background:#9ee5c5;border-radius:50%;margin-right:8px;box-shadow:0 0 12px #90dac577}.workbench{display:grid;grid-template-columns:minmax(0,1fr) 296px;border:1px solid #34474b;border-radius:5px;overflow:hidden;background:#0b1b21}.viewer-column{min-width:0;border-right:1px solid #34474b}.viewer-bar{display:flex;justify-content:space-between;align-items:center;height:57px;padding:0 14px;background:#102127;border-bottom:1px solid #2a3e44;gap:8px}.mode-tabs{display:flex;gap:4px}.mode-tabs button{padding:7px 13px;font-size:12px;border-color:transparent;white-space:nowrap}.text-button{font-size:11px;border:0;padding:6px}.instrument{padding:27px 24px 22px}.instrument h2{font-family:WeatherSerif,'Songti SC',serif;font-weight:400;font-size:29px;line-height:1.5;letter-spacing:1px;margin:0 0 12px}.muted{color:#96abae;font-size:12px;line-height:1.85;margin:0}.instrument-section{border-top:1px solid #2b4148;margin-top:21px;padding-top:16px}.section-line{display:flex;align-items:center;justify-content:space-between;gap:12px}.section-line>span{font-size:12px}.section-line button{font-size:10px;padding:4px 8px}.range-label{display:flex;justify-content:space-between;font-size:10px;color:#96adb0;margin:16px 0 4px}input[type=range]{appearance:none;height:18px;width:100%;background:transparent;cursor:pointer;margin:0}input[type=range]::-webkit-slider-runnable-track{height:2px;background:#3d575e}input[type=range]::-webkit-slider-thumb{appearance:none;width:10px;height:10px;margin-top:-4px;border-radius:50%;background:#b3e7cb;border:1px solid #0f3338}input[type=range]::-moz-range-track{height:2px;background:#3d575e}input[type=range]::-moz-range-thumb{width:10px;height:10px;background:#b3e7cb;border:0}.probe-stats{display:flex;justify-content:space-between;margin-top:8px}.probe-stats strong{display:block;font-family:WeatherSerif,serif;font-size:26px;font-weight:400;line-height:1.4;color:#d8e9df}.probe-stats span{font-size:9px;color:#8aa7aa}.micro{font-size:10px;color:#91a9ad;line-height:1.75;margin:9px 0 0}.cell-input{font-family:monospace;color:#9cbbb7;font-size:11px}.cell-input input{width:64px;padding:3px 5px;background:#152d34;border:1px solid #304b52;border-radius:2px;color:#ddede6;font-size:12px}.selected-value{display:flex;align-items:baseline;gap:9px;margin:7px 0}.selected-value strong{font-family:WeatherSerif,serif;font-size:29px;font-weight:400;color:#f0d3a0}.selected-value span{font-size:11px;color:#9bafaf}.neighbor-toggle{display:flex;gap:5px}.neighbor-toggle button{flex:1;font-size:11px;padding:6px 4px}.capture-button{background:#e4c898;color:#162a2a;border-color:#e4c898;display:flex;justify-content:space-between;gap:12px;align-items:center}.capture-button:hover{background:#f7d8a6;color:#152722;border-color:#f7d8a6}.instrument>.capture-button{width:100%;margin-top:21px;font-size:12px}.capture-note{text-align:center;margin-top:7px}#viewport{position:relative;height:495px;overflow:hidden;background:radial-gradient(ellipse at 50% 80%,#163039 0,#0a1c23 52%,#07141b 100%);touch-action:none}#scene{display:block;width:100%;height:100%;outline:none}.scene-top{position:absolute;top:20px;left:22px;right:22px;display:flex;align-items:center;justify-content:space-between;gap:12px;pointer-events:none;font-size:12px;color:#b5cdc8}.record-badge{font-family:monospace;letter-spacing:1px;font-size:9px;color:#7d9fa2;white-space:nowrap}.axis-info{position:absolute;bottom:64px;left:22px;max-width:65%;pointer-events:none;font-family:monospace;font-size:10px;color:#9ebdb8;line-height:1.7}.axis-info small{display:block;color:#7c9aa0;font-family:inherit;font-size:9px}.camera-tools{position:absolute;right:15px;bottom:57px;display:flex;gap:4px}.camera-tools button{padding:4px 7px;background:#102730d9;font-size:10px}.scene-hint{position:absolute;bottom:23px;left:22px;font-size:10px;color:#8caaaa;pointer-events:none}.color-legend{position:absolute;right:20px;bottom:21px;display:flex;align-items:center;gap:8px;font-size:9px;color:#b0c5bf}.color-legend i{display:block;width:66px;height:4px;background:linear-gradient(90deg,#1e4758,#65c6b3,#eace92)}#loading{position:absolute;inset:0;background:#0b1b21f0;display:flex;flex-direction:column;justify-content:center;align-items:center;gap:16px;z-index:8;padding:24px;text-align:center}#loading strong{font-size:14px;font-weight:400}#loadDetail{font-size:12px;color:#9eb8b8;max-width:500px;word-break:break-word}.loader-ring{height:36px;width:36px;border-radius:50%;border:1px solid #385452;border-top-color:#edcf96;animation:spin 1.4s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.transport{display:flex;align-items:center;gap:18px;padding:15px 22px 10px;border-top:1px solid #2a414a;background:#10222a}.play-button{min-width:70px;font-size:11px;padding:7px 10px;background:#1d373c;border-color:#47625f}.timeline-wrap{flex:1;min-width:0}.timeline-labels{display:flex;justify-content:space-between;font-family:monospace;font-size:9px;color:#90acac}.transport select{color:#c7ddd3;background:#152c33;border:1px solid #354d51;padding:5px;border-radius:3px;font-size:11px}.record-line{display:flex;justify-content:space-between;gap:10px;font-size:9px;color:#78979d;padding:9px 22px 12px;background:#10222a}.slice-strip{display:flex;align-items:center;gap:14px;padding:10px 22px;background:#193239;color:#cfdfd6;font-size:11px}.slice-strip label{white-space:nowrap}.slice-strip output{white-space:nowrap;font-family:monospace}.compare-labels{position:absolute;inset:65px 0 auto;display:grid;grid-template-columns:1fr 1fr;text-align:center;pointer-events:none;color:#f1d49c;font-size:11px}.compare-labels span{background:#102832b8;justify-self:center;border:1px solid #32535a;padding:3px 12px;border-radius:2px}.trace-panel{border:1px solid #30444a;border-radius:4px;margin-top:18px;padding:22px 26px 13px;background:#0d1e24}.trace-heading{display:flex;justify-content:space-between;gap:20px;align-items:center}.trace-heading .eyebrow{font-size:9px;margin-bottom:7px}h3{font-family:WeatherSerif,'Songti SC',serif;font-size:22px;font-weight:400;margin:0}.trace-key{display:flex;gap:16px;font-size:10px;color:#91acae}.trace-key span:before{content:'';display:inline-block;height:2px;width:15px;vertical-align:middle;margin-right:6px;background:#b9c7c554}.trace-key .local:before{background:#93e5c1}.trace-key .selected:before{background:#e4bd86}#traces{width:100%;height:130px;display:block;cursor:crosshair}.trace-footer{display:flex;justify-content:space-between;gap:15px;font-size:9px;color:#78999e}.experiment{display:grid;grid-template-columns:1.15fr 1fr;gap:50px;margin:52px 0;padding:0 10px}.experiment h2,.collection h2{font-family:WeatherSerif,'Songti SC',serif;font-size:32px;font-weight:400;line-height:1.4;margin:0 0 12px}.experiment-copy>p:last-child{max-width:560px;color:#94adaf;font-size:13px}.experiment-controls{padding:20px 0 0;max-width:500px}.outline-button{color:#d9dbbf;border-color:#7b8870;padding:13px 23px}.experiment-controls .micro{margin-top:12px}#quiz{font-size:12px}#quiz button{padding:6px 20px;margin-right:6px}#quizResult{color:#bbdcca;font-size:12px}.collection{padding:30px 0;border-top:1px solid #2d4248}.collection .eyebrow{margin-bottom:8px}.collection h2{font-size:28px;margin:0}.collection .section-line>span{font:11px monospace;color:#8da4a4}.empty-note{color:#779498;font-size:13px;padding:35px 0;margin:0}.specimen-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:17px;margin-top:22px}.specimen{border:1px solid #3a5255;background:#10242b;border-radius:3px;overflow:hidden}.specimen img{width:100%;aspect-ratio:1.7;object-fit:cover;display:block}.specimen-content{padding:13px 16px}.specimen p{font-size:11px;color:#93afac;margin:5px 0 12px}.specimen h3{font-size:18px}.specimen button{padding:5px 10px;font-size:10px;margin-right:7px}.methods{margin:12px 0 40px;border-top:1px solid #2c4147;border-bottom:1px solid #2c4147;color:#94aaae}.methods summary{cursor:pointer;padding:18px 0;font-size:12px}.methods p{max-width:1100px;font-size:12px;line-height:1.9}.methods a{text-decoration:underline;text-underline-offset:3px}footer{display:flex;justify-content:space-between;gap:20px;border-top:1px solid #263c42;padding:23px 0 30px;font-size:9px;letter-spacing:1px;color:#77969c}.footer-dot{color:#c4d9ad;padding:0 10px}dialog{max-width:460px;width:calc(100% - 40px);color:#dce9de;background:#132c32;border:1px solid #6a9289;border-radius:5px;padding:32px;box-shadow:0 25px 90px #0008}dialog::backdrop{background:#020d13a8;backdrop-filter:blur(4px)}dialog h2{font-family:WeatherSerif,'Songti SC',serif;font-size:30px;font-weight:400;line-height:1.5}dialog p{color:#aec6bf;font-size:14px}dialog .close{position:absolute;top:9px;right:9px;border:0;font-size:20px;padding:2px 8px}.dialog-actions{display:flex;justify-content:space-between;margin-top:25px}#toast{position:fixed;bottom:24px;left:50%;transform:translateX(-50%);background:#cbe5d5;color:#0a292b;padding:12px 22px;border-radius:3px;box-shadow:0 8px 35px #0006;font-size:12px;z-index:30;opacity:0;pointer-events:none;transition:opacity .2s;max-width:90vw}#toast.visible{opacity:1}.reduced *{animation:none!important;transition:none!important;scroll-behavior:auto!important}
@media(min-width:1450px){#viewport{height:555px}.instrument{padding:30px}.instrument-section{margin-top:25px}}
@media(max-width:1100px){main{padding:0 25px}.masthead{padding:18px 26px}.workbench{grid-template-columns:minmax(0,1fr) 258px}.instrument{padding:22px 18px}.instrument h2{font-size:25px}.intro{padding-top:35px}.scene-top{left:15px;right:15px}.record-badge{display:none}#viewport{height:515px}.axis-info{bottom:86px}.camera-tools{bottom:48px;right:12px}.scene-hint{bottom:21px;left:15px}.color-legend{bottom:65px;left:15px;right:auto}.record-line{flex-direction:column;gap:0}.trace-key{flex-wrap:wrap;justify-content:flex-end;gap:6px 12px}}
@media(max-width:760px){.masthead{padding:15px 18px}.brand{font-size:9px;letter-spacing:1px;gap:8px}.brand-orbit{font-size:25px}.brand-sub{font-size:8px}nav{gap:1px}nav button{padding:6px 7px;font-size:10px}#motionBtn{max-width:60px;line-height:1.25}main{padding:0 16px}.intro{padding:31px 3px 26px;align-items:start}.intro .eyebrow{font-size:8px;letter-spacing:1.4px}h1,html[lang=en] h1{font-size:46px}.subtitle{font-size:13px;letter-spacing:1px;margin-top:10px}.intro-note{display:none}.workbench{display:block}.viewer-column{border-right:0}.viewer-bar{padding:0 8px;height:49px;gap:2px}.mode-tabs button{font-size:11px;padding:7px 9px}.text-button{font-size:9px;padding:3px}#viewport{height:420px}.scene-top{font-size:11px;top:16px}.scene-hint{font-size:9px}.axis-info{left:15px;max-width:88%;font-size:9px}.axis-info small{font-size:8px}.color-legend{font-size:8px;bottom:61px}.camera-tools{bottom:52px}.camera-tools button{font-size:9px;padding:3px 5px}.transport{padding:12px 12px 7px;gap:10px}.play-button{min-width:54px;font-size:10px;padding:5px 7px}.timeline-labels{font-size:8px}#sourceTime{max-width:125px;overflow:hidden;white-space:nowrap}.record-line{padding:6px 12px 10px;font-size:8px}.instrument{padding:24px;border-top:1px solid #34474b;display:grid;grid-template-columns:1fr 1fr;gap:0 20px}.instrument>.eyebrow,.instrument>h2,.instrument>.muted,.instrument>.capture-button,.capture-note{grid-column:1/-1}.instrument h2{font-size:27px}.instrument h2 br{display:none}.instrument-section{margin-top:20px;padding-top:15px;min-width:0}.instrument .section-line{align-items:start;gap:5px;flex-wrap:wrap}.probe-stats{display:block}.probe-stats>div{display:flex;align-items:baseline;gap:9px}.probe-stats strong{font-size:22px}.probe-stats span{font-size:9px}.neighbor-toggle{flex-direction:column}.cell-input input{width:55px}.instrument>.capture-button{margin-top:20px}.trace-panel{padding:19px 15px 12px}.trace-heading{display:block}.trace-key{justify-content:start;margin-top:14px;font-size:9px;gap:9px}.trace-heading h3{font-size:22px}.trace-footer{flex-direction:column;gap:3px}.experiment{display:block;margin:35px 0;padding:0 5px}.experiment h2{font-size:29px}.experiment-controls{padding-top:7px}.specimen-grid{grid-template-columns:1fr 1fr;gap:10px}.specimen-content{padding:10px}.specimen button{margin:3px 0;display:block;width:100%}.specimen h3{font-size:16px}.collection h2{font-size:25px}.methods{margin-bottom:24px}footer{flex-direction:column;gap:7px;font-size:8px}.slice-strip{padding:8px 12px;gap:8px;font-size:10px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{animation:none!important;transition:none!important}}
