:root{--bg:#ffe0d6;--text:#3a1d16;--text-soft:#84584d;--panel:#ffffff8c;--panel-strong:#ffffffe0;--panel-line:#78321e29;--track:#78321e29;--stop:#fff4ef;--card-ink:#3a1d16;--card-soft:#84584d;--card-tint:#fff4ef;--edge:#f5b3a6;--accent:#6f5cf1;--accent-deep:#5a48d6;--accent-ink:#fff;--reward:#b23a2b;--reward-drop:#ff6f61;--focus:#5a48d6;--ship-turn:0deg;--locked-filter:brightness(0);--stage-no:#ffd0c5}body{background-image:radial-gradient(50% 30% at 80% 0,#fffc,#0000 70%),linear-gradient(#fff3ee,#ffd2c4)}.loco{width:100%;height:100%;display:block}.route-ship .loco,.mode-art .loco{transform:scaleX(-1)}.mode-art .loco{width:56px;height:56px}.mode-vagon{--mode-tint:#ffe1dc;--mode-deep:#c8382a;--mode-edge:#f5b3a6}.mode-sirala{--mode-tint:#e9e5ff;--mode-deep:#5a48d6;--mode-edge:#cfc8ff}.mode-hata{--mode-tint:#fff0c7;--mode-deep:#b77a00;--mode-edge:#f0c254}.mode-art{font-size:19px}.train{border-bottom:5px solid var(--text);border-radius:3px;align-items:flex-end;gap:4px;width:100%;padding-bottom:12px;display:flex}.train .loco{flex:none;width:clamp(44px,14vw,62px);height:auto;margin-bottom:-6px}.train.is-moving{animation:.9s ease-in-out chug}@keyframes chug{25%{transform:translate(-14px)}60%{transform:translate(-6px)}}.puff{transform-box:fill-box;transform-origin:50%;animation:1.6s ease-out infinite puff}.puff-2{animation-delay:.5s}@keyframes puff{0%{opacity:0;transform:translateY(6px)scale(.6)}40%{opacity:1}to{opacity:0;transform:translateY(-6px)scale(1.15)}}.wagon{background:var(--wagon,#6f5cf1);color:#fff;min-width:0;height:clamp(50px,15vw,66px);font-family:var(--font-display);border-radius:12px;flex:1 1 0;place-items:center;padding:0;font-size:clamp(21px,6.4vw,30px);font-weight:800;line-height:1;display:grid;position:relative;box-shadow:inset 0 -5px #00000029}.wagon:before,.wagon:after{content:"";border:3px solid var(--text);background:#ffb627;border-radius:50%;width:14px;height:14px;position:absolute;bottom:-11px}.wagon:before{left:14%}.wagon:after{right:14%}.wagon-0{--wagon:#6f5cf1}.wagon-1{--wagon:#18a892}.wagon-2{--wagon:#e0862a}.wagon-3{--wagon:#2f8fe0}.wagon-4{--wagon:#d6508c}.wagon.is-hole{color:var(--text);background:#fff;animation:1.4s ease-in-out infinite wait;box-shadow:inset 0 0 0 4px #ffb627}@keyframes wait{50%{box-shadow:inset 0 0 0 4px #ffb627,0 0 0 5px #ffb62759}}.wagon.is-slot{background:#ffffff80;box-shadow:inset 0 0 0 3px #78321e40}.wagon.is-slot:before,.wagon.is-slot:after{opacity:.35}.wagon.is-fixed{background:var(--teal);animation:.4s pop}.wagon.is-wrong{background:var(--coral);animation:.35s shake}.wagon.is-new{animation:.28s both couple}@keyframes couple{0%{opacity:0;transform:translate(26px)}}button.wagon{cursor:pointer;transition:transform .1s}button.wagon:active{transform:translateY(3px)}.train.is-pickable .wagon{animation:4s ease-in-out infinite bob;animation-delay:calc(var(--n,0) * -.7s)}.question{gap:22px}.tap-hint{text-align:center;color:var(--text-soft);min-height:84px}.yard{grid-template-columns:repeat(2,1fr);gap:22px 14px;padding-bottom:12px;display:grid}.wagon-loose{background:var(--card);height:76px;color:var(--card-ink);box-shadow:0 6px 0 var(--edge);border-radius:18px;font-size:38px}.wagon-loose:active{box-shadow:0 2px 0 var(--edge)}.explain-run{font-size:clamp(26px,8vw,36px)}.missed li{font-size:19px}.unlock{border-color:var(--edge);background:#ffffffb3}
