@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Manrope:wght@400;500;600;700;800&display=swap');
:root{--green:#173f35;--green-light:#e4ece5;--ink:#202c28;--muted:#6b746e;--paper:#f6f5ef;--line:#dcded5;--orange:#e8a36f}*{box-sizing:border-box}body{margin:0;background:var(--paper);color:var(--ink);font-family:'DM Sans',Arial,sans-serif;font-size:15px}button,input,select{font:inherit}button,a,input,select{-webkit-tap-highlight-color:transparent}button,a{touch-action:manipulation}button{cursor:pointer}button:disabled{cursor:default;opacity:.55}button:focus-visible,a:focus-visible{outline:3px solid #ce8954;outline-offset:4px}input:focus,select:focus{outline:2px solid var(--green);outline-offset:2px}button{color:inherit}a{color:inherit}button, input, select{border-radius:9px}[hidden]{display:none!important}.topbar{height:94px;max-width:1256px;margin:auto;display:flex;align-items:center;justify-content:space-between;padding:0 36px;border-bottom:1px solid var(--line)}.brand{display:flex;align-items:center;text-decoration:none;font:800 24px Manrope,Arial,sans-serif;letter-spacing:-1px;gap:10px}.brand-icon{background:var(--green);color:white;width:34px;height:34px;border-radius:8px;display:grid;place-items:center;font-size:27px;font-weight:400}.brand-dot{color:#64916e;margin-left:-9px}.text-button{border:0;background:none;font-size:13px;font-weight:600;padding:8px 0}.text-button:hover{text-decoration:underline}main{max-width:1184px;margin:auto;padding:0 0 26px}.intro{padding:55px 0 30px}.eyebrow{letter-spacing:2px;font-size:11px;font-weight:700;color:var(--green);margin:0 0 16px}h1{font-family:Manrope,Arial,sans-serif;font-size:66px;line-height:1.09;letter-spacing:-3.5px;margin:0;font-weight:800}h1 em{font-style:normal;color:#61816c}.intro-copy{color:var(--muted);font-size:17px;line-height:1.65;margin:20px 0 0}.setup-layout{display:grid;grid-template-columns:1.2fr 1fr;gap:70px;align-items:start}.setup-card,.route-card,.score-card{background:#fff;border:1px solid var(--line);border-radius:16px;padding:28px}.section-heading{display:flex;align-items:center;gap:12px;margin-bottom:22px}.small-number{font-family:Manrope,Arial,sans-serif;color:#7e8a7d;font-size:11px;border:1px solid var(--line);border-radius:50%;width:25px;height:25px;display:grid;place-items:center;flex-shrink:0}h2{font:700 19px Manrope,Arial,sans-serif;margin:0;letter-spacing:-.4px}.modes{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-bottom:24px}.mode{text-align:left;border:1px solid var(--line);padding:17px;background:#fff;display:flex;flex-direction:column;position:relative;gap:7px;min-height:132px}.mode.selected{background:#eef3ed;border:1.5px solid var(--green)}.mode strong{font-size:15px}.mode>span:not(.mode-icon):not(.radio-dot){font-size:12px;color:var(--muted);line-height:1.4}.mode-icon{font-size:24px;line-height:1.2;margin-bottom:6px;color:var(--green)}.radio-dot{position:absolute;right:14px;top:16px;width:14px;height:14px;border:1px solid #a6afa5;border-radius:50%}.selected .radio-dot{border:4px solid var(--green);background:white}label{display:block;font-size:12px;font-weight:700;margin-bottom:9px}input,select{background:white;border:1px solid #d4d9d1;min-height:48px;padding:11px 13px;color:var(--ink);width:100%}.field-note{font-size:11px;line-height:1.6;color:var(--muted);margin:8px 0 0}.difficulty-row{margin-top:20px;display:flex;align-items:center;gap:20px}.difficulty-row label{flex:1;margin:0;white-space:nowrap}.difficulty-row select{width:60%;min-height:42px;font-size:13px}.primary{display:flex;align-items:center;justify-content:space-between;background:var(--green);color:white;border:0;padding:15px 20px;font-weight:600;min-height:51px;width:100%;gap:16px}.primary:hover{background:#245747}.primary>span{font-size:21px;line-height:1}.error{font-size:13px;color:#a3322b;margin:13px 0}.error:empty{margin:15px 0 0}.setup-card .primary{margin-top:18px}.example-button{display:block;background:none;border:0;font-size:11px;text-decoration:underline;text-underline-offset:4px;color:var(--muted);margin:16px auto 0;line-height:1.6}.intro-aside{padding-top:20px}.mini-board{background:var(--green);color:#fff;border-radius:17px;transform:rotate(2deg);padding:28px 32px;position:relative;box-shadow:0 12px 25px #173f3510}.board-top,.board-bottom{display:flex;justify-content:space-between;font-size:9px;letter-spacing:1.4px;color:#c5d5c9;font-weight:600}.live-dot{width:7px;height:7px;background:#cbddb4;border-radius:50%}.mini-board>p{font:600 29px/1.3 Manrope,Arial,sans-serif;letter-spacing:-.6px;margin:26px 0 24px}.illustrated-route{display:grid;grid-template-columns:16px 1fr;gap:28px 18px;margin:30px 0 36px;position:relative;align-items:center}.illustrated-route:before{content:'';position:absolute;width:2px;background:#afc5a5;left:7px;top:4px;bottom:4px}.illustrated-route i{width:16px;height:16px;border:3px solid #c9dbbc;background:var(--green);border-radius:50%;z-index:1}.illustrated-route i:last-of-type{background:#c9dbbc}.illustrated-route span{font-size:10px;letter-spacing:1.5px}.board-bottom{border-top:1px solid #ffffff28;padding-top:20px;font-size:8px;gap:15px}.little-note{display:flex;gap:15px;padding:26px 18px;color:var(--muted);font-size:13px;line-height:1.7}.little-note>span{font-size:30px;color:var(--green)}.little-note p{margin:0}.random-note{padding:25px 16px;line-height:1.7;background:var(--paper);border-radius:9px;font-size:14px}.game-heading{display:flex;justify-content:space-between;align-items:center;padding:45px 0 30px}.game-heading h1{font-size:46px;letter-spacing:-2px}.game-grid{display:grid;grid-template-columns:minmax(0,1fr) 310px;gap:32px}.ticket{background:var(--green);color:#fff;border-radius:15px;overflow:hidden;margin-bottom:24px}.ticket-head,.ticket-foot{display:flex;justify-content:space-between;gap:12px;font-size:9px;letter-spacing:1.3px;color:#c8d8cd;padding:18px 25px}.ticket-head{border-bottom:1px solid #ffffff20}.ticket-foot{border-top:1px dashed #ffffff35;font-size:8px}.ticket-route{display:grid;grid-template-columns:1fr 30px 1fr;gap:22px;padding:27px 25px 34px;align-items:center}.ticket-label{font-size:9px;letter-spacing:1.7px;color:#bdcfbf}.ticket-route h2{font-size:26px;line-height:1.25;color:#fff;margin-top:9px}.ticket-arrow{font-size:30px;color:#a7c6ab}.muted{color:var(--muted);font-size:13px;line-height:1.65}.route-card>.muted{margin-top:-8px}.badge{font-size:10px;background:var(--green-light);color:var(--green);padding:6px 9px;border-radius:20px;margin-left:auto;white-space:nowrap}.route-builder{padding:12px 0 0;list-style:none;margin:22px 0 10px}.route-step{position:relative;padding:0 0 27px 32px}.route-step:before{content:'';position:absolute;left:5px;top:8px;width:2px;height:100%;background:#c4cec1}.route-step:after{content:'';position:absolute;left:0;top:7px;width:12px;height:12px;border:2px solid var(--green);background:white;border-radius:50%}.route-step:last-child:before{display:none}.route-step:last-child:after{background:var(--green)}.route-step small{display:block;font-size:9px;letter-spacing:1.2px;color:var(--muted);font-weight:600;margin-bottom:6px}.route-step strong{font-size:16px;font-weight:600}.change-row{display:flex;gap:8px;align-items:center}.change-row input{min-width:0;flex:1}.remove{border:1px solid var(--line);background:white;width:40px;height:44px;flex-shrink:0;font-size:21px;color:var(--muted)}.add-button{border:1px dashed #bdcbbd;background:#f8faf7;color:var(--green);padding:12px;width:100%;font-size:13px;font-weight:600}.actions{display:flex;gap:12px;margin-top:22px}.actions .primary{flex:1}.secondary{background:white;border:1px solid var(--line);padding:12px 17px;font-size:13px}.hint{background:#f9f2dd;border-radius:8px;padding:14px;font-size:13px;line-height:1.6}.reveal{display:block;margin:16px auto 0;color:var(--muted);font-size:11px}.score-card{padding:26px}.big-score{padding:4px 0 25px;display:flex;flex-direction:column;gap:4px}.big-score>span{font:700 64px/1.1 Manrope,Arial,sans-serif;letter-spacing:-3px;color:var(--green)}.big-score small{font-size:8px;letter-spacing:1.4px;color:var(--muted)}.stat-grid{border-top:1px solid var(--line);padding-top:20px;display:grid;grid-template-columns:1fr 1fr;gap:16px}.stat-grid strong{display:block;font:700 25px Manrope,Arial,sans-serif;color:var(--green)}.stat-grid span{font-size:10px;color:var(--muted)}.score-card .muted{font-size:11px;margin:23px 0 0}.guide-card{padding:28px 18px 18px}.guide-icon{font-size:35px;color:#7d9279}.guide-card h3{font:700 18px Manrope,Arial,sans-serif;margin:12px 0}.guide-card p{font-size:13px;line-height:1.7;color:var(--muted)}.rule{font-size:12px;padding:9px 0}.rule>span{font-size:10px;color:#84927d;display:inline-block;width:30px}.scope-note{border-top:1px solid var(--line);padding:19px 18px;color:var(--muted);font-size:11px;line-height:1.7}.result-card{background:#fff;border:1px solid var(--line);border-radius:15px;padding:25px;margin-top:22px;scroll-margin-top:20px}.result-card.good{border-color:#8eaf91;background:#f1f7f0}.result-card.bad{border-color:#d6b0a4;background:#fff9f5}.result-card h2{font-size:23px}.result-card p{font-size:13px;line-height:1.7}.result-title{display:flex;justify-content:space-between;align-items:center;gap:15px}.result-title span{font-size:12px;font-weight:700;white-space:nowrap}.result-route{list-style:none;padding:0;margin:18px 0}.result-route li{padding:11px 0;border-top:1px solid #d7dfd5;font-size:13px;line-height:1.5}.result-route small{display:block;color:var(--muted);font-size:11px;margin-top:3px}.result-card h3{font-size:12px;text-transform:uppercase;letter-spacing:1px;margin-top:25px}.next-button{margin-top:16px}footer{border-top:1px solid var(--line);margin-top:55px;padding-top:22px;display:flex;align-items:center;justify-content:space-between;font-size:9px;letter-spacing:1.3px;color:var(--muted)}footer>div{display:flex;gap:24px;align-items:center}footer a,footer button{font-size:11px;letter-spacing:0}dialog{border:1px solid var(--line);border-radius:18px;padding:30px;max-width:680px;width:calc(100% - 32px);max-height:85vh;color:var(--ink);background:var(--paper)}dialog::backdrop{background:#10271fd0}.dialog-top{display:flex;justify-content:space-between;align-items:center;gap:20px;margin-bottom:20px}.dialog-top h2{font-size:24px}.close{border:0;background:#e2e8dd;width:34px;height:34px;font-size:24px}.dialog-body,p{line-height:1.6}#dialogBody{font-size:14px;line-height:1.7}#dialogBody details{border-top:1px solid var(--line);padding:13px 0}#dialogBody summary{cursor:pointer;font-weight:600}#dialogBody a{color:var(--green)}#dialogBody li{margin:8px 0}#dialogBody .network-list{font-size:12px}#dialogBody .source-links{display:flex;flex-wrap:wrap;gap:12px}#dialogBody .source-links a{background:#e5ecdf;padding:6px 12px;border-radius:6px;font-size:12px}@media(min-width:1000px){#setup{position:relative}.intro{width:52%}.intro-aside{margin-top:0;padding-top:0}.mini-board{min-height:375px}.setup-layout{gap:80px}.intro-aside{padding-top:0}}@media(max-width:1250px){main{padding-left:36px;padding-right:36px}.setup-layout{gap:45px}}@media(max-width:900px){h1{font-size:55px}.setup-layout{gap:25px;grid-template-columns:1.2fr 1fr}.mini-board{padding:25px}.mini-board>p{font-size:23px}.game-grid{grid-template-columns:minmax(0,1fr) 245px;gap:20px}.score-card{padding:20px}.route-card{padding:22px}}@media(max-width:720px){.topbar{height:76px;padding:0 20px}.brand{font-size:21px}main{padding:0 20px 25px}.intro{padding:36px 0 25px}h1{font-size:48px;letter-spacing:-2.4px}.intro-copy{font-size:15px}.setup-layout{grid-template-columns:1fr;gap:25px}.setup-card{padding:21px}.intro-aside{padding:0 8px}.mini-board{transform:none}.mini-board>p{font-size:24px}.illustrated-route{margin:22px 0}.board-bottom{padding-top:15px}.little-note{padding:20px 0}.game-heading{padding:30px 0 22px;display:block}.game-heading h1{font-size:38px}.game-heading>.text-button{margin-top:15px}.game-grid{display:flex;flex-direction:column}.game-aside{display:contents}.score-card{order:-1;padding:17px;display:grid;grid-template-columns:1fr 1fr;gap:8px 20px}.score-card>.eyebrow{display:none}.big-score{padding:0;gap:5px}.big-score>span{font-size:36px}.big-score small{font-size:7px}.stat-grid{border:0;padding:0;align-items:center;gap:10px}.stat-grid strong{font-size:23px}.stat-grid span{font-size:9px}.score-card .muted{display:none}.guide-card{display:none}.scope-note{margin:0;padding:12px 0}.ticket-route{gap:12px;padding:22px 19px}.ticket-route h2{font-size:21px}.ticket-head,.ticket-foot{padding:16px 19px}.ticket-foot{font-size:7px;letter-spacing:.6px}.route-card{padding:20px}.section-heading{gap:8px;flex-wrap:wrap}.section-heading h2{font-size:18px}.actions{gap:8px}.actions .primary{font-size:13px;padding:14px}.secondary{font-size:12px;padding:10px}.route-step{padding-left:25px}.change-row input{font-size:14px}footer{margin-top:28px;align-items:flex-start;gap:12px}footer>span{font-size:8px;padding-top:8px}footer>div{flex-direction:column;gap:4px;align-items:flex-end}.difficulty-row{gap:10px}.difficulty-row select{width:61%;font-size:12px}.badge{font-size:9px}.result-title{align-items:flex-start}.result-title h2{font-size:21px}}@media(prefers-reduced-motion:no-preference){button{transition:background .15s,border-color .15s}.result-card{animation:appear .25s ease}@keyframes appear{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}}

.station-picker{position:relative;min-width:0;width:100%}.change-row .station-picker{flex:1}.station-picker input{padding-right:48px;font-size:16px}.station-toggle{position:absolute;right:2px;top:2px;width:44px;height:44px;background:transparent;border:0;font-size:24px;color:var(--green)}.station-menu{position:absolute;top:calc(100% + 6px);left:0;right:0;z-index:30;background:#fff;border:1px solid #b7c6b8;border-radius:10px;box-shadow:0 8px 24px #173f3526;overflow:hidden}.station-status{padding:10px 12px;font-size:11px;line-height:1.5;color:var(--muted);background:#f2f6f0;border-bottom:1px solid var(--line)}.station-options{max-height:260px;max-height:min(260px,40dvh);overflow-y:auto;overscroll-behavior:contain;position:relative}.station-option{display:flex;justify-content:space-between;align-items:center;gap:12px;width:100%;min-height:46px;text-align:left;padding:11px 12px;border:0;border-radius:0;background:#fff;font-size:14px}.station-option+.station-option{border-top:1px solid #edf0e9}.station-option[aria-selected="true"]{background:var(--green-light);color:var(--green)}.station-code{font-size:12px;letter-spacing:1px;font-weight:700;flex-shrink:0;color:var(--green)}@media(hover:hover){.station-option:hover{background:#eef3ed}}

@media(max-width:720px),(pointer:coarse){
.station-picker input,.change-row .station-picker input{font-size:16px;min-height:52px}
.station-toggle{height:48px;width:46px}
.station-menu{position:relative;top:auto;margin-top:6px}
.station-options{max-height:min(235px,32dvh);overscroll-behavior-y:auto}
.station-option{min-height:52px;font-size:16px;padding:12px}
.station-code{background:#eef3ed;padding:4px 7px;border-radius:5px}
.change-row:has(.station-menu:not([hidden])){align-items:flex-start}
}

#setup{max-width:640px;margin-inline:auto}#setup .intro{width:100%}#setup .setup-layout{display:block}@media(max-width:380px){.brand{font-size:18px;gap:6px}.topbar{padding-inline:14px}}
