/* Direção institucional: tipografia objetiva e aplicações diversas de imagem. */
:root{--heading:var(--serif);--acc:#c7783d}
:root[data-theme=dark]{--acc:#efac77}
body{font-weight:400}
h2,h3{font-family:var(--heading);font-weight:600;letter-spacing:-.04em;line-height:1.15}
.hero-kicker{letter-spacing:2.2px!important;font-weight:500!important}
.hero-slider .hero-grid>p{font-weight:400;max-width:34ch;font-size:clamp(1.1rem,1.7vw,1.45rem);line-height:1.6}
.hero-slider .pill::before{background:#f3b27f}.hero-slider .pill{color:#fff2e7}
.hero-slider .btn:hover{background:#efc4a0;color:#231910}.hero-dots button[aria-pressed=true]::after{background:#f3b27f}
.hero-controls>span{color:#f1ddd0}
#portfolio h2{font-family:var(--heading);font-weight:600;font-size:clamp(3rem,6vw,5.1rem);letter-spacing:-.055em}
.portfolio-eyebrow{letter-spacing:1.7px}.portfolio-intro>p{font-weight:400;font-size:16px;line-height:1.8}
.portfolio-title-row strong{font-family:var(--heading);font-size:clamp(1.45rem,2.4vw,2rem);font-weight:500;letter-spacing:-.04em;line-height:1.25}
.portfolio-featured .portfolio-title-row strong{font-family:var(--heading);font-size:clamp(2rem,3.7vw,3.2rem);font-weight:500;line-height:1.15}
.portfolio-description,.portfolio-featured .portfolio-description{font-weight:400}.portfolio-featured-tag{color:var(--acc)}
.about h2{font-size:clamp(2.2rem,4vw,3.8rem)}.about .lead{font-family:var(--sans);font-weight:400;font-size:clamp(1.1rem,1.7vw,1.35rem);line-height:1.75}.about .lead+p{font-size:16px;line-height:1.85;font-weight:400}
.institutional-section-head{display:grid;grid-template-columns:1fr 1fr;gap:40px;align-items:end;margin-bottom:40px}.institutional-section-head .section-label{display:block;font-size:10px;letter-spacing:1.8px;text-transform:uppercase;color:var(--mute);margin-bottom:16px}.institutional-section-head h2{font-size:clamp(2.4rem,4.7vw,4rem)}.institutional-section-head>p{font-size:16px;line-height:1.8;color:var(--mute);margin:0;max-width:44ch;justify-self:end}
.svc{grid-template-columns:repeat(3,minmax(0,1fr));gap:24px;margin-top:0;border:0}
.svc>div{padding:26px;border:1px solid var(--line);border-radius:18px;background:color-mix(in srgb,var(--bg2) 35%,transparent);position:relative;transition:border-color .25s,transform .25s}
.service-index{display:block;color:var(--acc);font-size:11px;letter-spacing:1px;margin-bottom:32px;font-weight:500}
.svc h3{font-family:var(--heading);font-size:1.35rem;letter-spacing:-.03em;line-height:1.3;margin-bottom:14px}.svc p{font-size:14px;line-height:1.8;font-weight:400}
.contact h2{font-family:var(--heading);font-size:clamp(2.4rem,4.7vw,4.2rem);font-weight:500;letter-spacing:-.05em;line-height:1.15}.contact .cols{align-items:start}.contact label{font-size:13px;font-weight:400}.contact .social{margin-top:30px}
.contact form{gap:21px}.contact input,.contact select,.contact textarea{font-weight:400;font-size:16px}
@media(hover:hover) and (pointer:fine){.svc>div:hover{border-color:var(--acc);transform:translateY(-3px)}}
@media(max-width:1000px){.svc{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:600px){.hero-kicker{font-size:9px!important;letter-spacing:1.4px!important;max-width:30ch!important;line-height:1.8!important}.hero-slider .hero-grid>p{font-size:18px;max-width:28ch}.hero-slider .pill{font-size:11px;line-height:1.6}.portfolio-intro>p{font-size:15px}#portfolio h2{font-size:3.3rem}.portfolio-title-row strong,.portfolio-featured .portfolio-title-row strong{font-family:var(--heading);font-size:1.7rem;font-weight:500}.about .lead{font-size:1.1rem}.about .lead+p{font-size:15px}.institutional-section-head{grid-template-columns:1fr;gap:20px;margin-bottom:28px}.institutional-section-head>p{justify-self:start;font-size:15px}.svc{grid-template-columns:1fr;gap:16px}.svc>div{padding:24px}.service-index{margin-bottom:24px}.svc h3{font-size:1.3rem}.contact h2{font-size:2.6rem}}
@media(prefers-reduced-motion:reduce){.svc>div{transition:none}.svc>div:hover{transform:none}}

/* Movimento discreto, ativado apenas quando o conteúdo entra no campo de visão. */
.reveal{opacity:0;translate:0 22px;transition:opacity .7s ease var(--reveal-delay,0ms),translate .8s cubic-bezier(.2,.7,.2,1) var(--reveal-delay,0ms)}
.reveal.is-visible{opacity:1;translate:0 0}
#portfolio .card.reveal{animation:none}
.reveal:focus-within{opacity:1;translate:0 0}

/* Álbum imersivo: palco de ponta a ponta e controles flutuantes. */
.lb{height:100vh;height:100dvh;padding:0;overflow:hidden;background:#101210;isolation:isolate;overscroll-behavior:contain;backdrop-filter:none;color:#f5f3ec}
.lb.on{display:block;animation:gallery-open .35s ease both}
.lb-backdrop{position:absolute;inset:0;background-position:center;background-size:cover;filter:blur(32px) brightness(.3) saturate(.7);opacity:.8;pointer-events:none;z-index:-1}
.lb .stage{position:absolute;inset:0;padding:0;display:block;min-height:0}
.lb .view{position:absolute;inset:0;display:flex;width:100%;height:100%;max-height:none;margin:0;padding:0;touch-action:pan-y pinch-zoom}
.lb .view img{display:block;width:100%;height:100%;max-width:none;max-height:none;object-fit:contain;border-radius:0;box-shadow:none;animation:photo-appear .35s ease both;user-select:none;-webkit-user-select:none}
.lb .view.is-error{padding:100px 65px;text-align:center;font-size:15px;line-height:1.8}
.lb .view.is-loading::after{content:"";position:absolute;left:calc(50% - 14px);top:calc(50% - 14px);width:28px;height:28px;border:2px solid #ffffff30;border-top-color:#fff;border-radius:50%;animation:lb-loading .85s linear infinite}
@keyframes lb-loading{to{rotate:360deg}}
.lb .lb-top{position:absolute;inset:0 0 auto;z-index:2;display:flex;align-items:flex-start;gap:24px;padding:calc(24px + env(safe-area-inset-top,0px)) max(28px,env(safe-area-inset-right,0px)) 55px max(28px,env(safe-area-inset-left,0px));background:linear-gradient(#000b,#0005 65%,transparent);pointer-events:none}
.lb-info{min-width:0;max-width:min(700px,calc(100% - 70px));text-shadow:0 2px 18px #0008}
.lb-eyebrow{display:block;font:500 10px/1.5 var(--sans);text-transform:uppercase;letter-spacing:2px;color:#e4c2a8;margin-bottom:7px}
.lb .lb-top b{display:block;font:500 clamp(18px,2.1vw,30px)/1.2 var(--heading,var(--sans));letter-spacing:-.04em;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.lb .lb-description{font:400 12px/1.6 var(--sans);color:#ffffffb8;margin:9px 0 0;max-width:60ch;max-height:3.2em;overflow:hidden;white-space:pre-wrap}
.lb-actions{display:flex;gap:10px;flex-shrink:0;pointer-events:auto}
.lb button{display:grid;place-items:center;width:46px;height:46px;flex-shrink:0;padding:0;border:1px solid #ffffff38;background:#13171365;backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);color:#fff;border-radius:50%;font:22px var(--sans);cursor:pointer;transition:background .25s,border-color .25s,opacity .25s}
.lb button:focus-visible{outline:2px solid #f3b27f;outline-offset:4px}
.lb button:hover{background:#ffffff26;border-color:#ffffff8c}
.lb button:disabled{opacity:.25;cursor:default}
.lb .stage>button{position:absolute;top:50%;translate:0 -50%;width:50px;height:50px;z-index:3;display:grid;font-size:24px;transform:none}
.lb #prev{left:max(24px,env(safe-area-inset-left,0px))}
.lb #next{right:max(24px,env(safe-area-inset-right,0px))}
.lb .stage>button:hover{transform:none}
.lb-bottom{position:absolute;inset:auto 0 0;z-index:2;padding:45px max(24px,env(safe-area-inset-right,0px)) calc(18px + env(safe-area-inset-bottom,0px)) max(24px,env(safe-area-inset-left,0px));background:linear-gradient(transparent,#0007 35%,#000c);pointer-events:none}
.lb-progress{display:flex;align-items:center;justify-content:space-between;gap:15px;width:min(760px,100%);margin:0 auto 12px;font:400 11px/1.5 var(--sans);letter-spacing:1.5px;font-variant-numeric:tabular-nums}
.lb-hint{color:#ffffff90;font-size:10px;letter-spacing:.3px}
.lb .thumbs{position:relative;display:flex;justify-content:flex-start;gap:9px;width:max-content;max-width:min(760px,100%);margin:auto;padding:5px 4px 7px;overflow-x:auto;overscroll-behavior-x:contain;scrollbar-width:thin;scrollbar-color:#ffffff50 transparent;pointer-events:auto}
.lb .thumbs button{width:66px;height:48px;display:block;border-radius:7px;border:2px solid transparent;opacity:.48;backdrop-filter:none;transform:none;overflow:hidden;background:#252824}
.lb .thumbs button[aria-current=true]{opacity:1;border-color:#f3b27f;transform:none}
.lb .thumbs button:hover{opacity:1;transform:none}
.lb .thumbs img{display:block;width:100%;height:100%;object-fit:cover}
@media(max-width:600px){
  .lb .lb-top{padding:calc(18px + env(safe-area-inset-top,0px)) max(16px,env(safe-area-inset-right,0px)) 42px max(16px,env(safe-area-inset-left,0px));gap:12px}
  .lb-info{max-width:calc(100% - 52px)}
  .lb-eyebrow{font-size:9px;letter-spacing:1.5px;margin-bottom:6px}
  .lb .lb-top b{font-size:19px}
  .lb .lb-description{font-size:11px;margin-top:7px}
  .lb-actions{gap:8px}.lb .lb-actions button{width:40px;height:40px;font-size:20px}
  .lb .stage>button{width:42px;height:42px;font-size:22px}
  .lb #prev{left:max(10px,env(safe-area-inset-left,0px))}.lb #next{right:max(10px,env(safe-area-inset-right,0px))}
  .lb-bottom{padding:35px max(14px,env(safe-area-inset-right,0px)) calc(14px + env(safe-area-inset-bottom,0px)) max(14px,env(safe-area-inset-left,0px))}
  .lb-progress{margin-bottom:8px}.lb-hint{font-size:9px}
  .lb .thumbs button{width:54px;height:42px}.lb .thumbs{gap:7px}
}
@media(max-height:500px) and (orientation:landscape){
  .lb .lb-top{padding-top:max(10px,env(safe-area-inset-top,0px));padding-bottom:25px}
  .lb .lb-description,.lb-hint{display:none}
  .lb-eyebrow{margin-bottom:3px;font-size:8px}.lb .lb-top b{font-size:18px}
  .lb-bottom{padding-top:22px;padding-bottom:max(7px,env(safe-area-inset-bottom,0px))}
  .lb-progress{position:absolute;bottom:18px;left:max(24px,env(safe-area-inset-left,0px));width:auto;margin:0}
  .lb .thumbs{max-width:70%}.lb .thumbs button{width:48px;height:34px}
}
@media(prefers-reduced-motion:reduce){
  .reveal{opacity:1;translate:none;transition:none!important}
  .lb.on,.lb .view img{animation:none!important}
  .lb .view.is-loading::after{animation:none;border-color:#fff}
}
/* Mantém a entrada suave também nos cartões com transições próprias. */
#portfolio .card.reveal,.svc>div.reveal{transition:opacity .7s ease var(--reveal-delay,0ms),translate .8s cubic-bezier(.2,.7,.2,1) var(--reveal-delay,0ms),transform .25s,border-color .25s}
@media(prefers-reduced-motion:reduce){#portfolio .card.reveal,.svc>div.reveal{transition:none}}

/* Tipografia editorial: títulos expressivos e textos de leitura leve. */
body{font-family:var(--sans);font-size:16px;line-height:1.75;font-weight:400;letter-spacing:-.012em;font-optical-sizing:auto}
button,input,select,textarea{font-family:var(--sans)}
h1,h2,h3{font-family:var(--heading);font-weight:400;letter-spacing:-.025em;text-wrap:balance}
h2,#portfolio h2,.about h2,.institutional-section-head h2,.contact h2{font-family:var(--heading);font-weight:400;font-size:clamp(2.7rem,5.4vw,4.8rem);letter-spacing:-.03em;line-height:1.08}
#portfolio h2{font-size:clamp(3.3rem,6.5vw,5.7rem)}
.contact h2{font-size:clamp(3rem,5.8vw,5.2rem);line-height:1.1}
nav{font-size:13px;font-weight:500;letter-spacing:.01em}
.btn,.hero-slider .btn,.hero-slider .link{font-family:var(--sans);font-size:13px;font-weight:500;letter-spacing:.015em}
.hero-slider .hero-grid>p{font-size:clamp(19px,1.8vw,25px);font-weight:400;letter-spacing:-.025em;line-height:1.55;max-width:32ch;text-wrap:pretty}
.hero-kicker{font-size:10px!important;letter-spacing:.2em!important;font-weight:500!important}
.hero-slider .pill{font-size:12px;font-weight:400;letter-spacing:.01em}
.portfolio-eyebrow,.institutional-section-head .section-label,.portfolio-featured-tag,.service-index,.lb-eyebrow{font-family:var(--sans);font-weight:500;font-size:10px;line-height:1.6;letter-spacing:.16em}
.portfolio-intro>p,.institutional-section-head>p{font-size:16px;font-weight:400;line-height:1.8;letter-spacing:-.01em;text-wrap:pretty}
#portfolio .chip{font-family:var(--sans);font-size:12px;font-weight:500;letter-spacing:.005em}
.portfolio-meta{font-size:10px;letter-spacing:.12em;font-weight:500}
.portfolio-meta small,.portfolio-count{font-size:11px;font-weight:400;letter-spacing:.015em}
.portfolio-title-row strong,.portfolio-featured .portfolio-title-row strong{font-family:var(--heading);font-weight:400;font-size:clamp(1.9rem,3vw,2.65rem);line-height:1.15;letter-spacing:-.02em;text-wrap:balance}
.portfolio-featured .portfolio-title-row strong{font-size:clamp(2.4rem,4.3vw,4rem)}
.portfolio-description,.portfolio-featured .portfolio-description{font-size:15px;line-height:1.8;letter-spacing:-.01em;font-weight:400}
.about .lead{font-family:var(--sans);font-size:clamp(18px,1.7vw,22px);line-height:1.7;letter-spacing:-.02em;font-weight:400}
.about .lead+p{font-size:16px;line-height:1.85;letter-spacing:-.01em}
.svc h3{font-family:var(--heading);font-size:clamp(1.65rem,2.2vw,2rem);font-weight:400;line-height:1.2;letter-spacing:-.02em}
.svc p{font-size:14px;line-height:1.85;letter-spacing:-.005em}
.contact label{font-size:12px;letter-spacing:.025em;font-weight:500}
.contact input,.contact select,.contact textarea{font-family:var(--sans);font-size:16px;line-height:1.65;letter-spacing:-.01em;font-weight:400}
.contact p{font-size:16px;line-height:1.8}
.portfolio-footer,footer{font-size:12px;line-height:1.7;letter-spacing:.01em}
.hero-credit strong{font-family:var(--heading);font-size:18px;line-height:1.3;font-weight:400;letter-spacing:0}
.lb .lb-top b{font-family:var(--heading);font-weight:400;font-size:clamp(25px,2.8vw,38px);line-height:1.15;letter-spacing:-.015em}
.lb .lb-description{font-size:12px;line-height:1.7;font-weight:400;letter-spacing:0}
.lb-progress,.hero-controls>span{font-family:var(--sans);font-variant-numeric:tabular-nums}
@media(max-width:600px){
  body{font-size:15px}
  h2,.about h2,.institutional-section-head h2{font-size:clamp(2.6rem,10vw,3.4rem)}
  #portfolio h2{font-size:3.6rem}.contact h2{font-size:clamp(2.8rem,11vw,3.8rem)}
  .hero-slider .hero-grid>p{font-size:20px;line-height:1.6}
  .hero-kicker{font-size:9px!important;letter-spacing:.16em!important;max-width:34ch!important}
  .hero-slider .btn,.hero-slider .link{font-size:12px}
  .hero-slider .pill{font-size:11px}
  .portfolio-title-row strong,.portfolio-featured .portfolio-title-row strong{font-size:2.1rem;line-height:1.15}
  .portfolio-intro>p,.institutional-section-head>p,.portfolio-description,.portfolio-featured .portfolio-description{font-size:15px}
  .about .lead{font-size:18px}.about .lead+p{font-size:15px}
  .svc h3{font-size:1.85rem}.service-index{font-size:9px}
  .lb .lb-top b{font-size:25px}.lb-eyebrow{font-size:9px}
  .hero-credit strong{font-size:16px}
}
@media(max-height:500px) and (orientation:landscape){.lb .lb-top b{font-size:23px}}
