/* Smooll v2 — estrutura neutra e portátil */

[data-sw-ready="pin"] {
  position: relative;
}

[data-sw="move"] {
  will-change: transform;
}

[data-sw-ready="fixed"] {
  position: sticky;
  top: 0;
}

[data-sw-ready="window"] {
  position: relative;
  overflow: hidden;
}

[data-sw-ready="window"] > img {
  position: absolute;
  top: 0;
  left: 50%;
  width: 100vw;
  max-width: none;
  height: 100vh;
  object-fit: cover;
  will-change: transform;
}

[data-sw="sections"] {
  position: relative;
  min-height: 100svh;
  overflow: hidden;
  isolation: isolate;
}

[data-sw="sections"] > [data-sw-section] {
  min-height: 100svh;
}

[data-sw-section][data-sw-size="fit"] {
  height: 100svh;
  overflow: hidden;
}

[data-sw-section][data-sw-size="scroll"] {
  height: 100svh;
  overflow-x: hidden;
  overflow-y: auto;
  overscroll-behavior-y: contain;
  scrollbar-gutter: stable;
  touch-action: pan-y;
}

[data-sw="sections"][data-sw-layout="flow"] {
  height: auto;
  overflow: visible;
}

[data-sw="sections"][data-sw-layout="flow"] > [data-sw-section] {
  position: relative;
  inset: auto;
  width: 100%;
  height: auto;
  min-height: 100svh;
  overflow: visible;
}

[data-sw="sections"][data-sw-layout="horizontal"] {
  display: flex;
  flex-wrap: nowrap;
}

[data-sw="sections"][data-sw-layout="horizontal"] > [data-sw-section] {
  width: 100%;
  min-width: 100%;
  flex: 0 0 100%;
}

[data-sw="frames"] { position: relative; z-index: 10; height: 100svh; isolation: isolate; }
[data-sw-frame-stage] { position: sticky; top: 0; width: 100%; height: 100svh; overflow: hidden; }
[data-sw-frame] { visibility: hidden; position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; opacity: 0; }
[data-sw-frame].is-active { visibility: visible; opacity: 1; }

.sw-page-transition {
  position: fixed;
  z-index: 2147483647;
  inset: 0;
  pointer-events: none;
  background: hsl(76 92% 56%);
  display: grid;
  place-items: center;
  overflow: hidden;
  transform-origin: center;
  transition: clip-path .72s cubic-bezier(.76, 0, .24, 1), opacity .55s ease, transform .72s cubic-bezier(.76, 0, .24, 1), filter .55s ease, backdrop-filter .55s ease;
}

.sw-page-transition__loader {
  opacity: 0;
  color: hsl(80 12% 8%);
  font: 800 11px/1.2 ui-monospace, SFMono-Regular, Consolas, monospace;
  letter-spacing: .18em;
  text-transform: uppercase;
  transition: opacity .2s ease;
}
.sw-page-transition__loader::after { content: ""; display: inline-block; width: 1.8em; animation: sw-loading 1s steps(4, end) infinite; }
.sw-page-transition[data-loading="true"][data-state="cover"] .sw-page-transition__loader { opacity: 1; }
@keyframes sw-loading { 0% { content: ""; } 25% { content: "."; } 50% { content: ".."; } 75%, 100% { content: "..."; } }

.sw-page-transition[data-effect="wipe"] { clip-path: inset(100% 0 0); }
.sw-page-transition[data-effect="wipe"][data-state="cover"] { clip-path: inset(0); }
.sw-page-transition[data-effect="wipe"][data-state="leave"] { clip-path: inset(0 0 100%); }
.sw-page-transition[data-effect="fade"] { opacity: 0; background: hsl(220 15% 6%); }
.sw-page-transition[data-effect="fade"][data-state="cover"] { opacity: 1; }
.sw-page-transition[data-effect="fade"][data-state="leave"] { opacity: 0; }
.sw-page-transition[data-effect="slide"], .sw-page-transition[data-effect="slide-left"] { transform: translateX(-100%); background: hsl(264 75% 58%); }
.sw-page-transition[data-effect="slide"][data-state="cover"], .sw-page-transition[data-effect="slide-left"][data-state="cover"] { transform: translateX(0); }
.sw-page-transition[data-effect="slide"][data-state="leave"], .sw-page-transition[data-effect="slide-left"][data-state="leave"] { transform: translateX(100%); }
.sw-page-transition[data-effect="slide-right"] { transform: translateX(100%); background: hsl(18 91% 58%); }
.sw-page-transition[data-effect="slide-right"][data-state="cover"] { transform: translateX(0); }
.sw-page-transition[data-effect="slide-right"][data-state="leave"] { transform: translateX(-100%); }
.sw-page-transition[data-effect="slide-up"] { transform: translateY(100%); background: hsl(202 90% 55%); }
.sw-page-transition[data-effect="slide-up"][data-state="cover"] { transform: translateY(0); }
.sw-page-transition[data-effect="slide-up"][data-state="leave"] { transform: translateY(-100%); }
.sw-page-transition[data-effect="slide-down"] { transform: translateY(-100%); background: hsl(337 88% 60%); }
.sw-page-transition[data-effect="slide-down"][data-state="cover"] { transform: translateY(0); }
.sw-page-transition[data-effect="slide-down"][data-state="leave"] { transform: translateY(100%); }

.sw-page-transition[data-effect="scale"], .sw-page-transition[data-effect="scale-up"] { transform: scale(.01); background: hsl(45 95% 58%); }
.sw-page-transition[data-effect="scale"][data-state="cover"], .sw-page-transition[data-effect="scale-up"][data-state="cover"] { transform: scale(1); }
.sw-page-transition[data-effect="scale"][data-state="leave"], .sw-page-transition[data-effect="scale-up"][data-state="leave"] { transform: scale(1.18); opacity: 0; }
.sw-page-transition[data-effect="scale-down"] { transform: scale(1.3); opacity: 0; background: hsl(155 72% 44%); }
.sw-page-transition[data-effect="scale-down"][data-state="cover"] { transform: scale(1); opacity: 1; }
.sw-page-transition[data-effect="scale-down"][data-state="leave"] { transform: scale(.15); opacity: 0; }

.sw-page-transition[data-effect="flip"] { transform: perspective(1000px) rotateY(-90deg); background: hsl(270 68% 52%); }
.sw-page-transition[data-effect="flip"][data-state="cover"] { transform: perspective(1000px) rotateY(0); }
.sw-page-transition[data-effect="flip"][data-state="leave"] { transform: perspective(1000px) rotateY(90deg); }
.sw-page-transition[data-effect="flip-x"] { transform: perspective(1000px) rotateX(-90deg); background: hsl(30 92% 57%); }
.sw-page-transition[data-effect="flip-x"][data-state="cover"] { transform: perspective(1000px) rotateX(0); }
.sw-page-transition[data-effect="flip-x"][data-state="leave"] { transform: perspective(1000px) rotateX(90deg); }

.sw-page-transition[data-effect="blur"], .sw-page-transition[data-effect="blur-in"], .sw-page-transition[data-effect="blur-out"] { opacity: 0; filter: blur(28px); transform: scale(1.08); background: hsl(220 18% 7% / .94); backdrop-filter: blur(0); }
.sw-page-transition[data-effect="blur"][data-state="cover"], .sw-page-transition[data-effect="blur-in"][data-state="cover"], .sw-page-transition[data-effect="blur-out"][data-state="cover"] { opacity: 1; filter: blur(0); transform: scale(1); backdrop-filter: blur(18px); }
.sw-page-transition[data-effect="blur"][data-state="leave"], .sw-page-transition[data-effect="blur-in"][data-state="leave"], .sw-page-transition[data-effect="blur-out"][data-state="leave"] { opacity: 0; filter: blur(28px); transform: scale(.96); }

.sw-page-transition[data-effect="curtain"] { clip-path: inset(0 50%); background: hsl(0 0% 4%); }
.sw-page-transition[data-effect="curtain"][data-state="cover"] { clip-path: inset(0); }
.sw-page-transition[data-effect="curtain"][data-state="leave"] { clip-path: inset(50% 0); }

@media (prefers-reduced-motion: reduce) {
  [data-sw="move"] {
    will-change: auto;
  }
}
