
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--paper);font-family:var(--body);font-size:16px;color:var(--ink);-webkit-font-smoothing:antialiased;overflow-x:hidden}a{color:inherit;text-decoration:none}button,summary{font:inherit}button{cursor:pointer}img{max-width:100%;display:block}::selection{background:var(--blue);color:white}.pad-x{padding-left:var(--side);padding-right:var(--side)}.section-pad{padding-top:var(--section-pad-top);padding-bottom:var(--section-pad-bottom)}.muted{color:var(--muted)!important}.eyebrow{font-size:11px;text-transform:uppercase;font-weight:700;letter-spacing:-.03em}.eyebrow.inverse{color:#ddd}.red-dot{color:var(--red)}.blue-dot{color:#7684ff}.tm{font-size:9px;vertical-align:top;position:relative;top:4px;font-weight:700}.site-header{height:72px;padding:0 var(--side);display:grid;grid-template-columns:1fr auto 1fr;gap:20px;align-items:center;position:relative;z-index:25;background:var(--paper)}.brand{font-family:var(--display);font-size:29px;font-weight:800;letter-spacing:-.097em;display:inline-block;width:max-content;line-height:1}.brand-slash{color:var(--blue);padding:0 .05em}.nav-primary{display:flex;gap:clamp(14px,2vw,33px);align-items:center;font-size:12px;font-weight:600}.nav-primary a{transition:opacity .2s}.nav-primary a:hover{opacity:.5}.nav-index{display:inline-grid;place-items:center;border-radius:50%;background:#111;color:#fff;width:17px;height:17px;font-size:10px;margin-right:4px}.nav-menu-btn{justify-self:end;background:#121212;border:none;color:#fff;border-radius:40px;padding:11px 20px;min-width:94px;display:flex;align-items:center;gap:12px;font-size:12px;font-weight:700;position:relative;z-index:55}.menu-lines{width:16px;display:grid;gap:4px}.menu-lines span{width:100%;height:1px;background:#fff;display:block;transition:transform .28s}.menu-open .menu-lines span:first-child{transform:translateY(2.5px) rotate(45deg)}.menu-open .menu-lines span:last-child{transform:translateY(-2.5px) rotate(-45deg)}.menu-panel{position:fixed;inset:0;background:#171719;color:#fff;z-index:24;transform:translateY(-101%);transition:transform .65s cubic-bezier(.75,.02,.18,1);padding:120px var(--side) 50px;overflow:auto}.menu-open .menu-panel{transform:none}.menu-inner{max-width:1450px;margin:auto;display:flex;flex-direction:column}.menu-inner>a{border-bottom:1px solid #404043;display:flex;justify-content:space-between;font:600 clamp(45px,7vw,105px)/1.2 var(--display);letter-spacing:-.08em;padding:12px 0;transition:color .25s,transform .25s}.menu-inner>a:hover{color:#8791ff;transform:translateX(6px)}.menu-inner>a span{font:500 13px var(--body);letter-spacing:0;padding-top:16px}.menu-bottom{display:flex;justify-content:space-between;margin-top:35px;font-size:11px}.progress-line{height:3px;background:var(--blue);position:fixed;top:0;left:0;width:0;z-index:100;pointer-events:none}
.pill{border-radius:50px;padding:15px 19px;display:inline-flex;align-items:center;gap:22px;width:max-content;font-size:12px;font-weight:750;white-space:nowrap;transition:transform .28s,background .28s,color .28s}.pill:hover{transform:translateY(-3px)}.pill span{font-size:17px;line-height:0}.pill.white{background:white;color:#111}.pill.dark{background:#111;color:white}.pill.outline{border:1px solid #999;background:transparent}.pill.outline:hover{background:#111;color:white}.pill.small{font-size:10px;padding:11px 15px;gap:12px}.hero-shot-wrap{position:relative}.hero-shot{height:clamp(440px,43vw,690px);border-radius:18px;overflow:hidden;position:relative;color:white;isolation:isolate;background:#bc352a}.hero-image{position:absolute;inset:-6%;width:112%;height:112%;object-fit:cover;filter:saturate(1.1) contrast(1.15);transform:scale(1.075);animation:heroZoom 2.1s cubic-bezier(.25,.1,.24,1) both}.hero-shade{position:absolute;inset:0;background:linear-gradient(90deg,rgba(4,6,12,.33),transparent 50%),linear-gradient(0deg,rgba(4,2,8,.56),transparent 33%);pointer-events:none}.hero-meta-top,.hero-meta-bottom{position:absolute;z-index:2;left:clamp(20px,2vw,40px);right:clamp(20px,2vw,40px);display:flex;justify-content:space-between;align-items:center}.hero-meta-top{top:30px;text-transform:uppercase;font-size:11px;letter-spacing:.02em;font-weight:650}.hero-meta-bottom{bottom:26px;gap:25px;align-items:flex-end}.hero-meta-bottom p{font-family:var(--display);font-size:clamp(15px,1.5vw,22px);font-weight:650;letter-spacing:-.06em;text-align:right;margin:0 0 4px auto}.live-dot,.availability-dot{display:inline-block;width:9px;height:9px;border-radius:100%;background:#b4ff9d;box-shadow:0 0 0 4px #b4ff9d22;vertical-align:middle;margin:0 5px}.hero-proof{display:flex;align-items:center;gap:9px;max-width:290px;font-size:11px;line-height:1.4;font-weight:500}.proof-icon{width:40px;height:40px;border-radius:50%;border:1px solid #ffffff9c;display:grid;place-items:center;font-size:23px}.mega-wordmark{font:800 clamp(63px,14.5vw,240px)/.98 var(--display);letter-spacing:-.115em;white-space:nowrap;overflow:hidden;padding-top:9px;padding-bottom:9px;display:flex;justify-content:space-between;align-items:center}.slash-char{color:var(--blue);margin:0 .03em}.wordmark-star{color:var(--red);font-size:.21em;letter-spacing:0;transform:translateY(.25em) rotate(-15deg)}@keyframes heroZoom{from{transform:scale(1.22);filter:saturate(1) brightness(.8)}to{transform:scale(1.075);filter:saturate(1.1) brightness(1)}}
.section-grid-intro{border-top:1px solid var(--line);padding-top:31px;display:grid;grid-template-columns:25% 1fr;gap:30px}.intro-statement{text-align:left;font:650 clamp(30px,3.6vw,61px)/1.18 var(--display);letter-spacing:-.07em;max-width:880px}.intro-lower{display:grid;grid-template-columns:25% 37% 1fr;gap:25px;margin-top:42px;align-items:end}.intro-copy{max-width:425px}.intro-copy>p{font-size:16px;line-height:1.43;max-width:270px;margin:0 0 30px}.intro-copy>p.muted{font-size:14px}.intro-photo{overflow:hidden;border-radius:12px;width:min(100%,360px);height:380px;margin-top:35px}.intro-photo img{height:100%;width:100%;object-fit:cover;transition:transform .7s}.intro-photo:hover img{transform:scale(1.05)}.intro-side{align-self:end}.thin-label{display:block;border-bottom:1px solid var(--line);padding-bottom:15px;font-size:12px;color:#686868}.intro-numbers{display:grid;grid-template-columns:repeat(3,1fr);gap:9px;padding-top:12px}.intro-numbers strong{font:650 clamp(18px,2.3vw,38px)/1.1 var(--display);letter-spacing:-.08em;display:block}.intro-numbers small{display:block;margin-top:10px;font-size:10px;color:var(--muted);line-height:1.3}.logo-strip-header{display:flex;justify-content:space-between;align-items:end;margin-top:140px;margin-bottom:17px;font-size:13px;color:#666}.logo-track{overflow:hidden;border-bottom:1px solid var(--line);border-top:1px solid var(--line);padding:16px 0}.logo-track-inner{display:flex;width:max-content;gap:12px;animation:logoRoll 28s linear infinite}.logo-track:hover .logo-track-inner{animation-play-state:paused}.logo-track-inner span{border-radius:13px;background:#f0f0ee;padding:30px 42px;min-width:220px;text-align:center;font:750 25px var(--display);letter-spacing:-.07em;white-space:nowrap}@keyframes logoRoll{to{transform:translateX(-50%)}}
.section-heading-line{border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:30px 0;display:grid;grid-template-columns:25% 1fr 23%;align-items:center;gap:22px}.section-heading-line h2{font:650 clamp(30px,3.3vw,55px)/1.14 var(--display);letter-spacing:-.075em;margin:0}.section-heading-line p{font-size:13px;color:var(--muted);max-width:240px;line-height:1.5;margin:0}.mobile-only{display:none}.projects{max-width:1380px;margin:120px auto 0;display:flex;flex-direction:column;gap:clamp(95px,10vw,170px)}.project-card{display:block;position:relative;overflow:hidden;border-radius:15px;min-height:clamp(350px,44vw,650px);background:#333;color:#fff;margin-left:auto;margin-right:auto;width:90%;isolation:isolate;transition:width .6s cubic-bezier(.2,.7,.2,1),transform .7s;box-shadow:0 10px 28px #0000000a}.project-card:hover{width:94%;transform:translateY(-6px)}.project-art{position:absolute;inset:0}.project-art img{width:100%;height:100%;object-fit:cover;transform:scale(1.04);transition:transform 1.2s cubic-bezier(.17,.67,.3,1);filter:saturate(1.18)}.project-card:hover .project-art img{transform:scale(1.12)}.art-forma{background:#d69aaf}.art-orbit{background:#cd6931}.art-strata{background:#aaa7be}.project-card::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,#10101452,transparent 40%,transparent 60%,#1010143b);pointer-events:none}.project-topline{position:relative;z-index:2;display:grid;grid-template-columns:24% 24% 1fr auto;gap:20px;align-items:center;margin:6px;padding:14px 20px;background:#1b1d2173;border:1px solid #ffffff60;backdrop-filter:blur(22px);border-radius:10px;min-height:76px}.project-type{font-size:10px;font-weight:650;line-height:1.3}.project-name{font:650 clamp(23px,3vw,48px)/1 var(--display);letter-spacing:-.085em}.project-name sup{font:500 10px var(--body);letter-spacing:0;vertical-align:top;margin-left:6px}.project-note{font-size:12px;line-height:1.3}.project-corner{position:absolute;z-index:2;bottom:24px;left:25px;font-size:10px;letter-spacing:.07em;font-weight:600;opacity:.8}.more-work{text-align:center;margin-top:65px}.text-link{font-size:16px;display:inline-flex;gap:15px;align-items:center;border-bottom:1px solid var(--line);padding-bottom:10px}.text-link span{color:var(--red)}.text-link:hover{color:var(--blue)}
.dark-manifesto{background:#151516;color:#fff;min-height:710px;overflow:hidden;position:relative}.manifesto-top{display:flex;justify-content:space-between;font-size:12px;gap:20px;letter-spacing:.02em}.manifesto-big{font:600 clamp(60px,9.5vw,156px)/1.07 var(--display);letter-spacing:-.095em;text-align:center;margin:120px auto 100px;max-width:1480px}.manifesto-big>span:first-child{color:#858585}.manifesto-big em{font-style:normal;color:#a2a9ff}.manifesto-footer{display:flex;justify-content:space-between;align-items:end;position:relative;z-index:2}.manifesto-footer p{font-size:15px;max-width:250px;line-height:1.5;margin:0}.manifesto-marquee{font:700 clamp(85px,12vw,180px)/1 var(--display);letter-spacing:-.09em;white-space:nowrap;color:#343437;position:absolute;bottom:-32px;left:16%;pointer-events:none}
.services-layout{display:grid;grid-template-columns:37% 1fr;gap:8%;margin-top:75px}.services-feature-picture{height:420px;position:relative;overflow:hidden;border-radius:14px}.services-feature-picture img{width:100%;height:100%;object-fit:cover;transition:transform 1s}.services-feature-picture:hover img{transform:scale(1.07)}.vertical-word{position:absolute;left:22px;bottom:20px;color:#fff;font-size:10px;letter-spacing:.07em;font-weight:700}.services-feature-label{display:flex;justify-content:space-between;margin:21px 0 31px;font-size:11px}.services-feature h3{font:650 clamp(37px,4.2vw,68px)/1.04 var(--display);letter-spacing:-.08em;margin:0 0 15px}.services-feature>p{max-width:275px;font-size:14px;line-height:1.5;color:var(--muted)}.service-rows{align-self:start}.service-row{border-bottom:1px solid var(--line);display:grid;grid-template-columns:42px 1fr 25px;gap:15px;align-items:start;padding:28px 0;transition:padding .2s}.service-row:first-child{border-top:1px solid var(--line)}.service-row>span:first-child{font-size:11px;padding-top:13px}.service-row h3{font:600 clamp(28px,2.7vw,43px) var(--display);letter-spacing:-.07em;margin:0 0 7px}.service-row p{font-size:13px;line-height:1.5;color:var(--muted);max-width:360px;margin:0}.service-row .plus{font-size:22px;transition:transform .25s}.service-row:hover .plus{transform:rotate(45deg);color:var(--blue)}
.flow-section{background:#efefed}.workflow-visual{height:clamp(420px,52vw,710px);border-radius:18px;background:#15161c;position:relative;overflow:hidden;color:#fff;margin-top:65px;isolation:isolate}.workflow-grid{position:absolute;inset:0;background:linear-gradient(#ffffff12 1px,transparent 1px),linear-gradient(90deg,#ffffff12 1px,transparent 1px);background-size:60px 60px;mask-image:radial-gradient(ellipse at center,black 20%,transparent 90%)}.workflow-visual::before{content:"";position:absolute;inset:20% 25%;background:#3549cc;filter:blur(110px);opacity:.42;border-radius:50%}.workflow-orbit{position:absolute;inset:8% 23%;border:1px solid #bbc1ff4b;border-radius:50%;transform:rotate(-23deg)}.orbit-two{inset:18% 32%;transform:rotate(38deg)}.workflow-center{font:750 clamp(38px,6vw,91px)/.94 var(--display);letter-spacing:-.09em;position:absolute;top:37%;left:50%;transform:translate(-50%,-50%);text-align:center;white-space:nowrap}.workflow-center span{color:#a3acff}.workflow-chip{position:absolute;background:#faf9f6;color:#141418;padding:14px 22px;border-radius:9px;display:flex;gap:25px;font:700 clamp(13px,1.3vw,19px) var(--display);letter-spacing:-.05em;box-shadow:0 18px 40px #0003;animation:float 5s ease-in-out infinite}.workflow-chip span{color:var(--blue)}.w-figma{left:13%;top:15%}.w-system{right:11%;top:20%;animation-delay:-1s}.w-claude{left:21%;bottom:21%;animation-delay:-2s}.w-astro{right:17%;bottom:19%;animation-delay:-3s}.workflow-caption{position:absolute;bottom:25px;left:30px;font-size:11px;letter-spacing:.03em;opacity:.7}@keyframes float{50%{transform:translateY(-11px)}}.steps{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-top:58px}.step{border-top:1px solid #bbb;padding-top:16px}.step-num{font-size:11px;color:var(--muted)}.step h3{font:650 clamp(27px,2.5vw,42px) var(--display);letter-spacing:-.07em;margin:26px 0 14px}.step p{font-size:13px;line-height:1.5;color:var(--muted);max-width:265px}
.pricing-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:13px;margin-top:40px}.pricing-card{padding:29px;border-radius:13px;background:var(--surface);min-height:550px;display:flex;flex-direction:column;align-items:stretch}.pricing-card.is-dark{background:#171718;color:#fff}.card-number{font-size:11px;font-weight:750}.pricing-card h3{font:650 clamp(38px,4.7vw,70px)/1.03 var(--display);letter-spacing:-.085em;margin:64px 0 15px}.pricing-card p{font-size:14px;line-height:1.45;max-width:250px;color:var(--muted)}.pricing-card.is-dark p{color:#b4b4b4}.pricing-card strong{font:650 23px var(--display);display:block;letter-spacing:-.05em;margin:24px 0}.pricing-card strong small{font:400 11px var(--body);letter-spacing:0}.pricing-card ul{list-style:none;margin:auto 0 30px;padding:18px 0 0;border-top:1px solid #bbbbbb85}.pricing-card li{font-size:12px;margin:11px 0}.pricing-card li::before{content:"↗";margin-right:12px;color:var(--blue)}.pricing-card .pill{width:100%;justify-content:space-between}.pricing-disclaimer{font-size:11px;color:var(--muted);margin-top:24px}
.questions-section{padding-top:80px}.faq-list{max-width:100%;margin-top:55px}.faq-list details{border-bottom:1px solid var(--line)}.faq-list details:first-child{border-top:1px solid var(--line)}.faq-list summary{cursor:pointer;list-style:none;padding:24px 0;display:flex;justify-content:space-between;align-items:center;font:550 clamp(17px,1.65vw,27px)/1.35 var(--display);letter-spacing:-.04em}.faq-list summary::-webkit-details-marker{display:none}.faq-list summary span{border:1px solid var(--line);border-radius:100%;width:32px;height:32px;display:grid;place-items:center;flex-shrink:0;margin-left:18px;transition:transform .2s}.faq-list details[open] summary span{transform:rotate(45deg)}.faq-list details p{font-size:14px;line-height:1.65;color:#6b6b6b;max-width:600px;padding-bottom:20px;margin:0}.contact-section{padding-top:95px}.contact-content{display:flex;justify-content:space-between;align-items:end;padding-top:55px}.contact-main{max-width:900px}.contact-email{font:650 clamp(45px,7.5vw,120px)/1.1 var(--display);letter-spacing:-.09em;display:block;margin:20px 0}.contact-email span{color:var(--red)}.contact-email:hover span{color:var(--blue)}.contact-main>p{font-size:12px;color:var(--muted)}.contact-availability{display:grid;gap:9px;justify-items:start;font-size:13px;padding-bottom:18px}.contact-availability strong{font-size:13px}.contact-availability span:last-child{font-size:11px;color:var(--muted)}.contact-availability .availability-dot{background:#59bf72}
.footer{border-top:1px solid var(--line);padding-top:80px;padding-bottom:25px}.footer-top{display:grid;grid-template-columns:25% 1fr 25%;gap:30px}.footer-brand{font:750 36px var(--display);letter-spacing:-.09em}.footer-brand>span{color:var(--blue)}.footer-brand sup{font-size:10px;vertical-align:top}.footer-top p{font:550 clamp(26px,3vw,44px)/1.2 var(--display);letter-spacing:-.06em;margin:0}.footer-top nav{display:flex;flex-direction:column;gap:9px;font-size:14px}.footer-top nav a{border-bottom:1px solid var(--line);padding-bottom:8px}.footer-giant{font:800 16vw/.98 var(--display);letter-spacing:-.105em;white-space:nowrap;color:#e7e6e4;margin:70px -1vw 5px;overflow:hidden}.footer-bottom{border-top:1px solid var(--line);padding-top:16px;display:flex;justify-content:space-between;gap:15px;font-size:10px;letter-spacing:.02em}
/* Case-study page */
.case-head{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;border-bottom:1px solid var(--line);min-height:173px;gap:15px}.case-head h1{font:650 clamp(58px,8vw,125px)/1 var(--display);letter-spacing:-.09em;margin:0}.back-link{font-size:12px;display:flex;gap:12px;align-items:center}.back-round{width:42px;height:42px;display:grid;place-items:center;border-radius:100%;color:#fff;background:#111;font-size:18px}.case-year{justify-self:end;align-self:end;padding-bottom:37px;font-size:13px}.case-hero{height:clamp(370px,53vw,760px);margin:25px 0 70px;border-radius:15px;position:relative;overflow:hidden}.case-hero-bg{position:absolute;inset:0}.case-hero img{width:100%;height:100%;object-fit:cover;transition:transform 1.5s}.case-hero:hover img{transform:scale(1.05)}.case-hero-overlay{position:absolute;inset:auto 25px 25px;display:flex;justify-content:space-between;align-items:end;color:white;font-size:11px;font-weight:650}.case-hero::after{content:"";position:absolute;inset:0;pointer-events:none;background:linear-gradient(transparent 65%,#0005);z-index:0}.case-hero-overlay>*{position:relative;z-index:1}.case-body{display:grid;grid-template-columns:35% 1fr;gap:clamp(35px,5vw,95px)}.case-sidebar{align-self:start;position:sticky;top:24px;max-width:480px}.case-stat{border-bottom:1px solid var(--line);padding:19px 0;display:flex;justify-content:space-between;align-items:start;gap:15px}.case-stat span{font-size:11px;color:var(--muted)}.case-stat strong{font:600 clamp(14px,1.5vw,21px) var(--display);letter-spacing:-.05em;text-align:right}.case-sidebar .text-link{margin-top:30px}.case-story{padding-bottom:90px}.story-block{max-width:740px;margin:0 0 55px}.story-block .eyebrow{margin-bottom:18px;display:block}.story-block h2{font:650 clamp(29px,3vw,50px)/1.11 var(--display);letter-spacing:-.07em;margin:0 0 24px}.story-block p{font-size:15px;line-height:1.68;max-width:650px}.story-block ul{font-size:14px;line-height:1.8;padding-left:18px}.story-block .fine-print{color:var(--muted);font-size:12px}.case-image-pair{display:grid;grid-template-columns:1fr 1fr;gap:13px;margin:0 0 55px}.case-image{height:clamp(220px,23vw,385px);border-radius:12px;overflow:hidden}.case-image img{width:100%;height:100%;object-fit:cover;transition:transform .8s}.case-image:hover img{transform:scale(1.07)}.case-image-wide{height:clamp(290px,36vw,540px);border-radius:13px;overflow:hidden;position:relative;margin:0 0 15px}.case-image-wide img{width:100%;height:100%;object-fit:cover}.case-image-wide span{position:absolute;left:20px;bottom:20px;color:#fff;font-size:11px;font-weight:700}.system-preview{background:#e5e6e4;border-radius:14px;margin-bottom:55px;padding:25px;min-height:450px;display:flex;flex-direction:column;justify-content:space-between;overflow:hidden}.sys-top{display:flex;justify-content:space-between;font-size:10px;font-weight:750;letter-spacing:.02em}.sys-title{font:700 clamp(38px,5vw,78px)/1 var(--display);letter-spacing:-.09em;margin:70px 0 45px}.sys-controls{display:flex;align-items:center;justify-content:space-between;gap:15px;flex-wrap:wrap}.color-palette{display:flex}.color-palette i{width:55px;height:55px;border-radius:100%;border:3px solid #e5e6e4;margin-left:-9px;background:#111}.color-palette i:nth-child(2){background:#eee}.color-palette i:nth-child(3){background:#4859ea}.color-palette i:nth-child(4){background:#f75530}.color-palette i:nth-child(5){background:#aeb5f5}.sys-buttons{display:flex;gap:6px;flex-wrap:wrap}.sys-buttons span{border-radius:80px;background:#111;color:white;font-size:12px;padding:15px 19px}.sys-buttons span:last-child{background:transparent;color:#111;border:1px solid #111}.sys-bottom{display:flex;gap:25px;align-items:end;border-top:1px solid #bbb;padding-top:16px;font-size:12px}.sys-bottom span:first-child{font:600 55px/.8 var(--display)}.sys-bottom span:last-child{margin-left:auto}.next-case{display:flex;justify-content:space-between;gap:35px;align-items:end;padding-top:100px;padding-bottom:100px;background:#eff0ed}.next-case h2{font:650 clamp(55px,8vw,130px)/1 var(--display);letter-spacing:-.09em;margin:28px 0 0}
/* Scroll motion defaults */
[data-reveal]{opacity:1;transform:none}body.js-ready [data-reveal]{opacity:0;transform:translateY(44px);transition:opacity .95s cubic-bezier(.2,.7,.2,1),transform .95s cubic-bezier(.2,.7,.2,1)}body.js-ready [data-reveal].revealed{opacity:1;transform:translateY(0)}.project-card[data-reveal]{transition:opacity .8s,transform .8s,width .6s}.project-card[data-reveal].revealed:hover{transform:translateY(-6px)}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation-duration:.01ms!important;transition-duration:.01ms!important}body.js-ready [data-reveal]{opacity:1;transform:none}}
@media(max-width:1050px){.nav-primary{display:none}.site-header{grid-template-columns:1fr auto}.intro-lower{grid-template-columns:15% 45% 1fr}.section-grid-intro,.section-heading-line{grid-template-columns:23% 1fr}.section-heading-line p{grid-column:2}.project-topline{grid-template-columns:27% 1fr auto}.project-note{display:none}.services-layout{gap:5%}.project-card{width:96%}.mega-wordmark{font-size:14vw}.pricing-card{padding:22px}}
@media(max-width:700px){.site-header{height:65px}.brand{font-size:25px}.nav-menu-btn{padding:11px 15px;min-width:82px}.hero-shot{height:640px;min-height:min(84svh,720px)}.hero-image{inset:-10%;width:120%;height:120%}.hero-meta-top{top:19px;gap:12px;font-size:9px;flex-direction:column;align-items:flex-start}.hero-meta-bottom{bottom:20px;align-items:flex-start;flex-wrap:wrap;gap:16px}.hero-proof{order:1;width:100%}.hero-meta-bottom p{order:0;flex:1;text-align:left;font-size:20px;min-width:100%}.hero-meta-bottom .pill{order:2}.mega-wordmark{font-size:14.2vw;letter-spacing:-.12em;padding-top:24px;padding-bottom:16px}.wordmark-star{font-size:.2em}.section-pad{padding-top:88px;padding-bottom:78px}.section-grid-intro,.section-heading-line{display:block}.section-grid-intro .eyebrow,.section-heading-line .eyebrow{display:block;margin-bottom:30px}.intro-statement{font-size:36px;line-height:1.17}.intro-lower{display:grid;grid-template-columns:1fr 1fr;gap:22px;margin-top:45px}.intro-blank{display:none}.intro-copy>p{font-size:14px}.intro-copy>p.muted{font-size:13px}.intro-photo{height:255px;width:100%}.intro-side{align-self:end}.intro-numbers{display:block}.intro-numbers>div{margin:0 0 16px}.intro-numbers strong{font-size:22px}.intro-numbers small{margin-top:3px}.logo-strip-header{margin-top:80px;font-size:11px}.logo-track-inner span{min-width:185px;padding:24px;font-size:20px}.section-heading-line{padding:25px 0}.section-heading-line h2{font-size:38px;margin-bottom:15px}.section-heading-line p{font-size:13px}.mobile-only{display:initial}.projects{margin-top:55px;gap:35px}.project-card,.project-card:hover{width:100%;height:470px;min-height:0;border-radius:12px}.project-topline{display:grid;grid-template-columns:1fr auto;grid-template-rows:auto auto;gap:12px;min-height:100px;align-items:start;padding:14px}.project-type{grid-column:1;font-size:9px}.project-name{grid-column:1;grid-row:2;font-size:31px}.project-topline .pill{grid-column:2;grid-row:2;align-self:end}.project-corner{font-size:9px;bottom:17px;left:14px}.dark-manifesto{min-height:620px}.manifesto-top{display:block;font-size:10px}.manifesto-top span{display:block;margin-bottom:10px}.manifesto-big{font-size:clamp(56px,10vw,79px);text-align:left;margin:100px 0 120px}.manifesto-footer{display:block}.manifesto-footer p{margin-bottom:22px}.manifesto-marquee{font-size:88px}.services-layout{display:block;margin-top:40px}.services-feature{margin-bottom:65px}.services-feature-picture{height:430px}.services-feature h3{font-size:52px}.service-row h3{font-size:27px}.service-row{grid-template-columns:32px 1fr 22px;gap:10px}.workflow-visual{height:550px;margin-top:40px}.workflow-chip{font-size:12px;padding:11px 15px;gap:10px}.w-figma{left:5%;top:17%}.w-system{right:5%;top:31%}.w-claude{left:6%;bottom:25%}.w-astro{right:5%;bottom:15%}.workflow-center{font-size:51px;top:49%}.workflow-orbit{inset:21% 10%}.orbit-two{inset:28% 17%}.workflow-caption{font-size:9px;bottom:15px;left:15px;right:15px}.steps{grid-template-columns:1fr 1fr;gap:24px}.step h3{font-size:29px;margin:22px 0 10px}.step p{font-size:12px}.pricing-grid{grid-template-columns:1fr;gap:12px}.pricing-card{min-height:480px;padding:25px}.pricing-card h3{font-size:58px;margin:45px 0 12px}.questions-section{padding-top:70px}.faq-list{margin-top:35px}.contact-section{padding-top:65px}.contact-content{display:block;padding-top:35px}.contact-email{font-size:54px;line-height:1.13;margin:22px 0}.contact-availability{margin-top:44px}.footer{padding-top:60px}.footer-top{display:grid;grid-template-columns:1fr 1fr;gap:25px}.footer-top p{font-size:26px}.footer-top nav{grid-column:1/-1;flex-direction:row;justify-content:space-between}.footer-top nav a{border:0;font-size:12px}.footer-giant{font-size:16.2vw;margin-top:90px}.footer-bottom{flex-wrap:wrap;font-size:9px;line-height:1.4}.footer-bottom span:last-child{display:none}.case-head{grid-template-columns:1fr auto;gap:22px;min-height:130px;padding:20px 0}.case-head h1{grid-column:1;grid-row:2;font-size:69px}.case-head .back-link{grid-column:1/3;grid-row:1}.case-year{grid-column:2;grid-row:2;align-self:end;padding:0 0 10px;font-size:10px}.case-hero{height:440px;margin:20px 0 40px}.case-hero-overlay{inset:auto 15px 15px;flex-wrap:wrap;gap:15px}.case-body{display:block}.case-sidebar{position:static;max-width:unset;margin-bottom:65px}.case-stat{padding:13px 0}.case-stat strong{font-size:15px}.story-block h2{font-size:36px}.story-block p{font-size:14px}.case-image-pair{gap:8px}.case-image{height:260px}.case-image-wide{height:330px}.system-preview{padding:16px;min-height:410px}.sys-top{font-size:9px}.sys-top span:last-child{max-width:120px;text-align:right}.sys-title{font-size:49px}.color-palette i{height:40px;width:40px}.sys-buttons span{font-size:10px}.next-case{display:block;padding-top:75px;padding-bottom:75px}.next-case h2{font-size:66px;margin-bottom:45px}}
@media(max-width:380px){.hero-shot{height:550px}.mega-wordmark{font-size:14vw}.project-topline .pill{font-size:9px}.project-card{height:410px}.intro-lower{grid-template-columns:1fr}.intro-side{display:none}.intro-photo{max-width:260px}.step p{font-size:11px}.contact-email{font-size:48px}}

/* ========================================================================
   STUDIO / SHIFT V2 — HEADER & HERO REFERENCE AUDIT (Craftica desktop capture)
   Updated to Inter / Inter Display-like metrics and captured neutral palette.
   Original brand accents are retained. All hero proof content is truthful.
   The reference is 1440px wide; the supplied screenshots were around 1502px.
   ======================================================================== */
.site-header{height:68px;padding-inline:var(--nav-gutter);gap:20px;background:var(--paper)}
.brand{font-family:var(--display);font-size:clamp(29px,2.38vw,36px);font-weight:620;letter-spacing:-.087em;line-height:1.02}
.brand-slash{padding:0 .01em}
.tm{font-size:9px;top:1px;font-weight:600;letter-spacing:0}
.nav-primary{gap:clamp(32px,3.25vw,58px);font-size:16px;font-weight:450;letter-spacing:-.035em;line-height:1.2}
.nav-index{font-size:11px;font-weight:650;width:20px;height:20px;border-radius:6px;margin-right:5px;letter-spacing:-.02em}
.nav-menu-btn{min-width:109px;height:44px;padding:0 19px;gap:12px;justify-content:center;font-size:16px;font-weight:600;letter-spacing:-.035em;border-radius:28px}
.menu-lines{width:20px;gap:5px}
.menu-lines span{height:1.5px}
.hero-shot-wrap.pad-x{padding-inline:var(--hero-gutter)}
.hero-shot{height:clamp(440px,41.25vw,670px);border-radius:20px}
.hero-image{inset:-6%;width:112%;height:112%}
.hero-meta-top,.hero-meta-bottom{left:29px;right:29px}
.hero-meta-top{top:29px;justify-content:flex-start;gap:12px;font-size:16px;letter-spacing:-.035em;font-weight:500;text-transform:none}
.hero-local-time{display:flex;align-items:center;gap:10px;white-space:nowrap;color:#fff}
.hero-meta-top .live-dot{background:var(--white);box-shadow:none;width:10px;height:10px;margin:0;flex:0 0 auto}
.hero-time{color:#fff;font-weight:550;font-variant-numeric:tabular-nums;white-space:nowrap}
.hero-meta-bottom{bottom:31px;gap:22px;align-items:center}
.hero-proof{max-width:none;display:flex;gap:15px;font-weight:500;font-size:15px;letter-spacing:-.025em;white-space:nowrap}
.proof-avatars{display:flex;align-items:center;padding-left:0}
.proof-avatar{height:39px;width:39px;border-radius:50%;border:2px solid #f6f6f6;display:grid;place-items:center;margin-left:-10px;font-size:15px;font-weight:700;color:#fff;letter-spacing:-.06em;background:#26377a}
.proof-avatar:first-child{margin-left:0;background:#b63827}.proof-avatar:nth-child(2){background:#29262a}.proof-avatar:nth-child(3){background:#d38640}
.proof-copy{line-height:1.2}
.proof-star{color:var(--success);font-size:25px;line-height:1;margin-left:1px}
.proof-note{color:white}
.hero-actions{margin-left:auto;display:flex;gap:16px;align-items:center;justify-content:flex-end}
.hero-actions>p{font-family:var(--display);font-size:16px;line-height:1.22;letter-spacing:-.04em;font-weight:500;margin:0;text-align:right;max-width:245px}
.hero-action-divider{height:38px;width:1px;background:#ffffff89;margin:0 2px}
.hero-call-orb{height:55px;width:85px;border-radius:32px;background:#fff;display:flex;align-items:center;justify-content:space-evenly;padding:5px;flex:none}
.hero-call-orb .orb-mark{height:42px;width:42px;border-radius:50%;display:grid;place-items:center;font-size:21px;background:radial-gradient(circle at 20% 80%, #f53500 0%,#3b0f1b 50%,#ca6255 100%);color:#fff;border:1px solid #1115}
.hero-call-orb .orb-phone{height:40px;width:40px;border-radius:50%;display:grid;place-items:center;background:#131313;color:#fff;font-size:19px;border:2px solid #fff;transform:translateX(-8px)}
.hero-actions .pill.white{height:56px;min-width:162px;justify-content:center;padding:0 20px;gap:0;font-size:15px;font-weight:650;letter-spacing:-.04em}
.hero-actions .pill.white span{display:none}
.mega-wordmark.pad-x{padding-inline:var(--nav-gutter)}
.mega-wordmark{font-family:var(--display);font-weight:650;font-size:var(--display-size);letter-spacing:-.098em;line-height:.95;padding-top:22px;padding-bottom:6px;min-height:0}
.wordmark-star{font-size:.18em}
/* Align typography across reused elements, not just the navbar. */
.eyebrow{font-size:12px;font-weight:550;letter-spacing:-.025em}
.pill{font-size:15px;font-weight:600;letter-spacing:-.035em}
.intro-statement{font-weight:570;letter-spacing:-.065em}
.section-heading-line h2{font-weight:570}
@media(max-width:1050px){
  .site-header{grid-template-columns:1fr auto}
  .nav-primary{display:none}
  .hero-meta-bottom{align-items:flex-end}
  .hero-actions>p{max-width:230px}
  .hero-action-divider{display:none}
  .hero-call-orb{display:none}
}
@media(max-width:700px){
 
 .site-header{height:66px}
 .brand{font-size:29px}
 .nav-menu-btn{min-width:96px;height:41px;font-size:14px;padding-inline:14px}
 .hero-shot{height:min(700px,80svh);min-height:530px;border-radius:17px}
 .hero-meta-top{left:19px;right:19px;top:21px;font-size:13px;display:flex;flex-direction:row;align-items:center}
 .hero-local-time{gap:8px;flex-wrap:wrap}
 .hero-time{font-size:12px}
 .hero-meta-bottom{bottom:20px;left:19px;right:19px;align-items:flex-start;flex-direction:column;flex-wrap:nowrap;gap:17px}
 .hero-proof{width:100%;order:1;font-size:11px;gap:7px;flex-wrap:wrap;white-space:normal}
 .proof-avatar{height:28px;width:28px;font-size:12px;margin-left:-8px}
 .proof-star{font-size:21px;margin-left:auto}
 .hero-actions{order:0;width:100%;margin-left:0;flex-wrap:wrap;gap:12px;justify-content:space-between;align-items:flex-end}
 .hero-actions>p{font-size:18px;text-align:left;margin:0;max-width:none;width:100%}
 .hero-actions .pill.white{height:48px;min-width:144px;font-size:13px}
 .hero-call-orb{display:flex;height:46px;width:74px}
 .hero-call-orb .orb-mark,.hero-call-orb .orb-phone{height:35px;width:35px;font-size:15px}
 .mega-wordmark{font-size:var(--display-size);letter-spacing:-.095em;line-height:.93;padding-top:19px;padding-bottom:13px}
}

@media(min-width:1051px){.nav-primary{transform:translateX(44px);font-size:16.8px}}


/* STUDIO / SHIFT V3 — fix image max-width clipping and add Aldena-inspired grain accent.
   The full bleed hero image must not inherit img { max-width: 100% } when overscanned.
   Use object-fit: cover against the card's real bounds at every viewport width. */
.hero-shot { background: #250c14; isolation: isolate; }
.hero-shot > .hero-image {
  position: absolute;
  inset: 0;
  display: block;
  width: 100%;
  height: 100%;
  max-width: none;
  max-height: none;
  object-fit: cover;
  object-position: center center;
  transform-origin: center center;
  transform: scale(1.10);
  animation: shiftHeroCover 1.8s cubic-bezier(.22,.68,.17,1) both;
  will-change: transform;
}
@keyframes shiftHeroCover {
  from { transform: scale(1.18); filter: saturate(1) brightness(.82); }
  to { transform: scale(1.10); filter: saturate(1.1) brightness(1); }
}
/* Render atop image, below text and buttons. No click or screen reader interference. */
.hero-dissolve {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  z-index: 1;
  pointer-events: none;
  opacity: 1;
  mix-blend-mode: screen;
}
.hero-shade { z-index: 1; }
.hero-meta-top, .hero-meta-bottom { z-index: 3; }
@media (prefers-reduced-motion: reduce) {
  .hero-shot > .hero-image { animation: none; transform: scale(1.10); will-change: auto; }
}

/* V4 — Actual image-pixel displacement, triggered by pointer movement.
   Particle canvas copies the photographic pixels; no decorative dust drawing.
   These overrides replace the old V3 grain canvas styling. */
.hero-shot > .hero-image{ -webkit-mask-image:none;mask-image:none; }
.hero-dissolve{z-index:2;mix-blend-mode:normal;opacity:1;pointer-events:none;}
.hero-shade{z-index:1;}
.hero-meta-top,.hero-meta-bottom{z-index:4;}
.hero-meta-bottom--simple{justify-content:flex-start;align-items:flex-end;bottom:clamp(24px,3vw,44px);}
.hero-positioning{margin:0!important;max-width:min(740px,88%)!important;text-align:left!important;font-family:var(--display);font-size:clamp(21px,2.1vw,35px)!important;font-weight:500!important;line-height:1.15!important;letter-spacing:-.056em!important;text-wrap:balance;color:#fff;text-shadow:0 1px 14px #08060d35;}
.particle-wordmark-copy{display:inline-block;position:relative;white-space:nowrap;min-width:0;}
.mega-wordmark{position:relative;isolation:isolate;}
.wordmark-dissolve{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;z-index:2;}
@media(max-width:700px){
  .hero-meta-bottom--simple{bottom:24px;left:22px;right:22px;align-items:flex-start;}
  .hero-positioning{max-width:100%!important;font-size:clamp(21px,5vw,29px)!important;line-height:1.18!important;}
  .desktop-only{display:none;}
}
@media(prefers-reduced-motion:reduce){
  .hero-shot > .hero-image,.particle-wordmark-copy{mask-image:none!important;-webkit-mask-image:none!important;}
  .hero-dissolve,.wordmark-dissolve{display:none!important;}
}

/* Hoverable header copy: its real glyph pixels crumble, like the large wordmark. */
.hero-positioning{position:relative;isolation:isolate;}
.hero-positioning-copy{position:relative;display:block;}
.tagline-dissolve{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;z-index:2;}
@media (prefers-reduced-motion:reduce){.tagline-dissolve{display:none!important}.hero-positioning-copy{mask-image:none!important;-webkit-mask-image:none!important}}


/* ==============================================================
   FELLOWFORM V5 — canonical Craftica reference tokens (1280px base)
   400 Regular / 500 Medium / 600 Semibold. No proprietary font files.
   Inter Display is preferred where available, with official InterVariable
   from rsms.me and locally available sans-serif fallback.
   ============================================================== */

body {font-family:var(--body);font-weight:var(--font-regular);font-optical-sizing:auto;font-size:var(--type-body);line-height:1.4;letter-spacing:var(--tracking-body);}
button, a {font-optical-sizing:auto}
.site-header{grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);}
.brand,.footer-brand{font-family:var(--display);font-weight:var(--font-semibold);letter-spacing:-.06em;}
.brand-accent,.footer-brand > span{color:var(--red);}
.nav-primary{transform:none!important;font-family:var(--display);font-size:var(--type-body);font-weight:var(--font-regular);line-height:var(--lh-body);letter-spacing:var(--tracking-body);}
.nav-book-call{justify-self:end;display:inline-flex;align-items:center;gap:14px;background:var(--ink);color:var(--white);min-height:48px;padding:0 21px;border-radius:999px;font-family:var(--display);font-size:var(--type-button);font-weight:var(--font-semibold);line-height:19px;letter-spacing:-.04em;white-space:nowrap;transition:background .2s, transform .2s, color .2s;}
.nav-book-call span{font-size:19px;line-height:1}
.nav-book-call:hover{background:var(--red);transform:translateY(-2px)}
.nav-book-call:focus-visible,.nav-primary a:focus-visible{outline:3px solid var(--red);outline-offset:3px}
/* The title and case pages now have no menu overlay or toggle. */
.mega-wordmark{font-family:var(--display);font-size:clamp(76px,21.375vw,var(--type-wordmark));font-weight:var(--font-semibold);line-height:1;letter-spacing:-.072em;min-width:0;}
.particle-wordmark-copy{display:block;min-width:0}
.wordmark-dissolve{z-index:2}
.eyebrow,.card-number,.project-type,.step-num{font-weight:var(--font-medium);letter-spacing:-.04em}
.pill{font-family:var(--display);font-size:var(--type-button);font-weight:var(--font-semibold);line-height:19px;letter-spacing:-.04em}
.pill.small{font-size:var(--type-button-small);line-height:17.36px}
.intro-statement,.section-heading-line h2{font-family:var(--display);font-weight:var(--font-medium);letter-spacing:-.04em}
.section-heading-line h2{font-size:clamp(32px,3.125vw,58px);line-height:1.12}
.section-heading-line p,.intro-copy>p{font-size:var(--type-body);line-height:var(--lh-body);letter-spacing:var(--tracking-body);}
.section-heading-line .eyebrow{font-size:var(--type-counter);line-height:14.4px}
.work-section>.section-heading-line{border-top:none;} /* requested: no line above Made to make an impact. */
.project-name{font-size:clamp(27px,2.5vw,43px);line-height:1.16;font-weight:var(--font-medium);letter-spacing:-.045em}
.text-link{font-size:var(--type-text-link);line-height:18.72px;font-weight:var(--font-medium)}
.service-row h3{font-size:clamp(22px,2.5vw,32px);font-weight:var(--font-medium);line-height:1.16;letter-spacing:-.04em}
.service-row p{font-size:var(--type-body);line-height:1.4}
.step h3{font-size:clamp(26px,2.1875vw,38px);line-height:1.1;font-weight:var(--font-medium)}
.faq-list summary{font-family:var(--display);font-size:var(--type-faq);line-height:26.4px;font-weight:var(--font-medium)}
.hero-meta-top{font-size:var(--type-button);font-weight:var(--font-medium)}
/* The footer giant brand should be readable, not use the former two-word geometry. */
.footer-giant{font-family:var(--display);font-weight:var(--font-semibold);letter-spacing:-.075em;font-size:clamp(68px,14.4vw,225px);}
@media (max-width:1050px){
  .site-header{grid-template-columns:minmax(0,1fr) auto;}
  .nav-primary{display:none;}
}
@media (max-width:700px){
  .nav-book-call{font-size:13px;min-height:42px;padding:0 15px;gap:8px;}
  .nav-book-call span{font-size:16px;}
  .brand{font-size:clamp(23px,6.5vw,29px)}
  .mega-wordmark{font-size:clamp(56px,17vw,120px);letter-spacing:-.075em}
  .section-heading-line h2{font-size:clamp(32px,8vw,40px);line-height:1.12}
  .section-heading-line p,.intro-copy>p{font-size:16px;line-height:1.35}
  .project-name{font-size:32px;line-height:37.12px}
  .footer-giant{font-size:clamp(53px,13.4vw,95px)}
}

/* Name-specific optical fit: the reference uses 273.6px at 1280px, but
   FELLOWFORM must fit wholly in the available viewport width. */
.mega-wordmark{font-size:clamp(73px,15.7vw,254px)}
@media(max-width:700px){.mega-wordmark{font-size:14.8vw}}

/* ==============================================================
   Craftica alignment pass (measured at 1440x900): hero height, wordmark
   spacing, hero bottom bar and project card proportions.
   ============================================================== */
.hero-shot{height:clamp(440px,45vw,720px);}
.mega-wordmark{padding-top:0;}
.projects{max-width:1380px;}
.project-card{width:87.4%;min-height:clamp(350px,41.8vw,602px);}
.hero-meta-bottom--split{justify-content:space-between;align-items:flex-end;bottom:clamp(20px,2vw,32px);}
.hero-proof{display:inline-flex;align-items:center;gap:10px;color:#fff;font-family:var(--display);font-size:13px;font-weight:var(--font-medium);letter-spacing:-.02em;white-space:nowrap;}
.hero-proof-dot{color:var(--red);font-size:16px;line-height:1;}
.hero-proof-sep{width:1px;height:12px;background:#fff6;}
.hero-cta-group{display:flex;align-items:center;gap:22px;max-width:min(560px,60%);}
.hero-meta-bottom--split .hero-positioning{max-width:none!important;margin:0!important;text-align:right!important;font-size:13px!important;line-height:1.25!important;font-weight:var(--font-medium)!important;letter-spacing:-.02em!important;}
.hero-cta-pill{flex:none;display:inline-flex;align-items:center;min-height:48px;padding:0 24px;border-radius:999px;background:#fff;color:var(--ink);font-family:var(--display);font-size:var(--type-button);font-weight:var(--font-semibold);letter-spacing:-.04em;transition:transform .28s,background .28s,color .28s;}
.hero-cta-pill:hover{transform:translateY(-2px);background:var(--red);color:#fff;}
.hero-cta-pill:focus-visible{outline:3px solid var(--red);outline-offset:3px;}
@media(max-width:700px){
  .hero-meta-bottom--split{flex-direction:column;align-items:flex-start;gap:14px;}
  .hero-cta-group{flex-direction:column;align-items:flex-start;max-width:100%;gap:14px;}
  .hero-meta-bottom--split .hero-positioning{text-align:left!important;font-size:16px!important;}
  .project-card{width:96%;min-height:410px;}
}

/* ==============================================================
   Sticky stacking case cards (Craftica-style). Each .project-item is pinned;
   JS (site.js) scales .project-scale: it grows while arriving, then shrinks
   as the next card covers it. Measured from the reference at 1440x900.
   ============================================================== */
.hero-shot{height:clamp(400px,40vw,640px);}
.projects{display:block;}
.project-item{position:sticky;top:115px;width:87.4%;height:clamp(350px,41.8vw,602px);margin:0 auto clamp(120px,32vw,466px);}
.project-item:last-child{margin-bottom:0;}
.project-scale{width:100%;height:100%;transform:scale(var(--stack-scale,1));transform-origin:50% 50%;will-change:transform;}
.project-item .project-card,.project-item .project-card:hover{width:100%;height:100%;min-height:0;margin:0;}
@media(max-width:700px){
  .project-item{top:90px;width:92%;height:410px;margin-bottom:90px;}
}
@media(prefers-reduced-motion:reduce){.project-item{position:relative;top:auto;margin-bottom:40px;}.project-scale{transform:none;}}

/* Lenis smooth scroll (same library and version as the reference). */
html.lenis,html.lenis body{height:auto}
.lenis.lenis-smooth{scroll-behavior:auto!important}
.lenis.lenis-smooth [data-lenis-prevent]{overscroll-behavior:contain}
.lenis.lenis-stopped{overflow:hidden}
.lenis.lenis-scrolling iframe{pointer-events:none}

/* ==============================================================
   TYPE TOKENS — measured from the reference at 1440 / 1280 / 900 / 390px.
   size / line-height / letter-spacing per role. Wordmarks keep their own size.
   ============================================================== */





/* Role -> token mapping */
body{font-size:var(--fs-body);line-height:var(--lh-body);letter-spacing:var(--ls-body);}
.nav-primary,.nav-primary a{font-size:var(--fs-body);line-height:var(--lh-body);letter-spacing:var(--ls-body);font-weight:400;}
.nav-index{font-size:var(--fs-tiny);line-height:var(--lh-tiny);letter-spacing:var(--ls-tiny);font-weight:500;}
.nav-book-call,.hero-cta-pill,.pill{font-size:var(--fs-btn);line-height:var(--lh-btn);letter-spacing:var(--ls-btn);font-weight:600;}
.pill.small,.pill.white.small{font-size:var(--fs-pill);line-height:var(--lh-pill);letter-spacing:var(--ls-pill);font-weight:600;}
.hero-meta-top,.hero-local-time,.hero-local-time span,.hero-time{font-size:var(--fs-meta);line-height:var(--lh-meta);letter-spacing:var(--ls-meta);font-weight:500;}
.hero-proof,.hero-proof span{font-size:var(--fs-text);line-height:var(--lh-text);letter-spacing:var(--ls-text);font-weight:400;}
.hero-meta-bottom--split .hero-positioning{font-size:var(--fs-text)!important;line-height:var(--lh-text)!important;letter-spacing:var(--ls-text)!important;font-weight:400!important;}
.intro-statement,.intro-statement span{font-size:var(--fs-statement);line-height:var(--lh-statement);letter-spacing:var(--ls-statement);font-weight:500;}
.section-heading-line h2,.contact-section .section-heading-line h2{font-size:var(--fs-h2);line-height:var(--lh-h2);letter-spacing:var(--ls-h2);font-weight:500;}
.eyebrow,.section-heading-line .eyebrow,.thin-label,.card-number,.step-num,.logo-strip-header span,.manifesto-top span,.manifesto-top .eyebrow{font-size:var(--fs-meta);line-height:var(--lh-meta);letter-spacing:var(--ls-meta);font-weight:500;}
.intro-copy>p,.intro-copy p,.section-heading-line p,.service-row p,.pricing-card p,.step p,.faq-list details p,.contact-main p,.manifesto-footer p,.services-feature p,.pricing-disclaimer{font-size:var(--fs-body);line-height:var(--lh-body);letter-spacing:var(--ls-body);font-weight:400;}
.intro-numbers strong{font-size:var(--fs-stat);line-height:var(--lh-stat);letter-spacing:var(--ls-stat);font-weight:500;}
.intro-numbers small{font-size:var(--fs-text);line-height:var(--lh-text);letter-spacing:var(--ls-text);font-weight:400;}
.logo-track-inner span{font-size:var(--fs-list);line-height:var(--lh-list);letter-spacing:var(--ls-list);font-weight:500;}
.project-name,.project-name sup{letter-spacing:var(--ls-title);}
.project-name{font-size:var(--fs-title);line-height:var(--lh-title);font-weight:500;}
.project-name sup{font-size:var(--fs-meta);line-height:var(--lh-meta);letter-spacing:var(--ls-meta);font-weight:500;}
.project-type{font-size:var(--fs-list);line-height:var(--lh-list);letter-spacing:var(--ls-list);font-weight:500;}
.project-note{font-size:var(--fs-text);line-height:var(--lh-text);letter-spacing:var(--ls-text);font-weight:400;}
.project-corner,.vertical-word,.workflow-caption,.pricing-card small{font-size:var(--fs-tiny);line-height:var(--lh-tiny);letter-spacing:var(--ls-tiny);font-weight:500;}
.text-link{font-size:var(--fs-link);line-height:var(--lh-link);letter-spacing:var(--ls-link);font-weight:500;}
.manifesto-big,.manifesto-big span,.manifesto-big em,.contact-email{font-size:var(--fs-h2);line-height:var(--lh-h2);letter-spacing:var(--ls-h2);font-weight:500;}
.manifesto-marquee{font-size:var(--fs-h2);line-height:var(--lh-h2);letter-spacing:var(--ls-h2);font-weight:500;}
.workflow-center{font-size:var(--fs-title);line-height:var(--lh-title);letter-spacing:var(--ls-title);font-weight:500;}
.workflow-chip{font-size:var(--fs-link);line-height:var(--lh-link);letter-spacing:var(--ls-link);font-weight:500;}
.services-feature h3,.pricing-card h3{font-size:var(--fs-md);line-height:var(--lh-md);letter-spacing:var(--ls-md);font-weight:500;}
.services-feature-label,.services-feature-label strong,.services-feature-label span{font-size:var(--fs-meta);line-height:var(--lh-meta);letter-spacing:var(--ls-meta);font-weight:500;}
.service-row h3,.step h3{font-size:var(--fs-md);line-height:var(--lh-md);letter-spacing:var(--ls-md);font-weight:500;}
.service-row>span:first-child{font-size:var(--fs-meta);line-height:var(--lh-meta);letter-spacing:var(--ls-meta);font-weight:500;}
.pricing-card strong{font-size:var(--fs-list);line-height:var(--lh-list);letter-spacing:var(--ls-list);font-weight:500;}
.pricing-card ul,.pricing-card li{font-size:var(--fs-body);line-height:var(--lh-body);letter-spacing:var(--ls-body);font-weight:400;}
.faq-list summary{font-size:var(--fs-faq);line-height:var(--lh-faq);letter-spacing:var(--ls-faq);font-weight:500;}
.contact-availability,.contact-availability strong,.contact-availability span{font-size:var(--fs-body);line-height:var(--lh-body);letter-spacing:var(--ls-body);}
.contact-availability strong{font-weight:500;}
.footer-top p,.footer-top nav a{font-size:var(--fs-body);line-height:var(--lh-body);letter-spacing:var(--ls-body);font-weight:400;}
.footer-brand{font-size:var(--fs-md);line-height:var(--lh-md);letter-spacing:var(--ls-md);font-weight:500;}
.footer-bottom,.footer-bottom span,.footer-bottom a{font-size:var(--fs-text);line-height:var(--lh-text);letter-spacing:var(--ls-text);font-weight:400;}
.intro-copy p.muted,.intro-copy .muted{font-size:var(--fs-body);line-height:var(--lh-body);letter-spacing:var(--ls-body);}
.pricing-card strong small,.pricing-card small{font-size:var(--fs-tiny);line-height:var(--lh-tiny);letter-spacing:var(--ls-tiny);font-weight:500;}
.contact-availability>span:not(.availability-dot){font-size:var(--fs-body);line-height:var(--lh-body);letter-spacing:var(--ls-body);}

/* Case cards: no fade/slide-in, tile never moves on hover; only the image zooms slightly. */
.project-item .project-card,.project-item .project-card:hover,.project-item .project-card[data-reveal],.project-item .project-card[data-reveal].revealed:hover{opacity:1;transform:none;translate:none;transition:none;width:100%;box-shadow:none;}
.project-item .project-art{overflow:hidden;}
.project-item .project-art img{transform:scale(1);transition:transform .8s cubic-bezier(.2,.7,.2,1);}
.project-item .project-card:hover .project-art img{transform:scale(1.06);}
@media(prefers-reduced-motion:reduce){.project-item .project-art img{transition:none;}}

/* Rolling text stagger (button hover) */
.roll{display:inline-flex;white-space:pre;}
.roll-char{position:relative;display:inline-block;overflow:hidden;height:1.2em;line-height:1.2em;}
.roll-char>span{display:block;transition:transform .55s cubic-bezier(.76,0,.24,1);transition-delay:calc(var(--i) * 18ms);}
.roll-char>span:nth-child(2){position:absolute;left:0;top:100%;}
a:hover>.roll .roll-char>span,a:focus-visible>.roll .roll-char>span,button:hover>.roll .roll-char>span{transform:translateY(-100%);}
.nav-book-call:hover,.pill:hover,.hero-cta-pill:hover{transform:none;}

/* Page curtains (page transition) */
.pt{position:fixed;inset:0;z-index:9999;display:flex;pointer-events:none;}
.pt i{flex:1;background:var(--ink,#0a0a0a);transform:scaleY(0);transform-origin:top;transition:transform .7s cubic-bezier(.76,0,.24,1);transition-delay:calc(var(--i) * 60ms);}
html.pt-cover .pt i{transform:scaleY(1);transition:none;}
html.pt-leave .pt{pointer-events:all;}
html.pt-leave .pt i{transform:scaleY(1);transform-origin:bottom;}
@media(prefers-reduced-motion:reduce){.pt{display:none;}}
/* Close hairline seams between curtain strips (sub-pixel rounding). */
.pt{left:-1px;right:-1px;}
.pt i{margin-right:-1px;box-shadow:0 0 0 1px var(--ink,#0a0a0a);}
.pt i:last-child{margin-right:0;}

/* Page curtains: destination label */
.pt i,.pt i:last-child{background:#131313;box-shadow:0 0 0 1px #131313;}
.pt-label{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);display:flex;align-items:center;gap:clamp(12px,1.4vw,20px);color:#fff;font-family:var(--display);font-size:var(--fs-h2);line-height:var(--lh-h2);letter-spacing:var(--ls-h2);font-weight:500;opacity:0;transition:opacity .3s ease;white-space:nowrap;}
.pt-dot{width:.2em;height:.2em;border-radius:50%;background:#fff;flex:none;}
html.pt-leave .pt-label{opacity:1;transition:opacity .35s ease .5s;}
html.pt-cover .pt-label{opacity:1;transition:none;}

/* Hero clock: dot between city and time at half size. */
.hero-local-time .live-dot{width:5px;height:5px;}

/* Hero: clock left + proof chip right on top; tagline left + CTA right at the bottom. */
.hero-meta-top{left:clamp(20px,2vw,40px);right:clamp(20px,2vw,40px);display:flex;justify-content:space-between;align-items:center;gap:20px;}
.hero-meta-top .hero-proof{margin-left:auto;}
.hero-meta-bottom--split{justify-content:space-between;align-items:flex-end;}
.hero-cta-group{display:contents;}
.hero-meta-bottom--split .hero-positioning{max-width:min(560px,60%)!important;text-align:left!important;}
@media(max-width:700px){
  .hero-meta-top{flex-direction:row;flex-wrap:wrap;}
  .hero-meta-bottom--split{flex-direction:column;align-items:flex-start;}
  .hero-meta-bottom--split .hero-positioning{max-width:100%!important;}
}

/* One button type size everywhere (nav, hero, pills). */

.nav-book-call,.hero-cta-pill,.pill,.pill.small,.pill.white.small,.pill.outline,.pill.white{font-size:var(--fs-btn);line-height:var(--lh-btn);letter-spacing:var(--ls-btn);font-weight:600;}
.nav-book-call > span:not(.roll),.pill > span:not(.roll){font-size:16px;}
@media(max-width:700px){.nav-book-call{font-size:var(--fs-btn);}}

/* Hero tagline: a touch larger than body text. */
.hero-meta-bottom--split .hero-positioning{font-size:19px!important;line-height:22.8px!important;letter-spacing:-.76px!important;max-width:min(620px,62%)!important;}
@media(max-width:999px){.hero-meta-bottom--split .hero-positioning{font-size:17px!important;line-height:20.4px!important;letter-spacing:-.68px!important;}}
@media(max-width:700px){.hero-meta-bottom--split .hero-positioning{font-size:16px!important;line-height:19.2px!important;letter-spacing:-.64px!important;max-width:100%!important;}}

/* ==============================================================
   Toolkit strip: logo tile + name + role, soft edge fade, seamless marquee
   ============================================================== */
.logo-track{border:0;padding:6px 0;-webkit-mask-image:linear-gradient(90deg,transparent,#000 7%,#000 93%,transparent);mask-image:linear-gradient(90deg,transparent,#000 7%,#000 93%,transparent);}
.logo-track-inner{gap:0;animation-duration:36s;}
.tool-set{display:flex;gap:14px;padding-right:14px;flex:none;}
.tool{display:flex;align-items:center;gap:16px;padding:12px 28px 12px 12px;border-radius:20px;background:#f5f5f4;border:1px solid #ebebe8;white-space:nowrap;transition:background .35s,border-color .35s;}
.tool:hover{background:#fff;border-color:#d9d9d6;}
.tool-logo{position:relative;flex:none;width:56px;height:56px;border-radius:15px;background:#fff;border:1px solid #ebebe8;display:block;}
.tool-logo::before{content:"";position:absolute;inset:15px;background:var(--ink,#0a0a0a);-webkit-mask:var(--logo) center/contain no-repeat;mask:var(--logo) center/contain no-repeat;transition:background .35s;}
.tool:hover .tool-logo::before{background:var(--brand,#0a0a0a);}
.tool-text{display:block;}
.tool-text b{display:block;font-family:var(--display);font-weight:500;font-size:var(--fs-list);line-height:1.1;letter-spacing:var(--ls-list);color:var(--ink,#0a0a0a);}
.tool-text small{display:block;margin-top:5px;font-size:var(--fs-pill);line-height:1.2;letter-spacing:var(--ls-pill);color:var(--muted);font-weight:400;}
@media(max-width:700px){.tool{padding:10px 20px 10px 10px;gap:12px;}.tool-logo{width:46px;height:46px;border-radius:12px;}.tool-logo::before{inset:12px;}}

/* logo files are resolved relative to this stylesheet */
.tool-logo[data-logo="figma"]::before{-webkit-mask-image:url(logos/figma.svg);mask-image:url(logos/figma.svg);}
.tool-logo[data-logo="claude"]::before{-webkit-mask-image:url(logos/claude.svg);mask-image:url(logos/claude.svg);}
.tool-logo[data-logo="astro"]::before{-webkit-mask-image:url(logos/astro.svg);mask-image:url(logos/astro.svg);}
.tool-logo[data-logo="github"]::before{-webkit-mask-image:url(logos/github.svg);mask-image:url(logos/github.svg);}
.tool-logo[data-logo="design-systems"]::before{-webkit-mask-image:url(logos/design-systems.svg);mask-image:url(logos/design-systems.svg);}
.tool-logo[data-logo="motion"]::before{-webkit-mask-image:url(logos/motion.svg);mask-image:url(logos/motion.svg);}
.tool-logo::before{-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-position:center;mask-position:center;-webkit-mask-size:contain;mask-size:contain;}

/* ==============================================================
   Toolkit: calm static grid (replaces the moving strip and its cards)
   ============================================================== */
.toolkit{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(6,1fr);border-bottom:1px solid var(--line);}
.tk{display:flex;flex-direction:column;justify-content:space-between;gap:56px;min-height:200px;padding:20px 24px 26px 0;border-top:1px solid var(--line);}
.tk + .tk{padding-left:24px;}
.tk-top{display:flex;justify-content:space-between;align-items:flex-start;}
.tk-index{font-size:var(--fs-tiny);line-height:var(--lh-tiny);letter-spacing:var(--ls-tiny);font-weight:500;color:var(--muted);transition:color .3s;}
.toolkit .tool-logo{width:32px;height:32px;border:0;border-radius:0;background:none;}
.toolkit .tool-logo::before{inset:0;background:var(--ink,#0a0a0a);}
.tk:hover .tool-logo::before{background:var(--brand,#0a0a0a);}
.tk:hover .tk-index{color:var(--ink,#0a0a0a);}
.tk-text b{display:block;font-family:var(--display);font-weight:500;font-size:var(--fs-list);line-height:1.1;letter-spacing:var(--ls-list);color:var(--ink,#0a0a0a);}
.tk-text small{display:block;margin-top:6px;font-size:var(--fs-pill);line-height:1.25;letter-spacing:var(--ls-pill);color:var(--muted);font-weight:400;}
@media(max-width:1100px){.toolkit{grid-template-columns:repeat(3,1fr);}.tk:nth-child(3n+1){padding-left:0;}.tk:nth-child(3n+2),.tk:nth-child(3n){padding-left:24px;}}
@media(max-width:700px){.toolkit{grid-template-columns:repeat(2,1fr);}.tk{min-height:160px;gap:40px;}.tk:nth-child(odd){padding-left:0;}.tk:nth-child(even){padding-left:20px;}}

/* Toolkit: no lines, only whitespace. */
.toolkit{border-bottom:0;}
.tk{border-top:0;}

/* Rolling letters must not inherit the old `.pill span{line-height:0}` rule (it made the second copy show). */
.pill .roll,.pill .roll-char,.pill .roll-char>span,
.nav-book-call .roll-char,.nav-book-call .roll-char>span,
.hero-cta-pill .roll-char,.hero-cta-pill .roll-char>span{font-size:inherit;line-height:1.2;}

/* The rolling-letter wrapper must not pick up the old `.nav-book-call span{font-size:19px}` rule. */
.nav-book-call .roll,.hero-cta-pill .roll,.pill .roll{font-size:inherit;line-height:1.2;}

/* Case stack: spacing lives in spacer elements, NOT in margins on the sticky cards (a sticky box includes its
   margins, which made cards 1 and 2 let go too early). Card 3 does not need to stay pinned. */
.project-item{margin:0 auto;}
.project-gap{height:clamp(120px,32vw,466px);}
.project-item:last-child{position:relative;top:auto;}
@media(max-width:700px){.project-gap{height:90px;}}
@media(prefers-reduced-motion:reduce){.project-gap{height:40px;}}

