:root{--bg:#05070d;--panel:#0c1220;--panel2:#101827;--text:#f7f9ff;--muted:#a7b3c5;--line:rgba(255,255,255,.1);--blue:#1a5cff;--cyan:#68d8ff;--max:1240px}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--bg);color:var(--text);font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;line-height:1.65}a{color:inherit;text-decoration:none}img{display:block;max-width:100%}.wrap{width:min(calc(100% - 48px),var(--max));margin:auto}.nav{position:fixed;top:0;left:0;right:0;z-index:50;background:rgba(5,7,13,.72);backdrop-filter:blur(16px);border-bottom:1px solid transparent}.nav.scrolled{border-color:var(--line)}.nav-inner{height:82px;display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:30px}.brand-link{justify-self:start;display:flex;align-items:center;height:100%}.brand-logo-frame{width:118px;height:48px;display:flex;align-items:center;justify-content:center;overflow:hidden}.logo{display:block;width:100%;height:100%;object-fit:contain;object-position:center;filter:drop-shadow(0 0 1px rgba(255,255,255,.18));transform:translateZ(0)}.nav-links{justify-self:center;display:flex;align-items:center;gap:28px;color:#dce5f3;font-size:.93rem}.nav-cta{justify-self:end}.nav-cta,.btn{display:inline-flex;align-items:center;justify-content:center;min-height:46px;padding:0 20px;border-radius:999px;border:1px solid var(--line);transition:.25s ease;font:inherit;cursor:pointer}.nav-cta,.btn.primary{background:linear-gradient(135deg,var(--blue),#00a9ff);border-color:transparent;box-shadow:0 8px 32px rgba(0,110,255,.22)}.nav-cta:hover,.btn.primary:hover{transform:translateY(-1px);box-shadow:0 12px 42px rgba(0,110,255,.32)}.btn.ghost{background:transparent;color:var(--text)}.btn.ghost:hover{border-color:rgba(255,255,255,.3)}.btn.instagram-btn{background:linear-gradient(135deg,#833ab4,#fd1d1d 55%,#fcb045);border-color:transparent;color:#fff;box-shadow:0 8px 28px rgba(193,53,132,.22)}.btn.instagram-btn:hover{transform:translateY(-1px);box-shadow:0 12px 38px rgba(193,53,132,.34);filter:saturate(1.06)}.hero{min-height:100svh;display:flex;align-items:center;position:relative;overflow:hidden;padding:170px 0 110px}.glow{position:absolute;border-radius:50%;filter:blur(90px);opacity:.4;pointer-events:none}.g1{width:480px;height:480px;background:#1649ff;right:-140px;top:40px}.g2{width:300px;height:300px;background:#41d9ff;left:-120px;bottom:60px;opacity:.18}.eyebrow{font-size:.8rem;text-transform:uppercase;letter-spacing:.22em;color:var(--cyan);font-weight:700}.hero h1{font-size:clamp(3.4rem,9vw,8.4rem);line-height:.88;letter-spacing:-.07em;margin:28px 0 34px;max-width:1050px}.text-stack{display:grid;gap:16px}.text-stack p{margin:0}.hero-copy{max-width:720px;color:var(--muted);font-size:clamp(1.05rem,2vw,1.28rem)}.hero-actions{display:flex;gap:12px;flex-wrap:wrap;margin-top:40px}.section{padding:148px 0}.section+.section{border-top:1px solid rgba(255,255,255,.035)}.section-head{display:grid;grid-template-columns:.9fr 1.1fr;gap:90px;align-items:start;margin-bottom:84px}.section h2{font-size:clamp(2.7rem,5.4vw,5.3rem);line-height:.96;letter-spacing:-.055em;margin:14px 0}.team-title{display:grid;gap:.28em;line-height:.92}.team-title span{display:block}
.section-copy{color:var(--muted);font-size:1.08rem;max-width:690px;padding-top:12px}.movement-line{display:flex;align-items:center;gap:26px;color:#dfe8f5;font-size:clamp(1.05rem,2vw,1.35rem);letter-spacing:.08em}.movement-line i{height:1px;background:linear-gradient(90deg,var(--cyan),rgba(255,255,255,.08));flex:1;min-width:28px}.portfolio{background:#080b12}.portfolio-intro{margin-bottom:110px}.portfolio-block{padding:88px 0 108px;border-top:1px solid var(--line)}.portfolio-block:first-of-type{border-top:0}.portfolio-block-head{display:grid;grid-template-columns:220px 1fr;gap:28px 60px;align-items:end;margin-bottom:54px}.portfolio-index{font-size:.75rem;letter-spacing:.22em;color:#8da2bd;grid-row:1/3}.portfolio-block h3{font-size:clamp(3.2rem,7vw,6.8rem);line-height:.9;letter-spacing:-.065em;margin:0}.portfolio-block-head p{max-width:680px;color:var(--muted);font-size:1.08rem;margin:0}.gallery{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;align-items:start}.gallery-card{margin:0;border-radius:20px;overflow:hidden;position:relative;background:#0f1624;cursor:zoom-in}.gallery-card img{width:100%;aspect-ratio:4/5;object-fit:cover}.gallery-card .overlay{position:absolute;inset:auto 0 0;padding:46px 20px 18px;background:linear-gradient(transparent,rgba(2,5,10,.88));opacity:0;transition:.25s}.gallery-card:hover .overlay{opacity:1}.empty{border:1px dashed var(--line);padding:68px;border-radius:24px;color:var(--muted);text-align:center}.grow-block{padding-bottom:30px}.grow-block blockquote{margin:54px 0 0;max-width:980px;font-size:clamp(2rem,4.5vw,4.6rem);line-height:1.04;letter-spacing:-.045em;color:#edf5ff}.team-grid{display:grid;grid-template-columns:1fr 1fr;gap:24px}.person{min-height:560px;border:1px solid var(--line);border-radius:30px;overflow:hidden;background:linear-gradient(135deg,#0a0f19,#121d2d);position:relative;padding:38px;display:flex;align-items:flex-end}.person-photo{position:absolute;inset:0;background:radial-gradient(circle at 70% 20%,rgba(104,216,255,.25),transparent 36%),linear-gradient(160deg,#0c1420,#05070d)}.person-photo:after{content:"";position:absolute;inset:45% 0 0;background:linear-gradient(transparent,rgba(5,7,13,.9))}.person-info{position:relative;z-index:2}.person h3{font-size:2.2rem;margin:6px 0 0}.person p{color:var(--muted);margin:.7rem 0 0}.team-contact{margin-top:26px}.contact-card{padding:clamp(42px,7vw,92px);border-radius:36px;background:radial-gradient(circle at 85% 10%,rgba(104,216,255,.24),transparent 28%),linear-gradient(135deg,#0d1730,#07101d 55%,#080b12);border:1px solid var(--line)}.contact-card h2{max-width:820px}.contact-copy{max-width:650px;color:#b5c2d4;font-size:1.05rem}.contact-options{display:flex;align-items:flex-end;gap:18px;flex-wrap:wrap;margin-top:42px}.contact-person{display:grid;gap:9px;min-width:150px}.contact-person strong{font-size:.9rem;color:#b7c3d5}.email-choice{display:grid;gap:9px;min-width:min(100%,380px)}.email-choice label{font-size:.9rem;color:#b7c3d5}.email-row{display:flex;gap:10px;flex-wrap:wrap}.email-row select{min-height:46px;padding:0 16px;border-radius:999px;border:1px solid var(--line);background:#0a101a;color:#fff;min-width:200px;font:inherit}.privacy-note{margin:30px 0 0;color:#91a0b5;font-size:.9rem;max-width:780px}.privacy-note a,.privacy-contact a{color:#8ccfff;text-decoration:underline;text-underline-offset:3px}.privacy-section{padding-top:100px}.privacy-card{max-width:900px}.privacy-card h2{margin-bottom:42px}.privacy-copy{color:var(--muted);font-size:1.02rem}.privacy-contact{margin-top:28px;color:#a7b3c5}.footer{padding:54px 0 72px;border-top:1px solid var(--line);color:#8190a6;font-size:.9rem}.footer-inner{display:flex;justify-content:space-between;gap:24px;flex-wrap:wrap}.lightbox{position:fixed;inset:0;background:rgba(2,4,9,.93);z-index:100;display:none;align-items:center;justify-content:center;padding:34px}.lightbox.open{display:flex}.lightbox img{max-width:min(92vw,1400px);max-height:88vh;border-radius:14px}.lightbox button{position:absolute;top:24px;right:24px;border:1px solid var(--line);background:#0d1420;color:#fff;border-radius:50%;width:46px;height:46px;font-size:22px;cursor:pointer}.draft-bar{position:relative;z-index:1000;background:#e8f4ff;color:#07111f;text-align:center;padding:11px 16px;font:700 12px/1.4 system-ui;letter-spacing:.04em}.draft-bar a{color:#0a56d8}.person-photo.has-photo{background-size:cover;background-position:center}.person-photo.has-photo:after{content:"";position:absolute;inset:45% 0 0;background:linear-gradient(transparent,rgba(5,7,13,.88))}
@media(max-width:900px){.nav-inner{grid-template-columns:1fr auto}.nav-cta{justify-self:end}.team-title{gap:.34em;line-height:.94}.nav-links{display:none}.section-head{grid-template-columns:1fr;gap:24px}.movement-line{gap:12px;flex-wrap:wrap}.movement-line i{min-width:40px}.portfolio-block-head{grid-template-columns:1fr;gap:14px}.portfolio-index{grid-row:auto}.team-grid{grid-template-columns:1fr}.hero h1{font-size:clamp(3rem,16vw,6rem)}.section{padding:104px 0}.portfolio-intro{margin-bottom:72px}.portfolio-block{padding:68px 0 86px}.person{min-height:460px}.gallery{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:520px){.wrap{width:min(calc(100% - 28px),var(--max))}.nav-inner{height:72px;grid-template-columns:1fr auto}.brand-logo-frame{width:96px;height:40px}.logo{width:100%;height:100%}.nav-cta{padding:0 14px}.hero{padding:140px 0 90px}.section{padding:88px 0}.section-head{margin-bottom:56px}.movement-line{display:grid;grid-template-columns:1fr}.movement-line i{display:none}.gallery{gap:10px}.gallery-card{border-radius:14px}.contact-options{align-items:stretch}.contact-person,.email-choice{width:100%}.contact-person .btn,.email-row .btn,.email-row select{width:100%}.email-row{display:grid}.grow-block blockquote{font-size:2.2rem}.footer{padding-bottom:46px}}

/* V6 — editor paragraph fidelity + responsive text spacing */
.text-stack{width:100%;min-width:0}.text-stack p{overflow-wrap:anywhere}.hero-copy,.section-copy,.contact-copy,.privacy-copy{min-width:0}
@media(max-width:900px){.nav-inner{grid-template-columns:1fr auto}.nav-cta{justify-self:end}.team-title{gap:.34em;line-height:.94}.text-stack{gap:14px}}
@media(max-width:520px){.text-stack{gap:12px}.hero-copy,.section-copy,.contact-copy,.privacy-copy{font-size:1rem}}

/* V7 — parágrafos exatamente como definidos no painel */
.text-stack{white-space:normal}.text-stack .paragraph-gap{display:block;height:10px}.text-stack p{display:block;margin:0;max-width:100%}
@media(max-width:900px){.nav-inner{grid-template-columns:1fr auto}.nav-cta{justify-self:end}.team-title{gap:.34em;line-height:.94}.text-stack .paragraph-gap{height:9px}}
@media(max-width:520px){.text-stack .paragraph-gap{height:8px}}


/* V9 — título da equipa: cada frase é um parágrafo visual independente */
.team-title{display:block!important;line-height:1.08!important;}
.team-title .team-line{display:block!important;width:100%;line-height:1.08!important;}
.team-title .team-line + .team-line{margin-top:.34em!important;}
@media(max-width:900px){.nav-inner{grid-template-columns:1fr auto}.nav-cta{justify-self:end}.team-title{line-height:1.1!important}.team-title .team-line{line-height:1.1!important}.team-title .team-line + .team-line{margin-top:.38em!important}}
@media(max-width:520px){.team-title{line-height:1.12!important}.team-title .team-line{line-height:1.12!important}.team-title .team-line + .team-line{margin-top:.42em!important}}

/* V10 — equipa com uma única fotografia conjunta */
.team-card{border:1px solid var(--line);border-radius:32px;overflow:hidden;background:linear-gradient(135deg,#0a0f19,#0d1624)}
.team-photo{min-height:clamp(360px,48vw,650px);background:radial-gradient(circle at 70% 20%,rgba(104,216,255,.2),transparent 34%),linear-gradient(160deg,#101c2a,#06090f);background-size:cover;background-position:center;position:relative}
.team-photo:after{content:"";position:absolute;inset:auto 0 0;height:34%;background:linear-gradient(transparent,rgba(5,7,13,.76));pointer-events:none}
.team-photo.has-photo{background-size:cover;background-position:center 38%}
.team-people{display:grid;grid-template-columns:1fr 1fr;gap:0;border-top:1px solid var(--line)}
.team-person{padding:clamp(28px,4vw,48px);min-width:0}
.team-person+ .team-person{border-left:1px solid var(--line)}
.team-person h3{font-size:clamp(1.75rem,3vw,2.5rem);line-height:1.08;margin:8px 0 0}
.team-person p{color:var(--muted);margin:12px 0 0;max-width:520px}
.team-person-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:24px}
@media(max-width:900px){.team-photo{min-height:420px}.team-people{grid-template-columns:1fr}.team-person+ .team-person{border-left:0;border-top:1px solid var(--line)}}
@media(max-width:520px){.team-photo{min-height:320px;background-position:center}.team-person{padding:26px 22px}.team-person-actions .btn{width:100%}}

/* V12 — apresentação centrada + GROW YOU em cartão de luz/degradé */
#marca .section-head{grid-template-columns:1fr 1fr;align-items:center;}
#marca .section-head>div:first-child,
#marca .section-head>.section-copy{width:100%;max-width:none;text-align:center;justify-self:center;}
#marca .section-head>div:first-child{display:flex;flex-direction:column;align-items:center;}
#marca .section-head>.section-copy{display:grid;justify-items:center;}
#marca .section-head>.section-copy p{max-width:620px;text-align:center;}

.grow-block blockquote{
  max-width:none;
  min-height:clamp(360px,48vw,650px);
  margin:54px 0 0;
  padding:clamp(34px,6vw,74px);
  border:1px solid var(--line);
  border-radius:30px;
  background:
    radial-gradient(circle at 72% 18%,rgba(104,216,255,.16),transparent 34%),
    radial-gradient(circle at 18% 88%,rgba(26,92,255,.10),transparent 36%),
    linear-gradient(160deg,#101c2a 0%,#0b1521 46%,#06090f 100%);
  display:flex;
  align-items:center;
  justify-content:center;
  text-align:center;
  font-size:clamp(2rem,4.5vw,4.6rem);
  line-height:1.12;
  letter-spacing:-.045em;
  color:#edf5ff;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.025);
}
@media(max-width:900px){
  #marca .section-head{grid-template-columns:1fr;gap:42px;}
  .grow-block blockquote{min-height:420px;margin-top:38px;padding:40px 28px;}
}
@media(max-width:520px){
  #marca .section-head{gap:32px;}
  .grow-block blockquote{min-height:320px;border-radius:22px;padding:32px 22px;font-size:clamp(1.8rem,9vw,2.5rem);line-height:1.16;}
}


/* V13 — GROW YOU: ponto final cria novo parágrafo */
.grow-block blockquote{flex-direction:column;gap:clamp(18px,2.4vw,34px)}
.grow-block blockquote p{margin:0;max-width:1050px;text-align:center;line-height:1.12}
@media(max-width:520px){.grow-block blockquote{gap:18px}.grow-block blockquote p{line-height:1.16}}


/* V14 — site publicável sem imagens; conteúdo aparece automaticamente quando é carregado */
.portfolio-block:has(.gallery){padding-bottom:108px}
.portfolio-block:not(:has(.gallery)){padding-bottom:72px}
.team-card.no-team-photo .team-people{border-top:0}
.team-card.no-team-photo{background:linear-gradient(135deg,#0a0f19,#0d1624)}
@media(max-width:900px){.portfolio-block:not(:has(.gallery)){padding-bottom:58px}}
@media(max-width:520px){.portfolio-block:not(:has(.gallery)){padding-bottom:48px}}


/* V16 — secção equipa: colunas centradas horizontalmente */
#equipa .section-head{grid-template-columns:1fr 1fr;align-items:start}
#equipa .section-head>div{min-width:0;text-align:center;justify-self:center;width:100%}
#equipa .section-head .section-copy{max-width:620px;margin-inline:auto;padding-top:12px}
#equipa .team-title{margin-inline:auto}
#equipa .eyebrow{text-align:center}
@media(max-width:900px){#equipa .section-head{grid-template-columns:1fr;gap:34px}#equipa .section-head>div{text-align:center}#equipa .section-copy{margin-inline:auto}}


/* V18 — centrar realmente as duas colunas da secção Conheça-nos */
#equipa .section-head{
  grid-template-columns:minmax(0,1fr) minmax(0,1fr);
  align-items:start;
  justify-items:center;
  gap:clamp(48px,7vw,110px);
}
#equipa .section-head > div{
  width:100%;
  min-width:0;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:flex-start;
  text-align:center!important;
}
#equipa .section-head .eyebrow,
#equipa .section-head .team-title,
#equipa .section-head .team-title .team-line,
#equipa .section-head .section-copy,
#equipa .section-head .section-copy p{
  text-align:center!important;
  margin-left:auto!important;
  margin-right:auto!important;
}
#equipa .section-head .team-title{width:100%;max-width:540px;}
#equipa .section-head .section-copy{width:100%;max-width:620px;padding-top:12px;}
@media(max-width:900px){
  #equipa .section-head{grid-template-columns:1fr;gap:38px;}
  #equipa .section-head .team-title{max-width:620px;}
  #equipa .section-head .section-copy{max-width:680px;}
}


/* V19 — botão Instagram com identidade visual própria e prioridade sobre estilos genéricos */
#contacto .contact-options > a.instagram-btn,
#contacto a.btn.instagram-btn{
  background:linear-gradient(135deg,#176bff 0%,#5a4dff 52%,#8b5cf6 100%)!important;
  border-color:transparent!important;
  color:#fff!important;
  font-weight:700;
  box-shadow:0 0 18px rgba(73,121,255,.22),0 8px 26px rgba(68,61,214,.18)!important;
}
#contacto .contact-options > a.instagram-btn:hover,
#contacto a.btn.instagram-btn:hover{
  transform:translateY(-2px);
  filter:saturate(1.03) brightness(1.06);
  box-shadow:0 0 24px rgba(91,111,255,.30),0 12px 34px rgba(67,56,202,.24)!important;
}

/* V20 — Instagram mais discreto: azul/roxo com brilho subtil */
#contacto .contact-options > a.instagram-btn,
#contacto a.btn.instagram-btn{
  border:1px solid rgba(141,170,255,.34)!important;
  text-shadow:0 1px 12px rgba(255,255,255,.14);
}

/* V21 — alinhar verticalmente as duas colunas da secção Conheça-nos */
#equipa .section-head{
  align-items:center!important;
}
#equipa .section-head > div{
  justify-content:center!important;
}
#equipa .section-head .section-copy{
  padding-top:0!important;
}
@media(max-width:900px){
  #equipa .section-head{align-items:center!important;}
}

/* V22 — contactos diretos por pessoa: nome + chamada + WhatsApp + email */
.sr-only{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}
#contacto .contact-options-v22{align-items:center;gap:22px}
#contacto .contact-person-v22{display:flex;flex-direction:column;align-items:center;gap:12px;min-width:170px}
#contacto .contact-name-pill{min-width:160px;cursor:default;pointer-events:none;font-weight:700}
#contacto .contact-icon-row{display:flex;align-items:center;justify-content:center;gap:10px}
#contacto .contact-icon-link{width:42px;height:42px;border-radius:999px;border:1px solid rgba(255,255,255,.12);background:rgba(255,255,255,.035);display:inline-flex;align-items:center;justify-content:center;color:#dce9ff;transition:.22s ease}
#contacto .contact-icon-link svg{width:19px;height:19px;fill:currentColor;display:block}
#contacto .contact-icon-link:hover{transform:translateY(-2px);border-color:rgba(104,216,255,.5);background:rgba(73,131,255,.12);color:#fff;box-shadow:0 8px 26px rgba(28,89,255,.16)}
#contacto .contact-icon-link.whatsapp:hover{border-color:rgba(83,215,145,.5);background:rgba(43,170,111,.12);box-shadow:0 8px 26px rgba(26,140,88,.14)}
#contacto .instagram-btn{align-self:flex-start;margin-left:4px}
@media(max-width:760px){
  #contacto .contact-options-v22{display:grid;grid-template-columns:1fr 1fr;align-items:start;gap:24px 16px}
  #contacto .contact-person-v22{min-width:0;width:100%}
  #contacto .contact-name-pill{width:100%;min-width:0}
  #contacto .instagram-btn{grid-column:1/-1;justify-self:center;margin-left:0}
}
@media(max-width:520px){
  #contacto .contact-options-v22{grid-template-columns:1fr;gap:22px}
  #contacto .instagram-btn{grid-column:auto;width:auto;justify-self:center}
}


/* V26 — Immersive Experience Train
   Movimento subtil, profundidade, ritmo e microinterações sem scroll hijacking.
   Mantém o conteúdo legível sem JavaScript e respeita prefers-reduced-motion. */

/* progressão discreta no header */
.nav{transition:background .35s ease,border-color .35s ease,box-shadow .35s ease,height .35s ease}
.nav.scrolled{background:rgba(5,7,13,.86);box-shadow:0 12px 36px rgba(0,0,0,.18)}
.nav::after{content:"";position:absolute;left:0;bottom:-1px;width:calc(var(--scroll-progress,0) * 100%);height:1px;background:linear-gradient(90deg,var(--blue),var(--cyan),#7d5cff);opacity:.78;pointer-events:none;transition:width .08s linear}
.nav-links a{position:relative;padding:10px 0;transition:color .22s ease}
.nav-links a::after{content:"";position:absolute;left:0;right:0;bottom:5px;height:1px;background:linear-gradient(90deg,var(--cyan),#7d5cff);transform:scaleX(0);transform-origin:left;transition:transform .25s ease}
.nav-links a:hover,.nav-links a.is-active{color:#fff}
.nav-links a:hover::after,.nav-links a.is-active::after{transform:scaleX(1)}

/* profundidade ambiental entre secções */
.section{position:relative;isolation:isolate;overflow:hidden}
.section>.wrap{position:relative;z-index:1}
.section::before{content:"";position:absolute;z-index:0;width:520px;height:520px;border-radius:50%;filter:blur(110px);opacity:.07;pointer-events:none;background:linear-gradient(135deg,#1a5cff,#7d5cff);right:-280px;top:10%;transform:translate3d(0,0,0);animation:sdAmbient 16s ease-in-out infinite alternate}
.section:nth-of-type(even)::before{right:auto;left:-300px;top:28%;background:linear-gradient(135deg,#68d8ff,#284cff);animation-duration:19s}
@keyframes sdAmbient{from{transform:translate3d(-18px,-12px,0) scale(.96)}to{transform:translate3d(22px,20px,0) scale(1.06)}}

/* hero: entrada editorial/cinematográfica */
.hero .eyebrow,.hero h1,.hero .hero-copy,.hero .hero-actions{opacity:0;transform:translate3d(0,24px,0);animation:sdHeroIn .82s cubic-bezier(.2,.7,.2,1) forwards}
.hero .eyebrow{animation-delay:.08s}
.hero h1{animation-delay:.18s}
.hero .hero-copy{animation-delay:.34s}
.hero .hero-actions{animation-delay:.48s}
@keyframes sdHeroIn{to{opacity:1;transform:translate3d(0,0,0)}}
.hero .g1{animation:sdGlowOne 12s ease-in-out infinite alternate}
.hero .g2{animation:sdGlowTwo 14s ease-in-out infinite alternate}
@keyframes sdGlowOne{from{transform:translate3d(0,0,0) scale(.94)}to{transform:translate3d(-42px,28px,0) scale(1.08)}}
@keyframes sdGlowTwo{from{transform:translate3d(0,0,0) scale(1)}to{transform:translate3d(34px,-26px,0) scale(1.12)}}

/* scroll reveal: só é escondido depois de JS ativar a experiência */
body.immersive-ready .reveal-item{opacity:0;transform:translate3d(0,30px,0);transition:opacity .72s cubic-bezier(.2,.7,.2,1),transform .72s cubic-bezier(.2,.7,.2,1)}
body.immersive-ready .reveal-item.reveal-left{transform:translate3d(-28px,0,0)}
body.immersive-ready .reveal-item.reveal-right{transform:translate3d(28px,0,0)}
body.immersive-ready .reveal-item.is-visible{opacity:1;transform:translate3d(0,0,0)}
body.immersive-ready .reveal-delay-1{transition-delay:.08s}
body.immersive-ready .reveal-delay-2{transition-delay:.16s}
body.immersive-ready .reveal-delay-3{transition-delay:.24s}

/* movimentos 01 → 02 → 03 com mais presença narrativa */
.movement-line span{transition:color .28s ease,text-shadow .28s ease,transform .28s ease}
.movement-line i{transform-origin:left;transition:opacity .3s ease,filter .3s ease}
.movement-line:hover span{color:#fff;text-shadow:0 0 22px rgba(104,216,255,.16)}
.movement-line:hover i{filter:brightness(1.4);opacity:.88}

/* portfolio editorial */
.gallery-card{transition:transform .38s cubic-bezier(.2,.7,.2,1),filter .32s ease,box-shadow .38s ease,border-radius .32s ease;will-change:transform}
.gallery-card img{transition:transform .75s cubic-bezier(.2,.7,.2,1),filter .4s ease}
.gallery-card .overlay{transition:opacity .32s ease,transform .32s ease;transform:translateY(8px)}
.gallery-card:hover .overlay{transform:translateY(0)}
@media(hover:hover) and (pointer:fine){
  .gallery:hover .gallery-card{filter:brightness(.78) saturate(.9)}
  .gallery .gallery-card:hover{filter:brightness(1) saturate(1.03);transform:translateY(-5px);box-shadow:0 22px 54px rgba(0,0,0,.28)}
  .gallery-card:hover img{transform:scale(1.035)}
}

/* GROW YOU: halo lento e leitura frase a frase */
.grow-block blockquote{position:relative;overflow:hidden;isolation:isolate;box-shadow:inset 0 1px 0 rgba(255,255,255,.035),0 26px 80px rgba(0,0,0,.16)}
.grow-block blockquote::before{content:"";position:absolute;z-index:-1;width:62%;aspect-ratio:1;border-radius:50%;right:-16%;top:-42%;background:radial-gradient(circle,rgba(85,111,255,.24),rgba(104,216,255,.08) 38%,transparent 68%);filter:blur(28px);animation:sdGrowHalo 10s ease-in-out infinite alternate;pointer-events:none}
.grow-block blockquote::after{content:"";position:absolute;z-index:-1;inset:0;background:linear-gradient(112deg,transparent 30%,rgba(255,255,255,.025) 48%,transparent 65%);transform:translateX(-110%);animation:sdSoftSweep 11s ease-in-out infinite;pointer-events:none}
@keyframes sdGrowHalo{from{transform:translate3d(0,0,0) scale(.96)}to{transform:translate3d(-11%,16%,0) scale(1.12)}}
@keyframes sdSoftSweep{0%,58%{transform:translateX(-110%)}78%,100%{transform:translateX(110%)}}
.grow-block blockquote p{transition:opacity .55s ease,transform .55s ease}

/* equipa: fotografia com reveal suave + cartões com resposta visual */
.team-card{transition:border-color .35s ease,box-shadow .4s ease,transform .4s ease}
.team-photo{overflow:hidden;transform-origin:center}
.team-photo.has-photo{clip-path:inset(0 0 0 0 round 0);transition:clip-path 1s cubic-bezier(.2,.7,.2,1),transform 1.2s cubic-bezier(.2,.7,.2,1)}
.team-person{transition:background .3s ease}
@media(hover:hover) and (pointer:fine){
  .team-card:hover{border-color:rgba(104,216,255,.18);box-shadow:0 24px 72px rgba(0,0,0,.18)}
  .team-person:hover{background:rgba(255,255,255,.018)}
}

/* contacto: maior profundidade sem ficar chamativo */
.contact-card{position:relative;overflow:hidden;isolation:isolate;transition:border-color .35s ease,box-shadow .4s ease}
.contact-card::before{content:"";position:absolute;z-index:-1;width:420px;height:420px;border-radius:50%;right:-110px;top:-190px;background:radial-gradient(circle,rgba(104,216,255,.17),rgba(90,76,255,.08) 40%,transparent 70%);filter:blur(12px);animation:sdContactGlow 12s ease-in-out infinite alternate;pointer-events:none}
@keyframes sdContactGlow{from{transform:translate3d(0,0,0)}to{transform:translate3d(-36px,42px,0) scale(1.08)}}
.contact-card:hover{border-color:rgba(104,216,255,.16);box-shadow:0 26px 80px rgba(0,0,0,.2)}
.btn,.nav-cta,.contact-icon-link{will-change:transform}
.btn:active,.nav-cta:active,.contact-icon-link:active{transform:translateY(1px) scale(.985)}

/* lightbox: transição suave e mais imersiva */
.lightbox{opacity:0;visibility:hidden;display:flex!important;transition:opacity .28s ease,visibility .28s ease}
.lightbox.open{opacity:1;visibility:visible}
.lightbox img{opacity:0;transform:scale(.975);transition:opacity .32s ease,transform .36s cubic-bezier(.2,.7,.2,1)}
.lightbox.open img{opacity:1;transform:scale(1)}
body.lightbox-open{overflow:hidden}

/* foco acessível */
a:focus-visible,button:focus-visible,select:focus-visible,input:focus-visible,textarea:focus-visible{outline:2px solid var(--cyan);outline-offset:4px}

/* tablet/mobile: menos deslocamento e menos custo visual */
@media(max-width:900px){
  .section::before{width:380px;height:380px;filter:blur(100px);opacity:.055}
  body.immersive-ready .reveal-item{transform:translate3d(0,20px,0)}
  body.immersive-ready .reveal-item.reveal-left,body.immersive-ready .reveal-item.reveal-right{transform:translate3d(0,20px,0)}
  body.immersive-ready .reveal-item.is-visible{transform:translate3d(0,0,0)}
}
@media(max-width:520px){
  .section::before{opacity:.04}
  .gallery-card:hover{transform:none}
}

/* acessibilidade: movimento nunca é obrigatório */
@media(prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{animation-duration:.001ms!important;animation-iteration-count:1!important;scroll-behavior:auto!important;transition-duration:.001ms!important}
  .hero .eyebrow,.hero h1,.hero .hero-copy,.hero .hero-actions,body.immersive-ready .reveal-item{opacity:1!important;transform:none!important}
}

/* V27 — Hero com portefólio abstrato editável */
.hero{isolation:isolate;background:var(--bg)}
.hero-content{position:relative;z-index:5}
.hero-portfolio-bg{position:absolute;inset:-5%;z-index:0;overflow:hidden;pointer-events:none}
.hero-bg-shot{position:absolute;border-radius:30px;overflow:hidden;opacity:.64;filter:blur(7px) saturate(.92);transform:translateZ(0) rotate(var(--r,0deg)) scale(1.04);box-shadow:0 24px 80px rgba(0,0,0,.42)}
.hero-bg-shot img{width:100%;height:100%;object-fit:cover;filter:contrast(.95) brightness(.9)}
.hero-bg-shot-1{--r:-8deg;width:35%;height:46%;left:-5%;top:2%}
.hero-bg-shot-2{--r:7deg;width:31%;height:42%;left:24%;top:-7%}
.hero-bg-shot-3{--r:-4deg;width:35%;height:48%;right:8%;top:1%}
.hero-bg-shot-4{--r:9deg;width:34%;height:44%;right:-8%;top:34%}
.hero-bg-shot-5{--r:-6deg;width:30%;height:42%;left:5%;bottom:-9%}
.hero-bg-shot-6{--r:4deg;width:37%;height:47%;left:34%;bottom:-13%}
.hero-bg-shot-7{--r:-10deg;width:26%;height:34%;right:8%;bottom:-6%}
.hero-bg-shot-8{--r:6deg;width:23%;height:31%;left:47%;top:23%}
.hero-tone-overlay{position:absolute;inset:0;z-index:2;pointer-events:none;background:rgba(5,7,13,.80)}
.hero .glow{z-index:3;mix-blend-mode:screen}
.hero h1{line-height:1.02;letter-spacing:-.055em;text-wrap:balance}
@media(max-width:900px){.hero h1{line-height:1.04;letter-spacing:-.045em}.hero-bg-shot{filter:blur(6px) saturate(.9);opacity:.58}.hero-bg-shot-7,.hero-bg-shot-8{display:none}.hero-tone-overlay{background:rgba(5,7,13,.82)}}
@media(max-width:520px){.hero h1{line-height:1.06;letter-spacing:-.035em}.hero-portfolio-bg{inset:-2%}.hero-bg-shot{border-radius:18px;filter:blur(5px);opacity:.52}.hero-bg-shot-5,.hero-bg-shot-6,.hero-bg-shot-7,.hero-bg-shot-8{display:none}.hero-bg-shot-1{width:62%;height:35%;left:-18%;top:8%}.hero-bg-shot-2{width:58%;height:33%;left:38%;top:2%}.hero-bg-shot-3{width:62%;height:38%;right:-22%;top:36%}.hero-bg-shot-4{width:66%;height:37%;right:22%;top:55%}.hero-tone-overlay{background:rgba(5,7,13,.84)}}
@media(prefers-reduced-motion:reduce){.hero-bg-shot{transform:none!important}}

/* V28 — Hero mais luminoso, integrado no header e com transição suave para a secção seguinte */
.hero-portfolio-bg{
  top:-92px;
  bottom:-2px;
  left:-5%;
  right:-5%;
  -webkit-mask-image:linear-gradient(to bottom,#000 0%,#000 74%,rgba(0,0,0,.96) 80%,rgba(0,0,0,.72) 88%,rgba(0,0,0,.28) 95%,transparent 100%);
  mask-image:linear-gradient(to bottom,#000 0%,#000 74%,rgba(0,0,0,.96) 80%,rgba(0,0,0,.72) 88%,rgba(0,0,0,.28) 95%,transparent 100%);
}
.hero-tone-overlay{
  background:
    linear-gradient(to bottom,rgba(5,7,13,.58) 0%,rgba(5,7,13,.62) 58%,rgba(5,7,13,.72) 78%,rgba(5,7,13,.90) 92%,var(--bg) 100%);
}
.hero-bg-shot{opacity:.72;filter:blur(7px) saturate(.98)}
.hero-bg-shot img{filter:contrast(.98) brightness(.96) saturate(1.02)}

/* O header integra-se visualmente no hero; ao fazer scroll recupera fundo sólido */
.nav{background:rgba(5,7,13,.20);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);transition:background .3s ease,border-color .3s ease,backdrop-filter .3s ease}
.nav.scrolled{background:rgba(5,7,13,.88);backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px);border-color:var(--line)}

/* Galeria pública: 3 imagens por linha também em tablet e telemóvel */
@media(max-width:900px){
  .gallery{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
  .hero-portfolio-bg{top:-82px;left:-3%;right:-3%;bottom:-2px}
  .hero-bg-shot{opacity:.68;filter:blur(6px) saturate(.96)}
  .hero-tone-overlay{background:linear-gradient(to bottom,rgba(5,7,13,.62) 0%,rgba(5,7,13,.66) 60%,rgba(5,7,13,.76) 80%,rgba(5,7,13,.92) 93%,var(--bg) 100%)}
}
@media(max-width:520px){
  .gallery{grid-template-columns:repeat(3,minmax(0,1fr));gap:6px}
  .gallery-card{border-radius:10px}
  .gallery-card img{aspect-ratio:4/5}
  .hero-portfolio-bg{top:-72px;left:-2%;right:-2%;bottom:-2px}
  .hero-bg-shot{opacity:.64;filter:blur(5px) saturate(.94)}
  .hero-tone-overlay{background:linear-gradient(to bottom,rgba(5,7,13,.66) 0%,rgba(5,7,13,.70) 58%,rgba(5,7,13,.80) 80%,rgba(5,7,13,.94) 94%,var(--bg) 100%)}
  .nav{background:rgba(5,7,13,.26);backdrop-filter:blur(9px);-webkit-backdrop-filter:blur(9px)}
}

/* V30 — Contactos compactos também na secção Equipa */
#equipa .team-contact-compact{display:flex;flex-direction:column;align-items:flex-start;gap:12px;margin-top:24px}
#equipa .team-name-pill{min-width:160px;justify-content:center;cursor:default;pointer-events:none;font-weight:700}
#equipa .team-icon-row{display:flex;align-items:center;gap:10px}
#equipa .team-icon-link{width:42px;height:42px;border:1px solid rgba(148,163,184,.22);border-radius:999px;display:inline-flex;align-items:center;justify-content:center;color:#eef4ff;background:rgba(9,16,30,.38);transition:transform .2s ease,border-color .2s ease,background .2s ease}
#equipa .team-icon-link:hover{transform:translateY(-2px);border-color:rgba(73,180,255,.55);background:rgba(28,88,150,.24)}
#equipa .team-icon-link svg{width:18px;height:18px;fill:currentColor}
#equipa .team-icon-link.whatsapp:hover{border-color:rgba(68,210,143,.55);background:rgba(31,122,83,.2)}
@media(max-width:720px){
  #equipa .team-contact-compact{align-items:center}
  #equipa .team-name-pill{min-width:145px}
  #equipa .team-icon-row{justify-content:center}
}

/* V34 — geometric/futurist display face only for the GROW YOU statement.
   Uses local/system fonts only; no external font dependency. */
.grow-block blockquote,
.grow-block blockquote p{
  font-family:Futura,"Century Gothic","Avenir Next","Avenir",Montserrat,Arial,sans-serif;
  font-weight:500;
  letter-spacing:-.035em;
}


/* V43 — SEE YOU em faixa horizontal automática + hero mais leve */
#see-you .see-carousel{
  display:block;
  overflow-x:auto;
  overflow-y:hidden;
  width:100%;
  scrollbar-width:none;
  -ms-overflow-style:none;
  overscroll-behavior-inline:contain;
  touch-action:pan-x pan-y;
  -webkit-overflow-scrolling:touch;
  mask-image:linear-gradient(90deg,transparent 0,#000 1.2%,#000 98.8%,transparent 100%);
  -webkit-mask-image:linear-gradient(90deg,transparent 0,#000 1.2%,#000 98.8%,transparent 100%);
}
#see-you .see-carousel::-webkit-scrollbar{display:none}
#see-you .see-carousel-track{display:flex;align-items:stretch;gap:18px;width:max-content;padding:2px 4px 8px}
#see-you .see-carousel .gallery-card{flex:0 0 calc((min(calc(100vw - 48px), var(--max)) - 36px) / 3);width:calc((min(calc(100vw - 48px), var(--max)) - 36px) / 3)}
#see-you .see-carousel .gallery-card img{width:100%;aspect-ratio:4/5;object-fit:cover}

/* O blur é aplicado ao contentor, permitindo que o WebP otimizado continue visualmente idêntico. */
.hero-bg-shot img{transform:translateZ(0);will-change:auto}

@media(max-width:900px){
  #see-you .see-carousel-track{gap:12px}
  #see-you .see-carousel .gallery-card{flex-basis:calc((100vw - 48px - 24px) / 3);width:calc((100vw - 48px - 24px) / 3)}
}
@media(max-width:520px){
  #see-you .see-carousel-track{gap:6px;padding-inline:0}
  #see-you .see-carousel .gallery-card{flex-basis:calc((100vw - 28px - 12px) / 3);width:calc((100vw - 28px - 12px) / 3);border-radius:10px}
}
@media(prefers-reduced-motion:reduce){
  #see-you .see-carousel{scroll-behavior:auto}
}


/* V45 — SEE YOU com deslizamento contínuo, sem saltos por fotografia */
#see-you .see-carousel{scroll-behavior:auto;cursor:grab}
#see-you .see-carousel:active{cursor:grabbing}
#see-you .see-carousel-track{will-change:transform}


/* V46 — SEE YOU: passadeira contínua real, velocidade média */
#see-you .see-carousel{overflow:hidden;cursor:default;touch-action:pan-y}
#see-you .see-carousel-track{will-change:transform;transform:translate3d(0,0,0);backface-visibility:hidden}
#see-you .see-carousel .gallery-card{transform:translateZ(0)}
