/* ============ Celior — site ============ */
:root{
  --preto:#141414;
  --preto-2:#1b1b1c;
  --grafite:#2b2b2e;
  --linha:rgba(250,247,240,.12);
  --creme:#faf7f0;
  --creme-2:rgba(250,247,240,.66);
  --creme-3:rgba(250,247,240,.5);
  --ouro:#d9b441;
  --ouro-claro:#f6e7ae;
  --ouro-escuro:#8a6314;
  --ouro-grad:linear-gradient(180deg,#f6e7ae 0%,#d9b441 45%,#8a6314 100%);

  --serif:'Cinzel','Times New Roman',serif;
  --sans:'Montserrat','Segoe UI',Helvetica,Arial,sans-serif;

  --ease-out:cubic-bezier(.23,1,.32,1);
  --ease-in-out:cubic-bezier(.77,0,.175,1);

  --gutter:clamp(16px,4vw,56px);
  --max:1360px;
}

*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;background:var(--preto)}
html.lenis,html.lenis body{height:auto}
.lenis.lenis-smooth{scroll-behavior:auto!important}
body{
  margin:0;background:var(--preto);color:var(--creme);
  font-family:var(--sans);font-size:16px;line-height:1.6;
  -webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;
  overflow-x:hidden;
}
img,video,canvas,svg{display:block;max-width:100%}
a{color:inherit;text-decoration:none}
button{font:inherit;color:inherit;background:none;border:0;cursor:pointer}
em{font-style:italic}
::selection{background:var(--ouro);color:var(--preto)}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
:focus-visible{outline:1px solid var(--ouro);outline-offset:4px}
[tabindex="-1"]:focus{outline:none}

.wrap{width:100%;max-width:var(--max);margin:0 auto;padding:0 var(--gutter)}

/* ---------- tipografia base ---------- */
.kicker,.eyebrow,.label{
  font-family:var(--sans);font-size:11px;font-weight:500;letter-spacing:.32em;
  text-transform:uppercase;color:var(--ouro);margin:0 0 28px;
}
.title{
  font-family:var(--serif);font-weight:500;font-size:clamp(34px,5.2vw,84px);
  line-height:1.04;letter-spacing:.01em;margin:0;
}
.title em,.hero__title em,.passo h3 em,.manifesto__text em,.etapa em{
  font-style:normal;
  background:var(--ouro-grad);-webkit-background-clip:text;background-clip:text;color:transparent;
  }
.link{border-bottom:1px solid rgba(217,180,65,.4);padding-bottom:1px;transition:border-color .2s ease,color .2s ease}
@media (hover:hover){.link:hover{border-color:var(--ouro);color:var(--ouro-claro)}}

/* ---------- grão e cursor ---------- */
.grain{
  position:fixed;inset:-50%;z-index:90;pointer-events:none;opacity:.07;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='220' height='220'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
  animation:grain 1.2s steps(6) infinite;
}
@keyframes grain{0%{transform:translate(0,0)}20%{transform:translate(-3%,2%)}40%{transform:translate(2%,-3%)}60%{transform:translate(-2%,-1%)}80%{transform:translate(3%,3%)}100%{transform:translate(0,0)}}

.cursor{display:none}
@media (hover:hover) and (pointer:fine){
  html.has-cursor body,html.has-cursor a,html.has-cursor button{cursor:none}
  .cursor{display:block;position:fixed;inset:0;z-index:100;pointer-events:none}
  .cursor__dot,.cursor__ring{position:fixed;left:0;top:0;border-radius:50%;will-change:transform}
  .cursor__dot{width:6px;height:6px;margin:-3px 0 0 -3px;background:var(--ouro)}
  .cursor__ring{
    width:38px;height:38px;margin:-19px 0 0 -19px;border:1px solid rgba(217,180,65,.55);
    display:grid;place-items:center;
    transition:width .35s var(--ease-out),height .35s var(--ease-out),margin .35s var(--ease-out),background-color .35s ease,border-color .35s ease;
  }
  .cursor__ring em{font-style:normal;font-size:10px;letter-spacing:.2em;text-transform:uppercase;color:var(--preto);opacity:0;transition:opacity .2s ease}
  .cursor.is-link .cursor__ring{width:64px;height:64px;margin:-32px 0 0 -32px;border-color:var(--ouro)}
  .cursor.is-label .cursor__ring{width:86px;height:86px;margin:-43px 0 0 -43px;background:var(--ouro);border-color:var(--ouro)}
  .cursor.is-label .cursor__ring em{opacity:1}
  .cursor.is-hidden{opacity:0}
}

/* ---------- loader ---------- */
.loader{display:none}
html.js .loader{
  position:fixed;inset:0;z-index:95;background:var(--preto);
  display:grid;place-items:center;align-content:center;gap:28px;
}
.loader__mark{width:min(180px,40vw);overflow:visible}
.loader__ring{stroke-dasharray:1;stroke-dashoffset:1}
.loader__gem{opacity:0;transform:translateY(-14px);transform-box:fill-box;transform-origin:center}
.loader__count{display:flex;flex-direction:column;align-items:center;gap:6px}
.loader__count span{font-family:var(--serif);font-size:26px;letter-spacing:.08em;color:var(--creme);font-variant-numeric:tabular-nums}
.loader__count small{font-size:10px;letter-spacing:.4em;text-transform:uppercase;color:var(--creme-3)}
html.is-ready .loader{pointer-events:none}

/* ---------- nav ---------- */
.nav{
  position:fixed;top:0;left:0;right:0;z-index:80;
  display:flex;align-items:center;
  padding:22px var(--gutter);
  transition:transform .5s var(--ease-out),background-color .4s ease;
}
.nav::before{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(180deg,rgba(13,12,10,.75),rgba(13,12,10,0));opacity:0;transition:opacity .4s ease}
.nav.is-scrolled::before{opacity:1}
.nav.is-hidden{transform:translateY(-110%)}
.nav__brand{display:flex;align-items:center;gap:12px;color:var(--ouro)}
.nav__brand svg{width:22px;height:auto}
.nav__brand span{font-family:var(--serif);font-size:17px;font-weight:600;letter-spacing:.24em;text-transform:uppercase;color:var(--creme)}
.nav__links{display:flex;gap:clamp(18px,3vw,44px);margin-left:auto}
.nav__lang{margin-left:clamp(18px,3vw,44px);font-size:11px;font-weight:500;letter-spacing:.26em;text-transform:uppercase;color:var(--creme-2);
  padding:7px 10px 6px 12px;border:1px solid rgba(217,180,65,.45);border-radius:2px;transition:color .2s ease,border-color .2s ease,background-color .2s ease}
@media (hover:hover){.nav__lang:hover{color:var(--preto);background:var(--ouro);border-color:var(--ouro)}}
.menu__lang{margin-top:28px;font-family:var(--sans);font-size:12px;letter-spacing:.3em;text-transform:uppercase;color:var(--ouro)}
.nav__links a{position:relative;font-size:11px;font-weight:500;letter-spacing:.26em;text-transform:uppercase;color:var(--creme-2);transition:color .2s ease}
.nav__links a::after{content:"";position:absolute;left:0;right:0;bottom:-6px;height:1px;background:var(--ouro);transform:scaleX(0);transform-origin:right;transition:transform .45s var(--ease-out)}
@media (hover:hover){
  .nav__links a:hover{color:var(--creme)}
  .nav__links a:hover::after{transform:scaleX(1);transform-origin:left}
}
.nav__toggle{display:none;width:44px;height:44px;position:relative}
.nav__toggle span:not(.sr){position:absolute;left:10px;right:10px;height:1px;background:var(--creme);transition:transform .4s var(--ease-out)}
.nav__toggle span:nth-child(1){top:18px}
.nav__toggle span:nth-child(2){top:26px}
.nav__toggle[aria-expanded="true"] span:nth-child(1){transform:translateY(4px) rotate(45deg)}
.nav__toggle[aria-expanded="true"] span:nth-child(2){transform:translateY(-4px) rotate(-45deg)}
.menu{
  position:fixed;inset:0;z-index:79;background:var(--preto);
  display:flex;flex-direction:column;justify-content:center;gap:10px;padding:0 var(--gutter);
}
.menu[hidden]{display:none}
.menu a{font-family:var(--serif);font-size:clamp(34px,10vw,60px);line-height:1.25}
@media (max-width:760px){
  .nav__links{display:none}
  .nav__lang{margin-left:auto}
  .nav__toggle{display:block;margin-left:6px}
}

/* ---------- hero ---------- */
.hero{position:relative;height:100vh;height:100svh;min-height:560px;overflow:hidden;display:flex;flex-direction:column;justify-content:flex-end}
.hero__media{position:absolute;inset:0}
.hero__video{width:100%;height:100%;object-fit:cover;transform:scale(1.08);filter:saturate(.95) contrast(1.05)}
.hero__shade{position:absolute;inset:0;background:
  radial-gradient(ellipse 80% 70% at 50% 45%,rgba(13,12,10,.1) 0%,rgba(13,12,10,.55) 70%,rgba(13,12,10,.92) 100%),
  linear-gradient(180deg,rgba(13,12,10,.5) 0%,rgba(13,12,10,0) 30%,rgba(13,12,10,0) 55%,rgba(13,12,10,.95) 100%)}
.hero__content{position:relative;padding:0 var(--gutter) clamp(90px,14vh,150px);max-width:var(--max);margin:0 auto;width:100%}
.hero__eyebrow{display:flex;gap:28px;flex-wrap:wrap}
.hero__eyebrow span+span{color:var(--creme-2)}
.hero__eyebrow{text-shadow:0 0 12px rgba(13,12,10,.9),0 0 3px rgba(13,12,10,.9)}
@media (max-width:760px){.hero__shade{background:radial-gradient(ellipse 80% 70% at 50% 45%,rgba(13,12,10,.1) 0%,rgba(13,12,10,.55) 70%,rgba(13,12,10,.92) 100%),linear-gradient(180deg,rgba(13,12,10,.5) 0%,rgba(13,12,10,0) 22%,rgba(13,12,10,.55) 36%,rgba(13,12,10,.55) 50%,rgba(13,12,10,.95) 100%)}}
.hero__title{font-family:var(--serif);font-weight:500;font-size:clamp(34px,5.8vw,100px);line-height:1;letter-spacing:.01em;margin:0 0 30px}
@media (max-width:380px){.hero__title{font-size:30px}}
@media (max-height:520px) and (orientation:landscape){.hero{min-height:0}.hero__title{font-size:34px;margin-bottom:18px}.hero__lead{max-width:620px}.hero__content{padding-bottom:64px}}
.hero__title .line{display:block;overflow:hidden;padding-bottom:.06em;margin-bottom:-.06em}
.hero__title .line>span{display:block}
.hero__lead{max-width:440px;font-size:15px;color:var(--creme-2);margin:0}
.hero__foot{position:absolute;left:0;right:0;bottom:0;display:flex;justify-content:space-between;align-items:flex-end;padding:0 var(--gutter) 26px;font-size:10px;letter-spacing:.3em;text-transform:uppercase;color:var(--creme-3)}
.hero__scroll{position:absolute;left:50%;bottom:26px;transform:translateX(-50%);width:1px;height:54px;background:rgba(243,237,226,.18);overflow:hidden}
.hero__foot-r{display:flex;flex-wrap:wrap;justify-content:flex-end;align-items:flex-end;gap:10px 22px}
.motion-toggle{font-size:10px;letter-spacing:.3em;text-transform:uppercase;color:var(--creme-2);padding:12px 0;margin:-12px 0;border-bottom:1px solid transparent;transition:color .2s ease}
@media (hover:hover){.motion-toggle:hover{color:var(--ouro-claro)}}
html.paused .grain,html.paused .hero__scroll i,html.paused .render__sweep,html.paused .render__sparks i{animation-play-state:paused}
@media (max-width:520px){.hero__foot>span:first-child,.hero__scroll{display:none}.hero__foot{justify-content:flex-end}}
.hero__scroll i{position:absolute;left:0;top:0;width:1px;height:100%;background:var(--ouro);animation:fioDesce 2.2s var(--ease-in-out) infinite}
@keyframes fioDesce{0%{transform:translateY(-100%)}60%,100%{transform:translateY(100%)}}

/* ---------- manifesto ---------- */
.manifesto{padding:clamp(120px,22vh,240px) var(--gutter)}
.manifesto__text{
  max-width:1180px;margin:0 auto;font-family:var(--sans);font-weight:300;font-size:clamp(24px,3.3vw,50px);line-height:1.3;letter-spacing:-.01em;text-wrap:balance;
}
.manifesto__text em{font-family:var(--serif);font-weight:500;letter-spacing:.02em}
.manifesto__text .w{display:inline-block}
.manifesto__text em .w{background:var(--ouro-grad);-webkit-background-clip:text;background-clip:text;color:transparent}

/* ---------- filigrana ---------- */
.filigrana{position:relative;padding:clamp(80px,14vh,160px) 0 clamp(90px,14vh,160px);border-top:1px solid var(--linha);overflow:hidden}
.filigrana__fio{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;z-index:1}
.filigrana__grid,.filigrana .stats{z-index:2}
.filigrana__grid{position:relative;display:grid;grid-template-columns:1.1fr 1fr;gap:clamp(40px,6vw,110px);align-items:end}
.filigrana__grid .title{font-size:clamp(34px,5.2vw,76px)}
.filigrana__body p{color:var(--creme-2);max-width:520px;margin:0 0 22px;font-size:16px}
.filigrana__body strong{color:var(--creme);font-weight:500}
.hint{margin:36px 0 0;font-size:11px;letter-spacing:.28em;text-transform:uppercase;color:var(--creme-3)}
@media (hover:none){.hint{display:none}.filigrana__fio{opacity:.45}}
html.reduce .hint{display:none}
.stats{position:relative;display:grid;grid-template-columns:repeat(4,1fr);gap:0;margin-top:clamp(70px,10vh,120px);border-top:1px solid var(--linha)}
.wrap.stats,.wrap.footer__row{width:calc(100% - 2*var(--gutter));max-width:calc(var(--max) - 2*var(--gutter));padding-left:0;padding-right:0}
.stat{padding:28px 24px 0 0;display:flex;flex-direction:column;gap:10px}
.stat+.stat{padding-left:24px;border-left:1px solid var(--linha)}
.stat b{font-family:var(--serif);font-weight:500;font-size:clamp(40px,4.6vw,72px);line-height:1;display:flex;align-items:baseline;gap:8px;font-variant-numeric:tabular-nums}
.stat b small{font-family:var(--sans);font-size:12px;letter-spacing:.2em;text-transform:uppercase;color:var(--ouro)}
.stat>span{font-size:13px;color:var(--creme-3);max-width:220px;line-height:1.5}
@media (max-width:900px){
  .filigrana__grid{grid-template-columns:1fr;align-items:start}
  .stats{grid-template-columns:1fr 1fr}
  .stat:nth-child(3){padding-left:0;border-left:0}
  .stat:nth-child(n+3){border-top:1px solid var(--linha);margin-top:28px}
}

/* ---------- caminho do fio (horizontal) ---------- */
.caminho{position:relative;background:var(--preto-2);border-top:1px solid var(--linha)}
.caminho__pin{position:relative;height:100vh;height:100svh;overflow:hidden;display:flex;flex-direction:column}
.caminho__head{display:flex;align-items:center;gap:32px;padding-top:110px;flex:none;max-width:none}
.caminho__head .kicker{margin:0;white-space:nowrap}
.caminho__bar{flex:1;height:1px;background:var(--linha);position:relative;overflow:hidden}
.caminho__bar i{position:absolute;inset:0;background:var(--ouro);transform:scaleX(0);transform-origin:left}
.caminho__track{position:relative;flex:1;display:flex;align-items:center;gap:0;padding:0 var(--gutter);width:max-content;will-change:transform}
.caminho__wire{position:absolute;left:0;top:0;height:100%;overflow:visible;pointer-events:none}
.caminho__wire path{fill:none;stroke-linecap:round}
.wire-a{stroke-width:3.2}
.wire-b{stroke:#1b1b1c;stroke-width:3.4;stroke-dasharray:.9 2.4;stroke-linecap:butt;opacity:.55}
.etapa{position:relative;flex:none;width:clamp(280px,26vw,380px);margin-right:clamp(60px,7vw,120px);padding:28px 0}
.etapa:nth-child(odd){transform:translateY(-7vh)}
.etapa:nth-child(even){transform:translateY(7vh)}
.etapa__n{display:block;font-family:var(--serif);font-weight:400;font-size:clamp(80px,8.6vw,132px);line-height:.85;color:transparent;-webkit-text-stroke:1px rgba(217,180,65,.55);margin-bottom:18px}
.etapa h3{text-shadow:0 0 14px var(--preto-2),0 0 4px var(--preto-2);font-family:var(--serif);font-weight:500;font-size:clamp(26px,2.3vw,38px);line-height:1.1;letter-spacing:.03em;margin:0 0 14px}
.etapa p{margin:0;color:var(--creme-2);font-size:15px;background:linear-gradient(90deg,var(--preto-2) 80%,rgba(21,19,15,0));padding:4px 10px 4px 0}
.etapa--intro{width:clamp(320px,34vw,520px);transform:none!important}
.etapa--intro p{color:var(--creme-2);margin-top:26px;max-width:380px}
.etapa--img{width:clamp(300px,30vw,440px)}
.etapa__fig{position:relative;margin:26px 0 0;overflow:hidden;border-radius:2px;aspect-ratio:4/3;background:var(--grafite)}
.etapa__fig--wide{aspect-ratio:600/285}
.etapa__fig figcaption{position:absolute;left:0;right:0;bottom:0;margin:0;padding:8px 10px;font-size:10px;letter-spacing:.22em;text-transform:uppercase;color:var(--creme-3);background:linear-gradient(180deg,rgba(20,20,20,0),rgba(20,20,20,.75))}
.etapa__fig img,.etapa__fig video{width:100%;height:100%;object-fit:cover;transform:scale(1.15)}
@media (min-width:901px) and (max-height:880px) and (prefers-reduced-motion:no-preference){
  .etapa:nth-child(odd){transform:translateY(-4vh)}
  .etapa:nth-child(even){transform:translateY(4vh)}
  .etapa__n{font-size:clamp(56px,10vh,132px)}
  .etapa__fig{aspect-ratio:auto;height:min(calc(clamp(300px,30vw,440px) * .75),calc(84svh - 340px))}
  .etapa__fig--wide{height:auto;aspect-ratio:600/285}
}
@media (max-width:900px){
  .caminho__pin{height:auto;overflow:visible}
  .caminho__head{padding-top:90px}
  .caminho__track{flex-direction:column;align-items:stretch;width:auto;padding:40px var(--gutter) 90px}
  .caminho__wire{display:none}
  .etapa,.etapa--img,.etapa--intro{width:auto;margin:0 0 56px;transform:none!important;padding:0}
  .etapa__n{font-size:84px}
  .etapa__fig img,.etapa__fig video{transform:none}
  .etapa--img{max-width:520px}
}

/* ---------- oficina (3D) ---------- */
.oficina{position:relative;padding-top:clamp(110px,18vh,200px);border-top:1px solid var(--linha)}
.oficina__intro{margin-bottom:clamp(40px,8vh,80px)}
.oficina__lead{max-width:480px;color:var(--creme-2);margin:30px 0 0}
.oficina__stage{position:relative;display:grid;grid-template-columns:1fr 1fr}
.oficina__sticky{position:sticky;top:0;height:100vh;height:100svh;overflow:hidden}
.oficina__canvas{position:absolute;inset:0;width:100%!important;height:100%!important}
.oficina__glow{
  position:absolute;left:50%;top:50%;width:80%;aspect-ratio:1;transform:translate(-50%,-50%);border-radius:50%;
  background:radial-gradient(circle,var(--glow,rgba(217,180,65,.16)) 0%,rgba(13,12,10,0) 62%);
  transition:background .8s ease;
}
.oficina__hud{position:absolute;left:var(--gutter);bottom:34px;display:flex;flex-direction:column;gap:6px;font-size:10px;letter-spacing:.3em;text-transform:uppercase;color:var(--creme-3)}
.hud__n b{font-weight:500;color:var(--ouro)}
.hud__mat{color:var(--creme);font-size:11px}
.oficina__steps{padding:0 var(--gutter) 10vh 0}
.passo{min-height:100vh;display:flex;flex-direction:column;justify-content:center;padding:12vh 0;max-width:560px}
.passo__n{font-size:11px;letter-spacing:.3em;color:var(--ouro);margin-bottom:22px}
.passo h3{font-family:var(--serif);font-weight:500;font-size:clamp(32px,3.8vw,60px);line-height:1.05;margin:0 0 24px;letter-spacing:.01em}
.passo p{color:var(--creme-2);margin:0;max-width:460px}
.passo__pics{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:40px}
.pic{margin:0;overflow:hidden;aspect-ratio:4/3;background:var(--grafite);border-radius:2px}
.pic--wide{grid-column:1/-1;aspect-ratio:16/9}
.pic img,.pic video{width:100%;height:100%;object-fit:cover}
@media (max-width:900px){
  .oficina__stage{display:block}
  .oficina__sticky{height:100vh;height:100svh;z-index:0}
  .oficina__glow{top:30%;width:120%}
  .oficina__steps{position:relative;z-index:1;padding:0;margin-top:-100vh;margin-top:-100svh}
  .passo{min-height:auto;max-width:none;padding:58vh var(--gutter) 14vh;padding-top:58svh;
    background:linear-gradient(180deg,rgba(20,20,20,0) 0,rgba(20,20,20,0) 46svh,rgba(20,20,20,1) 56svh,rgba(20,20,20,1) calc(100% - 8svh),rgba(20,20,20,0) 100%)}
  .passo:last-child{min-height:100svh;justify-content:flex-start}
  .oficina__hud{top:84px;bottom:auto}
}
@media (max-width:600px){.hud__mat{display:none}}

/* ---------- peças ---------- */
.pecas{padding:clamp(120px,20vh,220px) 0 clamp(80px,12vh,140px);border-top:1px solid var(--linha)}
.pecas__grid{display:grid;grid-template-columns:repeat(12,1fr);gap:clamp(16px,2vw,28px);margin-top:clamp(60px,10vh,110px);align-items:start}
.peca{margin:0}
.peca__img{overflow:hidden;border-radius:2px;background:var(--grafite)}
.peca__img img{width:100%;height:100%;object-fit:cover;transform:scale(1.18);transition:filter .6s ease}
.peca figcaption{font-size:11px;letter-spacing:.22em;text-transform:uppercase;color:var(--creme-3);margin-top:14px}
.peca--a{grid-column:1/7}.peca--a .peca__img{aspect-ratio:5/4}.peca--a img{object-position:100% 50%;transform-origin:100% 50%}
.peca--b{grid-column:8/13;margin-top:22vh}.peca--b .peca__img{aspect-ratio:4/3}
.peca--c{grid-column:2/6;margin-top:10vh}.peca--c .peca__img{aspect-ratio:1}
.peca--d{grid-column:7/12;margin-top:4vh}.peca--d .peca__img{aspect-ratio:16/10}
@media (max-width:760px){
  .pecas__grid{grid-template-columns:1fr 1fr}
  .peca--a{grid-column:1/-1}
  .peca--b{grid-column:1/2;margin-top:0}
  .peca--c{grid-column:2/3;margin-top:40px}
  .peca--d{grid-column:1/-1;margin-top:0}
}

@media (pointer:coarse){
  .nav__links a{padding:13px 0;margin:-13px 0}
  .nav__links a::after{bottom:7px}
  .contacto__grid a[href^="tel:"]{display:inline-block;margin:10px 0;position:relative}
  .contacto__grid a[href^="tel:"]::before{content:"";position:absolute;inset:-10px -6px}
}

/* ---------- marquee ---------- */
.marquee{overflow:hidden;border-top:1px solid var(--linha);border-bottom:1px solid var(--linha);padding:26px 0;white-space:nowrap}
.marquee__inner{display:inline-flex;align-items:center;gap:clamp(24px,3vw,48px);will-change:transform}
.marquee span{font-family:var(--serif);font-weight:500;font-size:clamp(40px,6vw,92px);line-height:1;letter-spacing:.04em}
.marquee span:nth-of-type(even){color:transparent;-webkit-text-stroke:1px rgba(217,180,65,.7)}
.marquee i{font-style:normal;color:var(--ouro);font-size:clamp(18px,2vw,28px)}

/* ---------- contacto ---------- */
.contacto{padding:clamp(120px,20vh,220px) 0 clamp(80px,12vh,140px)}
.contacto__mail{
  display:inline-flex;align-items:center;gap:.3em;margin:clamp(50px,8vh,90px) 0 clamp(70px,10vh,110px);
  font-family:var(--sans);font-weight:300;font-size:clamp(32px,6.4vw,104px);line-height:1;letter-spacing:-.02em;
  background:var(--ouro-grad);-webkit-background-clip:text;background-clip:text;color:transparent;
  border-bottom:1px solid rgba(217,180,65,.35);padding-bottom:10px;will-change:transform;
}
.contacto__mail svg{width:.5em;height:.5em;color:var(--ouro);transition:transform .45s var(--ease-out)}
@media (hover:hover){.contacto__mail:hover svg{transform:translate(4px,-4px)}}
.contacto__mail:active{transform:scale(.98)}
.contacto__grid{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(30px,4vw,60px);border-top:1px solid var(--linha);padding-top:34px}
.contacto__grid p{margin:0 0 14px;color:var(--creme-2)}
.contacto__grid .label{margin-bottom:16px}
.contacto__grid .note{font-size:11px;color:var(--creme-3)}
@media (max-width:760px){.contacto__grid{grid-template-columns:1fr}}

/* ---------- footer ---------- */
.footer{padding-bottom:28px;overflow:hidden}
.footer__word{
  display:flex;justify-content:space-between;padding:0 var(--gutter);
  font-family:var(--serif);font-weight:500;font-size:clamp(64px,19vw,320px);line-height:.9;letter-spacing:0;
  overflow:hidden;padding-bottom:.04em;
}
.footer__word span{display:block;background:linear-gradient(180deg,#f6e7ae 0%,#d9b441 40%,#5c410c 100%);-webkit-background-clip:text;background-clip:text;color:transparent}
.footer__legal{margin:18px auto 0;font-size:10px;letter-spacing:.08em;color:var(--creme-3)}
.footer__row{display:flex;justify-content:space-between;gap:20px;flex-wrap:wrap;padding-top:26px;margin-top:26px;border-top:1px solid var(--linha);font-size:11px;letter-spacing:.14em;color:var(--creme-3)}

/* ---------- estados iniciais (só com JS e com movimento) ---------- */
@media (prefers-reduced-motion:no-preference){
  html.js [data-reveal]{opacity:0;transform:translateY(28px)}
  html.js .hero__title .line>span{transform:translateY(110%)}
  html.js .hero__eyebrow,html.js .hero__lead,html.js .hero__foot{opacity:0}
}
@media (prefers-reduced-motion:reduce){
  .grain{animation:none}
  .hero__scroll i{animation:none;transform:none}
  html.js .loader{display:none}
  .etapa,.etapa:nth-child(odd),.etapa:nth-child(even){transform:none}
}

/* sem movimento (ou sem JS): percurso do fio na vertical */
html.reduce .caminho__pin,html:not(.js) .caminho__pin{height:auto;overflow:visible}
html.reduce .caminho__track,html:not(.js) .caminho__track{flex-direction:column;align-items:stretch;width:auto;padding:40px var(--gutter) 90px}
html.reduce .caminho__wire,html:not(.js) .caminho__wire{display:none}
html.reduce .etapa,html:not(.js) .etapa{width:auto;max-width:640px;margin:0 0 56px;transform:none}
html.reduce .etapa__fig img,html:not(.js) .etapa__fig img,html.reduce .etapa__fig video{transform:none}
html.reduce .peca__img img{transform:none}
/* sem JS: o render fotográfico do anel fica sempre visível */
html:not(.js) .oficina__render{opacity:1}
html:not(.js) .oficina__canvas{display:none}

/* ---------- render fotográfico do anel (cravação e brilho) ---------- */
.oficina__render{position:absolute;inset:0;display:grid;place-items:center;opacity:0;pointer-events:none;--in:0;--b:0}
.render__inner{position:relative;width:min(120%,92svh);aspect-ratio:1;transform:scale(calc(.9 + var(--in) * .1 + var(--b) * .04));will-change:transform}
.render__inner img{width:100%;height:100%;object-fit:contain;filter:brightness(calc(.95 + var(--b) * .18)) contrast(calc(1 + var(--b) * .06)) drop-shadow(0 0 calc(var(--b) * 18px) rgba(246,231,174,.25))}
/* faixa de luz que percorre o ouro (só no brilho) */
.render__sweep{position:absolute;inset:0;background:url(/assets/img/anel-render.webp) center/contain no-repeat;mix-blend-mode:screen;opacity:0;
  filter:brightness(2.2) saturate(1.3);
  -webkit-mask-image:linear-gradient(110deg,transparent 42%,#000 50%,transparent 58%);mask-image:linear-gradient(110deg,transparent 42%,#000 50%,transparent 58%);
  -webkit-mask-size:300% 100%;mask-size:300% 100%;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;
  transition:opacity .8s ease}
.is-brilho .render__sweep{opacity:.9;animation:varre 3.6s cubic-bezier(.65,0,.35,1) infinite}
@keyframes varre{0%{-webkit-mask-position:100% 0;mask-position:100% 0}70%,100%{-webkit-mask-position:0 0;mask-position:0 0}}
/* cintilações nas pedras */
.render__sparks{position:absolute;inset:0}
.render__sparks i{position:absolute;width:calc(34px * var(--s));height:calc(34px * var(--s));margin:calc(-17px * var(--s)) 0 0 calc(-17px * var(--s));opacity:0;
  background:radial-gradient(circle,#fff 0 6%,rgba(255,255,255,0) 32%),
    linear-gradient(0deg,transparent 47%,rgba(255,255,255,.95) 50%,transparent 53%),
    linear-gradient(90deg,transparent 47%,rgba(255,255,255,.95) 50%,transparent 53%);
  -webkit-mask-image:radial-gradient(circle,#000 20%,transparent 70%);mask-image:radial-gradient(circle,#000 20%,transparent 70%);
  mix-blend-mode:screen}
.is-cravacao .render__sparks i{animation:cintila 2.4s ease-in-out infinite;animation-delay:var(--d)}
.is-brilho .render__sparks i{animation-duration:1.8s}
@keyframes cintila{0%,100%{opacity:0;transform:scale(.4) rotate(0)}45%{opacity:1;transform:scale(1) rotate(45deg)}60%{opacity:.6;transform:scale(.8) rotate(60deg)}}
@media (max-width:900px){.oficina__render{align-items:start;padding-top:12svh}.render__inner{width:min(82%,420px,46svh)}}
@media (prefers-reduced-motion:reduce){.is-brilho .render__sweep,.is-cravacao .render__sparks i{animation:none}.is-brilho .render__sweep{opacity:0}}

/* ---------- filigrana: vídeo do enchimento ---------- */
.filigrana__media{position:relative;z-index:2;margin-top:clamp(56px,9vh,100px);display:grid;grid-template-columns:1fr 1fr;gap:clamp(16px,2vw,28px);align-items:start}
.filigrana__video{margin:0;overflow:hidden;border-radius:2px;background:var(--grafite)}
.filigrana__video video{width:100%;aspect-ratio:16/10;object-fit:cover}
.filigrana__video figcaption{font-size:11px;letter-spacing:.22em;text-transform:uppercase;color:var(--creme-3);padding:14px 0 0;background:var(--preto)}
@media (max-width:760px){.filigrana__media{grid-template-columns:1fr}}

/* ---------- quem somos ---------- */
.equipa{padding:clamp(100px,16vh,180px) 0 clamp(80px,12vh,140px);border-top:1px solid var(--linha)}
.equipa__grid{display:grid;grid-template-columns:1.25fr 1fr;gap:clamp(36px,6vw,96px);align-items:center}
.equipa__fig{margin:0}
.equipa__img{overflow:hidden;border-radius:2px;background:var(--grafite);aspect-ratio:3/2}
.equipa__img img{width:100%;height:100%;object-fit:cover;transform:scale(1.04)}
.equipa__fig figcaption{font-size:11px;letter-spacing:.22em;text-transform:uppercase;color:var(--creme-3);margin-top:14px}
.equipa__text p:not(.kicker){color:var(--creme-2);max-width:440px;margin:28px 0 0}
@media (max-width:900px){.equipa__grid{grid-template-columns:1fr;gap:36px}}
html.reduce .equipa__img img{transform:none}
