:root { --ink:#121212; --paper:#fff; --soft:#f2f2f0; --line:#dadad7; --muted:#6d6d69; --sans:"Inter",Arial,sans-serif; --mono:"DM Mono",monospace; }
* { box-sizing:border-box; }
html { scroll-behavior:smooth; }
body { margin:0; background:var(--paper); color:var(--ink); font-family:var(--sans); cursor:auto; }
a { color:inherit; text-decoration:none; }
.site-header { height:74px; padding:0 3.75vw; display:flex; align-items:center; justify-content:space-between; position:fixed; inset:0 0 auto; background:rgba(255,255,255,.94); backdrop-filter:blur(12px); border-bottom:1px solid transparent; z-index:20; transition:border-color .25s; }
.site-header.is-scrolled { border-color:var(--line); }
main { padding-top:74px; }
.brand { font:500 11px var(--mono); letter-spacing:-.05em; }.site-header nav { display:flex; gap:28px; margin-left:150px; }.site-header nav a { font-size:12px; color:#777; transition:color .2s; }.site-header nav a.active,.site-header nav a:hover { color:var(--ink); }.header-contact { min-width:143px; height:47px; border:1px solid #d1d1ce; border-radius:999px; display:grid; place-items:center; font-size:12px; transition:.25s; }.header-contact:hover { background:var(--ink); color:white; border-color:var(--ink); }
.hero { min-height:680px; padding:22px 3.75vw 27px; display:flex; flex-direction:column; justify-content:space-between; }.hero-kicker,.section-label { font:10px var(--mono); letter-spacing:-.04em; text-transform:uppercase; }.hero-kicker span { color:var(--muted); float:right; }.hero h1 { max-width:690px; margin:42px 0 auto; font-size:clamp(34px,3.2vw,50px); line-height:1.08; letter-spacing:-.065em; font-weight:500; }.hero h1 em,.statement em,.section-head em,.experience em,.contact em { font-style:normal; }.hero-bottom { display:flex; justify-content:space-between; align-items:end; max-width:690px; }.hero-bottom p { max-width:255px; font-size:14px; line-height:1.25; letter-spacing:-.035em; }.circle-link { width:108px; height:108px; padding:21px; border:1px solid var(--ink); border-radius:50%; display:flex; align-items:center; justify-content:center; text-align:center; font-size:11px; line-height:1.05; transition:.25s; }.circle-link:hover { color:#fff; background:var(--ink); transform:rotate(-8deg); }.hero-index { display:flex; align-items:center; gap:13px; margin-top:30px; color:var(--muted); font:9px var(--mono); text-transform:uppercase; }.hero-index i { height:1px; flex:1; background:var(--line); }
.statement { padding:151px 12.5vw; display:grid; grid-template-columns:190px 1fr; gap:50px; background:var(--soft); }.statement-copy { max-width:710px; }.statement-copy p { font-size:clamp(28px,3.3vw,49px); line-height:1.08; letter-spacing:-.07em; }.text-link { display:inline-flex; gap:33px; margin-top:45px; font-size:13px; border-bottom:1px solid; padding-bottom:6px; }
.work { padding:0 3.75vw 130px; }.section-head { padding:116px 0 62px; position:relative; }.section-head h2,.experience h2,.contact h2 { margin-top:42px; max-width:715px; font-size:clamp(39px,4.6vw,69px); font-weight:500; letter-spacing:-.07em; line-height:1.02; }.work-count { position:absolute; right:0; bottom:68px; font:10px var(--mono); }.project-list { display:grid; grid-template-columns:1fr 1fr; gap:45px 22px; }.project { min-width:0; }.project-art { height:40.5vw; max-height:590px; min-height:390px; overflow:hidden; position:relative; background:#e8e8e6; transition:transform .4s cubic-bezier(.2,.8,.2,1); }.project:hover .project-art { transform:scale(.985); }.project-meta { display:grid; grid-template-columns:55px 1fr 23px; gap:12px; align-items:start; padding:15px 1px 0; }.project-meta span,.project-meta p { font:10px var(--mono); color:var(--muted); text-transform:uppercase; }.project-meta h3 { font-size:20px; line-height:1; letter-spacing:-.055em; font-weight:500; }.project-meta p { padding-top:7px; }.project-meta b { font-size:20px; font-weight:400; transition:transform .2s; }.project:hover b { transform:translate(3px,-3px); }
.project-art img { display:block; width:100%; height:100%; object-fit:cover; transition:transform .6s cubic-bezier(.2,.8,.2,1); }
.project:hover .project-art { transform:none; }.project:hover .project-art img { transform:scale(1.035); }
.project-dark .project-art { color:#fff; background:var(--ink); }.metro-art { padding:33px; }.art-kicker { font-size:64px; letter-spacing:-.1em; font-weight:600; }.metro-card { position:absolute; width:48%; height:55%; padding:8%; right:12%; top:21%; display:flex; flex-direction:column; justify-content:space-between; background:#fff; color:var(--ink); font-size:clamp(20px,2vw,31px); line-height:.95; letter-spacing:-.07em; }.metro-card i { font-style:normal; align-self:end; }.metro-bar { position:absolute; height:11%; width:110%; bottom:-1%; left:-12%; background:#9c9c99; transform:rotate(-20deg); }.metro-art small { position:absolute; bottom:32px; font:9px var(--mono); }
.valet-art { background:#d8d8d4; }.phone { position:absolute; width:32%; min-width:165px; height:81%; bottom:-4%; left:16%; border-radius:20px 20px 0 0; padding:12% 7%; background:#222; color:white; box-shadow:17px 13px 0 rgba(0,0,0,.12); }.phone-top { width:28%; height:3px; margin:0 auto 35%; border-radius:4px; background:white; }.phone strong { font-size:clamp(25px,3vw,45px); line-height:.82; letter-spacing:-.08em; }.phone span { display:block; margin-top:20%; font-size:9px; }.phone i { position:absolute; right:13%; bottom:9%; font-style:normal; }.valet-copy { position:absolute; top:18%; right:9%; text-align:right; }.valet-copy span { font:10px var(--mono); }.valet-copy b { display:block; margin-top:40px; font-size:clamp(24px,3vw,44px); line-height:.87; letter-spacing:-.08em; }
.cric-art { padding:12% 10%; }.score { font-size:clamp(105px,15vw,220px); line-height:.7; letter-spacing:-.14em; font-weight:600; }.score small { font-size:.2em; }.overs { margin-left:15px; font:10px var(--mono); }.cric-line { position:absolute; bottom:21%; left:-4%; width:110%; height:1px; background:#fff; transform:rotate(-16deg); }.cric-ring { position:absolute; bottom:-15%; right:11%; width:48%; aspect-ratio:1; border:1px solid #fff; border-radius:50%; }.cric-art strong { position:absolute; left:10%; bottom:12%; font-size:clamp(29px,4vw,55px); letter-spacing:-.07em; }.cric-art p { position:absolute; right:10%; bottom:14%; font:9px var(--mono); }
.clothing-art { padding:38px; background:#d4d3cf; }.clothing-word { font-size:clamp(73px,11vw,165px); line-height:.6; font-weight:600; letter-spacing:-.15em; }.clothing-word span { margin-left:20px; font-weight:400; }.clothing-art p { position:absolute; left:39px; top:43%; font-size:18px; line-height:1.1; letter-spacing:-.06em; }.clothing-dress { position:absolute; bottom:0; right:16%; width:34%; height:52%; background:#f8f8f5; clip-path:polygon(35% 0,65% 0,71% 16%,100% 37%,74% 49%,94% 100%,6% 100%,26% 49%,0 37%,29% 16%); }.clothing-circle { position:absolute; bottom:12%; right:30%; width:34%; aspect-ratio:1; border:1px solid; border-radius:50%; }
.all-work { height:82px; margin-top:55px; display:flex; align-items:center; justify-content:center; text-align:center; border-top:1px solid var(--ink); border-bottom:1px solid var(--ink); padding:0 4px; font-size:13px; }.all-work:hover { opacity:.55; }
.experience { padding:115px 12.5vw 0; display:grid; grid-template-columns:1fr 33%; background:var(--soft); }.experience h2 { max-width:690px; }.experience-stat { padding:29px 0 0; }.experience-stat strong { font-size:clamp(118px,14vw,205px); line-height:.7; letter-spacing:-.14em; font-weight:500; }.experience-stat strong span { font-size:.33em; vertical-align:top; }.experience-stat p { margin-top:46px; font-size:13px; line-height:1.4; }.role-list { grid-column:1/-1; display:grid; grid-template-columns:repeat(3,1fr); margin-top:134px; border-top:1px solid var(--ink); }.role-list article { min-height:211px; padding:23px 30px 25px 0; border-right:1px solid var(--line); display:flex; flex-direction:column; }.role-list article+article { padding-left:30px; }.role-list article:last-child { border:0; }.role-list span,.role-list p { font:10px var(--mono); color:var(--muted); }.role-list h3 { margin-top:35px; font-size:20px; letter-spacing:-.05em; line-height:1.05; font-weight:500; }.role-list p { margin-top:auto; line-height:1.6; }
.principles { padding:122px 12.5vw 144px; }.principle-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:28px; margin-top:84px; }.principle-grid article { border-top:1px solid; padding-top:18px; min-height:260px; }.principle-grid span { font:10px var(--mono); }.principle-grid h3 { margin-top:57px; font-size:27px; line-height:1; letter-spacing:-.07em; font-weight:500; }.principle-grid p { max-width:260px; margin-top:23px; font-size:13px; line-height:1.45; letter-spacing:-.02em; }
.contact { padding:102px 12.5vw 0; background:var(--ink); color:white; }.contact h2 { margin-bottom:80px; }.contact-email { display:inline-flex; align-items:center; font-size:clamp(26px,3.7vw,52px); letter-spacing:-.07em; border-bottom:1px solid; padding-bottom:10px; }.contact-phone { display:flex; width:max-content; margin-top:20px; font-size:21px; font-weight:500; line-height:1.05; letter-spacing:-.05em; }.contact-footer { min-height:88px; margin-top:143px; display:flex; align-items:center; justify-content:space-between; gap:14px; border-top:1px solid #555; color:#bebeba; font:9px var(--mono); text-transform:uppercase; }.contact-footer a:hover,.contact-phone:hover { color:white; }
.cursor-dot { display:none; }
.reveal { animation:rise .8s both cubic-bezier(.2,.8,.2,1); }.hero h1 { animation-delay:.08s; }.hero-bottom { animation-delay:.16s; } @keyframes rise { from { opacity:0; transform:translateY(14px); } to { opacity:1; transform:none; } }
@media (max-width:760px) { body { cursor:auto; }.cursor-dot { display:none; }.site-header { height:65px; padding:0 21px; }.brand { font-size:9px; }.site-header nav { margin-left:auto; gap:15px; }.site-header nav a { font-size:10px; }.header-contact { display:none; }.hero { min-height:670px; padding:25px 25px 22px; }.hero-kicker { font-size:8px; }.hero h1 { margin-top:42px; font-size:33px; line-height:1.05; }.hero-bottom { gap:20px; }.hero-bottom p { font-size:12px; }.circle-link { width:82px; height:82px; padding:15px; font-size:9px; }.hero-index { margin-top:32px; font-size:7px; }.statement { display:block; padding:86px 25px; }.statement-copy { margin-top:51px; }.statement-copy p { font-size:31px; }.work { padding:0 14px 82px; }.section-head { padding:84px 11px 52px; }.section-head h2,.experience h2,.contact h2 { font-size:42px; }.work-count { right:11px; bottom:58px; }.project-list { grid-template-columns:1fr; gap:38px; }.project-art { height:94vw; min-height:0; }.project-meta { grid-template-columns:49px 1fr 20px; }.project-meta h3 { font-size:18px; }.project-meta p { display:none; }.all-work { margin-top:38px; }.experience { display:block; padding:84px 25px 0; }.experience-stat { padding:65px 0 70px; }.experience-stat strong { font-size:155px; }.role-list { margin:0 -25px; grid-template-columns:1fr; }.role-list article,.role-list article+article { min-height:157px; padding:21px 25px; border-right:0; border-bottom:1px solid var(--line); }.role-list h3 { margin-top:28px; }.principles { padding:84px 25px; }.principle-grid { grid-template-columns:1fr; gap:0; margin-top:56px; }.principle-grid article { min-height:205px; padding:20px 0; border-top:1px solid var(--line); }.principle-grid h3 { margin-top:35px; }.contact { padding:80px 25px 0; }.contact h2 { margin-bottom:56px; }.contact-email { font-size:21px; }.contact-footer { min-height:0; margin-top:82px; padding:20px 0; flex-wrap:wrap; align-items:flex-start; line-height:1.8; }.contact-footer span:last-child { width:100%; margin-top:7px; } }

@media (max-width:760px) { main { padding-top:65px; } }

/* Selected-work captions */
.project-meta { display:flex; align-items:flex-start; justify-content:space-between; gap:24px; padding:15px 1px 0; }
.project-details { min-width:0; }
.project-meta p { display:block; margin-top:7px; padding-top:0; font:10px var(--mono); color:var(--muted); text-transform:uppercase; }
.project-meta b { flex:0 0 auto; line-height:1; }

/* Works page */
.works-main { padding:159px 3.75vw 0; }
.works-hero { display:grid; grid-template-columns:1fr 1fr; column-gap:24px; padding-bottom:126px; }
.works-hero h1 { grid-column:1 / -1; margin:49px 0 67px; font-size:clamp(48px,6.4vw,96px); line-height:.96; letter-spacing:-.085em; font-weight:500; }
.works-hero h1 em { font-style:normal; }
.works-hero > p:last-child { grid-column:2; max-width:315px; font-size:14px; line-height:1.35; letter-spacing:-.035em; }
.works-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:70px 22px; padding-bottom:145px; }
.works-grid-primary { padding-bottom:82px; }.works-grid-compact { grid-template-columns:repeat(3,minmax(0,1fr)); gap:64px 22px; }.works-grid-compact .work-card-art { height:auto; min-height:0; aspect-ratio:4 / 3; }.works-grid-compact .work-card-meta h2 { font-size:18px; }
.works-main > .contact { margin:0 -3.75vw; }
.work-card { min-width:0; display:block; }
.work-card-art { height:40.5vw; max-height:590px; min-height:390px; overflow:hidden; background:var(--soft); }
.work-card-art img { display:block; width:100%; height:100%; object-fit:cover; transition:transform .6s cubic-bezier(.2,.8,.2,1); }
.work-card:hover .work-card-art img { transform:scale(1.035); }
.work-card-meta { display:flex; align-items:flex-start; justify-content:space-between; gap:24px; padding:16px 1px 0; }
.work-card-meta h2 { margin:0; font-size:20px; line-height:1; letter-spacing:-.055em; font-weight:500; }
.work-card-meta p { margin:7px 0 0; color:var(--muted); font:10px var(--mono); text-transform:uppercase; }
.work-card-meta b { flex:0 0 auto; font-size:20px; line-height:1; font-weight:400; transition:transform .2s; }
.work-card:hover .work-card-meta b { transform:translate(3px,-3px); }

@media (max-width:760px) {
  .works-main { padding:121px 14px 0; }
  .works-hero { display:block; padding:0 11px 80px; }
  .works-hero h1 { margin:44px 0 50px; font-size:47px; }
  .works-hero > p:last-child { max-width:270px; font-size:13px; }
  .works-grid { grid-template-columns:1fr; gap:48px; padding-bottom:82px; }.works-grid-primary { padding-bottom:48px; }.works-grid-compact .work-card-art { height:94vw; aspect-ratio:auto; }
  .works-main > .contact { margin:0 -14px; }
  .work-card-art { height:94vw; min-height:0; }
  .work-card-meta h2 { font-size:18px; }
  .work-card-meta p { display:block; }
}

/* Case-study pages */
.case-main { padding:159px 3.75vw 0; }
.case-hero { padding-bottom:87px; }
.case-kicker { display:flex; justify-content:space-between; font:10px var(--mono); text-transform:uppercase; }
.case-kicker a { border-bottom:1px solid transparent; }.case-kicker a:hover { border-color:var(--ink); }
.case-hero h1 { margin:54px 0 66px; font-size:clamp(64px,9vw,140px); line-height:.86; letter-spacing:-.1em; font-weight:500; }
.case-labels { display:flex; gap:9px; flex-wrap:wrap; font:10px var(--mono); text-transform:uppercase; }.case-labels span { border:1px solid var(--line); border-radius:999px; padding:8px 12px; }
.case-cover { margin:0; height:min(53vw,765px); overflow:hidden; background:var(--soft); }.case-cover img,.case-image-pair img,.case-full-image img { display:block; width:100%; height:100%; object-fit:cover; }
.case-overview { display:grid; grid-template-columns:27% 1fr; gap:30px; padding:151px 12.5vw 62px; }.case-overview h2,.case-copy h2 { max-width:760px; margin:0; font-size:clamp(34px,4vw,58px); line-height:1.08; letter-spacing:-.075em; font-weight:500; }.case-overview h2 em,.case-copy h2 em { font-style:normal; }.case-lede { max-width:465px; margin-top:45px; font-size:15px; line-height:1.45; letter-spacing:-.03em; }
.case-facts { display:grid; grid-template-columns:repeat(4,1fr); margin:0 0 84px; padding:0; border-top:1px solid var(--ink); border-bottom:1px solid var(--line); }.case-facts article { min-height:195px; padding:23px 25px 22px 0; border-right:1px solid var(--line); display:flex; flex-direction:column; }.case-facts article+article { padding-left:25px; }.case-facts article:last-child { border:0; }.case-facts p { margin:0; color:var(--muted); font:10px var(--mono); text-transform:uppercase; }.case-facts h3 { margin:auto 0 0; font-size:19px; line-height:1.08; letter-spacing:-.05em; font-weight:500; }
.case-story { padding:0 0 143px; }.case-image-pair { display:grid; grid-template-columns:1fr 1fr; gap:22px; }.case-image-pair figure,.case-full-image figure { margin:0; overflow:hidden; background:var(--soft); }.case-image-pair figure { height:42vw; max-height:620px; }.case-copy { display:grid; grid-template-columns:27% 1fr; column-gap:30px; margin:137px 12.5vw 0; }.case-copy h2 { grid-column:2; }.case-copy > p:last-child { grid-column:2; max-width:510px; margin:45px 0 0; font-size:15px; line-height:1.55; letter-spacing:-.025em; }
.case-full-image { margin:0; }.case-full-image figure { height:min(60vw,850px); }.case-outcome { display:grid; grid-template-columns:27% 1fr; gap:30px; padding:151px 12.5vw; background:var(--paper); }.case-outcome > p:last-child { max-width:730px; margin:0; font-size:clamp(31px,3.6vw,52px); line-height:1.08; letter-spacing:-.075em; }.case-next { padding:93px 12.5vw 101px; display:flex; justify-content:center; text-align:center; }.case-next a { display:inline-flex; border-bottom:1px solid; padding-bottom:7px; font-size:13px; }.case-main > .contact { margin:0 -3.75vw; }
.case-image-stack { display:grid; gap:22px; margin:22px 0 0; }.case-image-stack figure { margin:0; background:var(--soft); }.case-image-stack img { display:block; width:100%; height:auto; }
.case-media-pair { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:22px; margin:22px 0 0; }.case-media-pair figure { margin:0; aspect-ratio:var(--pair-aspect, 1); overflow:hidden; background:var(--soft); }.case-media-pair img { display:block; width:100%; height:100%; object-fit:cover; }
.case-media-row { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:22px; margin:22px 0 0; }.case-media-row figure { margin:0; aspect-ratio:var(--row-aspect, 1); overflow:hidden; background:var(--soft); }.case-media-row img { display:block; width:100%; height:100%; object-fit:cover; }
.case-image-section { margin:92px 0 0; }.case-image-section .section-label { display:block; margin:20px 0 0; }.case-image-section figure { margin:0; background:var(--soft); }.case-image-section img { display:block; width:100%; height:auto; }
.case-gallery { position:relative; margin:22px 0 0; }.case-gallery-viewport { overflow:hidden; background:var(--soft); touch-action:pan-y; transition:height .55s cubic-bezier(.2,.8,.2,1); }.case-gallery-track { display:flex; align-items:flex-start; transition:transform .55s cubic-bezier(.2,.8,.2,1); }.case-gallery figure { flex:0 0 100%; width:100%; margin:0; aspect-ratio:var(--gallery-aspect, 3440 / 2256); }.case-gallery img { display:block; width:100%; height:100%; object-fit:cover; }.case-gallery-arrow { position:absolute; z-index:1; top:calc((100% - 26px) / 2); width:48px; height:48px; padding:0; border:1px solid var(--ink); border-radius:50%; background:var(--paper); color:var(--ink); cursor:pointer; font-size:24px; line-height:1; transition:.2s; }.case-gallery-arrow:hover { background:var(--ink); color:var(--paper); }.case-gallery-prev { left:24px; }.case-gallery-next { right:24px; }.case-gallery-dots { display:flex; justify-content:center; gap:8px; padding:18px 0 0; }.case-gallery-dot { width:8px; height:8px; padding:0; border:1px solid var(--ink); border-radius:50%; background:transparent; cursor:pointer; transition:background .2s; }.case-gallery-dot.is-active { background:var(--ink); }
.case-gallery-contain figure { aspect-ratio:auto; }.case-gallery-contain img { height:auto; object-fit:initial; }

@media (max-width:960px) { .case-gallery-arrow { display:none; } }

@media (min-width:426px) and (max-width:760px) { .about-main .about-portrait { margin:58px auto 0; } }

@media (max-width:760px) {
  .case-main { padding:121px 14px 0; }
  .case-hero { padding:0 11px 63px; }.case-kicker { font-size:8px; }.case-hero h1 { margin:45px 0 51px; font-size:63px; }.case-labels { font-size:8px; }.case-labels span { padding:7px 9px; }
  .case-cover { height:89vw; }.case-overview { display:block; padding:84px 25px 46px; margin:0 -14px; }.case-overview > div { margin-top:51px; }.case-overview h2,.case-copy h2 { font-size:34px; }.case-lede { margin-top:32px; font-size:13px; }
  .case-facts { grid-template-columns:1fr 1fr; margin:0 0 62px; padding:0; }.case-facts article,.case-facts article+article { min-height:156px; padding:19px 12px 18px 0; border-bottom:1px solid var(--line); }.case-facts article:nth-child(even) { padding-left:12px; border-right:0; }.case-facts h3 { font-size:16px; }
  .case-story { padding:0 0 84px; }.case-image-pair { grid-template-columns:1fr; gap:14px; }.case-image-pair figure { height:89vw; }.case-copy { display:block; margin:81px 11px 0; }.case-copy h2 { margin-top:50px; }.case-copy > p:last-child { margin-top:31px; font-size:13px; }.case-full-image { margin:0; }.case-full-image figure { height:89vw; }
  .case-image-stack { gap:14px; margin-top:14px; }
  .case-media-pair { grid-template-columns:1fr; gap:14px; margin-top:14px; }
  .case-media-row { grid-template-columns:1fr; gap:14px; margin-top:14px; }
  .case-image-section { margin-top:64px; }.case-image-section .section-label { margin-top:14px; }
  .case-gallery { margin-top:14px; }
  .case-gallery-arrow { display:none; }
  .case-outcome { display:block; margin:0 -14px; padding:84px 25px; }.case-outcome > p:last-child { margin-top:51px; font-size:34px; }.case-next { padding:73px 11px; display:flex; justify-content:center; }.case-next a { display:inline-flex; font-size:13px; }.case-main > .contact { margin:0 -14px; }
}

/* About page */
.about-main { padding:159px 3.75vw 0; }
.about-hero { padding:0 3.75vw 142px; }.about-hero h1 { max-width:1550px; margin:51px 0 0; font-size:clamp(48px,6.2vw,94px); line-height:.98; letter-spacing:-.085em; font-weight:500; }.about-hero h1 em,.about-now em,.about-section-title em { font-style:normal; }
.about-intro { display:grid; grid-template-columns:1fr 42%; gap:10.5vw; align-items:start; padding:0 8.75vw 151px; }.about-copy { width:100%; max-width:100%; padding-top:0; }.about-copy p { margin:0 0 23px; font-size:16px; line-height:1.45; letter-spacing:-.03em; }.resume-link { display:inline-flex; gap:35px; margin-top:28px; border-bottom:1px solid; padding-bottom:7px; font-size:13px; }.about-portrait { width:72%; align-self:start; justify-self:end; margin:0; aspect-ratio:1 / 1.1; overflow:hidden; background:var(--soft); }.about-portrait img { width:100%; height:100%; object-fit:cover; object-position:center; }

@media (min-width:1201px) { .about-copy { width:600px; } }
.about-now { display:grid; grid-template-columns:27% 1fr; gap:30px; margin:0 -3.75vw; padding:134px 12.5vw 139px; background:var(--soft); }.about-now h2,.about-section-title h2 { max-width:735px; margin:0; font-size:clamp(34px,4vw,59px); line-height:1.08; letter-spacing:-.075em; font-weight:500; }.about-now div > p { max-width:480px; margin:42px 0 0; font-size:15px; line-height:1.5; letter-spacing:-.025em; }
.about-principles { margin:0 -3.75vw; padding:122px 12.5vw 144px; }
.about-experience { padding:140px 8.75vw 0; }.about-section-title { display:grid; grid-template-columns:27% 1fr; gap:30px; }.about-timeline { margin-top:105px; border-top:1px solid var(--ink); }.about-timeline article,.experience-accordion { border-bottom:1px solid var(--line); }.about-timeline article,.experience-accordion summary { display:grid; grid-template-columns:20% 1fr 25% auto; gap:20px; padding:26px 0 25px; }.experience-accordion summary { cursor:pointer; list-style:none; }.experience-accordion summary::-webkit-details-marker { display:none; }.about-timeline span,.about-timeline p { color:var(--muted); font:10px var(--mono); text-transform:uppercase; }.about-timeline h3 { margin:0; font-size:21px; line-height:1.05; letter-spacing:-.05em; font-weight:500; }.about-timeline p { margin:0; line-height:1.5; }.about-timeline article > p,.experience-accordion summary > p { grid-column:3; grid-row:1; align-self:start; }.experience-accordion summary b { grid-column:4; grid-row:1; align-self:center; font-size:25px; font-weight:400; transition:transform .2s; }.experience-accordion[open] summary b { transform:rotate(45deg); }.experience-accordion-body { max-width:610px; margin:0 25% 31px calc(20% + 20px); padding:3px 0 0; }.experience-accordion-body p { margin:0 0 14px; color:var(--ink); font:14px var(--sans); line-height:1.55; letter-spacing:-.025em; text-transform:none; }
.about-skills { display:grid; grid-template-columns:1fr 1fr; gap:22px; padding:130px 8.75vw 145px; }.about-skills article { border-top:1px solid var(--ink); padding-top:22px; }.about-skills ul { margin:66px 0 0; padding:0; color:var(--ink); list-style:none; font:500 21px var(--sans); line-height:1.3; letter-spacing:-.05em; }.about-main > .contact { margin:0 -3.75vw; }

@media (max-width:760px) {
  .about-main { padding:121px 14px 0; }.about-hero { padding:0 11px 82px; }.about-hero h1 { margin-top:44px; font-size:46px; }
  .about-intro { display:block; padding:0 0 84px; }.about-copy { padding-top:0; }.about-copy p { font-size:14px; }.about-portrait { width:60%; margin:58px 0 0 auto; }.resume-link { margin-top:25px; }
  .about-now { display:block; margin:0 -14px; padding:84px 25px; }.about-now div { margin-top:50px; }.about-now h2,.about-section-title h2 { font-size:34px; }.about-now div > p { margin-top:30px; font-size:13px; }.about-principles { margin:0 -14px; padding:84px 25px; }
  .about-experience { padding:84px 25px 0; }.about-section-title { display:block; }.about-section-title h2 { margin-top:50px; }.about-timeline { margin-top:62px; }.about-timeline article,.experience-accordion summary { grid-template-columns:1fr 1fr auto; gap:15px; padding:20px 0; }.about-timeline h3 { font-size:17px; }.about-timeline article p,.experience-accordion summary p { grid-column:2; grid-row:2; }.experience-accordion summary b { grid-column:3; grid-row:1; }.experience-accordion-body { margin:0 0 25px; padding:3px 0 0; }.experience-accordion-body p { font-size:13px; }
  .about-skills { grid-template-columns:1fr; gap:54px; padding:84px 25px; }.about-skills ul { margin-top:43px; font-size:17px; }.about-main > .contact { margin:0 -14px; }
}

/* Shots page */
.shots-main { padding:159px 3.75vw 0; }.shots-hero { display:grid; grid-template-columns:1fr 1fr; padding:0 8.75vw 122px; }.shots-hero h1 { grid-column:1 / -1; margin:50px 0 65px; font-size:clamp(53px,7vw,106px); line-height:.9; letter-spacing:-.095em; font-weight:500; }.shots-hero h1 em { font-style:normal; }.shots-hero > p:last-child { grid-column:2; max-width:290px; font-size:14px; line-height:1.4; letter-spacing:-.03em; }
.shots-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:58px 20px; padding-bottom:142px; }.shot-card { min-width:0; display:block; }.shot-card figure { aspect-ratio:4 / 3; margin:0; overflow:hidden; background:var(--soft); }.shot-card img { display:block; width:100%; height:100%; object-fit:cover; transition:transform .55s cubic-bezier(.2,.8,.2,1); }.shot-card:hover img { transform:scale(1.04); }.shot-card > div { display:grid; gap:7px; padding:14px 1px 0; }.shot-card h2 { margin:0; font-size:17px; line-height:1.05; letter-spacing:-.05em; font-weight:500; }.shot-card span { color:var(--muted); font:9px var(--mono); text-transform:uppercase; }.shot-card > div p { margin:7px 0 0; max-width:250px; color:var(--muted); font-size:12px; line-height:1.35; letter-spacing:-.025em; }
.shots-follow { margin:0 -3.75vw; padding:93px 12.5vw 101px; display:flex; justify-content:center; text-align:center; }.shots-follow a { border-bottom:1px solid; padding-bottom:8px; font-size:clamp(28px,3.7vw,52px); letter-spacing:-.065em; }.shots-main > .contact { margin:0 -3.75vw; }

@media (max-width:960px) { .shots-grid { grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media (max-width:760px) { .shots-main { padding:121px 14px 0; }.shots-hero { display:block; padding:0 11px 80px; }.shots-hero h1 { margin:44px 0 50px; font-size:55px; }.shots-hero > p:last-child { max-width:260px; font-size:13px; }.shots-grid { grid-template-columns:1fr; gap:46px; padding-bottom:82px; }.shot-card h2 { font-size:18px; }.shots-follow { margin:0 -14px; padding:73px 11px; display:flex; justify-content:center; }.shots-follow a { display:inline-block; margin:0; font-size:35px; }.shots-main > .contact { margin:0 -14px; } }

@media (max-width:425px) { .about-portrait { width:100%; } }

@media (max-width:760px) { .contact-phone { margin-top:17px; font-size:17px; } }

.hero-bottom p { max-width:430px; }

@media (max-width:760px) { .hero-bottom p { max-width:255px; } }

.page-loader { position:fixed; z-index:100; inset:0; display:grid; place-items:center; background:var(--paper); color:var(--ink); opacity:1; transition:opacity .4s ease, visibility .4s ease; }.page-loader span { font:10px var(--mono); letter-spacing:-.04em; }.is-loaded .page-loader { visibility:hidden; opacity:0; pointer-events:none; }
.scroll-reveal { opacity:0; transform:translateY(28px); transition:opacity .7s cubic-bezier(.2,.8,.2,1), transform .7s cubic-bezier(.2,.8,.2,1); }.scroll-reveal.is-visible { opacity:1; transform:translateY(0); }

@media (prefers-reduced-motion:reduce) { .page-loader,.scroll-reveal { transition:none; }.scroll-reveal { opacity:1; transform:none; } }

.project-placeholder,.case-placeholder-cover,.case-placeholder-media { display:grid; place-items:center; overflow:hidden; background:var(--soft); }.project-placeholder > div,.case-placeholder-cover > div,.case-placeholder-media > div { display:grid; gap:12px; text-align:center; }.project-placeholder strong,.case-placeholder-cover strong,.case-placeholder-media strong { font-size:clamp(30px,4.4vw,62px); line-height:.92; letter-spacing:-.08em; font-weight:500; }.project-placeholder span,.case-placeholder-cover span,.case-placeholder-media span { color:var(--muted); font:10px var(--mono); text-transform:uppercase; }.case-placeholder-media { height:min(60vw,850px); margin:0; }.case-responsibilities { grid-column:2; max-width:510px; margin-top:44px; }.case-responsibilities ul,.case-challenge ul { margin:21px 0 0; padding:0; list-style:none; }.case-responsibilities li,.case-challenge li { position:relative; padding:8px 0 8px 17px; font-size:15px; line-height:1.4; letter-spacing:-.025em; }.case-responsibilities li::before,.case-challenge li::before { position:absolute; left:0; content:'—'; }.case-challenge { display:grid; grid-template-columns:27% 1fr; gap:30px; padding:0 12.5vw 143px; }.case-challenge h2 { max-width:760px; margin:0; font-size:clamp(34px,4vw,58px); line-height:1.08; letter-spacing:-.075em; font-weight:500; }.case-challenge > div > p { max-width:510px; margin:42px 0 0; font-size:15px; line-height:1.55; letter-spacing:-.025em; }.case-challenge ul { max-width:510px; }.case-challenge ul + p { margin-top:28px; }

@media (max-width:760px) { .case-placeholder-media { height:89vw; }.project-placeholder strong { font-size:34px; }.case-responsibilities { margin-top:31px; }.case-responsibilities li,.case-challenge li { font-size:13px; }.case-challenge { display:block; margin:0 -14px; padding:0 25px 84px; }.case-challenge > div { margin-top:51px; }.case-challenge h2 { font-size:34px; }.case-challenge > div > p { margin-top:31px; font-size:13px; } }

.case-copy > p:not(.section-label) { grid-column:2; max-width:510px; margin:45px 0 0; font-size:15px; line-height:1.55; letter-spacing:-.025em; }

@media (max-width:760px) { .case-copy > p:not(.section-label) { margin-top:31px; font-size:13px; } }

.case-role-images { padding-bottom:143px; }
@media (max-width:760px) { .case-role-images { padding-bottom:84px; } }

@media (min-width:761px) { .project-art,.work-card-art { max-height:480px; } }
