/* Approved reference composition. Sizes are intentional at 100% browser zoom. */
:root { --shell: min(944px, calc(100% - 48px)); --header-h: 92px; }
.site-header { top: 22px; width: 90%; max-width: 1500px; height: 66px; padding: 0; border: 0; background: transparent; backdrop-filter: none; }
.site-header.is-scrolled { top: 0; padding: 12px 20px; width: min(984px,100%); height: 76px; background: rgba(7,8,6,.95); backdrop-filter: blur(16px); border-radius: 0 0 20px 20px; }
.brand-copy strong { padding: 0; font-size: clamp(20px,2vw,34px); font-weight: 500; letter-spacing: .22em; white-space: nowrap; }
.brand-copy strong::after { display: none; }
.brand-copy small { display: flex; align-items: center; gap: 12px; margin-top: 9px; color: #eee; font-size: clamp(8px,.68vw,12px); letter-spacing: .3em; white-space: nowrap; }
.brand-copy small::before { content: ""; width: 42px; height: 2px; background: #dfb85f; }
.is-scrolled .brand-copy strong, .footer-brand .brand-copy strong { font-size: 20px; }
.main-nav { gap: clamp(26px,3.4vw,60px); }
.main-nav > a { position: relative; color: #f4f2ec; font-size: 17px; letter-spacing: .02em; }
.main-nav > a:first-child { color: #e9bf67; }
.main-nav > a:first-child::after { content: ""; position: absolute; bottom: -12px; left: 0; right: 0; height: 2px; background: #e9bf67; }
.main-nav .nav-contact { display: none; }
.hero { min-height: max(640px,56.28vw); }
.hero-photo { display: block; inset: 0; background: none; clip-path: none; animation: none; }
.hero-photo img { width: 100%; height: 100%; object-fit: cover; object-position: center; }
.hero::before, .hero::after { display: none; }
.hero-content { top: 26%; left: 5.4%; width: 43%; max-width: 670px; transform: none; }
.hero-context { margin-bottom: 18px; font-family: var(--display); font-size: clamp(14px,1.4vw,23px); font-weight: 500; letter-spacing: .16em; text-transform: uppercase; }
.hero h1 { max-width: 670px; margin-bottom: 24px; font-size: clamp(54px,5.65vw,96px); font-weight: 700; line-height: 1.02; letter-spacing: -.015em; }
.hero-copy { max-width: 570px; margin-bottom: 28px; font-size: clamp(17px,1.48vw,24px); line-height: 1.45; color: #eeeae2; }
.hero .cta { min-height: 58px; padding: 10px 20px 10px 24px; font-size: clamp(16px,1.45vw,22px); background: linear-gradient(110deg,#efca79,#c99f4b); }
.hero .cta-arrows { background: transparent; }
.hero-foot { left: 5.4%; right: 5.4%; bottom: 22px; font-size: 12px; }
.opening, .about { padding-top: 80px; }
.opening { padding-bottom: 80px; }
.opening-grid, .about-grid { grid-template-columns: 384px minmax(0,1fr); gap: 90px; }
.opening-image { height: 472px; }
.opening-image.opening-video { width: auto; max-width: 100%; height: clamp(440px,47vw,560px); aspect-ratio: 9/16; margin-inline: auto; }
.opening-image.opening-video video { display: block; width: 100%; height: 100%; object-fit: cover; object-position: center; }
.opening-copy h2, .about-copy h2 { font-size: 50px; line-height: 1.05; }
.opening-copy p, .about-copy p:not(.section-note) { font-size: 16px; line-height: 1.55; }
.about-portrait { height: 536px; }
.about-portrait img { object-position: center; }
.section-note { font-size: 13px; }
.method { padding: 76px 0 86px; }
.method-heading { grid-template-columns: .72fr 1.28fr; gap: 28px; margin-bottom: 34px; }
.method-heading h2 { font-size: 50px; line-height: 1.04; }
.method-gallery figure { width: 376px; height: 432px; }
.method-gallery img { object-position: center top; }
.method-gallery-run figure:last-child img { object-position: 44% center; }
.method-steps { border: 0; grid-template-columns: 1fr; gap: 16px; max-width: 680px; margin: 42px auto 0; padding: 5px 5px 24px; }
.method-step, .method-step:nth-child(-n+2) { padding: 22px 24px; grid-template-columns: 44px 1fr; border: 1px solid rgba(219,178,88,.17); border-radius: 20px; background: linear-gradient(125deg,rgba(215,173,74,.09),rgba(255,255,255,.02)); box-shadow: 0 12px 28px rgba(0,0,0,.14); }
.method-step > span { display: grid; align-self: start; place-items: center; width: 40px; height: 40px; padding: 0; border-radius: 14px; background: #d7ad4a; color: #15120a; font-size: 14px; font-weight: 700; }
.method-step h3 { font-size: 28px; margin-bottom: 8px; line-height: 1.1; }
.method-step p { max-width: none; font-size: 16px; }
.method-action { display: flex; justify-content: center; margin-top: 14px; }
.method-action .cta { min-width: min(100%,320px); justify-content: space-between; }
.clubs { margin-top: 80px; padding-block: 34px 46px; }
.club-marquee { max-width: 1100px; margin-inline: auto; }
.trajectory { padding-block: 76px; }
.trajectory-head { gap: 36px; margin-bottom: 36px; }
.trajectory-head h2 { font-size: 46px; line-height: 1.08; }
.photo-rail { max-width: 1040px; margin-inline: auto; padding-inline: 24px; }
.rail-photo { flex-basis: 340px; height: 420px; }
.rail-photo.rail-tall { flex-basis: 290px; }
.outcome { display: grid; grid-template-columns: 1fr 1fr; min-height: 680px; background: #062c20; }
.outcome-photo { min-width: 0; margin: 0; overflow: hidden; background: #18221c; }
.outcome-photo img { width: 100%; height: 100%; object-fit: cover; object-position: center bottom; }
.outcome-panel { display: flex; flex-direction: column; justify-content: center; padding: clamp(54px,5.2vw,96px) clamp(42px,4.2vw,78px); background: radial-gradient(circle at 100% 0,rgba(38,100,73,.22),transparent 44%),linear-gradient(145deg,#063426,#06271e); }
.outcome-copy .section-note { margin-bottom: 22px; color: #e5b84f; font-size: 16px; letter-spacing: .27em; }
.outcome h2 { max-width: 690px; margin: 0; color: #f7f6f1; font-size: clamp(54px,4.7vw,84px); font-weight: 700; line-height: .98; letter-spacing: -.02em; }
.outcome-lead { max-width: 690px; margin: 24px 0 36px; color: rgba(255,255,255,.9); font-size: clamp(17px,1.45vw,26px); line-height: 1.42; }
.outcome-list { margin: 0; padding: 0; border: 0; list-style: none; }
.outcome-list li { display: grid; grid-template-columns: 88px minmax(0,1fr); gap: 30px; align-items: center; padding: 24px 0; border-bottom: 1px solid rgba(226,180,76,.78); }
.outcome-list li:last-child { border-bottom: 0; }
.outcome-index { align-self: stretch; display: flex; align-items: center; border-right: 2px solid #d9ad48; color: #e1b24d; font-family: var(--display); font-size: 48px; font-weight: 700; line-height: 1; }
.outcome-list h3 { margin: 0 0 4px; color: #f7f6f1; font-family: var(--display); font-size: 25px; letter-spacing: .13em; line-height: 1.1; text-transform: uppercase; }
.outcome-list p { max-width: 620px; margin: 0; color: rgba(255,255,255,.84); font-size: 17px; line-height: 1.48; }
.contact { min-height: 540px; }
.contact-photo { background-image: linear-gradient(90deg,#070806 0%,rgba(7,8,6,.9) 38%,rgba(7,8,6,.12) 72%),url("assets/luan-campo-atleta.jpg"); background-repeat: no-repeat; background-size: cover,auto 145%; background-position: center,right top; }
.contact-copy h2 { max-width: 530px; font-size: 48px; line-height: 1.06; }
.contact-copy > p:not(.section-note) { max-width: 430px; }
[data-reveal="image"] { clip-path: none; transition: none; }
[data-reveal="image"].is-visible { clip-path: none; }
.motion-image { opacity: 0; filter: blur(9px); transform: translateY(16px); transition: opacity .75s ease,filter .75s ease,transform .75s cubic-bezier(.22,1,.36,1); }
.motion-image.is-seen { opacity: 1; filter: blur(0); transform: translateY(0); }
.motion-title .word { display: inline-block; white-space: nowrap; }
.motion-title .char { display: inline-block; opacity: 0; filter: blur(7px); transform: translateY(16px); }
.motion-title.is-seen .char { animation: character-enter .55s cubic-bezier(.22,1,.36,1) var(--char-delay) both; }
@keyframes character-enter { to { opacity: 1; filter: blur(0); transform: none; } }
.aurora-gold { color: #e8bd63; background: linear-gradient(110deg,#bc8b32 0%,#edc777 25%,#fff2c5 40%,#c39336 55%,#f2cd7d 75%,#bc8b32 100%); background-size: 250% 100%; background-clip: text; -webkit-background-clip: text; -webkit-text-fill-color: transparent; animation: gold-shimmer 9s ease-in-out infinite; }
@keyframes gold-shimmer { 50% { background-position: 100% 50%; } }
.motion-list .method-step { opacity: 0; transform: translateY(26px) scale(.96); filter: blur(5px); transition: opacity .6s ease,transform .7s cubic-bezier(.16,1,.3,1),filter .6s ease; transition-delay: var(--step-delay); }
.motion-list.is-seen .method-step { opacity: 1; transform: none; filter: none; }
.section-motion { opacity: .01; transform: translateY(40px); transition: opacity .85s ease,transform .9s cubic-bezier(.16,1,.3,1); }
.section-motion.is-entered { opacity: 1; transform: none; }
[data-stagger-list].motion-list > li { opacity: 0; filter: blur(6px); transform: translateX(34px); transition: opacity .7s ease,filter .7s ease,transform .8s cubic-bezier(.16,1,.3,1); transition-delay: var(--step-delay); }
[data-stagger-list].motion-list.is-seen > li { opacity: 1; filter: none; transform: none; }
@media (max-width: 1050px) and (min-width: 761px) {
  .opening-grid, .about-grid { grid-template-columns: .9fr 1.1fr; gap: 48px; }
  .opening-copy h2, .about-copy h2 { font-size: 42px; }
  .site-header { width: 92%; }
  .hero-content { width: 44%; }
  .hero h1 { font-size: 60px; }
  .hero { min-height: 650px; }
  .outcome { min-height: 620px; }
  .outcome-panel { padding: 48px 42px; }
  .outcome h2 { font-size: 60px; }
  .outcome-list li { grid-template-columns: 66px minmax(0,1fr); gap: 22px; }
  .outcome-index { font-size: 40px; }
}
@media (min-width: 761px) {
  .menu-toggle { display: none; }
  .main-nav { position: static; height: auto; padding: 0; flex-direction: row; align-items: center; justify-content: flex-end; background: transparent; opacity: 1; visibility: visible; pointer-events: auto; transform: none; }
  .main-nav > a { font-family: var(--body); font-size: 17px; line-height: 1.4; }
}
@media (max-width: 760px) {
  :root { --shell: min(540px,calc(100% - 40px)); --header-h: 82px; }
  .site-header { top: 20px; width: calc(100% - 48px); height: 56px; }
  .site-header.is-scrolled { width: 100%; padding-inline: 24px; height: 74px; }
  .brand-copy strong { font-size: clamp(19px,5vw,27px); letter-spacing: .19em; }
  .brand-copy small { font-size: 7px; letter-spacing: .22em; gap: 8px; }
  .brand-copy small::before { width: 26px; }
  .menu-toggle { display: flex; margin-left: 16px; flex-shrink: 0; }
  .menu-toggle span { width: 28px; height: 2px; }
  .main-nav { inset: -20px -24px auto; padding: 110px 32px 60px; }
  .site-header.is-scrolled .main-nav { inset: 0; }
  .main-nav > a { font-size: 36px; }
  .hero { min-height: 0; padding-top: 121vw; padding-bottom: 62px; }
  .hero-photo { inset: 0; }
  .hero-photo img { object-fit: cover; object-position: center top; }
  .hero-content { position: relative; top: auto; bottom: auto; left: auto; right: auto; width: calc(100% - 56px); max-width: 550px; margin-inline: auto; transform: none; }
  .hero-context { font-size: 13px; line-height: 1.5; letter-spacing: .12em; margin-bottom: 14px; }
  .hero h1 { font-size: clamp(44px,11.3vw,68px); max-width: none; margin-bottom: 18px; }
  .hero-copy { font-size: 17px; line-height: 1.5; margin-bottom: 24px; }
  .hero .cta { width: 100%; font-size: 17px; min-height: 58px; }
  .hero-foot { display: none; }
  .opening, .about { padding-top: 58px; }
  .opening { padding-bottom: 58px; }
  .opening-grid, .about-grid { grid-template-columns: 1fr; gap: 34px; }
  .opening-image { height: auto; aspect-ratio: 384/472; max-height: 500px; }
  .opening-image.opening-video { width: min(100%,315px); height: auto; max-height: none; aspect-ratio: 9/16; }
  .opening-copy h2, .about-copy h2 { font-size: 38px; }
  .about-portrait { width: 100%; height: auto; aspect-ratio: 3/4; max-height: 570px; }
  .about-copy { order: 2; }
  .method { padding-block: 58px; }
  .method-heading { grid-template-columns: 1fr; gap: 12px; margin-bottom: 28px; }
  .method-heading .section-note { margin-bottom: 0; }
  .method-heading h2 { font-size: 38px; }
  .method-gallery figure { width: min(72vw,320px); height: min(92vw,390px); }
  .method-steps { margin-top: 30px; }
  .method-step, .method-step:nth-child(-n+2) { grid-template-columns: 34px 1fr; gap: 14px; padding: 20px 16px; border-top: 1px solid rgba(219,178,88,.17); }
  .method-step > span { width: 34px; height: 34px; }
  .method-step h3 { font-size: 26px; }
  .method-action { margin-top: 6px; }
  .method-action .cta { width: 100%; }
  .clubs { margin-top: 54px; }
  .trajectory-head { grid-template-columns: 1fr; gap: 10px; }
  .trajectory-head h2 { font-size: 36px; }
  .rail-photo, .rail-photo.rail-tall { flex-basis: min(76vw,330px); height: 370px; }
  .outcome { grid-template-columns: 1fr; min-height: 0; }
  .outcome-photo { aspect-ratio: 4/5; }
  .outcome-photo img { object-position: center bottom; }
  .outcome-panel { padding: 52px 24px 58px; }
  .outcome-copy .section-note { margin-bottom: 16px; font-size: 13px; }
  .outcome h2 { max-width: 440px; font-size: clamp(48px,14vw,68px); }
  .outcome-lead { margin-block: 20px 30px; font-size: 18px; }
  .outcome-list li { grid-template-columns: 58px minmax(0,1fr); gap: 18px; padding-block: 20px; }
  .outcome-index { font-size: 34px; }
  .outcome-list h3 { font-size: 22px; letter-spacing: .09em; }
  .outcome-list p { font-size: 16px; }
  .contact { min-height: 620px; padding-top: 270px; align-items: end; }
  .contact-photo { background-image: linear-gradient(0deg,#070806 0%,rgba(7,8,6,.95) 40%,rgba(7,8,6,.04) 85%),url("assets/luan-campo-atleta.jpg"); background-size: cover,auto 105%; background-position: center,center top; }
  .contact-copy { padding-bottom: 50px; }
  .contact-copy h2 { font-size: 38px; }
  .footer-grid { grid-template-columns: 1fr; }
}
@media (prefers-reduced-motion: reduce) {
  [data-hero-piece] { opacity: 0; transform: none; animation: reduced-fade-in .6s ease forwards !important; }
  [data-hero-piece]:nth-child(1) { animation-delay: .12s !important; }
  [data-hero-piece]:nth-child(2) { animation-delay: .22s !important; }
  [data-hero-piece]:nth-child(3) { animation-delay: .32s !important; }
  [data-hero-piece]:nth-child(4) { animation-delay: .42s !important; }
  .motion-title .char { opacity: 1; filter: none; transform: none; animation: none !important; transition: none !important; }
  .motion-image, .motion-list .method-step, .section-motion, [data-stagger-list].motion-list > li { opacity: 0; filter: none; transform: none; animation: none !important; transition: opacity .55s ease !important; }
  .motion-image.is-seen, .motion-list.is-seen .method-step, .section-motion.is-entered, [data-stagger-list].motion-list.is-seen > li { opacity: 1; }
  .outcome .aurora-gold, .club-track, .method-gallery-track { animation: none !important; }
}
@keyframes reduced-fade-in { to { opacity: 1; } }

/* Keep desktop carousels moving; mobile keeps its current behavior. */
@media (min-width: 761px) {
  .method-gallery-track { animation: method-loop 34s linear infinite !important; }
  .club-track { animation: club-loop 28s linear infinite !important; }
}

