*{box-sizing:border-box}:root{font-family:Arial,Helvetica,sans-serif;color:#34433c;background:#eeeae1;font-synthesis:none;color-scheme:light}body{margin:0;overflow:hidden;transition:background .8s,color .8s}button,a,input{-webkit-tap-highlight-color:transparent}button{font:inherit;cursor:pointer}button:focus-visible,a:focus-visible{outline:2px solid #b87337;outline-offset:5px}[hidden]{display:none!important}#world{position:absolute;inset:0}#world canvas{width:100%;height:100%;display:block;touch-action:none}.masthead{position:absolute;left:44px;right:44px;top:30px;display:flex;align-items:center;justify-content:space-between;z-index:2}.brand{text-decoration:none;color:inherit;display:flex;align-items:center;gap:12px;font:600 23px Georgia,serif;letter-spacing:-.7px}.brand>svg{width:41px;height:41px}.brand-sub{display:block;font:8px Arial,sans-serif;letter-spacing:2.3px;margin-top:5px}.header-right{display:flex;align-items:center;gap:36px}.edition{font-size:9px;letter-spacing:1.7px;opacity:.65}.edition span{margin:0 10px;color:#ae9c83}.day-switch{display:flex;border:1px solid #c9c8bc;padding:4px;border-radius:28px;gap:2px}.day-switch button{display:flex;align-items:center;gap:7px;border:0;background:transparent;border-radius:20px;padding:8px 12px;font-size:11px;color:#7a7f73;transition:all .3s}.day-switch button.active{background:#fcfbf5;color:#34433c;box-shadow:0 2px 6px #272f2510}svg{flex-shrink:0}.day-switch svg,.reset-button svg,.view-hints svg{height:17px;width:17px;fill:none;stroke:currentColor;stroke-width:1.4;stroke-linecap:round;stroke-linejoin:round}.intro{position:absolute;top:132px;left:54px;pointer-events:none}.eyebrow{display:flex;align-items:center;gap:8px;font-size:8px;letter-spacing:2px}.eyebrow>span{width:17px;height:1px;background:#b47c42}h1{font:400 clamp(35px,3.65vw,56px)/1.06 Georgia,"Times New Roman",serif;letter-spacing:-1.8px;margin:17px 0 14px}h1 em{font-weight:400;color:#8c694a}.intro p{font-size:11px;letter-spacing:.3px;opacity:.65;margin:0}.compass{position:absolute;right:55px;top:140px;display:flex;align-items:center;flex-direction:column;gap:5px;opacity:.47}.compass span{font:9px Georgia,serif}.compass svg{width:44px;height:44px;fill:none;stroke:currentColor;stroke-width:.5;transform:rotate(-30deg)}.compass path:nth-of-type(1){fill:currentColor}.loading{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);font:italic 20px Georgia,serif}.error{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);display:grid;gap:12px;text-align:center;width:min(90vw,500px)}.error strong{font:25px Georgia,serif}.error span{font-size:13px;line-height:1.7}footer{position:absolute;bottom:32px;left:46px;right:46px;display:flex;align-items:center;justify-content:space-between;gap:20px;pointer-events:none}.journey{display:flex;align-items:center;gap:10px;width:240px}.status-light{width:6px;height:6px;border-radius:50%;background:#6f8c56;box-shadow:0 0 0 4px #7b8d4e14}.journey>div{display:grid;gap:7px}#train-status{font-size:12px}.route-name{font-size:8px;letter-spacing:1.6px;opacity:.55}.transport{pointer-events:auto;display:flex;gap:21px;align-items:center;background:#fffcf5e8;border:1px solid #fff9;border-radius:15px;padding:14px 22px 14px 14px;box-shadow:0 8px 28px #4b443313;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px)}.play-button{width:43px;height:43px;border:0;border-radius:50%;display:grid;place-items:center;background:#3f5247;color:#fff8e9;transition:background .2s,transform .2s}.play-button:hover{background:#56705d;transform:scale(1.04)}.play-button svg{width:19px;height:19px}.speed-control{width:146px}.speed-heading{display:flex;align-items:center;justify-content:space-between;margin-bottom:6px;font-size:10px}.speed-heading output{font-variant-numeric:tabular-nums;color:#82765e;font-size:10px}input[type=range]{display:block;accent-color:#647558;width:100%;height:13px;margin:0;cursor:pointer}.control-divider{height:29px;width:1px;background:#dddace}.reset-button{border:0;background:transparent;color:#686e60;display:flex;align-items:center;gap:8px;font-size:10px;padding:10px 0}.reset-button:hover{color:#a6703e}.view-hints{display:flex;align-items:center;justify-content:flex-end;gap:8px;width:240px;font-size:9px;opacity:.56}.view-hints>span{display:flex;align-items:center;gap:5px}.view-hints svg{width:14px;height:14px}.hint-dot{opacity:.5}body.night{color:#d8ddcf}body.night .brand-sub,body.night .eyebrow,body.night .intro p{color:#b7c6bf}body.night h1 em{color:#d0ab76}body.night .day-switch{border-color:#81958d55}body.night .day-switch button{color:#aabeb5}body.night .day-switch button.active{background:#f2e6c9;color:#394d49}body.night .transport{background:#263a38eb;border-color:#75928933;box-shadow:0 8px 28px #0003}body.night .speed-heading output,body.night .reset-button{color:#c4c9b8}body.night .play-button{background:#e3be7b;color:#263a38}body.night .control-divider{background:#758c7755}body.night .status-light{background:#d7b768}body.paused .status-light{background:#b19c78}@media(min-width:1600px){.intro{top:16%;left:4%}.masthead{left:4%;right:4%}footer{left:4%;right:4%;bottom:4%}}@media(max-width:1000px){.edition{display:none}.intro{top:113px;left:32px}.eyebrow{font-size:7px;letter-spacing:1.6px}h1{font-size:39px}.masthead{left:28px;right:28px;top:25px}footer{left:27px;right:27px;bottom:24px;gap:12px}.journey{width:170px}.view-hints{width:150px;flex-wrap:wrap;font-size:8px;gap:5px}.transport{gap:15px;padding-right:18px}.speed-control{width:110px}.compass{right:33px;top:123px}}@media(max-width:680px){.masthead{left:20px;right:20px;top:20px}.brand{font-size:20px;gap:8px}.brand>svg{width:34px;height:34px}.brand-sub{font-size:6px;letter-spacing:1.7px}.day-switch button{padding:8px}.day-switch button span{display:none}.intro{left:23px;top:102px}.eyebrow{font-size:6px;letter-spacing:1.3px}h1{font-size:35px;margin-top:13px}.intro p{font-size:10px}.compass{right:24px;top:110px}.compass svg{width:34px;height:34px}footer{left:20px;right:20px;bottom:22px;justify-content:center;flex-wrap:wrap}.transport{order:0;width:min(100%,362px);justify-content:center;gap:22px;padding:12px 18px}.speed-control{width:115px}.journey{order:1;justify-content:center;width:100%;margin-top:5px}.journey>div{display:flex;align-items:center;gap:9px}#train-status{font-size:10px}.route-name{font-size:7px;letter-spacing:1px}.view-hints{display:none}.reset-button span{font-size:9px}.play-button{width:39px;height:39px}.status-light{width:5px;height:5px}}@media(prefers-reduced-motion:reduce){*{transition:none!important}}
