:root{color-scheme:dark;font-family:Inter,"Microsoft YaHei",sans-serif;color:#eaf0f7;background:#08111d;font-synthesis:none}*{box-sizing:border-box}body{margin:0;overflow:hidden}button,a,select,input{font:inherit}button,a,select{color:inherit}button{cursor:pointer;border:0}button:focus-visible,a:focus-visible,select:focus-visible{outline:2px solid #7be5ed;outline-offset:4px}button:hover,a:hover{color:#96edf0}#viewport{position:fixed;inset:0}canvas{display:block;width:100%;height:100%;touch-action:none}header{position:fixed;left:36px;right:36px;top:30px;display:flex;justify-content:space-between;align-items:flex-start;pointer-events:none}.eyebrow{font-size:10px;letter-spacing:2.2px;color:#8b9bac;margin:0 0 10px}h1{font-size:28px;font-weight:500;letter-spacing:2px;margin:0}h1 span{font-size:16px;letter-spacing:1px;margin-left:12px;color:#a0b2c6;font-weight:400}.subtitle{color:#8494a9;font-size:12px;letter-spacing:1px;margin-top:12px}.links{display:flex;gap:8px;pointer-events:auto}.links a,.links button{border:1px solid #ffffff18;background:#102031c9;border-radius:7px;padding:9px 13px;font-size:12px;text-decoration:none;backdrop-filter:blur(12px)}.tower-legend{position:fixed;top:150px;left:36px;display:flex;flex-direction:column;gap:7px}.tower-legend button{display:flex;align-items:center;gap:8px;width:168px;text-align:left;padding:8px 10px;color:#a3b6ca;background:#101e2bd9;border:1px solid #ffffff0e;border-radius:6px;font-size:11px}.tower-legend button:hover,.tower-legend button.active{background:#1d3647;color:#eafcff;border-color:#7cd3df55}.tower-legend b{font-weight:500;color:#dae7f3}.dot{height:5px;width:5px;border-radius:50%;display:inline-block}.dot.a{background:#4edbef}.dot.b{background:#bda1f5}.dot.c{background:#f09869}.controls{position:fixed;bottom:65px;left:50%;transform:translateX(-50%);max-width:calc(100vw - 32px);display:flex;flex-direction:column;align-items:center;gap:12px}.modes{display:flex;background:#102030ed;border:1px solid #ffffff20;border-radius:12px;padding:5px;box-shadow:0 10px 32px #0003;backdrop-filter:blur(16px)}.modes button{min-width:96px;padding:12px 17px;background:none;border-radius:8px;font-size:13px;color:#9bacbe;transition:background .18s,color .18s}.modes button.active{background:#cbf1f1;color:#142e34}.secondary{display:flex;align-items:center;gap:14px;background:#0c1826ed;backdrop-filter:blur(12px);border-radius:9px;padding:7px 10px;color:#9babbd;font-size:11px;white-space:nowrap}.views{display:flex;gap:2px}.views button{background:none;color:#b9c8d7;padding:5px 8px;border-radius:4px}.views button:hover,.views button.active{background:#263e50;color:#d9f5f7}.check{display:flex;align-items:center;gap:5px;white-space:nowrap;cursor:pointer}.check input{accent-color:#9dd6dd;margin:0}.upload{display:flex;gap:7px;border-left:1px solid #ffffff20;padding-left:12px;align-items:center}.upload select{font-size:11px;background:#132437;border:1px solid #ffffff17;padding:5px;border-radius:4px;max-width:98px}.upload button{font-size:11px;background:none;color:#ccdbe7;padding:5px 0;white-space:nowrap}footer{position:fixed;bottom:20px;left:36px;right:36px;display:flex;justify-content:space-between;color:#8193a9;font-size:11px;letter-spacing:.3px;pointer-events:none}footer p{margin:0}#metrics{margin-left:12px;color:#6c7c8f}#loading{position:fixed;inset:0;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:13px;background:#091320;color:#b8c9d9;font-size:13px;z-index:10}#loading[hidden]{display:none}.spinner{width:28px;height:28px;border:2px solid #284355;border-top-color:#89e1e7;border-radius:50%;animation:spin 1s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}aside{position:fixed;top:95px;right:30px;width:320px;bottom:171px;overflow:auto;background:#0e1b2bf5;border:1px solid #ffffff20;border-radius:12px;padding:14px;box-shadow:0 12px 45px #0007;z-index:5}aside[hidden]{display:none}.reference-heading{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}.reference-heading h2{font-size:12px;font-weight:500;margin:0}.reference-heading button{background:none;color:#b8cbda;font-size:21px}aside img{width:100%;border-radius:6px;display:block}aside p{font-size:11px;color:#92a6bd;margin:8px 0 17px}body.day{color:#263744}body.day .eyebrow,body.day .subtitle{color:#53697d}body.day h1 span{color:#566d80}body.day footer{color:#334d63}body.day .links{color:#dbe8f3}body.day .tower-legend button{background:#e6edf1ed;color:#465c6c;border-color:#54697922}body.day .tower-legend b{color:#244253}body.day .tower-legend button.active{background:#c2e2e5}@media(max-width:900px){header{top:22px;left:22px;right:22px}.tower-legend{left:22px;top:140px}.tower-legend button{width:157px;font-size:10px}.secondary{gap:9px;flex-wrap:wrap;justify-content:center;max-width:720px}.controls{width:calc(100% - 30px)}footer{left:22px;right:22px;font-size:10px}}@media(max-width:650px){h1{font-size:23px}h1 span{font-size:13px}.eyebrow{font-size:8px;letter-spacing:1.2px}.subtitle{font-size:10px}.links{gap:5px}.links a,.links button{font-size:10px;padding:7px}.links a:first-of-type{display:none}.tower-legend{top:124px;gap:5px}.tower-legend button{width:145px;padding:6px 8px}.modes button{min-width:71px;padding:11px 12px;font-size:12px}.controls{bottom:75px}.secondary{gap:8px}.upload{border-left:0;padding-left:0}.upload select{max-width:91px}.views button{padding:5px}footer{bottom:18px;flex-direction:column;gap:6px}aside{right:16px;top:109px;width:280px;bottom:210px}}
