:root{--p:#592698;--y:#F6D002;--pink:#FF0066;--blue:#0066FF;--ink:#17131D;--muted:#706978;--soft:#F7F4FA;--line:#E7DFEC;--white:#fff}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;font-family:Montserrat,Arial,sans-serif;color:var(--ink);background:white;overflow-x:hidden}.nav{position:fixed;z-index:50;left:3vw;right:3vw;top:18px;height:54px;padding:0 18px 0 24px;display:flex;align-items:center;justify-content:space-between;background:rgba(255,255,255,.82);backdrop-filter:blur(18px);border:1px solid rgba(89,38,152,.1);border-radius:28px}.brand{font-weight:800;color:var(--p);text-decoration:none;font-size:14px}.nav nav{display:flex;gap:28px}.nav nav a,.menu-pill{font-size:12px;text-decoration:none;color:var(--muted);font-weight:600}.menu-pill{background:var(--p);color:white;padding:12px 18px;border-radius:22px}.hero{min-height:100vh;position:relative;display:flex;align-items:center;padding:120px 6vw 70px;background:radial-gradient(circle at 76% 45%,#faf7fc 0,#fff 44%)}.hero-copy{width:48%;z-index:2}.eyebrow{display:block;color:var(--p);font-size:12px;font-weight:800;letter-spacing:.14em;margin-bottom:22px}.yellow{color:var(--y)}h1,h2,h3,p{margin-top:0}.hero h1{font-size:clamp(54px,6vw,96px);line-height:.93;letter-spacing:-.06em;margin-bottom:34px}.hero p{font-size:20px;line-height:1.6;max-width:550px;color:var(--muted)}.primary{display:inline-flex;gap:20px;align-items:center;margin-top:24px;padding:17px 24px;border-radius:28px;background:var(--p);color:#fff;text-decoration:none;font-size:13px;font-weight:700}.hero-machine{position:absolute;right:2vw;width:52vw;height:70vh;display:grid;place-items:center;perspective:1000px}.hero-logo{width:70%;z-index:2;filter:drop-shadow(0 28px 38px rgba(89,38,152,.13));transition:transform .2s ease}.orbit{position:absolute;border:1px solid rgba(89,38,152,.15);border-radius:50%}.orbit-one{width:72%;aspect-ratio:1}.orbit-two{width:95%;aspect-ratio:1;border-style:dashed;animation:spin 36s linear infinite}.gear{position:absolute;border-radius:50%;background:repeating-conic-gradient(var(--p) 0 8deg,transparent 8deg 19deg);mask:radial-gradient(circle,transparent 0 43%,#000 44% 63%,transparent 64%)}.gear-a{width:160px;aspect-ratio:1;right:8%;top:10%;animation:spin 15s linear infinite}.gear-b{width:100px;aspect-ratio:1;left:8%;bottom:6%;background:repeating-conic-gradient(var(--y) 0 10deg,transparent 10deg 24deg);animation:spin 9s linear reverse infinite}.scroll-note{position:absolute;right:5vw;bottom:28px;font-size:11px;color:var(--muted)}@keyframes spin{to{transform:rotate(360deg)}}.video-chapter{min-height:110vh;background:var(--p);color:#fff;display:grid;grid-template-columns:34% 66%;align-items:center;padding:10vh 6vw;gap:50px}.chapter-copy h2{font-size:clamp(55px,6vw,90px);line-height:.95;letter-spacing:-.06em}.chapter-copy p{color:#d9cbe5;line-height:1.6}.video-shell{position:relative;padding:26px;border-radius:40px;background:#42186f}.video-shell video{display:block;width:100%;border-radius:26px;background:#151018;aspect-ratio:16/9}.video-caption{display:block;font-size:11px;color:#d7c7e4;padding:18px 5px 0}.project{padding:18vh 6vw}.project-intro h2{font-size:clamp(46px,5vw,76px);letter-spacing:-.055em;line-height:1}.story-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:0;margin-top:12vh;border-top:1px solid var(--line)}.story{padding:55px 8vw 55px 0;border-bottom:1px solid var(--line)}.story:nth-child(even){padding-left:8vw;border-left:1px solid var(--line)}.story strong{font-size:22px;color:var(--p)}.story p{color:var(--muted);line-height:1.7;margin:20px 0 0}.mission{min-height:80vh;display:grid;place-content:center;text-align:center;background:var(--y);padding:8vw}.mission p{font-size:22px}.mission h2{font-size:clamp(60px,8vw,120px);line-height:.9;letter-spacing:-.07em;color:var(--p)}.territory{padding:16vh 4vw 8vh;background:var(--soft)}.territory-head{padding:0 2vw}.territory-head h2{font-size:clamp(38px,4vw,66px);line-height:1.02;letter-spacing:-.05em}.territory-head p{color:var(--muted)}.map-experience{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(330px,.65fr);gap:22px;margin-top:8vh;align-items:stretch}.map-stage{position:relative;min-height:690px;border-radius:38px;overflow:hidden;background:#eee7f3}.map-stage>img{width:100%;height:100%;object-fit:cover;filter:saturate(.5);opacity:.88}.map-point{position:absolute;width:18px;height:18px;border:0;border-radius:50%;background:var(--p);box-shadow:0 0 0 7px rgba(89,38,152,.11);cursor:pointer;transition:.25s;transform:translate(-50%,-50%)}.map-point:hover,.map-point:focus-visible,.map-point.active{background:var(--y);width:28px;height:28px;box-shadow:0 0 0 12px rgba(246,208,2,.24);outline:none}.map-point span{position:absolute;left:22px;top:-5px;white-space:nowrap;background:white;color:var(--p);font:700 11px Montserrat;padding:7px 10px;border-radius:14px;opacity:0;transform:translateX(-5px);transition:.2s;pointer-events:none}.map-point:hover span,.map-point:focus-visible span,.map-point.active span{opacity:1;transform:none}.city-panel{background:white;border-radius:38px;padding:42px;display:flex;flex-direction:column}.panel-kicker{font-size:11px;font-weight:800;color:var(--p);letter-spacing:.1em}.city-panel h3{font-size:34px;margin:18px 0 40px}.panel-main strong{display:block;font-size:64px;letter-spacing:-.05em}.panel-main span,.panel-mini span{display:block;color:var(--muted);font-size:12px}.panel-mini{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:34px 0}.panel-mini div{background:var(--soft);padding:20px;border-radius:18px}.panel-mini strong{font-size:24px}.city-panel>p{font-size:14px;line-height:1.6}.photo-slots{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:auto}.photo-slots div{min-height:110px;border-radius:16px;background:linear-gradient(135deg,#f1eaf6,#fff);display:grid;place-items:center;text-align:center;color:var(--muted);font-size:10px}.impact{padding:18vh 6vw}.impact h2{font-size:clamp(52px,6vw,88px);line-height:.95;letter-spacing:-.06em}.metrics{display:grid;grid-template-columns:repeat(4,1fr);gap:30px;margin:12vh 0}.metrics div{border-bottom:4px solid var(--line);padding-bottom:24px}.metrics div:first-child{border-color:var(--y)}.metrics strong{display:block;font-size:44px;color:var(--p)}.metrics span{font-size:12px;color:var(--muted)}.chart-wrap{margin-top:60px}.chart-head{display:flex;justify-content:space-between;align-items:end;margin-bottom:35px}.chart-head span{font-size:11px;color:var(--muted)}.bar-row{display:grid;grid-template-columns:180px 1fr 70px;align-items:center;gap:18px;margin:15px 0}.bar-row button{height:25px;border:0;border-radius:14px;background:var(--p);cursor:pointer;transition:.25s;transform-origin:left}.bar-row button:hover,.bar-row button:focus-visible,.bar-row.active button{background:var(--y);outline:3px solid rgba(89,38,152,.15)}.bar-row span,.bar-row b{font-size:12px}.bar-row b{text-align:right}.timeline{margin-top:15vh;display:grid;grid-template-columns:repeat(5,1fr);position:relative}.timeline:before{content:"";position:absolute;top:13px;left:4%;right:4%;height:2px;background:var(--line)}.timeline div{position:relative;padding-top:50px}.timeline div:before{content:"";position:absolute;top:0;width:28px;height:28px;background:var(--p);border:6px solid white;border-radius:50%;box-shadow:0 0 0 1px var(--line)}.timeline b,.timeline span{display:block;font-size:12px}.timeline b{color:var(--p);margin-bottom:10px}.timeline span{color:var(--muted)}.gallery{padding:16vh 6vw;background:var(--soft);display:grid;grid-template-columns:34% 66%;gap:6vw}.gallery-title h2{font-size:clamp(44px,5vw,72px);line-height:1;letter-spacing:-.06em}.gallery-title p{color:var(--muted);line-height:1.6}.gallery-grid{display:grid;grid-template-columns:repeat(2,1fr);grid-auto-rows:220px;gap:16px}.gallery-card{border-radius:26px;padding:25px;color:white;font-weight:800;display:flex;align-items:end}.gallery-card:first-child{grid-row:span 2}.purple{background:var(--p)}.yellow{background:var(--y);color:var(--ink)}.blue{background:var(--blue)}.pink{background:var(--pink)}.pattern{color:var(--p);background-color:#fff;background-image:radial-gradient(circle at 20% 20%,var(--y) 0 7%,transparent 8%),radial-gradient(circle at 70% 65%,rgba(89,38,152,.15) 0 18%,transparent 19%)}footer{padding:80px 6vw;background:var(--p);color:white;display:grid;grid-template-columns:220px 1fr 1fr auto;gap:35px;align-items:center}footer img{width:180px;filter:brightness(0) invert(1)}footer p,footer span,footer a{font-size:12px;line-height:1.6;color:#e0d3e9}footer a{text-decoration:none}.reveal{opacity:0;transform:translateY(35px);transition:opacity .8s ease,transform .8s cubic-bezier(.2,.8,.2,1)}.reveal.visible{opacity:1;transform:none}@media(max-width:900px){.nav nav{display:none}.hero{padding-top:130px;align-items:flex-start}.hero-copy{width:100%}.hero h1{font-size:54px}.hero-machine{position:relative;right:auto;width:100%;height:42vh;margin-top:40px}.hero{display:block}.video-chapter,.gallery{grid-template-columns:1fr}.story-grid{grid-template-columns:1fr}.story:nth-child(even){padding-left:0;border-left:0}.map-experience{grid-template-columns:1fr}.map-stage{min-height:500px}.metrics{grid-template-columns:repeat(2,1fr)}.bar-row{grid-template-columns:110px 1fr 50px}.timeline{overflow:auto;grid-template-columns:repeat(5,170px)}footer{grid-template-columns:1fr}.gallery-grid{grid-auto-rows:170px}}@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;animation:none!important;transition:none!important}.reveal{opacity:1;transform:none}}
/* Universo maker — objetos tridimensionais narrados pela rolagem */
.maker-universe {
  position: relative;
  height: 190vh;
  margin: 8rem calc(50% - 50vw) 0;
  background:
    radial-gradient(circle at 50% 46%, rgba(246, 208, 2, .14), transparent 19%),
    radial-gradient(circle at 18% 24%, rgba(0, 102, 255, .09), transparent 23%),
    radial-gradient(circle at 82% 76%, rgba(89, 38, 152, .11), transparent 25%),
    #f8f7fb;
  overflow: clip;
}

/* Acervo fotográfico dos municípios */
.gallery{align-items:start}.gallery-title{position:sticky;top:110px}.gallery-count{display:inline-flex;margin-top:20px;padding:10px 15px;border-radius:999px;background:#fff;color:var(--p);font-size:12px}.gallery-content{min-width:0}.gallery-filters{display:flex;gap:8px;overflow-x:auto;padding:2px 2px 18px;scrollbar-width:thin}.gallery-filters button{flex:0 0 auto;border:1px solid var(--line);border-radius:999px;background:#fff;color:var(--muted);padding:10px 14px;font:700 11px Montserrat,Arial,sans-serif;cursor:pointer;transition:background .2s,color .2s,border-color .2s,transform .2s}.gallery-filters button:hover,.gallery-filters button:focus-visible,.gallery-filters button.active{background:var(--p);border-color:var(--p);color:#fff;outline:none}.gallery-filters button:active{transform:scale(.97)}.gallery-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));grid-auto-rows:auto;gap:14px}.municipality-photo{position:relative;min-width:0;margin:0;border-radius:22px;overflow:hidden;background:#fff;box-shadow:0 12px 34px rgba(54,34,68,.08)}.municipality-photo[hidden]{display:none}.municipality-photo a{position:relative;display:block;aspect-ratio:4/3;overflow:hidden;background:#ebe5ef}.municipality-photo img{display:block;width:100%;height:100%;object-fit:cover;transition:transform .55s cubic-bezier(.2,.8,.2,1),filter .3s}.municipality-photo a span{position:absolute;right:12px;top:12px;width:34px;height:34px;border-radius:50%;display:grid;place-items:center;background:rgba(255,255,255,.9);color:var(--p);font-weight:800;opacity:0;transform:translateY(5px);transition:.25s}.municipality-photo figcaption{padding:14px 16px 16px;color:var(--p);font-size:11px;font-weight:800}.municipality-photo:hover img,.municipality-photo:focus-within img{transform:scale(1.045);filter:saturate(1.08)}.municipality-photo:hover a span,.municipality-photo:focus-within a span{opacity:1;transform:none}.municipality-photo a:focus-visible{outline:4px solid var(--y);outline-offset:-4px}
@media(max-width:1100px){.gallery-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:900px){.gallery-title{position:static}.gallery-content{min-width:0}.gallery-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:560px){.gallery-grid{grid-template-columns:1fr}.municipality-photo a{aspect-ratio:16/11}}

/* Ajuste definitivo de espaçamento da experiência maker */
@media (min-width: 851px) {
  .maker-universe {
    min-height: 1100px;
    margin-top: 8rem;
    scroll-margin-top: 7rem;
  }

  .maker-stage {
    height: 1050px;
    min-height: 1050px;
    padding-top: 0;
    overflow: hidden;
  }

  .maker-core {
    top: 54%;
    width: min(31rem, 33vw);
    z-index: 5;
    pointer-events: none;
  }

  .maker-core h3 {
    font-size: clamp(3.7rem, 4.8vw, 5.7rem);
  }

  .maker-object {
    width: clamp(8rem, 10vw, 10.5rem);
    z-index: 2;
    transform: none !important;
  }

  .maker-float {
    min-height: 13rem;
    animation: none !important;
    background: transparent;
    box-shadow: none;
  }

  .maker-float::before,
  .maker-float::after {
    display: none !important;
    content: none !important;
  }

  .maker-laptop { left: calc(50% - 5rem); top: 8.75rem; }
  .maker-gear { left: 5%; top: 30%; }
  .maker-arm { right: 5%; top: 30%; }
  .maker-board { left: 8%; bottom: 2%; }
  .maker-robot { left: calc(50% - 5rem); right: auto; bottom: 0; }
  .maker-print { right: 8%; bottom: 2%; }

  .maker-detail {
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
  }

  .maker-object:hover .maker-detail,
  .maker-object:focus-visible .maker-detail {
    opacity: 1;
    visibility: visible;
  }

  .maker-object.is-active .maker-detail {
    opacity: 0;
    visibility: hidden;
  }
}

/* Ajuste final da experiência “Ideias ganham forma” */
@media (min-width: 851px) {
  .maker-universe {
    margin-top: 0 !important;
    padding-top: 0 !important;
  }

  .maker-stage {
    height: max(100svh, 1000px) !important;
    min-height: 1000px !important;
    padding-top: 0 !important;
  }

  .maker-core {
    top: 52% !important;
    width: min(34rem, 36vw) !important;
  }

  .maker-laptop {
    top: 7rem !important;
  }

  .maker-gear,
  .maker-arm {
    top: 27% !important;
  }

  .maker-board,
  .maker-print {
    bottom: 8% !important;
  }

  .maker-robot {
    bottom: 5% !important;
  }

  .maker-float {
    background: transparent !important;
    border: 0 !important;
    box-shadow: none !important;
    animation: none !important;
  }

  .maker-float::before,
  .maker-float::after {
    display: none !important;
  }

  .maker-object .object-visual {
    animation: none !important;
    transform: translateZ(0) rotate(0deg) scale(1) !important;
    transition: transform 480ms cubic-bezier(.2,.8,.2,1), filter 480ms ease !important;
  }

  .maker-object:hover .object-visual,
  .maker-object:focus-visible .object-visual {
    transform: translate3d(0, -12px, 0) rotate(-2deg) scale(1.055) !important;
    filter: drop-shadow(0 22px 24px rgba(89, 38, 152, .18)) !important;
  }

  .maker-board .maker-detail,
  .maker-robot .maker-detail,
  .maker-print .maker-detail {
    top: auto !important;
    bottom: calc(100% - .25rem) !important;
    transform: translate(-50%, -8px) !important;
  }

  .maker-board:hover .maker-detail,
  .maker-board:focus-visible .maker-detail,
  .maker-robot:hover .maker-detail,
  .maker-robot:focus-visible .maker-detail,
  .maker-print:hover .maker-detail,
  .maker-print:focus-visible .maker-detail {
    transform: translate(-50%, 0) !important;
  }
}

/* Correção final — composição e interação da seção "Ideias ganham forma" */
.maker-universe {
  scroll-margin-top: 7rem;
}

@media (min-width: 851px) {
  .maker-universe {
    min-height: 1000px;
    margin-top: 0;
    padding-top: 7rem;
  }

  .maker-stage {
    height: 1000px;
    min-height: 1000px;
    padding-top: 0;
    overflow: hidden;
  }

  .maker-core {
    top: 50%;
    left: 50%;
    width: min(34rem, 38vw);
    z-index: 2;
    pointer-events: none;
  }

  .maker-core h3 {
    font-size: clamp(3.6rem, 4.8vw, 5.6rem);
  }

  .maker-object {
    width: clamp(7.5rem, 9vw, 10rem);
    z-index: 3;
    transform: none !important;
    filter: none;
  }

  .maker-float {
    min-height: 12rem;
    padding: 0;
    animation: none !important;
    background: transparent !important;
    box-shadow: none !important;
    backdrop-filter: none !important;
  }

  .maker-float::before,
  .maker-float::after {
    display: none !important;
    content: none !important;
  }

  .object-visual {
    height: 7.6rem;
  }

  .maker-detail {
    visibility: hidden;
    opacity: 0;
    transform: translateY(0.55rem);
    transition: opacity 220ms ease, transform 220ms ease, visibility 220ms ease;
  }

  .maker-object:hover .maker-detail,
  .maker-object:focus-visible .maker-detail {
    visibility: visible;
    opacity: 1;
    transform: translateY(0);
  }

  .maker-object.is-active:not(:hover):not(:focus-visible) .maker-detail {
    visibility: hidden;
    opacity: 0;
  }

  .maker-object[data-maker="gear"] {
    left: 5%;
    top: 22%;
  }

  .maker-object[data-maker="laptop"] {
    left: calc(50% - 4.5rem);
    top: 3%;
  }

  .maker-object[data-maker="arm"] {
    right: 5%;
    top: 22%;
  }

  .maker-object[data-maker="board"] {
    left: 7%;
    bottom: 4%;
  }

  .maker-object[data-maker="robot"] {
    left: calc(50% - 4.5rem);
    bottom: 1%;
  }

  .maker-object[data-maker="print"] {
    right: 7%;
    bottom: 4%;
  }
}

@media (max-width: 850px) {
  .maker-universe {
    padding-top: 6.5rem;
  }

  .maker-float,
  .maker-float::before,
  .maker-float::after {
    background: transparent !important;
    box-shadow: none !important;
  }

  .maker-float::before,
  .maker-float::after {
    display: none !important;
    content: none !important;
  }

  .maker-detail {
    max-height: 0;
    overflow: hidden;
    visibility: hidden;
    opacity: 0;
    transform: translateY(0.4rem);
    transition: max-height 240ms ease, opacity 220ms ease, transform 220ms ease,
      visibility 220ms ease;
  }

  .maker-object.is-active .maker-detail {
    max-height: 8rem;
    visibility: visible;
    opacity: 1;
    transform: translateY(0);
  }
}

/* Dados municipais atualizados em 11/08/2026. */
.metrics { grid-template-columns: repeat(5, 1fr); }
.city-school-list {
  margin: 0 0 1.25rem;
  padding: 1rem 1.1rem;
  border-radius: 1rem;
  background: var(--soft);
  color: var(--muted);
  font-size: .72rem;
  line-height: 1.55;
}
.city-school-list strong {
  display: block;
  margin-bottom: .45rem;
  color: var(--p);
  font-size: .68rem;
  letter-spacing: .08em;
  text-transform: uppercase;
}
.city-school-list p { margin: 0; }
.city-school-list ul { margin: 0; padding-left: 1.1rem; }
.city-school-list li + li { margin-top: .28rem; }

@media (max-width: 1100px) {
  .metrics { grid-template-columns: repeat(3, 1fr); }
}

@media (max-width: 700px) {
  .metrics { grid-template-columns: repeat(2, 1fr); }
}

.maker-stage {
  position: sticky;
  top: 0;
  min-height: 100vh;
  perspective: 1200px;
  isolation: isolate;
}

.maker-stage::before {
  content: "";
  position: absolute;
  inset: 7%;
  border: 1px solid rgba(89, 38, 152, .08);
  border-radius: 4rem;
  background-image: radial-gradient(rgba(89, 38, 152, .1) 1px, transparent 1px);
  background-size: 24px 24px;
  mask-image: radial-gradient(circle, #000 18%, transparent 72%);
}

.maker-core {
  position: absolute;
  z-index: 2;
  left: 50%;
  top: 50%;
  width: min(38rem, 47vw);
  transform: translate(-50%, -50%);
  text-align: center;
}

.maker-core h3 {
  margin: .55rem 0 .8rem;
  font-size: clamp(3rem, 6vw, 7rem);
  line-height: .92;
  letter-spacing: -.075em;
}

.maker-core p {
  margin: 0 auto;
  color: #746d7d;
  font-size: clamp(.8rem, 1.1vw, 1rem);
}

.maker-object {
  --appear: 0;
  --scroll-y: 70px;
  --px: 0px;
  --py: 0px;
  --glass-a: rgba(89,38,152,.42);
  --glass-b: rgba(0,102,255,.22);
  --glass-glow: rgba(89,38,152,.28);
  --glass-rotate: -5deg;
  --glass-hover-rotate: 2deg;
  --rx: 0deg;
  --ry: 0deg;
  position: absolute;
  z-index: 3;
  width: clamp(11rem, 17vw, 17rem);
  opacity: var(--appear);
  transform: translate3d(var(--px), calc(var(--py) + var(--scroll-y)), 0)
    rotateX(var(--rx)) rotateY(var(--ry)) scale(calc(.72 + var(--appear) * .28));
  transform-style: preserve-3d;
  transition: opacity .25s ease, filter .4s ease;
  outline: none;
}

.maker-float {
  position: relative;
  min-height: clamp(12rem, 18vw, 18rem);
  transform-style: preserve-3d;
  isolation: isolate;
  padding: .7rem .45rem 1rem;
  animation: maker-drift 6s ease-in-out infinite;
}

.maker-float::before {
  content: "";
  position: absolute;
  z-index: -2;
  inset: 2% 4% 18%;
  border: 1px solid rgba(255,255,255,.88);
  border-radius: 38% 62% 54% 46% / 44% 42% 58% 56%;
  background:
    radial-gradient(circle at 28% 18%, rgba(255,255,255,.94) 0 5%, transparent 24%),
    radial-gradient(circle at 80% 78%, var(--glass-a), transparent 52%),
    linear-gradient(145deg, rgba(255,255,255,.78), var(--glass-b));
  box-shadow:
    inset 10px 12px 22px rgba(255,255,255,.88),
    inset -12px -18px 24px rgba(89,38,152,.14),
    0 30px 60px var(--glass-glow);
  backdrop-filter: blur(12px) saturate(1.3);
  transform: translateZ(-32px) rotate(var(--glass-rotate));
  transition: transform .5s cubic-bezier(.2,.8,.2,1), box-shadow .5s ease;
}

.maker-float::after {
  content: "";
  position: absolute;
  z-index: -3;
  left: 18%;
  right: 18%;
  bottom: 14%;
  height: 12%;
  background: radial-gradient(ellipse, rgba(36,21,54,.35), transparent 70%);
  filter: blur(10px);
  transition: transform .5s ease, opacity .5s ease;
}

.maker-object:nth-of-type(even) .maker-float { animation-delay: -2.2s; animation-duration: 7.2s; }
.maker-object:nth-of-type(3n) .maker-float { animation-delay: -4s; animation-duration: 8s; }

.maker-object:hover,
.maker-object:focus-visible,
.maker-object.is-active { z-index: 8; filter: saturate(1.08); }

.maker-object:hover .object-visual,
.maker-object:focus-visible .object-visual,
.maker-object.is-active .object-visual { transform: translateZ(55px) rotate(-3deg) scale(1.08); }

.maker-object:hover .maker-float::before,
.maker-object:focus-visible .maker-float::before,
.maker-object.is-active .maker-float::before {
  transform: translateZ(-18px) rotate(var(--glass-hover-rotate)) scale(1.04);
  box-shadow:
    inset 12px 14px 25px rgba(255,255,255,.92),
    inset -14px -20px 28px rgba(89,38,152,.18),
    0 38px 70px var(--glass-glow);
}

.maker-object:hover .maker-float::after,
.maker-object:focus-visible .maker-float::after,
.maker-object.is-active .maker-float::after {
  transform: scale(.82) translateY(6px);
  opacity: .68;
}

.object-visual {
  position: relative;
  height: clamp(8.5rem, 13vw, 13rem);
  display: grid;
  place-items: center;
  transform: translateZ(18px);
  transform-style: preserve-3d;
  transition: transform .45s cubic-bezier(.2,.8,.2,1);
  filter: drop-shadow(0 24px 19px rgba(35, 23, 52, .19));
}

.maker-asset {
  display: block;
  width: 94%;
  height: 94%;
  object-fit: contain;
  transform: translateZ(12px);
  transform-origin: center;
  transition: transform .45s cubic-bezier(.2,.8,.2,1), filter .45s ease;
  filter: drop-shadow(0 20px 18px rgba(35, 23, 52, .16));
}

.maker-object:hover .maker-asset,
.maker-object:focus-visible .maker-asset,
.maker-object.is-active .maker-asset {
  transform: translateZ(28px) rotate(2deg) scale(1.04);
  filter: drop-shadow(0 28px 24px rgba(89, 38, 152, .22));
}

.maker-gear .maker-asset {
  width: 86%;
  height: 86%;
}

.maker-arm .maker-asset,
.maker-board .maker-asset {
  width: 98%;
  height: 98%;
}

.maker-laptop .maker-asset {
  width: 90%;
  height: 90%;
}

.maker-word {
  display: block;
  width: max-content;
  max-width: 100%;
  margin: .25rem auto 0;
  padding: .65rem 1rem;
  border: 1px solid rgba(255,255,255,.85);
  border-radius: 999px;
  background: rgba(255,255,255,.76);
  box-shadow: 0 12px 35px rgba(55,35,84,.1);
  backdrop-filter: blur(14px);
  color: #592698;
  font-size: clamp(.74rem, 1vw, .95rem);
  text-align: center;
}

.maker-detail {
  position: absolute;
  left: 50%;
  top: calc(100% - .3rem);
  width: min(16rem, 82vw);
  margin: 0;
  padding: .9rem 1rem;
  border: 1px solid rgba(255,255,255,.88);
  border-radius: 1.15rem;
  background: rgba(255,255,255,.92);
  box-shadow: 0 20px 50px rgba(34,21,51,.14);
  color: #544d5d;
  font-size: .75rem;
  line-height: 1.45;
  text-align: center;
  opacity: 0;
  pointer-events: none;
  transform: translate(-50%, 8px) scale(.96);
  transition: .3s ease;
}

.maker-object:hover .maker-detail,
.maker-object:focus-visible .maker-detail,
.maker-object.is-active .maker-detail {
  opacity: 1;
  transform: translate(-50%, 0) scale(1);
}

.maker-gear {
  left: 7%; top: 14%;
  --glass-a: rgba(246,208,2,.48);
  --glass-b: rgba(255,255,255,.44);
  --glass-glow: rgba(246,208,2,.22);
  --glass-rotate: -7deg;
  --glass-hover-rotate: 1deg;
}
.maker-arm {
  right: 7%; top: 10%;
  --glass-a: rgba(89,38,152,.42);
  --glass-b: rgba(0,102,255,.24);
  --glass-glow: rgba(89,38,152,.25);
  --glass-rotate: 6deg;
  --glass-hover-rotate: -2deg;
}
.maker-board {
  left: 13%; bottom: 10%;
  --glass-a: rgba(0,102,255,.36);
  --glass-b: rgba(255,255,255,.55);
  --glass-glow: rgba(0,102,255,.21);
  --glass-rotate: 4deg;
  --glass-hover-rotate: -2deg;
}
.maker-print {
  right: 12%; bottom: 9%;
  --glass-a: rgba(255,0,102,.27);
  --glass-b: rgba(246,208,2,.26);
  --glass-glow: rgba(255,0,102,.18);
  --glass-rotate: -6deg;
  --glass-hover-rotate: 2deg;
}
.maker-laptop {
  left: 35%; top: 7%;
  --glass-a: rgba(0,102,255,.38);
  --glass-b: rgba(89,38,152,.25);
  --glass-glow: rgba(0,102,255,.2);
  --glass-rotate: 5deg;
  --glass-hover-rotate: -1deg;
}
.maker-robot {
  right: 34%; bottom: 5%;
  --glass-a: rgba(246,208,2,.4);
  --glass-b: rgba(89,38,152,.24);
  --glass-glow: rgba(89,38,152,.2);
  --glass-rotate: -4deg;
  --glass-hover-rotate: 2deg;
}

/* Engrenagem */
.gear-body {
  position: absolute; inset: 12% 18%;
  border: 1.15rem solid #f7f7fb;
  border-radius: 50%;
  background: radial-gradient(circle, #f6d002 0 25%, #592698 26% 43%, transparent 44%);
  box-shadow: inset 8px 8px 12px #fff, inset -10px -12px 16px #c5c4cf, 0 16px 24px rgba(55,35,84,.18);
}
.gear-body::before {
  content: ""; position: absolute; inset: -1.9rem;
  background: repeating-conic-gradient(from 2deg, #e9e9f0 0 8deg, transparent 8deg 22.5deg);
  border-radius: 50%; z-index: -1;
}
.gear-body i { position: absolute; inset: 27%; border-radius: 50%; background: linear-gradient(145deg,#ffd900,#e8bd00); box-shadow: inset -5px -5px 8px rgba(114,78,0,.2); }

/* Braço robótico */
.arm-base { position:absolute; left:24%; bottom:8%; width:50%; height:25%; border-radius:50%; background:linear-gradient(155deg,#fff,#d9d7e1); box-shadow:inset -8px -8px 12px #bbb8c6; }
.arm-base::after { content:""; position:absolute; inset:20% 28%; border-radius:50%; background:linear-gradient(145deg,#ffdc19,#e9bd00); }
.arm-link { position:absolute; display:block; height:20%; border-radius:999px; background:linear-gradient(160deg,#6f36b3,#45177e); box-shadow:inset 7px 7px 8px rgba(255,255,255,.2), inset -7px -8px 9px rgba(28,5,54,.25); transform-origin:12% 50%; }
.arm-link-one { left:43%; bottom:24%; width:42%; transform:rotate(-63deg); }
.arm-link-two { left:51%; bottom:59%; width:34%; transform:rotate(-22deg); }
.arm-joint { position:absolute; width:17%; aspect-ratio:1; border-radius:50%; background:radial-gradient(circle at 35% 30%,#ffe45a,#f6d002 55%,#b59200); box-shadow:0 6px 10px rgba(49,27,65,.2); }
.arm-joint-one { left:38%; bottom:27%; }.arm-joint-two { left:72%; bottom:65%; }
.arm-claw { position:absolute; right:2%; top:4%; width:22%; height:27%; border:10px solid #592698; border-bottom:0; border-radius:18px 18px 0 0; transform:rotate(26deg); }

/* Placa eletrônica */
.board-shell { position:absolute; inset:12% 10%; border-radius:1.4rem; background:linear-gradient(145deg,#1674ff,#592698); box-shadow:inset 8px 8px 10px rgba(255,255,255,.25),inset -8px -10px 14px rgba(17,4,67,.3); transform:rotate(-9deg) skewY(3deg); }
.board-shell::before,.board-shell::after { content:""; position:absolute; width:12px; height:12px; border-radius:50%; background:#f6d002; box-shadow:80px 18px #fff,120px 80px #f6d002,22px 92px #fff; }
.board-shell::before { left:13%; top:16%; }.board-shell::after { right:22%; bottom:22%; }
.board-chip { position:absolute; left:34%; top:32%; width:34%; height:36%; border-radius:.5rem; background:linear-gradient(145deg,#292331,#07050a); box-shadow:0 8px 12px rgba(10,4,20,.35); }
.trace { position:absolute; height:3px; border-radius:4px; background:rgba(255,255,255,.72); transform-origin:left; }.trace-a{left:12%;top:54%;width:25%;transform:rotate(-14deg)}.trace-b{left:61%;top:25%;width:25%;transform:rotate(35deg)}.trace-c{left:58%;bottom:18%;width:28%;transform:rotate(-18deg)}

/* Peça impressa */
.printed-form { position:absolute; inset:8% 18%; border-radius:48% 52% 50% 45%; background:conic-gradient(from 30deg,#a67bff,#592698,#f8ddff,#7c48c7,#a67bff); box-shadow:inset 10px 8px 18px rgba(255,255,255,.55),inset -12px -12px 20px rgba(47,10,91,.34); transform:rotate(20deg); }
.printed-form::before { content:""; position:absolute; inset:24%; border-radius:50%; background:#f8f7fb; box-shadow:inset 7px 7px 14px rgba(79,35,130,.24); }
.printed-form i { position:absolute; right:-14%; top:19%; width:37%; height:37%; border-radius:50%; background:radial-gradient(circle at 35% 30%,#fff,#c7adff 45%,#592698); }

/* Notebook */
.laptop-screen { position:absolute; left:13%; right:13%; top:12%; height:58%; border:8px solid #dddce4; border-radius:1rem; background:linear-gradient(145deg,#211d2c,#08060b); box-shadow:inset 3px 3px 4px #fff,0 10px 18px rgba(44,24,62,.2); transform:perspective(500px) rotateX(-5deg); }
.laptop-screen i,.laptop-screen b,.laptop-screen em { position:absolute; left:13%; height:7px; border-radius:99px; }.laptop-screen i{top:24%;width:58%;background:#f6d002}.laptop-screen b{top:43%;width:72%;background:#8760dc}.laptop-screen em{top:62%;width:43%;background:#2f87ff}
.laptop-base { position:absolute; left:5%; right:5%; bottom:17%; height:23%; clip-path:polygon(10% 0,90% 0,100% 78%,94% 100%,6% 100%,0 78%); background:linear-gradient(160deg,#fff,#c8c6d0); box-shadow:inset 0 -8px 10px #a7a4b0; }

/* Robô */
.robot-head { position:absolute; left:25%; top:10%; width:50%; height:35%; border-radius:35% 35% 44% 44%; background:linear-gradient(145deg,#fff,#d4d2dc); box-shadow:inset -8px -7px 12px #bcb9c5; }
.robot-head::before { content:""; position:absolute; inset:25% 16%; border-radius:999px; background:linear-gradient(145deg,#32145b,#0d0715); }
.robot-head i,.robot-head b { position:absolute; z-index:2; top:43%; width:10px; height:10px; border-radius:50%; background:#5ea2ff; box-shadow:0 0 10px #0066ff; }.robot-head i{left:33%}.robot-head b{right:33%}
.robot-antenna { position:absolute; left:49%; top:0; width:4px; height:16%; background:#592698; }.robot-antenna::after{content:"";position:absolute;left:-5px;top:-5px;width:14px;height:14px;border-radius:50%;background:#f6d002}
.robot-body { position:absolute; left:30%; top:42%; width:40%; height:39%; border-radius:24% 24% 35% 35%; background:linear-gradient(150deg,#fff,#d4d2dc); box-shadow:inset -9px -9px 13px #bcb9c5; }
.robot-body i { position:absolute; left:25%; right:25%; top:24%; height:14%; border-radius:99px; background:linear-gradient(90deg,#592698,#0066ff); }
.robot-wheel { position:absolute; bottom:10%; width:18%; height:22%; border-radius:50%; background:linear-gradient(90deg,#1c1721,#59515f,#120f15); }.wheel-left{left:21%}.wheel-right{right:21%}

@keyframes maker-drift {
  0%,100% { transform: translate3d(0,-5px,0) rotate(-1deg); }
  50% { transform: translate3d(0,10px,18px) rotate(1.5deg); }
}

@media (max-width: 850px) {
  .maker-universe { height:auto; margin-top:5rem; padding:5rem 1rem; overflow:hidden; }
  .maker-stage { position:relative; min-height:0; display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:1rem; perspective:none; }
  .maker-stage::before { inset:0; }
  .maker-core { position:relative; left:auto; top:auto; width:auto; grid-column:1/-1; transform:none; padding:1rem 0 3rem; }
  .maker-core h3 { font-size:clamp(3.2rem,15vw,5rem); }
  .maker-object { position:relative; inset:auto; width:auto; opacity:1; transform:none !important; }
  .maker-float { min-height:16rem; padding:1rem .5rem; border:0; border-radius:0; background:transparent; animation:none; }
  .maker-float::before { inset:0 0 22%; border-radius:2rem; transform:none; }
  .maker-float::after { bottom:19%; }
  .object-visual { height:10rem; }
  .maker-detail { position:relative; top:auto; left:auto; width:auto; margin:.7rem 0 0; opacity:1; transform:none; background:transparent; border:0; box-shadow:none; }
}

@media (max-width: 520px) {
  .maker-stage { grid-template-columns:1fr; }
}

@media (prefers-reduced-motion: reduce) {
  .maker-float { animation:none !important; }
  .maker-object,.object-visual,.maker-detail { transition:none !important; }
}

/* Refinamento final da experiência maker */
@media (min-width: 851px) {
  .maker-universe {
    height: auto;
    min-height: 100svh;
    margin-top: 8rem;
    overflow: clip;
  }

  .maker-stage {
    position: relative;
    top: auto;
    height: max(100svh, 900px);
    min-height: 900px;
    padding-top: 8rem;
    overflow: hidden;
  }

  .maker-core {
    top: 52%;
    width: min(32rem, 34vw);
  }

  .maker-core h3 {
    font-size: clamp(3.6rem, 5.2vw, 6.2rem);
  }

  .maker-object {
    --appear: 1 !important;
    --scroll-y: 0px !important;
    --px: 0px;
    --py: 0px;
    --rx: 0deg;
    --ry: 0deg;
    width: clamp(8rem, 11vw, 11.5rem);
    opacity: 1;
    transform: none !important;
  }

  .maker-float {
    min-height: 14rem;
    padding: .5rem;
    border: 0;
    background: transparent;
    box-shadow: none;
    animation: none !important;
    transition: transform .35s cubic-bezier(.2, .8, .2, 1);
  }

  .maker-float::before,
  .maker-float::after {
    content: none !important;
    display: none !important;
  }

  .object-visual {
    height: 8.5rem;
    transition: transform .35s cubic-bezier(.2, .8, .2, 1), filter .35s ease;
  }

  .maker-object.is-active .maker-float,
  .maker-object.is-active .object-visual,
  .maker-object.is-active .maker-asset {
    transform: none;
  }

  .maker-object:hover .maker-float,
  .maker-object:focus-visible .maker-float {
    transform: translateY(-12px) rotate(1deg);
  }

  .maker-object:hover .object-visual,
  .maker-object:focus-visible .object-visual {
    transform: scale(1.045);
  }

  .maker-gear { left: 6%; top: 30%; }
  .maker-laptop { left: calc(50% - 5.5rem); top: 9rem; }
  .maker-arm { right: 6%; top: 30%; }
  .maker-board { left: 9%; bottom: 3%; }
  .maker-robot { left: calc(50% - 5.5rem); right: auto; bottom: 1%; }
  .maker-print { right: 9%; bottom: 3%; }
}

@media (max-width: 850px) {
  .maker-float::before,
  .maker-float::after {
    content: none !important;
    display: none !important;
  }

  .maker-float {
    background: transparent;
    box-shadow: none;
    animation: none !important;
  }
}

/* Sete tecnologias da seção “Ideias ganham forma”. */
.maker-ai .maker-asset {
  width: 100%;
  height: 100%;
  object-fit: cover;
  border-radius: 50%;
  clip-path: circle(46% at 50% 50%);
  filter: drop-shadow(0 22px 24px rgba(0,102,255,.26));
}

@media (min-width: 851px) {
  .maker-stage {
    height: max(100svh, 980px);
    min-height: 980px;
  }

  .maker-object {
    width: clamp(10rem, 13vw, 14rem);
    height: 16rem;
    transform: translate3d(var(--px), var(--py), 0) rotateX(var(--rx)) rotateY(var(--ry)) !important;
    transition: opacity .25s ease, filter .4s ease, transform .28s cubic-bezier(.2,.8,.2,1);
  }

  .maker-float { min-height: 16rem; }
  .object-visual { height: 10.5rem; }

  .maker-ai { left: calc(50% - 7rem); top: 2%!important; bottom:auto!important; }
  .maker-gear { left: 7%; top: 12%!important; bottom:auto!important; }
  .maker-arm { right: 7%; top: 12%!important; bottom:auto!important; }
  .maker-laptop { left: 4%; top: 43%!important; bottom:auto!important; }
  .maker-robot { left: auto; right: 4%; top: 43%!important; bottom: auto!important; }
  .maker-board { left: 16%; top:auto!important; bottom: 1%!important; }
  .maker-print { right: 16%; top:auto!important; bottom: 1%!important; }

  .maker-core {
    top: 53%;
    width: min(31rem, 32vw);
  }
}

@media (max-width: 850px) {
  .maker-ai { order: 1; }
  .maker-gear { order: 2; }
  .maker-arm { order: 3; }
  .maker-laptop { order: 4; }
  .maker-robot { order: 5; }
  .maker-board { order: 6; }
  .maker-print { order: 7; }
}

/* Normalização óptica: mesma área visual, sem distorcer as proporções. */
.maker-object { --asset-scale: 1; }
.maker-ai { --asset-scale: .78; }
.maker-gear { --asset-scale: .86; }
.maker-arm { --asset-scale: 1.22; }
.maker-board { --asset-scale: 1; }
.maker-print { --asset-scale: 1.3; }
.maker-laptop { --asset-scale: 1.08; }

.maker-asset {
  width:100%!important;
  height:100%!important;
  object-fit:contain;
  transform:translateZ(12px) scale(var(--asset-scale))!important;
}

.maker-object:hover .maker-asset,
.maker-object:focus-visible .maker-asset,
.maker-object.is-active .maker-asset {
  transform:translateZ(28px) rotate(2deg) scale(calc(var(--asset-scale) * 1.04))!important;
}

@media (min-width: 851px) {
  .maker-ai { left:calc(50% - 7rem); top:2%!important; bottom:auto!important; }
  .maker-gear { left:12%; top:18%!important; bottom:auto!important; }
  .maker-arm { right:12%; top:18%!important; bottom:auto!important; }
  .maker-laptop { left:12%; top:auto!important; bottom:4%!important; }
  .maker-board { left:calc(50% - 7rem); top:auto!important; bottom:0!important; }
  .maker-print { right:12%; top:auto!important; bottom:4%!important; }
}

/* Respiro editorial entre o texto institucional e a experiência maker. */
.project-copy{
  margin-bottom:clamp(120px,16vh,200px)!important;
}

.maker-universe{
  margin-top:0!important;
}

@media(max-width:850px){
  .project-copy{margin-bottom:96px!important}
}

/* Correção definitiva dos cartões de tecnologia: todos abrem abaixo do título. */
@media(min-width:851px){
  .maker-universe{min-height:1180px;padding-bottom:120px;overflow:visible}
  .maker-stage{height:1120px!important;min-height:1120px!important;overflow:visible!important}
  .maker-object{height:18rem!important}
  .maker-float{min-height:18rem!important;padding-bottom:1.75rem!important}
  .maker-object .maker-detail,
  .maker-board .maker-detail,
  .maker-print .maker-detail{
    top:calc(100% + .55rem)!important;
    bottom:auto!important;
    min-height:6.25rem;
    padding:1.2rem 1.25rem 1.35rem;
    align-items:center;
    transform:translate(-50%,10px) scale(.97)!important;
  }
  .maker-object:hover .maker-detail,
  .maker-object:focus-visible .maker-detail,
  .maker-object.is-active .maker-detail{
    transform:translate(-50%,0) scale(1)!important;
  }
  .maker-board{bottom:25%!important}
  .maker-print{bottom:25%!important}
  .maker-laptop{bottom:25%!important}
}

@media(max-width:850px){
  .maker-universe{padding-bottom:7rem}
  .maker-float{min-height:21rem;padding-bottom:2rem}
  .maker-detail{min-height:7rem;padding:1.25rem 1.15rem 1.45rem;background:rgba(255,255,255,.94)!important;border:1px solid rgba(89,38,152,.08)!important;border-radius:1.35rem!important;box-shadow:0 18px 42px rgba(55,35,84,.1)!important}
}

/* Refinamento de leitura e usabilidade da trajetória. */
.timeline-experience{
  min-height:760px;
  scroll-margin-top:100px;
  padding-top:190px;
}

.timeline-heading{
  top:52px;
  left:64px;
  right:64px;
  max-width:none;
  padding-bottom:30px;
  border-bottom:1px solid rgba(89,38,152,.1);
}

.timeline-heading h3{
  max-width:720px;
  font-size:clamp(34px,3.8vw,58px);
  line-height:1;
}

.timeline-heading p{
  position:absolute;
  right:0;
  bottom:32px;
  max-width:340px;
  text-align:right;
}

.timeline-orbit{
  left:-330px;
  top:61%;
  width:660px;
  height:660px;
}

.timeline-nav{
  top:61%;
  width:410px;
  height:540px;
}

.timeline-nav button:nth-child(1){left:220px;top:5px}
.timeline-nav button:nth-child(2){left:278px;top:88px}
.timeline-nav button:nth-child(3){left:307px;top:177px}
.timeline-nav button:nth-child(4){left:309px;top:272px}
.timeline-nav button:nth-child(5){left:282px;top:365px}
.timeline-nav button:nth-child(6){left:224px;top:450px}

.timeline-detail{
  left:47%;
  right:7%;
  top:61%;
}

.timeline-date{
  margin-top:18px;
  font-size:clamp(58px,6.5vw,90px);
}

.timeline-detail h4{
  max-width:760px;
  font-size:clamp(32px,3.7vw,54px);
}

.timeline-detail p{
  max-width:720px;
  font-size:clamp(14px,1.15vw,17px);
}

.timeline-controls{margin-top:26px}

.timeline-progress{
  left:47%;
  right:7%;
  bottom:38px;
}

@media(min-width:851px) and (max-width:1150px){
  .timeline-heading p{display:none}
  .timeline-detail{left:50%;right:5%}
  .timeline-progress{left:50%;right:5%}
  .timeline-nav button{width:130px}
}

@media(max-width:850px){
  .timeline-experience{min-height:820px;padding-top:0;scroll-margin-top:86px}
  .timeline-heading{position:relative;top:auto;left:auto;right:auto;padding:34px 28px 26px}
  .timeline-heading p{position:static;max-width:none;text-align:left}
  .timeline-detail{top:390px}
}

/* Linha do tempo orbital e interativa. */
.timeline-experience{
  --timeline-index:0;
  --timeline-x:0px;
  --timeline-y:0px;
  position:relative;
  min-height:680px;
  margin-top:clamp(120px,16vh,190px);
  overflow:hidden;
  border:1px solid rgba(89,38,152,.1);
  border-radius:44px;
  background:
    radial-gradient(circle at 18% 50%,rgba(89,38,152,.1),transparent 32%),
    linear-gradient(135deg,#fbf9fc,#f5f0f8);
  box-shadow:0 34px 90px rgba(58,25,89,.1);
}

.timeline-heading{
  position:absolute;
  z-index:3;
  top:42px;
  left:48px;
  max-width:360px;
}
.timeline-heading .eyebrow{margin-bottom:12px}
.timeline-heading h3{margin:0;font-size:clamp(30px,3.3vw,50px);line-height:.98;letter-spacing:-.055em}
.timeline-heading p{margin:14px 0 0;color:var(--muted);font-size:13px;line-height:1.55}

.timeline-orbit{
  position:absolute;
  left:-360px;
  top:50%;
  width:720px;
  height:720px;
  border:1px solid rgba(89,38,152,.16);
  border-radius:50%;
  transform:translate(var(--timeline-x),calc(-50% + var(--timeline-y))) rotate(calc(var(--timeline-index) * -13deg));
  transition:transform .65s cubic-bezier(.2,.8,.2,1);
}
.timeline-orbit::before,.timeline-orbit::after{content:"";position:absolute;border-radius:50%;pointer-events:none}
.timeline-orbit::before{inset:70px;border:1px dashed rgba(89,38,152,.08)}
.timeline-orbit::after{inset:150px;background:radial-gradient(circle,rgba(246,208,2,.14),transparent 68%)}

.timeline-nav{
  position:absolute;
  z-index:4;
  left:0;
  top:50%;
  width:390px;
  height:560px;
  transform:translate(var(--timeline-x),calc(-50% + var(--timeline-y)));
  transition:transform .35s ease;
}
.timeline-nav button{
  position:absolute;
  width:150px;
  padding:10px 12px;
  border:0;
  background:transparent;
  color:#a49aa9;
  text-align:left;
  cursor:pointer;
  opacity:.5;
  transition:color .35s,opacity .35s,transform .45s cubic-bezier(.2,.8,.2,1);
}
.timeline-nav button::before{content:"";position:absolute;left:-9px;top:18px;width:6px;height:6px;border-radius:50%;background:#cfc5d5;box-shadow:0 0 0 5px rgba(255,255,255,.7)}
.timeline-nav b,.timeline-nav span{display:block}
.timeline-nav b{font-size:25px;letter-spacing:-.04em}
.timeline-nav span{margin-top:2px;font-size:9px;text-transform:uppercase;letter-spacing:.08em}
.timeline-nav button:nth-child(1){left:238px;top:18px}
.timeline-nav button:nth-child(2){left:292px;top:108px}
.timeline-nav button:nth-child(3){left:315px;top:206px}
.timeline-nav button:nth-child(4){left:315px;top:312px}
.timeline-nav button:nth-child(5){left:288px;top:414px}
.timeline-nav button:nth-child(6){left:230px;top:505px}
.timeline-nav button.active{color:#17131D;opacity:1;transform:translateX(24px) scale(1.08)}
.timeline-nav button.active::before{background:#F6D002;box-shadow:0 0 0 7px rgba(246,208,2,.18)}
.timeline-nav button:hover,.timeline-nav button:focus-visible{color:#592698;opacity:1;outline:none}

.timeline-detail{
  position:absolute;
  z-index:3;
  left:44%;
  right:8%;
  top:50%;
  transform:translateY(-50%);
  transition:opacity .25s,transform .35s;
}
.timeline-detail.changed{animation:timelineDetailIn .5s cubic-bezier(.2,.8,.2,1)}
@keyframes timelineDetailIn{from{opacity:.25;transform:translateY(calc(-50% + 18px))}to{opacity:1;transform:translateY(-50%)}}
.timeline-count{display:block;color:#8d8295;font-size:11px;font-weight:700;letter-spacing:.12em}
.timeline-date{display:block;margin:15px 0 8px;color:#592698;font-size:clamp(52px,7vw,96px);line-height:.86;letter-spacing:-.07em}
.timeline-detail h4{margin:0 0 18px;font-size:clamp(30px,4vw,58px);line-height:.96;letter-spacing:-.055em}
.timeline-subtitle{display:block;max-width:650px;margin:-4px 0 14px;color:#592698;font-size:clamp(13px,1.15vw,17px);line-height:1.4}
.timeline-detail p{max-width:650px;margin:0;color:#675e6e;font-size:clamp(14px,1.35vw,18px);line-height:1.7}
.timeline-controls{display:flex;gap:10px;margin-top:32px}
.timeline-controls button{width:46px;height:46px;border:1px solid rgba(89,38,152,.16);border-radius:50%;background:#fff;color:#592698;font-size:19px;font-weight:800;cursor:pointer;transition:.25s}
.timeline-controls button:hover,.timeline-controls button:focus-visible{background:#F6D002;transform:translateY(-2px);outline:3px solid rgba(89,38,152,.13)}
.timeline-controls button:disabled{opacity:.3;cursor:not-allowed;transform:none}
.timeline-progress{position:absolute;z-index:4;left:44%;right:8%;bottom:40px;height:3px;overflow:hidden;border-radius:3px;background:#e5dce9}
.timeline-progress i{display:block;width:16.666%;height:100%;background:linear-gradient(90deg,#592698,#F6D002);transition:width .55s cubic-bezier(.2,.8,.2,1)}

/* Engrenagens da identidade STEM Criar — substituem os anéis do hero. */
.hero-machine{isolation:isolate;transform:translate3d(var(--hero-x,0),var(--hero-y,0),0) rotate(var(--hero-rotate,0)) scale(var(--hero-scale,1));transition:transform .35s cubic-bezier(.2,.8,.2,1)}
.hero-machine::before{content:"";position:absolute;width:70%;aspect-ratio:1;border-radius:50%;background:radial-gradient(circle,rgba(255,255,255,.96) 0 30%,rgba(233,218,246,.72) 31% 52%,transparent 70%);filter:drop-shadow(0 32px 55px rgba(89,38,152,.18));transform:translate(var(--mx,0),var(--my,0));transition:transform .25s ease}
.machine-field{position:absolute;width:85%;aspect-ratio:1;border-radius:50%;background:conic-gradient(from 30deg,transparent,rgba(89,38,152,.09),transparent 24%,rgba(246,208,2,.1),transparent 52%,rgba(89,38,152,.08),transparent);animation:fieldBreathe 7s ease-in-out infinite;pointer-events:none}
.machine-halo{position:absolute;border-radius:50%;pointer-events:none;transition:transform .25s ease}
.halo-one{width:74%;aspect-ratio:1;border:1px solid rgba(89,38,152,.13);box-shadow:inset 0 0 40px rgba(89,38,152,.06),0 0 0 28px rgba(89,38,152,.018);animation:haloPulse 5s ease-in-out infinite}
.halo-two{width:93%;aspect-ratio:1;border:1px dashed rgba(89,38,152,.17);animation:spin 42s linear infinite reverse}
.hero-logo{width:57%;z-index:4;filter:drop-shadow(0 28px 38px rgba(89,38,152,.18));transition:transform .18s ease;animation:logoFloat 4.8s ease-in-out infinite}
.brand-gear{position:absolute;z-index:3;object-fit:contain;mix-blend-mode:multiply;filter:contrast(1.08) saturate(1.12) drop-shadow(0 20px 24px rgba(38,14,60,.15));will-change:transform;pointer-events:none}
.brand-gear-purple{width:27%;right:5%;top:4%;animation:gearPurple 13s linear infinite}
.brand-gear-yellow{width:20%;left:5%;bottom:8%;animation:gearYellow 9s linear infinite reverse}
.energy-dot{position:absolute;z-index:5;width:12px;height:12px;border-radius:50%;background:#fff;box-shadow:0 0 0 7px rgba(246,208,2,.18),0 0 26px rgba(246,208,2,.7);pointer-events:none}
.energy-dot-a{right:27%;top:22%;animation:dotOrbitA 6s ease-in-out infinite}
.energy-dot-b{left:25%;bottom:21%;background:var(--p);box-shadow:0 0 0 7px rgba(89,38,152,.12),0 0 24px rgba(89,38,152,.55);animation:dotOrbitB 7s ease-in-out infinite}
.machine-caption{z-index:7;transition:background .25s,color .25s,transform .25s,box-shadow .25s}
.hero-machine:hover .machine-caption,.hero-machine:focus-visible .machine-caption{transform:translateY(-4px);box-shadow:0 14px 28px rgba(89,38,152,.13)}
.hero-machine:hover .brand-gear-purple,.hero-machine:focus-visible .brand-gear-purple{animation-duration:4.8s}
.hero-machine:hover .brand-gear-yellow,.hero-machine:focus-visible .brand-gear-yellow{animation-duration:3.2s}
.hero-machine.is-active .brand-gear-purple{animation-duration:2.8s;filter:contrast(1.12) saturate(1.2) drop-shadow(0 0 28px rgba(89,38,152,.35))}
.hero-machine.is-active .brand-gear-yellow{animation-duration:2s;filter:contrast(1.1) saturate(1.18) drop-shadow(0 0 26px rgba(246,208,2,.52))}
.hero-machine.is-active .hero-logo{animation:logoActive 1.6s ease-in-out infinite}
.hero-machine.is-active .machine-field{animation-duration:2.4s}
@keyframes gearPurple{to{transform:translate3d(var(--gear-x,0),var(--gear-y,0),0) rotate(calc(360deg + var(--gear-tilt,0deg)))}}
@keyframes gearYellow{to{transform:translate3d(var(--gear-x,0),var(--gear-y,0),0) rotate(calc(360deg - var(--gear-tilt,0deg)))}}
@keyframes logoFloat{0%,100%{margin-top:0}50%{margin-top:-10px}}
@keyframes logoActive{0%,100%{filter:drop-shadow(0 28px 38px rgba(89,38,152,.18))}50%{filter:drop-shadow(0 18px 42px rgba(89,38,152,.38));transform:scale(1.035)}}
@keyframes fieldBreathe{0%,100%{transform:scale(.96) rotate(0);opacity:.55}50%{transform:scale(1.04) rotate(18deg);opacity:1}}
@keyframes haloPulse{0%,100%{transform:scale(.98);opacity:.65}50%{transform:scale(1.035);opacity:1}}
@keyframes dotOrbitA{0%,100%{transform:translate(0,0) scale(.8)}50%{transform:translate(16px,-12px) scale(1.25)}}
@keyframes dotOrbitB{0%,100%{transform:translate(0,0) scale(.85)}50%{transform:translate(-14px,10px) scale(1.15)}}

/* Mais respiro para as descrições dos ícones. */
.maker-detail{min-height:5.4rem;padding:1.05rem 1.2rem 1.2rem;display:flex;align-items:flex-start;justify-content:center;line-height:1.6}
@media(min-width:851px){
  .maker-stage{min-height:1040px;height:max(108svh,1040px)}
  .maker-object{height:17.5rem}
  .maker-float{min-height:17.5rem;padding-bottom:1.5rem}
  .maker-board,.maker-print{bottom:4%!important}
}

/* Nove marcos cronológicos, preservando a composição orbital. */
@media(min-width:1401px){
  .timeline-nav{height:620px}
  .timeline-nav button:nth-child(1){left:210px;top:0}
  .timeline-nav button:nth-child(2){left:255px;top:68px}
  .timeline-nav button:nth-child(3){left:290px;top:136px}
  .timeline-nav button:nth-child(4){left:315px;top:204px}
  .timeline-nav button:nth-child(5){left:325px;top:272px}
  .timeline-nav button:nth-child(6){left:315px;top:340px}
  .timeline-nav button:nth-child(7){left:290px;top:408px}
  .timeline-nav button:nth-child(8){left:255px;top:476px}
  .timeline-nav button:nth-child(9){left:210px;top:544px}
  .timeline-nav b{font-size:21px}
  .timeline-nav span{font-size:8px}
  .timeline-detail h4{font-size:clamp(28px,3.3vw,48px)}
  .timeline-detail p{font-size:clamp(13px,1.05vw,16px);line-height:1.55}
  .timeline-controls{margin-top:22px}
}

/* Feedback visual durante a atualização dos indicadores. */
.metrics strong{font-variant-numeric:tabular-nums;transition:transform .28s ease,color .28s ease,text-shadow .28s ease}
.metrics div.is-counting strong{color:#6d2bc2;transform:translateY(-3px);text-shadow:0 12px 24px rgba(89,38,152,.12)}
.metrics div.is-counted strong{animation:metricSettle .5s cubic-bezier(.2,.8,.2,1)}
@keyframes metricSettle{0%{transform:scale(.96)}55%{transform:scale(1.045)}100%{transform:scale(1)}}

@media(max-width:900px){
  .hero-logo{width:56%}
  .brand-gear-purple{width:25%;right:4%;top:3%}
  .brand-gear-yellow{width:20%;left:6%;bottom:4%}
  .machine-caption{bottom:0}
}

@media(max-width:1400px){
  .timeline-experience{min-height:680px;padding-top:0}
  .timeline-orbit{display:none}
  .timeline-nav{position:relative;left:auto;top:auto;width:auto;height:auto;display:flex;gap:10px;margin:40px 40px 0;padding:4px 8px 14px;overflow-x:auto;transform:none;scrollbar-width:none}
  .timeline-nav::-webkit-scrollbar{display:none}
  .timeline-nav button,.timeline-nav button:nth-child(n){position:relative;left:auto;top:auto;flex:0 0 145px;padding:12px 14px;border-radius:18px;background:rgba(255,255,255,.72)}
  .timeline-nav button::before{display:none}
  .timeline-nav button.active{background:#592698;color:#fff;transform:none}
  .timeline-nav b{font-size:21px}
  .timeline-detail{left:48px;right:48px;top:170px;transform:none;width:auto;max-width:760px}
  .timeline-detail.changed{animation:timelineDetailMobile .45s ease}
  .timeline-progress{left:48px;right:48px;bottom:34px}
}

@media(max-width:850px){
  .timeline-experience{min-height:680px;border-radius:30px}
  .timeline-orbit{display:none}
  .timeline-nav{position:relative;left:auto;top:auto;width:auto;height:auto;display:flex;gap:8px;margin:28px 20px 0;padding:4px 8px 12px;overflow-x:auto;transform:none;scrollbar-width:none}
  .timeline-nav::-webkit-scrollbar{display:none}
  .timeline-nav button,.timeline-nav button:nth-child(n){position:relative;left:auto;top:auto;flex:0 0 125px;padding:12px;border-radius:18px;background:rgba(255,255,255,.7)}
  .timeline-nav button::before{display:none}
  .timeline-nav button.active{background:#592698;color:#fff;transform:none}
  .timeline-nav b{font-size:20px}
  .timeline-detail{left:28px;right:28px;top:155px;transform:none}
  .timeline-detail.changed{animation:timelineDetailMobile .45s ease}
  @keyframes timelineDetailMobile{from{opacity:.2;transform:translateY(15px)}to{opacity:1;transform:none}}
  .timeline-date{font-size:58px}
  .timeline-progress{left:28px;right:28px;bottom:28px}
}

/* Deve permanecer por último: reserva espaço real para os textos inferiores. */
@media(min-width:851px){
  .maker-board{
    left:10%!important;
    right:auto!important;
    top:auto!important;
    bottom:17%!important;
  }
  .maker-laptop{
    left:calc(50% - 7rem)!important;
    right:auto!important;
    top:auto!important;
    bottom:4%!important;
  }
  .maker-print{
    left:auto!important;
    right:10%!important;
    top:auto!important;
    bottom:17%!important;
  }
}

/* Galeria em deck — identidade STEM Criar */
#galeria.gallery{position:relative;display:block;padding:15vh 0 12vh;overflow:hidden;background:radial-gradient(circle at 50% 51%,rgba(246,208,2,.12),transparent 23%),linear-gradient(180deg,#fbf9fd 0,#fff 34%,#f6f0fb 100%)}
#galeria.gallery:before,#galeria.gallery:after{content:"";position:absolute;border-radius:50%;pointer-events:none;filter:blur(1px)}
#galeria.gallery:before{width:260px;height:260px;left:-110px;top:28%;background:rgba(89,38,152,.08)}
#galeria.gallery:after{width:180px;height:180px;right:-70px;bottom:12%;background:rgba(246,208,2,.18)}
#galeria .gallery-title{position:relative;top:auto;z-index:2;width:min(720px,88vw);margin:0 auto;text-align:center}
#galeria .gallery-title .eyebrow{margin-bottom:14px}
#galeria .gallery-title h2{margin-bottom:20px;font-size:clamp(48px,6vw,82px)}
#galeria .gallery-title p{max-width:520px;margin:0 auto;color:var(--muted)}
#galeria .gallery-count{margin-top:18px;background:rgba(89,38,152,.08);color:var(--p)}
#galeria .gallery-content{position:relative;z-index:2;margin-top:42px}
#galeria .gallery-filters{width:min(1120px,92vw);margin:0 auto;justify-content:flex-start;padding:4px 4px 24px;scrollbar-width:none}
#galeria .gallery-filters::-webkit-scrollbar{display:none}
#galeria .gallery-filters button{padding:11px 17px;border-color:rgba(89,38,152,.2);background:rgba(255,255,255,.88);backdrop-filter:blur(10px);color:var(--p);box-shadow:0 6px 18px rgba(89,38,152,.04)}
#galeria .gallery-filters button:hover,#galeria .gallery-filters button:focus-visible,#galeria .gallery-filters button.active{background:var(--p);border-color:var(--p);color:#fff;box-shadow:0 10px 24px rgba(89,38,152,.2)}
#municipalityGallery.gallery-grid{display:flex;align-items:center;gap:clamp(8px,1.5vw,22px);width:100%;min-height:470px;padding:54px calc(50vw - min(34vw,290px)) 66px;overflow-x:auto;overflow-y:visible;scroll-snap-type:x mandatory;scroll-padding-inline:50%;overscroll-behavior-inline:contain;scrollbar-width:none;cursor:grab;perspective:1200px}
#municipalityGallery.gallery-grid::-webkit-scrollbar{display:none}
#municipalityGallery.gallery-grid:active{cursor:grabbing}
#municipalityGallery .municipality-photo{flex:0 0 clamp(230px,29vw,390px);margin:0;border-radius:28px;scroll-snap-align:center;overflow:hidden;background:#fff;opacity:.64;transform:translateY(12px) scale(.86) rotateY(0deg);transform-origin:center;box-shadow:0 18px 42px rgba(44,25,60,.14);transition:transform .55s cubic-bezier(.2,.9,.2,1),opacity .45s,box-shadow .45s;will-change:transform}
#municipalityGallery .municipality-photo:not(.active):has(+ .municipality-photo.active){transform:translateY(10px) scale(.91) rotateY(7deg)}
#municipalityGallery .municipality-photo.active + .municipality-photo{transform:translateY(10px) scale(.91) rotateY(-7deg)}
#municipalityGallery .municipality-photo.active{z-index:5;opacity:1;transform:translateY(-18px) scale(1.08);box-shadow:0 32px 72px rgba(89,38,152,.26),0 0 0 5px rgba(246,208,2,.72)}
#municipalityGallery .municipality-photo a{aspect-ratio:4/3;background:#e9e1f0}
#municipalityGallery .municipality-photo.active a{aspect-ratio:4/4.6}
#municipalityGallery .municipality-photo img{filter:saturate(.84) contrast(.98)}
#municipalityGallery .municipality-photo.active img{filter:saturate(1.08) contrast(1.02)}
#municipalityGallery .municipality-photo figcaption{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:15px 17px 17px;background:#fff}
#municipalityGallery .municipality-photo figcaption b{color:var(--p);font-size:12px}
#municipalityGallery .municipality-photo figcaption small{color:var(--muted);font-size:9px;text-transform:uppercase;letter-spacing:.08em}
#municipalityGallery .municipality-photo a span{opacity:1;transform:none;background:var(--y);color:var(--p)}
#galeria .gallery-controls{display:flex;align-items:center;justify-content:center;gap:13px;margin-top:2px}
#galeria .gallery-controls button{width:48px;height:48px;border:1px solid rgba(89,38,152,.22);border-radius:50%;background:#fff;color:var(--p);font:700 20px Montserrat;cursor:pointer;box-shadow:0 10px 24px rgba(89,38,152,.09);transition:.25s}
#galeria .gallery-controls button:hover,#galeria .gallery-controls button:focus-visible{background:var(--p);border-color:var(--p);color:#fff;transform:translateY(-3px);outline:none}
#galeria .gallery-controls button:disabled{opacity:.28;cursor:not-allowed;transform:none}
#galeria .gallery-controls span{min-width:76px;text-align:center;color:var(--muted);font-size:11px;font-weight:700}
@media(max-width:700px){#galeria.gallery{padding-top:11vh}#galeria .gallery-filters{padding-left:6vw;padding-right:6vw;width:100%}#municipalityGallery.gallery-grid{min-height:410px;padding-top:44px;padding-left:calc(50vw - 126px);padding-right:calc(50vw - 126px);gap:10px}#municipalityGallery .municipality-photo{flex-basis:252px;border-radius:24px}#municipalityGallery .municipality-photo.active{transform:translateY(-10px) scale(1.02)}#municipalityGallery .municipality-photo.active a{aspect-ratio:4/4.5}}
@media(prefers-reduced-motion:reduce){#municipalityGallery .municipality-photo{transition:none}}

/* Acabamento das extremidades e da sombra do deck */
#galeria .gallery-content{margin-top:52px}
#galeria .gallery-filters{width:100%;padding:6px max(6vw,28px) 30px;scroll-padding-inline:max(6vw,28px)}
#galeria .gallery-filters button:first-child{margin-left:0}
#galeria .gallery-filters button:last-child{margin-right:0}
#municipalityGallery.gallery-grid{min-height:540px;padding-top:64px;padding-bottom:118px;scroll-padding-inline:50%}
#municipalityGallery .municipality-photo{box-shadow:0 22px 52px rgba(44,25,60,.16)}
#municipalityGallery .municipality-photo.active{box-shadow:0 38px 82px rgba(89,38,152,.28),0 0 0 5px rgba(246,208,2,.72)}
#galeria .gallery-controls{position:relative;z-index:4;margin-top:26px;padding-bottom:12px}
@media(max-width:700px){#galeria .gallery-filters{padding-inline:6vw}#municipalityGallery.gallery-grid{min-height:470px;padding-top:54px;padding-bottom:102px}#galeria .gallery-controls{margin-top:20px}}

/* Ajustes finais de leitura e alinhamento. */
.maker-object .maker-word{margin-top:.9rem}
@media(min-width:701px){
  #galeria .gallery-filters{justify-content:center;padding-inline:max(4vw,28px)}
}

/* Contatos e localização no rodapé. */
.footer-contact{display:grid;gap:12px;max-width:460px}
.footer-contact a{width:max-content;color:#fff;font-weight:800}
.footer-contact a:hover,.footer-contact a:focus-visible{color:var(--y);outline:none}
.footer-contact address{margin:0;color:#e0d3e9;font-size:12px;font-style:normal;line-height:1.65}
.footer-top{white-space:nowrap}
@media(max-width:900px){.footer-contact{max-width:100%}}

.footer-brands{display:flex;align-items:center;gap:22px;min-width:300px}
.footer-brands .footer-criar-logo{width:180px;flex:0 0 auto}
.footer-brands .footer-est-logo{width:210px;max-height:82px;object-fit:contain;filter:none}
.footer-brands span{width:1px;height:64px;flex:0 0 auto;background:rgba(255,255,255,.28)}
.footer-institutional{max-width:560px}
@media(min-width:901px){footer{grid-template-columns:minmax(370px,1.1fr) minmax(360px,1.25fr) minmax(320px,1fr) auto}}
@media(max-width:900px){.footer-brands{min-width:0;flex-wrap:wrap}.footer-brands .footer-est-logo{width:min(210px,56vw)}}
