/* SFC final implementation layer: content and visual brief alignment */
.sfc-section{position:relative;padding:clamp(4.5rem,8vw,8.5rem) 0;overflow:hidden}.sfc-section.ivory{background:var(--sfc-ivory);color:var(--text-on-light-primary)}
.sfc-final-home-hero{position:relative;min-height:92vh;display:flex;align-items:center;overflow:hidden;background:var(--sfc-blue-deep);padding:8rem 0 5rem}.home-hero-grid{position:relative;z-index:3}.home-hero-copy{max-width:700px}.home-hero-copy h1,.about-hero-final h1,.portfolio-hero-final h1{font-family:var(--font-serif);font-weight:400;line-height:.98;letter-spacing:-.035em;color:var(--sfc-ivory);font-size:clamp(3.2rem,7.2vw,7rem);margin:1rem 0 2rem}.home-hero-copy h1 em{font-style:normal;color:var(--sfc-mint)}.home-hero-copy p{max-width:610px;color:var(--text-on-dark-secondary);font-size:clamp(1.05rem,1.7vw,1.3rem);line-height:1.65;margin-bottom:2rem}.home-hero-globe{position:absolute;width:min(72vw,850px);height:min(72vw,850px);right:-12%;top:50%;transform:translateY(-50%);opacity:.78;z-index:1}.home-hero-glow{position:absolute;inset:0;background:radial-gradient(circle at 72% 45%,rgba(0,174,239,.14),transparent 38%);z-index:0}
.final-intro{max-width:850px;margin-bottom:3.5rem}.final-intro.dark{color:var(--sfc-ivory)}.final-intro h2{font-family:var(--font-serif);font-size:clamp(2.7rem,5vw,5rem);line-height:1;letter-spacing:-.03em;margin:.5rem 0 1.25rem}.final-intro p{max-width:700px;font-size:1.08rem;line-height:1.7}.final-intro.dark p{color:var(--text-on-dark-secondary)}
.evolution-final{border-top:1px solid var(--sfc-ivory-border);border-bottom:1px solid var(--sfc-ivory-border)}.evolution-line{height:2px;background:linear-gradient(90deg,var(--sfc-cognac),rgba(180,90,34,.25));margin:4rem 0 0}.evolution-stages{display:grid;grid-template-columns:repeat(4,1fr);gap:2rem}.evolution-stage{position:relative;padding-top:2rem}.evolution-stage:before{content:'';position:absolute;top:-6px;left:0;width:12px;height:12px;border-radius:50%;background:var(--sfc-cognac);box-shadow:0 0 0 5px var(--sfc-ivory)}.evolution-stage>span{font-size:.72rem;letter-spacing:.14em;color:var(--sfc-cognac);font-weight:700}.evolution-stage h3{font-family:var(--font-serif);font-size:2rem;color:var(--sfc-blue-deep);margin:.45rem 0}.evolution-stage p{color:var(--text-on-light-secondary);line-height:1.6}
.portfolio-home{background:var(--sfc-blue-deep)}.home-portfolio-grid{display:grid;grid-template-columns:1.05fr .95fr;gap:1px;background:var(--sfc-blue-border)}.home-portfolio-item{display:grid;grid-template-columns:1.1fr .9fr;background:var(--sfc-blue-deep);min-height:360px;color:inherit}.home-portfolio-item.reverse{grid-column:1/-1;grid-template-columns:.9fr 1.1fr}.home-portfolio-item.reverse .home-portfolio-image{order:2}.home-portfolio-image{min-height:360px;overflow:hidden}.home-portfolio-image img{width:100%;height:100%;object-fit:cover;transition:transform .8s var(--ease-editorial)}.home-portfolio-item:hover .home-portfolio-image img{transform:scale(1.035)}.home-portfolio-copy{padding:clamp(1.5rem,3vw,3rem);display:flex;flex-direction:column;justify-content:center}.home-portfolio-copy>span{font-size:.72rem;letter-spacing:.16em;color:var(--sfc-cyan);font-weight:700}.home-portfolio-copy h3{font-size:clamp(2rem,3.5vw,3.5rem);color:var(--sfc-ivory);margin:.5rem 0 1rem}.home-portfolio-copy p{color:var(--text-on-dark-secondary);line-height:1.6}.home-portfolio-copy strong{font-size:.7rem;letter-spacing:.08em;line-height:1.6;color:var(--sfc-mint);margin-top:1.25rem}.home-portfolio-copy b{font-size:.72rem;letter-spacing:.12em;text-transform:uppercase;color:var(--sfc-ivory);margin-top:1.5rem}
.works-final{background:#0b1a26;border-top:1px solid var(--sfc-blue-border)}.capability-editorial{display:grid;grid-template-columns:repeat(4,1fr);gap:0;border-top:1px solid var(--sfc-blue-border);border-bottom:1px solid var(--sfc-blue-border)}.capability-editorial article{padding:2.2rem 1.6rem;border-right:1px solid var(--sfc-blue-border)}.capability-editorial article:last-child{border-right:0}.capability-editorial span{color:var(--sfc-cyan);font-size:.72rem;letter-spacing:.14em}.capability-editorial h3{color:var(--sfc-ivory);font-size:1.45rem;margin:.7rem 0}.capability-editorial p{color:var(--text-on-dark-secondary);line-height:1.6;font-size:.95rem}
.experience-final{background:var(--sfc-blue-deep);border-top:1px solid var(--sfc-steel-hairline)}.experience-grid{display:grid;grid-template-columns:1fr 1.15fr;gap:5rem;align-items:center}.experience-number>span{display:block;font-family:var(--font-serif);font-size:clamp(7rem,17vw,13rem);line-height:.75;color:var(--sfc-ivory);letter-spacing:-.06em}.experience-number small{display:block;color:var(--sfc-mint);font-size:.78rem;letter-spacing:.2em;font-weight:700;margin-top:1.8rem}.experience-copy p{font-size:1.1rem;line-height:1.7;color:var(--text-on-dark-secondary);max-width:650px}.experience-names{margin-top:1.8rem;color:var(--sfc-ivory);font-size:.82rem;letter-spacing:.1em;line-height:1.8}.experience-names i{color:var(--sfc-cyan);font-style:normal;padding:0 .5rem}
.closing-final{background:var(--sfc-blue-deep);text-align:center;min-height:560px;display:flex;align-items:center;justify-content:center;border-top:1px solid var(--sfc-steel-hairline)}.closing-final>img{position:absolute;width:680px;height:680px;right:-180px;bottom:-260px;opacity:.08}.closing-final .container{position:relative;z-index:2}.closing-final h2{font-family:var(--font-serif);font-size:clamp(2.4rem,5vw,5rem);line-height:1.03;color:var(--sfc-ivory);max-width:980px;margin:1rem auto 1.5rem}.closing-final p{color:var(--text-on-dark-secondary);margin-bottom:1.8rem}
.about-hero-final{position:relative;min-height:72vh;display:flex;align-items:end;overflow:hidden;background:var(--sfc-blue-deep);padding:8rem 0 7rem}.about-hero-final>img{position:absolute;width:700px;height:700px;right:-180px;top:40%;transform:translateY(-50%);opacity:.1}.about-hero-final .container{position:relative;z-index:2}.about-hero-final h1{max-width:1000px}.about-founded{border-bottom:1px solid var(--sfc-ivory-border)}.about-year-grid{display:grid;grid-template-columns:1.2fr .8fr;gap:4rem;align-items:center}.year-monument{font-family:var(--font-serif);font-size:clamp(8rem,19vw,16rem);line-height:.7;letter-spacing:-.07em;color:var(--sfc-blue-deep)}.about-copy p{font-size:1.08rem;line-height:1.75;color:var(--text-on-light-secondary);margin-bottom:1.25rem}.about-experience-final{background:var(--sfc-blue-deep)}.about-experience-grid{display:grid;grid-template-columns:.85fr 1.15fr;gap:5rem;align-items:center}.about-number{font-family:var(--font-serif);font-size:clamp(8rem,18vw,14rem);line-height:.75;color:var(--sfc-ivory);letter-spacing:-.06em}.about-number span{color:var(--sfc-cyan)}.about-number small{display:block;font-family:var(--font-sans);font-size:.8rem;line-height:1.5;letter-spacing:.2em;color:var(--sfc-mint);margin-top:2rem}.about-experience-copy p{color:var(--text-on-dark-secondary);font-size:1.05rem;line-height:1.7;margin-bottom:1.2rem}.about-experience-copy .label{display:block;color:var(--sfc-cyan);font-size:.72rem;letter-spacing:.16em;margin-top:2rem}.about-experience-copy .experience-names{color:var(--sfc-ivory)}.about-evolution-final{border-bottom:1px solid var(--sfc-ivory-border)}.about-two-col{display:grid;grid-template-columns:1fr 1px 1.2fr;gap:3rem;align-items:start}.about-two-col h2,.principles-grid h2{font-family:var(--font-serif);font-size:clamp(3rem,6vw,6rem);line-height:.9;color:var(--sfc-blue-deep)}.accent-rule{width:1px;height:100%;background:var(--sfc-cyan)}.about-principles{background:var(--sfc-blue-deep)}.principles-grid{display:grid;grid-template-columns:1fr 1fr;gap:6rem;align-items:start}.principles-grid h2{color:var(--sfc-ivory);margin:.5rem 0 1.5rem}.principles-grid p{color:var(--text-on-dark-secondary);font-size:1.05rem;line-height:1.7}.principles-list{border-top:1px solid var(--sfc-blue-border)}.principle{display:grid;grid-template-columns:70px 1fr;align-items:center;padding:1.7rem 0;border-bottom:1px solid var(--sfc-blue-border)}.principle span{color:var(--sfc-cyan);font-size:.72rem;letter-spacing:.12em}.principle strong{color:var(--sfc-ivory);font-size:1.2rem;letter-spacing:.1em}
.what-hero-final{position:relative;min-height:82vh;display:flex;align-items:end;padding:8rem 0 6rem;overflow:hidden}.what-hero-image,.what-hero-overlay{position:absolute;inset:0}.what-hero-image img{width:100%;height:100%;object-fit:cover}.what-hero-overlay{background:linear-gradient(90deg,rgba(14,31,45,.96) 0%,rgba(14,31,45,.72) 45%,rgba(14,31,45,.18) 100%)}.what-hero-final .container{position:relative;z-index:2;max-width:1260px}.what-hero-final h1{font-family:var(--font-serif);font-size:clamp(3.3rem,7vw,7rem);line-height:.94;color:var(--sfc-ivory);max-width:800px;margin:1rem 0 1.5rem}.what-hero-final p{color:var(--text-on-dark-secondary);max-width:620px;font-size:1.08rem;line-height:1.65;margin:.6rem 0}.what-chapter{display:grid;grid-template-columns:1.05fr .95fr;min-height:650px}.what-chapter.reverse{grid-template-columns:.95fr 1.05fr}.what-chapter.light{background:var(--sfc-ivory);color:var(--text-on-light-primary)}.what-chapter.dark{background:var(--sfc-blue-deep);color:var(--sfc-ivory)}.chapter-image{min-height:500px;overflow:hidden}.chapter-image img{width:100%;height:100%;object-fit:cover}.chapter-copy{display:flex;flex-direction:column;justify-content:center;padding:clamp(3rem,7vw,7rem);max-width:720px}.chapter-copy>span{color:var(--sfc-cyan);font-size:.72rem;letter-spacing:.16em;font-weight:700}.chapter-copy h2{font-family:var(--font-serif);font-size:clamp(3.5rem,7vw,7rem);line-height:.9;margin:.7rem 0 1.2rem}.what-chapter.light .chapter-copy h2{color:var(--sfc-blue-deep)}.what-chapter.dark .chapter-copy h2{color:var(--sfc-ivory)}.chapter-copy p{font-size:1.1rem;line-height:1.7;max-width:560px}.what-chapter.light .chapter-copy p{color:var(--text-on-light-secondary)}.what-chapter.dark .chapter-copy p{color:var(--text-on-dark-secondary)}.chapter-copy small{margin-top:2rem;font-size:.72rem;letter-spacing:.13em;text-transform:uppercase;color:var(--sfc-cognac)}.what-close-final{position:relative;min-height:560px;display:flex;align-items:center;overflow:hidden}.what-close-final>img,.what-close-overlay{position:absolute;inset:0}.what-close-final img{width:100%;height:100%;object-fit:cover}.what-close-overlay{background:linear-gradient(90deg,rgba(14,31,45,.94),rgba(14,31,45,.4))}.what-close-final .container{position:relative;z-index:2}.what-close-final h2{font-family:var(--font-serif);font-size:clamp(3rem,6vw,6rem);line-height:.95;color:var(--sfc-ivory);max-width:800px}
.portfolio-hero-final{padding:11rem 0 6rem;background:var(--sfc-blue-deep)}.portfolio-hero-final p{max-width:720px;color:var(--text-on-dark-secondary);font-size:1.15rem;line-height:1.6}.portfolio-chapter{display:grid;grid-template-columns:1.05fr .95fr;min-height:720px}.portfolio-chapter.reverse{grid-template-columns:.95fr 1.05fr}.chapter-photo{min-height:600px;overflow:hidden}.chapter-photo img{width:100%;height:100%;object-fit:cover}.chapter-details{display:flex;flex-direction:column;justify-content:center;padding:clamp(3rem,6vw,6rem)}.portfolio-chapter.ivory .chapter-details{color:var(--sfc-blue-deep)}.portfolio-chapter.dark .chapter-details{color:var(--sfc-ivory)}.chapter-number{font-size:.72rem;letter-spacing:.16em;color:var(--sfc-cyan);margin-bottom:.8rem}.chapter-details h2{font-family:var(--font-serif);font-size:clamp(3rem,5.5vw,6rem);line-height:.9;margin:.7rem 0 2.2rem}.portfolio-chapter.ivory .chapter-details h2{color:var(--sfc-blue-deep)}.portfolio-chapter.dark .chapter-details h2{color:var(--sfc-ivory)}.detail-columns{display:grid;grid-template-columns:repeat(3,1fr);gap:1.5rem}.detail-columns small{display:block;font-size:.7rem;letter-spacing:.14em;font-weight:700;margin-bottom:.65rem;color:var(--sfc-cyan)}.detail-columns p{font-size:.9rem;line-height:1.65}.portfolio-chapter.ivory .detail-columns p{color:var(--text-on-light-secondary)}.portfolio-chapter.dark .detail-columns p{color:var(--text-on-dark-secondary)}.editorial-link{display:inline-flex;align-items:center;gap:.75rem;margin-top:2rem;font-size:.75rem;letter-spacing:.14em;text-transform:uppercase;font-weight:700;width:max-content;border-bottom:1px solid currentColor;padding-bottom:.4rem}.portfolio-experience-final{background:var(--sfc-blue-deep)}.portfolio-experience-grid{display:grid;grid-template-columns:1fr 1fr;gap:5rem;align-items:start}.portfolio-experience-grid h2{font-family:var(--font-serif);font-size:clamp(3rem,5vw,5.5rem);line-height:.9;color:var(--sfc-ivory);margin-top:.5rem}.portfolio-experience-grid>p{color:var(--text-on-dark-secondary);font-size:1.08rem;line-height:1.75}
.tutto-hero-final{position:relative;min-height:76vh;display:flex;align-items:end;overflow:hidden;padding:8rem 0 6rem}.tutto-hero-final>img,.tutto-overlay{position:absolute;inset:0}.tutto-hero-final>img{width:100%;height:100%;object-fit:cover}.tutto-overlay{background:linear-gradient(90deg,rgba(14,31,45,.9),rgba(14,31,45,.2))}.tutto-hero-final .container{position:relative;z-index:2}.tutto-hero-final h1{font-family:var(--font-serif);font-size:clamp(3.5rem,7vw,7rem);line-height:.9;color:var(--sfc-ivory);margin:.7rem 0 1rem}.tutto-hero-final p{color:var(--sfc-mint);font-size:1.2rem}.tutto-story{border-bottom:1px solid var(--sfc-ivory-border)}.tutto-intro{max-width:850px}.tutto-intro h2,.tutto-approach-grid h2{font-family:var(--font-serif);font-size:clamp(2.8rem,5vw,5rem);line-height:.98;color:var(--sfc-blue-deep);margin:.5rem 0 1.4rem}.tutto-intro p{font-size:1.1rem;line-height:1.7;color:var(--text-on-light-secondary);max-width:760px}.tutto-image-grid{display:grid;grid-template-columns:1.1fr .9fr;gap:1.5rem;margin-top:4rem}.tutto-image-grid img{width:100%;height:560px;object-fit:cover}.tutto-approach{background:var(--sfc-blue-deep)}.tutto-approach-grid{display:grid;grid-template-columns:1fr 1fr;gap:6rem}.tutto-approach-grid h2{color:var(--sfc-ivory)}.tutto-approach-grid>div>p{color:var(--text-on-dark-secondary);font-size:1.1rem;line-height:1.7}.role-block{border-top:1px solid var(--sfc-blue-border);margin-top:3rem;padding-top:1.5rem}.role-block span{display:block;color:var(--sfc-cyan);font-size:.72rem;letter-spacing:.16em;margin-bottom:.6rem}.role-block strong{color:var(--sfc-ivory);font-size:.78rem;letter-spacing:.08em;line-height:1.7}.tutto-close-final{padding:7rem 0;background:var(--sfc-ivory);color:var(--sfc-blue-deep)}.tutto-close-final h2{font-family:var(--font-serif);font-size:clamp(3rem,6vw,6rem);line-height:.9;margin:1rem 0}.simple-legal{min-height:70vh;padding:12rem 0 7rem;background:var(--sfc-blue-deep)}.simple-legal h1{font-family:var(--font-serif);font-size:clamp(3.5rem,7vw,7rem);color:var(--sfc-ivory);margin:.5rem 0 2rem}.simple-legal p{color:var(--text-on-dark-secondary);font-size:1.05rem;line-height:1.7;max-width:720px;margin-bottom:1rem}.simple-legal a{color:var(--sfc-cyan)}
@media(max-width:900px){.home-portfolio-grid,.home-portfolio-item,.home-portfolio-item.reverse,.what-chapter,.what-chapter.reverse,.portfolio-chapter,.portfolio-chapter.reverse{grid-template-columns:1fr}.home-portfolio-item.reverse .home-portfolio-image{order:0}.home-portfolio-image,.chapter-image,.chapter-photo{min-height:420px}.evolution-stages,.capability-editorial{grid-template-columns:1fr 1fr}.experience-grid,.about-year-grid,.about-experience-grid,.principles-grid,.portfolio-experience-grid,.tutto-approach-grid{grid-template-columns:1fr;gap:3rem}.about-two-col{grid-template-columns:1fr;gap:2rem}.accent-rule{height:1px;width:100%}.detail-columns{grid-template-columns:1fr}.home-hero-globe{width:650px;height:650px;right:-260px;opacity:.38}}
@media(max-width:600px){.sfc-final-home-hero{min-height:88svh;padding:7rem 0 4rem}.home-hero-copy h1,.about-hero-final h1,.portfolio-hero-final h1{font-size:clamp(3rem,14vw,4.5rem)}.home-hero-globe{width:480px;height:480px;right:-220px;top:35%;opacity:.22}.evolution-stages,.capability-editorial{grid-template-columns:1fr}.home-portfolio-image,.chapter-image,.chapter-photo{min-height:330px}.home-portfolio-copy,.chapter-copy,.chapter-details{padding:2.25rem 1.35rem}.year-monument{font-size:7rem}.about-hero-final{min-height:65vh;padding-bottom:5rem}.about-number{font-size:8rem}.what-hero-final{min-height:85svh;padding-bottom:4rem}.what-hero-final h1{font-size:clamp(3rem,13vw,4.5rem)}.portfolio-hero-final{padding:9rem 0 4rem}.portfolio-chapter{min-height:auto}.chapter-photo{height:55vw}.detail-columns{gap:1.2rem}.tutto-image-grid{grid-template-columns:1fr}.tutto-image-grid img{height:380px}.closing-final h2{font-size:2.8rem}.footer-nav-columns{grid-template-columns:1fr 1fr}.nav-cta{display:none}}
.brand-logo img{display:block;width:240px;height:60px;max-width:240px}.route-selector{grid-template-columns:repeat(4,1fr)}.contact-intro{min-height:48vh;padding-top:11rem;padding-bottom:5rem}.contact-intro h1{font-family:var(--font-serif);font-size:clamp(3.5rem,7vw,7rem);line-height:.92;color:var(--sfc-ivory);margin:1rem 0 1.5rem}.contact-intro p{max-width:700px;color:var(--text-on-dark-secondary);font-size:1.1rem;line-height:1.7}.contact-form-section{padding:0 0 8rem;background:var(--sfc-blue-deep)}.contact-form-final{max-width:1000px;margin:0 auto;background:var(--sfc-blue-surface);border:1px solid var(--sfc-blue-border);padding:clamp(1.5rem,4vw,3rem)}.form-route-heading h2{font-family:var(--font-serif);font-size:2.6rem;color:var(--sfc-ivory);margin:.25rem 0 2rem}.route-context-final{padding:1rem 1.25rem;border-left:2px solid var(--sfc-cyan);background:rgba(0,174,239,.07);margin-bottom:2rem}.route-context-final p{margin:0;color:var(--sfc-cyan);font-size:.9rem}.contact-submit-row{display:flex;align-items:center;justify-content:space-between;gap:2rem;padding-top:1.5rem;border-top:1px solid var(--sfc-blue-border)}.contact-submit-row p{color:var(--text-on-dark-muted);font-size:.8rem;max-width:420px}.route-selector .route-pill-box{height:100%}@media(max-width:900px){.route-selector{grid-template-columns:1fr 1fr}}@media(max-width:600px){.brand-logo img{width:180px;height:45px}.route-selector{grid-template-columns:1fr}.contact-submit-row{align-items:flex-start;flex-direction:column}}

/* --------------------------------------------------------------------------
   Final responsive polish
   Keeps the shared header, editorial grids and long-form copy stable from
   large desktop through compact phones.
   -------------------------------------------------------------------------- */
@media (max-width: 900px) {
  .header-inner {
    height: 64px;
  }

  .nav-links,
  .nav-cta {
    display: none;
  }

  .mobile-toggle {
    display: flex;
  }

  .mobile-drawer {
    top: 64px;
    height: calc(100dvh - 64px);
  }

  .brand-logo img {
    width: min(210px, 52vw);
    height: auto;
  }

  .container,
  .container-wide,
  .container-narrow {
    padding-left: clamp(1.1rem, 4vw, 2rem);
    padding-right: clamp(1.1rem, 4vw, 2rem);
  }

  .portfolio-chapter {
    min-height: 0;
  }

  .portfolio-chapter .chapter-photo {
    min-height: 0;
    height: clamp(360px, 56vw, 520px);
  }

  .portfolio-chapter .chapter-details {
    padding: clamp(3rem, 7vw, 5rem) clamp(1.5rem, 6vw, 4rem);
  }

  .portfolio-chapter.reverse .chapter-photo {
    order: -1;
  }

  .detail-columns {
    gap: 0;
  }

  .detail-columns > div {
    padding: 1.15rem 0;
    border-top: 1px solid currentColor;
    border-color: color-mix(in srgb, currentColor 14%, transparent);
  }

  .detail-columns > div:last-child {
    border-bottom: 1px solid currentColor;
    border-color: color-mix(in srgb, currentColor 14%, transparent);
  }

  .portfolio-experience-grid {
    gap: 2rem;
  }
}

/* Portfolio editorial finish */
.portfolio-chapter {
  position: relative;
}

.portfolio-chapter .chapter-photo {
  position: relative;
  background: #102331;
}

.portfolio-chapter .chapter-photo::after {
  content: '';
  position: absolute;
  inset: 0;
  pointer-events: none;
  background: linear-gradient(90deg, rgba(14, 31, 45, .06), transparent 34%, transparent 72%, rgba(14, 31, 45, .12));
}

.portfolio-chapter .chapter-photo img {
  transition: transform 900ms var(--ease-editorial), filter 700ms var(--ease-smooth);
}

.portfolio-chapter:hover .chapter-photo img {
  transform: scale(1.018);
}

.portfolio-chapter .chapter-details {
  position: relative;
}

.portfolio-chapter .chapter-details::before {
  content: '';
  position: absolute;
  top: clamp(3rem, 7vw, 6rem);
  left: 0;
  width: 2px;
  height: 54px;
  background: var(--sfc-cognac);
  opacity: .8;
}

.portfolio-chapter.dark .chapter-details::before {
  background: var(--sfc-cyan);
}

.portfolio-chapter .chapter-number {
  font-family: var(--font-mono);
  font-variant-numeric: tabular-nums;
}

.portfolio-chapter .detail-columns {
  position: relative;
}

.portfolio-chapter .detail-columns > div {
  min-width: 0;
}

.portfolio-chapter .detail-columns p {
  overflow-wrap: break-word;
}

.portfolio-chapter .editorial-link {
  transition: gap var(--duration-fast) var(--ease-editorial), color var(--duration-fast) var(--ease-smooth);
}

.portfolio-chapter .editorial-link:hover {
  gap: 1rem;
}

.portfolio-experience-final {
  position: relative;
}

.portfolio-experience-final::before {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  width: min(22vw, 260px);
  height: 1px;
  background: var(--sfc-cyan);
  opacity: .7;
}

#izggi,
#alonzo,
#tuttobene {
  scroll-margin-top: 74px;
}

@media (max-width: 600px) {
  .header-inner {
    height: 60px;
  }

  .mobile-drawer {
    top: 60px;
    height: calc(100dvh - 60px);
    padding-left: 1.1rem;
    padding-right: 1.1rem;
  }

  .brand-logo img {
    width: min(180px, 54vw);
  }

  .portfolio-hero-final {
    padding-top: 8rem;
    padding-bottom: 3.5rem;
  }

  .portfolio-hero-final h1 {
    max-width: 12ch;
    margin-bottom: 1.25rem;
  }

  .portfolio-hero-final p {
    font-size: 1rem;
    line-height: 1.65;
  }

  .portfolio-chapter .chapter-photo {
    height: 72vw;
    min-height: 260px;
    max-height: 380px;
  }

  .portfolio-chapter .chapter-details {
    padding: 2.6rem 1.25rem 3.2rem;
  }

  .portfolio-chapter .chapter-details::before {
    display: none;
  }

  .portfolio-chapter .chapter-photo::after {
    background: linear-gradient(180deg, rgba(14, 31, 45, .03), transparent 55%, rgba(14, 31, 45, .16));
  }

  #izggi,
  #alonzo,
  #tuttobene {
    scroll-margin-top: 60px;
  }

  .chapter-number {
    margin-bottom: .65rem;
  }

  .chapter-details h2 {
    font-size: clamp(2.8rem, 13vw, 4.25rem);
    line-height: .92;
    letter-spacing: -.04em;
    overflow-wrap: anywhere;
    margin: .5rem 0 1.7rem;
  }

  .detail-columns p {
    font-size: .92rem;
    line-height: 1.65;
  }

  .editorial-link {
    margin-top: 1.7rem;
    min-height: 44px;
    align-items: center;
  }

  .portfolio-experience-final {
    padding-top: 4.5rem;
    padding-bottom: 4.5rem;
  }

  .portfolio-experience-grid h2 {
    font-size: clamp(2.8rem, 12vw, 4.2rem);
  }
}

@media (prefers-reduced-motion: reduce) {
  .portfolio-chapter .chapter-photo img,
  .portfolio-chapter .chapter-details,
  .editorial-link {
    transition: none;
  }
}

/* Home hero entrance: independent of scroll observers so the opening frame
   is always present while the globe assembles around it. */
.home-hero-copy.hero-intro {
  opacity: 0;
  transform: translateY(18px);
  animation: sfcHeroIntro 900ms cubic-bezier(0.16, 1, 0.3, 1) 260ms forwards;
}

@keyframes sfcHeroIntro {
  from {
    opacity: 0;
    transform: translateY(18px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

@media (prefers-reduced-motion: reduce) {
  .home-hero-copy.hero-intro {
    opacity: 1;
    transform: none;
    animation: none;
  }
}


/* --------------------------------------------------------------------------
   Tutto Bene editorial page — implementation of the mobile v3 brief
   -------------------------------------------------------------------------- */
.tutto-page { background: var(--sfc-blue-deep); }
.tutto-editorial-hero { position:relative; min-height:min(88vh,920px); display:flex; align-items:flex-end; overflow:hidden; padding:9rem 0 7rem; background:#172c28; }
.tutto-editorial-hero > img,.tutto-editorial-hero-overlay { position:absolute; inset:0; width:100%; height:100%; }
.tutto-editorial-hero > img { object-fit:cover; object-position:center; }
.tutto-editorial-hero-overlay { background:linear-gradient(90deg,rgba(14,31,45,.88),rgba(14,31,45,.52) 45%,rgba(14,31,45,.14)),linear-gradient(0deg,rgba(14,31,45,.62),transparent 48%); }
.tutto-editorial-hero-content { position:relative; z-index:2; max-width:1260px; }
.tutto-editorial-hero h1 { font-family:var(--font-serif); font-weight:400; font-size:clamp(4rem,8.5vw,8.4rem); line-height:.84; letter-spacing:-.045em; color:var(--sfc-ivory); margin:.8rem 0 1.5rem; max-width:950px; }
.tutto-editorial-hero p { color:var(--sfc-mint); font-size:clamp(.9rem,1.5vw,1.15rem); font-weight:600; letter-spacing:.18em; text-transform:uppercase; }
.tutto-hero-index { position:absolute; z-index:2; right:clamp(1.25rem,4vw,4.5rem); bottom:2.5rem; color:rgba(246,243,237,.68); font:600 .68rem/1 var(--font-mono); letter-spacing:.14em; }
.tutto-hero-index span { color:var(--sfc-cyan); margin:0 .35rem; }
.tutto-approach-intro { border-bottom:1px solid var(--sfc-ivory-border); }
.tutto-approach-intro-grid { display:grid; grid-template-columns:1.1fr .9fr; gap:clamp(3rem,9vw,9rem); align-items:end; }
.tutto-approach-intro h2 { color:var(--sfc-blue-deep); font-family:var(--font-serif); font-size:clamp(3.5rem,6.7vw,7rem); line-height:.86; letter-spacing:-.045em; margin-top:.75rem; }
.tutto-approach-intro-copy { padding-bottom:.35rem; max-width:620px; }
.tutto-approach-intro-copy p { color:var(--text-on-light-secondary); font-size:clamp(1rem,1.5vw,1.12rem); line-height:1.8; margin-bottom:1.35rem; }
.tutto-approach-intro-copy p:last-child { margin-bottom:0; }
.tutto-project { display:grid; grid-template-columns:1.12fr .88fr; min-height:760px; background:var(--sfc-ivory); }
.tutto-project-serein { grid-template-columns:.88fr 1.12fr; background:#18332f; }
.tutto-project-media { position:relative; min-height:620px; overflow:hidden; }
.tutto-project-media img { width:100%; height:100%; object-fit:cover; transition:transform 1.1s var(--ease-editorial); }
.tutto-project:hover .tutto-project-media img { transform:scale(1.018); }
.tutto-media-caption { position:absolute; left:clamp(1.25rem,3vw,3rem); bottom:1.5rem; color:rgba(246,243,237,.78); font-size:.64rem; font-weight:700; letter-spacing:.15em; text-transform:uppercase; text-shadow:0 1px 12px rgba(0,0,0,.35); }
.tutto-project-copy { position:relative; display:flex; flex-direction:column; justify-content:center; padding:clamp(4rem,7vw,7.5rem); max-width:760px; }
.tutto-project-serein .tutto-project-copy { color:var(--sfc-ivory); }
.tutto-project-number { color:var(--sfc-cognac); font:600 .68rem/1 var(--font-mono); letter-spacing:.12em; margin-bottom:1rem; }
.tutto-project-serein .tutto-project-number { color:var(--sfc-cyan); }
.tutto-project-copy .eyebrow { margin-bottom:.45rem; }
.tutto-project-copy h2 { color:var(--sfc-blue-deep); font-family:var(--font-serif); font-size:clamp(4rem,6.8vw,7.2rem); line-height:.84; letter-spacing:-.045em; margin:.55rem 0 .8rem; }
.tutto-project-serein .tutto-project-copy h2 { color:var(--sfc-ivory); }
.tutto-project-location { color:var(--sfc-cognac); font-size:.7rem; font-weight:700; letter-spacing:.16em; margin-bottom:1.7rem; }
.tutto-project-serein .tutto-project-location { color:var(--sfc-mint); }
.tutto-project-copy > p:not(.tutto-project-location) { max-width:600px; color:var(--text-on-light-secondary); font-size:1.02rem; line-height:1.78; margin-bottom:1rem; }
.tutto-project-serein .tutto-project-copy > p:not(.tutto-project-location) { color:var(--text-on-dark-secondary); }
.tutto-facts { display:grid; grid-template-columns:repeat(3,1fr); gap:1rem; margin-top:2.4rem; padding-top:1.2rem; border-top:1px solid var(--sfc-ivory-border); }
.tutto-project-serein .tutto-facts { border-top-color:var(--sfc-blue-border); }
.tutto-facts > div { min-width:0; }
.tutto-facts span { display:block; color:var(--sfc-cognac); font:600 .62rem/1 var(--font-mono); margin-bottom:.55rem; }
.tutto-project-serein .tutto-facts span { color:var(--sfc-cyan); }
.tutto-facts strong { display:block; color:var(--sfc-blue-deep); font-family:var(--font-serif); font-size:clamp(1.7rem,2.8vw,2.7rem); font-weight:400; line-height:.95; white-space:nowrap; }
.tutto-project-serein .tutto-facts strong { color:var(--sfc-ivory); }
.tutto-facts small { display:block; color:var(--text-on-light-muted); font-size:.6rem; font-weight:700; letter-spacing:.1em; line-height:1.45; margin-top:.45rem; }
.tutto-project-serein .tutto-facts small { color:var(--text-on-dark-muted); }
.tutto-philosophy { position:relative; display:grid; grid-template-columns:1fr 1fr; min-height:720px; background:#3a4b32; }
.tutto-philosophy-image { min-height:620px; overflow:hidden; }
.tutto-philosophy-image img { width:100%; height:100%; object-fit:cover; filter:saturate(.72); }
.tutto-philosophy-panel { display:flex; flex-direction:column; justify-content:center; padding:clamp(4rem,7vw,7rem); background:rgba(51,69,45,.94); color:var(--sfc-ivory); }
.tutto-philosophy-panel h2 { color:var(--sfc-ivory); font-family:var(--font-serif); font-size:clamp(4rem,6.8vw,7rem); line-height:.82; letter-spacing:-.045em; margin:.8rem 0 2rem; }
.tutto-philosophy-panel > p { max-width:600px; color:rgba(246,243,237,.78); font-size:1.05rem; line-height:1.8; margin-bottom:1rem; }
.tutto-principles { display:flex; flex-wrap:wrap; align-items:center; gap:.35rem .6rem; margin-top:2.4rem; padding-top:1.35rem; border-top:1px solid rgba(246,243,237,.2); }
.tutto-principles span { color:var(--sfc-mint); font-size:.67rem; font-weight:700; letter-spacing:.13em; }
.tutto-principles i { color:var(--sfc-cognac-light); font-style:normal; }
.tutto-sfc-close { padding:clamp(5rem,10vw,9rem) 0; background:var(--sfc-blue-deep); border-top:1px solid var(--sfc-blue-border); }
.tutto-sfc-close-inner { max-width:900px; }
.tutto-sfc-close h2 { color:var(--sfc-ivory); font-family:var(--font-serif); font-size:clamp(3.8rem,7vw,7rem); line-height:.88; letter-spacing:-.045em; margin:.8rem 0 1.2rem; }
.tutto-sfc-close p { color:var(--sfc-mint); font-size:1rem; letter-spacing:.05em; }
.tutto-sfc-close .editorial-link { color:var(--sfc-ivory); margin-top:2.2rem; min-height:44px; }
@media (max-width:1000px) {
  .tutto-project,.tutto-project-serein { grid-template-columns:1fr; min-height:0; }
  .tutto-project-media { min-height:0; height:clamp(420px,55vw,640px); }
  .tutto-project-serein .tutto-project-media { order:-1; }
  .tutto-project-copy { max-width:none; }
  .tutto-philosophy { grid-template-columns:1fr; }
  .tutto-philosophy-image { min-height:0; height:clamp(360px,52vw,560px); }
}
@media (max-width:700px) {
  .tutto-editorial-hero { min-height:78svh; padding:7rem 0 4rem; align-items:flex-end; }
  .tutto-editorial-hero > img { object-position:60% center; }
  .tutto-editorial-hero-overlay { background:linear-gradient(180deg,rgba(14,31,45,.16),rgba(14,31,45,.88) 72%); }
  .tutto-editorial-hero h1 { font-size:clamp(3.3rem,14vw,5rem); max-width:9ch; line-height:.88; }
  .tutto-editorial-hero p { font-size:.72rem; letter-spacing:.13em; line-height:1.5; max-width:25rem; }
  .tutto-hero-index { right:1.1rem; bottom:1.2rem; }
  .tutto-approach-intro-grid { grid-template-columns:1fr; gap:2.5rem; }
  .tutto-approach-intro h2 { font-size:clamp(3rem,14vw,4.6rem); }
  .tutto-approach-intro-copy { padding-bottom:0; }
  .tutto-approach-intro-copy p { font-size:1rem; line-height:1.72; }
  .tutto-project-media { height:78vw; min-height:280px; max-height:430px; }
  .tutto-project-copy { padding:3.3rem 1.25rem 4rem; }
  .tutto-project-copy h2 { font-size:clamp(3.4rem,16vw,5.1rem); }
  .tutto-project-location { margin-bottom:1.4rem; }
  .tutto-project-copy > p:not(.tutto-project-location) { font-size:.98rem; line-height:1.72; }
  .tutto-facts { grid-template-columns:1fr; gap:0; margin-top:1.8rem; }
  .tutto-facts > div { padding:1rem 0; border-bottom:1px solid var(--sfc-ivory-border); display:grid; grid-template-columns:2rem 1fr auto; align-items:baseline; column-gap:.65rem; }
  .tutto-project-serein .tutto-facts > div { border-bottom-color:var(--sfc-blue-border); }
  .tutto-facts > div:last-child { border-bottom:0; }
  .tutto-facts span { margin:0; }
  .tutto-facts strong { font-size:2rem; }
  .tutto-facts small { margin:0; text-align:right; }
  .tutto-philosophy-image { height:72vw; min-height:250px; max-height:360px; }
  .tutto-philosophy-panel { padding:3.5rem 1.25rem 4.5rem; }
  .tutto-philosophy-panel h2 { font-size:clamp(3.6rem,16vw,5rem); }
  .tutto-philosophy-panel > p { font-size:.98rem; line-height:1.72; }
  .tutto-principles { align-items:flex-start; gap:.45rem .55rem; }
  .tutto-principles i { display:none; }
  .tutto-principles span { line-height:1.7; }
  .tutto-principles span:not(:last-child)::after { content:' · '; color:var(--sfc-cognac-light); padding-left:.35rem; }
  .tutto-sfc-close { padding:4.5rem 0 5rem; }
  .tutto-sfc-close h2 { font-size:clamp(3.4rem,15vw,4.8rem); }
  .tutto-sfc-close p { font-size:.9rem; }
}
@media (prefers-reduced-motion:reduce) { .tutto-project-media img { transition:none; } }

/* --------------------------------------------------------------------------
   Home evolution — editorial timeline refinement
   -------------------------------------------------------------------------- */
.evolution-final {
  position: relative;
  isolation: isolate;
  background:
    radial-gradient(circle at 92% 18%, rgba(180, 90, 34, .07), transparent 28%),
    linear-gradient(180deg, #F8F5EF 0%, var(--sfc-ivory) 58%, #F0EBE2 100%);
}

.evolution-final::after {
  content: '';
  position: absolute;
  width: 42rem;
  height: 42rem;
  right: -27rem;
  top: 7rem;
  border: 1px solid rgba(14, 31, 45, .08);
  border-radius: 50%;
  box-shadow: 0 0 0 5rem rgba(14, 31, 45, .018), 0 0 0 10rem rgba(14, 31, 45, .012);
  pointer-events: none;
  z-index: -1;
}

.evolution-year-mark {
  position: absolute;
  top: clamp(3rem, 7vw, 6rem);
  right: clamp(1.5rem, 5vw, 5rem);
  display: flex;
  align-items: flex-start;
  gap: .55rem;
  color: rgba(14, 31, 45, .08);
  pointer-events: none;
  user-select: none;
}

.evolution-year-mark span {
  font-family: var(--font-serif);
  font-size: clamp(6rem, 13vw, 12rem);
  line-height: .65;
  letter-spacing: -.075em;
}

.evolution-year-mark i {
  font: 700 .58rem/1 var(--font-mono);
  letter-spacing: .16em;
  color: rgba(180, 90, 34, .55);
  margin-top: .2rem;
}

.evolution-header {
  position: relative;
  z-index: 2;
  display: grid;
  grid-template-columns: minmax(0, 1.45fr) minmax(220px, .55fr);
  gap: clamp(3rem, 8vw, 9rem);
  align-items: end;
}

.evolution-header .final-intro {
  margin-bottom: 0;
}

.evolution-header .final-intro h2 {
  max-width: 760px;
  font-size: clamp(3.2rem, 5.6vw, 5.7rem);
  line-height: .92;
}

.evolution-note {
  max-width: 260px;
  padding-bottom: .4rem;
  border-left: 1px solid var(--sfc-cognac);
  padding-left: 1.25rem;
}

.evolution-note span {
  display: block;
  color: var(--sfc-cognac);
  font: 700 .64rem/1 var(--font-mono);
  letter-spacing: .16em;
  margin-bottom: .75rem;
}

.evolution-note p {
  color: var(--text-on-light-secondary);
  font-family: var(--font-serif);
  font-size: 1.35rem;
  line-height: 1.1;
}

.evolution-track {
  position: relative;
  height: 90px;
  margin: 4.5rem 0 0;
}

.evolution-track svg {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  overflow: visible;
}

.evolution-track path {
  fill: none;
  stroke: rgba(14, 31, 45, .16);
  stroke-width: 1.25;
  vector-effect: non-scaling-stroke;
}

.evolution-track-progress {
  position: absolute;
  left: 0;
  top: 50%;
  width: 12px;
  height: 12px;
  transform: translate(-50%, -50%);
  border-radius: 50%;
  background: var(--sfc-cognac);
  box-shadow: 0 0 0 6px rgba(180, 90, 34, .10);
  z-index: 2;
}

.evolution-stages {
  position: relative;
  z-index: 2;
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: clamp(1.25rem, 3vw, 3rem);
  margin-top: -1.5rem;
}

.evolution-stage {
  min-width: 0;
  padding: 1.5rem 1.25rem 0 0;
  border-top: 1px solid rgba(14, 31, 45, .13);
  transition: transform var(--duration-base) var(--ease-editorial), border-color var(--duration-base) var(--ease-smooth);
}

.evolution-stage::before {
  top: -6px;
  width: 11px;
  height: 11px;
  background: var(--sfc-cognac);
  box-shadow: 0 0 0 5px var(--sfc-ivory);
}

.evolution-stage:hover {
  transform: translateY(-4px);
  border-top-color: rgba(180, 90, 34, .45);
}

.evolution-stage-index {
  display: flex;
  align-items: center;
  gap: .7rem;
  margin-bottom: .75rem;
}

.evolution-stage-index span {
  color: var(--sfc-cognac);
  font: 700 .68rem/1 var(--font-mono);
  letter-spacing: .12em;
}

.evolution-stage-index i {
  color: var(--text-on-light-muted);
  font: 700 .58rem/1 var(--font-mono);
  letter-spacing: .12em;
  font-style: normal;
}

.evolution-stage h3 {
  font-size: clamp(2rem, 3vw, 3rem);
  line-height: .9;
  letter-spacing: -.025em;
  margin: .2rem 0 .9rem;
}

.evolution-stage p {
  max-width: 255px;
  color: var(--text-on-light-secondary);
  line-height: 1.65;
  font-size: .92rem;
}

.evolution-footer {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: .75rem;
  margin-top: 3.5rem;
  padding-top: 1.2rem;
  border-top: 1px solid rgba(14, 31, 45, .11);
  color: var(--text-on-light-muted);
  font: 700 .61rem/1 var(--font-mono);
  letter-spacing: .14em;
}

.evolution-footer b {
  color: var(--sfc-cognac);
  font-size: .75rem;
}

@media (max-width: 900px) {
  .evolution-year-mark { opacity: .75; }
  .evolution-header {
    grid-template-columns: 1fr;
    gap: 2rem;
  }
  .evolution-note { max-width: 420px; }
  .evolution-track { margin-top: 3.5rem; }
  .evolution-stages { grid-template-columns: 1fr 1fr; margin-top: -1rem; }
}

@media (max-width: 600px) {
  .evolution-final { padding-top: 4.75rem; padding-bottom: 4.5rem; }
  .evolution-final::after { width: 26rem; height: 26rem; right: -18rem; top: 13rem; }
  .evolution-year-mark { top: 3rem; right: 1.25rem; opacity: .55; }
  .evolution-year-mark span { font-size: 6rem; }
  .evolution-header { gap: 1.75rem; }
  .evolution-header .final-intro h2 { font-size: clamp(3rem, 13vw, 4.3rem); }
  .evolution-note { max-width: 100%; padding-left: 1rem; }
  .evolution-note p { font-size: 1.2rem; max-width: 280px; }
  .evolution-track { height: 58px; margin: 3rem 0 0; }
  .evolution-track path { stroke-width: 1; }
  .evolution-stages { grid-template-columns: 1fr; gap: 0; margin-top: 0; }
  .evolution-stage { padding: 1.5rem 0 1.65rem; border-top: 1px solid rgba(14, 31, 45, .13); }
  .evolution-stage::before { display: none; }
  .evolution-stage p { max-width: 320px; }
  .evolution-footer { justify-content: flex-start; flex-wrap: wrap; gap: .6rem; margin-top: 1.25rem; }
}

@media (prefers-reduced-motion: reduce) {
  .evolution-stage { transition: none; }
}

/* Home portfolio CTA affordance */
.home-portfolio-link{display:inline-flex;align-items:center;gap:.65rem;width:max-content;margin-top:1.5rem;padding-bottom:.4rem;border-bottom:1px solid rgba(246,243,237,.55);color:var(--sfc-ivory);font-size:.72rem;letter-spacing:.12em;text-transform:uppercase;font-weight:700;transition:gap var(--duration-fast) var(--ease-editorial),border-color var(--duration-fast) var(--ease-smooth),color var(--duration-fast) var(--ease-smooth)}
.home-portfolio-link>span{display:inline-block;transition:transform var(--duration-fast) var(--ease-editorial)}
.home-portfolio-item:hover .home-portfolio-link{gap:.9rem;border-color:var(--sfc-cyan)}
.home-portfolio-item:hover .home-portfolio-link>span{transform:translateX(2px)}
.home-portfolio-item:focus-visible{outline:2px solid var(--sfc-cyan);outline-offset:-2px}
.home-portfolio-item:focus-visible .home-portfolio-link{border-color:var(--sfc-cyan)}
@media (prefers-reduced-motion:reduce){.home-portfolio-link,.home-portfolio-link>span{transition:none}}
