/* Editorial art direction shared by the portfolio and its case studies. */
:root{
  --paper:#090a0d;
  --ink:#f7f5f1;
  --muted:#a9a8ab;
  --line:#414045;
  --accent:#ee8b69;
  --serif:'Songti SC','STSong','Noto Serif CJK SC','SimSun',serif;
}
body{background:#090a0d;color:#f7f5f1}
::selection{background:#ef8967;color:#101014}
.site-header{height:72px;padding-inline:4vw;background:rgba(9,10,13,.92);border-bottom:1px solid rgba(255,255,255,.16);backdrop-filter:blur(18px)}
.wordmark{font-size:17px;letter-spacing:.05em}
.wordmark-mark{color:#f28b6a}
.site-nav{gap:clamp(25px,3.4vw,56px);font-size:12px;letter-spacing:.1em}
.site-nav a:hover,.site-nav a[aria-current=page],.site-nav a span{color:#f5a287}
.site-nav a:after{background:#f28b6a}
html{scroll-padding-top:84px}

/* The opening image is a stage, with three smaller routes into the work. */
.hero{min-height:max(760px,calc(100svh - 72px));padding:27px 4vw 30px;background:#09090b}
.hero:before{left:8%;top:-28%;width:78vw;height:115%;background:radial-gradient(ellipse,rgba(164,61,54,.25),rgba(85,40,90,.1) 45%,transparent 72%)}
.hero:after{right:-10%;bottom:-35%;width:70vw;height:95%;background:radial-gradient(ellipse,rgba(69,97,185,.17),transparent 70%)}
.hero-kicker,.hero-base{position:relative;z-index:5;color:#d6d1cc;font-size:10px;letter-spacing:.13em}
.hero-layout{min-height:620px}
.hero-copy{z-index:3;top:15%;max-width:64vw}
.hero-copy .eyebrow{margin-bottom:28px;color:#f2a187;font-size:11px}
.hero h1{font-size:clamp(90px,10.5vw,176px);font-weight:800;line-height:1.09;letter-spacing:-.09em;color:#fff;white-space:nowrap;text-shadow:0 4px 34px rgba(0,0,0,.3)}
.hero h1 span{margin-left:5vw;color:#f4a183}
.hero-manifesto{max-width:500px;margin-top:38px;font-size:clamp(16px,1.35vw,19px);font-weight:500;line-height:1.7;letter-spacing:.02em;text-transform:none;color:#f3efec}
.hero-name{margin-top:13px;color:#d8d0cf;font-size:11px}
.hero-name strong{margin-left:8px;color:#fff;font-size:11px}
.hero-image{z-index:1;top:-6%;right:-4vw;width:67vw;height:111%;transform:none;border:0;border-radius:0;box-shadow:none;overflow:hidden;pointer-events:none;mask-image:linear-gradient(90deg,transparent 0%,#000 24%,#000 100%)}
.hero-image .art,.hero-image .art-photo{width:100%;height:100%;border-radius:0;object-fit:cover;object-position:50% 33%;filter:brightness(.76)}
.hero-image:after{content:"";position:absolute;inset:0;background:linear-gradient(0deg,rgba(6,7,10,.96),transparent 44%),linear-gradient(90deg,rgba(8,8,10,.6),transparent 43%);pointer-events:none}
.hero-image-label{z-index:2;right:4vw;bottom:210px;color:#fff;font-size:10px}
.hero-reel{position:absolute;z-index:5;right:0;bottom:42px;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:11px;width:min(530px,45vw)}
.hero-reel-item{position:relative;display:block;height:120px;overflow:hidden;border:1px solid rgba(255,255,255,.44);background:#19171a;transition:transform .45s cubic-bezier(.22,1,.36,1),border-color .3s}
.hero-reel-item:nth-child(2){transform:translateY(-19px)}
.hero-reel-item:nth-child(3){transform:translateY(9px)}
.hero-reel-item:hover,.hero-reel-item:focus-visible{transform:translateY(-12px);border-color:#fff}
.hero-reel-item img{width:100%;height:100%;object-fit:cover;transition:transform .6s cubic-bezier(.22,1,.36,1)}
.hero-reel-item:hover img,.hero-reel-item:focus-visible img{transform:scale(1.07)}
.hero-reel-item:after{content:"";position:absolute;inset:45% 0 0;background:linear-gradient(transparent,rgba(0,0,0,.72));pointer-events:none}
.hero-reel-item span{position:absolute;z-index:1;left:10px;right:6px;bottom:8px;color:#fff;font-size:9px;font-weight:700;letter-spacing:.07em}
.hero-base{margin-top:0}
.hero-base a{border-color:#f1a184}
.hero-base span{color:#ddd3cf}

/* A light editorial spread gives the personal introduction room to breathe. */
.home-intro,.about-opening,.about-fields,.about-experience,.detail-overview,.detail-concept{
  background:#f6f4ef;color:#171718;box-shadow:0 0 0 100vmax #f6f4ef;clip-path:inset(0 -100vmax);
}
.home-intro{padding-top:138px;padding-bottom:150px}
.home-intro .section-heading,.about-opening .section-heading{border-color:#bdb9b4;color:#676360}
.home-intro .section-heading .eyebrow,.about-opening .section-heading .eyebrow{color:#171718}
.home-intro-grid{grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr);gap:6vw;align-items:center;padding-top:85px}
.home-intro-copy>.eyebrow,.about-intro .eyebrow{color:#a44835}
.home-intro h2{font-size:clamp(58px,6.5vw,105px);line-height:1.16;letter-spacing:-.075em;margin-bottom:42px;color:#141416}
.home-intro h2 em,.about-opening h1 em,.about-fields h2 em,.about-experience h2 em,.detail-concept h2 em{font-family:var(--serif);font-size:.94em;font-style:italic;font-weight:400;color:#c55f45}
.home-intro-copy>p:not(.eyebrow){max-width:610px;font-size:clamp(20px,1.9vw,27px);line-height:1.6;color:#292728}
.home-intro-copy strong,.about-intro strong{color:#a74734}
.home-intro-copy .home-intro-note{max-width:470px!important;color:#78716d!important}
.home-intro .text-link,.about-experience .text-link{border-color:#6d6560;color:#181819}
.home-intro .text-link:hover,.about-experience .text-link:hover{color:#b7523a}
.home-intro::before,.about-opening::before,.detail-overview::before{background:radial-gradient(ellipse 40% 42% at 70% 47%,rgba(236,180,158,.13),transparent 76%),radial-gradient(ellipse 38% 42% at 25% 85%,rgba(164,159,198,.06),transparent 78%)}

.editorial-collage{position:relative;width:100%;min-height:620px;isolation:isolate}
.collage-frame{position:absolute;overflow:hidden;margin:0;background:#d4d1c8}
.collage-frame img{display:block;width:100%;height:100%;object-fit:cover;transition:transform .75s cubic-bezier(.22,1,.36,1)}
.collage-frame:hover img{transform:scale(1.045)}
.collage-frame--main{z-index:1;left:29%;top:8%;width:60%;height:72%}
.collage-frame--left{z-index:2;left:0;top:35%;width:43%;height:39%}
.collage-frame--right{z-index:3;right:0;bottom:3%;width:42%;height:36%}
.collage-frame:after{content:"";position:absolute;inset:58% 0 0;background:linear-gradient(transparent,rgba(0,0,0,.45));pointer-events:none}
.collage-frame figcaption{position:absolute;z-index:1;bottom:10px;left:12px;color:#fff;font-size:10px;font-weight:700;letter-spacing:.09em}
.collage-edition{position:absolute;top:2%;left:0;font-size:10px;font-weight:700;line-height:1.55;letter-spacing:.13em;color:#57524e}

/* The hover directory remains the primary way to browse the five projects. */
.project-directory{padding:115px 0 78px;background:#fff;color:#171718;border-top:1px solid #e4e1dc}
.directory-top{font-size:11px;line-height:1.65;color:#5e5a57}
.directory-top>span{color:#181819}
.directory-layout{grid-template-columns:minmax(300px,.87fr) minmax(0,1.13fr);gap:clamp(55px,8vw,135px);min-height:790px;padding:58px 0 85px}
.directory-preview{max-width:510px;aspect-ratio:.92;background:#171719}
.directory-preview-image{object-position:center 38%}
.directory-preview-label{left:17px;bottom:17px;padding:9px 11px;background:#101013;font-size:10px}
.directory-heading{display:block;padding-bottom:40px}
.directory-heading .eyebrow{display:block;color:#a04e38;font-size:10px}
.directory-heading h2{margin-top:12px;font-size:clamp(48px,5vw,76px);font-weight:700;letter-spacing:-.07em}
.directory-heading h2 span{color:#ce694d}
.directory-list,.directory-item{border-color:#d7d4ce}
.directory-link{min-height:110px;grid-template-columns:45px minmax(0,1fr) 30px;grid-template-rows:auto 30px;padding:15px 0 6px;color:#b7b4b0}
.directory-link:before{background:#d87355}
.directory-link.is-active{color:#171718}
.directory-title{font-size:clamp(44px,4.4vw,72px);font-weight:600;line-height:.96}
.directory-detail{color:#64605d;font-size:11px}
.directory-arrow{font-size:24px}
.directory-bottom a{border-color:#c9c5bf;border-radius:0;font-size:11px}
.directory-bottom a span{background:#171718}
.directory-disclosure{border-color:#e1ded9;color:#78716c}

/* The curved gallery stays white and spacious, like a printed contact sheet. */
.practice-section{padding-top:122px;padding-bottom:105px;background:#f8f7f4}
.practice-section::before{background:radial-gradient(ellipse 35% 44% at 65% 30%,rgba(241,203,191,.13),transparent 78%)}
.practice-heading .eyebrow{color:#a44835}
.practice-heading h2{margin-top:22px;font-size:clamp(62px,7vw,103px);font-weight:700;letter-spacing:-.08em}
.practice-track{margin-top:68px}
.practice-card-caption h3{font-family:var(--display);font-weight:700}
.practice-controls{margin-top:16px}
.practice-buttons button{transition:background .25s,color .25s,transform .25s}
.practice-buttons button:hover:not(:disabled){transform:translateY(-2px)}
.practice-find{margin-top:65px}

/* Interior pages alternate dark image fields with light reading surfaces. */
.page-opening{min-height:640px;padding-top:65px;padding-bottom:80px}
.page-opening::after{content:"";position:absolute;z-index:0;right:-3%;top:11%;width:34%;height:76%;background:linear-gradient(90deg,#090a0d 0%,transparent 43%),url('/assets/images/04-violet-black-fashion.jpg') center 30%/cover;opacity:.62;pointer-events:none}
.page-opening h1,.about-opening h1{font-size:clamp(90px,11vw,170px);line-height:1.14;letter-spacing:-.07em}
.page-opening h1{position:relative;z-index:1;padding:100px 0 100px clamp(18px,3vw,45px)}
.page-opening h1 em{color:#ee9676}
.page-opening-bottom{position:relative;z-index:1;border-color:#59565c}
.archive{padding-top:35px}
.archive-toolbar{border-top:1px solid #4c484a}
.filter.is-active,.filter:hover{color:#f4a182}
.archive-grid{gap:90px 3vw}
.archive-image-link,.archive-image-link .art,.archive-image-link .art-photo{border-radius:0}
.archive-image-link{overflow:hidden;background:#1a181a}
.archive-image-link .art-photo{transition:transform .75s cubic-bezier(.22,1,.36,1)}
.archive-image-link:hover .art-photo,.archive-image-link:focus-visible .art-photo{transform:scale(1.055)}
.archive-meta{border-color:#555056}
.archive-meta h2{font-size:clamp(44px,4.4vw,70px);line-height:1.05}
.archive-meta span:last-child{color:#aca4a5}
.archive-note{border-color:#555056}
.archive-note p{line-height:1.5}

.detail-back{padding-block:30px}
.detail-cover{height:min(82svh,900px);min-height:610px}
.detail-cover::after{content:"";position:absolute;z-index:0;inset:0;background:linear-gradient(90deg,rgba(6,6,7,.36),transparent 55%),linear-gradient(0deg,rgba(6,6,7,.56),transparent 50%);pointer-events:none}
.detail-cover .art-photo{filter:brightness(.82)}
.detail-cover-overlay{z-index:1;padding:4vw 5vw}
.detail-cover-overlay h1{font-size:clamp(102px,13vw,210px);line-height:1.08}
.detail-overview{padding-block:145px 125px}
.detail-side dl div,.detail-concept{border-color:#ccc7c0}
.detail-side dt{color:#77716d}
.detail-side dd{color:#191819}
.detail-main>p:not(.lead-text),.detail-concept p{color:#4e4946}
.lead-text{font-size:clamp(48px,5vw,78px);line-height:1.23;color:#151516}
.placeholder-disclosure{color:#a64e3a}
.detail-concept{padding-bottom:145px}
.detail-concept h2{font-size:clamp(65px,6.7vw,104px);line-height:1.18;color:#151516}
.detail-concept>div:last-child{padding-top:120px}
.detail-system{background:radial-gradient(ellipse at 75% 20%,rgba(67,57,90,.2),transparent 55%),#090a0d;box-shadow:0 0 0 100vmax #090a0d;clip-path:inset(0 -100vmax)}
.detail-system h2 em,.application-title h2 em{color:#ee9676}
.next-project{background:#e9e6df;color:#111}
.next-project .eyebrow{color:#ad573e}
.next-project a>div{border-color:#a6a09a}

.about-opening{padding-top:70px;padding-bottom:155px}
.about-opening h1{padding:86px 0 72px;color:#151516}
.about-opening-grid{grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr);gap:8vw;align-items:center}
.about-opening .editorial-collage{min-height:680px}
.about-intro{padding-bottom:0}
.about-intro>p{font-size:clamp(27px,2.7vw,39px);line-height:1.45;color:#252326}
.about-intro>p:last-child{color:#746e6a}
.about-philosophy{background:#17171b;color:#f8f5f0}
.about-philosophy blockquote{line-height:1.17}
.about-philosophy blockquote em{font-family:var(--serif);font-size:.94em;font-style:italic;font-weight:400;color:#ed9877}
.about-fields,.about-experience{padding-top:145px;padding-bottom:150px}
.about-fields h2,.about-experience h2{color:#151516;line-height:1.18}
.fields-list,.fields-list>div,.about-experience{border-color:#c7c2bc}
.fields-list h3{color:#151516}
.fields-list p,.about-experience p{color:#5e5956}

.site-footer{padding:58px 4vw 30px;background:#090a0d}
.site-footer::before{background:radial-gradient(ellipse 43% 47% at 65% 47%,rgba(153,73,99,.19),transparent 75%),radial-gradient(ellipse 28% 40% at 15% 70%,rgba(74,89,146,.12),transparent 78%)}
.site-footer h2{line-height:1.09;letter-spacing:-.07em}
.site-footer h2 em{font-family:var(--serif);font-size:.92em;font-style:italic;font-weight:400;color:#f1a082}
.footer--thanks h2{font-size:clamp(85px,10vw,160px)}
.contact-placeholder{border-color:#d3856d}
.footer-bottom{border-color:#4c4344}

@media(max-width:1100px){
  .hero-copy{max-width:68vw}.hero h1{font-size:clamp(78px,10.5vw,125px)}
  .hero-reel{width:48vw}.directory-layout{gap:5vw}.directory-link{min-height:98px}
  .editorial-collage{min-height:530px}.about-opening .editorial-collage{min-height:590px}
}
@media(max-width:780px){
  .site-header{height:68px}.hero{min-height:760px}.hero-layout{min-height:620px}
  .hero-copy{top:8%;max-width:95%}.hero h1{font-size:clamp(68px,11.7vw,94px)}.hero h1 span{margin-left:4vw}
  .hero-image{top:20%;right:-4vw;width:100vw;height:71%;mask-image:linear-gradient(0deg,transparent 0%,#000 18%,#000 80%,transparent 100%)}
  .hero-image-label{right:4vw;bottom:178px}.hero-reel{right:0;bottom:53px;width:min(95%,500px)}
  .hero-reel-item{height:100px}.hero-manifesto{margin-top:22px;font-size:15px}
  .home-intro{padding-top:100px;padding-bottom:105px}.home-intro-grid{display:block;padding-top:60px}.home-intro h2{font-size:clamp(57px,8vw,80px)}
  .home-intro .editorial-collage{margin-top:55px;min-height:540px}
  .project-directory{padding-top:85px}.directory-layout{min-height:0;padding:65px 0}
  .directory-heading{padding-bottom:34px}.directory-heading h2{font-size:clamp(44px,7vw,62px)}
  .directory-link{min-height:116px}.directory-title{font-size:clamp(36px,6vw,52px)}
  .practice-section{padding-top:90px}.practice-track{margin-top:55px}
  .page-opening{min-height:490px}.page-opening h1{font-size:clamp(74px,12vw,108px)}
  .about-opening-grid{display:block}.about-opening .editorial-collage{min-height:570px;margin-bottom:70px}
  .about-opening h1{font-size:clamp(67px,10vw,94px)}
  .detail-overview{padding-block:100px}.detail-concept{padding-bottom:100px}
}
@media(max-width:600px){
  html{scroll-padding-top:106px}
  .site-header{height:94px;padding-inline:5vw}.wordmark{font-size:16px}.site-nav{gap:17px;font-size:11px}
  .hero{min-height:790px;padding:22px 5vw 28px}.hero-kicker,.hero-base{font-size:9px}
  .hero-layout{min-height:660px}.hero-copy{top:5%;max-width:100%}.hero-copy .eyebrow{margin-bottom:17px}
  .hero h1{font-size:clamp(56px,12.5vw,75px);line-height:1.17;letter-spacing:-.08em}.hero h1 span{margin-left:3vw}
  .hero-manifesto{margin-top:21px;max-width:300px;font-size:13px;line-height:1.5}.hero-name{margin-top:7px;font-size:10px}.hero-name strong{font-size:10px}
  .hero-image{top:25%;right:-5vw;width:110vw;height:61%;mask-image:linear-gradient(0deg,transparent 0%,#000 18%,#000 77%,transparent 100%)}
  .hero-image .art-photo{object-position:48% 32%}.hero-image-label{bottom:170px;right:5vw;font-size:8px}
  .hero-reel{left:0;right:0;bottom:47px;width:100%;gap:6px}.hero-reel-item{height:91px}.hero-reel-item span{left:6px;bottom:6px;font-size:8px}
  .hero-reel-item:nth-child(2){transform:translateY(-10px)}.hero-reel-item:nth-child(3){transform:translateY(6px)}
  .home-intro{padding-top:80px;padding-bottom:95px}.home-intro-grid{padding-top:48px}.home-intro h2{font-size:clamp(45px,10.5vw,64px);line-height:1.2}
  .home-intro-copy>p:not(.eyebrow){font-size:19px}.home-intro .editorial-collage{min-height:410px;margin-top:48px}
  .collage-frame--main{left:26%;width:67%;height:72%}.collage-frame--left{width:45%;height:39%}.collage-frame--right{width:42%;height:34%}
  .collage-frame figcaption{left:6px;bottom:6px;font-size:8px}.collage-edition{font-size:8px}
  .project-directory{padding-top:70px;padding-bottom:55px}.directory-top{font-size:9px}.directory-layout{padding:54px 0}
  .directory-heading h2{font-size:clamp(40px,10vw,52px)}.directory-heading .eyebrow{font-size:9px}
  .directory-link{min-height:100px}.directory-title{font-size:clamp(27px,7.2vw,37px)}
  .practice-section{padding-top:75px;padding-bottom:65px}.practice-heading h2{font-size:clamp(48px,12vw,65px)}.practice-track{margin-top:45px}
  .page-opening{min-height:390px;padding-top:38px}.page-opening::after{width:52%;opacity:.45}.page-opening h1{font-size:clamp(54px,12.8vw,76px);padding:67px 0 70px 20px}
  .detail-cover{min-height:530px;height:70svh}.detail-cover-overlay h1{font-size:clamp(70px,15vw,100px)}
  .lead-text{font-size:clamp(43px,9vw,58px)}.detail-concept h2{font-size:clamp(47px,10vw,66px)}
  .about-opening{padding-top:38px;padding-bottom:95px}.about-opening h1{font-size:clamp(52px,12vw,70px);padding:70px 0 50px}
  .about-opening .editorial-collage{min-height:420px;margin-bottom:55px}.about-intro>p{font-size:25px}
  .about-fields,.about-experience{padding-top:95px;padding-bottom:100px}
  .site-footer{padding:37px 5vw 26px}.footer--thanks h2{font-size:clamp(55px,11.8vw,73px)}
}
@media(prefers-reduced-motion:reduce){.hero-reel-item,.hero-reel-item img,.collage-frame img,.archive-image-link .art-photo,.practice-buttons button{transition:none}}
