@import"https://fonts.googleapis.com/css2?family=Noto+Serif+SC:wght@500;600&display=swap";:root{font-family:Inter,Microsoft YaHei,sans-serif;color:#24332f;background:#edf0ed;font-synthesis:none;letter-spacing:0;font-size:13px}*{box-sizing:border-box}body{margin:0}button,input,select{font:inherit}button{cursor:pointer;color:inherit}button:focus-visible,input:focus-visible,select:focus-visible{outline:2px solid #227866;outline-offset:4px}button{border:0;background:none}svg{width:18px;height:18px;stroke-width:1.5}header{height:78px;border-bottom:1px solid #d4dcd6;display:flex;align-items:center;justify-content:space-between;padding:0 32px;background:#f7f9f5}.brand{display:flex;align-items:center;gap:12px}.brand-mark{display:grid;place-items:center;width:36px;height:40px;background:#244e40;color:#fff;font-family:serif;font-size:24px}.brand strong{display:block;font-size:16px;font-weight:600}.brand small{display:block;font-size:9px;color:#78847c;margin-top:5px}.header-title{font-size:13px}.header-title span{margin-left:22px;color:#89938c;font-size:11px}.icon-button{width:36px;height:36px;display:inline-grid;place-items:center;border-radius:4px}.icon-button:hover,.icon-button.active{background:#dfe7df;color:#21674f}main{position:relative;height:calc(100dvh - 112px);min-height:650px;overflow:hidden}#viewport{position:absolute;inset:0}canvas{display:block;width:100%;height:100%;touch-action:none}.intro{position:absolute;left:32px;top:30px;pointer-events:none}.eyebrow{font-size:10px;color:#6d7c72;font-weight:600}.intro h1{font-family:"Noto Serif SC",SimSun,serif;font-size:38px;font-weight:500;margin:12px 0}.intro p{color:#6f7c74;font-size:12px}.metrics{display:flex;gap:26px;margin-top:22px}.metrics div{display:flex;flex-direction:column;gap:7px}.metrics b{font-size:22px;font-weight:500}.metrics b small{font-size:11px;margin-left:4px;color:#859288}.metrics span{font-size:10px;color:#859288}.layers{position:absolute;top:236px;left:32px;width:196px}.section-title{display:flex;align-items:center;justify-content:space-between;font-size:11px;font-weight:600;margin-bottom:15px}.section-title small{font-weight:400;font-size:10px;color:#89978c}#level-list{display:flex;flex-direction:column;gap:2px;border-left:1px solid #cdd8ce}.level-button{width:100%;height:29px;display:flex;align-items:center;text-align:left;padding:0 10px;gap:13px;font-size:11px;border-left:2px solid transparent;margin-left:-1px}.level-button .level-number{font-family:monospace;color:#89958c;font-size:10px}.level-button .level-type{font-size:9px;margin-left:auto;color:#8e9a92}.level-button.active{background:#dae5dc;border-left-color:#397759}.level-button.hidden-stage{opacity:.35}.level-button:hover{background:#e0e8e0}.level-button.dark-level{color:#688b83}.legend{border-top:1px solid #d5ded5;margin-top:14px;padding-top:13px;display:flex;gap:22px;color:#8b978e;font-size:10px}.legend span{display:flex;align-items:center;gap:6px}em{width:6px;height:6px;border-radius:50%;display:inline-block}.wood-dot{background:#987052}.brace-dot{background:#438e8a}.inspector{position:absolute;right:28px;top:32px;width:212px;padding:0 0 0 20px;border-left:1px solid #d4dcd4}.segmented{display:flex;background:#e0e6df;padding:3px;border-radius:5px;margin-bottom:24px}.segmented button{flex:1;height:29px;font-size:11px;border-radius:3px}.segmented button.active{background:#fafbf8;box-shadow:0 1px 4px #142a2012}.control-label{display:flex;justify-content:space-between;font-size:11px;margin-bottom:10px}.control-label output{color:#718279}input[type=range]{width:100%;accent-color:#316d55;height:14px;cursor:pointer}.switch-row{display:flex;align-items:center;justify-content:space-between;margin-top:20px;font-size:11px}.switch-row input{appearance:none;width:28px;height:16px;border-radius:9px;background:#c5cec6;position:relative;cursor:pointer;margin:0}.switch-row input:before{content:"";position:absolute;width:12px;height:12px;border-radius:50%;background:#fff;top:2px;left:2px;transition:transform .2s}.switch-row input:checked{background:#39725b}.switch-row input:checked:before{transform:translate(12px)}.detail{border-top:1px solid #d5ded5;margin-top:26px;padding-top:22px}.detail h2{font-family:"Noto Serif SC",SimSun,serif;font-weight:500;font-size:22px;margin:12px 0}.detail p{font-size:11px;line-height:1.9;color:#79877d;min-height:70px}.detail #detail-meta{font-size:10px;color:#638070;border-top:1px solid #d5ded5;padding-top:15px}.text-button{display:flex;align-items:center;gap:9px;font-size:11px;margin-top:18px;padding:0}.view-tools{display:flex;align-items:center;gap:2px;flex-shrink:0}.view-tools span{width:1px;height:22px;background:#d5ddd3;margin:7px 4px}.scene-label{position:absolute;bottom:138px;left:32px;display:flex;align-items:center;gap:7px;font-size:10px;color:#708076}.scene-label small{display:block;color:#8d9b90;font-size:9px}.status-dot{width:5px;height:5px;background:#36765a;border-radius:50%}.north{position:absolute;right:46px;bottom:140px;display:flex;align-items:center;gap:8px;font-size:10px;color:#7d8c7f}.north svg{width:22px;height:22px}.transport{position:absolute;bottom:22px;left:32px;right:32px;display:flex;align-items:center;gap:22px;padding:18px 22px;background:#f8faf6f2;border:1px solid #d1dcd0;border-radius:6px}.play-button{display:grid;place-items:center;flex-shrink:0;width:42px;height:42px;background:#295d49;color:#fff;border-radius:50%}.play-button:hover{background:#174c37}.timeline-wrap{flex:1;min-width:0}.timeline-heading{display:flex;justify-content:space-between;font-size:11px;margin-bottom:7px}.timeline-heading strong{font-weight:500}.timeline-heading span{font-size:10px;color:#6a7e70}.timeline-labels{display:flex;justify-content:space-between;font-size:9px;color:#8b9a8f;margin-top:4px}.transport select{border:0;background:transparent;color:#6c7b71;font-size:11px;cursor:pointer}footer{height:34px;border-top:1px solid #d4dcd6;background:#f7f9f5;display:flex;align-items:center;justify-content:space-between;padding:0 32px;font-size:9px;color:#859185}footer button{display:flex;align-items:center;gap:7px;font-size:10px;color:#748577}footer svg{width:12px;height:12px}dialog{max-width:560px;width:calc(100% - 32px);border:1px solid #c7d5c9;background:#f8faf6;color:#314537;border-radius:6px;padding:24px;line-height:1.9}dialog::backdrop{background:#182b2750;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px)}.dialog-head{display:flex;align-items:center;justify-content:space-between}.dialog-head h2{font-size:18px}dialog p,dialog li{font-size:12px}dialog ul{padding-left:20px}@media(min-height:950px){.layers{top:260px}.level-button{height:32px}}@media(max-width:1000px){.inspector{width:175px;right:20px;padding-left:14px}.intro,.layers{left:22px}.layers{width:158px}.intro h1{font-size:32px}.metrics{gap:15px}.scene-label small{display:none}}@media(max-width:700px){header{height:62px;padding:0 16px}.header-title{display:none}.brand strong{font-size:14px}.brand small{font-size:8px}.brand-mark{width:30px;height:34px}main{height:calc(100dvh - 94px);min-height:600px}.intro{top:20px;left:16px}.intro h1{font-size:28px;margin:8px 0}.intro p{font-size:10px;margin:6px 0}.eyebrow{font-size:8px}.metrics{gap:17px;margin-top:13px}.metrics b{font-size:17px}.metrics span{font-size:8px}.layers{left:12px;top:186px;width:100px}.section-title{font-size:10px}.section-title small,.level-type,.legend{display:none!important}.level-button{height:27px;font-size:10px;padding-left:5px;gap:6px}.level-button .level-number{font-size:8px}.inspector{right:12px;top:22px;width:118px;padding-left:10px}.inspector .section-title{font-size:10px}.inspector .section-title svg{width:14px}.segmented{margin-bottom:16px}.segmented button{font-size:9px;padding:0;height:25px}.control-label,.switch-row{font-size:9px}.switch-row{margin-top:14px}.switch-row input{width:24px}.switch-row input:checked:before{transform:translate(8px)}.detail{margin-top:16px;padding-top:14px}.detail h2{font-size:17px;margin:10px 0}.detail p{font-size:9px;line-height:1.7;min-height:0}.detail #detail-meta{font-size:8px;line-height:1.8}.text-button{font-size:9px;gap:4px}.text-button svg{width:13px}.transport{left:12px;right:12px;bottom:15px;padding:12px;gap:10px}.play-button{width:34px;height:34px}.transport .icon-button{width:24px}.transport select{width:46px;font-size:10px}.timeline-labels span:nth-child(2n){display:none}.timeline-labels{font-size:8px}.timeline-heading{font-size:9px}.view-tools{gap:1px}.scene-label{left:16px;bottom:162px;font-size:8px}.north{right:20px;bottom:127px}.north svg{width:16px}footer{height:32px;padding:0 12px}footer>span{display:none}footer{justify-content:center}footer button{font-size:9px}}@media(min-width:701px){#level-list{overflow-y:auto;scrollbar-width:thin;scrollbar-color:#c8d3c9 transparent;max-height:max(180px,calc(100dvh - 583px))}#level-list>.level-button{flex-shrink:0}#level-list::-webkit-scrollbar{width:6px}#level-list::-webkit-scrollbar-thumb{background:#c8d3c9;border-radius:3px}}@media(min-height:950px)and (min-width:701px){#level-list{max-height:max(156px,calc(100dvh - 607px))}}@media(max-width:700px){main{min-height:740px}#viewport{top:120px;bottom:210px}.intro{top:16px}.intro p{display:none}.metrics{position:absolute;top:4px;left:175px;width:170px;gap:15px}.intro h1{margin-top:12px}.layers{top:116px;width:84px}.layers .section-title{margin-bottom:10px}.level-button{height:25px}.inspector{inset:auto 14px 105px;width:auto;padding:10px 0 0;border-left:0;border-top:1px solid #d4dcd4;display:grid;grid-template-columns:1fr 1fr 1fr;gap:10px 14px}.inspector>.section-title,.detail,.inspector>.text-button{display:none}.segmented{grid-column:1;grid-row:1 / 3;margin:0;align-self:center}.control-label,#explode{grid-column:2 / 4;margin:0}.switch-row{margin:0;font-size:9px}.view-tools .icon-button{width:26px;height:26px}.view-tools span,#zoom-in,#zoom-out{display:none}.scene-label{bottom:251px}.north{bottom:217px}.transport{bottom:13px}}.header-actions{display:flex;align-items:center;gap:16px}.header-actions>button{font-size:12px;padding:8px 4px}#explore-dialog,#weather-dialog{width:min(480px,calc(100vw - 24px));max-height:90dvh;overflow:auto}dialog label{display:block;font-size:12px;margin:10px 0}dialog select{display:block;width:100%;padding:8px;border:1px solid #bdccbf;border-radius:4px;background:#fff;color:#304435;margin:6px 0}dialog input[type=checkbox]{accent-color:#316d55}.explore-actions{display:flex;align-items:center;flex-wrap:wrap;gap:14px;margin:16px 0}.explore-actions button,#solar-reset{border-bottom:1px solid #94ad9c;padding:6px 2px;font-size:12px}.explore-actions label{margin:0}.environment-note{color:#718078}#component-copy{min-height:65px}#solar-dialog{max-width:1200px;width:92vw;padding:18px}#solar-canvas{height:58dvh;min-height:260px;background:#101519}#solar-dialog .dialog-head h2{margin:0 0 10px}.solar-controls{display:flex;align-items:center;gap:24px;flex-wrap:wrap}.solar-controls label{min-width:100px}.solar-controls select{min-width:130px}#planet-copy{margin:6px 0}.section-controls{border:0;border-top:1px solid #cad8cc;padding:6px 0 0;margin:18px 0 0;min-width:0}.section-controls legend{padding:0 12px 0 0;font-size:12px}.section-controls output{float:right;color:#577660}#weather-dialog{position:fixed;inset:94px 24px auto auto;margin:0;width:320px;max-width:calc(100vw - 24px);max-height:calc(100dvh - 120px);z-index:20;padding:16px;box-shadow:0 8px 28px #233a2226;overscroll-behavior:contain}#weather-dialog .dialog-head{position:sticky;top:-16px;background:#f8faf6;z-index:1}#weather-dialog h2{font-size:16px;margin:8px 0}@media(max-width:700px){#weather-dialog{inset:74px 12px auto auto;width:300px;max-height:calc(100dvh - 90px);padding:14px}#weather-dialog .dialog-head{top:-14px}}#explore-dialog{position:fixed;inset:100px 20px auto auto;margin:0;width:320px;max-height:calc(100dvh - 225px);z-index:10;padding:16px;box-shadow:0 8px 28px #233a2226}#explore-dialog .dialog-head{position:sticky;top:-16px;background:#f8faf6;z-index:1}#explore-dialog h2{font-size:16px;margin:8px 0}#explore-dialog #component-copy{min-height:0}#explore-dialog h3{font-size:13px;margin:10px 0}@media(max-width:700px){#explore-dialog{inset:auto 12px 110px;width:auto;max-height:43dvh;padding:14px}#explore-dialog .dialog-head{top:-14px}}@media(max-width:700px){.header-actions{gap:9px}.header-actions>button{font-size:10px}.brand small{display:none}.brand{gap:6px}.brand strong{font-size:11px}.header-actions .icon-button{width:26px}.solar-controls{gap:10px}.solar-controls label{font-size:10px;min-width:60px}#solar-dialog{padding:12px;width:96vw}#solar-canvas{height:48dvh}#solar-dialog input[type=range]{width:85px}#solar-dialog .solar-controls select{min-width:100px}}
