@font-face {
  font-family:"DM Serif Display";
  src:url("../fonts/dm-serif-display-regular-latin.woff2") format("woff2");
  font-style:normal;
  font-weight:400;
  font-display:swap;
}
@font-face {
  font-family:"Manrope";
  src:url("../fonts/manrope-latin.woff2") format("woff2");
  font-style:normal;
  font-weight:500 700;
  font-display:swap;
}

:root {
  --forest:#173b34;
  --forest-deep:#0d2b26;
  --forest-soft:#31564e;
  --ivory:#f6f1e8;
  --paper:#fbfaf6;
  --clay:#b85f3e;
  --aitana:#3aaea5;
  --ink:#18231f;
  --muted:#637069;
  --line:rgba(23,59,52,.2);
  --white-line:rgba(246,241,232,.2);
  --display:"DM Serif Display",Georgia,serif;
  --sans:"Manrope","Segoe UI",Arial,sans-serif;
  --header-height:76px;
  --page:min(1180px,calc(100vw - 48px));
}

* { box-sizing:border-box; }
html { min-height:100%; overflow-x:hidden; scroll-behavior:auto; background:var(--forest-deep); }
html.is-paging { scroll-behavior:auto; scroll-snap-type:none; }
body { min-height:100%; margin:0; overflow-x:hidden; padding-inline:env(safe-area-inset-left) env(safe-area-inset-right); background:var(--paper); color:var(--ink); font:500 1rem/1.62 var(--sans); -webkit-font-smoothing:antialiased; text-rendering:optimizeLegibility; }
body.menu-open { overflow:hidden; }
img { display:block; width:100%; max-width:100%; }
h1,h2,p,a,dd,dt,span { overflow-wrap:anywhere; }
a { color:inherit; }
button { font:inherit; }
::selection { background:var(--clay); color:var(--ivory); }
:focus-visible { outline:3px solid #d98b70; outline-offset:3px; }

.skip-link { position:fixed; z-index:1000; top:12px; left:12px; transform:translateY(-170%); padding:10px 14px; background:var(--paper); color:var(--forest); font-weight:700; }
.skip-link:focus { transform:translateY(0); }
.site-header { position:fixed; z-index:100; inset:0 0 auto; height:var(--header-height); padding-top:env(safe-area-inset-top); display:flex; align-items:center; color:var(--ivory); background:var(--forest); border-bottom:1px solid rgba(246,241,232,.13); }
.nav-shell { width:var(--page); margin:0 auto; display:flex; align-items:center; justify-content:space-between; gap:28px; }
.brand { display:flex; align-items:center; gap:10px; min-width:0; text-decoration:none; line-height:1; }
.brand-isotype { width:25px; height:31px; flex:0 0 auto; object-fit:contain; }
.brand-wordmark { width:181px; height:auto; }
.nav-links { display:flex; align-items:center; gap:30px; }
.nav-links a { text-decoration:none; font-size:.78rem; font-weight:700; letter-spacing:.07em; text-transform:uppercase; }
.nav-links a:not(.nav-cta) { color:rgba(246,241,232,.75); }
.nav-links a:hover,.nav-links a[aria-current="page"] { color:var(--ivory); }
.nav-cta { padding:11px 17px; border:1px solid rgba(246,241,232,.48); }
.nav-cta:hover { background:var(--ivory); color:var(--forest-deep); }
.menu-toggle { display:none; width:44px; height:44px; align-items:center; justify-content:center; border:1px solid var(--white-line); background:transparent; color:var(--ivory); cursor:pointer; }

main { overflow:visible; }
main > [data-scroll-stop] { height:auto; min-height:100svh; max-height:none; overflow:visible; }
.text-link { display:inline-flex; min-height:44px; align-items:center; color:var(--forest); text-decoration:none; font-size:.78rem; font-weight:700; letter-spacing:.09em; text-transform:uppercase; }
.text-link::after { content:" ↓"; margin-left:10px; color:var(--clay); }
.project-feature { display:grid; grid-template-columns:minmax(0,1.17fr) minmax(390px,.83fr); padding-top:var(--header-height); background:var(--paper); }
.project-image { position:relative; min-width:0; height:100%; overflow:hidden; background:var(--forest-soft); }
.project-image img { height:100%; object-fit:cover; transition:transform .75s cubic-bezier(.16,1,.3,1),filter .4s ease; }
.project-image:hover img { transform:scale(1.025); filter:saturate(1.06); }
.project-index { position:absolute; left:24px; bottom:18px; color:var(--ivory); font:400 3.2rem/1 var(--display); text-shadow:0 1px 14px rgba(0,0,0,.45); }
.project-copy { align-self:center; width:min(520px,calc(100% - 72px)); margin-inline:auto; padding:34px 0; }
.project-status { display:flex; flex-wrap:wrap; align-items:center; gap:6px 10px; margin:18px 0 0; color:var(--forest-soft); font-size:.78rem; font-weight:700; letter-spacing:.1em; text-transform:uppercase; }
.project-status .status-dot { width:9px; height:9px; flex:0 0 auto; border-radius:50%; background:var(--aitana); box-shadow:0 0 0 5px rgba(58,174,165,.12); }
.project-status .status-detail { flex-basis:calc(100% - 19px); margin-left:19px; color:var(--muted); font-size:.74rem; font-weight:600; letter-spacing:.03em; line-height:1.35; text-transform:none; }
.project-heading h1,.project-heading h2 { margin:0; color:var(--forest); font:400 clamp(3.4rem,5.4vw,5.4rem)/.9 var(--display); letter-spacing:-.035em; }
.project-location { margin:8px 0 0; color:var(--muted); }
.project-facts { display:grid; grid-template-columns:1fr 1fr; margin:34px 0 0; border-top:1px solid var(--line); }
.project-facts div { min-height:78px; padding:16px 14px 15px 0; border-bottom:1px solid var(--line); }
.project-facts div:nth-child(odd) { border-right:1px solid var(--line); }
.project-facts div:nth-child(even) { padding-left:18px; }
.project-facts div:nth-child(5) { grid-column:1 / -1; border-right:0; }
.project-facts dt { color:var(--muted); font-size:.73rem; font-weight:700; letter-spacing:.08em; text-transform:uppercase; }
.project-facts dd { margin:6px 0 0; color:var(--forest); font-size:1rem; font-weight:700; }
.project-note { max-width:460px; margin:18px 0 24px; color:var(--muted); font-size:.8rem; line-height:1.5; }
.button { display:inline-flex; min-height:50px; align-items:center; justify-content:center; gap:20px; padding:13px 20px; border:1px solid var(--forest); background:var(--forest); color:var(--ivory); text-decoration:none; font-size:.77rem; font-weight:700; letter-spacing:.09em; text-transform:uppercase; transition:background .25s ease,color .25s ease,border-color .25s ease; }
.button span { color:#d98b70; }
.button:hover { background:var(--forest-deep); border-color:var(--forest-deep); }

.portfolio-close { display:grid; grid-template-rows:1fr auto; padding-top:var(--header-height); color:var(--ivory); background:var(--forest); }
.close-inner { align-self:center; width:var(--page); margin:0 auto; display:grid; grid-template-columns:minmax(0,1.2fr) minmax(300px,.8fr); gap:clamp(54px,9vw,130px); align-items:end; }
.close-inner h2 { max-width:760px; margin:0; font:400 clamp(3.2rem,6.3vw,6rem)/.93 var(--display); letter-spacing:-.034em; }
.close-copy { position:relative; padding-top:24px; border-top:1px solid var(--white-line); }
.close-copy::before { content:""; position:absolute; top:-2px; left:0; width:84px; height:3px; background:var(--clay); }
.close-copy p { margin:0; color:rgba(246,241,232,.72); font-size:1.05rem; }
.close-actions { display:flex; flex-wrap:wrap; align-items:center; gap:22px; margin-top:28px; }
.button--light { border-color:var(--ivory); background:var(--ivory); color:var(--forest); }
.button--light:hover { border-color:var(--forest-deep); background:var(--forest-deep); color:var(--ivory); }
.nav-links .nav-cta:hover { color:var(--forest-deep); }
.text-link--light { color:rgba(246,241,232,.74); }
.text-link--light::after { content:" →"; }
.text-link--light:hover { color:var(--ivory); }
.site-footer { width:var(--page); margin:0 auto; padding:22px 0 max(22px,env(safe-area-inset-bottom)); display:flex; justify-content:space-between; gap:24px; border-top:1px solid var(--white-line); color:rgba(246,241,232,.58); font-size:.75rem; }

@media (max-width:900px) {
  :root { --page:min(100% - 36px,760px); }
  .nav-links { position:fixed; inset:var(--header-height) 0 auto; display:flex; max-height:calc(100dvh - var(--header-height)); overflow-y:auto; flex-direction:column; align-items:stretch; gap:0; padding:20px; background:var(--forest-deep); border-bottom:1px solid var(--white-line); }
  .js .nav-links { display:none; }
  .js .menu-open .nav-links { display:flex; }
  .nav-links a { padding:15px; border-bottom:1px solid var(--white-line); }
  .nav-links .nav-cta { margin-top:14px; text-align:center; }
  .js .menu-toggle { display:flex; }
  .project-feature { grid-template-columns:1fr 1fr; }
  .project-copy { width:calc(100% - 40px); }
  .project-heading h2 { font-size:clamp(3rem,7vw,4.5rem); }
}

@media (max-width:680px) {
  :root { --page:calc(100vw - 28px); --header-height:calc(68px + env(safe-area-inset-top)); }
  .site-header { height:var(--header-height); }
  .nav-shell { position:relative; gap:12px; padding-right:56px; }
  .brand-isotype { width:22px; height:28px; }
  .brand-wordmark { width:154px; }
  .js .menu-toggle { position:absolute; top:12px; right:0; display:flex; flex:0 0 44px; margin-left:auto; }
  .nav-links { top:var(--header-height); padding:16px max(14px,env(safe-area-inset-right)) max(20px,env(safe-area-inset-bottom)) max(14px,env(safe-area-inset-left)); }
  .project-feature { grid-template-columns:1fr; grid-template-rows:minmax(0,.43fr) minmax(0,.57fr); }
  .project-image { order:0; }
  .project-index { left:14px; bottom:10px; font-size:2.2rem; }
  .project-copy { width:var(--page); padding:17px 0 max(16px,env(safe-area-inset-bottom)); }
  .project-status { margin-top:10px; font-size:.72rem; }
  .project-heading h1,.project-heading h2 { font-size:clamp(2.8rem,13vw,3.65rem); }
  .project-location { margin-top:5px; font-size:.88rem; }
  .project-facts { margin-top:16px; }
  .project-facts div { min-height:62px; padding:9px 10px 8px 0; }
  .project-facts div:nth-child(even) { padding-left:12px; }
  .project-facts dt { font-size:.7rem; }
  .project-facts dd { margin-top:3px; font-size:.86rem; }
  .project-note { margin:10px 0 12px; font-size:.8rem; }
  .button { min-height:46px; padding:11px 16px; font-size:.71rem; }
  .close-inner { grid-template-columns:1fr; align-self:center; gap:30px; }
  .close-inner h2 { font-size:clamp(2.8rem,13vw,3.8rem); }
  .close-copy { padding-top:18px; }
  .close-copy p { font-size:.95rem; line-height:1.55; }
  .close-actions { display:grid; justify-items:start; gap:12px; margin-top:20px; }
  .site-footer { padding-block:14px max(14px,env(safe-area-inset-bottom)); flex-direction:column; gap:4px; font-size:.68rem; }
}

@media (max-width:680px) and (max-height:720px) {
  .project-feature { grid-template-rows:minmax(0,.34fr) minmax(0,.66fr); }
  .project-heading h1,.project-heading h2 { font-size:2.6rem; }
  .project-facts { margin-top:10px; }
  .project-facts div { min-height:54px; padding-block:6px; }
  .project-note { margin-block:7px; }
  .close-inner { gap:18px; }
  .close-inner h2 { font-size:2.7rem; }
  .close-copy p { font-size:.86rem; }
}

@media (prefers-reduced-motion:reduce) {
  html { scroll-behavior:auto; }
  *,*::before,*::after { animation-duration:0s!important; transition-duration:0s!important; }
}
