.train-window{background:linear-gradient(90deg,#060b15dc,#111126c9),url("assets/train-carriage.png") center/cover no-repeat}.train-window:after{content:"";position:absolute;inset:0;pointer-events:none;background:linear-gradient(100deg,transparent 25%,#b8e6ff12 43%,transparent 49%);background-size:280% 100%;animation:windowFlash 2.7s linear infinite}.train-window>*{position:relative;z-index:1}.train-sky{opacity:.58!important;animation:railMove .55s linear infinite!important}.train-reveal{width:118px;height:118px;margin:12px auto;display:grid;place-items:center;border-radius:50%;border:2px dashed #5d759d;background:#0b1222dd;transform:scale(.72);opacity:0;transition:.2s}.train-reveal small{grid-area:1/1;color:#9db3d5;font-size:9px;align-self:end;margin-bottom:22px}.train-reveal b{grid-area:1/1;font-size:58px;color:#fff;line-height:1}.train-reveal.show{opacity:1;transform:scale(1);animation:signalDrop .7s cubic-bezier(.16,.9,.25,1.4)}.train-reveal.correct{border-color:#73f0be;box-shadow:0 0 35px #57e6a788}.train-reveal.wrong{border-color:#ff617f;box-shadow:0 0 35px #ff476d88;animation:signalDrop .7s cubic-bezier(.16,.9,.25,1.4),signalFail .5s .7s 2}.train-reveal.show b{animation:numberSpin .55s steps(5)}@keyframes windowFlash{to{background-position:-280% 0}}@keyframes signalDrop{0%{transform:translateY(-45px) scale(.2);filter:brightness(3)}100%{transform:translateY(0) scale(1);filter:brightness(1)}}@keyframes numberSpin{0%{filter:blur(12px);transform:rotateY(180deg) scale(.3)}100%{filter:blur(0);transform:rotateY(0) scale(1)}}@keyframes signalFail{50%{transform:translateX(8px);background:#5e1426}100%{transform:translateX(0)}}
