@font-face{font-family:KelvanSans;src:url("assets/sans.otf") format("opentype");font-display:swap}@font-face{font-family:KelvanSerif;src:url("assets/serif.otf") format("opentype");font-display:swap}
:root{--paper:#efede7;--ink:#22251f;--muted:#6f726a;--line:#c8c7bf;--ease:cubic-bezier(.22,.72,.22,1)}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--paper);color:var(--ink);font-family:KelvanSans,Arial,sans-serif}a{color:inherit;text-decoration:none}img{display:block;width:100%}.portfolio-shell{min-height:100svh}
.topbar{height:88px;padding:0 clamp(22px,4vw,64px);display:flex;align-items:center;justify-content:space-between}.brand{display:flex;align-items:baseline;gap:12px}.brand strong{font-family:KelvanSerif,serif;font-size:29px;font-weight:400;letter-spacing:-.05em}.brand span,.topbar-nav a{font-size:9px;text-transform:uppercase;letter-spacing:.14em}.topbar-nav{display:flex;gap:32px}.topbar-nav a{position:relative}.topbar-nav a:after{content:"";position:absolute;left:0;right:100%;bottom:-6px;height:1px;background:currentColor;transition:right .45s var(--ease)}.topbar-nav a:hover:after{right:0}
.masthead{min-height:calc(100svh - 88px);padding:clamp(48px,8vw,120px) clamp(22px,4vw,64px) 32px;display:grid;grid-template-rows:1fr auto;gap:56px}.masthead-copy{display:grid;grid-template-columns:minmax(0,1.45fr) minmax(260px,.55fr);gap:7vw;align-items:end}.kicker,.section-kicker,.project-number,.project-meta,.project-status,.footer-meta{font-size:9px;text-transform:uppercase;letter-spacing:.14em}.kicker{margin:0 0 24px;color:var(--muted)}h1{font-family:KelvanSerif,serif;font-weight:400;font-size:clamp(70px,12vw,182px);letter-spacing:-.07em;line-height:.82;margin:0;max-width:1100px}h1 em{font-weight:400;color:var(--muted)}.masthead-note{align-self:end;border-top:1px solid var(--line);padding-top:18px}.masthead-note p{font-family:KelvanSerif,serif;font-size:clamp(22px,2.2vw,34px);line-height:1.15;margin:0 0 26px}.scroll-cue{display:flex;justify-content:space-between;font-size:9px;text-transform:uppercase;letter-spacing:.13em;color:var(--muted)}.masthead-foot{display:flex;justify-content:space-between;border-top:1px solid var(--line);padding-top:15px;color:var(--muted);font-size:9px;text-transform:uppercase;letter-spacing:.12em}
.projects{padding:100px clamp(22px,4vw,64px) 130px}.projects-head{display:flex;justify-content:space-between;align-items:end;border-bottom:1px solid var(--line);padding-bottom:18px;margin-bottom:56px}.projects-head h2{font-family:KelvanSerif,serif;font-size:clamp(42px,5vw,72px);font-weight:400;letter-spacing:-.045em;margin:0}.section-kicker{color:var(--muted)}.project-count{font-family:KelvanSerif,serif;font-size:18px;color:var(--muted)}.project-grid{display:grid;grid-template-columns:repeat(12,1fr);gap:80px 24px}.project-card{grid-column:span 6;display:block}.project-card:nth-child(3n+1){grid-column:span 7}.project-card:nth-child(3n+2){grid-column:8/span 5;padding-top:140px}.project-card:nth-child(3n){grid-column:3/span 8}.project-media{position:relative;overflow:hidden;background:#d7d4cc;aspect-ratio:4/3}.project-card:nth-child(3n+2) .project-media{aspect-ratio:3/4}.project-card:nth-child(3n) .project-media{aspect-ratio:16/9}.project-media img{height:100%;object-fit:cover;filter:saturate(.78);transition:transform 1.15s var(--ease),filter .7s}.project-card:hover .project-media img{transform:scale(1.025);filter:saturate(1)}.project-overlay{position:absolute;inset:0;background:linear-gradient(180deg,transparent 58%,rgba(16,20,16,.58));opacity:.7;transition:opacity .5s}.project-card:hover .project-overlay{opacity:.35}.project-badge{position:absolute;right:18px;top:18px;background:rgba(239,237,231,.92);padding:10px 13px;font-size:8px;text-transform:uppercase;letter-spacing:.12em;backdrop-filter:blur(8px)}.project-info{display:grid;grid-template-columns:42px 1fr auto;gap:15px;padding-top:16px;border-top:1px solid var(--line);margin-top:10px}.project-number{color:var(--muted);padding-top:6px}.project-title{font-family:KelvanSerif,serif;font-size:clamp(30px,3vw,48px);letter-spacing:-.04em;line-height:1;margin:0}.project-meta{color:var(--muted);line-height:1.8;margin:10px 0 0}.project-status{align-self:start;padding-top:7px;white-space:nowrap}.project-status span{font-size:15px;margin-left:14px}.project-card.is-coming{cursor:default}.project-card.is-coming .project-status{color:var(--muted)}
.about{background:var(--ink);color:var(--paper);padding:110px clamp(22px,4vw,64px)}.about-grid{display:grid;grid-template-columns:1fr 2fr;gap:9vw}.about h2{font-family:KelvanSerif,serif;font-size:clamp(52px,7vw,106px);line-height:.92;letter-spacing:-.055em;font-weight:400;margin:0}.about h2 em{color:#adb59a;font-weight:400}.about-copy{max-width:650px}.about-copy>p{font-family:KelvanSerif,serif;font-size:clamp(24px,3vw,43px);line-height:1.16;margin:0 0 60px}.about-details{display:grid;grid-template-columns:1fr 1fr;gap:40px;border-top:1px solid #ffffff32;padding-top:18px;color:#b9bcb2;font-size:11px;line-height:1.8}.site-footer{padding:26px clamp(22px,4vw,64px);display:flex;justify-content:space-between;background:var(--ink);color:#aeb1a8;border-top:1px solid #ffffff2b}.reveal{opacity:0;transform:translateY(32px);transition:opacity 1s var(--ease),transform 1.2s var(--ease)}.reveal.is-visible{opacity:1;transform:none}
@media(max-width:800px){.topbar{height:74px}.topbar-nav a:first-child{display:none}.masthead{min-height:calc(100svh - 74px);padding-top:72px}.masthead-copy{grid-template-columns:1fr;align-content:end}.masthead-note{max-width:420px}.masthead-foot span:last-child{display:none}.projects{padding-top:75px}.projects-head{margin-bottom:36px}.project-grid{display:block}.project-card,.project-card:nth-child(n){padding-top:0;margin-bottom:62px}.project-card:nth-child(even){margin-left:12vw}.project-card:nth-child(odd){margin-right:5vw}.project-card:nth-child(n) .project-media{aspect-ratio:4/3}.project-info{grid-template-columns:32px 1fr}.project-status{grid-column:2}.about-grid{grid-template-columns:1fr;gap:55px}.about-details{grid-template-columns:1fr}.site-footer{gap:20px;flex-wrap:wrap}}
/* Aligned project pairs with captions over the photographs. */
.projects{padding-top:36px}.projects-head{margin-bottom:32px}@media(max-width:800px){.projects{padding-top:24px}}
.project-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:24px}.project-card:nth-child(n){position:relative;grid-column:auto;padding:0;margin:0;min-width:0;isolation:isolate;overflow:hidden}.project-card:nth-child(n) .project-media{aspect-ratio:4/3}.project-media img{filter:saturate(.9)}.project-overlay{background:linear-gradient(180deg,rgba(10,15,11,.12) 15%,rgba(10,15,11,.18) 40%,rgba(10,15,11,.85) 100%);opacity:1}.project-card:hover .project-overlay,.project-card:focus-visible .project-overlay{opacity:1}.project-info{position:absolute;bottom:0;left:0;right:0;z-index:2;display:grid;grid-template-columns:1fr auto;align-items:end;gap:16px;padding:clamp(20px,2.7vw,42px);margin:0;border:0;color:#fff;pointer-events:none}.project-info>div{min-width:0}.project-number{position:absolute;left:clamp(20px,2.7vw,42px);bottom:calc(100% - 14px);padding:0;color:#eceee3;opacity:.8;font-size:9px}.project-title{font-size:clamp(28px,3vw,48px);line-height:1.03;text-wrap:balance;text-shadow:0 1px 15px #0003}.project-meta{color:#e1e4d9;font-size:8px;letter-spacing:.1em;margin-top:14px}.project-status{grid-column:auto;padding:0 0 3px;align-self:end;font-size:8px;letter-spacing:.1em;text-align:right}.project-status span{display:block;margin:0 0 8px auto;font-size:24px;transition:transform .45s var(--ease)}.project-card:hover .project-status span,.project-card:focus-visible .project-status span{transform:translate(3px,-3px)}.project-card:focus-visible{outline:3px solid var(--ink);outline-offset:5px}.project-badge{background:#efede7df}.project-card:focus-visible .project-media img{transform:scale(1.025);filter:saturate(1)}
@media(max-width:800px){.project-grid{display:grid;gap:16px}.project-card:nth-child(n){padding:0;margin:0}.project-card:nth-child(n) .project-media{aspect-ratio:4/3}.project-info{padding:22px;gap:12px}.project-title{font-size:clamp(25px,3.6vw,34px)}.project-meta{font-size:7px;margin-top:10px}.project-number{left:22px}.project-status{font-size:7px}.project-badge{top:12px;right:12px;padding:8px 10px;font-size:7px}}
@media(max-width:580px){.project-grid{grid-template-columns:1fr;gap:18px}.project-title{font-size:34px}.project-info{padding:26px 22px}.project-meta{font-size:8px}.project-status{font-size:8px}.project-number{bottom:calc(100% - 16px)}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.reveal{opacity:1;transform:none}.project-media img,.project-status span{transition:none}}
