:root{--ink: #2b2a27;--muted: #7a756c;--paper: rgba(251, 249, 245, .92);--line: rgba(43, 42, 39, .12);--accent: #8a5a3a;--accent-ink: #fff;--ok: #2fb36b;--part: #f2b134;--no: #e0483e;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif;color:var(--ink)}*{box-sizing:border-box}html,body{margin:0;height:100%;overflow:hidden;background:#dfe6ea}#app{position:fixed;top:0;right:0;bottom:0;left:0}#app canvas{display:block}button{font:inherit;font-size:13px;color:var(--ink);background:transparent;border:1px solid var(--line);border-radius:8px;padding:6px 10px;cursor:pointer}button:hover{background:#2b2a270f}button.on{background:var(--ink);color:#fff;border-color:var(--ink)}button.primary{background:var(--accent);color:var(--accent-ink);border-color:var(--accent)}button.link{border:0;padding:4px 0;text-decoration:underline;color:var(--muted);text-align:left}.brand{position:fixed;top:16px;left:16px;pointer-events:none}.brand-title{font-size:22px;font-weight:700;letter-spacing:-.01em}.brand-sub{font-size:12px;color:#4a4741}.panel{position:fixed;background:var(--paper);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border:1px solid var(--line);border-radius:12px;padding:12px;font-size:13px;box-shadow:0 6px 24px #00000014}.panel-h{font-size:11px;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);margin:10px 0 6px}.panel-h:first-child{margin-top:0}.views{top:72px;left:16px;width:176px;display:flex;flex-direction:column;gap:4px;max-height:calc(100vh - 250px);overflow:auto}.views>button{text-align:left}.chk{display:flex;gap:6px;align-items:center;padding:2px 0;cursor:pointer}.seg{display:flex;gap:4px}.seg button{flex:1;padding:5px 6px}.sight{top:16px;right:16px;width:292px;max-height:calc(100vh - 210px);overflow:auto}.field{display:block;margin:8px 0}.field select,.field input[type=range]{width:100%;margin-top:4px;font:inherit}.row{display:flex;gap:6px;margin-top:8px}.muted{color:var(--muted)}.small{font-size:11px;line-height:1.45}p.muted{margin:4px 0;font-size:12px;line-height:1.45}#sightOut table{width:100%;border-collapse:collapse;margin-top:10px;font-size:12px}#sightOut td{padding:5px 2px;border-top:1px solid var(--line);vertical-align:top}#sightOut td.n{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap;font-weight:600}.legend{display:flex;gap:10px;margin-top:8px;font-size:11px;color:var(--muted)}.legend i{display:inline-block;width:10px;height:10px;border-radius:2px;margin-right:4px;vertical-align:-1px}.timeline{position:fixed;left:50%;bottom:16px;transform:translate(-50%);width:min(760px,calc(100vw - 32px));background:var(--paper);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border:1px solid var(--line);border-radius:12px;padding:12px 16px;box-shadow:0 6px 24px #00000014}.tl-top{display:flex;justify-content:space-between;align-items:center;gap:12px}.tl-name{font-weight:700;font-size:15px}.tl-meta{font-size:12px;color:var(--muted)}.timeline input[type=range]{width:100%;margin:10px 0 2px;accent-color:var(--accent)}.ticks{display:grid;grid-template-columns:repeat(7,1fr);font-size:10.5px;color:var(--muted);text-align:center}.ticks span{cursor:pointer}.ticks span.now{color:var(--accent);font-weight:700}.tl-note{font-size:12px;margin-top:6px;line-height:1.45}.photo{position:fixed;left:208px;top:72px;margin:0;width:min(420px,40vw);background:var(--paper);border:1px solid var(--line);border-radius:12px;overflow:hidden;box-shadow:0 10px 30px #0000002e}.photo video{display:block;width:100%;max-height:52vh;background:#111}.photo img{display:block;width:100%;max-height:52vh;object-fit:contain;background:#111}.photo figcaption{padding:10px 12px;font-size:13px;display:flex;flex-direction:column;gap:2px}.hint{position:fixed;left:50%;transform:translate(-50%);bottom:168px;font-size:12px;color:#fff;background:#00000073;padding:4px 10px;border-radius:999px;pointer-events:none}.label{font-size:11.5px;padding:3px 7px;border-radius:6px;background:#ffffffdb;border:1px solid var(--line);white-space:nowrap;pointer-events:none;text-align:center;line-height:1.25}.label b{display:block;font-weight:600}.label span{color:var(--muted);font-size:10.5px}.pin{width:21px;height:21px;border-radius:50%;border:2px solid #fff;background:var(--accent);box-shadow:0 2px 6px #00000059;cursor:pointer;display:grid;place-items:center;padding:0}.pin svg{width:12px;height:12px;fill:none;stroke:#fff;stroke-width:2}.pin:hover{transform:scale(1.15);background:var(--accent)}dialog{border:1px solid var(--line);border-radius:12px;max-width:560px;font-size:13.5px;line-height:1.5}dialog h2{margin:0 0 8px;font-size:17px}dialog ul{padding-left:18px}@media (max-width: 720px){.views{top:auto;bottom:200px;width:150px}.sight{width:calc(100vw - 32px);top:auto;bottom:200px;display:none}.photo{left:16px;width:calc(100vw - 32px)}}.compass{position:fixed;right:324px;top:16px;width:46px;height:46px;background:var(--paper);border:1px solid var(--line);border-radius:50%;display:grid;place-items:center}.compass svg{width:38px;height:38px;overflow:visible;transition:transform .05s linear}.views{max-height:calc(100vh - 90px);overflow:auto}.views .field input[type=date]{width:100%;font:inherit;margin-top:3px}.backbtn{position:fixed;right:380px;top:22px;background:var(--ink);color:#fff;border-color:var(--ink);padding:8px 14px;font-weight:600;box-shadow:0 4px 14px #0003}.backbtn:hover{background:#000}
