@font-face{font-family:DM Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/dm-mono-latin-ext-400-normal-C2zvOubV.woff2)format("woff2"),url(/assets/dm-mono-latin-ext-400-normal-1aZr6b2b.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:DM Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/dm-mono-latin-400-normal-4GdczIuU.woff2)format("woff2"),url(/assets/dm-mono-latin-400-normal--0xN8mdc.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:DM Mono;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/dm-mono-latin-ext-500-normal-BtRyHRi6.woff2)format("woff2"),url(/assets/dm-mono-latin-ext-500-normal-Dw3M13d8.woff)format("woff");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:DM Mono;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/dm-mono-latin-500-normal-DRMDZjhP.woff2)format("woff2"),url(/assets/dm-mono-latin-500-normal-CN8Miw6E.woff)format("woff");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--b50:#edf7fd;--b100:#d7ebf8;--b200:#b2d7ed;--b300:#83bddf;--b400:#519fc9;--b500:#167ba9;--b600:#016992;--b700:#005375;--b800:#003d57;--b900:#002a3e;--b950:#001b2a;--n0:#fff;--n50:#f5fbff;--n100:#ecf5fa;--n200:#dfe8ed;--n300:#cdd6db;--n400:#99a7af;--n500:#68757d;--n600:#536067;--n700:#3e4a51;--n800:#29353c;--n900:#18232a;--n950:#091319;--route-orange:#d16100;--route-orange-dark:#f28e42;--route-text-c:#a94e00;--red:#a72126;--red-dark:#eb827b;--beige:#e8d5a8;--sky-blue:#009de0;--ok:#137738;--ok-bg:#f0faf2;--ok-line:#b7dcbd;--warn:#965802;--warn-bg:#fdf6e4;--warn-line:#edd18f;--font-sans:-apple-system, "PingFang SC", "Noto Sans SC", "Source Han Sans SC", "Microsoft YaHei", sans-serif;--font-serif:"Songti SC", "STSong", "Noto Serif SC", "Source Han Serif SC", serif;--font-mono:"DM Mono", "JetBrains Mono", "SF Mono", ui-monospace, Menlo, monospace;--ease:cubic-bezier(.22, 1, .36, 1);--dur:.6s;--r-plate:18px;--r-card:12px;--r-pill:999px;--hair:1px}:root,:root[data-theme=light]{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--page:#e4eaee;--plate:#f7fafc;--surface:#fff;--surface-2:var(--n100);--ink:var(--n900);--ink-2:var(--n600);--ink-3:var(--n500);--rule:var(--n300);--rule-2:var(--n200);--brand:var(--b700);--brand-ink:#fff;--link:var(--b600);--live:var(--b700);--route:var(--route-orange);--route-text:var(--route-text-c);--dest:var(--red);--here:var(--b500);--here-glow:#009de033;--shadow:0 1px 0 #18232a0a, 0 8px 24px -12px #18232a2e;--s-paper:#f7fafc;--s-ground:#eef3f6;--s-road:#e2e9ed;--s-grass:#e6efea;--s-plaza:#eaf0f3;--s-field:#e3ede7;--s-track:#ebddd3;--s-body:#fff;--s-body-2:#e8eef1;--s-deck:#f4f7f9;--s-window:#cbd5db;--s-window-lit:#f4d27a;--s-tree:#f2f6f4;--s-tree-2:#e1eae5;--s-mark:#fff;--s-floor:#fff;--s-corridor:#d7ebf8;--s-shaft:#b2d7ed;--s-lobby:#edf7fd;--s-wall-in:#f1f5f7;--s-covered:#dcebf4;--s-lab:#f1f5f8;--s-line:#3e4a51;--s-detail:#99a7af;--s-faint:#cdd6db;--s-live:#005375;--s-route:#d16100;--s-route-casing:#fff;--s-route-passed:#99a7af;--s-route-text:#a94e00}:root[data-theme=dark]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--page:#00121d;--plate:var(--b900);--surface:#00324a;--surface-2:#003a55;--ink:var(--n50);--ink-2:var(--n300);--ink-3:#8fb3c8;--rule:#1e5674;--rule-2:#134563;--brand:var(--b400);--brand-ink:var(--n950);--link:var(--b300);--live:#fff;--route:var(--route-orange-dark);--route-text:var(--route-orange-dark);--dest:var(--red-dark);--here:var(--sky-blue);--here-glow:#009de047;--shadow:0 10px 30px -14px #0009;--s-paper:#002a3e;--s-ground:#002f46;--s-road:#00263a;--s-grass:#023650;--s-plaza:#003149;--s-field:#033a52;--s-track:#0b3a4e;--s-body:#003a55;--s-body-2:#003249;--s-deck:#00405e;--s-window:#0b4c6c;--s-window-lit:#eaf4fa;--s-tree:#003d58;--s-tree-2:#00344c;--s-mark:#2a6585;--s-floor:#003a55;--s-corridor:#002a3e;--s-shaft:#0e557a;--s-lobby:#004566;--s-wall-in:#003f5c;--s-covered:#0a4a6a;--s-lab:#00405d;--s-line:#83bddf;--s-detail:#3f86ae;--s-faint:#1d5c7e;--s-live:#fff;--s-route:#f28e42;--s-route-casing:#002a3e;--s-route-passed:#4d7f9a;--s-route-text:#f28e42}*{box-sizing:border-box}html,body{height:100%;margin:0}body{background:var(--page);color:var(--ink);font:15px/1.6 var(--font-sans);-webkit-font-smoothing:antialiased;overscroll-behavior:none;overflow:hidden}button{font:inherit;color:inherit;cursor:pointer;background:0 0;border:0;padding:0}button:disabled{cursor:default;opacity:.35}a{color:var(--link)}:focus-visible{outline:2px solid var(--b500);outline-offset:2px}.mono,.mono-num{font-family:var(--font-mono);font-feature-settings:"tnum"}.serif{font-family:var(--font-serif);letter-spacing:.02em;font-weight:600}.plate,.card,.search,.tools button,.tool-group,.floors,.titleblock,.tb-line,.north-btn,.pill,.seg button,.btn-primary,.btn-ghost{transition:background-color var(--dur) var(--ease), border-color var(--dur) var(--ease), color var(--dur) var(--ease)}body{transition:background-color var(--dur) var(--ease), color var(--dur) var(--ease)}.plate{background:var(--plate);border:var(--hair) solid var(--rule);border-radius:var(--r-plate);grid-template-rows:44px 1fr 44px;display:grid;position:fixed;inset:14px;overflow:hidden}.cap{font:12px/1 var(--font-mono);letter-spacing:.14em;color:var(--ink-2);white-space:nowrap;justify-content:space-between;align-items:center;gap:16px;padding:0 22px;display:flex}.cap .fig{color:var(--ink)}.jumps{scrollbar-width:none;gap:18px;display:flex;overflow-x:auto}.jumps::-webkit-scrollbar{display:none}.jumps button{letter-spacing:.14em;color:var(--ink-2);border-bottom:1px solid #0000;padding:6px 0;transition:color .2s,border-color .2s}.jumps button:hover,.jumps button.is-now{color:var(--ink);border-bottom-color:var(--ink)}.cap-bottom #status{color:var(--ink);letter-spacing:.06em}.map{border-radius:6px;margin:0 18px;position:relative;overflow:hidden}.canvas{touch-action:none;position:absolute;inset:0}.canvas canvas{display:block}.css2d{pointer-events:none;z-index:1;position:absolute;inset:0}.tag{font:11px/1 var(--font-mono);letter-spacing:.08em;color:var(--ink);background:var(--plate);border:1px solid var(--ink);white-space:nowrap;transition:opacity .25s var(--ease);border-radius:4px;padding:4px 6px}.tag.is-hidden{opacity:0}.tag-room{border-color:var(--n400);color:var(--ink-2);padding:2px 4px;font-size:10px}:root[data-theme=dark] .tag-room{border-color:var(--rule)}.tag-stairs,.tag-elevator{border-style:dashed}.tag-dim{color:var(--route-text);text-shadow:0 0 3px var(--plate), 0 0 3px var(--plate), 0 0 2px var(--plate);background:0 0;border:0;padding:1px 3px;font-weight:500}.tag-bubble{pointer-events:auto;cursor:pointer;border:1px dashed var(--route);color:var(--route-text);font-family:var(--font-sans);letter-spacing:.02em;align-items:center;gap:6px;padding:5px 8px;font-size:12px;display:inline-flex}.tag-bubble .i{font-family:var(--font-mono)}.tag-bubble.is-now,.tag-bubble:hover{background:var(--route);color:#fff;border-style:solid}.pin-start{width:16px;height:16px;position:relative}.pin-start b{background:var(--here);border-radius:50%;position:absolute;inset:3px;box-shadow:0 0 0 2px #fff}.pin-start i{background:var(--here-glow);animation:pulse 2.4s var(--ease) infinite;border-radius:50%;position:absolute;inset:-10px}@keyframes pulse{0%{opacity:1;transform:scale(.4)}to{opacity:0;transform:scale(1.4)}}.pin-end svg{fill:var(--dest);stroke:#fff;stroke-width:1.5px;display:block;overflow:visible}.pin-end svg circle{fill:#fff;stroke:none}.pin-end.is-landed svg{animation:land .9s var(--ease) both}@keyframes land{0%{opacity:0;transform:translateY(-80px)}60%{opacity:1;transform:translateY(4px)}80%{transform:translateY(-3px)}to{transform:none}}.tools{z-index:3;flex-direction:column;gap:10px;display:flex;position:absolute;top:14px;right:14px}.tools button,.tool-group{background:var(--plate);border:1px solid var(--rule);width:34px;color:var(--ink);border-radius:8px}.tools>button{place-items:center;height:34px;display:grid}.tool-group{flex-direction:column;display:flex;overflow:hidden}.tool-group button{border:0;border-radius:0;place-items:center;height:34px;display:grid}.tool-group button+button{border-top:1px solid var(--rule)}.tools button:hover{background:var(--surface-2)}.tools button[aria-pressed=true]{background:var(--brand);color:var(--brand-ink)}.floors{z-index:3;background:var(--plate);border:1px solid var(--rule);width:74px;font:12px/1 var(--font-mono);border-radius:10px;padding:6px;position:absolute;top:296px;right:14px}.fs-head{font-family:var(--font-sans);color:var(--ink-2);border-bottom:1px solid var(--rule-2);text-align:center;padding:2px 2px 6px;font-size:11px;line-height:1.3}.fs-head .mock,.pill-mock{color:var(--warn)}.fs-head .mock{margin-top:2px;font-size:10px;display:block}:root[data-theme=dark] .fs-head .mock,:root[data-theme=dark] .pill-mock{color:#ebbd57}.fs-list{flex-direction:column;gap:2px;max-height:40vh;padding:6px 0;display:flex;overflow-y:auto}.fs-list button{height:28px;color:var(--ink);letter-spacing:.06em;border-radius:6px;position:relative}.fs-list button:hover{background:var(--surface-2)}.fs-list button.is-now{background:var(--brand);color:var(--brand-ink)}.fs-list .dot{background:var(--route);width:6px;height:6px;box-shadow:0 0 0 1.5px var(--plate);border-radius:50%;margin-top:-3px;position:absolute;top:50%;right:6px}.fs-gap{border-top:1px solid var(--rule-2);color:var(--ink-3);text-align:center;gap:4px;padding:6px 2px 2px;font-size:10px;display:grid}.fs-gap input{width:100%;accent-color:var(--brand)}.titleblock{z-index:2;background:var(--plate);border:1px solid var(--ink);font:11px/1.3 var(--font-mono);color:var(--ink);pointer-events:none;grid-template-rows:auto auto auto;grid-template-columns:auto auto 46px;display:grid;position:absolute;bottom:14px;right:14px}.tb-cell{border-right:1px solid var(--ink);border-bottom:1px solid var(--ink);flex-direction:column;gap:2px;padding:5px 8px;display:flex}.tb-cell span{letter-spacing:.14em;color:var(--ink-2);font-size:9px}.tb-cell b{font-weight:500;font-family:var(--font-serif);font-size:13px}.tb-name{grid-area:1/1;min-width:96px}.tb-level{grid-area:1/2}.tb-level b{font-family:var(--font-mono)}.tb-north{border-right:0;grid-area:1/3/span 2;justify-content:center;align-items:center}.tb-north svg{fill:none;stroke:var(--ink);stroke-width:1px;transition:transform .3s var(--ease);overflow:visible}.tb-north path{fill:var(--ink)}.tb-north text{font:7px var(--font-mono);fill:var(--ink);stroke:none}.tb-scale{grid-area:2/1/auto/span 2}.tb-scale i{border:1px solid var(--ink);border-top:0;height:5px;margin:2px 0 1px;display:block}.tb-scale b{font-family:var(--font-mono);font-size:11px}.tb-src{border-bottom:0;border-right:0;flex-direction:row;grid-area:3/1/auto/span 3;align-items:baseline;gap:8px}.tb-src b{font-family:var(--font-sans);color:var(--warn);font-size:11px}.tb-line,.north-btn{display:none}:root[data-theme=dark] .tb-src b{color:#ebbd57}.panel{z-index:4;pointer-events:none;flex-direction:column;gap:10px;width:368px;display:flex;position:absolute;top:14px;bottom:14px;left:14px}.panel>*{pointer-events:auto}.sheet-grip{display:none}.search{background:var(--surface);border:1px solid var(--rule);border-radius:var(--r-card);height:48px;box-shadow:var(--shadow);align-items:center;gap:10px;padding:0 8px 0 14px;display:flex}.search-target{font:11px/1 var(--font-mono);letter-spacing:.14em;color:var(--ink-3);white-space:nowrap;border-right:1px solid var(--rule-2);padding-right:10px}.search input{min-width:0;color:var(--ink);font:15px var(--font-sans);background:0 0;border:0;outline:0;flex:1;height:100%}.search input::placeholder{color:var(--ink-3)}.search input::-webkit-search-cancel-button{display:none}.icon-btn{width:30px;height:30px;color:var(--ink-2);border-radius:8px;flex:none;place-items:center;display:inline-grid}.icon-btn:hover{background:var(--surface-2);color:var(--ink)}.panel-body{scrollbar-width:thin;flex-direction:column;gap:10px;min-height:0;padding-bottom:2px;display:flex;overflow-y:auto}.panel-body:empty{display:none}.card{background:var(--surface);border:1px solid var(--rule);border-radius:var(--r-card);box-shadow:var(--shadow);animation:card-in var(--dur) var(--ease) both;padding:14px 16px 16px;position:relative}@keyframes card-in{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}.card-flat{padding:12px 6px 6px}.card-flat .card-cap{padding:0 10px}.card-cap{font:11px/1.4 var(--font-mono);letter-spacing:.14em;color:var(--ink-3);justify-content:space-between;align-items:center;gap:8px;min-height:22px;margin:-2px 0 10px;display:flex}.card-cap b{color:var(--ink);font-weight:500}.card-cap .icon-btn{margin:-6px -8px -6px 0}.card h2{margin:0 0 8px;font-size:20px;font-weight:600;line-height:1.35}.card p{color:var(--ink-2);margin:0;font-size:14px}.card-note p{font-size:14px}.fine{color:var(--ink-3)!important;margin-top:10px!important;font-size:12px!important}.rows{margin:0;padding:0;list-style:none}.row{text-align:left;border-radius:8px;grid-template-rows:auto auto;grid-template-columns:40px 1fr;align-items:baseline;column-gap:8px;width:100%;padding:9px 10px;display:grid}.rows li+li .row{border-top:1px solid var(--rule-2);border-radius:0}.row:hover{background:var(--surface-2);border-radius:8px}.row-k{font:10px/1 var(--font-mono);letter-spacing:.1em;color:var(--ink-3);border:1px solid var(--rule);text-align:center;border-radius:4px;grid-row:1/span 2;align-self:center;padding:4px 0}.row-main{color:var(--ink);font-size:15px}.row-sub{color:var(--ink-3);font-size:12px}.pills{flex-wrap:wrap;gap:6px;margin:8px 0 4px;display:flex}.pills:empty{display:none}.pill{border:1px solid var(--rule);border-radius:var(--r-pill);height:22px;color:var(--ink-2);white-space:nowrap;align-items:center;padding:0 9px;font-size:12px;display:inline-flex}.pill-ok{color:var(--ok);border-color:var(--ok-line);background:var(--ok-bg)}.pill-mock{border-color:var(--warn-line);background:var(--warn-bg)}.pill-ice{color:var(--b600);border-color:var(--b200);background:var(--b50)}:root[data-theme=dark] .pill-ok{color:#6cc581;background:0 0;border-color:#2b6b44}:root[data-theme=dark] .pill-mock{background:0 0;border-color:#6b5320}:root[data-theme=dark] .pill-ice{color:var(--b200);border-color:var(--rule);background:0 0}.dl{margin:10px 0 0}.dl-row{border-top:1px solid var(--rule-2);justify-content:space-between;gap:16px;padding:8px 0;font-size:14px;display:flex}.dl-row dt{color:var(--ink-3)}.dl-row dd{text-align:right;color:var(--ink);margin:0}.actions{flex-wrap:wrap;gap:8px;margin-top:14px;display:flex}.btn-primary,.btn-ghost{height:38px;font:13px var(--font-mono);letter-spacing:.12em;border:1px solid var(--brand);border-radius:8px;padding:0 16px}.btn-primary{background:var(--brand);color:var(--brand-ink)}.btn-primary:hover{background:var(--b800)}:root[data-theme=dark] .btn-primary:hover{background:var(--b300)}.btn-ghost{color:var(--ink);border-color:var(--rule)}.btn-ghost:hover{border-color:var(--ink)}.btn-link{color:var(--link);font-size:13px}.od{border:1px solid var(--rule-2);border-radius:10px;position:relative}.od-row{text-align:left;align-items:center;gap:12px;width:100%;padding:9px 46px 9px 12px;display:flex}.od-row+.od-row{border-top:1px solid var(--rule-2)}.od-row small{font:10px/1.2 var(--font-mono);letter-spacing:.14em;color:var(--ink-3);display:block}.od-row b{font-size:15px;font-weight:500}.od-row:hover b{color:var(--link)}.od-swap{border:1px solid var(--rule);background:var(--surface);position:absolute;top:50%;right:8px;transform:translateY(-50%)}.card>.od-row{padding:0}.card>.od-row small{font-family:var(--font-sans);letter-spacing:0;font-size:12px}.mk{border-radius:50%;flex:none;width:12px;height:12px}.mk-here{background:var(--here);box-shadow:0 0 0 2px var(--surface), 0 0 0 5px var(--here-glow)}.mk-dest{background:var(--dest);border-radius:50% 50% 50% 0;transform:rotate(-45deg)}.seg{border:1px solid var(--rule);border-radius:8px;grid-template-columns:repeat(4,1fr);margin:12px 0 4px;display:grid;overflow:hidden}.seg button{height:32px;color:var(--ink-2);font-size:13px}.seg button+button{border-left:1px solid var(--rule)}.seg button[aria-checked=true]{background:var(--brand);color:var(--brand-ink)}.summary{color:var(--ink-2);flex-wrap:wrap;align-items:baseline;gap:12px;margin-top:14px;font-size:14px;display:flex}.summary b{color:var(--ink);font-size:22px;font-weight:600}.summary.is-busy{color:var(--ink-3);align-items:center;gap:8px}.spin{border:1.5px solid var(--rule);border-top-color:var(--brand);border-radius:50%;width:14px;height:14px;animation:.8s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.notice{color:var(--red);background:#fdf2f1;border:1px solid #eeb3ad;border-radius:8px;margin-top:12px;padding:10px 12px;font-size:14px}:root[data-theme=dark] .notice{color:var(--red-dark);background:0 0;border-color:#6b3330}.card-steps{outline:none}.step-stage{touch-action:pan-y;-webkit-user-select:none;user-select:none;min-height:86px;position:relative}.step{opacity:0;transition:opacity .45s var(--ease), transform .6s var(--ease);pointer-events:none;align-items:flex-start;gap:14px;display:flex;position:absolute;inset:0;transform:translate(24px)}.step.is-now{opacity:1;pointer-events:auto;position:relative;transform:none}.step-ic{border:1px solid var(--route);width:44px;height:44px;color:var(--route-text);border-radius:10px;flex:none;place-items:center;display:grid}.step h2{margin:2px 0 4px;font-size:19px}.step p{color:var(--route-text);font-size:14px}.step-nav{justify-content:space-between;align-items:center;margin-top:12px;display:flex}.step-nav .icon-btn{border:1px solid var(--rule);width:36px;height:36px}.dots{flex-wrap:wrap;justify-content:center;gap:5px;max-width:220px;display:flex}.dots i{border:1px solid var(--n400);border-radius:50%;width:6px;height:6px}.dots i.is-done{background:var(--n400)}.dots i.is-now{background:var(--route);border-color:var(--route);border-radius:3px;width:16px}.line-bar{background:var(--rule-2);border-radius:2px;height:3px;margin-top:14px;overflow:hidden}.line-bar i{background:var(--route);height:100%;transition:width var(--dur) var(--ease);display:block}.motto{border-top:1px solid var(--rule-2);font:13px/1.4 var(--font-serif);letter-spacing:.5em;color:var(--ink-3);text-align:center;margin:14px -16px -16px;padding:9px 16px}.motto.is-arrive{color:var(--dest);animation:card-in .9s var(--ease) both}.orbit-bar{color:var(--ink-2);align-items:center;gap:8px;margin-top:14px;display:flex}.orbit-bar svg{fill:none;stroke:currentColor;stroke-width:1.1px;flex:none}.orbit-bar .moon circle:not(:first-child){stroke-width:.9px}.orbit-bar .track{border-top:1px dashed var(--n400);flex:1;height:1px;position:relative}.orbit-bar .track i{background:var(--route);height:1px;transition:width var(--dur) var(--ease);position:absolute;top:-1px;left:0}.orbit-bar .track b{background:var(--route);width:7px;height:7px;transition:left var(--dur) var(--ease);margin-left:-3.5px;position:absolute;top:-4px;transform:rotate(45deg)}.orbit-bar.is-arrived .moon{color:var(--route-text)}.orbit-note{text-align:right;font:11px var(--font-mono);letter-spacing:.14em;color:var(--route-text);animation:card-in .9s var(--ease) both;margin-top:6px}.card-building h2{margin-bottom:4px;font-size:24px}.story{border-top:1px solid var(--rule-2);margin:14px 0 0;padding:12px 0 0}.story h3{font:600 16px/1.45 var(--font-serif);letter-spacing:.02em;margin:0 0 6px}.story p{font-size:14px;line-height:1.75}.story cite{align-items:center;gap:8px;margin-top:8px;font-size:12px;font-style:normal;display:flex}.story cite a{color:var(--ink-3);border-bottom:1px dotted var(--ink-3);text-decoration:none}.grade{font:10px/1 var(--font-mono);border:1px solid;border-radius:3px;padding:2px 4px}.grade-A{color:var(--ok)}.grade-B{color:var(--b600)}:root[data-theme=dark] .grade-A{color:#6cc581}:root[data-theme=dark] .grade-B{color:var(--b300)}.card-building.is-historic{background:#f7efdc;border-color:#d8c391}:root[data-theme=dark] .card-building.is-historic{background:#2b2a1e;border-color:#6b5f3a}.iron{fill:none;stroke:#8a7444;stroke-width:1px;width:calc(100% + 8px);height:18px;margin:-6px -4px 6px;display:block}.iron-b{margin:12px -4px -8px;transform:scaleY(-1)}.tour-entry{text-align:left;align-items:center;gap:12px;width:100%;display:flex}.tour-entry>svg:first-child{color:var(--brand);flex:none}.tour-entry span{flex:1}.tour-entry b{font:600 15px var(--font-serif);letter-spacing:.04em;display:block}.tour-entry small{color:var(--ink-3);font-size:12px}.card-tour{padding:12px 14px}.tour-stops{counter-reset:s;margin:0;padding:0;list-style:none}.tour-stop{border-top:1px solid var(--rule-2);align-items:baseline;gap:10px;padding:7px 0;font-size:14px;display:flex}.tour-stop:first-child{border-top:0}.tour-stop .no{color:var(--ink-3);font-size:11px}.tour-stop small{color:var(--ink-3);margin-left:auto;font-size:11px}.tour-stop.is-off span{color:var(--ink-3)}.tour-stop.is-now span{color:var(--route-text);font-weight:600}.sky{z-index:2;height:0;position:absolute;top:0;left:0;right:0}.hit-star{color:var(--b500);animation:3.2s ease-in-out infinite twinkle;position:absolute;top:26px;left:58%}.hit-star svg{fill:currentColor;filter:drop-shadow(0 0 6px var(--here-glow))}:root[data-theme=dark] .hit-star{color:#eaf4fa}@keyframes twinkle{50%{opacity:.45;transform:scale(.85)}}.toast{z-index:6;background:var(--ink);max-width:min(520px,80%);color:var(--plate);animation:card-in var(--dur) var(--ease) both;border-radius:8px;padding:9px 14px;font-size:13px;transition:opacity .6s;position:absolute;bottom:20px;left:50%;transform:translate(-50%)}.toast.is-out{opacity:0}@media (max-width:760px){.plate{border:0;border-radius:0;grid-template-rows:auto 1fr 0;inset:0}.cap-top{padding:10px 14px 8px;padding-top:max(10px, env(safe-area-inset-top));flex-direction:column;align-items:flex-start;gap:6px;font-size:11px}.jumps{gap:14px;max-width:100%}.cap-bottom{display:none}.map{border-radius:0;margin:0}.tools{gap:8px;top:10px;right:10px}.tools>[data-tool=theme],.tools>[data-tool=night]{display:none}.floors{top:auto;bottom:calc(var(--sheet-h,168px) + 12px);width:64px;right:10px}.fs-list{max-height:24vh}.titleblock{background:0 0;border:0;display:block;inset:10px 60px auto 10px}.titleblock .tb-cell{display:none}.titleblock .tb-line{text-overflow:ellipsis;white-space:nowrap;max-width:100%;font:11px/1 var(--font-mono);letter-spacing:.04em;color:var(--ink-2);background:var(--plate);border:1px solid var(--rule);border-radius:6px;padding:6px 8px;display:inline-block;overflow:hidden}.titleblock .tb-line em{color:var(--warn);font-style:normal;font-family:var(--font-sans)}:root[data-theme=dark] .titleblock .tb-line em{color:#ebbd57}.north-btn{z-index:3;background:var(--plate);border:1px solid var(--rule);border-radius:50%;place-items:center;width:34px;height:34px;display:grid;position:absolute;top:44px;left:10px}.north-btn svg{transition:transform .3s var(--ease);overflow:visible}.north-btn path{fill:var(--ink)}.north-btn text{font:7px var(--font-mono);fill:var(--ink)}.panel{background:var(--plate);border-top:1px solid var(--rule);width:auto;padding:0 10px calc(10px + env(safe-area-inset-bottom));height:var(--sheet-h,168px);transition:height var(--dur) var(--ease);border-radius:16px 16px 0 0;gap:8px;inset:auto 0 0;box-shadow:0 -10px 30px -18px #00000059}.panel[data-snap=peek]{--sheet-h:168px;height:168px}.panel[data-snap=half]{height:52vh}.panel[data-snap=full]{height:88vh}.sheet-grip{cursor:grab;touch-action:none;place-items:center;height:22px;display:grid}.sheet-grip i{background:var(--rule);border-radius:2px;width:38px;height:4px}.search{box-shadow:none;height:46px}.card{box-shadow:none}.titleblock[hidden],.floors[hidden]{display:none}}@media (min-width:761px) and (max-height:520px){.plate{border:0;border-radius:0;grid-template-rows:auto 1fr 0;inset:0}.cap-top{padding:6px 14px;font-size:11px}.cap-bottom{display:none}.map{border-radius:0;margin:0}.panel{gap:6px;width:300px;top:8px;bottom:8px;left:8px;overflow-y:auto}.tools{gap:6px;top:8px;right:8px}.tools>[data-tool=theme],.tools>[data-tool=night]{display:none}.floors{width:64px;top:8px;right:52px}.fs-list{max-height:calc(100vh - 150px)}.titleblock{display:none}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:1ms!important;animation-duration:1ms!important}}
