/* /ekskursii/ — живые эффекты поверх статичной страницы (excursions.css): появление карточек, фото
   в рамке (шторка, параллакс, наклон и блик), плашка партнёров, подсказка на карте, рубильник I-9.
   Только transform/opacity; в бережном режиме и при выключенной анимации — выключено. */

/* карточки: появление (R-3) и строка маршрута рисуется при появлении */
@supports (animation-timeline: view()) {
	.xk[data-enhanced] .xk-card { animation: xk-rise linear both; animation-timeline: view(); animation-range: entry 0% entry 38%; }
}
@keyframes xk-rise { from { opacity: 0; transform: translateY(26px); } to { opacity: 1; transform: none; } }
.xk[data-enhanced] .xk-route__line path { stroke-dashoffset: 1; transition: stroke-dashoffset 1.1s cubic-bezier(.4, 0, .2, 1) .25s; }
.xk[data-enhanced] .xk-card.is-in .xk-route__line path, .xk-dlg .xk-route__line path { stroke-dashoffset: 0; }

/* рисунки на карте: выбранное место подрастает на янтарном ореоле; хвост, луч, флаг и лодка живут отдельными слоями */
.xk-art__in { transform-box: fill-box; transform-origin: 50% 90%; transition: transform .55s cubic-bezier(.3, 1.5, .5, 1); }
.xk-pt:hover .xk-art__in { transform: scale(1.06); }
.xk-pt.is-on .xk-art__in, .xk-dir.is-on .xk-art__in { transform: scale(1.16) translateY(-2px); }
.xk-art__halo { fill: var(--xk-amber2); opacity: 0; transition: opacity .6s; }
.xk-pt.is-on .xk-art__halo, .xk-dir.is-on .xk-art__halo { opacity: .38; }
.xk-art__tail { transform-box: fill-box; transform-origin: 68% 78%; animation: xk-tail 2.8s ease-in-out infinite; animation-play-state: var(--xk-live); }
.xk-art__beam { opacity: .2; transform-box: fill-box; transform-origin: 51% 17%; transition: opacity .8s; }
.xk-pt.is-on .xk-art__beam { opacity: 1; animation: xk-search 3.6s ease-in-out infinite alternate; animation-play-state: var(--xk-live); }
.xk-art__flag { transform-box: fill-box; transform-origin: 55% 20%; animation: xk-flag2 2.2s ease-in-out infinite; animation-play-state: var(--xk-live); }
@keyframes xk-flag2 { 0%, 100% { transform: skewY(0) scaleX(1); } 50% { transform: skewY(-5deg) scaleX(.93); } }
.xk-art__in--bob { animation: xk-bob 3.6s ease-in-out infinite; animation-play-state: var(--xk-live); }

/* «звезда отправлений» */
.xk-ray__line { fill: none; stroke: var(--xk-amber); stroke-width: 1.6; stroke-dasharray: 4 5; stroke-linecap: round; }
.xk-ray { cursor: pointer; }
.xk-ray rect { fill: var(--xk-ink); height: 20px; y: -10px; transition: fill .2s; }
.xk-ray text { fill: #fbf3e2; font: 600 12px var(--xk-sans); }
.xk-ray:hover rect, .xk-ray:focus-visible rect { fill: var(--xk-amber); }
.xk-pt__hit { fill: transparent; }
@media (max-width: 599px) { .xk-ray text { font-size: 22px; } .xk-ray rect { height: 34px; y: -17px; } .xk-ray text { transform: translateY(3px); } }

/* I-9: рубильник анимации */
.xk-anim { position: fixed; right: 14px; bottom: 14px; z-index: 60; min-height: 40px; padding: 8px 14px; border: 1px solid rgba(251, 243, 226, .3); border-radius: 999px; background: rgba(33, 58, 46, .88); color: #fbf3e2; font: 500 13px var(--xk-sans, Inter, sans-serif); cursor: pointer; }
.xk-anim:hover { background: #213a2e; }
@media (max-width: 599px) { .xk button.xk-anim, .xk button.xk-anim:hover, .xk button.xk-anim:focus { width: 44px; height: 44px; min-height: 44px; padding: 0; overflow: hidden; color: transparent; font-size: 0; } .xk-anim::before { content: "◐"; color: #fbf3e2; font-size: 20px; line-height: 44px; } }
::view-transition-group(xk-photo) { animation-duration: .45s; animation-timing-function: cubic-bezier(.2, .7, .2, 1); }

/* ---------- партнёры: заметная плашка над выбором ---------- */
.xk-partner { position: relative; display: flex; gap: 12px; align-items: flex-start; margin: 12px 0 0; padding: 12px 16px 13px 12px; overflow: hidden; border: 1px solid rgba(194, 111, 34, .38); border-radius: 14px; background: linear-gradient(120deg, rgba(231, 173, 95, .34), rgba(231, 173, 95, .08) 62%), var(--xk-card); }
.xk-partner__ico { flex: none; width: 30px; height: 30px; margin-top: 2px; color: var(--xk-ink); }
.xk .xk-partner p { margin: 0; font-size: 14px; line-height: 1.5; color: var(--xk-ink); }
.xk-partner b { display: block; margin-bottom: 2px; font: 600 1.28rem/1.15 var(--xk-serif); color: var(--xk-ink); }
.xk-partner__name { font-weight: 700; color: var(--xk-amber); }
.xk-partner__dash { display: none; }
@media (max-width: 599px) { .xk-partner__dash { display: inline; } }
.xk[data-enhanced] .xk-partner::after { content: ""; position: absolute; top: 0; bottom: 0; left: 0; width: 40%; background: linear-gradient(100deg, transparent, rgba(255, 246, 225, .75), transparent); transform: translateX(-120%); animation: xk-sheen 9s ease-in-out 1.2s infinite; animation-play-state: var(--xk-live); pointer-events: none; }
@media (max-width: 599px) {
	.xk-partner { gap: 8px; margin-top: 8px; padding: 7px 10px; }
	.xk-partner__ico { display: none; }
	.xk-partner b { display: inline; margin: 0; font-size: 1.06rem; }
	.xk .xk-partner p { font-size: 13px; line-height: 1.4; }
	.xk-partner__more { display: none; }
}
@keyframes xk-sheen { 0% { transform: translateX(-120%); } 14%, 100% { transform: translateX(300%); } }

/* ---------- карта: видно, что на неё можно нажать ---------- */
.xk-map__stage:not(.is-touched) .xk-pt__ring { opacity: .9; animation: xk-ping 2.8s ease-out infinite; animation-play-state: var(--xk-live); }
.xk-map__stage:not(.is-touched) .xk-pt:nth-of-type(2) .xk-pt__ring { animation-delay: .45s; }
.xk-map__stage:not(.is-touched) .xk-pt:nth-of-type(3) .xk-pt__ring { animation-delay: .9s; }
.xk-map__stage:not(.is-touched) .xk-pt:nth-of-type(4) .xk-pt__ring { animation-delay: 1.35s; }
.xk-map__stage:not(.is-touched) .xk-pt:nth-of-type(5) .xk-pt__ring { animation-delay: 1.8s; }
.xk-map__stage:not(.is-touched) .xk-pt:nth-of-type(6) .xk-pt__ring { animation-delay: 2.25s; }
.xk-tap { position: absolute; left: 0; top: 0; display: flex; flex-direction: row-reverse; align-items: center; gap: 8px; pointer-events: none; opacity: 0; transition: opacity .5s; }
.xk-tap.is-shown { opacity: 1; }
.xk-tap__dot { position: relative; flex: none; width: 22px; height: 22px; border: 2px solid var(--xk-amber); border-radius: 50%; background: rgba(231, 173, 95, .35); }
.xk-tap__dot::after { content: ""; position: absolute; inset: -2px; border: 2px solid var(--xk-amber); border-radius: 50%; animation: xk-tapring 1.6s ease-out infinite; animation-play-state: var(--xk-live); }
.xk-tap__t { max-width: 230px; padding: 7px 12px; border-radius: 12px; background: var(--xk-ink); color: #fbf3e2; font: 600 13px/1.3 var(--xk-sans); box-shadow: 0 10px 22px -12px rgba(15, 30, 22, .7); animation: xk-bob-t 2.4s ease-in-out infinite; animation-play-state: var(--xk-live); }
@media (max-width: 599px) { .xk-tap__t { display: none; } }
@keyframes xk-tapring { from { transform: scale(1); opacity: .9; } to { transform: scale(2.2); opacity: 0; } }
@keyframes xk-bob-t { 0%, 100% { transform: translateX(0); } 50% { transform: translateX(-4px); } }
.xk-chip input:checked + span { --xk-on: 1; }

/* ---------- фото карточек живут ---------- */
.xk-card__media { position: relative; }
.xk-card__by { position: absolute; z-index: 3; left: 10px; top: 10px; z-index: 3; padding: 4px 9px; border-radius: 999px; background: rgba(251, 247, 238, .9); color: var(--xk-ink); font: 600 11.5px/1.2 var(--xk-sans); letter-spacing: .02em; box-shadow: 0 4px 12px -6px rgba(15, 30, 22, .5); }
/* бумажная шторка: кадр открывается, когда карточка появилась */
.xk[data-enhanced] .xk-card__media::after { content: ""; position: absolute; inset: -1px; z-index: 2; background: repeating-linear-gradient(0deg, transparent 0 6px, rgba(33, 58, 46, .05) 6px 7px), linear-gradient(180deg, #efe5cf, #e6d9bb); transform: translateY(0); transition: transform 1s cubic-bezier(.75, 0, .2, 1) .12s; }
.xk[data-enhanced] .xk-card.is-in .xk-card__media::after, .xk-dlg .xk-card__media::after { transform: translateY(-101%); }
/* кадр чуть больше рамки и плывёт внутри неё при прокрутке */
@supports (animation-timeline: view()) {
	.xk[data-enhanced] .xk-card__media img { scale: 1.1; animation: xk-par linear both; animation-timeline: view(); animation-range: cover; }
}
@keyframes xk-par { from { translate: 0 -4.5%; } to { translate: 0 4.5%; } }
/* мышь: открытка наклоняется к курсору, по фото скользит блик, кадр приближается */
@media (hover: hover) and (pointer: fine) {
	.xk-card__media { transform: perspective(900px) rotateX(var(--rx, 0deg)) rotateY(var(--ry, 0deg)); transition: transform .45s cubic-bezier(.2, .7, .2, 1); }
	.xk-card__media img { transition: scale .9s cubic-bezier(.2, .7, .2, 1); }
	.xk-card:hover .xk-card__media img { scale: 1.17; }
	.xk-card__media::before { content: ""; position: absolute; inset: 0; z-index: 1; background: radial-gradient(circle at var(--mx, 50%) var(--my, 30%), rgba(255, 240, 210, .5), transparent 46%); opacity: 0; transition: opacity .4s; pointer-events: none; }
	.xk-card:hover .xk-card__media::before { opacity: 1; }
}

@media (prefers-reduced-motion: reduce) { .xk * { animation: none !important; transition: none !important; } .xk[data-enhanced] .xk-card__media::after { display: none; } }
body[data-motion="off"] .xk * { animation: none !important; transition: none !important; }
body[data-motion="off"] .xk[data-enhanced] .xk-card__media::after { display: none; }
