:root{--parchment: #ece1c4;--parchment-panel: #f2e8cf;--parchment-deep: #e0d2ae;--ink: #2b2214;--ink-soft: #5b4a2f;--ink-faint: #7a6a48;--rule: #b7a67e;--seal-red: #8a1c1c;--seal-green: #3e5a2c;--seal-amber: #915f14;--seal-grey: #6b6558;--serif: "EB Garamond", Georgia, serif;--display: "IM Fell English SC", "EB Garamond", serif;--fell: "IM Fell English", "EB Garamond", serif}*{box-sizing:border-box}html,body,#app{margin:0;height:100%;overflow:hidden}body{font-family:var(--serif);color:var(--ink);background:var(--parchment)}#map{position:absolute;top:0;right:0;bottom:0;left:0}#chart-loading{position:absolute;top:0;right:0;bottom:0;left:0;z-index:4;background:var(--parchment);display:flex;align-items:center;justify-content:center;transition:opacity .9s ease}#chart-loading.lifted{opacity:0;pointer-events:none}.chart-loading-inner{text-align:center}.chart-loading-title{display:block;font-family:var(--display);font-size:30px;letter-spacing:2px;color:var(--ink-soft);animation:quill 2.2s ease-in-out infinite}.chart-loading-sub{display:block;font-family:var(--fell);font-style:italic;font-size:16px;color:var(--ink-faint);margin-top:6px}@keyframes quill{0%,to{opacity:.55}50%{opacity:1}}#app:before{content:"";position:absolute;top:6px;right:6px;bottom:6px;left:6px;pointer-events:none;border:1.5px solid var(--ink-soft);outline:.75px solid var(--rule);outline-offset:3px;z-index:6}#scale-bar{position:absolute;left:50%;bottom:12px;transform:translate(-50%);z-index:8;pointer-events:none;mix-blend-mode:multiply}#app:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;background:radial-gradient(ellipse at center,#0000 55%,#4a3a222e),url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='240' height='240'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2'/%3E%3CfeColorMatrix values='0 0 0 0 0.29 0 0 0 0 0.23 0 0 0 0 0.13 0 0 0 0.05 0'/%3E%3C/filter%3E%3Crect width='240' height='240' filter='url(%23n)'/%3E%3C/svg%3E");mix-blend-mode:multiply;z-index:5}#cartouche{position:absolute;top:18px;left:18px;z-index:10;width:396px}.cartouche-frame{background:url(../assets/cartouche.jpg) center / 100% 100% no-repeat;aspect-ratio:3 / 2;display:flex;flex-direction:column;justify-content:center;align-items:center;text-align:center;padding:15% 16% 12%;box-shadow:0 4px 18px #3f332059;border:1px solid var(--rule)}#cartouche h1{font-family:var(--display);font-size:33px;letter-spacing:3px;margin:0;line-height:1.05}#cartouche .subtitle{font-family:var(--fell);font-style:italic;font-size:18px;margin:2px 0 6px;color:var(--ink-soft)}#cartouche .issue{font-size:12px;color:var(--ink-faint);margin:4px 0 0;line-height:1.4}.abstract-stamp{margin-top:10px;background:url(../assets/stats-panel.jpg) center / 100% 100% no-repeat;aspect-ratio:3 / 2;box-shadow:0 4px 14px #3f33204d;border:1px solid var(--rule);display:grid;grid-template-columns:1fr 1fr;grid-template-rows:1fr 1fr 1fr;padding:19.5% 11% 13%;text-align:center}.abstract-stamp .stat{display:flex;flex-direction:column;justify-content:center;line-height:1.15;position:relative;padding:2px 6px}.abstract-stamp .stat .label{display:block;font-family:var(--display);font-size:12.5px;letter-spacing:.8px;color:var(--ink-soft)}.abstract-stamp .stat b{display:block;font-family:var(--display);font-weight:400;font-size:21px;color:var(--seal-red);letter-spacing:.3px;margin-top:1px}.abstract-stamp .stat .sub{display:block;font-size:12.5px;font-style:italic;color:var(--ink-faint)}.abstract-stamp .cite{font-size:8.5px}#ledger{position:absolute;right:18px;top:18px;bottom:106px;z-index:10;width:clamp(540px,30vw,700px);background-color:var(--parchment-panel);background-image:linear-gradient(#faf4e3d9,#faf4e3d9),url(../assets/parchment.jpg);background-size:cover;border:2px solid var(--ink-soft);outline:1px solid var(--rule);outline-offset:4px;box-shadow:0 4px 18px #3f332059,inset 0 0 60px #b7a67e33;padding:14px 16px;overflow-y:auto}#ledger h2,#dossier h2{font-family:var(--display);font-size:30px;letter-spacing:1.5px;margin:0 0 10px;text-align:center;border-bottom:2px solid var(--ink-soft);padding-bottom:8px;position:relative}#ledger h2:after,#dossier h2:after{content:"";position:absolute;left:50%;bottom:-14px;transform:translate(-50%);width:190px;height:26px;background:url(../assets/divider.png) center / contain no-repeat;mix-blend-mode:multiply}.ledger-row{display:flex;align-items:stretch;gap:12px;padding:12px 10px 12px 0;margin:0 0 10px;background:#fffbeea8;border:1px solid var(--rule);box-shadow:0 1px 4px #3f332024,inset 0 0 0 1px #ffffff59;cursor:pointer;position:relative;transition:box-shadow .15s ease,transform .15s ease}.ledger-row:hover,.ledger-row:focus{outline:none;box-shadow:0 4px 12px #3f33204d;transform:translateY(-1px)}.ledger-spine{flex:0 0 7px;box-shadow:inset -1px 0 #3f332066}.ledger-main{flex:1 1 auto;min-width:0;padding-top:1px}.ledger-titleline{display:flex;align-items:center;gap:9px;flex-wrap:wrap}.ledger-name{font-family:var(--display);font-size:21px;letter-spacing:.4px;color:var(--ink);line-height:1.1}.ledger-corridor{font-size:15.5px;color:var(--ink-soft);margin-top:3px;line-height:1.35}.ledger-progress{position:relative;height:12px;margin-top:8px;max-width:240px;background:#b7a67e4d;border:1px solid var(--rule)}.ledger-progress-fill{height:100%;opacity:.85}.ledger-progress-num{position:absolute;right:4px;top:-1px;font-size:10.5px;font-weight:700;color:var(--ink-soft);letter-spacing:.3px}.date-stamp{flex:0 0 112px;align-self:center;text-align:center;border:2px solid var(--seal-red);border-radius:4px;padding:5px 4px 6px;margin-right:2px;transform:rotate(1.4deg);background:#fffbee80;position:relative}.stamp-open{border-color:var(--seal-green)}.stamp-none{border-color:var(--seal-grey);border-style:dashed;transform:rotate(-1.2deg)}.ds-label{display:block;font-family:var(--display);font-size:10.5px;letter-spacing:1.2px;text-transform:uppercase;color:var(--ink-faint)}.ds-top{display:block;font-size:13.5px;color:var(--ink-soft);margin-top:1px}.ds-year{display:block;font-family:var(--display);font-size:27px;line-height:1.05;color:var(--seal-red);letter-spacing:1px}.stamp-open .ds-year{color:var(--seal-green)}.ds-none{display:block;font-style:italic;font-size:13.5px;color:var(--ink-faint);margin-top:4px;line-height:1.3}.date-stamp .cite{position:absolute;bottom:-9px;right:6px;background:var(--parchment-panel)}@media (min-width: 1700px){.ledger-name{font-size:24px}.ledger-corridor{font-size:17px}.ds-year{font-size:31px}}#ledger footer{margin-top:10px;text-align:center;font-size:12.5px}#ledger footer a{color:var(--seal-red)}.recent-h{font-family:var(--display);font-size:15.5px;letter-spacing:1px;margin:14px 0 6px;color:var(--ink-soft);border-top:2px solid var(--ink-soft);padding-top:10px}.recent-entries{list-style:none;margin:0;padding:0;font-size:14px}.recent-entries li{display:flex;flex-wrap:wrap;align-items:baseline;gap:5px;padding:4px 0;border-bottom:1px dotted var(--rule)}.recent-entries .tl-date{font-family:var(--display);font-size:11px;color:var(--seal-amber)}.recent-entries .recent-event{flex:1 1 auto}.recent-entries .fine{flex-basis:100%;margin:0}.line-chip.small{min-width:18px;height:18px;line-height:18px;font-size:9.5px}.line-chip{display:inline-block;min-width:22px;height:22px;line-height:22px;border-radius:50%;color:#fff;text-align:center;font-size:11px;font-family:var(--serif);font-weight:700;padding:0 4px;border:1.5px solid rgba(63,51,32,.65);box-shadow:inset 0 -4px 6px #0000002e;text-shadow:0 1px 1px rgba(0,0,0,.4)}.line-chip.big{min-width:34px;height:34px;line-height:34px;font-size:15px}.seal{display:inline-block;font-family:var(--display);font-size:12px;letter-spacing:.8px;padding:1px 8px 0;border:1.5px solid currentColor;border-radius:3px;transform:rotate(-1.2deg);background:#fffbe980;white-space:nowrap}#ledger .seal{white-space:normal;text-align:center;line-height:1.25;font-size:11.5px;padding:1px 5px 0;max-width:100%;overflow-wrap:normal;word-break:normal}#legend .seal{cursor:pointer}#legend button.seal{font-size:12px}#legend .legend-off{opacity:.35;text-decoration:line-through}.legend-hint{font-size:12.5px;font-style:italic;color:var(--ink-faint);align-self:center}.seal-rail{color:#3f3320}.seal-open{color:var(--seal-green)}.seal-construction{color:var(--seal-amber)}.seal-planned{color:var(--seal-grey)}.seal-suspended{color:var(--seal-red)}#legend{position:absolute;left:18px;bottom:34px;z-index:10;background-color:var(--parchment-panel);background-image:linear-gradient(#faf4e3d9,#faf4e3d9),url(../assets/parchment.jpg);background-size:cover;border:1.5px solid var(--ink-soft);padding:8px 12px;display:flex;gap:10px;flex-wrap:wrap;box-shadow:0 3px 12px #3f33204d;max-width:480px}#dossier{position:absolute;right:18px;top:18px;bottom:106px;z-index:20;width:clamp(540px,30vw,700px);background-color:var(--parchment-panel);background-image:linear-gradient(#faf4e3d9,#faf4e3d9),url(../assets/parchment.jpg);background-size:cover;border:2px solid var(--ink-soft);outline:1px solid var(--rule);outline-offset:4px;box-shadow:0 6px 24px #3f332073,inset 0 0 60px #b7a67e33;padding:16px 18px;overflow-y:auto}#dossier-close{position:absolute;top:8px;right:10px;background:none;border:1px solid var(--rule);border-radius:50%;width:26px;height:26px;cursor:pointer;color:var(--ink-soft);font-family:var(--serif)}#dossier-close:hover{background:var(--parchment-deep)}.dossier-head{display:flex;align-items:center;gap:10px;margin-bottom:4px}.dossier-head h2{border:none;margin:0;text-align:left;flex:1}.status-detail{font-style:italic;color:var(--ink-soft);font-size:15.5px;margin:4px 0 10px}.station-status{margin:0;font-size:13px}.dossier-table{width:100%;border-collapse:collapse;font-size:15.5px;margin:6px 0 4px}.dossier-table th{text-align:left;font-family:var(--display);font-weight:400;font-size:13px;letter-spacing:.6px;color:var(--ink-faint);padding:5px 8px 5px 0;width:42%;vertical-align:top;border-bottom:1px dotted var(--rule)}.dossier-table td{padding:5px 0;border-bottom:1px dotted var(--rule);vertical-align:top}.completion-date{font-size:17px;color:var(--seal-red)}.hero-stats{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:10px 0 12px}.hero-stat{border:1.5px solid var(--rule);background:#fffbe98c;padding:8px 10px 6px;position:relative;box-shadow:inset 0 0 12px #b7a67e40}.hero-stat:first-child{grid-column:1 / -1;text-align:center;border-color:var(--seal-red)}.hero-label{display:block;font-family:var(--display);font-size:11.5px;letter-spacing:1px;color:var(--ink-faint);text-transform:uppercase}.hero-value{display:block;font-family:var(--serif);font-weight:700;font-size:24px;line-height:1.15;color:var(--ink)}.hero-value small{font-size:13px;font-weight:400;color:var(--ink-soft)}.hero-date{color:var(--seal-red);font-size:26px}.hero-na{font-size:16px;font-style:italic;color:var(--ink-faint);font-weight:400}.hero-stat{padding-right:14px}.hero-stat .cite{position:absolute;top:3px;right:4px}.hero-label{padding-right:40px}#dossier h3{font-family:var(--display);font-size:17px;letter-spacing:1px;margin:14px 0 4px;color:var(--ink-soft);border-bottom:1px solid var(--rule);padding-bottom:3px}.history{font-size:15.5px;line-height:1.6;margin:4px 0}.timeline{list-style:none;padding:0;margin:4px 0;font-size:14.5px}.timeline li{padding:3px 0 3px 14px;border-left:2px solid var(--rule);margin-left:4px}.timeline .tl-date{font-family:var(--display);font-size:13px;color:var(--seal-amber);display:inline-block;min-width:108px}.timeline .tl-future{border-left-style:dashed}.timeline .tl-future .tl-date{color:var(--seal-red)}.station-strip{font-size:14px;line-height:1.9}.station-sep{color:var(--ink-faint)}button.station-name{background:none;border:none;padding:0;margin:0;font:inherit;color:var(--ink);cursor:pointer;border-bottom:1px dotted var(--rule)}button.station-name:hover{color:var(--seal-red);border-bottom-color:var(--seal-red)}button.station-name.noted{font-weight:600;color:var(--seal-amber)}button.station-name.noted:hover{color:var(--seal-red)}.line-links{display:flex;flex-direction:column;gap:6px;margin:6px 0}.line-link{display:flex;align-items:center;gap:8px;background:#fffbe980;border:1px solid var(--rule);font-family:var(--serif);font-size:15px;color:var(--ink);padding:6px 8px;cursor:pointer;text-align:left}.line-link:hover{background:var(--parchment-deep)}.cite{font-size:9px;vertical-align:super;margin-left:3px;color:var(--seal-red);text-decoration:none;border:1px solid currentColor;border-radius:2px;padding:0 3px;font-family:var(--serif)}.cite-calculated{color:var(--seal-amber)}.cite-assumed,.cite-traced{color:var(--seal-grey)}.na{color:var(--ink-faint);font-style:italic}.fine{font-size:12.5px;color:var(--ink-faint);line-height:1.4;margin:2px 0}.srcline a{color:var(--seal-red)}.vignette{margin:8px 0 10px}.vignette img{width:100%;display:block;border:1.5px solid var(--ink-soft);outline:1px solid var(--rule);outline-offset:3px;filter:sepia(.25) contrast(.95);mix-blend-mode:multiply}.vignette figcaption{font-family:var(--fell);font-style:italic;font-size:12.5px;color:var(--ink-faint);text-align:center;margin-top:5px}.of-note{border:1.5px dashed var(--seal-amber);background:#fffbe980;padding:8px 10px;margin:10px 0;font-size:14.5px;line-height:1.5}.of-note-label{font-family:var(--display);font-size:11.5px;letter-spacing:1px;color:var(--seal-amber);display:block;margin-bottom:2px;text-transform:uppercase}.progress{height:7px;background:var(--parchment-deep);border:1px solid var(--rule);margin-top:4px}.progress-fill{height:100%;opacity:.85}#compass-controls{position:absolute;left:18px;bottom:108px;z-index:10;display:flex;flex-direction:row;gap:6px}#compass-controls button{font-family:var(--display);font-size:12px;letter-spacing:1px;background:var(--parchment-panel);color:var(--ink);border:1.5px solid var(--ink-soft);padding:6px 10px;cursor:pointer;box-shadow:0 2px 8px #3f33204d}#compass-controls button:hover{background:var(--parchment-deep)}#compass-rose{position:absolute;left:26px;bottom:158px;z-index:6;width:150px;height:150px;mix-blend-mode:multiply;opacity:.85;border-radius:50%;-webkit-mask-image:radial-gradient(circle,#000 62%,transparent 72%);mask-image:radial-gradient(circle,#000 62%,transparent 72%);pointer-events:none;transition:transform .4s ease}.sea-ornament{mix-blend-mode:multiply;opacity:.8;pointer-events:none}.survey-train{width:108px;height:13.8px;mix-blend-mode:multiply;opacity:.92;pointer-events:none;filter:drop-shadow(0 1px 1px rgba(63,51,32,.35))}#attribution{position:absolute;right:18px;bottom:8px;z-index:10;font-size:10.5px;color:var(--ink-faint)}#attribution a{color:var(--ink-soft)}.survey-tip .maplibregl-popup-content{font-size:17px;line-height:1.45;background:var(--parchment-panel);border:1.5px solid var(--ink-soft);border-radius:0;font-family:var(--serif);color:var(--ink);font-size:12.5px;box-shadow:0 3px 10px #3f332059;padding:11px 14px;max-width:340px}.survey-tip .maplibregl-popup-tip{border-top-color:var(--ink-soft)}.survey-tip .seal{font-size:9.5px;padding:0 5px;margin-left:2px}.survey-tip .tip-note{display:inline-block;margin-top:4px;max-width:220px;color:var(--ink-soft);font-size:11.5px;line-height:1.35}.boot-error{position:absolute;inset:auto 20px 20px 20px;z-index:99;background:#fff0f0;border:2px solid var(--seal-red);padding:12px;font-family:var(--serif)}#ledger::-webkit-scrollbar,#dossier::-webkit-scrollbar{width:8px}#ledger::-webkit-scrollbar-thumb,#dossier::-webkit-scrollbar-thumb{background:var(--rule)}#btn-ledger{display:none}@media (max-width: 900px){#ledger{display:none}#ledger.open{display:block;width:min(372px,calc(100vw - 36px));bottom:130px}#btn-ledger{display:block}#dossier{width:min(372px,calc(100vw - 36px));bottom:130px}#legend{bottom:8px;max-width:calc(100vw - 96px)}#compass-rose{display:none}#cartouche{max-width:260px}#cartouche h1{font-size:22px}}
