
.case6-two-notes h3 {
  font-size:clamp(1.45rem,2vw,2.15rem);
  letter-spacing:-.045em;
  line-height:1;
  margin:clamp(42px,5vw,70px) 0 24px;
  text-transform:uppercase;
  text-wrap:balance;
}
.case6-two-notes p { font-size:clamp(1rem,1.1vw,1.12rem); line-height:1.62; margin:0; }

.case6-quote {
  background:var(--accent);
  display:grid;
  gap:clamp(34px,5vw,84px);
  grid-template-columns:minmax(150px,.3fr) minmax(0,1.5fr) auto;
  margin:0;
  padding:clamp(68px,8vw,126px) clamp(18px,4vw,72px);
}
.case6-quote > span { font:700 9px/1.45 "Space Mono",monospace; text-transform:uppercase; }
.case6-quote blockquote { font:400 clamp(2.65rem,5.25vw,6.25rem)/.82 "Archivo Black",sans-serif; letter-spacing:-.07em; margin:0; max-width:1280px; text-transform:uppercase; text-wrap:balance; }
.case6-quote > b { align-self:end; font:400 clamp(2rem,3.5vw,3.8rem) "Space Mono",monospace; }

.case6-media {
  background-color:#f3f3f0;
  background-image:radial-gradient(circle,rgba(9,9,9,.17) 1px,transparent 1px);
  background-size:22px 22px;
  padding:clamp(92px,10vw,160px) clamp(18px,4vw,72px) clamp(112px,12vw,190px);
}
.case6-media-head {
  align-items:end;
  display:grid;
  gap:clamp(34px,6vw,100px);
  grid-template-columns:.32fr 1.05fr .63fr;
  margin:auto;
  max-width:1600px;
}
.case6-media-head > p:first-child { align-self:start; }
.case6-media-head > p:last-child { color:#090909; font-family:Arial,sans-serif; font-size:clamp(1.02rem,1.25vw,1.2rem); font-weight:400; line-height:1.58; margin:0; max-width:480px; text-transform:none; }
.case6-media-grid {
  display:grid;
  gap:clamp(10px,1.5vw,24px);
  grid-template-columns:repeat(12,minmax(0,1fr));
  margin:clamp(70px,9vw,128px) auto 0;
  max-width:1600px;
}
.case6-media-grid figure { background:#111; margin:0; overflow:hidden; position:relative; }
.case6-media-grid figure::after { background:linear-gradient(0deg,rgba(0,0,0,.68),transparent 36%); content:""; inset:0; pointer-events:none; position:absolute; }
.case6-media-grid img,.case6-media-grid video { display:block; height:100%; object-fit:cover; transition:filter .45s,transform .9s cubic-bezier(.16,1,.3,1); width:100%; }
.case6-media-grid figure:hover img,.case6-media-grid figure:hover video { transform:scale(1.025); }
.case6-media-grid figcaption { bottom:14px; color:#fff; font:700 9px/1.35 "Space Mono",monospace; left:14px; position:absolute; right:14px; text-transform:uppercase; z-index:2; }
.case6-media-primary { aspect-ratio:9/14; grid-column:1 / 6; grid-row:1 / 4; }
.case6-media-wide { aspect-ratio:16/9; grid-column:6 / 13; grid-row:1; }
.case6-media-square { aspect-ratio:1; grid-column:6 / 10; grid-row:2; }
.case6-media-detail { aspect-ratio:9/12; grid-column:10 / 13; grid-row:2 / 4; }
.case6-media-tall { aspect-ratio:16/7; grid-column:2 / 12; grid-row:3; }

.case6-stories {
  background:#fff;
  display:grid;
  gap:clamp(48px,8vw,130px);
  grid-template-columns:.72fr 1.28fr;
  padding:clamp(82px,9vw,145px) clamp(18px,4vw,72px);
}
.case6-stories header > p { margin-bottom:clamp(52px,7vh,90px); }
.case6-stories > div { border-top:1px solid var(--black); }
.case6-stories article { border-bottom:1px solid var(--black); display:grid; gap:28px; grid-template-columns:150px 1fr; padding:24px 0 clamp(48px,6vw,76px); }
.case6-stories article span { color:var(--accent); font:700 9px "Space Mono",monospace; }
.case6-stories article p { font-size:clamp(1.08rem,1.45vw,1.4rem); line-height:1.56; margin:0; max-width:760px; }

.case6-work { background:#090909; color:#fff; padding:clamp(92px,10vw,160px) clamp(18px,4vw,72px); }
.case6-section-head-dark { display:grid; gap:clamp(38px,7vw,112px); grid-template-columns:.32fr 1.68fr; margin:auto; max-width:1600px; }
.case6-section-head-dark > p { margin:0; }
.case6-work-list { border-top:1px solid rgba(255,255,255,.34); margin:clamp(70px,9vw,120px) auto 0; max-width:1600px; }
.case6-work-list article {
  align-items:start;
  border-bottom:1px solid rgba(255,255,255,.34);
  display:grid;
  gap:clamp(24px,4vw,72px);
  grid-template-columns:70px minmax(230px,.7fr) minmax(0,1.3fr);
  padding:clamp(30px,4vw,58px) 0;
}
.case6-work-list h3 { font-size:clamp(1.55rem,2.2vw,2.4rem); letter-spacing:-.04em; line-height:1; margin:0; text-transform:uppercase; text-wrap:balance; }
.case6-work-list p { color:rgba(255,255,255,.76); font-size:clamp(1rem,1.1vw,1.12rem); line-height:1.62; margin:0; max-width:760px; }

.case6-impact { background:var(--accent); display:grid; grid-template-columns:minmax(0,1.12fr) minmax(420px,.88fr); }
.case6-impact-copy { padding:clamp(84px,9vw,150px) clamp(18px,4vw,72px); }
.case6-impact-copy > span { color:#090909; }
.case6-impact h2 { font-size:clamp(3rem,4.7vw,5.6rem); margin-top:clamp(54px,7vh,96px); text-wrap:wrap; }
.case6-impact-copy > p { font-size:clamp(1.15rem,1.45vw,1.42rem); line-height:1.58; margin:clamp(48px,6vw,82px) 0 0; max-width:760px; }
.case6-source-links { display:grid; gap:14px; margin-top:40px; max-width:520px; }
.case6-source-links a { align-items:center; border-bottom:1px solid #090909; display:flex; font:700 9px/1.4 "Space Mono",monospace; justify-content:space-between; padding-bottom:9px; text-transform:uppercase; }
.case6-signal-wrap { background:#090909; color:#fff; display:flex; flex-direction:column; padding:clamp(84px,9vw,150px) clamp(18px,4vw,72px); }
.case6-signal-wrap > p { color:rgba(255,255,255,.56); font:400 9px/1.55 "Space Mono",monospace; margin:0 0 clamp(44px,6vw,82px); max-width:420px; text-transform:uppercase; }
.case6-signals { border-top:1px solid rgba(255,255,255,.35); }
.case6-signals article { align-items:end; border-bottom:1px solid rgba(255,255,255,.35); display:grid; gap:26px; grid-template-columns:minmax(320px,.95fr) minmax(0,1.05fr); padding:clamp(26px,3.5vw,46px) 0; }
.case6-signals strong { color:var(--accent); font:400 clamp(2.75rem,4.5vw,5.4rem)/.8 "Archivo Black",sans-serif; letter-spacing:-.075em; white-space:nowrap; }
.case6-signals span { font:700 9px/1.42 "Space Mono",monospace; max-width:260px; text-transform:uppercase; }

.case6-closing { display:grid; grid-template-columns:1fr 1fr; }
.case6-role,.case6-faq { padding:clamp(82px,9vw,145px) clamp(18px,4vw,72px); }
.case6-role { background:#f3f3f0; border-right:1px solid #090909; }
.case6-role h2,.case6-faq h2 { font-size:clamp(2.8rem,4.5vw,5.25rem); margin-top:clamp(52px,7vh,90px); }
.case6-role ul { list-style:none; margin:clamp(58px,7vw,96px) 0 0; padding:0; }
.case6-role li { border-top:1px solid #090909; font-size:clamp(1rem,1.3vw,1.25rem); padding:18px 0; text-transform:uppercase; }
.case6-role li:last-child { border-bottom:1px solid #090909; }
.case6-role li span { color:var(--accent); display:inline-block; font:700 9px "Space Mono",monospace; width:42px; }
.case6-credit { color:rgba(9,9,9,.62); font:400 9px/1.6 "Space Mono",monospace; margin:28px 0 0; max-width:620px; }
.case6-credit sup { color:var(--accent); font-size:13px; }
.case6-faq { background:#090909; color:#fff; }
.case6-faq > div { margin-top:clamp(58px,7vw,96px); }
.case6-faq details { border-top:1px solid rgba(255,255,255,.34); }
.case6-faq details:last-child { border-bottom:1px solid rgba(255,255,255,.34); }
.case6-faq summary { align-items:center; cursor:pointer; display:flex; font-size:clamp(1.03rem,1.3vw,1.25rem); gap:24px; justify-content:space-between; line-height:1.3; list-style:none; padding:23px 0; }
.case6-faq summary::-webkit-details-marker { display:none; }
.case6-faq summary b { color:var(--accent); flex:0 0 auto; font:700 22px "Space Mono",monospace; transition:transform .25s; }
.case6-faq details[open] summary b { transform:rotate(45deg); }
.case6-faq details p { color:rgba(255,255,255,.76); font-size:1rem; line-height:1.62; margin:0; max-width:700px; padding:0 38px 28px 0; }

.case-page-v6 .case6-next { padding-left:clamp(18px,4vw,72px); padding-right:clamp(18px,4vw,72px); }
.case-page-v6 .case6-next > a span { hyphens:none; overflow-wrap:normal; text-wrap:balance; word-break:normal; }

@media (max-width:1350px) and (min-width:721px) {
  .case6-hero-copy { max-width:76vw; }
  .case6-intro { display:block; }
  .case6-intro-body { margin:70px 0 0 auto; max-width:800px; }
  .case6-two-notes h3 { font-size:clamp(1.35rem,1.7vw,1.85rem); }
  .case6-media-head { grid-template-columns:.28fr 1.12fr; }
  .case6-media-head > p:last-child { grid-column:2; }
  .case6-stories { grid-template-columns:1fr; }
  .case6-stories > div { margin-left:auto; max-width:820px; width:100%; }
  .case6-work-list article { grid-template-columns:56px minmax(210px,.68fr) minmax(0,1.32fr); }
  .case6-impact { display:block; }
  .case6-signal-wrap { padding-top:70px; }
  .case6-signals { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); }
  .case6-signals article { border-bottom:0; display:flex; flex-direction:column; padding-right:18px; }
  .case6-signals article + article { border-left:1px solid rgba(255,255,255,.35); padding-left:18px; }
  .case6-signals span { display:block; margin-top:auto; padding-top:28px; }
  .case6-closing { grid-template-columns:.9fr 1.1fr; }
}

@media (max-width:900px) and (min-width:721px) {
  .case6-hero-copy { max-width:84vw; padding-left:36px; }
  .case-page-v6[data-case="barcelona-sports-hub"] .case6-hero h1,.case-page-v6[data-case="ajuntament-de-barcelona"] .case6-hero h1 { font-size:clamp(3rem,7.4vw,5.4rem); }
  .case6-quote { grid-template-columns:130px 1fr; }
  .case6-quote > b { display:none; }
  .case6-section-head-dark { grid-template-columns:140px 1fr; }
  .case6-work-list article { grid-template-columns:48px minmax(180px,.65fr) minmax(0,1.35fr); }
  .case6-closing { display:block; }
  .case6-role { border-bottom:1px solid #090909; border-right:0; }
}

@media (max-width:720px) {
  .case-page-v6 { padding-left:0; padding-top:64px; }
  .case-page-v6 .case-site-menu nav b { font-size:clamp(2.25rem,10.5vw,3.8rem); }
  .case-page-v6 .case-site-menu nav a { grid-template-columns:28px minmax(0,1fr) 20px; }
  .case6-hero { height:calc(100svh - 64px); min-height:600px; }
  .case6-hero-shade { background:linear-gradient(0deg,rgba(0,0,0,.98) 0%,rgba(0,0,0,.78) 60%,rgba(0,0,0,.2) 100%); }
  .case6-hero-grid { background-size:50% 100%,50% 100%; }
  .case6-hero-copy { justify-content:flex-end; max-width:none; padding:28px 14px 34px; }
  .case6-hero-meta { font-size:7.5px; margin-bottom:26px; }
  .case6-hero-meta span:not(:last-child)::after { margin:0 7px; }
  .case6-hero h1,.case-page-v6[data-case="barcelona-sports-hub"] .case6-hero h1,.case-page-v6[data-case="ajuntament-de-barcelona"] .case6-hero h1 { font-size:clamp(2.75rem,14.2vw,4.9rem); line-height:.76; }
  .case-page-v6[data-case="barcelona-sports-hub"] .case6-hero h1,.case-page-v6[data-case="ajuntament-de-barcelona"] .case6-hero h1 { font-size:clamp(2.45rem,12.2vw,4.2rem); }
  .case-page-v6[data-case="humanhood"] .case6-hero h1 { font-size:clamp(2.55rem,13.4vw,4.35rem); }
  .case6-hero-line { font-size:clamp(1.02rem,4.7vw,1.25rem); line-height:1.36; margin-top:22px; }
  .case6-hero-copy > small { font-size:7.5px; line-height:1.5; margin-top:11px; }
  .case6-hero-copy > a { margin-top:26px; max-width:220px; }
  .case6-hero-index { display:none; }

  .case6-intro { display:block; padding:72px 14px 82px; }
  .case6-section-head > p,.case6-media-head > p,.case6-stories header > p { margin-bottom:42px; }
  .case6-section-head h2,.case6-media-head h2,.case6-stories h2,.case6-impact h2,.case6-closing h2 { font-size:clamp(2.6rem,11.8vw,3.9rem); }
  .case6-intro-body { margin-top:54px; }
  .case6-lead { font-size:1.08rem; line-height:1.58; }
  .case6-two-notes { display:block; margin-top:52px; }
  .case6-two-notes article { padding:20px 0 38px; }
  .case6-two-notes article + article { border-left:0; border-top:1px solid #090909; padding:38px 0 0; }
  .case6-two-notes h3 { font-size:clamp(1.55rem,7.2vw,2.1rem); margin:38px 0 20px; }
  .case6-two-notes p { font-size:1rem; }

  .case6-quote { display:flex; flex-direction:column; gap:38px; padding:64px 14px 70px; }
  .case6-quote blockquote { font-size:clamp(2.35rem,11vw,3.65rem); }
  .case6-quote > b { align-self:flex-end; }

  .case6-media { background-size:18px 18px; padding:72px 14px 84px; }
  .case6-media-head { display:flex; flex-direction:column; gap:34px; }
  .case6-media-head > p:first-child { margin-bottom:6px; }
  .case6-media-head > p:last-child { font-size:1rem; }
  .case6-media-grid { display:flex; flex-direction:column; gap:10px; margin-top:56px; }
  .case6-media-primary { aspect-ratio:9/14; width:78%; }
  .case6-media-wide { align-self:flex-end; aspect-ratio:16/10; width:100%; }
  .case6-media-square { aspect-ratio:1; width:76%; }
  .case6-media-detail { align-self:flex-end; aspect-ratio:9/12; width:70%; }
  .case6-media-tall { aspect-ratio:4/5; width:84%; }

  .case6-stories { display:block; padding:72px 14px 80px; }
  .case6-stories > div { margin-top:54px; }
  .case6-stories article { display:block; padding:22px 0 40px; }
  .case6-stories article p { font-size:1.04rem; margin-top:24px; }

  .case6-work { padding:74px 14px 82px; }
  .case6-section-head-dark { display:block; }
  .case6-section-head-dark h2 { margin-top:42px; }
  .case6-work-list { margin-top:58px; }
  .case6-work-list article { display:block; padding:28px 0 34px; }
  .case6-work-list h3 { font-size:clamp(1.5rem,7vw,2.05rem); margin:38px 0 20px; }
  .case6-work-list p { font-size:1rem; }

  .case6-impact { display:block; }
  .case6-impact-copy,.case6-signal-wrap { padding:74px 14px 82px; }
  .case6-impact h2 { font-size:clamp(2.4rem,10.6vw,3.55rem); margin-top:42px; text-wrap:wrap; }
  .case6-impact-copy > p { font-size:1.06rem; margin-top:40px; }
  .case6-source-links { margin-top:34px; }
  .case6-signal-wrap > p { margin-bottom:42px; }
  .case6-signals article { display:flex; flex-direction:column; padding:24px 0 20px; }
  .case6-signals strong { font-size:clamp(3rem,15vw,4.8rem); }
  .case6-signals span { margin-top:20px; }

  .case6-closing { display:block; }
  .case6-role,.case6-faq { padding:72px 14px 80px; }
  .case6-role { border-bottom:1px solid #090909; border-right:0; }
  .case6-role h2,.case6-faq h2 { font-size:clamp(2.55rem,11.5vw,3.75rem); margin-top:42px; }
  .case6-role ul,.case6-faq > div { margin-top:54px; }
  .case6-role li { font-size:1rem; }
  .case6-faq summary { font-size:1rem; padding:21px 0; }
  .case6-faq details p { font-size:.98rem; padding-right:18px; }

  .case-page-v6 .case6-next { padding:70px 14px 26px; }
  .case-page-v6 .case6-next > a { font-size:clamp(2.45rem,11.8vw,4rem); }
}

@media (max-width:380px) {
  .case6-hero h1,.case-page-v6[data-case="barcelona-sports-hub"] .case6-hero h1,.case-page-v6[data-case="ajuntament-de-barcelona"] .case6-hero h1 { font-size:clamp(2.25rem,11.6vw,3.3rem); }
  .case6-hero-line { font-size:.98rem; }
  .case6-section-head h2,.case6-media-head h2,.case6-stories h2,.case6-impact h2,.case6-closing h2 { font-size:clamp(2.35rem,10.8vw,3.2rem); }
  .case6-quote blockquote { font-size:clamp(2.1rem,10.4vw,2.95rem); }
}

@media (max-height:620px) and (min-width:721px) {
  .case6-hero { min-height:600px; }
  .case6-hero-copy { padding-bottom:28px; padding-top:28px; }
  .case6-hero-meta { margin-bottom:24px; }
  .case6-hero h1 { font-size:clamp(3.2rem,min(7vw,13vh),5.8rem); }
  .case-page-v6[data-case="barcelona-sports-hub"] .case6-hero h1,.case-page-v6[data-case="ajuntament-de-barcelona"] .case6-hero h1 { font-size:clamp(2.85rem,min(6.3vw,11.4vh),5rem); }
  .case6-hero-line { font-size:clamp(1rem,1.35vw,1.22rem); margin-top:20px; }
  .case6-hero-copy > a { margin-top:24px; }
}

/* Project pages v7: shorter, sharper and built around the work. */
.case-page-v7 {
  background:#f3f3f0;
  color:#090909;
  overflow:clip;
  padding-left:96px;
}
.case-page-v7 * { box-sizing:border-box; min-width:0; }
.case-page-v7 h1,.case-page-v7 h2,.case-page-v7 h3,.case-page-v7 blockquote {
  hyphens:none;
  overflow-wrap:normal;
  word-break:normal;
}
.case7-content { background:#f3f3f0; }

.case7-hero {
  background:#090909;
  color:#fff;
  height:92svh;
  min-height:660px;
  overflow:hidden;
  position:relative;
}
.case7-hero-video {
  height:100%;
  inset:0;
  object-fit:cover;
  object-position:center;
  position:absolute;
  width:100%;
}
.case7-hero-shade {
  background:linear-gradient(90deg,rgba(0,0,0,.94) 0%,rgba(0,0,0,.69) 40%,rgba(0,0,0,.16) 76%,rgba(0,0,0,.35) 100%);
  inset:0;
  position:absolute;
}
.case7-hero-shade::after {
  background:linear-gradient(0deg,rgba(0,0,0,.86),transparent 42%);
  content:"";
  inset:0;
  position:absolute;
}
.case7-hero-copy {
  bottom:clamp(38px,6vh,76px);
  left:clamp(18px,4.5vw,82px);
  max-width:min(1180px,84vw);
  position:absolute;
  z-index:2;
}
.case7-meta {
  align-items:center;
  display:flex;
  flex-wrap:wrap;
  font:700 9px/1.4 "Space Mono",monospace;
  gap:0;
  margin:0 0 clamp(34px,6vh,68px);
  text-transform:uppercase;
}
.case7-meta span:not(:last-child)::after { color:var(--accent); content:"/"; margin:0 13px; }
.case7-hero h1 {
  font:400 clamp(4rem,9vw,10.5rem)/.73 "Archivo Black",sans-serif;
  letter-spacing:-.085em;
  margin:0;
  max-width:1200px;
  text-transform:uppercase;
  text-wrap:balance;
}
.case-page-v7[data-case="barcelona-sports-hub"] .case7-hero h1,.case-page-v7[data-case="ajuntament-de-barcelona"] .case7-hero h1 { font-size:clamp(3.6rem,7.35vw,8.6rem); }
.case7-headline {
  font-size:clamp(1.08rem,1.55vw,1.55rem);
  line-height:1.35;
  margin:clamp(25px,3.5vh,38px) 0 0;
  max-width:680px;
  text-wrap:balance;
}
.case7-hero-copy > small { color:rgba(255,255,255,.66); display:block; font:400 8px/1.55 "Space Mono",monospace; margin-top:15px; max-width:580px; text-transform:uppercase; }
.case7-hero-copy > small sup { color:var(--accent); font-size:12px; margin-right:3px; }
.case7-hero-copy > a { align-items:center; border-bottom:1px solid rgba(255,255,255,.72); display:flex; font:700 9px/1.2 "Space Mono",monospace; justify-content:space-between; margin-top:clamp(28px,4vh,44px); max-width:260px; padding-bottom:10px; text-transform:uppercase; }
.case7-hero-copy > a b { color:var(--accent); }
.case7-count { align-items:flex-end; display:flex; flex-direction:column; margin:0; position:absolute; right:24px; top:22px; z-index:2; }
.case7-count span { font:700 8px "Space Mono",monospace; text-transform:uppercase; }
.case7-count strong { color:var(--accent); font:400 clamp(3.2rem,5vw,5.7rem)/.8 "Archivo Black",sans-serif; letter-spacing:-.08em; margin-top:8px; }

.case7-summary {
  display:grid;
  gap:clamp(56px,8vw,138px);
  grid-template-columns:minmax(330px,.78fr) minmax(0,1.22fr);
  margin:auto;
  max-width:1760px;
  padding:clamp(88px,9vw,150px) clamp(18px,4.5vw,82px);
}
.case7-summary header > p,.case7-work header > p,.case7-result-copy > p:first-child,.case7-services > p,.case7-faq > p {
  color:var(--accent);
  font:700 9px/1.45 "Space Mono",monospace;
  margin:0 0 clamp(44px,6vh,72px);
  text-transform:uppercase;
}
.case7-summary h2,.case7-work h2,.case7-result h2,.case7-close h2 {
  font:400 clamp(3.2rem,5.9vw,6.8rem)/.78 "Archivo Black",sans-serif;
  letter-spacing:-.075em;
  margin:0;
  text-transform:uppercase;
  text-wrap:balance;
}
.case7-intro { font-size:clamp(1.32rem,1.8vw,1.82rem); line-height:1.48; margin:0; max-width:860px; }
.case7-brief { border-top:1px solid #090909; display:grid; grid-template-columns:1fr 1fr; margin-top:clamp(52px,7vw,94px); }
.case7-brief article { padding:20px clamp(20px,3vw,46px) 0 0; }
.case7-brief article + article { border-left:1px solid #090909; padding-left:clamp(20px,3vw,46px); }
.case7-brief span { color:var(--accent); font:700 9px "Space Mono",monospace; text-transform:uppercase; }
.case7-brief p { font-size:clamp(1rem,1.12vw,1.15rem); line-height:1.62; margin:clamp(36px,4vw,56px) 0 0; }

.case7-quote { background:var(--accent); margin:0; padding:clamp(60px,7vw,104px) clamp(18px,4.5vw,82px); }
.case7-quote span { font:700 9px "Space Mono",monospace; text-transform:uppercase; }
.case7-quote p { font:400 clamp(2.8rem,5.25vw,6.1rem)/.8 "Archivo Black",sans-serif; letter-spacing:-.07em; margin:clamp(34px,4.5vw,60px) 0 0 auto; max-width:1400px; text-align:right; text-transform:uppercase; text-wrap:balance; }

.case7-media { background:#090909; display:grid; gap:3px; grid-template-columns:repeat(12,minmax(0,1fr)); grid-template-rows:1fr 1fr; height:min(88svh,920px); min-height:660px; padding:3px; }
.case7-media figure { background:#171717; margin:0; overflow:hidden; position:relative; }
.case7-media figure::after { background:linear-gradient(0deg,rgba(0,0,0,.68),transparent 34%); content:""; inset:0; pointer-events:none; position:absolute; }
.case7-media img,.case7-media video { display:block; height:100%; object-fit:cover; transition:transform .8s cubic-bezier(.16,1,.3,1),filter .45s; width:100%; }
.case7-media figure:hover img,.case7-media figure:hover video { transform:scale(1.025); }
.case7-media figcaption { bottom:13px; color:#fff; font:700 8px/1.35 "Space Mono",monospace; left:13px; position:absolute; right:13px; text-transform:uppercase; z-index:2; }
.case7-media-main { grid-column:1 / 8; grid-row:1 / 3; }
.case7-media-a { grid-column:8 / 13; grid-row:1; }
.case7-media-b { grid-column:8 / 11; grid-row:2; }
.case7-media-c { grid-column:11 / 13; grid-row:2; }

.case7-work { background:#f3f3f0; padding:clamp(88px,9vw,150px) clamp(18px,4.5vw,82px); }
.case7-work > header { display:grid; gap:clamp(48px,8vw,128px); grid-template-columns:.34fr 1.66fr; margin:auto; max-width:1600px; }
.case7-work header > p { margin:0; }
.case7-work-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); margin:clamp(68px,8vw,112px) auto 0; max-width:1600px; }
.case7-work-grid article { border-left:1px solid #090909; padding:20px clamp(18px,2.5vw,38px) 0; }
.case7-work-grid article:last-child { border-right:1px solid #090909; }
.case7-work-grid span { color:var(--accent); font:700 9px "Space Mono",monospace; }
.case7-work-grid h3 { font-size:clamp(1.45rem,1.9vw,2rem); letter-spacing:-.045em; line-height:.98; margin:clamp(38px,4vw,58px) 0 22px; text-transform:uppercase; text-wrap:balance; }
.case7-work-grid p { font-size:clamp(.98rem,1.04vw,1.08rem); line-height:1.58; margin:0; }

.case7-result { background:#090909; color:#fff; display:grid; grid-template-columns:minmax(0,1.08fr) minmax(420px,.92fr); }
.case7-result-copy { background:var(--accent); color:#090909; padding:clamp(78px,8vw,132px) clamp(18px,4.5vw,82px); }
.case7-result-copy > p:first-child { color:#090909; }
.case7-result h2 { font-size:clamp(3rem,4.9vw,5.7rem); }
.case7-result-copy > p:not(:first-child) { font-size:clamp(1.12rem,1.35vw,1.38rem); line-height:1.56; margin:clamp(42px,5vw,68px) 0 0; max-width:780px; }
.case7-source-links { display:grid; gap:12px; margin-top:34px; max-width:540px; }
.case7-source-links a { align-items:center; border-bottom:1px solid #090909; display:flex; font:700 8px/1.4 "Space Mono",monospace; justify-content:space-between; padding-bottom:8px; text-transform:uppercase; }
.case7-signal-panel { display:flex; flex-direction:column; padding:clamp(78px,8vw,132px) clamp(18px,4.5vw,82px); }
.case7-signal-panel > p { color:rgba(255,255,255,.56); font:400 8px/1.55 "Space Mono",monospace; margin:0 0 clamp(38px,5vw,68px); max-width:420px; text-transform:uppercase; }
.case7-signals { border-top:1px solid rgba(255,255,255,.35); margin-top:auto; }
.case7-signals article { align-items:end; border-bottom:1px solid rgba(255,255,255,.35); display:grid; gap:24px; grid-template-columns:minmax(210px,.92fr) minmax(0,1.08fr); padding:clamp(24px,3vw,38px) 0; }
.case7-signals strong { color:var(--accent); font:400 clamp(2.65rem,4vw,4.8rem)/.8 "Archivo Black",sans-serif; letter-spacing:-.075em; white-space:nowrap; }
.case7-signals span { font:700 8px/1.45 "Space Mono",monospace; max-width:240px; text-transform:uppercase; }

.case7-close { display:grid; grid-template-columns:1fr 1fr; }
.case7-services,.case7-faq { padding:clamp(78px,8vw,132px) clamp(18px,4.5vw,82px); }
.case7-services { border-right:1px solid #090909; }
.case7-close h2 { font-size:clamp(2.7rem,4.35vw,5rem); }
.case7-services ul { display:flex; flex-wrap:wrap; gap:8px; list-style:none; margin:clamp(46px,5.5vw,72px) 0 0; padding:0; }
.case7-services li { border:1px solid #090909; border-radius:99px; font:700 9px/1.2 "Space Mono",monospace; padding:11px 14px; text-transform:uppercase; }
.case7-services > small { color:rgba(9,9,9,.58); display:block; font:400 8px/1.6 "Space Mono",monospace; margin-top:28px; max-width:650px; text-transform:uppercase; }
.case7-services > small sup { color:var(--accent); font-size:12px; }
.case7-faq { background:#fff; }
.case7-faq > p { margin-bottom:clamp(40px,5vw,64px); }
.case7-faq details { border-top:1px solid #090909; }
.case7-faq summary { align-items:center; cursor:pointer; display:flex; font-size:clamp(1rem,1.2vw,1.16rem); gap:22px; justify-content:space-between; line-height:1.3; list-style:none; padding:21px 0; }
.case7-faq summary::-webkit-details-marker { display:none; }
.case7-faq summary b { color:var(--accent); flex:0 0 auto; font:700 21px "Space Mono",monospace; transition:transform .25s; }
.case7-faq details[open] summary b { transform:rotate(45deg); }
.case7-faq details > p { font-size:1rem; line-height:1.6; margin:0; max-width:680px; padding:0 36px 26px 0; }
.case7-faq > a { align-items:end; background:#090909; color:#fff; display:flex; font-size:clamp(1.05rem,1.35vw,1.3rem); gap:24px; justify-content:space-between; line-height:1.28; margin-top:clamp(44px,5vw,68px); padding:22px; }
.case7-faq > a strong { color:var(--accent); font:700 9px "Space Mono",monospace; text-transform:uppercase; }
.case-page-v7 .case7-next { padding-left:clamp(18px,4.5vw,82px); padding-right:clamp(18px,4.5vw,82px); }
.case-page-v7 .case7-next > a span { hyphens:none; overflow-wrap:normal; text-wrap:balance; word-break:normal; }

@media (max-width:1200px) and (min-width:721px) {
  .case7-summary { display:block; }
  .case7-summary-copy { margin:64px 0 0 auto; max-width:820px; }
  .case7-work-grid { grid-template-columns:1fr 1fr; }
  .case7-work-grid article { border-bottom:1px solid #090909; min-height:300px; }
  .case7-work-grid article:nth-child(3) { border-left:1px solid #090909; }
  .case7-result { display:block; }
  .case7-signals { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); }
  .case7-signals article { border-bottom:0; display:flex; flex-direction:column; padding-right:18px; }
  .case7-signals article + article { border-left:1px solid rgba(255,255,255,.35); padding-left:18px; }
  .case7-signals span { margin-top:auto; padding-top:26px; }
  .case7-close { display:block; }
  .case7-services { border-bottom:1px solid #090909; border-right:0; }
}

@media (max-width:900px) and (min-width:721px) {
  .case7-hero-copy { max-width:80vw; }
  .case-page-v7[data-case="barcelona-sports-hub"] .case7-hero h1,.case-page-v7[data-case="ajuntament-de-barcelona"] .case7-hero h1 { font-size:clamp(3.1rem,7.4vw,5.5rem); }
  .case7-media { height:760px; }
  .case7-work > header { display:block; }
  .case7-work header h2 { margin-top:40px; }
}

@media (max-width:720px) {
  .case-page-v7 { padding-left:0; padding-top:64px; }
  .case-page-v7 .case-site-menu nav b { font-size:clamp(2.25rem,10.5vw,3.8rem); }
  .case-page-v7 .case-site-menu nav a { grid-template-columns:28px minmax(0,1fr) 20px; }
  .case7-hero { height:calc(100svh - 64px); min-height:580px; }
  .case7-hero-shade { background:linear-gradient(0deg,rgba(0,0,0,.97) 0%,rgba(0,0,0,.74) 58%,rgba(0,0,0,.18) 100%); }
  .case7-hero-copy { bottom:26px; left:14px; max-width:calc(100vw - 28px); }
  .case7-meta { font-size:7px; margin-bottom:28px; }
  .case7-meta span:not(:last-child)::after { margin:0 8px; }
  .case7-hero h1,.case-page-v7[data-case="barcelona-sports-hub"] .case7-hero h1,.case-page-v7[data-case="ajuntament-de-barcelona"] .case7-hero h1 { font-size:clamp(2.55rem,13.2vw,4.2rem); line-height:.76; }
  .case7-headline { font-size:1.02rem; margin-top:20px; max-width:92%; }
  .case7-hero-copy > small { font-size:7px; line-height:1.45; }
  .case7-hero-copy > a { font-size:8px; margin-top:23px; max-width:220px; }
  .case7-count { display:none; }

  .case7-summary { display:block; padding:70px 14px 78px; }
  .case7-summary header > p,.case7-work header > p,.case7-result-copy > p:first-child,.case7-services > p,.case7-faq > p { margin-bottom:38px; }
  .case7-summary h2,.case7-work h2,.case7-result h2,.case7-close h2 { font-size:clamp(2.55rem,12.2vw,3.9rem); }
  .case7-summary-copy { margin-top:48px; }
  .case7-intro { font-size:1.16rem; line-height:1.5; }
  .case7-brief { display:block; margin-top:44px; }
  .case7-brief article { padding:18px 0 34px; }
  .case7-brief article + article { border-left:0; border-top:1px solid #090909; padding-left:0; }
  .case7-brief p { font-size:1rem; margin-top:28px; }

  .case7-quote { padding:56px 14px 62px; }
  .case7-quote p { font-size:clamp(2.3rem,10.9vw,3.35rem); margin-top:30px; text-align:left; }

  .case7-media { display:grid; gap:2px; grid-template-columns:1fr 1fr; grid-template-rows:440px 230px 220px; height:auto; min-height:0; padding:2px; }
  .case7-media-main { grid-column:1 / 3; grid-row:1; }
  .case7-media-a { grid-column:1 / 3; grid-row:2; }
  .case7-media-b { grid-column:1; grid-row:3; }
  .case7-media-c { grid-column:2; grid-row:3; }

  .case7-work { padding:70px 14px 78px; }
  .case7-work > header { display:block; }
  .case7-work h2 { margin-top:38px; }
  .case7-work-grid { display:block; margin-top:52px; }
  .case7-work-grid article,.case7-work-grid article:nth-child(3),.case7-work-grid article:last-child { border-bottom:1px solid #090909; border-left:0; border-right:0; padding:24px 0 32px; }
  .case7-work-grid h3 { font-size:1.55rem; margin:28px 0 16px; }
  .case7-work-grid p { font-size:1rem; }

  .case7-result { display:block; }
  .case7-result-copy,.case7-signal-panel { padding:68px 14px 76px; }
  .case7-result-copy > p:not(:first-child) { font-size:1.08rem; margin-top:34px; }
  .case7-source-links { margin-top:30px; }
  .case7-signal-panel > p { margin-bottom:38px; }
  .case7-signals article { display:flex; flex-direction:column; padding:23px 0; }
  .case7-signals strong { font-size:clamp(3.1rem,15vw,4.7rem); }
  .case7-signals span { margin-top:18px; }

  .case7-close { display:block; }
  .case7-services,.case7-faq { padding:68px 14px 76px; }
  .case7-services { border-bottom:1px solid #090909; border-right:0; }
  .case7-services ul { margin-top:42px; }
  .case7-faq summary { font-size:1rem; padding:20px 0; }
  .case7-faq details > p { font-size:.98rem; padding-right:18px; }
  .case7-faq > a { align-items:flex-start; flex-direction:column; }

  .case-page-v7 .case7-next { padding:66px 14px 26px; }
  .case-page-v7 .case7-next > a { font-size:clamp(2.4rem,11.6vw,3.9rem); }
  .case-page-v7 .case7-next > div { align-items:flex-start; flex-direction:column; gap:18px; }
}

@media (max-width:380px) {
  .case7-hero h1,.case-page-v7[data-case="barcelona-sports-hub"] .case7-hero h1,.case-page-v7[data-case="ajuntament-de-barcelona"] .case7-hero h1 { font-size:clamp(2.3rem,12.4vw,3.4rem); }
  .case7-headline { font-size:.96rem; }
  .case7-summary h2,.case7-work h2,.case7-result h2,.case7-close h2 { font-size:clamp(2.35rem,11.5vw,3.25rem); }
}

@media (max-height:620px) and (min-width:721px) {
  .case7-hero { height:100svh; min-height:590px; }
  .case7-hero-copy { bottom:24px; }
  .case7-meta { margin-bottom:22px; }
  .case7-hero h1 { font-size:clamp(3.1rem,min(7.4vw,13vh),6rem); }
  .case-page-v7[data-case="barcelona-sports-hub"] .case7-hero h1,.case-page-v7[data-case="ajuntament-de-barcelona"] .case7-hero h1 { font-size:clamp(2.85rem,min(6.3vw,11.5vh),5rem); }
  .case7-headline { font-size:clamp(1rem,1.3vw,1.18rem); margin-top:18px; }
  .case7-hero-copy > a { margin-top:20px; }
}

@media (prefers-reduced-motion:reduce) {
  .case7-media img,.case7-media video { transition:none; }
}

@media (prefers-reduced-motion:reduce) {
  .case6-media-grid img,.case6-media-grid video { transition:none; }
}

/* Project pages v8: concise case studies with the work in front. */
.case-page-v8 {
  background:#f3f3f0;
  color:#090909;
  overflow:clip;
  padding-left:96px;
}
.case-page-v8 * { box-sizing:border-box; min-width:0; }
.case-page-v8 h1,.case-page-v8 h2,.case-page-v8 h3,.case-page-v8 blockquote {
  hyphens:none;
  overflow-wrap:normal;
  word-break:normal;
}
.case8-content { background:#f3f3f0; }

.case8-hero {
  background:#090909;
  color:#fff;
  height:88svh;
  min-height:640px;
  overflow:hidden;
  position:relative;
}
.case8-hero-video { height:100%; inset:0; object-fit:cover; position:absolute; width:100%; }
.case8-hero-shade { background:linear-gradient(90deg,rgba(0,0,0,.95) 0%,rgba(0,0,0,.66) 42%,rgba(0,0,0,.1) 78%),linear-gradient(0deg,rgba(0,0,0,.75),transparent 48%); inset:0; position:absolute; }
.case8-hero-copy { bottom:clamp(42px,7vh,86px); left:clamp(18px,4.5vw,82px); max-width:min(1220px,84vw); position:absolute; z-index:2; }
.case8-hero-copy > p { display:flex; flex-wrap:wrap; font:700 9px/1.4 "Space Mono",monospace; margin:0 0 clamp(34px,6vh,64px); text-transform:uppercase; }
.case8-hero-copy > p span:not(:last-child)::after { color:var(--accent); content:"/"; margin:0 13px; }
.case8-hero h1 { font:400 clamp(4.1rem,9.2vw,10.8rem)/.72 "Archivo Black",sans-serif; letter-spacing:-.085em; margin:0; max-width:1220px; text-transform:uppercase; text-wrap:balance; }
.case-page-v8[data-case="barcelona-sports-hub"] .case8-hero h1,.case-page-v8[data-case="ajuntament-de-barcelona"] .case8-hero h1 { font-size:clamp(3.45rem,7.25vw,8.5rem); }
.case8-hero h2 { font-size:clamp(1.08rem,1.6vw,1.6rem); font-weight:500; line-height:1.35; margin:clamp(24px,3.5vh,38px) 0 0; max-width:690px; text-wrap:balance; }
.case8-hero-copy small { color:rgba(255,255,255,.64); display:block; font:400 8px/1.55 "Space Mono",monospace; margin-top:15px; max-width:570px; text-transform:uppercase; }
.case8-hero-copy small sup { color:var(--accent); font-size:12px; margin-right:3px; }
.case8-scroll { align-items:center; border-bottom:1px solid rgba(255,255,255,.7); bottom:clamp(42px,7vh,86px); display:flex; font:700 9px "Space Mono",monospace; justify-content:space-between; max-width:235px; padding-bottom:10px; position:absolute; right:clamp(18px,4.5vw,82px); text-transform:uppercase; width:18vw; z-index:2; }
.case8-scroll b { color:var(--accent); }

.case8-overview { display:grid; gap:clamp(56px,8vw,138px); grid-template-columns:minmax(340px,.78fr) minmax(0,1.22fr); margin:auto; max-width:1760px; padding:clamp(86px,9vw,148px) clamp(18px,4.5vw,82px); }
.case8-overview header > p,.case8-work header > p,.case8-result > div > p { color:var(--accent); font:700 9px/1.45 "Space Mono",monospace; margin:0 0 clamp(42px,6vh,68px); text-transform:uppercase; }
.case8-overview h2,.case8-work h2,.case8-result h2 { font:400 clamp(3.15rem,5.7vw,6.6rem)/.78 "Archivo Black",sans-serif; letter-spacing:-.075em; margin:0; text-transform:uppercase; text-wrap:balance; }
.case8-lead { font-size:clamp(1.28rem,1.75vw,1.76rem); line-height:1.48; margin:0; max-width:850px; }
.case8-brief { border-top:1px solid #090909; display:grid; grid-template-columns:1fr 1fr; margin-top:clamp(50px,6.5vw,86px); }
.case8-brief article { padding:20px clamp(20px,3vw,46px) 0 0; }
.case8-brief article + article { border-left:1px solid #090909; padding-left:clamp(20px,3vw,46px); }
.case8-brief span { color:var(--accent); font:700 9px "Space Mono",monospace; text-transform:uppercase; }
.case8-brief p { font-size:clamp(1rem,1.08vw,1.12rem); line-height:1.6; margin:clamp(32px,4vw,50px) 0 0; }
.case8-tags { display:flex; flex-wrap:wrap; gap:7px; list-style:none; margin:clamp(46px,5vw,64px) 0 0; padding:0; }
.case8-tags li { border:1px solid #090909; border-radius:99px; font:700 8px/1.2 "Space Mono",monospace; padding:10px 13px; text-transform:uppercase; }

.case8-signals { background:var(--accent); display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); padding:0 clamp(18px,4.5vw,82px); }
.case8-signals article { align-items:end; border-left:1px solid rgba(9,9,9,.55); display:grid; gap:20px; grid-template-columns:minmax(0,1fr) minmax(130px,.65fr); min-height:clamp(190px,17vw,270px); padding:clamp(30px,4vw,54px); }
.case8-signals article:last-child { border-right:1px solid rgba(9,9,9,.55); }
.case8-signals strong { font:400 clamp(3.05rem,4.8vw,6rem)/.76 "Archivo Black",sans-serif; letter-spacing:-.08em; white-space:nowrap; }
.case8-signals span { font:700 8px/1.5 "Space Mono",monospace; max-width:190px; text-transform:uppercase; }

.case8-media { background:#090909; display:grid; gap:3px; grid-template-columns:repeat(12,minmax(0,1fr)); grid-template-rows:1fr 1fr; height:min(76svh,820px); min-height:610px; padding:3px; }
.case8-media figure { background:#171717; margin:0; overflow:hidden; position:relative; }
.case8-media figure::after { background:linear-gradient(0deg,rgba(0,0,0,.7),transparent 34%); content:""; inset:0; pointer-events:none; position:absolute; }
.case8-media img,.case8-media video { display:block; height:100%; object-fit:cover; transition:transform .75s cubic-bezier(.16,1,.3,1); width:100%; }
.case8-media figure:hover img,.case8-media figure:hover video { transform:scale(1.025); }
.case8-media figcaption { bottom:13px; color:#fff; font:700 8px/1.35 "Space Mono",monospace; left:13px; position:absolute; right:13px; text-transform:uppercase; z-index:2; }
.case8-media-main { grid-column:1 / 8; grid-row:1 / 3; }
.case8-media-a { grid-column:8 / 13; grid-row:1; }
.case8-media-b { grid-column:8 / 11; grid-row:2; }
.case8-media-c { grid-column:11 / 13; grid-row:2; }

.case8-work { background:#f3f3f0; display:grid; gap:clamp(56px,8vw,130px); grid-template-columns:minmax(330px,.68fr) minmax(0,1.32fr); padding:clamp(86px,9vw,148px) clamp(18px,4.5vw,82px); }
.case8-work > header { align-self:start; position:sticky; top:36px; }
.case8-work > div { border-top:1px solid #090909; }
.case8-work article { align-items:start; border-bottom:1px solid #090909; display:grid; gap:clamp(22px,3vw,44px); grid-template-columns:48px minmax(180px,.72fr) minmax(0,1.28fr); padding:clamp(25px,3vw,38px) 0; }
.case8-work article > span { color:var(--accent); font:700 9px "Space Mono",monospace; }
.case8-work h3 { font-size:clamp(1.35rem,1.85vw,1.95rem); letter-spacing:-.045em; line-height:.98; margin:0; text-transform:uppercase; text-wrap:balance; }
.case8-work article p { font-size:clamp(.98rem,1.05vw,1.08rem); line-height:1.58; margin:0; max-width:540px; }

.case8-result { background:#090909; color:#fff; display:grid; grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr); }
.case8-result > div { display:flex; flex-direction:column; justify-content:space-between; min-height:620px; padding:clamp(72px,8vw,126px) clamp(18px,4.5vw,82px); }
.case8-result > div > p { margin:0; }
.case8-result blockquote { color:var(--accent); font:400 clamp(2.7rem,4.65vw,5.6rem)/.82 "Archivo Black",sans-serif; letter-spacing:-.07em; margin:clamp(60px,8vw,130px) 0 0; text-transform:uppercase; text-wrap:balance; }
.case8-result > article { background:var(--accent); color:#090909; display:flex; flex-direction:column; justify-content:center; padding:clamp(72px,8vw,126px) clamp(18px,4.5vw,82px); }
.case8-result h2 { font-size:clamp(2.8rem,4.55vw,5.35rem); }
.case8-result article > p { font-size:clamp(1.1rem,1.4vw,1.4rem); line-height:1.58; margin:clamp(38px,5vw,62px) 0 0; max-width:760px; }
.case8-result article > small { font:400 8px/1.55 "Space Mono",monospace; margin-top:30px; max-width:500px; text-transform:uppercase; }
.case8-result nav { display:grid; gap:10px; margin-top:32px; max-width:540px; }
.case8-result nav a { align-items:center; border-bottom:1px solid #090909; display:flex; font:700 8px/1.4 "Space Mono",monospace; justify-content:space-between; padding-bottom:8px; text-transform:uppercase; }
.case-page-v8 .case8-next { padding-left:clamp(18px,4.5vw,82px); padding-right:clamp(18px,4.5vw,82px); }
.case-page-v8 .case8-next > a span { hyphens:none; overflow-wrap:normal; text-wrap:balance; word-break:normal; }

@media (max-width:1240px) and (min-width:721px) {
  .case8-overview { display:block; }
  .case8-overview-copy { margin:60px 0 0 auto; max-width:820px; }
  .case8-signals article { display:flex; flex-direction:column; justify-content:flex-end; }
  .case8-signals span { margin-top:24px; }
  .case8-work { display:block; }
  .case8-work > header { position:static; }
  .case8-work > div { margin:64px 0 0 auto; max-width:860px; }
  .case8-result { display:block; }
  .case8-result > div { min-height:520px; }
}

@media (max-width:900px) and (min-width:721px) {
  .case8-hero-copy { max-width:80vw; }
  .case-page-v8[data-case="barcelona-sports-hub"] .case8-hero h1,.case-page-v8[data-case="ajuntament-de-barcelona"] .case8-hero h1 { font-size:clamp(3rem,7.2vw,5.35rem); }
  .case8-scroll { display:none; }
  .case8-media { height:700px; }
}

@media (max-width:720px) {
  .case-page-v8 { padding-left:0; padding-top:64px; }
  .case-page-v8 .case-site-menu nav b { font-size:clamp(2.25rem,10.5vw,3.8rem); }
  .case-page-v8 .case-site-menu nav a { grid-template-columns:28px minmax(0,1fr) 20px; }
  .case8-hero { height:calc(100svh - 64px); min-height:570px; }
  .case8-hero-shade { background:linear-gradient(0deg,rgba(0,0,0,.97) 0%,rgba(0,0,0,.73) 60%,rgba(0,0,0,.16) 100%); }
  .case8-hero-copy { bottom:28px; left:14px; max-width:calc(100vw - 28px); }
  .case8-hero-copy > p { font-size:7px; margin-bottom:28px; }
  .case8-hero-copy > p span:not(:last-child)::after { margin:0 7px; }
  .case8-hero h1,.case-page-v8[data-case="barcelona-sports-hub"] .case8-hero h1,.case-page-v8[data-case="ajuntament-de-barcelona"] .case8-hero h1 { font-size:clamp(2.5rem,12.8vw,4.1rem); line-height:.76; }
  .case8-hero h2 { font-size:1rem; margin-top:20px; max-width:93%; }
  .case8-hero-copy small { font-size:7px; max-width:92%; }
  .case8-scroll { display:none; }

  .case8-overview { display:block; padding:68px 14px 74px; }
  .case8-overview header > p,.case8-work header > p,.case8-result > div > p { margin-bottom:36px; }
  .case8-overview h2,.case8-work h2,.case8-result h2 { font-size:clamp(2.45rem,11.8vw,3.75rem); }
  .case8-overview-copy { margin-top:46px; }
  .case8-lead { font-size:1.14rem; line-height:1.5; }
  .case8-brief { display:block; margin-top:42px; }
  .case8-brief article { padding:18px 0 30px; }
  .case8-brief article + article { border-left:0; border-top:1px solid #090909; padding-left:0; }
  .case8-brief p { font-size:1rem; margin-top:25px; }
  .case8-tags { margin-top:36px; }

  .case8-signals { display:block; padding:0 14px; }
  .case8-signals article,.case8-signals article:last-child { align-items:end; border-bottom:1px solid rgba(9,9,9,.55); border-left:0; border-right:0; display:grid; grid-template-columns:minmax(0,1fr) 130px; min-height:150px; padding:28px 0; }
  .case8-signals strong { font-size:clamp(3.05rem,15vw,4.75rem); }

  .case8-media { display:grid; gap:2px; grid-template-columns:1fr 1fr; grid-template-rows:410px 220px 205px; height:auto; min-height:0; padding:2px; }
  .case8-media-main { grid-column:1 / 3; grid-row:1; }
  .case8-media-a { grid-column:1 / 3; grid-row:2; }
  .case8-media-b { grid-column:1; grid-row:3; }
  .case8-media-c { grid-column:2; grid-row:3; }

  .case8-work { display:block; padding:68px 14px 74px; }
  .case8-work > header { position:static; }
  .case8-work > div { margin-top:48px; }
  .case8-work article { display:block; padding:24px 0 28px; }
  .case8-work h3 { font-size:1.5rem; margin:24px 0 14px; }
  .case8-work article p { font-size:1rem; }

  .case8-result { display:block; }
  .case8-result > div,.case8-result > article { min-height:0; padding:66px 14px 72px; }
  .case8-result blockquote { font-size:clamp(2.3rem,11vw,3.4rem); margin-top:62px; }
  .case8-result article > p { font-size:1.07rem; margin-top:32px; }
  .case8-result nav { margin-top:28px; }

  .case-page-v8 .case8-next { padding:64px 14px 26px; }
  .case-page-v8 .case8-next > a { font-size:clamp(2.35rem,11.3vw,3.8rem); }
  .case-page-v8 .case8-next > div { align-items:flex-start; flex-direction:column; gap:18px; }
}

@media (max-width:380px) {
  .case8-hero h1,.case-page-v8[data-case="barcelona-sports-hub"] .case8-hero h1,.case-page-v8[data-case="ajuntament-de-barcelona"] .case8-hero h1 { font-size:clamp(2.2rem,11.9vw,3.25rem); }
  .case8-hero h2 { font-size:.94rem; }
  .case8-overview h2,.case8-work h2,.case8-result h2 { font-size:clamp(2.25rem,10.9vw,3.15rem); }
}

@media (max-height:620px) and (min-width:721px) {
  .case8-hero { height:100svh; min-height:590px; }
  .case8-hero-copy { bottom:26px; }
  .case8-hero-copy > p { margin-bottom:22px; }
  .case8-hero h1 { font-size:clamp(3rem,min(7.2vw,12.5vh),5.8rem); }
  .case-page-v8[data-case="barcelona-sports-hub"] .case8-hero h1,.case-page-v8[data-case="ajuntament-de-barcelona"] .case8-hero h1 { font-size:clamp(2.75rem,min(6.2vw,11vh),4.9rem); }
  .case8-hero h2 { font-size:clamp(.98rem,1.25vw,1.16rem); margin-top:18px; }
  .case8-scroll { bottom:28px; }
}

@media (prefers-reduced-motion:reduce) {
  .case8-media img,.case8-media video { transition:none; }
}

/* FAST Héroes case: an editorial campaign story built around learning, memory and action. */
.sr-only { clip:rect(0,0,0,0); clip-path:inset(50%); height:1px; overflow:hidden; position:absolute; white-space:nowrap; width:1px; }
.fast-case { --fast-blue:#173f72; --fast-blue-deep:#0d2748; --fast-sky:#77d2e9; --fast-green:#8bd66d; --fast-red:#ed1739; --fast-paper:#f4f3ec; background:var(--fast-paper); }
.fastcase-content { background:var(--fast-paper); overflow:clip; }
.fastcase-content h1,.fastcase-content h2,.fastcase-content h3,.fastcase-content blockquote { hyphens:none; overflow-wrap:normal; word-break:normal; }

.fastcase-hero { background:var(--fast-blue); color:#fff; height:100svh; min-height:720px; overflow:hidden; position:relative; }
.fastcase-hero::after { background:linear-gradient(90deg,rgba(9,22,40,.6),transparent 56%),linear-gradient(0deg,rgba(5,15,28,.48),transparent 38%); content:""; inset:0; pointer-events:none; position:absolute; z-index:1; }
.fastcase-hero-grid { background-image:linear-gradient(rgba(255,255,255,.105) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.105) 1px,transparent 1px); background-size:clamp(52px,5vw,86px) clamp(52px,5vw,86px); inset:0; opacity:.45; position:absolute; }
.fastcase-hero-type { color:rgba(255,255,255,.06); font:400 clamp(20rem,42vw,47rem)/.7 "Archivo Black",sans-serif; letter-spacing:-.12em; position:absolute; right:-.12em; top:.06em; }
.fastcase-hero-copy { bottom:clamp(46px,7vh,88px); left:clamp(18px,4.5vw,82px); max-width:min(700px,48vw); position:absolute; z-index:3; }
.fastcase-hero-copy > p,.fastcase-hero-note { font:700 9px/1.5 "Space Mono",monospace; letter-spacing:.02em; text-transform:uppercase; }
.fastcase-hero-copy > p { margin:0 0 clamp(35px,6vh,70px); }
.fastcase-hero-copy > p span { color:var(--fast-red); margin:0 10px; }
.fastcase-hero h1 { font:400 clamp(5rem,9.3vw,10.5rem)/.68 "Archivo Black",sans-serif; letter-spacing:-.09em; margin:0; text-transform:uppercase; }
.fastcase-hero h2 { font-size:clamp(1.15rem,1.55vw,1.52rem); font-weight:550; line-height:1.38; margin:clamp(24px,3.4vh,38px) 0 0; max-width:580px; text-wrap:balance; }
.fastcase-hero-copy > a { align-items:center; border-bottom:1px solid rgba(255,255,255,.8); display:flex; font:700 9px "Space Mono",monospace; justify-content:space-between; margin-top:clamp(28px,4vh,42px); max-width:235px; padding-bottom:10px; text-transform:uppercase; }
.fastcase-hero-copy > a span { color:var(--fast-red); }
.fastcase-hero-family { bottom:-2.5%; filter:drop-shadow(0 24px 34px rgba(5,13,24,.34)); height:auto; max-height:86%; object-fit:contain; object-position:right bottom; position:absolute; right:-4%; width:min(68vw,1120px); z-index:2; }
.fastcase-hero-note { margin:0; position:absolute; right:clamp(18px,3vw,50px); top:clamp(24px,4vh,46px); z-index:3; }

.fastcase-impact { background:var(--fast-red); display:grid; grid-template-columns:1.2fr 1fr .78fr; padding:0 clamp(18px,4.5vw,82px); }
.fastcase-impact article { align-content:end; border-left:1px solid rgba(9,9,9,.55); display:grid; min-height:clamp(240px,21vw,370px); padding:clamp(30px,4vw,60px); }
.fastcase-impact article:last-child { border-right:1px solid rgba(9,9,9,.55); }
.fastcase-impact strong { font:400 clamp(3.6rem,5.7vw,7.1rem)/.7 "Archivo Black",sans-serif; letter-spacing:-.095em; white-space:nowrap; }
.fastcase-impact p { font:700 9px/1.5 "Space Mono",monospace; margin:clamp(28px,3vw,46px) 0 0; max-width:260px; text-transform:uppercase; }

.fastcase-intro { display:grid; gap:clamp(46px,7vw,120px); grid-template-columns:minmax(300px,.72fr) minmax(0,1.28fr); margin:auto; max-width:1760px; overflow:hidden; padding:clamp(90px,10vw,165px) clamp(18px,4.5vw,82px) clamp(105px,12vw,190px); position:relative; }
.fastcase-intro header,.fastcase-intro-copy { position:relative; z-index:2; }
.fastcase-intro header > p,.fastcase-cesar-story > p:first-child,.fastcase-family-copy > p:first-child,.fastcase-work header > p,.fastcase-network-copy > p:first-child,.fastcase-result > p { color:var(--fast-red); font:700 9px/1.45 "Space Mono",monospace; margin:0 0 clamp(40px,5vw,66px); text-transform:uppercase; }
.fastcase-intro h2,.fastcase-cesar h2,.fastcase-family h2,.fastcase-work h2,.fastcase-network h2,.fastcase-result h2 { font:400 clamp(3.25rem,5.65vw,6.7rem)/.78 "Archivo Black",sans-serif; letter-spacing:-.075em; margin:0; text-transform:uppercase; text-wrap:balance; }
.fastcase-intro h2 { font-size:clamp(3.15rem,5.35vw,6.35rem); }
.fastcase-lead { font-size:clamp(1.32rem,1.8vw,1.8rem)!important; line-height:1.47!important; }
.fastcase-intro-copy > p { font-size:clamp(1.02rem,1.14vw,1.18rem); line-height:1.65; margin:0; max-width:790px; }
.fastcase-intro-copy > p + p { border-top:1px solid #090909; margin-top:clamp(40px,5vw,68px); padding-top:clamp(40px,5vw,68px); }
.fastcase-intro-copy ul { display:flex; flex-wrap:wrap; gap:7px; list-style:none; margin:clamp(42px,5vw,65px) 0 0; padding:0; }
.fastcase-intro-copy li { border:1px solid #090909; border-radius:99px; font:700 8px/1.25 "Space Mono",monospace; padding:10px 13px; text-transform:uppercase; }
.fastcase-intro-dog { bottom:-10%; filter:drop-shadow(0 18px 20px rgba(9,9,9,.12)); height:auto; max-width:min(29vw,470px); opacity:.96; position:absolute; right:-5%; transform:rotate(-7deg); width:auto; z-index:1; }

.fastcase-cesar { background:var(--fast-blue-deep); color:#fff; display:grid; grid-template-columns:minmax(390px,.82fr) minmax(0,1.18fr); }
.fastcase-cesar-story { display:flex; flex-direction:column; justify-content:center; padding:clamp(80px,8vw,135px) clamp(18px,4.5vw,82px); }
.fastcase-cesar-story > p:not(:first-child) { color:rgba(255,255,255,.82); font-size:clamp(1.02rem,1.15vw,1.2rem); line-height:1.65; margin:clamp(34px,4vw,54px) 0 0; max-width:690px; }
.fastcase-cesar-story > p + p:not(:first-child) { margin-top:20px; }
.fastcase-cesar blockquote { border-top:1px solid rgba(255,255,255,.34); color:var(--fast-sky); font:400 clamp(2.25rem,3.7vw,4.45rem)/.86 "Archivo Black",sans-serif; letter-spacing:-.065em; margin:clamp(52px,6vw,80px) 0 0; padding-top:clamp(34px,4vw,52px); text-transform:uppercase; }
.fastcase-youtube { margin:0; }
.fastcase-youtube > div { aspect-ratio:16/9; background:#050505; overflow:hidden; position:relative; }
.fastcase-youtube iframe { border:0; height:100%; inset:0; position:absolute; width:100%; }
.fastcase-youtube figcaption { align-items:center; display:flex; font:700 8px/1.35 "Space Mono",monospace; justify-content:space-between; min-height:46px; padding:0 14px; text-transform:uppercase; }
.fastcase-youtube-cesar { align-self:center; padding:clamp(30px,4vw,70px) clamp(18px,4.5vw,82px) clamp(30px,4vw,70px) 0; width:100%; }
.fastcase-youtube-cesar figcaption { border:1px solid rgba(255,255,255,.35); border-top:0; }

.fastcase-family { background:var(--fast-sky); display:grid; grid-template-columns:minmax(0,.86fr) minmax(420px,1.14fr); overflow:hidden; padding:clamp(90px,9vw,150px) clamp(18px,4.5vw,82px) 0; }
.fastcase-family-copy { align-self:center; padding-bottom:clamp(72px,8vw,120px); }
.fastcase-family-copy > p:not(:first-child) { font-size:clamp(1.06rem,1.22vw,1.25rem); line-height:1.62; margin:clamp(38px,4vw,56px) 0 0; max-width:670px; }
.fastcase-family-copy > p + p:not(:first-child) { margin-top:22px; }
.fastcase-family-visual { align-self:end; min-height:520px; position:relative; }
.fastcase-family-visual > span { color:rgba(255,255,255,.32); font:400 clamp(11rem,20vw,24rem)/.7 "Archivo Black",sans-serif; letter-spacing:-.1em; position:absolute; right:-.08em; top:.12em; }
.fastcase-family-visual img { bottom:-1%; filter:drop-shadow(0 22px 28px rgba(17,51,69,.22)); height:auto; position:absolute; right:-3%; width:min(62vw,1080px); }
.fastcase-memory { border-top:1px solid rgba(9,9,9,.65); display:grid; grid-column:1 / 3; grid-template-columns:repeat(4,minmax(0,1fr)); list-style:none; margin:0; padding:0; }
.fastcase-memory li { border-left:1px solid rgba(9,9,9,.65); display:grid; min-height:190px; padding:24px; }
.fastcase-memory li:last-child { border-right:1px solid rgba(9,9,9,.65); }
.fastcase-memory b { color:var(--fast-red); font:700 9px "Space Mono",monospace; }
.fastcase-memory strong { align-self:end; font:400 clamp(1.8rem,2.5vw,3rem)/.9 "Archivo Black",sans-serif; text-transform:uppercase; }
.fastcase-memory span { font-size:.94rem; margin-top:13px; }

.fastcase-work { background:#090909; color:#fff; display:grid; gap:clamp(58px,8vw,135px); grid-template-columns:minmax(350px,.78fr) minmax(0,1.22fr); padding:clamp(90px,9vw,150px) clamp(18px,4.5vw,82px); }
.fastcase-work > header { align-self:start; position:sticky; top:28px; }
.fastcase-work h2 { max-width:650px; }
.fastcase-work header > img { filter:drop-shadow(0 20px 24px rgba(0,0,0,.4)); height:auto; margin:clamp(46px,5vw,74px) auto -120px; max-height:510px; max-width:100%; object-fit:contain; width:auto; }
.fastcase-work > div { border-top:1px solid rgba(255,255,255,.48); }
.fastcase-work article { align-items:start; border-bottom:1px solid rgba(255,255,255,.48); display:grid; gap:clamp(18px,3vw,40px); grid-template-columns:42px minmax(170px,.78fr) minmax(0,1.22fr); padding:clamp(26px,3.2vw,42px) 0; }
.fastcase-work article > span { color:var(--fast-red); font:700 9px "Space Mono",monospace; }
.fastcase-work h3 { font-size:clamp(1.32rem,1.82vw,1.9rem); letter-spacing:-.04em; line-height:1; margin:0; text-transform:uppercase; text-wrap:balance; }
.fastcase-work article p { color:rgba(255,255,255,.74); font-size:clamp(.98rem,1.06vw,1.08rem); line-height:1.6; margin:0; max-width:550px; }

.fastcase-network { display:grid; grid-template-columns:minmax(0,1fr) minmax(420px,1fr); }
.fastcase-network-copy { padding:clamp(88px,9vw,150px) clamp(18px,4.5vw,82px); }
.fastcase-network-copy > p:not(:first-child) { font-size:clamp(1.04rem,1.22vw,1.24rem); line-height:1.62; margin:clamp(38px,4vw,58px) 0 0; max-width:720px; }
.fastcase-network-copy > p + p:not(:first-child) { margin-top:20px; }
.fastcase-network nav { display:grid; gap:12px; margin-top:clamp(46px,5vw,68px); max-width:620px; }
.fastcase-network nav a { align-items:center; border-bottom:1px solid #090909; display:flex; font:700 8px/1.4 "Space Mono",monospace; justify-content:space-between; padding:0 0 9px; text-transform:uppercase; }
.fastcase-network nav a span { color:var(--fast-red); }
.fastcase-youtube-campaign { align-self:center; background:var(--fast-red); padding:clamp(48px,6vw,92px) clamp(18px,4.5vw,82px); }
.fastcase-youtube-campaign > div { box-shadow:0 20px 0 #090909; }
.fastcase-youtube-campaign > div > strong { align-items:center; background:var(--fast-sky); border-radius:50%; bottom:18px; display:flex; font:400 clamp(1.35rem,2.3vw,2.4rem) "Archivo Black",sans-serif; height:clamp(70px,7vw,105px); justify-content:center; position:absolute; right:18px; width:clamp(70px,7vw,105px); z-index:2; }
.fastcase-youtube-campaign figcaption { border-bottom:1px solid #090909; margin-top:20px; padding:0; }

.fastcase-result { background:var(--fast-blue); color:#fff; display:grid; gap:clamp(50px,8vw,130px); grid-template-columns:minmax(0,1.25fr) minmax(320px,.75fr); padding:clamp(90px,9vw,150px) clamp(18px,4.5vw,82px); }
.fastcase-result > p { grid-column:1 / 3; margin-bottom:0; }
.fastcase-result h2 span { color:var(--fast-red); display:block; }
.fastcase-result > div { align-self:end; border-top:1px solid rgba(255,255,255,.42); padding-top:clamp(32px,4vw,50px); }
.fastcase-result > div p { font-size:clamp(1.05rem,1.26vw,1.28rem); line-height:1.6; margin:0; }
.fastcase-result > div p + p { color:var(--fast-sky); font-weight:750; margin-top:22px; }
.fast-case .fastcase-next { background:var(--fast-red); }
.fast-case .fastcase-next > a span { text-wrap:balance; }

@media (max-width:1180px) and (min-width:721px) {
  .fastcase-hero-copy { max-width:54vw; }
  .fastcase-hero-family { opacity:.92; right:-10%; width:74vw; }
  .fastcase-impact { padding:0 24px; }
  .fastcase-impact article { padding:34px 24px; }
  .fastcase-impact strong { font-size:clamp(2.65rem,5.2vw,4.8rem); }
  .fastcase-intro { display:block; }
  .fastcase-intro-copy { margin:58px 0 0 auto; max-width:780px; }
  .fastcase-intro-dog { max-width:32vw; opacity:.36; }
  .fastcase-cesar { display:block; }
  .fastcase-cesar-story { padding-bottom:58px; }
  .fastcase-youtube-cesar { margin-left:auto; max-width:980px; padding:0 42px 82px; }
  .fastcase-family { display:block; }
  .fastcase-family-visual { min-height:430px; }
  .fastcase-family-visual img { right:0; width:min(82vw,920px); }
  .fastcase-memory { grid-template-columns:1fr 1fr; }
  .fastcase-memory li:nth-child(odd) { border-left:0; }
  .fastcase-memory li:nth-child(n+3) { border-top:1px solid rgba(9,9,9,.65); }
  .fastcase-memory li:last-child { border-right:0; }
  .fastcase-work { display:block; }
  .fastcase-work > header { position:relative; }
  .fastcase-work header > img { bottom:-40px; margin:0; max-height:360px; opacity:.72; position:absolute; right:0; }
  .fastcase-work > div { margin:80px 0 0 auto; max-width:900px; position:relative; z-index:2; }
  .fastcase-network { display:block; }
  .fastcase-youtube-campaign { margin-left:auto; max-width:980px; }
  .fastcase-result { display:block; }
  .fastcase-result > p { margin-bottom:clamp(40px,5vw,66px); }
  .fastcase-result > div { margin-top:clamp(48px,6vw,76px); }
}

@media (max-width:720px) {
  .fastcase-hero { height:calc(100svh - 64px); min-height:590px; }
  .fastcase-hero::after { background:linear-gradient(0deg,rgba(6,17,31,.92) 0%,rgba(6,17,31,.5) 55%,rgba(6,17,31,.1) 100%); }
  .fastcase-hero-type { font-size:82vw; opacity:.65; right:-.05em; top:.28em; }
  .fastcase-hero-copy { bottom:24px; left:14px; max-width:calc(100vw - 28px); }
  .fastcase-hero-copy > p { font-size:7px; margin-bottom:25px; }
  .fastcase-hero-copy > p span { margin:0 5px; }
  .fastcase-hero h1 { font-size:clamp(3.75rem,20vw,6rem); }
  .fastcase-hero h2 { font-size:1rem; margin-top:18px; max-width:94%; }
  .fastcase-hero-copy > a { margin-top:24px; max-width:210px; }
  .fastcase-hero-family { bottom:17%; max-height:none; opacity:.82; right:-19%; width:112vw; }
  .fastcase-hero-note { display:none; }

  .fastcase-impact { display:block; padding:0 14px; }
  .fastcase-impact article,.fastcase-impact article:last-child { align-items:end; border-bottom:1px solid rgba(9,9,9,.55); border-left:0; border-right:0; display:grid; grid-template-columns:minmax(0,1fr) minmax(100px,33%); min-height:155px; padding:28px 0; }
  .fastcase-impact strong { font-size:clamp(2.85rem,13.6vw,4.45rem); }
  .fastcase-impact p { font-size:7px; margin:0; }

  .fastcase-intro { display:block; padding:70px 14px 84px; }
  .fastcase-intro header > p,.fastcase-cesar-story > p:first-child,.fastcase-family-copy > p:first-child,.fastcase-work header > p,.fastcase-network-copy > p:first-child,.fastcase-result > p { margin-bottom:36px; }
  .fastcase-intro h2,.fastcase-cesar h2,.fastcase-family h2,.fastcase-work h2,.fastcase-network h2,.fastcase-result h2 { font-size:clamp(2.55rem,12vw,3.9rem); }
  .fastcase-intro-copy { margin-top:44px; }
  .fastcase-lead { font-size:1.16rem!important; }
  .fastcase-intro-copy > p { font-size:1rem; line-height:1.58; }
  .fastcase-intro-copy > p + p { margin-top:36px; padding-top:36px; }
  .fastcase-intro-copy li { font-size:7px; }
  .fastcase-intro-dog { bottom:-3%; max-width:56vw; opacity:.2; right:-18%; }

  .fastcase-cesar { display:block; }
  .fastcase-cesar-story { padding:70px 14px 52px; }
  .fastcase-cesar-story > p:not(:first-child) { font-size:1rem; line-height:1.58; margin-top:32px; }
  .fastcase-cesar-story > p + p:not(:first-child) { margin-top:18px; }
  .fastcase-cesar blockquote { font-size:clamp(2.15rem,10.8vw,3.3rem); margin-top:46px; padding-top:30px; }
  .fastcase-youtube-cesar { padding:0 14px 70px; }

  .fastcase-family { display:block; padding:70px 14px 0; }
  .fastcase-family-copy { padding-bottom:48px; }
  .fastcase-family-copy > p:not(:first-child) { font-size:1rem; line-height:1.58; margin-top:34px; }
  .fastcase-family-copy > p + p:not(:first-child) { margin-top:18px; }
  .fastcase-family-visual { min-height:290px; }
  .fastcase-family-visual > span { font-size:48vw; }
  .fastcase-family-visual img { bottom:0; right:-13%; width:120vw; }
  .fastcase-memory { grid-template-columns:1fr 1fr; }
  .fastcase-memory li { min-height:155px; padding:18px 14px; }
  .fastcase-memory li:nth-child(odd) { border-left:0; }
  .fastcase-memory li:nth-child(n+3) { border-top:1px solid rgba(9,9,9,.65); }
  .fastcase-memory li:last-child { border-right:0; }
  .fastcase-memory strong { font-size:1.65rem; }
  .fastcase-memory span { font-size:.86rem; }

  .fastcase-work { display:block; padding:70px 14px 78px; }
  .fastcase-work > header { position:relative; }
  .fastcase-work header > img { margin:38px auto -65px; max-height:330px; opacity:.86; }
  .fastcase-work > div { margin-top:84px; position:relative; z-index:2; }
  .fastcase-work article { display:block; padding:25px 0 29px; }
  .fastcase-work h3 { font-size:1.46rem; margin:22px 0 14px; }
  .fastcase-work article p { font-size:1rem; }

  .fastcase-network { display:block; }
  .fastcase-network-copy { padding:70px 14px 76px; }
  .fastcase-network-copy > p:not(:first-child) { font-size:1rem; line-height:1.58; margin-top:34px; }
  .fastcase-network-copy > p + p:not(:first-child) { margin-top:18px; }
  .fastcase-youtube-campaign { padding:52px 14px 62px; }
  .fastcase-youtube-campaign > div { box-shadow:0 11px 0 #090909; }

  .fastcase-result { display:block; padding:70px 14px 78px; }
  .fastcase-result > p { margin-bottom:36px; }
  .fastcase-result > div { margin-top:48px; }
  .fastcase-result > div p { font-size:1rem; }
  .fast-case .fastcase-next { padding-left:14px; padding-right:14px; }
}

@media (max-width:380px) {
  .fastcase-hero h1 { font-size:18.5vw; }
  .fastcase-impact strong { font-size:13.7vw; }
  .fastcase-intro h2,.fastcase-cesar h2,.fastcase-family h2,.fastcase-work h2,.fastcase-network h2,.fastcase-result h2 { font-size:clamp(2.25rem,11.2vw,3.2rem); }
  .fastcase-memory strong { font-size:1.48rem; }
}

@media (max-height:640px) and (min-width:721px) {
  .fastcase-hero { min-height:590px; }
  .fastcase-hero-copy { bottom:28px; }
  .fastcase-hero-copy > p { margin-bottom:24px; }
  .fastcase-hero h1 { font-size:clamp(4.2rem,min(8vw,17vh),7rem); }
  .fastcase-hero h2 { font-size:1rem; margin-top:18px; }
  .fastcase-hero-copy > a { margin-top:20px; }
  .fastcase-hero-family { max-height:90%; width:62vw; }
}

@media (prefers-reduced-motion:reduce) {
  .fastcase-content * { scroll-behavior:auto; }
}

/* Barcelona Sports Hub: a living network, not an event archive. */
.bsh-case { --bsh-lime:#dfff19; --bsh-blue:#1857f5; --bsh-ink:#07111f; --bsh-paper:#f1f2ed; background:var(--bsh-paper); }
.bshcase-content { background:var(--bsh-paper); overflow:clip; }
.bshcase-content h1,.bshcase-content h2,.bshcase-content h3,.bshcase-content blockquote { hyphens:none; overflow-wrap:normal; word-break:normal; }
.bshcase-hero { background:var(--bsh-ink); color:#fff; height:calc(100svh - 92px); min-height:670px; overflow:hidden; position:relative; }
.bshcase-hero-video { height:100%; inset:0; object-fit:cover; object-position:center; position:absolute; width:100%; }
.bshcase-hero-shade { background:linear-gradient(90deg,rgba(2,8,18,.97) 0%,rgba(2,8,18,.8) 43%,rgba(2,8,18,.18) 78%),linear-gradient(0deg,rgba(2,8,18,.84),transparent 55%); inset:0; position:absolute; }
.bshcase-hero::after { background-image:linear-gradient(rgba(255,255,255,.09) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.09) 1px,transparent 1px); background-size:clamp(62px,7.4vw,124px) clamp(62px,7.4vw,124px); content:""; inset:0; mask-image:linear-gradient(90deg,#000,transparent 70%); opacity:.5; pointer-events:none; position:absolute; }
.bshcase-hero-copy { bottom:clamp(38px,6vh,74px); left:clamp(18px,4.5vw,82px); max-width:min(1080px,79vw); position:absolute; z-index:3; }
.bshcase-hero-copy > p,.bshcase-hero-note { font:700 8px/1.4 "Space Mono",monospace; letter-spacing:.02em; margin:0; text-transform:uppercase; }
.bshcase-hero-copy > p { margin-bottom:clamp(35px,6vh,68px); }
.bshcase-hero-copy > p span { color:var(--bsh-lime); margin:0 9px; }
.bshcase-hero h1 { font:400 clamp(4rem,8.2vw,9.6rem)/.7 "Archivo Black",sans-serif; letter-spacing:-.09em; margin:0; text-transform:uppercase; text-wrap:balance; }
.bshcase-hero h2 { color:var(--bsh-lime); font-size:clamp(1.1rem,1.7vw,1.7rem); font-weight:650; line-height:1.28; margin:clamp(24px,3.5vh,38px) 0 0; max-width:620px; text-wrap:balance; }
.bshcase-hero-copy > a { align-items:center; border-bottom:1px solid rgba(255,255,255,.75); display:flex; font:700 8px "Space Mono",monospace; justify-content:space-between; margin-top:clamp(28px,4vh,42px); max-width:245px; padding-bottom:10px; text-transform:uppercase; }
.bshcase-hero-copy > a span { color:var(--bsh-lime); }
.bshcase-hero-note { position:absolute; right:clamp(18px,3vw,48px); top:clamp(22px,4vh,44px); z-index:3; }
.bshcase-hero-note b { color:var(--bsh-lime); margin:0 7px; }
.bshcase-hero-orbit { border:1px solid rgba(223,255,25,.7); border-radius:50%; height:min(42vw,600px); position:absolute; right:-10%; top:12%; width:min(42vw,600px); z-index:2; }
.bshcase-hero-orbit::before,.bshcase-hero-orbit::after { border:1px solid rgba(223,255,25,.3); border-radius:50%; content:""; inset:12%; position:absolute; }
.bshcase-hero-orbit::after { inset:34%; }
.bshcase-hero-orbit i { background:var(--bsh-lime); border-radius:50%; height:10px; position:absolute; width:10px; }
.bshcase-hero-orbit i:nth-child(1) { left:15%; top:16%; }.bshcase-hero-orbit i:nth-child(2) { bottom:4%; left:49%; }.bshcase-hero-orbit i:nth-child(3) { right:0; top:48%; }

.bshcase-impact { background:var(--bsh-lime); display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); padding:0 clamp(18px,4.5vw,82px); }
.bshcase-impact article { align-content:end; border-left:1px solid rgba(7,17,31,.6); display:grid; min-height:clamp(230px,20vw,350px); padding:clamp(30px,4vw,58px); }
.bshcase-impact article:last-child { border-right:1px solid rgba(7,17,31,.6); }
.bshcase-impact strong { font:400 clamp(4rem,6.5vw,8rem)/.7 "Archivo Black",sans-serif; letter-spacing:-.09em; }
.bshcase-impact p { font:700 8px/1.5 "Space Mono",monospace; margin:clamp(28px,3vw,46px) 0 0; max-width:220px; text-transform:uppercase; }

.bshcase-intro { display:grid; gap:clamp(48px,8vw,138px); grid-template-columns:minmax(320px,.8fr) minmax(0,1.2fr); margin:auto; max-width:1760px; padding:clamp(90px,10vw,160px) clamp(18px,4.5vw,82px); }
.bshcase-intro header > p,.bshcase-activation-copy > p:first-child,.bshcase-network header > p:first-child,.bshcase-work header > p,.bshcase-moments-copy > p:first-child,.bshcase-result > p { color:var(--bsh-blue); font:700 8px/1.45 "Space Mono",monospace; margin:0 0 clamp(40px,5vw,66px); text-transform:uppercase; }
.bshcase-intro h2,.bshcase-activation h2,.bshcase-network h2,.bshcase-work h2,.bshcase-moments h2,.bshcase-result h2 { font:400 clamp(3.1rem,5.55vw,6.6rem)/.78 "Archivo Black",sans-serif; letter-spacing:-.075em; margin:0; text-transform:uppercase; text-wrap:balance; }
.bshcase-intro-copy > p { font-size:clamp(1.02rem,1.14vw,1.18rem); line-height:1.65; margin:0; max-width:830px; }
.bshcase-intro-copy > p + p { border-top:1px solid var(--bsh-ink); margin-top:clamp(36px,4.5vw,60px); padding-top:clamp(36px,4.5vw,60px); }
.bshcase-intro-copy .bshcase-lead { font-size:clamp(1.32rem,1.8vw,1.82rem); line-height:1.48; }
.bshcase-intro-copy ul { display:flex; flex-wrap:wrap; gap:7px; list-style:none; margin:clamp(40px,5vw,65px) 0 0; padding:0; }
.bshcase-intro-copy li { border:1px solid var(--bsh-ink); border-radius:99px; font:700 8px/1.2 "Space Mono",monospace; padding:10px 13px; text-transform:uppercase; }
.bshcase-intro-copy > small { border-top:1px solid rgba(7,17,31,.38); display:block; font:400 7px/1.55 "Space Mono",monospace; margin-top:28px; padding-top:14px; text-transform:uppercase; }
.bshcase-intro-copy > small sup { color:var(--bsh-blue); font-size:12px; margin-right:4px; }

.bshcase-visuals { background:var(--bsh-ink); display:grid; gap:1px; grid-template-columns:1.25fr .75fr; padding:1px; }
.bshcase-visuals figure { aspect-ratio:16/10; background:var(--bsh-ink); margin:0; overflow:hidden; position:relative; }
.bshcase-visuals-main { grid-row:span 2; }
.bshcase-visuals img { display:block; height:100%; object-fit:cover; transition:transform .9s cubic-bezier(.16,1,.3,1); width:100%; }
.bshcase-visuals figure:hover img { transform:scale(1.025); }
.bshcase-visuals figcaption { background:linear-gradient(0deg,rgba(7,17,31,.82),transparent); bottom:0; color:#fff; display:flex; font:700 7px/1.4 "Space Mono",monospace; justify-content:space-between; left:0; padding:45px 14px 13px; position:absolute; right:0; text-transform:uppercase; }
.bshcase-visuals figcaption span:last-child { color:var(--bsh-lime); }

.bshcase-activation { background:var(--bsh-ink); color:#fff; display:grid; grid-template-columns:minmax(350px,.88fr) minmax(390px,1.12fr); }
.bshcase-activation-copy { align-self:center; padding:clamp(82px,8vw,138px) clamp(18px,4.5vw,82px); }
.bshcase-activation-copy > p:not(:first-child) { color:rgba(255,255,255,.76); font-size:clamp(1.02rem,1.15vw,1.2rem); line-height:1.65; margin:clamp(38px,4vw,56px) 0 0; max-width:670px; }
.bshcase-activation blockquote { border-top:1px solid rgba(255,255,255,.34); color:var(--bsh-lime); font:400 clamp(2.05rem,3.45vw,4.15rem)/.87 "Archivo Black",sans-serif; letter-spacing:-.065em; margin:clamp(48px,5vw,72px) 0 0; padding-top:clamp(32px,4vw,48px); text-transform:uppercase; }
.bshcase-activation-copy > a { align-items:center; border-bottom:1px solid rgba(255,255,255,.7); display:flex; font:700 8px/1.4 "Space Mono",monospace; justify-content:space-between; margin-top:clamp(42px,5vw,62px); max-width:270px; padding-bottom:9px; text-transform:uppercase; }
.bshcase-activation-copy > a span { color:var(--bsh-lime); }
.bshcase-reel { align-self:center; margin:0; padding:clamp(48px,6vw,95px) clamp(18px,6vw,110px); }
.bshcase-reel > div { aspect-ratio:9/16; background:#000; box-shadow:22px 22px 0 var(--bsh-blue); margin:auto; max-height:72svh; overflow:hidden; position:relative; width:auto; }
.bshcase-reel video { height:100%; object-fit:cover; width:100%; }
.bshcase-reel > div > span { background:var(--bsh-lime); bottom:14px; color:var(--bsh-ink); font:700 7px "Space Mono",monospace; left:14px; padding:8px 10px; position:absolute; text-transform:uppercase; }
.bshcase-reel figcaption { display:flex; font:700 7px/1.4 "Space Mono",monospace; justify-content:space-between; margin:42px auto 0; max-width:450px; text-transform:uppercase; }

.bshcase-network { background:var(--bsh-blue); color:#fff; display:grid; gap:clamp(40px,7vw,118px); grid-template-columns:minmax(330px,.72fr) minmax(520px,1.28fr); padding:clamp(90px,9vw,150px) clamp(18px,4.5vw,82px); }
.bshcase-network header { align-self:center; }
.bshcase-network header > p:last-child { font-size:clamp(1.02rem,1.15vw,1.2rem); line-height:1.62; margin:clamp(38px,4vw,56px) 0 0; max-width:650px; }
.bshcase-network header > p:first-child { color:var(--bsh-lime); }
.bshcase-network-map { aspect-ratio:1.25/1; border:1px solid rgba(255,255,255,.4); overflow:hidden; position:relative; }
.bshcase-network-map::before { background-image:radial-gradient(rgba(255,255,255,.35) 1px,transparent 1px); background-size:22px 22px; content:""; inset:0; opacity:.45; position:absolute; }
.bsh-node { align-items:center; background:var(--bsh-ink); border:1px solid #fff; border-radius:50%; display:flex; font:700 clamp(7px,.62vw,10px)/1.2 "Space Mono",monospace; height:clamp(70px,7vw,118px); justify-content:center; padding:8px; position:absolute; text-align:center; text-transform:uppercase; width:clamp(70px,7vw,118px); z-index:2; }
.bsh-node-core { background:var(--bsh-lime); border-color:var(--bsh-lime); color:var(--bsh-ink); height:clamp(116px,11vw,184px); left:50%; top:50%; transform:translate(-50%,-50%); width:clamp(116px,11vw,184px); }
.bsh-node-startups { left:7%; top:11%; }.bsh-node-investment { right:7%; top:9%; }.bsh-node-business { bottom:9%; right:8%; }.bsh-node-city { bottom:7%; left:9%; }.bsh-node-talent { right:2%; top:46%; }
.bsh-line { background:rgba(255,255,255,.72); height:1px; left:50%; position:absolute; top:50%; transform-origin:left center; width:38%; z-index:1; }
.bsh-line-a { transform:rotate(-144deg); }.bsh-line-b { transform:rotate(-36deg); }.bsh-line-c { transform:rotate(37deg); }.bsh-line-d { transform:rotate(141deg); }.bsh-line-e { transform:rotate(0deg); }

.bshcase-work { background:var(--bsh-paper); display:grid; gap:clamp(58px,8vw,132px); grid-template-columns:minmax(350px,.78fr) minmax(0,1.22fr); padding:clamp(90px,9vw,150px) clamp(18px,4.5vw,82px); }
.bshcase-work > header { align-self:start; position:sticky; top:30px; }
.bshcase-work > div { border-top:1px solid var(--bsh-ink); }
.bshcase-work article { align-items:start; border-bottom:1px solid var(--bsh-ink); display:grid; gap:clamp(18px,3vw,40px); grid-template-columns:42px minmax(170px,.78fr) minmax(0,1.22fr); padding:clamp(26px,3.2vw,42px) 0; }
.bshcase-work article > span { color:var(--bsh-blue); font:700 8px "Space Mono",monospace; }
.bshcase-work h3 { font-size:clamp(1.3rem,1.82vw,1.9rem); letter-spacing:-.04em; line-height:1; margin:0; text-transform:uppercase; text-wrap:balance; }
.bshcase-work article p { color:rgba(7,17,31,.74); font-size:clamp(.98rem,1.06vw,1.08rem); line-height:1.6; margin:0; max-width:560px; }

.bshcase-moments { background:var(--bsh-lime); display:grid; grid-template-columns:minmax(0,.92fr) minmax(440px,1.08fr); }
.bshcase-moments-copy { padding:clamp(82px,8vw,136px) clamp(18px,4.5vw,82px); }
.bshcase-moments-copy > p:last-child { font-size:clamp(1.04rem,1.22vw,1.25rem); line-height:1.62; margin:clamp(38px,4vw,56px) 0 0; max-width:730px; }
.bshcase-moment-data { border-left:1px solid rgba(7,17,31,.55); display:grid; }
.bshcase-moment-data article { align-items:end; border-bottom:1px solid rgba(7,17,31,.55); display:grid; gap:35px; grid-template-columns:minmax(150px,.6fr) minmax(0,1.4fr); padding:clamp(34px,4vw,58px) clamp(18px,4.5vw,82px); }
.bshcase-moment-data article:last-child { border-bottom:0; }
.bshcase-moment-data strong { font:400 clamp(3.2rem,5.3vw,6.5rem)/.72 "Archivo Black",sans-serif; letter-spacing:-.08em; }
.bshcase-moment-data span { font:700 8px/1.5 "Space Mono",monospace; max-width:250px; text-transform:uppercase; }

.bshcase-result { background:var(--bsh-ink); color:#fff; display:grid; gap:clamp(50px,8vw,130px); grid-template-columns:minmax(0,1.2fr) minmax(350px,.8fr); padding:clamp(90px,9vw,150px) clamp(18px,4.5vw,82px); }
.bshcase-result > p { color:var(--bsh-lime); grid-column:1 / 3; margin-bottom:0; }
.bshcase-result h2 span { color:var(--bsh-lime); display:block; }
.bshcase-result > div { align-self:end; border-top:1px solid rgba(255,255,255,.4); padding-top:clamp(30px,4vw,48px); }
.bshcase-result > div > p { color:rgba(255,255,255,.82); font-size:clamp(1.05rem,1.24vw,1.26rem); line-height:1.62; margin:0; }
.bshcase-result nav { display:grid; gap:11px; margin-top:clamp(38px,5vw,58px); }
.bshcase-result nav a { align-items:center; border-bottom:1px solid rgba(255,255,255,.55); display:flex; font:700 7px/1.45 "Space Mono",monospace; justify-content:space-between; padding-bottom:9px; text-transform:uppercase; }
.bshcase-result nav a span { color:var(--bsh-lime); }
.bsh-case .bshcase-next { background:var(--bsh-blue); color:#fff; }
.bsh-case .bshcase-next > a span { text-wrap:balance; }

@media (max-width:1180px) and (min-width:721px) {
  .bshcase-hero h1 { font-size:clamp(3.8rem,8vw,6.4rem); }
  .bshcase-impact article { padding:36px 25px; }
  .bshcase-intro,.bshcase-work { display:block; }
  .bshcase-intro-copy { margin:58px 0 0 auto; max-width:820px; }
  .bshcase-activation { grid-template-columns:1fr 1fr; }
  .bshcase-network { display:block; }
  .bshcase-network-map { margin:70px auto 0; max-width:800px; }
  .bshcase-work > header { position:relative; }
  .bshcase-work > div { margin:72px 0 0 auto; max-width:900px; }
  .bshcase-moments { display:block; }
  .bshcase-moment-data { border-left:0; border-top:1px solid rgba(7,17,31,.55); grid-template-columns:repeat(3,1fr); }
  .bshcase-moment-data article { border-bottom:0; border-right:1px solid rgba(7,17,31,.55); display:block; }
  .bshcase-moment-data span { display:block; margin-top:28px; }
  .bshcase-result { display:block; }.bshcase-result > p { margin-bottom:42px; }.bshcase-result > div { margin-top:60px; }
}

@media (max-width:720px) {
  .bshcase-hero { height:calc(100svh - 64px); min-height:590px; }
  .bshcase-hero-shade { background:linear-gradient(0deg,rgba(2,8,18,.97) 0%,rgba(2,8,18,.7) 62%,rgba(2,8,18,.18) 100%); }
  .bshcase-hero-copy { bottom:25px; left:14px; max-width:calc(100vw - 28px); }
  .bshcase-hero-copy > p { font-size:7px; margin-bottom:26px; }.bshcase-hero-copy > p span { margin:0 5px; }
  .bshcase-hero h1 { font-size:clamp(3rem,14.7vw,4.7rem); line-height:.73; }
  .bshcase-hero h2 { font-size:1rem; margin-top:18px; }.bshcase-hero-copy > a { margin-top:23px; max-width:215px; }
  .bshcase-hero-note { display:none; }.bshcase-hero-orbit { height:88vw; right:-36%; top:14%; width:88vw; }

  .bshcase-impact { display:block; padding:0 14px; }
  .bshcase-impact article,.bshcase-impact article:last-child { align-items:end; border-bottom:1px solid rgba(7,17,31,.55); border-left:0; border-right:0; display:grid; grid-template-columns:minmax(0,1fr) minmax(105px,36%); min-height:145px; padding:26px 0; }
  .bshcase-impact strong { font-size:clamp(3.2rem,16vw,4.8rem); }.bshcase-impact p { font-size:7px; margin:0; }

  .bshcase-intro { display:block; padding:70px 14px 78px; }
  .bshcase-intro header > p,.bshcase-activation-copy > p:first-child,.bshcase-network header > p:first-child,.bshcase-work header > p,.bshcase-moments-copy > p:first-child,.bshcase-result > p { margin-bottom:36px; }
  .bshcase-intro h2,.bshcase-activation h2,.bshcase-network h2,.bshcase-work h2,.bshcase-moments h2,.bshcase-result h2 { font-size:clamp(2.5rem,11.8vw,3.8rem); }
  .bshcase-intro-copy { margin-top:44px; }.bshcase-intro-copy .bshcase-lead { font-size:1.16rem; }
  .bshcase-intro-copy > p { font-size:1rem; line-height:1.58; }.bshcase-intro-copy > p + p { margin-top:34px; padding-top:34px; }
  .bshcase-intro-copy li { font-size:7px; }.bshcase-intro-copy > small { font-size:6px; }

  .bshcase-visuals { display:block; padding:0; }
  .bshcase-visuals figure,.bshcase-visuals-main { aspect-ratio:4/3; border-bottom:1px solid var(--bsh-ink); }
  .bshcase-visuals figure:nth-child(3) { display:none; }
  .bshcase-visuals figcaption { font-size:6px; }

  .bshcase-activation { display:block; }.bshcase-activation-copy { padding:70px 14px 58px; }
  .bshcase-activation-copy > p:not(:first-child) { font-size:1rem; line-height:1.58; margin-top:34px; }
  .bshcase-activation blockquote { font-size:clamp(2.1rem,10.4vw,3.2rem); margin-top:44px; padding-top:30px; }
  .bshcase-reel { padding:0 14px 72px; }.bshcase-reel > div { box-shadow:12px 12px 0 var(--bsh-blue); max-height:68svh; }

  .bshcase-network { display:block; padding:70px 14px 76px; }.bshcase-network header > p:last-child { font-size:1rem; line-height:1.58; margin-top:34px; }
  .bshcase-network-map { aspect-ratio:auto; display:grid; gap:8px; grid-template-columns:1fr 1fr; margin-top:52px; overflow:visible; padding:8px; }
  .bshcase-network-map::before,.bsh-line { display:none; }
  .bsh-node,.bsh-node-core,.bsh-node-startups,.bsh-node-investment,.bsh-node-business,.bsh-node-city,.bsh-node-talent { border-radius:0; height:auto; inset:auto; min-height:92px; position:relative; transform:none; width:auto; }
  .bsh-node-core { grid-column:1 / 3; min-height:125px; }

  .bshcase-work { display:block; padding:70px 14px 78px; }.bshcase-work > header { position:relative; }.bshcase-work > div { margin-top:58px; }
  .bshcase-work article { display:block; padding:25px 0 29px; }.bshcase-work h3 { font-size:1.44rem; margin:22px 0 14px; }.bshcase-work article p { font-size:1rem; }

  .bshcase-moments { display:block; }.bshcase-moments-copy { padding:70px 14px 64px; }.bshcase-moments-copy > p:last-child { font-size:1rem; line-height:1.58; margin-top:34px; }
  .bshcase-moment-data { border-left:0; border-top:1px solid rgba(7,17,31,.55); display:block; }.bshcase-moment-data article { border-bottom:1px solid rgba(7,17,31,.55); display:grid; gap:20px; grid-template-columns:minmax(120px,.75fr) minmax(0,1.25fr); padding:28px 14px; }.bshcase-moment-data article:last-child { border-bottom:0; }
  .bshcase-moment-data strong { font-size:clamp(3.1rem,15vw,4.5rem); }.bshcase-moment-data span { font-size:7px; }

  .bshcase-result { display:block; padding:70px 14px 78px; }.bshcase-result > p { margin-bottom:36px; }.bshcase-result > div { margin-top:48px; }.bshcase-result > div > p { font-size:1rem; }
  .bsh-case .bshcase-next { padding-left:14px; padding-right:14px; }
}

@media (max-width:380px) {
  .bshcase-hero h1 { font-size:13.4vw; }
  .bshcase-intro h2,.bshcase-activation h2,.bshcase-network h2,.bshcase-work h2,.bshcase-moments h2,.bshcase-result h2 { font-size:clamp(2.2rem,11vw,3.1rem); }
}

@media (max-height:640px) and (min-width:721px) {
  .bshcase-hero { min-height:590px; }.bshcase-hero-copy { bottom:26px; }.bshcase-hero-copy > p { margin-bottom:23px; }
  .bshcase-hero h1 { font-size:clamp(3.7rem,min(7.3vw,14vh),6.6rem); }.bshcase-hero h2 { font-size:1rem; margin-top:17px; }.bshcase-hero-copy > a { margin-top:18px; }
}

@media (prefers-reduced-motion:reduce) {
  .bshcase-content * { scroll-behavior:auto; }
}

/* August 29: native-language copy must remain legible at every width. */
.service-name,
.service-detail-title,
.audit-cta strong,
.audit-cta small,
.stories-note strong,
.work-case-link,
.cinema-cta span,
.footer-form-link span {
  hyphens:none;
  overflow-wrap:normal;
  word-break:normal;
}

@media (max-width:720px) {
  /* The open state gets its own stage: the number grows instead of staying cropped. */
  .service-accordion article,
  .service-accordion article.active {
    transition:grid-template-rows .68s cubic-bezier(.16,1,.3,1),border-color .3s;
  }
  .service-accordion article.active { grid-template-rows:clamp(190px,54vw,224px) auto; }
  .service-accordion article.active > button {
    height:clamp(190px,54vw,224px);
    min-height:clamp(190px,54vw,224px);
  }
  .service-number { transition:bottom .68s cubic-bezier(.16,1,.3,1),font-size .68s cubic-bezier(.16,1,.3,1),top .68s cubic-bezier(.16,1,.3,1),transform .68s cubic-bezier(.16,1,.3,1),color .25s; }
  .service-accordion article.active .service-number {
    bottom:auto;
    font-size:clamp(8.4rem,42vw,11.5rem);
    left:8px;
    line-height:.86;
    top:50%;
    transform:translateY(-50%);
  }
  .service-accordion article.active .service-name {
    opacity:0;
    transform:translateY(-50%) translateX(20px);
  }
  .service-accordion article.active .service-toggle { top:24px; transform:none; }
  .service-detail,
  .service-accordion article.active .service-detail { padding-top:34px; }
  .service-detail .audit-cta {
    align-items:center;
    gap:12px;
    min-height:98px;
    overflow:visible;
  }
  .service-detail .audit-cta > span { min-width:0; }
  .service-detail .audit-cta strong,
  .service-detail .audit-cta small { white-space:normal; }

  /* Lines are calculated from the live dot positions after every language change. */
  .process-links { overflow:visible!important; }
  .process-link { min-width:1px; }

  .stories-note a,
  .work-case-link,
  .footer-form-link span { white-space:normal; }
  .footer-pitch h2 { font-size:clamp(2.7rem,min(14vw,10svh),4.8rem); }
}

@media (max-width:380px) {
  .service-accordion article.active { grid-template-rows:190px auto; }
  .service-accordion article.active > button { height:190px; min-height:190px; }
  .service-detail .audit-cta { padding-left:12px; padding-right:10px; }
  .service-detail .audit-cta strong { font-size:clamp(.95rem,4.9vw,1.14rem); }
  .service-detail .audit-cta small { font-size:clamp(.74rem,3.6vw,.9rem); }
  .footer-pitch h2 { font-size:clamp(2.5rem,min(13.5vw,9.5svh),4.3rem); }
}

/* Language links are real, crawlable destinations, with comfortable touch targets. */
.side-rail .rail-language .language-options { bottom:auto; right:auto; gap:2px; margin:0; }
.rail-language .language-options[hidden] { display:none; }
.side-rail .rail-language .language-options a { align-items:center; border-radius:9px; color:#bbb; display:flex; font:700 10px/1.3 "Space Mono",monospace; justify-content:center; min-height:40px; padding:8px 4px; width:100%; }
.side-rail .rail-language .language-options a.active { background:var(--accent); color:#090909; }
.side-rail .rail-language .language-options a:hover { color:#fff; background:#343434; }
.rail-language a:focus-visible { outline:2px solid #fff; outline-offset:1px; }

/* Localised copy may run longer: let content determine height, never crop it. */
main[data-language] :is(.audit-cta,.work-case-link,.case-next a,figcaption) { min-width:0; }
.audit-cta > span { min-width:0; }
.audit-cta strong,.audit-cta small { line-height:1.18; white-space:normal; }
.audit-cta > b { flex-shrink:0; }
.case-page :is(section,header,article,figure,section > div) { min-width:0; }
.case-page :is(figcaption,section nav a) { flex-wrap:wrap; gap:8px 14px; height:auto; }
.case-page :is(figcaption,section nav a) > span:last-child { flex-shrink:0; }
.case-page:not([lang="es"]) :is(h2,h3,blockquote) { line-height:1.04; letter-spacing:-.055em; }
.case-page:not([lang="es"]) h2 { text-wrap:balance; }
.case-page:not([lang="es"]) :is(.fastcase-intro h2,.fastcase-cesar h2,.fastcase-family h2,.fastcase-work h2,.fastcase-network h2,.bshcase-intro h2,.bshcase-feature h2,.bshcase-network h2,.bshcase-work h2,.storycase-intro h2,.storycase-feature h2,.storycase-work h2,.ajuntament-map h2,.ajuntament-digital h2) { font-size:clamp(2.1rem,4.3vw,5.2rem); }
.case-page:not([lang="es"]) :is(.fastcase-result h2,.bshcase-result h2,.storycase-result h2,.humanhood-manifesto h2) { font-size:clamp(2.35rem,5.5vw,6.5rem); }
.case-page:not([lang="es"]) :is(.fastcase-work h3,.bshcase-work h3,.storycase-work h3) { font-size:clamp(1.3rem,1.8vw,2rem); }
.case-page .case-next > div a { white-space:normal; overflow-wrap:anywhere; line-height:1.25; }
main:not([lang="es"]) .stories-intro { container-type:inline-size; height:auto; min-height:calc(100svh - 80px); }
main:not([lang="es"]) .stories-intro h2 { font-size:min(8.2cqw,8.2rem); line-height:1; max-width:100%; }
main:not([lang="es"]) .stories-intro h2 > span { padding-block:.1em; }
main:not([lang="es"]) .stories-intro h2 > span:nth-child(2) { padding-left:8%; }
main:not([lang="es"]) .stories-intro h2 > span:nth-child(3) { padding-left:16%; }
main:not([lang="es"]) .stories-intro h2 > span { white-space:normal; text-wrap:balance; }
main:not([lang="es"]) .stories-intro h2 em { white-space:nowrap; }

@media (max-width:1100px) and (min-width:721px) {
  .case-page:not([lang="es"]) :is(.fastcase-intro,.fastcase-work,.bshcase-intro,.bshcase-network,.bshcase-work,.storycase-intro,.ajuntament-map,.ajuntament-digital) { grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:32px; }
  .case-page:not([lang="es"]) :is(.fastcase-cesar,.fastcase-family,.fastcase-network,.bshcase-feature,.storycase-feature) { grid-template-columns:minmax(0,1fr) minmax(0,1fr); }
  .case-page:not([lang="es"]) :is(.fastcase-impact article,.bshcase-impact article,.storycase-impact article) { padding-left:16px; padding-right:16px; }
}
@media (max-width:720px) {
  .case-page:not([lang="es"]) :is(h2,.fastcase-intro h2,.fastcase-cesar h2,.fastcase-family h2,.fastcase-work h2,.fastcase-network h2,.fastcase-result h2,.bshcase-intro h2,.bshcase-feature h2,.bshcase-network h2,.bshcase-work h2,.bshcase-result h2,.storycase-intro h2,.storycase-feature h2,.storycase-work h2,.storycase-result h2,.humanhood-manifesto h2,.ajuntament-map h2,.ajuntament-digital h2) { font-size:clamp(1.9rem,8.5vw,3.4rem); }
  .case-page:not([lang="es"]) :is(.fastcase-hero h2,.bshcase-hero h2,.storycase-hero h2) { font-family:inherit; font-size:clamp(1rem,4.3vw,1.2rem); line-height:1.4; letter-spacing:-.02em; }
  .case-page :is(figcaption,section nav a) { font-size:10px; line-height:1.5; padding-top:12px; padding-bottom:12px; }
  .case-page:not([lang="es"]) .storycase-work h3 { font-size:1.5rem; }
  .service-detail .audit-cta small { font-size:clamp(.88rem,3.8vw,1.08rem); }
  .service-detail .audit-cta { height:auto; }

  /* On a narrow screen, a flowing constellation keeps every star readable.
     Desktop retains its full scroll-driven zoom-out. */
  .process-scroll { height:auto; padding:25px 0 40px; }
  .process-sticky { height:auto; min-height:0; position:relative; top:auto; overflow:visible; padding:16px 14px; }
  .process-canvas { display:flex; flex-direction:column; gap:38px; height:auto; left:auto; top:auto; margin:0; position:relative; transform:none; width:100%; }
  .process-node,.process-node:nth-of-type(even),.process-node:nth-of-type(odd) { position:relative; left:auto; top:auto; width:calc(100% - 68px); margin-left:24px; padding:12px 10px 12px 20px; transform:none; opacity:1; }
  .process-node:nth-of-type(even) { margin-left:54px; }
  .process-node h3 { font-size:clamp(1rem,4.3vw,1.3rem); line-height:1.15; }
  .process-node p { font-size:clamp(.875rem,3.6vw,1rem); line-height:1.5; }
  .process-link { opacity:1; }
  .process-full-picture { position:relative; inset:auto; opacity:1; transform:none; margin-top:36px; padding:20px; display:grid; gap:18px; }
  .process-full-picture > span,.process-full-picture > strong,.process-full-picture > small { position:static; max-width:none; width:auto; margin:0; padding:0; }
  .process-full-picture > strong { font-size:clamp(1.25rem,5.5vw,1.7rem); line-height:1.15; }
  .process-full-picture > small { font-size:.8rem; line-height:1.4; }
  .process-meter { display:none; }
}
@media (prefers-reduced-motion:reduce) {
  .process-node { opacity:1; --shift:0px; }
  .process-link { opacity:1; }
}

/* Fit the translated editorial layouts to their containers, including tablets. */
.storycase-feature { grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr); }
.storycase-reel > div { max-width:100%; }
.ajuntament-digital > div { min-width:0; }
.ajuntament-map article { container-type:inline-size; }
.ajuntament-map article:last-child strong { font-size:min(23cqw,6.5rem); line-height:1; }
.ajuntament-digital span { flex-wrap:wrap; gap:10px; }
.storycase-result h2,.storycase-work h2 { overflow-wrap:normal; word-break:normal; hyphens:none; }
@media (max-width:1100px) and (min-width:721px) {
  .process-canvas { width:calc(100% - 60px); }
  .process-node,.process-node:nth-of-type(even),.process-node:nth-of-type(odd) { width:28%; padding-inline:14px; }
  .process-node h3 { font-size:1rem; line-height:1.15; }
  .process-node p { font-size:.875rem; line-height:1.4; }
  .process-node.node-3,.process-node.node-4 { --node-x:68%; }
  .ajuntament-digital { grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:28px; }
  .ajuntament-digital span strong { font-size:clamp(1.6rem,3.6vw,2.5rem); }
}
@media (max-width:720px) {
  .case-page .storycase-feature { display:block; }
  .case-page .storycase-hero h1 { font-size:clamp(2rem,13.5vw,5rem); line-height:.9; }
  .case-page .storycase-result h2,.case-page .storycase-work h2 { font-size:clamp(1.9rem,9.5vw,3.4rem); line-height:1; }
  .case-page .ajuntament-digital span strong { font-size:clamp(1.65rem,9vw,2.6rem); }
  main:not([lang="es"]) .stories-intro { min-height:calc(100svh - 114px); }
  @media (prefers-reduced-motion:reduce) { .process-link { --link-show:1!important; } }
  .process-node,.process-node:nth-of-type(even),.process-node:nth-of-type(odd) { background:transparent; box-shadow:none; }
  .process-node .process-dot,.process-node.node-2 .process-dot,.process-node.node-4 .process-dot,.process-node.node-5 .process-dot,.process-node.node-6 .process-dot { left:-8px; right:auto; }
  .process-full-picture > span { width:max-content; max-width:100%; padding:6px 8px; font-size:10px; }
  .process-full-picture > strong { text-align:left; padding:12px; }
  .process-full-picture > small { display:block; }
}
@media (max-width:380px) {
  main[lang="es"] .stories-intro h2 { font-size:8.1vw; }
}
/* Case refinements: viewport openings and legible editorial rhythm. */
.case-page:is(.fast-case,.bsh-case) { --case-nav-height:92px; }
.case-page .case-opening { min-height:calc(100svh - var(--case-nav-height)); display:grid; grid-template-rows:minmax(0,1fr) auto; }
.case-page .case-opening > header { height:auto; min-height:440px; }
.case-page .case-opening :is(.fastcase-hero-copy,.bshcase-hero-copy) { bottom:34px; }
.case-page .case-opening :is(.fastcase-hero-copy,.bshcase-hero-copy) > p { font-size:12px; margin-bottom:24px; }
.case-page .case-opening :is(.fastcase-hero-copy,.bshcase-hero-copy) > a { font-size:14px; margin-top:22px; }
.case-page .case-opening h1 { font-size:clamp(3.5rem,min(8vw,13svh),8rem); line-height:.94; letter-spacing:-.065em; }
.case-page .case-opening h2 { font-size:clamp(1rem,1.5vw,1.4rem); line-height:1.4; letter-spacing:-.015em; margin-top:20px; }
.case-page .fastcase-hero-copy { max-width:43%; }
.case-page .fastcase-hero-family { width:min(79vw,1400px); max-height:105%; bottom:-5%; right:-9%; }
.case-page .fastcase-hero-note { font-size:12px; max-width:46%; text-align:right; }
.case-page .bshcase-hero-note { font-size:12px; }
.case-page .case-opening > section { padding:24px clamp(20px,4.5vw,82px); grid-template-columns:1.2fr 1fr .85fr; gap:0; }
.case-page .case-opening > section article { min-height:0; padding:2px 28px; display:flex; flex-direction:column; justify-content:center; border:0; }
.case-page .case-opening > section article:first-of-type { padding-left:0; }
.case-page .case-opening > section article + article { border-left:1px solid currentColor; }
.case-page .case-opening > section strong { font-size:clamp(2rem,4.3vw,4.6rem); letter-spacing:-.065em; line-height:1; }
.case-page .case-opening > section p { font:500 1rem/1.4 Arial,sans-serif; text-transform:none; max-width:320px; margin:12px 0 0; }
.case-page .fastcase-impact { background:#ef3049; color:#101c2e; }
.case-page:is(.fast-case,.bsh-case) :is(h2,blockquote) { line-height:1.04; letter-spacing:-.045em; }
.case-page:is(.fast-case,.bsh-case) :is(.fastcase-intro,.fastcase-work,.bshcase-intro,.bshcase-work) { gap:clamp(32px,5vw,80px); grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr); }
.case-page:is(.fast-case,.bsh-case) :is(.fastcase-intro,.fastcase-family,.fastcase-work,.fastcase-network,.bshcase-intro,.bshcase-work,.bshcase-activation) h2 { font-size:clamp(2.2rem,4.2vw,5rem); }
.case-page:is(.fast-case,.bsh-case) :is(.fastcase-work,.bshcase-work) article { grid-template-columns:28px minmax(0,1fr); gap:14px 20px; }
.case-page:is(.fast-case,.bsh-case) :is(.fastcase-work,.bshcase-work) article p { grid-column:2; }
.case-page:is(.fast-case,.bsh-case) :is(.fastcase-work,.bshcase-work) h3 { line-height:1.15; }
.case-page:is(.fast-case,.bsh-case) :is(section header > p:first-child,.fastcase-family-copy > p:first-child,.fastcase-cesar-story > p:first-child,.fastcase-network-copy > p:first-child,.bshcase-activation-copy > p:first-child,.fastcase-result > p,.bshcase-result > p) { font-size:12px; line-height:1.5; margin-bottom:28px; }
.case-page:is(.fast-case,.bsh-case) :is(nav a,figcaption,.fastcase-intro-copy li,.bshcase-intro-copy li,.bshcase-intro-copy > small) { font-size:14px; line-height:1.45; }
.case-page .fastcase-cesar { padding:clamp(52px,6vw,100px) clamp(20px,4.5vw,82px); grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr); gap:48px; align-items:start; }
.case-page .fastcase-cesar-story { padding:0; min-height:0; }
.case-page .fastcase-cesar h2 { font-size:clamp(2.6rem,4.6vw,5.5rem); max-width:600px; }
.case-page .fastcase-cesar-story > p:not(:first-child) { font-size:1.0625rem; line-height:1.65; margin-top:24px; }
.case-page .fastcase-cesar-story blockquote { font-size:clamp(1.5rem,2.4vw,2.8rem); line-height:1.15; letter-spacing:-.035em; margin:32px 0 0; padding-top:24px; }
.case-page .fastcase-youtube-cesar { padding:0; align-self:center; }
.case-page .fastcase-youtube-cesar > div { aspect-ratio:16/9; transform:none; box-shadow:none; }
.case-page .fastcase-youtube-cesar figcaption { gap:16px; padding:14px; }
.case-page .fastcase-family { display:block; padding-bottom:64px; }
.case-page .fastcase-family-copy { max-width:950px; padding:0 0 48px; }
.case-page .fastcase-family-copy h2 { max-width:720px; }
.case-page .fastcase-family-copy > p { max-width:850px; }
.case-page .fastcase-memory { border:0; gap:16px; }
.case-page .fastcase-memory li { border:1px solid #173f7255; background:#eaf9fb; padding:20px; min-height:0; }
.case-page .fastcase-memory img { width:100%; height:210px; object-fit:contain; margin:18px 0; }
.case-page .fastcase-memory strong { font-size:1.7rem; line-height:1.1; }
.case-page .fastcase-memory b { font:600 12px/1.4 'Space Mono',monospace; color:var(--fast-blue); }
.case-page .fastcase-memory span { font-size:1rem; line-height:1.4; }
.fastcase-resources { margin-top:48px; padding-top:40px; border-top:1px solid #173f7255; display:grid; grid-template-columns:1fr 1fr; gap:40px; }
.fastcase-resources figure { margin:0; background:white; padding:24px; }
.fastcase-resources img { width:100%; height:320px; object-fit:contain; }
.fastcase-resources h3 { font-size:2rem; line-height:1.15; letter-spacing:-.035em; margin:0 0 18px; }
.fastcase-resources p { font-size:1.0625rem; line-height:1.6; }
.fastcase-resources nav { display:grid; gap:0; }
.fastcase-resources nav a { padding:15px 0; border-bottom:1px solid #173f7255; }
.case-page .fastcase-work header > img { margin-bottom:0; max-height:380px; }
.bshcase-editorial { background:var(--bsh-blue); color:white; padding:clamp(64px,7vw,110px) clamp(20px,4.5vw,82px); }
.bshcase-editorial header { display:grid; grid-template-columns:1.1fr 1fr; gap:24px 60px; align-items:end; }
.bshcase-editorial header > p:first-child { grid-column:1/-1; color:var(--bsh-lime); }
.case-page .bshcase-editorial h2 { font:400 clamp(2.5rem,4.8vw,5.8rem)/1.04 'Archivo Black',sans-serif; margin:0; text-transform:uppercase; }
.bshcase-editorial header > p:last-child { font-size:1.125rem; line-height:1.65; margin:0; }
.bshcase-editorial-stages { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:1px; background:#ffffff55; margin-top:60px; border-top:1px solid #ffffff55; }
.bshcase-editorial-stages article { background:var(--bsh-blue); padding:32px 28px 0 0; }
.bshcase-editorial-stages article + article { padding-left:28px; }
.bshcase-editorial-stages span { color:var(--bsh-lime); font:600 12px/1.4 'Space Mono',monospace; }
.bshcase-editorial-stages h3 { font-size:1.8rem; line-height:1.15; margin:32px 0 20px; letter-spacing:-.035em; }
.bshcase-editorial-stages p { font-size:1.0625rem; line-height:1.6; }
.bshcase-editorial-stages small { font-size:14px; line-height:1.5; display:block; margin-top:24px; color:var(--bsh-lime); }
.hh-case { --hh-paper:#ebe7dd; --hh-ink:#17191b; background:var(--hh-paper); color:var(--hh-ink); }
.hh-case * { box-sizing:border-box; }
.hh-case h2 { font:400 clamp(2.5rem,5.2vw,6rem)/1.05 'Archivo Black',sans-serif; letter-spacing:-.05em; text-wrap:balance; margin:0; }
.hh-case h3 { font-size:1.55rem; letter-spacing:-.03em; line-height:1.15; }
.hh-case p { font-size:1.125rem; line-height:1.65; }
.hh-case .hh-eyebrow { font:600 12px/1.5 'Space Mono',monospace; letter-spacing:.05em; margin:0 0 32px; }
.hh-hero { color:white; background:#17191b; position:relative; min-height:600px; height:calc(100svh - 92px); display:flex; flex-direction:column; justify-content:space-between; padding:32px clamp(20px,4.5vw,82px); isolation:isolate; }
.hh-hero > video,.hh-hero-shade { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; z-index:-2; }
.hh-hero-shade { z-index:-1; background:linear-gradient(180deg,#0008,transparent 40%,#000c),linear-gradient(90deg,#0006,transparent); }
.hh-hero-title { margin-top:auto; padding:90px 0 50px; }
.hh-hero h1 { font:400 clamp(3rem,10.5vw,13rem)/1 'Archivo Black',sans-serif; letter-spacing:-.065em; margin:0 0 22px; }
.hh-hero h2 { font:500 clamp(1.5rem,2.6vw,3rem)/1.2 Arial,sans-serif; letter-spacing:-.035em; text-wrap:initial; }
.hh-hero-bottom { display:flex; gap:32px; align-items:end; justify-content:space-between; border-top:1px solid #fff7; padding-top:22px; }
.hh-hero-bottom p { max-width:430px; margin:0; font-size:1rem; }
.hh-hero a { font-size:14px; border-bottom:1px solid white; padding-bottom:8px; }
.hh-intro,.hh-work,.hh-perspective,.hh-close,.hh-film { padding:clamp(64px,8vw,120px) clamp(20px,4.5vw,82px); }
.hh-intro { display:grid; grid-template-columns:1fr 1.1fr; gap:80px; }
.hh-intro p { margin:0 0 24px; }
.hh-intro .hh-lead { font-size:clamp(1.25rem,1.7vw,1.65rem); }
.hh-text-link { font-size:14px; display:inline-block; margin-top:16px; border-bottom:1px solid; padding-bottom:8px; }
.hh-stage { display:grid; grid-template-columns:1.25fr .75fr; background:#16191b; color:var(--hh-paper); }
.hh-stage figure { margin:0; display:flex; flex-direction:column; min-width:0; }
.hh-stage img { width:100%; height:100%; min-height:560px; object-fit:cover; }
.hh-stage figcaption { display:flex; flex-wrap:wrap; justify-content:space-between; gap:10px; font-size:12px; padding:18px 24px; }
.hh-stage > div { padding:64px 40px; align-self:center; }
.hh-stage h2 { font-size:clamp(2.4rem,4vw,4.5rem); }
.hh-stage .hh-caption { font-size:14px; color:#b6b8ba; margin-top:40px; }
.hh-work { display:grid; grid-template-columns:1fr 1.1fr; gap:32px 80px; }
.hh-work header p:last-child { margin-top:30px; max-width:550px; }
.hh-work article { display:grid; grid-template-columns:24px 1fr; gap:12px 20px; padding:28px 0; border-top:1px solid #17191b55; }
.hh-work article span { font:600 12px 'Space Mono',monospace; }
.hh-work article h3,.hh-work article p { margin:0; }
.hh-work article p { grid-column:2; font-size:1.0625rem; }
.hh-work > small { grid-column:1/-1; font-size:14px; line-height:1.5; border-top:1px solid #17191b55; padding-top:20px; }
.hh-film { background:#222a2e; color:#ebe7dd; display:grid; grid-template-columns:1fr .8fr; align-items:center; gap:30px 10vw; }
.hh-film video { width:100%; max-height:680px; background:black; object-fit:contain; }
.hh-film > p { grid-column:2; font-size:12px; margin:0; }
.hh-perspective > div { display:grid; grid-template-columns:1fr 1fr; gap:80px; margin-top:50px; }
.hh-perspective article { border-top:1px solid #17191b55; padding-top:24px; }
.hh-perspective a { font-size:14px; border-bottom:1px solid; padding-bottom:8px; }
.hh-close { background:#c5cfca; }
.hh-close h2 { max-width:1100px; }
.hh-close > p:last-child { max-width:620px; margin:32px 0 0 auto; }
.case-page .hh-next { background:#17191b; color:#ebe7dd; }
@media (max-width:1000px) {
 .case-page .fastcase-cesar { grid-template-columns:1fr; gap:36px; }
 .case-page .fastcase-cesar-story { max-width:760px; }
 .case-page .fastcase-youtube-cesar { max-width:900px; }
 .hh-intro,.hh-work { gap:40px; }
 .hh-stage { grid-template-columns:1fr; }
 .hh-stage img { min-height:0; max-height:700px; aspect-ratio:3/2; }
 .hh-stage > div { padding:48px 24px; }
}
@media (max-width:720px) {
 .case-page:is(.fast-case,.bsh-case) { --case-nav-height:64px; }
 .case-page .case-opening > header { min-height:350px; }
 .case-page .case-opening :is(.fastcase-hero-copy,.bshcase-hero-copy) { left:20px; right:20px; bottom:22px; max-width:none; }
 .case-page .case-opening :is(.fastcase-hero-copy,.bshcase-hero-copy) > p { font-size:12px; margin-bottom:18px; }
 .case-page .case-opening h1 { font-size:clamp(2.25rem,10.4vw,4.5rem); line-height:.98; }
 .case-page .case-opening .fastcase-hero-copy h1 { font-size:clamp(2.6rem,12vw,5.2rem); }
 .case-page .case-opening h2 { font-size:1rem; line-height:1.4; margin-top:14px; }
 .case-page .case-opening .fastcase-hero-copy h2 { max-width:65%; }
 .case-page .fastcase-hero-family { width:85%; max-height:80%; right:-22%; bottom:12%; }
 .case-page .fastcase-hero-copy > a { max-width:200px; }
 .case-page .fastcase-hero-note,.case-page .bshcase-hero-note { display:none; }
 .case-page .case-opening > section { display:grid; grid-template-columns:1fr; padding:12px 20px; }
 .case-page .case-opening > section article { display:grid; grid-template-columns:124px minmax(0,1fr); align-items:center; gap:16px; padding:10px 0; }
 .case-page .case-opening > section article + article { border:0; border-top:1px solid #101c2e44; }
 .case-page .case-opening > section strong { font-size:1.7rem; }
 .case-page .case-opening > section p { font-size:14px; line-height:1.35; margin:0; max-width:none; }
 .case-page:is(.fast-case,.bsh-case) :is(.fastcase-intro,.fastcase-work,.bshcase-intro,.bshcase-work) { display:block; }
 .case-page .fastcase-memory { grid-template-columns:1fr 1fr; gap:12px; }
 .case-page .fastcase-memory li { padding:14px; border:1px solid #173f7255; }
 .case-page .fastcase-memory img { height:170px; }
 .case-page .fastcase-memory strong { font-size:1.4rem; }
 .case-page .fastcase-memory span { font-size:14px; }
 .fastcase-resources { grid-template-columns:1fr; }
 .fastcase-resources img { height:260px; }
 .case-page .fastcase-youtube-cesar figcaption { font-size:12px; }
 .case-page .fastcase-youtube-cesar figcaption span:last-child { display:none; }
 .bshcase-editorial header,.bshcase-editorial-stages { display:block; }
 .bshcase-editorial header > p:last-child { margin-top:26px; }
 .bshcase-editorial-stages article,.bshcase-editorial-stages article + article { padding:28px 0; border-bottom:1px solid #ffffff55; }
 .bshcase-editorial-stages h3 { margin-top:18px; }
 .hh-hero { min-height:540px; height:calc(100svh - 64px); padding:26px 20px; }
 .hh-hero-title { padding-bottom:32px; }
 .hh-hero h1 { font-size:10.5vw; }
 .hh-hero h2 { font-size:1.6rem; }
 .hh-hero-bottom { align-items:start; flex-direction:column; gap:20px; }
 .hh-intro,.hh-work,.hh-film { display:block; }
 .hh-intro > div,.hh-work > div,.hh-film video { margin-top:36px; }
 .hh-work > small { display:block; margin-top:24px; }
 .hh-film > p { margin-top:16px; }
 .hh-perspective > div { grid-template-columns:1fr; gap:32px; }
 .hh-case h2 { font-size:clamp(2rem,8.7vw,3.5rem); }
 .hh-case p { font-size:1.0625rem; }
}
@media (max-width:380px) {
 .case-page .case-opening > header { min-height:310px; }
 .case-page .case-opening > section article { grid-template-columns:112px minmax(0,1fr); gap:10px; padding:8px 0; }
 .case-page .case-opening > section strong { font-size:1.5rem; }
 .case-page .case-opening > section p { font-size:14px; }
 .case-page .case-opening .fastcase-hero-copy h2 { max-width:74%; }
 .case-page .fastcase-hero-family { bottom:25%; }
}
@media (prefers-reduced-motion:reduce) { .hh-case *, .case-opening * { animation:none!important; transition:none!important; } }
.fastcase-resources .fast-resource-book { height:190px; margin-top:28px; }
@media (max-width:720px) {
 .case-page .case-opening .fastcase-hero-copy { top:24px; bottom:24px; display:flex; flex-direction:column; }
 .case-page .case-opening .fastcase-hero-copy h1 { font-size:clamp(2.6rem,13vw,5rem); }
 .case-page .case-opening .fastcase-hero-copy h2 { margin-top:auto; max-width:57%; }
 .case-page .case-opening .fastcase-hero-copy > a { width:100%; flex-shrink:0; }
 .case-page .fastcase-hero-family { width:145%; right:-43%; bottom:9%; max-height:90%; }
}
@media (max-width:380px) {
 .case-page .case-opening > header { min-height:280px; }
 .case-page .case-opening > section article { padding:6px 0; }
 .case-page .case-opening .fastcase-hero-copy { top:18px; bottom:18px; }
 .case-page .case-opening .fastcase-hero-copy h2 { max-width:100%; margin-top:auto; }
 .case-page .fastcase-hero-family { width:125%; right:-40%; bottom:28%; max-height:65%; }
 .case-page .case-opening .fastcase-hero-copy > p { margin-bottom:10px; }
 .case-page .case-opening .fastcase-hero-copy > a { margin-top:14px; }
}
.case-video-poster { position:absolute; inset:0; width:100%; height:100%; border:0; padding:0; background:#0d2748; cursor:pointer; color:white; }
.case-video-poster > img { width:100%; height:100%; object-fit:cover; object-position:center 40%; }
.case-video-poster > span { position:absolute; inset:0; display:flex; align-items:center; justify-content:center; gap:14px; background:linear-gradient(transparent 40%,#000b); padding:24px; font-size:16px; font-weight:700; }