.tsm-arc { position: relative; width: 100%; padding: 4px 0 0; overflow: hidden; }
.tsm-arc * { box-sizing: border-box; }
.tsm-arc :focus-visible { outline: 2px solid #2d7dd2; outline-offset: 4px; border-radius: 6px; }
.tsm-arc-head { display: flex; align-items: center; justify-content: center; gap: 10px; margin: 0 0 6px; font-size: 11.5px; font-weight: 600; letter-spacing: 1.6px; text-transform: uppercase; color: var(--muted, #8a98a8); }
.tsm-arc-head a { display: inline-flex; align-items: center; gap: 6px; color: var(--brand, #2d7dd2); letter-spacing: .2px; text-transform: none; font-weight: 600; font-size: 12.5px; }
.tsm-arc-head a:hover { text-decoration: underline; }
.tsm-arc-alone { margin: 0 0 22px; }
.tsm-occasion { display: inline-flex; align-items: center; gap: 8px; color: var(--ink-soft, #5b6b7c); }
.tsm-occasion i { font-size: 14px; }
.tsm-dot { width: 4px; height: 4px; border-radius: 50%; background: #c3ccd6; }
.tsm-arc .tsm-stage { position: relative; height: 204px; touch-action: pan-y; user-select: none; -webkit-user-select: none; }
.tsm-arc .tsm-items { display: flex; align-items: center; justify-content: flex-start; gap: 18px; height: 100%; padding: 0 20px; overflow-x: auto; }
.tsm-arc .tsm-item { flex: 0 0 auto; display: block; width: 150px; height: 150px; mix-blend-mode: multiply; -webkit-user-drag: none; -webkit-tap-highlight-color: transparent; }
.tsm-arc.is-live .tsm-items { display: block; padding: 0; overflow: visible; }
.tsm-arc.is-live .tsm-item { position: absolute; left: 50%; top: 0; will-change: transform, opacity; transition: opacity .2s ease; }
.tsm-arc .tsm-item img { display: block; width: 100%; height: 100%; object-fit: contain; pointer-events: none; -webkit-user-drag: none; transition: transform .28s cubic-bezier(.2, .7, .2, 1); transform-origin: 50% 60%; }
.tsm-arc .tsm-item:hover, .tsm-arc .tsm-item:focus-visible { opacity: 1 !important; z-index: 200 !important; }
.tsm-arc .tsm-item:hover img, .tsm-arc .tsm-item:focus-visible img { transform: scale(1.16); }
.tsm-arc.is-dragging .tsm-item { cursor: grabbing; }
.tsm-arrow { position: absolute; z-index: 210; top: 62px; display: none; place-items: center; width: 38px; height: 38px; padding: 0; border: 1px solid #d8dfe6; border-radius: 50%; background: rgba(255, 255, 255, .86); color: #263543; cursor: pointer; transition: border-color .2s, background .2s; -webkit-tap-highlight-color: transparent; }
.tsm-arc.is-live .tsm-arrow { display: grid; }
.tsm-arrow:hover { border-color: #2d7dd2; background: #fff; }
.tsm-arrow svg { width: 16px; height: 16px; fill: none; stroke: currentColor; stroke-width: 1.4; }
.tsm-arc .tsm-prev { left: max(16px, calc(50% - 560px)); }
.tsm-arc .tsm-next { right: max(16px, calc(50% - 560px)); }
body.ts-search-typing .tsm-arc { visibility: hidden; }

.tsm-air { position: fixed; inset: 0; z-index: 40; overflow: hidden; pointer-events: none; }
.tsm-air i { position: absolute; opacity: .7; will-change: transform, opacity; }

.tsm-air-fall i { top: -28px; animation: tsm-fall 14s linear infinite; }
.tsm-air-fall i:nth-child(1) { left: 4%; font-size: 12px; animation-duration: 15s; animation-delay: -2s; }
.tsm-air-fall i:nth-child(2) { left: 12%; font-size: 9px; animation-duration: 19s; animation-delay: -11s; }
.tsm-air-fall i:nth-child(3) { left: 20%; font-size: 14px; animation-duration: 13s; animation-delay: -6s; }
.tsm-air-fall i:nth-child(4) { left: 29%; font-size: 8px; animation-duration: 21s; animation-delay: -15s; }
.tsm-air-fall i:nth-child(5) { left: 37%; font-size: 11px; animation-duration: 16s; animation-delay: -9s; }
.tsm-air-fall i:nth-child(6) { left: 45%; font-size: 9px; animation-duration: 18s; animation-delay: -1s; }
.tsm-air-fall i:nth-child(7) { left: 54%; font-size: 13px; animation-duration: 14s; animation-delay: -12s; }
.tsm-air-fall i:nth-child(8) { left: 62%; font-size: 8px; animation-duration: 22s; animation-delay: -4s; }
.tsm-air-fall i:nth-child(9) { left: 70%; font-size: 12px; animation-duration: 15s; animation-delay: -8s; }
.tsm-air-fall i:nth-child(10) { left: 79%; font-size: 10px; animation-duration: 17s; animation-delay: -14s; }
.tsm-air-fall i:nth-child(11) { left: 87%; font-size: 14px; animation-duration: 13s; animation-delay: -3s; }
.tsm-air-fall i:nth-child(12) { left: 95%; font-size: 9px; animation-duration: 20s; animation-delay: -10s; }
@keyframes tsm-fall {
  from { transform: translate3d(0, 0, 0) rotate(0deg); }
  to { transform: translate3d(36px, 108vh, 0) rotate(200deg); }
}

.tsm-air-twinkle i { opacity: .12; animation: tsm-twinkle 5s ease-in-out infinite; }
.tsm-air-twinkle i:nth-child(1) { left: 9%; top: 16%; font-size: 13px; animation-delay: -1s; }
.tsm-air-twinkle i:nth-child(2) { left: 17%; top: 38%; font-size: 9px; animation-delay: -3.2s; }
.tsm-air-twinkle i:nth-child(3) { left: 12%; top: 62%; font-size: 15px; animation-delay: -2.1s; }
.tsm-air-twinkle i:nth-child(4) { left: 24%; top: 22%; font-size: 8px; animation-delay: -4.4s; }
.tsm-air-twinkle i:nth-child(5) { left: 30%; top: 70%; font-size: 10px; animation-delay: -.4s; }
.tsm-air-twinkle i:nth-child(6) { left: 46%; top: 12%; font-size: 9px; animation-delay: -2.8s; }
.tsm-air-twinkle i:nth-child(7) { left: 68%; top: 68%; font-size: 11px; animation-delay: -1.6s; }
.tsm-air-twinkle i:nth-child(8) { left: 74%; top: 20%; font-size: 14px; animation-delay: -3.8s; }
.tsm-air-twinkle i:nth-child(9) { left: 82%; top: 44%; font-size: 8px; animation-delay: -.9s; }
.tsm-air-twinkle i:nth-child(10) { left: 88%; top: 64%; font-size: 13px; animation-delay: -2.5s; }
.tsm-air-twinkle i:nth-child(11) { left: 91%; top: 14%; font-size: 10px; animation-delay: -4.9s; }
.tsm-air-twinkle i:nth-child(12) { left: 58%; top: 16%; font-size: 8px; animation-delay: -1.9s; }
@keyframes tsm-twinkle {
  0%, 100% { opacity: .12; transform: scale(.85); }
  50% { opacity: .8; transform: scale(1.1); }
}

@media (max-width: 700px) {
  .tsm-arc .tsm-stage { height: 148px; }
  .tsm-arc .tsm-item { width: 104px; height: 104px; }
  .tsm-arc .tsm-arrow { display: none !important; }
  .tsm-air-twinkle i:nth-child(n+8) { display: none; }
}
@media (prefers-reduced-motion: reduce) {
  .tsm-air { display: none; }
  .tsm-arc * { transition: none !important; }
}
