/* Mięsny Zakątek F: mikrointerakcje (kursor, tilt, magnes, paralaksa) */

/* kursor: brązowa kropka + złoty pierścień (systemowy kursor zostaje) */
.fx-cur { position: fixed; left: 0; top: 0; width: 0; height: 0; z-index: 9999; pointer-events: none; opacity: 0; transition: opacity .3s var(--ease); }
.fx-cur.is-on { opacity: 1; }
.fx-cur__ring, .fx-cur__dot { position: absolute; left: 0; top: 0; will-change: transform; }
.fx-cur__ring > * { position: absolute; left: 0; top: 0; }
.fx-cur__dot { width: 6px; height: 6px; margin: -3px 0 0 -3px; border-radius: 50%; background: var(--brown); box-shadow: 0 0 0 1.5px rgba(255, 255, 255, .55); transition: opacity .25s; }
.fx-cur__o { width: 36px; height: 36px; margin: -18px 0 0 -18px; border-radius: 50%; border: 1px solid var(--gold); box-shadow: 0 0 0 1px rgba(255, 255, 255, .22), inset 0 0 0 1px rgba(255, 255, 255, .12); transition: transform .5s var(--ease-out), opacity .3s; }
.fx-cur__o::before { content: ""; position: absolute; inset: 0; border-radius: 50%; background: rgba(201, 163, 91, .14); opacity: 0; transition: opacity .3s; }
.fx-cur__disc { width: 68px; height: 68px; margin: -34px 0 0 -34px; border-radius: 50%; background: var(--brown); box-shadow: 0 12px 26px -14px rgba(43, 36, 31, .6); opacity: 0; transform: scale(.35); transition: transform .5s var(--ease-out), opacity .3s; }
.fx-cur__lab { transform: translate(-50%, -50%); color: #fff; font: 600 .8125rem/1 var(--f-body); letter-spacing: .02em; white-space: nowrap; opacity: 0; transition: opacity .2s; }
.fx-cur__hint { transform: translate(34px, -50%); color: var(--brown); font: 500 .75rem/1 var(--f-body); letter-spacing: .03em; white-space: nowrap; opacity: 0; transition: opacity .35s, transform .5s var(--ease-out); }

.fx-cur[data-s="link"] .fx-cur__o { transform: scale(1.55); }
.fx-cur[data-s="link"] .fx-cur__o::before { opacity: 1; }
.fx-cur[data-s="view"] .fx-cur__o, .fx-cur[data-s="drag"] .fx-cur__o { transform: scale(2.2); opacity: 0; }
.fx-cur[data-s="view"] .fx-cur__disc, .fx-cur[data-s="drag"] .fx-cur__disc { transform: scale(1); opacity: .9; }
.fx-cur[data-s="view"] .fx-cur__lab, .fx-cur[data-s="drag"] .fx-cur__lab { opacity: 1; transition-delay: .08s; }
.fx-cur[data-s="view"] .fx-cur__dot, .fx-cur[data-s="drag"] .fx-cur__dot { opacity: 0; }
.fx-cur[data-s="smoke"] .fx-cur__o { transform: scale(1.15); }
.fx-cur[data-s="smoke"] .fx-cur__hint { opacity: .9; transform: translate(28px, -50%); transition-delay: .15s, .15s; }
.fx-cur.hint-left .fx-cur__hint { transform: translate(calc(-100% - 28px), -50%); }
.fx-cur.hint-done .fx-cur__hint { opacity: 0 !important; }
/* przyciski mają własny hover i magnes: zostaje sama kropka */
.fx-cur[data-s="btn"] .fx-cur__o { transform: scale(.6); opacity: 0; }
.fx-cur.is-down .fx-cur__o { transform: scale(.82); }
.fx-cur.is-down[data-s="link"] .fx-cur__o { transform: scale(1.3); }
.fx-cur.is-down .fx-cur__disc { transform: scale(.92); }

/* karty: przechył 3D w stronę kursora + uniesienie z style.css */
/* 3D tylko na jednej, aktywnej karcie (reszta: zwykły hover ze style.css) */
.fx-on .card.is-tilt, .fx-on .card.is-tilt:hover { transform: perspective(1100px) translateY(var(--fx-y, 0px)) rotateX(var(--fx-rx, 0deg)) rotateY(var(--fx-ry, 0deg)); }
.fx-on .card.is-tilt:hover { --fx-y: -4px; }
.fx-on .card.is-tilt { transition: box-shadow .4s var(--ease-out), transform .2s var(--ease-out), border-color .3s, scale .1s; will-change: transform; }
/* miękki odblask podąża za kursorem */
.fx-on .card__img::after { content: ""; position: absolute; left: 0; top: 0; z-index: 1; width: 150%; aspect-ratio: 1; border-radius: 50%; pointer-events: none;
  background: radial-gradient(closest-side, rgba(255, 255, 255, .2), rgba(255, 255, 255, .07) 45%, rgba(255, 255, 255, 0));
  transform: translate(calc(var(--fx-gx, 0px) - 50%), calc(var(--fx-gy, 0px) - 50%)); opacity: 0; transition: opacity .5s var(--ease-out); }
.fx-on .card.is-tilt .card__img::after { opacity: 1; }

/* zdjęcie braci: delikatny zoom przy najechaniu */
.fx-on .bros__fig .frame img { transition: transform 1.4s var(--ease-out); }
.fx-on .bros__fig .frame:hover img { transform: scale(1.035); }

/* nagłówki sekcji: złota kreska rysuje się przy odsłonięciu */
.js:not(.no-motion) .h2::after { transform-origin: left center; transition: transform 1.1s var(--ease-out) .3s; }
.js:not(.no-motion) .sec__head--center .h2::after { transform-origin: center; }
.js:not(.no-motion) .h2[data-rv]:not(.is-in)::after { transform: scaleX(0); }

/* mapa: pulsujący pierścień wokół zakładu */
.mz-pin--core::after { content: ""; position: absolute; inset: -4px; border-radius: 50%; border: 2px solid var(--gold); background: rgba(201, 163, 91, .22); opacity: 0; pointer-events: none; }
.js:not(.no-motion) .mz-pin--core::after { animation: fxPulse 2.6s cubic-bezier(.25, .5, .4, 1) 3; }
@keyframes fxPulse { 0% { transform: scale(1); opacity: .95; } 60% { opacity: .35; } 100% { transform: scale(2.5); opacity: 0; } }
@media (prefers-reduced-motion: reduce) { .mz-pin--core::after { animation: none !important; } }
