@font-face{font-family:Geist Pixel Square;src:url(/fonts/GeistPixel-Square.woff2) format("woff2");font-style:normal;font-weight:400;font-display:swap}@font-face{font-family:Geist;src:url(/fonts/Geist-Variable.woff2) format("woff2-variations");font-weight:100 900;font-display:swap}:root{--page-bg: #aaaaaa;--layout-max: 1200px;--shell-padding: 32px;--shell-width: calc(100% - (var(--shell-padding) * 2));--shell-inner-max: calc(var(--layout-max) - var(--shell-padding));--section-height: calc(90svh - var(--shell-padding));--type-nameplate-size: min(130px, 10.4vw);--type-body-size: 48px;--type-copy-size: 22px;--subhero-section-height: clamp(360px, 52svh, 560px);--subhero-title-size: clamp(56px, 7.4vw, 92px);--subhero-intro-size: clamp(28px, 3.6vw, 40px);--hero-bg: #000;--hero-fg: #fff;--cga-white: #fff;--cga-black: #000;--cga-gray: #aaaaaa;--cga-pink: #aa00aa;--cga-cyan: #00aaaa;--text-dark: #2a1f23;--hero-radius: 40px;--about-panel-padding: 56px;color-scheme:dark}*,*:before,*:after{box-sizing:border-box}body{background-color:var(--page-bg);color:var(--text-dark);font-family:Geist,system-ui,-apple-system,sans-serif;margin:0}a,button{-webkit-tap-highlight-color:transparent}.shell{max-width:var(--shell-inner-max);width:var(--shell-width);margin-left:auto;margin-right:auto}.projects-shell{max-width:var(--shell-inner-max);width:var(--shell-width);margin:0 auto;padding:3rem 0 8px;position:relative;z-index:2}.projects-grid{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:var(--shell-padding)}.case-study-grid{grid-template-columns:repeat(auto-fit,minmax(340px,1fr))}.project-card{position:relative}.project-card__link{display:flex;flex-direction:column;gap:0;text-decoration:none;color:inherit;background:var(--cga-white);border:0;border-radius:var(--hero-radius);overflow:hidden}.project-card__link--static:hover,.project-card__link--static:focus-visible{transform:none}.project-card__link--effect{position:relative;background:var(--cga-white)}.project-card__link--static>.project-card__title{margin:0;padding:1.6rem 2.2rem;font-size:var(--type-body-size);color:var(--cga-black);letter-spacing:-.04em}.project-card__canvas{position:relative;width:100%;aspect-ratio:5 / 3;overflow:hidden}.project-card__canvas--effect{position:absolute;inset:0;z-index:0;height:100%;aspect-ratio:auto}.project-card__img{display:block;width:100%;height:100%;object-fit:cover}.project-card__content{padding:2rem 2.2rem 2.4rem}.project-card__title{font-family:Geist Pixel Square,system-ui,sans-serif;font-size:1.9rem;font-weight:400;line-height:1.25;letter-spacing:-.01em;color:var(--cga-pink);margin:0 0 .8rem;transition:color .12s ease}.project-card__excerpt{font-family:Geist,system-ui,-apple-system,sans-serif;font-size:1.35rem;line-height:1.5;color:var(--cga-black);margin:0 0 1.4rem}.project-card__tags{display:flex;flex-wrap:wrap;gap:.5rem;margin-bottom:.6rem}.project-card__date{font-family:Geist Pixel Square,system-ui,sans-serif;font-size:.92rem;letter-spacing:.06em;text-transform:uppercase;color:#2a1f236b}.project-card__effect-title{position:absolute;inset:0;z-index:1;display:grid;place-items:center;padding:clamp(28px,5vw,64px);pointer-events:none;text-align:center}.project-card__effect-title h3{max-width:min(760px,100%);margin:0;color:var(--cga-black);font-family:Geist Pixel Square,system-ui,sans-serif;font-size:clamp(34px,4.6vw,64px);font-weight:400;line-height:1.04}.project-card--mapillary .project-card__effect-title h3{font-size:clamp(28px,3.4vw,46px)}.tag-pill{--tag-color: var(--cga-black);display:inline-block;font-family:Geist Pixel Square,system-ui,sans-serif;font-size:.85rem;font-weight:500;letter-spacing:.04em;text-transform:uppercase;padding:.25em .7em;border-radius:999px;border:1px solid var(--tag-color);color:var(--tag-color)}.blog-section{margin-top:4rem}.blog-section__title{margin:0 0 2rem;font-family:Geist Pixel Square,sans-serif;font-size:var(--subhero-intro-size);font-weight:400;line-height:.98;letter-spacing:-.01em;color:var(--text-dark)}.blog-list{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:var(--shell-padding)}.blog-card__link{display:flex;gap:0;text-decoration:none;color:inherit;background:var(--cga-white);border:0;border-radius:var(--hero-radius);overflow:hidden}.blog-card__thumb{flex-shrink:0;width:220px;overflow:hidden}.blog-card__thumb img{display:block;width:100%;height:100%;object-fit:cover}.blog-card__body{display:flex;flex-direction:column;justify-content:center;padding:1.8rem 2.2rem;min-width:0}.blog-card__title{font-family:Geist Pixel Square,system-ui,sans-serif;font-size:2rem;font-weight:400;line-height:1.25;letter-spacing:-.01em;color:var(--cga-pink);margin:0 0 .5rem;transition:color .12s ease}.projects-page .project-card__link:focus-visible .project-card__title,.projects-page .blog-card__link:focus-visible .blog-card__title{color:var(--cga-cyan)}@media(hover:hover)and (pointer:fine){.projects-page .project-card__link:hover .project-card__title,.projects-page .blog-card__link:hover .blog-card__title{color:var(--cga-cyan)}}@media(hover:none),(pointer:coarse){.projects-page .project-card__link:is(:hover,:focus,:focus-visible) .project-card__title,.projects-page .blog-card__link:is(:hover,:focus,:focus-visible) .blog-card__title{color:var(--cga-pink)}.projects-page .project-card__link:active .project-card__title,.projects-page .blog-card__link:active .blog-card__title{color:var(--cga-cyan)}}.blog-card__excerpt{font-family:Geist,system-ui,-apple-system,sans-serif;font-size:1.45rem;line-height:1.5;color:var(--cga-black);margin:0 0 1rem}.blog-card__date{font-family:Geist Pixel Square,system-ui,sans-serif;font-size:.92rem;letter-spacing:.06em;text-transform:uppercase;color:#2a1f236b}.case-study-grid .blog-card__link{height:100%}.mini-hero{--hero-inline-padding: 40px;--hero-block-start: 112px;--hero-block-end: 72px;position:relative;display:grid;place-items:center;min-height:var(--subhero-section-height);max-width:var(--shell-inner-max);width:var(--shell-width);margin:var(--shell-padding) auto 0;padding:var(--hero-block-start) var(--hero-inline-padding) var(--hero-block-end);overflow:hidden;border-radius:var(--hero-radius);background:var(--cga-black);color:var(--cga-white);isolation:isolate}.mini-hero--compact{--hero-block-start: 0;--hero-block-end: 0;min-height:185px;padding-block:0}.design-hero{min-height:0;padding-block:clamp(28px,4vw,48px) clamp(24px,3.5vw,44px);background:#e24329}.design-hero__logo-scene{position:absolute;top:clamp(12px,2vw,24px);right:clamp(12px,2vw,24px);z-index:0;width:clamp(220px,28vw,380px);aspect-ratio:1;pointer-events:none}.design-hero .mini-hero__content{position:relative;top:auto;bottom:auto;left:auto;z-index:1;width:min(100%,1120px);padding-inline:clamp(16px,2vw,32px);transform:none}.mini-hero.design-hero h1{margin-bottom:clamp(10px,1.8vw,24px)}.mini-hero__shader{position:absolute;inset:0;z-index:0;display:block;width:100%;height:100%}.mini-hero__nav,.mini-hero__content{position:relative;z-index:1}.mini-hero__nav{position:absolute;top:0;left:50%;z-index:2;display:flex;flex-wrap:wrap;align-items:flex-start;gap:0;width:min(100%,1120px);transform:translate(-50%);padding:clamp(18px,2.6vw,32px) clamp(20px,3vw,40px) 0;transition:padding .2s ease}.mini-hero__nav-item{display:flex;min-width:0;align-items:flex-start;gap:0;border:0;background:transparent;color:inherit;text-decoration:none;cursor:pointer;font-family:Geist Pixel Square,sans-serif;font-size:var(--type-body-size);font-weight:400;letter-spacing:-.04em;padding:clamp(6px,1vw,10px) clamp(24px,4vw,64px) clamp(14px,1.8vw,22px) 0;transition:font-size .2s ease,padding .2s ease}.mini-hero__nav-copy{display:flex;flex-direction:column;align-items:flex-start;width:max-content}.mini-hero__nav-label{display:block}.mini-hero__nav-arrow{display:block;font-family:Geist Pixel Square,sans-serif;line-height:.6}.mini-hero__nav-item:hover,.mini-hero__nav-item:focus-visible{background:var(--cga-white);color:var(--cga-black);outline:none}.mini-hero__nav-item:hover .mini-hero__nav-arrow,.mini-hero__nav-item:focus-visible .mini-hero__nav-arrow{align-self:flex-end}.mini-hero__content{position:absolute;top:0;bottom:0;left:50%;display:grid;align-content:center;justify-items:flex-start;gap:18px;width:min(100%,1120px);transform:translate(-50%);padding:var(--hero-block-start) clamp(20px,3vw,40px) var(--hero-block-end);text-align:left}.mini-hero h1{margin:0;font-family:Geist Pixel Square,sans-serif;font-size:var(--subhero-title-size);font-weight:400;line-height:.98;letter-spacing:-.01em;white-space:normal;text-wrap:balance;color:var(--cga-white)}.mini-hero__intro{margin:0;font-family:Geist Pixel Square,sans-serif;font-size:var(--subhero-intro-size);font-weight:400;letter-spacing:-.03em;line-height:1.04;color:var(--cga-white);max-width:min(760px,100%)}.design-intro{max-width:var(--shell-inner-max);width:var(--shell-width);margin:3rem auto 0}.design-intro+.design-intro{margin-top:1.4rem}.case-study-callout{max-width:var(--shell-inner-max);width:var(--shell-width);margin:3rem auto 0;padding:clamp(42px,6vw,72px) clamp(24px,4vw,48px);border-radius:var(--hero-radius);background:var(--cga-cyan);color:var(--cga-black)}.case-study-callout .case-study-grid{margin-top:clamp(28px,4vw,48px)}.case-study-cards{--gitlab-orange: #fc6d26;max-width:var(--shell-inner-max);width:var(--shell-width);margin:clamp(24px,3vw,40px) auto 0}@media(min-width:760px){.case-study-cards{grid-template-columns:minmax(0,3fr) minmax(0,2fr)}.case-study-cards .project-card--ikea{grid-column:1;order:0}.case-study-cards .project-card--mapillary{grid-column:2;order:1}}.case-study-cards .project-card__link{height:100%;min-height:clamp(420px,48vw,560px)}.case-study-cards .project-card__canvas{aspect-ratio:auto;flex:1 1 auto}.case-study-cards .project-card__effect-title h3{transition:color .16s ease}.case-study-cards .project-card__link:focus-visible .project-card__effect-title h3{color:var(--gitlab-orange)}@media(hover:hover)and (pointer:fine){.case-study-cards .project-card__link:hover .project-card__effect-title h3{color:var(--gitlab-orange)}}@media(hover:none),(pointer:coarse){.case-study-cards .project-card__link:active .project-card__effect-title h3{color:var(--gitlab-orange)}}.case-study-callout__text{max-width:min(760px,100%);margin:0;font-family:Geist Pixel Square,sans-serif;font-size:var(--subhero-intro-size);font-weight:400;letter-spacing:-.03em;line-height:1.04;color:var(--cga-black)}.closing-callout{position:relative;display:grid;place-items:center;max-width:var(--shell-inner-max);width:var(--shell-width);margin:3rem auto 0;padding:clamp(56px,7vw,88px) clamp(24px,4vw,48px);border-radius:var(--hero-radius);background:var(--cga-black);color:var(--cga-white);text-decoration:none;overflow:hidden;isolation:isolate}.closing-callout__starfield{position:absolute;inset:0;z-index:0;display:block;width:100%;height:100%;pointer-events:none}.closing-callout__link{position:relative;z-index:1;display:inline-flex;flex-direction:row;align-items:baseline;gap:.3em;text-decoration:none;color:var(--cga-white);font-family:Geist Pixel Square,sans-serif;font-size:var(--subhero-intro-size);font-weight:400;line-height:1.04;letter-spacing:-.03em;padding:clamp(10px,1.4vw,16px) clamp(16px,2vw,28px)}.closing-callout:hover .closing-callout__link,.closing-callout:focus-visible .closing-callout__link{background:var(--cga-white);color:var(--cga-black)}.closing-callout:focus-visible{outline:none}.about-header{position:sticky;top:0;z-index:10;max-width:var(--shell-inner-max);width:var(--shell-width);margin:var(--shell-padding) auto 0;padding:clamp(18px,2.6vw,32px) var(--about-panel-padding);border-radius:var(--hero-radius);background:var(--cga-black);color:var(--cga-white);transition:max-width .2s ease,width .2s ease,margin .2s ease,padding .2s ease,border-radius .2s ease}.about-header--compact{margin:0 auto;padding:0 var(--about-panel-padding);border-radius:0}.about-header__nav{display:flex;flex-wrap:wrap;align-items:flex-start;transition:padding .2s ease}.about-header--compact .about-header__nav{padding:clamp(9px,1.3vw,16px) 0}.about-header__link{display:flex;align-items:flex-start;border:0;background:transparent;color:inherit;text-decoration:none;cursor:pointer;font-family:Geist Pixel Square,sans-serif;font-size:var(--type-body-size);font-weight:400;letter-spacing:-.04em;line-height:1;padding:clamp(6px,1vw,10px) clamp(24px,4vw,64px) clamp(14px,1.8vw,22px) 0;transition:font-size .2s ease,padding .2s ease}.about-header--compact .about-header__link{font-size:24px;padding:clamp(3px,.5vw,5px) clamp(6px,1vw,12px) clamp(5px,.7vw,8px) 0}.about-header__link-copy{display:flex;flex-direction:column;align-items:flex-start;width:max-content}.about-header__link-label{display:block}.about-header__link-arrow{display:block;font-family:Geist Pixel Square,sans-serif;line-height:.6}.about-header__link:hover,.about-header__link:focus-visible{background:var(--cga-white);color:var(--cga-black);outline:none}.about-header__link:hover .about-header__link-arrow,.about-header__link:focus-visible .about-header__link-arrow{align-self:flex-end}.about-panel{position:relative;max-width:var(--shell-inner-max);width:var(--shell-width);margin:var(--shell-padding) auto 0;padding:var(--about-panel-padding);border-radius:var(--hero-radius);background:var(--cga-cyan);color:#000;overflow:hidden}.about-panel__media{float:right;margin:calc(-1 * var(--about-panel-padding)) calc(-1 * var(--about-panel-padding)) 0 var(--about-panel-padding);overflow:hidden;pointer-events:none}.about-panel__media-image{display:block;width:min(44vw,480px);height:auto;image-rendering:pixelated}.about-panel__header,.about-panel__section,.about-panel__footer{display:grid;gap:1rem;margin-top:2.5rem}.about-panel__media+.about-panel__header{margin-top:0}@media(min-width:541px){.about-panel__media+.about-panel__header{padding-top:clamp(12px,2vw,24px)}}.about-panel__footer{justify-items:center;padding-block:1.5rem 2rem;text-align:center}.about-panel__title,.about-panel__eyebrow{margin:0;font-family:Geist Pixel Square,sans-serif;font-size:var(--type-body-size);font-weight:100;line-height:1.05;color:#fff}.about-panel__text,.about-panel__answer{margin:0;font-family:Geist Pixel Square,sans-serif;font-size:var(--type-copy-size);line-height:1.4}.about-panel a{color:var(--cga-pink);text-decoration:none}.about-panel a:hover,.about-panel a:focus-visible{color:var(--cga-white)}.about-panel__signoff{margin:0;font-family:Geist Pixel Square,sans-serif;font-size:calc(var(--type-copy-size) * 1.35);line-height:1.2;text-align:center;color:var(--cga-white)}.about-panel__signoff-gif{display:block;width:180px;max-width:100%;height:auto;image-rendering:pixelated}.about-panel__quote{display:grid;gap:.75rem;margin:0}.about-panel__quote-attribution{font-family:Geist Pixel Square,sans-serif;font-size:var(--type-copy-size);line-height:1.4}.about-panel__faq{display:grid;gap:.75rem;margin:0}.about-panel__question{margin-top:1.5rem;font-family:Geist Pixel Square,monospace;font-size:var(--type-copy-size);line-height:1.4;color:#fff}.about-panel__answer{margin-inline-start:0}@supports (corner-shape: squircle){.project-card__link,.blog-card__link,.mini-hero,.about-header,.about-panel,.case-study-callout,.closing-callout{corner-shape:superellipse(2.5)}}@media(max-width:900px){:root{--hero-radius: 28px;--section-height: calc(80svh - var(--shell-padding));--type-nameplate-size: min(84px, 11vw);--type-body-size: 32px;--type-copy-size: 18px;--subhero-section-height: clamp(400px, 60svh, 520px);--subhero-title-size: clamp(46px, 8vw, 72px);--subhero-intro-size: 28px;--about-panel-padding: 40px}.mini-hero{--hero-inline-padding: 28px;--hero-block-start: 96px;--hero-block-end: 56px}.mini-hero__nav{padding-top:16px}.mini-hero__nav-item{padding-right:32px}.mini-hero__content{gap:16px;padding:var(--hero-block-start) clamp(20px,3vw,40px) var(--hero-block-end)}.mini-hero--compact{min-height:140px}}@media(max-width:1100px){.case-study-cards,.closing-callout{margin-top:var(--shell-padding)}}@media(max-width:600px){.blog-card__link{flex-direction:column}.blog-card__thumb{width:100%;aspect-ratio:5 / 3}.design-hero{justify-items:stretch}.design-hero__logo-scene{position:relative;top:auto;right:auto;z-index:1;width:clamp(180px,54vw,260px);margin:0 auto clamp(18px,5vw,28px)}.mini-hero.design-hero .mini-hero__content{width:100%;padding-top:0}}@media(max-width:540px){:root{--shell-padding: 12px;--section-height: calc(80svh - var(--shell-padding));--type-nameplate-size: min(56px, 14vw);--type-body-size: 24px;--type-copy-size: 16px;--subhero-section-height: clamp(380px, 60svh, 480px);--subhero-title-size: clamp(38px, 13vw, 54px);--subhero-intro-size: 22px;--about-panel-padding: 24px}.mini-hero{--hero-inline-padding: 18px;--hero-block-start: 104px;--hero-block-end: 40px}.mini-hero__content{gap:16px;padding:var(--hero-block-start) 20px var(--hero-block-end)}.mini-hero--compact{min-height:100px}.about-panel__media{float:none;margin:calc(-1 * var(--about-panel-padding)) calc(-1 * var(--about-panel-padding)) 2rem}.about-panel__media-image{width:100%}.about-panel__media+.about-panel__header{margin-top:0}.about-panel__signoff-gif{width:140px}.projects-shell{padding:2.4rem 0 8px}.case-study-callout{margin-top:2.4rem;padding:32px 24px}.closing-callout{margin-top:var(--shell-padding);padding:40px 24px}.case-study-grid{grid-template-columns:1fr}.blog-section__title{font-size:2rem;line-height:1}.design-intro{margin-top:2.4rem}.project-card__content,.blog-card__body{padding:1.35rem 1.4rem 1.6rem}.project-card__title,.blog-card__title{font-size:1.45rem;line-height:1.22}.project-card__excerpt,.blog-card__excerpt{font-size:1.08rem;line-height:1.45}.tag-pill{font-size:.72rem}.project-card__date,.blog-card__date{font-size:.78rem}}@media(max-width:440px){.mini-hero h1{white-space:normal;text-wrap:balance}}
