@font-face{font-family:Bureau;src:url('/assets/fonts/bureau-serif-book.woff2') format('woff2');font-weight:400;font-display:swap}
@font-face{font-family:Planar;src:url('/assets/fonts/planar-regular.woff2') format('woff2');font-weight:400;font-display:swap}
@font-face{font-family:'ProductHangar Display';src:url('/assets/fonts/product-hangar-display.woff2') format('woff2');font-weight:400;font-display:swap}
@font-face{font-family:Fragment;src:url('/assets/fonts/FragmentMono-Regular.woff2') format('woff2');font-weight:400;font-display:swap}
:root{--ink:#0d0d0d;--paper:#fff;--muted:#787878;--line:#dedede;--serif:Bureau,Georgia,serif;--sans:Planar,Arial,sans-serif;--display:'ProductHangar Display',Arial,sans-serif;--ease:cubic-bezier(.22,1,.36,1)}
*{box-sizing:border-box}html{scroll-behavior:smooth;scrollbar-gutter:stable}body{margin:0;background:var(--paper);color:var(--ink);font:16px/1.5 var(--sans);-webkit-font-smoothing:antialiased}body.locked{overflow:hidden}a{color:inherit;text-decoration:none}button,input,select,textarea{font:inherit}button,a{-webkit-tap-highlight-color:transparent}button{color:inherit;cursor:pointer}button{border:0}img,video{display:block;max-width:100%}picture{display:contents}@supports (contain-intrinsic-size:1px 1px){:where(picture>img[style*="--iw"]){contain:size;contain-intrinsic-size:var(--iw) var(--ih);aspect-ratio:auto var(--ar)}}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:2px solid #e300c7;outline-offset:5px}h1,h2,h3,p{margin:0}h1,h2,h3{font-weight:400}h1,h2{font-family:var(--serif);letter-spacing:-.02em}h2{font-size:28px;line-height:1.35}.skip-link{position:fixed;top:-70px;left:20px;z-index:100;background:#fff;padding:12px}.skip-link:focus{top:10px}.site-header{position:fixed;top:16px;left:20px;right:20px;z-index:50;display:flex;align-items:center;justify-content:space-between;height:44px;pointer-events:none}.site-header>*{pointer-events:auto}.brand{width:120px;display:block;transition:filter .35s}.brand img{width:100%;height:42px;object-fit:contain}.header-middle{position:absolute;left:50%;transform:translateX(-50%)}.nav-links{display:flex;gap:10px;align-items:center}.nav-links>a,.nav-group>a{font-size:14px;line-height:17px;padding:12px 16px;display:flex;align-items:center;gap:8px;border-radius:8px;background:white;white-space:nowrap}.chevron{width:7px;height:7px;border-bottom:1px solid;border-right:1px solid;transform:rotate(45deg);margin-left:3px;margin-top:-4px}.split-cta{display:inline-flex;gap:0;align-items:stretch;white-space:nowrap;font:14px/17px var(--sans)}.split-cta span,.split-cta i{background:var(--ink);color:#fff;border-radius:8px;display:grid;place-items:center;height:40px;transition:background .2s,color .2s}.split-cta span{padding:0 30px 0 16px}.split-cta i{width:40px;font-size:20px;font-style:normal}.split-cta:hover i{background:#343434}.menu-toggle{display:none;background:#0d0d0d;color:white;font-size:14px;border-radius:8px;width:98px;height:42px}.site-header.compact .nav-links{display:none}.site-header.compact .menu-toggle{display:block}.site-header.on-dark .brand,.project-active .site-header .brand{filter:invert(1)}.site-header.on-dark>.split-cta span,.site-header.on-dark>.split-cta i,.project-active .site-header>.split-cta span,.project-active .site-header>.split-cta i{background:#fff;color:#0d0d0d}
.hero{height:100svh;min-height:680px;position:relative;overflow:hidden;background:#fff}.hero-bg{position:absolute;inset:0;pointer-events:none}.hero-bg .hero-media{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:0;transition:opacity .4s var(--ease),transform 1.1s var(--ease);transform:scale(1.025)}.hero-bg .hero-media.active{opacity:1;transform:scale(1)}.hero-main{position:relative;height:calc(100% - 190px);padding:80px 20px 0;display:grid;place-content:center;z-index:2;pointer-events:none}.hero-statement{width:min(535px,calc(100vw - 60px));text-align:center;display:flex;flex-direction:column;align-items:center;gap:32px;transition:opacity .22s,transform .4s var(--ease)}.hero h1{font-size:28px;line-height:1.35;letter-spacing:-.02em}.hero-signature{font:26px/1 var(--display);letter-spacing:-.04em}.hero.is-active .hero-statement{opacity:0;transform:translateY(-6px)}.hero-bottom{position:absolute;bottom:10px;left:10px;right:10px;z-index:3;display:flex;flex-direction:column;align-items:center;gap:54px}.discipline-marquee{width:min(560px,90vw);overflow:hidden;mask-image:linear-gradient(90deg,transparent,#000 20%,#000 80%,transparent);height:22px;transition:color .3s;color:#0d0d0d}.marquee-track{display:flex;gap:4px;width:max-content;animation:marquee 34s linear infinite;align-items:center}.tag{display:inline-block;border:1px solid currentColor;border-radius:4px;padding:1px 4px;font:12px/15.6px var(--sans);white-space:nowrap}.marquee-group{display:flex;gap:4px;align-items:center;padding-right:4px}.marquee-project{font-size:15px;line-height:20px;padding:0 8px}.hero.is-active .discipline-marquee{color:#fff}.hero.is-active:after{content:'';position:absolute;inset:55% 0 0;pointer-events:none;background:linear-gradient(transparent,#0003)}@keyframes marquee{to{transform:translateX(-50%)}}
/* Floating navigation and the two reference-sized dropdowns. */
.site-header{height:45px}
.nav-links>a,.nav-group>.nav-trigger{height:40px;padding:4px 16px;gap:7px;line-height:16.8px;transition:background .2s}
.nav-group{position:relative}
.nav-trigger{user-select:none}
.nav-trigger .chevron{width:6px;height:6px;margin:0 2px 3px 4px;transition:transform .2s,margin .2s}
.nav-group.is-open .chevron{transform:rotate(225deg);margin-top:5px;margin-bottom:0}
.nav-dropdown{position:absolute;top:60px;left:var(--dropdown-left,0px);display:grid;grid-template-columns:minmax(0,530px) minmax(0,1fr);gap:24px;width:850px;max-width:calc(100vw - 40px);padding:20px 27px 20px 14px;background:#fff;color:#090909;border:1px solid #ececec;border-radius:10px;box-shadow:0 10px 20px #0000000d;opacity:0;visibility:hidden;pointer-events:none;transform:translateY(-8px) scale(.98);transform-origin:50% 0;transition:opacity .2s,transform .28s var(--ease),visibility .2s;isolation:isolate}
.nav-dropdown:before{content:'';position:absolute;inset:-22px -1px auto;height:22px;z-index:-1}
.nav-group.is-open .nav-dropdown{opacity:1;visibility:visible;pointer-events:auto;transform:none}
.nav-label{font:12px/15.6px var(--sans);padding:10px 14px}
.nav-columns{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}
.nav-item{display:flex;flex-direction:column;gap:4px;padding:10px 14px;border-radius:5px;font:14px/16.8px var(--sans);transition:background .2s}
.nav-item small{font:12px/15.6px var(--sans);color:#626262}
a.nav-item:hover,a.nav-item:focus-visible{background:#f2f2f2}
.nav-placeholder,.nav-placeholder small{color:#a0a0a0}
.nav-feature{border-left:1px solid #ececec;padding-left:24px;min-width:0}
.nav-feature .nav-label{padding-left:0;padding-right:0;margin-bottom:10px}
.nav-feature-link{display:block;font:12px/15.6px var(--sans)}
.nav-feature-media{aspect-ratio:225/129;position:relative;border-radius:5px;overflow:hidden;background:#e9e9e9}
.nav-feature-media>img:first-child,.nav-feature-media>picture:first-child>img{width:100%;height:100%;object-fit:cover;transition:transform .5s var(--ease)}
.nav-feature-media:has(.nav-feature-logo):after{content:'';position:absolute;inset:0;background:#0002}
.nav-feature-logo{position:absolute;left:50%;top:50%;width:100px;height:auto;transform:translate(-50%,-50%);filter:invert(1);z-index:1}
.nav-feature-link>span{display:flex;align-items:center;gap:8px;margin-top:12px}
.nav-feature-link:hover .nav-feature-media>img:first-child,.nav-feature-link:hover .nav-feature-media>picture:first-child>img{transform:scale(1.04)}
.nav-studio{top:50px;width:540px;grid-template-columns:265px minmax(0,1fr);padding:14px;gap:24px}
.nav-studio:before{top:-12px;height:12px}
.nav-studio .nav-columns{grid-template-columns:1fr}
.nav-studio .nav-feature{padding-left:24px}
.nav-studio-media{aspect-ratio:1.65}
@media(min-width:761px) and (max-width:900px){.nav-services{grid-template-columns:minmax(0,2.2fr) minmax(0,1fr);gap:16px;padding-right:20px}.nav-services .nav-feature{padding-left:16px}.nav-services .nav-item{padding-left:10px;padding-right:10px;min-height:72px}}
@media(max-width:760px){.site-header{top:16px;left:20px;right:20px}.brand{width:110px}.brand img{height:39px}.site-header>.split-cta{display:none}.header-middle{position:static;transform:none}.nav-links{display:none}.menu-toggle{display:block}.hero{min-height:680px}.hero-main{height:calc(100% - 140px);padding:70px 20px 0}.hero-statement{width:100%;max-width:335px;gap:32px}.hero h1{font-size:26px;line-height:1.4}.hero-signature{font-size:26px}.hero-bottom{left:0;right:0;bottom:0;gap:30px}.discipline-marquee{width:90vw}.hero.is-active .hero-statement{opacity:1;transform:none}.hero.is-active .hero-bg{opacity:0}.hero.is-active .discipline-marquee{color:#0d0d0d}.hero.is-active:after{display:none}}
.split-cta span{min-width:118px}.nav-links{min-width:467px;justify-content:center}.tags{display:flex;flex-wrap:wrap;gap:4px}.dark-section{background:var(--ink);color:#fff}.capabilities{position:relative}.glow-transition{height:clamp(360px,34vw,540px);background:radial-gradient(ellipse 140% 95% at 50% 100%,#0d0d0d 38%,#1a1018 45%,#ce2b94 62%,#f268b8 71%,#fdb6d9 84%,#fff 100%)}.cap-intro{max-width:540px;margin:auto;text-align:center;padding:120px 20px 165px}.cap-intro h2{max-width:488px;margin:auto}.cap-intro p{font-size:16px;line-height:1.45;margin-top:25px}.cap-columns{display:grid;grid-template-columns:340px 340px;justify-content:space-between;max-width:1280px;margin:auto;padding:0 80px 110px;gap:100px}.pillar{opacity:.25;transition:opacity .7s;min-height:275px;margin-bottom:150px}.pillar:last-child{margin-bottom:0}.pillar.active{opacity:1}.step-number{border:1px solid currentColor;width:20px;height:20px;display:grid;place-items:center;border-radius:50%;font:14px/1 var(--sans);margin-bottom:22px}.pillar h3{font-family:var(--serif);font-size:24px;line-height:1.35;letter-spacing:-.02em;margin-bottom:18px}.pillar p{font-size:16px;line-height:1.45}.orbit-sticky{position:sticky;top:calc(50vh - 170px);height:340px}.orbit{position:relative;width:100%;aspect-ratio:1;--orbit-angle:0deg}.orbit svg{width:100%;height:100%;stroke:currentColor;stroke-width:.8;opacity:.6}.orbit-lines{transform-origin:190px 190px;transform:rotate(var(--orbit-angle));transition:transform 1.4s var(--ease)}.orbit-label{position:absolute;left:50%;top:50%;display:flex;align-items:center;gap:5px;white-space:nowrap;transform:translate(-30%,-50%);font-size:12px;line-height:1.2}.orbit-label b{width:19px;height:19px;border:1px solid currentColor;border-radius:50%;display:grid;place-items:center;font-weight:400;background:var(--ink)}.orbit-label>span{padding:2px 5px;border:1px solid;border-radius:4px;background:var(--ink)}.mobile-orbit{display:none}.services-section{padding:120px 80px 70px;max-width:1440px;margin:auto}.services-layout{display:grid;grid-template-columns:320px 360px;justify-content:space-between;gap:100px}.services-intro{position:sticky;top:130px;align-self:start;overflow:hidden}.services-intro>p{font-size:14px;line-height:1.5;margin:24px 0}.services-intro .split-cta{margin-bottom:38px}.mini-rail{display:flex;gap:6px;width:max-content;animation:mini-marquee 28s linear infinite}.mini-rail img{height:94px;width:110px;object-fit:cover;border-radius:8px}.mini-rail img:nth-child(3n){width:150px}@keyframes mini-marquee{to{transform:translateX(-50%)}}.service-row{padding-bottom:100px;scroll-margin-top:130px}.service-row h3{font:24px/1.25 var(--display);margin-bottom:24px;letter-spacing:-.015em}.service-row .tags{margin-bottom:28px}.service-row p{font-size:14px;line-height:1.5;margin-bottom:20px}.service-project{display:block;font-size:14px;margin:0 0 26px}.service-project:hover{text-decoration:underline}.soft-link{display:inline-block;font-size:14px;padding:9px 16px;border-radius:8px;background:#ededed;transition:background .2s}.soft-link:hover{background:#ddd}.tools-note{padding-top:50px}.tools-note h2{margin-bottom:42px}.tools-note>div{display:grid;grid-template-columns:1fr 1fr;gap:90px}.tools-note h3{font:20px/1.3 var(--display);margin-bottom:10px}.tools-note p{font-size:14px;line-height:1.5}.ecosystem{padding:20px;max-width:1800px;margin:auto}.section-heading{display:grid;grid-template-columns:120px 1fr;gap:20px;align-items:start;margin-bottom:42px}.section-heading h2{font-family:var(--serif);letter-spacing:-.02em}.section-symbol{font-size:30px;line-height:1.25}.ecosystem-large{display:grid;grid-template-columns:1fr 1fr;gap:16px}.world-card{position:relative;aspect-ratio:.78;border-radius:16px;overflow:hidden;display:grid;place-items:center}.world-card>img,.world-card>picture>img{width:100%;height:100%;object-fit:cover;position:absolute;inset:0;transition:transform 1s var(--ease);filter:blur(2px);transform:scale(1.04)}.world-card:hover>img,.world-card:hover>picture>img{transform:scale(1.11)}.world-card.monochrome>img,.world-card.monochrome>picture>img{filter:grayscale(1) blur(4px)}.world-card-inner{position:relative;background:white;width:68%;min-height:62%;border-radius:14px;outline:2px solid #ffffff70;outline-offset:6px;box-shadow:0 18px 50px #0005;padding:24px;display:flex;flex-direction:column;justify-content:space-between;gap:50px;color:#0d0d0d}.world-name{font:clamp(30px,3.7vw,64px)/.9 var(--display);letter-spacing:-.04em}.world-card-inner h2{margin-top:20px}.ecosystem-small{display:grid;grid-template-columns:1fr 1fr 1fr;gap:16px;margin-top:16px}.small-card{aspect-ratio:1.05;position:relative;overflow:hidden;border-radius:16px;background:#0d0d0d;color:white;padding:16px}.small-card>span,.experiments-banner>span{display:flex;align-items:center;justify-content:space-between;position:relative;z-index:2;font-size:14px}.small-card i,.experiments-banner i{display:grid;place-items:center;font-size:20px;background:#ffffff1a;width:40px;height:40px;border-radius:8px;font-style:normal}.small-card .orbit{width:80%;margin:15% auto 0}.small-card .orbit-label{font-size:9px}.studio-card{display:flex;flex-direction:column;justify-content:space-between;background:#eeeeec;color:#0d0d0d}.studio-card img{width:75%;margin:auto;transition:transform .4s}.studio-card:hover img{transform:scale(1.05)}.service-stack{font:clamp(32px,5vw,78px)/1 var(--serif);margin-top:30px;letter-spacing:-.03em}.experiments-banner{margin-top:16px;border-radius:16px;height:340px;position:relative;display:block;overflow:hidden;padding:16px;background:#eaeaea}.experiments-banner img{position:absolute;width:100%;height:100%;object-fit:cover;inset:0;filter:grayscale(1);transition:filter .5s,transform .8s var(--ease)}.experiments-banner:hover img{filter:grayscale(0);transform:scale(1.04)}.experiments-banner>span{color:#fff;text-shadow:0 1px 6px #0008}.film-section{padding:120px 20px 0}.film-player{position:relative;aspect-ratio:16/9;overflow:hidden;border-radius:16px;background:#0d0d0d}.film-player video{height:100%;width:100%;object-fit:cover}.film-controls{position:absolute;top:20px;left:50%;transform:translateX(-50%);display:flex;gap:4px}.film-controls button{background:#0d0d0dde;color:white;border-radius:5px;font-size:12px;line-height:1;text-transform:uppercase;padding:10px 14px}.manifesto{padding:65px 20px 120px}.manifesto .section-symbol{font-family:var(--serif);font-size:60px;line-height:.8}.manifesto-copy{font:20px/1.4 var(--sans);height:310px;overflow:hidden;mask-image:linear-gradient(#000 55%,transparent);margin-bottom:32px;max-width:1400px}.manifesto-copy p{margin-bottom:20px}.text-link{font-size:14px}.faq-section{padding:70px 60px 120px}.faq-section>h2{font-family:var(--serif);margin-bottom:80px}.faq-layout{display:grid;grid-template-columns:1fr 1fr;gap:25px}.faq-category{font-size:14px}.faq-items details{margin-bottom:80px}.faq-items details:last-child{margin-bottom:0}.faq-items summary{background:#fff;color:#0d0d0d;border-radius:20px;padding:18px 24px;cursor:pointer;font-size:14px;list-style:none}.faq-items summary::-webkit-details-marker{display:none}.faq-items details:not([open]) summary{background:#333;color:#fff}.faq-answer{display:flex;gap:12px;margin-top:26px;padding-left:60px}.faq-answer p{font-size:14px;line-height:1.45}.faq-answer>span{margin-left:-16px}.contact-section{padding:90px 20px 80px}.contact-section>h2{font-family:var(--serif);width:min(710px,100%);margin:0 auto 60px}.contact-form{width:min(710px,100%);margin:auto;display:flex;flex-direction:column;gap:24px}.contact-form label{display:flex;flex-direction:column;gap:10px;font-size:14px}.contact-form input,.contact-form select,.contact-form textarea{background:#252525;color:#fff;border:1px solid transparent;border-radius:22px;width:100%;padding:12px 16px;line-height:1.5;min-height:44px;font-size:14px}.contact-form textarea{resize:vertical}.contact-form input::placeholder,.contact-form textarea::placeholder{color:#aaa}.contact-form select{appearance:none;-webkit-appearance:none;padding-right:46px;cursor:pointer}.contact-submit.split-cta{width:100%;margin-top:16px;padding:0;background:none;font-size:15px}.contact-submit.split-cta>span{flex:1;height:52px}.contact-submit.split-cta>i{width:52px;height:52px;font-size:18px}.contact-section .contact-submit:hover>:is(span,i){background:#e5e5e5}.form-note{font-size:12px;line-height:1.5;color:#aaa;text-align:center}.form-note a{text-decoration:underline}.form-feedback{font-size:14px}.form-feedback:empty{display:none}.form-feedback a{text-decoration:underline}.site-footer{padding:90px 20px 20px}.footer-intro{padding:0 40px 80px}.footer-intro h2{font-family:var(--display);margin-bottom:28px}.dark-section .split-cta span,.dark-section .split-cta i{background:#fff;color:#0d0d0d}.footer-cards{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}.footer-card{position:relative;height:180px;border-radius:8px;overflow:hidden;color:#fff;background:#222}.footer-card>img,.footer-card>picture>img{position:absolute;width:100%;height:100%;object-fit:cover;filter:brightness(.72);transition:transform .6s var(--ease)}.footer-card:hover>img,.footer-card:hover>picture>img{transform:scale(1.06)}.footer-card>span{position:absolute;bottom:22px;left:24px;right:20px;font-size:18px;line-height:1.2}.footer-card small{display:block;font-size:14px;margin-top:8px}.footer-card.pink{background:linear-gradient(110deg,#f87b30 0%,#ed542c 42%,#d234a9 100%)}.footer-card.gray{background:#e9e9e7;color:#0d0d0d}.footer-card-list{position:absolute;top:20px;left:24px;right:20px;margin:0;padding:0;list-style:none;counter-reset:labs;font:15px/1.35 var(--serif);color:#0d0d0d8c}.footer-card-list li{counter-increment:labs}.footer-card-list li:before{content:counter(labs);display:inline-block;width:1.4em;font:12px/1 var(--display)}.footer-bottom{display:flex;gap:20px;align-items:center;flex-wrap:wrap;font-size:11px;padding-top:32px}.footer-bottom>span{margin-right:auto}.footer-bottom button{background:none;padding:0;color:#fff;font-size:11px}.page-intro{padding:210px 20px 130px}.page-intro.centered{max-width:740px;margin:auto;text-align:center}.page-intro h1{font-size:34px;line-height:1.3}.page-intro p{font-size:16px;max-width:580px;margin:30px auto}.page-intro .split-cta{margin-top:6px}.service-catalog{max-width:1300px;margin:auto;padding:0 80px 120px}.service-catalog>article{display:grid;grid-template-columns:1fr 1.15fr;gap:65px;align-items:center;padding-bottom:110px;scroll-margin-top:110px}.service-catalog h2{font-family:var(--display);margin-bottom:20px}.service-catalog p{margin-bottom:22px}.service-catalog .tags{margin-bottom:30px}.service-catalog-image{display:block;height:340px;overflow:hidden;border-radius:12px}.service-catalog-image img{width:100%;height:100%;object-fit:cover;transition:transform .8s}.service-catalog-image:hover img{transform:scale(1.05)}.work-feature{height:90svh;min-height:600px;position:relative;color:#fff;background:#0d0d0d}.work-feature>img,.work-feature>picture>img{width:100%;height:100%;object-fit:cover}.work-feature>div{position:absolute;left:40px;bottom:60px}.work-feature h2{font-family:var(--display);font-size:80px;line-height:1.05;margin:16px 0}.work-feature a{font-size:18px}.work-index{padding:100px 20px 140px;scroll-margin-top:60px}.work-index>:is(h1,h2){text-align:center;font:48px/1.1 var(--display);margin-bottom:30px}.index-controls{display:flex;justify-content:center;align-items:center;flex-wrap:wrap;gap:10px 28px;margin-bottom:48px}.index-controls button{padding:8px 16px;background:#eee;border-radius:8px;font:14px/17px var(--display);transition:background .2s,color .2s}.index-controls button:hover{background:#e2e2e2}.index-controls button.active{background:#0d0d0d;color:#fff}.view-toggle{display:flex;gap:6px;padding-left:28px;border-left:1px solid var(--line)}.project-filters{display:flex;justify-content:center;gap:6px;flex-wrap:wrap}.work-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:35px 20px;align-items:start}.work-card{display:block;min-width:0}.work-card[hidden]{display:none}.work-image{overflow:hidden;border-radius:10px;aspect-ratio:4/3;background:#eee}.work-image img{width:100%;height:100%;object-fit:cover;transition:transform .7s var(--ease)}.work-card:hover .work-image img{transform:scale(1.045)}.work-caption{display:flex;justify-content:space-between;gap:12px;align-items:start;padding-top:12px}.work-caption h3{font:16px/1.3 var(--display)}.work-caption .tags{justify-content:flex-end;color:#777}.work-caption .tag{font-size:11px}.list-view{display:flex;flex-direction:column;gap:0}.list-view .work-card{width:100%;position:relative;border-bottom:1px solid #ddd}.list-view .work-caption{padding:28px 24px;align-items:center}.list-view .work-caption h3{font-size:18px}.list-view .work-image{display:none}.list-view .work-card:hover{background:#f5f5f5}.empty-work{text-align:center;padding:50px}.experiment-feature{margin:0 20px}.experiment-feature video{width:100%;max-height:70vh;object-fit:contain;background:#eee;border-radius:14px}.experiment-feature p{font:12px/1.5 Fragment,monospace;margin-top:12px}.case-page{padding:180px 20px 0}.case-heading .case-name{font:16px/1.4 var(--display);margin-bottom:12px}.case-heading h1{font-size:48px;line-height:1.2;margin-top:4px}.case-meta{border-top:1px solid #ddd;display:flex;gap:70px;margin-top:35px;padding:30px 0 60px;align-items:flex-start}.case-meta>div>p{font-size:14px;margin-bottom:14px}.case-meta>a{margin-left:auto;font-size:14px}.case-cover{border-radius:10px;overflow:hidden;max-height:80vh}.case-cover img,.case-cover video{width:100%;height:100%;max-height:80vh;object-fit:cover}.case-overview{display:grid;grid-template-columns:.7fr 1fr;gap:60px;margin:120px 55px}.case-overview h2{font:40px/1.2 var(--display)}.case-overview p{font-size:18px}.case-overview p+p{margin-top:.9em}.scope-types{display:flex;flex-wrap:wrap;gap:20px;font:40px/1.1 var(--display);letter-spacing:-.03em}.scope-types span{max-width:220px}.case-gallery{display:grid;grid-template-columns:1fr 1fr;gap:20px}.case-gallery figure{margin:0;border-radius:10px;overflow:hidden}.case-gallery img{width:100%;height:100%;object-fit:cover}.case-gallery .wide{grid-column:1/-1}.related-work{padding:120px 0}.related-work>h2{font-family:var(--display);margin-bottom:40px}.related-work>div{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}.studio-hero{height:100svh;min-height:680px;position:relative;background:#0d0d0d;color:#fff;display:grid;place-items:center;text-align:center;isolation:isolate}.studio-hero>video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:-2}.studio-hero:after{content:'';position:absolute;inset:0;background:#0006;z-index:-1}.studio-hero h1{font-size:48px;line-height:1.15;margin:24px 0}.eyebrow{font:11px/1.5 Fragment,monospace;letter-spacing:.06em}.studio-about{display:grid;grid-template-columns:1fr 1fr;gap:100px;padding:140px 80px}.studio-about h2{font-size:40px}.studio-about p{margin-bottom:22px}.studio-about .split-cta{margin-top:20px}.process-intro{display:grid;grid-template-columns:1fr 1fr;gap:120px;padding:210px 70px 140px;align-items:center}.process-intro h1{font-size:40px;line-height:1.25}.process-intro p{margin:28px 0}.process-intro .orbit{max-width:400px;margin:auto}.process-intro .orbit-label b,.process-intro .orbit-label>span{background:white}.process-steps{display:grid;grid-template-columns:1fr 1fr;gap:80px 110px;padding:30px 80px 140px}.process-steps h2{margin-bottom:22px}.process-steps p{max-width:450px}.contact-page-form{padding:0 20px 140px}.contact-page-form input,.contact-page-form select,.contact-page-form textarea{background:#eee;color:#0d0d0d;padding:20px;border-radius:20px}.contact-page-form .contact-submit:hover>:is(span,i){background:#343434}.contact-page-form .form-note{color:#777}.contact-page-form label{gap:8px}.site-menu{position:fixed;inset:0;width:100%;height:100svh;max-width:none;max-height:none;border:0;padding:0;margin:0;background:#fff;color:#0d0d0d;overflow:hidden;z-index:100}.site-menu::backdrop{background:white}.menu-header{position:absolute;inset:16px 20px auto;display:flex;justify-content:space-between;align-items:center;z-index:3}.menu-close{position:absolute;left:50%;transform:translateX(-50%);background:#0d0d0d;color:#fff;border-radius:8px;font-size:25px;width:40px;height:40px;font-weight:300}.menu-panorama{position:absolute;left:0;right:0;top:20vh;height:43vh;perspective:1100px;overflow:hidden;mask-image:linear-gradient(90deg,transparent,#000 5%,#000 95%,transparent)}.menu-panels{display:flex;position:absolute;top:0;left:calc(50% - 150px);height:100%;gap:12px;transform:translateX(var(--menu-shift,0px));transition:transform 1s var(--ease);transform-style:preserve-3d}.menu-panel{width:280px;flex:0 0 280px;height:100%;transform:rotateY(-12deg);transform-origin:left center;box-shadow:0 1px 15px #0001;background:#fff;border:1px solid #e5e5e5;overflow:hidden}.mini-page{padding:20px;height:100%;display:flex;flex-direction:column;text-align:center;gap:25px}.mini-page>span{font:14px/1 var(--display);align-self:flex-start}.mini-page h2{font-size:18px;line-height:1.3;margin:auto 0}.mini-page img{width:100%;height:42%;object-fit:cover}.mini-page small{font-size:12px}.menu-directory{position:absolute;top:69vh;left:50%;transform:translateX(-50%);display:flex;gap:26px;justify-content:center;flex-wrap:wrap;width:460px;font-size:14px}.menu-directory a:hover{text-decoration:underline}.menu-bottom{position:absolute;bottom:25px;left:40px;right:40px;display:flex;gap:40px;justify-content:flex-end;font-size:12px;color:#777}.menu-bottom>span:first-child{margin-right:auto}.placeholder-copy{color:#888;font-size:14px;line-height:1.5}.placeholder-lines{display:flex;flex-direction:column;gap:10px;margin:24px 0}.placeholder-lines i{height:9px;background:currentColor;opacity:.12;border-radius:2px;width:100%}.placeholder-lines i:nth-child(2){width:89%}.placeholder-lines i:last-child{width:68%}.service-row.placeholder .tag{opacity:.45}.placeholder-proof{margin-top:20px;color:#888;font-size:14px}.world-card.placeholder{background:#eee}.world-card.placeholder>img,.world-card.placeholder>picture>img{filter:grayscale(1) blur(12px);opacity:.25}.world-card.placeholder .world-name{font-size:40px;color:#bcbcbc}
@media(min-width:1500px){.cap-columns{grid-template-columns:380px 400px}.services-layout{grid-template-columns:400px 440px}.services-intro>p,.service-row p,.service-project,.tools-note p{font-size:16px}.ecosystem{padding-left:20px;padding-right:20px}.section-heading{grid-template-columns:190px 1fr}.world-card{aspect-ratio:1.1}.footer-card{height:230px}.cap-intro h2{font-size:32px}.cap-intro{max-width:590px}}
@media(max-width:1000px) and (min-width:761px){.cap-columns{padding-left:60px;padding-right:60px;grid-template-columns:320px 300px;gap:40px}.services-section{padding-left:60px;padding-right:60px}.services-layout{grid-template-columns:300px 330px;gap:40px}.nav-links{gap:0;min-width:430px}.nav-links>a,.nav-group>a{padding-left:12px;padding-right:12px}.brand{width:110px}.site-header>.split-cta span{min-width:100px}.tools-note>div{gap:50px}.world-card-inner{padding:20px}.world-card-inner h2{font-size:26px}}
@media(max-width:760px){h2{font-size:22px;line-height:1.3}.hero-main{height:calc(100% - 190px);padding-top:95px}.hero-bottom{gap:30px}.glow-transition{height:200px}.cap-intro{padding:50px 40px 150px;max-width:480px}.cap-intro p{font-size:14px}.cap-columns{display:block;padding:0 20px 100px}.pillar{opacity:1;min-height:0;margin-bottom:100px}.pillar h3{font-size:20px}.pillar p{font-size:16px}.orbit-sticky{display:none}.mobile-orbit{display:block;margin:35px auto 0;max-width:380px}.services-section{padding:80px 20px 60px}.services-layout{display:block}.services-intro{position:relative;top:auto;margin-bottom:90px}.services-intro h2{max-width:350px}.services-intro>p{font-size:14px}.mini-rail img{height:94px}.service-row{padding-bottom:80px}.service-row h3{font-size:20px}.service-row p{font-size:14px}.tools-note{padding-top:20px}.tools-note>div{display:block}.tools-note article{margin-bottom:30px}.tools-note h3{font-size:18px}.tools-note h2{margin-bottom:32px}.ecosystem{padding:20px}.section-heading{grid-template-columns:1fr;gap:18px;margin-bottom:32px}.section-symbol{font-size:24px}.ecosystem-large{grid-template-columns:1fr;gap:16px}.world-card{aspect-ratio:.85}.world-card-inner{width:72%;min-height:64%;padding:22px}.world-card-inner h2{font-size:26px}.world-name{font-size:40px}.ecosystem-small{grid-template-columns:1fr 1fr}.small-card{aspect-ratio:.9;padding:12px}.small-card:last-child{grid-column:1/-1;aspect-ratio:1.8}.small-card .orbit{width:95%;margin-top:25px}.small-card .orbit-label{display:none}.small-card>span{font-size:12px}.small-card i{width:28px;height:28px;font-size:16px}.service-stack{font-size:42px;line-height:1;margin-top:20px}.experiments-banner{height:240px}.film-section{padding:80px 20px 0}.film-player{aspect-ratio:16/9}.film-controls{top:10px}.film-controls button{font-size:11px;padding:8px}.manifesto{padding:50px 20px 70px}.manifesto-copy{font-size:18px;height:340px}.faq-section{padding:60px 20px 80px}.faq-section>h2{margin-bottom:60px}.faq-layout{display:block}.faq-category{margin-bottom:40px}.faq-items details{margin-bottom:50px}.faq-items summary{padding:18px 20px;font-size:14px}.faq-answer{padding-left:34px}.faq-answer p{font-size:14px}.contact-section{padding:80px 20px 50px}.contact-section>h2{margin-bottom:45px}.contact-form{gap:22px}.site-footer{padding-top:90px}.footer-intro{padding:0 0 65px}.footer-intro h2{font-size:26px}.footer-cards{grid-template-columns:1fr 1fr;gap:8px}.footer-card{height:180px}.footer-card>span{left:16px;right:12px;bottom:18px;font-size:16px}.footer-card small{font-size:12px}.footer-bottom{gap:18px;font-size:11px}.footer-bottom>span{width:100%}.footer-bottom button{font-size:11px}.page-intro{padding:165px 20px 90px}.page-intro h1{font-size:28px}.page-intro p{font-size:16px;margin:24px auto}.service-catalog{padding:0 20px 70px}.service-catalog>article{display:flex;flex-direction:column;gap:30px;align-items:stretch;padding-bottom:80px}.service-catalog-image{height:300px}.work-feature{height:80svh;min-height:560px}.work-feature>div{left:20px;bottom:40px;right:20px}.work-feature h2{font-size:54px}.work-feature a{font-size:16px}.work-index{padding:80px 20px}.work-index>:is(h1,h2){font-size:40px}.work-grid{grid-template-columns:1fr;gap:35px}.view-toggle{padding-left:0;border-left:0}.work-caption h3{font-size:16px}.work-caption .tags{max-width:180px}.list-view .work-caption{padding:22px 0;gap:14px}.list-view .work-caption h3{font-size:16px}.case-page{padding:145px 20px 0}.case-heading .case-name{font-size:15px;margin-bottom:8px}.case-heading h1{font-size:34px}.case-meta{gap:25px;flex-wrap:wrap;padding-bottom:35px}.case-meta>a{margin:0;width:100%}.case-overview{display:block;margin:70px 0}.case-overview h2{font-size:28px;margin-bottom:28px}.case-overview p{font-size:16px}.scope-types{font-size:30px;gap:25px}.case-gallery{grid-template-columns:1fr;gap:12px}.related-work{padding:80px 0}.related-work>div{grid-template-columns:1fr;gap:35px}.studio-hero h1{font-size:36px}.studio-hero>div{padding:20px}.studio-about{grid-template-columns:1fr;padding:85px 20px;gap:45px}.studio-about h2{font-size:30px}.process-intro{display:flex;flex-direction:column;padding:165px 20px 80px;gap:60px}.process-intro h1{font-size:32px}.process-intro .orbit{width:100%;max-width:330px}.process-steps{grid-template-columns:1fr;padding:0 20px 80px;gap:65px}.contact-page-form{padding-bottom:80px}.site-menu{background:#0d0d0d;color:white}.site-menu .brand{filter:invert(1)}.menu-header>.split-cta{display:none}.menu-close{left:auto;right:0;transform:none;width:96px;background:#000;font-size:0}.menu-close:after{content:'close';font-size:14px}.menu-panorama{display:none}.menu-directory{top:auto;bottom:40px;left:30px;transform:none;display:flex;flex-direction:column;align-items:flex-start;gap:4px;width:auto;font:40px/1.25 var(--display);letter-spacing:-.04em}.menu-directory a{opacity:.5}.menu-directory a:hover,.menu-directory a:focus{opacity:1;text-decoration:none}.menu-bottom{display:none}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important}}
.hero h1{text-wrap:balance}
.faq-secondary{margin-top:100px}.placeholder-answer{width:100%}
.panorama-canvas{width:100%;height:100%;display:block;touch-action:none;cursor:grab}.panorama-canvas:active{cursor:grabbing}
.menu-panels{display:none}
@media(min-width:761px){.menu-panorama{top:10vh;height:66vh;perspective:none;mask-image:none}.menu-directory{top:70vh;left:50%;transform:none;width:360px;justify-content:flex-start;gap:22px 38px;z-index:2}.menu-bottom{left:50%;right:7%;bottom:4vh;gap:35px;justify-content:space-between;font-size:11px}.menu-bottom>span:first-child{display:none}}
@media(max-width:760px){.site-header{transition:transform .25s var(--ease)}.site-header.mobile-hidden{transform:translateY(-85px)}.faq-secondary{margin-top:75px}}.film-player video{background:#0d0d0d}

/* One continuous home-page surface; a section crossing mid-screen changes its theme. */
body.scroll-theme{--theme-paper:#fff;--theme-ink:#0d0d0d;--theme-muted:#787878;--theme-chip:#ededed;background-color:var(--theme-paper);color:var(--theme-ink)}
body.scroll-theme.theme-dark{--theme-paper:#0d0d0d;--theme-ink:#fff;--theme-muted:#aaa;--theme-chip:#333}
body.scroll-theme.theme-ready{transition:background-color .5s var(--ease),color .5s var(--ease)}
.scroll-theme .dark-section{background:transparent;color:inherit}
.scroll-theme .hero{color:var(--ink)}
.scroll-theme .site-header,.scroll-theme .skip-link{color:var(--ink)}
.scroll-theme .capabilities .orbit-label b,.scroll-theme .capabilities .orbit-label>span{background-color:var(--theme-paper);transition:background-color .5s var(--ease)}
.scroll-theme :is(main,.site-footer) .split-cta :is(span,i){background-color:var(--theme-ink);color:var(--theme-paper);transition:background-color .5s var(--ease),color .5s var(--ease)}
.scroll-theme .soft-link{background-color:var(--theme-chip);color:inherit;transition:background-color .5s var(--ease)}
.scroll-theme .soft-link:hover{filter:brightness(.9)}
.scroll-theme :is(.placeholder-copy,.placeholder-proof){color:var(--theme-muted);transition:color .5s var(--ease)}
.service-quote{margin:0 0 20px}.service-quote p{margin-bottom:8px}.service-proof{font-size:13px;line-height:1.4;color:#8a8a8a}.scroll-theme .service-proof{color:var(--theme-muted);transition:color .5s var(--ease)}
.scroll-theme .site-header .brand{transition:filter .5s var(--ease)}
.scroll-theme .site-header>.split-cta :is(span,i){transition:background-color .5s var(--ease),color .5s var(--ease)}
/* Portfolio: preserve complete product framing and native video controls. */
.hero-bg .hero-media.contain{object-fit:contain;background:#eeeeec}
/* A hero film with its own background colour (inline): never cropped, the margins match the film. */
.hero-bg .hero-media.blend{object-fit:contain}
.work-image{position:relative}
.work-feature:after{content:'';position:absolute;inset:50% 0 0;background:linear-gradient(transparent,#0006);pointer-events:none}
.work-feature>div{z-index:1}
.case-back{display:inline-block;font-size:13px;margin-bottom:35px}
.case-back:hover{text-decoration:underline}
/* Case media (review 2026-10-11): the cover box takes its media's proportion (aspect-ratio inline, from frameRatio()
   in app.js) and the media fills it, so there are no bands. A different m.ratio crops with cover (Land Rover's letterbox). */
.case-cover{position:relative;max-height:none;background:#0d0d0d0d}
.case-cover>img,.case-cover>picture>img,.case-cover>video,.case-cover .case-film video{display:block;width:100%;height:100%;max-height:none;object-fit:cover}
.case-overview .case-credit{font-size:13px;line-height:1.6;margin-top:30px;color:#777}
.case-credit a{color:var(--ink);text-decoration:underline;text-underline-offset:4px}
/* Gallery rows (galleryRows() in app.js): the figures of a row grow with their aspect ratio (--r), so they share one
   height; a tall row (.is-tall) narrows and centres so its pieces stay within 88svh. Phones stack the pieces. */
.case-gallery{display:flex;flex-direction:column;gap:44px;margin-bottom:96px}
.case-row{display:flex;gap:20px;align-items:flex-start;justify-content:center;width:100%;margin:0 auto}
.case-row.is-tall{max-width:calc(var(--sum)*88svh + var(--gaps)*20px)}
.case-row>figure{flex:calc(var(--r)*1000) 1 0;min-width:0;margin:0;border-radius:0;overflow:visible}
.case-gallery .case-media-window{position:relative;overflow:hidden;border-radius:10px;background:#0d0d0d0d}
.case-gallery .case-media-window>img,.case-gallery .case-media-window>picture>img,.case-gallery .case-media-window>video,.case-gallery .case-film video{display:block;width:100%;height:100%;max-height:none;object-fit:cover;border-radius:0;background:none}
/* Films: poster and the PH play button (ProductHangar Display pill); the browser's controls appear once it plays. */
.case-film{position:relative;width:100%;height:100%}
.case-play{position:absolute;inset:0;display:grid;place-items:center;padding:0;background:none;color:#fff}
.case-play>span{display:inline-flex;align-items:center;gap:11px;padding:14px 22px 14px 18px;border-radius:999px;font:16px/1 var(--display);letter-spacing:-.01em;background:#0d0d0db3;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);transition:background .2s}
.case-play i{width:0;height:0;border-left:11px solid currentColor;border-top:7px solid transparent;border-bottom:7px solid transparent}
.case-play small{font-size:13px;opacity:.65}
.case-play:hover>span{background:#0d0d0d}
.case-play:focus-visible{outline-offset:-8px}
.case-film.is-playing .case-play{display:none}
.case-gallery figcaption{font-size:13px;line-height:1.5;margin-top:12px;color:#666}
.case-website{margin:120px 0 0;display:grid;grid-template-columns:1fr 1.6fr;gap:70px;align-items:center;padding:65px 55px;background:#f1f1ef;border-radius:10px}
.case-website h2{font:38px/1.15 var(--serif);margin:20px 0}
.case-website>div>p{max-width:300px;font-size:15px;line-height:1.5}
/* One column and one heading family for the whole case: the text blocks, the closing question and More projects start
   at the H1's edge, the closing rule spans the gallery's width, and every H2 is ProductHangar Display. */
.case-page .case-overview{margin-left:0;margin-right:0}
.case-page .funnel-section{max-width:none;margin:0;padding-left:0;padding-right:0}
.case-page h2,.case-page .case-website h2{font-family:var(--display);letter-spacing:-.015em}
.website-placeholder{aspect-ratio:16/10;border:1px solid #cececa;border-radius:8px;display:grid;grid-template-rows:30px 1fr;color:#7a7a74}
.placeholder-browser{border-bottom:1px solid #cececa;display:flex;align-items:center;gap:5px;padding:0 12px}
.placeholder-browser i{display:block;width:5px;height:5px;border-radius:50%;background:#b1b1ac}
.website-placeholder>p{place-self:center;text-align:center;font:12px/1.5 Fragment,monospace;padding:20px}
.related-work>.text-link{display:inline-block;margin-top:40px}
@media(max-width:760px){.case-gallery{row-gap:30px}.case-overview .case-credit{font-size:12px}.case-website{margin-top:70px;grid-template-columns:1fr;gap:30px;padding:30px 20px}.case-website h2{font-size:30px}.case-meta .tags{max-width:100%}.case-back{margin-bottom:25px}.work-caption .tags{max-width:200px}.case-gallery{gap:30px;margin-bottom:60px}.case-row,.case-row.is-tall{flex-direction:column;gap:30px;max-width:none}.case-row>figure{flex:none;width:100%;max-width:calc(var(--r)*78svh);margin:0 auto}.case-play>span{padding:11px 17px 11px 14px;font-size:14px;gap:9px}}
.project-active.project-light .site-header .brand{filter:none}
.project-active.project-light .site-header>.split-cta span,.project-active.project-light .site-header>.split-cta i{background:#0d0d0d;color:#fff}
.project-light .hero.is-active .discipline-marquee{color:#0d0d0d}
.work-image .card-preview{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:0;transition:opacity .3s}
.work-card.preview-playing .card-preview{opacity:1}
@media(prefers-reduced-motion:reduce){.work-image .card-preview{display:none}}
.contact-form button[type="submit"]:disabled{opacity:.65;cursor:wait}
/* Marked slots for material still to come (team photos, Labs interfaces). */
.pending-note{margin:0;font:12px/1.4 var(--sans);color:#8a8a8a;text-align:center}
.nav-feature-media.is-pending{display:grid;place-items:center}
.world-card.labs-card{background:#e9e9e7}
.world-card.labs-card>.pending-note{position:absolute;left:0;right:0;bottom:22px}
.labs-small-card{display:flex;flex-direction:column;justify-content:space-between;background:#e4e4e4;color:#0d0d0d}
.labs-small-card i{background:#0000000f}
.labs-small-card>.pending-note{margin:auto}
.labs-pending{max-width:1400px;margin:0 auto 120px;padding:0 20px}
.labs-pending>.pending-note{display:grid;place-items:center;aspect-ratio:16/7;border:1px dashed #c8c8c8;border-radius:16px;padding:20px}
/* Studio presentation: the copy grows with its text (the third paragraph carries the location), and only its end fades into the link. */
.manifesto-copy{height:auto;min-height:0;padding-bottom:0;mask-image:none}
.nav-item small{text-wrap:balance}
.labs-intro>.tag{display:inline-block;margin-bottom:24px}
/* Forms (2026-10-11 fixes): selects with the menu chevron; the empty choice in placeholder grey. */
.contact-form .select-wrap{position:relative;display:block}
.contact-form .select-wrap>.chevron{position:absolute;right:22px;top:50%;margin:-6px 0 0;pointer-events:none}
.contact-form select:has(>option[value=""]:checked){color:#aaa}
.contact-form option{background:#252525;color:#fff}
.contact-page-form option{background:#fff;color:#0d0d0d}
.contact-lead{width:min(710px,100%);margin:-36px auto 48px;color:#aaa}
/* Labs: the systems as a plain list in the form's column (no step numbers: they are not a sequence). */
.labs-systems{max-width:750px;margin:0 auto;padding:0 20px 140px}
.labs-systems>h2{font-size:28px;line-height:1.3;margin-bottom:32px}
.labs-systems ul{list-style:none;margin:0;padding:0;border-top:1px solid var(--line)}
.labs-systems li{padding:24px 0;border-bottom:1px solid var(--line)}
.labs-systems h3{font:24px/1.3 var(--serif);letter-spacing:-.02em;margin:0}
/* On /labs/ the footer's Labs card would point to the page itself: a Studio card takes its place (mark kept above the text). */
.footer-card.footer-studio{background:#000}
.footer-card.footer-studio>img,.footer-card.footer-studio>picture>img{height:64%;filter:none}
/* Contact: the intro on the dark surface over the PH glow, direct contact under it. */
.contact-intro{position:relative;overflow:hidden;isolation:isolate}
.contact-intro:before{content:'';position:absolute;z-index:-1;left:50%;top:58%;width:min(860px,150vw);aspect-ratio:1;transform:translate(-50%,-50%);background:url('/explore/services/ph-gradient.webp') center/contain no-repeat;background-image:image-set(url('/explore/services/ph-gradient.w1080.avif') type('image/avif'),url('/explore/services/ph-gradient.webp') type('image/webp'));mix-blend-mode:screen;opacity:.55;pointer-events:none}
.contact-intro .page-intro{padding-bottom:150px}
.contact-intro .contact-direct{display:flex;flex-wrap:wrap;justify-content:center;gap:6px 28px;margin:44px auto 0;font:14px/1.4 var(--display)}
.contact-direct a{text-decoration:underline;text-underline-offset:3px}
.contact-intro .contact-google{display:flex;justify-content:center;max-width:none;margin:22px 0 0;font:13px/1.4 var(--display)}.contact-google a{display:inline-flex;align-items:center;gap:8px;padding:8px 14px;border:1px solid #ffffff38;border-radius:999px;transition:border-color .2s}.contact-google a:hover{border-color:#fff}.contact-google span{background:linear-gradient(90deg,#ff6a00,#e300c7);-webkit-background-clip:text;background-clip:text;color:transparent;font-size:15px}
.contact-intro+.contact-page-form{padding-top:96px}
@media(max-width:760px){.labs-systems{padding-bottom:90px}.labs-systems>h2{font-size:24px}.labs-systems h3{font-size:20px}.labs-systems li{padding:20px 0}.contact-intro .page-intro{padding-bottom:100px}.contact-intro+.contact-page-form{padding-top:56px}.contact-submit.split-cta>span{height:48px}.contact-submit.split-cta>i{width:48px;height:48px}}
/* Second review (2026-10-08). */
.form-optional{opacity:.55;font-size:.9em}
.service-catalog-image{position:relative}
.service-catalog-caption{position:absolute;left:14px;bottom:14px;padding:7px 11px;border-radius:999px;font:12px/1 var(--sans);color:#fff;background:#0d0d0db3;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}
.case-website-shot{margin:0;border-radius:8px;overflow:hidden;box-shadow:0 18px 50px #0002}
.case-website-shot img{display:block;width:100%;height:auto}
@media(max-width:760px){.site-header{justify-content:flex-end;gap:8px}.site-header>.split-cta{display:inline-flex}.site-header>.split-cta i{display:none}.site-header>.split-cta span{height:42px;padding:0 13px;border-radius:8px}.menu-toggle{width:78px}header.site-header>.split-cta{margin-left:0}}
/* Bilingual base: links from the Spanish site to pages that only exist in English carry a small EN mark. */
.lang-tag{display:inline-block;margin-left:5px;padding:1px 3px 0;border:1px solid currentColor;border-radius:3px;font:500 8px/1.1 var(--sans);letter-spacing:.06em;vertical-align:2px;opacity:.45}
/* Text for assistive technology only. */
.visually-hidden{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
/* Case pages: service tags link to their service page; same pill, underlined on hover and focus. */
.case-meta a.tag{color:inherit;text-decoration:none}
.case-meta a.tag:hover,.case-meta a.tag:focus-visible{text-decoration:underline;text-underline-offset:2px}
/* Hero badge: Upwork Top Rated Plus between laurels, after the Product Hunt badge (two label lines, one large line).
   Inherits the hero text colour, so it follows the project themes. */
.hero-badge{display:inline-flex;align-items:center;gap:3px;margin:0;color:inherit}
.hero-laurel{width:39px;height:68px;flex:none;fill:currentColor}
.hero-laurel.is-right{transform:scaleX(-1)}
.hero-badge-text{display:flex;flex-direction:column;align-items:center;white-space:nowrap}
.hero-badge-text small{font:14px/1.12 var(--display);letter-spacing:-.01em}
.hero-badge-text b{font:400 24px/1 var(--display);letter-spacing:-.02em;-webkit-text-stroke:.55px currentColor;margin-top:3px}

/* Split CTA arrow (2026-10-11): drawn, not the text glyph, so every button shows the same right-pointing arrow. On hover it slides out to the right while a second one slides in from the left; the box never rotates. */
.split-cta i{position:relative;overflow:hidden;font-size:0!important}.split-cta i:before,.split-cta i:after{content:'';position:absolute;inset:0;margin:auto;width:18px;height:18px;background:currentColor;-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4.5 12h14.5M13.5 6.5 19 12l-5.5 5.5'/%3E%3C/svg%3E") center/contain no-repeat;mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4.5 12h14.5M13.5 6.5 19 12l-5.5 5.5'/%3E%3C/svg%3E") center/contain no-repeat;transition:translate .5s cubic-bezier(.22,1,.36,1)}.split-cta i:after{translate:-160% 0}.split-cta:hover i:before,.split-cta:focus-visible i:before{translate:160% 0}.split-cta:hover i:after,.split-cta:focus-visible i:after{translate:0 0}@media(prefers-reduced-motion:reduce){.split-cta i:before,.split-cta i:after{transition:none}}
