:root{color-scheme:dark;--bg:#080808;--text:#e8e5df;--muted:#a09e99;--line:#343331}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--bg);color:var(--text);font-family:Arial,Helvetica,sans-serif;font-size:16px;-webkit-font-smoothing:antialiased}a{color:inherit;text-decoration:none}button,select{font:inherit;color:inherit}button{cursor:pointer}button,a,select{-webkit-tap-highlight-color:transparent}button{background:none;border:0;padding:0}button:focus-visible,a:focus-visible,select:focus-visible{outline:1px solid #e8e5df;outline-offset:7px}::selection{background:#e8e5df;color:#080808}.site-header{position:fixed;top:0;left:0;right:0;z-index:30;display:flex;justify-content:space-between;align-items:flex-start;padding:28px 3%;pointer-events:none;background:linear-gradient(#080808ad,transparent)}.site-header a,.site-header button{pointer-events:auto}.wordmark{font:34px/.95 Georgia,'Times New Roman',serif;letter-spacing:-2px}.wordmark span{display:block;font:12px/1.5 Arial,sans-serif;letter-spacing:0;margin-top:12px}.site-header nav{display:flex;gap:28px;font-size:14px;padding-top:5px}.site-header nav a,.site-header nav button{padding:8px 0;border-bottom:1px solid transparent}.site-header nav a:hover,.site-header nav button:hover{border-color:#999}.archive-track{height:720vh;position:relative}.archive-window{height:100svh;position:sticky;top:0;overflow:hidden;isolation:isolate}.archive-space{position:absolute;inset:0;perspective:none;transform-style:flat;will-change:transform;touch-action:pan-y;cursor:grab}.archive-space.dragging{cursor:grabbing}.archive-card{position:absolute;top:50%;left:50%;width:clamp(180px,calc(var(--w)*.082vw),440px);transform:translate(-50%,-50%) translate(calc(var(--x)*1vw),calc(var(--y)*1vh));display:block;backface-visibility:hidden}.archive-card img{width:100%;height:auto;aspect-ratio:1.5;object-fit:cover;display:block;filter:saturate(.65) brightness(.8);transition:filter .6s;box-shadow:0 12px 45px #0005;user-select:none}.archive-card:hover img,.archive-card:focus-visible img{filter:saturate(1) brightness(1)}.card-caption{display:flex;justify-content:space-between;gap:12px;font-size:14px;line-height:1.3;padding-top:12px;opacity:0;transition:opacity .3s}.card-caption small{font-size:12px;color:var(--muted);white-space:nowrap}.archive-card:hover .card-caption,.archive-card:focus-visible .card-caption{opacity:1}.archive-card[hidden]{display:none}.intro-name{position:absolute;inset:0;z-index:10;pointer-events:none}.intro-name>.first-name,.intro-name>.last-name{position:absolute;font-family:Georgia,'Times New Roman',serif;font-size:clamp(125px,22vw,360px);font-weight:400;line-height:.85;letter-spacing:-.095em;color:#e3dfd7}.first-name{left:3%;top:25%}.last-name{right:5%;top:49%}.intro-name p{position:absolute;top:48%;left:50%;transform:translateX(-50%);font-size:14px;color:#b6b3ad;white-space:nowrap}.intro-name button{position:absolute;bottom:17%;left:50%;transform:translateX(-50%);font-size:12px;color:#cac7c0;pointer-events:auto;line-height:1.8}.intro-name button span{display:block;font-size:22px;margin-top:13px}.archive-vignette{position:absolute;inset:0;pointer-events:none;z-index:8;background:linear-gradient(#08080877,transparent 20%,transparent 77%,#080808cc),linear-gradient(90deg,#08080855,transparent 20%,transparent 80%,#08080855)}body:has(.archive-track):not(.entered) .wordmark{opacity:0;pointer-events:none}.wordmark{transition:opacity .7s}.archive-hud{position:fixed;z-index:25;left:3%;right:3%;bottom:20px;pointer-events:none}.archive-hud button,.archive-hud select{pointer-events:auto}.filters{display:flex;gap:24px;margin-bottom:24px;font-size:14px}.filters button{color:#8b8985;padding:8px 0;position:relative}.filters button[aria-pressed=true]{color:#eeeae2}.filters button[aria-pressed=true]:before{content:'';position:absolute;left:0;right:0;bottom:0;height:1px;background:#eeeae2}.archive-bottom{display:flex;align-items:center;justify-content:space-between;gap:20px;font-size:12px;color:#b7b4ae}.project-picker select{background:#080808bd;border:0;border-bottom:1px solid #45433f;max-width:220px;padding:8px;font-size:12px}.preview-note{display:block;font-size:12px;color:#85817a;margin-top:10px}.archive-end{padding:15vh 12% 27vh;min-height:80vh}.eyebrow{text-transform:uppercase;letter-spacing:.16em;font-size:12px;color:#aaa69f}.archive-end h2,dialog h2{font:normal clamp(48px,7vw,100px)/1.02 Georgia,serif;letter-spacing:-.065em;margin:35px 0}.archive-end p{color:#aaa69f}.archive-end button{margin-top:30px;border-bottom:1px solid #555;padding-bottom:12px;font-size:14px}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}dialog{background:#101010;color:var(--text);border:1px solid #393733;padding:75px 7%;width:min(780px,92vw);max-height:90svh;overflow:auto}dialog::backdrop{background:#000c;backdrop-filter:blur(10px)}.dialog-close{position:absolute;top:24px;right:28px;font-size:14px;padding:8px}dialog p{font-size:17px;line-height:1.8;max-width:520px;color:#bcb8b0}.dialog-meta{border-top:1px solid #34322e;padding-top:24px;margin-top:32px;font-size:14px;line-height:1.7}.small-note{font-size:13px!important;line-height:1.7!important;color:#8e8b85!important}.project-page{padding-top:150px}.project-intro{padding:0 5% 55px}.back-link{font-size:13px;color:#aaa69f}.project-label{display:flex;justify-content:space-between;gap:20px;margin-top:64px;font-size:12px;text-transform:uppercase;letter-spacing:.12em;color:#aaa69f}.project-intro h1{font:normal clamp(60px,10.7vw,160px)/1.03 Georgia,serif;letter-spacing:-.065em;margin:25px 0 0;max-width:95%}.project-hero{margin:0 3%}.project-hero img{display:block;width:100%;max-height:92vh;object-fit:cover}.project-hero figcaption{font-size:12px;color:#938f88;margin-top:14px}.project-copy{display:grid;grid-template-columns:1.05fr 1fr;gap:12%;padding:115px 10% 130px}.project-copy h2{font:normal clamp(32px,3.5vw,55px)/1.14 Georgia,serif;letter-spacing:-.04em;margin:0}.project-copy p{font-size:16px;line-height:1.9;color:#c0bcb5;margin-top:0}.project-frame{margin:0 6% 120px}.project-frame img{display:block;width:100%;height:auto}.project-frame figcaption{display:flex;gap:45px;font-size:13px;color:#aaa69f;margin-top:18px;line-height:1.7}.frame-0{margin-right:21%}.frame-1{margin-left:24%;margin-right:6%}.next-project{position:relative;display:block;border-top:1px solid #302e2b;padding:80px 5% 100px;overflow:hidden}.next-project strong{display:block;position:relative;z-index:2;font:normal clamp(40px,6vw,85px)/1.15 Georgia,serif;letter-spacing:-.045em;max-width:74%;margin-top:25px}.next-project img{position:absolute;right:5%;top:50%;transform:translateY(-50%) rotate(-4deg);width:22%;opacity:.5;transition:opacity .4s,transform .4s}.next-project:hover img{opacity:1;transform:translateY(-50%) rotate(0)}.page-footer{padding:30px 5%;border-top:1px solid #302e2b;display:flex;justify-content:space-between;gap:25px;font-size:13px;color:#aaa69f}@media(max-width:700px){.site-header{padding:22px 5%}.wordmark{font-size:28px;letter-spacing:-1.5px}.wordmark span{font-size:12px;max-width:130px}.site-header nav{gap:17px;font-size:13px}.archive-track{height:640vh}.archive-space{perspective:none}.archive-card{width:clamp(150px,calc(var(--w)*.6px),230px)}.first-name{top:29%;left:5%}.last-name{top:50%;right:8%}.intro-name>.first-name,.intro-name>.last-name{font-size:34vw}.intro-name p{font-size:12px;top:44%}.intro-name button{bottom:20%}.archive-hud{left:5%;right:5%;bottom:16px}.filters{gap:19px;margin-bottom:16px;font-size:13px}.archive-bottom{gap:10px;flex-wrap:wrap}.browse-hint{width:100%;font-size:12px}.archive-bottom #hover-title{display:none}.project-picker select{padding:6px 0;max-width:235px}.preview-note{font-size:12px}.card-caption{font-size:12px;flex-direction:column;gap:3px}.archive-end{padding:90px 7% 230px}.project-page{padding-top:145px}.project-label{margin-top:40px;font-size:12px;line-height:1.6}.project-intro{padding-bottom:35px}.project-intro h1{font-size:16vw;margin-top:25px}.project-copy{grid-template-columns:1fr;gap:25px;padding:65px 7%}.project-copy h2{font-size:37px}.project-frame,.frame-0,.frame-1{margin:0 5% 65px}.project-frame figcaption{gap:20px}.project-hero img{max-height:none}.next-project{padding:55px 7% 75px}.next-project strong{font-size:45px;max-width:80%}.next-project img{width:34%;opacity:.3}.page-footer{font-size:12px;padding:25px 5%}dialog{padding:80px 7% 40px}dialog h2{font-size:50px}.site-header nav button{white-space:nowrap}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{transition:none!important;animation:none!important}.archive-track{height:auto!important;padding:150px 5% 30px}.archive-window{height:auto;position:relative;overflow:visible}.intro-name,.archive-vignette{display:none}.archive-space{position:relative;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:40px 25px;perspective:none}.archive-card{position:relative;top:auto;left:auto;transform:none!important;width:100%;opacity:1!important;visibility:visible!important}.card-caption{opacity:1}.archive-hud{background:#080808ee;padding:15px}.wordmark{opacity:1!important}.archive-end{padding-bottom:230px}} 

@media(max-width:700px){.archive-card{max-width:42vw}}@media(prefers-reduced-motion:reduce){.archive-space{transform:none!important;will-change:auto}.archive-card{max-width:none}}

.archive-plane{position:absolute;inset:0;will-change:transform}@media(prefers-reduced-motion:reduce){.archive-plane{display:contents;transform:none!important;will-change:auto}}

/* Infinite, flat archive: intro spacing and rotation settle into a tight grid. */
.infinite-archive{overflow:hidden}.infinite-archive .archive-window{position:relative;height:100svh}.infinite-archive .archive-space{touch-action:none;perspective:none}.infinite-archive .archive-plane{will-change:auto}.infinite-archive .archive-end{display:none}.infinite-archive .archive-card{height:auto;will-change:transform}.infinite-archive .archive-card img{aspect-ratio:1.5}.infinite-archive .card-caption{position:absolute;left:0;right:0;bottom:0;padding:22px 10px 10px;background:linear-gradient(transparent,#080808e8);font-size:13px}.infinite-archive .card-caption small{font-size:12px}.archive-hud #back-start{pointer-events:auto;color:#b7b4ae;font-size:12px;padding:8px 0}.infinite-archive .archive-vignette{background:linear-gradient(#080808aa,transparent 20%,transparent 74%,#080808e8)}

.infinite-archive .archive-plane{z-index:1}.infinite-archive:not(.entered) .card-caption{display:none}.infinite-archive .archive-card{transform-origin:center;will-change:transform,opacity}

/* Menus enter only after the title has faded away. */
body:has(.archive-track):not(.menus-ready) .site-header,body:has(.archive-track):not(.menus-ready) .archive-hud{opacity:0;visibility:hidden;pointer-events:none}
body:has(.archive-track) .site-header,body:has(.archive-track) .archive-hud{transition:opacity .4s,visibility .4s}
.archive-card img,.archive-card:hover img,.archive-card:focus-visible img{filter:grayscale(1) brightness(.88)}
/* An image-first project opening with native document scrolling below. */
.focused-project .project-page{padding-top:0}
.focused-project .project-hero{position:relative;margin:0;height:100svh;padding:95px 4% 60px;display:flex;align-items:center;justify-content:center}
.focused-project .project-hero img{display:block;width:100%;height:100%;max-height:none;object-fit:contain;transform-origin:top left;filter:grayscale(0)}
.focused-project .project-hero figcaption{position:absolute;bottom:20px;left:4%;right:4%;text-align:center;font-size:14px}
.focused-project .project-intro{padding-top:55px}
@media(max-width:700px){.focused-project .project-hero{padding:110px 0 60px}.focused-project .project-hero img{object-fit:contain}}

.infinite-archive .archive-space{touch-action:none;user-select:none;-webkit-user-select:none;overscroll-behavior:none}
.archive-card{-webkit-user-drag:none}.archive-card img{-webkit-user-drag:none}
.projects-button{pointer-events:auto;font-size:14px;padding:8px 0;border-bottom:1px solid #777}
#archive-empty{position:absolute;inset:40% 10% auto;z-index:9;text-align:center;font-size:18px}#archive-empty[hidden]{display:none}#archive-empty a{border-bottom:1px solid #777}
.projects-page{padding:150px 5% 70px}.projects-page h1{font:clamp(60px,10vw,140px)/1 Georgia,serif;letter-spacing:-.06em}.projects-page h2{font:36px Georgia,serif;margin:60px 0 24px}.project-list{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:36px 20px}.project-list img{width:100%;aspect-ratio:1.5;object-fit:cover}.project-list span{display:block;margin:12px 0 6px}.project-list small{color:#aaa}.external-projects{display:flex;gap:24px;flex-wrap:wrap}.external-projects a{border-bottom:1px solid #777;padding:14px 0}
@media(max-width:700px){.site-header nav{gap:12px;font-size:12px;flex-wrap:wrap;justify-content:flex-end;max-width:65%}.site-header .wordmark{font-size:25px}.wordmark span{max-width:105px}.filters{gap:16px;font-size:13px}.project-list{grid-template-columns:repeat(2,minmax(0,1fr))}.projects-page{padding-top:140px}}

.project-transition{position:fixed;inset:0;z-index:1000;background:#080808;pointer-events:all}.project-transition img{position:absolute;object-fit:contain;transform-origin:top left;max-width:none;box-shadow:none}

/* Supplied portfolio imagery keeps its native framing on project pages. */
.project-hero img{height:auto;object-fit:contain}
.project-frame:first-of-type{margin-top:80px}
.project-hero + .project-frame{margin-top:90px}
.project-video{margin:65px 5% 100px}.project-video video{display:block;width:100%;max-height:85svh;background:#000}.project-video figcaption{color:var(--muted);font-size:14px;margin-top:16px}
.project-award{padding:70px 7%;}.project-award h2{font:48px/1.1 Georgia,serif;margin:20px 0}.project-award a,.award-source{font-size:14px;border-bottom:1px solid #777;padding-bottom:5px}
.award{border-top:1px solid #383838;padding:28px 0}.award h3{font:36px/1.12 Georgia,serif;margin:14px 0}.award p{font-size:14px;margin:0 0 16px}
@media(max-width:700px){.project-video{margin:50px 5% 65px}.project-award{padding:50px 7%}.award .eyebrow{line-height:1.8;letter-spacing:.08em}}

.about-portrait{float:right;width:42%;max-width:240px;height:auto;margin:0 0 24px 28px;display:block}#about .dialog-meta{clear:both}@media(max-width:520px){.about-portrait{float:none;width:200px;max-width:100%;margin:0 0 24px}}
