:root{font-family:Inter,'Microsoft YaHei','PingFang SC',sans-serif;color:#dbe9ee;background:#102b39;font-synthesis:none;--ink:#0c2939;--teal:#18b4ad;--line:#34515e;--muted:#a0bac6}*{box-sizing:border-box}body{margin:0}a{color:inherit;text-decoration:none}button,input,select{font:inherit}button,a.filter{cursor:pointer}button{border:1px solid #49616d;border-radius:7px;background:#294653;color:#e6f1f5;padding:9px 13px;transition:.15s}button:hover{background:#3d5b68;border-color:#5dc9c3}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid #4edcd4;outline-offset:3px}button.active{color:#69e5d5;border-color:#29a69c;background:#174c52}button:disabled{opacity:.45;cursor:default}.site-header{height:68px;display:flex;align-items:center;padding:0 30px;gap:22px;border-bottom:1px solid #36505d;background:linear-gradient(100deg,#193b4b,#12303f);color:#f0f7fa}.brand{display:flex;align-items:center;gap:12px;white-space:nowrap}.brand strong{font-size:23px;letter-spacing:1px}.brand small{font-size:10px;letter-spacing:3px;color:#a5c2cb}.atom{font-size:35px;color:#bed6e0;font-family:serif}.stage-nav{margin:auto;display:flex;background:#0f2835;border:1px solid #45606b;padding:3px;border-radius:8px}.stage-nav a{padding:8px 32px}.stage-nav .active{background:#256074;border-radius:5px}.quiet{color:#9dbec9;font-size:14px}.subjects{display:flex;gap:40px;padding:0 36px;height:52px;background:#153645;border-bottom:1px solid #34505d}.subjects a{display:grid;place-items:center;padding:0 16px;color:#a8c0cc}.subjects .active{color:#71dacf;border-bottom:3px solid #25b8b1}.home-main{max-width:1540px;margin:auto;padding:35px 32px 24px}.page-heading{display:flex;align-items:center;justify-content:space-between;gap:24px}.eyebrow{font-size:10px;letter-spacing:2px;color:#82a7b7}h1{font-size:36px;margin:7px 0 9px;font-weight:650;letter-spacing:1px}.page-heading p{color:#9bb8c6;font-size:15px;margin:0}.search{display:flex;align-items:center;background:#1a3c4d;border:1px solid #456170;border-radius:8px;padding:0 15px;min-width:300px}.search span{font-size:27px;color:#afcad5}.search input{background:transparent;border:0;padding:13px 10px;color:#e7f2f5;width:100%;outline:none}.search input::placeholder{color:#98b1be}.filter-row{display:flex;align-items:center;gap:10px;margin:27px 0 20px}.filter{border-color:transparent;background:#1b3a4b;padding:8px 19px;color:#b7cbd5}.filter.active{color:#d0f6ed;background:#175556;border-color:#25776f}.filter-row #count{margin-left:auto;font-size:13px;color:#8eacba}.theme-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:20px}.theme-card{display:block;border:1px solid #476474;background:#183d50;border-radius:13px;overflow:hidden;box-shadow:0 8px 18px #06151f38;transition:transform .18s,border .18s}.theme-card:hover{transform:translateY(-4px);border-color:#3ccac2}.theme-photo{height:190px;background-image:url('../docs/design-previews/junior-physics-home-v1.png');background-size:431% 495%;background-position:var(--x) var(--y);background-repeat:no-repeat;border-bottom:1px solid #54717e}.theme-text{padding:17px 19px 14px}.theme-text h2{font-size:22px;margin:0 0 10px;font-weight:600}.theme-text p{font-size:13px;color:#a7c4d0;margin:0;min-height:20px;line-height:1.7}.theme-text .browse{display:flex;align-items:center;justify-content:space-between;font-size:13px;color:#6ddbd4;margin-top:17px;border-top:1px solid #385969;padding-top:13px}.theme-text .browse b{font-size:18px}.lesson-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}.lesson-card{border:1px solid #426271;border-radius:12px;background:#173949;overflow:hidden;padding:22px}.lesson-card:hover{border-color:#36bdb6;background:#1c4252}.lesson-card .lesson-number{color:#5ad5c7;font-size:13px;letter-spacing:1px}.lesson-card h2{font-size:21px;margin:13px 0}.lesson-card p{color:#b0c6d0;font-size:14px;line-height:1.8;min-height:52px}.lesson-card .badges{display:flex;justify-content:space-between;font-size:12px;color:#80d3c8}.empty{grid-column:1/-1;text-align:center;padding:70px;color:#b8d1db}.recent-section{margin-top:27px}.recent-section h2{font-size:16px;font-weight:500}.recent-links{display:flex;gap:12px;flex-wrap:wrap}.recent-links a{background:#173748;border:1px solid #375464;border-radius:7px;padding:10px 18px;font-size:14px}footer{margin-top:30px;border-top:1px solid #30505f;padding-top:18px;font-size:12px;color:#83a5b6;display:flex;justify-content:space-between}.lab{height:100dvh;overflow:hidden;background:#112d3b}.lab .site-header{height:58px;padding:0 22px;gap:12px}.lab .brand strong{font-size:20px}.lab .atom{font-size:30px}.crumb{display:flex;gap:10px;align-items:center;color:#afc8d5;font-size:14px;flex:1}.crumb a:hover{color:#68e1d6}.lab-layout{height:calc(100dvh - 58px);display:grid;grid-template-columns:188px minmax(350px,1fr) 296px;gap:10px;padding:12px}.library,.inspector{border:1px solid #34515e;background:#173b4c;border-radius:10px;overflow:auto;scrollbar-width:thin;scrollbar-color:#527481 transparent}.library{display:flex;flex-direction:column;padding:15px 10px}.library h2,.inspector h2{font-size:19px;margin:0 0 17px;display:flex;align-items:center;justify-content:space-between}.library h2 button{padding:0 7px;border:0;background:none;font-size:24px}.apparatus{width:100%;display:flex;align-items:center;gap:10px;text-align:left;padding:13px 9px;margin-bottom:10px;border-color:#426070;background:#1c4153;min-height:82px}.apparatus.active{border-color:#27b7b2;background:#245465}.apparatus .instrument-icon{display:grid;place-items:center;width:48px;height:50px;border-radius:7px;background:#e0e8e9;color:#183745;font-size:29px;flex-shrink:0}.apparatus strong{font-size:16px}.apparatus small{display:block;font-size:11px;color:#a7c1ce;line-height:1.6;margin-top:5px}.all-lessons{margin-top:auto;text-align:center;border-top:1px solid #41606d;padding:18px 4px 4px;color:#9fcad4;font-size:13px}.stage{display:flex;flex-direction:column;min-width:0;min-height:0;border:1px solid #45616d;border-radius:10px;overflow:hidden;background:#aebdc6}.stage-toolbar{height:55px;flex-shrink:0;background:linear-gradient(100deg,#344f60,#253f4f);display:flex;align-items:center;gap:14px;padding:8px 13px}.stage-toolbar>strong{font-size:19px;white-space:nowrap}.stage-toolbar .status{font-size:11px;color:#71dfbd;border-left:1px solid #68808b;padding-left:14px;white-space:nowrap}.stage-toolbar>div{margin-left:auto;display:flex;gap:6px}.stage-toolbar button{font-size:12px;padding:7px 9px;background:#405a68}.stage-foot{height:35px;display:flex;align-items:center;justify-content:space-between;padding:0 12px;background:#e1eaed;color:#34515d;font-size:11px;flex-shrink:0}#viewport{position:relative;flex:1;min-height:0;overflow:hidden;touch-action:none}#viewport>canvas{width:100%;height:100%;display:block}.scene-tag{position:absolute;z-index:2;top:12px;left:12px;background:#e8f1f2e8;color:#244757;border:1px solid #b5c8d1;border-radius:6px;font-size:12px;padding:9px 11px;pointer-events:none}.scene-tag span{color:#688491;margin-left:10px;font-size:11px}#labels{position:absolute;inset:0;pointer-events:none;z-index:2}.model-label{position:absolute;transform:translate(-50%,-100%);color:#f3fbff;background:#173a4be8;border:1px solid #d2e5eb;border-radius:5px;padding:5px 10px;white-space:nowrap;font-size:15px;font-weight:600;box-shadow:0 2px 5px #0002}.zoom{position:absolute;bottom:13px;left:12px;display:flex;align-items:center;padding:3px;background:#eef5f5e8;border:1px solid #c4d4dc;border-radius:7px;z-index:4}.zoom button{padding:7px 10px;background:transparent;border:0;color:#214454;font-size:16px}#zoomReset{font-size:12px}.play-tools{position:absolute;left:50%;bottom:14px;transform:translateX(-50%);display:flex;align-items:center;gap:5px;padding:6px 8px;background:#173746e8;border:1px solid #75919b;border-radius:8px;z-index:4;white-space:nowrap}.play-tools button{padding:7px 10px;font-size:12px}.play-tools span{font-size:12px;padding:0 6px;min-width:50px}.play-tools select{background:#264959;border:1px solid #526e79;color:#def4f5;padding:5px;border-radius:4px}.floating{position:absolute;right:13px;bottom:69px;width:316px;max-width:80%;background:#102f3ceF;border:1px solid #59818e;border-radius:9px;box-shadow:0 10px 24px #0b223766;z-index:3;overflow:hidden}.floating-head{display:flex;justify-content:space-between;align-items:center;padding:8px 11px;background:#214653;cursor:move;touch-action:none;font-size:13px}.floating-head button{padding:1px 7px;background:#335865;font-size:15px}.floating-body canvas{width:100%;height:auto;display:block}.floating-body p{font-size:12px;line-height:1.7;color:#b7d7db;margin:0;padding:0 12px 12px}.floating.folded .floating-body{display:none}#diagramOpen{position:absolute;right:13px;bottom:70px;z-index:3}.inspector{padding:16px 12px}.inspector h2 small{font-size:10px;font-weight:400;background:#286773;border:1px solid #418c91;padding:4px 6px;color:#8be3d8;border-radius:4px}#readouts{display:grid;grid-template-columns:1fr 1fr;gap:9px;margin-bottom:13px}.readout{padding:13px 11px;border:1px solid #3b6171;background:#12313f;border-radius:8px;min-height:95px}.readout:first-child{grid-column:1/-1;background:linear-gradient(110deg,#16454e,#13313f)}.readout span{font-size:12px;color:#bad0db;display:block}.readout strong{display:block;font-size:30px;color:#7be2cd;font-variant-numeric:tabular-nums;font-weight:600;margin-top:8px;letter-spacing:-.5px}.readout:first-child strong{font-size:39px}.readout small{font-size:14px;margin-left:5px;letter-spacing:0}.control-card,.instructions,.records{padding:14px 12px;border:1px solid #3c5c6a;border-radius:8px;margin:12px 0;background:#143442}h3{font-size:15px;margin:0 0 13px}.control{margin:14px 0 19px}.control label{display:flex;align-items:center;justify-content:space-between;font-size:12px;color:#c5d9e1;gap:8px}.control output{font-size:16px;color:#83e1d1;white-space:nowrap}.control input[type=range]{width:100%;accent-color:#2fc8b5;margin:13px 0 4px;cursor:ew-resize}.range-limits{display:flex;justify-content:space-between;font-size:10px;color:#8cabbc}.control select{width:100%;background:#244b5b;color:#d6edf2;border:1px solid #56717d;border-radius:5px;padding:9px;margin-top:8px}.instructions p,.instructions li{font-size:12px;line-height:1.9;color:#b9cfd8}.instructions ol{padding-left:20px}.instructions details{border-top:1px solid #3a5865;padding-top:10px;margin-top:13px}.instructions summary{font-size:12px;color:#77d4c6;cursor:pointer}#warnings{color:#ffce84;font-size:12px;line-height:1.8}.records>div:first-child{display:flex;justify-content:space-between;align-items:center}.records h3{margin:0}.records button{font-size:12px;padding:7px 10px}#recordList{font-size:11px;color:#aac3cd;max-height:180px;overflow:auto;padding:12px 0;line-height:1.8}.record-row{padding:8px 0;border-bottom:1px solid #3e5865}.record-row b{color:#80dfd0}.lab.left-hidden .lab-layout{grid-template-columns:44px minmax(350px,1fr) 296px}.lab.left-hidden .library{padding:8px 2px}.lab.left-hidden .library h2{font-size:0;justify-content:center}.lab.left-hidden #apparatus,.lab.left-hidden .all-lessons{display:none}.lab.right-hidden .lab-layout{grid-template-columns:188px minmax(350px,1fr)}.lab.right-hidden .inspector{display:none}.lab.left-hidden.right-hidden .lab-layout{grid-template-columns:44px minmax(350px,1fr)}.lab.projection .library,.lab.projection .inspector,.lab.projection .crumb{display:none}.lab.projection .lab-layout{grid-template-columns:minmax(350px,1fr);padding:6px}.lab.projection .model-label{font-size:21px}.lab.projection .stage-toolbar>strong{font-size:24px}.lab.projection .floating{width:400px}.lab.electric .lab-layout{display:block}.lab.electric .library,.lab.electric .inspector,.lab.electric .stage-toolbar,.lab.electric .stage-foot{display:none}.lab.electric .stage{height:100%}.lab.electric #viewport>iframe{border:0;width:100%;height:100%;display:block}.lab.electric #viewport>div,.lab.electric #viewport>.floating,.lab.electric #viewport>button{display:none}dialog{background:#173c4d;color:#d9eaf0;border:1px solid #5f8799;border-radius:12px;padding:25px;max-width:620px;width:90%}dialog::backdrop{background:#001825aa}dialog p,dialog li{font-size:14px;line-height:1.9}dialog button{float:right;margin-top:15px}#error{position:absolute;inset:20%;z-index:9;background:#173e4fee;border:1px solid #f3bc6a;padding:30px;border-radius:10px;line-height:1.8}#viewport:fullscreen{height:100dvh;width:100vw;background:#aebdc6}@media(min-width:1600px){.lab-layout{grid-template-columns:218px minmax(350px,1fr) 320px}.theme-photo{height:210px}}@media(max-width:1100px){.theme-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.lab-layout{grid-template-columns:145px minmax(300px,1fr) 255px;gap:6px;padding:7px}.apparatus{gap:6px;padding:10px 6px}.apparatus .instrument-icon{width:33px;font-size:23px}.apparatus strong{font-size:13px}.stage-toolbar .status{display:none}.stage-toolbar{padding:6px 8px}.stage-toolbar>strong{font-size:15px}.stage-toolbar button{padding:7px 6px}.floating{width:270px;bottom:70px}.lab .brand strong{font-size:16px}.lab .site-header{gap:10px;padding:0 12px}.crumb{font-size:11px}.play-tools{left:12px;transform:none;bottom:59px}.lesson-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.stage-foot #selection{display:none}}@media(max-width:760px){.site-header{padding:0 15px;gap:12px}.brand strong{font-size:19px}.brand small,.site-header>.quiet{display:none}.stage-nav{margin-left:auto;margin-right:0}.stage-nav a{padding:7px 15px}.subjects{gap:18px;padding:0 15px}.home-main{padding:24px 15px}.page-heading{align-items:flex-start;flex-direction:column}.page-heading h1{font-size:29px}.search{width:100%;min-width:0}.filter-row{gap:3px;flex-wrap:wrap}.filter{padding:8px 12px}.theme-grid{gap:12px}.theme-photo{height:145px}.theme-text{padding:13px 11px}.theme-text h2{font-size:18px}.theme-text p{font-size:11px;min-height:38px}.lesson-grid{grid-template-columns:1fr}footer span{display:none}.lab .crumb{display:none}.lab .site-header{height:52px}.lab-layout{height:calc(100dvh - 52px);grid-template-columns:1fr;padding:5px}.lab .library{display:none}.lab .inspector{display:none}.lab.right-visible .lab-layout{grid-template-columns:minmax(0,1fr) 245px}.lab.right-visible .inspector{display:block}.lab .stage-toolbar>strong{font-size:14px}.lab .stage-toolbar button{font-size:11px}.lab .stage-foot{font-size:10px}.floating{width:245px;right:8px}.play-tools{max-width:calc(100% - 24px);overflow:auto}.scene-tag span{display:none}.stage-toolbar{gap:6px}.lab .site-header button{font-size:12px;padding:7px}.lab .brand strong{font-size:17px}}
:root{color-scheme:dark}
@media(min-width:761px) and (max-height:900px){.home .site-header{height:59px}.home .subjects{height:44px}.home-main{padding-top:22px}.page-heading h1{font-size:30px}.filter-row{margin:19px 0 15px}.theme-photo{height:142px}.theme-grid{gap:15px}.theme-text{padding:13px 16px}.theme-text h2{font-size:20px;margin-bottom:7px}.theme-text p{font-size:12px;min-height:20px}.theme-text .browse{margin-top:10px;padding-top:9px}.recent-section{margin-top:18px}}
[hidden]{display:none!important}.theme-photo{background-size:431% auto}
.timeline{position:absolute;left:12px;bottom:57px;z-index:3;background:#dce9eadd;border:1px solid #b6cbd5;border-radius:6px;color:#264c5e;font-size:11px;display:flex;align-items:center;gap:8px;padding:6px 10px;width:220px}.timeline input{width:130px;accent-color:#0c998e}.floating{width:290px;bottom:75px}.model-label{font-size:14px}@media(max-width:1100px){.timeline{bottom:108px;width:200px}.timeline input{width:110px}}.lab.electric .timeline{display:none!important}
.instrument-icon img{width:100%;height:100%;object-fit:contain;border-radius:6px}.apparatus .instrument-icon{width:55px;height:55px}.apparatus{padding:11px 7px}.apparatus strong{font-size:14px}.apparatus small{font-size:11px}.inspector{scrollbar-color:#587c8a #183b4b}
.apparatus strong{font-size:16px}.apparatus small{font-size:13px;line-height:1.5}.model-label{font-size:16px}.instructions p,.instructions li,.instructions summary,.control label,.stage-foot{font-size:13px}.stage-toolbar button{font-size:13px}.theme-text p{font-size:13px}.exit-fullscreen{position:absolute;right:14px;top:12px;z-index:10;background:#173c4be8;color:#dff7fa}.scene-tag{font-size:13px}.scene-tag span{font-size:12px}.stage-foot{gap:15px}.stage-foot #selection{max-width:40%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}@media(max-width:1100px){.stage-foot{font-size:11px}}
.lab.electric #viewport>.electric-loading{position:absolute;inset:0;display:grid!important;place-items:center;background:#173c4d;color:#b6d7e3;font-size:18px;z-index:10}
.home{background:#e7eff7;color:#173b55;color-scheme:light}.home .subjects{background:#f2f7fc;border-color:#d0deeb}.home .subjects a{color:#48627a}.home .subjects .active{color:#095788}.home .home-main{padding-top:24px}.home .eyebrow{display:none}.home .page-heading p{color:#526f87}.home .search{background:#f6faff;border-color:#bdcfe0}.home .search input{color:#173b55}.home .search input::placeholder{color:#71889c}.home .filter-row{margin:-39px 0 22px;padding-left:47%;min-height:40px}.home .filter-row #count{display:none}.home .filter{background:#f2f7fc;color:#355d7b;border:1px solid #bccfe0;border-radius:22px;padding:8px 18px;white-space:nowrap}.home .filter.active{background:#285770;border-color:#285770;color:white}.home .theme-card{background:#fff;border-color:#cfdfeb;box-shadow:0 3px 9px #375e7e14}.home .theme-photo{height:auto!important;aspect-ratio:356/207;background-size:431.46% 494.69%;border-bottom:1px solid #e1e8ef}.home .theme-text h2{color:#173b55}.home .theme-text p{color:#55738c}.home .theme-text .browse{color:#0c5d8e;border-color:#e1e9f0}.home .lesson-card{background:#fff;border-color:#c6d9e8}.home .lesson-card:hover{background:#f2f9fd}.home .lesson-card p{color:#55738c}.home .lesson-number,.home .lesson-card .badges{color:#13658b}.home .recent-links a{background:#f4f9fd;border-color:#c4d6e4;color:#285e82}.home footer{color:#628199;border-color:#cfdeea}.home .theme-grid{gap:18px}.home .theme-text{padding:16px 20px 14px}.home .recent-section{margin-top:22px}@media(max-width:1100px){.home .filter-row{margin:17px 0;padding-left:0}.home .filter-row #count{display:block;color:#58758c}}@media(min-width:1101px) and (max-height:900px){.home .theme-text{padding:12px 17px}.home .theme-text h2{font-size:20px}.home .theme-text .browse{margin-top:10px;padding-top:8px}.home .recent-section{margin-top:18px}}
.home .search{align-self:flex-start;margin-top:-10px}@media(max-width:1100px){.home .search{align-self:center;margin-top:0}}
.lab.projection.projection-params .lab-layout{grid-template-columns:minmax(0,1fr) 296px}.lab.projection.projection-params .inspector{display:block}@media(max-width:760px){.lab.projection.projection-params .lab-layout{grid-template-columns:minmax(0,1fr) 245px}}
.floating.ruler-detail{width:410px;max-width:calc(100% - 24px);background:#123541f5}.ruler-detail #principle[hidden]{display:none}.ruler-detail-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.ruler-end{min-width:0}.ruler-end>strong{display:block;font-size:16px;color:#c6eceb;margin:2px 0 6px}.ruler-end svg{display:block;width:100%;height:auto}.ruler-detail .floating-body{padding:12px}.ruler-detail .floating-body p{font-size:13px;line-height:1.6;margin:10px 0 0}.ruler-detail.folded .floating-body{display:none}
.model-label.ruler-handle{pointer-events:auto;cursor:grab;touch-action:none;user-select:none}.model-label.ruler-handle.selected{background:#0b635e;border-color:#51e0ce;box-shadow:0 0 0 2px #2ad8bd44}.model-label.ruler-handle:focus-visible{outline:3px solid #53dec9;outline-offset:3px}#viewport.dragging-ruler canvas,#viewport.dragging-ruler .ruler-handle{cursor:grabbing!important}#viewport>canvas{touch-action:none}
.model-label.instrument-handle{pointer-events:auto;cursor:pointer;touch-action:none;user-select:none}.model-label.instrument-handle.draggable{cursor:grab}.model-label.instrument-handle.selected{background:#0b635e;border-color:#51e0ce;box-shadow:0 0 0 2px #2ad8bd44}.model-label.instrument-handle:focus-visible{outline:3px solid #53dec9;outline-offset:3px}#viewport.dragging-ruler .instrument-handle{cursor:grabbing!important}.stage-foot #selection{max-width:58%}

.heating-lesson .heat-toggle{display:block;width:100%;font-size:18px;font-weight:600;padding:12px;background:#17665f;border-color:#49cfb8;margin-bottom:17px}.heating-lesson .heat-toggle[aria-pressed=true]{background:#744323;border-color:#ffb875}.heating-lesson .play-tools #play{font-size:16px;font-weight:600;padding:9px 14px}.heating-lesson .play-tools select{max-width:145px}.heating-lesson .scene-tag{max-width:calc(100% - 24px)}.heating-lesson .scene-tag span{display:inline-block;white-space:normal}
