
:root{--paper:#f4f3ed;--ink:#151e25;--muted:#59646b;--blue:#244bff;--night:#101a24;--lime:#d5ee83;--line:#d7dbd5}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:32px}body{margin:0;background:var(--paper);color:var(--ink);font:17px/1.6 Arial,sans-serif}a{color:inherit;text-underline-offset:5px}a,button{-webkit-tap-highlight-color:transparent}a:focus-visible,button:focus-visible{outline:3px solid var(--blue);outline-offset:6px}button{font:inherit}h1,h2,h3,p{margin:0}h1,h2{font-weight:600;line-height:.95;letter-spacing:-.06em}h2{font-size:clamp(42px,5vw,76px)}h2 em,h1 em{font-family:Georgia,serif;font-weight:400;letter-spacing:-.055em}h3{font-weight:500;letter-spacing:-.025em;line-height:1.13}p{margin-bottom:18px}.eyebrow{font-size:10px;letter-spacing:.12em;text-transform:uppercase;line-height:1.5;font-weight:700}.quiet,.caption{font-size:12px;color:var(--muted)}.masthead,main>section,.portfolio-index,footer{max-width:1600px;margin-inline:auto;padding-inline:clamp(24px,4.5vw,76px)}.masthead{display:flex;justify-content:space-between;align-items:center;padding-block:29px;border-bottom:1px solid var(--line)}.wordmark{font-size:18px;line-height:1.05;text-decoration:none;font-weight:700;letter-spacing:-.05em}.wordmark span{display:block;margin-top:11px;font-size:9px;font-weight:400;letter-spacing:.08em;text-transform:uppercase}.masthead nav{display:flex;gap:38px;font-size:12px}.masthead nav a{text-decoration:none;position:relative;padding-block:6px}.masthead nav a:after{content:'';position:absolute;inset:auto 0 0;height:1px;background:var(--blue);transform:scaleX(0);transform-origin:left;transition:transform .35s}.masthead nav a:hover:after,.masthead nav a.is-active:after{transform:scaleX(1)}
.hero{display:grid;grid-template-columns:.87fr 1.13fr;gap:3vw;padding-top:80px;padding-bottom:95px;align-items:center;isolation:isolate;min-height:650px}.hero-copy{padding-bottom:8px}.hero .eyebrow{margin-bottom:32px}h1{font-size:clamp(78px,8.6vw,140px)}.hero-line{display:block}.hero h1 em{color:var(--blue)}.intro{font-size:18px;line-height:1.6;max-width:370px;margin-top:30px}.hero-actions{display:flex;flex-direction:column;align-items:flex-start;gap:13px;margin-block:23px}.hero .quiet{font-size:11px;margin-top:19px}.button{display:inline-flex;align-items:center;justify-content:space-between;gap:48px;padding:15px 21px;background:var(--ink);color:white;font-size:12px;text-decoration:none;transition:transform .3s,background .3s,box-shadow .3s}.button span{font-size:21px}.button:hover{background:var(--blue);transform:translateY(-3px);box-shadow:0 8px 20px #101a2420}.text-link{color:var(--blue);font-size:12px;text-decoration:none;border-bottom:1px solid currentColor;padding-block:5px;display:inline-block}.text-link span{display:inline-block;transition:transform .3s}.text-link:hover span{transform:translate(3px,-3px)}
.hero-art{position:relative;min-height:390px;perspective:1400px;transform:rotateX(var(--tilt-x,0deg)) rotateY(var(--tilt-y,0deg));transition:transform .6s;transform-style:preserve-3d}.hero-art img{display:block;width:100%;height:auto;border:1px solid #101a2410;box-shadow:0 18px 40px #101a2430}.slide-front{position:relative;z-index:2;transform:rotate(-5deg) translateY(-25px)}.hero-art .slide-back{position:absolute;width:79%;right:-1%;top:49%;z-index:1;transform:rotate(6deg)}.art-caption{position:absolute;top:-66px;bottom:auto;left:0;right:0;display:flex;justify-content:space-between;font-size:10px;color:var(--muted)}.motion-toggle{position:absolute;left:0;bottom:-65px;background:none;border:0;padding:0;color:var(--muted);font-size:10px;text-decoration:underline;cursor:pointer}.portfolio-index{display:flex;justify-content:space-between;gap:22px;padding-block:23px;border-block:1px solid var(--line);font-size:11px}.portfolio-index span:first-child{font-weight:700}.portfolio-index span:not(:first-child){color:var(--muted)}
.work,.inspection{padding-top:96px;padding-bottom:78px}.section-heading{display:grid;grid-template-columns:1.25fr 1fr;gap:0 7vw;align-items:end}.section-heading .eyebrow{grid-column:1/-1;margin-bottom:25px}.section-heading>p:last-child{max-width:405px;font-size:15px;color:var(--muted);margin-bottom:4px}.section-heading h2{max-width:850px}.featured-case{margin-top:66px}.case-meta{display:flex;justify-content:space-between;gap:20px;margin-bottom:16px;font-size:10px;text-transform:uppercase;letter-spacing:.045em}.case-meta span:last-child{color:var(--muted)}.case-image{display:block;position:relative;overflow:hidden;text-decoration:none;background:var(--night)}.case-image img{display:block;width:100%;height:auto;transition:transform .8s cubic-bezier(.22,1,.36,1)}.case-image:hover img{transform:scale(1.025)}.image-action{position:absolute;right:25px;bottom:25px;background:var(--paper);color:var(--ink);padding:13px 18px;font-size:11px;opacity:0;transform:translateY(10px);transition:opacity .3s,transform .3s}.case-image:hover .image-action,.case-image:focus-visible .image-action{opacity:1;transform:none}.case-description{display:grid;grid-template-columns:1fr 1fr;gap:8vw;margin-top:38px}.case-description h3{font-size:clamp(38px,4.1vw,62px)}.case-type{font-size:11px;color:var(--muted);margin-top:17px}.case-description>div:last-child p{font-size:14px;color:var(--muted);max-width:560px}.design-notes{display:grid;grid-template-columns:repeat(3,1fr);gap:45px;border-top:1px solid var(--line);margin-top:31px;padding-top:27px}.design-notes span{font-size:10px;text-transform:uppercase;letter-spacing:.08em;color:var(--blue)}.design-notes p{font-size:12px;color:var(--muted);margin:12px 0 0;max-width:340px}.case-pair{display:grid;grid-template-columns:1fr 1fr;gap:42px;margin-top:78px}.secondary-case h3{font-size:clamp(30px,3vw,45px);margin-top:29px}.secondary-case>p{font-size:13px;color:var(--muted);max-width:470px;margin-top:20px}.source-note{font-size:11px;line-height:1.75;color:var(--muted);max-width:1030px;margin:42px 0 0}
.inspection{border-top:1px solid var(--line);background:#e9ebe3}.viewer{margin-top:52px;scroll-margin-top:30px}.viewer-top{display:flex;justify-content:space-between;font-size:11px;padding-bottom:17px}.viewer-top h3{font:11px Arial,sans-serif;text-transform:uppercase;letter-spacing:.06em}.viewer-top>span{color:var(--muted)}#current-slide{display:block;width:100%;height:auto;border:1px solid var(--line)}.viewer-bottom{display:flex;align-items:center;justify-content:space-between;margin-top:8px;font-size:11px}.viewer-bottom button{border:0;background:none;padding:15px 0;font-size:11px;cursor:pointer}.viewer-bottom a{text-decoration:none;color:var(--muted)}.viewer-bottom button:hover{color:var(--blue)}.slide-tabs{display:flex;gap:8px;overflow:auto;padding:8px 3px 20px;scrollbar-width:thin}.slide-tab{flex:0 0 93px;cursor:pointer;border:2px solid transparent;background:none;padding:0;transition:transform .3s,border-color .3s}.slide-tab[aria-pressed=true]{border-color:var(--blue)}.slide-tab img{display:block;width:100%;height:auto}.slide-tab span{display:block;font-size:9px;line-height:2}.slide-tab:hover{transform:translateY(-3px)}.downloads{display:grid;grid-template-columns:1fr 1fr;gap:8vw;border-block:1px solid #c9cec3;padding-block:33px;margin-top:22px}.downloads h3{font-size:24px;margin-bottom:15px}.downloads p{font-size:13px;color:var(--muted);max-width:480px;margin-bottom:0}.download-links{display:flex;flex-direction:column;justify-content:center;gap:12px}.download-links a{display:flex;justify-content:space-between;font-size:12px;text-decoration:none;border-bottom:1px solid #b9c0b2;padding-bottom:13px}.download-links a:hover{color:var(--blue)}
.proof{margin-top:65px;scroll-margin-top:28px}.proof-head{display:grid;grid-template-columns:1.1fr 1fr;gap:0 8vw;align-items:end;margin-bottom:30px}.proof-head .eyebrow{grid-column:1/-1;margin-bottom:21px}.proof-head h2{font-size:clamp(36px,3.7vw,55px)}.proof-head>p:last-child{color:var(--muted);font-size:14px;margin-bottom:4px;max-width:400px}.proof-grid{display:grid;grid-template-columns:.75fr 1.25fr;gap:20px;align-items:stretch}.proof-card{margin:0;background:#f4f3ed;border:1px solid #cbd0c3;min-width:0}.proof-label{display:flex;justify-content:space-between;gap:14px;font-size:9px;text-transform:uppercase;letter-spacing:.04em;border-bottom:1px solid var(--line);padding:16px 18px}.proof-label span:last-child{font-size:8px;color:var(--muted);text-align:right}.proof-note{padding:22px}.proof-note h3{font-size:18px;line-height:1.3;margin-bottom:20px}.proof-note p{font-size:12px;margin-bottom:12px}.proof-note .proof-condition{font-size:10px;color:var(--muted);border-top:1px solid var(--line);padding-top:12px;margin-bottom:0}.proof-output{display:flex;flex-direction:column}.proof-output>a{display:block;margin:auto 16px 0}.proof-output img{display:block;width:100%;height:auto}.proof-output figcaption{font-size:10px;color:var(--muted);padding:17px 20px;margin-bottom:auto}.proof-foot{display:flex;align-items:flex-start;justify-content:space-between;gap:40px;margin-top:18px}.proof-foot p{font-size:10px;color:var(--muted);max-width:700px;margin-bottom:0}.proof-foot a{font-size:11px;flex-shrink:0}
.process{display:grid;grid-template-columns:1.1fr 1fr;gap:8vw;padding-block:96px}.process h2{font-size:clamp(42px,4.6vw,70px)}.process-intro{font-size:14px;color:var(--muted);max-width:370px;margin-top:30px}.process ol{padding:0;margin:0;list-style:none}.process li{display:flex;gap:25px;border-top:1px solid var(--line);padding:23px 0}.process li>span{font-size:10px;color:var(--blue);margin-top:4px}.process li h3{font-size:23px;margin-bottom:12px}.process li p{font-size:13px;color:var(--muted);margin:0}.scope{border-top:1px solid var(--line);padding-block:80px}.scope-grid{display:grid;grid-template-columns:1.1fr 1fr;gap:8vw;margin-top:25px}.scope-grid h2{font-size:clamp(42px,4.6vw,70px)}.scope-grid p{font-size:13px;color:var(--muted);max-width:480px}.scope-grid h3{font-size:23px;margin:4px 0 16px}.scope-grid>div:last-child>p{margin-bottom:32px}.scope-grid .price{font-size:57px;color:var(--blue);font-weight:500;margin-top:28px;line-height:1.2}.price span{display:block;font-size:10px;color:var(--muted);font-weight:400;margin-top:10px}.brief{display:flex;align-items:center;justify-content:space-between;gap:80px;background:var(--blue);color:white;padding-block:75px}.brief h2{font-size:clamp(44px,5.4vw,80px)}.brief p:not(.eyebrow){font-size:14px;max-width:530px;margin-top:25px;color:#e7eaff}.brief .quiet{font-size:10px!important}.button.light{background:var(--paper);color:var(--ink);flex-shrink:0}.button.light:hover{background:var(--lime)}footer{display:flex;justify-content:space-between;gap:40px;padding-block:35px;font-size:11px;color:var(--muted)}footer p{margin:0}footer span{font-size:9px}footer a{text-decoration:none}.skip{position:absolute;left:20px;top:-100px;padding:12px;background:white;z-index:99}.skip:focus{top:10px}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0)}
.reading-progress{position:fixed;inset:0 0 auto;height:3px;background:var(--blue);transform:scaleX(var(--reading-progress,0));transform-origin:left;z-index:20;pointer-events:none}.hero-line{animation:line-arrive 1s cubic-bezier(.22,1,.36,1) both}.hero-line:nth-child(2){animation-delay:120ms}.hero-copy>.eyebrow,.hero-copy>.intro,.hero-actions,.hero-copy>.quiet{animation:content-arrive .9s cubic-bezier(.22,1,.36,1) both}.hero-copy>.intro{animation-delay:220ms}.hero-actions{animation-delay:320ms}.hero-copy>.quiet{animation-delay:400ms}.hero-art .slide-front{animation:front-drift 10s ease-in-out infinite}.hero-art .slide-back{animation:back-drift 12s ease-in-out infinite}.hero-art.is-resting img,.motion-paused .hero-art img{animation-play-state:paused}.motion-ready .reveal{opacity:0;transform:translateY(28px);transition:opacity .9s cubic-bezier(.22,1,.36,1) var(--reveal-delay,0ms),transform .9s cubic-bezier(.22,1,.36,1) var(--reveal-delay,0ms)}.motion-ready .reveal.is-visible{opacity:1;transform:none}.motion-paused *,.motion-paused *:before,.motion-paused *:after{animation-play-state:paused!important;transition:none!important}.motion-paused .hero-art{transform:none}
@keyframes line-arrive{from{opacity:0;transform:translateY(40px)}to{opacity:1;transform:none}}@keyframes content-arrive{from{opacity:0;transform:translateY(18px)}to{opacity:1;transform:none}}@keyframes front-drift{0%,100%{transform:rotate(-5deg) translateY(-25px)}50%{transform:rotate(-3.8deg) translateY(-35px)}}@keyframes back-drift{0%,100%{transform:rotate(6deg) translateY(0)}50%{transform:rotate(4.5deg) translateY(10px)}}
@media(min-width:1500px){.hero-art{min-height:470px}}@media(max-width:1050px){.hero{gap:5vw;padding-top:65px;padding-bottom:85px;min-height:600px}.hero-art{min-height:320px}.hero-art .slide-back{top:42%}.section-heading,.case-description,.process,.scope-grid,.downloads,.proof-head{gap:0 5vw}.masthead nav{gap:24px}.hero-actions .button{gap:25px}.intro{font-size:16px}.design-notes{gap:25px}.brief{gap:40px}.case-pair{gap:26px}.proof-grid{grid-template-columns:.9fr 1.1fr}}
@media(max-width:760px){.masthead{padding-block:23px}.masthead nav{gap:19px;font-size:11px}.wordmark{font-size:16px}.wordmark span{font-size:8px}.hero{display:block;padding-top:52px;padding-bottom:75px;min-height:0}h1{font-size:clamp(80px,15vw,114px)}.hero .eyebrow{margin-bottom:24px}.intro{max-width:400px;font-size:17px}.hero-actions{flex-direction:row;align-items:center;gap:22px;flex-wrap:wrap}.hero-art{margin-top:68px;min-height:390px;margin-inline:10px}.hero-art .slide-back{top:44%;width:76%}.art-caption{top:-55px;bottom:auto}.motion-toggle{bottom:-49px}.portfolio-index{flex-wrap:wrap;gap:10px 24px;padding-block:20px}.portfolio-index span{font-size:10px}.portfolio-index span:first-child{width:100%}.work,.inspection{padding-block:60px}.section-heading,.case-description,.process,.scope-grid,.downloads,.proof-head{display:block}.section-heading>p:last-child{margin-top:26px;font-size:14px;max-width:480px}.section-heading h2{font-size:clamp(43px,8vw,60px)}.featured-case{margin-top:39px}.case-meta{font-size:9px}.case-meta span:last-child{font-size:8px}.image-action{display:none}.case-description{margin-top:25px}.case-description h3{font-size:43px}.case-description>div:last-child{margin-top:25px}.design-notes{grid-template-columns:1fr;gap:21px;margin-top:27px}.design-notes p{margin-top:7px;max-width:100%}.case-pair{grid-template-columns:1fr;gap:46px;margin-top:52px}.secondary-case h3{font-size:35px;margin-top:23px}.source-note{font-size:10px;margin-top:32px}.viewer{margin-top:36px}.slide-tab{flex-basis:80px}.downloads{padding-block:26px}.download-links{margin-top:26px;max-width:440px}.proof{margin-top:43px}.proof-head h2{font-size:40px}.proof-head>p:last-child{margin-top:25px}.proof-grid{display:block}.proof-card{margin-bottom:18px}.proof-output>a{margin:16px 14px 0}.proof-foot{display:block}.proof-foot a{margin-top:15px}.process{padding-block:60px}.process h2,.scope-grid h2{font-size:46px}.process ol{margin-top:36px}.scope{padding-block:60px}.scope-grid>div:last-child{margin-top:38px}.brief{display:block;padding-block:55px}.brief h2{font-size:52px}.brief .button{margin-top:17px}footer{flex-wrap:wrap;font-size:10px;gap:25px}footer>a{width:100%}}
@media(max-width:440px){.masthead nav{gap:12px}.masthead nav a:last-child{max-width:45px;line-height:1.35}.hero-art{min-height:257px;margin-top:55px}.hero-art .slide-back{top:41%}.hero{padding-bottom:78px}.hero-actions{gap:10px 20px}.hero-actions .button{gap:35px}.case-description h3{font-size:39px}.case-meta{gap:12px}.viewer-bottom{font-size:10px}.viewer-bottom button{font-size:10px}.viewer-top{font-size:10px}.viewer-top h3{font-size:10px}.proof-label{font-size:8px}.proof-label span:last-child{font-size:7px}.scope-grid .price{font-size:50px}.proof-head h2{font-size:36px}}
@media(max-width:360px){.masthead nav{gap:9px;font-size:10px}.wordmark{font-size:14px}.hero h1{font-size:70px}.hero-art{min-height:232px}.hero-art .slide-back{top:37%}.section-heading h2{font-size:42px}.process h2,.scope-grid h2{font-size:41px}.brief h2{font-size:45px}.case-meta{font-size:8px}.case-meta span:last-child{font-size:7px}.case-description h3{font-size:36px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation:none!important;transition:none!important}.hero-art{transform:none}.motion-ready .reveal{opacity:1;transform:none}.button:hover,.slide-tab:hover,.case-image:hover img{transform:none}}
.motion-paused .hero-line,.motion-paused .hero-copy>.eyebrow,.motion-paused .hero-copy>.intro,.motion-paused .hero-actions,.motion-paused .hero-copy>.quiet{animation:none!important;opacity:1;transform:none}.motion-paused .reveal{opacity:1;transform:none}

/* Motion follows the existing typography and work; the composition stays still. */
.hero-line{animation:none;overflow:clip;overflow-clip-margin:.18em}
.hero-word{display:inline-block;transform-origin:15% 100%;will-change:transform}
.intro-running .hero-word{animation:word-arrive 1.15s cubic-bezier(.16,1,.3,1) both}
.intro-running .hero-line:nth-child(2)>.hero-word:first-child{animation-delay:120ms}
.intro-running .hero-line em.hero-word{animation-delay:240ms;animation-name:case-arrive}
.hero h1 em{position:relative}
.hero h1 em:after{content:'';position:absolute;left:.04em;right:.04em;bottom:.02em;height:2px;background:currentColor;transform:scaleX(0);transform-origin:left;animation:case-rule 7s cubic-bezier(.65,0,.35,1) 1.2s infinite;opacity:.55}
.hero-copy>.eyebrow,.hero-copy>.intro,.hero-actions,.hero-copy>.quiet{animation:none}
.intro-running .hero-copy>.eyebrow,.intro-running .hero-copy>.intro,.intro-running .hero-actions,.intro-running .hero-copy>.quiet{animation:content-arrive .9s cubic-bezier(.16,1,.3,1) both}
.intro-running .hero-copy>.eyebrow{animation-delay:40ms}.intro-running .hero-copy>.intro{animation-delay:500ms}.intro-running .hero-actions{animation-delay:620ms}.intro-running .hero-copy>.quiet{animation-delay:710ms}
.motion-controls{display:flex;align-items:center;gap:12px;margin-top:8px;font-size:10px;color:var(--muted)}.motion-controls[hidden]{display:none}
.motion-controls button{position:static;border:0;background:none;padding:7px 0;margin:0;color:inherit;font-size:10px;text-decoration:none;cursor:pointer}
.motion-controls button:hover{color:var(--blue)}.motion-toggle:before{content:'';display:inline-block;width:4px;height:4px;border-radius:50%;margin:0 7px 2px 0;background:var(--blue)}.motion-paused .motion-toggle:before{background:var(--muted)}
.hero-art .slide-front{animation:front-motion 7s cubic-bezier(.45,0,.55,1) infinite}
.hero-art .slide-back{animation:back-motion 8.5s cubic-bezier(.45,0,.55,1) infinite}
.intro-running .hero-art{animation:art-arrive 1.6s cubic-bezier(.16,1,.3,1) 320ms both}
.hero-art.is-resting img,.motion-paused .hero-art img{animation-play-state:paused}
.motion-ready .reveal{transform:translateY(42px);transition:opacity .95s cubic-bezier(.16,1,.3,1) var(--reveal-delay,0ms),transform .95s cubic-bezier(.16,1,.3,1) var(--reveal-delay,0ms)}
.motion-ready .reveal.is-visible{transform:none}
.case-image img{transform:translateY(var(--work-shift,0px)) scale(1.06);transition:transform .65s cubic-bezier(.22,1,.36,1)}
.case-image:hover img{transform:translateY(var(--work-shift,0px)) scale(1.085)}
.button span{display:inline-block;transition:transform .45s cubic-bezier(.22,1,.36,1)}.button:hover span{transform:translate(4px,4px)}
.viewer{overflow:clip}.viewer-bottom,.viewer-top,.slide-tabs{position:relative;z-index:1}
@keyframes word-arrive{from{opacity:0;transform:translateY(105%) rotate(3deg)}to{opacity:1;transform:none}}
@keyframes case-arrive{from{opacity:0;transform:translateY(110%) rotate(7deg)}to{opacity:1;transform:none}}
@keyframes art-arrive{from{opacity:0;transform:translateY(60px) rotate(3deg)}to{opacity:1;transform:none}}
@keyframes case-rule{0%,6%{transform:scaleX(0);transform-origin:left}27%,44%{transform:scaleX(1);transform-origin:left}44.1%{transform-origin:right}64%,100%{transform:scaleX(0);transform-origin:right}}
@keyframes front-motion{0%,100%{transform:rotate(-5deg) translateY(-25px)}50%{transform:rotate(-2deg) translateY(-45px)}}
@keyframes back-motion{0%,100%{transform:rotate(6deg) translateY(0)}50%{transform:rotate(3deg) translateY(18px)}}
.motion-paused .hero-word,.motion-paused .hero-art{animation:none!important;opacity:1;transform:none}.motion-paused .hero h1 em:after{display:none}.motion-paused .case-image img{transform:none}
@media(prefers-reduced-motion:reduce){.hero-word,.hero-art,.case-image img{animation:none!important;transform:none!important;opacity:1}.hero h1 em:after{display:none}.motion-controls{display:none}.motion-ready .reveal{opacity:1;transform:none}.button:hover span{transform:none}}
.brief .text-link{color:var(--paper);font-size:14px}.brief a:focus-visible{outline-color:var(--paper)}
