:is(.fsi-page-shell, .fsi-page-host) {
  --blue: #0b3d91;
  --blue-dark: #06265e;
  --ink: #122033;
  --line: #dbe1e8;
  --line-light: rgba(255,255,255,.2);
  --muted: #5f6874;
  --paper: #fff;
  --white: #fff;
}
: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) { background: var(--paper); color: var(--ink); font-family: Arial,Helvetica,sans-serif; margin: 0; }
: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) .skip-link { background: var(--white); left: 1rem; padding: .8rem 1rem; position: fixed; top: -100px; z-index: 100; }
:is(.fsi-page-shell, .fsi-page-host) .skip-link:focus { top: 1rem; }
:is(.fsi-page-shell, .fsi-page-host) .site-header { align-items: center; background: rgba(255,255,255,.94); border-bottom: 1px solid var(--line); display: grid; grid-template-columns: 1fr auto 1fr; min-height: 82px; padding: .8rem clamp(1.25rem,4vw,4.5rem); position: sticky; top: 0; z-index: 20; }
:is(.fsi-page-shell, .fsi-page-host) .brand { align-items: center; display: inline-flex; width: fit-content; }
:is(.fsi-page-shell, .fsi-page-host) .brand-icon { height: 34px; object-fit: contain; width: auto; }
:is(.fsi-page-shell, .fsi-page-host) .desktop-nav { display: flex; gap: clamp(1rem,2.5vw,2.5rem); }
:is(.fsi-page-shell, .fsi-page-host) .desktop-nav a,:is(.fsi-page-shell, .fsi-page-host) .mobile-menu a { font-size: .77rem; }
:is(.fsi-page-shell, .fsi-page-host) .header-actions { align-items: center; display: flex; gap: .8rem; 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: .76rem; list-style: none; padding: .8rem; }
:is(.fsi-page-shell, .fsi-page-host) .mobile-menu nav { background: var(--white); border: 1px solid var(--line); display: grid; min-width: 190px; padding: .6rem; position: absolute; right: 0; top: calc(100% + 1rem); }
:is(.fsi-page-shell, .fsi-page-host) .mobile-menu nav a { padding: .8rem; }
:is(.fsi-page-shell, .fsi-page-host) .button { background: var(--blue); border: 1px solid var(--blue); color: var(--white); display: inline-flex; font-size: .78rem; font-weight: 700; justify-content: center; letter-spacing: .03em; padding: 1rem 1.25rem; transition: background .25s ease,border-color .25s ease,transform .25s ease; }
:is(.fsi-page-shell, .fsi-page-host) .button:hover { background: var(--blue-dark); border-color: var(--blue-dark); transform: translateY(-2px); }
:is(.fsi-page-shell, .fsi-page-host) .button-small { padding: .8rem 1rem; }
: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; min-height: 0; padding: clamp(4rem,10svh,7rem) 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,.68); }
: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 { font-size: clamp(3.2rem,min(6.4vw,8.5svh),7rem); font-weight: 500; letter-spacing: -.065em; line-height: .94; margin: 0; max-width: 14ch; 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) .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-column: 1; grid-row: 2; grid-template-columns: repeat(3,1fr); 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: .86rem; font-weight: 650; margin: .45rem 0 0; }
:is(.fsi-page-shell, .fsi-page-host) .hero-visual { background: var(--blue); display: grid; grid-column: 2; grid-row: 1 / span 2; grid-template-rows: minmax(0,1fr) auto; height: 100%; margin: 0; min-height: 0; overflow: hidden; }
:is(.fsi-page-shell, .fsi-page-host) .hero-visual img { height: 100%; min-height: 0; object-fit: cover; transition: transform 1s cubic-bezier(.2,.7,.2,1); width: 100%; }
:is(.fsi-page-shell, .fsi-page-host) .hero-visual:hover img { 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: .09em; text-transform: uppercase; }
:is(.fsi-page-shell, .fsi-page-host) .section-dark .section-index { color: rgba(255,255,255,.54); }
: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 { font-size: clamp(2.7rem,5.5vw,6.2rem); font-weight: 500; letter-spacing: -.058em; line-height: .96; margin: 0; max-width: 18ch; }
:is(.fsi-page-shell, .fsi-page-host) .section-intro { color: rgba(255,255,255,.7); line-height: 1.7; margin: 2rem 0 0; max-width: 48rem; }
: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 > 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: 52px 1.1fr 1.25fr .9fr; padding: 2.5rem 0; }
:is(.fsi-page-shell, .fsi-page-host) .service-row > span,:is(.fsi-page-shell, .fsi-page-host) .journey > li > span,:is(.fsi-page-shell, .fsi-page-host) .process-grid > li > span { color: var(--blue); font-family: "Courier New",monospace; font-size: .72rem; }
:is(.fsi-page-shell, .fsi-page-host) .service-row h3 { font-size: clamp(1.5rem,2.6vw,2.5rem); font-weight: 520; letter-spacing: -.04em; 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: .82rem; padding: .72rem 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) .journey { display: grid; grid-template-columns: repeat(4,1fr); list-style: none; margin: 0; padding: 0; position: relative; }
:is(.fsi-page-shell, .fsi-page-host) .journey::before,:is(.fsi-page-shell, .fsi-page-host) .journey::after { content: ""; left: 0; position: absolute; top: 19px; width: 100%; }
:is(.fsi-page-shell, .fsi-page-host) .journey::before { border-top: 1px solid var(--line-light); }
:is(.fsi-page-shell, .fsi-page-host) .journey::after { border-top: 2px solid #6ee7a0; transform: scaleX(0); transform-origin: left; }
:is(.fsi-page-shell, .fsi-page-host) .journey li { padding: 0 clamp(1rem,3vw,2.5rem) 0 0; position: relative; }
:is(.fsi-page-shell, .fsi-page-host) .journey li::before { background: var(--blue-dark); border: 2px solid #b9d2ff; border-radius: 50%; content: ""; display: block; height: 13px; margin: 13px 0 2.2rem; position: relative; width: 13px; z-index: 1; }
:is(.fsi-page-shell, .fsi-page-host) .journey h3 { font-size: clamp(1.6rem,3vw,2.8rem); font-weight: 520; letter-spacing: -.045em; margin: .9rem 0; }
:is(.fsi-page-shell, .fsi-page-host) .journey p { color: rgba(255,255,255,.65); line-height: 1.6; margin: 0; max-width: 17rem; }
@supports (animation-timeline: view()) {
  :is(.fsi-page-shell, .fsi-page-host) .journey::after { animation: draw-journey linear both; animation-range: entry 25% cover 55%; animation-timeline: view(); }
  :is(.fsi-page-shell, .fsi-page-host) .journey li::before { animation: activate-node linear both; animation-range: entry 30% cover 60%; animation-timeline: view(); }
  @keyframes draw-journey { to { transform: scaleX(1); } }
  @keyframes activate-node { to { background: #6ee7a0; border-color: #6ee7a0; } }
}
:is(.fsi-page-shell, .fsi-page-host) .project-list { display: grid; gap: clamp(1.25rem,2.5vw,2.5rem); grid-template-columns: repeat(2,minmax(0,1fr)); }
:is(.fsi-page-shell, .fsi-page-host) .project-card { border: 1px solid var(--line); display: grid; grid-template-rows: auto 1fr; }
:is(.fsi-page-shell, .fsi-page-host) .project-card-featured { grid-column: 1/-1; grid-template-columns: minmax(0,1.35fr) minmax(320px,.65fr); grid-template-rows: none; }
:is(.fsi-page-shell, .fsi-page-host) .project-gallery { aspect-ratio: 4/3; background: #edf1f5; overflow: hidden; position: relative; }
:is(.fsi-page-shell, .fsi-page-host) .project-gallery:focus-visible { outline: 2px solid var(--blue); outline-offset: 3px; }
:is(.fsi-page-shell, .fsi-page-host) .project-gallery figure { inset: 0; margin: 0; opacity: 0; overflow: hidden; pointer-events: none; position: absolute; transition: opacity .75s ease; }
:is(.fsi-page-shell, .fsi-page-host) .project-gallery figure.is-active { opacity: 1; pointer-events: auto; z-index: 1; }
:is(.fsi-page-shell, .fsi-page-host) .project-gallery img { display: block; height: 100%; object-fit: cover; transition: transform .7s cubic-bezier(.2,.7,.2,1); width: 100%; }
:is(.fsi-page-shell, .fsi-page-host) .project-gallery figure:hover img { transform: scale(1.025); }
:is(.fsi-page-shell, .fsi-page-host) .carousel-button { background: rgba(255,255,255,.9); border: 1px solid rgba(9,36,70,.18); border-radius: 50%; color: var(--blue); cursor: pointer; display: grid; height: 42px; padding: 0; place-items: center; position: absolute; top: 50%; transform: translateY(-50%); transition: background .25s ease,transform .25s ease; width: 42px; z-index: 3; }
:is(.fsi-page-shell, .fsi-page-host) .carousel-button::before { border: solid currentColor; border-width: 0 1.5px 1.5px 0; content: ""; height: 8px; width: 8px; }
:is(.fsi-page-shell, .fsi-page-host) .carousel-previous::before { transform: rotate(135deg); }
:is(.fsi-page-shell, .fsi-page-host) .carousel-next::before { transform: rotate(-45deg); }
:is(.fsi-page-shell, .fsi-page-host) .carousel-button:hover,:is(.fsi-page-shell, .fsi-page-host) .carousel-button:focus-visible { background: var(--white); transform: translateY(-50%) scale(1.06); }
: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-pagination { align-items: center; background: rgba(9,36,70,.58); border-radius: 999px; bottom: 1rem; display: flex; gap: .5rem; left: 50%; padding: .55rem .65rem; position: absolute; transform: translateX(-50%); z-index: 3; }
:is(.fsi-page-shell, .fsi-page-host) .carousel-pagination span { background: var(--white); border-radius: 50%; height: 6px; opacity: .45; transition: opacity .25s ease,transform .25s ease; width: 6px; }
:is(.fsi-page-shell, .fsi-page-host) .carousel-pagination span.is-active { opacity: 1; transform: scale(1.3); }
:is(.fsi-page-shell, .fsi-page-host) .project-copy { align-content: start; display: grid; padding: clamp(1.75rem,3.5vw,3.5rem); }
:is(.fsi-page-shell, .fsi-page-host) .case-kicker { color: var(--blue); font-family: "Courier New",monospace; font-size: .72rem; letter-spacing: .08em; text-transform: uppercase; }
:is(.fsi-page-shell, .fsi-page-host) .project-copy h3 { font-size: clamp(1.8rem,3vw,3.25rem); font-weight: 520; letter-spacing: -.045em; margin: 1rem 0 1.25rem; }
:is(.fsi-page-shell, .fsi-page-host) .project-copy > p:not(.case-kicker) { color: var(--muted); line-height: 1.65; margin: 0; }
:is(.fsi-page-shell, .fsi-page-host) .project-meta { border-top: 1px solid var(--line); color: var(--blue); display: flex; flex-wrap: wrap; font-size: .7rem; gap: .65rem 1.25rem; list-style: none; margin: 2rem 0 0; padding: 1rem 0 0; text-transform: uppercase; }
:is(.fsi-page-shell, .fsi-page-host) .project-meta li + li::before { color: var(--muted); content: "·"; margin-right: 1.25rem; }
:is(.fsi-page-shell, .fsi-page-host) .process-grid { display: grid; grid-template-columns: repeat(5,1fr); list-style: none; margin: 0; padding: 0; }
:is(.fsi-page-shell, .fsi-page-host) .process-grid li { border: 1px solid var(--line); margin-left: -1px; min-height: 330px; padding: clamp(1.5rem,3vw,2.5rem); }
:is(.fsi-page-shell, .fsi-page-host) .process-grid h3 { font-size: clamp(1.4rem,2.4vw,2.2rem); font-weight: 520; margin: 3.5rem 0 1rem; }
:is(.fsi-page-shell, .fsi-page-host) .process-grid p { color: var(--muted); line-height: 1.6; margin: 0; }
: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 auto; 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; }
: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: 46rem; }
: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) .button-light { background: var(--white); border-color: var(--white); color: var(--blue-dark); }
:is(.fsi-page-shell, .fsi-page-host) .contact-link { border-bottom: 1px solid rgba(255,255,255,.5); padding-bottom: .35rem; }
:is(.fsi-page-shell, .fsi-page-host) .reveal { animation: rise .8s 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 12% cover 30%; 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) .project-card-featured { grid-template-columns: 1fr; }
  :is(.fsi-page-shell, .fsi-page-host) .process-grid { grid-template-columns: repeat(3,1fr); }
}
@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); }
  :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) .journey { gap: 0; grid-template-columns: 1fr; }
  :is(.fsi-page-shell, .fsi-page-host) .journey::before,:is(.fsi-page-shell, .fsi-page-host) .journey::after { border-left: 1px solid var(--line-light); border-top: 0; height: 100%; left: 6px; top: 0; width: 0; }
  :is(.fsi-page-shell, .fsi-page-host) .journey::after { border-left: 2px solid #6ee7a0; transform: scaleY(0); transform-origin: top; }
  :is(.fsi-page-shell, .fsi-page-host) .journey li { min-height: 150px; padding: 0 0 2rem 3rem; }
  :is(.fsi-page-shell, .fsi-page-host) .journey li::before { left: -3rem; margin: 0; position: absolute; top: 4px; }
  :is(.fsi-page-shell, .fsi-page-host) .project-list { grid-template-columns: 1fr; }
  :is(.fsi-page-shell, .fsi-page-host) .project-card-featured { grid-column: auto; }
  :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-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) 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 { font-size: clamp(2.15rem,9.5vw,3rem); }
  :is(.fsi-page-shell, .fsi-page-host) .hero-visual { height: clamp(360px,56svh,520px); }
  :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: .74rem; }
  :is(.fsi-page-shell, .fsi-page-host) .section { padding-bottom: 5rem; padding-top: 5rem; }
  :is(.fsi-page-shell, .fsi-page-host) .carousel-button { height: 40px; width: 40px; }
  :is(.fsi-page-shell, .fsi-page-host) .process-grid { grid-template-columns: 1fr; }
  :is(.fsi-page-shell, .fsi-page-host) .process-grid li { min-height: 240px; }
  :is(.fsi-page-shell, .fsi-page-host) .faq-list details > p { padding-left: 0; padding-right: 0; }
  :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) .journey::after { transform: none; }
}
