:root{--paper:#f6f5ef;--white:#fffefa;--ink:#243d34;--muted:#68746b;--line:#ddded4;--lime:#d6ed91;--soft:#edf0e4;--serif:Georgia,'Times New Roman',serif;font-family:Arial,Helvetica,sans-serif;color:var(--ink);background:var(--paper);font-synthesis:none}
*{box-sizing:border-box}body{margin:0}button,input{font:inherit}button,a,input{-webkit-tap-highlight-color:transparent}button{cursor:pointer}button{color:inherit}button:disabled{cursor:not-allowed;opacity:.43}button:not(:disabled),a,input{touch-action:manipulation}a{color:inherit}button:focus-visible,a:focus-visible,input:focus-visible,label:has(input:focus-visible){outline:3px solid #727f3a;outline-offset:4px}button{border:0}h1,h2,p{margin:0}h1,h2{font-weight:400}button svg{pointer-events:none}[hidden]{display:none!important}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.skip-link{position:fixed;top:-60px;left:16px;z-index:10;padding:14px;background:var(--lime)}.skip-link:focus{top:12px}.page-shell{max-width:1256px;margin:auto;padding:0 48px}.site-header{height:112px;border-bottom:1px solid var(--line);display:flex;align-items:center;gap:28px}.brand{display:flex;gap:11px;align-items:center;text-decoration:none}.brand svg{width:31px;height:40px;fill:none;stroke:var(--ink);stroke-width:1.7}.brand>span{font-weight:800;font-size:19px;line-height:1.03;letter-spacing:1.1px}.brand>span>span{display:block}.header-note{color:var(--muted);font-size:12px;line-height:1.6;border-left:1px solid var(--line);padding-left:26px}.text-button{padding:6px 0;background:none;font-size:12px;font-weight:600;line-height:1.6;text-underline-offset:4px}.text-button:hover{text-decoration:underline}.text-button span{margin-left:9px}.intro{display:flex;align-items:center;justify-content:space-between;padding:52px 0 40px;gap:20px}.eyebrow{font-size:10px;letter-spacing:1.8px;font-weight:700}.intro h1{font-family:var(--serif);font-size:clamp(44px,5.4vw,70px);letter-spacing:-3px;line-height:1.17;margin:13px 0 12px}.intro h1 em{font-weight:400;color:#71836a}.intro-copy{color:var(--muted);font-size:15px;line-height:1.6}.ticket{flex-shrink:0;transform:rotate(3deg);width:226px;background:#eceddf;border:1px solid #dadbca;border-radius:4px;position:relative;padding:16px 20px;margin-right:7px}.ticket:before,.ticket:after{content:'';position:absolute;width:14px;height:14px;background:var(--paper);border:1px solid #dadbca;border-radius:50%;bottom:26px}.ticket:before{left:-8px;border-left-color:var(--paper)}.ticket:after{right:-8px;border-right-color:var(--paper)}.ticket-top{font-size:8px;font-weight:700;letter-spacing:1.2px;display:flex;justify-content:space-between}.ticket-top>span{font-size:14px;line-height:.8}.ticket-value{display:flex;gap:18px;align-items:center;padding:10px 0 12px}.ticket-value b{font-family:var(--serif);font-weight:400;font-size:54px;line-height:1}.ticket-value>span{font-size:11px;line-height:1.6}.ticket-bottom{display:block;border-top:1px dashed #bfc4b3;padding-top:10px;font-size:8px;letter-spacing:1.2px}.game-layout{display:grid;grid-template-columns:minmax(0,1fr) 304px;gap:26px;align-items:start}.game-card{border:1px solid var(--line);border-radius:15px;background:var(--white);padding:27px 30px 20px;min-width:0;box-shadow:0 4px 12px #243d3403}.game-meta{display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid #e8e9df;padding-bottom:20px}.round-meta{display:flex;align-items:center;gap:11px;font-size:10px;letter-spacing:1.05px;font-weight:700}.line-badge{display:grid;place-items:center;background:var(--ink);color:var(--lime);width:23px;height:23px;border-radius:5px;font-size:11px;letter-spacing:0}.round-dots{display:flex;gap:5px;margin-left:2px}.round-dots i{width:5px;height:5px;border-radius:50%;background:#dbdfd4}.round-dots i.current{width:14px;border-radius:5px;background:var(--ink)}.round-dots i.complete{background:#80976d}.score{display:flex;gap:5px;align-items:baseline}.score b{font-size:21px;font-weight:500;font-variant-numeric:tabular-nums}.score span{font-size:11px;color:var(--muted)}.question-heading{padding:25px 0 21px}.question-heading h2{font-size:23px;font-weight:500;letter-spacing:-.65px}.question-heading p{font-size:12px;color:var(--muted);margin-top:9px;line-height:1.6}.player{padding:18px 22px 15px;border-radius:10px;background:var(--ink);color:#e9f0df}.player-top{display:flex;justify-content:space-between;font-size:8px;letter-spacing:1.5px;color:#c1cebb;gap:8px}.audio-tag{color:#c2cdba;font-size:7px;letter-spacing:1px}.playback-row{display:flex;gap:21px;align-items:center;padding:24px 0 21px}.play-button{width:57px;height:57px;flex-shrink:0;background:var(--lime);border-radius:50%;display:grid;place-items:center;transition:transform .15s,background .15s}.play-button:hover{transform:scale(1.05);background:#e3f4b1}.play-button svg{width:23px;height:23px;fill:var(--ink)}.wave-wrap{flex:1;min-width:0;overflow:hidden}.waveform{display:flex;gap:4px;align-items:center;justify-content:space-between;height:56px}.waveform i{width:3px;min-width:2px;border-radius:3px;background:#697e5e;transition:background .1s;flex-shrink:1}.waveform i.lit{background:var(--lime)}.player.is-playing .waveform i{animation:breathe .6s ease-in-out infinite alternate;animation-delay:var(--delay)}@keyframes breathe{to{transform:scaleY(.65)}}.clip-time{font-size:29px;font-weight:400;font-variant-numeric:tabular-nums;letter-spacing:-1px;min-width:39px}.clip-time span{display:block;font-size:9px;letter-spacing:.4px;text-align:center;color:#b5c3ac;margin-top:2px}.player-bottom{display:flex;justify-content:space-between;align-items:center;gap:8px;font-size:10px;color:#b9c9ae}.volume-control{display:flex;gap:8px;align-items:center}.volume-control svg{width:15px;height:15px;stroke:#c6d3bd;stroke-width:1.5;fill:none}.volume-control input{width:58px;height:18px;accent-color:var(--lime);cursor:pointer}.excerpt-steps{display:flex;gap:8px;margin:12px 0 26px}.excerpt-step{flex:1;border-top:3px solid #e6e9df;padding-top:9px;display:flex;justify-content:space-between;gap:3px;font-size:10px;color:#75816f;white-space:nowrap}.excerpt-step.active{border-color:#90a65b;color:var(--ink);font-weight:700}.excerpt-step.used{border-color:#adb895}.excerpt-step span:last-child{font-size:9px;font-weight:400}.guess-label{display:flex;justify-content:space-between;gap:10px;font-size:9px;font-weight:700;letter-spacing:1.3px;margin-bottom:13px}.guess-label span:last-child{font-size:10px;font-weight:400;letter-spacing:0;color:var(--muted)}.choices{border:0;padding:0;margin:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}.choice{display:flex;align-items:center;gap:10px;position:relative;min-height:49px;border:1px solid #dfe2d7;border-radius:7px;padding:11px 13px;cursor:pointer;font-size:12px;line-height:1.4;transition:background .12s,border-color .12s}.choice:hover{background:#f4f6ed;border-color:#abb99c}.choice:has(input:disabled){cursor:default}.choice:has(input:checked){border-color:#637f4f;background:#f0f4e7;box-shadow:inset 0 0 0 1px #637f4f}.choice-key{width:23px;height:23px;border:1px solid #d9ded1;border-radius:4px;display:grid;place-items:center;color:#77816f;font-size:10px;flex-shrink:0;background:#fffefa}.choice.correct{background:#ebf1df;border-color:#809858}.choice.correct .choice-key{background:#658044;color:white;border-color:#658044}.choice.incorrect{background:#fbefeb;border-color:#d4a092}.choice.incorrect .choice-key{background:#b96e58;color:white;border-color:#b96e58}.choice-mark{margin-left:auto;font-size:14px}.game-actions{display:flex;gap:10px;margin-top:20px}.primary-button,.secondary-button{border-radius:7px;min-height:47px;padding:12px 18px;font-size:12px;font-weight:600;display:flex;gap:14px;align-items:center;justify-content:center}.primary-button{background:var(--ink);color:#fffefa;flex:1}.primary-button:not(:disabled):hover{background:#3b5749}.primary-button span{font-size:16px}.secondary-button{border:1px solid #d7ddce;background:transparent;flex:1}.secondary-button:not(:disabled):hover{background:var(--soft)}.secondary-button span{font-weight:400;color:var(--muted);font-size:10px}.game-foot{display:flex;justify-content:space-between;align-items:center;margin-top:10px;gap:6px}.game-foot .text-button{font-size:10px;color:#667460;font-weight:400;text-decoration:underline;text-decoration-color:#b5bdaa}.game-foot>span{font-size:9px;color:#76816f}.route-card{position:relative;border:1px solid #dbdfcd;border-radius:13px;background:#edf0e1;overflow:hidden;padding:24px 26px 90px}.route-top{display:flex;justify-content:space-between;align-items:center}.route-top .eyebrow{font-size:8px;letter-spacing:1.5px}.small-pill{font-size:8px;padding:5px 7px;border:1px solid #cbd2bd;border-radius:4px;letter-spacing:.5px}.route-card h2{font-family:var(--serif);font-size:32px;line-height:1.15;letter-spacing:-.7px;margin-top:22px}.route-card>p{font-size:12px;line-height:1.7;color:#6b7861;margin-top:12px}.route-list{padding:0;margin:26px 0 25px;list-style:none}.route-list li{position:relative;padding:0 0 23px 27px;font-size:12px;line-height:1.4}.route-list li:last-child{padding-bottom:0}.route-list li:not(:last-child):before{content:'';position:absolute;top:8px;bottom:-6px;left:6px;width:1px;background:#a8b393}.route-list li:after{content:'';position:absolute;left:1px;top:2px;width:9px;height:9px;border:2px solid var(--stop-color);background:#edf0e1;border-radius:50%}.learn-button{position:relative;z-index:1;width:100%;border:1px solid #c4cdb6;border-radius:6px;background:#f6f7ed;padding:13px 14px;font-size:11px;font-weight:600;display:flex;justify-content:space-between}.learn-button:disabled{opacity:.6}.learn-button:not(:disabled):hover{background:white}.route-caption{display:block;margin-top:10px;font-size:9px;color:#6d7b63;text-align:center}.rail-art{position:absolute;bottom:-2px;right:0;width:100%;height:90px;stroke:#ced8bb;fill:none;stroke-width:2}.how-strip{display:flex;justify-content:space-between;gap:24px;padding:29px 2px 35px}.how-strip>div{display:flex;gap:12px;align-items:baseline}.how-strip>div>span{font-size:10px;font-family:monospace;color:#7c896d}.how-strip p{font-size:10px;line-height:1.8;color:#738068}.how-strip strong{color:var(--ink);font-weight:500;display:block;font-size:11px}footer{border-top:1px solid var(--line);display:flex;gap:20px;justify-content:space-between;align-items:center;padding:23px 0 26px;font-size:9px;line-height:1.6;color:#77816f}footer .text-button{font-size:9px;color:#65725f;white-space:nowrap}.feedback{margin-top:15px;padding:14px 16px;border-radius:7px;background:#edf2e4;font-size:12px;line-height:1.65}.feedback.missed{background:#f7eee4}.feedback strong{display:block;font-size:14px;font-weight:600}.feedback small{display:block;color:var(--muted);font-size:10px;margin-top:4px}.error{background:#f9eae2;color:#813c2b;border-radius:5px;padding:14px;margin-top:16px;font-size:12px;line-height:1.6}#summary-view{padding:32px 0 6px}#summary-view h2{font-family:var(--serif);font-size:36px;letter-spacing:-1px;margin:16px 0 12px}#summary-copy{font-size:12px;color:var(--muted);line-height:1.7}.final-score{display:flex;gap:12px;align-items:baseline;margin:26px 0 8px}.final-score strong{font-family:var(--serif);font-size:76px;font-weight:400;letter-spacing:-3px}.final-score span{font-size:16px;color:var(--muted)}.best-score{font-size:11px;color:#697e52}.round-results{padding:0;margin:25px 0;list-style:none}.round-results li{display:flex;align-items:center;gap:11px;padding:12px 0;border-top:1px solid var(--line);font-size:12px}.round-results li>span:first-child{font-size:10px;color:var(--muted);min-width:30px}.round-results b{margin-left:auto;font-size:12px;font-weight:500}.round-results .result-detail{font-size:9px;color:var(--muted);margin-left:auto}.round-results b{min-width:46px;text-align:right}#restart-button{width:100%}.summary-note{font-size:10px;color:var(--muted);margin-top:16px;line-height:1.7}#clear-best{font-size:10px;font-weight:400;text-decoration:underline;margin-top:4px}dialog{background:var(--white);color:var(--ink);border:1px solid #d5dbcb;border-radius:15px;width:min(510px,calc(100% - 28px));max-height:85dvh;overflow-y:auto;padding:26px 30px 30px;box-shadow:0 25px 120px #132b3933}dialog::backdrop{background:#182b24a6;backdrop-filter:blur(3px)}.dialog-top{display:flex;align-items:center;justify-content:space-between;gap:10px}.dialog-top .eyebrow{font-size:8px}.close-button{width:36px;height:36px;background:#edf0e4;border-radius:50%;font-size:23px;font-weight:300}dialog h2{font-family:var(--serif);font-size:34px;letter-spacing:-.8px;margin:15px 0 18px}dialog p,dialog li{font-size:13px;line-height:1.8;color:#67745d}dialog p+p{margin-top:14px}dialog ol{padding-left:20px}dialog li{margin-bottom:8px}.practice-list{display:grid;gap:9px;margin:20px 0}.practice-button{display:flex;align-items:center;text-align:left;padding:12px 14px;min-height:62px;gap:14px;border:1px solid #d9dfd0;border-radius:7px;background:transparent}.practice-button:hover,.practice-button[aria-pressed=true]{background:#edf2df;border-color:#a5b68b}.practice-icon{font-size:15px;min-width:18px}.practice-button strong{font-size:12px;font-weight:600;display:block}.practice-button small{font-size:10px;display:block;margin-top:5px;color:#738165}.practice-note{font-size:11px!important}.dialog-note{border-top:1px solid var(--line);padding-top:15px;margin-top:20px!important}#round-heading:focus,#summary-heading:focus,#game:focus{outline:none}
@media(min-width:1400px){.page-shell{padding:0 34px}.intro{padding-top:58px;padding-bottom:44px}.game-layout{grid-template-columns:minmax(0,1fr) 320px;gap:30px}.game-card{padding:28px 34px 21px}.player{padding:20px 24px 17px}.playback-row{padding:26px 0 23px}.choice{min-height:52px}.route-card{padding-top:26px;padding-bottom:100px}.route-list li{padding-bottom:26px}.route-list li:last-child{padding-bottom:0}}
@media(max-width:1000px){.page-shell{padding:0 30px}.game-layout{grid-template-columns:minmax(0,1fr) 260px;gap:18px}.game-card{padding:23px 23px 18px}.route-card{padding-left:21px;padding-right:21px}.header-note{display:none}.ticket{width:195px}.intro h1{font-size:58px}.player{padding:18px 16px 15px}.playback-row{gap:15px}.waveform{gap:3px}.question-heading h2{font-size:21px}.how-strip{gap:18px}.game-foot>span{font-size:8px}.round-dots{display:none}.game-actions{gap:8px}.primary-button,.secondary-button{padding:12px 10px}}
@media(max-width:760px){.page-shell{max-width:590px;padding:0 22px}.site-header{height:85px}.brand svg{width:25px;height:34px}.brand>span{font-size:16px}.intro{padding:32px 0 27px}.intro .eyebrow{font-size:8px}.intro h1{font-size:49px;letter-spacing:-2.4px;margin:13px 0 10px}.intro-copy{font-size:12px;max-width:300px}.ticket{display:none}.game-layout{grid-template-columns:1fr;gap:22px}.game-card{padding:22px 23px 18px}.round-dots{display:flex}.question-heading{padding:23px 0 20px}.question-heading h2{font-size:22px}.question-heading p{font-size:11px;line-height:1.7}.player{padding:18px 20px 15px}.playback-row{gap:21px}.route-card{padding:23px 25px}.route-card h2{font-size:29px}.route-card h2 br{display:none}.route-card>p br{display:none}.route-list{display:grid;grid-template-columns:1fr 1fr;row-gap:16px;margin:23px 0}.route-list li{padding:0 0 0 22px;font-size:11px}.route-list li:before{display:none}.learn-button{max-width:100%}.route-caption{position:relative;z-index:1}.rail-art{display:none}.how-strip{padding:28px 0;gap:15px}.how-strip>div{display:block}.how-strip p{font-size:9px;margin-top:8px}.how-strip strong{font-size:10px}footer{flex-wrap:wrap;gap:10px;font-size:9px;padding:18px 0 24px}footer>span:nth-child(2){order:3;width:100%}.excerpt-steps{margin-bottom:23px}.game-foot>span{font-size:9px}}
@media(max-width:390px){.page-shell{padding:0 15px}.brand{gap:7px}.intro h1{font-size:44px}.game-card{padding:20px 16px 16px}.round-meta{font-size:9px;gap:8px}.question-heading h2{font-size:20px}.player{padding:16px 15px 14px}.playback-row{gap:14px}.play-button{width:50px;height:50px}.audio-tag{font-size:6px}.player-top{font-size:7px}.choice{font-size:11px;gap:8px;padding:10px 9px}.game-foot>span{font-size:8px}.game-foot .text-button{font-size:9px}.guess-label{font-size:8px}.guess-label span:last-child{font-size:9px}.excerpt-step{font-size:9px}.excerpt-step span:last-child{font-size:8px}.route-list{column-gap:8px}dialog{padding:21px 21px 25px}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}

/* Flag buttons stay visible on small screens, with a clear selected state. */
.language-switch{display:flex;gap:5px;margin-left:auto;flex-shrink:0}.language-button{display:grid;place-items:center;width:46px;height:44px;padding:7px;background:transparent;border:1px solid transparent;border-radius:8px}.language-button svg{width:30px;height:20px;border-radius:2px;box-shadow:0 0 0 1px #243d3420}.language-button:hover{background:var(--soft)}.language-button[aria-pressed=true]{background:var(--soft);border-color:#849574;box-shadow:inset 0 0 0 1px #849574}
html[lang=fr] .game-foot{flex-wrap:wrap;row-gap:5px}html[lang=fr] .player-bottom{align-items:flex-start}html[lang=fr] #play-status{line-height:1.6}html[lang=fr] .volume-control{flex-shrink:0}html[lang=fr] .intro h1{font-size:clamp(42px,4.8vw,64px)}
@media(max-width:760px){html[lang=fr] .intro h1{font-size:44px}html[lang=fr] .round-results{font-size:11px}html[lang=fr] .result-detail{max-width:78px}}
@media(max-width:390px){html[lang=fr] .intro h1{font-size:40px}html[lang=fr] .round-dots{display:none}}
