
:root {
  --navy: #081d38;
  --navy-2: #102b49;
  --blue: #079bc7;
  --blue-2: #0277a1;
  --ink: #1b2c42;
  --muted: #5f6f7f;
  --paper: #f6f9fa;
  --paper-2: #edf3f5;
  --line: #d6e1e6;
  --white: #ffffff;
  --shadow: 0 24px 80px rgba(8, 29, 56, .12);
  --container: 1240px;
  --header-h: 82px;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  margin: 0;
  color: var(--ink);
  background: var(--white);
  font-family: Inter, Arial, sans-serif;
  font-size: 16px;
  line-height: 1.65;
  text-rendering: optimizeLegibility;
  -webkit-font-smoothing: antialiased;
}
body.no-scroll { overflow: hidden; }
img { display: block; max-width: 100%; }
a { color: inherit; text-decoration: none; }
button, input, select, textarea { font: inherit; }
button { color: inherit; }
::selection { background: rgba(7,155,199,.18); color: var(--navy); }

.container { width: min(var(--container), calc(100% - 48px)); margin-inline: auto; }
.section { padding: 118px 0; position: relative; }
.section-sm { padding: 82px 0; position: relative; }
.eyebrow {
  display: inline-flex;
  align-items: center;
  gap: 12px;
  margin: 0 0 18px;
  color: var(--blue-2);
  font-weight: 800;
  font-size: .76rem;
  letter-spacing: .17em;
  text-transform: uppercase;
}
.eyebrow::before { content: ""; width: 44px; height: 2px; background: currentColor; }
.eyebrow.light { color: #7ed5ed; }
.display, h1, h2, h3, h4 {
  font-family: Montserrat, Inter, sans-serif;
  color: var(--navy);
  letter-spacing: -.045em;
  line-height: 1.03;
  margin-top: 0;
}
h1 { font-size: clamp(3.25rem, 7vw, 6.8rem); margin-bottom: 28px; }
h2 { font-size: clamp(2.45rem, 5vw, 4.8rem); margin-bottom: 22px; }
h3 { font-size: clamp(1.35rem, 2.2vw, 2rem); margin-bottom: 12px; }
p { margin-top: 0; }
.lead { font-size: clamp(1.06rem, 1.8vw, 1.3rem); color: var(--muted); max-width: 760px; }
.intro-grid { display: grid; grid-template-columns: .78fr 1.22fr; gap: 90px; align-items: start; }
.intro-grid .intro-copy { max-width: 720px; }

.skip-link { position: fixed; z-index: 9999; top: 8px; left: 8px; transform: translateY(-150%); background: var(--navy); color: white; padding: 10px 14px; }
.skip-link:focus { transform: none; }

.site-header {
  position: fixed;
  inset: 0 0 auto;
  height: var(--header-h);
  z-index: 1000;
  transition: background .25s ease, box-shadow .25s ease, color .25s ease;
}
.site-header.on-light, .site-header.scrolled { background: rgba(255,255,255,.94); backdrop-filter: blur(16px); box-shadow: 0 1px 0 var(--line); }
.nav { height: 100%; display: flex; align-items: center; justify-content: space-between; gap: 28px; }
.brand { display: inline-flex; align-items: center; gap: 13px; position: relative; z-index: 1002; }
.brand img { width: 54px; height: 54px; object-fit: contain; }
.brand-text strong { display: block; font-family: Montserrat, sans-serif; font-size: .96rem; line-height: 1; color: var(--navy); letter-spacing: .025em; }
.brand-text span { display: block; margin-top: 5px; color: var(--muted); font-size: .74rem; font-weight: 650; letter-spacing: .04em; }
.nav-links { display: flex; align-items: center; gap: 28px; font-weight: 700; font-size: .9rem; }
.nav-links a { position: relative; padding: 8px 0; }
.nav-links a:not(.nav-cta)::after { content:""; position:absolute; left:0; bottom:3px; width:0; height:2px; background:var(--blue); transition:width .2s ease; }
.nav-links a:not(.nav-cta):hover::after, .nav-links a[aria-current="page"]::after { width:100%; }
.nav-cta, .btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  min-height: 50px;
  border: 1px solid transparent;
  border-radius: 2px;
  padding: 13px 22px;
  font-weight: 850;
  letter-spacing: -.01em;
  transition: transform .2s ease, background .2s ease, border-color .2s ease, color .2s ease;
}
.nav-cta { min-height: 44px; padding: 10px 17px !important; background: var(--navy); color: white; }
.nav-cta:hover, .btn:hover { transform: translateY(-2px); }
.btn-primary { background: var(--blue); color: var(--navy); border-color: var(--blue); }
.btn-primary:hover { background: #25b3dd; border-color: #25b3dd; }
.btn-dark { background: var(--navy); color: var(--white); border-color: var(--navy); }
.btn-outline { border-color: rgba(8,29,56,.27); color: var(--navy); background: transparent; }
.btn-light { background: white; color: var(--navy); }
.actions { display:flex; flex-wrap:wrap; gap:13px; margin-top: 34px; }
.menu-toggle { display:none; position:relative; z-index:1002; width:46px; height:46px; border:0; background:transparent; cursor:pointer; }
.menu-toggle span { position:absolute; left:9px; width:28px; height:2px; background:var(--navy); transition:.25s ease; }
.menu-toggle span:nth-child(1){top:14px}.menu-toggle span:nth-child(2){top:22px}.menu-toggle span:nth-child(3){top:30px}
.menu-toggle.active span:nth-child(1){transform:translateY(8px) rotate(45deg)}
.menu-toggle.active span:nth-child(2){opacity:0}
.menu-toggle.active span:nth-child(3){transform:translateY(-8px) rotate(-45deg)}

.hero { min-height: 100svh; padding-top: var(--header-h); position: relative; overflow: hidden; background: var(--paper); }
.hero::before, .technical-bg::before {
  content:""; position:absolute; inset:0; pointer-events:none;
  background-image: linear-gradient(rgba(8,29,56,.045) 1px, transparent 1px), linear-gradient(90deg, rgba(8,29,56,.045) 1px, transparent 1px);
  background-size: 64px 64px;
  mask-image: linear-gradient(to right, black 0%, transparent 62%);
}
.hero-inner { min-height: calc(100svh - var(--header-h)); display:grid; grid-template-columns: .9fr 1.1fr; align-items:center; gap: 28px; position:relative; z-index:2; }
.hero-copy { padding: 68px 0 110px; max-width: 680px; position:relative; z-index:3; }
.hero h1 span { color: var(--blue-2); }
.hero-visual { height: calc(100svh - var(--header-h)); min-height: 670px; position:relative; align-self:stretch; margin-right: calc((100vw - min(var(--container), calc(100vw - 48px))) / -2); }
.hero-visual::before { content:""; position:absolute; z-index:2; inset:0 auto 0 0; width:28%; background:linear-gradient(90deg,var(--paper),rgba(246,249,250,.76),transparent); }
.hero-visual::after { content:""; position:absolute; z-index:2; inset:0; background:linear-gradient(180deg,rgba(8,29,56,.03),rgba(8,29,56,.05)); }
.hero-visual img { width:100%; height:100%; object-fit:cover; }
.hero-marker { position:absolute; z-index:4; right:42px; bottom:42px; color:white; max-width:330px; border-left:4px solid var(--blue); padding:17px 0 17px 22px; text-shadow:0 2px 20px rgba(0,0,0,.6); }
.hero-marker strong { display:block; font-family:Montserrat,sans-serif; font-size:1.15rem; letter-spacing:-.02em; }
.hero-marker span { display:block; margin-top:4px; font-size:.9rem; }
.discipline-strip { position:absolute; z-index:5; left:0; right:0; bottom:0; background:rgba(8,29,56,.96); color:white; }
.discipline-inner { display:flex; align-items:center; justify-content:space-between; gap:24px; min-height:72px; overflow:hidden; }
.discipline-inner span { white-space:nowrap; color:rgba(255,255,255,.75); font-size:.78rem; font-weight:800; letter-spacing:.14em; }
.discipline-inner b { color:#7ed5ed; }

.value-grid { display:grid; grid-template-columns:repeat(3,1fr); margin-top:64px; border-top:1px solid var(--line); border-bottom:1px solid var(--line); }
.value-item { padding:35px 34px 35px 0; position:relative; }
.value-item + .value-item { border-left:1px solid var(--line); padding-left:34px; }
.value-item .num { color:var(--blue-2); font-family:Montserrat,sans-serif; font-weight:850; font-size:.78rem; letter-spacing:.12em; }
.value-item h3 { font-size:1.35rem; margin:13px 0 8px; }
.value-item p { color:var(--muted); margin:0; }

.dark-section { background: var(--navy); color:white; overflow:hidden; }
.dark-section::before { content:""; position:absolute; inset:0; opacity:.14; background-image:linear-gradient(rgba(126,213,237,.18) 1px,transparent 1px),linear-gradient(90deg,rgba(126,213,237,.18) 1px,transparent 1px); background-size:72px 72px; mask-image:linear-gradient(to left,black,transparent 65%); }
.dark-section h2, .dark-section h3 { color:white; }
.dark-section .lead { color:rgba(255,255,255,.68); }
.service-layout { display:grid; grid-template-columns:.7fr 1.3fr; gap:100px; position:relative; z-index:2; }
.service-list { border-top:1px solid rgba(255,255,255,.2); }
.service-row { display:grid; grid-template-columns:80px 1fr 1fr; gap:24px; align-items:start; padding:31px 0; border-bottom:1px solid rgba(255,255,255,.16); }
.service-row .service-num { color:#7ed5ed; font-family:Montserrat,sans-serif; font-weight:850; letter-spacing:.1em; }
.service-row h3 { font-size:1.3rem; margin:0; }
.service-row p { color:rgba(255,255,255,.65); margin:0; }

.section-head { display:flex; align-items:end; justify-content:space-between; gap:40px; margin-bottom:52px; }
.section-head > div:first-child { max-width:820px; }
.section-head p:last-child { margin-bottom:0; }
.project-mosaic { display:grid; grid-template-columns:repeat(12,1fr); gap:18px; }
.project-card { position:relative; min-height:430px; overflow:hidden; background:var(--navy); }
.project-card.large { grid-column:span 7; min-height:590px; }
.project-card.medium { grid-column:span 5; min-height:590px; }
.project-card.third { grid-column:span 4; }
.project-card img { width:100%; height:100%; object-fit:cover; transition:transform .7s cubic-bezier(.2,.7,.2,1); }
.project-card::after { content:""; position:absolute; inset:0; background:linear-gradient(180deg,transparent 35%,rgba(8,29,56,.84)); }
.project-card:hover img { transform:scale(1.035); }
.project-card-content { position:absolute; z-index:2; inset:auto 28px 26px; color:white; }
.project-card-content .tag { display:block; color:#83d8ef; font-size:.74rem; font-weight:850; letter-spacing:.13em; text-transform:uppercase; margin-bottom:8px; }
.project-card-content h3 { color:white; font-size:clamp(1.4rem,2.4vw,2.3rem); margin:0 0 6px; }
.project-card-content p { color:rgba(255,255,255,.75); margin:0; }
.project-card .arrow { position:absolute; z-index:3; right:24px; top:24px; width:46px; height:46px; display:grid; place-items:center; border:1px solid rgba(255,255,255,.55); color:white; font-size:1.25rem; transition:.2s ease; }
.project-card:hover .arrow { background:white; color:var(--navy); }

.manifesto { background: var(--paper); overflow:hidden; }
.manifesto-grid { display:grid; grid-template-columns:.9fr 1.1fr; align-items:center; min-height:690px; }
.manifesto-copy { padding:90px 80px 90px 0; position:relative; z-index:2; }
.manifesto-copy h2 { max-width:650px; }
.manifesto-copy .equation { display:inline-block; border-top:2px solid var(--navy); padding-top:18px; margin-top:18px; font-family:Montserrat,sans-serif; font-weight:850; color:var(--navy); font-size:1.1rem; }
.manifesto-visual { align-self:stretch; position:relative; margin-right:calc((100vw - min(var(--container), calc(100vw - 48px))) / -2); }
.manifesto-visual img { width:100%; height:100%; object-fit:cover; object-position:center; }
.manifesto-visual::before { content:""; position:absolute; z-index:2; inset:0 auto 0 0; width:25%; background:linear-gradient(90deg,var(--paper),transparent); }

.spotlight { position:relative; min-height:780px; display:flex; align-items:end; overflow:hidden; color:white; }
.spotlight > img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }
.spotlight::after { content:""; position:absolute; inset:0; background:linear-gradient(180deg,rgba(8,29,56,.08),rgba(8,29,56,.88)); }
.spotlight-content { position:relative; z-index:2; width:100%; padding-bottom:82px; }
.spotlight-content .spot-grid { display:grid; grid-template-columns:1fr .8fr; align-items:end; gap:80px; }
.spotlight h2 { color:white; max-width:760px; }
.spotlight p { color:rgba(255,255,255,.76); max-width:600px; }

.process-grid { display:grid; grid-template-columns:.75fr 1.25fr; gap:100px; }
.timeline { border-top:1px solid var(--line); }
.timeline-item { display:grid; grid-template-columns:70px 1fr; gap:22px; padding:28px 0; border-bottom:1px solid var(--line); }
.timeline-item .step { width:44px;height:44px;border:1px solid var(--blue);display:grid;place-items:center;color:var(--blue-2);font-weight:850;font-family:Montserrat,sans-serif; }
.timeline-item h3 { font-size:1.27rem; margin-bottom:7px; }
.timeline-item p { margin:0; color:var(--muted); }

.team-section { background:var(--paper); }
.team-grid { display:grid; grid-template-columns:.72fr 1.28fr; gap:90px; }
.team-cards { border-top:1px solid var(--line); }
.team-card { display:grid; grid-template-columns:90px 1fr; gap:28px; padding:34px 0; border-bottom:1px solid var(--line); }
.team-initials { width:72px; height:72px; background:var(--navy); color:white; display:grid; place-items:center; font-family:Montserrat,sans-serif; font-weight:850; font-size:1.1rem; position:relative; }
.team-initials::after { content:""; position:absolute; width:22px; height:22px; border-right:3px solid var(--blue); border-bottom:3px solid var(--blue); right:-6px; bottom:-6px; }
.team-card h3 { font-size:1.4rem; margin-bottom:4px; }
.team-card .role { color:var(--blue-2); font-weight:800; font-size:.86rem; margin-bottom:10px; }
.team-card p { color:var(--muted); margin:0; }

.contact-section { background:var(--navy); color:white; }
.contact-section h2 { color:white; }
.contact-grid { display:grid; grid-template-columns:.78fr 1.22fr; gap:90px; align-items:start; }
.contact-copy p { color:rgba(255,255,255,.7); }
.contact-details { display:grid; gap:11px; margin-top:34px; }
.contact-details a, .contact-details span { color:rgba(255,255,255,.86); font-weight:700; }
.contact-details a:hover { color:#7ed5ed; }
.contact-form { background:white; color:var(--ink); padding:42px; box-shadow:var(--shadow); }
.form-grid { display:grid; grid-template-columns:1fr 1fr; gap:18px; }
.field { display:grid; gap:7px; }
.field.full { grid-column:1/-1; }
label { color:var(--navy); font-size:.85rem; font-weight:850; }
input, select, textarea { width:100%; border:1px solid var(--line); border-radius:0; background:var(--paper); color:var(--ink); padding:13px 14px; outline:none; }
input:focus, select:focus, textarea:focus { border-color:var(--blue); box-shadow:0 0 0 3px rgba(7,155,199,.12); }
textarea { resize:vertical; min-height:125px; }
.form-note { color:var(--muted); font-size:.78rem; margin:14px 0 0; }

.site-footer { background:#06162a; color:rgba(255,255,255,.68); padding:48px 0 28px; }
.footer-grid { display:grid; grid-template-columns:1.2fr .8fr .8fr; gap:70px; align-items:start; }
.footer-brand { display:flex; align-items:center; gap:14px; color:white; }
.footer-brand img { width:60px; height:60px; }
.footer-brand strong { display:block; font-family:Montserrat,sans-serif; }
.footer-brand span { display:block; font-size:.78rem; color:rgba(255,255,255,.6); }
.footer-links { display:grid; gap:9px; }
.footer-links strong { color:white; font-family:Montserrat,sans-serif; margin-bottom:8px; }
.footer-links a:hover { color:#7ed5ed; }
.footer-bottom { margin-top:40px; padding-top:22px; border-top:1px solid rgba(255,255,255,.13); display:flex; justify-content:space-between; gap:20px; font-size:.82rem; }

/* Project index */
.page-hero { padding:calc(var(--header-h) + 90px) 0 84px; background:var(--paper); position:relative; overflow:hidden; }
.page-hero::after { content:""; position:absolute; inset:0; background-image:linear-gradient(rgba(8,29,56,.04) 1px,transparent 1px),linear-gradient(90deg,rgba(8,29,56,.04) 1px,transparent 1px);background-size:64px 64px;mask-image:linear-gradient(to right,black,transparent 72%); }
.page-hero .container { position:relative; z-index:2; }
.page-hero h1 { max-width:1000px; font-size:clamp(3.3rem,7vw,6.4rem); }
.filter-bar { display:flex; gap:10px; flex-wrap:wrap; margin-bottom:36px; }
.filter-btn { border:1px solid var(--line); background:white; color:var(--navy); padding:10px 15px; font-weight:800; cursor:pointer; }
.filter-btn.active, .filter-btn:hover { background:var(--navy); color:white; border-color:var(--navy); }
.projects-all { display:grid; grid-template-columns:repeat(2,1fr); gap:22px; }
.projects-all .project-card { min-height:520px; }
.projects-all .project-card.hidden { display:none; }

/* Project detail */
.project-hero { position:relative; min-height:86svh; display:flex; align-items:end; color:white; overflow:hidden; }
.project-hero > img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }
.project-hero::after { content:""; position:absolute; inset:0; background:linear-gradient(180deg,rgba(8,29,56,.12),rgba(8,29,56,.82)); }
.project-hero-content { position:relative; z-index:2; width:100%; padding:calc(var(--header-h) + 100px) 0 70px; }
.project-hero h1 { color:white; max-width:920px; font-size:clamp(3.2rem,7vw,6.5rem); margin-bottom:18px; }
.project-hero .lead { color:rgba(255,255,255,.78); }
.project-meta { display:flex; flex-wrap:wrap; gap:34px; margin-top:35px; padding-top:24px; border-top:1px solid rgba(255,255,255,.35); }
.project-meta div { min-width:150px; }
.project-meta small { display:block; color:#83d8ef; text-transform:uppercase; font-weight:850; letter-spacing:.12em; font-size:.68rem; margin-bottom:4px; }
.project-meta span { font-weight:750; }
.project-intro { display:grid; grid-template-columns:.8fr 1.2fr; gap:100px; }
.project-intro .big-line { font-family:Montserrat,sans-serif; font-size:clamp(2rem,4vw,4rem); color:var(--navy); font-weight:850; letter-spacing:-.045em; line-height:1.05; }
.project-intro .copy p { color:var(--muted); font-size:1.05rem; }
.gallery { display:grid; grid-template-columns:repeat(12,1fr); gap:16px; }
.gallery-item { margin:0; position:relative; overflow:hidden; background:var(--paper-2); cursor:zoom-in; }
.gallery-item.wide { grid-column:span 8; }
.gallery-item.narrow { grid-column:span 4; }
.gallery-item.half { grid-column:span 6; }
.gallery-item.full { grid-column:1/-1; }
.gallery-item img { width:100%; height:100%; min-height:420px; object-fit:cover; transition:transform .5s ease; }
.gallery-item:hover img { transform:scale(1.025); }
.gallery-item figcaption { position:absolute; inset:auto 18px 16px; color:white; z-index:2; font-size:.82rem; font-weight:800; text-shadow:0 2px 12px rgba(0,0,0,.7); opacity:0; transition:.2s; }
.gallery-item::after { content:""; position:absolute; inset:50% 0 0; background:linear-gradient(transparent,rgba(8,29,56,.55)); opacity:0; transition:.2s; }
.gallery-item:hover::after, .gallery-item:hover figcaption { opacity:1; }
.project-feature { background:var(--navy); color:white; }
.project-feature h2 { color:white; }
.project-feature-grid { display:grid; grid-template-columns:1fr 1fr; gap:100px; align-items:center; }
.project-feature ul { list-style:none; margin:30px 0 0; padding:0; border-top:1px solid rgba(255,255,255,.2); }
.project-feature li { padding:15px 0; border-bottom:1px solid rgba(255,255,255,.15); color:rgba(255,255,255,.74); }
.project-nav { display:flex; justify-content:space-between; gap:20px; border-top:1px solid var(--line); padding-top:34px; }
.project-nav a { font-family:Montserrat,sans-serif; font-weight:850; color:var(--navy); }
.project-nav a:hover { color:var(--blue-2); }

/* Lightbox */
.lightbox { position:fixed; z-index:2000; inset:0; display:none; align-items:center; justify-content:center; background:rgba(4,14,28,.94); padding:24px; }
.lightbox.open { display:flex; }
.lightbox img { max-width:min(1400px,92vw); max-height:87vh; object-fit:contain; }
.lightbox-close { position:absolute; top:20px; right:24px; width:48px; height:48px; border:1px solid rgba(255,255,255,.4); background:transparent; color:white; font-size:1.7rem; cursor:pointer; }
.lightbox-caption { position:absolute; left:50%; bottom:16px; transform:translateX(-50%); color:rgba(255,255,255,.75); font-size:.85rem; text-align:center; }

.reveal { opacity:0; transform:translateY(28px); transition:opacity .7s ease, transform .7s ease; }
.reveal.in { opacity:1; transform:none; }

@media (max-width: 1050px) {
  :root { --header-h:74px; }
  .menu-toggle { display:block; }
  .nav-links { position:fixed; inset:0; background:white; display:flex; flex-direction:column; align-items:flex-start; justify-content:center; gap:24px; padding:90px 34px 50px; transform:translateX(100%); transition:transform .28s ease; font-size:1.35rem; }
  .nav-links.active { transform:none; }
  .nav-cta { font-size:1rem; }
  .hero-inner { grid-template-columns:1fr; }
  .hero-copy { padding:80px 0 38px; max-width:800px; }
  .hero-visual { margin:0 -24px; min-height:520px; height:58svh; }
  .hero-visual::before { display:none; }
  .hero-marker { right:26px; bottom:24px; }
  .discipline-strip { position:relative; }
  .discipline-inner { min-height:62px; justify-content:flex-start; overflow-x:auto; }
  .intro-grid, .service-layout, .process-grid, .team-grid, .contact-grid, .project-intro, .project-feature-grid { grid-template-columns:1fr; gap:54px; }
  .service-row { grid-template-columns:60px .72fr 1fr; }
  .manifesto-grid { grid-template-columns:1fr; }
  .manifesto-copy { padding-right:0; }
  .manifesto-visual { margin:0 -24px; min-height:560px; }
  .manifesto-visual::before { display:none; }
  .spotlight-content .spot-grid { grid-template-columns:1fr; gap:20px; }
  .project-card.large, .project-card.medium { grid-column:span 6; min-height:520px; }
  .project-card.third { grid-column:span 6; }
}

@media (max-width: 760px) {
  .container { width:min(100% - 30px,var(--container)); }
  .section { padding:82px 0; }
  .section-sm { padding:64px 0; }
  h1 { font-size:clamp(2.8rem,14vw,4.7rem); }
  h2 { font-size:clamp(2.15rem,11vw,3.65rem); }
  .brand-text { display:none; }
  .brand img { width:48px;height:48px; }
  .hero-copy { padding-top:58px; }
  .hero-visual { min-height:440px; height:52svh; margin-inline:-15px; }
  .hero-marker { left:22px; right:22px; }
  .value-grid { grid-template-columns:1fr; }
  .value-item { padding:27px 0; }
  .value-item + .value-item { border-left:0; border-top:1px solid var(--line); padding-left:0; }
  .service-row { grid-template-columns:46px 1fr; gap:16px; }
  .service-row p { grid-column:2; }
  .section-head { display:block; }
  .section-head .btn { margin-top:20px; }
  .project-mosaic { grid-template-columns:1fr; }
  .project-card.large, .project-card.medium, .project-card.third { grid-column:auto; min-height:460px; }
  .spotlight { min-height:700px; }
  .form-grid { grid-template-columns:1fr; }
  .contact-form { padding:28px 22px; }
  .footer-grid { grid-template-columns:1fr; gap:38px; }
  .footer-bottom { flex-direction:column; }
  .projects-all { grid-template-columns:1fr; }
  .projects-all .project-card { min-height:470px; }
  .project-hero { min-height:78svh; }
  .project-meta { gap:20px; }
  .gallery { grid-template-columns:1fr; }
  .gallery-item.wide, .gallery-item.narrow, .gallery-item.half, .gallery-item.full { grid-column:auto; }
  .gallery-item img { min-height:360px; }
  .team-card { grid-template-columns:70px 1fr; }
  .team-initials { width:58px;height:58px; }
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { scroll-behavior:auto !important; animation:none !important; transition:none !important; }
  .reveal { opacity:1; transform:none; }
}



/* Content update — July 2026 */
.team-card-link { transition: background .2s ease, padding .2s ease; }
.team-card-link:hover { background: rgba(7,155,199,.055); padding-inline: 18px; }
.profile-link { display:inline-block; margin-top:13px; color:var(--blue-2); font-weight:850; font-size:.82rem; }

/* Knowledge cards */
.knowledge-preview { background:#fff; }
.article-grid { display:grid; grid-template-columns:repeat(2,1fr); gap:24px; }
.article-card { display:grid; grid-template-columns:.88fr 1.12fr; min-height:390px; border:1px solid var(--line); background:white; transition:transform .25s ease, box-shadow .25s ease; }
.article-card:hover { transform:translateY(-4px); box-shadow:var(--shadow); }
.article-media { position:relative; min-height:100%; overflow:hidden; background:var(--paper-2); }
.article-media img { width:100%; height:100%; object-fit:cover; transition:transform .5s ease; }
.article-card:hover .article-media img { transform:scale(1.025); }
.article-media.technical-media img, .technical-fit { object-fit:contain !important; background:white; }
.article-number { position:absolute; left:18px; top:18px; width:44px; height:44px; display:grid; place-items:center; background:var(--navy); color:#7ed5ed; font-family:Montserrat,sans-serif; font-weight:850; }
.article-body { padding:34px; display:flex; flex-direction:column; justify-content:center; }
.tag-text { color:var(--blue-2); text-transform:uppercase; font-size:.7rem; font-weight:850; letter-spacing:.13em; }
.article-body h3, .article-body h2 { font-size:clamp(1.45rem,2.4vw,2.2rem); margin:11px 0 14px; }
.article-body p { color:var(--muted); }
.read-more { margin-top:auto; padding-top:18px; font-weight:850; color:var(--navy); }
.article-grid-wide .article-card { min-height:480px; }
.knowledge-band { background:var(--paper); }

/* Article pages */
.article-hero { padding:calc(var(--header-h) + 86px) 0 80px; background:var(--paper); position:relative; overflow:hidden; }
.article-hero::before { content:""; position:absolute; inset:0; background-image:linear-gradient(rgba(8,29,56,.045) 1px,transparent 1px),linear-gradient(90deg,rgba(8,29,56,.045) 1px,transparent 1px); background-size:64px 64px; mask-image:linear-gradient(to right,black,transparent 70%); }
.article-hero-grid { position:relative; z-index:2; display:grid; grid-template-columns:.92fr 1.08fr; gap:72px; align-items:center; }
.article-hero h1 { font-size:clamp(3rem,6vw,6.2rem); }
.article-hero-image { min-height:560px; overflow:hidden; box-shadow:var(--shadow); }
.article-hero-image img { width:100%; height:100%; object-fit:cover; }
.technical-hero-image { background:white; }
.technical-hero-image img { object-fit:contain; }
.article-meta { display:flex; flex-wrap:wrap; gap:24px; border-top:1px solid var(--line); padding-top:20px; margin-top:30px; color:var(--muted); font-size:.82rem; font-weight:750; }
.article-layout { display:grid; grid-template-columns:230px minmax(0,760px); justify-content:center; gap:90px; padding-block:100px 120px; }
.article-aside { position:sticky; top:calc(var(--header-h) + 30px); align-self:start; display:grid; gap:11px; border-top:2px solid var(--navy); padding-top:17px; }
.article-aside span { font-family:Montserrat,sans-serif; font-weight:850; color:var(--navy); margin-bottom:5px; }
.article-aside a { color:var(--muted); font-size:.9rem; }
.article-aside a:hover { color:var(--blue-2); }
.article-content section { scroll-margin-top:calc(var(--header-h) + 28px); margin-bottom:62px; }
.article-content h2 { font-size:clamp(2rem,4vw,3.25rem); }
.article-content p { font-size:1.08rem; color:#435668; }
.article-content blockquote { margin:0 0 64px; padding:28px 0 28px 28px; border-left:5px solid var(--blue); font-family:Montserrat,sans-serif; color:var(--navy); font-weight:800; font-size:clamp(1.35rem,2.7vw,2rem); line-height:1.25; }
.article-checklist { display:grid; grid-template-columns:1fr 1fr; gap:0 24px; border-top:1px solid var(--line); margin-top:28px; }
.article-checklist span { padding:15px 0; border-bottom:1px solid var(--line); color:var(--navy); font-weight:750; }
.article-figure { margin:0 0 70px; }
.article-figure img { width:100%; max-height:720px; object-fit:cover; background:white; }
.article-figure figcaption { color:var(--muted); font-size:.82rem; margin-top:10px; }
.split-figure { display:grid; grid-template-columns:1fr 1fr; gap:12px; }
.split-figure figcaption { grid-column:1/-1; }
.article-cta { background:var(--navy); color:white; padding:42px; margin-top:72px; }
.article-cta h3 { color:white; }
.article-cta p { color:rgba(255,255,255,.7); }

/* Profiles */
.profile-hero { padding:calc(var(--header-h) + 95px) 0 92px; background:var(--paper); position:relative; overflow:hidden; }
.profile-hero::after { content:""; position:absolute; inset:0; background-image:linear-gradient(rgba(8,29,56,.045) 1px,transparent 1px),linear-gradient(90deg,rgba(8,29,56,.045) 1px,transparent 1px); background-size:64px 64px; mask-image:linear-gradient(to right,transparent 25%,black); }
.profile-hero-grid { position:relative; z-index:2; display:grid; grid-template-columns:300px 1fr; gap:72px; align-items:center; }
.profile-monogram { width:280px; height:340px; display:grid; place-items:center; background:var(--navy); color:white; font:850 5.2rem Montserrat,sans-serif; position:relative; box-shadow:var(--shadow); }
.profile-monogram::before { content:""; position:absolute; inset:18px; border:1px solid rgba(126,213,237,.35); }
.profile-monogram::after { content:""; position:absolute; right:-16px; bottom:-16px; width:80px; height:80px; border-right:8px solid var(--blue); border-bottom:8px solid var(--blue); }
.profile-role { color:var(--blue-2); font-family:Montserrat,sans-serif; font-weight:800; font-size:1.15rem; }
.profile-layout { display:grid; grid-template-columns:.75fr 1.25fr; gap:100px; }
.profile-copy p { color:var(--muted); font-size:1.08rem; }
.profile-specialties { display:grid; grid-template-columns:.8fr 1.2fr; gap:80px; position:relative; z-index:2; }
.specialty-list { display:grid; grid-template-columns:1fr 1fr; border-top:1px solid rgba(255,255,255,.2); }
.specialty-list span { padding:18px 8px; border-bottom:1px solid rgba(255,255,255,.16); color:rgba(255,255,255,.78); }
.profile-project-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:18px; margin-top:36px; }
.profile-project-grid a { background:var(--navy); color:white; overflow:hidden; }
.profile-project-grid img { width:100%; height:300px; object-fit:cover; transition:transform .4s ease; }
.profile-project-grid a:hover img { transform:scale(1.025); }
.profile-project-grid span { display:block; padding:18px; font-weight:850; }

/* Technical drawings remain fully legible. */
.gallery-item img[src*="tecnico-"] { object-fit:contain; background:#fff; }

@media (max-width:1050px) {
  .technical-composition { min-height:610px; margin:0 -24px; }
  .technical-composition::before { display:none; }
  .article-card { grid-template-columns:1fr; }
  .article-media { min-height:320px; }
  .article-hero-grid, .profile-hero-grid, .profile-layout, .profile-specialties { grid-template-columns:1fr; gap:48px; }
  .article-hero-image { min-height:480px; }
  .profile-monogram { width:220px; height:250px; font-size:4rem; }
}

@media (max-width:760px) {
  html,body { overflow-x:clip; }
  .technical-composition { min-height:510px; margin-inline:-15px; }
  .composition-model { width:58%; right:4%; bottom:4%; padding:10px; }
  .composition-line { display:none; }
  .article-grid, .article-grid-wide { grid-template-columns:1fr; }
  .article-card { min-height:0; }
  .article-media { min-height:290px; }
  .article-body { padding:28px 23px; }
  .article-hero { padding-top:calc(var(--header-h) + 55px); }
  .article-hero-image { min-height:340px; }
  .article-layout { grid-template-columns:1fr; gap:44px; padding-block:72px 85px; }
  .article-aside { position:static; }
  .article-checklist, .split-figure, .specialty-list, .profile-project-grid { grid-template-columns:1fr; }
  .article-cta { padding:30px 22px; }
  .profile-monogram { width:170px; height:200px; font-size:3.2rem; }
  .profile-project-grid img { height:260px; }
  .team-card-link:hover { padding-inline:0; }
}

/* Manifesto visual: clean project render */
.manifesto-composite {
  position: relative;
  align-self: center;
  min-height: 0;
  margin: 0;
  overflow: hidden;
  aspect-ratio: 3 / 2;
  border: 1px solid rgba(8,45,78,.12);
  background: #eaf2f5;
  box-shadow: 0 28px 76px rgba(8,29,56,.13);
}
.manifesto-composite::before,
.manifesto-composite::after {
  display: none;
}
.manifesto-composite img {
  width: 100%;
  height: 100%;
  min-height: 0;
  object-fit: cover;
  object-position: center;
}
@media (max-width: 680px) {
  .manifesto-composite {
    aspect-ratio: 3 / 2;
  }
}

/* Final manifesto layout */
.manifesto-grid {
  grid-template-columns: minmax(360px, .78fr) minmax(560px, 1.22fr);
  gap: clamp(54px, 6vw, 96px);
  align-items: center;
  min-height: auto;
}
.manifesto-copy {
  padding: 42px 0;
}
.manifesto-copy h2 {
  max-width: 590px;
  font-size: clamp(3.25rem, 5.6vw, 5.65rem);
}
.manifesto-copy .lead {
  max-width: 590px;
}
@media (max-width: 1080px) {
  .manifesto-grid {
    grid-template-columns: 1fr;
    gap: 42px;
  }
  .manifesto-copy {
    padding: 10px 0 0;
    max-width: 760px;
  }
}
@media (max-width: 680px) {
  .manifesto-copy h2 {
    font-size: clamp(2.8rem, 14vw, 4rem);
  }
  .manifesto-copy .actions .btn {
    width: 100%;
  }
}
