/* Editorial surfaces. The home keeps its blue, cinematic composition. */
.section-dialog,.menu-dialog {
  --text:#22231f; --muted:#73756d; --line:#dcded6; --paper:#fafaf7; --accent:#425747;
  color-scheme:light; background:var(--paper); color:var(--text);
}
.section-dialog::selection,.menu-dialog::selection { background:#394b3c;color:white }
.section-dialog a:focus-visible,.section-dialog button:focus-visible,.menu-dialog a:focus-visible,.menu-dialog button:focus-visible,.practice:focus-visible { outline:1px solid #425747;outline-offset:6px }
.section-dialog[open] { animation:paper-enter .8s var(--ease) both }
.section-dialog.is-closing { animation:paper-leave .32s cubic-bezier(.65,0,.35,1) both }
.menu-dialog[open] { animation:menu-enter .65s var(--ease) both }
.menu-dialog.is-closing { animation:paper-leave .32s ease both }
.section-dialog .dialog-top,.menu-dialog .dialog-top { padding:24px 4%;position:relative;z-index:2;min-height:94px }
.section-dialog .dialog-top::after,.menu-dialog .dialog-top::after { content:"";position:absolute;left:4%;right:4%;bottom:0;height:1px;background:var(--line);transform-origin:left;animation:rule-enter 1s var(--ease) both }
.page-header-actions { display:flex;align-items:center;gap:34px }
.inner-menu-toggle { display:flex;gap:18px;align-items:center;font-size:10px;letter-spacing:.15em;min-height:44px }
.inner-menu-toggle span { font-size:17px }
.close-button span,.inner-menu-toggle span,.text-link span { display:inline-block;transition:transform .5s var(--ease) }
.close-button:hover span,.text-link:hover span { transform:translate(4px,-4px) }
.inner-menu-toggle:hover span { transform:rotate(90deg) }
.section-dialog .close-button span,.menu-dialog .close-button span { color:#3e4239;font-size:24px }
.section-content { max-width:1600px;margin:58px auto 85px;padding:0 5%;min-height:66vh }
.section-heading { font-size:clamp(48px,6.5vw,98px);font-weight:300;letter-spacing:-.055em;line-height:1.02;margin:0 0 34px;max-width:none }
.section-heading em { font-family:Georgia,'Times New Roman',serif;font-weight:400;letter-spacing:-.06em }
.title-mask { display:inline-block;overflow:hidden;vertical-align:bottom;padding:0 .06em .13em 0;margin-bottom:-.13em;max-width:100% }
.title-line { display:inline-block;transform-origin:left bottom }
.section-kicker,.about-copy .section-kicker { color:#6b7166;font-size:10px;font-weight:400;letter-spacing:.18em;margin:0 0 30px }
.section-kicker::before { content:"";display:inline-block;width:5px;height:5px;border-radius:50%;background:#526b52;margin-right:12px;vertical-align:2px }
.section-lead { color:#64695f;font-size:16px;font-weight:300;line-height:1.75;max-width:490px }
.editorial-rule { height:1px;width:44px;background:#87917d;display:block;transform-origin:left;animation:rule-enter 1s .2s var(--ease) both }
.section-bottom { margin:0 4%;color:#777b71;letter-spacing:.04em;gap:34px;border-color:var(--line);padding:28px 0 35px }
.section-bottom a { position:relative;transition:color .25s }
.section-bottom a::after,.project-back::after { content:"";position:absolute;bottom:-7px;left:0;right:0;height:1px;background:currentColor;transform:scaleX(0);transform-origin:right;transition:transform .5s var(--ease) }
.section-bottom a:hover::after,.section-bottom a[aria-current]::after,.project-back:hover::after { transform:scaleX(1);transform-origin:left }
.section-bottom a:hover,.section-bottom a[aria-current] { color:#29392c }
.section-dialog .text-link { color:#343c31;border-color:#a4ada0;font-size:12px }
/* Work: a composition of prints, with space to read and space to move. */
.work-layout { display:grid;grid-template-columns:245px minmax(0,1fr);align-items:center;gap:32px;min-height:59vh }
.work-intro .section-heading { font-size:clamp(44px,4.4vw,66px);letter-spacing:-.055em;text-transform:none;line-height:1.06;margin-bottom:27px }
.work-intro .section-lead { font-size:12px;letter-spacing:.03em;margin:24px 0 0;line-height:1.8 }
.gallery-controls { display:flex;gap:12px;margin-top:32px }
.gallery-controls button,.project-pagination a { width:44px;height:44px;display:grid;place-items:center;border:1px solid #d0d6ca;border-radius:50%;font-size:23px;transition:background .35s,color .35s,transform .5s var(--ease) }
.gallery-controls button:hover:not(:disabled),.project-pagination a:hover { background:#2d3e31;color:#fff;transform:rotate(-18deg) }
.gallery-controls button:disabled { opacity:.3 }
.gallery-hint { font-size:8px;letter-spacing:.12em;color:#7e8378;margin-top:22px }
.project-shelf { display:flex;align-items:center;gap:27px;overflow-x:auto;overflow-y:hidden;padding:46px 28px 55px;scroll-snap-type:x proximity;scrollbar-width:none;scroll-behavior:smooth;min-width:0;cursor:grab }
.project-shelf::-webkit-scrollbar { display:none }
.project-shelf.is-dragging { scroll-behavior:auto;scroll-snap-type:none;cursor:grabbing;user-select:none }
.project-shelf.is-dragging a { pointer-events:none }
.project-card { position:relative;display:block;flex:0 0 clamp(215px,19vw,290px);background:#fff;border:1px solid #e4e7de;box-shadow:0 24px 30px -25px #22301e66;transform:perspective(1000px) rotate(var(--rotation,-4deg)) translateY(var(--offset,0px));transition:transform .7s var(--ease),box-shadow .7s var(--ease);scroll-snap-align:center;transform-origin:50% 75%;animation:none }
.project-card:nth-child(2n) { --rotation:4deg;--offset:17px }
.project-card:nth-child(3n) { --rotation:-2deg;--offset:-5px }
.project-card:focus-visible { transform:rotate(0) translateY(-10px) }
.card-media { position:relative;aspect-ratio:4/5;overflow:hidden;background:var(--brand-bg,#101716) }
.card-media img { display:block;width:100%;height:100%;object-fit:cover;transition:transform 1.1s var(--ease),filter .7s }
.card-media.logo-media { display:grid;place-items:center }
.logo-media img { object-fit:contain;width:88%;height:88% }
.card-number { position:absolute;left:14px;top:14px;color:#fff;font-size:10px;letter-spacing:.1em;z-index:2;text-shadow:0 1px 10px #0008 }
.card-preview { position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:0;transition:opacity .5s;pointer-events:none }
.is-playing .card-preview { opacity:1 }
.film-tag { position:absolute;bottom:14px;left:14px;font-size:8px;letter-spacing:.12em;color:#fff;padding:6px 8px;background:#0004;border:1px solid #fff4;z-index:2 }
.card-view { position:absolute;right:16px;bottom:16px;width:54px;height:54px;background:#fbfcf7;color:#222;border-radius:50%;font-size:9px;letter-spacing:.06em;display:grid;place-items:center;opacity:0;transform:translateY(10px) scale(.8);transition:opacity .35s,transform .5s var(--ease);z-index:3 }
.card-caption { padding:19px 18px 20px;min-height:102px;position:relative }
.card-caption h3 { font-size:23px;font-weight:400;letter-spacing:-.045em;margin:0 0 8px;text-transform:none }
.card-caption p { font-size:10px;color:#787d70;line-height:1.5;margin:0;max-width:85% }
.card-arrow { position:absolute;right:17px;bottom:17px;font-size:20px;transition:transform .5s var(--ease) }
.gallery-end { display:flex;align-items:center;gap:28px;margin:38px 0 0 277px }
.work-footnote { font-size:8px;letter-spacing:.12em;color:#777f70;margin:0;flex-shrink:0 }
.gallery-track { height:1px;background:#d7dcd0;flex:1;min-width:30px;overflow:hidden }
.gallery-track span { display:block;width:25%;height:100%;background:#4f664e;transform:translateX(calc(var(--gallery-progress,0) * 300%)) }
.gallery-total { font-size:9px;color:#6e7766;white-space:nowrap }
/* Project views: film and still image keep their own natural proportions. */
.project-back { display:inline-block;position:relative;font-size:9px;letter-spacing:.13em;margin-bottom:42px;color:#66705e }
.project-layout { display:grid;grid-template-columns:minmax(220px,.75fr) minmax(0,1.25fr);gap:9%;align-items:center }
.project-copy .section-heading { font-size:clamp(44px,5vw,76px);letter-spacing:-.045em;line-height:1.04;text-transform:none;overflow-wrap:normal }
.project-discipline { text-transform:uppercase;font-size:9px;letter-spacing:.16em;line-height:1.8;color:#79816f;margin:0 0 25px }
.project-description { font-size:15px;line-height:1.8;color:#666d5f;margin:23px 0;max-width:380px }
.project-roles { display:flex;flex-wrap:wrap;gap:8px;margin:25px 0 }
.project-roles span { font-size:9px;letter-spacing:.06em;border:1px solid #d8ded0;padding:7px 10px;border-radius:20px;color:#65705d }
.film-count { display:block;font-size:8px;letter-spacing:.13em;color:#78816e;margin-top:32px }
.project-media { min-width:0 }
.media-frame { position:relative;background:#e9ece5;box-shadow:0 30px 50px -40px #24371c77;transform:rotate(-2deg);transition:transform .8s var(--ease) }
.media-frame.is-portrait { width:min(320px,31.5vw);margin:auto;transform:none }
.media-frame video { display:block;width:100%;aspect-ratio:9/16;max-height:66vh;object-fit:contain;background:#111 }
.media-frame.is-portrait { width:min(320px,37.125vh) }
.media-frame.is-logo { aspect-ratio:1.35;display:grid;place-items:center;background:var(--brand-bg,#eee) }
.media-frame img { display:block;width:84%;height:84%;object-fit:contain }
.media-frame:hover,.media-frame:focus-within { transform:rotate(0) }
.film-selector { display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;max-width:520px;margin:27px auto 0 }
.film-selector button { min-width:0;padding:0 0 9px;text-align:left;border-bottom:1px solid #d5dbcf;color:#818b75;transition:color .3s,border-color .3s }
.film-selector img { display:block;width:100%;height:68px;object-fit:cover;object-position:50% 35%;filter:grayscale(1);opacity:.65;transition:opacity .4s,filter .4s,transform .5s var(--ease) }
.film-selector button[aria-pressed=true],.film-selector button:hover { border-color:#334b33;color:#293d28 }
.film-selector button[aria-pressed=true] img,.film-selector button:hover img { filter:grayscale(0);opacity:1 }
.film-label { display:block;font-size:10px;margin-top:8px }
.film-label small { display:block;font-size:8px;margin-top:4px;color:#89917f }
.media-caption { font-size:10px;line-height:1.7;color:#7b8572;text-align:center;margin:20px auto 0;max-width:480px }
.project-pagination { display:flex;align-items:center;justify-content:space-between;gap:20px;border-top:1px solid var(--line);padding-top:25px;margin-top:60px;font-size:9px;letter-spacing:.1em;color:#808876 }
.project-pagination>div { display:flex;gap:12px }
/* Journey */
.experience-layout { display:grid;grid-template-columns:1fr 1.1fr;gap:10%;align-items:start }
.experience-layout>div:first-child { position:sticky;top:45px }
.experience-layout .section-heading { font-size:clamp(46px,5.2vw,76px) }
.experience-layout .section-lead { margin:26px 0;max-width:330px }
.timeline { margin-top:9px;position:relative;padding-left:25px }
.timeline::before { content:"";position:absolute;left:0;top:10px;bottom:35px;width:1px;background:#d0d8c8 }
.timeline .experience-row { display:block;position:relative;padding:0 0 35px;margin-bottom:22px;border:0;border-bottom:1px solid #dde2d7 }
.timeline .experience-row:last-child { margin:0;border:0 }
.timeline .experience-row::before { content:"";position:absolute;left:-28px;top:9px;width:7px;height:7px;border-radius:50%;background:#69805e;box-shadow:0 0 0 5px var(--paper);transition:box-shadow .4s }
.timeline .experience-row:hover::before { box-shadow:0 0 0 5px var(--paper),0 0 0 6px #899c7d }
.timeline h3 { font-size:24px;letter-spacing:-.035em;margin:0 0 8px;font-weight:400 }
.timeline .role { font-size:11px;color:#747f69 }
.timeline p { font-size:14px;line-height:1.8;color:#7c8573;margin:15px 0 0 }
/* About: portrait and typography, no generic information cards. */
.about-editorial { display:grid;grid-template-columns:1.2fr .8fr;gap:9%;align-items:center }
.about-copy .section-heading { font-size:clamp(46px,5.5vw,84px) }
.about-copy p { font-size:16px;line-height:1.8;color:#707866;font-weight:300;max-width:470px }
.about-copy .text-link { margin-top:5px }
.about-photo { margin:0 5px;position:relative;transform:rotate(3deg);transition:transform 1s var(--ease) }
.about-photo:hover { transform:rotate(0) }
.about-photo img { display:block;width:100%;height:480px;object-fit:cover;object-position:56% 35%;filter:saturate(.65);transition:filter .8s }
.about-photo:hover img { filter:saturate(1) }
.about-photo figcaption { font-size:8px;letter-spacing:.25em;text-align:center;color:#7e8973;margin:22px 0 }
.about-details { display:grid;grid-template-columns:1.5fr 1fr 1fr;gap:40px;margin-top:80px;padding-top:30px;border-top:1px solid var(--line) }
.about-details h3 { font-size:9px;letter-spacing:.15em;color:#87917c;font-weight:400;margin-bottom:20px }
.about-details p { font-size:13px;line-height:1.8;color:#717d64 }
.skill-list { gap:6px 20px }
.skill-list span { border:0;border-bottom:1px solid #d7dece;padding:7px 0;font-size:11px;color:#647258;transition:color .3s,border-color .3s }
.skill-list span:hover { color:#1e3620;border-color:#1e3620 }
/* Lab visuals are decorative interpretations of disciplines, not project claims. */
.practice-grid { display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:50px 45px;margin-top:55px }
.practice { padding:0 0 25px;border:0;border-bottom:1px solid #dce2d4;outline-offset:8px }
.practice .eyebrow { color:#8a937d;font-size:9px }
.practice h3 { color:#313e29;font-size:26px;letter-spacing:-.03em;font-weight:300;margin:14px 0 }
.practice p { color:#758068;font-size:14px;line-height:1.8;max-width:380px }
.study { position:relative;height:220px;background:#edf0e8;overflow:hidden;display:grid;place-items:center;margin-bottom:26px;perspective:600px }
.study i { display:block;position:absolute;transition:transform 1.2s var(--ease),border-radius 1s var(--ease) }
.study-0 i { width:125px;height:125px;border:1px solid #637657;transform:rotate(calc(var(--i) * 12deg));border-radius:22% }
.practice:hover .study-0 i,.practice:focus .study-0 i { transform:rotate(calc(var(--i) * 22deg + 90deg)) scale(calc(.55 + var(--i) * .075));border-radius:50% }
.study-1 { background:#1f3229 }
.study-1 i { width:100px;height:140px;border:1px solid #adc9a977;background:linear-gradient(140deg,#a6c1ad18,transparent);transform:translateX(calc((var(--i) - 3.5) * 18px)) rotate(-20deg) }
.practice:hover .study-1 i,.practice:focus .study-1 i { transform:translateX(calc((var(--i) - 3.5) * 12px)) rotate(calc(var(--i) * 9deg - 30deg)) }
.study-2 i { width:calc(24px + var(--i) * 24px);height:calc(24px + var(--i) * 24px);border:1px solid #7e9470;border-radius:50%;transform:rotateX(55deg) rotateZ(-25deg) }
.practice:hover .study-2 i,.practice:focus .study-2 i { transform:rotateX(0) translateX(calc(var(--i) * 2px)) }
.study-3 { background:#dedfd6 }
.study-3 i { width:4px;height:calc(35px + var(--i) * 17px);border-radius:8px;background:#56654a;transform:translateX(calc((var(--i) - 3.5) * 19px)) rotate(15deg) }
.practice:hover .study-3 i,.practice:focus .study-3 i { transform:translateX(calc((var(--i) - 3.5) * 19px)) rotate(-15deg) scaleY(.65) }
/* Contact: a single invitation. */
.contact-layout { display:grid;grid-template-columns:1.4fr .6fr;gap:5%;align-items:center;min-height:62vh }
.contact-layout .section-heading { font-size:clamp(55px,6.7vw,98px);letter-spacing:-.055em;text-transform:none;line-height:1.05 }
.contact-intro { font-size:20px;font-weight:300;margin:30px 0 18px;color:#717d66 }
.contact-phone { display:block;font-size:15px;color:#6f7b63;margin-bottom:6px }
.contact-email { display:inline-block;font-size:clamp(17px,2.1vw,29px);letter-spacing:-.03em;padding:8px 0 14px;border-color:#bdc7b2;color:#37472e }
.contact-email span { display:inline-block;transition:transform .5s var(--ease) }.contact-email:hover span { transform:translate(6px,-6px) }
.contact-links { margin-top:22px;gap:25px }
.contact-note { font-size:8px;letter-spacing:.17em;line-height:1.8;color:#7d8870;text-align:center;margin:32px 0 }
.contact-aside { font-size:10px;line-height:1.8;color:#89917e;border-top:1px solid var(--line);padding-top:17px;text-align:center }
.contact-art { position:relative;display:grid;place-items:center;aspect-ratio:1;width:100%;max-width:290px;margin:auto }
.orbit { position:absolute;inset:15%;border:1px solid #8a9d7b;border-radius:50%;transition:transform 1.4s var(--ease) }
.orbit-one { transform:rotate(30deg) scaleX(.6) }.orbit-two { transform:rotate(-30deg) scaleX(.6) }.orbit-three { transform:rotate(90deg) scaleX(.6) }
.contact-art:hover .orbit-one,.contact-art:focus-visible .orbit-one { transform:rotate(210deg) scaleX(.6) }.contact-art:hover .orbit-two,.contact-art:focus-visible .orbit-two { transform:rotate(150deg) scaleX(.6) }.contact-art:hover .orbit-three,.contact-art:focus-visible .orbit-three { transform:rotate(270deg) scaleX(.6) }
.contact-art-arrow { font-size:60px;font-weight:200;color:#526548;transition:transform .8s var(--ease) }.contact-art:hover .contact-art-arrow { transform:rotate(45deg) }
.contact-art-label { position:absolute;bottom:3%;font-size:8px;letter-spacing:.15em;color:#677b58 }
/* Index */
.expanded-nav { max-width:1200px;margin:4vh auto 25px;padding:0 5% }
.expanded-nav a { position:relative;overflow:hidden;font-size:clamp(40px,min(6.5vw,8vh),80px);font-weight:300;letter-spacing:-.045em;padding:12px 0;border-color:var(--line);gap:30px;transition:color .4s,padding .7s var(--ease) }
.expanded-nav a::before { content:"";position:absolute;inset:0;background:#e9eee1;z-index:-1;transform:translateY(101%);transition:transform .6s var(--ease) }
.expanded-nav a:hover { color:#344a2b;padding-left:22px }.expanded-nav a:hover::before { transform:translateY(0) }
.expanded-nav span { font-size:9px;letter-spacing:.1em;color:#919b84;align-self:center }
.expanded-nav i { font-size:10px;color:#8a967b;letter-spacing:.02em }
.menu-email { color:#727e64;max-width:1080px;font-size:11px;margin:30px auto;padding:0 5% }
.section-dialog .section-heading:focus { outline:none }
@media(hover:hover) and (pointer:fine) {
  .project-card:hover { transform:perspective(1000px) rotate(var(--tilt,0deg)) translateY(-14px);box-shadow:0 35px 45px -28px #203b2266;z-index:2 }
  .project-card:hover .card-media>img { transform:scale(1.055) }.project-card:hover .card-view { opacity:1;transform:translateY(0) scale(1) }.project-card:hover .card-arrow { transform:translateX(5px) }
}
@keyframes paper-enter { from{clip-path:inset(100% 0 0 0)}to{clip-path:inset(0 0 0 0)} }
@keyframes paper-leave { to{clip-path:inset(0 0 100% 0)} }
@keyframes menu-enter { from{clip-path:inset(0 0 100% 0)}to{clip-path:inset(0 0 0 0)} }
@keyframes rule-enter { from{transform:scaleX(0)}to{transform:scaleX(1)} }
@media(max-width:1000px) {
 .work-layout{grid-template-columns:205px minmax(0,1fr);gap:20px}.work-intro .section-heading{font-size:48px}.gallery-end{margin-left:225px}.work-footnote{max-width:150px;line-height:1.7;flex-shrink:1}
 .section-heading{font-size:60px}.project-layout{gap:6%}.experience-layout{gap:6%}.experience-layout .section-heading{font-size:47px}.about-editorial{gap:6%}.about-photo img{height:390px}.about-details{gap:25px}.contact-layout{grid-template-columns:1.4fr .6fr}.contact-layout .section-heading{font-size:61px}.expanded-nav{margin-top:6vh}
}
@media(max-width:600px) {
 .section-dialog .dialog-top,.menu-dialog .dialog-top{padding:15px 25px;min-height:79px}.page-header-actions{gap:20px}.inner-menu-toggle{font-size:9px;gap:10px}.close-button span{font-size:20px!important}.section-content{padding:0 25px;margin:38px auto 55px;min-height:65vh}
 .section-heading,.about-copy .section-heading,.experience-layout .section-heading{font-size:clamp(35px,11vw,43px);line-height:1.08}.section-kicker,.about-copy .section-kicker{font-size:8px;margin-bottom:22px}.section-lead{font-size:14px}.work-layout,.project-layout,.experience-layout,.about-editorial{grid-template-columns:1fr;gap:25px}
 .work-intro{position:relative}.work-intro .section-heading{font-size:50px;margin-bottom:22px}.work-intro .section-lead{font-size:11px;margin-top:18px}.gallery-controls{position:absolute;right:0;bottom:35px;margin:0;gap:8px}.gallery-controls button{width:39px;height:39px}.gallery-hint{margin:22px 0 0;font-size:7px}.project-shelf{margin:0 -25px;padding:26px 40px 39px;gap:27px}.project-card{flex-basis:240px}.card-caption h3{font-size:23px}.gallery-end{margin:15px 0 0;gap:15px}.work-footnote{max-width:175px;font-size:7px}
 .project-back{margin-bottom:30px;font-size:8px}.project-copy .section-heading{font-size:52px}.project-description{font-size:14px;max-width:none}.project-roles{margin:20px 0}.film-count{margin-top:20px}.project-media{padding-top:10px}.media-frame.is-portrait{width:min(280px,100%)}.media-frame video{max-height:none}.film-selector{gap:8px}.film-selector img{height:65px}.film-label{font-size:9px}.media-caption{font-size:9px}.project-pagination{margin-top:35px;font-size:8px}.media-frame.is-logo{aspect-ratio:1.2}
 .experience-layout>div:first-child{position:static}.timeline{margin-top:10px}.timeline h3{font-size:24px}.timeline p{font-size:13px}.about-photo{margin:12px}.about-photo img{height:380px}.about-copy p{font-size:15px}.about-details{grid-template-columns:1fr;gap:20px;margin-top:45px}.about-details h3{margin-bottom:12px}
 .practice-grid{grid-template-columns:1fr;gap:25px;margin-top:35px}.study{height:225px}.practice h3{font-size:25px}.practice p{font-size:13px}.contact-layout{grid-template-columns:1fr;gap:20px}.contact-layout .section-heading{font-size:clamp(36px,12vw,47px)}.contact-intro{font-size:19px}.contact-email{font-size:21px}.contact-art{max-width:190px}.contact-side{margin-top:20px}.contact-note{margin:20px 0}.contact-art-arrow{font-size:45px}
 .section-bottom{margin:0 25px;gap:19px;font-size:10px}.expanded-nav{padding:0 25px;margin:6vh 0 30px}.expanded-nav a{font-size:43px;padding:23px 0;gap:20px}.expanded-nav i{display:none}.menu-email{margin:30px 25px;padding:0;font-size:11px}
}
@media(prefers-reduced-motion:reduce) {
 .title-line{transform:none!important}.project-shelf{scroll-behavior:auto}.project-card:hover,.project-card:focus-visible{transform:rotate(0)}.card-preview{display:none}.section-dialog,.menu-dialog{clip-path:none!important}
}
