@import url('fonts.css?v=2');

:root{--fm-paper:#f6f3ec;--fm-ink:#14130f;--fm-blue:#2238ff;--fm-muted:#57534b;--fm-rule:#d9d3c4;--fm-heading:'Cabinet Grotesk',Arial,sans-serif;--fm-body:'Switzer',Arial,sans-serif;--fm-serif:'Instrument Serif',Georgia,serif}

/* Agency display-5xl / 4xl / 2xl scale, with a portfolio-specific hero. */
:root{
  --fm-type-hero:clamp(2.55rem, .75rem + 7.1vw, 8rem);
  --fm-type-section:clamp(3rem, 2.07rem + 3.47vw, 5.25rem);
  --fm-type-subheading:clamp(2.25rem, 1.58rem + 2.5vw, 3.75rem);
  --fm-type-card:clamp(1.75rem, 1.2rem + 1.11vw, 2.25rem);
  --fm-type-body:clamp(1.125rem, 1.05rem + .28vw, 1.25rem);
  --fm-type-lead:clamp(1.25rem, 1rem + 1vw, 1.875rem);
  --fm-type-label:clamp(.75rem, .7rem + .15vw, .875rem);
}
html.lenis{scroll-behavior:auto}
@media(max-width:700px){:root{--fm-type-hero:clamp(2.65rem,13.5vw,4.5rem)}}
@media(prefers-reduced-motion:no-preference){html{scroll-behavior:smooth}html.lenis{scroll-behavior:auto}}
*{box-sizing:border-box}
html{scroll-padding-top:32px}
body{margin:0;background:var(--fm-paper);color:var(--fm-ink);font-family:var(--fm-body);font-size:16px;line-height:1.6;-webkit-font-smoothing:antialiased}
:where(body) :where(h1,h2,h3,h4,p,figure,blockquote){margin:0}
:where(body) :where(h1,h2,h3,h4){font-family:var(--fm-heading);font-weight:800;line-height:1.06;letter-spacing:-.045em}
body img{max-width:100%;height:auto;display:block}
body a{color:inherit;text-decoration:none}
button{font:inherit;cursor:pointer}
button,a{-webkit-tap-highlight-color:transparent}
a:focus-visible,button:focus-visible,summary:focus-visible{outline:3px solid var(--fm-blue);outline-offset:6px}
.fm-hero :focus-visible,.fm-header--blue :focus-visible,.fm-footer :focus-visible{outline-color:#fff}
::selection{background:#dfe2ff;color:#14130f}
.fm-shell{width:calc(100% - 112px);max-width:1440px;margin-inline:auto}
.fm-skip{position:fixed;top:10px;left:16px;z-index:1000;transform:translateY(-180%);padding:12px 18px;background:#fff;color:#14130f!important;border:2px solid var(--fm-blue)}
.fm-skip:focus{transform:translateY(0)}
.fm-header{height:106px;position:relative;z-index:20;background:var(--fm-paper);border-bottom:1px solid var(--fm-rule)}
.fm-header--blue{background:#103bce;color:#fff;border:0}
.fm-header-inner{height:100%;display:flex;align-items:center;justify-content:space-between;gap:24px}
.fm-wordmark{font-family:var(--fm-heading);font-size:clamp(1.125rem, 1rem + .55vw, 1.75rem);line-height:1;letter-spacing:-.035em;font-weight:800;text-transform:uppercase}
.fm-nav ul{list-style:none;display:flex;gap:40px;margin:0;padding:0;align-items:center}
.fm-nav a{font-size:1.125rem;font-weight:500;padding:10px 0;display:block}
.fm-nav a:hover{text-decoration:underline;text-underline-offset:7px}
.fm-menu-toggle{display:none;border:1px solid currentColor;color:inherit;background:transparent;border-radius:2px;min-height:44px;padding:8px 13px;white-space:nowrap}
.fm-hero{position:relative;overflow:hidden;color:#fff;background:radial-gradient(ellipse at 88% 35%,#233cff 0%,transparent 60%),radial-gradient(ellipse at 5% 110%,#081e78,transparent 70%),linear-gradient(115deg,#103bce,#1740e9);padding:48px 0 42px}
.fm-hero:after{content:'';position:absolute;pointer-events:none;width:110%;height:75%;border-radius:50%;left:24%;top:-24%;background:linear-gradient(160deg,transparent 55%,#5774ff14);transform:rotate(-15deg)}
.fm-hero .fm-shell{position:relative;z-index:1}
.fm-hero-top{display:flex;justify-content:space-between;align-items:center;margin-bottom:38px}
.fm-eyebrow{text-transform:uppercase;font-size:var(--fm-type-label);line-height:1.5;font-weight:600;letter-spacing:.1em}
.fm-hero-top .fm-eyebrow{display:flex;align-items:center;gap:26px}
.fm-hero-top .fm-eyebrow:after{content:'';width:145px;height:1px;background:#ffffff70}
.fm-hero-note{font-size:.8125rem;text-transform:uppercase;letter-spacing:.14em;line-height:1.5;color:#ffffffd9}
.fm-hero h1{font-size:var(--fm-type-hero);letter-spacing:-.055em;line-height:.97;font-weight:800;max-width:none}
.fm-hero h1 em{font-family:var(--fm-serif);font-weight:400;letter-spacing:-.045em;font-size:1.15em;line-height:.85}
.fm-hero-intro{font-size:var(--fm-type-lead);line-height:1.4;max-width:45ch;margin-top:29px}
.fm-actions{display:flex;align-items:center;gap:42px;margin-top:36px;flex-wrap:wrap}
.fm-button{display:inline-flex;align-items:center;justify-content:space-between;gap:36px;min-height:64px;padding:6px 6px 6px 26px;font-size:1.125rem;font-weight:500}
.fm-button>span:last-child{background:var(--fm-blue);color:#fff;width:52px;height:52px;display:grid;place-items:center;font-size:24px}
.fm-button-dark{background:var(--fm-ink);color:#fff}
.fm-button:hover>span:last-child{background:#4355ff}
.fm-text-link{display:inline-flex;align-items:center;gap:20px;font-weight:500;border-bottom:1px solid currentColor;padding:6px 0;font-size:1.125rem}
.fm-hero-bottom{margin-top:50px;display:flex;justify-content:space-between;align-items:end;font-size:var(--fm-type-label);line-height:1.45;letter-spacing:.12em;text-transform:uppercase}
.fm-hero-bottom>span:last-child{font-size:28px;line-height:1}
.fm-section{padding-block:clamp(3.5rem, 2rem + 4vw, 7rem)}
.fm-section-rule{display:flex;align-items:center;gap:22px;font-size:var(--fm-type-label);letter-spacing:.13em;text-transform:uppercase;margin-bottom:28px}
.fm-section-rule:after{content:'';height:1px;flex:1;background:var(--fm-rule)}
.fm-section-rule>span:last-child{order:1}
.fm-section-title{font-size:var(--fm-type-section);line-height:1.02;text-wrap:balance}
.fm-section-title em,.fm-about h2 em,.fm-contact h2 em{font-family:var(--fm-serif);font-weight:400;color:var(--fm-blue);letter-spacing:-.035em}
.fm-section-heading{display:grid;align-items:start;justify-content:space-between;gap:clamp(2rem, 4vw, 4rem);margin-bottom:45px;grid-template-columns:minmax(0, 1fr) minmax(230px, .32fr)}
.fm-section-heading>p{font-size:var(--fm-type-body);line-height:1.5;max-width:28ch;padding-top:8px}
.fm-featured-image{display:block;overflow:hidden;border-radius:10px;background:#dededc}
.fm-featured-image img{width:100%;aspect-ratio:1.86;object-fit:cover}
.fm-project-caption{display:grid;grid-template-columns:1.2fr 1fr;gap:58px;margin-top:27px}
.fm-project-caption h3{font-size:var(--fm-type-subheading);margin-block:10px}
.fm-project-caption>div:last-child{border-left:1px solid var(--fm-rule);padding-left:42px;align-self:start}
.fm-project-caption p:not(.fm-eyebrow){font-size:var(--fm-type-body);color:var(--fm-muted);line-height:1.55}
.fm-project-caption .fm-text-link{margin-top:12px}
.fm-project-grid{display:grid;grid-template-columns:1fr 1fr;gap:64px 36px;margin-top:64px}
.fm-project-cover{position:relative;overflow:hidden;border-radius:10px;display:block;background:#ebe7de;aspect-ratio:1.55}
.fm-project-cover img{width:100%;height:100%;object-fit:cover;object-position:top;transition:transform .35s}
.fm-project-cover:hover img{transform:scale(1.025)}
.fm-project-card--a11ygenius .fm-project-cover{background:#dfe7ff;padding:18px;display:flex;align-items:center}
.fm-project-card--a11ygenius .fm-project-cover img{height:auto;object-fit:contain;border-radius:4px;box-shadow:0 8px 25px #142d6b15}
.fm-project-card .fm-eyebrow{margin-top:20px;font-size:var(--fm-type-label)}
.fm-card-heading{display:flex;gap:15px;justify-content:space-between;align-items:center;margin-top:6px}
.fm-card-heading h3{font-size:var(--fm-type-card);letter-spacing:-.035em}
.fm-card-heading h3 em{font-family:var(--fm-serif);font-size:.8em;font-weight:400;color:var(--fm-muted);margin-left:0;display:block;margin-top:6px}
.fm-circle-link{width:48px;height:48px;border:1px solid var(--fm-ink);border-radius:100%;display:grid;place-items:center;flex:none;font-size:24px}
.fm-circle-link:hover{background:var(--fm-blue);border-color:var(--fm-blue);color:white}
.fm-project-card>p:last-child{font-size:var(--fm-type-body);line-height:1.5;color:var(--fm-muted);max-width:48ch;margin-top:16px}
.fm-about{border-top:1px solid var(--fm-rule);padding-top:30px}
.fm-about-intro{display:grid;grid-template-columns:1.2fr 1fr;gap:60px;align-items:start;margin-bottom:50px}
.fm-about-intro>p{font-size:var(--fm-type-body);line-height:1.6}
.fm-about-detail{display:grid;grid-template-columns:.8fr 1.2fr;gap:80px;align-items:center}
.fm-portrait{max-width:440px;position:relative}
.fm-portrait img{aspect-ratio:4/4.6;object-fit:cover;border-radius:8px;width:100%}
.fm-portrait figcaption{margin-top:12px;font-size:var(--fm-type-label);text-transform:uppercase;letter-spacing:.1em;color:var(--fm-muted)}
.fm-about-detail h3{font-size:var(--fm-type-subheading);margin-bottom:23px}
.fm-prose{font-size:var(--fm-type-body);line-height:1.7;color:var(--fm-muted)}
.fm-prose p+p{margin-top:20px}
.fm-about-detail .fm-text-link{margin-top:24px}
.fm-method{background:#1726b8;color:#fff;padding-block:74px}
.fm-method .fm-section-rule:after{background:#ffffff40}
.fm-method .fm-section-title em{color:#fff}
.fm-method-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:42px;margin-top:44px}
.fm-method-grid article{border-top:1px solid #ffffff65;padding-top:25px}
.fm-method-grid span{font-family:var(--fm-serif);font-size:30px}
.fm-method-grid h3{font-size:var(--fm-type-card);margin:16px 0;line-height:1.12}
.fm-method-grid p{font-size:var(--fm-type-body);line-height:1.7;color:#f0f1ff}
.fm-quote{padding-block:90px;border-bottom:1px solid var(--fm-rule)}
.fm-quote blockquote{font-family:var(--fm-heading);font-size:clamp(2rem, 1.42rem + 1.67vw, 3rem);line-height:1.3;font-weight:500;letter-spacing:-.025em;max-width:1200px;margin:30px 0}
.fm-quote blockquote:before{content:'“';color:var(--fm-blue);font-family:var(--fm-serif);font-size:90px;line-height:.8;display:block}
.fm-quote figcaption{font-size:1.125rem}
.fm-quote figcaption span{display:block;color:var(--fm-muted);font-size:1rem}
.fm-contact{padding-block:85px}
.fm-contact-grid{display:grid;grid-template-columns:1.2fr 1fr;align-items:center;gap:60px}
.fm-contact h2{font-size:var(--fm-type-section)}
.fm-contact .fm-prose{max-width:48ch}
.fm-footer{background:var(--fm-ink);color:var(--fm-paper);padding:50px 0 25px;border-radius:14px 14px 0 0}
.fm-footer-top{display:flex;justify-content:space-between;gap:30px;font-size:1rem}
.fm-footer-links{display:flex;flex-wrap:wrap;gap:25px}
.fm-footer a:hover{text-decoration:underline;text-underline-offset:5px}
.fm-footer-name{font-family:var(--fm-heading);font-size:clamp(36px,10.1vw,146px);font-weight:800;line-height:1.05;letter-spacing:-.07em;margin:60px 0 40px;white-space:nowrap}
.fm-footer-bottom{display:flex;justify-content:space-between;border-top:1px solid #ffffff26;padding-top:20px;font-size:.8125rem;letter-spacing:.05em;color:#c0bdb6}
.fm-case-hero{padding:65px 0 58px;background:var(--fm-blue);color:#fff}
.fm-case-hero h1{font-size:clamp(3rem, 2.5rem + 4.63vw, 7rem);max-width:1280px;margin:25px 0}
.fm-case-hero .fm-deck{font-size:var(--fm-type-lead);max-width:52ch;line-height:1.5}
.fm-back{font-size:.875rem;letter-spacing:.06em;text-transform:uppercase;display:inline-block;padding-block:6px}
.fm-case-meta{display:grid;grid-template-columns:repeat(3,1fr);gap:35px;margin-top:45px;border-top:1px solid #ffffff50;padding-top:25px}
.fm-case-meta dt{font-size:var(--fm-type-label);text-transform:uppercase;letter-spacing:.15em;margin-bottom:8px}
.fm-case-meta dd{margin:0;font-size:1.125rem}
.fm-case-cover{padding-top:45px}
.fm-case-cover img{width:100%;max-height:800px;object-fit:cover;object-position:top;border-radius:8px}
.fm-case-cover figcaption,.fm-story-image figcaption{font-size:.9375rem;color:var(--fm-muted);margin-top:12px}
.fm-case-summary{padding:70px 0;display:grid;grid-template-columns:.6fr 1.4fr;gap:70px;border-bottom:1px solid var(--fm-rule)}
.fm-case-summary h2{font-size:var(--fm-type-subheading)}
.fm-story{padding-top:70px}
.fm-story-section{display:grid;grid-template-columns:.65fr 1.35fr;gap:70px;padding-bottom:65px}
.fm-story-section h2{font-size:var(--fm-type-subheading);margin-top:12px}
.fm-story-section .fm-prose{font-size:var(--fm-type-body)}
.fm-story-image{grid-column:1/-1;margin-top:0}
.fm-story-image img{width:100%;max-height:860px;object-fit:contain;background:#edeae4;border-radius:8px}
.fm-project-end{border-top:1px solid var(--fm-rule);padding:40px 0 70px;display:flex;justify-content:space-between;align-items:center;gap:25px}
.fm-resume{padding-block:65px 80px}
.fm-resume-heading{display:flex;justify-content:space-between;align-items:center;gap:30px;margin-bottom:45px}
.fm-resume h1{font-size:var(--fm-type-section)}
.fm-resume .fm-deck{font-size:var(--fm-type-lead);margin-top:15px;max-width:780px}
.fm-print{background:transparent;border:1px solid var(--fm-ink);padding:12px 18px;white-space:nowrap}
.fm-resume-section{display:grid;grid-template-columns:.55fr 1.45fr;gap:50px;padding:35px 0;border-top:1px solid var(--fm-rule)}
.fm-resume-section h2{font-size:var(--fm-type-card)}
.fm-resume-entry+.fm-resume-entry{margin-top:30px}
.fm-resume-entry h3{font-size:clamp(1.5rem, 1.2rem + 1.11vw, 2.25rem);letter-spacing:-.02em;margin-bottom:7px}
.fm-resume-entry .fm-eyebrow{color:var(--fm-muted);margin-bottom:8px}
@media(min-width:1600px){.fm-hero{padding-top:65px;padding-bottom:48px}}
@media(max-width:1000px){.fm-shell{width:calc(100% - 64px)}.fm-hero-note{display:none}.fm-nav ul{gap:26px}.fm-section-heading{display:block}.fm-section-heading>p{max-width:500px;margin-top:16px}.fm-card-heading h3 em{display:block;margin:4px 0 0}.fm-project-caption{gap:30px}.fm-project-caption>div:last-child{padding-left:28px}.fm-about-detail{gap:40px}.fm-about-intro{gap:40px}.fm-contact-grid{gap:32px}.fm-case-summary,.fm-story-section{gap:35px}}
@media(max-width:700px){.fm-shell{width:calc(100% - 40px)}.fm-header{height:80px}.fm-menu-toggle{display:block}.fm-nav{display:none;position:absolute;left:0;right:0;top:80px;background:var(--fm-ink);color:#fff;border-bottom:1px solid #ffffff40;padding:16px 20px}.fm-nav.is-open{display:block}.fm-nav ul{display:block}.fm-nav a{padding:13px 0;}.fm-hero{padding-top:38px;padding-bottom:28px}.fm-hero-top{margin-bottom:35px}.fm-hero-top .fm-eyebrow{gap:12px}.fm-hero-top .fm-eyebrow:after{width:40px;flex-shrink:1}.fm-hero h1{line-height:1.03;letter-spacing:-.055em}.fm-hero-intro{line-height:1.5;margin-top:25px}.fm-actions{gap:24px;margin-top:28px}.fm-button{min-height:53px;padding-left:17px;gap:24px}.fm-button>span:last-child{width:43px;height:43px}.fm-hero-bottom{margin-top:38px;}.fm-section{padding-block:47px}.fm-section-rule{gap:13px;margin-bottom:24px}.fm-section-heading{margin-bottom:28px}.fm-featured-image img{aspect-ratio:1.4;object-fit:cover}.fm-project-caption{grid-template-columns:1fr;gap:18px;margin-top:21px}.fm-project-caption>div:last-child{border-left:0;padding-left:0}.fm-project-grid{grid-template-columns:1fr;gap:35px;margin-top:37px}.fm-card-heading h3 em{display:block;margin-left:0;}.fm-project-cover{aspect-ratio:1.5}.fm-about-intro,.fm-about-detail,.fm-contact-grid{grid-template-columns:1fr;gap:28px}.fm-about-intro{margin-bottom:32px}.fm-portrait{max-width:100%}.fm-portrait img{aspect-ratio:1.08;object-position:center 25%}.fm-method{padding-block:50px}.fm-method-grid{grid-template-columns:1fr;gap:28px;margin-top:30px}.fm-method-grid article{display:grid;grid-template-columns:35px 1fr;gap:0 12px;padding-top:20px}.fm-method-grid h3{margin:0 0 10px;align-self:center}.fm-method-grid p{grid-column:2}.fm-quote{padding-block:52px}.fm-contact{padding-block:52px}.fm-footer{padding-top:35px}.fm-footer-top{flex-direction:column;gap:24px}.fm-footer-links{gap:20px}.fm-footer-name{font-size:10vw;letter-spacing:-.06em;margin:40px 0 30px}.fm-footer-bottom{flex-direction:column;gap:10px;}.fm-case-hero{padding:35px 0}.fm-case-hero h1{margin:25px 0}.fm-case-meta{grid-template-columns:1fr;gap:20px;margin-top:30px}.fm-case-cover{padding-top:25px}.fm-case-summary,.fm-story-section{grid-template-columns:1fr;gap:25px;padding-block:35px}.fm-story{padding-top:0}.fm-project-end{align-items:start;flex-direction:column;padding-block:25px 45px}.fm-resume{padding-block:40px}.fm-resume-heading{display:block}.fm-print{margin-top:25px}.fm-resume-section{grid-template-columns:1fr;gap:20px}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}
@media print{.fm-header,.fm-footer,.fm-print,.fm-skip{display:none!important}body{background:white;color:black;font-size:11pt}.fm-shell{width:100%;max-width:none}.fm-resume{padding:0}.fm-resume h1{font-size:30pt}.fm-resume-section{break-inside:avoid;padding:20px 0}.fm-resume-entry{break-inside:avoid}.fm-resume .fm-deck{font-size:13pt}.fm-resume .fm-prose{font-size:11pt}.fm-resume-section h2{font-size:18pt}.fm-resume-entry h3{font-size:14pt}}

