:is(.fsi-page-shell, .fsi-page-host) {
  --blue: #0b3d91;
  --blue-dark: #06265e;
  --ink: #122033;
  --paper: #fff;
  --paper-deep: #fff;
  --white: #fff;
  --line: rgba(18, 32, 51, .18);
  --line-light: rgba(255, 255, 255, .24);
  --muted: #5f6874;
}

:is(.fsi-page-shell, .fsi-page-host),:is(.fsi-page-shell, .fsi-page-host) * { box-sizing: border-box; }
html:has(> body.fsi-landing) { scroll-behavior: smooth; }
:is(.fsi-page-shell, .fsi-page-host) {
  margin: 0;
  background: var(--paper);
  color: var(--ink);
  font-family: Inter, Arial, Helvetica, sans-serif;
}
:is(.fsi-page-shell, .fsi-page-host) a { color: inherit; text-decoration: none; }
:is(.fsi-page-shell, .fsi-page-host) img { display: block; max-width: 100%; }
:is(.fsi-page-shell, .fsi-page-host) p { text-wrap: pretty; }

:is(.fsi-page-shell, .fsi-page-host) .skip-link {
  background: var(--white);
  left: 1rem;
  padding: .75rem 1rem;
  position: fixed;
  top: -4rem;
  z-index: 100;
}
:is(.fsi-page-shell, .fsi-page-host) .skip-link:focus { top: 1rem; }
:is(.fsi-page-shell, .fsi-page-host) .visually-hidden {
  clip: rect(0 0 0 0);
  clip-path: inset(50%);
  height: 1px;
  overflow: hidden;
  position: absolute;
  white-space: nowrap;
  width: 1px;
}

:is(.fsi-page-shell, .fsi-page-host) .site-header {
  align-items: center;
  backdrop-filter: blur(16px);
  background: rgba(255, 255, 255, .92);
  border-bottom: 1px solid var(--line);
  display: grid;
  grid-template-columns: 1fr auto 1fr;
  min-height: 82px;
  padding: 0 clamp(1.25rem, 4vw, 4.5rem);
  position: sticky;
  top: 0;
  z-index: 20;
}
:is(.fsi-page-shell, .fsi-page-host) .brand { display: flex; gap: 3px; width: max-content; }
:is(.fsi-page-shell, .fsi-page-host) .brand span {
  align-items: center;
  border: 1px solid var(--blue);
  color: var(--blue);
  display: flex;
  font-family: "Courier New", monospace;
  font-size: .8rem;
  font-weight: 800;
  height: 28px;
  justify-content: center;
  width: 22px;
}
:is(.fsi-page-shell, .fsi-page-host) .brand-icon { display: block; height: 28px; object-fit: contain; width: auto; }
:is(.fsi-page-shell, .fsi-page-host) .desktop-nav { display: flex; font-size: .82rem; gap: clamp(1.25rem, 3vw, 2.8rem); }
:is(.fsi-page-shell, .fsi-page-host) .desktop-nav a { padding: 1rem 0; position: relative; }
:is(.fsi-page-shell, .fsi-page-host) .desktop-nav a::after {
  background: var(--blue);
  bottom: .6rem;
  content: '';
  height: 1px;
  left: 0;
  position: absolute;
  transform: scaleX(0);
  transform-origin: right;
  transition: transform .25s ease;
  width: 100%;
}
:is(.fsi-page-shell, .fsi-page-host) .desktop-nav a:hover::after,:is(.fsi-page-shell, .fsi-page-host) .desktop-nav a:focus-visible::after { transform: scaleX(1); transform-origin: left; }
:is(.fsi-page-shell, .fsi-page-host) .header-actions { align-items: center; display: flex; gap: .7rem; justify-self: end; }
:is(.fsi-page-shell, .fsi-page-host) .mobile-menu { display: none; position: relative; }
:is(.fsi-page-shell, .fsi-page-host) .mobile-menu summary { cursor: pointer; font-size: .78rem; font-weight: 650; list-style: none; padding: .8rem; }
:is(.fsi-page-shell, .fsi-page-host) .mobile-menu summary::-webkit-details-marker { display: none; }
:is(.fsi-page-shell, .fsi-page-host) .mobile-menu nav {
  background: var(--paper);
  border: 1px solid var(--line);
  display: grid;
  min-width: 210px;
  padding: .5rem;
  position: absolute;
  right: 0;
  top: calc(100% + 1rem);
}
:is(.fsi-page-shell, .fsi-page-host) .mobile-menu nav a { border-bottom: 1px solid var(--line); padding: .9rem; }

:is(.fsi-page-shell, .fsi-page-host) .button {
  align-items: center;
  background: var(--blue);
  border: 1px solid var(--blue);
  color: var(--white);
  display: inline-flex;
  font-size: .86rem;
  font-weight: 650;
  justify-content: center;
  min-height: 52px;
  padding: .9rem 1.35rem;
  transition: background .2s ease, color .2s ease, transform .2s ease;
}
:is(.fsi-page-shell, .fsi-page-host) .button:hover { background: var(--blue-dark); transform: translateY(-2px); }
:is(.fsi-page-shell, .fsi-page-host) .button:focus-visible,:is(.fsi-page-shell, .fsi-page-host) a:focus-visible,:is(.fsi-page-shell, .fsi-page-host) summary:focus-visible { outline: 3px solid #e6ad2e; outline-offset: 3px; }
:is(.fsi-page-shell, .fsi-page-host) .button-small { min-height: 42px; padding: .7rem 1rem; }
:is(.fsi-page-shell, .fsi-page-host) .button-light { background: var(--white); border-color: var(--white); color: var(--blue-dark); }
:is(.fsi-page-shell, .fsi-page-host) .button-light:hover { background: var(--paper); }

:is(.fsi-page-shell, .fsi-page-host) .hero {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(420px, .86fr);
  grid-template-rows: minmax(0, 1fr) auto;
  height: calc(100svh - 82px);
  max-height: 980px;
  min-height: 680px;
}
:is(.fsi-page-shell, .fsi-page-host) .hero-copy {
  display: flex;
  flex-direction: column;
  grid-column: 1;
  grid-row: 1;
  justify-content: center;
  padding: clamp(4rem, 9vw, 9rem) clamp(1.25rem, 7vw, 8rem) 3rem clamp(1.25rem, 4vw, 4.5rem);
}
:is(.fsi-page-shell, .fsi-page-host) .eyebrow {
  color: var(--blue);
  font-size: .7rem;
  font-weight: 750;
  letter-spacing: .16em;
  margin: 0 0 1.5rem;
  text-transform: uppercase;
}
:is(.fsi-page-shell, .fsi-page-host) .eyebrow-light { color: rgba(255,255,255,.7); }
:is(.fsi-page-shell, .fsi-page-host) h1,:is(.fsi-page-shell, .fsi-page-host) h2,:is(.fsi-page-shell, .fsi-page-host) h3 { text-wrap: balance; }
:is(.fsi-page-shell, .fsi-page-host) h1 { text-wrap: pretty; }
:is(.fsi-page-shell, .fsi-page-host) .heading-accent { color: var(--blue); }
:is(.fsi-page-shell, .fsi-page-host) .section-dark .heading-accent,:is(.fsi-page-shell, .fsi-page-host) .contact .heading-accent { color: #b9d2ff; }
:is(.fsi-page-shell, .fsi-page-host) h1 {
  font-size: clamp(3.2rem, 6.5vw, 7rem);
  font-weight: 500;
  letter-spacing: -.065em;
  line-height: .94;
  margin: 0;
  max-width: 15ch;
}
:is(.fsi-page-shell, .fsi-page-host) .hero-summary {
  color: var(--muted);
  font-size: clamp(1rem, 1.35vw, 1.22rem);
  line-height: 1.6;
  margin: 2rem 0;
  max-width: 39rem;
}
:is(.fsi-page-shell, .fsi-page-host) .hero-actions { align-items: center; display: flex; flex-wrap: wrap; gap: 1.4rem; }
:is(.fsi-page-shell, .fsi-page-host) .text-link { border-bottom: 1px solid currentColor; font-size: .9rem; padding: .75rem 0 .35rem; }
:is(.fsi-page-shell, .fsi-page-host) .text-link span { color: var(--blue); margin-left: .4rem; }
:is(.fsi-page-shell, .fsi-page-host) .hero-proof {
  border-top: 1px solid var(--line);
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  grid-column: 1;
  grid-row: 2;
  margin: 0 clamp(1.25rem, 7vw, 8rem) 3rem clamp(1.25rem, 4vw, 4.5rem);
  padding-top: 1.2rem;
}
:is(.fsi-page-shell, .fsi-page-host) .hero-proof div + div { border-left: 1px solid var(--line); padding-left: 1.2rem; }
:is(.fsi-page-shell, .fsi-page-host) .hero-proof dt { color: var(--muted); font-size: .64rem; letter-spacing: .12em; text-transform: uppercase; }
:is(.fsi-page-shell, .fsi-page-host) .hero-proof dd { font-size: .9rem; font-weight: 650; margin: .45rem 0 0; }
:is(.fsi-page-shell, .fsi-page-host) .hero-visual {
  background: var(--blue);
  display: grid;
  grid-template-rows: 1fr auto;
  height: 100%;
  grid-column: 2;
  grid-row: 1 / span 2;
  margin: 0;
  min-height: 0;
  overflow: hidden;
}
:is(.fsi-page-shell, .fsi-page-host) .hero-visual video { display: block; height: 100%; min-height: 0; object-fit: cover; object-position: center; transition: transform 1s cubic-bezier(.2,.7,.2,1); width: 100%; }
:is(.fsi-page-shell, .fsi-page-host) .hero-visual:hover video { transform: scale(1.025); }
:is(.fsi-page-shell, .fsi-page-host) .hero-visual figcaption { color: var(--white); font-size: .85rem; line-height: 1.45; padding: 1.25rem 1.5rem; }
:is(.fsi-page-shell, .fsi-page-host) .hero-visual figcaption span { border-right: 1px solid var(--line-light); margin-right: 1rem; padding-right: 1rem; }

:is(.fsi-page-shell, .fsi-page-host) .section { padding: clamp(5.5rem, 10vw, 10rem) clamp(1.25rem, 4vw, 4.5rem); }
:is(.fsi-page-shell, .fsi-page-host) .section-dark { background: var(--blue-dark); color: var(--white); }
:is(.fsi-page-shell, .fsi-page-host) .section-index { align-self: start; color: var(--muted); font-family: "Courier New", monospace; font-size: .68rem; letter-spacing: .08em; text-transform: uppercase; }
:is(.fsi-page-shell, .fsi-page-host) .section-dark .section-index { color: rgba(255,255,255,.55); }
:is(.fsi-page-shell, .fsi-page-host) .section-heading { display: grid; gap: 2rem; grid-template-columns: minmax(150px, .8fr) minmax(0, 3fr); margin-bottom: clamp(3.5rem, 8vw, 7rem); }
:is(.fsi-page-shell, .fsi-page-host) .section-heading h2,:is(.fsi-page-shell, .fsi-page-host) .manifesto h2,:is(.fsi-page-shell, .fsi-page-host) .contact h2,:is(.fsi-page-shell, .fsi-page-host) .first-footprint h2 {
  font-size: clamp(2.7rem, 5.5vw, 6.2rem);
  font-weight: 500;
  letter-spacing: -.055em;
  line-height: .98;
  margin: 0;
  max-width: 18ch;
}

:is(.fsi-page-shell, .fsi-page-host) .manifesto { display: grid; gap: 2rem; grid-template-columns: minmax(150px, .8fr) minmax(0, 3fr); isolation: isolate; overflow: hidden; padding: clamp(5rem, 9vw, 9rem) clamp(1.25rem, 4vw, 4.5rem); position: relative; }
:is(.fsi-page-shell, .fsi-page-host) .manifesto-video { height: 100%; inset: 0; object-fit: cover; opacity: .28; pointer-events: none; position: absolute; width: 100%; z-index: 0; }
:is(.fsi-page-shell, .fsi-page-host) .manifesto > div { position: relative; z-index: 1; }
:is(.fsi-page-shell, .fsi-page-host) .manifesto h2 { font-style: italic; max-width: 15ch; }
:is(.fsi-page-shell, .fsi-page-host) .manifesto > div:last-child > p:last-child { color: rgba(255,255,255,.72); font-size: 1.05rem; line-height: 1.65; margin: 2rem 0 0; max-width: 48rem; }

:is(.fsi-page-shell, .fsi-page-host) .service-list { border-top: 1px solid var(--line); }
:is(.fsi-page-shell, .fsi-page-host) .service-row {
  align-items: start;
  border-bottom: 1px solid var(--line);
  display: grid;
  gap: clamp(1rem, 3vw, 3rem);
  grid-template-columns: 54px 1.1fr 1.35fr 1fr;
  padding: 2.5rem 0;
}
:is(.fsi-page-shell, .fsi-page-host) .number,:is(.fsi-page-shell, .fsi-page-host) .service-row > span { color: var(--blue); font-family: "Courier New", monospace; font-size: .78rem; }
:is(.fsi-page-shell, .fsi-page-host) .service-row h3 { font-size: clamp(1.45rem, 2.5vw, 2.35rem); font-weight: 520; letter-spacing: -.035em; margin: 0; }
:is(.fsi-page-shell, .fsi-page-host) .service-row p { color: var(--muted); line-height: 1.65; margin: 0; }
:is(.fsi-page-shell, .fsi-page-host) .service-row ul { list-style: none; margin: 0; padding: 0; }
:is(.fsi-page-shell, .fsi-page-host) .service-row li { border-top: 1px solid var(--line); font-size: .83rem; padding: .7rem 0; }
:is(.fsi-page-shell, .fsi-page-host) .service-row li::before { color: var(--blue); content: '↘'; margin-right: .55rem; }

:is(.fsi-page-shell, .fsi-page-host) .sectors {
  background: var(--blue);
  display: grid;
  gap: 1px;
  grid-template-columns: repeat(12, 1fr);
  grid-template-rows: minmax(320px, 48vw) minmax(280px, 34vw);
  overflow: hidden;
}
:is(.fsi-page-shell, .fsi-page-host) .sector-copy { align-self: end; color: var(--white); grid-column: 1 / span 5; grid-row: 1; padding: clamp(2rem, 5vw, 5rem); z-index: 2; }
:is(.fsi-page-shell, .fsi-page-host) .sector-copy h2 { font-size: clamp(2.4rem, 4.2vw, 4.8rem); font-weight: 500; letter-spacing: -.055em; line-height: .98; margin: 0; max-width: 15ch; }
:is(.fsi-page-shell, .fsi-page-host) .sector-card { color: var(--white); margin: 0; min-height: 0; overflow: hidden; position: relative; }
:is(.fsi-page-shell, .fsi-page-host) .sector-card::after { background: linear-gradient(180deg, transparent 35%, rgba(0,0,0,.76)); content: ''; inset: 0; position: absolute; }
:is(.fsi-page-shell, .fsi-page-host) .sector-card img { filter: saturate(.75); height: 100%; object-fit: cover; transition: filter .4s ease, transform .7s ease; width: 100%; }
:is(.fsi-page-shell, .fsi-page-host) .sector-card:hover img { filter: saturate(1); transform: scale(1.025); }
:is(.fsi-page-shell, .fsi-page-host) .sector-card > div { bottom: 0; left: 0; padding: clamp(1.4rem, 3vw, 2.5rem); position: absolute; z-index: 2; }
:is(.fsi-page-shell, .fsi-page-host) .sector-card span { font-family: "Courier New", monospace; font-size: .7rem; }
:is(.fsi-page-shell, .fsi-page-host) .sector-card h3 { font-size: clamp(1.8rem, 3.2vw, 3.3rem); font-weight: 520; letter-spacing: -.045em; margin: .6rem 0 .25rem; }
:is(.fsi-page-shell, .fsi-page-host) .sector-card p { color: rgba(255,255,255,.75); margin: 0; }
:is(.fsi-page-shell, .fsi-page-host) .sector-office { grid-column: 6 / 13; grid-row: 1; }
:is(.fsi-page-shell, .fsi-page-host) .sector-hospitality { grid-column: 1 / 8; grid-row: 2; }
:is(.fsi-page-shell, .fsi-page-host) .sector-play { grid-column: 8 / 13; grid-row: 2; }

:is(.fsi-page-shell, .fsi-page-host) .project-list { display: grid; gap: clamp(5rem, 11vw, 11rem); }
:is(.fsi-page-shell, .fsi-page-host) .project { align-items: center; display: grid; gap: clamp(2rem, 6vw, 7rem); grid-template-columns: minmax(0, 1.2fr) minmax(320px, .8fr); }
:is(.fsi-page-shell, .fsi-page-host) .project:nth-child(even) { grid-template-columns: minmax(320px, .8fr) minmax(0, 1.2fr); }
:is(.fsi-page-shell, .fsi-page-host) .project:nth-child(even) .project-carousel { order: 2; }
:is(.fsi-page-shell, .fsi-page-host) .project figure { margin: 0; }
:is(.fsi-page-shell, .fsi-page-host) .project figure img { aspect-ratio: 1.18; object-fit: cover; width: 100%; }
:is(.fsi-page-shell, .fsi-page-host) .project figure figcaption { color: var(--muted); font-size: .67rem; margin-top: .65rem; }
:is(.fsi-page-shell, .fsi-page-host) .project-carousel { aspect-ratio: 4 / 3; background: var(--paper-deep); min-width: 0; overflow: hidden; position: relative; }
:is(.fsi-page-shell, .fsi-page-host) .project-carousel-track { display: flex; height: 100%; transition: transform .8s cubic-bezier(.22,.61,.36,1); }
:is(.fsi-page-shell, .fsi-page-host) .project-carousel-track figure { flex: 0 0 100%; height: 100%; }
:is(.fsi-page-shell, .fsi-page-host) .project-carousel-track img { aspect-ratio: auto; height: 100%; object-fit: cover; width: 100%; }
:is(.fsi-page-shell, .fsi-page-host) .carousel-button { align-items: center; background: rgba(255,255,255,.88); border: 0; border-radius: 50%; cursor: pointer; display: flex; height: 42px; justify-content: center; padding: 0; position: absolute; top: 50%; transform: translateY(-50%); transition: background .2s ease, transform .2s ease; width: 42px; z-index: 2; }
:is(.fsi-page-shell, .fsi-page-host) .carousel-button:hover { background: #fff; transform: translateY(-50%) scale(1.06); }
:is(.fsi-page-shell, .fsi-page-host) .carousel-button:focus-visible { outline: 2px solid var(--blue); outline-offset: 3px; }
:is(.fsi-page-shell, .fsi-page-host) .carousel-button::before { border-right: 1.5px solid var(--ink); border-top: 1.5px solid var(--ink); content: ''; height: 8px; width: 8px; }
:is(.fsi-page-shell, .fsi-page-host) .carousel-previous { left: 1rem; }
:is(.fsi-page-shell, .fsi-page-host) .carousel-next { right: 1rem; }
:is(.fsi-page-shell, .fsi-page-host) .carousel-previous::before { transform: rotate(-135deg) translate(-1px,1px); }
:is(.fsi-page-shell, .fsi-page-host) .carousel-next::before { transform: rotate(45deg) translate(-1px,1px); }
:is(.fsi-page-shell, .fsi-page-host) .carousel-pagination { bottom: 1rem; display: flex; gap: .5rem; justify-content: center; left: 50%; position: absolute; transform: translateX(-50%); z-index: 2; }
:is(.fsi-page-shell, .fsi-page-host) .carousel-dot { background: rgba(255,255,255,.55); border: 0; border-radius: 50%; cursor: pointer; height: 7px; padding: 0; transition: background .2s ease, transform .2s ease; width: 7px; }
:is(.fsi-page-shell, .fsi-page-host) .carousel-dot.is-active { background: #fff; transform: scale(1.35); }
:is(.fsi-page-shell, .fsi-page-host) .carousel-dot:focus-visible { outline: 2px solid #fff; outline-offset: 3px; }
:is(.fsi-page-shell, .fsi-page-host) .project-kicker { border-bottom: 1px solid var(--line); color: var(--blue); display: flex; font-family: "Courier New", monospace; font-size: .68rem; justify-content: space-between; padding-bottom: .75rem; text-transform: uppercase; }
:is(.fsi-page-shell, .fsi-page-host) .project-copy h3 { font-size: clamp(2.2rem, 4vw, 4.4rem); font-weight: 500; letter-spacing: -.05em; line-height: .98; margin: 1.5rem 0 .8rem; }
:is(.fsi-page-shell, .fsi-page-host) .project-meta { color: var(--muted); font-size: .78rem; letter-spacing: .04em; margin: 0 0 2.2rem; text-transform: uppercase; }
:is(.fsi-page-shell, .fsi-page-host) .project-copy dl { margin: 0; }
:is(.fsi-page-shell, .fsi-page-host) .project-copy dl > div { border-top: 1px solid var(--line); display: grid; gap: 1rem; grid-template-columns: 90px 1fr; padding: 1rem 0; }
:is(.fsi-page-shell, .fsi-page-host) .project-copy dt { color: var(--blue); font-size: .72rem; font-weight: 700; text-transform: uppercase; }
:is(.fsi-page-shell, .fsi-page-host) .project-copy dd { color: var(--muted); font-size: .9rem; line-height: 1.55; margin: 0; }

:is(.fsi-page-shell, .fsi-page-host) .process { background: var(--paper-deep); }
:is(.fsi-page-shell, .fsi-page-host) .process-grid { border-left: 1px solid var(--line); border-top: 1px solid var(--line); display: grid; grid-template-columns: repeat(3, 1fr); list-style: none; margin: 0; padding: 0; }
:is(.fsi-page-shell, .fsi-page-host) .process-grid li { border-bottom: 1px solid var(--line); border-right: 1px solid var(--line); min-height: 260px; padding: clamp(1.5rem, 3vw, 2.8rem); }
:is(.fsi-page-shell, .fsi-page-host) .process-grid span { color: var(--blue); font-family: "Courier New", monospace; font-size: .72rem; }
:is(.fsi-page-shell, .fsi-page-host) .process-grid h3 { font-size: clamp(1.6rem, 2.8vw, 2.7rem); font-weight: 520; letter-spacing: -.04em; margin: 3.4rem 0 .7rem; }
:is(.fsi-page-shell, .fsi-page-host) .process-grid p { color: var(--muted); font-size: .9rem; line-height: 1.6; margin: 0; max-width: 28ch; }

:is(.fsi-page-shell, .fsi-page-host) .why .section-heading { margin-bottom: 5rem; }
:is(.fsi-page-shell, .fsi-page-host) .why-grid { border-left: 1px solid var(--line-light); border-top: 1px solid var(--line-light); display: grid; grid-template-columns: repeat(4, 1fr); }
:is(.fsi-page-shell, .fsi-page-host) .why-grid article { border-bottom: 1px solid var(--line-light); border-right: 1px solid var(--line-light); min-height: 330px; padding: clamp(1.5rem, 3vw, 2.7rem); }
:is(.fsi-page-shell, .fsi-page-host) .why-grid span { color: rgba(255,255,255,.6); font-family: "Courier New", monospace; font-size: .72rem; }
:is(.fsi-page-shell, .fsi-page-host) .why-grid h3 { font-size: clamp(1.45rem, 2.4vw, 2.3rem); font-weight: 520; letter-spacing: -.04em; margin: 4rem 0 1rem; }
:is(.fsi-page-shell, .fsi-page-host) .why-grid p { color: rgba(255,255,255,.68); line-height: 1.6; margin: 0; }

:is(.fsi-page-shell, .fsi-page-host) .first-footprint {
  --footprint-land: rgba(18, 32, 51, .045);
  --footprint-border: rgba(18, 32, 51, .24);
  border-bottom: 1px solid var(--line);
  overflow: hidden;
}
:is(.fsi-page-shell, .fsi-page-host) .first-footprint__container {
  display: grid;
  gap: clamp(2rem, 4vw, 5rem);
  grid-template-areas: "content map" "stats map" "cities cities";
  grid-template-columns: minmax(260px, .62fr) minmax(520px, 1.38fr);
}
:is(.fsi-page-shell, .fsi-page-host) .first-footprint__content { align-self: start; grid-area: content; }
:is(.fsi-page-shell, .fsi-page-host) .first-footprint h2 { font-size: clamp(2.5rem, 4vw, 4.8rem); max-width: 13ch; }
:is(.fsi-page-shell, .fsi-page-host) .first-footprint__description { color: var(--muted); line-height: 1.7; margin: 2rem 0 0; max-width: 37rem; }
:is(.fsi-page-shell, .fsi-page-host) .first-footprint__map-wrapper {
  align-self: center;
  border-bottom: 1px solid var(--line);
  grid-area: map;
  min-width: 0;
  opacity: 0;
  overflow: hidden;
  position: relative;
  translate: 0 -2rem;
  transform: translateY(14px);
  transition: opacity .55s ease, transform .55s cubic-bezier(.2,.7,.2,1);
}
:is(.fsi-page-shell, .fsi-page-host) .first-footprint.is-visible .first-footprint__map-wrapper { opacity: 1; transform: none; }
:is(.fsi-page-shell, .fsi-page-host) .first-footprint__map { display: block; height: auto; overflow: hidden; width: 100%; }
:is(.fsi-page-shell, .fsi-page-host) .first-footprint__countries { opacity: 0; transition: opacity .5s ease .25s; }
:is(.fsi-page-shell, .fsi-page-host) .first-footprint.is-visible .first-footprint__countries { opacity: 1; }
:is(.fsi-page-shell, .fsi-page-host) .first-footprint__country { fill: var(--footprint-land); stroke: var(--footprint-border); stroke-linejoin: round; stroke-width: .8; vector-effect: non-scaling-stroke; }
:is(.fsi-page-shell, .fsi-page-host) .first-footprint__country.is-indonesia { fill: rgba(11, 61, 145, .12); stroke: rgba(11, 61, 145, .55); }
:is(.fsi-page-shell, .fsi-page-host) .first-footprint__route {
  --route-opacity: .65;
  fill: none;
  opacity: 0;
  stroke: var(--blue);
  stroke-linecap: round;
  stroke-width: 1.35;
  transition: stroke-dashoffset var(--duration) cubic-bezier(.4,0,.2,1) var(--delay), opacity .12s ease var(--delay);
  vector-effect: non-scaling-stroke;
}
:is(.fsi-page-shell, .fsi-page-host) .first-footprint__route.is-secondary { --route-opacity: .32; stroke-width: 1; }
:is(.fsi-page-shell, .fsi-page-host) .first-footprint.is-visible .first-footprint__route { opacity: var(--route-opacity); }
:is(.fsi-page-shell, .fsi-page-host) .first-footprint__location {
  opacity: 0;
  transform: scale(.72);
  transform-box: fill-box;
  transform-origin: center;
  transition: opacity .28s ease var(--delay), transform .34s cubic-bezier(.2,.8,.2,1) var(--delay);
}
:is(.fsi-page-shell, .fsi-page-host) .first-footprint.is-visible .first-footprint__location { opacity: 1; transform: none; }
:is(.fsi-page-shell, .fsi-page-host) .first-footprint__marker { fill: var(--blue); stroke: var(--paper); stroke-width: 2.5; vector-effect: non-scaling-stroke; }
:is(.fsi-page-shell, .fsi-page-host) .first-footprint__location.is-headquarters .first-footprint__marker { fill: var(--blue-dark); }
:is(.fsi-page-shell, .fsi-page-host) .first-footprint__origin-ring { fill: none; opacity: .45; stroke: var(--blue); stroke-width: 1; vector-effect: non-scaling-stroke; }
:is(.fsi-page-shell, .fsi-page-host) .first-footprint__destination-ring { fill: none; stroke: var(--blue); stroke-width: 1; vector-effect: non-scaling-stroke; }
:is(.fsi-page-shell, .fsi-page-host) .first-footprint__label {
  fill: var(--ink);
  font-family: Inter, Arial, Helvetica, sans-serif;
  font-size: 12px;
  font-weight: 650;
  paint-order: stroke;
  stroke: rgba(255,255,255,.94);
  stroke-linejoin: round;
  stroke-width: 4px;
}
:is(.fsi-page-shell, .fsi-page-host) .first-footprint__label-sub { fill: var(--blue); font-size: 9px; font-weight: 750; letter-spacing: .12em; text-transform: uppercase; }
:is(.fsi-page-shell, .fsi-page-host) .first-footprint__legend { bottom: 1.1rem; display: flex; flex-wrap: wrap; gap: 1rem; left: 1.2rem; position: absolute; }
:is(.fsi-page-shell, .fsi-page-host) .first-footprint__legend span { align-items: center; color: var(--muted); display: flex; font-size: .65rem; gap: .45rem; letter-spacing: .05em; text-transform: uppercase; }
:is(.fsi-page-shell, .fsi-page-host) .first-footprint__legend i { background: var(--blue); border: 2px solid var(--paper); border-radius: 50%; box-shadow: 0 0 0 1px var(--blue); height: 7px; width: 7px; }
:is(.fsi-page-shell, .fsi-page-host) .first-footprint__legend i.is-head-office { background: var(--blue-dark); box-shadow: 0 0 0 3px rgba(11,61,145,.2); height: 9px; width: 9px; }
:is(.fsi-page-shell, .fsi-page-host) .first-footprint__note { color: var(--muted); font-size: .62rem; margin: .75rem 0; padding-right: .5rem; text-align: right; }
:is(.fsi-page-shell, .fsi-page-host) .first-footprint__stats {
  align-self: end;
  border-bottom: 1px solid var(--line);
  border-top: 1px solid var(--line);
  display: grid;
  grid-area: stats;
  grid-template-columns: repeat(3, 1fr);
  margin: 0;
  opacity: 0;
  transform: translateY(10px);
  transition: opacity .4s ease var(--stats-delay, 3s), transform .4s ease var(--stats-delay, 3s);
}
:is(.fsi-page-shell, .fsi-page-host) .first-footprint.is-visible .first-footprint__stats { opacity: 1; transform: none; }
:is(.fsi-page-shell, .fsi-page-host) .first-footprint__stats div { padding: 1.2rem .8rem 1.2rem 0; }
:is(.fsi-page-shell, .fsi-page-host) .first-footprint__stats div + div { border-left: 1px solid var(--line); padding-left: .8rem; }
:is(.fsi-page-shell, .fsi-page-host) .first-footprint__stats dt { color: var(--blue); font-size: clamp(1.55rem, 2.5vw, 2.25rem); font-weight: 520; letter-spacing: -.04em; }
:is(.fsi-page-shell, .fsi-page-host) .first-footprint__stats dd { color: var(--muted); font-size: .64rem; letter-spacing: .1em; margin: .35rem 0 0; text-transform: uppercase; }
:is(.fsi-page-shell, .fsi-page-host) .first-footprint__cities { border-bottom: 1px solid var(--line); border-top: 1px solid var(--line); display: grid; gap: 1.5rem; grid-area: cities; grid-template-columns: minmax(8rem, .25fr) 1fr; padding: 1.25rem 0; }
:is(.fsi-page-shell, .fsi-page-host) .first-footprint__cities > p { color: var(--blue); font-size: .64rem; letter-spacing: .12em; margin: .25rem 0 0; text-transform: uppercase; }
:is(.fsi-page-shell, .fsi-page-host) .first-footprint__cities ul { display: grid; gap: .7rem 1.25rem; grid-template-columns: repeat(6, 1fr); list-style: none; margin: 0; padding: 0; }
:is(.fsi-page-shell, .fsi-page-host) .first-footprint__cities li { color: var(--muted); font-size: .75rem; }
:is(.fsi-page-shell, .fsi-page-host) .first-footprint__cities li:first-child { color: var(--ink); font-weight: 650; }
:is(.fsi-page-shell, .fsi-page-host) .first-footprint__cities li:last-child { color: var(--blue); font-style: italic; }

:is(.fsi-page-shell, .fsi-page-host) .faq-list { border-top: 1px solid var(--line); margin-left: calc((100% + 2rem) * .205); }
:is(.fsi-page-shell, .fsi-page-host) .faq-list details { border-bottom: 1px solid var(--line); }
:is(.fsi-page-shell, .fsi-page-host) .faq-list summary { align-items: center; cursor: pointer; display: grid; font-size: clamp(1rem, 1.7vw, 1.35rem); font-weight: 570; gap: 1rem; grid-template-columns: 50px 1fr; list-style: none; padding: 1.5rem 0; }
:is(.fsi-page-shell, .fsi-page-host) .faq-list summary::-webkit-details-marker { display: none; }
:is(.fsi-page-shell, .fsi-page-host) .faq-list summary::after { color: var(--blue); content: '+'; font-size: 1.5rem; grid-column: 3; transition: transform .2s ease; }
:is(.fsi-page-shell, .fsi-page-host) .faq-list details[open] summary::after { transform: rotate(45deg); }
:is(.fsi-page-shell, .fsi-page-host) .faq-list summary span { color: var(--blue); font-family: "Courier New", monospace; font-size: .7rem; }
:is(.fsi-page-shell, .fsi-page-host) .faq-list details > p { color: var(--muted); line-height: 1.65; margin: 0; max-width: 55rem; padding: 0 4rem 1.8rem; }

:is(.fsi-page-shell, .fsi-page-host) .contact { background: var(--blue); color: var(--white); padding: clamp(5.5rem, 11vw, 11rem) clamp(1.25rem, 4vw, 4.5rem); }
:is(.fsi-page-shell, .fsi-page-host) .contact h2 { font-size: clamp(3.2rem, 8vw, 8.5rem); max-width: 18ch; }
:is(.fsi-page-shell, .fsi-page-host) .contact > p:not(.eyebrow) { color: rgba(255,255,255,.72); font-size: 1.05rem; line-height: 1.65; margin: 2.5rem 0; max-width: 42rem; }
:is(.fsi-page-shell, .fsi-page-host) .contact-actions { align-items: center; display: flex; flex-wrap: wrap; gap: 2rem; }
:is(.fsi-page-shell, .fsi-page-host) .contact-link { border-bottom: 1px solid rgba(255,255,255,.6); padding: .8rem 0 .4rem; }
:is(.fsi-page-shell, .fsi-page-host) .contact-link span { margin-left: .7rem; }

:is(.fsi-page-shell, .fsi-page-host) .section-heading .hero-actions { margin-top: 1.75rem; }


:is(.fsi-page-shell, .fsi-page-host) .reveal { animation: rise .7s cubic-bezier(.2,.7,.2,1) both; }
:is(.fsi-page-shell, .fsi-page-host) .reveal-delay { animation-delay: .14s; }
@keyframes rise { from { opacity: 0; transform: translateY(18px); } }
@supports (animation-timeline: view()) {
  :is(.fsi-page-shell, .fsi-page-host) .scroll-reveal { animation: reveal-on-scroll linear both; animation-range: entry 10% cover 32%; animation-timeline: view(); }
  @keyframes reveal-on-scroll { from { opacity: 0; transform: translateY(24px); } }
}

@media (max-width: 1100px) {
  :is(.fsi-page-shell, .fsi-page-host) .site-header { grid-template-columns: 1fr auto; }
  :is(.fsi-page-shell, .fsi-page-host) .desktop-nav { display: none; }
  :is(.fsi-page-shell, .fsi-page-host) .mobile-menu { display: block; }
  :is(.fsi-page-shell, .fsi-page-host) .hero { grid-template-columns: 1fr; height: auto; max-height: none; min-height: 0; }
  :is(.fsi-page-shell, .fsi-page-host) .hero-copy { grid-column: 1; grid-row: 1; min-height: calc(100svh - 82px); padding-bottom: 7rem; }
  :is(.fsi-page-shell, .fsi-page-host) .hero-visual { grid-column: 1; grid-row: 2; height: clamp(480px, 62svh, 680px); }
  :is(.fsi-page-shell, .fsi-page-host) .hero-proof { align-self: end; grid-column: 1; grid-row: 1; margin-bottom: 2rem; position: relative; z-index: 1; }
  :is(.fsi-page-shell, .fsi-page-host) .service-row { grid-template-columns: 45px 1fr 1.4fr; }
  :is(.fsi-page-shell, .fsi-page-host) .service-row ul { grid-column: 3; }
  :is(.fsi-page-shell, .fsi-page-host) .why-grid { grid-template-columns: repeat(2, 1fr); }
  :is(.fsi-page-shell, .fsi-page-host) .first-footprint__container { grid-template-areas: "content" "map" "stats" "cities"; grid-template-columns: 1fr; }
  :is(.fsi-page-shell, .fsi-page-host) .first-footprint__cities ul { grid-template-columns: repeat(4, 1fr); }
  :is(.fsi-page-shell, .fsi-page-host) .first-footprint h2 { max-width: 13ch; }
  :is(.fsi-page-shell, .fsi-page-host) .first-footprint__map-wrapper { translate: none; }
  :is(.fsi-page-shell, .fsi-page-host) .first-footprint__stats { max-width: 36rem; width: 100%; }
}

@media (max-width: 820px) {
  :is(.fsi-page-shell, .fsi-page-host) .section-heading,:is(.fsi-page-shell, .fsi-page-host) .manifesto { grid-template-columns: 1fr; }
  :is(.fsi-page-shell, .fsi-page-host) .section-heading { margin-bottom: 3.5rem; }
  :is(.fsi-page-shell, .fsi-page-host) .service-row { grid-template-columns: 38px 1fr; }
  :is(.fsi-page-shell, .fsi-page-host) .service-row p,:is(.fsi-page-shell, .fsi-page-host) .service-row ul { grid-column: 2; }
  :is(.fsi-page-shell, .fsi-page-host) .sectors { display: block; }
  :is(.fsi-page-shell, .fsi-page-host) .sector-copy { min-height: 440px; padding: 4.5rem 1.25rem; }
  :is(.fsi-page-shell, .fsi-page-host) .sector-card { height: 70svh; }
  :is(.fsi-page-shell, .fsi-page-host) .project,:is(.fsi-page-shell, .fsi-page-host) .project:nth-child(even) { grid-template-columns: 1fr; }
  :is(.fsi-page-shell, .fsi-page-host) .project:nth-child(even) .project-carousel { order: 0; }
  :is(.fsi-page-shell, .fsi-page-host) .process-grid { grid-template-columns: repeat(2, 1fr); }
  :is(.fsi-page-shell, .fsi-page-host) .faq-list { margin-left: 0; }
}

@media (max-width: 560px) {
  :is(.fsi-page-shell, .fsi-page-host) .site-header { min-height: 70px; }
  :is(.fsi-page-shell, .fsi-page-host) .brand span { font-size: .68rem; height: 25px; width: 19px; }
  :is(.fsi-page-shell, .fsi-page-host) .brand-icon { height: 25px; }
  :is(.fsi-page-shell, .fsi-page-host) .header-actions > .button-small { font-size: 0; min-height: 40px; padding: .65rem .8rem; }
  :is(.fsi-page-shell, .fsi-page-host) .header-actions > .button-small::after { content: 'Start project'; font-size: .72rem; }
  :is(.fsi-page-shell, .fsi-page-host) .mobile-menu summary { padding: .7rem .35rem; }
  :is(.fsi-page-shell, .fsi-page-host) h1 { font-size: clamp(2.65rem, 11vw, 3.2rem); }
  :is(.fsi-page-shell, .fsi-page-host) .section-heading h2,:is(.fsi-page-shell, .fsi-page-host) .manifesto h2,:is(.fsi-page-shell, .fsi-page-host) .contact h2,:is(.fsi-page-shell, .fsi-page-host) .first-footprint h2,:is(.fsi-page-shell, .fsi-page-host) .sector-copy h2 { font-size: clamp(2.15rem, 9.5vw, 3rem); }
  :is(.fsi-page-shell, .fsi-page-host) .hero-copy { min-height: calc(100svh - 70px); padding-top: 3.2rem; }
  :is(.fsi-page-shell, .fsi-page-host) .hero-proof { gap: .8rem; }
  :is(.fsi-page-shell, .fsi-page-host) .hero-proof div + div { padding-left: .8rem; }
  :is(.fsi-page-shell, .fsi-page-host) .hero-proof dd { font-size: .76rem; }
  :is(.fsi-page-shell, .fsi-page-host) .hero-visual { height: clamp(360px, 56svh, 520px); }
  :is(.fsi-page-shell, .fsi-page-host) .section { padding-bottom: 5rem; padding-top: 5rem; }
  :is(.fsi-page-shell, .fsi-page-host) .service-row { padding: 2rem 0; }
  :is(.fsi-page-shell, .fsi-page-host) .service-row h3 { font-size: 1.55rem; }
  :is(.fsi-page-shell, .fsi-page-host) .sector-card { height: 64svh; }
  :is(.fsi-page-shell, .fsi-page-host) .project-copy dl > div { grid-template-columns: 1fr; gap: .45rem; }
  :is(.fsi-page-shell, .fsi-page-host) .process-grid,:is(.fsi-page-shell, .fsi-page-host) .why-grid { grid-template-columns: 1fr; }
  :is(.fsi-page-shell, .fsi-page-host) .process-grid li,:is(.fsi-page-shell, .fsi-page-host) .why-grid article { min-height: 240px; }
  :is(.fsi-page-shell, .fsi-page-host) .first-footprint__container { gap: 2.5rem; }
  :is(.fsi-page-shell, .fsi-page-host) .first-footprint__map-wrapper { margin-left: -1.25rem; margin-right: -1.25rem; }
  :is(.fsi-page-shell, .fsi-page-host) .first-footprint__location.is-secondary .first-footprint__label { display: none; }
  :is(.fsi-page-shell, .fsi-page-host) .first-footprint__location[data-location="surabaya"] .first-footprint__label { display: none; }
  :is(.fsi-page-shell, .fsi-page-host) .first-footprint__label { font-size: 22px; stroke-width: 7px; }
  :is(.fsi-page-shell, .fsi-page-host) .first-footprint__label-sub { font-size: 16px; }
  :is(.fsi-page-shell, .fsi-page-host) .first-footprint__legend { padding: .8rem 1.25rem 0; position: static; }
  :is(.fsi-page-shell, .fsi-page-host) .first-footprint__note { font-size: .58rem; margin-bottom: .8rem; padding: 0 1.25rem; text-align: left; }
  :is(.fsi-page-shell, .fsi-page-host) .first-footprint__cities { grid-template-columns: 1fr; }
  :is(.fsi-page-shell, .fsi-page-host) .first-footprint__cities ul { grid-template-columns: repeat(2, 1fr); }
  :is(.fsi-page-shell, .fsi-page-host) .faq-list details > p { padding-left: 0; padding-right: 0; }
  :is(.fsi-page-shell, .fsi-page-host) .faq-list summary { grid-template-columns: 32px 1fr; }
  :is(.fsi-page-shell, .fsi-page-host) .contact-actions { align-items: stretch; flex-direction: column; }
}

@media (prefers-reduced-motion: reduce) {
  html:has(> body.fsi-landing) { scroll-behavior: auto; }
  :is(.fsi-page-shell, .fsi-page-host),:is(.fsi-page-shell, .fsi-page-host) *,:is(.fsi-page-shell, .fsi-page-host) *::before,:is(.fsi-page-shell, .fsi-page-host) *::after { animation-duration: .01ms !important; transition-duration: .01ms !important; }
  :is(.fsi-page-shell, .fsi-page-host) .manifesto-video { display: none; }
  :is(.fsi-page-shell, .fsi-page-host) .first-footprint__map-wrapper,:is(.fsi-page-shell, .fsi-page-host) .first-footprint__countries,:is(.fsi-page-shell, .fsi-page-host) .first-footprint__location,:is(.fsi-page-shell, .fsi-page-host) .first-footprint__stats { opacity: 1 !important; transform: none !important; }
  :is(.fsi-page-shell, .fsi-page-host) .first-footprint__route { stroke-dashoffset: 0 !important; }
}

@media (max-width: 820px) {
  :is(.fsi-page-shell, .fsi-page-host) .hero { grid-template-rows: auto auto auto; }
  :is(.fsi-page-shell, .fsi-page-host) .hero-copy { grid-row: 1; min-height: 0; padding-bottom: 2rem; }
  :is(.fsi-page-shell, .fsi-page-host) .hero-visual { grid-row: 2; }
  :is(.fsi-page-shell, .fsi-page-host) .hero-proof { align-self: auto; grid-row: 3; margin: 2rem clamp(1.25rem, 7vw, 8rem) 3rem clamp(1.25rem, 4vw, 4.5rem); }
}
