/* ================================================================
   EFFECTS LAYER — "Firelight & Sunrise"
   Loaded after sections.css. Adds warm glow, atmosphere, texture and
   premium micro-interactions. Earthy only — no neon, no glassmorphism.
   Everything degrades gracefully under prefers-reduced-motion (bottom).
   ================================================================ */

/* ---- Living film grain (very subtle drift) ---- */
@keyframes grain-drift {
  0%, 100% { transform: translate(0, 0); }
  25% { transform: translate(-2%, 1%); }
  50% { transform: translate(1%, -2%); }
  75% { transform: translate(2%, 1%); }
}
body::before { animation: grain-drift 8s steps(4) infinite; }

/* ---- Gold/ember gradient text (for key numbers & accents) ---- */
.text-gold {
  background: linear-gradient(100deg, var(--sunrise-gold), #e7c074 35%, var(--bark-brown) 95%);
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
}

/* ---- Eyebrow flourish: a short glowing rule that grows on reveal ---- */
.eyebrow::before {
  content: "";
  width: 0; height: 1.5px;
  background: linear-gradient(90deg, currentColor, transparent);
  transition: width 0.8s var(--ease) 0.15s;
  display: inline-block;
}
.reveal.is-in .eyebrow::before,
.sec-head.is-in .eyebrow::before,
.is-in .eyebrow::before { width: 28px; }
/* fallback: always show the flourish even without a reveal wrapper */
.eyebrow:not(.reveal .eyebrow):not(.is-in .eyebrow)::before { width: 28px; }

/* ================================================================
   BUTTONS — sheen sweep + warm glow + spring
   ================================================================ */
.btn {
  position: relative;
  overflow: hidden;
  isolation: isolate;
  transition: transform 0.35s var(--ease-spring), background-color 0.3s var(--ease),
    box-shadow 0.4s var(--ease), border-radius 0.4s var(--ease), color 0.3s var(--ease);
}
/* diagonal light sheen that sweeps across on hover */
.btn::before {
  content: "";
  position: absolute; inset: 0; z-index: -1;
  background: linear-gradient(115deg, transparent 30%,
    rgba(246, 240, 228, 0.35) 48%, rgba(246, 240, 228, 0.05) 56%, transparent 70%);
  transform: translateX(-120%);
  transition: transform 0.7s var(--ease);
}
.btn:hover::before { transform: translateX(120%); }

.btn--primary {
  background: linear-gradient(150deg, var(--forest-green), var(--ink-green));
}
.btn--primary:hover {
  transform: translateY(-3px) scale(1.015);
  box-shadow: var(--shadow-glow);
}
.btn--bark { background: linear-gradient(150deg, #7a5031, var(--bark-brown)); }
.btn--bark:hover {
  transform: translateY(-3px) scale(1.015);
  box-shadow: 0 22px 46px -22px var(--glow-ember), 0 14px 30px -20px rgba(11,27,18,0.5);
}
.btn--ghost { transition: transform 0.35s var(--ease-spring), background-color 0.3s var(--ease),
  box-shadow 0.4s var(--ease), color 0.3s var(--ease), border-color 0.3s var(--ease); }
.btn--ghost:hover {
  transform: translateY(-3px);
  box-shadow: 0 16px 36px -22px var(--glow-gold);
  border-color: var(--sunrise-gold);
}

/* Ambient breathing glow on the single most important hero CTA */
@keyframes ember-pulse {
  0%, 100% { box-shadow: 0 0 0 0 rgba(201,154,73,0); }
  50% { box-shadow: 0 14px 40px -16px var(--glow-gold-soft); }
}
.hero__cta .btn--primary { animation: ember-pulse 3.4s ease-in-out infinite; }
.hero__cta .btn--primary:hover { animation: none; }

/* ================================================================
   CARDS — gold ring on hover + glowing reactive icon + lift
   ================================================================ */
.card { position: relative; overflow: hidden; isolation: isolate;
  transition: transform 0.4s var(--ease-spring), box-shadow 0.4s var(--ease), border-color 0.4s var(--ease); }
/* top sheen wash */
.card::before {
  content: ""; position: absolute; inset: 0; z-index: -1; opacity: 0;
  background: radial-gradient(120% 80% at 50% -10%, var(--glow-gold-soft), transparent 60%);
  transition: opacity 0.5s var(--ease);
}
.card:hover {
  transform: translateY(-6px);
  box-shadow: var(--shadow-lift), 0 0 0 1px var(--glow-gold-soft);
  border-color: color-mix(in srgb, var(--sunrise-gold) 55%, transparent);
}
.card:hover::before { opacity: 1; }
.card__icon { transition: transform 0.45s var(--ease-spring), background-color 0.4s var(--ease),
  box-shadow 0.4s var(--ease), color 0.3s var(--ease); }
.card:hover .card__icon {
  transform: translateY(-3px) rotate(-4deg) scale(1.08);
  background: color-mix(in srgb, var(--sunrise-gold) 28%, var(--warm-cream));
  box-shadow: 0 10px 24px -10px var(--glow-gold);
}
.section--forest .card:hover {
  border-color: color-mix(in srgb, var(--sunrise-gold) 60%, transparent);
  box-shadow: 0 26px 60px -26px rgba(0,0,0,0.6), 0 0 30px -6px var(--glow-gold-soft);
}

/* ================================================================
   FRAMES — atmospheric living placeholders (the big visual win)
   Multi-layer dawn gradient + contour texture + pine watermark +
   inner vignette + double frame + sheen on hover.
   ================================================================ */
.frame {
  background:
    /* pine watermark */
    url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='120' height='120' viewBox='0 0 24 24' fill='none' stroke='%23163524' stroke-opacity='0.10' stroke-width='1' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 3 7.5 9.2h2.4L6.6 14h3.1L12 17l2.3-3h3.1l-3.3-4.8h2.4z'/%3E%3Cpath d='M12 17v4'/%3E%3C/svg%3E") center 38% / 84px no-repeat,
    /* soft contour lines */
    repeating-linear-gradient(58deg, rgba(106,69,43,0.05) 0 1px, transparent 1px 26px),
    /* dawn light top */
    radial-gradient(130% 90% at 75% -10%, rgba(201,154,73,0.32), transparent 55%),
    /* moss diagonal */
    linear-gradient(150deg, color-mix(in srgb, var(--moss-green) 34%, var(--clay-beige)), var(--clay-beige) 60%),
    /* forest shadow bottom */
    radial-gradient(120% 80% at 20% 120%, color-mix(in srgb, var(--forest-green) 40%, transparent), transparent 60%);
  background-color: var(--clay-beige);
  box-shadow: var(--shadow-soft), inset 0 0 0 1px rgba(246,240,228,0.35), inset 0 0 60px rgba(11,27,18,0.12);
  transition: transform 0.5s var(--ease-spring), box-shadow 0.5s var(--ease);
}
/* moving sheen highlight */
.frame::before {
  content: ""; position: absolute; inset: 0; z-index: 1; pointer-events: none;
  background: linear-gradient(115deg, transparent 35%, rgba(246,240,228,0.28) 48%, transparent 62%);
  transform: translateX(-120%);
  transition: transform 0.9s var(--ease);
}
.frame:hover::before { transform: translateX(120%); }
.frame::after { z-index: 2; } /* keep label above texture */
.frame:hover {
  box-shadow: var(--shadow-glow), inset 0 0 0 1px rgba(246,240,228,0.45), inset 0 0 60px rgba(11,27,18,0.1);
}

/* ================================================================
   DARK SECTION ATMOSPHERE — dawn mesh + ember stars
   ================================================================ */
.section--forest, .section--ink { position: relative; isolation: isolate; }
.section--forest::before, .section--ink::before {
  content: ""; position: absolute; inset: 0; z-index: 0; pointer-events: none;
  background:
    radial-gradient(80% 60% at 85% 8%, color-mix(in srgb, var(--sunrise-gold) 22%, transparent), transparent 60%),
    radial-gradient(70% 60% at 10% 100%, color-mix(in srgb, var(--moss-green) 26%, transparent), transparent 55%),
    radial-gradient(50% 40% at 50% 50%, color-mix(in srgb, var(--ember, #b05c2f) 0%, transparent), transparent);
  opacity: 0.9;
  animation: mesh-drift 16s ease-in-out infinite alternate;
}
@keyframes mesh-drift {
  0% { transform: translate3d(0,0,0) scale(1); }
  100% { transform: translate3d(-2%, 1.5%, 0) scale(1.06); }
}
/* faint ember/star field on the deepest sections */
.section--ink::after {
  content: ""; position: absolute; inset: 0; z-index: 0; pointer-events: none; opacity: 0.5;
  background-image:
    radial-gradient(1.5px 1.5px at 18% 28%, rgba(201,154,73,0.8), transparent),
    radial-gradient(1.5px 1.5px at 72% 18%, rgba(246,240,228,0.6), transparent),
    radial-gradient(1.5px 1.5px at 42% 62%, rgba(201,154,73,0.55), transparent),
    radial-gradient(1.5px 1.5px at 88% 72%, rgba(246,240,228,0.5), transparent),
    radial-gradient(1.5px 1.5px at 30% 84%, rgba(201,154,73,0.6), transparent);
  animation: twinkle 5s ease-in-out infinite;
}
@keyframes twinkle { 0%,100% { opacity: 0.35; } 50% { opacity: 0.7; } }
/* keep section content above the atmosphere layers — but leave hero absolutely-positioned children alone */
.section--forest > *:not(.hero__bg):not(.hero__overlay):not(.hero__deco):not(.hero__chips):not(.hero__badge):not(.hero__scroll),
.section--ink > *:not(.hero__bg):not(.hero__overlay) { position: relative; z-index: 1; }
/* hero absolutely-positioned elements — never override these */
.hero__bg    { position: absolute !important; inset: 0 !important; z-index: 0 !important; overflow: hidden !important; }
.hero__overlay { position: absolute !important; inset: 0 !important; z-index: 1 !important; }
.hero__deco  { position: absolute !important; z-index: 2 !important; }
.hero__chips { position: absolute !important; }
.hero__badge { position: absolute !important; }
.hero__scroll { position: absolute !important; }

/* ================================================================
   HERO — light rays, tagline shimmer, floating decos
   ================================================================ */
.hero__overlay {
  background:
    radial-gradient(70% 90% at 78% 12%, rgba(201,154,73,0.28), transparent 55%),
    conic-gradient(from 130deg at 80% 0%, rgba(201,154,73,0.12), transparent 25%),
    linear-gradient(110deg, rgba(11,27,18,0.88) 0%, rgba(11,27,18,0.6) 45%, rgba(11,27,18,0.22) 100%);
}
/* sun-ray streaks descending into the hero */
.hero::after {
  content: ""; position: absolute; inset: 0; z-index: 2; pointer-events: none; opacity: 0.5;
  background: repeating-linear-gradient(102deg,
    transparent 0 38px, rgba(201,154,73,0.05) 38px 40px, transparent 40px 84px);
  mix-blend-mode: screen;
}
.hero__tagline { position: relative; background-size: 200% auto;
  background-image: linear-gradient(100deg, var(--sunrise-gold), #f0d39a 45%, var(--sunrise-gold));
  -webkit-background-clip: text; background-clip: text; color: transparent;
  animation: shimmer 5s linear infinite; }
@keyframes shimmer { to { background-position: 200% center; } }
.hero__deco { animation: float-deco 7s ease-in-out infinite; filter: drop-shadow(0 0 8px rgba(201,154,73,0.25)); }
.hero__deco--moon { animation-delay: -2.5s; }
.hero__deco--path { animation-delay: -4s; }
@keyframes float-deco {
  0%, 100% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-10px) rotate(3deg); }
}
.hero__badge {
  clip-path: circle(48%);
  filter: drop-shadow(0 14px 28px rgba(0,0,0,0.4)) drop-shadow(0 0 26px var(--glow-gold-soft));
}
.hero__scroll .icon { filter: drop-shadow(0 0 6px var(--glow-gold-soft)); }

/* chips: warm hover */
.chip { transition: transform 0.3s var(--ease-spring), box-shadow 0.3s var(--ease), border-color 0.3s var(--ease), background-color 0.3s var(--ease); }
.chip:hover { transform: translateY(-2px); border-color: color-mix(in srgb, var(--sunrise-gold) 60%, transparent);
  box-shadow: 0 8px 20px -12px var(--glow-gold); }
.chip .icon { transition: transform 0.3s var(--ease-spring); }
.chip:hover .icon { transform: scale(1.15) rotate(-6deg); color: var(--sunrise-gold); }

/* ================================================================
   AMENITIES — growing accent bar + icon glow
   ================================================================ */
.amenity { position: relative; overflow: hidden;
  transition: background-color 0.3s var(--ease), transform 0.3s var(--ease-spring); }
.amenity::before {
  content: ""; position: absolute; left: 0; top: 12%; bottom: 12%; width: 3px; border-radius: 3px;
  background: linear-gradient(var(--sunrise-gold), var(--bark-brown));
  transform: scaleY(0); transform-origin: top; transition: transform 0.4s var(--ease-spring);
}
.amenity:hover { transform: translateX(8px); background: color-mix(in srgb, var(--moss-green) 16%, transparent); }
.amenity:hover::before { transform: scaleY(1); }
.amenity .icon { transition: transform 0.4s var(--ease-spring), color 0.3s var(--ease), filter 0.3s var(--ease); }
.amenity:hover .icon { transform: scale(1.18) rotate(-5deg); color: var(--sunrise-gold);
  filter: drop-shadow(0 0 8px var(--glow-gold-soft)); }
.amenity h3 { transition: color 0.3s var(--ease); }
.amenity:hover h3 { color: var(--bark-brown); }

/* ================================================================
   GALLERY — vignette + ring glow + caption flourish
   ================================================================ */
.gallery__item { isolation: isolate; }
.gallery__item::after { /* warm vignette + ring that lights on hover */
  content: ""; position: absolute; inset: 0; z-index: 3; pointer-events: none; border-radius: var(--radius-img);
  box-shadow: inset 0 0 0 1px rgba(246,240,228,0.12), inset 0 -60px 70px -40px rgba(11,27,18,0.5);
  opacity: 0.85; transition: box-shadow 0.5s var(--ease), opacity 0.5s var(--ease);
}
.gallery__item:hover::after {
  box-shadow: inset 0 0 0 1.5px var(--glow-gold), inset 0 -70px 80px -40px rgba(11,27,18,0.55);
  opacity: 1;
}
.gallery__item:hover .frame { transform: scale(1.08); }
.gallery__item figcaption { z-index: 4; display: flex; align-items: center; gap: 0.5rem;
  letter-spacing: 0.01em; }
.gallery__item figcaption::before {
  content: ""; width: 18px; height: 1.5px; background: var(--sunrise-gold); flex: 0 0 auto;
  box-shadow: 0 0 8px var(--glow-gold);
}
.gallery__filter { transition: background-color 0.3s var(--ease), color 0.3s var(--ease),
  box-shadow 0.3s var(--ease), border-color 0.3s var(--ease), transform 0.3s var(--ease-spring); }
.gallery__filter:hover { transform: translateY(-2px); border-color: var(--sunrise-gold);
  color: var(--warm-cream); }
.gallery__filter.is-active { box-shadow: 0 8px 22px -10px var(--glow-gold); }

/* ================================================================
   TIMELINE — glowing nodes + lit path
   ================================================================ */
.timeline__list::before {
  background: linear-gradient(var(--sunrise-gold), var(--bark-brown), var(--moss-green));
  -webkit-mask: repeating-linear-gradient(#000 0 8px, transparent 8px 16px);
          mask: repeating-linear-gradient(#000 0 8px, transparent 8px 16px);
  width: 2px; opacity: 0.85;
}
.timeline__dot { transition: transform 0.4s var(--ease-spring), box-shadow 0.4s var(--ease),
  border-color 0.4s var(--ease), background-color 0.4s var(--ease); }
.timeline__dot::after {
  content: ""; position: absolute; inset: -6px; border-radius: var(--radius-pill);
  border: 1px solid var(--glow-gold-soft); opacity: 0; transition: opacity 0.4s var(--ease), transform 0.6s var(--ease-spring);
}
.timeline__step:hover .timeline__dot {
  transform: scale(1.12); border-color: var(--sunrise-gold);
  background: color-mix(in srgb, var(--sunrise-gold) 18%, var(--warm-cream));
  box-shadow: 0 0 24px -2px var(--glow-gold);
}
.timeline__step:hover .timeline__dot::after { opacity: 1; transform: scale(1.15); }
.timeline__step:hover .timeline__dot .icon { color: var(--bark-brown); }
.timeline__card { transition: transform 0.4s var(--ease-spring), box-shadow 0.4s var(--ease), border-color 0.4s var(--ease); }
.timeline__step:hover .timeline__card {
  transform: translateX(6px); box-shadow: var(--shadow-lift), 0 0 0 1px var(--glow-gold-soft);
  border-color: color-mix(in srgb, var(--sunrise-gold) 45%, transparent);
}

/* ================================================================
   PRICING — radiant price + haloed seal + warm card
   ================================================================ */
.pricing-card { overflow: hidden; isolation: isolate;
  transition: transform 0.5s var(--ease-spring), box-shadow 0.5s var(--ease); }
.pricing-card::before { /* dawn halo behind the seal */
  content: ""; position: absolute; top: -40px; left: 50%; transform: translateX(-50%);
  width: 260px; height: 260px; z-index: -1; border-radius: var(--radius-pill);
  background: radial-gradient(circle, var(--glow-gold-soft), transparent 65%);
}
.pricing-card:hover { transform: translateY(-6px); box-shadow: var(--shadow-glow); }
.pricing-card__seal { filter: drop-shadow(0 6px 18px var(--glow-gold-soft));
  transition: transform 0.6s var(--ease-spring); }
.pricing-card:hover .pricing-card__seal { transform: rotate(6deg) scale(1.06); }
.pricing-card__price strong {
  background: linear-gradient(120deg, var(--forest-green), var(--moss-green) 50%, var(--sunrise-gold));
  -webkit-background-clip: text; background-clip: text; color: transparent;
  text-shadow: 0 2px 18px var(--glow-gold-soft); font-size: 3rem;
}
.channel-slot { transition: border-color 0.3s var(--ease), color 0.3s var(--ease),
  background-color 0.3s var(--ease), transform 0.3s var(--ease-spring); }
.channel-slot:hover { border-color: var(--sunrise-gold); color: var(--bark-brown);
  background: color-mix(in srgb, var(--sunrise-gold) 10%, transparent); transform: translateX(3px); }

/* form fields glow on focus-within */
.booking-form label { transition: color 0.3s var(--ease); }
.booking-form label:focus-within { color: var(--sunrise-gold); }
.booking-form input, .booking-form textarea {
  transition: border-color 0.3s var(--ease), box-shadow 0.3s var(--ease), background-color 0.3s var(--ease); }
.booking-form input:hover, .booking-form textarea:hover { border-color: rgba(201,154,73,0.45); }
.booking-form input:focus-visible, .booking-form textarea:focus-visible {
  box-shadow: 0 0 0 3px var(--glow-gold-soft); background: rgba(246,240,228,0.1); }

/* ================================================================
   REVIEWS — luminous quote mark + lift
   ================================================================ */
.review { overflow: hidden; isolation: isolate;
  transition: transform 0.4s var(--ease-spring), box-shadow 0.4s var(--ease), border-color 0.4s var(--ease); }
.review__quote { color: var(--sunrise-gold); fill: var(--sunrise-gold);
  filter: drop-shadow(0 4px 14px var(--glow-gold-soft)); opacity: 0.85;
  transition: transform 0.5s var(--ease-spring), opacity 0.4s var(--ease); }
.review:hover .review__quote { opacity: 1; }
.review:hover { transform: translateY(-6px); box-shadow: var(--shadow-lift), 0 0 0 1px var(--glow-gold-soft);
  border-color: color-mix(in srgb, var(--sunrise-gold) 45%, transparent); }
.review:hover .review__quote { transform: scale(1.1) rotate(-4deg); }

/* ================================================================
   FAQ — ember hover + lit accent on open
   ================================================================ */
.faq__item { position: relative; transition: background-color 0.4s var(--ease); border-radius: 12px; }
.faq__item::before {
  content: ""; position: absolute; left: -2px; top: 16%; bottom: 16%; width: 2px; border-radius: 2px;
  background: linear-gradient(var(--sunrise-gold), var(--bark-brown));
  transform: scaleY(0); transform-origin: center; transition: transform 0.45s var(--ease-spring);
}
.faq__item:has(.faq__q[aria-expanded="true"]) {
  background: linear-gradient(90deg, color-mix(in srgb, var(--sunrise-gold) 9%, transparent), transparent 70%);
}
.faq__item:has(.faq__q[aria-expanded="true"])::before { transform: scaleY(1); }
.faq__q { transition: color 0.3s var(--ease), padding-left 0.3s var(--ease); }
.faq__q:hover { color: var(--bark-brown); padding-left: 8px; }
.faq__q .icon { width: 2rem; height: 2rem; padding: 0.25rem; border-radius: var(--radius-pill);
  transition: transform 0.4s var(--ease-spring), background-color 0.3s var(--ease), box-shadow 0.3s var(--ease); }
.faq__q:hover .icon { background: color-mix(in srgb, var(--sunrise-gold) 18%, transparent);
  box-shadow: 0 0 16px -4px var(--glow-gold); }

/* ================================================================
   CONTACT / FOOTER — dawn glow + tagline shimmer + link sweep
   ================================================================ */
.kontakt__badge { filter: drop-shadow(0 0 30px var(--glow-gold-soft)); animation: float-deco 9s ease-in-out infinite; }
.kontakt__details div { transition: transform 0.3s var(--ease-spring); }
.kontakt__details div:hover { transform: translateY(-3px); }
.kontakt__details div:hover p { color: var(--sunrise-gold); }
.footer__tagline { background-size: 200% auto;
  background-image: linear-gradient(100deg, var(--sunrise-gold), #f0d39a 45%, var(--sunrise-gold));
  -webkit-background-clip: text; background-clip: text; color: transparent;
  animation: shimmer 6s linear infinite; }
.footer__nav a, .footer__legal a { position: relative; width: max-content; transition: color 0.3s var(--ease); }
.footer__nav a::after, .footer__legal a::after {
  content: ""; position: absolute; left: 0; bottom: -2px; height: 1px; width: 0;
  background: var(--sunrise-gold); transition: width 0.3s var(--ease); }
.footer__nav a:hover::after, .footer__legal a:hover::after { width: 100%; }

/* ================================================================
   SCROLL REVEAL — richer entrance + grid stagger
   ================================================================ */
.reveal { transform: translateY(28px) scale(0.985); filter: blur(2px); }
.reveal.is-in { transform: none; filter: none;
  transition: opacity 0.8s var(--ease), transform 0.8s var(--ease-spring), filter 0.8s var(--ease); }
/* stagger children of revealed grids */
.grid.is-in > *, .is-in .grid > * { animation: rise-in 0.7s var(--ease-spring) both; }
.grid.is-in > *:nth-child(2), .is-in .grid > *:nth-child(2) { animation-delay: 0.08s; }
.grid.is-in > *:nth-child(3), .is-in .grid > *:nth-child(3) { animation-delay: 0.16s; }
.grid.is-in > *:nth-child(4), .is-in .grid > *:nth-child(4) { animation-delay: 0.24s; }
.grid.is-in > *:nth-child(5), .is-in .grid > *:nth-child(5) { animation-delay: 0.32s; }
.grid.is-in > *:nth-child(n+6), .is-in .grid > *:nth-child(n+6) { animation-delay: 0.4s; }
@keyframes rise-in { from { opacity: 0; transform: translateY(18px); } to { opacity: 1; transform: none; } }

/* ================================================================
   MOBILE STICKY CTA — ember pulse
   ================================================================ */
.mobile-cta { background: linear-gradient(150deg, #7a5031, var(--bark-brown)); overflow: hidden; }
.mobile-cta.is-visible { box-shadow: 0 16px 36px -16px var(--glow-ember), 0 8px 20px -10px rgba(11,27,18,0.5);
  animation: ember-pulse 3s ease-in-out infinite; }
.mobile-cta .icon { filter: drop-shadow(0 0 6px var(--glow-gold-soft)); }

/* ================================================================
   CUSTOM CURSOR GLOW (created by fx.js; pointer devices only)
   ================================================================ */
.cursor-glow {
  position: fixed; top: 0; left: 0; z-index: 9999; pointer-events: none;
  width: 26px; height: 26px; margin: -13px 0 0 -13px; border-radius: 50%;
  background: radial-gradient(circle, var(--glow-gold) 0%, var(--glow-gold-soft) 40%, transparent 70%);
  mix-blend-mode: screen; opacity: 0;
  transition: opacity 0.3s var(--ease), width 0.25s var(--ease-spring), height 0.25s var(--ease-spring),
    background 0.3s var(--ease);
  will-change: transform;
}
.cursor-glow.is-active { opacity: 0.9; }
.cursor-glow.is-hot { width: 60px; height: 60px; margin: -30px 0 0 -30px;
  background: radial-gradient(circle, rgba(201,154,73,0.6) 0%, var(--glow-gold-soft) 45%, transparent 72%); }
@media (hover: none), (pointer: coarse) { .cursor-glow { display: none; } }

/* tilt/magnetic helpers set inline transforms via fx.js; ensure smoothness */
[data-tilt] { transition: transform 0.3s var(--ease); transform-style: preserve-3d; }
[data-tilt].is-tilting { transition: transform 0.08s linear; }

/* ================================================================
   REDUCED MOTION — strip all ambient motion, keep static polish
   ================================================================ */
@media (prefers-reduced-motion: reduce) {
  body::before,
  .hero__deco, .hero__tagline, .footer__tagline, .kontakt__badge,
  .section--forest::before, .section--ink::before, .section--ink::after,
  .hero__cta .btn--primary, .mobile-cta.is-visible,
  .grid.is-in > *, .is-in .grid > * { animation: none !important; }
  .reveal { filter: none; transform: none; }
  .cursor-glow { display: none; }
  .hero__tagline, .footer__tagline { color: var(--sunrise-gold);
    -webkit-text-fill-color: var(--sunrise-gold); }
}
