.g-train-sort{--ts-red:#e0453a;--ts-orange:#f0813a;--ts-yellow:#f2c23a;--ts-green:#2fa35a;--ts-blue:#2f6fd0;--ts-purple:#8a54cf;--ts-pink:#ec6fae;--ts-teal:#26b5c9;--ts-sky:#dfeefa;--ts-ground:#cbb99a;--ts-metal:#59616f;--ts-metal-dark:#3a4150;gap:var(--sp-3)}@media (prefers-color-scheme:dark){:root:not([data-theme=light]) .g-train-sort{--ts-sky:#1a2733;--ts-ground:#3a342a;--ts-metal:#79818f}}:root[data-theme=dark] .g-train-sort{--ts-sky:#1a2733;--ts-ground:#3a342a;--ts-metal:#79818f}.g-train-sort :focus-visible{outline:3px solid var(--c-focus);outline-offset:2px}.g-train-sort .ts-goal{max-width:34ch;padding-block:var(--sp-2);padding-inline:var(--sp-4);border-radius:var(--r-full);background:var(--c-brand-soft);color:var(--c-brand);font-size:var(--fs-md);font-weight:var(--fw-bold);line-height:var(--lh-snug);text-align:center;text-wrap:balance;margin:0}.g-train-sort .ts-yard{width:100%;padding:var(--sp-3) var(--sp-2) 0;border-radius:var(--r-lg) var(--r-lg) 0 0;background:linear-gradient(180deg, var(--ts-sky) 0 70%, var(--ts-ground) 70% 100%);align-items:flex-end;display:flex;overflow-x:auto}.g-train-sort .ts-engine{flex:none;width:clamp(54px,15vw,76px)}.g-train-sort .ts-strip{flex:auto;justify-content:flex-start;align-items:flex-end;gap:2px;min-width:0;display:flex}.g-train-sort .ts-slot{min-width:clamp(44px,12vw,76px);color:var(--ts-paint,var(--ts-blue));cursor:pointer;background:0 0;border:0;flex:1 1 0;padding:0}.g-train-sort .ts-slot[data-color=red]{--ts-paint:var(--ts-red)}.g-train-sort .ts-slot[data-color=orange]{--ts-paint:var(--ts-orange)}.g-train-sort .ts-slot[data-color=yellow]{--ts-paint:var(--ts-yellow)}.g-train-sort .ts-slot[data-color=green]{--ts-paint:var(--ts-green)}.g-train-sort .ts-slot[data-color=blue]{--ts-paint:var(--ts-blue)}.g-train-sort .ts-slot[data-color=purple]{--ts-paint:var(--ts-purple)}.g-train-sort .ts-slot[data-color=pink]{--ts-paint:var(--ts-pink)}.g-train-sort .ts-slot[data-color=teal]{--ts-paint:var(--ts-teal)}.g-train-sort .ts-art{aspect-ratio:1;filter:drop-shadow(0 2px 2px #00000038);width:100%;height:auto;display:block;overflow:visible}.g-train-sort .ts-enginebody,.g-train-sort .ts-cab{fill:#c0392b;stroke:#7d2117;stroke-width:3px}.g-train-sort .ts-funnel{fill:#7d2117}.g-train-sort .ts-window{fill:#cfe9f7;stroke:#7d2117;stroke-width:2.5px}.g-train-sort .ts-steam{fill:#fff;opacity:.85}.g-train-sort .ts-lamp{fill:#fff3b0}.g-train-sort .ts-wagon{fill:currentColor;stroke:color-mix(in srgb, currentColor 55%, #000 45%);stroke-width:3px}.g-train-sort .ts-plate{fill:#fff;stroke:color-mix(in srgb, currentColor 55%, #000 45%);stroke-width:2.5px}.g-train-sort .ts-number{fill:#1a1a22;font-family:var(--font-num);font-size:20px;font-weight:800}.g-train-sort .ts-crate{fill:#c08a4a;stroke:#7d5426;stroke-width:2px}.g-train-sort .ts-wheel{fill:var(--ts-metal-dark)}.g-train-sort .ts-wheelhub{fill:var(--ts-metal)}.g-train-sort .ts-slot.is-placed .ts-wagon{stroke:var(--c-good);stroke-width:5px}.g-train-sort .ts-slot.is-selected .ts-art{filter:drop-shadow(0 0 7px var(--c-brand))}.g-train-sort .ts-slot.is-selected .ts-wagon{stroke:var(--c-brand);stroke-width:5px}.g-train-sort .ts-slot.is-hinted .ts-art{filter:drop-shadow(0 0 7px var(--c-accent))}.g-train-sort .ts-slot:disabled{cursor:default}.g-train-sort .ts-rail{border-radius:0 0 var(--r-lg) var(--r-lg);background:repeating-linear-gradient(90deg, var(--ts-metal-dark) 0 6px, transparent 6px 20px), linear-gradient(180deg, var(--ts-metal) 0 4px, var(--ts-metal-dark) 4px 100%);width:100%;height:10px}.g-train-sort.is-done .ts-rail{background:repeating-linear-gradient(90deg, var(--c-good) 0 6px, transparent 6px 20px), linear-gradient(180deg, var(--c-good) 0 4px, var(--ts-metal-dark) 4px 100%)}.g-train-sort .ts-msg{max-width:36ch;min-height:2.6em;color:var(--c-text-dim);font-size:var(--fs-md);font-weight:var(--fw-med);line-height:var(--lh-snug);text-align:center;text-wrap:balance;margin:0}.g-train-sort .ts-msg.is-good{color:var(--c-good);font-weight:var(--fw-bold)}.g-train-sort .ts-note{max-width:40ch;color:var(--c-text-faint);font-size:var(--fs-xs);text-align:center;margin:0}.g-train-sort.is-done .ts-note{visibility:hidden}.g-train-sort .ts-art,.g-train-sort .ts-wagon{transition:none}@media (prefers-reduced-motion:no-preference){.g-train-sort.is-motion .ts-art{transition:filter var(--dur) var(--ease)}.g-train-sort.is-motion .ts-wagon{transition:stroke var(--dur) var(--ease)}.g-train-sort.is-motion .ts-slot:not(:disabled):active .ts-art{transform:translateY(2px)scale(.96)}.g-train-sort.is-motion .ts-steam{animation:ts-puff 2.4s var(--ease) infinite}@keyframes ts-puff{0%{opacity:.85;transform:translate(0)scale(1)}60%{opacity:.15;transform:translate(10px,-14px)scale(1.5)}61%{opacity:0;transform:translate(0)scale(.8)}to{opacity:.85;transform:translate(0)scale(1)}}.g-train-sort.is-motion.is-done .ts-engine{animation:ts-depart 1.2s var(--ease-out)}@keyframes ts-depart{0%{transform:translate(0)}50%{transform:translate(-8px)}to{transform:translate(0)}}}
