:root{--ink: #3b3226;--ink-soft: #7a6c58;--card: rgba(255, 252, 245, .86);--card-line: rgba(120, 100, 70, .14);--accent: #ff8fa3;--obs: #4f9bd9;--est: #c58a2a;--shadow: 0 6px 24px rgba(80, 60, 30, .12)}:root[data-theme=dark]{--ink: #e8edff;--ink-soft: #9aa6c8;--card: rgba(20, 26, 44, .82);--card-line: rgba(160, 180, 230, .14);--obs: #7cc0ff;--est: #ffcb6b;--shadow: 0 6px 24px rgba(0, 0, 0, .4)}*{box-sizing:border-box}html,body{margin:0;height:100%;overflow:hidden;background:#f6efe3}:root[data-theme=dark] body{background:#05070d}body{font-family:Gowun Dodum,system-ui,sans-serif;color:var(--ink)}#app{position:fixed;top:0;right:0;bottom:0;left:0}#app canvas{display:block}.labels,.ui{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none}.ui>*{pointer-events:auto}.card{position:absolute;background:var(--card);border:1px solid var(--card-line);border-radius:18px;box-shadow:var(--shadow);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);padding:14px 18px}.title{left:20px;top:20px;min-width:220px}.logo{font-family:Jua,sans-serif;font-size:34px;line-height:1;letter-spacing:1px}.logo span{font-size:22px;margin-left:6px;color:var(--obs)}.sub{color:var(--ink-soft);font-size:13px;margin-top:4px}.when{margin-top:10px;font-size:15px}.when em{font-style:normal;font-size:12px;padding:2px 8px;border-radius:99px;margin-left:6px;color:#fff}.when em.obs{background:var(--obs)}.when em.est{background:var(--est)}.badge{margin-top:8px;display:inline-block;font-size:12px;padding:3px 10px;border-radius:99px;background:var(--accent);color:#fff}.empty{left:50%;top:22px;transform:translate(-50%);text-align:center}.empty .big{font-family:Jua,sans-serif;font-size:20px}.empty .hint{color:var(--ink-soft);font-size:13px;margin-top:4px}.legend{left:20px;bottom:20px;font-size:13px}.legend-title{font-family:Jua,sans-serif;font-size:15px;margin-bottom:6px}.legend .row{display:flex;align-items:center;gap:8px;margin:3px 0}.legend .sw{display:inline-block;width:26px;border-radius:4px;background:var(--snow);border:1px solid var(--card-line);box-shadow:inset 0 -3px #7896be40}.legend .s1{height:5px;background:var(--powder)}.legend .s2{height:8px}.legend .s3{height:11px}.legend .s4{height:15px}.legend .s5{height:20px}.theme-btn{position:absolute;right:20px;top:20px;width:44px;height:44px;border-radius:50%;border:1px solid var(--card-line);background:var(--card);box-shadow:var(--shadow);font-size:20px;cursor:pointer}.tip{position:absolute;left:0;top:0;display:none;pointer-events:none;background:var(--card);border:1px solid var(--card-line);border-radius:12px;padding:8px 12px;font-size:13px;box-shadow:var(--shadow);white-space:nowrap}.tip b{font-family:Jua,sans-serif;font-size:15px;font-weight:400}.tip .n{font-size:18px;font-family:Jua,sans-serif}.tip .s{color:var(--ink-soft);font-size:12px}.attr{position:absolute;right:14px;bottom:10px;font-size:11px;color:var(--ink-soft);opacity:.8}.pin{font-family:Jua,sans-serif;font-size:13px;color:var(--ink);background:var(--card);border:1px solid var(--card-line);border-radius:99px;padding:3px 10px;box-shadow:var(--shadow);white-space:nowrap;transform:translateY(-14px)}.pin b{color:var(--obs);font-weight:400;margin-left:4px}.pin .r{display:inline-block;width:18px;height:18px;line-height:18px;text-align:center;border-radius:50%;background:var(--accent);color:#fff;font-size:11px;margin-right:5px}.timeline{left:50%;bottom:20px;transform:translate(-50%);width:min(780px,calc(100vw - 360px));display:flex;align-items:center;gap:16px;padding:14px 18px 20px}.timeline .play{width:40px;height:40px;flex:none;border-radius:50%;border:none;cursor:pointer;background:var(--accent);color:#fff;font-size:14px;box-shadow:var(--shadow)}.timeline .track{position:relative;flex:1;height:48px}.timeline canvas{position:absolute;left:0;top:0;width:100%;height:24px}.timeline input{position:absolute;left:0;top:22px;width:100%;margin:0;height:14px;-webkit-appearance:none;-moz-appearance:none;appearance:none;background:transparent;cursor:pointer}.timeline input::-webkit-slider-runnable-track{height:6px;border-radius:3px;background:linear-gradient(90deg,var(--obs) 0 var(--p, 0%),var(--card-line) var(--p, 0%))}.timeline input::-webkit-slider-thumb{-webkit-appearance:none;width:20px;height:20px;margin-top:-7px;border-radius:50%;background:#fff;border:3px solid var(--accent);box-shadow:0 2px 6px #00000040}.timeline input::-moz-range-track{height:6px;border-radius:3px;background:var(--card-line)}.timeline input::-moz-range-thumb{width:16px;height:16px;border-radius:50%;background:#fff;border:3px solid var(--accent)}.timeline .now-tick{position:absolute;top:0;height:34px;width:0;border-left:2px dashed var(--accent)}.timeline .now-tick span{position:absolute;top:-16px;left:-16px;width:32px;text-align:center;white-space:nowrap;font-size:11px;color:var(--accent);font-family:Jua,sans-serif}.timeline .ticks{position:absolute;left:0;right:0;top:38px;height:12px;font-size:10px;color:var(--ink-soft)}.timeline .ticks span{position:absolute;transform:translate(-50%)}.tl-label{flex:none;width:150px;text-align:right;font-size:12px}.tl-label b{display:block;font-weight:400;font-family:Jua,sans-serif;font-size:15px}.tl-label .obs{color:var(--obs)}.tl-label .est{color:var(--est)}.when .note{display:block;font-size:11px;color:var(--ink-soft);margin-top:4px}.loading{position:absolute;top:0;right:0;bottom:0;left:0;display:grid;place-items:center;font-family:Jua,sans-serif;font-size:20px;color:var(--ink-soft)}.region{right:20px;top:76px;width:240px;font-size:13px}.region .back{border:none;background:var(--accent);color:#fff;border-radius:99px;padding:6px 14px;font-family:Jua,sans-serif;font-size:14px;cursor:pointer}.region .rname{margin:10px 0 8px;color:var(--ink-soft)}.region .rname b{display:block;font-family:Jua,sans-serif;font-weight:400;font-size:24px;color:var(--ink)}.region .exag{display:flex;align-items:center;gap:6px;white-space:nowrap}.region .exag input{flex:1;min-width:0;accent-color:var(--accent)}.region .rnote{margin-top:6px;font-size:11px;color:var(--ink-soft)}.rmsg{position:absolute;left:50%;top:24px;transform:translate(-50%);background:var(--card);border-radius:99px;padding:8px 16px;font-size:13px;box-shadow:var(--shadow);border:1px solid var(--card-line);pointer-events:none}.veil{position:absolute;top:0;right:0;bottom:0;left:0;background:var(--card);opacity:0;pointer-events:none;transition:opacity .26s ease}.veil.on{opacity:1}.dong{font-family:Jua,sans-serif;font-size:12px;color:var(--ink);padding:1px 7px;border-radius:99px;background:var(--card);border:1px solid var(--card-line);white-space:nowrap;opacity:.88;pointer-events:none}.boom-flash{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;opacity:0;background:radial-gradient(circle at 50% 45%,#fffae6,#ffaa50b3 45%,#ff782833)}.logo{cursor:default;-webkit-user-select:none;user-select:none}
