:root{font-family:'Trebuchet MS',Arial,sans-serif;color:#4d465d;background:#dce5dd;font-synthesis:none;--cream:#fff5df;--mint:#69b99d;--ink:#4d465d}*{box-sizing:border-box}body{margin:0}button,a,select{-webkit-tap-highlight-color:transparent;touch-action:manipulation}button,select{font:inherit;color:inherit}button{cursor:pointer}button,a{min-height:44px}button:disabled{opacity:.4;cursor:default}button:focus-visible,a:focus-visible,select:focus-visible,[role=button]:focus-visible{outline:3px solid #167d9b;outline-offset:3px}[hidden]{display:none!important}
.atlas{max-width:1000px;margin:auto;padding:42px 26px 35px}.atlas-heading{position:relative;margin-bottom:28px}.eyebrow{font-size:11px;font-weight:900;letter-spacing:2px;color:#6f8a82}.atlas h1{font-size:clamp(25px,4.5vw,44px);line-height:1.15;margin:18px 0;font-weight:900;letter-spacing:-1px}.atlas h1 em{font-style:normal;color:#398d79}.atlas-heading>p:not(.eyebrow){font-size:14px}.atlas-actions{display:flex;align-items:center;gap:16px;flex-wrap:wrap;margin:23px 0 12px}.atlas-actions a{display:inline-flex;align-items:center;font-size:13px;color:#62576d;font-weight:700}.primary{min-height:46px;border:1px solid #40927d;border-radius:16px;padding:12px 18px;background:linear-gradient(#8dd9b3,#66b69c);box-shadow:0 4px 0 #43877326;color:#224f47;font-weight:900}.muted{color:#72746e}.collection-title{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}.collection-title h2{font-size:20px;margin:0}.collection-title span{font-size:12px;font-weight:700;color:#7d7c80}.map-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.map-card{position:relative;text-align:left;background:#fff6e6;border:2px solid #fff8ed;border-radius:24px;padding:0;overflow:hidden;box-shadow:0 6px 0 #5f706318,0 12px 22px #75807112;transition:transform .15s}.map-card:hover{transform:translateY(-3px)}.card-picture{height:170px;position:relative;overflow:hidden;background:var(--card)}.card-picture::after{content:'';position:absolute;width:190px;height:120px;right:-50px;bottom:-60px;background:#fff1ca44;border-radius:50%}.card-picture>.prop{position:absolute;right:-8px;top:-4px;width:175px;height:175px;filter:drop-shadow(0 7px 4px #4d465d25)}.card-picture>.mini{position:absolute;left:3px;bottom:0;width:46%;max-width:150px;filter:drop-shadow(0 3px 1px #47435a30)}.card-number{position:absolute;left:15px;top:13px;border-radius:12px;padding:6px 9px;background:#fff8eacc;font-size:11px;font-weight:900}.card-copy{padding:15px}.card-copy h3{font-size:17px;margin:0 0 5px;letter-spacing:-.3px}.card-copy p{font-size:12px;line-height:1.35;min-height:32px;margin:0 0 10px;color:#847685}.card-bottom{display:flex;justify-content:space-between;font-size:11px;color:#398572;font-weight:900;gap:6px}.atlas-note{font-size:12px;line-height:1.7;color:#777679;text-align:center;margin:26px 10px 0}
.game{position:relative;isolation:isolate;overflow:hidden;margin:0 auto;width:min(100vw,61.4379dvh);height:min(162.766vw,100dvh);background:#e9dfca;box-shadow:0 0 80px #7e8d7b30}body:has(.game:not([hidden])){background:#d2d9d2;min-height:100dvh;display:grid;place-items:center}.game button{border:1px solid #dbcfb7;border-radius:14px;background:#fff5e1;box-shadow:0 3px 0 #5a557323;font-weight:800}.hud{position:absolute;z-index:2;top:2%;left:4%;right:4%;display:flex;gap:10px;align-items:center;justify-content:space-between}.hud>div{min-width:0;text-align:center}.hud h1{font-size:clamp(12px,3.6vw,19px);line-height:1.2;margin:4px 0 0}.hud span{font-size:10px;letter-spacing:1px;font-weight:800}.hud button{padding:7px 10px;min-width:44px;font-size:12px;white-space:nowrap}.ticket{position:absolute;z-index:2;top:9%;left:6%;right:6%;padding:12px 16px 10px;background:linear-gradient(#fff8e8,#fff0d6);border:2px solid #fff9ef;border-radius:20px;box-shadow:0 5px 0 #a18a6c25,0 10px 20px #6e677815}.ticket-top{display:flex;align-items:center;justify-content:space-between}.ticket-top strong{font-size:clamp(14px,4vw,20px)}.ticket-top button{width:44px;min-height:32px;height:32px;border:0;background:transparent;box-shadow:none;font-size:20px;color:#9b817b}.ticket p{font-size:clamp(11px,2.8vw,14px);line-height:1.4;margin:5px 0 0;color:#806f7b}#cargo-order{display:flex;align-items:center;gap:8px;min-height:30px}.cargo-chip{display:inline-flex;align-items:center;justify-content:center;min-width:35px;height:30px;padding:0 9px;border-radius:10px;background:var(--color);border:2px solid #ffffff90;color:white;text-shadow:0 1px 2px #4e4a6060;font-size:13px;font-weight:900}.cargo-chip.done{background:#689b84!important}.order-arrow{font-size:14px;color:#a39497}
#scene,#rail-scene{position:absolute;inset:0;width:100%;height:100%}.environment{transition:filter .7s}.game[data-light=dusk] .environment{filter:sepia(.2) hue-rotate(320deg) saturate(.9) brightness(.88)}.game[data-light=night] .environment{filter:brightness(.52) saturate(.7) hue-rotate(25deg)}.game[data-light=dusk] .tracks{filter:brightness(.9)}.game[data-light=night] .tracks{filter:brightness(.79)}.game[data-light=night] .hud{color:#fff4df}.game[data-light=night] .stop-shadow{fill:#1e294570}.game[data-light=night] .reachable .halo{stroke:#abffda;filter:drop-shadow(0 0 8px #93f3cb)}.rail.used{opacity:.35}.stop{cursor:pointer;outline:none}.platform{fill:#d1cbb5;stroke:#fff4de;stroke-width:5}.stop-shadow{fill:#5c4c6c40}.halo{fill:none;stroke:transparent;stroke-width:8;stroke-dasharray:12 9}.reachable .platform{fill:#b1e4c5;stroke:#579b82}.reachable .halo{stroke:#53ad8b}.stop:focus-visible .halo{stroke:#0d6c87;stroke-dasharray:none}.stop-name{font-size:29px;font-weight:900;fill:#5c5167;paint-order:stroke;stroke:#fff5db;stroke-width:5px;pointer-events:none}.stop.current .platform{fill:#ffedbb}.stop .hit{pointer-events:all}.moving .stop{pointer-events:none}#train{will-change:transform}.live{position:absolute;z-index:3;left:12%;right:12%;bottom:14%;text-align:center;font-size:clamp(11px,2.9vw,14px);line-height:1.35;padding:8px 12px;background:#fff5e1f2;border:1px solid #e3d0b6;border-radius:16px;pointer-events:none;box-shadow:0 3px 0 #8c738019}.live:empty{display:none}.controls{position:absolute;z-index:2;left:6%;right:6%;bottom:5.7%;display:flex;justify-content:space-between;align-items:center;text-align:center}.controls button{width:58px;height:57px;border-radius:19px;font-size:27px;line-height:1;padding:4px 8px;color:#548b7e}.controls small{display:block;font-size:10px;line-height:1.4}.controls>div{background:#fff4dfe8;border-radius:16px;padding:9px 14px}.controls strong{font-size:18px;display:block}.controls>div small{font-size:10px;color:#8a7489}.skip{position:absolute;z-index:3;bottom:.5%;left:6%;right:6%;display:grid;grid-template-columns:44px 1fr 44px;gap:6px;align-items:center}.skip button{font-size:22px;min-height:36px;height:36px;box-shadow:none}.skip select{min-width:0;width:100%;height:36px;border:0;background:#fff5dfea;border-radius:10px;padding:5px;font-size:11px}.completion{position:absolute;z-index:5;left:8%;right:8%;top:36%;padding:25px 20px;text-align:center;background:linear-gradient(#fff9e9,#f3dfb7);border:3px solid #fff5df;border-radius:28px;box-shadow:0 20px 70px #4c426f60}.completion h2{font-size:24px;margin:12px 0}.completion p{font-size:14px;line-height:1.5}.completion .primary{width:100%;background:linear-gradient(#92d7b5,#65b397);border-color:#5b9e85}.quiet{display:block;min-height:44px;border:0;background:none;box-shadow:none!important;text-align:center;width:100%;font-weight:800;color:#847182;padding:10px}.completion .quiet{border:0;background:none;font-size:12px;margin-top:8px}
dialog{border:2px solid #e4d5b7;border-radius:24px;background:#fff5df;color:var(--ink);padding:24px;max-width:410px;width:calc(100% - 36px);max-height:85dvh;overflow:auto;box-shadow:0 20px 70px #45375d55}dialog::backdrop{background:#3f365a55;backdrop-filter:blur(4px)}dialog h2{font-size:24px;margin:12px 0}dialog p{font-size:14px;line-height:1.6}dialog .primary{width:100%}.brief-control{background:#edead6;padding:12px;border-radius:14px}.variants{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:20px 0}.variants button{min-height:62px;background:#f4e7cc;border:1px solid #decdab;border-radius:13px;text-align:left;padding:10px;font-size:13px;font-weight:900}.variants small{display:block;font-size:10px;color:#8b7884;font-weight:400;margin-top:5px}#fatal{padding:20px;background:#fff1dd;color:#6b4257}
@media(min-width:740px){.map-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}@media(max-width:400px){.atlas{padding:26px 14px}.map-grid{gap:10px}.card-picture{height:130px}.card-picture>.prop{width:140px;height:140px;right:-15px}.card-copy{padding:11px}.card-copy h3{font-size:14px}.card-copy p{font-size:11px;min-height:45px}.card-bottom{font-size:9px}.ticket{padding:7px 12px}.hud{gap:5px}.hud button{padding:6px}.ticket-top button{height:28px;min-height:28px}.cargo-chip{height:25px;min-width:28px;font-size:11px}.controls button{width:49px;height:49px}.controls strong{font-size:15px}.live{padding:6px 9px}.skip select{font-size:10px}}@media(prefers-reduced-motion:reduce){*{transition:none!important}}

#formation{display:block;height:27px;text-align:left}#formation svg{width:118px;height:31px;display:block;margin:-5px auto 0}.controls>div{padding:6px 12px}.controls{bottom:8.5%}.skip button,.skip select{min-height:44px;height:44px}.live{bottom:20%}.ticket-top button{min-height:44px}.game[data-light=night] .stop-name{stroke:#fff5db}
/* Keep cream buttons legible when the night HUD heading becomes light. */
.hud button{color:var(--ink)}

/* Luiza uses the existing help position; the railway remains unobstructed. */
.ticket-top .luiza-help{width:44px;height:44px;min-height:44px;padding:0;border:2px solid #fff4d8;border-radius:50%;overflow:visible;box-shadow:0 2px 0 #85708733;background:#cebbe4}
.luiza-help img{width:100%;height:100%;display:block;object-fit:cover;object-position:50% 25%;border-radius:50%}
.luiza-help span{position:absolute;right:-4px;bottom:-1px;width:19px;height:19px;min-height:0;border-radius:50%;background:#fff0c7;color:#644f6c;font-size:13px;line-height:19px;box-shadow:0 1px 2px #65527355}
.coach-dialog{padding:22px;max-width:410px}
.coach-heading{display:flex;align-items:center;gap:14px}
.coach-heading img{width:84px;height:84px;object-fit:cover;border-radius:24px;border:3px solid #fff9ef;box-shadow:0 4px 0 #c6afd947}
.coach-heading>div{display:grid;gap:4px}
.coach-heading strong{font-size:24px;color:#326f70}
.coach-heading span{font-size:12px;color:#726277}
#coach-page{margin-left:auto;white-space:nowrap;font-size:12px}
.coach-dialog .eyebrow{font-size:10px;line-height:1.5;letter-spacing:.8px}
.coach-dialog h2{font-size:23px;line-height:1.2}
.coach-dialog p{font-size:14px;line-height:1.55}
.coach-dialog .brief-control{font-size:13px;color:#46675c;background:#e3ecd8}
.coach-actions{display:flex;gap:10px;align-items:center}
.coach-actions .quiet{width:auto;flex:0 0 auto}
.coach-actions .primary{flex:1}
#coach-skip{font-size:12px;margin-top:6px;color:#786b7a}
.coach-target .halo,.game[data-light=night] .coach-target .halo{stroke:#ffe286;stroke-width:12;stroke-dasharray:none;filter:drop-shadow(0 0 8px #96721c)}
.coach-target .platform{fill:#ffe3a1;stroke:#9a6d36}
@media(max-width:360px){.coach-dialog{padding:16px;max-height:92dvh}.coach-heading img{width:64px;height:64px;border-radius:18px}.coach-heading{gap:10px}.coach-heading strong{font-size:21px}.coach-dialog h2{font-size:20px}.coach-dialog p{font-size:13px}.coach-dialog .brief-control{font-size:12px}}

.ticket{top:12%;padding:10px 13px}.ticket-top{height:25px;padding-right:36px}.ticket-top button{position:absolute;top:1px;right:5px}.ticket-top strong{font-size:clamp(13px,3.7vw,18px)}.ticket p{margin-top:4px}.hud h1{font-size:clamp(11px,3.3vw,17px)}.live{bottom:auto;top:31%}.controls{bottom:8.5%}#formation{height:20px}#formation svg{height:25px;margin:-6px auto 0}
