:root{font-family:Inter,PingFang SC,Microsoft YaHei,sans-serif;color:#e4ecea;background:#182b32;font-synthesis:none;--gold:#d2bb82;--muted:#a4b7b8}*{box-sizing:border-box}body{margin:0}button,a,input{touch-action:manipulation}button{font:inherit;color:inherit;cursor:pointer}button:focus-visible,a:focus-visible{outline:2px solid var(--gold);outline-offset:4px}button{border:0;background:none}a{color:inherit;text-decoration:none}#app{height:100dvh;min-height:640px;position:relative;overflow:hidden}#viewport{position:absolute;inset:0}#viewport canvas{display:block;width:100%;height:100%}header{position:absolute;top:0;left:0;right:0;padding:30px 40px;display:flex;align-items:center;gap:28px;z-index:2}.brand{display:flex;gap:14px;align-items:center;font-size:14px;letter-spacing:.17em}.seal{display:grid;place-items:center;border:1px solid #c6ad77;color:var(--gold);height:42px;width:42px;font-family:serif;font-size:24px}.brand small{display:block;font-size:8px;letter-spacing:.15em;color:var(--muted);margin-top:7px}.edition{margin-left:auto;font-size:11px;letter-spacing:.12em;color:var(--muted)}.edition span{margin-left:35px}.icon{font-size:26px;line-height:1}.story{position:absolute;left:48px;top:23%;width:285px;pointer-events:none}.story>*{pointer-events:auto}.eyebrow{font-size:8px;letter-spacing:.21em;color:var(--gold);margin-bottom:22px}h1{font-family:"Noto Serif SC",Songti SC,serif;font-size:58px;font-weight:400;letter-spacing:.12em;line-height:1.1;margin:0 0 24px;white-space:nowrap}h1 small{display:block;font-size:20px;letter-spacing:.5em;margin-top:20px;color:#c5d5d2}.intro{font-size:13px;color:var(--muted);line-height:2;letter-spacing:.08em}.rule{height:1px;background:linear-gradient(to right,#617576,transparent);margin:24px 0}.facts{display:flex;gap:36px;margin-bottom:27px}.facts b{display:block;color:#e4dfcd;font-family:Georgia,serif;font-size:26px;font-weight:400}.facts span{display:block;font-size:10px;color:var(--muted);margin-top:7px}.primary{width:240px;border:1px solid #c8b37e;padding:16px 19px;display:flex;justify-content:space-between;align-items:center;color:var(--gold);background:#142b32b0;font-size:12px;letter-spacing:.15em;transition:.2s}.primary:hover{background:var(--gold);color:#172a30}.text-button{font-size:11px;color:var(--muted);padding:15px 0}.accuracy{font-size:9px;line-height:1.8;color:#809594;letter-spacing:.06em}.scene-label{position:absolute;top:120px;left:44%;display:flex;align-items:center;gap:10px;font-size:10px;color:#c5d8d5;letter-spacing:.1em}.dot{height:5px;width:5px;background:var(--gold);border-radius:50%}#runtime-status{font-size:8px;color:#829b9b;margin-left:12px}.viewpoints{position:absolute;bottom:88px;left:37%;right:300px;display:flex;justify-content:center;gap:4px}.viewpoints button{padding:11px 8px;min-width:66px;font:10px Georgia;color:#829999;border-top:1px solid #526a70;transition:.2s}.viewpoints button span{display:block;font:10px sans-serif;margin-top:9px;white-space:nowrap}.viewpoints button.active{color:var(--gold);border-color:var(--gold)}.controls{position:absolute;right:32px;bottom:89px;width:216px;background:#183039d9;border:1px solid #50646b66;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);padding:16px}.control-heading{display:flex;justify-content:space-between;align-items:center;font-size:11px;letter-spacing:.12em}.control-heading button{font-size:20px}.controls p{font-size:9px;color:#9fb3b3;margin:18px 0 10px}.segmented{display:flex;border:1px solid #53707855;padding:3px}.segmented button{padding:7px 5px;font-size:9px;flex:1;white-space:nowrap}.segmented button.active{background:#6b7f77;color:#f1ecd7}.layers{display:grid;grid-template-columns:repeat(3,1fr);gap:10px 6px;font-size:10px}.layers label{cursor:pointer;display:flex;gap:4px;align-items:center}.layers input{appearance:none;width:9px;height:9px;border:1px solid #718b8b;margin:0}.layers input:checked{background:var(--gold);border-color:var(--gold)}.actions{display:flex;justify-content:space-between;border-top:1px solid #52696e66;margin-top:20px;padding-top:13px}.actions button{padding:0;font-size:9px;color:#becac3}.actions button[aria-pressed=true]{color:var(--gold)}footer{position:absolute;left:40px;right:40px;bottom:24px;border-top:1px solid #4c626a88;padding-top:17px;display:flex;justify-content:space-between;color:#849b9d;font-size:9px;letter-spacing:.06em}footer i{font-style:normal;padding:0 8px;color:#516f73}footer button{font-size:9px;padding:0}#loading{position:absolute;inset:0;background:#172b33;display:flex;flex-direction:column;align-items:center;justify-content:center;z-index:20;transition:opacity .6s}.loading-seal{font:52px serif;color:var(--gold);border:1px solid #ac9c7180;padding:15px 22px;margin-bottom:25px}#loading p{font-size:12px;letter-spacing:.3em}#loading small{font-size:10px;color:var(--muted);margin-top:12px}.loading-track{height:1px;width:220px;background:#36515b;margin:10px}#progress{height:1px;width:0;background:var(--gold);transition:width .3s}dialog{max-width:650px;width:90%;border:1px solid #657d7d;background:#17313a;color:#d5dfda;padding:42px;line-height:1.9}dialog::backdrop{background:#031015b8;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}dialog h2{font-family:serif;letter-spacing:.12em;font-weight:400}dialog p{font-size:12px}dialog a{color:var(--gold)}.close{position:absolute;right:13px;top:9px;font-size:26px}body.inside .story{opacity:0;pointer-events:none}body.inside .story>*{pointer-events:none}@media(max-width:1100px){.story{left:30px;width:220px}h1{font-size:48px}.intro{font-size:11px}.facts{gap:25px}.controls{right:24px;width:188px}.viewpoints{left:30%;right:230px}.viewpoints button{min-width:52px;padding:10px 4px}.viewpoints button span{font-size:8px}}@media(max-width:720px){#app{min-height:600px}header{padding:20px}.edition{display:none}.icon{margin-left:auto}.brand{font-size:11px}.brand small{font-size:6px}.seal{height:34px;width:34px;font-size:20px}.story{left:24px;top:108px;width:calc(100% - 48px)}.eyebrow{font-size:7px;margin-bottom:15px}h1{font-size:35px;margin-bottom:13px}h1 small{display:inline;font-size:14px;margin-left:14px}.intro{font-size:10px;line-height:1.8}.rule,.facts,.accuracy,.text-button{display:none}.primary{width:164px;font-size:10px;padding:12px;position:absolute;top:98px;right:0}.scene-label{top:auto;bottom:213px;left:24px;font-size:8px}#runtime-status{display:none}.controls{bottom:79px;right:20px;width:calc(100% - 40px);padding:9px 13px}.control-heading,.controls p{display:none}#settings-body{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.segmented{width:160px}.layers{display:flex;margin-left:auto;gap:9px;font-size:9px}.actions{width:100%;margin-top:1px;padding-top:8px}.actions button{font-size:10px}.viewpoints{left:20px;right:20px;bottom:158px;gap:5px}.viewpoints button{flex:1;padding:9px 3px;min-width:0}.viewpoints button span{font-size:9px}footer{left:20px;right:20px;bottom:16px;gap:9px;font-size:7px;flex-wrap:wrap}footer>span:first-child{display:none}footer button{font-size:8px}body.inside .scene-label{display:none}dialog{padding:30px 22px}}.viewpoints{background:#183039e8;border:1px solid #50646b66;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);padding:7px 9px;border-radius:2px}.viewpoints button{border-top:0}.viewpoints button.active{background:#c8b37e13}footer{background:linear-gradient(transparent,#172b3388)}@media(max-width:720px){.viewpoints{bottom:205px;padding:7px 4px}.scene-label{bottom:272px}.primary{background:#17313adb}.story{pointer-events:none}.story .primary{pointer-events:auto}.layers{flex-wrap:wrap}.controls{min-height:104px}}:root{color:#183440;--gold:#82622c;--muted:#455e68;background:#b8cbd8}#app:after{content:"";position:absolute;inset:0;pointer-events:none;background:linear-gradient(90deg,#ecf0e9e8 0%,#ecf0e970 19%,transparent 43%);z-index:0}header,.story,.scene-label,.viewpoints,.controls,footer{z-index:2}#loading{--gold:#d2bb82;--muted:#a4b7b8;color:#e4ecea}header{padding:27px 34px}.brand small,.edition{color:#425b68}.seal{border-color:#82622c;color:#82622c}#presentation{font-size:11px;background:#f0f2ebc9;color:#203c48;padding:10px 13px;border:1px solid #6a818655;margin-left:auto;border-radius:2px;white-space:nowrap}.edition+#presentation{margin-left:0}.story{top:22%;left:40px;width:242px}h1{font-size:52px;text-shadow:0 1px 20px #ffffff44}h1 small{color:#35515a}.intro{color:#405b64}.facts b{color:#3e4b48}.facts span{color:#50666d}.accuracy{color:#4c636a}.rule{background:linear-gradient(90deg,#637c7980,transparent)}.primary{background:#183039eb;color:#e3c787}.text-button{color:#3c5661;display:block;padding:11px 0}.scene-label{top:112px;color:#294954;background:#eef2edb8;padding:8px 12px;border-radius:2px;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}#runtime-status{color:#49646d}.controls{top:124px;bottom:auto;right:28px;width:216px;color:#dae4e2;--gold:#e1c88e;--muted:#bdcbc8;background:#183039e8;border-color:#dae4d733}.controls p{color:#b5c6c7}.controls #weather-description{display:block;min-height:23px;font-size:9px;line-height:1.6;color:#e1cfaa;margin:10px 0 4px}.segmented{border-color:#93a6a54d}.segmented button{padding:9px 5px}.segmented button.active{color:#173039;background:#e1cc9d}.actions button{color:#d4dfdc}.viewpoints{bottom:68px;left:32%;right:24%;color:#dce5e2;--gold:#e1c88e;background:#17313ae6}.viewpoints button{color:#b9cbcc}.viewpoints button.active{color:#ecd4a1;background:#e1c88e24}footer{bottom:19px;padding-top:12px;color:#304e5b;background:transparent;border-color:#50687344}footer i{color:#6c8187}#reference-dialog{max-width:1060px;padding:24px;color:#dce5e2}#reference-dialog h2{margin-top:0}#reference-dialog img{display:block;width:100%;max-height:70vh;object-fit:contain}dialog{--gold:#d2bb82;color:#dce5e2}body[data-weather=golden] #app:after{background:linear-gradient(90deg,#e7d6bee8 0%,#e7d6be65 20%,transparent 43%)}body.presentation #app:after,body.presentation .story,body.presentation .scene-label,body.presentation .viewpoints,body.presentation footer,body.presentation .brand,body.presentation .edition,body.presentation #fullscreen{display:none}body.presentation #presentation{position:fixed;right:24px;top:24px;margin:0}body.presentation .controls{top:auto;bottom:24px;right:24px;padding:10px;width:216px}body.presentation .controls .control-heading,body.presentation .controls .layers,body.presentation .controls .actions,body.presentation .controls p:not(#weather-description){display:none}body.presentation .controls #weather-description{margin:6px 0 0;min-height:0}@media(max-width:1100px)and (min-width:721px){.story{left:28px;width:188px}h1{font-size:42px}.primary{width:190px}.facts{gap:24px}.controls{right:22px;width:192px}.scene-label{left:38%}.viewpoints{left:26%;right:22px}}@media(max-width:720px){#app{height:100dvh;min-height:0}header{padding:16px 20px;gap:12px}.brand{font-size:10px;gap:9px}.brand small{font-size:6px}.seal{height:30px;width:30px;font-size:20px}.icon{font-size:22px;margin-left:0}#presentation{font-size:9px;padding:8px}.edition+#presentation{margin-left:auto}#app:after{background:linear-gradient(180deg,#eaf0e5e6 0%,#eaf0e535 23%,transparent 35%)}body[data-weather=golden] #app:after{background:linear-gradient(180deg,#e7d6bee0 0%,#e7d6be35 23%,transparent 35%)}.story{top:83px;left:22px;width:calc(100% - 44px)}.eyebrow{font-size:6px;margin:0 0 10px;letter-spacing:.13em}h1{font-size:31px;margin-bottom:10px}h1 small{font-size:13px;margin-left:12px;color:#36515a}.intro{display:none}.primary{top:42px;right:0;width:137px;padding:10px;font-size:9px}.text-button{display:none}.controls{inset:auto 18px 18px;width:auto;padding:9px 11px;min-height:0}.control-heading{display:flex;font-size:10px}.control-heading button{font-size:18px;line-height:1;min-height:24px;min-width:28px}.controls #settings-body{display:block}.controls #settings-body[hidden]{display:none}.segmented{width:100%;margin:6px 0 0}.segmented button{font-size:10px;min-height:32px;padding:8px}.controls #weather-description{min-height:0;margin:5px 0 2px;font-size:8px}.layers{display:flex;justify-content:space-between;margin-top:11px;gap:5px}.layers input{width:11px;height:11px}.layers label{min-height:21px}.actions{margin-top:8px;padding-top:9px}.actions button{min-height:24px}.viewpoints{left:18px;right:18px;bottom:206px;padding:3px}.viewpoints button{padding:7px 2px}.viewpoints button span{font-size:8px;margin-top:5px}.scene-label{display:none}footer{display:none}body.mobile-compact .controls .layers,body.mobile-compact .controls .actions{display:none}body.mobile-compact .viewpoints{bottom:139px}body.presentation #presentation{top:16px;right:18px}body.presentation .controls{bottom:18px;left:auto;right:18px;width:216px}.presentation .viewpoints{display:none}}@media(max-height:650px)and (max-width:720px){.story{top:67px}.eyebrow{display:none}h1{font-size:26px}.primary{top:31px;padding:8px}.controls{bottom:12px}.viewpoints{bottom:206px}body.mobile-compact .viewpoints{bottom:129px}}body.inside #app:after{display:none}body.inside header,body.inside .brand small,body.inside .edition,body.inside footer{color:#e0e8e2}body.inside .seal{color:#e2c88b;border-color:#e2c88b}.inspection-control{margin-top:12px;padding-top:10px;border-top:1px solid #99aeae3d}.inspection-control label{display:flex;justify-content:space-between;color:#dce6e1;font-size:10px}.inspection-control output{font-variant-numeric:tabular-nums;color:#ead3a0}.inspection-control input{display:block;width:100%;margin:9px 0 3px;accent-color:#ddc28b;cursor:pointer;min-height:20px}.inspection-control input:focus-visible{outline:2px solid #efd6a2;outline-offset:3px}@media(max-width:720px){.inspection-control{margin-top:7px;padding-top:7px}.inspection-control label{font-size:9px}.inspection-control input{margin:3px 0 0;min-height:22px}.viewpoints{bottom:266px}body.mobile-compact .viewpoints{bottom:199px}}@media(max-height:650px)and (max-width:720px){.viewpoints{bottom:266px}body.mobile-compact .viewpoints{bottom:189px}}body.presentation .controls .inspection-control{display:block}.download-button{display:block;width:240px;border:1px solid #56706e70;background:#eff1e8bf;padding:11px 15px;margin-top:9px;color:#294851;transition:background .2s}.download-button span{display:block;font-size:11px;letter-spacing:.08em}.download-button small{display:block;font-size:9px;color:#5b716e;margin-top:4px}.download-button:hover{background:#f5f0df}@media(max-width:1100px)and (min-width:721px){.download-button{width:190px}}@media(max-width:720px){.story .download-button{position:absolute;top:42px;left:0;width:130px;margin:0;padding:6px 8px;pointer-events:auto}.download-button span{font-size:9px;letter-spacing:0}.download-button small{font-size:7px;margin-top:2px}}@media(max-height:650px)and (max-width:720px){.story .download-button{top:31px;padding:5px 8px}}
