/* ===== Reset minimo ===== */
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html.lenis,html.lenis body{height:auto}
.lenis.lenis-smooth{scroll-behavior:auto!important}
.lenis.lenis-smooth [data-lenis-prevent]{overscroll-behavior:contain}
.lenis.lenis-stopped{overflow:hidden}
body{background:#ffffff;color:#000000;line-height:1.2;overflow-x:hidden;font-family:var(--f-body)}
a{color:inherit;text-decoration:none}
img{display:block;max-width:100%}
::selection{background:#003b008e;color:#ffffff}
::-moz-selection{background:#003b008e;color:#ffffff}

/* ===== Fonte unica do site: Space Mono (mantem hierarquia por tamanho/tracking) ===== */
:root{
  --f-display:'Space Mono',monospace;
  --f-heading:'Space Mono',monospace;
  --f-label:'Space Mono',monospace;
  --f-body:'Space Mono',monospace;
  --f-footer:'Space Mono',monospace;
  /* multiplicador de tamanho por papel (1 = padrao) */
  --fz-display:1; --fz-heading:1; --fz-label:1; --fz-body:1; --fz-footer:1;
  /* letter-spacing por papel (em). vazio => usa default da classe */
  --ls-display:-0.02em; --ls-heading:0em; --ls-label:-0.08em; --ls-body:0em; --ls-footer:0em;
}
.display{font-family:var(--f-display);letter-spacing:var(--ls-display)}
.heading{font-family:var(--f-heading);letter-spacing:var(--ls-heading)}
.label{font-family:var(--f-label);text-transform:uppercase;letter-spacing:var(--ls-label)}
.body{font-family:var(--f-body);letter-spacing:var(--ls-body)}
.footer{font-family:var(--f-footer);letter-spacing:var(--ls-footer)}

/* ===== Placeholder cinza ===== */
.ph,.ph-img{background:#2a2a2a;width:100%;display:block}
.ph--sq{aspect-ratio:1/1}
.ph--tall{aspect-ratio:3/4}
.ph--wide{aspect-ratio:16/9}

/* ===== Layout base ===== */
.wrap{width:min(92vw,1400px);margin-inline:auto}
.section{padding:12vh 0}

/* ===== Nav ===== */
.nav{display:flex;justify-content:space-between;align-items:center;gap:1rem;padding:2vh clamp(1.2rem,6vw,100px);position:sticky;top:0;z-index:50;background:rgba(216, 216, 216, 0.85);backdrop-filter:blur(8px)}
.nav__links{display:flex;gap:1.4rem;font-size:.8rem;flex-wrap:wrap}
.nav__logo{font-size:calc(1.2rem*var(--fz-heading));letter-spacing:var(--ls-heading)}
/* nav hover: underline slide, sem layout shift */
.nav__links a{position:relative;opacity:.65;transition:opacity .35s ease}
.nav__links a::after{content:"";position:absolute;left:0;bottom:-.25em;width:100%;height:1px;background:currentColor;transform:scaleX(0);transform-origin:right;transition:transform .35s ease}
.nav__links a:hover{opacity:1}
.nav__links a:hover::after{transform:scaleX(1);transform-origin:left}

/* ===== Global Link Style ===== */
.link{position:relative;opacity:.65;transition:opacity .35s ease;text-decoration:none;color:inherit}
.link::after{content:"";position:absolute;left:0;bottom:-.25em;width:100%;height:1px;background:currentColor;transform:scaleX(0);transform-origin:right;transition:transform .35s ease}
.link:hover{opacity:1}
.link:hover::after{transform:scaleX(1);transform-origin:left}

/* ===== Hero ===== */
.hero{position:relative;height:92vh;display:flex;align-items:center;overflow:hidden}
.hero__bg{position:absolute;inset:0;display:flex;gap:1rem;align-items:center;opacity:.25;will-change:transform;cursor:default;pointer-events:none}
/* todos os itens do hero: mesma caixa retrato 3/4 */
.hero__bg .ph,
.hero__bg .media-img,
.hero__bg .media-video,
.hero__bg .media-embed{height:70vh;aspect-ratio:3/4;width:auto;flex:0 0 auto;object-fit:cover}
.hero__text{position:relative;z-index:2;mix-blend-mode:difference;color:#fff}
.hero__line{font-size:calc(clamp(3rem,13vw,12rem)*var(--fz-display));line-height:.92;font-weight:600;clip-path:inset(0 0 100% 0);opacity:0;transform:translateY(20px)}
.hero__line.in{clip-path:inset(0 0 0 0);opacity:1;transform:none;transition:clip-path .8s ease,opacity .8s ease,transform .8s ease}

/* ===== Frase grande ===== */
.phrase__text{font-size:calc(clamp(2rem,7vw,6rem)*var(--fz-display));line-height:1;max-width:18ch}

/* ===== Reveal (scroll) ===== */
.reveal{opacity:0;transform:translateY(40px)}
.reveal.in{opacity:1;transform:none;transition:opacity .7s ease,transform .7s ease}

/* ===== Carrossel ===== */
.cat-row__label{display:inline-block;font-size:calc(2rem*var(--fz-label));margin-bottom:1.2rem}
.carousel{overflow:hidden;cursor:grab;user-select:none}
.carousel.dragging{cursor:grabbing}
.carousel__track{display:flex;gap:1.5rem;width:max-content;will-change:transform;padding-inline:4vw}
.card{flex:0 0 22vw;min-width:240px;display:flex;flex-direction:column;gap:.5rem}
.card__title{font-size:calc(1.1rem*var(--fz-heading))}
.card__year{font-size:.85rem;opacity:.6}
@media(max-width:700px){.card{flex-basis:60vw}}

/* ===== Titulo de pagina ===== */
.page-title{font-weight:100;font-size:calc(7rem*var(--fz-display));line-height:.95;margin-bottom:6vh;text-align:right}

/* ===== Grid de projetos ===== */
.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:0.2rem}
.grid .card{flex:initial}

/* ===== Pagina de projeto ===== */
.project__meta{display:flex;gap:1.5rem;font-size:.9rem;margin-bottom:4vh;opacity:.7}
.project__desc{font-size:calc(clamp(1.4rem,4vw,2.6rem)*var(--fz-body));line-height:1.2;max-width:24ch;margin-bottom:8vh; text-align:justify}
.project__gallery{display:flex;flex-direction:column;gap:20vh;align-items:center}
/* itens da galeria: tamanho real, proporcao preservada, com limites */
.project__gallery .media-img,
.project__gallery .media-video{width:auto;height:auto;max-width:100%;max-height:85vh;object-fit:contain}
/* embed nao tem tamanho intrinseco: cai pra largura cheia 16/9 */
.project__gallery .media-embed{width:100%;max-height:85vh;aspect-ratio:16/9}
.project__back{display:inline-block;margin-top:6vh}

/* ===== Contato ===== */
.contato{max-width:800px;margin:0 auto}
.contato__title{font-size:clamp(2.2rem,5vw,3.5rem);margin-bottom:2vh}
.contato__desc{font-size:clamp(1rem,2vw,1.3rem);line-height:1.6;margin-bottom:3vh}
.contato__links{display:flex;flex-direction:column;gap:1.2rem;font-size:1.1rem}
.contato__link{display:flex;align-items:center;gap:.6rem;width:fit-content;position:relative;opacity:.65;transition:opacity .35s ease}
.contato__link::after{content:"";position:absolute;left:0;bottom:-.25em;width:100%;height:1px;background:currentColor;transform:scaleX(0);transform-origin:right;transition:transform .35s ease}
.contato__link:hover{opacity:1}
.contato__link:hover::after{transform:scaleX(1);transform-origin:left}
.contato__link svg{flex-shrink:0}

/* ===== Sobre ===== */
.Sobre{display:grid;grid-template-columns:1.2fr .8fr;gap:4rem;align-items:center}
.Sobre__bio{font-size:calc(2rem*var(--fz-body));line-height:1.15;max-width:900px; text-align:justify}
.Sobre__links{display:flex;flex-direction:column;gap:.6rem;margin-top:4vh;font-size:1.1rem}
.Sobre__photo .ph{max-width:420px}
@media(max-width:700px){.Sobre{grid-template-columns:1fr}}

/* ===== Footer ===== */
footer{padding:6vh 0}
.footer__big{font-size:calc(clamp(2rem,8vw,6rem)*var(--fz-display));line-height:1;margin-bottom:3vh}
.footer__meta{display:flex;gap:1.5rem;margin-bottom:1.5rem;font-size:1rem;align-items:center;justify-content:right}
.footer__icon{display:inline-flex;opacity:.7;transition:opacity .25s ease}
.footer__icon:hover{opacity:1}
.footer__copy{font-size:calc(.8rem*var(--fz-footer));opacity:.5}
.footer__link{color:#1f0000;font-weight:900}

/* ===== PDP (produto) ===== */
.pdp{display:grid;grid-template-columns:1fr 1fr;gap:4rem;align-items:start}
.pdp__images{display:flex;flex-direction:column;gap:1.5vh}
.pdp__sticky{position:sticky;top:14vh;display:flex;flex-direction:column;gap:1rem}
.pdp__name{font-size:clamp(1.8rem,4vw,3rem);line-height:1.05}
.pdp__price{font-size:.95rem;opacity:.7}
.acc{border-top:1px solid #555}
.acc__head{width:100%;text-align:left;background:none;border:none;color:inherit;padding:1rem 0;cursor:pointer;font-size:.9rem}
.acc__body{padding-bottom:1rem;font-size:1rem;line-height:1.4}
.pdp__wa{display:inline-block;margin-top:1.5rem;padding:1rem 1.5rem;border:1px solid currentColor;text-align:center;cursor:pointer}
@media(max-width:700px){.pdp{grid-template-columns:1fr}.pdp__sticky{position:static}}

/* ===== Acervo (pagina botao externo) ===== */
.acervo-page{display:flex;flex-direction:column;align-items:center;text-align:center;min-height:60vh;justify-content:center;gap:2rem}
.acervo-page .page-title{text-align:center;margin-bottom:0}
.acervo-page__text{max-width:900px; text-align:justify; font-size:clamp(1rem,2vw,1.3rem); letter-spacing:-0.02em; }
.acervo-cta{display:inline-block;padding:1.1rem 2.5rem;border:1px solid currentColor;cursor:pointer;transition:all 0.6s}
.acervo-cta:hover{background:#000000;color:#ffffff;}

/* ===== Letreiro (marquee) ===== */
.marquee{overflow:hidden;width:100%;white-space:nowrap}
.marquee__track{display:flex;will-change:transform;animation:marquee 24s linear infinite}
.marquee__group{display:flex;flex:0 0 auto;white-space:nowrap}
.marquee__item{display:inline-block;padding-right:.4em;white-space:nowrap}
.marquee:hover .marquee__track{animation-play-state:paused}
@keyframes marquee{from{transform:translateX(0)}to{transform:translateX(-50%)}}
@media(prefers-reduced-motion:reduce){.marquee__track{animation:none}}
.cat-row__link{display:block}

/* ===== Responsivo ===== */
@media(max-width:900px){
  .nav__links{gap:.9rem;font-size:.7rem}
  .cat-row__label{font-size:1.4rem}
}
@media(max-width:700px){
  .section{padding:8vh 0}
  .nav{flex-wrap:wrap;gap:.6rem}
  .nav__logo{font-size:1rem}
  .nav__links{gap:.7rem;font-size:.65rem;justify-content:flex-start}
  .hero{height:80vh}
  .hero__bg .ph,
  .hero__bg .media-img,
  .hero__bg .media-video,
  .hero__bg .media-embed{height:42vh}
  .project__meta{flex-wrap:wrap;gap:.8rem}
  .Sobre__photo .ph{max-width:none}
  .page-title{text-align:center}
}
@media(max-width:430px){
  .grid{grid-template-columns:1fr}
  .nav__links{font-size:.6rem;gap:.5rem}
}

/* ===== Midia (itens projeto/produto) ===== */
.media-img{width:100%;display:block}
.media-video{width:100%;display:block}
.media-embed{width:100%;aspect-ratio:16/9;display:block;border:0}
.gitem{display:contents}
.project__gallery .gitem>*{cursor:zoom-in}

/* ===== Font switcher (flutuante) ===== */
.fs{position:fixed;right:1.4rem;bottom:1.4rem;z-index:150;font-family:var(--f-label)}
.fs__btn{width:48px;height:48px;border-radius:50%;border:1px solid #000;background:#fff;color:#000;font-size:1.2rem;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background .2s,color .2s}
.fs__btn:hover{background:#000;color:#fff}
.fs__panel{position:absolute;right:0;bottom:60px;width:min(86vw,300px);background:#fff;border:1px solid #000;padding:1rem;display:flex;flex-direction:column;gap:.6rem;max-height:min(70vh,520px);overflow-y:auto;overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:#000 #eee}
.fs__panel::-webkit-scrollbar{width:8px}
.fs__panel::-webkit-scrollbar-thumb{background:#000}
.fs__panel::-webkit-scrollbar-track{background:#eee}
.fs__title{font-size:.85rem;text-transform:uppercase;letter-spacing:-0.05em;margin-bottom:.3rem}
.fs__group{display:flex;flex-direction:column;gap:.3rem;font-size:.7rem;padding-bottom:.6rem;border-bottom:1px solid #ddd}
.fs__label{opacity:.7;text-transform:uppercase;letter-spacing:-0.03em;font-weight:700}
.fs__group select{padding:.4rem;border:1px solid #000;background:#fff;color:#000;font-size:.8rem;cursor:pointer;font-family:inherit}
.fs__slider{display:flex;align-items:center;justify-content:space-between;gap:.5rem}
.fs__slider span{opacity:.6;font-size:.65rem;text-transform:uppercase}
.fs__slider input[type=range]{flex:1;cursor:pointer;accent-color:#000}
.fs__reset{margin-top:.4rem;padding:.5rem;border:1px solid #000;background:#fff;color:#000;cursor:pointer;font-size:.75rem;text-transform:uppercase;letter-spacing:-0.03em;transition:background .2s,color .2s}
.fs__reset:hover{background:#000;color:#fff}

/* ===== Lightbox ===== */
.lb{position:fixed;inset:0;z-index:200;background:rgba(0,0,0,.92);display:none;align-items:center;justify-content:center}
.lb.open{display:flex}
.lb__stage{max-width:90vw;max-height:88vh;display:flex;align-items:center;justify-content:center}
.lb__stage img,.lb__stage video{max-width:90vw;max-height:88vh;object-fit:contain;display:block}
.lb__stage iframe{width:min(90vw,1280px);aspect-ratio:16/9;max-height:88vh;border:0}
.lb__close{position:fixed;top:1.2rem;right:1.4rem;background:none;border:none;color:#fff;font-size:2.4rem;line-height:1;cursor:pointer}
.lb__nav{position:fixed;top:50%;transform:translateY(-50%);background:none;border:none;color:#fff;font-size:3rem;cursor:pointer;padding:1rem;opacity:.7;transition:opacity .2s}
.lb__nav:hover{opacity:1}
.lb__prev{left:.5rem}
.lb__next{right:.5rem}