@font-face {
  font-family: 'Neue Montreal';
  src: url('./assets/fonts/neue-montreal-regular.woff2') format('woff2');
  font-weight: 400;
  font-style: normal;
  font-display: swap;
}

.edge-content {
  --paper: #fffbf7;
  --ink: #111;
  --muted: #6c6b69;
  --accent: #245be6;
  --pale-blue: #dee8ff;
  --section-gutter: 2.083333vw;
  color-scheme: light;
  color: var(--ink);
  background: var(--paper);
  font-family: 'Neue Montreal', Arial, sans-serif;
  font-size: clamp(16px, .972222vw, 24px);
  line-height: 1.45;
}
.edge-content h2, .edge-content h3, .edge-content p { margin: 0; font-weight: 400; }
.edge-content h2 { font-size: clamp(36px, 3.125vw, 80px); line-height: 1.07; letter-spacing: -.035em; }
.edge-content h3 { font-size: clamp(21px, 1.4vw, 36px); line-height: 1.15; letter-spacing: -.025em; }
.edge-content p { color: var(--muted); }
.edge-content :focus-visible { outline-color: var(--accent); outline-offset: 5px; }
.edge-content section, .edge-content article { scroll-margin-top: 100px; }
.edge-content #solucoes { scroll-margin-top: 0; }
.edge-content figure { margin: 0; }
.edge-content i, .edge-content b { font-style: normal; font-weight: 400; }
.section-pad { padding-left: var(--section-gutter); padding-right: var(--section-gutter); }
.edge-content .eyebrow { color: inherit; font: 400 clamp(10px, .65vw, 15px)/1.6 'Space Mono', monospace; letter-spacing: .09em; margin-bottom: 1.6vw; }
.section-heading { display: grid; grid-template-columns: 1.3fr .7fr; gap: 7vw; align-items: end; margin-bottom: 4.5vw; }
.section-heading p + p { margin-top: 1em; }
.edge-button { display: inline-flex; align-items: center; justify-content: space-between; gap: 18px; min-height: 44px; padding: .85vw 1.05vw; border: 0; border-radius: 4px; background: #f0eeea; color: #111; font-size: max(15px, 1.04vw); line-height: 1.25; text-align: left; transition: background 180ms ease, color 180ms ease; }
.edge-button:hover:not(:disabled) { background: var(--pale-blue); color: #10254b; }
.edge-button:disabled { cursor: not-allowed; background: #d6d8dc; color: #52565e; }
.arrow-box { display: inline-flex; align-items: center; justify-content: center; width: max(18px, 1.04vw); height: max(18px, 1.04vw); flex-shrink: 0; border-radius: 2px; background: #111; color: #fff; font: max(14px, .95vw)/1 Arial, sans-serif; }
.text-link { display: inline-flex; align-items: center; justify-content: space-between; gap: 18px; padding: 12px 0; }
.text-link:hover { text-decoration: underline; text-underline-offset: 5px; }

.floating-header { position: fixed; inset: 1.25vw var(--section-gutter) auto; z-index: 8; display: flex; align-items: flex-start; justify-content: space-between; pointer-events: none; }
.floating-header::before { content: ''; position: fixed; inset: 0 0 auto; z-index: -1; height: 100px; backdrop-filter: blur(12px); -webkit-backdrop-filter: blur(12px); mask-image: linear-gradient(#000, #000a 55%, transparent); }
.floating-header > * { pointer-events: auto; }
.home-link { display: flex; align-items: center; gap: 8px; color: #fff; background: #1c1c1c; min-height: 44px; padding: 10px 14px; font-size: 12px; border-radius: 3px; }
.floating-nav { position: absolute; left: 50%; transform: translateX(-50%); width: clamp(280px, 26.4vw, 340px); min-height: 48px; padding: 2px 8px 2px 16px; border-radius: 6px; background: #000; color: #fff; display: flex; align-items: center; justify-content: space-between; gap: 8px; }
.floating-nav .brand-logo { width: 160px; max-width: calc(100% - 52px); }
.section-menu-toggle { display: grid; align-content: center; justify-items: center; gap: 4px; flex-shrink: 0; width: 44px; height: 44px; padding: 0; border: 0; background: none; }
.section-menu-toggle span { width: 20px; height: 1px; background: #fff; }
#section-menu { position: absolute; top: calc(100% - 1px); left: 0; right: 0; padding: 12px 20px; background: #000; border-radius: 0 0 6px 6px; }
#section-menu a { display: block; padding: 12px 0; }
#section-menu a:hover { color: #b9ceff; }
.contact-link { background: #000; color: #fff; min-height: 48px; }
.contact-link .arrow-box { color: #000; background: var(--pale-blue); }

.sectors-section { padding-top: 7vw; padding-bottom: 7vw; }
.sectors-list { border-top: 1px solid #cfccc7; }
.sectors-list details { border-bottom: 1px solid #cfccc7; }
.sectors-list summary { display: grid; grid-template-columns: 4vw 1.2fr .8fr 28px; align-items: center; gap: 20px; padding: 2.1vw 0; cursor: pointer; list-style: none; }
.sectors-list summary::-webkit-details-marker { display: none; }
.sectors-list summary h3 { font-size: clamp(23px, 2.083vw, 52px); }
.sector-number { font: 12px 'Space Mono', monospace; color: #74726e; }
.sector-caption { color: #77736e; font-size: .9em; }
.expand-icon { display: grid; place-items: center; width: 28px; height: 28px; font-size: 24px; transition: transform 160ms ease; }
details[open] .expand-icon { transform: rotate(45deg); }
.sector-details { padding: 0 5vw 2.5vw calc(4vw + 20px); max-width: 65%; }
.tags { display: flex; flex-wrap: wrap; list-style: none; gap: 8px; padding: 0; margin: 1.4em 0 0; font-size: .75em; }
.tags li { padding: .4em .8em; border: 1px solid #d4d1ca; border-radius: 30px; }

.approach-section { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); min-height: clamp(690px, 46vw, 1180px); background: linear-gradient(180deg, #cfccb0 0%, #68766e 100%); color: #fff; }
.approach-copy { display: flex; flex-direction: column; padding: 3.5vw var(--section-gutter) 3vw; }
.approach-panels { min-height: clamp(150px, 11vw, 260px); margin-top: clamp(40px, 4vw, 88px); }
.approach-panel { max-width: 34vw; scroll-margin-top: 100px; }
.approach-panel h3 { font-size: clamp(24px, 1.667vw, 42px); line-height: 1.2; }
.approach-panel p { color: #f4f4ec; margin-top: 1.2em; line-height: 1.45; }
.technology-tabs { margin-top: auto; padding-top: 3vw; }
.technology-tabs button { display: flex; align-items: center; justify-content: space-between; width: 100%; min-height: 60px; padding: .85vw 0; color: #f0f2ec; background: none; border: 0; border-bottom: 1px solid #ffffff45; text-align: left; font-size: clamp(28px, 2.0833vw, 52px); letter-spacing: -.035em; transition: color 180ms ease, background 180ms ease; }
.technology-tabs button > span { display: flex; gap: 6px; align-items: center; font-size: clamp(14px, 1.04vw, 24px); letter-spacing: 0; }
.technology-tabs button i { font-size: 1.5em; line-height: 1; opacity: .6; }
.technology-tabs button[aria-selected='true'] { color: #fff; border-color: #ffffff90; }
.technology-tabs button[aria-selected='true'] i { opacity: 1; }
.technology-tabs button:hover { background: #ffffff0a; }
.approach-section :focus-visible { outline-color: #fff; }
.approach-visual { position: relative; overflow: hidden; }
.approach-visual img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
@media (prefers-reduced-motion: no-preference) {
  .approach-panel:not([hidden]) { animation: approach-reveal 240ms ease-out both; }
  @keyframes approach-reveal { from { opacity: 0; transform: translateY(8px); } to { opacity: 1; transform: translateY(0); } }
}

.ecosystem-section { padding-top: 7vw; padding-bottom: 7vw; }
.ecosystem-carousel { display: flex; align-items: center; min-height: clamp(190px, 20vw, 330px); overflow: hidden; border-block: 1px solid #dedbd4; }
.ecosystem-track { display: flex; width: 100%; }
.ecosystem-logos { display: flex; flex-wrap: wrap; flex-shrink: 0; width: 100%; }
.ecosystem-logo { display: flex; flex: 1 0 260px; align-items: center; justify-content: center; padding: 36px 24px; }
.ecosystem-logo > span { width: clamp(220px, 27vw, 440px); max-width: 100%; }
.ecosystem-repeat { display: none; }
/* Frame the supplied transparent artwork without changing the original PNG. */
.politizai-logo { position: relative; display: block; aspect-ratio: 1145 / 290; overflow: hidden; }
.politizai-logo img { position: absolute; width: 134.148%; max-width: none; height: auto; left: -13.974%; top: -117.241%; }
.ecosystem-motion { display: flex; align-items: center; gap: 8px; min-height: 44px; margin: 12px 0 0 auto; padding: 8px 0; border: 0; background: none; color: #60646d; font-size: 12px; }
.ecosystem-motion:hover:not(:disabled) { color: #111; }
.ecosystem-motion:disabled { cursor: default; }
.ecosystem-motion svg { width: 13px; height: 13px; fill: none; stroke: currentColor; stroke-width: 1.5; }
.ecosystem-motion .play-symbol { display: none; }
.ecosystem-section[data-user-paused='true'] .pause-symbol { display: none; }
.ecosystem-section[data-user-paused='true'] .play-symbol { display: block; }
@keyframes ecosystem-scroll { to { transform: translateX(-50%); } }
@media (prefers-reduced-motion: no-preference) {
  .ecosystem-section[data-motion-paused] .ecosystem-carousel { mask-image: linear-gradient(90deg, transparent, #000 6%, #000 94%, transparent); }
  .ecosystem-section[data-motion-paused] .ecosystem-track { width: max-content; animation: ecosystem-scroll 36s linear infinite; animation-play-state: paused; }
  .ecosystem-section[data-motion-paused] .ecosystem-logos { display: flex; flex-wrap: nowrap; width: max(640px, calc(100vw - 2 * var(--section-gutter))); }
  .ecosystem-section[data-motion-paused] .ecosystem-logo { flex: 0 0 50%; }
  .ecosystem-section[data-motion-paused='false'] .ecosystem-carousel.is-visible .ecosystem-track { animation-play-state: running; }
}
@media (hover: hover) {
  .ecosystem-section[data-motion-paused='false'] .ecosystem-carousel.is-visible:hover .ecosystem-track { animation-play-state: paused; }
}

.insights-section { padding-top: 7vw; padding-bottom: 7vw; background: #f1f4f8; }
.insights-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); border-top: 1px solid #cfd5df; }
.insights-grid article { display: flex; flex-direction: column; min-height: 300px; padding: 2vw 2vw 2vw 0; border-bottom: 1px solid #cfd5df; }
.insights-grid article + article { padding-left: 2vw; border-left: 1px solid #cfd5df; }
.insights-grid .insight-topic { margin-bottom: 2.4vw; color: #526174; font: 400 11px/1.5 'Space Mono', monospace; letter-spacing: .08em; }
.insights-grid h3 { margin-bottom: 1.1em; font-size: clamp(23px, 1.65vw, 38px); }
.insights-grid h3 a:hover { color: var(--accent); }
.insights-grid article > p:last-child { margin-top: auto; }
.insights-all { display: inline-flex; align-items: center; gap: 16px; margin-top: 28px; padding: 14px 0; border-bottom: 1px solid #111; }

.site-ending {
  --footer-gutter: 4.4vw;
  color: #fff;
  font-family: Manrope, Arial, sans-serif;
  background-color: #1e201f;
  background-image: linear-gradient(180deg, #ed894e 0%, #bed0d7 8%, #6f8fa4 17%, #3b617b 32%, #2a414e 55%, #1e201f 75%);
  background-size: 100% 100%;
  background-repeat: no-repeat;
}
.site-ending :focus-visible { outline-color: #fff; }
.contact-section { padding: clamp(180px, 18vw, 380px) var(--footer-gutter) clamp(88px, 8vw, 180px); text-align: center; }
.contact-section h2 { max-width: 34ch; margin-inline: auto; font-size: clamp(44px, 4.7vw, 104px); line-height: 1.12; letter-spacing: -.045em; text-wrap: balance; }
.contact-copy { max-width: 68ch; margin: 32px auto 0; font-size: clamp(16px, 1.05vw, 23px); line-height: 1.6; }
.contact-copy p { color: #e0e9ee; }
.contact-copy p + p { margin-top: 12px; }
.contact-actions { display: flex; flex-direction: column; align-items: center; margin-top: 32px; }
.contact-actions .edge-button { justify-content: center; gap: 22px; min-height: 64px; padding: 20px 30px; border: 1px solid #dce2e6; border-radius: 6px; font: 400 clamp(12px, .85vw, 18px)/1.5 'Space Mono', monospace; letter-spacing: .16em; text-transform: uppercase; }
.contact-actions .edge-button:disabled { color: #293238; background: #fff; opacity: 1; }
.contact-actions .edge-button > span { font: 700 26px/1 Arial, sans-serif; }
.contact-actions .text-link { margin-top: 15px; min-height: 44px; font-size: clamp(14px, .9vw, 20px); color: #f4f6f7; }
.contact-actions #contact-note { margin-top: 12px; font-size: clamp(11px, .65vw, 14px); line-height: 1.65; color: #b7c4ca; }
.edge-footer { padding: 0 var(--footer-gutter) clamp(48px, 5.8vw, 128px); }
.footer-top { display: grid; grid-template-columns: .65fr 2.3fr .75fr .8fr; gap: 4vw; align-items: start; }
.footer-brand { display: inline-flex; width: fit-content; }
/* Show the symbol from the existing official wordmark, without editing the asset. */
.footer-brand-symbol { display: block; position: relative; width: clamp(66px, 6.6vw, 140px); aspect-ratio: 440 / 600; overflow: hidden; }
.footer-brand-symbol img { position: absolute; width: 731.364%; max-width: none; height: auto; left: -56.818%; top: -29.167%; }
.site-ending .footer-label { display: block; width: fit-content; margin-bottom: 28px; color: #b2bcbf; font: 400 clamp(11px, .72vw, 15px)/1.6 'Space Mono', monospace; text-transform: uppercase; letter-spacing: .18em; }
.footer-about > p { max-width: 40ch; color: #c4c9cb; font-size: clamp(17px, 1.25vw, 28px); line-height: 1.6; letter-spacing: -.025em; }
.footer-nav, .footer-social { display: flex; flex-direction: column; align-items: flex-start; color: #c4c9cb; font-size: clamp(17px, 1.25vw, 28px); line-height: 1.5; letter-spacing: -.025em; }
.footer-nav a { display: flex; align-items: center; min-height: 44px; }
.footer-social > a { display: flex; align-items: center; min-height: 44px; }
.footer-social small, .footer-legal small { display: block; margin-top: 12px; color: #a4adb1; font: 400 clamp(10px, .65vw, 14px)/1.6 Manrope, sans-serif; letter-spacing: 0; }
.edge-footer a:hover { color: #fff; text-decoration: underline; text-underline-offset: 6px; }
.footer-bottom { display: flex; justify-content: space-between; align-items: baseline; gap: 36px; margin-top: clamp(64px, 7vw, 150px); font: 400 clamp(10px, .7vw, 15px)/1.8 'Space Mono', monospace; letter-spacing: .15em; text-transform: uppercase; }
.footer-bottom p { color: #a4adb1; }
.footer-legal { text-align: right; color: #a4adb1; }
.footer-legal > div { display: flex; justify-content: flex-end; gap: 2.5vw; }
.footer-legal small { text-transform: none; }

@media (max-width: 1100px) {
  .edge-content { --section-gutter: 24px; font-size: 16px; }
  .section-heading { gap: 4vw; grid-template-columns: 1.1fr 1fr; }
  .edge-button { padding: 12px 16px; }
  .floating-header { top: 16px; }
  .sector-caption { display: none; }
  .sectors-list summary { grid-template-columns: 40px 1fr 28px; padding: 28px 0; }
  .sector-details { padding: 0 0 28px 60px; max-width: 80%; }
  .site-ending { --footer-gutter: 32px; }
  .footer-top { grid-template-columns: 80px 1.6fr 1fr 1fr; gap: 24px; }
  .footer-bottom { letter-spacing: .1em; }
}
@media (max-width: 760px) {
  .edge-content { --section-gutter: 20px; }
  .edge-content .eyebrow { margin-bottom: 20px; font-size: 10px; }
  .edge-content h2 { font-size: clamp(34px, 6vw, 44px); }
  .section-heading { grid-template-columns: 1fr; gap: 24px; margin-bottom: 36px; }
  .section-heading h2 br { display: none; }
  .home-link { display: none; }
  .floating-nav { left: 0; transform: none; width: min(300px, calc(100% - 108px)); padding: 2px 4px 2px 12px; }
  .floating-nav .brand-logo { width: 132px; }
  .floating-header { inset: 12px 16px auto; }
  .contact-link { margin-left: auto; font-size: 14px; padding: 12px; gap: 10px; min-height: 48px; }
  .sectors-section, .ecosystem-section, .insights-section { padding-top: 64px; padding-bottom: 64px; }
  .insights-grid { grid-template-columns: 1fr; }
  .insights-grid article { min-height: 0; padding: 28px 0; }
  .insights-grid article + article { padding-left: 0; border-left: 0; }
  .insights-grid .insight-topic { margin-bottom: 20px; }
  .sectors-list summary { gap: 12px; grid-template-columns: 25px 1fr 24px; padding: 24px 0; }
  .sectors-list summary h3 { font-size: 25px; }
  .sector-details { padding: 0 0 28px 37px; max-width: none; }
  .approach-section { grid-template-columns: 1fr; min-height: 0; }
  .approach-copy { padding: 56px 20px 32px; }
  .approach-panels { margin-top: 36px; min-height: 180px; }
  .approach-panel { max-width: 36em; }
  .approach-panel p { margin-top: 18px; }
  .technology-tabs { padding-top: 20px; }
  .technology-tabs button { padding: 16px 0; }
  .approach-visual { aspect-ratio: 1.25; }
  .site-ending { --footer-gutter: 24px; background-size: 100% 720px; }
  .contact-section { padding-top: 180px; padding-bottom: 80px; }
  .contact-section h2 { font-size: clamp(38px, 6vw, 50px); max-width: 25ch; }
  .contact-copy { margin-top: 28px; font-size: 15px; }
  .contact-actions .edge-button { padding: 18px 22px; min-height: 60px; }
  .footer-top { grid-template-columns: 1fr 1fr; gap: 40px 28px; }
  .footer-brand { grid-column: 1 / -1; }
  .footer-brand-symbol { width: 70px; }
  .footer-about { grid-column: 1 / -1; }
  .footer-about > p { max-width: 36ch; font-size: 19px; }
  .site-ending .footer-label { margin-bottom: 18px; }
  .footer-bottom { flex-direction: column; align-items: flex-start; gap: 28px; margin-top: 60px; font-size: 10px; }
  .footer-legal { text-align: left; }
  .footer-legal > div { justify-content: flex-start; flex-wrap: wrap; gap: 12px 28px; }
}
@media (max-width: 480px) {
  .site-ending { --footer-gutter: 20px; }
  .contact-section h2 { font-size: clamp(34px, 8.5vw, 40px); }
  .contact-actions .edge-button { max-width: 100%; font-size: 11px; gap: 16px; letter-spacing: .12em; }
}
