:root {
  --bg: #0A0D12;
  --bg-2: #0E1117;
  --panel: #10151d;
  --panel-2: #131a24;
  --soft: #eff2f4;
  --ink: #f4f7fa;
  --ink-dark: #111820;
  --muted: #8d98a7;
  --muted-light: #bbc4cf;
  --line: rgba(255,255,255,.09);
  --line-dark: rgba(9,21,32,.12);
  --cyan: #00D4FF;
  --blue: #00A3FF;
  --violet: #7B5CFF;
  --gold: #D4AF37;
  --gold-light: #FFE9B8;
  --cyan-light-accent: #0087C1;
  --font: "Manrope", system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  --serif: "Cormorant Garamond", Georgia, serif;
  --brand-font: "Poppins", system-ui, sans-serif;
  --container: 1280px;
  --radius: 22px;
  --ease: cubic-bezier(.22,1,.36,1);
  --shadow: 0 30px 80px rgba(0,0,0,.28);
}

* { box-sizing: border-box; margin: 0; padding: 0; }
html { scroll-behavior: smooth; background: var(--bg); }
body { font-family: var(--font); color: var(--ink); background: var(--bg); overflow-x: hidden; -webkit-font-smoothing: antialiased; }
body.modal-open, body.menu-open { overflow: hidden; }
a { color: inherit; text-decoration: none; }
button, input, textarea { font: inherit; }
button { color: inherit; }
img { display: block; max-width: 100%; }
::selection { background: var(--cyan); color: #00131c; }

.container { width: min(calc(100% - 48px), var(--container)); margin-inline: auto; }
.section { position: relative; padding: clamp(96px, 12vw, 170px) 0; }
.section-dark { background: var(--bg-2); border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.section-soft { background: var(--soft); color: var(--ink-dark); }

/* ===== PRELOADER — NOVA MARCA (curva que se desenha + gema) ===== */
.preloader { position: fixed; inset: 0; z-index: 100000; display: grid; place-items: center; align-content: center; gap: 20px; background: #06080C; transition: opacity .8s ease, visibility .8s ease; }
.preloader.done { opacity: 0; visibility: hidden; }
.preloader p { font-family: var(--brand-font); font-size: 1.05rem; letter-spacing: .55em; padding-left: .55em; font-weight: 700; }
.preloader small { color: var(--muted); letter-spacing: .28em; text-transform: uppercase; font-size: .55rem; }
.preloader-logo { width: 165px; height: auto; }
.preloader-logo .loader-curve { stroke-dasharray: 100; stroke-dashoffset: 100; animation: loaderDraw 2.4s var(--ease) infinite; }
@keyframes loaderDraw { 0% { stroke-dashoffset: 100; } 45% { stroke-dashoffset: 0; } 70% { stroke-dashoffset: 0; } 100% { stroke-dashoffset: -100; } }
.preloader-logo .loader-gem { transform-box: fill-box; transform-origin: center; opacity: 0; animation: loaderGem 2.4s ease-in-out infinite; }
@keyframes loaderGem { 0%, 38% { opacity: 0; transform: scale(0) rotate(90deg); } 50%, 72% { opacity: 1; transform: scale(1) rotate(0deg); } 100% { opacity: 0; transform: scale(.55) rotate(-20deg); } }
.preloader-track { width: 210px; height: 1px; background: rgba(255,255,255,.12); overflow: hidden; }
.preloader-track i { display: block; width: 0; height: 100%; background: linear-gradient(90deg,var(--blue),var(--cyan),var(--violet)); transition: width .15s linear; }

.cursor { position: fixed; z-index: 99999; pointer-events: none; transform: translate(-50%,-50%); border-radius: 50%; mix-blend-mode: difference; }
.cursor-dot { width: 5px; height: 5px; background: #fff; }
.cursor-ring { width: 38px; height: 38px; border: 1px solid rgba(255,255,255,.65); transition: width .25s, height .25s, opacity .25s; }
.cursor-ring.active { width: 68px; height: 68px; }

/* ===== PROGRESSO DA PÁGINA — gradiente da marca + gema viajante ===== */
.page-progress { position: fixed; top: 0; left: 0; z-index: 9001; width: 0; height: 2px; background: linear-gradient(90deg,var(--blue),var(--cyan),var(--violet)); box-shadow: 0 0 16px rgba(0,212,255,.5); }
.page-progress-gem { position: fixed; top: 1px; left: 0; z-index: 9002; width: 11px; height: 11px; border-radius: 2px; background: linear-gradient(135deg,var(--gold-light),var(--gold) 55%,#9C7420); transform: translate(-50%,-50%) rotate(45deg); box-shadow: 0 0 12px rgba(212,175,55,.65); pointer-events: none; opacity: 0; transition: opacity .35s; }

/* ===== HEADER — NOVA LOGO SVG ===== */
.site-header { position: fixed; inset: 0 0 auto; z-index: 9000; display: flex; align-items: center; justify-content: space-between; padding: 24px max(24px, 4vw); transition: background .4s, padding .4s, border-color .4s; border-bottom: 1px solid transparent; }
.site-header.scrolled { padding-top: 14px; padding-bottom: 14px; background: rgba(10,13,18,.78); backdrop-filter: blur(20px); border-color: var(--line); }
.brand { display: inline-flex; align-items: center; gap: 13px; position: relative; z-index: 2; }
.brand-mark { width: 47px; height: auto; flex-shrink: 0; }
.brand-gem { transform-box: fill-box; transform-origin: center; transition: transform .45s var(--ease); }
.brand:hover .brand-gem { transform: rotate(90deg) scale(1.3); }
.brand-node { transform-box: fill-box; transform-origin: center; transition: transform .45s var(--ease); }
.brand:hover .brand-node { transform: scale(1.35); }
.brand-copy { display: flex; flex-direction: column; line-height: 1; }
.brand-copy b { font-family: var(--brand-font); font-size: 1.12rem; letter-spacing: .14em; font-weight: 700; }
.brand-copy small { margin-top: 5px; font-size: .48rem; letter-spacing: .32em; color: var(--cyan); font-weight: 600; }
.main-nav { display: flex; align-items: center; gap: clamp(17px,2.5vw,36px); }
.main-nav > a { color: #aab3bf; font-size: .64rem; letter-spacing: .16em; text-transform: uppercase; transition: color .25s; }
.main-nav > a:hover, .main-nav > a.active { color: #fff; }
.main-nav .nav-client { display: inline-flex; align-items: center; gap: 7px; padding: 10px 13px; border: 1px solid rgba(255,255,255,.13); color: #8f9aa7; background: rgba(255,255,255,.018); letter-spacing: .12em; }
.main-nav .nav-client span { color: rgba(0,212,255,.72); font-size: .72rem; transition: transform .25s var(--ease); }
.main-nav .nav-client:hover { color: #fff; border-color: rgba(0,212,255,.34); background: rgba(0,212,255,.045); }
.main-nav .nav-client:hover span { transform: translate(2px,-2px); }
.main-nav .nav-cta { padding: 12px 17px; border: 1px solid rgba(0,212,255,.45); color: var(--cyan); }
.main-nav .nav-cta:hover { background: var(--cyan); color: #00141d; }
.menu-toggle { display: none; width: 46px; height: 46px; border: 1px solid var(--line); background: rgba(255,255,255,.03); position: relative; z-index: 2; }
.menu-toggle span { position: absolute; width: 18px; height: 1px; background: #fff; left: 13px; transition: transform .3s, top .3s; }
.menu-toggle span:first-child { top: 18px; }
.menu-toggle span:last-child { top: 26px; }
.menu-toggle.active span:first-child { top: 22px; transform: rotate(45deg); }
.menu-toggle.active span:last-child { top: 22px; transform: rotate(-45deg); }

.hero { min-height: 100svh; position: relative; display: flex; align-items: center; overflow: hidden; background: var(--bg); }
#heroCanvas { position: absolute; inset: 0; width: 100%; height: 100%; z-index: 2; opacity: .46; }
.hero-media { position: absolute; inset: 0 0 0 43%; overflow: hidden; }
.hero-media img { width: 100%; height: 100%; object-fit: cover; object-position: 57% center; filter: saturate(.82) contrast(1.08) brightness(.68); transform: scale(1.04); animation: heroDrift 18s ease-in-out infinite alternate; }
.hero-overlay { position: absolute; inset: 0; z-index: 1; background: linear-gradient(90deg,#0A0D12 0%,#0A0D12 35%,rgba(10,13,18,.72) 56%,rgba(10,13,18,.14) 100%), radial-gradient(circle at 75% 45%,transparent 0%,rgba(10,13,18,.34) 48%,#0A0D12 100%); }
.hero-content { position: relative; z-index: 3; padding-top: 140px; padding-bottom: 100px; }
.kicker { color: var(--cyan); font-size: .63rem; letter-spacing: .36em; margin-bottom: 30px; }
.hero-title { max-width: 970px; font-family: var(--serif); font-size: clamp(3.6rem,8.2vw,8.4rem); line-height: .86; font-weight: 500; letter-spacing: -.035em; }
.hero-title span { display: block; }
.hero-title .hero-emphasis { font-style: italic; color: transparent; background: linear-gradient(100deg,#fff 0%,#6fe7ff 42%,#9d85ff 70%,#ecc766 100%); -webkit-background-clip: text; background-clip: text; }
.hero-copy { max-width: 760px; margin-top: 32px; color: #b2bbc7; font-size: clamp(1rem,1.4vw,1.2rem); line-height: 1.8; font-weight: 300; }
.hero-actions { display: flex; gap: 12px; flex-wrap: wrap; margin-top: 38px; }
.button { min-height: 52px; display: inline-flex; align-items: center; justify-content: center; gap: 18px; padding: 0 23px; border: 1px solid transparent; font-size: .64rem; letter-spacing: .17em; text-transform: uppercase; transition: transform .3s var(--ease), background .3s, color .3s, border-color .3s; cursor: pointer; }
.button:hover { transform: translateY(-4px); }
.button-primary { background: linear-gradient(110deg,var(--cyan),#3f8cff); color: #00121a; font-weight: 700; box-shadow: 0 14px 40px rgba(0,163,255,.2); }
.button-primary:hover { box-shadow: 0 22px 52px rgba(0,163,255,.3); }
.button-ghost { border-color: rgba(255,255,255,.22); color: #e7edf4; background: rgba(10,13,18,.28); backdrop-filter: blur(8px); }
.button-ghost:hover { border-color: rgba(255,255,255,.6); background: rgba(255,255,255,.06); }
.hero-proof { display: flex; gap: 0; margin-top: 58px; max-width: 760px; border-top: 1px solid var(--line); }
.hero-proof > div { flex: 1; padding: 19px 28px 0 0; }
.hero-proof > div + div { padding-left: 28px; border-left: 1px solid var(--line); }
.hero-proof strong { display: block; font-family: var(--serif); font-size: 1.55rem; font-weight: 500; }
.hero-proof span { display: block; margin-top: 6px; color: var(--muted); font-size: .65rem; line-height: 1.5; }
.hero-side-note { position: absolute; z-index: 3; right: 27px; top: 50%; transform: translateY(-50%); display: flex; align-items: center; gap: 10px; writing-mode: vertical-rl; font-size: .5rem; letter-spacing: .25em; color: rgba(255,255,255,.55); }
.hero-side-note i { width: 1px; height: 24px; background: rgba(255,255,255,.18); }
.scroll-cue { position: absolute; z-index: 3; bottom: 25px; left: 50%; transform: translateX(-50%); display: flex; align-items: center; flex-direction: column; gap: 8px; color: var(--muted); font-size: .51rem; letter-spacing: .32em; text-transform: uppercase; }
.scroll-cue i { position: relative; width: 1px; height: 36px; background: rgba(255,255,255,.15); overflow: hidden; }
.scroll-cue i::after { content: ""; position: absolute; left: 0; top: -30%; width: 100%; height: 30%; background: var(--cyan); animation: scrollLine 1.6s infinite; }
@keyframes heroDrift { to { transform: scale(1.09) translateX(-1.5%); } }
@keyframes scrollLine { to { top: 110%; } }

.capability-strip { overflow: hidden; border-block: 1px solid var(--line); background: #0C0F15; }
.capability-track { width: max-content; display: flex; align-items: center; gap: 24px; padding: 17px 0; animation: stripMove 35s linear infinite; }
.capability-track span { font-size: .58rem; letter-spacing: .3em; color: #8d98a7; }
.capability-track i { color: var(--cyan); font-size: .5rem; font-style: normal; }
@keyframes stripMove { to { transform: translateX(-50%); } }

.section-label { display: flex; align-items: center; gap: 15px; color: var(--cyan); font-size: .58rem; letter-spacing: .3em; text-transform: uppercase; margin-bottom: 30px; }
.section-label span { color: var(--muted); font-family: var(--serif); font-size: 1.1rem; letter-spacing: 0; }
.section-title { max-width: 930px; font-family: var(--serif); font-size: clamp(2.8rem,5.4vw,5.8rem); line-height: .98; font-weight: 500; letter-spacing: -.025em; }
.section-intro { max-width: 690px; color: var(--muted); font-size: 1rem; line-height: 1.85; font-weight: 300; }

.manifesto { background: #f3f5f6; color: var(--ink-dark); }
.manifesto-grid { display: grid; grid-template-columns: .42fr 1.5fr .7fr; gap: 48px; align-items: start; }
.manifesto .section-label { color: var(--cyan-light-accent); }
.manifesto-copy { max-width: 900px; }
.manifesto-lead { font-family: var(--serif); font-size: clamp(2rem,4vw,4.1rem); line-height: 1.12; color: #52606d; }
.manifesto-main { margin-top: 25px; font-family: var(--serif); font-size: clamp(2.5rem,5.2vw,5.5rem); line-height: 1.01; letter-spacing: -.025em; }
.manifesto-aside { border-left: 1px solid var(--line-dark); padding-left: 24px; margin-top: 72px; color: #66717d; font-size: .86rem; line-height: 1.7; }
.manifesto-aside strong { display: block; margin-top: 12px; color: var(--ink-dark); font-family: var(--serif); font-size: 1.45rem; font-weight: 600; line-height: 1.25; }

/* ===== FRICÇÃO → FLUXO (canvas generativo) ===== */
.manifesto-visual { margin-top: 80px; position: relative; border-radius: var(--radius); overflow: hidden; min-height: 520px; background: linear-gradient(160deg,#0B0F17,#070A10); border: 1px solid rgba(0,212,255,.14); box-shadow: 0 35px 90px rgba(18,35,46,.2); }
#flowCanvas { position: absolute; inset: 0; width: 100%; height: 100%; display: block; }
.flow-labels { position: absolute; z-index: 3; top: 30px; left: 32px; right: 32px; display: flex; justify-content: space-between; pointer-events: none; }
.flow-labels span { font-size: .58rem; letter-spacing: .3em; transition: color .5s, opacity .5s, text-shadow .5s; }
.flow-label-left { color: var(--gold); opacity: .85; }
.flow-label-left small { display: block; margin-top: 7px; color: #7d8894; letter-spacing: .12em; font-size: .52rem; text-transform: none; }
.flow-label-right { color: var(--cyan); text-align: right; opacity: .55; text-shadow: none; }
.flow-label-right small { display: block; margin-top: 7px; color: #7d8894; letter-spacing: .12em; font-size: .52rem; text-transform: none; }
.manifesto-visual.flow-dominant .flow-label-right { opacity: 1; text-shadow: 0 0 22px rgba(0,212,255,.75); }
.manifesto-visual.flow-dominant .flow-label-left { opacity: .35; }
.visual-caption { position: absolute; z-index: 3; left: 30px; right: 30px; bottom: 28px; display: flex; align-items: center; gap: 16px; color: white; font-size: .58rem; letter-spacing: .28em; pointer-events: none; }
.visual-caption i { flex: 1; height: 1px; background: linear-gradient(90deg,var(--gold),var(--cyan)); }
.flow-hint { position: absolute; z-index: 3; bottom: 62px; left: 50%; transform: translateX(-50%); color: rgba(255,255,255,.4); font-size: .52rem; letter-spacing: .24em; text-transform: uppercase; transition: opacity .6s; pointer-events: none; }
.manifesto-visual.flow-dominant .flow-hint { opacity: 0; }

.positioning-grid { display: grid; grid-template-columns: 1.2fr .8fr; gap: 80px; align-items: end; }
.positioning-copy { padding-bottom: 8px; color: var(--muted-light); line-height: 1.85; font-size: 1rem; }
.positioning-copy p + p { margin-top: 20px; }
.positioning-copy em { color: #fff; font-family: var(--serif); font-size: 1.35rem; }
.principle-grid { display: grid; grid-template-columns: repeat(4,1fr); gap: 12px; margin-top: 72px; perspective: 1000px; }
.principle-card { min-height: 300px; padding: 30px; border: 1px solid var(--line); background: linear-gradient(145deg,rgba(255,255,255,.035),rgba(255,255,255,.008)); position: relative; overflow: hidden; transition: border-color .4s, transform .25s; transform-style: preserve-3d; }
.principle-card::before { content: ""; position: absolute; inset: 0; background: radial-gradient(400px circle at var(--mx,50%) var(--my,50%),rgba(0,212,255,.1),transparent 45%); opacity: 0; transition: opacity .3s; }
.principle-card:hover::before { opacity: 1; }
.principle-card:hover { border-color: rgba(0,212,255,.35); }
.principle-card > span { color: var(--cyan); font-family: var(--serif); font-size: 1.3rem; }
.principle-card h3 { margin-top: 85px; font-family: var(--serif); font-size: 1.85rem; font-weight: 500; }
.principle-card p { margin-top: 13px; color: var(--muted); font-size: .8rem; line-height: 1.7; }

/* ===== CURVA S + PRÓXIMA CURVA (SVG scroll-scrub) ===== */
.curve { background: #0B0E14; }
.curve-grid { display: grid; grid-template-columns: .88fr 1.12fr; gap: 78px; align-items: center; }
.curve-copy .section-intro { margin-top: 24px; }
.curve-columns { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; margin-top: 42px; }
.curve-columns > div { padding: 23px; border: 1px solid var(--line); background: rgba(255,255,255,.02); }
.curve-columns > div:last-child { border-color: rgba(0,212,255,.28); background: linear-gradient(145deg,rgba(0,212,255,.07),rgba(123,92,255,.035)); }
.curve-columns small { color: var(--cyan); font-size: .53rem; letter-spacing: .2em; }
.curve-columns ul { margin-top: 17px; list-style: none; }
.curve-columns li { color: var(--muted-light); padding: 7px 0; font-size: .75rem; border-bottom: 1px solid rgba(255,255,255,.055); }
.curve-visual { position: relative; border-radius: var(--radius); border: 1px solid rgba(212,175,55,.18); background: linear-gradient(165deg,#0D1220 0%,#070A10 100%); box-shadow: var(--shadow); padding: clamp(24px,3vw,42px); overflow: hidden; }
.curve-visual::before { content: ""; position: absolute; width: 420px; height: 420px; right: -140px; top: -170px; background: radial-gradient(circle,rgba(0,212,255,.09),transparent 65%); pointer-events: none; }
.curve-visual svg { width: 100%; height: auto; display: block; position: relative; z-index: 2; }
.curve-visual figcaption { position: relative; z-index: 2; margin-top: 20px; padding-top: 18px; border-top: 1px solid var(--line); font-size: .55rem; letter-spacing: .28em; color: var(--gold); }
.chart-grid-line { stroke: rgba(255,255,255,.045); stroke-width: 1; }
.chart-axis { stroke: rgba(255,255,255,.18); stroke-width: 1.2; }
.chart-axis-label { fill: #6b7783; font-family: var(--font); font-size: 10px; letter-spacing: .24em; }
#pathCurrent { fill: none; stroke: url(#gradCurrent); stroke-width: 2.6; stroke-linecap: round; }
#pathCurrentGhost { fill: none; stroke: rgba(212,175,55,.12); stroke-width: 2.6; stroke-dasharray: 3 7; }
#pathNext { fill: none; stroke: url(#gradNext); stroke-width: 3.2; stroke-linecap: round; filter: url(#curveGlow); }
#pathNextGhost { fill: none; stroke: rgba(0,212,255,.08); stroke-width: 3.2; stroke-dasharray: 3 7; }
.curve-label { font-family: var(--font); font-size: 10.5px; letter-spacing: .22em; opacity: 0; transition: opacity .7s var(--ease), transform .7s var(--ease); transform: translateY(6px); }
.curve-label.on { opacity: 1; transform: none; }
#lblCurrent { fill: var(--gold); }
#lblNext { fill: var(--cyan); }
#lblDecision { fill: #cfd8e0; font-size: 9.5px; }
#lblSaturation { fill: #6b7783; font-size: 9px; }
#curveDecision { fill: var(--gold); opacity: 0; transition: opacity .5s; }
#curveDecisionPulse { fill: none; stroke: var(--gold); stroke-width: 1.4; opacity: 0; }
.curve-visual.decision-on #curveDecision { opacity: 1; }
.curve-visual.decision-on #curveDecisionPulse { animation: decisionPulse 2.2s ease-out infinite; }
@keyframes decisionPulse { 0% { r: 6; opacity: .85; } 100% { r: 26; opacity: 0; } }
#curveTraveler { fill: #dff7ff; filter: url(#curveGlow); opacity: 0; }
#curveTravelerHalo { fill: none; stroke: rgba(0,212,255,.5); stroke-width: 1.2; opacity: 0; }
.curve-area-next { fill: url(#gradAreaNext); opacity: 0; transition: opacity 1.2s var(--ease); }
.curve-visual.next-on .curve-area-next { opacity: 1; }

/* ===== APPLIED INNOVATION LOOP ===== */
.approach { overflow: hidden; min-height: 920px; }
.approach-bg { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; opacity: .2; filter: saturate(.8); }
.approach-vignette { position: absolute; inset: 0; background: radial-gradient(circle at 70% 42%,rgba(10,13,18,.25),#0E1117 70%); }
.approach .container { position: relative; z-index: 2; }
.approach-heading { display: flex; justify-content: space-between; gap: 60px; align-items: end; }
.approach-heading .section-intro { max-width: 480px; }
.loop-layout { display: grid; grid-template-columns: .72fr 1.28fr; gap: 70px; margin-top: 80px; align-items: stretch; }
.loop-rail { display: grid; gap: 0; border-top: 1px solid var(--line); }
.loop-step { position: relative; display: grid; grid-template-columns: 55px 1fr; align-items: center; min-height: 74px; border: 0; border-bottom: 1px solid var(--line); background: transparent; text-align: left; cursor: pointer; transition: background .3s, padding-left .3s; }
.loop-step::after { content: ""; position: absolute; right: 0; width: 0; height: 1px; background: var(--cyan); transition: width .4s; }
.loop-step span { color: var(--muted); font-family: var(--serif); font-size: 1rem; }
.loop-step b { color: #9da8b5; font-size: .74rem; letter-spacing: .13em; text-transform: uppercase; }
.loop-step:hover, .loop-step.active { padding-left: 12px; background: rgba(0,212,255,.035); }
.loop-step.active::after { width: 100%; }
.loop-step.active span, .loop-step.active b { color: var(--cyan); }
.loop-stage { min-height: 500px; border: 1px solid rgba(0,212,255,.23); background: rgba(10,13,18,.62); backdrop-filter: blur(18px); padding: clamp(35px,5vw,70px); position: relative; overflow: hidden; }
.loop-stage::before { content: ""; position: absolute; width: 450px; height: 450px; border: 1px solid rgba(0,212,255,.09); border-radius: 50%; right: -160px; bottom: -220px; box-shadow: 0 0 0 60px rgba(0,212,255,.018),0 0 0 120px rgba(0,212,255,.012); }
.loop-infinity { position: absolute; right: 22px; top: 24px; width: 130px; opacity: .8; pointer-events: none; }
.loop-infinity .inf-track { fill: none; stroke: rgba(0,212,255,.14); stroke-width: 2; }
.loop-infinity .inf-runner { fill: none; stroke: var(--cyan); stroke-width: 2; stroke-linecap: round; stroke-dasharray: 46 420; animation: infRun 4.2s linear infinite; filter: drop-shadow(0 0 5px rgba(0,212,255,.8)); }
.loop-infinity .inf-runner.gold { stroke: var(--gold); animation-delay: -2.1s; filter: drop-shadow(0 0 5px rgba(212,175,55,.7)); }
@keyframes infRun { to { stroke-dashoffset: -466; } }
.loop-number { display: block; font-family: var(--serif); font-size: 5.2rem; color: rgba(0,212,255,.16); line-height: 1; }
.loop-eyebrow { margin-top: 30px; color: var(--cyan); font-size: .55rem; letter-spacing: .26em; }
.loop-stage h3 { margin-top: 18px; max-width: 650px; font-family: var(--serif); font-size: clamp(2.3rem,4vw,4.2rem); line-height: 1; font-weight: 500; }
.loop-description { max-width: 650px; margin-top: 25px; color: var(--muted-light); line-height: 1.8; }
.loop-list { margin-top: 34px; display: grid; grid-template-columns: 1fr 1fr; gap: 10px; list-style: none; max-width: 650px; }
.loop-list li { padding: 12px 14px; border: 1px solid var(--line); color: #b9c2cd; font-size: .72rem; }

.value { background: #f4f6f7; color: var(--ink-dark); }
.value .section-label { color: var(--cyan-light-accent); }
.value-heading, .transformation-heading, .foundations-heading { display: grid; grid-template-columns: 1.15fr .85fr; gap: 70px; align-items: end; }
.value-heading .section-intro, .transformation-heading .section-intro, .foundations-heading .section-intro { justify-self: end; }
.value-grid { margin-top: 75px; display: grid; grid-template-columns: repeat(2,1fr); gap: 14px; }
.value-card { min-height: 350px; padding: 38px; border: 1px solid var(--line-dark); position: relative; background: #fff; transition: transform .4s var(--ease),box-shadow .4s,border-color .4s; overflow: hidden; }
.value-card::before { content: ""; position: absolute; width: 280px; height: 280px; right: -160px; top: -160px; border-radius: 50%; background: radial-gradient(circle,rgba(0,212,255,.18),transparent 68%); transition: transform .5s var(--ease); }
.value-card:hover { transform: translateY(-8px); box-shadow: 0 28px 70px rgba(22,49,64,.12); border-color: rgba(0,135,193,.3); }
.value-card:hover::before { transform: scale(1.45); }
.value-index { font-family: var(--serif); font-size: 1.4rem; color: var(--cyan-light-accent); }
.value-card h3 { margin-top: 80px; font-family: var(--serif); font-size: clamp(2rem,3.3vw,3.2rem); line-height: 1; font-weight: 600; max-width: 480px; }
.value-card p { max-width: 540px; margin-top: 17px; color: #697581; line-height: 1.75; font-size: .87rem; }
.value-line { height: 1px; background: linear-gradient(90deg,var(--cyan-light-accent),transparent); margin-top: 32px; }
.value-card small { display: block; margin-top: 16px; color: var(--cyan-light-accent); font-size: .52rem; letter-spacing: .23em; }

/* ===== TRANSFORMAÇÕES — HUB CINÉTICO DE SETORES ===== */
.transformations { overflow: hidden; }
.transformation-shell { margin-top: 70px; display: grid; grid-template-columns: 1.12fr .88fr; grid-template-rows: auto auto; border: 1px solid var(--line); background: #0C0F15; }
.transformation-media { grid-row: 1 / span 2; position: relative; min-height: 700px; overflow: hidden; display: grid; place-items: center; background: radial-gradient(ellipse at 50% 42%, #0D1522 0%, #080B11 52%, #070A10 100%); }
.transformation-media::after { content: ""; position: absolute; inset: 0; pointer-events: none; background: linear-gradient(90deg,transparent 55%,rgba(12,15,21,.85) 100%),linear-gradient(to top,rgba(12,15,21,.7) 0%,transparent 22%); }
.media-grid { position: absolute; inset: 0; z-index: 1; background-image: linear-gradient(rgba(255,255,255,.03) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.03) 1px,transparent 1px); background-size: 48px 48px; mask-image: radial-gradient(ellipse at 50% 45%, #000 30%, transparent 78%); }
.sector-hub { position: relative; z-index: 2; width: 100%; height: 100%; max-height: 720px; }
.hub-ring { fill: none; stroke: rgba(0,212,255,.1); stroke-width: 1; }
.hub-ring-dash { stroke-dasharray: 3 11; transform-origin: 300px 360px; animation: hubRotate 46s linear infinite; }
.hub-ring-dash.reverse { animation-direction: reverse; animation-duration: 64s; stroke: rgba(123,92,255,.12); }
.hub-ring-dash.gold { animation-duration: 84s; stroke: rgba(212,175,55,.1); stroke-dasharray: 2 16; }
@keyframes hubRotate { to { transform: rotate(360deg); } }
.hub-path { fill: none; stroke: rgba(0,212,255,.16); stroke-width: 1.3; transition: stroke .5s; }
.hub-path.active { stroke: rgba(0,212,255,.62); filter: drop-shadow(0 0 6px rgba(0,212,255,.55)); }
.hub-pulse { fill: #a5efff; filter: drop-shadow(0 0 5px rgba(0,212,255,.9)); transition: opacity .4s; }
.hub-core-emanate { fill: none; stroke: rgba(0,212,255,.55); stroke-width: 1.4; animation: hubEmanate 3.2s ease-out infinite; }
.hub-core-emanate.delay { animation-delay: 1.6s; stroke: rgba(212,175,55,.4); }
@keyframes hubEmanate { 0% { r: 30; opacity: .85; } 100% { r: 122; opacity: 0; } }
.hub-core-outer { fill: rgba(9,18,28,.85); stroke: rgba(0,212,255,.5); stroke-width: 1.4; }
.hub-core-inner { fill: url(#hubCoreGrad); animation: hubCorePulse 2.6s ease-in-out infinite; transform-origin: 300px 360px; }
@keyframes hubCorePulse { 50% { transform: scale(1.22); opacity: .85; } }
.hub-core-label { fill: #eaf6fb; font-family: var(--brand-font); font-size: 13px; font-weight: 700; letter-spacing: .3em; text-anchor: middle; }
.hub-core-sub { fill: #6f7d8c; font-family: var(--font); font-size: 7.5px; letter-spacing: .26em; text-anchor: middle; }
.hub-node { cursor: pointer; }
.hub-node .node-ring { fill: rgba(8,15,23,.8); stroke: rgba(255,255,255,.16); stroke-width: 1.2; transition: stroke .4s, r .4s; }
.hub-node .node-halo { fill: none; stroke: rgba(0,212,255,.5); stroke-width: 1.2; opacity: 0; }
.hub-node .node-dot { fill: #7d8b99; transition: fill .4s; }
.hub-node text { fill: #8d98a7; font-family: var(--font); font-size: 10.5px; letter-spacing: .24em; text-anchor: middle; transition: fill .4s; }
.hub-node small-text { fill: #5e6b78; }
.hub-node .node-sub { fill: #5e6b78; font-size: 7.5px; letter-spacing: .14em; }
.hub-node:hover .node-ring, .hub-node.active .node-ring { stroke: rgba(0,212,255,.75); }
.hub-node:hover .node-dot, .hub-node.active .node-dot { fill: var(--cyan); }
.hub-node:hover text, .hub-node.active text { fill: #eaf6fb; }
.hub-node.active .node-sub { fill: var(--cyan); }
.hub-node.active .node-halo { animation: nodeHalo 2s ease-out infinite; }
@keyframes nodeHalo { 0% { r: 22; opacity: .8; } 100% { r: 46; opacity: 0; } }
.hub-caption { position: absolute; z-index: 3; left: 28px; bottom: 24px; display: flex; align-items: center; gap: 14px; color: rgba(255,255,255,.55); font-size: .53rem; letter-spacing: .28em; pointer-events: none; }
.hub-caption i { width: 42px; height: 1px; background: linear-gradient(90deg,var(--cyan),transparent); }
.transformation-tabs { border-left: 1px solid var(--line); }
.transformation-tab { width: 100%; min-height: 105px; display: grid; grid-template-columns: 48px 1fr; grid-template-rows: auto auto; gap: 3px 12px; align-content: center; border: 0; border-bottom: 1px solid var(--line); background: transparent; text-align: left; padding: 20px 28px; cursor: pointer; transition: background .3s; }
.transformation-tab span { grid-row: 1 / span 2; color: var(--muted); font-family: var(--serif); font-size: 1.1rem; }
.transformation-tab b { font-family: var(--serif); font-size: 1.4rem; font-weight: 500; color: #aeb7c2; }
.transformation-tab small { color: #687482; font-size: .61rem; line-height: 1.5; }
.transformation-tab:hover, .transformation-tab.active { background: linear-gradient(90deg,rgba(0,212,255,.08),transparent); }
.transformation-tab.active b, .transformation-tab.active span { color: var(--cyan); }
.transformation-detail { border-left: 1px solid var(--line); padding: 40px 36px 42px; min-height: 300px; }
.detail-label { color: var(--cyan); font-size: .53rem; letter-spacing: .26em; }
.transformation-detail h3 { margin-top: 18px; font-family: var(--serif); font-size: clamp(2rem,3.4vw,3.4rem); line-height: 1.02; font-weight: 500; }
.transformation-detail > p:not(.detail-label) { margin-top: 20px; color: var(--muted-light); font-size: .84rem; line-height: 1.75; }
.detail-tags { display: flex; flex-wrap: wrap; gap: 7px; margin-top: 26px; }
.detail-tags span { border: 1px solid var(--line); padding: 8px 10px; color: #8f9aa7; font-size: .47rem; letter-spacing: .16em; }

.economics { background: #f5f6f7; color: var(--ink-dark); }
.economics .section-label { color: var(--cyan-light-accent); }
.economics-grid { display: grid; grid-template-columns: .85fr 1.15fr; gap: 80px; align-items: center; }
.economics-copy blockquote { margin-top: 38px; padding-left: 25px; border-left: 2px solid var(--cyan-light-accent); font-family: var(--serif); font-size: 1.7rem; line-height: 1.25; }
.arbitrage-card { border: 1px solid var(--line-dark); background: #fff; padding: clamp(28px,4vw,50px); box-shadow: 0 30px 80px rgba(29,56,71,.12); }
.arbitrage-top { display: flex; align-items: end; justify-content: space-between; padding-bottom: 22px; border-bottom: 1px solid var(--line-dark); }
.arbitrage-top span { color: #62717e; font-size: .52rem; letter-spacing: .22em; }
.arbitrage-top b { font-family: var(--serif); font-size: 3.4rem; font-weight: 500; line-height: .8; color: var(--cyan-light-accent); }
.cost-row { display: grid; grid-template-columns: 150px 1fr 40px; gap: 15px; align-items: center; margin-top: 28px; }
.cost-row small { color: #687581; font-size: .54rem; letter-spacing: .16em; }
.cost-bar { height: 13px; background: #e9edf0; overflow: hidden; }
.cost-bar i { display: block; width: 0; height: 100%; background: linear-gradient(90deg,#333d47,#79848d); transition: width 1.2s var(--ease); }
.cost-bar i.cyan { background: linear-gradient(90deg,var(--cyan-light-accent),var(--cyan)); }
.cost-row strong { font-family: var(--serif); font-size: 1.7rem; font-weight: 500; }
.arbitrage-card.on .cost-bar i { width: var(--width); }
.value-release { display: flex; align-items: center; gap: 22px; margin-top: 36px; padding: 25px; background: #07121a; color: #fff; }
.value-release > span { font-family: var(--serif); font-size: 4rem; color: var(--cyan); line-height: .8; }
.value-release strong { font-size: .64rem; letter-spacing: .2em; color: var(--cyan); }
.value-release p { margin-top: 5px; color: #aab6c2; font-size: .72rem; }
.arbitrage-note { margin-top: 18px; color: #7d8993; font-size: .62rem; line-height: 1.6; }
.economic-flow { margin-top: 65px; display: grid; grid-template-columns: 1fr auto 1fr auto 1fr; gap: 20px; align-items: center; }
.economic-flow > div { padding: 22px; border: 1px solid var(--line-dark); background: #fff; }
.economic-flow span { color: var(--cyan-light-accent); font-size: .53rem; letter-spacing: .2em; }
.economic-flow p { margin-top: 10px; color: #6e7a85; font-size: .76rem; line-height: 1.6; }
.economic-flow b { color: var(--cyan-light-accent); }

/* ===== LAPIDAÇÃO — PEDRA BRUTA → DIAMANTE ===== */
.lapidation { background: radial-gradient(ellipse at 28% 100%, #0B1424 0%, #06080C 58%); overflow: hidden; border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.lapidation-grid { display: grid; grid-template-columns: .95fr 1.05fr; gap: 70px; align-items: center; }
.gem-scene { --gem-glow:.2; position: relative; height: 590px; display: grid; place-items: center; perspective: 1200px; isolation:isolate; }
.lapidation-aura { position:absolute; inset:10% 5%; border-radius:50%; background:radial-gradient(circle,rgba(0,212,255,.12),rgba(123,92,255,.05) 38%,transparent 68%); filter:blur(18px); opacity:.35; transition:opacity .9s,transform 1s; }
.gem-floor { position:absolute; bottom:58px; left:50%; width:360px; height:70px; border-radius:50%; transform:translateX(-50%); background:radial-gradient(ellipse,rgba(0,212,255,calc(.08 + var(--gem-glow)*.28)) 0%,rgba(123,92,255,.07) 42%,transparent 72%); filter:blur(7px); transition:opacity .8s; }
.gem-floor::after { content:""; position:absolute; left:50%; top:50%; width:500px; height:1px; transform:translate(-50%,-50%); background:linear-gradient(90deg,transparent,rgba(0,212,255,.32),rgba(212,175,55,.28),transparent); }

.rough-stone { position:absolute; width:230px; height:205px; clip-path:polygon(18% 10%,62% 2%,91% 28%,83% 73%,57% 96%,15% 87%,2% 48%); background:linear-gradient(145deg,#5a626d 0%,#303741 46%,#161b22 100%); box-shadow:inset 18px 20px 34px rgba(255,255,255,.09),inset -24px -26px 38px rgba(0,0,0,.52),0 38px 70px rgba(0,0,0,.42); transform:rotate(-7deg) scale(1); opacity:1; transition:opacity .75s var(--ease),transform 1s var(--ease),filter .9s; }
.rough-stone::before { content:""; position:absolute; inset:0; background:radial-gradient(circle at 28% 24%,rgba(255,255,255,.18),transparent 27%),linear-gradient(110deg,transparent 35%,rgba(255,255,255,.08) 47%,transparent 55%); mix-blend-mode:screen; }
.stone-plane { position:absolute; background:rgba(255,255,255,.055); border:1px solid rgba(255,255,255,.07); }
.stone-plane.p1 { width:115px;height:82px;left:18px;top:17px;clip-path:polygon(0 0,100% 12%,72% 100%,10% 78%); }
.stone-plane.p2 { width:98px;height:112px;right:15px;top:38px;clip-path:polygon(25% 0,100% 22%,82% 100%,0 72%); }
.stone-plane.p3 { width:130px;height:70px;left:42px;bottom:11px;clip-path:polygon(0 18%,65% 0,100% 100%,18% 82%); }
.stone-crack { position:absolute; width:2px; background:rgba(0,212,255,.28); transform-origin:top; box-shadow:0 0 8px rgba(0,212,255,.24); opacity:.45; }
.stone-crack.c1 { height:95px; left:52%; top:18%; transform:rotate(22deg); }
.stone-crack.c2 { height:62px; left:41%; top:45%; transform:rotate(-42deg); }

.cut-system { position:absolute; width:330px; height:330px; opacity:0; transform:scale(.82) rotate(-10deg); transition:opacity .6s,transform .9s var(--ease); pointer-events:none; }
.cut-ring { position:absolute; inset:12%; border:1px solid rgba(0,212,255,.28); border-radius:50%; }
.cut-ring.ring-b { inset:28%; border-style:dashed; border-color:rgba(212,175,55,.32); animation:cutRotate 5s linear infinite reverse; }
.cut-ring.ring-a { animation:cutRotate 7s linear infinite; }
.cut-line { position:absolute; left:50%; top:7%; width:1px; height:86%; background:linear-gradient(transparent,rgba(0,212,255,.88),transparent); transform-origin:center; box-shadow:0 0 12px rgba(0,212,255,.65); }
.cut-line.line-b { transform:rotate(60deg); }
.cut-line.line-c { transform:rotate(-60deg); }
.cut-spark { position:absolute; width:7px; height:7px; border-radius:50%; background:#fff5cf; box-shadow:0 0 15px #d4af37; animation:cutSpark 1.4s ease-in-out infinite; }
.cut-spark.s1 { left:21%;top:33%; }
.cut-spark.s2 { right:19%;top:51%;animation-delay:-.5s; }
.cut-spark.s3 { left:48%;bottom:13%;animation-delay:-.9s; }
@keyframes cutRotate { to { transform:rotate(360deg); } }
@keyframes cutSpark { 0%,100%{opacity:.15;transform:scale(.5)}50%{opacity:1;transform:scale(1.5)} }

.gem-rise { position:absolute; opacity:0; transform:translateY(90px) scale(.45); transition:opacity 1s var(--ease),transform 1.2s var(--ease),filter .9s; transform-style:preserve-3d; }
.gem { position:relative; width:0; height:0; transform-style:preserve-3d; animation:gemSpin 14s linear infinite; filter:brightness(calc(.48 + var(--gem-glow)*1.08)) saturate(calc(.55 + var(--gem-glow)*.65)); }
@keyframes gemSpin { from { transform:rotateX(-14deg) rotateY(0deg); } to { transform:rotateX(-14deg) rotateY(360deg); } }
.facet { position:absolute; backface-visibility:visible; transition:background .8s,filter .8s; }
.facet-top { left:-42px; top:-128px; width:84px; height:128px; clip-path:polygon(50% 0,100% 100%,0 100%); transform-origin:50% 100%; background:linear-gradient(to bottom,rgba(110,226,255,.5),rgba(123,92,255,.11)); border-bottom:1px solid rgba(140,235,255,.48); }
.facet-bottom { left:-42px; top:0; width:84px; height:168px; clip-path:polygon(0 0,100% 0,50% 100%); transform-origin:50% 0; background:linear-gradient(to bottom,rgba(123,92,255,.28),rgba(0,163,255,.05)); border-top:1px solid rgba(160,220,255,.36); }
.facet:nth-child(odd) { filter:brightness(1.35); }
.facet:nth-child(4n) { filter:brightness(.72); }
.gem-core { position:absolute; left:-58px; top:-58px; width:116px; height:116px; border-radius:50%; background:radial-gradient(circle,rgba(220,251,255,calc(.25 + var(--gem-glow)*.7)) 0%,rgba(0,212,255,calc(.08 + var(--gem-glow)*.35)) 42%,transparent 72%); filter:blur(14px); animation:corePulse 2.8s ease-in-out infinite; }
@keyframes corePulse { 50% { transform:scale(1.28); } }

.polish-sweep { position:absolute; width:330px; height:330px; border-radius:50%; opacity:0; pointer-events:none; background:conic-gradient(from 0deg,transparent 0 78%,rgba(255,255,255,.82) 84%,rgba(0,212,255,.28) 89%,transparent 96%); filter:blur(2px); mask-image:radial-gradient(circle,transparent 0 36%,#000 46% 62%,transparent 72%); animation:polishRotate 1.9s linear infinite; transition:opacity .55s; }
@keyframes polishRotate { to { transform:rotate(360deg); } }
.gem-shards { position:absolute; inset:0; pointer-events:none; opacity:.15; transition:opacity .8s; }
.gem-shards span { position:absolute; width:7px; height:7px; background:linear-gradient(135deg,var(--cyan),var(--violet)); opacity:.55; transform:rotate(45deg); animation:shardFloat 6.5s ease-in-out infinite; }
.gem-shards span:nth-child(1){left:14%;top:22%}.gem-shards span:nth-child(2){right:13%;top:30%;animation-delay:-1s}.gem-shards span:nth-child(3){left:22%;bottom:25%;animation-delay:-2s;background:var(--gold)}.gem-shards span:nth-child(4){right:22%;bottom:31%;animation-delay:-3s}.gem-shards span:nth-child(5){left:49%;top:10%;animation-delay:-4s;background:var(--gold)}.gem-shards span:nth-child(6){left:8%;top:53%;animation-delay:-2.7s;width:4px;height:4px}.gem-shards span:nth-child(7){right:7%;top:58%;animation-delay:-5s;width:5px;height:5px;background:#fff}
@keyframes shardFloat { 0%,100%{transform:rotate(45deg) translateY(0);opacity:.2}50%{transform:rotate(225deg) translateY(-28px);opacity:.85} }

.phase-caption { position:absolute; left:26px; bottom:24px; display:grid; grid-template-columns:auto 1fr; gap:1px 12px; align-items:center; min-width:230px; padding:14px 16px; border-left:1px solid rgba(0,212,255,.42); background:linear-gradient(90deg,rgba(5,12,20,.8),transparent); backdrop-filter:blur(8px); }
.phase-caption span { grid-row:1 / span 2; font-family:var(--serif); font-size:2.1rem; color:rgba(0,212,255,.48); }
.phase-caption strong { color:#eaf6fb; font-size:.62rem; letter-spacing:.24em; }
.phase-caption small { color:#687685; font-size:.56rem; letter-spacing:.08em; }

.gem-scene[data-phase="0"] .rough-stone { opacity:1; transform:rotate(-7deg) scale(1); }
.gem-scene[data-phase="0"] .gem-floor { opacity:.32; }
.gem-scene[data-phase="1"] .rough-stone { opacity:1; transform:rotate(0deg) scale(.94); filter:contrast(1.15) brightness(.88); }
.gem-scene[data-phase="1"] .cut-system { opacity:1; transform:scale(1) rotate(0deg); }
.gem-scene[data-phase="1"] .gem-shards { opacity:.6; }
.gem-scene[data-phase="2"] .rough-stone { opacity:.05; transform:rotate(12deg) scale(.58); }
.gem-scene[data-phase="2"] .cut-system { opacity:.45; transform:scale(.82) rotate(20deg); }
.gem-scene[data-phase="2"] .gem-rise { opacity:.72; transform:translateY(18px) scale(.78); filter:grayscale(.45) brightness(.72); }
.gem-scene[data-phase="3"] .rough-stone { opacity:0; transform:scale(.35); }
.gem-scene[data-phase="3"] .cut-system { opacity:0; }
.gem-scene[data-phase="3"] .gem-rise { opacity:1; transform:translateY(0) scale(.96); filter:brightness(.9) saturate(.75); }
.gem-scene[data-phase="3"] .polish-sweep { opacity:1; }
.gem-scene[data-phase="3"] .gem-shards { opacity:.7; }
.gem-scene[data-phase="4"] .rough-stone,.gem-scene[data-phase="4"] .cut-system { opacity:0; }
.gem-scene[data-phase="4"] .gem-rise { opacity:1; transform:translateY(-12px) scale(1.06); filter:none; }
.gem-scene[data-phase="4"] .polish-sweep { opacity:.18; }
.gem-scene[data-phase="4"] .gem-shards { opacity:1; }
.gem-scene[data-phase="4"] .lapidation-aura { opacity:1; transform:scale(1.14); }

.lapidation-copy .section-intro { margin-top:25px; }
.lapidation-stages { display:flex; align-items:center; flex-wrap:wrap; gap:8px; margin-top:42px; }
.lapidation-stages button { display:inline-flex; align-items:center; gap:7px; padding:11px 13px; border:1px solid var(--line); background:transparent; color:#687583; cursor:pointer; font-size:.5rem; letter-spacing:.18em; transition:color .45s,border-color .45s,background .45s,box-shadow .45s,transform .35s; }
.lapidation-stages button span { font-family:var(--serif); font-size:.86rem; letter-spacing:0; color:#53606d; }
.lapidation-stages button:hover { transform:translateY(-2px); border-color:rgba(0,212,255,.28); color:#cbd5df; }
.lapidation-stages button.done { color:#7b8997; border-color:rgba(0,212,255,.18); }
.lapidation-stages button.on { color:var(--cyan); border-color:rgba(0,212,255,.58); background:rgba(0,212,255,.07); box-shadow:0 0 24px rgba(0,212,255,.14); }
.lapidation-stages button.on span { color:var(--cyan); }
.lapidation-stages button:last-of-type.on { color:var(--gold); border-color:rgba(212,175,55,.62); background:rgba(212,175,55,.07); box-shadow:0 0 26px rgba(212,175,55,.16); }
.lapidation-stages button:last-of-type.on span { color:var(--gold); }
.lapidation-stages i { color:rgba(0,212,255,.32); font-style:normal; font-size:.58rem; }
.lapidation-copy blockquote { margin-top:40px; padding-top:25px; border-top:1px solid var(--line); font-family:var(--serif); font-size:1.8rem; line-height:1.25; color:#dfe7ee; }
.lapidation-copy blockquote em { color:var(--gold); font-style:italic; }

.why-grid { display: grid; grid-template-columns: .85fr 1.15fr; gap: 70px; align-items: center; }
.why-image { min-height: 500px; }
.why-intro .section-intro { margin-top: 25px; }
.comparison { margin-top: 75px; border: 1px solid var(--line); }
.comparison-head, .comparison-row { display: grid; grid-template-columns: 1fr 1fr; }
.comparison-head span { padding: 18px 25px; color: var(--muted); font-size: .53rem; letter-spacing: .22em; background: rgba(255,255,255,.025); }
.comparison-head span:last-child { color: var(--cyan); border-left: 1px solid var(--line); }
.comparison-row p { padding: 19px 25px; color: #8793a0; font-size: .76rem; border-top: 1px solid var(--line); }
.comparison-row p:last-child { color: #d7dee6; border-left: 1px solid var(--line); background: linear-gradient(90deg,rgba(0,212,255,.04),transparent); }
.why-pillars { display: grid; grid-template-columns: repeat(4,1fr); gap: 12px; margin-top: 60px; }
.why-pillar { padding: 26px; border-top: 1px solid rgba(0,212,255,.3); background: rgba(255,255,255,.018); }
.why-pillar > span { color: var(--cyan); font-family: var(--serif); }
.why-pillar h3 { margin-top: 38px; font-family: var(--serif); font-size: 1.45rem; font-weight: 500; }
.why-pillar p { margin-top: 12px; color: var(--muted); line-height: 1.7; font-size: .73rem; }

.legacy { background: #f1f3f4; color: var(--ink-dark); }
.legacy .section-label { color: var(--cyan-light-accent); }
.legacy-grid { display: grid; grid-template-columns: 1.1fr .9fr; gap: 80px; align-items: center; }
.legacy-image { min-height: 680px; }
.legacy-copy .section-intro { margin-top: 25px; }
.legacy-chain { display: flex; align-items: center; flex-wrap: wrap; gap: 9px; margin-top: 38px; }
.legacy-chain span { padding: 9px 11px; border: 1px solid var(--line-dark); font-size: .48rem; letter-spacing: .15em; }
.legacy-chain i { color: var(--cyan-light-accent); font-style: normal; }
.legacy-copy blockquote { margin-top: 40px; padding: 25px 0 0; border-top: 1px solid var(--line-dark); font-family: var(--serif); font-size: 1.9rem; line-height: 1.22; }

.foundations-heading .section-label { color: var(--cyan-light-accent); }
.foundation-cards { display: grid; grid-template-columns: 1fr 1fr 1.1fr; gap: 14px; margin-top: 70px; }
.foundation-card { min-height: 240px; display: flex; flex-direction: column; justify-content: space-between; gap: 35px; padding: 30px; border: 1px solid var(--line-dark); background: #fff; }
.foundation-card img { width: 115px; height: 65px; object-fit: contain; object-position: left center; }
.foundation-card h3 { font-family: var(--serif); font-size: 1.7rem; font-weight: 600; }
.foundation-card p { margin-top: 9px; color: #6e7a85; font-size: .76rem; line-height: 1.65; }
.foundation-text { background: #0a1119; color: #fff; }
.foundation-text > span { color: var(--cyan); font-size: .55rem; letter-spacing: .24em; }
.foundation-text p { color: #9ba7b3; }

.trust { background: #0C0F14; overflow: hidden; }
.trust-heading { max-width: 850px; }
.logo-marquee { margin-top: 65px; overflow: hidden; position: relative; }
.logo-marquee::before, .logo-marquee::after { content: ""; position: absolute; z-index: 2; top: 0; width: 18vw; height: 100%; pointer-events: none; }
.logo-marquee::before { left: 0; background: linear-gradient(90deg,#0C0F14,transparent); }
.logo-marquee::after { right: 0; background: linear-gradient(-90deg,#0C0F14,transparent); }
.logo-track { display: flex; width: max-content; gap: 14px; animation: logoMove 38s linear infinite; }
.logo-track img { width: 190px; height: 100px; padding: 22px; object-fit: contain; background: #fff; filter: grayscale(1); opacity: .7; border-radius: 4px; transition: filter .3s,opacity .3s; }
.logo-track img:hover { filter: grayscale(0); opacity: 1; }
@keyframes logoMove { to { transform: translateX(calc(-50% - 7px)); } }

.contact { overflow: hidden; }
.contact-glow { position: absolute; width: 800px; height: 800px; right: -250px; top: -220px; background: radial-gradient(circle,rgba(0,212,255,.12),transparent 68%); pointer-events: none; }
.contact-grid { display: grid; grid-template-columns: 1fr .82fr; gap: 95px; align-items: start; position: relative; z-index: 2; }
.contact-title { max-width: 760px; font-family: var(--serif); font-size: clamp(3.2rem,6.5vw,7rem); line-height: .91; font-weight: 500; letter-spacing: -.035em; }
.contact-copy .section-intro { margin-top: 30px; }
.contact-details { display: grid; gap: 0; margin-top: 50px; max-width: 650px; border-top: 1px solid var(--line); }
.contact-details > * { display: flex; justify-content: space-between; gap: 20px; padding: 18px 0; border-bottom: 1px solid var(--line); }
.contact-details span { color: var(--muted); font-size: .5rem; letter-spacing: .2em; }
.contact-details b { font-size: .76rem; font-weight: 500; }
.contact-form { border: 1px solid rgba(0,212,255,.22); background: rgba(255,255,255,.025); padding: clamp(27px,4vw,44px); backdrop-filter: blur(16px); }
.form-head { display: flex; justify-content: space-between; align-items: end; gap: 20px; padding-bottom: 22px; border-bottom: 1px solid var(--line); }
.form-head span { color: var(--cyan); font-size: .55rem; letter-spacing: .2em; }
.form-head small { max-width: 170px; color: var(--muted); font-size: .58rem; line-height: 1.4; text-align: right; }
.contact-form label { display: block; margin-top: 23px; }
.contact-form label > span { display: block; margin-bottom: 9px; color: #9aa5b1; font-size: .56rem; letter-spacing: .13em; text-transform: uppercase; }
.contact-form input, .contact-form textarea { width: 100%; border: 0; border-bottom: 1px solid rgba(255,255,255,.16); background: transparent; color: #fff; padding: 10px 0 12px; outline: none; resize: vertical; transition: border-color .3s; }
.contact-form input:focus, .contact-form textarea:focus { border-color: var(--cyan); }
.form-submit { width: 100%; margin-top: 30px; border: 0; }
.form-note { margin-top: 13px; color: var(--muted); font-size: .58rem; line-height: 1.5; }

.site-footer { background: #06080C; border-top: 1px solid var(--line); }
.footer-top { display: grid; grid-template-columns: .8fr 1.2fr 1fr; gap: 50px; align-items: center; padding: 58px 0 45px; }
.footer-top > p { color: var(--muted); font-family: var(--serif); font-size: 1.35rem; line-height: 1.35; }
.footer-links { display: flex; flex-wrap: wrap; justify-content: end; gap: 21px; }
.footer-links a { color: #929dab; font-size: .58rem; letter-spacing: .14em; text-transform: uppercase; }
.footer-links a:hover { color: var(--cyan); }
.footer-bottom { display: flex; justify-content: space-between; align-items: center; padding: 20px 0 28px; border-top: 1px solid var(--line); color: #66717d; font-size: .58rem; }
.footer-bottom div { display: flex; gap: 18px; }
.footer-bottom button { border: 0; background: transparent; color: #7d8994; cursor: pointer; font-size: inherit; }
.footer-bottom button:hover { color: #fff; }

.modal { position: fixed; inset: 0; z-index: 20000; display: grid; place-items: center; padding: 20px; opacity: 0; visibility: hidden; transition: opacity .3s,visibility .3s; }
.modal.open { opacity: 1; visibility: visible; }
.modal-backdrop { position: absolute; inset: 0; background: rgba(3,5,8,.86); backdrop-filter: blur(13px); }
.modal-panel { position: relative; z-index: 2; width: min(780px,100%); max-height: 86svh; overflow-y: auto; background: #0d131c; border: 1px solid var(--line); padding: clamp(30px,5vw,60px); box-shadow: var(--shadow); transform: translateY(20px); transition: transform .35s var(--ease); }
.modal.open .modal-panel { transform: none; }
.modal-close { position: absolute; right: 20px; top: 18px; width: 40px; height: 40px; border: 1px solid var(--line); background: transparent; color: #fff; font-size: 1.4rem; cursor: pointer; }
.modal-kicker { color: var(--cyan); font-size: .53rem; letter-spacing: .24em; }
.modal-panel h2 { margin-top: 13px; font-family: var(--serif); font-size: 3.1rem; font-weight: 500; }
.modal-panel > small { display: block; margin-top: 8px; color: var(--muted); font-size: .62rem; }
.modal-content { margin-top: 35px; color: #aeb8c3; line-height: 1.75; font-size: .8rem; }
.modal-content h3 { margin: 24px 0 8px; color: #fff; font-family: var(--serif); font-size: 1.35rem; font-weight: 500; }

.reveal { opacity: 0; transform: translateY(38px); transition: opacity .9s var(--ease),transform .9s var(--ease); }
.reveal.in-view { opacity: 1; transform: none; }
.reveal-text { opacity: .2; transition: opacity 1s var(--ease); }
.reveal-text.in-view { opacity: 1; }

@media (max-width: 1120px) {
  .main-nav { gap: 18px; }
  .main-nav > a:not(.nav-cta):not(.nav-client) { display: none; }
  .principle-grid, .why-pillars { grid-template-columns: repeat(2,1fr); }
  .manifesto-grid { grid-template-columns: .5fr 1.5fr; }
  .manifesto-aside { grid-column: 2; margin-top: 0; }
  .curve-grid, .economics-grid, .why-grid, .legacy-grid, .lapidation-grid { grid-template-columns: 1fr; }
  .gem-scene { height: 460px; }
  .loop-layout { grid-template-columns: .85fr 1.15fr; gap: 35px; }
  .transformation-shell { grid-template-columns: 1fr; }
  .transformation-media { grid-row: auto; min-height: 560px; }
  .transformation-tabs, .transformation-detail { border-left: 0; }
  .contact-grid { grid-template-columns: 1fr; }
  .contact-form { max-width: 750px; }
}

@media (max-width: 820px) {
  .container { width: min(calc(100% - 32px), var(--container)); }
  .section { padding: 92px 0; }
  .site-header { padding: 15px 16px; }
  .site-header.scrolled { padding: 10px 16px; }
  .brand-mark { width: 40px; }
  .main-nav { position: fixed; inset: 0; display: flex; flex-direction: column; align-items: flex-start; justify-content: center; gap: 24px; padding: 90px 28px; background: rgba(8,10,15,.97); transform: translateX(100%); transition: transform .5s var(--ease); }
  .main-nav.open { transform: none; }
  .main-nav > a:not(.nav-cta):not(.nav-client) { display: block; font-family: var(--serif); font-size: 2.2rem; letter-spacing: 0; text-transform: none; color: #fff; }
  .main-nav .nav-client { margin-top: 12px; padding: 12px 15px; color: #c1cad4; }
  .main-nav .nav-cta { margin-top: 0; }
  .menu-toggle { display: block; }
  .hero-media { inset: 0; opacity: .46; }
  .hero-overlay { background: linear-gradient(to top,#0A0D12 0%,rgba(10,13,18,.84) 45%,rgba(10,13,18,.5) 100%); }
  .hero-content { padding-top: 130px; }
  .hero-title { font-size: clamp(3.4rem,16vw,6.4rem); }
  .hero-copy { font-size: .95rem; }
  .hero-proof { display: grid; grid-template-columns: 1fr 1fr; }
  .hero-proof > div { padding: 18px 16px 0 0; }
  .hero-proof > div + div { padding-left: 16px; }
  .hero-proof > div:last-child { grid-column: 1 / -1; border-left: 0; padding-left: 0; }
  .hero-side-note { display: none; }
  .manifesto-grid, .positioning-grid, .value-heading, .transformation-heading, .foundations-heading { grid-template-columns: 1fr; gap: 30px; }
  .manifesto-aside { grid-column: auto; }
  .manifesto-visual { min-height: 400px; }
  .principle-grid, .value-grid, .foundation-cards { grid-template-columns: 1fr; }
  .approach-heading { display: block; }
  .approach-heading .section-intro { margin-top: 25px; }
  .loop-layout { grid-template-columns: 1fr; }
  .loop-rail { grid-template-columns: repeat(3,1fr); border-left: 1px solid var(--line); }
  .loop-step { grid-template-columns: 1fr; padding: 12px; min-height: 72px; border-right: 1px solid var(--line); }
  .loop-step b { font-size: .57rem; }
  .loop-stage { min-height: 450px; }
  .loop-list { grid-template-columns: 1fr; }
  .loop-infinity { width: 90px; }
  .transformation-media { min-height: 440px; }
  .economic-flow { grid-template-columns: 1fr; }
  .economic-flow > b { transform: rotate(90deg); justify-self: center; }
  .gem-scene { height: 400px; }
  .gem { transform: scale(.8); }
  .legacy-image { min-height: 460px; }
  .footer-top { grid-template-columns: 1fr; }
  .footer-links { justify-content: flex-start; }
}

@media (max-width: 560px) {
  .hero-title { font-size: 3.75rem; }
  .hero-actions { display: grid; }
  .button { width: 100%; }
  .section-title { font-size: 3rem; }
  .manifesto-main { font-size: 3rem; }
  .principle-grid, .why-pillars { grid-template-columns: 1fr; }
  .principle-card { min-height: 250px; }
  .principle-card h3 { margin-top: 52px; }
  .curve-columns { grid-template-columns: 1fr; }
  .loop-rail { grid-template-columns: repeat(2,1fr); }
  .transformation-tab { grid-template-columns: 36px 1fr; padding: 18px; }
  .transformation-detail { padding: 30px 20px; }
  .transformation-media { min-height: 380px; }
  .cost-row { grid-template-columns: 1fr 38px; }
  .cost-row small { grid-column: 1 / -1; }
  .comparison-head span, .comparison-row p { padding: 14px 12px; }
  .comparison-row p { font-size: .66rem; }
  .contact-details > * { display: block; }
  .contact-details b { display: block; margin-top: 8px; }
  .form-head { display: block; }
  .form-head small { display: block; margin-top: 8px; text-align: left; }
  .footer-bottom { display: block; }
  .footer-bottom div { margin-top: 12px; }
  .gem-scene { height: 340px; }
  .gem { transform: scale(.65); }
  .lapidation-copy blockquote { font-size: 1.4rem; }
}

@media (pointer: coarse) {
  .cursor { display: none; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
}
