/* Fortuna ecosystem v4 — nine businesses, semantic scroll motion and rounded system surfaces. */
html { scroll-behavior: smooth; }

.preloader__segments { grid-template-columns: repeat(9, 1fr); }
.home-route-transition{position:fixed;z-index:980;inset:0;display:grid;place-content:center;justify-items:center;gap:20px;color:white;background:#080713;pointer-events:none;transform:translateY(102%);transition:transform .52s cubic-bezier(.77,0,.18,1)}.home-route-transition.is-active{transform:none}.home-route-transition strong{font-size:clamp(58px,10vw,142px);line-height:.8;letter-spacing:-.095em}.home-route-transition>span{color:#56e9f1;font:500 9px/1 "Azeret Mono",monospace;letter-spacing:.18em;text-transform:uppercase}.home-route-transition>i{width:min(360px,70vw);height:2px;background:rgba(255,255,255,.12);overflow:hidden}.home-route-transition>i b{display:block;width:100%;height:100%;background:linear-gradient(90deg,#6d3cff,#16b8ff);transform:translateX(-100%)}.home-route-transition.is-active>i b{animation:home-route-load .48s ease forwards}@keyframes home-route-load{to{transform:none}}
.mega-menu { max-height: calc(100svh - var(--mega-top, 104px)); overflow-y: auto; }
.mega-menu__systems a { min-height: 86px; }

.capital-ledger,
.automation-flow,
.legal-document,
.platform-ui,
.creative-op,
.franchise-network__hub,
.government-runtime { border-radius: 22px; overflow: hidden; }
.vertical__copy > a { display: inline-flex; min-height: 42px; align-items: center; padding: 0 16px; border: 1px solid currentColor; border-radius: 13px; }

.ecosystem-transition-v4 { position: fixed; inset: 0; z-index: 180; display: grid; place-content: center; color: var(--paper); background: var(--night); opacity: 0; pointer-events: none; transform: translateY(100%); transition: opacity 180ms ease, transform 680ms cubic-bezier(.16, 1, .3, 1); }
.ecosystem-transition-v4.is-active { opacity: 1; pointer-events: auto; transform: translateY(0); }
.ecosystem-transition-v4 span { color: var(--cyan); font: 500 8px/1 var(--mono); letter-spacing: .18em; text-align: center; }
.ecosystem-transition-v4 strong { max-width: 70vw; margin: 18px 0 28px; font-size: clamp(2.2rem, 6vw, 6.4rem); font-weight: 400; letter-spacing: -.06em; text-align: center; }
.ecosystem-transition-v4 div { display: grid; width: min(520px, 74vw); grid-template-columns: repeat(9, 1fr); gap: 5px; }
.ecosystem-transition-v4 i { height: 3px; overflow: hidden; background: oklch(95% .02 275 / .14); }
.ecosystem-transition-v4 i::after { display: block; width: 100%; height: 100%; content: ""; background: linear-gradient(90deg, var(--violet), var(--blue), var(--cyan)); transform: translateX(-105%); }
.ecosystem-transition-v4.is-active i::after { animation: v4-route-bar 460ms cubic-bezier(.16, 1, .3, 1) both; animation-delay: calc(var(--route-order, 0) * 35ms); }

/* Creative is represented by its actual operating model, not unrelated portfolio photography. */
.creative-operations-home {
  position: absolute;
  z-index: 4;
  left: var(--margin);
  bottom: 92px;
  display: grid;
  width: min(46%, 650px);
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 10px;
}
.creative-op {
  position: relative;
  display: grid;
  min-height: 154px;
  align-content: space-between;
  padding: 18px;
  border: 1px solid oklch(32% 0.08 285 / .15);
  background: oklch(99% .006 285 / .92);
  box-shadow: 0 18px 54px oklch(30% .08 285 / .08);
}
.creative-op b { color: oklch(48% .23 292); font: 500 7px/1 var(--mono); letter-spacing: .1em; }
.creative-op strong { max-width: 12ch; font-size: 14px; line-height: 1.15; }
.creative-op span { color: var(--muted-light); font: 500 7px/1.45 var(--mono); }
.creative-op i { position: absolute; right: 16px; bottom: 14px; left: 16px; height: 2px; overflow: hidden; background: oklch(35% .04 285 / .1); }
.creative-op i::after { display: block; width: 42%; height: 100%; content: ""; background: linear-gradient(90deg, var(--violet), var(--blue), var(--cyan)); transform: translateX(-120%); }
.vertical-creative.is-v4-active .creative-op i::after { animation: v4-load 3.4s cubic-bezier(.16, 1, .3, 1) infinite; }
.vertical-creative.is-v4-active .creative-op:nth-child(2) i::after { animation-delay: .28s; }
.vertical-creative.is-v4-active .creative-op:nth-child(3) i::after { animation-delay: .56s; }
.js-v4 .creative-op { opacity: 0; transform: translateY(24px); transition: opacity 520ms ease, transform 780ms cubic-bezier(.16, 1, .3, 1); }
.js-v4 .vertical-creative.is-v4-active .creative-op { opacity: 1; transform: translateY(0); transition-delay: calc(var(--motion-order, 0) * 90ms); }

/* 08 — the franchise network scales Academy methodology and IA na Prática modules. */
.vertical-franchising { min-height: 960px; background: radial-gradient(circle at 28% 50%, oklch(80% .13 300 / .22), transparent 31%), var(--paper); }
.vertical-franchising .vertical__copy { grid-column: 7 / 13; }
.vertical-franchising .vertical__brand strong { color: oklch(49% .26 302); }
.franchise-network { position: relative; grid-column: 1 / 7; align-self: center; height: 570px; margin: 110px 0 90px var(--margin); border: 1px solid var(--line-light); border-radius: 32px; background-image: linear-gradient(var(--grid-light) 1px, transparent 1px), linear-gradient(90deg, var(--grid-light) 1px, transparent 1px); background-size: 44px 44px; overflow: hidden; }
.franchise-network::before { position: absolute; inset: 15%; border: 1px dashed oklch(53% .22 302 / .24); border-radius: 50%; content: ""; }
.franchise-network svg { position: absolute; inset: 0; width: 100%; height: 100%; }
.franchise-network path { fill: none; stroke: oklch(52% .23 302); stroke-width: 1.4; stroke-dasharray: 7 12; vector-effect: non-scaling-stroke; }
.franchise-network__hub { position: absolute; top: 50%; left: 50%; z-index: 3; display: grid; width: 178px; height: 142px; place-content: center; justify-items: center; border: 1px solid oklch(49% .24 302); background: var(--paper); box-shadow: 0 24px 70px oklch(45% .2 302 / .18); transform: translate(-50%, -50%); }
.franchise-network__hub small,
.franchise-network__hub span { color: oklch(45% .2 302); font: 500 7px/1 var(--mono); letter-spacing: .1em; }
.franchise-network__hub strong { margin: 12px 0; font-size: 20px; font-weight: 500; }
.school-node { position: absolute; z-index: 4; display: grid; width: 74px; height: 40px; place-items: center; border: 1px solid oklch(50% .22 302 / .62); border-radius: 14px; background: var(--paper); color: oklch(40% .2 302); font: normal 500 7px/1 var(--mono); }
.school-node--1 { top: 15%; left: 10%; }.school-node--2 { top: 14%; right: 8%; }.school-node--3 { right: 7%; bottom: 14%; }.school-node--4 { bottom: 13%; left: 9%; }
.franchise-path,
.government-flow { position: absolute; right: var(--margin); bottom: 34px; left: var(--margin); z-index: 4; display: flex; align-items: center; gap: 18px; font: 500 8px/1 var(--mono); letter-spacing: .06em; }
.franchise-path i,
.government-flow i { flex: 1; height: 1px; overflow: hidden; background: var(--line-light); }
.vertical-franchising.is-v4-active .franchise-network path { animation: v4-dash 14s linear infinite; }
.vertical-franchising.is-v4-active .school-node { animation: v4-node 4.4s ease-in-out infinite; }
.vertical-franchising.is-v4-active .school-node--2 { animation-delay: .55s; }.vertical-franchising.is-v4-active .school-node--3 { animation-delay: 1.1s; }.vertical-franchising.is-v4-active .school-node--4 { animation-delay: 1.65s; }
.js-v4 .franchise-network,
.js-v4 .government-runtime { opacity: .25; scale: .965; transition: opacity 620ms ease, scale 920ms cubic-bezier(.16, 1, .3, 1); }
.js-v4 .vertical-franchising.is-v4-active .franchise-network,
.js-v4 .vertical-government.is-v4-active .government-runtime { opacity: 1; scale: 1; }

/* 09 — public technology with status language grounded in the GovON source. */
.vertical-government { min-height: 940px; background: radial-gradient(circle at 75% 45%, oklch(30% .13 215 / .26), transparent 34%), var(--night); }
.vertical-government .vertical__copy { grid-column: 1 / 6; }
.vertical-government .vertical__brand strong { color: oklch(72% .17 205); }
.government-runtime { position: relative; grid-column: 6 / 13; align-self: center; min-height: 570px; margin-right: calc(var(--margin) + 96px); border: 1px solid oklch(82% .12 215 / .24); background: oklch(13% .035 240 / .86); box-shadow: 0 30px 100px oklch(65% .15 215 / .1); }
.government-runtime::after { position: absolute; inset: 0; content: ""; pointer-events: none; background: linear-gradient(110deg, transparent 34%, oklch(78% .14 205 / .08) 50%, transparent 66%); transform: translateX(-120%); }
.government-runtime > .v3-live-signal { display: none; }
.vertical-government.is-v4-active .government-runtime::after { animation: v4-scan 5.2s ease-in-out infinite; }
.government-runtime__head { display: flex; justify-content: space-between; padding: 22px; border-bottom: 1px solid var(--line-dark); color: var(--muted-dark); font: 500 8px/1 var(--mono); letter-spacing: .08em; }
.government-runtime__head b { color: var(--cyan); }
.government-runtime__protocol { position: relative; display: grid; min-height: 250px; place-content: center; justify-items: center; border-bottom: 1px solid var(--line-dark); }
.government-runtime__protocol small { color: var(--cyan); font: 500 8px/1 var(--mono); letter-spacing: .12em; }
.government-runtime__protocol strong { margin-top: 18px; font-size: clamp(1.8rem, 3vw, 3.6rem); font-weight: 400; letter-spacing: -.055em; }
.government-runtime__protocol i { width: 68%; height: 3px; margin-top: 28px; overflow: hidden; background: oklch(90% .04 215 / .1); }
.government-runtime__protocol i::after { display: block; width: 34%; height: 100%; content: ""; background: linear-gradient(90deg, var(--blue), var(--cyan)); transform: translateX(-110%); }
.vertical-government.is-v4-active .government-runtime__protocol i::after { animation: v4-load 2.8s cubic-bezier(.16, 1, .3, 1) infinite; }
.government-runtime ul { display: grid; margin: 0; padding: 0; list-style: none; }
.government-runtime li { display: grid; min-height: 72px; grid-template-columns: 40px 1fr auto; align-items: center; gap: 12px; padding: 0 22px; border-bottom: 1px solid var(--line-dark); }
.government-runtime li b { color: var(--cyan); font: 500 8px var(--mono); }.government-runtime li span { font: 500 10px var(--mono); }.government-runtime li em { color: var(--cyan); font: normal 500 7px var(--mono); letter-spacing: .1em; }
.government-flow { color: var(--muted-dark); }.government-flow i { background: var(--line-dark); }

/* Continuous scroll choreography: a small counter-movement keeps every chapter alive. */
.vertical.has-entered .vertical__copy { translate: 0 var(--scroll-shift, 0px); }
.vertical :is(.neural-field, .creative-type, .capital-ledger, .legal-document, .commerce-loop, .automation-flow, .academy-pages, .franchise-network, .government-runtime) { translate: 0 var(--scroll-shift-inverse, 0px); will-change: translate; }
.vertical__copy,
.vertical :is(.neural-field, .creative-type, .capital-ledger, .legal-document, .commerce-loop, .automation-flow, .academy-pages, .franchise-network, .government-runtime) { transition: translate 90ms linear; }

.pnode--8 { top: 20%; left: 42%; }.pnode--9 { right: 6%; bottom: 34%; }

@keyframes v4-load { 0%, 10% { transform: translateX(-120%); } 72%, 100% { transform: translateX(320%); } }
@keyframes v4-dash { to { stroke-dashoffset: -190; } }
@keyframes v4-node { 0%, 100% { box-shadow: 0 0 0 0 transparent; transform: translateY(0); } 50% { box-shadow: 0 0 0 8px oklch(54% .22 302 / .07); transform: translateY(-5px); } }
@keyframes v4-scan { 0%, 18% { transform: translateX(-120%); } 76%, 100% { transform: translateX(120%); } }
@keyframes v4-route-bar { to { transform: translateX(0); } }

@media (max-width: 840px) {
  .preloader__segments { grid-template-columns: repeat(3, 1fr); }
  .creative-operations-home,
  .franchise-network,
  .government-runtime { position: relative; inset: auto; order: 2; width: 100%; margin: 48px 0 0; }
  .creative-operations-home { grid-template-columns: 1fr; }
  .creative-op { min-height: 112px; }
  .vertical-creative { min-height: 1320px !important; }
  .franchise-network { min-height: 0; height: 520px; }
  .government-runtime { min-height: 560px; }
  .franchise-path,
  .government-flow { position: relative !important; inset: auto !important; order: 3; flex-wrap: wrap; margin-top: 34px; padding-top: 18px; border-top: 1px solid currentColor; opacity: .58; }
  .vertical-franchising,
  .vertical-government { min-height: 1150px; }
  .vertical.has-entered .vertical__copy,
  .vertical :is(.neural-field, .creative-type, .capital-ledger, .legal-document, .commerce-loop, .automation-flow, .academy-pages, .franchise-network, .government-runtime) { translate: none; }
}

@media (max-width: 560px) {
  .hero h1 { font-size: clamp(2.55rem, 12vw, 3.2rem); line-height: .92; letter-spacing: -.075em; }
  .system-map a { font-size: 6px; }
  .system-map a span { max-width: 76px; white-space: normal; }
  .franchise-network { height: 430px; }
  .franchise-network__hub { width: 140px; height: 116px; }
  .school-node { width: 60px; height: 36px; font-size: 6px; }
  .government-runtime__protocol strong { font-size: 1.8rem; }
  .franchise-path span,
  .government-flow span { font-size: 6px; }
}

@media (prefers-reduced-motion: reduce) {
  .home-route-transition { display:none; }
  .vertical.has-entered .vertical__copy,
  .vertical :is(.neural-field, .creative-type, .capital-ledger, .legal-document, .commerce-loop, .automation-flow, .academy-pages, .franchise-network, .government-runtime) { translate: none !important; }
  .vertical-franchising *,
  .vertical-government *,
  .creative-operations-home * { animation: none !important; }
}
