@import url('https://fonts.googleapis.com/css2?family=Bree+Serif&family=Nunito+Sans:wght@400;600;700;800;900&display=swap');
:root{--ink:#17394c;--muted:#4c6672;--cream:#fff9e9;--paper:#fffdf3;--line:#b8d1d9;--gold:#f7bd36;--blue:#90d3f5;--red:#e74636;--grass:#77b854;--navy:#17394c;--gold-bg:#ffe39a}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:#dff3ff;color:var(--ink);font-family:'Nunito Sans',system-ui,sans-serif;font-size:15px;background-image:radial-gradient(ellipse at 10% 18%,#ffffff75 0 8%,transparent 8.2%),radial-gradient(ellipse at 94% 40%,#ffffff70 0 9%,transparent 9.2%);background-size:1200px 900px}button,a{-webkit-tap-highlight-color:transparent}button{font:inherit;color:inherit;cursor:pointer;border:0;background:none}button:focus-visible,a:focus-visible{outline:3px solid #116dad;outline-offset:4px}button:disabled{cursor:default;opacity:.48}a{color:inherit}h1,h2,h3,p{margin-top:0}h1,h2,h3{font-family:'Bree Serif',Georgia,serif;font-weight:400}h1{font-size:52px;line-height:1.08;letter-spacing:-1.1px;margin-bottom:18px}h2{font-size:28px}h3{font-size:22px}.topbar{max-width:1260px;margin:auto;display:flex;align-items:center;justify-content:space-between;padding:23px 36px;gap:20px}.brand{display:flex;align-items:center;gap:12px;text-decoration:none;font-family:'Bree Serif',Georgia,serif;font-size:28px;line-height:1}.brand-icon{width:65px;height:52px;display:block;transform:rotate(-4deg)}.brand-icon svg{width:100%;height:100%}.brand-light{color:var(--red)}.brand small{display:block;font:900 8px 'Nunito Sans',sans-serif;letter-spacing:2px;margin-top:8px}nav{display:flex;align-items:center;gap:10px}nav button{font-size:12px;font-weight:900;border:2px solid var(--ink);background:#fffdf3;padding:9px 16px;border-radius:7px;box-shadow:0 3px 0 #17394c}nav button:hover{transform:translateY(-1px)}#completed-badge{background:#ffd45a;padding:2px 6px;border-radius:3px;margin-left:4px}.help-button{border-radius:50%;width:36px;height:36px;padding:0}main{max-width:1184px;margin:0 auto;padding:0 0 48px}.world-banner{height:410px;position:relative;overflow:hidden;border:7px solid #fffdf3;border-radius:28px;background:#80d2f4;box-shadow:0 7px 0 #3089b530,0 14px 24px #1d50751a}.railway-panorama{position:absolute;inset:0}.railway-panorama svg{width:100%;height:100%;display:block;object-fit:cover}.world-copy{position:relative;z-index:2;padding:30px 36px;width:440px;pointer-events:none}.world-copy button{pointer-events:auto}.express-badge{display:inline-block;background:#fff9dc;border:2px solid var(--ink);border-radius:5px;font-size:10px;font-weight:900;letter-spacing:2px;padding:7px 13px;box-shadow:3px 3px 0 #17394c;margin-bottom:17px}.world-copy h1{font-size:49px;text-shadow:0 2px 0 #fff8d6}.world-copy h1 em{font-style:normal;color:#cf3027}.world-copy p{font-size:15px;line-height:1.6;font-weight:800;max-width:310px}.route-ribbon{position:absolute;right:22px;bottom:15px;display:flex;align-items:center;gap:13px;background:#17394c;color:#fff6d7;padding:8px 15px;border-radius:5px;font-size:8px;font-weight:900;letter-spacing:1.4px;z-index:2}.route-ribbon span+span:before{content:'•';margin-right:13px;color:#ffd45a}.primary{background:var(--red);color:#fffdf3;border:2px solid #982a25;box-shadow:0 4px 0 #982a25;border-radius:7px;padding:11px 18px;font-weight:900;font-size:13px}.primary:hover{background:#ef5948}.primary:active{transform:translateY(3px);box-shadow:0 1px 0 #982a25}.small-btn{background:#fff7d8;border:2px solid #a08648;border-radius:6px;padding:8px 12px;font-size:12px;font-weight:800;box-shadow:0 2px 0 #a08648}.small-btn.on{background:#ffda66;border-color:#8c642a}.station-map{margin-top:40px;padding:30px 30px 28px;border:3px solid #4e8b50;border-radius:28px;background:#d5ecaa;position:relative;overflow:hidden;box-shadow:0 6px 0 #8fb879}.station-map:before,.station-map:after{content:'';position:absolute;border:20px solid #b1d881;width:450px;height:400px;transform:rotate(-23deg);border-radius:45%;left:-270px;top:180px}.station-map:after{left:auto;right:-280px;top:520px}.station-map-heading{text-align:center;position:relative;z-index:2}.station-sign{font-family:'Bree Serif',Georgia,serif;font-size:26px;display:inline-block;color:#fff9e8;background:#196b9c;padding:11px 23px;border:4px solid #fff9dc;outline:2px solid #17394c;border-radius:10px;box-shadow:0 5px 0 #17394c}.station-map-heading p{font-size:13px;font-weight:700;margin:20px 0 18px}.themes{position:relative;z-index:2;display:flex;justify-content:center;flex-wrap:wrap;gap:8px;margin:21px 0 36px}.theme{padding:8px 13px;border-radius:20px;background:#faffed;border:2px solid #76a463;font-size:11px;font-weight:900}.theme.active{background:#17394c;border-color:#17394c;color:#fff6cc}.station-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:40px 28px;position:relative;z-index:2}.map-track{position:absolute;top:400px;bottom:200px;left:8%;right:8%;border:19px solid #726b50;border-radius:60px;box-shadow:inset 0 0 0 4px #d6cfad,0 0 0 4px #d6cfad;transform:rotate(-5deg);opacity:.7}.map-track:after{content:'';position:absolute;inset:-24px;border:7px dashed #827653;border-radius:67px}.station-house{position:relative;background:#fff8db;border:3px solid #294451;border-radius:12px 12px 6px 6px;box-shadow:5px 7px 0 #52764940;overflow:visible;display:flex;flex-direction:column;margin-top:9px}.station-roof{background:#de4939;border:3px solid #87362e;border-bottom-width:5px;border-radius:8px 8px 3px 3px;margin:-11px -9px 0;padding:6px;text-align:center;transform:rotate(-1deg);box-shadow:0 3px 0 #00000015;color:#fff8df;font-weight:900;font-size:9px;letter-spacing:2px}.station-nursing .station-roof,.station-animals .station-roof{background:#1d88bb;border-color:#195271;transform:rotate(1deg)}.station-landmarks .station-roof,.station-history .station-roof{background:#eebc3b;border-color:#a7762c;color:#4f361d}.station-picture{height:145px;background:#b9e7f7;overflow:hidden;border-bottom:3px solid #294451}.station-picture svg{height:100%;width:100%;display:block}.station-name{align-self:center;margin:-15px 10px 14px;position:relative;font-size:22px;background:#17394c;color:#fff6db;padding:5px 20px;border:3px solid #fff8d7;border-radius:5px;box-shadow:0 3px 0 #17394c}.departures{padding:0 14px 16px;display:grid;gap:10px}.departure-ticket{display:flex;align-items:center;gap:10px;width:100%;background:#fffdf4;border:1px solid #bb995b;border-radius:6px;box-shadow:0 3px 0 #dbc18c;position:relative;text-align:left;min-height:65px;padding:8px 10px;transition:transform .15s}.departure-ticket:before,.departure-ticket:after{content:'';width:10px;height:10px;border:1px solid #bb995b;border-radius:50%;background:#fff8db;position:absolute;left:-6px;top:calc(50% - 5px)}.departure-ticket:after{left:auto;right:-6px}.departure-ticket:hover{transform:translateY(-2px);background:#ffedaf}.ticket-route{display:flex;flex-direction:column;align-items:center;border-right:1px dashed #bb995b;padding-right:10px}.ticket-route strong{font-family:'Bree Serif',Georgia,serif;font-size:25px;line-height:1}.ticket-route small{font-size:6px;font-weight:900;letter-spacing:1px;margin-top:4px}.ticket-copy{min-width:0;flex:1}.ticket-copy b{font-size:12px;display:block;line-height:1.3}.ticket-copy small{font-size:9px;color:#61717a;display:block;line-height:1.4;margin-top:4px;overflow-wrap:anywhere}.ticket-arrow{font-size:20px;color:#c94735}.platform-edge{height:12px;background:repeating-linear-gradient(135deg,#17394c 0 8px,#ffd351 8px 16px);border-radius:0 0 3px 3px;border-top:2px solid #17394c}.conductor-note{position:relative;z-index:2;margin-top:35px;display:flex;align-items:center;gap:16px;background:#fbffe9;border:2px dashed #689654;border-radius:10px;padding:20px}.conductor-note p{font-size:12px;margin:5px 0 0;color:#46634b}.conductor-note .small-btn{margin-left:auto;white-space:nowrap}.conductor-icon{background:#f8ce49;border:3px solid #17394c;border-radius:50%;width:40px;height:40px;display:grid;place-items:center;font-family:'Bree Serif',Georgia,serif;font-size:24px;flex-shrink:0}.eyebrow{display:block;font-size:9px;font-weight:900;letter-spacing:1.6px;color:#3e6e88;margin-bottom:12px}.resume-section{margin:28px 0;background:#fff4c2;border:3px dashed #c09136;border-radius:12px;padding:22px 27px;box-shadow:0 5px 0 #bf9b4d22}.resume-section h2{margin-bottom:8px}.resume-section>p{font-size:12px;color:var(--muted)}.history-row{display:flex;justify-content:space-between;align-items:center;gap:18px;border:2px solid #b1bda2;border-radius:7px;background:var(--paper);padding:17px 21px;margin-bottom:12px}.history-row p{font-size:12px;margin:6px 0 0;color:var(--muted)}.history-row h3{font-size:19px;margin:0}.history-row:last-child{margin-bottom:0}.game-top{display:flex;align-items:center;justify-content:space-between;gap:20px;margin:12px 0 27px}.game-station-sign{background:#1879ad;color:#fff9dc;border:4px solid #fff8d9;outline:2px solid #17394c;border-radius:10px;padding:14px 24px;box-shadow:0 5px 0 #17435d}.game-top h1{font-size:32px;margin:4px 0}.game-top .eyebrow{color:#ffe497;margin:8px 0 5px}.back{padding:0;font-size:11px;font-weight:800;color:inherit}.timer-panel{display:flex;align-items:center;gap:15px;padding:12px 17px;border:3px solid #17394c;border-radius:10px;background:#ffdc62;box-shadow:0 5px 0 #be8f2d}.time{font-size:27px;font-weight:900;letter-spacing:1px;font-variant-numeric:tabular-nums}.play-layout{display:grid;grid-template-columns:minmax(0,1fr) 290px;gap:26px;align-items:start}.board-panel{position:relative;background:#fff8dc;border:9px solid #dca54a;outline:3px solid #8f5e2a;border-radius:13px;padding:20px 27px 24px;box-shadow:0 9px 0 #8f5e2a,0 16px 28px #21587628}.board-panel:before,.board-panel:after{content:'✦';position:absolute;top:7px;left:8px;color:#ad7a35;font-size:11px}.board-panel:after{left:auto;right:8px}.board-nameplate{text-align:center;margin:-33px auto 17px;background:#17394c;color:#ffefae;border:3px solid #f5cf66;border-radius:6px;padding:7px 12px;width:max-content;max-width:100%;font-size:8px;font-weight:900;letter-spacing:1.6px;position:relative}.board-meta{display:flex;justify-content:space-between;gap:10px;font-size:10px;font-weight:800;color:#68705a;margin-bottom:16px}.board-wrap{position:relative;max-width:450px;margin:auto}.board{display:grid;grid-template-columns:24px repeat(5,minmax(0,1fr)) 28px;gap:4px}.clue{display:grid;place-items:center;min-height:27px;font-size:17px;font-weight:900;color:#55717b}.clue.ok{color:#247448}.clue.over{color:#bd352b}.cell{aspect-ratio:1;min-width:0;padding:4px;position:relative;display:grid;place-items:center;border:2px solid #c9cfb0;background:#fffef5;border-radius:5px;box-shadow:0 2px 0 #bdc7a9}.cell.blue{background:#9cdcfb;border-color:#55a8d0}.cell.gold{background:#ffe18b;border-color:#ddb248}.cell.selected{outline:4px solid #e74636;outline-offset:-4px;z-index:1;background-color:#fff3cf}.cell.blue.selected{background:#9cdcfb}.cell.gold.selected{background:#ffe18b}.cell.fixed{box-shadow:inset 0 0 0 2px #5a768580,0 2px 0 #bdc7a9}.rail-svg{width:100%;height:100%;display:block;pointer-events:none}.lock{position:absolute;right:3px;top:2px;font-size:10px;color:#46616b;z-index:1}.pattern{position:absolute;left:3px;top:1px;font-size:10px;color:#195e84}.gold .pattern{color:#795418}.endpoint{position:absolute;right:2px;bottom:2px;font-size:8px;font-weight:900;background:#fffdf3e8;padding:2px;border-radius:3px;color:#be342a}.x-mark{font-size:25px;color:#8a9887}.board-caption{text-align:center;font-size:11px;color:#67765f;margin:16px 0 20px;font-weight:700}.picker-label{background:#216b94;color:#fff4d0;max-width:520px;margin:0 auto;padding:8px 12px;border-radius:7px 7px 0 0;font-size:9px;font-weight:900;letter-spacing:1.5px;display:flex;justify-content:space-between}.picker-label span{font-size:9px;letter-spacing:0;font-weight:600}.picker{display:flex;justify-content:center;gap:6px;max-width:520px;margin:auto;background:#17394c;padding:12px 8px;border-radius:0 0 8px 8px;box-shadow:0 4px 0 #0b2636}.piece{width:46px;height:47px;display:grid;place-items:center;padding:6px;background:#fff8dc;border:2px solid #cfb875;border-radius:6px;box-shadow:0 3px 0 #9e874c;font-weight:900;font-size:19px}.piece:hover:not(:disabled){background:#ffe38f;transform:translateY(-2px)}.piece:disabled{opacity:.5}.board-controls{display:flex;gap:7px;justify-content:center;flex-wrap:wrap;margin-top:18px}.board-controls .small-btn{font-size:10px;padding:7px 9px}.status{min-height:21px;text-align:center;font-size:11px;font-weight:800;color:#b1492b;margin-top:14px}.side-panel{padding-top:0}.platform-scenery{height:145px;overflow:hidden;border:3px solid #17394c;border-radius:14px 14px 0 0;background:#93d8f3;border-bottom:0}.platform-scenery svg{height:100%;width:100%;display:block}.side-box{position:relative;background:#fff9df;border:2px solid #cba855;border-radius:8px;padding:23px 22px;margin-bottom:20px;box-shadow:0 5px 0 #b8984b25}.platform-scenery+.side-box{border-radius:0 0 8px 8px;border-top:5px solid #e74636}.side-box:after{content:'';position:absolute;left:10px;right:10px;bottom:8px;border-bottom:1px dashed #d6bd78}.side-box h3{font-size:21px;margin-bottom:13px}.side-box p,.side-box li{font-size:12px;line-height:1.75;color:#526976}.side-box ol{padding-left:18px}.side-box .eyebrow{font-size:8px;color:#a25d2f}.code-placeholder{display:flex;align-items:center;justify-content:center;gap:12px;border-block:2px dashed #cfb372;padding:17px 0;margin:19px 0}.code-placeholder span{padding:9px 15px;border:2px solid #17394c;border-radius:5px;font-weight:900;font-size:20px}.code-blue{background:#9cdcfb}.code-gold{background:#ffdf7a}.hidden-discovery{font-size:11px;text-align:center;color:#63736c;line-height:1.7}.hidden-discovery .primary{font-size:12px}.paused-board{min-height:390px;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;background:repeating-linear-gradient(45deg,#fff8df,#fff8df 20px,#fff4cc 20px,#fff4cc 40px);border-radius:10px}.paused-board h2{font-size:26px;margin:15px 0}.paused-board p{font-size:12px;color:var(--muted)}.letter-token{position:absolute;left:2px;bottom:2px;z-index:2;min-width:16px;padding:1px 3px;background:#fff4bd;border:1px solid #a7893e;border-radius:3px;color:#2c4654;font-size:10px;font-weight:900;line-height:1.2;letter-spacing:.3px}.letter-token.collected{background:#c5edb8;border-color:#549452}.name-ticket{margin:0 auto 18px;padding:12px 0;border-top:2px dashed #cfb372;border-bottom:2px dashed #cfb372;text-align:center}.name-ticket .eyebrow{color:#995b27;margin-bottom:9px}.answer-slots{display:flex;flex-wrap:wrap;justify-content:center;gap:12px}.answer-word{display:flex;gap:3px;max-width:100%}.answer-letter{display:grid;place-items:center;font-weight:900}.bank-letter,.board-panel .word-slot{width:33px;height:39px;min-width:0;flex-shrink:1;padding:0;font-size:16px;border:2px solid #bc9345;border-bottom:4px solid #a87c35;border-radius:5px;background:#fffaf0;color:var(--ink);font-weight:900;touch-action:none;user-select:none;box-shadow:0 2px 0 #e4cd91}.bank-letter{cursor:grab}.bank-letter:disabled,.word-slot:disabled{opacity:1;cursor:default}.board-panel .word-slot.letter-correct{position:relative;background:#b9e5ab;color:#18592b;border-color:#459658;border-bottom-color:#24733b;box-shadow:inset 0 0 0 1px #70b77d;cursor:default}.correct-check{position:absolute;right:1px;bottom:0;font-size:9px;line-height:1;color:#1c6b31;font-weight:900}.letter-bank{display:flex;flex-wrap:wrap;justify-content:center;gap:7px;padding:13px 7px 10px;min-height:61px;border:2px dashed #55a3c2;border-radius:8px;margin-top:13px;background:#cfeef8}.bank-locked{font-size:11px;color:#3e687b;padding:8px}.name-ticket>.small-btn{display:block;margin:10px auto;font-size:10px}.collection-note{font-size:11px;text-align:center;color:#566d6e;margin:11px 0 0;font-weight:700;line-height:1.5}.word-selected{outline:3px solid #dd6b2d!important;outline-offset:1px;background:#ffe194!important}.drop-ready{outline:3px solid #238c4d!important;background:#c9ebba!important}.drag-letter{position:fixed;z-index:99;pointer-events:none;transform:translate(-50%,-65%);background:#ffdf80;border:2px solid #a77b31;border-radius:6px;width:40px;height:45px;display:grid;place-items:center;font-weight:900;font-size:20px;box-shadow:0 7px 18px #23453444}.awaiting-pickup{visibility:hidden}.flying-letters{position:fixed;z-index:9;pointer-events:none;background:#ffdf80;border:2px solid #a77b31;border-radius:5px;padding:3px 6px;font-weight:900;font-size:14px;box-shadow:0 3px 12px #1e3d3433;animation:collect-letter .7s ease-in-out forwards}@keyframes collect-letter{0%{transform:translate(0,0) scale(1);opacity:1}55%{opacity:1}100%{transform:translate(var(--flight-x),var(--flight-y)) scale(.8);opacity:0}}.train-overlay{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;z-index:4;overflow:visible;filter:drop-shadow(0 3px 2px #14352b60)}.train-controls{text-align:center;margin-top:13px}.ride-progress{font-size:11px;font-weight:800;margin-right:8px}.provisional .rail-svg{opacity:.45;filter:sepia(.5)}.provisional{border:2px dashed #b5853c}.snapped .rail-svg{animation:snap .25s cubic-bezier(.2,.9,.3,1.3)}@keyframes snap{from{transform:translateY(-9px) rotate(-8deg) scale(.8);opacity:.3}to{transform:translateY(0) rotate(0) scale(1);opacity:1}}.stats{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;margin:25px 0}.stat{background:#fff5cd;border:3px solid #bd9542;border-radius:10px;padding:24px;box-shadow:0 5px 0 #bd954230}.stat strong{display:block;font:36px 'Bree Serif',Georgia,serif;margin-bottom:10px}.stat span{font-size:11px;color:var(--muted);font-weight:800}.section-heading{display:flex;justify-content:space-between;align-items:center;margin:30px 0 16px}.section-heading h2{margin:0}.empty{text-align:center;border:3px dashed #71a5b8;border-radius:16px;background:#fffbe9;padding:45px}.empty p{font-size:13px;color:var(--muted)}footer{max-width:1260px;margin:auto;padding:25px 36px;border-top:3px dashed #90c4d8;display:flex;justify-content:space-between;font-size:10px;font-weight:800;color:#44748a}dialog{border:5px solid #17394c;border-radius:15px;padding:35px;max-width:560px;width:calc(100% - 28px);background:#fff9e6;color:var(--ink);box-shadow:8px 10px 0 #ffd456,0 25px 80px #163f5c50}dialog::backdrop{background:#12384b99;backdrop-filter:blur(3px)}dialog h2{font-size:29px;margin-top:7px}dialog p,dialog li{font-size:13px;line-height:1.8;color:#466170}dialog .close{position:absolute;right:12px;top:8px;font-size:26px;color:#c73d30;font-weight:900}.modal-pieces{display:flex;gap:6px;margin:18px 0}.modal-pieces .piece{width:42px;height:42px}.discovery-icon{font-size:32px}.discovery-source{display:block;font-size:11px;margin:17px 0;color:#166d9a}.discovery-time{border-block:2px dashed #cbb16a;padding:15px 0;margin:20px 0;font-size:12px;line-height:1.8}.revealed-name{letter-spacing:2px;font-weight:900;color:#c43c2c!important}#toast{position:fixed;bottom:24px;left:50%;transform:translateX(-50%);background:#17394c;border:2px solid #fff2bf;color:#fff9e7;padding:12px 19px;border-radius:8px;font-size:12px;z-index:100;opacity:0;pointer-events:none;transition:opacity .2s;max-width:90%;text-align:center}#toast.show{opacity:1}#storage-notice{background:#ffdc78;padding:11px;text-align:center;font-size:12px;font-weight:800}
@media(max-width:1250px){main{margin:0 35px}.world-copy{padding-left:30px}.station-grid{gap:35px 23px}}
@media(max-width:900px){.station-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.world-copy{width:370px}.world-copy h1{font-size:43px}.world-banner{height:390px}.railway-panorama{left:-110px;right:-130px}.world-copy p{font-size:13px}.play-layout{grid-template-columns:minmax(0,1fr) 240px;gap:20px}.board-panel{padding:20px 14px}.piece{width:38px;height:41px;padding:4px}.picker{gap:4px}.side-box{padding:21px 17px}.board-panel .word-slot{width:23px;height:34px;font-size:13px}.answer-word{gap:2px}.game-top h1{font-size:27px}.timer-panel{gap:9px;padding:10px}.time{font-size:23px}.station-map{padding:28px 24px}.topbar{padding-inline:30px}}
@media(max-width:650px){.topbar{padding:17px 16px;gap:8px}.brand{font-size:21px;gap:7px}.brand-icon{width:47px;height:41px}.brand small{font-size:6px;letter-spacing:1.3px;margin-top:6px}nav{gap:6px}nav button{font-size:10px;padding:7px 8px;border-width:1.5px}nav button:first-child{display:none}.help-button{width:28px;height:28px;padding:0}main{margin:0 15px;padding-bottom:33px}.world-banner{height:465px;border-width:5px;border-radius:21px}.world-copy{padding:22px 21px;width:auto;max-width:350px}.world-copy h1{font-size:39px;line-height:1.06;margin-bottom:12px}.express-badge{font-size:8px;padding:6px 9px;margin-bottom:13px;letter-spacing:1.5px}.world-copy p{font-size:12px;line-height:1.5;margin-bottom:14px}.world-copy .primary{font-size:11px;padding:9px 13px}.railway-panorama{top:150px;bottom:-10px;left:-270px;right:-130px}.route-ribbon{right:10px;left:10px;bottom:9px;justify-content:center;font-size:6px;padding:7px 6px;gap:7px;letter-spacing:.7px}.route-ribbon span+span:before{margin-right:7px}.station-map{margin-top:27px;padding:24px 15px;border-radius:19px;border-width:2px}.station-sign{font-size:19px;padding:9px 12px;border-width:3px}.station-map-heading p{font-size:11px;line-height:1.5;margin-top:18px}.themes{gap:5px;margin:17px 0 28px}.theme{font-size:9px;padding:7px 10px}.station-grid{grid-template-columns:1fr;gap:34px;max-width:340px;margin:auto}.station-picture{height:155px}.station-name{font-size:23px}.departures{padding-inline:18px}.departure-ticket{min-height:66px}.ticket-copy b{font-size:13px}.ticket-copy small{font-size:10px}.station-roof{font-size:9px;padding:7px}.map-track{left:43%;right:43%;border-width:12px;top:260px;bottom:180px;transform:rotate(0);border-radius:0}.conductor-note{padding:15px;gap:10px;flex-wrap:wrap;margin-top:29px}.conductor-note div{flex:1;min-width:150px}.conductor-note strong{font-size:12px}.conductor-note p{font-size:10px}.conductor-note .small-btn{margin-left:50px;font-size:11px}.conductor-icon{width:33px;height:33px;font-size:20px}.resume-section{padding:18px 17px;border-width:2px}.resume-section h2{font-size:25px}.resume-section>p{font-size:11px}.history-row{padding:13px;gap:10px}.history-row p{font-size:10px}.history-row h3{font-size:16px}.history-row .primary{padding:8px 12px;font-size:11px}.game-top{margin:8px 0 27px;gap:10px;align-items:stretch}.game-station-sign{padding:10px 13px;border-width:3px;flex:1}.game-top h1{font-size:23px;line-height:1.1}.game-top .eyebrow{font-size:7px;letter-spacing:1px}.back{font-size:10px}.timer-panel{flex-direction:column;justify-content:center;padding:8px;border-width:2px;gap:7px}.time{font-size:21px}.timer-panel .small-btn{font-size:9px;padding:5px 8px}.play-layout{display:flex;flex-direction:column;gap:25px}.board-panel{width:100%;border-width:7px;outline-width:2px;padding:16px 10px 18px;border-radius:9px}.board-nameplate{margin-top:-28px;font-size:7px;letter-spacing:1px;padding:6px 9px;border-width:2px}.board-meta{font-size:8px;gap:5px;margin-bottom:12px}.board{grid-template-columns:16px repeat(5,minmax(0,1fr)) 21px;gap:3px}.clue{font-size:14px;min-height:22px}.cell{padding:3px;border-width:1px;border-radius:3px}.cell.selected{outline-width:3px;outline-offset:-3px}.lock,.pattern{font-size:8px}.endpoint{font-size:6px;right:1px;bottom:1px;padding:1px}.letter-token{font-size:8px;padding:1px 2px;left:1px;bottom:1px}.board-caption{font-size:10px;line-height:1.5;margin:14px 0}.picker{padding:10px 5px;gap:4px;position:sticky;bottom:6px;z-index:5}.piece{width:34px;height:39px;padding:4px;border-width:1px;font-size:17px}.picker-label{font-size:8px;padding:7px 10px;letter-spacing:1px}.picker-label span{font-size:8px}.board-controls{gap:6px;margin-top:15px}.board-controls .small-btn{font-size:9px;padding:6px 7px}.status{font-size:10px;line-height:1.5}.side-panel{width:100%}.platform-scenery{height:155px}.side-box{padding:23px;margin-bottom:17px}.side-box h3{font-size:23px}.side-box p,.side-box li{font-size:12px}.name-ticket{padding:10px 0;margin-bottom:14px}.name-ticket .eyebrow{font-size:8px}.board-panel .word-slot{width:25px;height:34px;font-size:14px}.answer-word{gap:2px}.answer-slots{gap:9px}.bank-letter{width:34px;height:39px}.letter-bank{gap:7px}.collection-note{font-size:10px}.paused-board{min-height:320px}.paused-board h2{font-size:23px}.stats{gap:8px}.stat{padding:15px 10px;border-width:2px}.stat strong{font-size:27px}.stat span{font-size:9px}.section-heading h2{font-size:24px}dialog{padding:26px 22px;border-width:4px}dialog h2{font-size:27px}dialog p,dialog li{font-size:12px}footer{padding:21px 17px;flex-direction:column;gap:8px;text-align:center;font-size:9px}.empty{padding:30px 20px}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}

/* A photographic field card, unlocked only after the puzzle is complete. */
dialog.discovery-modal{--discovery-reading-size:clamp(20px,2vw,22px);max-width:730px;max-height:calc(100dvh - 32px);padding:30px;overflow-y:auto;overscroll-behavior:contain}.discovery-modal>p{font-size:var(--discovery-reading-size);line-height:1.6;color:var(--ink);margin-bottom:1em}.discovery-modal .discovery-scripture{font-family:Georgia,serif;font-style:italic}.discovery-modal .discovery-scripture small{font-size:16px}.discovery-modal .discovery-source{font-size:18px;line-height:1.6;min-height:44px;padding-block:8px;overflow-wrap:anywhere}.discovery-modal .discovery-time{font-size:16px;line-height:1.6}.discovery-modal>h2{font-size:clamp(27px,5vw,37px);margin:8px 30px 20px 0;line-height:1.15}.discovery-modal>.eyebrow{color:#367462}.discovery-modal>.close{position:sticky;top:-20px;float:right;z-index:3;width:34px;height:34px;padding:0;border:2px solid #17394c;border-radius:50%;background:#fff9e6;line-height:26px;box-shadow:0 2px 0 #17394c}.discovery-gallery{background:#fffef5;border:2px solid #17394c;border-radius:12px;padding:9px;box-shadow:0 5px 0 #e3c46d;margin-bottom:25px}.discovery-photo-heading{display:flex;justify-content:space-between;align-items:center;gap:8px;font-size:9px;letter-spacing:1.6px;font-weight:900;padding:4px 4px 11px;color:#276786}.photo-counter{background:#ffdc62;padding:4px 8px;letter-spacing:0;border-radius:10px;white-space:nowrap}.discovery-feature{margin:0}.discovery-photo-stage{position:relative;aspect-ratio:3 / 2;background:#163d4d;border-radius:7px;overflow:hidden;display:grid;place-items:center}.discovery-photo{width:100%;height:100%;object-fit:contain;display:block;position:absolute;inset:0}.discovery-photo[hidden],.photo-unavailable[hidden]{display:none}.discovery-feature figcaption{font-size:var(--discovery-reading-size);font-weight:800;line-height:1.6;padding:11px 7px 6px;color:#244e5a}.discovery-thumbnails{display:flex;flex-wrap:wrap;gap:10px;align-items:center;padding:6px}.discovery-thumbnail{position:relative;flex:0 0 85px;width:85px;height:64px;padding:3px;border:2px solid #a8b6ad;border-radius:7px;background:#fff9e6;overflow:hidden}.discovery-thumbnail img{width:100%;height:100%;object-fit:cover;border-radius:3px;display:block}.discovery-thumbnail[aria-pressed=true]{border:3px solid #167ba4;box-shadow:0 0 0 2px #a6e3f4}.discovery-thumbnail span{position:absolute;bottom:3px;right:3px;background:#fff9e6;color:#17394c;font-size:10px;font-weight:900;border-radius:50%;width:17px;height:17px;display:grid;place-items:center}.discovery-thumbnails>p{font-size:16px;line-height:1.5;font-weight:800;margin:0 0 0 3px;color:#244e5a}.photo-credits{font-size:16px;line-height:1.6;color:#244e5a;padding:7px 7px 2px}.photo-credits summary{cursor:pointer;width:fit-content;max-width:100%;padding-block:7px;min-height:44px}.photo-credits ul{padding-left:15px;margin:8px 0}.photo-credits li{font-size:16px;line-height:1.6;overflow-wrap:anywhere;margin:5px 0}.photo-credits a{color:#166d9a}.discovery-thumbnail:focus-visible,.photo-credits summary:focus-visible{outline:3px solid #dc5437;outline-offset:3px}.discovery-modal .photo-unavailable{font-size:16px;line-height:1.5;color:#fff9e6!important;padding:20px;text-align:center}.discovery-modal .revealed-name{font-size:var(--discovery-reading-size);overflow-wrap:anywhere}
@media(max-width:520px){dialog.discovery-modal{padding:20px 16px;border-width:3px;width:calc(100% - 22px);max-height:calc(100dvh - 22px)}.discovery-modal>.close{top:-12px}.discovery-gallery{padding:6px;margin-bottom:20px}.discovery-photo-heading{font-size:8px;letter-spacing:1px}.discovery-thumbnail{flex-basis:72px;width:72px;height:55px}.discovery-thumbnails{gap:8px;padding:6px 3px}}

/* New stations keep the existing railway-map visual language. */
.station-dinosaur .station-roof{background:#9c6843;border-color:#67422e}.station-moon .station-roof{background:#506ca5;border-color:#30456f;transform:rotate(1deg)}
