:root{--bg:#050505;--fg:#f2f1ed;--muted:#8c8c86;--line:rgba(242,241,237,.16);--pad:clamp(16px,4.4vw,24px);--header:64px;--bottom:82px;--ease:cubic-bezier(.22,.74,.18,1);--display:"Archivo Black",Arial,sans-serif;--sans:"Inter",Arial,sans-serif}
*{box-sizing:border-box}html,body{margin:0;width:100%;height:100%;height:100dvh;background:var(--bg);color:var(--fg);overflow:hidden;overscroll-behavior:none;-webkit-text-size-adjust:100%}body{font-family:var(--sans);min-width:320px}button,a{font:inherit;color:inherit}button{border:0;background:none}a{text-decoration:none}img{display:block;width:100%;height:100%;object-fit:cover;-webkit-user-drag:none;user-select:none}figure,p,h1,h2{margin:0}.site{position:relative;width:100%;height:100%;height:100dvh;overflow:hidden;background:var(--bg);isolation:isolate}.site:before{content:"";position:absolute;inset:0;pointer-events:none;z-index:1;opacity:.03;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.7'/%3E%3C/svg%3E")}
.topbar{position:absolute;z-index:40;top:0;left:0;width:100%;height:calc(var(--header) + env(safe-area-inset-top));padding:env(safe-area-inset-top) max(var(--pad),env(safe-area-inset-right)) 0 max(var(--pad),env(safe-area-inset-left));display:grid;grid-template-columns:1fr auto;align-items:center;pointer-events:none}.brand,.menu-btn{pointer-events:auto}.brand{display:flex;align-items:center;gap:10px}.brand-mark{display:grid;place-items:center;width:32px;height:32px;border:1px solid var(--line);border-radius:50%;font:700 9px/1 var(--sans);transition:.35s var(--ease)}.brand:hover .brand-mark{transform:rotate(12deg);background:var(--fg);color:#050505}.brand-name{font:700 10px/1 var(--sans);letter-spacing:.08em}.top-meta{display:none;color:var(--muted);font:600 9px/1 var(--sans);letter-spacing:.12em}.menu-btn{height:44px;padding:0 2px 0 16px;display:grid;grid-template-columns:auto 18px;grid-template-rows:1fr 1fr;align-items:end;column-gap:10px;cursor:pointer}.menu-btn span{grid-row:1/3;align-self:center;font:700 8px/1 var(--sans);letter-spacing:.12em}.menu-btn i{display:block;width:18px;height:1px;background:var(--fg);transition:.35s var(--ease)}.menu-btn i:first-of-type{align-self:end;margin-bottom:3px}.menu-btn i:last-of-type{align-self:start;margin-top:3px}.menu-btn.open i:first-of-type{transform:translateY(4px) rotate(45deg)}.menu-btn.open i:last-of-type{transform:translateY(-4px) rotate(-45deg)}
.menu{position:absolute;z-index:35;inset:0;background:#080808;padding:calc(var(--header) + env(safe-area-inset-top) + 10px) max(var(--pad),env(safe-area-inset-right)) max(24px,env(safe-area-inset-bottom)) max(var(--pad),env(safe-area-inset-left));display:flex;flex-direction:column;transform:translateY(-105%);transition:transform .72s var(--ease);visibility:hidden}.menu.open{transform:none;visibility:visible}.menu-top,.menu-foot{font:700 8px/1 var(--sans);letter-spacing:.14em;color:var(--muted)}.menu-links{margin:auto 0}.menu-links button{width:100%;padding:5px 0;display:grid;grid-template-columns:32px 1fr;align-items:baseline;text-align:left;cursor:pointer}.menu-links small{font:600 8px/1 var(--sans);color:var(--muted)}.menu-links span{font:400 clamp(44px,13vw,76px)/.92 var(--display);letter-spacing:-.055em;transition:transform .3s var(--ease),opacity .3s}.menu-links button:hover span{transform:translateX(8px);opacity:.65}
.viewport,.track{width:100%;height:100%;height:100dvh}.viewport{position:relative;z-index:2;overflow:hidden}.track{display:flex;will-change:transform;transition:transform .82s var(--ease);touch-action:pan-y}.track.dragging{transition:none}.slide{position:relative;flex:0 0 100%;width:100%;height:100%;padding:calc(var(--header) + env(safe-area-inset-top) + 10px) max(var(--pad),env(safe-area-inset-right)) calc(var(--bottom) + env(safe-area-inset-bottom)) max(var(--pad),env(safe-area-inset-left));overflow:hidden}.section-label{font:700 8px/1 var(--sans);letter-spacing:.14em;color:var(--muted)}.reveal{opacity:.25;transform:translateY(14px);transition:opacity .7s var(--ease),transform .7s var(--ease)}.slide.is-active .reveal{opacity:1;transform:none}.slide.is-active .reveal:nth-child(2){transition-delay:.08s}.slide.is-active .reveal:nth-child(3){transition-delay:.16s}.slide.is-active .reveal:nth-child(4){transition-delay:.24s}
.slide-cover{display:flex;flex-direction:column}.cover-kicker{font:700 8px/1 var(--sans);letter-spacing:.14em;color:var(--muted)}.cover-core{margin:auto 0;position:relative}.cover-core h1{font:400 clamp(70px,23vw,122px)/.72 var(--display);letter-spacing:-.08em}.cover-core h1 span{font-family:var(--sans);font-weight:400}.cover-side{position:absolute;right:1px;top:50%;transform:translateY(-50%);font:700 7px/1.4 var(--sans);letter-spacing:.13em;text-align:right;color:var(--muted)}.cover-bottom{display:flex;justify-content:space-between;align-items:flex-end;gap:18px}.cover-bottom p{max-width:285px;font-size:10px;line-height:1.45;color:#aaa9a4}.cover-bottom>span{font:700 7px/1 var(--sans);letter-spacing:.1em;white-space:nowrap}.cover-orbit{position:absolute;right:-42px;bottom:95px;width:104px;height:104px;border:1px solid var(--line);border-radius:50%;display:grid;place-items:center;opacity:.8}.cover-orbit:after{content:"JS";font:700 9px/1 var(--sans)}.cover-orbit span{position:absolute;width:138%;font:700 6px/1 var(--sans);letter-spacing:.16em;text-align:center;animation:spin 14s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}
.slide-about{display:grid;grid-template-rows:auto auto minmax(0,1fr) auto;gap:12px}.about-copy h2,.sport-head h2,.event-head h2,.portrait-head h2{font:400 clamp(42px,12.3vw,66px)/.82 var(--display);letter-spacing:-.065em}.about-copy h2 em{font-style:normal;color:transparent;-webkit-text-stroke:1px var(--fg)}.about-copy p,.sport-head p,.event-head p,.portrait-head p{margin-top:10px;max-width:310px;font-size:9px;line-height:1.45;color:#aaa9a4}.about-image{min-height:0;position:relative;overflow:hidden}.about-image figcaption,.sport-grid figcaption,.event-grid figcaption,.portrait-grid figcaption{position:absolute;left:8px;bottom:8px;padding:5px 7px;background:rgba(0,0,0,.64);backdrop-filter:blur(8px);font:700 6px/1 var(--sans);letter-spacing:.11em}.about-note{font:700 7px/1 var(--sans);letter-spacing:.1em;color:var(--muted)}
.slide-sport,.slide-events,.slide-portraits{display:grid;grid-template-rows:auto auto minmax(0,1fr) auto;gap:12px}.sport-head,.event-head,.portrait-head{display:grid;grid-template-columns:1.08fr .92fr;gap:14px;align-items:end}.sport-head p,.event-head p,.portrait-head p{margin:0}.sport-grid,.event-grid,.portrait-grid{min-height:0;display:grid;gap:5px}.sport-grid{grid-template-columns:1.2fr .8fr;grid-template-rows:1fr 1fr}.sport-a{grid-row:1/3}.sport-b img,.event-2 img,.event-4 img,.portrait-small img{filter:grayscale(1)}.sport-grid figure,.event-grid figure,.portrait-grid figure{position:relative;overflow:hidden}.sport-tags{display:flex;gap:5px;overflow:hidden}.sport-tags span{flex:1;padding:7px 5px;border:1px solid var(--line);font:700 6.2px/1 var(--sans);letter-spacing:.06em;text-align:center;white-space:nowrap}.event-grid{grid-template-columns:1.18fr .82fr;grid-template-rows:1.05fr .95fr}.event-1{grid-row:1/3}.portrait-grid{grid-template-columns:1.1fr .9fr;grid-template-rows:1fr 1fr}.portrait-big{grid-row:1/3}
.slide-contact{display:flex;flex-direction:column}.contact-main{margin:auto 0 18px}.contact-main h2{font:400 clamp(43px,12.6vw,76px)/.79 var(--display);letter-spacing:-.075em}.contact-main h2 span{font-family:var(--sans);font-weight:400}.contact-main p{margin-top:14px;max-width:310px;font-size:10px;line-height:1.45;color:#aaa9a4}.contact-links{border-bottom:1px solid var(--line)}.contact-links a{min-height:58px;border-top:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;gap:14px;transition:background .25s,padding .25s var(--ease)}.contact-links a:active{background:#111}.contact-left{display:flex;align-items:center;gap:12px;min-width:0}.contact-left>img{width:22px;height:22px;object-fit:contain;filter:grayscale(1) brightness(0) invert(1);opacity:.92;flex:0 0 22px}.contact-left>span{display:grid;gap:4px;min-width:0}.contact-left b{font:700 9px/1 var(--sans);letter-spacing:.11em}.contact-left small{font:500 7px/1.2 var(--sans);letter-spacing:.03em;color:var(--muted);overflow:hidden;text-overflow:ellipsis}.contact-links strong{font-size:18px;font-weight:400}.contact-foot{padding-top:10px;font:600 7px/1 var(--sans);letter-spacing:.1em;color:var(--muted)}
.nav-ui{position:absolute;z-index:30;left:max(var(--pad),env(safe-area-inset-left));right:max(var(--pad),env(safe-area-inset-right));bottom:max(18px,env(safe-area-inset-bottom));height:48px;display:grid;grid-template-columns:40px auto 40px;grid-template-rows:34px 4px;column-gap:6px;align-items:center}.nav-arrow{height:34px;display:grid;place-items:center;font-size:20px;cursor:pointer}.nav-arrow:disabled{opacity:.18}.counter{justify-self:center;display:flex;gap:7px;align-items:baseline;font:500 12px/1 var(--sans);color:var(--muted)}.counter strong{font-size:18px;color:var(--fg)}.progress{grid-column:1/4;align-self:end;height:3px;display:grid;grid-template-columns:repeat(6,1fr);gap:4px}.progress i{height:100%;background:#343431;transition:background .3s,transform .3s var(--ease);transform-origin:left}.progress i.done,.progress i.active{background:var(--fg)}.progress i.active{transform:scaleX(1)}.swipe-hint{display:none}.lightbox-item{cursor:zoom-in}.lightbox{position:fixed;inset:0;width:100%;max-width:none;height:100%;max-height:none;margin:0;padding:0;border:0;background:#000;color:var(--fg)}.lightbox::backdrop{background:#000}.lightbox[open]{display:grid;place-items:center}.lightbox img{width:100%;height:100%;object-fit:contain;padding:60px 8px max(12px,env(safe-area-inset-bottom))}.lightbox-close{position:fixed;z-index:2;right:max(12px,env(safe-area-inset-right));top:max(10px,env(safe-area-inset-top));height:42px;padding:0 8px;background:rgba(0,0,0,.75);font:700 8px/1 var(--sans);letter-spacing:.12em;cursor:pointer}

/* ===== V6: MOBILE REFINEMENT ===== */
@media (max-width:759px){
  :root{--pad:18px;--header:68px;--bottom:78px}

  /* Nunca permita que grid/texto aumente a largura da tela */
  .slide,.slide *{min-width:0}
  .slide{padding-left:max(var(--pad),env(safe-area-inset-left));padding-right:max(var(--pad),env(safe-area-inset-right))}
  .sport-head,.event-head,.portrait-head{
    grid-template-columns:minmax(0,1fr);
    gap:8px;
    align-items:start;
  }
  .sport-head h2,.event-head h2,.portrait-head h2{
    max-width:100%;
    font-size:clamp(38px,11.2vw,54px);
    line-height:.84;
    letter-spacing:-.06em;
    overflow-wrap:anywhere;
  }
  .sport-head p,.event-head p,.portrait-head p{
    width:100%;
    max-width:34rem;
    margin:0;
    font-size:9px;
    line-height:1.45;
    color:#aaa9a4;
  }

  /* Um pouco mais de respiro para as galerias */
  .slide-sport,.slide-events,.slide-portraits{
    grid-template-rows:auto auto minmax(0,1fr) auto;
    gap:10px;
  }
  .sport-grid,.event-grid,.portrait-grid{width:100%;overflow:hidden}
  .sport-tags{width:100%;gap:4px}
  .sport-tags span{padding:7px 3px;font-size:5.7px}

  /* MENU: menos gigante, mais editorial e fácil de tocar */
  .menu{
    padding-top:calc(var(--header) + env(safe-area-inset-top) + 18px);
    padding-bottom:max(26px,env(safe-area-inset-bottom));
  }
  .menu-top{
    padding-bottom:12px;
    border-bottom:1px solid var(--line);
  }
  .menu-links{
    margin:clamp(34px,8vh,72px) 0 auto;
    display:flex;
    flex-direction:column;
  }
  .menu-links button{
    min-height:62px;
    padding:0;
    grid-template-columns:38px minmax(0,1fr) 18px;
    border-bottom:1px solid rgba(242,241,237,.12);
    align-items:center;
  }
  .menu-links button:first-child{border-top:1px solid rgba(242,241,237,.12)}
  .menu-links button::after{
    content:"↗";
    justify-self:end;
    font-size:14px;
    color:#777;
    opacity:.75;
    transform:rotate(45deg);
  }
  .menu-links small{
    font-size:7px;
    color:#70706c;
    align-self:center;
  }
  .menu-links span{
    font-family:var(--sans);
    font-weight:600;
    font-size:clamp(30px,8.5vw,42px);
    line-height:1;
    letter-spacing:-.045em;
  }
  .menu-foot{
    padding-top:16px;
    display:flex;
    justify-content:space-between;
    align-items:center;
  }
  .menu-foot::after{content:"PORTFÓLIO / 2026";font-size:7px;color:#555}

  /* Header mais limpo */
  .brand{gap:9px}
  .brand-mark{width:34px;height:34px}
  .brand-name{font-size:9px;letter-spacing:.11em}
  .menu-btn{padding-left:10px;column-gap:8px}
  .menu-btn span{font-size:7.5px}

  /* Títulos de Sobre e Contato também ficam protegidos */
  .about-copy h2,.contact-main h2{
    max-width:100%;
    overflow-wrap:anywhere;
  }
}

@media (min-width:760px){:root{--pad:40px;--header:76px;--bottom:96px}.topbar{grid-template-columns:1fr auto 1fr}.top-meta{display:block}.menu-btn{justify-self:end}.slide{padding-top:calc(var(--header) + env(safe-area-inset-top) + 18px)}.cover-core h1{font-size:clamp(110px,18vw,210px)}.cover-bottom p{font-size:13px;max-width:510px}.cover-side{font-size:10px}.section-label{font-size:9px}.cover-orbit{right:4vw;bottom:120px;width:140px;height:140px}.slide-about{grid-template-columns:1fr .75fr;grid-template-rows:auto 1fr auto;column-gap:48px}.slide-about>.section-label{grid-column:1/-1}.about-copy{align-self:center}.about-copy h2{font-size:clamp(64px,8.8vw,112px)}.about-copy p{font-size:13px;max-width:420px}.about-image{grid-column:2;grid-row:2;width:100%;height:100%;max-height:72vh}.about-note{grid-column:1/-1}.sport-head,.event-head,.portrait-head{grid-template-columns:1fr minmax(260px,.45fr)}.sport-head h2,.event-head h2,.portrait-head h2{font-size:clamp(60px,7vw,106px)}.sport-head p,.event-head p,.portrait-head p{font-size:13px;max-width:420px}.sport-grid{grid-template-columns:1.28fr .72fr .72fr;grid-template-rows:1fr}.sport-a{grid-row:auto}.event-grid{grid-template-columns:1.2fr .8fr .8fr;grid-template-rows:1fr 1fr}.event-1{grid-row:1/3}.event-2{grid-row:1}.event-3{grid-row:1/3}.portrait-grid{grid-template-columns:1.1fr .72fr .72fr;grid-template-rows:1fr}.portrait-big{grid-row:auto}.contact-main h2{font-size:clamp(78px,8vw,130px)}.contact-main p{font-size:14px}.contact-links{max-width:760px}.contact-links a:hover{padding-left:12px;background:#0d0d0d}.contact-left>img{width:26px;height:26px}.nav-ui{left:50%;right:auto;transform:translateX(-50%);width:min(560px,60vw)}.swipe-hint{display:block;position:absolute;right:max(var(--pad),env(safe-area-inset-right));bottom:max(28px,env(safe-area-inset-bottom));z-index:28;font:700 8px/1 var(--sans);letter-spacing:.12em;color:var(--muted)}}
@media (min-width:1200px){:root{--pad:58px}.cover-core h1{font-size:min(17vw,260px)}.menu-links span{font-size:clamp(56px,6vw,96px)}.menu-links button{padding:8px 0}.about-image{max-height:69vh}.sport-tags span{font-size:8px}.contact-links a{height:64px}.lightbox-item img{transition:transform .55s var(--ease),filter .4s}.lightbox-item:hover img{transform:scale(1.025)}}
@media (max-height:690px) and (max-width:759px){:root{--header:56px;--bottom:70px}.slide{padding-top:calc(var(--header) + env(safe-area-inset-top) + 6px)}.cover-core h1{font-size:min(21vw,92px)}.about-copy h2{font-size:min(11.5vw,54px)}.sport-head h2,.event-head h2,.portrait-head h2{font-size:min(9.5vw,46px)}.sport-head p,.event-head p,.portrait-head p{font-size:8px}.contact-main h2{font-size:min(11.2vw,58px)}.contact-main{margin-bottom:8px}.contact-links a{min-height:48px}.contact-left small{display:none}.nav-ui{bottom:max(8px,env(safe-area-inset-bottom))}}
@media (prefers-reduced-motion:reduce){.track,.menu,.menu-btn i,.lightbox-item img,.reveal,.cover-orbit span{transition:none!important;animation:none!important}}

/* V7 - setas personalizadas enviadas pelo fotógrafo */
.nav-arrow img{display:block;width:24px;height:24px;object-fit:contain;filter:invert(1);opacity:.95;transition:transform .2s ease,opacity .2s ease}
.nav-arrow.prev img{transform:rotate(180deg)}
.nav-arrow.next img{transform:none}
.nav-arrow:not(:disabled):active img{transform:scale(.86)}
.nav-arrow.prev:not(:disabled):active img{transform:rotate(180deg) scale(.86)}
.nav-arrow:disabled img{opacity:.22}
@media (min-width:760px){.nav-arrow img{width:28px;height:28px}}


/* ===== V8: SETAS DOS CONTATOS + FOTOS QUADRADAS SEM CORTE ===== */

/* A mesma seta enviada pelo cliente também é usada nos links de contato. */
.contact-arrow{
  width:30px;
  height:30px;
  flex:0 0 30px;
  display:grid;
  place-items:center;
}
.contact-arrow img{
  width:21px;
  height:21px;
  object-fit:contain;
  filter:invert(1);
  opacity:.94;
  transition:transform .22s var(--ease),opacity .22s ease;
}
.contact-links a:active .contact-arrow img{
  transform:translateX(3px);
}
@media (hover:hover){
  .contact-links a:hover .contact-arrow img{
    transform:translateX(4px);
  }
}

/* Os espaços de foto passam a ser quadrados reais.
   object-fit: contain mostra a fotografia inteira, sem cortar cabeça, pés ou bordas. */
.sport-grid,
.event-grid,
.portrait-grid{
  align-content:start;
}

.sport-grid figure,
.event-grid figure,
.portrait-grid figure{
  aspect-ratio:1 / 1;
  min-height:0;
  background:#0c0c0f;
}

.sport-grid figure img,
.event-grid figure img,
.portrait-grid figure img{
  width:100%;
  height:100%;
  object-fit:contain;
  object-position:center;
  background:#0c0c0f;
}

/* Remove os formatos altos/esticados herdados do layout anterior. */
.sport-a,
.event-1,
.portrait-big{
  grid-row:auto !important;
}

/* MOBILE: quadrados iguais em 2 colunas. */
@media (max-width:759px){
  .sport-grid,
  .event-grid,
  .portrait-grid{
    grid-template-columns:repeat(2,minmax(0,1fr)) !important;
    grid-template-rows:auto !important;
    gap:6px;
    overflow:visible;
  }

  .sport-grid figure,
  .event-grid figure,
  .portrait-grid figure{
    width:100%;
    aspect-ratio:1 / 1;
  }

  /* Em telas pequenas, mantém a galeria compacta para continuar cabendo em uma única página. */
  .sport-grid,
  .portrait-grid{
    max-width:min(100%,430px);
  }

  .contact-links a{
    min-height:64px;
  }
  .contact-arrow{
    width:34px;
    height:34px;
    flex-basis:34px;
  }
  .contact-arrow img{
    width:23px;
    height:23px;
  }
}

/* DESKTOP: todos os cards continuam quadrados, lado a lado. */
@media (min-width:760px){
  .sport-grid{
    grid-template-columns:repeat(3,minmax(0,1fr)) !important;
    grid-template-rows:auto !important;
  }
  .event-grid{
    grid-template-columns:repeat(4,minmax(0,1fr)) !important;
    grid-template-rows:auto !important;
  }
  .portrait-grid{
    grid-template-columns:repeat(3,minmax(0,1fr)) !important;
    grid-template-rows:auto !important;
  }
}



/* ===== V9: MENU MAIS COMPACTO + SETA GRÁFICA ===== */
@media (max-width:759px){
  .menu{
    padding-top:calc(var(--header) + env(safe-area-inset-top) + 10px);
    padding-bottom:max(20px,env(safe-area-inset-bottom));
  }

  .menu-top{
    font-size:7px;
    letter-spacing:.16em;
    padding-bottom:9px;
  }

  .menu-links{
    margin:24px 0 auto;
  }

  .menu-links button{
    min-height:54px;
    grid-template-columns:28px minmax(0,1fr) 24px;
    gap:8px;
  }

  /* remove completamente a seta de caractere/emoji antiga */
  .menu-links button::after{
    content:none !important;
    display:none !important;
  }

  .menu-links small{
    font-size:6px;
  }

  .menu-links span:not(.menu-arrow){
    font-size:clamp(24px,7.2vw,34px);
    line-height:.96;
    letter-spacing:-.045em;
  }

  .menu-arrow{
    width:22px;
    height:22px;
    display:grid;
    place-items:center;
    justify-self:end;
  }

  .menu-arrow img{
    width:18px;
    height:18px;
    object-fit:contain;
    filter:invert(1);
    opacity:.9;
    transition:transform .2s ease, opacity .2s ease;
  }

  .menu-links button:active .menu-arrow img{
    transform:translateX(2px);
    opacity:1;
  }

  .menu-foot{
    padding-top:12px;
    font-size:6.5px;
  }

  .menu-foot::after{
    font-size:6px;
  }

  .menu-close,
  .menu-close span{
    font-size:7px;
  }
}

/* Desktop: mesma seta, só que ainda mais discreta */
@media (min-width:760px){
  .menu-links button::after{
    content:none !important;
    display:none !important;
  }
  .menu-arrow{
    width:24px;
    height:24px;
    display:grid;
    place-items:center;
    justify-self:end;
  }
  .menu-arrow img{
    width:18px;
    height:18px;
    object-fit:contain;
    filter:invert(1);
    opacity:.82;
  }
}

/* FINAL MOBILE: evita zoom por toque duplo sem quebrar os botões de navegação */
html, body, button, a, .track, .nav-ui, .menu { touch-action: manipulation; }
.nav-arrow, .menu-links button, .contact-links a { -webkit-tap-highlight-color: transparent; user-select: none; -webkit-user-select: none; }

/* V10 - fotos limpas: sem rótulos/legendas sobre as imagens */
figure figcaption{display:none!important}

/* V11 — foto do João no perfil */
.brand-mark{overflow:hidden;padding:0;background:#111}
.brand-mark img{width:100%;height:100%;object-fit:cover;object-position:center;filter:none}
.brand:hover .brand-mark{transform:none;background:#111;color:inherit}


/* ===== V12: TRANSIÇÕES CURTAS E SUAVES ENTRE AS PÁGINAS ===== */

/* O movimento lateral continua sendo o principal, mas agora mais rápido e limpo. */
.track{
  transition:transform .56s cubic-bezier(.22,.74,.18,1);
}

/* Conteúdo da nova página entra com um fade + pequeno deslocamento.
   É propositalmente curto para não atrapalhar quem navega rápido. */
.slide.page-enter{
  animation:pageFadeIn .46s cubic-bezier(.22,.74,.18,1) both;
}

.slide.page-enter > *:not(.section-label){
  animation:pageContentIn .52s cubic-bezier(.22,.74,.18,1) both;
}

/* Pequeno atraso só nas partes principais, sem deixar a interface lenta. */
.slide.page-enter > *:nth-child(2){animation-delay:.035s}
.slide.page-enter > *:nth-child(3){animation-delay:.07s}
.slide.page-enter > *:nth-child(4){animation-delay:.105s}

@keyframes pageFadeIn{
  from{opacity:.72}
  to{opacity:1}
}

@keyframes pageContentIn{
  from{
    opacity:.52;
    transform:translateY(8px);
  }
  to{
    opacity:1;
    transform:translateY(0);
  }
}

/* O header fica estável; só o conteúdo troca, evitando sensação de "site pulando". */
.topbar,.nav-ui{
  transform:translateZ(0);
  backface-visibility:hidden;
}

/* Mantém a animação suave no iPhone e evita repintura pesada. */
.slide{
  backface-visibility:hidden;
  transform:translateZ(0);
}

/* Respeita quem desativou animações no sistema. */
@media (prefers-reduced-motion:reduce){
  .slide.page-enter,
  .slide.page-enter > *{
    animation:none!important;
  }
}


/* ===== V13: GRADE DE FOTOS 100% UNIFORME ===== */

/* Todas as galerias usam células quadradas idênticas */
.sport-grid,
.event-grid,
.portrait-grid{
  display:grid !important;
  grid-auto-flow:row !important;
  grid-auto-rows:auto !important;
  align-items:stretch !important;
  justify-items:stretch !important;
}

/* Cada card ocupa exatamente um quadrado */
.sport-grid figure,
.event-grid figure,
.portrait-grid figure{
  position:relative !important;
  width:100% !important;
  height:auto !important;
  aspect-ratio:1 / 1 !important;
  margin:0 !important;
  padding:0 !important;
  overflow:hidden !important;
  background:#0c0c0f !important;
  border:0 !important;
}

/* A foto aparece inteira dentro do quadrado */
.sport-grid figure img,
.event-grid figure img,
.portrait-grid figure img{
  display:block !important;
  width:100% !important;
  height:100% !important;
  max-width:none !important;
  max-height:none !important;
  object-fit:contain !important;
  object-position:center center !important;
  background:#0c0c0f !important;
}

/* Elimina qualquer tamanho especial herdado das versões antigas */
.sport-grid figure[class],
.event-grid figure[class],
.portrait-grid figure[class]{
  grid-column:auto !important;
  grid-row:auto !important;
  min-height:0 !important;
  max-height:none !important;
}

/* Mobile: duas colunas iguais e espaçamento consistente */
@media (max-width:759px){
  .sport-grid,
  .event-grid,
  .portrait-grid{
    grid-template-columns:repeat(2,minmax(0,1fr)) !important;
    gap:6px !important;
    width:100% !important;
  }

  /* Esporte tem 3 fotos: a terceira mantém exatamente o mesmo tamanho,
     sem esticar para preencher a linha inteira. */
  .sport-grid figure:last-child:nth-child(odd){
    width:100% !important;
    justify-self:start !important;
  }
}

/* Desktop: mesma lógica, só muda a quantidade de colunas */
@media (min-width:760px){
  .sport-grid{
    grid-template-columns:repeat(3,minmax(0,1fr)) !important;
    gap:10px !important;
  }

  .event-grid{
    grid-template-columns:repeat(4,minmax(0,1fr)) !important;
    gap:10px !important;
  }

  .portrait-grid{
    grid-template-columns:repeat(3,minmax(0,1fr)) !important;
    gap:10px !important;
  }
}


/* ===== V15: mantém os quadrados da V13 e melhora somente a transição ===== */
.track{
  transition:transform .30s cubic-bezier(.22,.72,.24,1) !important;
}
.reveal,
.slide.is-active .reveal,
.slide.is-active .reveal:nth-child(2),
.slide.is-active .reveal:nth-child(3),
.slide.is-active .reveal:nth-child(4){
  transition:opacity .20s ease, transform .20s ease !important;
  transition-delay:0s !important;
}
.slide.page-enter,
.slide.page-enter > *{
  animation:none !important;
}
