button,a,select,summary{-webkit-tap-highlight-color:transparent}.academy-nav{height:calc(60px + env(safe-area-inset-top,0px));min-height:60px;padding-top:env(safe-area-inset-top,0px);padding-inline:max(4px,env(safe-area-inset-left,0px)) max(4px,env(safe-area-inset-right,0px));gap:2px}.academy-nav a{gap:3px;min-width:60px;height:60px;min-height:60px;padding:0 6px}.academy-nav .passport-open{min-width:80px;margin-left:4px}body.academy-game,body.academy-game[data-game=flight]{--academy-nav-height:calc(60px + env(safe-area-inset-top,0px))}@media (width<=600px){.academy-nav a{flex-direction:column;gap:1px}.academy-nav a span{font-size:11px}.academy-nav a:first-child{min-width:60px}.academy-nav .passport-open{flex:1;min-width:60px;margin-left:0;padding:0 5px;font-size:13px}}body[data-game=car] .icon-button,body[data-game=car] .hud-button{min-width:60px;min-height:60px}body[data-game=car] .start-button,body[data-game=car] .mode-selector button{min-height:60px}body[data-game=car] .paint-dot{width:60px!important;height:60px!important}body[data-game=car] .vehicle-choice,body[data-game=car] .map-card{min-height:60px}body[data-game=car] [data-input]{touch-action:none;-webkit-user-select:none;user-select:none;min-width:60px;min-height:60px}body[data-game=car] .overlay-card button{min-height:60px}.auto-throttle{color:#173d47;pointer-events:auto;touch-action:manipulation;background:#fff4c4;border:2px solid #e8be43;border-radius:16px;min-width:112px;min-height:60px;font-size:15px;font-weight:800;position:absolute;bottom:160px;left:18px}.auto-throttle[aria-pressed=true]{color:#fff;background:#227857;border-color:#a4ecbb}.drive-guide{color:#fff;pointer-events:none;background:#173d47e8;border-radius:12px;max-width:540px;margin:0;padding:8px 12px;font-size:14px;line-height:1.5;position:absolute;top:98px;left:18px;right:18px}body[data-game=car] .tilt-toolbar{top:178px}@media (width<=600px){body[data-game=car] .hud-clock{display:none}body[data-game=car] .hud-top{flex-wrap:nowrap;gap:8px}.hud-stars{order:0;align-self:center;margin-left:auto}.hud-route{min-width:0}.drive-guide{font-size:13px;top:100px;left:12px;right:12px}.auto-throttle{bottom:150px;left:12px}body[data-game=car] .tilt-toolbar{top:205px}body[data-game=car] .paint-options{gap:0;display:flex}.vehicle-panel{max-width:calc(100vw - 28px)}}@media (height<=520px) and (orientation:landscape){body[data-game=car] .menu{height:calc(100dvh - 108px)!important}body[data-game=car] .vehicle-panel{width:300px;padding:4px 10px;top:6px}body[data-game=car] .vehicle-heading{display:none}body[data-game=car] .vehicle-choices{margin-top:0}body[data-game=car] .mode-selector{top:62px}body[data-game=car] .intro-copy{display:none}body[data-game=car] .trip-panel{padding-top:4px}body[data-game=car] .map-art{height:36px}body[data-game=car] .map-caption{padding:3px 5px}body[data-game=car] .trip-heading{margin-bottom:3px}body[data-game=car] .departure p{display:none}.drive-guide{max-width:510px;padding:6px 10px;font-size:12px;top:70px;left:18px;right:130px}.auto-throttle{min-width:106px;bottom:16px;left:165px}body[data-game=car] .tilt-toolbar{top:125px}.touch-boost{display:none!important}body[data-game=car] .hud-bottom{bottom:80px}body[data-game=car] .result-card{gap:4px 12px;width:min(620px,100vw - 24px);max-height:calc(100dvh - 72px);padding:10px 18px}body[data-game=car] .result-stats{display:none}body[data-game=car] .result-card button{margin:0}body[data-game=car] .finish-stars{margin:2px 0}}body.academy-game[data-game=train] #app{min-height:0;height:calc(100dvh - var(--academy-nav-height));flex-direction:column;display:flex}body.academy-game[data-game=train] .masthead{height:64px;min-height:64px;padding:2px 12px}body.academy-game[data-game=train] .masthead .icon-button{width:60px;min-width:60px;min-height:60px}body.academy-game[data-game=train] .scene{flex:1;height:auto;min-height:140px;max-height:none}body.academy-game[data-game=train] .child-console>button{border-radius:8px;min-height:64px;transform:none}body.academy-game[data-game=train] .child-console{flex-shrink:0}body.academy-game[data-game=train] #pause-overlay button,body.academy-game[data-game=train] .result-actions button{min-height:60px}body.academy-game[data-game=train] .app-footer{display:none}body.academy-game[data-game=train] .brand h1{font-size:19px}body.academy-game[data-game=train] #result-dialog{max-height:calc(100dvh - 20px)}@media (height<=520px) and (orientation:landscape){body.academy-game[data-game=train] .masthead{height:60px;min-height:60px}body.academy-game[data-game=train] .scene{min-height:80px}body.academy-game[data-game=train] .coach{min-height:38px;padding:4px 14px}body.academy-game[data-game=train] .child-console{gap:4px 8px;padding:5px 12px}body.academy-game[data-game=train] .child-console>button{min-height:60px}body.academy-game[data-game=train] .child-note{display:none}body.academy-game[data-game=train] #result-dialog{width:min(650px,100vw - 24px);padding:10px 18px}#result-dialog:has(.journey-result) .result-score{display:none}#result-dialog:has(.journey-result) #result-feedback{display:none}#result-dialog:has(.journey-result) #stop-results{display:none}#result-dialog .journey-result{margin-top:4px}}.flight-top .top-actions button{min-width:60px;min-height:60px}.flight-top .top-actions{gap:4px}.telemetry button{min-width:60px;min-height:44px}.result-card button{min-height:60px}.lesson-card{min-height:64px}.select-row select,body[data-game=flight] .dispatch-card .primary{min-height:60px}@media (width<=600px){.flight-top>div:first-child{max-width:100px}.flight-top strong{white-space:normal}.flight-top #map-name,.flight-top #view,.flight-top #mute{display:none}.flight-top .top-actions{margin-left:auto}}@media (height<=520px) and (orientation:landscape){.flight-top{min-height:64px}.preschool .telemetry{flex-direction:row}.preschool .flight-status{display:none}.preschool .child-panel{margin-top:auto;margin-bottom:0}.preschool .child-panel .child-action,.preschool .child-panel>button:not(.child-action){min-height:60px}.preschool .flight-controls{gap:4px;padding-top:4px}.preschool .telemetry{flex-shrink:0}.preschool .telemetry button{min-height:44px}.result-card:has(.journey-result){grid-template-columns:1fr 1fr;gap:4px 10px;width:min(620px,100vw - 28px);padding:12px 18px;display:grid}.result-card:has(.journey-result)>*{grid-column:1/-1}.result-card:has(.journey-result) h2{margin:2px 0;font-size:20px}:is(.result-card:has(.journey-result) #result-tag,.result-card:has(.journey-result) #result-text,.result-card:has(.journey-result) #result-data){display:none}.result-card:has(.journey-result) #replay{grid-column:1}.result-card:has(.journey-result) #home{grid-column:2}.result-card:has(.journey-result) button{margin:0}}@media (prefers-reduced-motion:reduce){body[data-game=car] .start-button,.result-stars i,.finish-stars i,.star-shelf.bump,.hud-stars.bump{animation:none!important}}.lesson-pages{justify-content:space-between;align-items:center;gap:8px;margin:8px 0;display:flex}.lesson-pages button{min-width:100px;min-height:60px;padding:0 10px;font-size:14px}.lesson-pages span{white-space:nowrap;font-size:13px}body[data-game=flight] .dispatch-card .primary{margin:0;position:static}.lesson-card[hidden]{display:none!important}@media (width<=720px) and (height>=521px){body[data-game=flight] .brand{height:190px}.dispatch-card{padding:14px}.dispatch-title{margin-bottom:8px}.dispatch-title .tag{display:none}.parent-settings{margin:4px 0}.parent-settings>summary{min-height:44px}.dispatch-card>.learning-note{margin:8px 0 0}.lesson-grid{grid-template-columns:1fr 1fr}.select-row{margin:8px 0 10px}.select-row select{min-height:60px}.model-badge{bottom:10px}}@media (width<=600px){body[data-game=car] .paint-options{margin:0 0 4px;position:static}body[data-game=car] .vehicle-heading{display:none}body[data-game=car] .vehicle-panel{padding-top:8px;padding-bottom:8px}}@media (height<=520px) and (orientation:landscape){body[data-game=car] #pause-overlay .overlay-card{grid-template-columns:1fr 1fr;gap:8px;width:min(620px,100vw - 24px);padding:12px 18px;display:grid}body[data-game=car] #pause-overlay .overlay-card>*{grid-column:1/-1}body[data-game=car] #pause-overlay h2{margin:0}body[data-game=car] #pause-overlay .small-label{display:none}body[data-game=car] #pause-overlay .overlay-card>p{margin:0;font-size:13px}body[data-game=car] #restart-button{grid-column:1}body[data-game=car] #back-button{grid-column:2;margin:0}body[data-game=flight] .menu{grid-template-columns:minmax(0,1fr) minmax(300px,44%);gap:16px;padding:8px 14px;position:relative}body[data-game=flight] .dispatch-card{padding:8px 10px}.dispatch-title{display:none}.dispatch-card .select-row{margin:0 0 6px}.dispatch-card .select-row label{font-size:11px}.dispatch-card .select-row select{margin-top:3px}.dispatch-card legend{display:none}.dispatch-card .lesson-grid{grid-template-columns:repeat(3,1fr);gap:5px}.dispatch-card .lesson-card{flex-direction:column;justify-content:center;gap:4px;padding:5px}.dispatch-card .lesson-number{font-size:18px;line-height:1}.dispatch-card .lesson-card strong{text-align:center;font-size:12px}.lesson-pages{margin:5px 0}.lesson-pages button{min-width:90px;min-height:60px}.dispatch-card>.learning-note{display:none}.dispatch-card>.parent-settings{z-index:4;background:#153d4be8;border-radius:10px;width:calc(52% - 30px);margin:0;padding:0 8px;position:absolute;bottom:2px;left:14px}.parent-settings>summary{min-height:44px}.parent-settings[open]{max-height:calc(100% - 10px);overflow:auto}body[data-game=flight] .result-card{grid-template-columns:1fr 1fr;gap:6px 10px;width:min(620px,100vw - 28px);padding:12px 18px;display:grid}body[data-game=flight] .result-card>*{grid-column:1/-1}body[data-game=flight] .result-card h2{margin:0;font-size:21px}body[data-game=flight] #result-tag,body[data-game=flight] #result-data{display:none}body[data-game=flight] #result-text{margin:2px 0;font-size:13px}body[data-game=flight] .result-card button{margin:0}body[data-game=flight] #replay{grid-column:1}body[data-game=flight] #home{grid-column:2}}@media (height<=350px) and (orientation:landscape){.dispatch-card .select-row select,.lesson-pages button{min-height:44px}.dispatch-card .lesson-card,body[data-game=flight] .dispatch-card .primary{min-height:60px}.dispatch-card .select-row label{font-size:10px}}@media (width>=901px){body[data-game=car] .vehicle-panel{width:340px;padding:14px 18px}.vehicle-heading{min-height:50px}}@media (width>=901px) and (height<=700px){body[data-game=car]{min-height:0}body[data-game=car] .menu{height:calc(100dvh - 140px);min-height:0}body[data-game=car] .trip-panel{padding:12px 18px;bottom:12px}body[data-game=car] .map-art{height:62px}body[data-game=car] .map-card{min-width:0}.departure p{display:none}body[data-game=car] .vehicle-panel{top:2px}.menu-footer{display:none}body[data-game=car] .intro h1{margin-top:6px;font-size:40px}.intro-copy{margin:4px 0}.keyboard-tip{display:none}}body[data-game=flight] #menu .brand{min-height:180px}@media (width>=721px) and (height>=521px){body[data-game=flight] #menu .brand{height:calc(100dvh - 140px)}}@media (height<=520px) and (orientation:landscape){body[data-game=flight] #menu .brand{height:calc(100dvh - 122px);min-height:150px}}body[data-game=car] #finish-overlay .result-card button{min-height:60px}@media (width<=600px) and (height<=700px) and (orientation:portrait){body[data-game=train] #result-dialog:has(.journey-result){padding:12px 16px}body[data-game=train] #result-dialog:has(.journey-result) .result-score{display:none}body[data-game=train] #result-dialog:has(.journey-result) #stop-results{display:none}body[data-game=train] #result-dialog:has(.journey-result) #result-feedback{display:none}body[data-game=car] .result-card:has(.journey-result){width:calc(100vw - 24px);max-height:calc(100dvh - 80px);padding:12px 16px}body[data-game=car] .result-card:has(.journey-result) .result-stats{display:none}body[data-game=car] .result-card:has(.journey-result) #best-record{display:none}body[data-game=car] .result-card:has(.journey-result) #finish-route{display:none}body[data-game=car] .result-card:has(.journey-result) #finish-eyebrow{display:none}body[data-game=car] .result-card:has(.journey-result) h2{margin:3px 0;font-size:20px}body[data-game=car] .result-card:has(.journey-result) .finish-stars{margin:4px 0}body[data-game=car] .result-card:has(.journey-result) .journey-result p{margin:4px 0;font-size:12px}}body.academy-game[data-game=train] #result-dialog #replay{min-height:60px}@media (height<=700px){body[data-game=car] .result-card:has(.journey-result){padding:12px 18px}body[data-game=car] .result-card:has(.journey-result) .result-stats{display:none}body[data-game=car] .result-card:has(.journey-result) #best-record{display:none}body[data-game=car] .result-card:has(.journey-result) #finish-route{display:none}body[data-game=car] .result-card:has(.journey-result) #finish-eyebrow{display:none}body[data-game=car] .result-card:has(.journey-result) h2{margin:4px 0;font-size:20px}body[data-game=car] .result-card:has(.journey-result) .finish-stars{margin:4px 0}body[data-game=flight] .result-card:has(.journey-result) #result-data{display:none}}@media (height<=350px) and (orientation:landscape){body[data-game=car] #finish-overlay{padding:4px}body[data-game=car] .result-card:has(.journey-result){gap:2px 8px;padding:6px 12px}body[data-game=car] .result-card:has(.journey-result) .journey-result p{margin:2px 0;font-size:11px;line-height:1.25}body[data-game=car] .result-card:has(.journey-result) .finish-stars .rating i{font-size:22px}body.academy-game[data-game=train] .scene{min-height:24px}body.academy-game[data-game=train] .coach{min-height:30px;padding:2px 12px}body.academy-game[data-game=train] .coach p{font-size:11px;line-height:1.3}body.academy-game[data-game=train] .child-console{gap:4px 8px;padding:4px 10px}}@media (width>=901px) and (height<=700px){body[data-game=car] .vehicle-heading{display:none}body[data-game=car] .vehicle-choices{grid-template-columns:repeat(4,minmax(0,1fr))}.vehicle-choice svg{height:30px}.vehicle-choice span{font-size:9px}body[data-game=car] .intro{top:10px}body[data-game=car] .intro h1{margin:0;font-size:36px;line-height:1.2}.intro .intro-copy,.intro .route-note,.intro .route-description,.intro .eyebrow{display:none}.intro .mode-selector{margin-top:8px}}@media (width>=721px) and (height>=521px) and (height<=700px){body[data-game=flight] .menu{padding:12px 24px}.dispatch-card{padding:14px}.dispatch-title{margin-bottom:6px}.dispatch-card .select-row{margin:8px 0}.dispatch-card .parent-settings{margin:4px 0}.dispatch-card .parent-settings>summary{min-height:44px}.dispatch-card>.learning-note{display:none}.dispatch-card .lesson-card{min-height:64px}.dispatch-card .lesson-card small{display:none}}@media (width<=720px) and (height<=740px) and (orientation:portrait){body[data-game=flight] #menu .brand{height:120px;min-height:120px}.dispatch-card .lesson-grid{grid-template-columns:repeat(3,1fr);gap:5px}.dispatch-card .lesson-card{flex-direction:column;justify-content:center;gap:3px;padding:4px}.dispatch-card .lesson-card strong{font-size:12px}.dispatch-card .lesson-number{font-size:19px}.dispatch-card>.learning-note,.brand .model-badge{display:none}}body[data-game=car] .map-caption strong{letter-spacing:0;white-space:normal;font-size:12px;line-height:1.4}body[data-game=car] .vehicle-choice span{font-size:12px;line-height:1.4}@media (width<=600px) and (height>=521px){body[data-game=car] .vehicle-panel{bottom:340px}}@media (height<=520px) and (orientation:landscape){body[data-game=car] .map-caption strong{font-size:12px}body[data-game=car] .map-card{min-height:64px}}
