.home-section { position: relative; isolation: isolate; }
/* Capa 2026: a campanha oficial abre o ciclo; duas cenas reais vêm em seguida. */
.home-hero {
  position: relative;
  min-height: calc(100svh - var(--header-height) - var(--hero-admin-offset, 0px));
  color: var(--paper);
  background:
    radial-gradient(circle at 78% 26%, rgb(70 85 190 / 32%), transparent 32%),
    radial-gradient(circle at 88% 84%, rgb(239 79 47 / 22%), transparent 28%),
    var(--night);
  overflow: hidden;
}
.home-hero::before {
  position: absolute;
  inset: 0;
  background-image: linear-gradient(90deg, rgb(255 255 255 / 3%) 1px, transparent 1px), linear-gradient(rgb(255 255 255 / 3%) 1px, transparent 1px);
  background-size: 72px 72px;
  mask-image: linear-gradient(to right, transparent, black 55%, transparent);
  content: "";
  pointer-events: none;
}
.hero-shape { position: absolute; border-radius: 50%; pointer-events: none; }
.hero-shape--sun { top: -18vw; right: -12vw; width: 46vw; aspect-ratio: 1; border: 1px solid rgb(245 239 230 / 10%); box-shadow: 0 0 0 55px rgb(245 239 230 / 2%), 0 0 0 110px rgb(245 239 230 / 2%); }
.hero-shape--arch { display: none; }
.hero-layout { position: relative; display: grid; grid-template-columns: minmax(300px, .62fr) minmax(620px, 1.38fr); width: min(100% - (2 * var(--edge)), var(--shell-wide)); min-height: calc(100svh - var(--header-height) - var(--hero-admin-offset, 0px)); align-items: stretch; gap: clamp(1.5rem, 3vw, 4rem); }
.hero-copy { position: relative; z-index: 5; display: grid; align-content: center; padding-block: var(--space-6); }
.hero-copy .eyebrow { color: var(--sun); }
.hero-copy h1 { max-width: 7ch; margin-bottom: .25em; font-size: var(--step-5); color: var(--white); }
.hero-lead { max-width: 35ch; margin-bottom: 1.5rem; color: var(--muted-paper); font-size: var(--step-1); line-height: 1.45; }
.hero-actions { margin-bottom: 1.4rem; }
.hero-actions .button--outline { color: var(--paper); border-color: rgb(245 239 230 / 68%); }
.hero-actions .button--outline:hover { color: var(--ink); }
.hero-next { display: inline-flex; width: fit-content; align-items: center; gap: .65rem; color: var(--muted-paper); font-size: .84rem; font-weight: 760; text-decoration: none; }
.hero-next span { display: grid; width: 34px; height: 34px; place-items: center; border: 1px solid rgb(245 239 230 / 35%); border-radius: 50%; }
.hero-stage {
  position: relative;
  align-self: stretch;
  min-height: calc(100svh - var(--header-height) - var(--hero-admin-offset, 0px));
  overflow: hidden;
}
.hero-stage::before, .hero-stage::after { display: none; }
.hero-stage__halo { position: absolute; inset: 5% 0 0; border-radius: 50% 50% 0 0; background: radial-gradient(circle at 52% 32%, rgb(245 185 31 / 15%), transparent 42%); }
.rotator-scene { position: absolute; inset: 0; z-index: 1; opacity: 0; visibility: hidden; transform: translate3d(2.5%, 0, 0); transition: opacity .7s var(--ease-stage), transform .7s var(--ease-stage), visibility 0s linear .7s; }
.rotator-scene.is-active { z-index: 2; opacity: 1; visibility: visible; transform: translate3d(0, 0, 0); transition-delay: 0s; }
.rotator-scene--campaign { display: grid; place-items: center; padding: clamp(1.2rem, 3vw, 2.8rem) 0 clamp(2.2rem, 4vw, 3.5rem); }
.hero-campaign { width: 100%; max-height: 100%; aspect-ratio: 1600 / 838; overflow: hidden; background: #17141e; border: 1px solid rgb(245 239 230 / 20%); border-radius: var(--radius-lg); box-shadow: var(--shadow-stage); }
.hero-campaign picture, .hero-campaign img { width: 100%; height: 100%; }
.hero-campaign img { object-fit: cover; }
.rotator-scene--photos { overflow: hidden; isolation: isolate; }
.hero-ensemble { position: relative; width: 100%; height: 100%; min-height: 100%; }
.hero-ensemble::before { position: absolute; z-index: 0; right: 3%; bottom: 4.5%; left: 1%; height: 22%; background: radial-gradient(ellipse at center, rgb(0 0 0 / 38%), transparent 70%); filter: blur(10px); content: ""; pointer-events: none; }
.hero-ensemble__base { position: absolute; z-index: 7; right: 1%; bottom: 4.2%; left: 0; height: 2px; background: linear-gradient(90deg, transparent, rgb(245 239 230 / 42%) 14%, rgb(245 239 230 / 42%) 86%, transparent); box-shadow: 0 10px 30px rgb(0 0 0 / 45%); pointer-events: none; }
.hero-person { position: absolute; bottom: 4.35%; min-width: 0; margin: 0; transform: translate3d(var(--stage-x, 0), var(--stage-y, 0), 0); transform-origin: center bottom; transition: transform .45s var(--ease-stage); }
.hero-person__image { display: block; width: 100%; height: 100%; object-fit: contain; object-position: center bottom; filter: drop-shadow(0 20px 18px rgb(0 0 0 / 30%)); }
.hero-person--support_left { z-index: 6; left: 0; width: 52%; height: 88%; }
.hero-person--lead { z-index: 5; left: 27%; width: 42%; height: 96%; }
.hero-person--legacy { z-index: 4; left: 60%; width: 27%; height: 74%; }
.hero-person--support_right { z-index: 3; right: 0; width: 26%; height: 72%; }
.rotator-scene.is-active .hero-person { animation: hero-person-enter .82s var(--ease-stage) both; }
.rotator-scene.is-active .hero-person--support_left { animation-delay: .04s; }
.rotator-scene.is-active .hero-person--lead { animation-delay: .11s; }
.rotator-scene.is-active .hero-person--legacy { animation-delay: .18s; }
.rotator-scene.is-active .hero-person--support_right { animation-delay: .25s; }
@keyframes hero-person-enter { from { opacity: 0; transform: translate3d(var(--stage-x, 0), 26px, 0) scale(.965); } }
/* Faixa de campanha, sem repetir a arte da capa. */
.campaign-section { padding-block: 1.25rem; color: var(--paper); background: var(--blue-stage); border-block: 1px solid rgb(245 239 230 / 16%); }
.campaign-frame--compact { display: block; }
.campaign-copy--compact { display: grid; grid-template-columns: auto minmax(220px, 1fr) minmax(260px, 1fr) auto; align-items: center; gap: clamp(1rem, 3vw, 2.5rem); }
.campaign-copy--compact .eyebrow, .campaign-copy--compact h2, .campaign-copy--compact p { margin: 0; }
.campaign-copy--compact .eyebrow { color: var(--sun); white-space: nowrap; }
.campaign-copy--compact h2 { color: var(--white); font-size: clamp(1.55rem, 1.25rem + 1vw, 2.25rem); }
.campaign-copy--compact p { color: var(--muted-paper); font-size: .9rem; }
.home-agenda { background: var(--paper); }
.home-agenda__list { background: rgb(255 253 249 / 62%); border-radius: var(--radius-md); }
.artist-section { color: var(--paper); background: var(--teal); overflow: hidden; }
.artist-section::before { position: absolute; inset: 0; background: radial-gradient(circle at 18% 25%, rgb(245 185 31 / 18%), transparent 27%), linear-gradient(120deg, transparent 55%, rgb(14 12 11 / 14%)); content: ""; pointer-events: none; }
.artist-grid { position: relative; display: grid; grid-template-columns: minmax(360px, .9fr) minmax(420px, 1.1fr); min-height: 690px; align-items: end; gap: var(--space-6); }
.artist-stage { position: relative; height: 600px; align-self: center; margin-block: var(--space-5); overflow: hidden; background: #29272a; border: 1px solid rgb(245 239 230 / 28%); border-radius: var(--radius-lg); box-shadow: var(--shadow-stage); }
.artist-photo { width: 100%; height: 100%; object-fit: cover; object-position: center 14%; }
.artist-copy { align-self: center; padding-block: var(--space-6); }
.artist-copy h2 { max-width: 10ch; color: var(--white); font-size: var(--step-4); }
.artist-copy__summary { max-width: 42ch; color: var(--muted-paper); font-size: var(--step-1); }
.characters-section { padding-block: var(--space-7); color: var(--paper); background: var(--night); overflow: hidden; }
.characters-section .section-heading h2 { color: var(--white); }
.characters-section .section-heading > p:last-child { color: var(--muted-paper); }
.character-stage-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1.15rem; }
.character-card { position: relative; min-width: 0; overflow: hidden; background: var(--surface-stage); border: 1px solid rgb(245 239 230 / 24%); border-radius: var(--radius-lg); }
.character-card > a { display: grid; grid-template-rows: auto minmax(0, 1fr); height: 100%; color: inherit; text-decoration: none; }
.character-card__header { position: relative; z-index: 4; display: flex; min-height: 88px; align-items: flex-start; justify-content: space-between; gap: .8rem; padding: 1rem 1rem .75rem; background: rgb(14 12 11 / 18%); }
.character-card__header strong { max-width: 10ch; color: var(--white); font-family: var(--font-display); font-size: clamp(1.45rem, 1.12rem + 1.25vw, 2.25rem); font-weight: 760; line-height: .96; letter-spacing: -.045em; }
.character-card__header small { flex: 0 0 auto; max-width: none; padding: .4rem .62rem; color: var(--ink); background: var(--paper); border-radius: var(--radius-pill); font-size: .63rem; font-weight: 800; line-height: 1; white-space: nowrap; }
.character-card__media { position: relative; min-height: 500px; overflow: hidden; background: linear-gradient(150deg, rgb(255 255 255 / 8%), transparent 55%); }
.character-card:nth-child(1) { background: #c88e10; }
.character-card:nth-child(2) { background: #ce492e; }
.character-card:nth-child(3) { background: #166f67; }
.character-photo { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: center 12%; transition: opacity .55s var(--ease-stage), transform .65s var(--ease-stage); }
.character-photo--primary { opacity: 1; transform: scale(1); }
.character-photo--gesture { opacity: 0; transform: scale(1.025); }
.character-card:is(:hover, :focus-within, :focus-visible, .is-alternate) .character-photo--primary { opacity: 0; transform: scale(1.025); }
.character-card:is(:hover, :focus-within, :focus-visible, .is-alternate) .character-photo--gesture { opacity: 1; transform: scale(1); }
.character-marquee { width: 100vw; margin-top: var(--space-5); margin-left: calc(50% - 50vw); overflow: hidden; border-block: 1px solid rgb(245 239 230 / 20%); }
.marquee-rail { --marquee-shift: -16.6666667%; display: flex; width: max-content; animation: marquee-loop 24s linear infinite; }
.marquee-group { display: flex; flex: 0 0 auto; align-items: center; gap: 1.1rem; padding: .8rem .55rem; }
.marquee-group span { color: var(--white); font-family: var(--font-display); font-size: clamp(1.5rem, 1.18rem + 1.3vw, 2.35rem); font-weight: 730; white-space: nowrap; }
.marquee-group i { color: var(--sun); font-style: normal; }
@keyframes marquee-loop { to { transform: translateX(var(--marquee-shift)); } }
.full-fold { min-height: max(720px, calc(100svh - var(--header-height))); }
.product-section { display: grid; align-items: stretch; background: var(--sun); overflow: hidden; }
.product-section__layout { display: grid; grid-template-columns: minmax(340px, .72fr) minmax(520px, 1.28fr); align-items: center; gap: clamp(1rem, 4vw, 4rem); padding-block: var(--space-6) 0; }
.product-section__copy { position: relative; z-index: 2; align-self: center; }
.product-section__copy h2 { max-width: 10ch; font-size: var(--step-4); }
.product-section__visual { position: relative; height: min(78svh, 700px); align-self: end; }
.product-section__visual::before { position: absolute; right: 6%; bottom: 1.5%; left: 6%; height: 1px; background: rgb(23 19 16 / 45%); content: ""; }
.product-section__visual::after { position: absolute; right: 10%; bottom: 0; left: 10%; height: 25px; background: radial-gradient(ellipse, rgb(23 19 16 / 25%), transparent 70%); content: ""; }
.product-photo { position: relative; z-index: 2; width: 100%; height: 100%; object-fit: contain; object-position: bottom center; transition: transform .6s var(--ease-stage); }
.product-section:hover .product-photo { transform: translateY(-8px) rotate(-1deg); }
/* Jogo. */
.game-section { display: grid; color: var(--paper); background: var(--teal); overflow: hidden; }
.game-section::before { position: absolute; inset: 0; background: radial-gradient(circle at 78% 22%, rgb(245 185 31 / 18%), transparent 25%), linear-gradient(135deg, transparent 55%, rgb(14 12 11 / 18%)); content: ""; pointer-events: none; }
.game-section__layout { position: relative; display: grid; align-content: center; min-height: inherit; padding-block: var(--space-6); }
.game-section__kicker { position: absolute; z-index: 5; top: var(--space-6); left: 0; }
.game-section .cris-game-cta { min-height: min(76svh, 690px); }
.game-section .cris-game-cta__media--photo { position: relative; width: min(100%, 560px); height: min(72svh, 660px); align-self: center; justify-self: center; overflow: hidden; background: #29272a; border: 1px solid rgb(245 239 230 / 28%); border-radius: var(--radius-lg); box-shadow: var(--shadow-stage); }
.game-section .cris-game-cta__media--photo img { width: 100%; height: 100%; object-fit: contain; object-position: center; }
/* Corporativo. */
.corporate-section { color: var(--ink); background: var(--orange); overflow: hidden; }
.corporate-stage { display: grid; grid-template-columns: minmax(350px, .8fr) minmax(540px, 1.2fr); min-height: 720px; align-items: stretch; gap: var(--space-5); }
.corporate-copy { align-self: center; padding-block: var(--space-6); }
.corporate-copy h2 { max-width: 9ch; font-size: var(--step-4); }
.corporate-copy p { max-width: 43ch; }
.corporate-portrait { position: relative; min-height: 620px; align-self: end; overflow: hidden; }
.corporate-portrait::before, .corporate-portrait::after { display: none; }
.corporate-rotator__scenes, .corporate-rotator__scene { position: absolute; inset: 0; }
.corporate-rotator__scene { z-index: 2; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); align-items: end; gap: .8rem; padding: var(--space-5) 0 var(--space-4); opacity: 0; visibility: hidden; transition: opacity .6s var(--ease-stage), visibility 0s linear .6s; }
.corporate-rotator__scene.is-active { opacity: 1; visibility: visible; transition-delay: 0s; }
.corporate-photo-card { height: 86%; overflow: hidden; background: #29272a; border: 1px solid rgb(23 19 16 / 35%); border-radius: var(--radius-lg); box-shadow: 0 18px 32px rgb(23 19 16 / 18%); }
.corporate-photo-card--1 { height: 100%; }
.corporate-photo { width: 100%; height: 100%; object-fit: cover; object-position: center 12%; }
/* Contato final. */
.final-contact { padding-block: var(--space-7); background: var(--paper); }
.final-contact-grid { display: grid; grid-template-columns: minmax(300px, .9fr) minmax(360px, 1.1fr); align-items: end; gap: var(--space-6); }
.final-contact h2 { max-width: 10ch; margin: 0; font-size: var(--step-4); }
.final-contact__action { display: grid; justify-items: start; }
.final-contact__action p { max-width: 45ch; font-size: var(--step-1); }
@media (prefers-reduced-motion: reduce) {
  .marquee-rail { animation: none; transform: none; }
  .marquee-group[aria-hidden="true"] { display: none; }
  .rotator-scene:not(.is-active), .corporate-rotator__scene:not(.is-active) { display: none; }
  .rotator-scene.is-active .hero-person { animation: none; transform: none; }
  .product-section:hover .product-photo { transform: none; }
}
