/* Motion language: one reveal curve, one quiet UI curve. No external assets. */
:root{color-scheme:dark;--bg:#101113;--ink:#f1f0e9;--muted:#a7aaa6;--line:#343632;--accent:#d6f58c;--ease:cubic-bezier(.16,1,.3,1);--ui:cubic-bezier(.22,.68,0,1);--micro:180ms;--ui-time:320ms;--reveal:760ms;--hero:1050ms;font-family:Arial,Helvetica,sans-serif;font-synthesis:none}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:90px}body{margin:0;background:var(--bg);color:var(--ink);font-size:16px;line-height:1.5}body.viewer-open{overflow:hidden}a{color:inherit;text-decoration:none}button{font:inherit;color:inherit;cursor:pointer}button,a{-webkit-tap-highlight-color:transparent}button{border:0}h1,h2,h3,p{margin:0}a:focus-visible,button:focus-visible,video:focus-visible,[tabindex]:focus-visible{outline:2px solid var(--accent);outline-offset:6px}[hidden]{display:none!important}.page-width{width:min(100% - 112px,1440px);margin-inline:auto}.eyebrow{font-size:10px;font-weight:600;letter-spacing:.12em;line-height:1.4;color:var(--muted)}.accent{color:var(--accent)}.status-dot{display:inline-block;width:6px;height:6px;border-radius:50%;background:var(--accent);margin-right:8px;vertical-align:1px}.skip-link{position:fixed;top:12px;left:12px;padding:12px;background:var(--accent);color:var(--bg);z-index:100;transform:translateY(-180%)}.skip-link:focus{transform:none}
/* 01 — identity and navigation */
.site-header{position:sticky;top:0;z-index:20;min-height:76px;margin:0;padding:0 56px;display:flex;align-items:center;gap:40px;background:rgba(16,17,19,.97);border-bottom:1px solid var(--line)}.wordmark{display:flex;align-items:center;gap:7px;font-size:10px;font-weight:700;letter-spacing:.05em;white-space:nowrap}.wordmark-slash{color:#62655d}.wordmark-symbol{position:relative;font-size:26px;line-height:1;margin-right:9px;letter-spacing:-.12em}.wordmark-symbol span{position:absolute;width:5px;height:5px;background:var(--accent);right:-5px;top:1px}.site-header nav{display:flex;gap:30px;margin-left:auto}.site-header nav a{position:relative;display:flex;min-height:44px;align-items:center;font-size:11px;text-transform:uppercase;letter-spacing:.07em}.nav-dot{position:absolute;bottom:7px;left:50%;height:3px;width:3px;border-radius:50%;background:var(--accent);transform:scale(0);transition:transform var(--ui-time) var(--ease)}nav a:hover .nav-dot,nav a[aria-current] .nav-dot{transform:scale(1)}.header-note{color:#92968d;font-size:8px;letter-spacing:.13em;margin-left:40px}.hero{padding-top:32px}.hero-topline{display:flex;justify-content:space-between;margin-bottom:48px}.hero-composition{position:relative}.hero h1{position:relative;z-index:2;font-weight:600;letter-spacing:-.075em;line-height:.84;pointer-events:none}.name-mask{display:block;overflow:hidden;padding-bottom:.085em}.name-line{display:block;transform-origin:0 100%}.name-first{font-size:clamp(100px,17.3vw,266px)}.name-last{font-size:clamp(45px,13.4vw,206px);letter-spacing:-.069em}.name-period{color:var(--accent)}.frame-study{position:absolute;width:27%;right:4%;top:-12px;height:220px;--pointer-x:0px;--pointer-y:0px}.frame-caption{font-size:8px;letter-spacing:.15em;color:var(--muted);display:block;text-align:right}.frame-stack{position:relative;height:155px;margin:18px 0}.frame-stack i{position:absolute;inset:0 15%;border:1px solid #707b60;background:var(--bg);transform:translate(calc(var(--frame-x,0px) + var(--pointer-x)),calc(var(--frame-y,0px) + var(--pointer-y))) rotate(var(--frame-r,0deg));transform-origin:50% 60%;transition:transform 550ms var(--ease);font-style:normal}.frame-stack i:nth-child(1){--frame-x:-36px;--frame-y:10px;--frame-r:-12deg;opacity:.38}.frame-stack i:nth-child(2){--frame-x:-22px;--frame-y:5px;--frame-r:-7deg;opacity:.65}.frame-stack i:nth-child(3){--frame-x:-8px;--frame-y:2px;--frame-r:-2deg}.frame-stack i:nth-child(4){--frame-r:6deg;background:var(--accent);border-color:var(--accent);color:#17200c;display:flex;align-items:end;justify-content:space-between;padding:14px}.frame-stack i span{font-size:73px;line-height:.8;font-weight:600;letter-spacing:-.09em}.frame-stack i b{font-size:26px;font-weight:400}.frame-baseline{display:flex;justify-content:space-between;font-size:8px;letter-spacing:.12em;margin-top:27px;color:#b4bda6}.hero-bottom{display:grid;grid-template-columns:1.2fr 1fr 140px;gap:35px;align-items:start;margin-top:38px}.hero-role{font-size:clamp(16px,1.75vw,27px);font-weight:500;line-height:1.15;letter-spacing:-.045em}.role-mask{display:block;overflow:hidden;padding-bottom:3px}.role-mask>span{display:block}.hero-role em{color:var(--accent);font-style:normal}.hero-copy{font-size:14px;line-height:1.65;color:var(--muted);max-width:335px}.round-link{display:flex;align-items:center;justify-content:space-between;gap:17px;font-size:9px;line-height:1.4;letter-spacing:.06em;padding:17px 0;border-bottom:1px solid #74786d}.round-link b{font-size:28px;font-weight:400;transition:transform var(--ui-time) var(--ease)}.round-link:hover b{transform:translate(4px,4px)}.hero-foot{display:flex;justify-content:space-between;border-top:1px solid var(--line);margin-top:58px;padding:16px 0;font-size:8px;letter-spacing:.12em;color:#94988f}.hero-foot b{display:inline-block;margin-left:8px;font-size:13px;color:var(--accent)}
/* Fast entrance. Deep links never receive the intro class. */
.intro .name-first{animation:name-enter var(--hero) var(--ease) both}.intro .name-last{animation:name-enter var(--hero) 100ms var(--ease) both}.intro .frame-stack{animation:frame-enter 1000ms 90ms var(--ease) both}.intro .role-mask>span{animation:role-enter 720ms 250ms var(--ease) both}.intro .role-mask:nth-child(2)>span{animation-delay:320ms}.intro .hero-copy{animation:copy-enter 650ms 400ms var(--ease) both}.intro .hero-work{animation:copy-enter 650ms 470ms var(--ease) both}@keyframes name-enter{from{transform:translateY(112%) rotate(3deg)}to{transform:translateY(0) rotate(0)}}@keyframes role-enter{from{transform:translateY(110%)}to{transform:translateY(0)}}@keyframes copy-enter{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}@keyframes frame-enter{from{transform:translateX(40px) scale(.8) rotate(-9deg);opacity:0}to{transform:none;opacity:1}}
/* 02 — work, typographic navigation, cinematic panels */
.work-section{padding-top:95px}.work-heading{position:relative;padding-bottom:40px}.work-heading h2{font-size:clamp(66px,9.6vw,145px);line-height:.87;letter-spacing:-.065em;font-weight:500;margin-top:32px}.work-word{display:block;transform:translateX(var(--drift,0px))}.work-word-second{margin-left:20%}.small-count{font-size:14px;letter-spacing:-.03em;vertical-align:top;display:inline-block;margin:14px 0 0 20px}.work-intro{position:absolute;right:0;bottom:48px;color:var(--muted);font-size:12px;line-height:1.6}.project-index{display:flex;flex-wrap:wrap;gap:5px 23px;padding:17px 0 23px;border-bottom:1px solid var(--line)}.project-index a{display:flex;align-items:center;gap:6px;min-height:32px;font-size:10px;transition:color var(--micro)}.project-index a>span{font-size:8px;color:#929789}.project-index a:hover{color:var(--accent)}.project{display:grid;grid-template-columns:1fr 1fr;gap:7%;align-items:center;min-height:750px;padding:55px 0 65px;border-bottom:1px solid var(--line);scroll-margin-top:94px;position:relative;--project-color:#d6f58c;--mat:#20271f}.project:nth-child(even) .project-copy{grid-column:2;grid-row:1}.project:nth-child(even) .project-media{grid-column:1;grid-row:1}.project:nth-child(even){--project-color:#e4d2be;--mat:#252421}.project#glossline{--project-color:#b2c9de;--mat:#192026}.project#app-launch{--project-color:#b3b5ed;--mat:#1c1e2a}.project#ember-salt{--project-color:#e3b388;--mat:#2a211a}.project#data-swiss{--project-color:#edc5bd;--mat:#272020}.project::before{content:'';position:absolute;top:0;left:0;height:2px;width:100%;background:var(--project-color);transform:scaleX(0);transform-origin:left;transition:transform 600ms var(--ease)}.project:target::before{transform:scaleX(1)}.project:target .project-number{color:var(--project-color)}.project-kicker{display:flex;align-items:center;gap:20px;letter-spacing:.08em;text-transform:uppercase;font-size:9px;color:var(--muted);margin-bottom:32px}.project-number{font-size:14px;color:var(--ink);font-variant-numeric:tabular-nums}.project-cross{margin-left:auto;font-size:20px;font-weight:300;color:var(--project-color);transition:transform var(--ui-time) var(--ease)}.project:hover .project-cross{transform:rotate(90deg)}.title-mask{overflow:hidden;padding:6px 2px 12px}.project h3{font-size:clamp(44px,6.3vw,96px);font-weight:500;line-height:.98;letter-spacing:-.065em;text-transform:uppercase;transform:translateY(var(--title-drift,0px));transition:color var(--ui-time)}.project-open{display:inline-block}.project-open:hover{color:var(--project-color)}.project-description{font-size:14px;color:var(--muted);max-width:350px;line-height:1.7;margin-top:28px}.tags{display:flex;flex-wrap:wrap;gap:6px 14px;list-style:none;padding:0;margin:27px 0 0;color:#b9bcb4;font-size:9px;letter-spacing:.03em}.tags li+li::before{content:'/';margin-right:14px;color:#60655c}.project-end{display:flex;justify-content:space-between;align-items:center;gap:12px;border-top:1px solid var(--line);padding-top:18px;margin-top:60px}.concept-label{font-size:10px;color:var(--muted)}.text-link{display:inline-flex;gap:22px;align-items:center;background:none;padding:8px 0;font-size:11px;border-bottom:1px solid #5b6252}.text-link span{display:inline-block;font-size:20px;line-height:1;transition:transform var(--ui-time) var(--ease)}.text-link:hover span{transform:translate(3px,-3px)}.project-media{min-width:0;max-width:480px;width:100%;justify-self:center}.media-mat{background:var(--mat);padding:35px 48px 18px;position:relative;transition:background 500ms var(--ui)}.mat-corner{position:absolute;width:8px;height:8px;border-color:var(--project-color);opacity:.75}.mat-tl{top:14px;left:14px;border-top:1px solid;border-left:1px solid}.mat-br{right:14px;bottom:14px;border-bottom:1px solid;border-right:1px solid}.video-frame{position:relative;aspect-ratio:9/16;background:#151618;overflow:hidden;isolation:isolate}.video-frame video{display:block;width:100%;height:100%;aspect-ratio:9/16;object-fit:contain;background:#151618}.media-caption{display:flex;justify-content:space-between;gap:12px;font-size:8px;text-transform:uppercase;letter-spacing:.07em;color:#b3b9aa;padding-top:16px}.media-caption>span:last-child{white-space:nowrap}.media-caption>span:last-child span{margin-left:14px}.play-button{position:absolute;bottom:17px;left:16px;display:flex;align-items:center;gap:12px;min-height:46px;padding:9px 18px;background:#111311eb;border:1px solid #b6bfa280;border-radius:0;font-size:10px;text-transform:uppercase;letter-spacing:.07em;transition:background var(--micro),color var(--micro),transform var(--ui-time) var(--ease)}.play-icon{width:0;height:0;border-top:4px solid transparent;border-bottom:4px solid transparent;border-left:7px solid var(--accent)}.play-button:hover{background:var(--accent);color:#111}.play-button:hover .play-icon{border-left-color:#111}.duration{position:absolute;right:12px;top:12px;font-size:9px;font-variant-numeric:tabular-nums;background:#101113d9;padding:4px 7px;pointer-events:none}.is-active .play-button,.is-active .duration{display:none}.video-error{position:absolute;left:10px;right:10px;bottom:15px;background:var(--bg);padding:12px;font-size:12px}.video-error a{text-decoration:underline;color:var(--accent)}.no-script-video{position:absolute;bottom:72px;left:16px;background:var(--bg);padding:12px;text-decoration:underline}.no-js [data-open],.no-js .play-button{display:none}.no-js .project-open{display:inline!important;pointer-events:none}
/* Intersection reveals are progressive enhancement and never gate linked work. */
.motion-ready [data-reveal]{transition:transform var(--reveal) var(--ease),opacity var(--reveal) var(--ease),clip-path var(--reveal) var(--ease);transition-delay:var(--reveal-delay,0ms)}.motion-ready [data-reveal]:not(.is-revealed){transform:translateY(28px);opacity:0}.motion-ready .title-mask:not(.is-revealed){transform:translateY(0);opacity:1;clip-path:inset(100% 0 0 0)}.motion-ready .project-media:not(.is-revealed){opacity:1;transform:translateY(24px);clip-path:inset(10% 8% 10% 8%)}.motion-ready [data-reveal].is-revealed{clip-path:inset(0);transform:none;opacity:1}.motion-ready [data-reveal]:focus-within{opacity:1;transform:none;clip-path:none;transition:none}
/* 03 — one brief motion composition */
.motion-moment{background:var(--accent);color:#15200e;padding:32px max(56px,calc((100vw - 1440px)/2)) 34px;margin-top:110px;overflow:hidden;--moment:0}.moment-top,.moment-bottom{display:flex;align-items:center;justify-content:space-between;gap:30px;font-size:9px;letter-spacing:.08em}.moment-top{border-bottom:1px solid #14230e55;padding-bottom:20px}.motion-moment h2{padding:42px 0 30px;font-weight:500;font-size:clamp(60px,12vw,184px);line-height:.88;letter-spacing:-.075em}.moment-line{display:block;overflow:hidden;padding:3px 0 10px}.moment-line>span{display:inline-block}.moment-motion{transform:translateX(calc(var(--moment)*30px))}.moment-mark{font-size:.65em;margin-left:.16em;display:inline-block;transform:rotate(calc(var(--moment)*12deg))}.moment-part{margin-left:26%;transform:translateX(calc(var(--moment)*-45px))}.moment-last{display:flex;align-items:baseline;gap:3%}.moment-of{font-size:.33em;letter-spacing:-.05em;width:23%;transform:translateX(calc(var(--moment)*20px))}.moment-story{transform:translateX(calc(var(--moment)*-30px)) scale(calc(1 + var(--moment)*.02));transform-origin:left center}.moment-bottom{border-top:1px solid #14230e55;padding-top:20px}.moment-bottom p{font-size:12px;letter-spacing:0;line-height:1.5}.moment-rule{flex:1;max-width:360px;height:1px;background:#15200e50;position:relative;transform:scaleX(calc(.55 + (var(--moment) + 1)*.225));transform-origin:left}.moment-rule i{position:absolute;right:0;top:-3px;width:7px;height:7px;background:#15200e;transform:rotate(45deg)}
/* 04 — services and a quiet editorial pause */
.services{padding-top:115px}.section-top{display:flex;justify-content:space-between;align-items:start;margin-bottom:48px}.section-top h2{font-size:34px;line-height:1.12;letter-spacing:-.045em;font-weight:400;margin-right:12%}.service-list{margin:0}.service-row{padding:26px 0 23px;border-top:1px solid var(--line)}.service-row:last-child{border-bottom:1px solid var(--line)}.service-row dt{display:flex;align-items:center;gap:38px;font-size:clamp(20px,3.05vw,46px);letter-spacing:-.035em;line-height:1.2;transition:transform var(--ui-time) var(--ease),color var(--ui-time)}.service-row dt>span{font-size:10px;color:var(--muted);letter-spacing:0;align-self:start;margin-top:7px}.service-row dt b{font-size:36px;font-weight:400;margin-left:auto;transition:transform var(--ui-time) var(--ease)}.service-row dd{margin:10px 50px 0;color:var(--muted);font-size:12px;max-width:480px;transition:transform var(--ui-time) var(--ease),color var(--ui-time)}.service-row:hover dt,.service-row:focus-visible dt{transform:translateX(7px);color:var(--accent)}.service-row:hover dt b,.service-row:focus-visible dt b{transform:translate(-7px,-3px) rotate(8deg)}.service-row:hover dd,.service-row:focus-visible dd{transform:translateX(7px);color:var(--ink)}.about{margin-top:125px;padding:0 0 70px;border-bottom:1px solid var(--line);scroll-margin-top:108px}.about-copy{display:grid;grid-template-columns:1fr 1fr;gap:10%;margin-top:36px}.about h2{font-size:clamp(32px,4.2vw,64px);line-height:1.07;font-weight:400;letter-spacing:-.055em}.about h2>span{color:var(--muted)}.about-text{font-size:14px;color:var(--muted);max-width:425px;line-height:1.7}.about-text p+p{margin-top:16px}.about-signoff{display:flex;align-items:end;justify-content:space-between;margin-top:40px;font-size:9px;letter-spacing:.12em;color:var(--muted)}.signature{font-family:Georgia,serif;font-style:italic;font-size:45px;letter-spacing:-.075em;color:var(--ink)}
/* 05 — conclusion */
.contact{padding-top:90px;scroll-margin-top:100px}.contact-top{display:flex;justify-content:space-between;margin-bottom:40px}.contact h2{font-size:clamp(45px,11.6vw,178px);font-weight:500;line-height:.87;letter-spacing:-.065em}.contact-line{display:block;padding-bottom:.035em;overflow:hidden}.contact-arrow{display:inline-block;font-weight:400;font-size:.78em;color:var(--accent);transition:transform 600ms var(--ease)}.contact:hover .contact-arrow{transform:translate(12px,-6px) rotate(8deg)}.contact-bottom{display:flex;justify-content:space-between;gap:40px;align-items:center;margin-top:45px;padding-bottom:72px}.email-address{display:flex;align-items:center;gap:30px;font-size:clamp(14px,2vw,30px);letter-spacing:-.025em;border-bottom:1px solid #73776b;padding:16px 0;transition:color var(--ui-time)}.email-address b{font-size:26px;font-weight:400;transition:transform var(--ui-time) var(--ease)}.email-address:hover{color:var(--accent)}.email-address:hover b{transform:translate(4px,-4px)}.contact-bottom p{font-size:11px;line-height:1.65;color:var(--muted)}footer{display:flex;justify-content:space-between;gap:20px;border-top:1px solid var(--line);padding:25px 0 30px;font-size:8px;letter-spacing:.07em;color:var(--muted)}footer a{color:var(--ink);min-height:28px}footer a span{margin-left:18px}
/* Fine-pointer feedback; native controls and keyboard retain normal affordances. */
.cursor{position:fixed;top:0;left:0;width:8px;height:8px;background:var(--accent);color:#15200e;border-radius:50%;z-index:80;pointer-events:none;display:none;align-items:center;justify-content:center;opacity:0;transition:width 250ms var(--ease),height 250ms var(--ease),border-radius 250ms var(--ease),opacity 120ms;contain:layout style}.cursor span{font-size:9px;font-weight:700;letter-spacing:.045em;white-space:nowrap;opacity:0}.cursor.is-label{width:76px;height:76px}.cursor.is-label span{opacity:1}.cursor.is-talk{width:106px;height:44px;border-radius:30px}.cursor-enabled,.cursor-enabled a,.cursor-enabled button{cursor:none}.cursor-enabled .cursor{display:flex;opacity:1}.cursor-enabled.cursor-native,.cursor-enabled.cursor-native a,.cursor-enabled.cursor-native button,.cursor-enabled.cursor-native video{cursor:auto}.cursor-native .cursor{opacity:0}.cursor-enabled .focus-dialog,.cursor-enabled .focus-dialog *{cursor:auto}.viewer-open .cursor{opacity:0}
/* Native modal provides focus trapping and Escape; video remains native. */
.focus-dialog{position:fixed;inset:0;width:min(1120px,95vw);max-width:none;max-height:94dvh;padding:0;border:1px solid #52594b;background:#131612;color:var(--ink);overflow:auto}.focus-dialog::backdrop{background:#080a08eb}.focus-shell{display:grid;grid-template-columns:minmax(0,1.05fr) 1fr;gap:55px;padding:62px 55px 36px;align-items:center}.focus-close{position:absolute;top:16px;right:22px;background:none;font-size:10px;letter-spacing:.08em;display:flex;align-items:center;gap:20px;min-height:32px;z-index:2}.focus-close span{font-size:28px;font-weight:300}.focus-media{height:min(72dvh,740px);max-width:100%;aspect-ratio:9/16;justify-self:center;background:#101113}.focus-media video{display:block;width:100%;height:100%;object-fit:contain}.focus-copy h2{font-size:clamp(32px,5vw,70px);font-weight:400;line-height:1;letter-spacing:-.06em;margin:20px 0}.focus-copy>p:not(.eyebrow){color:var(--muted);font-size:14px;line-height:1.6}.focus-copy .concept-label{margin-top:22px}.focus-copy .text-link{display:flex;justify-content:space-between;margin-top:24px}
@media(hover:hover) and (pointer:fine){.project:not(:has(.is-active)):hover .media-mat{background:color-mix(in srgb,var(--mat),var(--project-color) 5%)}.project-media{transition:transform 600ms var(--ease)}.project:not(:has(.is-active)):hover .project-media.is-revealed{transform:translateY(-4px)}.service-row dd{color:#979d90}}
@media(min-width:1600px){.hero-topline{margin-bottom:60px}.frame-study{height:245px}.frame-stack{height:175px}.hero-bottom{margin-top:55px}.project{min-height:810px}}
@media(max-width:1100px){.page-width{width:calc(100% - 64px)}.site-header{padding-inline:32px}.header-note{display:none}.frame-study{width:28%;right:3%;height:180px}.frame-stack{height:130px}.frame-stack i span{font-size:58px}.frame-caption{font-size:7px}.frame-baseline{margin-top:20px;font-size:7px}.hero-bottom{grid-template-columns:1.1fr 1fr 110px;gap:24px}.hero-copy{font-size:12px}.project{gap:5%;min-height:620px}.media-mat{padding:27px 30px 16px}.project h3{font-size:6.5vw}.project-end{margin-top:38px;gap:8px}.project-description{font-size:13px}.motion-moment{padding-inline:32px}.focus-shell{gap:30px;padding-inline:32px}.focus-dialog{width:95vw}}
@media(max-width:760px){html{scroll-padding-top:80px}.page-width{width:calc(100% - 40px)}.site-header{padding-inline:20px;min-height:64px;gap:10px}.wordmark{font-size:8px;gap:4px}.wordmark-symbol{font-size:21px;margin-right:6px}.site-header nav{gap:18px}.site-header nav a{font-size:9px}.hero{padding-top:24px}.hero-topline{margin-bottom:40px}.eyebrow{font-size:8px;letter-spacing:.08em}.name-first{font-size:22vw}.name-last{font-size:13.55vw}.frame-study{width:28%;right:2%;top:-10px;height:100px}.frame-caption{display:none}.frame-stack{height:77px;margin:0}.frame-stack i{inset:0 5%}.frame-stack i:nth-child(1){--frame-x:-14px;--frame-y:5px}.frame-stack i:nth-child(2){--frame-x:-9px;--frame-y:3px}.frame-stack i:nth-child(3){--frame-x:-4px;--frame-y:1px}.frame-stack i:nth-child(4){padding:8px}.frame-stack i span{font-size:38px}.frame-stack i b{font-size:16px}.frame-baseline{display:none}.hero-bottom{grid-template-columns:1fr 100px;row-gap:23px;margin-top:27px}.hero-role{font-size:17px;grid-column:1}.hero-copy{font-size:12px;grid-row:2;grid-column:1;max-width:275px}.hero-work{grid-column:2;grid-row:1 / 3;align-self:center;font-size:8px;gap:8px}.hero-work b{font-size:25px}.hero-foot{margin-top:36px;font-size:7px;letter-spacing:.045em}.hero-foot b{margin-left:3px}.work-section{padding-top:64px}.work-heading h2{font-size:12.1vw;margin-top:24px}.work-word-second{margin-left:17%}.work-heading{padding-bottom:28px}.small-count{font-size:11px;margin:6px 0 0 10px}.work-intro{position:static;margin:23px 0 0 50%;font-size:11px}.project-index{gap:0 18px;padding:10px 0 16px}.project-index a{min-height:36px;font-size:9px}.project{grid-template-columns:1fr;gap:27px;min-height:0;padding:34px 0 40px;scroll-margin-top:80px}.project:nth-child(even) .project-copy,.project:nth-child(even) .project-media{grid-column:auto;grid-row:auto}.project-copy{display:contents}.project-kicker{grid-row:1;margin:0;gap:14px;font-size:8px}.title-mask{grid-row:2;padding:0 1px 8px;margin-top:-13px}.project h3{font-size:14.3vw;line-height:1.01;max-width:100%;letter-spacing:-.065em}.project-description{grid-row:4;font-size:13px;margin-top:0;max-width:400px}.project-media{grid-row:3;max-width:430px;width:100%;margin-top:-7px}.media-mat{padding:25px 35px 16px}.project-end{grid-row:6;margin:0;padding-top:12px}.tags{grid-row:5;margin:-12px 0 0;font-size:9px}.text-link{font-size:10px;min-height:40px}.concept-label{font-size:9px}.project-number{font-size:12px}.project-cross{font-size:17px}.motion-ready [data-reveal]:not(.is-revealed){transform:translateY(13px)}.motion-ready .project-media:not(.is-revealed){transform:translateY(12px);clip-path:inset(5% 3% 5% 3%)}.motion-ready .title-mask:not(.is-revealed){transform:none}.motion-moment{margin-top:65px;padding:25px 20px}.moment-top{font-size:7px;gap:15px;letter-spacing:.035em;align-items:start;padding-bottom:16px}.moment-top>span:last-child{max-width:105px;text-align:right}.motion-moment h2{font-size:13vw;padding:30px 0 20px}.moment-part{margin-left:15%}.moment-of{width:20%;font-size:.33em}.moment-last{gap:2%}.moment-bottom{gap:20px;font-size:7px;padding-top:18px}.moment-bottom p{font-size:10px}.moment-bottom>span:last-child{max-width:90px;text-align:right}.moment-rule{display:none}.services{padding-top:67px}.section-top{display:block;margin-bottom:30px}.section-top h2{font-size:28px;margin:22px 0 0 22%}.service-row{padding:21px 0 19px}.service-row dt{font-size:clamp(16px,4.6vw,28px);gap:15px;letter-spacing:-.035em}.service-row dt>span{font-size:8px;margin-top:3px}.service-row dt b{font-size:24px}.service-row dd{margin:11px 27px 0;font-size:11px;line-height:1.6;color:var(--muted)}.about{margin-top:72px;padding-bottom:40px;scroll-margin-top:88px}.about-copy{grid-template-columns:1fr;gap:26px;margin-top:25px}.about h2{font-size:42px;line-height:1.06}.about-text{font-size:13px;max-width:450px}.about-text p+p{margin-top:12px}.about-signoff{margin-top:22px;font-size:8px}.signature{font-size:35px}.contact{padding-top:58px;scroll-margin-top:90px}.contact-top{gap:15px;margin-bottom:28px}.contact-top>.eyebrow:last-child{text-align:right;max-width:120px}.contact h2{font-size:12.3vw;line-height:.94;letter-spacing:-.065em}.contact-line{padding-bottom:0}.contact-bottom{display:block;margin-top:23px;padding-bottom:44px}.email-address{font-size:clamp(13px,4.15vw,23px);justify-content:space-between;gap:12px;padding:14px 0}.email-address b{font-size:22px}.contact-bottom p{margin-top:20px;font-size:10px}footer{font-size:7px;gap:15px;flex-wrap:wrap;padding:20px 0}footer>span:nth-child(2){display:none}.focus-dialog{width:calc(100vw - 20px);max-height:94dvh}.focus-shell{grid-template-columns:1fr;gap:24px;padding:58px 18px 25px}.focus-media{height:min(61dvh,600px);max-width:100%}.focus-copy h2{font-size:36px;margin:12px 0}.focus-copy>p:not(.eyebrow){font-size:12px}.focus-copy .concept-label{margin-top:15px}.focus-copy .text-link{margin-top:15px}.focus-close{top:10px;right:17px}.cursor{display:none!important}}
@media(max-width:360px){.page-width{width:calc(100% - 32px)}.site-header{padding-inline:16px}.wordmark{font-size:7px}.site-header nav{gap:13px}.site-header nav a{font-size:8px}.hero-copy{max-width:180px}.hero-bottom{grid-template-columns:1fr 80px;gap:16px}.hero-role{font-size:14px}.hero-work{font-size:7px}.hero-topline{margin-bottom:33px}.frame-stack{height:65px}.frame-stack i span{font-size:30px}.hero-foot>span:last-child{font-size:6px}.media-mat{padding:24px 26px 15px}.project h3{font-size:14vw}.service-row dt{gap:12px;font-size:16px}.service-row dt b{font-size:20px}.moment-top{font-size:6px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{animation:none!important;transition:none!important}.motion-ready [data-reveal],.motion-ready [data-reveal]:not(.is-revealed){opacity:1;transform:none;clip-path:none}.work-word,.project h3,.moment-line>span,.moment-mark,.moment-rule,.contact-arrow{transform:none!important}.frame-stack i{transform:none!important}.frame-stack i:not(:last-child){display:none}.cursor{display:none!important}.cursor-enabled,.cursor-enabled *{cursor:auto!important}.project-media,.service-row dt,.service-row dd,.service-row dt b{transform:none!important}}

html{scrollbar-gutter:stable}.is-linked [data-reveal]{transition:none!important}.focus-media{transform-origin:top left}@keyframes backdrop-in{from{opacity:0}to{opacity:1}}.focus-dialog[open]::backdrop{animation:backdrop-in 220ms ease-out}

.motion-ready .motion-moment .moment-line{transition:clip-path 750ms var(--ease)}.motion-ready .motion-moment:not(.moment-seen) .moment-line{clip-path:inset(100% 0 0 0)}.motion-ready .moment-seen .moment-line{clip-path:inset(0)}.moment-line:nth-child(2){transition-delay:80ms!important}.moment-line:nth-child(3){transition-delay:150ms!important}@media(prefers-reduced-motion:reduce){.motion-moment .moment-line{clip-path:none!important}}

html{scroll-padding-top:0}.work-section{scroll-margin-top:94px}.site-header{background:#101113}.project-index a{min-height:44px}.wordmark{min-height:44px}@media(max-width:760px){.work-section{scroll-margin-top:80px}}

.focus-shell{padding-top:10px;row-gap:16px}.focus-close{position:sticky;top:0;right:auto;grid-column:1/-1;justify-self:end;align-self:start;background:#131612;padding:8px 10px}.focus-media{height:min(68dvh,700px)}.focus-error{border:1px solid var(--line);padding:12px;margin-bottom:18px}.focus-error a{text-decoration:underline;color:var(--accent)}@media(max-width:760px){.focus-shell{padding-top:8px;row-gap:18px}.focus-media{height:min(60dvh,600px)}}

a:focus-visible,button,video{scroll-margin-top:110px;scroll-margin-bottom:36px}@media(max-width:760px){a:focus-visible,button,video{scroll-margin-top:86px}}

.title-mask:focus-within{overflow:visible}
