/*
 * SAG FX : mécanique et préréglages des effets.
 * Aucun état masqué hors de .sag-fx-ready (posé par le JS, jamais en
 * « réduire les animations ») : sans script, tout est visible et final.
 * Couleurs et look : laissés au CSS du document (variables --sag-fx-*).
 */

/* ---------- Apparitions : data-sag-reveal="preset" ---------- */
.sag-fx-ready [data-sag-reveal] {
	transition-property: opacity, transform, filter, clip-path;
	transition-duration: var(--sag-duration, 700ms);
	transition-delay: var(--sag-delay, 0ms);
	transition-timing-function: var(--sag-fx-ease, cubic-bezier(.2, .7, .2, 1));
}
.sag-fx-ready [data-sag-reveal]:not(.is-sag-revealed) { opacity: 0; }
.sag-fx-ready [data-sag-reveal="up"]:not(.is-sag-revealed) { transform: translateY(40px); }
.sag-fx-ready [data-sag-reveal="down"]:not(.is-sag-revealed) { transform: translateY(-40px); }
.sag-fx-ready [data-sag-reveal="left"]:not(.is-sag-revealed) { transform: translateX(-56px); }
.sag-fx-ready [data-sag-reveal="right"]:not(.is-sag-revealed) { transform: translateX(56px); }
.sag-fx-ready [data-sag-reveal="zoom"]:not(.is-sag-revealed),
.sag-fx-ready [data-sag-reveal="zoom-in"]:not(.is-sag-revealed) { transform: scale(.86); }
.sag-fx-ready [data-sag-reveal="zoom-out"]:not(.is-sag-revealed) { transform: scale(1.14); }
.sag-fx-ready [data-sag-reveal="blur"]:not(.is-sag-revealed) { filter: blur(14px); }
.sag-fx-ready [data-sag-reveal="blur-up"]:not(.is-sag-revealed) { filter: blur(10px); transform: translateY(30px); }
.sag-fx-ready [data-sag-reveal="rise"]:not(.is-sag-revealed) { transform: translateY(60px) scale(.96); }
.sag-fx-ready [data-sag-reveal="drop"]:not(.is-sag-revealed) { transform: translateY(-60px) scale(1.04); }
.sag-fx-ready [data-sag-reveal="rotate"]:not(.is-sag-revealed) { transform: rotate(-6deg) translateY(30px); transform-origin: left bottom; }
.sag-fx-ready [data-sag-reveal="flip-x"]:not(.is-sag-revealed) { transform: perspective(900px) rotateX(70deg); transform-origin: top; }
.sag-fx-ready [data-sag-reveal="flip-y"]:not(.is-sag-revealed) { transform: perspective(900px) rotateY(-70deg); transform-origin: left; }
.sag-fx-ready [data-sag-reveal="skew"]:not(.is-sag-revealed) { transform: skewY(6deg) translateY(30px); }
.sag-fx-ready [data-sag-reveal="swing"]:not(.is-sag-revealed) { transform: perspective(900px) rotateY(25deg) rotateZ(-3deg); }
.sag-fx-ready [data-sag-reveal="clip"],
.sag-fx-ready [data-sag-reveal="clip-up"] { clip-path: inset(0 0 0 0); }
.sag-fx-ready [data-sag-reveal="clip"]:not(.is-sag-revealed),
.sag-fx-ready [data-sag-reveal="clip-up"]:not(.is-sag-revealed) { opacity: 1; clip-path: inset(100% 0 0 0); }
.sag-fx-ready [data-sag-reveal="clip-down"] { clip-path: inset(0 0 0 0); }
.sag-fx-ready [data-sag-reveal="clip-down"]:not(.is-sag-revealed) { opacity: 1; clip-path: inset(0 0 100% 0); }
.sag-fx-ready [data-sag-reveal="clip-left"] { clip-path: inset(0 0 0 0); }
.sag-fx-ready [data-sag-reveal="clip-left"]:not(.is-sag-revealed) { opacity: 1; clip-path: inset(0 100% 0 0); }
.sag-fx-ready [data-sag-reveal="clip-right"] { clip-path: inset(0 0 0 0); }
.sag-fx-ready [data-sag-reveal="clip-right"]:not(.is-sag-revealed) { opacity: 1; clip-path: inset(0 0 0 100%); }
.sag-fx-ready [data-sag-reveal="circle"] { clip-path: circle(150% at 50% 50%); }
.sag-fx-ready [data-sag-reveal="circle"]:not(.is-sag-revealed) { opacity: 1; clip-path: circle(0% at 50% 50%); }
.sag-fx-ready [data-sag-reveal="diagonal"] { clip-path: polygon(0 0, 200% 0, 0 200%); }
.sag-fx-ready [data-sag-reveal="diagonal"]:not(.is-sag-revealed) { opacity: 1; clip-path: polygon(0 0, 0 0, 0 0); }
.sag-fx-ready [data-sag-reveal="bounce"].is-sag-revealed { animation: sag-fx-bounce .9s var(--sag-delay, 0ms) both; }
@keyframes sag-fx-bounce {
	0% { transform: translateY(40px); } 55% { transform: translateY(-10px); } 75% { transform: translateY(4px); } 100% { transform: none; }
}

/* ---------- Cascade : data-sag-stagger ---------- */
.sag-fx-ready [data-sag-stagger] > * {
	transition: opacity .6s var(--sag-delay, 0ms), transform .6s var(--sag-delay, 0ms) var(--sag-fx-ease, cubic-bezier(.2, .7, .2, 1));
}
.sag-fx-ready [data-sag-stagger]:not(.is-sag-revealed) > * { opacity: 0; transform: translateY(24px); }

/* ---------- Texte découpé : data-sag-split + data-sag-split-anim ---------- */
.sag-fx-ready [data-sag-split] .sag-w,
.sag-fx-ready [data-sag-split] .sag-c {
	display: inline-block;
	transition: opacity .5s, transform .6s, filter .6s;
	transition-delay: calc(var(--sag-i, 0) * var(--sag-step, 60ms));
	transition-timing-function: var(--sag-fx-ease, cubic-bezier(.2, .7, .2, 1));
}
.sag-fx-ready [data-sag-split]:not(.is-sag-revealed) .sag-w,
.sag-fx-ready [data-sag-split]:not(.is-sag-revealed) .sag-c { opacity: 0; transform: translateY(.6em); }
.sag-fx-ready [data-sag-split-anim="fade"]:not(.is-sag-revealed) :is(.sag-w, .sag-c) { transform: none; }
.sag-fx-ready [data-sag-split-anim="blur"]:not(.is-sag-revealed) :is(.sag-w, .sag-c) { transform: none; filter: blur(8px); }
.sag-fx-ready [data-sag-split-anim="flip"]:not(.is-sag-revealed) :is(.sag-w, .sag-c) { transform: perspective(400px) rotateX(90deg); }
.sag-fx-ready [data-sag-split-anim="drop"]:not(.is-sag-revealed) :is(.sag-w, .sag-c) { transform: translateY(-.8em); }
.sag-fx-ready [data-sag-split-anim="zoom"]:not(.is-sag-revealed) :is(.sag-w, .sag-c) { transform: scale(.3); }
.sag-fx-ready [data-sag-split-anim="wave"].is-sag-revealed :is(.sag-w, .sag-c) {
	animation: sag-fx-wave 2.4s calc(var(--sag-i, 0) * 80ms) ease-in-out infinite;
}
@keyframes sag-fx-wave { 0%, 100% { transform: none; } 50% { transform: translateY(-.18em); } }

/* ---------- Mots qui s'allument : data-sag-scrub-text ---------- */
.sag-fx-ready [data-sag-scrub-text] .sag-w {
	opacity: clamp(.18, calc((var(--sag-progress, 0) * var(--sag-n, 1) - var(--sag-i, 0)) * 1), 1);
	transition: opacity .15s linear;
}

/* ---------- Machine à écrire ---------- */
.sag-fx-ready [data-sag-typewriter].is-sag-typing::after {
	content: '';
	display: inline-block;
	width: .08em;
	height: 1em;
	margin-left: .06em;
	vertical-align: -.1em;
	background: currentColor;
	animation: sag-fx-caret .8s steps(1) infinite;
}
@keyframes sag-fx-caret { 50% { opacity: 0; } }

/* ---------- Mots qui tournent : data-sag-rotate ---------- */
[data-sag-rotate].is-sag-ready { display: inline-grid; }
[data-sag-rotate].is-sag-ready > * {
	grid-area: 1 / 1;
	transition: opacity .45s, transform .45s;
}
[data-sag-rotate].is-sag-ready > :not(.is-sag-active) { opacity: 0; transform: translateY(.6em); }

/* ---------- Surlignage : data-sag-highlight ---------- */
[data-sag-highlight] { position: relative; }
.sag-fx-ready [data-sag-highlight-style="marker"] {
	background: linear-gradient(transparent 58%, var(--sag-fx-highlight, rgba(255, 22, 76, .28)) 58%) no-repeat 0 0 / 0% 100%;
	transition: background-size 1s var(--sag-fx-ease, ease);
}
.sag-fx-ready [data-sag-highlight-style="marker"].is-sag-highlighted { background-size: 100% 100%; }
.sag-fx-ready [data-sag-highlight-style="underline"] {
	background: linear-gradient(currentColor, currentColor) no-repeat 0 100% / 0% .08em;
	transition: background-size .9s var(--sag-fx-ease, ease);
}
.sag-fx-ready [data-sag-highlight-style="underline"].is-sag-highlighted { background-size: 100% .08em; }
.sag-fx-ready [data-sag-highlight-style="strike"] {
	background: linear-gradient(currentColor, currentColor) no-repeat 0 55% / 0% .07em;
	transition: background-size .8s var(--sag-fx-ease, ease);
}
.sag-fx-ready [data-sag-highlight-style="strike"].is-sag-highlighted { background-size: 100% .07em; }
.sag-fx-ready [data-sag-highlight-style="box"] { box-shadow: inset 0 0 0 0 var(--sag-fx-highlight, rgba(255, 22, 76, .28)); transition: box-shadow .9s; }
.sag-fx-ready [data-sag-highlight-style="box"].is-sag-highlighted { box-shadow: inset 0 -1.2em 0 0 var(--sag-fx-highlight, rgba(255, 22, 76, .28)); }
.sag-fx-ready [data-sag-highlight-style="circle"]::after {
	content: '';
	position: absolute;
	inset: -.2em -.35em;
	border: .08em solid var(--sag-fx-highlight-line, currentColor);
	border-radius: 50%;
	clip-path: inset(0 100% 0 0);
	transition: clip-path 1s var(--sag-fx-ease, ease);
	pointer-events: none;
}
.sag-fx-ready [data-sag-highlight-style="circle"].is-sag-highlighted::after { clip-path: inset(0 0 0 0); }

/* ---------- Bandeau défilant : data-sag-marquee ---------- */
[data-sag-marquee].is-sag-running { overflow: hidden; }
[data-sag-marquee].is-sag-running .sag-marquee__track {
	display: flex;
	gap: var(--sag-fx-marquee-gap, 3rem);
	width: max-content;
	animation: sag-fx-marquee var(--sag-marquee-duration, 30s) linear infinite;
}
[data-sag-marquee][data-sag-marquee-dir="right"] .sag-marquee__track { animation-direction: reverse; }
[data-sag-marquee]:hover .sag-marquee__track,
[data-sag-marquee]:focus-within .sag-marquee__track,
[data-sag-marquee].is-sag-paused .sag-marquee__track { animation-play-state: paused; }
@keyframes sag-fx-marquee { to { transform: translateX(-50%); } }

/* ---------- Anneau et barres ---------- */
/* bars : la bibliothèque ne pose que --sag-value (0→1) et --sag-i ; la barre
   elle-même est dessinée par le CSS du document (souvent sur ::before), jamais
   en déformant l'élément qui porte le libellé. */

/* ---------- Ambiances : data-sag-ambient ---------- */
[data-sag-ambient] { position: relative; isolation: isolate; }
[data-sag-ambient].is-sag-paused,
[data-sag-ambient].is-sag-paused::before,
[data-sag-ambient].is-sag-paused::after { animation-play-state: paused !important; }
.sag-fx-ready [data-sag-ambient="aurora"]::before {
	content: '';
	position: absolute;
	inset: -20%;
	z-index: -1;
	background: radial-gradient(40% 50% at 20% 30%, var(--sag-fx-a, rgba(255, 22, 76, .35)), transparent 70%),
		radial-gradient(40% 50% at 80% 60%, var(--sag-fx-b, rgba(148, 8, 48, .35)), transparent 70%);
	filter: blur(40px);
	animation: sag-fx-aurora 14s ease-in-out infinite alternate;
	pointer-events: none;
}
@keyframes sag-fx-aurora { to { transform: translate3d(6%, -4%, 0) rotate(8deg) scale(1.1); } }
.sag-fx-ready [data-sag-ambient="grain"]::after {
	content: '';
	position: absolute;
	inset: 0;
	z-index: 1;
	opacity: var(--sag-fx-grain, .08);
	background-image: radial-gradient(currentColor .5px, transparent .6px);
	background-size: 3px 3px;
	animation: sag-fx-grain .8s steps(4) infinite;
	pointer-events: none;
}
@keyframes sag-fx-grain { 25% { transform: translate(1px, -1px); } 50% { transform: translate(-1px, 1px); } 75% { transform: translate(1px, 1px); } }
.sag-fx-ready [data-sag-ambient="glow"] { animation: sag-fx-glow 3.2s ease-in-out infinite; }
@keyframes sag-fx-glow { 50% { box-shadow: 0 0 0 .5rem var(--sag-fx-glow, rgba(255, 22, 76, .18)); } }
.sag-fx-ready [data-sag-ambient="float"] { animation: sag-fx-float 5s ease-in-out infinite; }
@keyframes sag-fx-float { 50% { transform: translateY(-12px); } }
.sag-fx-ready [data-sag-ambient="pulse"] { animation: sag-fx-pulse 2.4s ease-in-out infinite; }
@keyframes sag-fx-pulse { 50% { transform: scale(1.04); } }
.sag-fx-ready [data-sag-ambient="breathe"] { animation: sag-fx-breathe 6s ease-in-out infinite; }
@keyframes sag-fx-breathe { 50% { opacity: .75; filter: saturate(1.2); } }
.sag-fx-ready [data-sag-ambient="blob"] { animation: sag-fx-blob 12s ease-in-out infinite; }
@keyframes sag-fx-blob {
	0%, 100% { border-radius: 42% 58% 60% 40% / 45% 45% 55% 55%; }
	50% { border-radius: 60% 40% 38% 62% / 58% 38% 62% 42%; }
}
.sag-fx-ready [data-sag-ambient="shine"] {
	background-image: linear-gradient(110deg, transparent 35%, var(--sag-fx-shine, rgba(255, 255, 255, .55)) 50%, transparent 65%);
	background-size: 250% 100%;
	animation: sag-fx-shine 3.5s linear infinite;
}
.sag-fx-ready [data-sag-ambient="shine"]:is(h1, h2, h3, h4, p, span, strong) {
	background-image: linear-gradient(110deg, currentColor 35%, var(--sag-fx-shine, #FF164C) 50%, currentColor 65%);
	-webkit-background-clip: text;
	background-clip: text;
	-webkit-text-fill-color: transparent;
}
@keyframes sag-fx-shine { from { background-position: 150% 0; } to { background-position: -150% 0; } }
.sag-fx-ready [data-sag-ambient="gradient"] {
	background: linear-gradient(120deg, var(--sag-fx-a, #FF164C), var(--sag-fx-b, #940830), var(--sag-fx-c, #FF164C));
	background-size: 300% 300%;
	animation: sag-fx-gradient 10s ease infinite;
}
@keyframes sag-fx-gradient { 50% { background-position: 100% 50%; } }
.sag-fx-ready [data-sag-ambient="orbit"] { animation: sag-fx-orbit 18s linear infinite; }
@keyframes sag-fx-orbit { to { transform: rotate(360deg); } }

/* ---------- Particules et confettis ---------- */
.has-sag-particles { position: relative; isolation: isolate; }
.sag-particles { position: absolute; inset: 0; z-index: -1; width: 100%; height: 100%; pointer-events: none; }
.has-sag-confetti { position: relative; }
.sag-confetti { position: absolute; z-index: 5; width: 0; height: 0; pointer-events: none; }
.sag-confetti__bit {
	position: absolute;
	width: 7px;
	height: 11px;
	background: var(--sag-fx-confetti, #FF164C);
	animation: sag-fx-confetti 1.1s cubic-bezier(.2, .7, .3, 1) forwards;
}
.sag-confetti__bit:nth-child(3n) { background: var(--sag-fx-confetti-2, #940830); }
.sag-confetti__bit:nth-child(3n + 1) { background: var(--sag-fx-confetti-3, #FFD400); }
@keyframes sag-fx-confetti {
	to { opacity: 0; transform: rotate(var(--sag-a)) translateY(calc(var(--sag-d) * -1)) rotate(540deg); }
}

/* ---------- Défilement ---------- */
.is-sag-parallax { transform: translate3d(0, var(--sag-parallax-y, 0px), 0); will-change: transform; }
.sag-fx-ready [data-sag-scroll="zoom"] { transform: scale(calc(.85 + var(--sag-progress, .5) * .3)); }
.sag-fx-ready [data-sag-scroll="rotate"] { transform: rotate(calc((var(--sag-progress, .5) - .5) * 20deg)); }
.sag-fx-ready [data-sag-scroll="fade"] { opacity: calc(1 - abs(var(--sag-progress, .5) - .5) * 1.6); }
.sag-fx-ready [data-sag-scroll="slide"] { transform: translateX(calc((var(--sag-progress, .5) - .5) * -30%)); }
.sag-fx-ready [data-sag-scroll="blur"] { filter: blur(calc(abs(var(--sag-progress, .5) - .5) * 16px)); }
.sag-fx-ready [data-sag-scroll="clip"] { clip-path: inset(calc((1 - min(var(--sag-progress, 1) * 2, 1)) * 30%) round 1rem); }
.sag-fx-ready [data-sag-scroll="tilt"] { transform: perspective(1000px) rotateX(calc((.5 - var(--sag-progress, .5)) * 30deg)); }
.sag-fx-ready [data-sag-scroll="color"] { filter: grayscale(calc(1 - min(var(--sag-progress, 1) * 2, 1))); }
[data-sag-progress] { transform-origin: left center; }
.is-sag-pinned [data-sag-step] { transition: opacity .5s, transform .5s; }
.sag-fx-ready .is-sag-pinned [data-sag-step]:not(.is-sag-active) { opacity: .25; }
.sag-hscroll__track {
	display: flex;
	overflow-x: auto;
	scroll-snap-type: x mandatory;
	scrollbar-width: thin;
}
.sag-hscroll__track > * { flex: 0 0 auto; scroll-snap-align: start; }
.is-sag-stacked > * { position: sticky; top: calc(var(--sag-fx-stack-top, 6rem) + var(--sag-i, 0) * 1rem); }
.sag-fx-ready .is-sag-stacked > * {
	transform: scale(calc(1 - var(--sag-stack, 0) * .06));
	filter: brightness(calc(1 - var(--sag-stack, 0) * .25));
	transform-origin: center top;
}
.sag-fx-ready .is-sag-drawing :is(path, line, polyline, polygon, circle, rect) {
	stroke-dasharray: 1;
	stroke-dashoffset: calc(1 - var(--sag-draw, 1));
}
.sag-fx-ready [data-sag-skew] { transform: skewY(calc(var(--sag-velocity, 0) * 3deg)); }
.sag-fx-ready [data-sag-timeline]::before { transform: scaleY(var(--sag-progress, 1)); transform-origin: top; }
.sag-fx-ready [data-sag-timeline] [data-sag-event] { transition: opacity .6s, transform .6s; }
.sag-fx-ready [data-sag-timeline] [data-sag-event]:not(.is-sag-revealed) { opacity: 0; transform: translateX(-20px); }
[data-sag-backtop] { transition: opacity .3s, transform .3s; }
.sag-fx-ready [data-sag-backtop]:not(.is-sag-visible) { opacity: 0; transform: translateY(12px); pointer-events: none; }

/* ---------- Pointeur ---------- */
.is-sag-tilt {
	transform: perspective(900px) rotateX(var(--sag-rx, 0deg)) rotateY(var(--sag-ry, 0deg));
	transition: transform .25s ease-out;
	transform-style: preserve-3d;
}
.is-sag-tilt.is-sag-hover { transition-duration: .06s; }
[data-sag-magnetic] { transform: translate(var(--sag-mx, 0px), var(--sag-my, 0px)); transition: transform .25s ease-out; }
[data-sag-spotlight] { position: relative; isolation: isolate; }
[data-sag-spotlight]::after {
	content: '';
	position: absolute;
	inset: 0;
	z-index: -1;
	background: radial-gradient(22rem circle at var(--sag-x, 50%) var(--sag-y, 50%), var(--sag-fx-spotlight, rgba(255, 22, 76, .18)), transparent 60%);
	opacity: 0;
	transition: opacity .3s;
	pointer-events: none;
}
[data-sag-spotlight].is-sag-hover::after { opacity: 1; }
[data-sag-depth] { transform: translate3d(var(--sag-dx, 0px), var(--sag-dy, 0px), 0); transition: transform .3s ease-out; }
.is-sag-hover-media { position: relative; }
.is-sag-hover-media img {
	position: absolute;
	top: 0;
	left: 0;
	z-index: 3;
	width: var(--sag-fx-hover-media-width, 14rem);
	opacity: 0;
	transform: translate(calc(var(--sag-x, 0px) + 1rem), calc(var(--sag-y, 0px) - 50%)) scale(.9);
	transition: opacity .25s, transform .12s ease-out;
	pointer-events: none;
}
.is-sag-hover-media .is-sag-hover img { opacity: 1; transform: translate(calc(var(--sag-x, 0px) + 1rem), calc(var(--sag-y, 0px) - 50%)) scale(1); }
.has-sag-ripple { position: relative; overflow: hidden; }
.has-sag-ripple.is-sag-rippling::after {
	content: '';
	position: absolute;
	top: var(--sag-ry, 50%);
	left: var(--sag-rx, 50%);
	width: 12px;
	height: 12px;
	border-radius: 50%;
	background: var(--sag-fx-ripple, rgba(255, 255, 255, .45));
	transform: translate(-50%, -50%) scale(0);
	animation: sag-fx-ripple .6s ease-out;
	pointer-events: none;
}
@keyframes sag-fx-ripple { to { transform: translate(-50%, -50%) scale(40); opacity: 0; } }
.has-sag-cursor { position: relative; }
.sag-cursor {
	position: absolute;
	top: 0;
	left: 0;
	z-index: 4;
	display: grid;
	place-items: center;
	min-width: 2.4rem;
	min-height: 2.4rem;
	padding: .3rem .7rem;
	border-radius: 999px;
	background: var(--sag-fx-cursor, #FF164C);
	color: var(--sag-fx-cursor-text, #fff);
	font-size: .8rem;
	opacity: 0;
	transform: translate(calc(var(--sag-cx, 0px) - 50%), calc(var(--sag-cy, 0px) - 50%)) scale(.5);
	transition: opacity .2s, transform .1s linear;
	pointer-events: none;
}
.has-sag-cursor.is-sag-hover .sag-cursor { opacity: 1; transform: translate(calc(var(--sag-cx, 0px) - 50%), calc(var(--sag-cy, 0px) - 50%)) scale(1); }

/* ---------- Composants ---------- */
.sag-carousel__track {
	display: flex;
	overflow-x: auto;
	scroll-snap-type: x mandatory;
	scrollbar-width: none;
}
.sag-carousel__track::-webkit-scrollbar { display: none; }
.sag-carousel__track > * { flex: 0 0 100%; scroll-snap-align: start; }
.sag-carousel__dots { display: flex; gap: .5rem; justify-content: center; margin-top: 1rem; }
.sag-carousel__dot { width: .7rem; height: .7rem; padding: 0; border: 0; border-radius: 50%; background: currentColor; opacity: .3; cursor: pointer; }
.sag-carousel__dot[aria-current="true"] { opacity: 1; }
.is-sag-compare { position: relative; overflow: hidden; }
.is-sag-compare img { display: block; width: 100%; }
.is-sag-compare img:nth-of-type(2) { position: absolute; inset: 0; height: 100%; object-fit: cover; clip-path: inset(0 0 0 var(--sag-split, 50%)); }
.is-sag-compare::after {
	content: '';
	position: absolute;
	top: 0;
	bottom: 0;
	left: var(--sag-split, 50%);
	width: 2px;
	background: var(--sag-fx-compare, #fff);
	pointer-events: none;
}
.sag-compare__range { position: absolute; inset: 0; width: 100%; height: 100%; margin: 0; opacity: 0; cursor: ew-resize; }
.sag-compare__range:focus-visible { opacity: .01; outline: none; }
.is-sag-compare:focus-within::after { box-shadow: 0 0 0 3px var(--sag-fx-focus, #FF164C); }
.is-sag-zoomable { cursor: zoom-in; }
.sag-lightbox { max-width: min(96vw, 1400px); padding: 0; border: 0; background: transparent; }
.sag-lightbox::backdrop { background: rgba(0, 0, 0, .86); }
.sag-lightbox__stage img { display: block; max-width: 96vw; max-height: 88vh; width: auto; height: auto; }
.sag-lightbox__close { position: fixed; top: 1rem; right: 1rem; width: 2.8rem; height: 2.8rem; border: 0; border-radius: 50%; background: #fff; color: #000; font-size: 1.6rem; cursor: pointer; }
[data-sag-details] > :not(summary) { overflow: hidden; }
.is-sag-flip { cursor: pointer; perspective: 1200px; }
.sag-fx-ready .is-sag-flip { display: grid; }
.sag-fx-ready .is-sag-flip > * {
	grid-area: 1 / 1;
	backface-visibility: hidden;
	transition: transform .7s var(--sag-fx-ease, cubic-bezier(.2, .7, .2, 1));
}
.sag-fx-ready .is-sag-flip > :nth-child(2) { transform: rotateY(180deg); }
.sag-fx-ready .is-sag-flip.is-sag-flipped > :nth-child(1) { transform: rotateY(-180deg); }
.sag-fx-ready .is-sag-flip.is-sag-flipped > :nth-child(2) { transform: rotateY(0deg); }
.has-sag-tip { position: relative; }
.sag-tip {
	position: absolute;
	bottom: calc(100% + .5rem);
	left: 50%;
	z-index: 6;
	width: max-content;
	max-width: 18rem;
	padding: .45rem .7rem;
	border-radius: .4rem;
	background: var(--sag-fx-tip, #000);
	color: var(--sag-fx-tip-text, #fff);
	font-size: .82rem;
	line-height: 1.35;
	opacity: 0;
	transform: translate(-50%, 4px);
	transition: opacity .18s, transform .18s;
	pointer-events: none;
}
.has-sag-tip.is-sag-tip-open .sag-tip { opacity: 1; transform: translate(-50%, 0); }
.is-sag-clamped { display: -webkit-box; -webkit-line-clamp: var(--sag-lines, 6); -webkit-box-orient: vertical; overflow: hidden; }
.sag-readmore { margin-top: .6rem; padding: 0; border: 0; background: none; color: inherit; font: inherit; font-weight: 600; text-decoration: underline; cursor: pointer; }

@media (prefers-reduced-motion: reduce) {
	[data-sag-marquee] .sag-marquee__track,
	[data-sag-ambient],
	[data-sag-ambient]::before,
	[data-sag-ambient]::after { animation: none !important; }
	.is-sag-parallax,
	.is-sag-tilt,
	[data-sag-magnetic],
	[data-sag-depth] { transform: none !important; }
}
