/* V8: a gradual passage from the historical opening to contemporary action.
   Header, hero, wordmark and global tokens intentionally retain V7 styling. */
.history { background: linear-gradient(180deg, #fffdf8, #f2f7f7); --paper: #f2f7f7; }
.history-media { width: 32%; }
.history-media img { object-position: 45% center; }
.history-media::after { background: linear-gradient(90deg, #08254110, transparent 50%, #f2f7f7); }
.history-aside .eyebrow { display: inline-block; padding: 14px; background: #082541d9; text-shadow: none; }
.origin-mission { background: #e7efee; border-left-color: #477f83; }

:is(.vision, .projects-section, .values, .manifesto, .native-ai, .join) {
  --line: #d4e1e5;
  font-family: Inter, Arial, sans-serif;
  font-size: 14px;
  line-height: 1.65;
}
:is(.vision, .projects-section, .values, .manifesto, .native-ai, .join) :is(h2, h3) {
  font-family: Inter, Arial, sans-serif;
  font-weight: 500;
  line-height: 1.18;
  letter-spacing: -.035em;
  text-wrap: balance;
}
:is(.vision, .projects-section, .values, .native-ai, .join) :is(em, .kicker, .line-icon) { color: #246a72; }
:is(.vision, .projects-section, .manifesto, .native-ai) { padding-block: clamp(40px, 5vw, 72px); }
.vision { background: linear-gradient(145deg, #f2f7f7, #edf4f8); }
.vision-statement h2 { font-size: clamp(30px, 3.1vw, 43px); }
.vision-lead { font-size: 17px; line-height: 1.65; }
.vision-copy h3 { font-size: 21px; }
.vision-copy p { line-height: 1.75; }
.vision-copy article { border-left-color: #b9d2d7; }
.projects-section { background: #f8fbfc; }
.projects-section h2 { font-size: clamp(30px, 3vw, 40px); }
.projects-heading { margin-bottom: 30px; }
.project { border-color: #dbe5e9; border-radius: 12px; }
.project-image { height: 185px; }
.project-body { padding: 28px 20px 20px; }
.project-icon { background: white; border-color: #b9d2d7; }
.project h3 { font-size: 21px; }
.project p { line-height: 1.6; margin-bottom: 0; }
.projects-section .btn { border-color: #246a72; border-radius: 8px; padding: 12px 24px; }
.values { background: #eaf2f3; border-color: #d4e1e5; padding-block: 32px; }
.values h2 { font-size: 24px; }
.values h3 { font-size: 18px; }
.values p { line-height: 1.6; }
.manifesto { background: linear-gradient(130deg, #102c48, #123e50); }
.manifesto-heading h2 { font-size: clamp(30px, 3.3vw, 44px); }
.manifesto-heading em, .manifesto .kicker, .manifesto-closing em { color: #9cdbd6; }
.manifesto-story { gap: 22px 48px; margin-block: 34px 40px; }
.manifesto-story p { font-size: 15px; line-height: 1.8; }
.manifesto-grid h3 { font-size: 19px; }
.manifesto-grid article { border-left-color: #54838e; }
.manifesto-grid .num { font: 500 13px/1.7 Inter, Arial, sans-serif; color: #9cdbd6; }
.manifesto-grid p { line-height: 1.7; }
.manifesto-closing { font-family: Inter, Arial, sans-serif; font-size: clamp(23px, 2.5vw, 32px); font-weight: 500; line-height: 1.4; letter-spacing: -.025em; border-color: #54838e; }
.native-ai { background: #edf4f7; }
.native-ai h2 { font-size: clamp(32px, 3.2vw, 43px); }
.native-layout header > p:last-child { font-size: 16px; line-height: 1.7; }
.native-principles article { border-left-color: #4c9299; }
.native-principles h3 { font-size: 21px; }
.native-principles p { font-size: 14px; line-height: 1.75; }
.join { background: linear-gradient(155deg, #f8fbfd, #deedf0); padding-block: 55px; border-top: 1px solid #d4e1e5; }
.join h2 { font-size: clamp(30px, 3.2vw, 42px); }
.join p:not(.kicker) { line-height: 1.7; }
.contact-form { background: white; border-color: #c9dce2; border-radius: 14px; box-shadow: 0 16px 48px #123d6008; }
.contact-form .btn { border-color: #246a72; border-radius: 8px; }
.contact-form :is(input, textarea, select):focus-visible { outline-color: #246a72; }

@media (max-width: 1050px) {
  .history-media { width: 100%; }
  .project-image { height: 205px; }
}
@media (max-width: 680px) {
  .history-media { opacity: .055; }
  .project-image { height: 220px; }
  .project h3 { font-size: 23px; }
  .project p, .values p { font-size: 15px; }
  .manifesto-story { gap: 20px; }
  .manifesto-grid h3 { font-size: 21px; }
  .join { padding-block: 40px; }
}
