

:root {
  --ink: #11110f;
  --paper: #f0efe9;
  --white: #f7f6f0;
  --acid: #d7ff2f;
  --grey: #8d8e8b;
  --line: rgba(17, 17, 15, 0.22);
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  margin: 0;
  background: var(--paper);
  color: var(--ink);
  font-family: Arial, "Helvetica Neue", Helvetica, sans-serif;
  overflow-x: hidden;
}
a { color: inherit; text-decoration: none; }
h2 { font-weight: 600; }
::selection { background: var(--acid); color: var(--ink); }

.site-nav {
  position: sticky;
  top: 0;
  z-index: 50;
  height: 72px;
  display: grid;
  grid-template-columns: 1fr auto 1fr;
  align-items: center;
  padding: 0 3vw;
  background: rgba(240, 239, 233, 0.92);
  border-bottom: 1px solid var(--line);
  backdrop-filter: blur(14px);
}
.wordmark {
  width: fit-content;
  font-weight: 900;
  font-size: 1.15rem;
  letter-spacing: -0.08em;
}
.wordmark-dot { color: var(--acid); font-size: 0.68em; margin-left: 0.15em; }
.nav-links { display: flex; gap: 2.3rem; font-size: 0.69rem; font-weight: 700; text-transform: uppercase; letter-spacing: 0.14em; }
.nav-links a { position: relative; }
.nav-links a::after { content: ""; position: absolute; left: 0; right: 100%; bottom: -6px; height: 2px; background: var(--ink); transition: right .2s ease; }
.nav-links a:hover::after { right: 0; }
.nav-actions { justify-self: end; display: flex; align-items: center; gap: 1.25rem; }
.language-switcher { display: inline-flex; align-items: center; padding: 3px; border: 1px solid var(--ink); border-radius: 999px; background: rgba(247,246,240,.72); }
.language-switcher button { min-height: 30px; padding: .42rem .75rem; border: 0; border-radius: 999px; background: transparent; color: var(--ink); font: inherit; font-size: .58rem; font-weight: 800; line-height: 1; letter-spacing: .08em; text-transform: uppercase; cursor: pointer; transition: background .18s ease, color .18s ease; }
.language-switcher button:hover { background: rgba(17,17,15,.08); }
.language-switcher button.is-active { background: var(--acid); color: var(--ink); }
.language-switcher button:focus-visible { outline: 2px solid var(--ink); outline-offset: 2px; }
.availability { justify-self: end; display: flex; align-items: center; gap: .6rem; font-size: .69rem; font-weight: 700; text-transform: uppercase; letter-spacing: .11em; }
.availability i { width: 8px; height: 8px; border-radius: 50%; background: #4fba57; box-shadow: 0 0 0 4px rgba(79,186,87,.14); }

.hero {
  min-height: calc(100svh - 72px);
  position: relative;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  padding: 4vh 3vw 5vh;
  overflow: hidden;
}
.hero::before {
  content: "";
  position: absolute;
  width: 28vw;
  height: 28vw;
  min-width: 300px;
  min-height: 300px;
  right: -5vw;
  top: 15%;
  border-radius: 50%;
  background: var(--acid);
  filter: blur(1px);
  z-index: -1;
}
.hero-kicker { display: flex; justify-content: space-between; font-size: .68rem; font-weight: 700; text-transform: uppercase; letter-spacing: .16em; }
.hero h1 {
  margin: 0;
  display: flex;
  flex-direction: column;
  width: auto;
  max-width: 100%;
  font-size: clamp(5.5rem, 14vw, 12.5rem);
  font-weight: 900;
  letter-spacing: -.08em;
  line-height: .88;
  text-transform: uppercase;
}
.hero h1 span { display: block; width: fit-content; }
.hero h1 span:last-child { margin-left: 9vw; }
.hero-bottom { display: flex; justify-content: space-between; align-items: flex-end; gap: 3rem; margin-top: 4rem; }
.hero-bottom p { width: min(620px, 62vw); margin: 0; font-size: clamp(1.2rem, 2.15vw, 2rem); line-height: 1.12; letter-spacing: -.04em; }
.hero-bottom p em { font-family: Georgia, serif; font-weight: 400; }
.scroll-link { display: flex; align-items: center; gap: 1rem; padding-bottom: .8rem; border-bottom: 1px solid var(--ink); font-size: .72rem; font-weight: 700; text-transform: uppercase; letter-spacing: .1em; }
.arrow-icon { width: 19px; height: 19px; fill: none; stroke: currentColor; stroke-width: 1.6; }
.hero-stamp { position: absolute; right: 3vw; top: 24%; width: 120px; height: 120px; border: 1px solid var(--ink); border-radius: 50%; display: grid; place-content: center; text-align: center; font-size: .65rem; font-weight: 900; line-height: 1.15; transform: rotate(10deg); }

.project-index { padding: 7rem 3vw 8rem; border-top: 1px solid var(--line); }
.section-label { margin: 0 0 2rem; font-size: .67rem; font-weight: 800; text-transform: uppercase; letter-spacing: .18em; }
.index-list { border-top: 1px solid var(--ink); }
.index-row { min-height: 94px; display: grid; grid-template-columns: 8% 1fr 30% 24px; align-items: center; border-bottom: 1px solid var(--ink); transition: padding .25s ease, background .25s ease; }
.index-row:hover { background: var(--acid); padding: 0 1.2rem; }
.index-row span { font-size: .69rem; font-weight: 700; }
.index-row strong { font-size: clamp(1.4rem, 3vw, 2.8rem); line-height: 1.04; letter-spacing: -.055em; }
.index-row em { font-style: normal; font-size: .77rem; text-transform: uppercase; letter-spacing: .1em; }
.index-row b { font-size: 1.2rem; }

.case { padding: 8rem 3vw; scroll-margin-top: 70px; }
.case-dark { background: var(--ink); color: var(--white); }
.case-header { display: grid; grid-template-columns: 1.25fr .75fr; align-items: end; gap: 4rem; margin-bottom: 4rem; }
.case-number { margin: 0 0 1rem; color: var(--acid); font-size: .68rem; font-weight: 800; text-transform: uppercase; letter-spacing: .16em; }
.case h2 { margin: 0; font-size: clamp(5rem, 13vw, 11rem); line-height: .84; letter-spacing: -.075em; }
.akto-title {
  max-width: 100%;
  white-space: nowrap;
  font-size: clamp(4.75rem, 9.5vw, 8.25rem) !important;
  line-height: .84 !important;
  letter-spacing: -.085em !important;
}
.akto-tail { display: inline-block; margin-left: -.085em; }
.project-title-detail {
  display: block;
  margin-top: 1.15rem;
  white-space: normal;
  font-size: clamp(1rem, 1.7vw, 1.5rem);
  font-weight: 700;
  line-height: 1.15;
  letter-spacing: .04em;
}
.case-intro { margin: 0 0 .3rem; font-size: clamp(1.2rem, 2.25vw, 2rem); line-height: 1.13; letter-spacing: -.035em; }

.media-placeholder { position: relative; min-height: 220px; background: #6f706e; color: #eeeee9; overflow: hidden; border: 1px solid rgba(255,255,255,.18); }
.media-hero { aspect-ratio: 16/8.2; min-height: 440px; }
.media-hero.media-hero-vertical { width: min(100%, 430px); min-height: 0; margin-inline: auto; aspect-ratio: 9/16; }
.akto-video-section { padding: 1.5rem 0 5rem; }
.akto-video-heading { display: flex; justify-content: space-between; align-items: baseline; max-width: 990px; margin: 0 auto 1.25rem; }
.akto-video-heading .section-label { margin: 0; }
.akto-video-heading > p:last-child { margin: 0; color: rgba(255,255,255,.56); font-size: .64rem; font-weight: 800; letter-spacing: .14em; text-transform: uppercase; }
.akto-video-grid { width: min(100%, 990px); margin-inline: auto; display: grid; grid-template-columns: repeat(3, minmax(320px, 1fr)); gap: .95rem; overflow-x: auto; scrollbar-width: none; }
.akto-video-grid::-webkit-scrollbar { display: none; }
.local-video { position: relative; width: 100%; overflow: hidden; background: #0b0b0a; }
.local-video video { position: absolute; inset: 0; display: block; width: 100%; height: 100%; border: 0; object-fit: contain; background: #0b0b0a; }
.akto-video-grid .local-video { aspect-ratio: 9/16; }
.media-noise { position: absolute; inset: 0; opacity: .18; background-image: repeating-linear-gradient(0deg, transparent, transparent 3px, rgba(255,255,255,.08) 3px, rgba(255,255,255,.08) 4px), linear-gradient(135deg, rgba(255,255,255,.16), transparent 42%); }
.media-topline { position: absolute; inset: 18px 20px auto; display: flex; justify-content: space-between; font-size: .6rem; font-weight: 800; letter-spacing: .14em; text-transform: uppercase; }
.media-center { position: absolute; inset: 0; display: flex; flex-direction: column; justify-content: center; align-items: center; gap: .7rem; text-align: center; padding: 3rem; }
.media-center strong { font-size: clamp(.95rem, 1.4vw, 1.3rem); letter-spacing: -.02em; }
.media-center small { max-width: 440px; color: rgba(255,255,255,.66); font-size: .7rem; line-height: 1.5; }
.play-icon { width: 54px; height: 54px; padding: 15px; border: 1px solid rgba(255,255,255,.65); border-radius: 50%; fill: currentColor; transition: transform .2s ease; }
.media-placeholder:hover .play-icon { transform: scale(1.08); }
.media-cross { width: 28px; height: 28px; position: relative; }
.media-cross::before, .media-cross::after { content: ""; position: absolute; top: 50%; left: 0; right: 0; height: 1px; background: currentColor; }
.media-cross::after { transform: rotate(90deg); }
.media-corner { position: absolute; width: 14px; height: 14px; border-color: rgba(255,255,255,.5); }
.media-corner-tl { left: 15px; top: 15px; border-left: 1px solid; border-top: 1px solid; }
.media-corner-tr { right: 15px; top: 15px; border-right: 1px solid; border-top: 1px solid; }
.media-corner-bl { left: 15px; bottom: 15px; border-left: 1px solid; border-bottom: 1px solid; }
.media-corner-br { right: 15px; bottom: 15px; border-right: 1px solid; border-bottom: 1px solid; }

.format-switcher { --format-line: rgba(17,17,15,.24); --format-muted: rgba(17,17,15,.58); color: var(--ink); }
.format-switcher-dark { --format-line: rgba(255,255,255,.25); --format-muted: rgba(255,255,255,.58); color: var(--white); }
.format-switcher-header { display: flex; align-items: center; justify-content: space-between; gap: 2rem; padding-bottom: 1rem; border-bottom: 1px solid var(--format-line); }
.format-switcher-header > span { font-size: .64rem; font-weight: 800; letter-spacing: .15em; text-transform: uppercase; }
.format-tabs { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: .45rem; }
.format-tab { min-width: 62px; padding: .6rem .85rem; border: 1px solid var(--format-line); border-radius: 999px; background: transparent; color: inherit; font: inherit; font-size: .64rem; font-weight: 800; letter-spacing: .08em; cursor: pointer; }
.format-tab.is-active { border-color: var(--acid); background: var(--acid); color: var(--ink); }
.format-stage-shell { display: grid; place-items: center; padding: 2rem 0 1rem; }
.format-stage { position: relative; max-width: 100%; overflow: hidden; background: #0b0b0a; color: var(--white); }
.format-stage.ratio-16x9 { width: min(100%, 1080px); aspect-ratio: 16/9; }
.format-stage.ratio-9x16 { width: min(100%, 320px); aspect-ratio: 9/16; }
.format-stage.ratio-4x5 { width: min(100%, 600px); aspect-ratio: 4/5; }
.format-stage video, .format-stage iframe { display: block; width: 100%; height: 100%; border: 0; object-fit: contain; background: #0b0b0a; }
.format-placeholder { width: 100%; height: 100%; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: .7rem; padding: 2rem; text-align: center; background: #6f706e; }
.format-placeholder::before { content: ""; position: absolute; inset: 0; opacity: .18; background-image: repeating-linear-gradient(0deg, transparent, transparent 3px, rgba(255,255,255,.08) 3px, rgba(255,255,255,.08) 4px), linear-gradient(135deg, rgba(255,255,255,.16), transparent 42%); }
.format-placeholder > * { position: relative; z-index: 1; }
.format-placeholder-icon { width: 52px; height: 52px; border: 1px solid rgba(255,255,255,.7); border-radius: 50%; }
.format-placeholder-icon::after { content: ""; display: block; width: 0; height: 0; margin: 17px 0 0 20px; border-top: 8px solid transparent; border-bottom: 8px solid transparent; border-left: 13px solid var(--white); }
.format-placeholder strong { font-size: clamp(.95rem, 1.4vw, 1.25rem); }
.format-placeholder small { color: rgba(255,255,255,.68); font-size: .7rem; }
.format-copy { display: grid; gap: .45rem; }
.format-step, .format-note { margin: 0; color: var(--format-muted); font-size: .72rem; line-height: 1.5; }
.format-step strong { color: var(--acid); }

.media-collection { position: relative; min-height: 220px; padding: 18px; display: flex; flex-direction: column; gap: 12px; overflow: hidden; background: #666764; color: #eeeee9; border: 1px solid rgba(255,255,255,.18); }
.media-collection::before { content: ""; position: absolute; inset: 0; opacity: .15; pointer-events: none; background-image: repeating-linear-gradient(0deg, transparent, transparent 3px, rgba(255,255,255,.08) 3px, rgba(255,255,255,.08) 4px), linear-gradient(135deg, rgba(255,255,255,.16), transparent 42%); }
.collection-topline, .collection-grid, .collection-note { position: relative; z-index: 1; }
.collection-topline { display: flex; justify-content: space-between; gap: 1rem; font-size: .58rem; font-weight: 800; letter-spacing: .13em; text-transform: uppercase; }
.collection-grid { flex: 1; display: grid; gap: 7px; }
.collection-count-2 .collection-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.collection-count-3 .collection-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.collection-count-4 .collection-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.collection-count-6 .collection-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.collection-item { position: relative; min-height: 72px; padding: 1.25rem .65rem .65rem; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: .45rem; text-align: center; background: rgba(20,20,18,.13); border: 1px solid rgba(255,255,255,.24); overflow: hidden; }
.collection-item .media-cross { width: 17px; height: 17px; opacity: .78; }
.collection-item strong { max-width: 96%; font-size: .68rem; line-height: 1.2; }
.collection-index { position: absolute; left: 7px; top: 6px; color: rgba(255,255,255,.58); font-size: .5rem; font-weight: 800; }
.collection-note { color: rgba(255,255,255,.66); font-size: .61rem; line-height: 1.35; }

.case-meta { display: grid; grid-template-columns: repeat(4, 1fr); border-bottom: 1px solid rgba(255,255,255,.2); }
.case-meta div { padding: 1.5rem 1.2rem 1.5rem 0; border-right: 1px solid rgba(255,255,255,.2); }
.case-meta div:last-child { border: 0; padding-left: 1.2rem; }
.case-meta div:not(:first-child) { padding-left: 1.2rem; }
.case-meta span { display: block; margin-bottom: .5rem; color: rgba(255,255,255,.48); font-size: .61rem; font-weight: 700; letter-spacing: .15em; text-transform: uppercase; }
.case-meta strong { font-size: .78rem; font-weight: 600; }

.case-story { display: grid; grid-template-columns: 1fr 1fr; gap: 8vw; padding: 9rem 0 7rem; }
.story-heading h3 { max-width: 600px; margin: 0; font-size: clamp(2.7rem, 5vw, 5.2rem); line-height: .92; letter-spacing: -.065em; }
.story-copy { display: grid; grid-template-columns: 1fr 1fr; gap: 2rem; align-content: end; }
.story-copy p { margin: 0; color: rgba(255,255,255,.68); font-size: .93rem; line-height: 1.63; }

.process-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 3.5rem 1.2rem; align-items: stretch; }
.process-step { position: relative; padding-top: 1.65rem; display: grid; grid-template-rows: auto auto 1fr; align-content: start; }
.process-step .media-placeholder, .process-step > .media-collection { width: 100%; height: 410px; min-height: 0; aspect-ratio: auto; }
.process-step > .akto-process-media { width: 100%; height: auto; min-height: 0; aspect-ratio: 1260 / 1179; background: #6f706e; }
.akto-process-media > img { position: relative; z-index: 1; display: block; width: 100%; height: 100%; object-fit: contain; opacity: 1; }
.akto-sheet-video-player { position: absolute; z-index: 2; left: 48.65%; top: 4.07%; width: 48.65%; height: 92.1%; overflow: hidden; box-sizing: border-box; background: #000; border: 1px solid #fff; }
.akto-sheet-video-player video { display: block; width: 100%; height: 100%; object-fit: cover; }
.step-number { position: absolute; z-index: 2; top: 0; left: 0; color: var(--acid); font-size: .62rem; font-weight: 900; }
.process-step h4 { margin: 1.2rem 0 .5rem; font-size: 1.1rem; }
.process-step p { margin: 0; max-width: 370px; color: rgba(255,255,255,.56); font-size: .76rem; line-height: 1.55; }

.case-light { background: var(--paper); color: var(--ink); }
.case-number-dark { color: var(--ink); }
.case-title-stacked { display: flex; flex-direction: column; font-size: clamp(5rem, 12vw, 11rem) !important; }
.case-title-stacked span:last-child { margin-left: 12vw; }
.case-meta-light { border-color: var(--line); }
.case-meta-light div, .case-meta-light div:nth-child(3), .case-meta-light div:nth-child(4) { border-color: var(--line); }
.case-meta-light span { color: rgba(17,17,15,.48); }
.case-story-light { border-bottom: 1px solid var(--line); }
.story-copy-dark p { color: rgba(17,17,15,.65); }

.manga-case .case-story-light { border-bottom: 0; }
.client-quote { width: min(980px, 86vw); margin: 2rem auto 6rem; text-align: center; }
.client-quote p { margin: 0; font-family: Georgia, serif; font-size: clamp(1.7rem, 2.8vw, 3.1rem); font-style: italic; line-height: 1.16; letter-spacing: -.025em; }
.client-quote footer { display: flex; flex-direction: column; gap: .3rem; margin-top: 2rem; font-size: .65rem; font-style: normal; letter-spacing: .1em; text-transform: uppercase; }
.client-quote footer span { color: rgba(17,17,15,.56); }

.manga-breakdown { padding: 4rem 0 2rem; }
.breakdown-block { padding: 5rem 0; border-top: 1px solid var(--ink); }
.manga-case .source-block { border-top: 0; }
.breakdown-heading { display: grid; grid-template-columns: .7fr 1.3fr; gap: 7vw; align-items: start; margin-bottom: 2rem; }
.breakdown-heading > span { font-size: .64rem; font-weight: 800; letter-spacing: .15em; text-transform: uppercase; }
.breakdown-heading > p { max-width: 640px; margin: 0; color: rgba(17,17,15,.62); font-size: .84rem; line-height: 1.58; }
.project-image { overflow: hidden; background: #fff; }
.project-image img { display: block; width: 100%; height: 100%; object-fit: contain; }
.breakdown-main-media { width: min(100%, 900px); margin-inline: auto; aspect-ratio: 2048/1438; }
.layer-collection { min-height: 570px; }
.layer-collection .collection-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.layer-collection .collection-item { min-height: 210px; }
.layer-collection .collection-item strong { font-size: .84rem; }
.layer-image-collection { min-height: 0; background: #666764; }
.layer-image-collection .collection-grid { flex: none; }
.layer-image-collection .layer-image-item { min-height: 0; padding: 0; aspect-ratio: 16/9; background: #fff; }
.layer-image-item img { display: block; width: 100%; height: 100%; object-fit: contain; }
.layer-image-item .collection-index { z-index: 2; padding: .25rem .35rem; background: rgba(17,17,15,.78); color: #fff; }
.breakdown-pair { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem; }
.breakdown-pair .media-placeholder { width: 100%; min-width: 0; min-height: 370px; aspect-ratio: 4/3; }
.hybrid-composition-image { width: 100%; min-width: 0; aspect-ratio: 4/3; background: #fff; border: 1px solid rgba(17,17,15,.16); }
.hybrid-composition-item { min-width: 0; margin: 0; }
.hybrid-composition-item figcaption { margin-top: .75rem; font-size: .62rem; font-weight: 800; letter-spacing: .13em; text-transform: uppercase; }
.breakdown-pair-wide { grid-template-columns: 1.25fr .75fr; }
.breakdown-pair-wide .media-placeholder { aspect-ratio: auto; }
.animation-block .breakdown-pair-wide { grid-template-columns: repeat(2, minmax(0, 1fr)); align-items: stretch; }
.glitch-animation-video,
.glitch-animation-image { width: 100%; min-width: 0; aspect-ratio: 16/9; background: #fff; border: 1px solid rgba(17,17,15,.16); }
.glitch-animation-video video,
.glitch-animation-image img { object-fit: contain; background: #fff; }

.frame-study { display: grid; grid-template-columns: 1fr; gap: 2.5rem; padding: 6rem 0 2rem; border-top: 1px solid var(--ink); }
.frame-study h3 { max-width: 900px; margin: 0; font-size: clamp(2.2rem, 4.2vw, 4.6rem); line-height: .92; letter-spacing: -.06em; }
.frame-strip { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 10px; }
.frame-strip span { aspect-ratio: 16/9; position: relative; display: block; overflow: hidden; background: #1233ef; color: #fff; font-size: .62rem; }
.frame-strip span::before { content: ""; position: absolute; z-index: 2; inset: 6px; border: 1px solid rgba(255,255,255,.34); pointer-events: none; }
.frame-strip img { display: block; width: 100%; height: 100%; object-fit: cover; }
.frame-strip b { position: absolute; z-index: 3; left: 10px; bottom: 10px; padding: .22rem .34rem; background: rgba(17,17,15,.72); font-size: .58rem; font-weight: 800; }
.frame-note { max-width: 650px; margin: 0; color: rgba(17,17,15,.58); font-size: .75rem; line-height: 1.55; }

.compact-case { padding: 8rem 3vw; scroll-margin-top: 70px; }
.compact-dark { background: #242522; color: var(--white); }
.compact-header { border-bottom: 1px solid rgba(255,255,255,.25); padding-bottom: 4rem; }
.compact-title-row { display: grid; grid-template-columns: 1.2fr .8fr; align-items: start; gap: 5vw; }
.compact-title-row h2 { margin: 0; font-size: clamp(5.5rem, 14vw, 12rem); line-height: .84; letter-spacing: -.075em; }
.compact-project-title { display: flex; flex-direction: column; align-items: flex-start; }
.compact-title-row p { margin: 0; font-size: clamp(1.2rem, 2.25vw, 2rem); line-height: 1.12; letter-spacing: -.04em; }
.compact-meta { display: flex; justify-content: space-between; gap: 2rem; padding: 1.5rem 0; border-bottom: 1px solid rgba(255,255,255,.25); color: rgba(255,255,255,.56); font-size: .63rem; font-weight: 700; text-transform: uppercase; letter-spacing: .11em; }
.afnor-grid { display: grid; grid-template-columns: minmax(0, .7fr) minmax(0, 1.3fr); gap: 1.2rem; align-items: start; padding: 7rem 0; }
.afnor-small, .afnor-large { display: grid; grid-template-rows: auto auto; align-content: start; }
.afnor-grid .media-placeholder, .afnor-large .media-placeholder { width: 100%; height: 430px; min-height: 0; aspect-ratio: auto; }
.afnor-process-image { width: 100%; height: auto; aspect-ratio: 2048/1037; background: transparent; }
.afnor-board-image { aspect-ratio: 1260/1179; }
.afnor-prompt-focus { grid-column: 1 / -1; width: min(100%, 1150px); justify-self: center; padding-top: 2.5rem; text-align: center; }
.afnor-prompt-focus .afnor-process-image { height: auto; aspect-ratio: 2048/1045; }
.afnor-large { grid-column: auto; }
.afnor-format-block { grid-column: 1 / -1; padding-top: 3rem; }
.afnor-format-block .format-copy { width: min(100%, 720px); margin-inline: auto; justify-items: center; text-align: center; }
.afnor-grid p { margin: 1.1rem 0 0; color: rgba(255,255,255,.58); font-size: .76rem; line-height: 1.55; }
.afnor-grid p strong { color: var(--acid); }
.compact-case blockquote { width: min(930px, 82vw); margin: 2rem auto 0; text-align: center; font-family: Georgia, serif; font-size: clamp(1.7rem, 3.4vw, 3.4rem); line-height: 1.12; letter-spacing: -.035em; }

.heritage-header { display: grid; grid-template-columns: 1.15fr .85fr; gap: 5vw; align-items: start; margin-bottom: 4rem; }
.heritage-header h2 { margin: 0; font-size: clamp(4rem, 8.5vw, 8rem); line-height: .86; letter-spacing: -.065em; }
.heritage-project-title { display: flex; flex-direction: column; align-items: flex-start; font-size: clamp(3.5rem, 7vw, 6.5rem) !important; }
.heritage-intro { padding-bottom: 0; }
.heritage-intro p { margin: 0; font-size: clamp(1.35rem, 2.5vw, 2.4rem); line-height: 1.1; letter-spacing: -.04em; }
.heritage-intro p em { font-family: Georgia, serif; }
.heritage-meta { display: flex; justify-content: space-between; gap: 2rem; padding: 1.5rem 0; margin-bottom: 4rem; border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); color: rgba(17,17,15,.56); font-size: .63rem; font-weight: 700; text-transform: uppercase; letter-spacing: .11em; }
.heritage-video-grid { width: min(100%, 1360px); margin-inline: auto; display: grid; grid-template-columns: minmax(0, 3.1605fr) minmax(220px, 1fr); gap: 1.5rem; align-items: start; }
.heritage-video-wide, .heritage-video-vertical { width: 100%; min-width: 0; }
.heritage-video-wide .local-video { aspect-ratio: 16/9; background: #fff; }
.heritage-video-vertical .local-video { aspect-ratio: 9/16; background: #fff; }
.heritage-video-grid .local-video video { background: #fff; }
.format-card-label { margin: 0 0 .8rem; font-size: .64rem; font-weight: 800; letter-spacing: .14em; text-transform: uppercase; }
.heritage-process { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1rem; padding: 7rem 0; }
.heritage-step { display: block; margin-bottom: .8rem; font-size: .61rem; font-weight: 800; text-transform: uppercase; letter-spacing: .14em; }
.heritage-process .media-placeholder { aspect-ratio: 4/3; }
.heritage-process-image { aspect-ratio: 4/3; background: #6f706e; }
.heritage-process-image img { object-fit: contain; }
.heritage-process p { margin: 1rem 0 0; max-width: 380px; color: rgba(17,17,15,.61); font-size: .76rem; line-height: 1.52; }
.about { padding: 9rem 3vw 8rem; background: var(--acid); scroll-margin-top: 70px; }
.about-grid { display: grid; grid-template-columns: .8fr 1.2fr; gap: 7vw; align-items: start; }
.about h2 { max-width: 720px; margin: 0; font-size: clamp(3.2rem, 6vw, 6.1rem); line-height: .93; letter-spacing: -.06em; }
.about-copy { display: grid; grid-template-columns: 1fr 1fr; gap: 2rem; }
.about-copy p { margin: 0; font-size: .86rem; line-height: 1.58; }
.expertise-list { display: grid; grid-template-columns: repeat(5, 1fr); margin-top: 8rem; border-top: 1px solid var(--ink); }
.expertise-list span { padding: 1.2rem 1rem 1.2rem 0; border-right: 1px solid var(--ink); font-size: .61rem; font-weight: 800; text-transform: uppercase; letter-spacing: .11em; }
.expertise-list span:not(:first-child) { padding-left: 1rem; }
.expertise-list span:last-child { border: 0; }

.site-footer { padding: 2rem 3vw; background: var(--ink); color: var(--white); scroll-margin-top: 70px; }
.contact-button { display: inline-flex; align-items: center; justify-content: center; padding: 1rem 1.4rem; border-radius: 999px; background: var(--acid); color: var(--ink); font-size: .68rem; font-weight: 900; letter-spacing: .1em; text-transform: uppercase; }
.footer-contact { display: grid; grid-template-columns: 1fr auto auto auto; gap: clamp(1.5rem, 3vw, 4rem); align-items: center; padding: 1.5rem 0; border-top: 1px solid rgba(255,255,255,.28); border-bottom: 1px solid rgba(255,255,255,.28); white-space: nowrap; font-size: .67rem; font-weight: 700; text-transform: uppercase; letter-spacing: .12em; }
.footer-label { color: rgba(255,255,255,.55); font-size: .67rem; font-weight: 800; letter-spacing: .18em; }

@media (max-width: 900px) {
  .site-nav { grid-template-columns: 1fr auto; }
  .nav-links { display: none; }
  .nav-actions { gap: .8rem; }
  .availability { font-size: .58rem; }
  .hero { min-height: 760px; padding-top: 2rem; }
  .hero::before { right: -30vw; top: 18%; }
  .hero h1 { font-size: clamp(4.8rem, 18vw, 8rem); line-height: .92; letter-spacing: -.07em; }
  .hero h1 span:last-child { margin-left: 4vw; }
  .hero-bottom { flex-direction: column; align-items: flex-start; }
  .hero-bottom p { width: 90%; }
  .hero-stamp { display: none; }
  .index-row { grid-template-columns: 12% 1fr 24px; min-height: 82px; }
  .index-row em { display: none; }
  .case { padding: 6rem 4vw; }
  .case-header, .case-story { grid-template-columns: 1fr; gap: 2rem; }
  .case h2 { font-size: clamp(4.5rem, 19vw, 8rem); line-height: .9; }
  .akto-title { font-size: clamp(4rem, 16.5vw, 6.5rem) !important; }
  .media-hero { min-height: 280px; aspect-ratio: 16/10; }
  .media-hero.media-hero-vertical { min-height: 0; aspect-ratio: 9/16; }
  .format-switcher-header { align-items: flex-start; }
  .case-meta { grid-template-columns: 1fr 1fr; }
  .case-meta div:nth-child(2) { border-right: 0; }
  .case-meta div:nth-child(3), .case-meta div:nth-child(4) { border-top: 1px solid rgba(255,255,255,.2); }
  .case-meta div:nth-child(3) { padding-left: 0; }
  .story-copy { grid-template-columns: 1fr; }
  .process-grid { grid-template-columns: 1fr; gap: 3rem; }
  .process-step { display: block; }
  .process-step .media-placeholder { height: auto; min-height: 260px; aspect-ratio: 16/10; }
  .process-step > .akto-process-media { min-height: 0; aspect-ratio: 1260 / 1179; }
  .process-step .akto-sheet-video-player { width: 48.65%; height: 92.1%; }
  .process-step > .media-collection { height: auto; min-height: 290px; aspect-ratio: 16/10; }
  .case-title-stacked span:last-child { margin-left: 0; }
  .breakdown-heading { grid-template-columns: 1fr; gap: 1rem; }
  .breakdown-main-media { min-height: 0; aspect-ratio: 2048/1438; }
  .layer-collection { min-height: 680px; }
  .layer-collection .collection-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .layer-collection .collection-item { min-height: 180px; }
  .breakdown-pair, .breakdown-pair-wide { grid-template-columns: 1fr; }
  .breakdown-pair .media-placeholder { min-height: 300px; aspect-ratio: 16/10; }
  .hybrid-composition-image { aspect-ratio: 4/3; }
  .frame-study { grid-template-columns: 1fr; gap: 3rem; }
  .frame-note { grid-column: 1; }
  .compact-case { padding: 6rem 4vw; }
  .compact-title-row, .heritage-header, .about-grid { grid-template-columns: 1fr; gap: 3rem; }
  .compact-title-row h2 { font-size: 24vw; }
  .afnor-grid { grid-template-columns: 1fr; gap: 3.5rem; }
  .afnor-large, .afnor-prompt-focus, .afnor-format-block { grid-column: 1; }
  .afnor-small, .afnor-large { display: block; }
  .afnor-grid .media-placeholder, .afnor-large .media-placeholder { height: auto; aspect-ratio: 16/9; min-height: 280px; }
  .afnor-process-image { height: auto; aspect-ratio: 2048/1037; }
  .afnor-board-image { aspect-ratio: 1260/1179; }
  .afnor-prompt-focus { padding-top: 0; }
  .compact-case blockquote { width: 100%; }
  .heritage-header h2 { font-size: 13vw; }
  .heritage-project-title { font-size: clamp(3.5rem, 11vw, 6rem) !important; }
  .heritage-video-grid { grid-template-columns: 1fr; gap: 3rem; }
  .heritage-video-wide, .heritage-video-vertical { display: block; }
  .heritage-video-wide .local-video { height: auto; aspect-ratio: 16/9; }
  .heritage-video-vertical { width: min(100%, 300px); justify-self: center; }
  .heritage-video-vertical .local-video { height: auto; aspect-ratio: 9/16; }
  .heritage-process { grid-template-columns: 1fr; gap: 3.5rem; }
  .heritage-process .media-placeholder, .heritage-process-image { aspect-ratio: 16/9; }
  .about { padding: 7rem 4vw; }
  .about-copy { max-width: 720px; }
  .expertise-list { grid-template-columns: 1fr 1fr; }
  .expertise-list span { border-bottom: 1px solid var(--ink); }
  .site-footer { padding-left: 4vw; padding-right: 4vw; }
  .footer-contact { grid-template-columns: max-content max-content max-content max-content; gap: 1.5rem; overflow-x: auto; scrollbar-width: none; }
  .footer-contact::-webkit-scrollbar { display: none; }
}

@media (max-width: 560px) {
  .site-nav, .hero, .project-index, .case, .coming-cases { padding-left: 20px; padding-right: 20px; }
  .site-nav { height: 66px; }
  .nav-actions { gap: 0; }
  .availability { display: none; }
  .language-switcher button { min-height: 28px; padding: .4rem .62rem; font-size: .53rem; }
  .hero { min-height: 680px; }
  .hero h1 { font-size: clamp(4.2rem, 18vw, 6rem); line-height: .94; }
  .hero h1 span:last-child { margin-left: 0; }
  .hero-bottom p { width: 100%; font-size: 1.25rem; }
  .scroll-link { font-size: .62rem; }
  .format-switcher-header { flex-direction: column; gap: 1rem; }
  .format-tabs { justify-content: flex-start; }
  .index-row strong { font-size: 1.15rem; }
  .case-header { margin-bottom: 2.5rem; }
  .akto-title { font-size: clamp(3.75rem, 17vw, 4.8rem) !important; }
  .media-center { padding: 2rem; }
  .media-center small { max-width: 260px; }
  .case-meta { grid-template-columns: 1fr; }
  .case-meta div { border-right: 0; border-top: 1px solid rgba(255,255,255,.2); padding-left: 0 !important; }
  .case-meta div:first-child { border-top: 0; }
  .case-story { padding: 6rem 0 5rem; }
  .story-heading h3 { font-size: 3rem; }
  .breakdown-block { padding: 3.75rem 0; }
  .layer-collection { min-height: 630px; }
  .layer-collection .collection-item { min-height: 145px; }
  .layer-image-collection { min-height: 0; }
  .layer-image-collection .collection-grid { grid-template-columns: 1fr; }
  .layer-image-collection .layer-image-item { min-height: 0; }
  .collection-count-3 .collection-grid { grid-template-columns: 1fr; }
  .process-step .collection-count-3 .collection-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .frame-strip { grid-template-columns: repeat(2, 1fr); }
  .compact-case, .about, .site-footer { padding-left: 20px; padding-right: 20px; }
  .compact-title-row h2 { font-size: 23vw; }
  .compact-meta { flex-direction: column; }
  .heritage-header h2 { font-size: 14vw; }
  .heritage-project-title { font-size: clamp(2.65rem, 10.7vw, 4rem) !important; }
  .about h2 { font-size: 3.7rem; }
  .about-copy { grid-template-columns: 1fr; }
  .expertise-list { grid-template-columns: 1fr; }
  .expertise-list span { border-right: 0; padding-left: 0 !important; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { transition-duration: .01ms !important; }
}

/* V2.3: additive elements only. The original study styles and compositions remain unchanged. */
.language-switcher a {min-height:30px;padding:.52rem .75rem;border-radius:999px;font-size:.58rem;font-weight:800;line-height:1;letter-spacing:.08em;text-transform:uppercase;display:inline-flex;align-items:center;}
.language-switcher a.is-active {background:var(--acid);color:var(--ink)}
.language-switcher a:focus-visible {outline:2px solid var(--ink);outline-offset:2px}
.restored-format-panel[hidden]{display:none!important}
.restored-format-panel .format-note{margin-top:1rem}
.restored-format-panel .format-stage-shell{width:100%}
.v23-supplement{padding:7rem 3vw 8rem;background:#d7ff2f;color:#11110f}
.v23-kicker{font-size:.68rem;font-weight:800;text-transform:uppercase;letter-spacing:.18em}
.v23-intro{display:grid;grid-template-columns:1.2fr .8fr;gap:2rem;align-items:end;margin-bottom:3rem}
.v23-intro .v23-kicker{grid-column:1/-1}
.v23-intro h2{margin:0;font-size:clamp(2.6rem,6.2vw,7.2rem);line-height:.97;letter-spacing:-.075em}
.v23-intro p{max-width:520px;font-size:clamp(1rem,1.4vw,1.35rem);line-height:1.35}
.v23-overview-grid{display:grid;grid-template-columns:1fr 1fr;gap:1px;background:#11110f;border:1px solid #11110f}
.v23-overview{padding:3rem;background:#f0efe9;min-height:360px;display:flex;flex-direction:column;align-items:start}
.v23-overview span,.v23-overview small{font-size:.65rem;font-weight:800;letter-spacing:.13em;text-transform:uppercase}
.v23-overview h3{font-size:clamp(2.5rem,6vw,6.5rem);line-height:1;margin:2.6rem 0 1rem;letter-spacing:-.075em}
.v23-overview p{font-size:clamp(1rem,1.45vw,1.2rem);line-height:1.4;max-width:600px;margin:0 0 3rem}
.v23-overview small{margin-top:auto}
@media(max-width:780px){.v23-intro,.v23-overview-grid{grid-template-columns:1fr}.v23-intro .v23-kicker{grid-column:1}.v23-overview{padding:1.7rem;min-height:300px}}

/* V2.4 direction: new navigation, landing, campaigns. V1 case studies remain structurally unchanged. */
html{scroll-padding-top:88px}
.site-nav{grid-template-columns:1fr auto 1fr}
.site-nav .nav-links{gap:1.7rem}
.site-nav .availability{display:none}
.site-nav .nav-actions{gap:.6rem}
.site-nav .language-switcher{border-radius:3px;padding:3px;background:transparent}
.site-nav .language-switcher a{border-radius:1px}
.v24-hero{background:var(--ink);color:var(--white);padding:3.3rem 3vw 3vw;min-height:min(900px,calc(100svh - 72px));display:grid;grid-template-rows:auto 1fr auto;gap:2.3rem;position:relative}
.v24-kicker{display:flex;justify-content:space-between;align-items:center;gap:1.5rem;border-top:1px solid rgba(255,255,255,.35);padding-top:.9rem;color:#c6c9be;font-size:.68rem;letter-spacing:.14em;text-transform:uppercase;font-weight:700}
.v24-hero-grid{display:grid;grid-template-columns:1.35fr .65fr;align-items:center;gap:4vw;min-height:0}
.v24-hero-copy{min-width:0}
.v24-hero h1{margin:0 0 2rem;font-size:clamp(5rem,10.3vw,11.5rem);letter-spacing:-.09em;line-height:.85;font-weight:900;text-transform:uppercase}
.v24-hero h1 span{display:block}
.v24-hero h1 span:last-child{padding-left:6vw}
.v24-hero-headline{font-size:clamp(1.25rem,2vw,2.2rem);line-height:1.22;letter-spacing:-.037em;max-width:710px;margin:0 0 1.3rem}
.v24-hero-note{color:#b4b5ad;max-width:640px;font-size:.96rem;line-height:1.58;margin:0 0 2.5rem}
.v24-actions{display:flex;flex-wrap:wrap;gap:1.2rem;align-items:center}
.v24-hero-cta{display:inline-flex;gap:1.7rem;align-items:center;justify-content:space-between;background:var(--acid);color:var(--ink);padding:1rem 1.2rem;font-size:.76rem;font-weight:800;text-transform:uppercase;letter-spacing:.07em;min-height:54px}
.v24-hero-cta:last-child{background:none;color:var(--white);border:1px solid rgba(255,255,255,.45)}
.v24-hero-visual{position:relative;align-self:stretch;min-height:430px;max-height:660px;overflow:hidden;background:#292c29}
.v24-hero-visual img{display:block;width:100%;height:100%;object-fit:cover;filter:grayscale(.13)}
.v24-hero-visual:after{content:'';position:absolute;inset:0;background:linear-gradient(180deg,transparent 55%,rgba(0,0,0,.76))}
.v24-caption{position:absolute;z-index:2;left:1.3rem;right:1.3rem;bottom:1.2rem;display:flex;gap:1.5rem;justify-content:space-between;font-size:.67rem;line-height:1.45;letter-spacing:.08em;text-transform:uppercase;font-weight:700}
.v24-metrics{display:grid;grid-template-columns:repeat(4,1fr);border-top:1px solid rgba(255,255,255,.3);padding-top:1.3rem;gap:1rem}
.v24-metric{display:flex;flex-direction:column;gap:.2rem}
.v24-metric strong{font-size:clamp(1.3rem,2.35vw,2.6rem);letter-spacing:-.045em}
.v24-metric small{color:#b4b5ad;font-size:.67rem;line-height:1.4;text-transform:uppercase;letter-spacing:.08em}
.v24-directory{background:var(--paper);padding:7rem 3vw 8rem}
.v24-headingline{display:grid;grid-template-columns:.5fr 1.5fr;gap:2rem;align-items:end;margin-bottom:3rem}
.v24-section-label{font-size:.69rem;font-weight:800;text-transform:uppercase;letter-spacing:.16em;margin:0;line-height:1.5}
.v24-headingline h2{font-size:clamp(2.6rem,6vw,7rem);letter-spacing:-.075em;line-height:.95;margin:0}
.v24-directory .v24-intro{font-size:1rem;max-width:630px;line-height:1.5;color:#54554e;grid-column:2;margin:0}
.v24-direct-links{border-top:1px solid var(--ink)}
.v24-direct-row{display:grid;grid-template-columns:65px 1.3fr .72fr 22px;align-items:center;gap:2rem;min-height:110px;padding:1.2rem .3rem;border-bottom:1px solid rgba(17,17,15,.3);transition:background .22s,padding .22s}
.v24-direct-row:hover,.v24-direct-row:focus-visible{background:var(--acid);padding-inline:1rem}
.v24-direct-row>span{font-size:.73rem;font-weight:800}
.v24-direct-row strong{font-size:clamp(1.5rem,3vw,3.5rem);font-weight:700;letter-spacing:-.06em;line-height:1.07}
.v24-direct-row em{font-style:normal;font-size:.74rem;line-height:1.45;text-transform:uppercase;letter-spacing:.08em;font-weight:700}
.v24-direct-row b{font-size:1.5rem;font-weight:400}
.v24-direct-row.v24-quiet strong{font-size:clamp(1.1rem,2vw,2rem)}
.v24-legend{font-size:.75rem;line-height:1.6;margin-top:1.4rem;color:#666760}
/* Campaign case: factual, typographic documentation. Not a mock campaign visual. */
.v24-campaign{background:var(--acid);color:var(--ink);padding:8rem 3vw;scroll-margin-top:75px}
.v24-campaign-head{display:grid;grid-template-columns:.42fr 1.58fr;gap:2rem;border-top:1px solid var(--ink);padding-top:1.25rem;margin-bottom:4.5rem}
.v24-campaign-head h2{font-size:clamp(4rem,10vw,11.5rem);font-weight:850;letter-spacing:-.09em;line-height:.87;margin:0;max-width:1200px}
.v24-campaign-head h2 span{display:block}
.v24-campaign-head p{grid-column:2;font-size:clamp(1.3rem,2.25vw,2.4rem);line-height:1.25;letter-spacing:-.035em;max-width:800px;margin:0}
.v24-status{display:inline-block;align-self:start;padding:.32rem .55rem;background:var(--ink);color:var(--acid);font-size:.6rem;font-weight:800;line-height:1.4;letter-spacing:.1em;text-transform:uppercase;margin-top:1.5rem}
.v24-campaign-data{display:grid;grid-template-columns:repeat(4,1fr);gap:0;border-top:1px solid var(--ink);border-bottom:1px solid var(--ink);margin-bottom:7rem}
.v24-campaign-data div{padding:1.4rem 1.5rem 1.5rem 0;border-right:1px solid rgba(0,0,0,.25)}
.v24-campaign-data div:not(:first-child){padding-left:1.5rem}
.v24-campaign-data div:last-child{border:0}
.v24-campaign-data small{display:block;font-size:.62rem;font-weight:800;letter-spacing:.12em;text-transform:uppercase;margin-bottom:.75rem}
.v24-campaign-data strong{font-size:clamp(.9rem,1.35vw,1.4rem);line-height:1.28}
.v24-story{display:grid;grid-template-columns: .92fr 1.08fr;gap:8vw;margin:0 0 6rem}
.v24-story h3{font-size:clamp(2.7rem,5.6vw,6.8rem);letter-spacing:-.075em;line-height:.98;margin:0}
.v24-story-copy{display:flex;flex-direction:column;gap:1.2rem}
.v24-story-copy p{font-size:1.04rem;line-height:1.59;margin:0}
.v24-story-copy strong{font-weight:800}
.v24-design-logic{background:var(--ink);color:var(--white);padding:3.4rem 3vw;margin:0 -3vw 7rem}
.v24-design-logic .v24-section-label{color:var(--acid);margin-bottom:3rem}
.v24-logic-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1px;background:#555}
.v24-logic-grid div{background:var(--ink);min-height:260px;padding:1.3rem 1.3rem 1.7rem;display:flex;flex-direction:column;justify-content:space-between}
.v24-logic-grid small{font-size:.67rem;color:var(--acid);font-weight:800}
.v24-logic-grid strong{font-size:clamp(1.2rem,2vw,2.35rem);letter-spacing:-.05em;line-height:1.05}
.v24-design-logic>p:last-child{font-size:.72rem;color:#a9ada4;margin:1.3rem 0 0}
.v24-campaign-bottom{display:grid;grid-template-columns:1.15fr .85fr;gap:6vw;align-items:start}
.v24-campaign-bottom h3{font-size:clamp(2.5rem,5vw,6rem);line-height:.98;letter-spacing:-.07em;margin:0 0 1.8rem}
.v24-campaign-bottom p{font-size:1rem;line-height:1.55}
.v24-campaign-proof{border:1px solid var(--ink);padding:1.6rem;min-height:260px;display:flex;flex-direction:column;justify-content:space-between}
.v24-campaign-proof span{font-size:.68rem;font-weight:800;letter-spacing:.12em;text-transform:uppercase}
.v24-campaign-proof p{font-size:clamp(1.15rem,2vw,2rem);line-height:1.22;letter-spacing:-.04em;margin:2.2rem 0}
.v24-campaign-proof small{font-size:.68rem;line-height:1.5}
/* ESET: concept and production framework — do not substitute made-up images. */
.v24-eset{background:#e5e7e0;color:var(--ink);padding:7rem 3vw 8rem;scroll-margin-top:72px}
.v24-eset-header{display:grid;grid-template-columns:.42fr 1.58fr;gap:2rem;border-top:1px solid var(--ink);padding-top:1.25rem}
.v24-eset-header h2{font-size:clamp(6rem,18vw,21rem);letter-spacing:-.11em;line-height:.9;font-weight:850;margin:-.4rem 0 1rem}
.v24-eset-lead{font-size:clamp(1.4rem,2.5vw,2.6rem);line-height:1.18;letter-spacing:-.045em;max-width:800px;margin:0 0 3rem}
.v24-eset-timeline{display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid #91948c;border-bottom:1px solid #91948c;margin:2rem 0 4rem}
.v24-eset-timeline div{padding:1.7rem 1.7rem 2rem 0;border-right:1px solid #91948c}
.v24-eset-timeline div:not(:first-child){padding-left:1.7rem}
.v24-eset-timeline div:last-child{border:0}
.v24-eset-timeline span{font-size:.63rem;text-transform:uppercase;letter-spacing:.14em;font-weight:800}
.v24-eset-timeline strong{display:block;font-size:clamp(1.15rem,2.2vw,2.4rem);letter-spacing:-.05em;margin-top:1.4rem;line-height:1.11}
.v24-eset-bottom{display:grid;grid-template-columns:1.15fr .85fr;gap:8vw;align-items:start}
.v24-eset-bottom h3{font-size:clamp(2.4rem,4.5vw,5rem);line-height:1;letter-spacing:-.07em;margin:0}
.v24-eset-bottom p{font-size:1rem;line-height:1.59;margin:0}
.v24-eset-status{display:inline-block;border:1px solid var(--ink);font-size:.65rem;font-weight:800;text-transform:uppercase;letter-spacing:.1em;padding:.55rem .7rem;margin-bottom:2rem}
.v24-eset-mark{height:7px;width:100%;background:#04a8a1;margin:4rem 0 1rem;max-width:660px}
/* Minimal Netatmo proof, intentionally last */
.v24-netatmo{padding:5rem 3vw;background:#e5e7e0;border-top:1px solid #b4b6ad;scroll-margin-top:72px}
.v24-netatmo-inner{display:grid;grid-template-columns:.4fr 1.1fr .8fr;gap:2rem;align-items:start}
.v24-netatmo h2{font-size:clamp(2.2rem,4.5vw,5rem);letter-spacing:-.07em;margin:0;line-height:.98}
.v24-netatmo p{font-size:.95rem;line-height:1.55;max-width:460px;margin:0}
.v24-netatmo small{font-size:.68rem;font-weight:700;text-transform:uppercase;letter-spacing:.1em}
@media(max-width:920px){
 .site-nav .nav-links{display:flex;gap:1rem}
 .v24-hero-grid{grid-template-columns:1fr 0.65fr;gap:1.5rem}
 .v24-hero h1{font-size:clamp(4.8rem,11vw,8rem)}
 .v24-campaign-head h2{font-size:clamp(4rem,10vw,8rem)}
 .v24-logic-grid div{min-height:190px}
}
@media(max-width:700px){
 .site-nav{grid-template-columns:auto 1fr;height:auto;min-height:72px;padding:0 5vw;gap:.4rem}
 .site-nav .nav-links{order:3;grid-column:1/-1;padding:0 0 .9rem;justify-content:space-between;width:100%;font-size:.59rem}
 .site-nav .nav-actions{justify-self:end}
 .v24-hero{min-height:0;padding:2rem 5vw 2.5rem;gap:2rem}
 .v24-kicker{font-size:.56rem}
 .v24-hero-grid{grid-template-columns:1fr}
 .v24-hero h1{font-size:clamp(4.5rem,17vw,7rem);margin:1rem 0 1.6rem}
 .v24-hero h1 span:last-child{padding-left:7vw}
 .v24-hero-visual{height:300px;min-height:0;max-height:300px}
 .v24-hero-headline{font-size:1.46rem}
 .v24-hero-note{font-size:.89rem;margin-bottom:1.8rem}
 .v24-hero-cta{padding:.85rem 1rem;min-height:47px;font-size:.7rem}
 .v24-metrics{grid-template-columns:repeat(2,1fr);row-gap:1.3rem}
 .v24-directory,.v24-campaign,.v24-eset{padding:5rem 5vw}
 .v24-headingline{grid-template-columns:1fr;gap:1.1rem}
 .v24-directory .v24-intro{grid-column:1;font-size:.92rem}
 .v24-direct-row{grid-template-columns:30px minmax(0,1fr) 17px;gap:.75rem;min-height:100px}
 .v24-direct-row strong{font-size:clamp(1.5rem,6vw,2.6rem)}
 .v24-direct-row em{grid-column:2;grid-row:2;font-size:.61rem}
 .v24-direct-row b{grid-column:3;grid-row:1}
 .v24-campaign-head,.v24-eset-header{grid-template-columns:1fr;gap:1.1rem}
 .v24-campaign-head h2{font-size:clamp(3.65rem,15vw,6rem)}
 .v24-campaign-head p{grid-column:1;font-size:1.35rem}
 .v24-campaign-data{grid-template-columns:repeat(2,1fr);margin-bottom:4.5rem}
 .v24-campaign-data div{padding:1.2rem .5rem!important;border-bottom:1px solid rgba(0,0,0,.25)}
 .v24-campaign-data div:nth-child(2){border-right:0}
 .v24-campaign-data div:nth-child(3),.v24-campaign-data div:nth-child(4){border-bottom:0}
 .v24-story,.v24-campaign-bottom,.v24-eset-bottom{grid-template-columns:1fr;gap:1.8rem}
 .v24-story h3{font-size:3rem}
 .v24-design-logic{padding:3rem 5vw;margin:0 -5vw 5rem}
 .v24-logic-grid{grid-template-columns:repeat(2,1fr)}
 .v24-logic-grid div{min-height:160px;padding:1rem}
 .v24-logic-grid strong{font-size:1.25rem}
 .v24-eset-header h2{font-size:clamp(7rem,29vw,12rem)}
 .v24-eset-timeline{grid-template-columns:1fr}
 .v24-eset-timeline div{border-right:0;border-bottom:1px solid #91948c;padding:1.4rem 0!important}
 .v24-eset-timeline div:last-child{border-bottom:0}
 .v24-eset-timeline strong{margin-top:.55rem}
 .v24-netatmo{padding:4rem 5vw}
 .v24-netatmo-inner{grid-template-columns:1fr;gap:1rem}
}


/* V2.5 — same rounded capsule language across all actionable controls. */
.site-nav .nav-links {gap:.45rem;align-items:center}
.site-nav .nav-links a {
  padding:.66rem .94rem;border:1px solid rgba(17,17,15,.24);
  border-radius:999px;display:inline-flex;align-items:center;justify-content:center;
  white-space:nowrap;line-height:1.2;transition:background .2s,color .2s,border-color .2s;
}
.site-nav .nav-links a::after {display:none!important}
.site-nav .nav-links a:hover,.site-nav .nav-links a:focus-visible {background:var(--ink);border-color:var(--ink);color:var(--white)}
.site-nav .language-switcher {border-radius:999px!important;padding:3px!important}
.site-nav .language-switcher a,.site-nav .language-switcher button {border-radius:999px!important;padding:.52rem .78rem!important}
.v24-hero-cta {border-radius:999px!important;padding:1rem 1.55rem!important;
  transition:background .2s,color .2s,transform .2s,border-color .2s}
.v24-hero-cta:hover,.v24-hero-cta:focus-visible {transform:translateY(-2px)}
.v24-hero-cta:last-child:hover {background:var(--white);color:var(--ink);border-color:var(--white)}
.contact-button,.format-tab,.v25-row-pill,.v25-carousel-control {border-radius:999px!important}
.v24-directory .v24-intro {max-width:720px}
.v24-direct-row {grid-template-columns:65px 1.3fr .72fr 104px;}
.v25-row-pill {justify-self:end;display:inline-flex;align-items:center;justify-content:center;gap:.4rem;
  border:1px solid rgba(17,17,15,.5);font-size:.68rem;font-weight:800;line-height:1;
  letter-spacing:.05em;text-transform:uppercase;padding:.7rem .95rem;white-space:nowrap;
  background:transparent;transition:background .2s,border-color .2s}
.v24-direct-row:hover .v25-row-pill,.v24-direct-row:focus-visible .v25-row-pill {background:var(--ink);color:var(--white);border-color:var(--ink)}
.v24-hero-visual.v25-carousel {isolation:isolate;position:relative;overflow:hidden;background:#181c1d}
.v24-hero-visual.v25-carousel::after {pointer-events:none;z-index:1;inset:0;background:linear-gradient(180deg,rgba(0,0,0,0.12),transparent 42%,rgba(0,0,0,.78) 100%)}
.v25-slide {position:absolute;inset:0;opacity:0;visibility:hidden;pointer-events:none;
  transition:opacity .75s ease,visibility .75s ease;display:block;overflow:hidden}
.v25-slide.is-active {opacity:1;visibility:visible;pointer-events:auto}
.v24-hero-visual .v25-slide img {width:100%;height:100%;object-fit:cover;filter:none;display:block;
  transform:scale(1.035);transition:transform 6s cubic-bezier(.22,1,.36,1)}
.v25-slide.is-active img {transform:scale(1)}
.v25-slide img.v25-contain {object-fit:contain;background:#10161b;padding:1.2rem}
.v25-slide img.v25-akto-image {object-fit:cover;object-position:center center}
.v25-slide img.v25-afnor-image {object-position:center center}
.v25-slide:hover img {transform:scale(1.045)}
.v25-slide-copy {position:absolute;z-index:2;bottom:5.3rem;left:1.35rem;right:1.35rem;color:#fff;
  text-shadow:0 1px 12px rgba(0,0,0,.4);display:flex;flex-direction:column;gap:.4rem}
.v25-slide-copy small {font-size:.64rem;font-weight:800;letter-spacing:.15em;text-transform:uppercase;color:#d9ff58}
.v25-slide-copy strong {font-size:clamp(1.5rem,3.5vw,3rem);font-weight:800;line-height:.98;letter-spacing:-.06em}
.v25-slide-copy em {font-style:normal;font-weight:600;font-size:.75rem;line-height:1.4;max-width:420px}
.v25-carousel-footer {position:absolute;z-index:3;bottom:1.1rem;left:1.35rem;right:1.35rem;
  display:flex;align-items:center;justify-content:space-between;gap:1rem;color:#fff}
.v25-carousel-count {font-size:.76rem;letter-spacing:.12em;font-weight:800;font-variant-numeric:tabular-nums}
.v25-carousel-controls {display:flex;gap:.45rem;align-items:center}
.v25-carousel-control {background:rgba(16,16,15,.35);color:#fff;border:1px solid rgba(255,255,255,.65);
  min-height:38px;padding:.5rem .86rem;font:inherit;font-size:.66rem;font-weight:800;letter-spacing:.08em;
  text-transform:uppercase;cursor:pointer;backdrop-filter:blur(10px);transition:background .2s,color .2s}
.v25-carousel-control:hover,.v25-carousel-control:focus-visible {background:var(--acid);border-color:var(--acid);color:var(--ink)}
.v25-carousel-progress {position:absolute;z-index:3;left:1.35rem;right:1.35rem;bottom:4.05rem;height:2px;background:rgba(255,255,255,.4)}
.v25-carousel-progress::after {content:'';display:block;width:var(--v25-progress,25%);height:100%;background:var(--acid);transition:width .45s ease}
@media (max-width:980px) {
 .site-nav .nav-links {gap:.3rem}
 .site-nav .nav-links a {padding:.62rem .75rem;font-size:.61rem;letter-spacing:.04em}
 .v24-direct-row {grid-template-columns:48px minmax(0,1.2fr) minmax(0,.7fr) 90px;gap:1rem}
}
@media (max-width:700px){
 .site-nav .nav-links {gap:.35rem;justify-content:flex-start!important;flex-wrap:wrap}
 .site-nav .nav-links a {padding:.55rem .78rem;font-size:.59rem}
 .v24-hero-cta {min-height:46px!important;padding:.78rem 1.08rem!important;gap:1rem}
 .v24-hero-visual.v25-carousel {min-height:0;height:340px;max-height:340px}
 .v25-slide-copy {bottom:5rem;left:1rem;right:1rem}
 .v25-slide-copy strong {font-size:clamp(1.55rem,7vw,2.4rem)}
 .v25-slide-copy em {font-size:.67rem}
 .v25-carousel-footer {bottom:.8rem;left:1rem;right:1rem}
 .v25-carousel-progress {left:1rem;right:1rem;bottom:3.65rem}
 .v25-carousel-control {font-size:.6rem;min-height:37px;padding:.5rem .7rem}
 .v24-direct-row {grid-template-columns:28px minmax(0,1fr) auto;gap:.7rem;min-height:100px}
 .v24-direct-row strong{font-size:clamp(1.35rem,5.4vw,2rem)}
 .v24-direct-row em{grid-column:2/4;grid-row:2;font-size:.59rem}
 .v25-row-pill{grid-column:3;grid-row:1;font-size:.58rem;padding:.56rem .68rem}
}
@media(prefers-reduced-motion:reduce){
 .v25-slide,.v25-slide img,.v24-hero-cta,.v25-carousel-control{transition:none!important}
}



/* V2.6: concise home + separate project views. Original project content CSS retained unaltered. */
html{scroll-behavior:auto}
.v26-project-view{display:none;min-width:0}
.v26-project-view:target{display:block}
main:has(> .v26-project-view:target) > .v26-home{display:none}
main:has(> .v26-project-view:target) > .v26-project-view:target{display:block}
.v26-view-nav,.v26-view-bottom{display:flex;align-items:center;justify-content:space-between;gap:1rem;background:var(--paper);color:var(--ink);padding:1.25rem 3vw;border-bottom:1px solid var(--line)}
.v26-view-bottom{border-top:1px solid var(--line);border-bottom:0;padding:3rem 3vw;flex-wrap:wrap}
.v26-view-counter{font-size:.75rem;font-weight:800;letter-spacing:.12em;font-variant-numeric:tabular-nums}
.v26-view-back,.v26-view-next{border-radius:999px!important;border:1px solid rgba(17,17,15,.4);display:inline-flex;align-items:center;justify-content:center;gap:.7rem;padding:.85rem 1.18rem;min-height:42px;max-width:100%;font-size:.7rem;text-transform:uppercase;font-weight:800;letter-spacing:.06em;line-height:1.3;transition:background .2s,color .2s}
.v26-view-back:hover,.v26-view-back:focus-visible,.v26-view-next:hover,.v26-view-next:focus-visible{background:var(--ink);color:var(--white)}
.v26-view-next{background:var(--acid);border-color:var(--acid)}
.v26-view-next:hover{color:var(--acid)}
/* A compact project directory instead of one long column of links. */
.v26-home .v24-directory{padding:4.2rem 3vw 5.5rem}
.v26-home .v24-headingline{margin-bottom:2.2rem}
.v26-project-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 1.75rem}
.v26-project-grid .v26-project-item{display:grid;position:relative;grid-template-columns:37px minmax(0,1fr) auto;grid-template-rows:auto auto;align-items:center;min-width:0;min-height:124px;column-gap:.55rem;row-gap:.65rem;padding:1.4rem .75rem 1.2rem;border-top:1px solid rgba(17,17,15,.28);border-bottom:0;transition:background .2s,color .2s,padding .2s}
.v26-project-grid .v26-project-item:hover,.v26-project-grid .v26-project-item:focus-visible{background:var(--acid);padding-inline:1.1rem}
.v26-project-grid .v26-project-item>span:first-child{grid-column:1;grid-row:1;font-size:.72rem}
.v26-project-grid .v26-project-item strong{grid-column:2/4;grid-row:1;font-size:clamp(1.45rem,2.15vw,2.45rem);line-height:1.05;letter-spacing:-.055em;min-width:0}
.v26-project-grid .v26-project-item em{grid-column:2;grid-row:2;font-size:.64rem;line-height:1.4;align-self:center;min-width:0}
.v26-project-grid .v26-project-item .v25-row-pill{grid-column:3;grid-row:2;border-radius:999px!important;font-size:.61rem;padding:.6rem .78rem;justify-self:end}
.v26-project-grid .v26-featured{min-height:182px;border-top:2px solid var(--ink)}
.v26-project-grid .v26-featured strong{font-size:clamp(2.15rem,3.4vw,4.2rem)}
.v26-project-grid .v26-last{grid-column:1/-1;min-height:104px;background:rgba(17,17,15,.045);margin-top:.7rem}
.v26-project-grid .v26-last strong{font-size:clamp(1.4rem,2vw,2.3rem)}
.v26-home .about{padding-top:4rem;padding-bottom:4rem}
.v26-home .about h2{font-size:clamp(2.3rem,4vw,4rem)}
/* Six visuals, each image opens its own genuinely represented project. */
.v26-carousel-image{object-fit:cover}
.v25-slide .v26-portrait{object-fit:contain!important;padding:0!important;position:absolute;inset:0;height:100%;width:100%;z-index:1}
.v25-slide:has(.v26-portrait){background:#111824}
.v25-slide:has(.v26-portrait-orange){background:#f36029}
.v25-slide-copy{z-index:2;max-width:100%}
.v25-carousel-control{border-radius:999px}
@media(max-width:760px){
 .v26-home .v24-directory{padding:3.5rem 5vw 4rem}
 .v26-project-grid{grid-template-columns:minmax(0,1fr)}
 .v26-project-grid .v26-featured{min-height:145px}
 .v26-project-grid .v26-project-item{min-height:112px;padding:1.1rem .35rem;grid-template-columns:29px minmax(0,1fr) auto;gap:.4rem}
 .v26-project-grid .v26-project-item strong{font-size:clamp(1.4rem,5.8vw,2.1rem)}
 .v26-project-grid .v26-featured strong{font-size:clamp(1.6rem,7vw,2.7rem)}
 .v26-project-grid .v26-project-item em{font-size:.58rem}
 .v26-project-grid .v26-project-item .v25-row-pill{font-size:.57rem;padding:.5rem .65rem}
 .v26-project-grid .v26-last{grid-column:1}
 .v26-view-nav,.v26-view-bottom{padding:1rem 5vw}
 .v26-view-bottom{padding:2rem 5vw;flex-direction:column;align-items:stretch}
 .v26-view-back,.v26-view-next{width:100%;justify-content:center}
}
@media(prefers-reduced-motion:reduce){.v26-view-back,.v26-view-next{transition:none}}


/* V2.7 - visual project gallery, all buttons and existing case studies preserved */
.v26-home .v24-directory {padding-bottom:clamp(3.4rem,5vw,5rem)}
.v26-home .v24-headingline {margin-bottom:clamp(1.6rem,3vw,2.8rem)}
.v26-home .v26-project-grid {grid-template-columns:repeat(2,minmax(0,1fr));gap:clamp(1rem,2.1vw,2rem);align-items:start}
.v26-home .v26-project-grid .v27-card {box-sizing:border-box;display:block;min-height:0;border:1px solid rgba(17,17,15,.16);background:#f7f6f2;padding:0;overflow:hidden;position:relative;border-radius:4px;text-decoration:none;transition:transform .25s ease,box-shadow .25s ease,border-color .25s ease;color:var(--ink)}
.v26-home .v26-project-grid .v27-card:hover,.v26-home .v26-project-grid .v27-card:focus-visible {padding:0;transform:translateY(-4px);background:#f7f6f2;box-shadow:0 15px 35px rgba(10,10,10,.11);border-color:var(--ink)}
.v26-home .v26-project-grid .v27-card.v26-last {grid-column:1/-1;margin-top:0;background:#f7f6f2}
.v27-cover {position:relative;display:flex;align-items:center;justify-content:center;aspect-ratio:2.03/1;overflow:hidden;background:#181818;color:#fff;isolation:isolate}
.v27-cover img {width:100%;height:100%;display:block;object-fit:cover;object-position:center;filter:none;transition:transform .45s ease}
.v27-card:hover .v27-cover img,.v27-card:focus-visible .v27-cover img {transform:scale(1.045)}
.v27-cover::after {content:"";position:absolute;z-index:2;inset:50% 0 0;background:linear-gradient(to top,rgba(0,0,0,.28),transparent);pointer-events:none}
.v27-cover .v27-cover-type {position:absolute;z-index:4;top:14px;left:16px;border-radius:999px;padding:.55rem .82rem;background:rgba(16,16,15,.82);color:#fff;font-size:.59rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase;line-height:1.2;backdrop-filter:blur(8px)}
.v27-cover-image{display:block}
.v27-cover-triptych{display:grid;grid-template-columns:repeat(3,1fr);align-items:stretch;gap:.3rem;background:#111824;padding:.3rem}
.v27-cover-triptych img {min-width:0;object-fit:cover;object-position:50% 28%;background:#18234a}
.v27-cover-editorial {padding:1.2rem;box-sizing:border-box}
.v27-cover-editorial::before {position:absolute;z-index:0;inset:0;content:"";pointer-events:none}
.v27-cover-editorial .v27-graphic-label {position:relative;z-index:1;display:block;text-align:center;max-width:90%;font-size:clamp(2.4rem,5.7vw,6.2rem);line-height:.94;letter-spacing:-.075em;font-weight:900;overflow-wrap:normal;text-wrap:balance}
.v27-cover-editorial .v27-editorial-note {position:absolute;bottom:15px;left:16px;z-index:4;font-size:.58rem;letter-spacing:.09em;text-transform:uppercase;font-weight:800;opacity:.9}
.v27-cover-editorial.v27-theme-akto-ici{color:#131310;background:#d9ff4c}
.v27-cover-editorial.v27-theme-akto-ici::before{background:radial-gradient(circle at 87% 19%,#fc8a3e 0 7%,transparent 7.2%),radial-gradient(circle at 15% 84%,#ff6da2 0 13%,transparent 13.2%),radial-gradient(circle at 90% 80%,#20201d 0 3%,transparent 3.2%);opacity:.8}
.v27-theme-akto-ici .v27-graphic-label{max-width:68%;transform:rotate(-3deg);font-size:clamp(2.4rem,5vw,5.8rem)}
.v27-cover-editorial.v27-theme-eset {background:#071c25;color:#b6fff4}
.v27-theme-eset::before {background:radial-gradient(ellipse at 80% 65%,rgba(20,201,196,.35),transparent 50%),repeating-linear-gradient(120deg,transparent 0 31px,rgba(40,201,202,.11) 32px,transparent 34px)}
.v27-theme-eset .v27-graphic-label{font-weight:400;letter-spacing:-.065em;text-transform:uppercase;transform:translateY(-.12em);font-size:clamp(3.2rem,6.6vw,7rem)}
.v27-theme-eset .v27-graphic-label::after{content:"";display:block;width:70%;height:3px;background:linear-gradient(to right,transparent,#29f0d2,transparent);margin:.8rem auto 0;box-shadow:0 0 20px #2bead0;transform:rotate(-7deg)}
.v27-cover-editorial.v27-theme-netatmo {background:linear-gradient(115deg,#d3d6da,#e7e8ea 38%,#9fa5ab);color:#14191e;aspect-ratio:5.5/1}
.v27-theme-netatmo::before{background:radial-gradient(circle at 85% 20%,rgba(255,255,255,.68),transparent 28%),repeating-linear-gradient(90deg,transparent 0 29px,rgba(40,52,58,.035) 30px,transparent 31px)}
.v27-theme-netatmo .v27-graphic-label {font-size:clamp(2.2rem,4.9vw,5.5rem);font-weight:700;letter-spacing:-.07em}
.v27-card-body {display:grid;grid-template-columns:34px minmax(0,1fr) auto;grid-template-rows:auto auto;column-gap:1.1rem;row-gap:.48rem;padding:1.25rem 1.4rem 1.4rem;align-items:center}
.v27-card-number {grid-column:1;grid-row:1;align-self:start;font-size:.72rem;font-weight:800;letter-spacing:.08em;padding-top:.16rem}
.v26-home .v26-project-grid .v27-card .v27-card-title {grid-column:2;grid-row:1;min-width:0;font-weight:800;font-size:clamp(1.4rem,2.1vw,2.35rem);line-height:1.1;letter-spacing:-.055em;white-space:normal}
.v26-home .v26-project-grid .v27-card .v27-card-description {grid-column:2;grid-row:2;font-style:normal;font-size:.68rem;line-height:1.5;letter-spacing:.04em;font-weight:650;text-transform:uppercase;color:#585953}
.v26-home .v26-project-grid .v27-card .v25-row-pill {grid-column:3;grid-row:1/3;border-radius:999px!important;font-size:.64rem;letter-spacing:.04em;padding:.65rem .95rem;white-space:nowrap;min-height:34px}
.v26-home .v26-project-grid .v27-card:hover .v25-row-pill,.v26-home .v26-project-grid .v27-card:focus-visible .v25-row-pill {background:var(--acid);border-color:var(--acid);color:var(--ink)}
.v26-home .v26-project-grid .v27-card .v27-cover-type{color:#fff}
.v27-cover-image img {object-position:center}
.v27-cover[data-project="manga"] img {object-position:center 57%}
.v27-cover[data-project="afnor"] img {object-position:50% 33%}
.v27-cover[data-project="patrimoine"] img {object-position:center 45%}
@media(max-width:800px){
 .v26-home .v26-project-grid {grid-template-columns:repeat(1,minmax(0,1fr))}
 .v26-home .v26-project-grid .v27-card.v26-last{grid-column:1}
 .v27-cover{aspect-ratio:2.12/1}
 .v27-cover-editorial .v27-graphic-label{font-size:clamp(2.5rem,8.5vw,5rem)}
 .v27-theme-akto-ici .v27-graphic-label{font-size:clamp(2.15rem,7.5vw,4.5rem)}
 .v27-cover-editorial.v27-theme-netatmo{aspect-ratio:2.12/1}
 .v27-card-body{padding:1rem 1.1rem 1.2rem;column-gap:.6rem;grid-template-columns:23px minmax(0,1fr) auto}
 .v26-home .v26-project-grid .v27-card .v27-card-title{font-size:clamp(1.3rem,5.8vw,2rem)}
 .v26-home .v26-project-grid .v27-card .v27-card-description{font-size:.58rem}
 .v26-home .v26-project-grid .v27-card .v25-row-pill{font-size:.55rem;padding:.55rem .65rem}
}
@media(max-width:400px){
 .v27-card-body{grid-template-columns:20px minmax(0,1fr);row-gap:.35rem}
 .v26-home .v26-project-grid .v27-card .v25-row-pill{grid-column:2;grid-row:3;justify-self:start;margin-top:.4rem}
 .v26-home .v26-project-grid .v27-card .v27-card-title{font-size:1.44rem}
 .v27-cover .v27-cover-type{font-size:.53rem;top:10px;left:10px}
}
@media(prefers-reduced-motion:reduce){.v27-card,.v27-cover img{transition:none!important}}


/* V2.8 */
.v24-hero{background:var(--paper)!important;color:var(--ink)!important;overflow:hidden}
.v24-hero::before{content:"";position:absolute;right:-6vw;top:6rem;width:min(34vw,430px);height:min(34vw,430px);border-radius:50%;background:var(--acid);filter:blur(.5px);z-index:0;opacity:.96}
.v24-hero > *{position:relative;z-index:1}
.v24-hero .v24-kicker span,.v24-hero .v24-hero-headline{color:var(--ink)!important}
.v24-hero .v24-hero-note{color:#4f5049!important}
.v24-hero .v24-metrics{border-top:1px solid rgba(17,17,15,.18)!important}
.v24-hero .v24-metric small{color:#4f5049}
.v24-hero .v24-hero-cta:last-child{background:none!important;color:var(--ink)!important;border:1px solid rgba(17,17,15,.38)!important}
.v24-hero .v24-hero-cta:last-child:hover,.v24-hero .v24-hero-cta:last-child:focus-visible{background:var(--ink)!important;color:var(--white)!important;border-color:var(--ink)!important}
.v24-hero .v24-hero-visual{background:#151714!important;border-radius:28px;box-shadow:0 18px 50px rgba(0,0,0,.15)}
.v24-hero .v25-carousel-control{background:rgba(247,246,240,.9);color:var(--ink)}
.v24-directory{background:var(--ink)!important;color:var(--white)!important;padding-top:6.2rem!important}
.v24-directory .v24-section-label{color:rgba(247,246,240,.76)!important}
.v24-directory h2{color:var(--white)!important}
.v24-directory .v24-intro,.v24-directory .v24-legend{color:#b9bab2!important}
.v26-home .v26-project-grid .v27-card{background:#f5f3ec!important;border-color:rgba(255,255,255,.09)!important;box-shadow:none}
.v26-home .v26-project-grid .v27-card:hover,.v26-home .v26-project-grid .v27-card:focus-visible{box-shadow:0 22px 40px rgba(0,0,0,.38)!important;border-color:var(--acid)!important;transform:translateY(-5px)}
.v26-home .v26-project-grid .v27-card.v26-last{background:#f5f3ec!important}
.v27-card .v25-row-pill{background:transparent!important;border:1px solid rgba(17,17,15,.18)!important;color:var(--ink)!important}
.v27-card:hover .v25-row-pill,.v27-card:focus-visible .v25-row-pill{background:var(--acid)!important;border-color:var(--acid)!important;color:var(--ink)!important}
.v27-cover,.v27-cover-editorial.v27-theme-netatmo{aspect-ratio:1.86/1!important}
.v27-cover-type{letter-spacing:.09em!important}
.v27-theme-akto-ici .v27-graphic-label{max-width:82%!important;font-size:clamp(2.3rem,5.2vw,5.8rem)!important;line-height:.88!important}
.v27-theme-eset .v27-graphic-label{font-size:clamp(3.1rem,6.4vw,6.8rem)!important}
.v27-card-body{row-gap:.54rem!important}
.v26-home .v26-project-grid .v27-card .v27-card-title{font-size:clamp(1.38rem,2.0vw,2.2rem)!important}
.v26-home .v26-project-grid .v27-card .v27-card-description{font-size:.645rem!important;letter-spacing:.055em!important;color:#50514b!important}
@media(max-width:800px){
 .v24-hero::before{width:220px;height:220px;right:-50px;top:7rem}
 .v24-directory{padding-top:4.1rem!important}
 .v27-cover,.v27-cover-editorial.v27-theme-netatmo{aspect-ratio:1.95/1!important}
}


/* V2.8.1 */
.v24-hero::before{
  left:calc(100% - min(39vw, 560px))!important;
  right:auto!important;
  top:9.25rem!important;
  width:min(18vw, 250px)!important;
  height:min(18vw, 250px)!important;
  z-index:0!important;
}
.v24-hero .v24-hero-grid{position:relative;z-index:1}
.v24-hero .v24-hero-copy,.v24-hero .v24-hero-visual{position:relative;z-index:1}
@media (max-width: 1200px){
  .v24-hero::before{
    left:calc(100% - min(42vw, 470px))!important;
    top:10.2rem!important;
    width:min(17vw, 210px)!important;
    height:min(17vw, 210px)!important;
  }
}
@media (max-width: 800px){
  .v24-hero::before{
    left:58%!important;
    right:auto!important;
    top:24.5rem!important;
    width:150px!important;
    height:150px!important;
  }
}


/* V2.8.2 - Larger fluorescent circle and compact two-row desktop gallery */
.v24-hero::before {
  left:calc(100% - min(39vw, 560px) - 30px)!important;
  width:min(22.5vw, 310px)!important;
  height:min(22.5vw, 310px)!important;
}
/* Make four project cards visible together on a conventional desktop screen. */
.v26-home .v24-directory {
  padding-top:clamp(2.1rem,3.1vw,2.8rem)!important;
  scroll-margin-top:72px;
}
.v26-home .v24-headingline {
  margin-bottom:clamp(.85rem,1.6vw,1.2rem)!important;
  align-items:end;
  row-gap:.75rem;
}
.v26-home .v24-headingline h2 {
  font-size:clamp(2.7rem,4.8vw,5.3rem);
  line-height:.95;
}
.v26-home .v24-directory .v24-intro {
  font-size:.89rem;
  line-height:1.43;
}
.v26-home .v26-project-grid {
  gap:clamp(.75rem,1.35vw,1.15rem)!important;
}
.v26-home .v26-project-grid .v27-cover,
.v26-home .v26-project-grid .v27-cover-editorial.v27-theme-netatmo {
  height:clamp(160px,13.6vw,194px)!important;
  aspect-ratio:auto!important;
}
.v26-home .v26-project-grid .v27-card .v27-cover-type {
  top:10px;
  left:12px;
  padding:.43rem .7rem;
  font-size:.55rem;
}
.v26-home .v26-project-grid .v27-card .v27-editorial-note {
  bottom:11px;
  left:12px;
}
.v26-home .v26-project-grid .v27-theme-akto-ici .v27-graphic-label {
  font-size:clamp(2rem,4vw,3.65rem)!important;
  max-width:95%!important;
}
.v26-home .v26-project-grid .v27-theme-eset .v27-graphic-label {
  font-size:clamp(2.7rem,5vw,4.7rem)!important;
}
.v26-home .v26-project-grid .v27-card-body {
  padding:.68rem .95rem .75rem!important;
  column-gap:.68rem!important;
  row-gap:.2rem!important;
  min-height:79px;
  grid-template-columns:25px minmax(0,1fr) auto;
}
.v26-home .v26-project-grid .v27-card .v27-card-title {
  font-size:clamp(1.2rem,1.7vw,1.75rem)!important;
  line-height:1.06;
}
.v26-home .v26-project-grid .v27-card .v27-card-description {
  font-size:.57rem!important;
  line-height:1.3;
}
.v26-home .v26-project-grid .v27-card .v25-row-pill {
  padding:.49rem .69rem!important;
  min-height:29px;
  font-size:.56rem!important;
}
@media (max-width:1200px) {
  .v24-hero::before {
    left:calc(100% - min(42vw, 470px) - 25px)!important;
    width:min(21vw,260px)!important;
    height:min(21vw,260px)!important;
  }
}
@media (max-width:800px) {
  .v24-hero::before {
    left:calc(58% - 15px)!important;
    top:24.5rem!important;
    width:180px!important;
    height:180px!important;
  }
  .v26-home .v24-directory {padding-top:3rem!important;scroll-margin-top:72px}
  .v26-home .v24-headingline h2 {font-size:clamp(2.55rem,8vw,4rem)}
  .v26-home .v26-project-grid .v27-cover,
  .v26-home .v26-project-grid .v27-cover-editorial.v27-theme-netatmo {
    height:clamp(165px,40vw,245px)!important;
    aspect-ratio:auto!important;
  }
  .v26-home .v26-project-grid .v27-card-body {min-height:85px}
}
@media(max-width:400px){
  .v26-home .v26-project-grid .v27-card-body{grid-template-columns:20px minmax(0,1fr)}
  .v26-home .v26-project-grid .v27-card .v25-row-pill{grid-column:2;grid-row:3;justify-self:start;margin-top:.3rem}
}

/* V2.8.2 navigation refinement: avoid redundant scroll offset behind the sticky nav. */
.v26-home .v24-directory { scroll-margin-top:0!important; }


/* V2.8.3 - card alignment and upper hero balance */
/* Preserve exact rows when a card is hovered or keyboard-focused. */
.v26-home .v26-project-grid {
  grid-auto-flow: row;
  align-items: stretch;
}
.v26-home .v26-project-grid .v27-card,
.v26-home .v26-project-grid .v27-card:hover,
.v26-home .v26-project-grid .v27-card:focus-visible {
  transform: none !important;
  padding: 0 !important;
}
.v26-home .v26-project-grid .v27-card {
  display: flex !important;
  flex-direction: column;
  height: 100%;
}
.v26-home .v26-project-grid .v27-card .v27-cover { flex: 0 0 auto; }
.v26-home .v26-project-grid .v27-card .v27-card-body {
  flex: 1 0 auto;
}
/* Rebalance hero without changing the case studies. */
@media (min-width: 801px) {
  .v24-hero {
    padding-top: 1.25rem !important;
    row-gap: 2rem !important;
  }
  .v24-hero .v24-hero-grid { transform: translateY(-12px); }
}
@media (max-width: 800px) {
  .v24-hero .v24-hero-grid { transform: none; }
  .v24-hero { padding-top: 1.2rem !important; }
}


/* Keep the visual and caption spanning the full card width. */
.v26-home .v26-project-grid .v27-card { align-items: stretch !important; }
.v26-home .v26-project-grid .v27-card .v27-cover,
.v26-home .v26-project-grid .v27-card .v27-card-body { width: 100% !important; min-width: 0 !important; }


/* V2.8.4 - ESET main card uses supplied paper-boat image */
.v27-cover.v27-theme-eset-photo{
  background:#0d1417 !important;
  padding:0 !important;
}
.v27-cover.v27-theme-eset-photo::after{
  background:linear-gradient(to top, rgba(0,0,0,.18), rgba(0,0,0,.02) 42%, transparent 72%) !important;
}
.v27-cover.v27-theme-eset-photo img{
  width:100% !important;
  height:100% !important;
  object-fit:contain !important;
  object-position:center center !important;
  background:#0d1417;
  transform:none !important;
}
.v27-card:hover .v27-cover.v27-theme-eset-photo img,
.v27-card:focus-visible .v27-cover.v27-theme-eset-photo img{
  transform:none !important;
}


/* V2.8.5 - restore full-size project cards of V2.8.1; keep all later content/hover fixes */
.v26-home .v26-project-grid { gap:clamp(1rem,2.1vw,2rem)!important; }
.v26-home .v26-project-grid .v27-cover,
.v26-home .v26-project-grid .v27-cover-editorial.v27-theme-netatmo {
  height:auto!important;
  aspect-ratio:1.86/1!important;
  min-height:0!important;
}
.v26-home .v26-project-grid .v27-card .v27-cover-type {
  top:14px;left:16px;padding:.55rem .82rem;font-size:.59rem;
}
.v26-home .v26-project-grid .v27-card .v27-editorial-note {bottom:15px;left:16px;}
.v26-home .v26-project-grid .v27-theme-akto-ici .v27-graphic-label {
  font-size:clamp(2.3rem,5.2vw,5.8rem)!important;max-width:82%!important;
}
.v26-home .v26-project-grid .v27-card .v27-card-body {
  min-height:0;
  padding:1.25rem 1.4rem 1.4rem!important;
  column-gap:1.1rem!important;
  row-gap:.54rem!important;
  grid-template-columns:34px minmax(0,1fr) auto;
}
.v26-home .v26-project-grid .v27-card .v27-card-title {
  font-size:clamp(1.38rem,2vw,2.2rem)!important;line-height:1.1;
}
.v26-home .v26-project-grid .v27-card .v27-card-description {
  font-size:.645rem!important;line-height:1.5;
}
.v26-home .v26-project-grid .v27-card .v25-row-pill {
  padding:.65rem .95rem!important;min-height:34px;font-size:.64rem!important;
}
@media(max-width:800px){
  .v26-home .v26-project-grid .v27-cover,
  .v26-home .v26-project-grid .v27-cover-editorial.v27-theme-netatmo {
    height:auto!important;aspect-ratio:1.95/1!important;
  }
  .v26-home .v26-project-grid .v27-card .v27-card-body {
    min-height:0;padding:1rem 1.1rem 1.2rem!important;
    column-gap:.6rem!important;
    grid-template-columns:23px minmax(0,1fr) auto;
  }
  .v26-home .v26-project-grid .v27-card .v27-card-title {
    font-size:clamp(1.3rem,5.8vw,2rem)!important;
  }
  .v26-home .v26-project-grid .v27-card .v27-card-description {font-size:.58rem!important;}
  .v26-home .v26-project-grid .v27-card .v25-row-pill {
    font-size:.55rem!important;padding:.55rem .65rem!important;
  }
}
@media(max-width:400px){
 .v26-home .v26-project-grid .v27-card .v27-card-body {
   grid-template-columns:20px minmax(0,1fr);
 }
 .v26-home .v26-project-grid .v27-card .v27-card-title {font-size:1.44rem!important;}
 .v26-home .v26-project-grid .v27-card .v25-row-pill {
   grid-column:2;grid-row:3;justify-self:start;margin-top:.4rem;
 }
}


/* Keep the final full-width Netatmo banner the same height as the other covers. */
@media (min-width:801px){
 .v26-home .v26-project-grid .v27-card.v26-last .v27-cover {
   height:auto!important;aspect-ratio:3.85/1!important;
 }
}


/* V2.8.6 - ESET card without black side borders */
.v27-cover.v27-theme-eset-photo{
  background-color:#b9c9cf !important;
  background-position:center center !important;
  background-size:cover !important;
  background-repeat:no-repeat !important;
}
.v27-cover.v27-theme-eset-photo::before{
  content:"";
  position:absolute;
  inset:0;
  background:inherit;
  background-position:center center;
  background-size:cover;
  filter:blur(14px) saturate(.92) brightness(.92);
  transform:scale(1.08);
  z-index:0;
}
.v27-cover.v27-theme-eset-photo img{
  position:relative;
  z-index:1;
  width:100% !important;
  height:100% !important;
  object-fit:contain !important;
  object-position:center center !important;
  background:transparent !important;
}
.v27-cover.v27-theme-eset-photo .v27-cover-type,
.v27-cover.v27-theme-eset-photo::after{
  z-index:2;
}


/* V2.8.7 - ESET: full-bleed photography with the boat preserved. */
.v26-home .v26-project-grid .v27-cover.v27-theme-eset-photo {
  background: transparent !important;
  background-image: none !important;
  padding: 0 !important;
  overflow: hidden !important;
}
.v26-home .v26-project-grid .v27-cover.v27-theme-eset-photo::before {
  content: none !important;
  display: none !important;
  background: none !important;
}
.v26-home .v26-project-grid .v27-cover.v27-theme-eset-photo::after {
  content: none !important;
  display: none !important;
}
.v26-home .v26-project-grid .v27-cover.v27-theme-eset-photo > img {
  position: relative !important;
  z-index: 1 !important;
  display: block !important;
  width: 100% !important;
  height: 100% !important;
  min-width: 100% !important;
  min-height: 100% !important;
  object-fit: cover !important;
  object-position: 50% 100% !important;
  background: transparent !important;
  filter: none !important;
  transform: none !important;
}
.v26-home .v26-project-grid .v27-card:hover .v27-theme-eset-photo > img,
.v26-home .v26-project-grid .v27-card:focus-visible .v27-theme-eset-photo > img {
  transform: none !important;
}
.v26-home .v26-project-grid .v27-theme-eset-photo .v27-cover-type {
  z-index: 3 !important;
}
