/* Corporate editorial scale: display hero, clear Manrope section hierarchy. */
.v3-home { --v3-gutter:var(--gutter); --v3-navy:#051f39; --v3-cyan:#00b6dc; --v3-muted:#5d7183; --v3-line:#d0dde5; background:#fff; color:var(--v3-navy); font-family:Manrope,Arial,sans-serif; font-size:16px; line-height:1.75; }
.v3-wrap { max-width:1640px; margin:0 auto; padding-left:var(--v3-gutter); padding-right:var(--v3-gutter); }
.v3-home h1,.v3-home h2,.v3-home h3,.v3-home p { margin-top:0; }
.v3-home h1,.v3-home h2 { font-family:Manrope,Arial,sans-serif; font-weight:650; text-transform:none; letter-spacing:-.045em; line-height:1.13; text-wrap:balance; }
.v3-kicker { display:flex; align-items:center; gap:12px; font-size:11px; font-weight:700; letter-spacing:.12em; text-transform:uppercase; line-height:1.7; margin-bottom:24px; }
.v3-kicker::before { content:""; width:26px; height:2px; background:var(--v3-cyan); flex:none; }
.v3-button { display:inline-flex; justify-content:center; align-items:center; gap:28px; min-height:56px; padding:17px 24px; background:var(--v3-cyan); color:#05243d; font-size:14px; font-weight:700; line-height:1.6; }
.v3-button>span { font-size:22px; font-weight:400; }
.v3-button:hover { background:#62d7ec; }
.v3-link { display:inline-flex; align-items:center; gap:22px; border-bottom:1px solid #a5bdcd; padding:0 0 11px; font-size:14px; font-weight:650; line-height:1.7; }
.v3-link span { font-size:22px; color:var(--v3-cyan); }
.v3-link:hover { color:#007699; border-color:var(--v3-cyan); }
.v3-hero { position:relative; isolation:isolate; background:var(--v3-navy); color:#fff; min-height:0; overflow:hidden; }
.v3-hero-main { position:relative; min-height:670px; display:flex; align-items:center; padding-top:60px; padding-bottom:62px; z-index:2; }
.v3-hero-photo { position:absolute; inset:0 0 0 39%; z-index:-2; overflow:hidden; }
.v3-hero-photo::after { content:""; position:absolute; inset:0; background:linear-gradient(90deg,#051f39 0%,#051f3990 17%,#051f3912 45%,#051f3900 70%),linear-gradient(0deg,#051f3970,transparent 45%); }
.v3-hero-photo img { height:100%; width:100%; object-fit:cover; object-position:55% center; transition:opacity .35s; }
.v3-hero-copy { max-width:750px; position:relative; min-width:0; }
.v3-hero .v3-kicker { color:#b8d8e7; margin-bottom:28px; max-width:600px; }
.v3-hero h1 { font-size:clamp(84px,6.8vw,104px); line-height:.96; letter-spacing:-.015em; margin:0 0 30px; font-family:'Barlow Condensed',Impact,sans-serif; font-weight:600; text-transform:uppercase; text-wrap:initial; }
.v3-hero h1 em { font-style:normal; color:var(--v3-cyan); }
.v3-hero-summary { font-size:16px; line-height:1.8; color:#d3e3ed; max-width:520px; margin:0 0 30px; margin-bottom:32px; }
.v3-hero-actions { display:flex; align-items:center; gap:30px; flex-wrap:wrap; }
.v3-hero-actions .v3-link { border-color:#60829b; color:#fff; font-size:14px; }
.v3-hero-caption { position:absolute; right:var(--v3-gutter); bottom:145px; display:flex; align-items:flex-end; gap:15px; font-size:11px; line-height:1.8; color:#e2f1f7; max-width:235px; text-shadow:0 1px 10px #001325; }
.v3-hero-caption span { border:1px solid #ffffff60; min-width:40px; height:40px; display:grid; place-items:center; font-size:16px; }
.v3-hero-counter { position:absolute; right:var(--v3-gutter); top:33px; font-size:11px; letter-spacing:.12em; color:#d9ebf5; }
.v3-hero-counter strong { font-size:24px; font-family:'Barlow Condensed',sans-serif; font-weight:600; }
.v3-hero-tabs { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); position:relative; z-index:3; border-top:1px solid #ffffff2b; background:#041c32e8; }
.v3-hero-tab { border:0; border-right:1px solid #ffffff20; border-top:3px solid transparent; background:transparent; padding:20px 28px; color:#9fb9cc; display:flex; align-items:center; text-align:left; gap:18px; font-size:13px; min-height:97px; }
.v3-hero-tab:first-child { padding-left:var(--v3-gutter); }
.v3-hero-tab:last-child { padding-right:var(--v3-gutter); }
.v3-hero-tab>span:first-child { font-size:12px; color:#6e98b5; font-family:Manrope,sans-serif; }
.v3-hero-tab strong { display:block; font-weight:650; color:#e3edf5; margin-bottom:4px; font-size:16px; line-height:1.5; }
.v3-hero-tab small { font-size:12px; line-height:1.6; }
.v3-hero-tab>span:last-child { font-size:26px; margin-left:auto; }
.v3-hero-tab[aria-pressed=true] { background:#0b3450; border-top-color:var(--v3-cyan); }
.v3-hero-tab[aria-pressed=true]>span:first-child,.v3-hero-tab[aria-pressed=true]>span:last-child { color:var(--v3-cyan); }
.v3-intro { padding-top:112px; padding-bottom:112px; display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:clamp(48px,6.5vw,104px); align-items:center; }
.v3-intro-visual { position:relative; padding:0 45px 52px 0; }
.v3-intro-visual>img { width:100%; height:540px; object-fit:cover; object-position:center 41%; }
.v3-foundation { position:absolute; right:0; bottom:0; background:var(--v3-navy); color:#fff; min-width:245px; padding:30px 32px; border-left:5px solid var(--v3-cyan); }
.v3-foundation strong { display:block; font-family:'Barlow Condensed',Impact,sans-serif; font-size:82px; font-weight:600; line-height:1; }
.v3-foundation span { font-size:12px; letter-spacing:.07em; text-transform:uppercase; color:#bad4e4; display:block; margin-top:12px; }
.v3-intro h2 { font-size:clamp(40px,4.15vw,60px); margin-bottom:30px; line-height:1.12; }
.v3-intro h2 em { font-style:normal; color:#008cb2; }
.v3-intro-copy>.v3-kicker { color:var(--v3-muted); margin-bottom:24px; }
.v3-intro-copy>p:not(.v3-kicker) { font-size:16px; line-height:1.85; color:var(--v3-muted); margin-bottom:20px; max-width:55ch; }
.v3-intro-copy .v3-link { margin-top:10px; }
.v3-intro-meta { display:flex; gap:18px; margin:28px 0 30px; padding-top:22px; border-top:1px solid var(--v3-line); flex-wrap:wrap; }
.v3-intro-meta span { font-size:11px; font-weight:700; line-height:1.8; padding-right:18px; border-right:1px solid var(--v3-line); letter-spacing:.035em; }
.v3-intro-meta span:last-child { border:0; padding-right:0; }
.v3-services { background:#eef3f5; padding-top:100px; padding-bottom:104px; }
.v3-section-heading { display:grid; justify-content:space-between; align-items:flex-end; gap:40px; margin-bottom:48px; grid-template-columns:minmax(0,1fr) auto; }
.v3-section-heading h2 { font-size:clamp(38px,3.85vw,56px); margin:0; max-width:25ch; }
.v3-section-heading>.v3-link { flex:none; margin-bottom:3px; justify-self:end; white-space:nowrap; }
.v3-section-heading .v3-kicker { color:var(--v3-muted); margin-bottom:22px; }
.v3-service-layout { display:grid; grid-template-columns:minmax(0,.92fr) minmax(0,1.08fr); background:#fff; }
.v3-service-art { position:relative; min-height:660px; overflow:hidden; margin:0; }
.v3-service-art img { width:100%; height:100%; object-fit:cover; position:absolute; inset:0; object-position:center; transition:transform .6s; }
.v3-service-art::after { content:""; position:absolute; inset:0; background:linear-gradient(0deg,#021b34e6,transparent 65%); }
.v3-service-art figcaption { position:absolute; left:35px; right:35px; bottom:37px; z-index:1; color:#fff; }
.v3-service-art figcaption>span { font-size:11px; letter-spacing:.09em; text-transform:uppercase; color:#bee0ed; }
.v3-service-art h3 { font-family:Manrope,Arial,sans-serif; text-transform:none; font-size:clamp(28px,2.55vw,38px); line-height:1.22; font-weight:650; letter-spacing:-.035em; margin:16px 0 0; max-width:460px; margin-top:20px; }
.v3-service-list { padding:12px 34px; }
.v3-service-row { display:grid; grid-template-columns:24px minmax(0,1fr) 24px; gap:16px; align-items:center; padding:22px 0; border-bottom:1px solid var(--v3-line); transition:color .2s; }
.v3-service-row:last-child { border-bottom:0; }
.v3-service-row>span:first-child { font-size:11px; color:#638095; }
.v3-service-row strong { font-size:19px; font-weight:650; line-height:1.35; display:block; letter-spacing:-.025em; }
.v3-service-row small { font-size:13px; color:var(--v3-muted); display:block; line-height:1.65; margin-top:7px; max-width:49ch; }
.v3-service-row>span:last-child { font-size:23px; color:#0d83a5; transition:transform .2s; }
.v3-service-row:hover strong { color:#00799c; }
.v3-service-row:hover>span:last-child { transform:translate(3px,-3px); }
.v3-technology { position:relative; background:#041b32; color:#fff; padding:100px 0; overflow:hidden; }
.v3-technology::before { content:""; position:absolute; inset:0; background:repeating-linear-gradient(90deg,transparent,transparent calc(25% - 1px),#ffffff05 calc(25% - 1px),#ffffff05 25%); pointer-events:none; }
.v3-tech-layout { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:clamp(40px,5vw,80px); align-items:center; position:relative; }
.v3-tech-copy .v3-kicker { color:#a0c9dd; margin-bottom:25px; }
.v3-tech-copy h2 { font-size:clamp(34px,3.25vw,48px); margin-bottom:26px; line-height:1.18; letter-spacing:-.035em; }
.v3-tech-copy h2 em { font-style:normal; color:var(--v3-cyan); }
.v3-tech-copy>p:not(.v3-kicker) { color:#adc8da; font-size:16px; line-height:1.85; max-width:54ch; }
.v3-tech-tabs { display:flex; gap:0; border-bottom:1px solid #51718a; margin:28px 0 22px; }
.v3-tech-tabs button { flex:1; background:none; border:0; border-bottom:3px solid transparent; color:#a8c5d8; padding:12px 9px 16px 0; font-size:13px; font-weight:600; text-align:left; line-height:1.6; white-space:nowrap; }
.v3-tech-tabs button[aria-pressed=true] { border-bottom-color:var(--v3-cyan); color:#fff; }
.v3-tech-tabs button span { font-size:11px; margin-right:8px; color:var(--v3-cyan); }
.v3-tech-copy .v3-link { margin-top:14px; border-color:#5b7b93; color:#fff; }
.v3-tech-description { min-height:88px; }
.v3-terrain-stage { position:relative; min-height:510px; background:#06243d; border:1px solid #2b536a; margin:0; overflow:hidden; }
.v3-terrain-stage::before,.v3-terrain-stage::after { content:""; position:absolute; top:-1px; left:-1px; border-left:2px solid var(--v3-cyan); border-top:2px solid var(--v3-cyan); width:26px; height:26px; z-index:2; pointer-events:none; }
.v3-terrain-stage::after { inset:auto -1px -1px auto; border:0; border-right:2px solid var(--v3-cyan); border-bottom:2px solid var(--v3-cyan); }
#terrain-canvas { width:100%; height:510px; display:block; background:#06243d url('assets/engineering.svg') center/cover no-repeat; }
.v3-terrain-label { position:absolute; left:24px; right:24px; top:22px; display:flex; justify-content:space-between; gap:20px; font-size:10px; letter-spacing:.1em; color:#b1d3e4; pointer-events:none; }
.v3-terrain-label>span:first-child { color:#57d3e9; }
.v3-terrain-stage figcaption { position:absolute; bottom:18px; left:24px; right:24px; display:flex; justify-content:space-between; gap:20px; color:#96b8ce; font-size:9px; line-height:1.7; pointer-events:none; }
.v3-terrain-stage figcaption span:first-child { display:flex; gap:8px; align-items:center; }
.v3-terrain-stage figcaption span:first-child::before { content:""; display:block; width:5px; height:5px; background:#58d3e6; border-radius:50%; }
.v3-projects { padding-top:104px; padding-bottom:104px; }
.v3-project-layout { display:grid; grid-template-columns:minmax(0,.88fr) minmax(0,1.12fr); border:1px solid var(--v3-line); }
.v3-project-poster { background:#06243f; color:#fff; position:relative; overflow:hidden; padding:42px; display:flex; flex-direction:column; justify-content:space-between; min-height:460px; }
.v3-project-poster::before { content:""; position:absolute; width:480px; height:480px; right:-120px; bottom:-160px; border:1px solid #3e9fbd50; border-radius:50%; box-shadow:0 0 0 45px #3e9fbd14,0 0 0 90px #3e9fbd0b; pointer-events:none; }
.v3-project-poster .v3-kicker { font-size:11px; color:#a4c8da; position:relative; }
.v3-project-poster-number { display:flex; align-items:baseline; gap:4px 14px; flex-wrap:wrap; position:relative; margin-top:35px; }
.v3-project-poster-number strong { font-family:'Barlow Condensed',Impact,sans-serif; font-size:clamp(110px,10.5vw,158px); font-weight:600; line-height:.9; letter-spacing:-.015em; }
.v3-project-poster-number span { font-family:'Barlow Condensed',sans-serif; font-size:43px; color:var(--v3-cyan); }
.v3-project-poster-label { font-size:12px; color:#add0e0; margin-top:18px; letter-spacing:.06em; text-transform:uppercase; position:relative; }
.v3-project-detail { padding:42px 46px; display:flex; flex-direction:column; justify-content:center; min-width:0; }
.v3-project-detail .v3-kicker { font-size:11px; color:var(--v3-muted); margin-bottom:22px; }
.v3-project-detail h3 { font-size:clamp(26px,2.4vw,36px); font-weight:650; line-height:1.3; letter-spacing:-.035em; margin-bottom:25px; }
.v3-project-facts { display:grid; grid-template-columns:1fr 1fr; border-top:1px solid var(--v3-line); border-bottom:1px solid var(--v3-line); margin-bottom:25px; }
.v3-project-facts>div { padding:18px 0; }
.v3-project-facts>div+div { border-left:1px solid var(--v3-line); padding-left:25px; }
.v3-project-facts dt { font-size:11px; color:var(--v3-muted); margin-bottom:8px; text-transform:uppercase; letter-spacing:.08em; }
.v3-project-facts dd { font-size:18px; font-weight:650; line-height:1.6; margin:0; }
.v3-project-client { font-size:11px; line-height:1.8; color:var(--v3-muted); margin-bottom:25px; letter-spacing:.04em; }
.v3-project-client strong { display:block; color:var(--v3-navy); font-size:14px; font-weight:600; margin-top:4px; line-height:1.65; letter-spacing:0; }
.v3-project-detail .v3-link { align-self:flex-start; }
.v3-project-select { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); border:1px solid var(--v3-line); border-top:0; }
.v3-project-select button { display:flex; gap:17px; align-items:center; text-align:left; background:#fff; border:0; border-top:3px solid transparent; border-right:1px solid var(--v3-line); padding:22px 24px; color:var(--v3-muted); font-size:12px; line-height:1.65; }
.v3-project-select button:last-child { border-right:0; }
.v3-project-select button>span { font-size:11px; color:#7896a9; }
.v3-project-select button strong { font-weight:600; display:block; color:var(--v3-navy); font-size:14px; margin-bottom:4px; }
.v3-project-select button[aria-pressed=true] { border-top-color:var(--v3-cyan); background:#f0f6f9; }
.v3-project-select button[aria-pressed=true]>span { color:#00799e; }
.v3-project-foot { display:flex; justify-content:space-between; gap:30px; align-items:flex-start; margin-top:27px; font-size:12px; line-height:1.8; color:var(--v3-muted); }
.v3-field-gallery { background:#eff4f6; padding-top:100px; padding-bottom:104px; }
.v3-gallery-grid { display:grid!important; grid-template-columns:repeat(12,minmax(0,1fr)); gap:22px; }
.v3-gallery-grid .gallery-card { position:relative; margin:0; overflow:hidden; grid-column:span 4; }
.v3-gallery-grid .gallery-card:nth-child(1) { grid-column:1/span 8; grid-row:1; }
.v3-gallery-grid .gallery-card:nth-child(2) { grid-column:9/span 4; grid-row:1/span 2; }
.v3-gallery-grid .gallery-card:nth-child(3) { grid-column:1/span 4; grid-row:2; }
.v3-gallery-grid .gallery-card:nth-child(4) { grid-column:5/span 4; grid-row:2; }
.v3-gallery-grid .gallery-open { display:block; height:100%; min-height:240px; background:#d9e4ea; }
.v3-gallery-grid .gallery-card:nth-child(1) .gallery-open { height:380px; }
.v3-gallery-grid .gallery-card:nth-child(2) .gallery-open { height:642px; }
.v3-gallery-grid .gallery-open img { height:100%; width:100%; object-fit:cover; transition:transform .5s; }
.v3-gallery-grid .gallery-card:nth-child(2) img { object-position:50% 44%; }
.v3-gallery-grid .gallery-card figcaption { position:absolute; bottom:0; left:0; right:0; padding:55px 23px 20px; pointer-events:none; background:linear-gradient(transparent,#011c32d9); color:#fff; font-size:14px; line-height:1.6; }
.v3-gallery-grid .gallery-open::after { bottom:auto; top:17px; right:17px; background:#fff; color:var(--v3-navy); }
.v3-client-strip { border-top:1px solid var(--v3-line); padding-top:35px; padding-bottom:35px; display:flex; align-items:center; justify-content:space-between; gap:35px; }
.v3-client-strip>p { font-size:11px; line-height:1.9; letter-spacing:.07em; color:var(--v3-muted); text-transform:uppercase; margin:0; max-width:180px; }
.v3-client-names { display:flex; align-items:center; justify-content:space-between; flex:1; max-width:900px; gap:35px; flex-wrap:wrap; }
.v3-client-names span { font-family:'Barlow Condensed',sans-serif; font-size:27px; font-weight:600; color:#466278; letter-spacing:.01em; }
.v3-client-names small { font-family:Manrope,sans-serif; font-size:10px; font-weight:500; display:block; margin-top:2px; letter-spacing:.08em; }
.v3-intro-copy,.v3-tech-copy,.v3-service-list,.v3-section-heading>div { min-width:0; }
html[lang=en] .v3-hero h1 { font-size:clamp(72px,5.9vw,88px); line-height:.96; }
.v3-home h2,.v3-home h3,.v3-project-facts dd { overflow-wrap:anywhere; }
@media(min-width:1800px) {
  .v3-hero-photo { left:35%; }
  .v3-hero-main { min-height:740px; }
  .v3-hero { min-height:0; }
}
@media(max-width:1200px) {
  .v3-intro { gap:55px; }
  .v3-intro-visual { padding-right:25px; }
  .v3-intro-visual>img { height:490px; }
  .v3-service-row { padding:19px 0; gap:12px; }
  .v3-service-list { padding-left:27px; padding-right:27px; }
  .v3-tech-layout { gap:45px; }
  .v3-project-detail { padding:35px; }
  .v3-project-poster { padding:35px; }
  .v3-project-select button { padding:20px; }
  .v3-gallery-grid .gallery-card:nth-child(1) .gallery-open { height:330px; }
  .v3-gallery-grid .gallery-card:nth-child(2) .gallery-open { height:592px; }
}
@media(max-width:950px) {
  .v3-project-layout { grid-template-columns:minmax(0,1fr); }
  .v3-hero-main { min-height:640px; padding-top:60px; padding-bottom:70px; }
  .v3-hero-copy { max-width:600px; }
  .v3-hero-photo { left:25%; }
  .v3-hero-photo::after { background:linear-gradient(90deg,#051f39ec,#051f3980 45%,#051f3918),linear-gradient(0deg,#051f3970,transparent); }
  .v3-hero-summary { max-width:450px; }
  .v3-hero-tab { padding:19px 20px; gap:13px; }
  .v3-hero-tab>span:last-child { display:none; }
  .v3-hero-caption { max-width:180px; font-size:10px; }
  .v3-intro { gap:40px; padding-top:80px; padding-bottom:80px; }
  .v3-intro-visual>img { height:500px; }
  .v3-foundation { min-width:190px; padding:23px; }
  .v3-foundation strong { font-size:65px; }
  .v3-intro-meta { gap:15px; flex-wrap:wrap; }
  .v3-intro-meta span { padding-right:15px; }
  .v3-service-layout { grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr); }
  .v3-service-art figcaption { left:25px; right:25px; }
  .v3-service-row { padding:20px 0; gap:10px; }
  .v3-tech-layout { grid-template-columns:minmax(0,1fr); gap:35px; }
  .v3-tech-copy>p:not(.v3-kicker) { max-width:700px; }
  .v3-tech-description { min-height:auto; }
  .v3-tech-tabs { max-width:550px; }
  .v3-terrain-stage { max-width:750px; width:100%; justify-self:center; }
  .v3-project-select button { gap:10px; }
  .v3-project-poster { min-height:320px; }
  .v3-client-names { gap:20px; }
  .v3-client-names span { font-size:23px; }
  .v3-hero h1 { font-size:clamp(64px,8.8vw,82px); }
  html[lang=en] .v3-hero h1 { font-size:clamp(56px,7.3vw,68px); }
  .v3-intro h2,.v3-section-heading h2 { font-size:clamp(36px,4.8vw,46px); }
  .v3-tech-copy h2 { font-size:clamp(38px,5vw,46px); }
  .v3-tech-copy { max-width:690px; }
  .v3-hero-tab small { display:none; }
  .v3-service-row strong { font-size:17px; }
  .v3-section-heading { grid-template-columns:minmax(0,1fr); gap:26px; }
  .v3-section-heading>.v3-link { justify-self:start; }
}
@media(max-width:650px) {
  .v3-hero { min-height:0; }
  .v3-hero-main { min-height:610px; padding-top:64px; padding-bottom:88px; align-items:flex-start; }
  .v3-hero-photo { left:0; }
  .v3-hero-photo::after { background:linear-gradient(90deg,#051f39ed,#051f39b8 55%,#051f3950),linear-gradient(0deg,#051f39d9,transparent 60%); }
  .v3-hero-photo img { object-position:59% center; }
  .v3-hero h1 { margin-bottom:26px; font-size:clamp(42px,11.8vw,74px); line-height:.98; }
  .v3-hero .v3-kicker { font-size:10px; letter-spacing:.08em; line-height:1.8; margin-bottom:24px; max-width:35ch; }
  .v3-hero-summary { max-width:36ch; margin-bottom:28px; font-size:16px; line-height:1.8; }
  .v3-hero-actions { gap:22px; align-items:flex-start; }
  .v3-button { padding:15px 18px; gap:22px; min-height:54px; font-size:13px; }
  .v3-hero-actions .v3-link { gap:13px; font-size:13px; }
  .v3-hero-caption { right:var(--v3-gutter); bottom:200px; left:var(--v3-gutter); font-size:9px; max-width:290px; align-items:center; }
  .v3-hero-caption span { width:30px; min-width:30px; height:30px; font-size:12px; }
  .v3-hero-counter { font-size:9px; top:20px; }
  .v3-hero-counter strong { font-size:18px; }
  .v3-hero-tabs { grid-template-columns:1fr; }
  .v3-hero-tab { min-height:62px; padding:13px var(--v3-gutter)!important; border-top:0; border-left:3px solid transparent; border-right:0; border-bottom:1px solid #ffffff20; gap:18px; }
  .v3-hero-tab strong { margin:0; font-size:14px; }
  .v3-hero-tab small { display:none; }
  .v3-hero-tab>span:last-child { display:block; font-size:18px; }
  .v3-hero-tab[aria-pressed=true] { border-left-color:var(--v3-cyan); }
  .v3-intro { display:flex; flex-direction:column-reverse; gap:40px; padding-top:72px; padding-bottom:72px; align-items:stretch; }
  .v3-intro h2 { font-size:clamp(36px,8.8vw,48px); }
  .v3-intro-copy>p:not(.v3-kicker) { font-size:16px; line-height:1.85; }
  .v3-intro-visual { width:100%; padding:0 28px 35px 0; }
  .v3-intro-visual>img { height:350px; object-position:center 43%; }
  .v3-foundation { min-width:175px; padding:21px 23px; }
  .v3-foundation strong { font-size:61px; }
  .v3-foundation span { margin-top:9px; font-size:11px; }
  .v3-section-heading { display:block; margin-bottom:34px; }
  .v3-section-heading h2 { line-height:1.15; font-size:clamp(34px,8.4vw,46px); }
  .v3-section-heading>.v3-link { margin-top:22px; }
  .v3-kicker { font-size:11px; }
  .v3-services { padding-top:72px; padding-bottom:72px; }
  .v3-service-layout { display:flex; flex-direction:column; }
  .v3-service-art { min-height:320px; order:0; }
  .v3-service-art img { object-position:center 55%; }
  .v3-service-art h3 { max-width:360px; font-size:30px; }
  .v3-service-art figcaption { left:25px; bottom:25px; }
  .v3-service-list { padding:8px 23px; }
  .v3-service-row { padding:20px 0; gap:12px; grid-template-columns:22px 1fr 22px; }
  .v3-service-row strong { font-size:18px; }
  .v3-service-row small { font-size:13px; }
  .v3-service-row>span:first-child { font-size:11px; }
  .v3-service-row>span:last-child { font-size:20px; }
  .v3-technology { padding:72px 0; }
  .v3-tech-layout { gap:30px; }
  .v3-tech-copy h2 { font-size:clamp(30px,7.5vw,42px); line-height:1.18; }
  .v3-tech-copy>p:not(.v3-kicker) { font-size:16px; line-height:1.85; }
  .v3-tech-tabs button { white-space:normal; padding-right:7px; font-size:12px; line-height:1.5; }
  .v3-tech-tabs button span { display:block; margin:0 0 5px; font-size:11px; }
  .v3-terrain-stage { min-height:370px; }
  #terrain-canvas { height:370px; }
  .v3-terrain-label { font-size:8px; left:17px; right:17px; top:17px; }
  .v3-terrain-stage figcaption { font-size:8px; left:17px; right:17px; bottom:15px; gap:12px; }
  .v3-terrain-stage figcaption>span:last-child { max-width:135px; text-align:right; }
  .v3-projects { padding-top:72px; padding-bottom:72px; }
  .v3-project-layout { grid-template-columns:1fr; }
  .v3-project-poster { min-height:280px; padding:27px; }
  .v3-project-poster-number { margin-top:30px; }
  .v3-project-poster-number strong { font-size:clamp(100px,28vw,124px); }
  .v3-project-poster-number span { font-size:38px; }
  .v3-project-poster-label { margin-bottom:0; font-size:11px; }
  .v3-project-detail { padding:28px 25px; }
  .v3-project-detail h3 { font-size:27px; line-height:1.3; }
  .v3-project-facts dd { font-size:16px; }
  .v3-project-select { grid-template-columns:1fr; }
  .v3-project-select button { border-right:0; border-bottom:1px solid var(--v3-line); border-top:0; border-left:3px solid transparent; padding:16px 20px; gap:17px; font-size:12px; }
  .v3-project-select button strong { font-size:14px; }
  .v3-project-select button[aria-pressed=true] { border-left-color:var(--v3-cyan); }
  .v3-project-foot { display:block; font-size:12px; }
  .v3-project-foot .v3-link { margin-top:18px; }
  .v3-field-gallery { padding:72px 0; }
  .v3-gallery-grid { grid-template-columns:1fr 1fr; gap:14px; }
  .v3-gallery-grid .gallery-card:nth-child(n) { grid-column:auto; grid-row:auto; }
  .v3-gallery-grid .gallery-card:nth-child(1) { grid-column:1/-1; }
  .v3-gallery-grid .gallery-card:nth-child(2) { grid-row:span 2; }
  .v3-gallery-grid .gallery-card:nth-child(1) .gallery-open { height:245px; }
  .v3-gallery-grid .gallery-card:nth-child(2) .gallery-open { height:374px; }
  .v3-gallery-grid .gallery-open { min-height:180px; height:180px; }
  .v3-gallery-grid .gallery-card figcaption { padding:35px 13px 12px; font-size:12px; line-height:1.6; }
  .v3-gallery-grid .gallery-open::after { top:12px; right:12px; width:29px; height:29px; font-size:17px; }
  .v3-client-strip { display:block; padding-top:30px; padding-bottom:30px; }
  .v3-client-strip>p { max-width:100%; margin-bottom:24px; font-size:11px; }
  .v3-client-names { display:grid; grid-template-columns:1fr 1fr; gap:22px; }
  .v3-client-names span { font-size:25px; }
  .v3-client-names small { font-size:10px; }
  html[lang=en] .v3-hero h1 { font-size:clamp(34px,9.3vw,60px); }
  .v3-hero-actions .v3-link { align-self:center; }
}
@media(prefers-reduced-motion:reduce) {
  .v3-home * { transition:none!important; scroll-behavior:auto!important; }
}

@media(max-width:650px) {
  .v3-link { min-height:44px; }
  .v3-service-row { grid-template-columns:22px minmax(0,1fr) 22px; }
}
@media(max-width:390px) {
  .v3-gallery-grid { grid-template-columns:minmax(0,1fr); }
  .v3-gallery-grid .gallery-card:nth-child(n) { grid-column:auto; grid-row:auto; }
  .v3-gallery-grid .gallery-card:nth-child(n) .gallery-open { height:260px; }
  .v3-gallery-grid .gallery-card:nth-child(2) .gallery-open { height:370px; }
}
