:root {
  --dark: #1d2422;
  --dark-2: #232c29;
  --dark-3: #141a18;
  --light: #f4f6f1;
  --paper: #fbfcf8;
  --green: #45ef65;
  --green-dark: #138d3c;
  --green-deep: #0b7830;
  --ink: #202b25;
  --gray: #5e6a64;
  --line: #d2ddd2;
  --hairline: rgba(255,255,255,.16);
  --max: 1320px;
  --ease: cubic-bezier(.16, 1, .3, 1);
}
* { box-sizing: border-box; }
html { scroll-behavior: smooth; scroll-padding-top: 86px; }
body { margin: 0; font-family: 'Manrope', 'Avenir Next', Inter, system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif; color: var(--ink); background: var(--light); -webkit-font-smoothing: antialiased; }
body.menu-open { overflow: hidden; }
a { color: inherit; text-decoration: none; }
button, input, textarea { font: inherit; }
button { cursor: pointer; }
button, a, input, textarea, summary { -webkit-tap-highlight-color: transparent; }
:focus-visible { outline: 3px solid #11ba3d; outline-offset: 5px; }
::selection { color: #111b16; background: var(--green); }
[hidden] { display: none !important; }
.container { width: min(calc(100% - 112px), var(--max)); margin: 0 auto; }
.skip-link { position: fixed; left: 18px; top: -100px; z-index: 1000; color: #111; background: var(--green); padding: 12px 17px; border-radius: 6px; }
.skip-link:focus { top: 14px; }

/* Navigation. The actual unedited logo contains dark type; it always sits on light paper. */
.site-header { height: 86px; position: fixed; z-index: 100; inset: 0 0 auto; background: rgba(249,251,247,.965); box-shadow: 0 1px 0 rgba(35,51,41,.07); backdrop-filter: blur(22px); transition: box-shadow .25s, background .25s; }
.site-header.scrolled { box-shadow: 0 9px 40px rgba(10,26,16,.1); }
.nav-wrap { height: 100%; display: flex; align-items: center; gap: 44px; justify-content: space-between; }
.brand { flex-shrink: 0; display: flex; align-items: center; width: 166px; }
.brand img { display: block; width: 166px; height: auto; }
.desktop-nav { display: flex; align-items: center; gap: clamp(16px,2.1vw,38px); margin-left: auto; }
.desktop-nav a { position: relative; font-weight: 700; font-size: 12px; letter-spacing: .01em; color: #3c4740; transition: color .2s; padding: 10px 0; }
.desktop-nav a:hover, .desktop-nav a.current { color: var(--green-deep); }
.desktop-nav a:after { content: ''; position: absolute; height: 2px; left: 0; bottom: 4px; width: 0; background: var(--green-dark); transition: width .3s; }
.desktop-nav a:hover:after, .desktop-nav a.current:after { width: 100%; }
.btn { display: inline-flex; justify-content: space-between; align-items: center; gap: 28px; padding: 17px 22px; border-radius: 3px; border: 1px solid transparent; font-weight: 800; font-size: 13px; transition: background .25s, color .25s, transform .25s, box-shadow .25s; }
.btn:hover { transform: translateY(-2px); box-shadow: 0 10px 24px rgba(7,87,34,.16); }
.btn-neon { background: var(--green); color: #15241a; }
.btn-neon:hover { background: #8bfb9d; }
.btn span { font-size: 18px; line-height: 1; font-weight: 600; }
.nav-contact { font-size: 11px; padding: 14px 16px; gap: 15px; }
.menu-toggle { display: none; border: 0; background: transparent; width: 44px; height: 44px; padding: 12px 6px; flex-direction: column; justify-content: center; gap: 7px; }
.menu-toggle span { display: block; height: 2px; width: 100%; background: #1c2820; transition: transform .25s; }
.menu-toggle[aria-expanded='true'] span:first-child { transform: translateY(4.5px) rotate(45deg); }
.menu-toggle[aria-expanded='true'] span:last-child { transform: translateY(-4.5px) rotate(-45deg); }
.mobile-menu { position: fixed; inset: 86px 0 auto; min-height: calc(100dvh - 86px); background: var(--paper); padding: 42px 7vw; box-shadow: 0 15px 26px #0002; }
.mobile-menu a { border-bottom: 1px solid var(--line); padding: 18px 0; font-size: 22px; font-weight: 800; display: flex; justify-content: space-between; }
.mobile-menu a span { color: var(--green-deep); }

/* Reusable editorial grammar */
section { position: relative; overflow: hidden; }
.section { padding: clamp(96px, 10vw, 152px) 0; }
.section-content { position: relative; }
.light { background: var(--light); color: var(--ink); }
.dark { background: var(--dark); color: #eaf0e9; }
.texture:before { content: ''; position: absolute; inset: 0; pointer-events: none; opacity: .115; background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 100 100' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.3'/%3E%3C/svg%3E"); mix-blend-mode: multiply; }
.dark.texture:before { opacity: .10; mix-blend-mode: screen; }
.light-grid:after { content: ''; position: absolute; inset: 0; pointer-events: none; opacity: .2; background-image: linear-gradient(to right,rgba(69,100,70,.14) 1px,transparent 1px),linear-gradient(to bottom,rgba(69,100,70,.12) 1px,transparent 1px); background-size: 112px 112px; mask-image: linear-gradient(90deg,transparent 0%,black 40%,black 100%); }
.dark-lines:after { content: ''; position: absolute; pointer-events: none; inset: 0; opacity: .35; background: radial-gradient(ellipse at 92% 10%, rgba(32,115,55,.23), transparent 44%),linear-gradient(90deg,transparent 0, transparent 96%,rgba(255,255,255,.025) 96%); }
.section > .container { position: relative; z-index: 2; }
.eyebrow { color: #42534a; font-size: 11px; font-weight: 800; letter-spacing: .13em; margin: 0 0 30px; text-transform: uppercase; display: flex; align-items: center; gap: 12px; }
.eyebrow.light-label { color: #a8b8ae; }
.eyebrow-line { display: inline-block; height: 1px; width: 29px; background: var(--green); }
h1,h2,h3,h4,p { margin-top: 0; }
h1,h2,h3 { text-wrap: balance; }
.title { font-size: clamp(45px, 5.6vw, 88px); line-height: 1.03; letter-spacing: -.069em; font-weight: 800; margin: 0; color: var(--green-dark); }
.dark .title { color: var(--green); }
.title-dot { color: var(--ink); }
.dark .title-dot { color: #f5fff5; }
.split-heading { display: grid; grid-template-columns: minmax(0,1.5fr) minmax(270px,.65fr); gap: 48px; align-items: end; margin-bottom: 70px; }
.section-intro { font-size: clamp(15px,1.25vw,18px); line-height: 1.85; color: #57685e; margin: 0 0 5px; max-width: 430px; }
.section-intro.light-text { color: #b8c5bb; }
/* Conteúdo nunca deve depender do JavaScript para ficar visível. */
.reveal { opacity: 1; transform: none; }
@media (prefers-reduced-motion: no-preference) {
  .reveal.visible { animation: soft-enter .58s var(--ease) both; }
}
@keyframes soft-enter {
  from { opacity: .78; transform: translateY(10px); }
  to { opacity: 1; transform: none; }
}

/* Hero */
.hero { min-height: min(880px, 100svh); padding-top: 155px; background: linear-gradient(125deg,#1b221f 0%,#242e29 62%,#19221d 100%); display: flex; flex-direction: column; justify-content: space-between; }
.hero-backdrop { position: absolute; inset: 0; opacity: .7; background: radial-gradient(ellipse at 80% 48%, rgba(32,159,65,.13), transparent 52%),linear-gradient(125deg, transparent 0 69%,rgba(81,213,93,.025) 69.1% 69.15%,transparent 69.2%); }
.hero-layout { display: grid; grid-template-columns: minmax(0,1.15fr) minmax(350px,.8fr); gap: 35px; align-items: center; flex: 1; position: relative; z-index: 2; }
.hero-content { padding: 40px 0 50px; position: relative; z-index: 3; }
.hero h1 { font-size: clamp(51px, 5.65vw, 91px); line-height: 1.015; letter-spacing: -.072em; color: var(--green); font-weight: 800; margin: 0 0 28px; max-width: 880px; }
.hero h1 span { color: #f0f5ee; }
.hero-description { font-size: clamp(16px,1.32vw,19px); line-height: 1.8; color: #bac5bb; max-width: 590px; margin-bottom: 35px; }
.hero-actions { display: flex; align-items: center; flex-wrap: wrap; gap: 30px; }
.text-link { font-weight: 800; font-size: 12px; display: inline-flex; align-items: center; gap: 15px; }
.text-link span { font-size: 20px; }
.light-link { color: #e5ece5; }
.light-link:hover { color: var(--green); }
.hero-art { position: relative; width: 100%; aspect-ratio: 1; max-width: 570px; margin-inline: auto; overflow: hidden; }
.hero-art-grid { position: absolute; inset: 4%; border-radius: 50%; background-image: linear-gradient(rgba(106,165,113,.085) 1px, transparent 1px),linear-gradient(90deg,rgba(106,165,113,.085) 1px, transparent 1px); background-size: 28px 28px; mask-image: radial-gradient(circle,black 40%,transparent 75%); }
.orbital { border-radius: 50%; position: absolute; border: 1px solid rgba(142,248,161,.38); }
.orbit-large { inset: 6%; border-right-color: var(--green); box-shadow: 0 0 0 1px #44ef6410; animation: orbit 40s linear infinite; }
.orbit-large:before,.orbit-large:after { content: ''; position: absolute; border-radius: 50%; background: var(--green); box-shadow: 0 0 25px rgba(69,239,101,.6); }
.orbit-large:before { width: 12px; height: 12px; left: 16%; top: 13%; }
.orbit-large:after { width: 6px; height: 6px; right: 8%; bottom: 22%; }
.orbit-inner { inset: 21%; border-color: rgba(125,184,135,.32); border-top-color: rgba(87,244,113,.9); transform: rotate(-32deg); }
.orbit-inner:before { content:'';position:absolute; inset:18%;border:1px dashed rgba(130,191,140,.22);border-radius:50%; }
.orbit-tick { position: absolute; background: var(--green); opacity: .8; height: 1px; width: 45px; }
.tick-a { right: 2%; top: 54%; transform: rotate(-37deg); }
.tick-b { left: 6%; bottom: 31%; transform: rotate(47deg); }
.hero-mark { position:absolute; inset: 34% 13%; display:flex; flex-direction:column; align-items:center; justify-content:center; }
.hero-mark span { color: #dcf8e0; font-weight: 800; letter-spacing: -.09em; font-size: clamp(46px,5vw,91px); }
.hero-mark small { color: #84d792; font-size: 9px; letter-spacing: .16em; font-weight: 700; text-transform: uppercase; margin-top: 8px; }
.orbit-meta { position: absolute; color: #839c88; font-size: 9px; letter-spacing: .12em; text-transform: uppercase; }
.orbit-meta-top { right: 0; top: 14%; }
.orbit-meta-bottom { left: 0; bottom: 10%; }
.hero-bottom { position: relative; z-index: 2; border-top: 1px solid rgba(255,255,255,.15); display:flex; align-items: center; justify-content:space-between; gap:20px; color: #a0afa2; font-size: 10px; letter-spacing: .02em; padding-top: 20px; padding-bottom: 28px; }
.hero-bottom a { font-size: 22px; color: var(--green); }

/* About */
.about-layout { display:grid; grid-template-columns: minmax(0,.9fr) minmax(0,1.1fr); gap: clamp(60px,9vw,160px); }
.about-body { padding: 8px 0 0; }
.about-body .lead { font-size: clamp(26px,2.6vw,43px); font-weight: 500; letter-spacing: -.045em; line-height: 1.38; margin: 0 0 28px; }
.about-body .lead strong { font-weight: 800; }
.about-body > p:not(.lead):not(.manifesto) { color: #5b6c61; font-size: 17px; line-height: 1.9; max-width: 560px; }
.keyline { width: 100%; height: 1px; background: #cbd8ce; margin: 40px 0 27px; }
.manifesto { font-size: 19px; line-height: 1.65; font-weight: 500; letter-spacing: -.02em; margin-bottom: 0; }
.manifesto strong { font-weight: 800; color: var(--green-deep); }
.editorial-footer { margin-top: 114px; border-top: 1px solid #ccd7cb; display:flex; justify-content: space-between; padding-top: 20px; color: #879b8c; font-size: 11px; text-transform: uppercase; letter-spacing: .11em; font-weight: 800; }

/* Pain points */
.problem-heading { max-width: 1080px; }
.problem-heading .title { font-size: clamp(41px,5.1vw,75px); }
.problem-grid { margin-top: 70px; display:grid; grid-template-columns: 1fr 1fr; border-top: 1px solid var(--hairline); }
.problem-grid p { margin: 0; border-bottom: 1px solid var(--hairline); padding: 24px 26px 24px 0; display:flex; gap: 25px; color: #e6ece6; font-size: clamp(15px,1.35vw,18px); line-height: 1.65; font-weight: 500; }
.problem-grid p:nth-child(odd) { border-right: 1px solid var(--hairline); }
.problem-grid p:nth-child(even) { padding-left: 35px; }
.problem-grid p span { color: var(--green); font-size: 11px; margin-top:5px; font-weight:800; }
.problem-conclusion { margin: 50px 0 0; max-width: 830px; color: #adbeb1; font-size: clamp(22px,2.5vw,37px); letter-spacing: -.045em; line-height:1.45; }
.problem-conclusion strong { color: var(--green); }

/* Service index */
.service-overview { border-top:1px solid #c7d7c9; }
.service-overview-item { display:grid; grid-template-columns: 140px 1fr 60px; align-items:center; gap:35px; padding: 35px 0; border-bottom: 1px solid #c7d7c9; transition: padding .3s, background .3s; }
.service-overview-item:hover { padding-left: 17px; background: #e9f2e9; }
.overview-num { color:var(--green-dark); font-size:12px; font-weight:800; letter-spacing: .08em; }
.service-overview-item h3 { color:#26372d; font-size:clamp(24px,2.65vw,42px); letter-spacing:-.055em; font-weight:800; margin:0 0 5px; }
.service-overview-item p { color: #637368; margin:0; font-size:14px; line-height:1.6; }
.overview-arrow { color:var(--green-dark); font-size: 26px; text-align:right; }

/* Strategy rows */
.strategy-stack { border-top:1px solid var(--hairline); }
.strategy-row { display:grid; grid-template-columns:90px 1fr 42px; gap:36px; padding: 42px 0; border-bottom: 1px solid var(--hairline); }
.strategy-index { font-size:11px; color:var(--green); font-weight:800; padding-top: 7px; }
.strategy-copy h3 { color:#edf4ed; font-size:clamp(25px,2.75vw,43px); font-weight:800; letter-spacing:-.055em; margin-bottom:9px; }
.strategy-copy p { color:#bbc8bd; font-size:15px; line-height:1.75; margin:0 0 23px; }
.tag-list { display:flex; flex-wrap:wrap; gap:8px; }
.tag-list span { border:1px solid #4d5d50; padding:9px 12px; color:#9fb4a4; font-size:10px; font-weight:700; border-radius: 2px; }
.strategy-symbol { color:var(--green); font-size:24px; }

/* Audiovisual cards */
.audiovisual-grid { display:grid; grid-template-columns:repeat(3, minmax(0,1fr)); gap:20px; }
.av-card { border: 1px solid #d4dfd4; padding: 20px 20px 28px; background: rgba(255,255,255,.61); border-radius:3px; transition:box-shadow .3s, transform .3s; }
.av-card:hover { transform: translateY(-4px); box-shadow:0 17px 40px rgba(20,59,25,.1); }
.card-index { font-size:10px; color:#72947a; font-weight:800; letter-spacing:.13em; }
.av-graphic { margin:18px 0 24px; height: 205px; background: #dce6dc; position:relative; overflow:hidden; display:flex; align-items:center; justify-content:center; }
.av-graphic:before {content:'';position:absolute; inset:0; background:linear-gradient(90deg,transparent 24.7%,rgba(37,74,44,.09) 24.8% 25%,transparent 25.1% 49.7%,rgba(37,74,44,.09) 49.8% 50%,transparent 50.1% 74.7%,rgba(37,74,44,.09) 74.8% 75%,transparent 75.1%),linear-gradient(transparent 24.7%,rgba(37,74,44,.09) 24.8% 25%,transparent 25.1% 49.7%,rgba(37,74,44,.09) 49.8% 50%,transparent 50.1% 74.7%,rgba(37,74,44,.09) 74.8% 75%,transparent 75.1%);}
.av-graphic .graphic-word { position:absolute; font-size:10px; color:#405d46; bottom:14px; left:15px; font-weight:800; letter-spacing:.1em; text-transform:uppercase; }
.av-card h3 { font-size:17px; font-weight:800; letter-spacing:-.035em; color:#1e3225; line-height:1.3; margin:0 0 10px; }
.av-card p { font-size:13px; color:#596b5e; line-height:1.85; margin:0; }
.minor-tags { border-top:1px solid #d6dfd5; margin-top:20px; padding-top:12px; font-size:10px; color:#79897a; line-height:1.8; }
.mock-phone { position:relative; width:95px; height:155px; border: 7px solid #233d2d; border-radius:14px; background:#bdf9c9; display:flex; flex-direction:column; padding:13px 8px; transform:rotate(-9deg); box-shadow:18px 15px 0 #83ac8a; }
.mock-phone span { font-size:30px; font-weight:800; color:#193c27; letter-spacing:-.1em; }
.mock-phone i { display:block; width:100%; height:2px; margin-top:13px; background:#4c845d; }
.mock-phone i:last-child { width:62%; }
.graphic-video { background: #c4d5c7; }
.frame-outline { width:68%; height:62%; border:1.5px solid #2c5734; outline: 1px solid rgba(24,55,28,.25); outline-offset:9px; }
.play-symbol { position:absolute; width:0; height:0; border-top:22px solid transparent;border-bottom:22px solid transparent;border-left:32px solid #2b6b38; margin-left:8px; }
.graphic-photo { background: #d6e8d8; }
.lens-ring { width:135px;height:135px;border:20px solid #2c5134;box-shadow:0 0 0 8px #7fab84,0 0 0 18px #b2c9b7;border-radius:50%; }
.viewfinder { position:absolute;width:32px;height:32px;border-top:2px solid #2b6b38;border-left:2px solid #2b6b38;top:30px;left:45px; }
.viewfinder.b { transform:rotate(180deg);top:auto;left:auto;right:45px;bottom:30px; }
.graphic-event { background: #d7e7cf; }
.event-lines { display:flex;align-items:flex-end;gap:10px;height:120px; }
.event-lines span { width:22px;background:#426e47;height:80%;border-radius:1px; }
.event-lines span:nth-child(2) { height:60%;background:#83bd7c; }
.event-lines span:nth-child(3) { height:100%;background:#1c5336; }
.event-lines span:nth-child(4) { height:35%;background:#6ca76b; }
.graphic-motion { background:#cfe2d0; }
.motion-ring { position:absolute; width:175px;height:175px;border:2px solid #528f5d;border-radius:50%; }
.motion-ring.ring-one { transform:translateX(-40px) skewX(-13deg); }
.motion-ring.ring-two { transform:translateX(30px) skewX(12deg);border-color:#245c32; }
.graphic-ai { background:#c7dbc7; }
.ai-grid { display:grid;grid-template-columns:repeat(3,28px);grid-template-rows:repeat(3,28px);gap:8px;transform:rotate(-12deg); }
.ai-grid span { background:#1f4e31; }
.ai-grid span:nth-child(2),.ai-grid span:nth-child(4),.ai-grid span:nth-child(9) { background:#71c983; }
.ai-grid span:nth-child(5) { background:#a8f8b4; }

/* Design */
.design-layout { display:grid; grid-template-columns: 1fr 1fr; align-items:center; gap:70px; }
.design-subtitle { color:var(--green);font-size:11px;font-weight:800;letter-spacing:.13em;margin:24px 0; }
.design-copy { font-size:clamp(20px,2.2vw,30px);line-height:1.6;max-width:450px;color:#d0dcd0;letter-spacing:-.025em; }
.design-visual { min-height:350px; background:#294034; border:1px solid #44614b; position:relative;overflow:hidden;padding:33px;display:flex;align-items:center; }
.design-visual:before { content:'';position:absolute;inset:0;background:linear-gradient(120deg,transparent 50%,#5de87513 50%),repeating-linear-gradient(0deg,transparent,transparent 56px,#ffffff0c 57px); }
.design-graphic-title { position:relative;z-index:3;font-size:clamp(50px,6vw,100px);font-weight:800;letter-spacing:-.09em;line-height:.94;color:#bcf9c1; }
.design-outline { position:absolute;width:340px;height:340px;border:2px solid #83e394;right:-100px;top:-110px;border-radius:50%; }
.design-visual-bottom { position:absolute;z-index:3;bottom:20px;right:20px;font-size:9px;letter-spacing:.2em;color:#bdd9c2; }
.design-tags { margin-top:60px; padding-top:24px;border-top:1px solid var(--hairline);display:flex;flex-wrap:wrap;gap:9px; }
.design-tags span { color:#b9c8bb;font-weight:700;font-size:11px;border:1px solid #4b5e50;padding:12px 16px; }

/* Project editorial placeholder covers */
.project-intro { display:flex;flex-direction:column;gap:10px; }
.project-intro p { margin:0;color:#506057;line-height:1.7;font-size:15px; }
.project-intro .helper-note { font-size:11px;color:#7d8b80; }
.filter-bar { display:flex;flex-wrap:wrap;gap:8px;margin:0 0 25px; }
.filter { border:1px solid #c7d8ca;padding:12px 16px;font-size:11px;font-weight:800;background:transparent;color:#5e6b62;border-radius:2px;transition: background .2s,color .2s; }
.filter:hover { background:#e0ece1; }
.filter.active { background:#25392c;color:#b4ffbc;border-color:#25392c; }
.project-grid { display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:23px; }
.project-card { border:1px solid #cedbd0; background:#fff; overflow:hidden;transition:transform .3s,box-shadow .3s; }
.project-card:hover { transform:translateY(-5px);box-shadow:0 20px 42px rgba(27,58,29,.13); }
.project-art { height:260px; position:relative; overflow:hidden; background:#1e3a28; }
.art-sup { position:absolute;top:22px;left:22px;color:#dcf5dd;font-size:9px;letter-spacing:.13em;font-weight:800;z-index:3; }
.art-giant { position:absolute;bottom:10px;left:19px;color:#c4ffbf;font-size:clamp(40px,3vw,60px);font-weight:800;letter-spacing:-.09em;z-index:3; }
.art-social { background:radial-gradient(ellipse at right,#72ba6e,#245b35 67%); }
.art-lines {position:absolute;width:170px;height:170px;right:-20px;bottom:45px;border:1px solid #bdf4c9;border-radius:50%;box-shadow:0 0 0 28px #ffffff21,0 0 0 57px #ffffff12;}
.art-av {background:linear-gradient(130deg,#122620,#316c49);}
.art-clapper {position:absolute;right:16%;top:29%;width:45%;height:35%;border:3px solid #cdfcc9;transform:rotate(-8deg);}
.art-clapper span {position:absolute;left:0;top:0;width:100%;height:34%;background:repeating-linear-gradient(125deg,#cdfcc9 0 18px,#234b36 18px 38px);}
.art-photo {background:linear-gradient(135deg,#446a4f,#102b1e);}
.art-photo-circle {position:absolute;right:12%;top:24%;width:144px;height:144px;border:21px solid #8bbd90;box-shadow:0 0 0 12px #ceeccc44,0 0 0 28px #a4f2b01a;border-radius:50%;}
.art-events {background:linear-gradient(130deg,#245538,#638b55);}
.art-event-bars {position:absolute;right:16%;top:18%;display:flex;gap:14px;align-items:flex-end;height:145px;}
.art-event-bars i {width:18px;height:45%;background:#a0eeb0;}
.art-event-bars i:nth-child(2){height:80%}.art-event-bars i:nth-child(3){height:65%}.art-event-bars i:nth-child(4){height:100%}.art-event-bars i:nth-child(5){height:30%}
.art-brand {background:#34483d;}
.art-brand-square {position:absolute;right:12%;top:16%;width:173px;height:173px;background:#4ade72;transform:rotate(19deg);box-shadow:24px 24px 0 #83bfa077;}
.art-motion {background:linear-gradient(130deg,#163225,#2c7644);}
.art-motion-arcs {position:absolute;width:190px;height:190px;right:10%;top:9%;border:2px solid #b1f5bd;border-radius:50%;box-shadow:-26px 0 0 -1px #2c7644,-28px 0 0 0 #aef5bb,-56px 0 0 -1px #2c7644,-58px 0 0 0 #91d5a3;}
.project-info { padding:20px 20px 25px;display:flex;justify-content:space-between;align-items:flex-start;gap:9px; }
.project-info div>span { color:#64816a;font-size:10px;font-weight:800;text-transform:uppercase;letter-spacing:.06em; }
.project-info h3 {font-size:16px;margin:8px 0;color:#223329;font-weight:800;letter-spacing:-.025em;}
.project-info p {font-size:12px;line-height:1.7;color:#607165;margin:0;}
.project-info>span {font-size:20px;color:#1b9c4a;}

/* Work formats */
.work-list { border-top:1px solid var(--hairline); }
.work-row { display:grid;grid-template-columns:70px 1fr 50px;gap:30px;padding:32px 0;border-bottom:1px solid var(--hairline);align-items:start; }
.work-row>span:first-child { color:var(--green);font-size:11px;font-weight:800; }
.work-row h3 { color:#f1f4ee;font-size:clamp(23px,2.9vw,41px);font-weight:800;letter-spacing:-.04em;margin:0 0 9px; }
.work-row p {font-size:15px;line-height:1.7;color:#aabaaa;margin:0;max-width:720px;}
.work-row>span:last-child { color:var(--green);font-size:24px;text-align:right; }

/* Method */
.method-list { border-top:1px solid #cbd9cd; }
.method-list article { display:grid;grid-template-columns:130px 1fr 40px;gap:20px;align-items:start;padding:34px 0;border-bottom:1px solid #cbd9cd; }
.method-no { color:var(--green-dark);font-weight:800;font-size:13px; }
.method-list h3 {font-size:clamp(23px,3vw,45px);letter-spacing:-.06em;font-weight:800;color:#1e3326;margin:0 0 8px; }
.method-list p {font-size:14px;line-height:1.7;color:#647568;max-width:810px;margin:0;}
.method-end {color:var(--green-dark);font-size:24px;}

/* Journey */
.journey-grid { display:grid;grid-template-columns:1fr 1fr;gap:15px; }
.journey-grid article { border:1px solid #4b5b4f;padding:36px 32px;min-height:210px;background:rgba(255,255,255,.02); }
.journey-grid article>span {display:block;color:var(--green);font-weight:800;font-size:11px;margin-bottom:34px;}
.journey-grid h3 {color:#eff3ed;font-size:clamp(18px,2.2vw,28px);letter-spacing:-.035em;font-weight:800;margin-bottom:11px;}
.journey-grid p {color:#bcc9bc;font-size:14px;line-height:1.75;margin:0;max-width:540px;}

/* FAQ */
.faq-layout { display:grid;grid-template-columns:.8fr 1.2fr;gap:clamp(60px,8vw,140px); }
.faq-aside {color:#6c7f71;font-size:14px;margin-top:26px;}
.faq-items {border-top:1px solid #ccdace;}
.faq-items details { border-bottom:1px solid #ccdace; }
.faq-items summary {list-style:none;display:flex;justify-content:space-between;align-items:center;gap:30px;padding:24px 0;font-weight:800;font-size:14px;color:#283b2d;line-height:1.6;cursor:pointer; }
.faq-items summary::-webkit-details-marker {display:none;}
.faq-items summary span {flex-shrink:0;color:var(--green-dark);font-size:24px;font-weight:400;transition:transform .25s;}
.faq-items details[open] summary span {transform:rotate(45deg);}
.faq-items details p {color:#637367;font-size:14px;line-height:1.9;max-width:660px;margin:0;padding-bottom:26px;}

/* Assessment */
.contact-layout {display:grid;grid-template-columns:.9fr 1fr;gap:clamp(54px,9vw,150px);align-items:start;}
.contact-section .title {font-size:clamp(41px,5.1vw,76px);}
.contact-section .contact-lead {font-size:clamp(20px,2vw,28px);color:#f5fff2;line-height:1.4;letter-spacing:-.03em;margin-top:30px;}
.contact-section .contact-layout>div:first-child>p:not(.eyebrow):not(.contact-lead) {font-size:14px;line-height:1.85;color:#b8c5b9;max-width:490px;}
.contact-signature {margin-top:65px;border-top:1px solid #ffffff2b;padding-top:22px;font-size:18px;font-weight:800;letter-spacing:-.05em;color:#d4e6d4;}
/* Avaliação externa — arte conceitual editorial, sem formulário incorporado */
.assessment-visual {
  position:relative; min-width:0; width:100%; aspect-ratio:1.09;
  border:1px solid rgba(145,226,153,.22);
  background:linear-gradient(140deg,rgba(69,239,101,.065),rgba(11,29,18,.12) 52%,rgba(98,154,106,.07));
  display:flex; flex-direction:column; justify-content:space-between;
  overflow:hidden; padding:clamp(17px,2.2vw,28px);
  box-shadow:inset 0 1px rgba(225,255,228,.08);
}
.assessment-visual::before {content:'';position:absolute;inset:0;pointer-events:none;opacity:.32;
  background-image:linear-gradient(90deg,rgba(116,183,127,.08) 1px,transparent 1px),linear-gradient(rgba(116,183,127,.08) 1px,transparent 1px);
  background-size:38px 38px;
  mask-image:radial-gradient(circle at 50% 51%,black 28%,transparent 84%);
}
.assessment-visual-top,.assessment-visual-bottom {position:relative;z-index:2;display:flex;justify-content:space-between;gap:14px;
  font-size:clamp(8px,.75vw,11px);letter-spacing:.13em;font-weight:800;color:#9cbaa4;}
.assessment-visual-bottom {color:#779e80;}
.assessment-visual-stage {position:absolute;inset:14% 9% 12%;display:grid;place-items:center;}
.assessment-orbit {position:absolute;left:50%;top:50%;border-radius:50%;border:1px solid rgba(97,176,114,.33);transform:translate(-50%,-50%);}
.assessment-orbit.orbit-out {width:min(86%,355px);aspect-ratio:1;border-color:rgba(112,187,126,.25);}
.assessment-orbit.orbit-mid {width:min(63%,265px);aspect-ratio:1;border-color:rgba(137,238,152,.53);}
.assessment-orbit.orbit-in {width:min(39%,165px);aspect-ratio:1;border-color:rgba(141,245,159,.4);}
.assessment-axis {position:absolute;background:rgba(127,192,138,.18);}
.assessment-axis.axis-horizontal {width:100%;height:1px;top:50%;}
.assessment-axis.axis-vertical {height:100%;width:1px;left:50%;}
.assessment-focus {position:absolute;left:50%;top:50%;width:19px;height:19px;transform:translate(-50%,-50%);border:1px solid var(--green);border-radius:50%;display:grid;place-items:center;box-shadow:0 0 0 9px rgba(69,239,101,.045);}
.assessment-focus-core {width:6px;height:6px;background:var(--green);border-radius:50%;box-shadow:0 0 20px rgba(69,239,101,.5);}
.assessment-node {position:absolute;width:7px;height:7px;background:var(--green);border-radius:50%;box-shadow:0 0 0 5px rgba(69,239,101,.1);}
.assessment-node.node-top {top:13%;left:50%;}
.assessment-node.node-left {left:16%;top:50%;}
.assessment-node.node-right {right:16%;top:50%;}
.assessment-label {position:absolute;font-weight:700;font-size:clamp(8px,.67vw,10px);letter-spacing:.09em;color:#a0bbaa;}
.assessment-label.label-top {top:4%;left:50%;transform:translateX(-50%);}
.assessment-label.label-left {bottom:17%;left:1%;}
.assessment-label.label-right {bottom:17%;right:0;}
.assessment-center-label {position:absolute;top:59%;left:50%;transform:translateX(-50%);text-align:center;line-height:1.4;font-size:clamp(12px,1.05vw,16px);font-weight:700;color:#e1f0e3;letter-spacing:-.02em;}
.assessment-center-line {display:block;width:22px;height:2px;background:var(--green);margin:11px auto 0;}
@media (hover:hover) and (pointer:fine) and (prefers-reduced-motion:no-preference) {
  .assessment-visual-stage {transition:transform .6s cubic-bezier(.2,.75,.2,1);}
  .assessment-visual:hover .assessment-visual-stage {transform:translateY(-5px);}
  .assessment-focus {transition:box-shadow .4s ease;}
  .assessment-visual:hover .assessment-focus {box-shadow:0 0 0 13px rgba(69,239,101,.09);}
}

/* Footer */
.footer {position:relative;background:#121915;color:#e1e9e2;padding:48px 0 28px;}
.footer-inner {position:relative;display:grid;grid-template-columns:1fr 1fr 55px;gap:30px;align-items:center;padding-bottom:40px;}
.footer-logo {display:inline-flex;align-items:center;justify-content:center;background:transparent;padding:0;width:max-content;}
.footer-logo img {width:205px;height:auto;display:block;}
.footer-inner p {font-size:13px;color:#c1cec2;margin:0 0 8px;}
.footer-inner p:last-child {color:var(--green);font-weight:800;}
.back-top {width:48px;height:48px;border:1px solid #516653;display:flex;align-items:center;justify-content:center;color:var(--green);font-size:24px;transition:background .2s;}
.back-top:hover {background:#304c35;}
.footer-bottom {position:relative;border-top:1px solid #314034;padding-top:25px;display:flex;justify-content:space-between;gap:25px;color:#6e8773;font-size:9px;font-weight:800;letter-spacing:.13em;}
.toast {position:fixed;right:22px;bottom:22px;z-index:200;padding:17px 22px;color:#193421;background:#e2ffe5;border:1px solid #72e484;box-shadow:0 8px 35px rgba(0,0,0,.18);font-size:12px;font-weight:800;opacity:0;transform:translateY(12px);pointer-events:none;transition:.25s;max-width:min(350px,90vw);}
.toast.show {opacity:1;transform:none;}

@keyframes orbit { from {transform:rotate(0deg)} to {transform:rotate(360deg)} }

@media (max-width:1100px) {
  .container {width:min(calc(100% - 72px),var(--max));}
  .desktop-nav {gap:16px;}
  .nav-wrap {gap:22px;}
  .brand,.brand img {width:150px;}
  .hero-layout {grid-template-columns:1fr .65fr;gap:5px;}
  .hero h1 {font-size:clamp(47px,5.6vw,75px);}
  .hero-art {margin-right:-20%;}
  .audiovisual-grid,.project-grid {grid-template-columns:repeat(2,minmax(0,1fr));}
  .design-layout {gap:45px;}
}
@media (max-width:850px) {
  html {scroll-padding-top:74px;}
  .site-header {height:74px;}
  .nav-wrap {height:74px;}
  .nav-contact,.desktop-nav {display:none;}
  .menu-toggle {display:flex;margin-left:auto;}
  .mobile-menu {top:74px;min-height:calc(100dvh - 74px);}
  .container {width:calc(100% - 54px);}
  .hero {min-height:810px;padding-top:112px;}
  .hero-layout {display:flex;flex-direction:column;justify-content:center;gap:12px;align-items:stretch;}
  .hero-content {padding:5px 0;}
  .hero h1 {font-size:clamp(44px,8vw,77px);max-width:650px;}
  .hero-art {width: min(420px,75vw);aspect-ratio: 1;margin:-10px auto 10px;}
  .split-heading,.about-layout,.faq-layout,.contact-layout,.design-layout {grid-template-columns:1fr;gap:35px;}
  .section-intro {max-width:700px;}
  .split-heading {margin-bottom:48px;}
  .about-layout {gap:35px;}
  .about-body {max-width:770px;}
  .editorial-footer {margin-top:65px;}
  .section {padding:90px 0;}
  .strategy-row {grid-template-columns:65px 1fr 24px;gap:24px;}
  .footer-inner {grid-template-columns:1fr 1fr 40px;}
}
@media (max-width:600px) {
  .container {width:calc(100% - 36px);}
  .brand,.brand img {width:136px;}
  .site-header,.nav-wrap {height:68px;}
  .mobile-menu {top:68px;min-height:calc(100dvh - 68px);}
  .section {padding:76px 0;}
  .title {font-size:clamp(39px,10.7vw,61px);letter-spacing:-.06em;}
  .eyebrow {font-size:10px;margin-bottom:20px;}
  .hero {padding-top:99px;min-height:760px;}
  .hero h1 {font-size:clamp(42px,10.7vw,67px);}
  .hero-description {font-size:14px;line-height:1.75;}
  .hero-actions {gap:20px;}
  .hero-art {width:min(340px,80vw);margin:0 auto;}
  .hero-mark span {font-size:42px;}
  .hero-bottom {font-size:9px;flex-wrap:wrap;}
  .hero-bottom span:nth-child(2) {display:none;}
  .about-body .lead {font-size:29px;}
  .about-body >p:not(.lead):not(.manifesto) {font-size:14px;}
  .manifesto {font-size:17px;}
  .editorial-footer {gap:10px;font-size:9px;}
  .problem-heading .title {font-size:clamp(38px,9.4vw,57px);}
  .problem-grid {grid-template-columns:1fr;margin-top:40px;}
  .problem-grid p:nth-child(odd) {border-right:0;}
  .problem-grid p:nth-child(even) {padding-left:0;}
  .problem-grid p {font-size:14px;padding:20px 0;}
  .problem-conclusion {font-size:24px;}
  .service-overview-item {grid-template-columns:38px 1fr 24px;gap:11px;padding:25px 0;}
  .service-overview-item h3 {font-size:24px;}
  .service-overview-item p {font-size:12px;}
  .overview-arrow {font-size:19px;}
  .strategy-row {grid-template-columns:34px 1fr;gap:15px;padding:29px 0;}
  .strategy-symbol {display:none;}
  .strategy-copy h3 {font-size:26px;}
  .strategy-copy p {font-size:13px;}
  .tag-list span {font-size:9px;}
  .audiovisual-grid,.project-grid,.journey-grid {grid-template-columns:1fr;}
  .av-graphic {height:235px;}
  .av-card {padding:15px 15px 28px;}
  .design-visual {min-height:265px;}
  .design-graphic-title {font-size:68px;}
  .design-tags {margin-top:35px;}
  .project-art {height:270px;}
  .art-giant {font-size:57px;}
  .work-row {grid-template-columns:34px 1fr 16px;gap:10px;padding:25px 0;}
  .work-row h3 {font-size:24px;}
  .work-row p {font-size:12px;}
  .work-row>span:last-child {font-size:18px;}
  .method-list article {grid-template-columns:40px 1fr 18px;gap:12px;padding:26px 0;}
  .method-list h3 {font-size:27px;}
  .method-list p {font-size:12px;}
  .journey-grid article {padding:24px;min-height:auto;}
  .faq-items summary {font-size:12px;}
  .contact-section .title {font-size:clamp(38px,9.8vw,59px);}
  .assessment-visual {max-width:510px;margin-inline:auto;aspect-ratio:1.08;}
  .footer-inner {grid-template-columns:1fr 42px;row-gap:30px;}
  .footer-inner>div {grid-column:1 / -1;grid-row:2;}
  .footer-logo {padding:0;background:transparent;}
  .footer-logo img {width:165px;}
  .footer-bottom {font-size:8px;line-height:1.7;flex-wrap:wrap;}
}
@media (prefers-reduced-motion:reduce) {
  *,*:before,*:after {animation-duration:.01ms !important;animation-iteration-count:1 !important;transition-duration:.01ms !important;scroll-behavior:auto !important;}
  .reveal {opacity:1;transform:none;}
}

/* Navegação adicional somente quando o usuário está sem JavaScript. */
.nojs-nav { padding-top: 108px; padding-bottom: 14px; font-size: 12px; font-weight: 700; line-height: 2; }
.nojs-nav a { text-decoration: underline; text-underline-offset: 3px; }
/* V8 — navegação mobile rolável e foco visível também em fundos escuros. */
.mobile-menu { max-height:calc(100dvh - 86px); overflow-y:auto; overscroll-behavior:contain; }
.dark :focus-visible, .footer :focus-visible, .portfolio-modal :focus-visible {outline-color:var(--green);}
@media (max-height: 520px) and (max-width: 850px) { .mobile-menu { padding-top:12px; padding-bottom:12px; } .mobile-menu a { padding:11px 0; font-size:16px; } }
