/* ==================================================================
   SMART OPUS · PORTFÓLIO
   Design system herdado do site institucional (smartopus.com.br):
   preto profundo + roxo como luz ambiente, dourado como joia.
   ================================================================== */

/* ----------------------------------------------------------- fontes */
@font-face{font-family:haboro;src:url(/assets/fonts/haboro.otf) format("opentype");font-display:swap}
@font-face{font-family:satoshi;src:url(/assets/fonts/satoshi.woff2) format("woff2");font-display:swap;font-weight:300 900}
@font-face{font-family:spaceMono;src:url(/assets/fonts/space-mono-400.woff2) format("woff2");font-display:swap;font-weight:400}
@font-face{font-family:spaceMono;src:url(/assets/fonts/space-mono-700.woff2) format("woff2");font-display:swap;font-weight:700}

:root{
  --rich-black-profundo:#0E0915;
  --black-interface:#170D26;
  --black-elevation:#24113F;
  --gold-premium:#C9A646;
  --gold-light:#E4C96A;
  --gold-cream:#FFF3CF;
  --gold-dark:#8A6E2A;
  --silver-tech:#C4BCD0;
  --divisores:#3B1B63;
  --superficies:#2B1449;
  --font-haboro:"haboro",Georgia,serif;
  --font-satoshi:"satoshi",system-ui,-apple-system,"Segoe UI",sans-serif;
  --font-spacemono:"spaceMono",ui-monospace,SFMono-Regular,monospace;
}

/* ----------------------------------------------------------- base */
*,*::before,*::after{box-sizing:border-box}
*{margin:0;padding:0}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{
  font-family:var(--font-satoshi);
  background-color:var(--rich-black-profundo);
  color:#fff;
  line-height:1.5;
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
  background-image:linear-gradient(rgba(255,255,255,.045) 1px,transparent 0),
                   linear-gradient(90deg,rgba(255,255,255,.045) 1px,transparent 0);
  background-size:110px 110px;
}
body::after{
  content:"";position:fixed;inset:0;background-image:url(/assets/noise.svg);
  opacity:.18;filter:brightness(1.5) contrast(1.5);mix-blend-mode:overlay;
  pointer-events:none;z-index:1;
}
img{max-width:100%;display:block}
a{color:inherit;text-decoration:none}
ul{list-style:none}
::selection{background:rgba(201,166,70,.3);color:#fff}

/* ----------------------------------------------------------- tipografia utilitária */
.display{font-family:var(--font-haboro)}
.mono{font-family:var(--font-spacemono)}
.eyebrow{
  font-family:var(--font-spacemono);font-size:12px;letter-spacing:.2em;
  text-transform:uppercase;color:var(--gold-light);
}
.gold-text{
  background:linear-gradient(100deg,#8A6E2A,#E4C96A 30%,#FFF3CF 50%,#E4C96A 70%,#8A6E2A);
  background-size:200% auto;
  -webkit-background-clip:text;background-clip:text;
  -webkit-text-fill-color:transparent;color:transparent;
  animation:shineText 6s linear infinite;
}
.text-glow{text-shadow:0 0 40px rgba(255,255,255,.22)}
@keyframes shineText{to{background-position:200% center}}

/* ----------------------------------------------------------- layout */
.wrap{max-width:80rem;margin:0 auto;padding:0 1.5rem}
@media(min-width:768px){.wrap{padding:0 2.5rem}}
.section{position:relative;overflow:hidden;padding:7rem 0}
@media(min-width:768px){.section{padding:9rem 0}}
.section-glow::before{
  content:"";position:absolute;inset:-8% 0;pointer-events:none;
  background:radial-gradient(58% 52% at 50% 0,rgba(59,27,99,.55),transparent 75%);
}
.section-head{max-width:48rem;position:relative;z-index:10}
.section-head h2{
  font-family:var(--font-haboro);font-size:clamp(2rem,4.4vw,3rem);
  line-height:1.15;letter-spacing:-.01em;color:#fff;margin-top:1rem;
}
.section-head p.lead{
  margin-top:1.25rem;font-size:1.125rem;font-weight:300;
  line-height:1.7;color:rgba(255,255,255,.7);
}
.hairline{height:1px;background:linear-gradient(90deg,rgba(228,201,106,.5),rgba(59,27,99,.35) 45%,transparent);margin:3.5rem 0 0}

/* ----------------------------------------------------------- blobs */
.blob{
  position:absolute;border-radius:9999px;filter:blur(95px);
  z-index:0;pointer-events:none;
}
.blob-gold{background:#3B1B63;width:620px;height:620px;opacity:.52}
.blob-amber{background:#24113F;width:520px;height:520px;opacity:.46}

/* ----------------------------------------------------------- header */
.scroll-progress{
  position:fixed;inset:0 0 auto;z-index:80;height:2px;transform-origin:0 50%;
  background:linear-gradient(90deg,#8A6E2A,#FFF3CF,#C9A646);
  box-shadow:0 0 18px rgba(228,201,106,.7);transform:scaleX(0);
}
.site-header{
  position:fixed;inset:0 0 auto;z-index:50;padding:1.25rem 0;
  transition:background-color .5s ease,backdrop-filter .5s ease,padding .5s ease,border-color .5s ease;
  border-bottom:1px solid transparent;
}
.site-header.is-stuck{
  background:rgba(14,9,21,.82);backdrop-filter:blur(18px);
  -webkit-backdrop-filter:blur(18px);padding:.75rem 0;
  border-bottom-color:rgba(59,27,99,.6);
}
.header-inner{display:flex;align-items:center;justify-content:space-between;gap:1.5rem}
.site-header img{height:2.25rem;width:auto}
.nav{display:none;align-items:center;gap:2rem}
@media(min-width:1024px){.nav{display:flex}}
.nav a{
  position:relative;padding:.5rem 0;font-size:.875rem;font-weight:500;
  color:rgba(255,255,255,.7);transition:color .3s ease;
}
.nav a::after{
  content:"";position:absolute;inset:auto 0 0;height:1px;background:var(--gold-light);
  transform:scaleX(0);transform-origin:left;transition:transform .5s ease;
}
.nav a:hover{color:#fff}
.nav a:hover::after{transform:scaleX(1)}
.header-cta{display:none;align-items:center;gap:1rem}
@media(min-width:1024px){.header-cta{display:flex}}
.link-ghost{
  font-family:var(--font-spacemono);font-size:11px;letter-spacing:.14em;text-transform:uppercase;
  color:rgba(255,255,255,.55);border:1px solid rgba(59,27,99,.9);border-radius:9999px;
  padding:.5rem .9rem;transition:color .3s ease,border-color .3s ease;
}
.link-ghost:hover{color:var(--gold-light);border-color:rgba(228,201,106,.5)}

.btn-gold{
  position:relative;overflow:hidden;display:inline-flex;align-items:center;gap:.5rem;
  border-radius:9999px;padding:.625rem 1.25rem;font-size:.875rem;font-weight:700;
  background:linear-gradient(135deg,#E4C96A,#C9A646 55%,#8A6E2A);color:#1A0F26;
  box-shadow:0 8px 28px -8px rgba(201,166,70,.65),inset 0 1px 0 rgba(255,255,255,.4);
  transition:transform .4s cubic-bezier(.2,.8,.2,1),box-shadow .4s;
}
.btn-gold.big{padding:.875rem 1.75rem}
.btn-gold:hover{transform:translateY(-3px);box-shadow:0 16px 40px -10px rgba(201,166,70,.8),inset 0 1px 0 rgba(255,255,255,.5)}
.btn-gold::before{
  content:"";position:absolute;top:0;left:-120%;width:60%;height:100%;
  background:linear-gradient(120deg,transparent,rgba(255,255,255,.55),transparent);
  transform:skewX(-20deg);transition:left .65s ease;
}
.btn-gold:hover::before{left:150%}

.menu-toggle{
  display:inline-flex;background:none;border:0;color:#fff;cursor:pointer;
  position:relative;z-index:60;
}
@media(min-width:1024px){.menu-toggle{display:none}}
.mobile-menu{
  position:fixed;inset:0;z-index:40;overflow-y:auto;overscroll-behavior:contain;
  background:rgba(14,9,21,.96);backdrop-filter:blur(20px);
}
.mobile-menu[hidden]{display:none}
.mobile-menu .inner{
  min-height:100%;display:flex;flex-direction:column;align-items:center;
  justify-content:center;gap:2rem;padding:6rem 1.5rem;
}
.mobile-menu a.big{
  font-family:var(--font-haboro);font-size:1.875rem;color:rgba(255,255,255,.85);
  transition:color .3s ease;
}
.mobile-menu a.big:hover{color:var(--gold-light)}

/* ----------------------------------------------------------- hero */
.hero{
  position:relative;display:flex;align-items:center;min-height:100svh;overflow:hidden;
}
.hero-inner{position:relative;z-index:10;width:100%;padding:8rem 0 5rem}
.hero h1{
  font-family:var(--font-haboro);font-size:clamp(2.75rem,7vw,4.5rem);
  line-height:1.05;letter-spacing:-.02em;color:#fff;margin-top:1.5rem;max-width:22ch;
}
.hero .sub{
  margin-top:2rem;max-width:38rem;font-size:1.125rem;font-weight:300;
  line-height:1.9;color:rgba(255,255,255,.6);
}
.hero .sub strong{color:var(--gold-light);font-weight:400}
.ghost-letter{
  position:absolute;right:6%;top:50%;transform:translateY(-50%);
  font-family:var(--font-haboro);font-size:22rem;line-height:1;
  -webkit-text-stroke:1.5px rgba(201,166,70,.16);color:transparent;
  text-transform:uppercase;user-select:none;pointer-events:none;display:none;
}
@media(min-width:1024px){.ghost-letter{display:block}}

.pills{display:flex;flex-wrap:wrap;gap:.65rem;margin-top:2.25rem;max-width:46rem}
.pill{
  font-family:var(--font-spacemono);font-size:11px;letter-spacing:.12em;text-transform:uppercase;
  color:rgba(255,255,255,.7);border:1px solid rgba(59,27,99,.9);
  background:rgba(23,13,38,.5);border-radius:9999px;padding:.5rem 1rem;
  transition:border-color .3s ease,color .3s ease;
}
.pill:hover{border-color:rgba(228,201,106,.4);color:#fff}

.hero-stats{
  position:relative;z-index:10;display:grid;grid-template-columns:repeat(2,1fr);
  gap:1px;background:rgba(59,27,99,.55);border-top:1px solid rgba(59,27,99,.55);
  border-bottom:1px solid rgba(59,27,99,.55);
}
@media(min-width:768px){.hero-stats{grid-template-columns:repeat(4,1fr)}}
.hero-stats .cell{background:var(--rich-black-profundo);padding:2rem 1.5rem;text-align:left}
.stat-num{
  font-weight:300;font-size:2.5rem;line-height:1.1;
  background:linear-gradient(100deg,#FFF3CF,#E4C96A 45%,#C9A646);
  -webkit-background-clip:text;background-clip:text;
  -webkit-text-fill-color:transparent;color:transparent;
}
.stat-label{
  margin-top:.5rem;font-family:var(--font-spacemono);font-size:11px;
  letter-spacing:.2em;text-transform:uppercase;color:rgba(255,255,255,.45);
}

/* ----------------------------------------------------------- marquee */
.marquee{
  position:relative;overflow:hidden;padding:1.25rem 0;
  border-top:1px solid rgba(59,27,99,.5);border-bottom:1px solid rgba(59,27,99,.5);
  background:rgba(23,13,38,.4);
  -webkit-mask-image:linear-gradient(90deg,transparent,#000 12%,#000 88%,transparent);
  mask-image:linear-gradient(90deg,transparent,#000 12%,#000 88%,transparent);
}
.marquee-track{display:flex;width:max-content;align-items:center;gap:3rem;white-space:nowrap;animation:marquee 45s linear infinite}
.marquee-track span.item{font-family:var(--font-haboro);font-size:1.5rem;color:rgba(255,255,255,.8)}
.marquee-track span.dot{height:.375rem;width:.375rem;border-radius:9999px;background:rgba(201,166,70,.7)}
@keyframes marquee{to{transform:translateX(-50%)}}

/* ----------------------------------------------------------- cards */
.gi-card{
  position:relative;overflow:hidden;border-radius:1rem;
  background:linear-gradient(160deg,rgba(255,255,255,.12),rgba(255,255,255,.035));
  border:1px solid rgba(255,255,255,.14);border-top-color:rgba(228,201,106,.3);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.12);
  backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);
  transition:border-color .4s ease,transform .4s cubic-bezier(.2,.8,.2,1),box-shadow .4s ease;
}
.gi-card:hover{
  border-color:rgba(201,166,70,.35);transform:translateY(-4px);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.1),0 24px 60px -24px rgba(0,0,0,.7);
}

.so-logo{
  display:grid;place-items:center;height:3.5rem;width:3.5rem;border-radius:.75rem;
  border:1px solid rgba(228,201,106,.28);background:rgba(201,166,70,.08);
  padding:.4rem;overflow:hidden;flex-shrink:0;
}
.so-logo-mono{
  font-family:var(--font-haboro);font-size:1.05rem;letter-spacing:.02em;line-height:1;
  background:linear-gradient(100deg,#FFF3CF,#E4C96A 45%,#C9A646);
  -webkit-background-clip:text;background-clip:text;
  -webkit-text-fill-color:transparent;color:transparent;
}

/* ------------------------------------------------ cases detalhados */
.cases-grid{
  position:relative;z-index:10;margin-top:3.5rem;display:grid;gap:1.5rem;
  grid-template-columns:1fr;
}
@media(min-width:900px){.cases-grid{grid-template-columns:repeat(2,1fr)}}
.case-card{display:flex;flex-direction:column;padding:2rem}
.case-head{display:flex;align-items:flex-start;gap:1rem}
.case-num{
  font-family:var(--font-spacemono);font-size:11px;letter-spacing:.2em;
  text-transform:uppercase;color:rgba(255,255,255,.4);
}
.case-sector{
  font-family:var(--font-spacemono);font-size:11px;letter-spacing:.16em;
  text-transform:uppercase;color:rgba(228,201,106,.85);
}
.case-title{margin-top:.5rem;font-size:1.375rem;font-weight:700;line-height:1.25;color:#fff}
.case-local{
  margin-top:.375rem;font-family:var(--font-spacemono);font-size:10px;
  letter-spacing:.2em;text-transform:uppercase;color:rgba(255,255,255,.4);
}
.case-desc{
  margin-top:1.5rem;font-size:.9375rem;font-weight:300;line-height:1.8;
  color:rgba(255,255,255,.7);
}
.feature-list{margin-top:1.5rem;display:grid;gap:.75rem}
.feature-list li{display:flex;align-items:flex-start;gap:.75rem;font-size:.875rem;line-height:1.6;color:rgba(255,255,255,.72)}
.feature-list .tick{
  flex-shrink:0;margin-top:.15rem;display:grid;place-items:center;
  height:1.125rem;width:1.125rem;border-radius:9999px;
  border:1px solid rgba(228,201,106,.35);background:rgba(201,166,70,.12);color:var(--gold-light);
}
.case-foot{
  margin-top:1.75rem;padding-top:1.75rem;
  font-size:.875rem;font-weight:300;line-height:1.75;color:rgba(255,255,255,.55);
  border-top:1px solid rgba(255,255,255,.08);
}

/* ------------------------------------------------ diferenciais */
.why-grid{
  position:relative;z-index:10;margin-top:3.5rem;display:grid;gap:1.25rem;
  grid-template-columns:1fr;
}
@media(min-width:720px){.why-grid{grid-template-columns:repeat(2,1fr)}}
@media(min-width:1080px){.why-grid{grid-template-columns:repeat(3,1fr)}}
.why-card{padding:2rem;height:100%}
.why-icon{
  display:inline-flex;border-radius:.75rem;padding:.75rem;
  border:1px solid rgba(201,166,70,.25);background:rgba(201,166,70,.1);color:var(--gold-light);
}
.why-card h3{margin-top:1.25rem;font-size:1.125rem;font-weight:700;color:#fff}
.why-card p{margin-top:.75rem;font-size:.9375rem;font-weight:300;line-height:1.7;color:rgba(255,255,255,.6)}

/* ------------------------------------------------ CTA */
.cta-panel{
  position:relative;z-index:10;border-radius:1.5rem;padding:3rem 2rem;text-align:center;
  background:linear-gradient(165deg,rgba(255,255,255,.09),rgba(201,166,70,.05) 45%,rgba(255,255,255,.02));
  backdrop-filter:blur(48px);-webkit-backdrop-filter:blur(48px);
  border:1px solid rgba(255,255,255,.07);border-top-color:rgba(228,201,106,.35);
  box-shadow:0 0 0 1px rgba(0,0,0,.3),0 30px 80px -20px rgba(0,0,0,.75),inset 0 0 60px rgba(201,166,70,.05);
}
@media(min-width:768px){.cta-panel{padding:4.5rem 3.5rem}}
.cta-panel h2{
  font-family:var(--font-haboro);font-size:clamp(1.875rem,4vw,2.75rem);
  line-height:1.15;color:#fff;margin-top:1rem;
}
.cta-panel p{
  margin:1.5rem auto 0;max-width:44rem;font-size:1.0625rem;font-weight:300;
  line-height:1.8;color:rgba(255,255,255,.68);
}
.cta-actions{margin-top:2.5rem;display:flex;flex-wrap:wrap;gap:1rem;justify-content:center}

/* ----------------------------------------------------------- footer */
.site-footer{
  position:relative;border-top:1px solid rgba(59,27,99,.6);
  background:rgba(23,13,38,.6);
}
.footer-grid{display:grid;gap:3rem;padding:4rem 0}
@media(min-width:768px){.footer-grid{grid-template-columns:repeat(2,1fr);padding:6rem 0}}
@media(min-width:1024px){.footer-grid{grid-template-columns:2fr 1fr 1fr}}
.site-footer img{height:2.5rem;width:auto}
.footer-grid h3{
  font-family:var(--font-spacemono);font-size:12px;letter-spacing:.2em;
  text-transform:uppercase;color:rgba(255,255,255,.5);
}
.footer-grid ul{margin-top:1.25rem;display:grid;gap:.75rem}
.footer-grid ul a{font-size:.875rem;color:rgba(255,255,255,.7);transition:color .3s ease}
.footer-grid ul a:hover{color:var(--gold-light)}
.footer-bottom{
  display:flex;flex-direction:column;align-items:center;justify-content:space-between;
  gap:1rem;border-top:1px solid rgba(59,27,99,.5);padding:2rem 0 3rem;
}
@media(min-width:768px){.footer-bottom{flex-direction:row}}
.footer-bottom .tag{font-family:var(--font-haboro);font-size:1.125rem;color:rgba(228,201,106,.9)}
.footer-bottom .copy{font-size:.75rem;color:rgba(255,255,255,.45)}

/* ----------------------------------------------------------- reveal */
.reveal{
  opacity:0;filter:blur(8px);transform:translateY(34px) scale(.985);
  transition:opacity .9s cubic-bezier(.16,1,.3,1),transform .9s cubic-bezier(.16,1,.3,1),filter .9s cubic-bezier(.16,1,.3,1);
  transition-delay:var(--d,0s);will-change:opacity,transform,filter;
}
.reveal.is-in{opacity:1;filter:blur(0);transform:none}

@media(prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  .reveal{opacity:1!important;filter:none!important;transform:none!important;transition:none!important}
  .marquee-track,.gold-text{animation:none!important}
}
