:root{color:#233a42;font-synthesis:none;background:#f1f5f4;font-family:Microsoft YaHei,Noto Sans CJK SC,Arial,sans-serif}*{box-sizing:border-box}html,body,#root{min-width:320px;min-height:100%;margin:0}button,input{font:inherit}button{cursor:pointer}button:disabled{cursor:default;opacity:.45}.app{background:#f1f5f4;grid-template-rows:72px minmax(0,1fr) 76px;height:100svh;min-height:600px;display:grid;overflow:hidden}.topbar{z-index:3;border-bottom:1px solid #d7dfdd;grid-template-columns:1fr 1fr 1fr;align-items:center;padding:0 3.2vw;display:grid}.brand{letter-spacing:.13em;align-items:center;gap:13px;font-size:14px;font-weight:700;display:flex}.brand-mark{color:#b65f47;border:1px solid #b65f47;border-radius:50%;place-items:center;width:34px;height:34px;font-size:30px;line-height:1;display:grid}.brand small{letter-spacing:.19em;color:#90a1a3;margin-top:4px;font:700 8px Arial,sans-serif;display:block}.top-note{text-align:center;color:#829398;letter-spacing:.17em;font-size:10px}.text-button{color:#2f5660;letter-spacing:.08em;background:0 0;border:0;justify-self:end;font-size:11px}.text-button span{margin-left:5px;font-size:16px}.content{grid-template-columns:minmax(250px,23vw) minmax(0,1fr) 74px;min-height:0;padding-left:3.2vw;display:grid}.editorial{z-index:2;padding:clamp(32px,7vh,85px) 25px 20px 0}.eyebrow{letter-spacing:.18em;color:#b25c44;white-space:nowrap;font:700 10px Arial,sans-serif}.accent-dot{background:#b25c44;border-radius:50%;width:6px;height:6px;margin:0 8px 1px 0;display:inline-block}.editorial h1{letter-spacing:.04em;white-space:nowrap;margin:28px 0;font-size:clamp(38px,3.6vw,62px);font-weight:600;line-height:1.22}.editorial h1 em{color:#627b80;font-style:normal;font-weight:300}.lead{color:#5d7279;max-width:270px;font-size:13px;line-height:2}.rule{background:#cbd7d5;max-width:250px;height:1px;margin:5vh 0 20px}dl{gap:16px;margin:0;display:grid}dl div{gap:3px;display:grid}dt{color:#92a2a3;letter-spacing:.1em;font-size:10px}dd{color:#38545b;margin:0;font-size:11px}.source{color:#99a8a9;margin-top:5vh;font-size:10px;line-height:1.9}.model-area{background:radial-gradient(at 46% 42%,#fff 0%,#e8f0ee 76%,#e3ecea 100%);min-height:0;position:relative;overflow:hidden}.model-area:after{content:"";pointer-events:none;border:1px solid #506d6f21;position:absolute;inset:14px}.three-scene{cursor:grab;touch-action:none;position:absolute;inset:0}.three-scene:active{cursor:grabbing}.three-scene canvas{width:100%;height:100%;display:block}.corner-label{z-index:2;color:#7f979b;letter-spacing:.21em;pointer-events:none;font:700 9px Arial,sans-serif;position:absolute;top:31px;left:34px}.scene-status{z-index:2;color:#385d62;pointer-events:none;align-items:center;gap:9px;font-size:11px;display:flex;position:absolute;top:30px;right:34px}.scene-status b{color:#ad5b44;margin-left:5px;font:700 10px Arial,sans-serif}.pulse{background:#c36c50;border-radius:50%;width:6px;height:6px;box-shadow:0 0 0 4px #c36c5024}.view-switch{z-index:3;background:#ffffffdc;border:1px solid #cad8d7;border-radius:100px;gap:2px;padding:4px;display:flex;position:absolute;bottom:45px;left:50%;transform:translate(-50%);box-shadow:0 8px 24px #27424815}.view-switch button{white-space:nowrap;color:#71898c;background:0 0;border:0;border-radius:40px;padding:10px 16px;font-size:11px}.view-switch button[aria-pressed=true]{color:#fff;background:#2c4b53}.gesture{color:#8b9e9f;white-space:nowrap;pointer-events:none;font:10px Arial,sans-serif;position:absolute;bottom:19px;left:50%;transform:translate(-50%)}.loading{color:#42656c;z-index:4;background:#e8f0ee;place-items:center;font-size:13px;display:grid;position:absolute;inset:0}.side-strip{color:#8ca0a1;border-left:1px solid #d7dfdd;flex-direction:column;align-items:center;gap:18px;padding:43px 0 36px;display:flex}.side-strip>span{writing-mode:vertical-rl;letter-spacing:.3em;font-size:10px}.side-line{background:#cbd8d7;flex:1;width:1px}.side-strip strong{color:#a95a43;font:300 30px Georgia,serif}.side-strip small{writing-mode:vertical-rl;letter-spacing:.2em;font:700 8px Arial,sans-serif}.transport{border-top:1px solid #d7dfdd;grid-template-columns:36px 86px 1fr 110px;align-items:center;gap:15px;margin:0 3.2vw;display:grid}.play-button{color:#fff;background:#2c4b53;border:0;border-radius:50%;width:34px;height:34px;font:700 11px Arial,sans-serif}.transport-label{color:#6c868a;white-space:nowrap;font-size:10px}.timeline{background:#cedad8;height:3px;position:relative}.timeline>div{background:#b76148;height:100%}.timeline input{opacity:0;cursor:ew-resize;width:100%;height:30px;margin:0;position:absolute;inset:-14px 0}time{text-align:right;color:#638084;font:700 10px Arial,sans-serif}button:focus-visible,input:focus-visible{outline-offset:3px;outline:2px solid #b65f47}@media (width<=1000px){.content{grid-template-columns:210px minmax(0,1fr) 48px;padding-left:20px}.editorial h1{font-size:36px}.lead{font-size:11px}.side-strip small{display:none}.view-switch button{padding:9px 12px}}@media (width<=700px){.app{grid-template-rows:56px minmax(0,1fr) 64px;min-height:0}.topbar{grid-template-columns:1fr auto;padding:0 16px}.top-note{display:none}.brand{font-size:12px}.brand small{font-size:7px}.content{padding:0;display:block}.editorial,.side-strip{display:none}.model-area{width:100%;height:100%}.corner-label{font-size:8px;top:25px;left:24px}.scene-status{top:48px;left:24px;right:auto}.view-switch{bottom:44px}.view-switch button{padding:9px 10px}.transport{grid-template-columns:34px 1fr 77px;gap:10px;margin:0 16px}.transport-label{display:none}}.top-actions{justify-self:end;gap:23px;display:flex}.content{grid-template-columns:minmax(220px,21vw) minmax(0,1fr) 58px}.top-note{letter-spacing:.15em}.lead{max-width:245px}@media (width<=1000px){.content{grid-template-columns:200px minmax(0,1fr) 42px}.top-actions{gap:12px}}@media (width<=700px){.top-actions{gap:9px}.text-button{font-size:10px}.text-button span{margin-left:0}.brand{gap:8px}.brand-mark{width:28px;height:28px}.content{display:block}}.weather-panel{z-index:3;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);color:#385a62;background:#f7faf9df;border:1px solid #cddbdac9;border-radius:12px;width:260px;padding:12px 13px 10px;transition:background .4s,border-color .4s;position:absolute;top:57px;left:34px;box-shadow:0 5px 24px #27424809}.weather-heading{letter-spacing:.08em;justify-content:space-between;align-items:center;margin-bottom:9px;font-size:10px;display:flex}.weather-heading small{letter-spacing:.17em;color:#9aabae;font:700 7px Arial,sans-serif}.weather-options{grid-template-columns:repeat(4,1fr);gap:4px;display:grid}.weather-options button{color:#71878c;white-space:nowrap;background:0 0;border:1px solid #0000;border-radius:7px;justify-content:center;align-items:center;gap:5px;min-height:32px;padding:6px 4px;font-size:10px;transition:background .18s,color .18s,border-color .18s;display:flex}.weather-options button:hover:not(:disabled){color:#315862;background:#e4eeec}.weather-options button[aria-pressed=true]{color:#fff;background:#355b65;border-color:#355b65;box-shadow:0 2px 7px #294c551a}.weather-options svg{fill:none;stroke:currentColor;stroke-width:1.6px;stroke-linecap:round;stroke-linejoin:round;flex:0 0 14px;width:14px;height:14px}.weather-description{color:#7c9499;letter-spacing:.025em;margin:9px 0 0;font-size:9px;line-height:1.5}.weather-intensity{color:#6e878d;grid-template-columns:48px minmax(0,1fr) 31px;align-items:center;gap:8px;height:24px;margin-top:4px;font-size:9px;transition:opacity .2s;display:grid}.weather-intensity[data-visible=false]{visibility:hidden;opacity:0}.weather-intensity output{text-align:right;font-variant-numeric:tabular-nums;font:9px Arial,sans-serif}.weather-intensity input{appearance:none;cursor:pointer;accent-color:#426c75;background:0 0;width:100%;height:20px;margin:0}.weather-intensity input::-webkit-slider-runnable-track{background:#c6d6d7;border-radius:8px;height:3px}.weather-intensity input::-webkit-slider-thumb{appearance:none;background:#426c75;border:2px solid #f7faf9;border-radius:50%;width:10px;height:10px;margin-top:-3.5px;box-shadow:0 0 0 1px #426c7550}.weather-intensity input::-moz-range-track{background:#c6d6d7;border-radius:8px;height:3px}.weather-intensity input::-moz-range-thumb{background:#426c75;border:2px solid #f7faf9;border-radius:50%;width:7px;height:7px}.model-area[data-weather=rain] .weather-panel{background:#eaf1f4e8;border-color:#bdcdd4}.model-area[data-weather=fog] .weather-panel{background:#f5f7f7eb;border-color:#d8e0e0}.model-area[data-weather=snow] .weather-panel{background:#f7faffed;border-color:#cedbe7}@media (width<=1000px) and (width>=701px){.weather-panel{width:244px;left:25px}.corner-label{left:25px}.scene-status{right:25px}}@media (width<=700px){.corner-label{display:none}.weather-panel{width:calc(100% - 32px);padding:8px 10px;top:43px;left:16px}.weather-heading,.weather-description{display:none}.weather-intensity{height:21px;margin-top:2px}.weather-options button{min-height:31px}.scene-status{font-size:10px;top:18px;left:24px}}@media (height<=620px) and (width>=701px){.weather-panel{padding-top:9px;padding-bottom:7px;top:52px}.weather-heading{margin-bottom:5px}.weather-description{margin-top:5px}.weather-intensity{height:20px;margin-top:1px}}@media (prefers-reduced-motion:reduce){.weather-panel,.weather-options button,.weather-intensity{transition:none}}
