:root {--bg: #f4f1ea;--paper: #fbfaf7;--ink: #17201a;--muted: #697068;--line: rgba(23, 32, 26, .15);--forest: #17271d;--moss: #84947e;--sand: #d8d0c2;--max: 1380px;--radius: 18px;--shadow: 0 18px 50px rgba(19, 29, 22, .10) }* {box-sizing: border-box }html {scroll-behavior: smooth }body {margin: 0;background: var(--bg);color: var(--ink);font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;line-height: 1.55 }body.lock {overflow: hidden }a {color: inherit }.skip {position: absolute;left: -9999px }.skip:focus {left: 1rem;top: 1rem;background: #fff;padding: .7rem 1rem;z-index: 100 }img {max-width: 100%;display: block }button {font: inherit }.wrap {width: min(var(--max), calc(100% - 48px));margin-inline: auto }.site-header {position: sticky;top: 0;z-index: 50;background: rgb(244 241 234/ .92);backdrop-filter: blur(14px);border-bottom: 1px solid var(--line) }.header-inner {height: 84px;display: flex;align-items: center;gap: 32px }.brand {margin-right: auto;text-decoration: none;display: grid;line-height: 1.05 }.brand strong {font-family: Georgia, serif;font-size: 1.1rem }.brand span {font-size: .72rem;letter-spacing: .12em;text-transform: uppercase;color: var(--muted);margin-top: .35rem }.nav {display: flex;gap: 1.35rem;align-items: center }.nav a {text-decoration: none;font-size: .9rem }.nav a:hover, .nav a[aria-current="page"] {text-decoration: underline;text-underline-offset: 5px }.menu {display: none;border: 0;background: none;padding: .5rem;font-size: 1rem }.hero {min-height: 78vh;display: grid;place-items: end start;position: relative;background: #111;overflow: hidden }.hero img {position: absolute;inset: 0;width: 100%;height: 100%;object-fit: cover;filter: saturate(.88) }.hero:after {content: "";position: absolute;inset: 0;background: linear-gradient(90deg, rgb(7 12 8/ .74) 0%, rgb(7 12 8/ .24) 58%, rgb(7 12 8/ .08)), linear-gradient(0deg, rgb(7 12 8/ .45), transparent 48%) }.hero-copy {position: relative;z-index: 2;color: #fff;width: min(760px, calc(100% - 48px));margin: 0 0 clamp(42px, 8vw, 95px) max(24px, calc(( 100vw - min(var(--max), calc(100vw - 48px)))/2)) }.kicker {font-size: .72rem;letter-spacing: .16em;text-transform: uppercase;font-weight: 700 }.hero h1, .page-hero h1, .section-title, .legal h1 {font-family: Georgia, "Times New Roman", serif;font-weight: 400;letter-spacing: -.035em }.hero h1 {font-size: clamp(3.3rem, 8vw, 7.5rem);line-height: .91;margin: .35rem 0 1.25rem }.hero p {font-size: clamp(1rem, 2vw, 1.25rem);max-width: 620px }.hero-cta {display: inline-block;margin-top: 1.2rem;border-bottom: 1px solid currentColor;text-decoration: none;padding-bottom: .3rem }.section {padding: clamp(70px, 9vw, 120px) 0 }.section-head {display: grid;grid-template-columns: 1.1fr .9fr;gap: 40px;align-items: end;margin-bottom: 38px }.section-title {font-size: clamp(2.5rem, 5vw, 5rem);line-height: .98;margin: .3rem 0 }.lede {color: var(--muted);font-size: 1.02rem;max-width: 640px }.filterbar {display: flex;flex-wrap: wrap;gap: .5rem;margin: 0 0 30px }.filterbar button {border: 1px solid var(--line);background: #fff0;border-radius: 999px;padding: .6rem .95rem;cursor: pointer }.filterbar button.active {background: var(--ink);color: #fff;border-color: var(--ink) }.grid {display: grid;grid-template-columns: repeat(12, minmax(0, 1fr));gap: 14px }.card {grid-column: span 3;aspect-ratio: 3/2;position: relative;overflow: hidden;background: #ddd;border-radius: var(--radius) }.card button, .open-photo {display: block;width: 100%;height: 100%;padding: 0;border: 0;background: none;cursor: zoom-in;text-align: left }.card img, .open-photo img {display: block;width: 100%;height: 100%;object-fit: cover;object-position: center;transition: transform .55s ease }.card:hover img {transform: scale(1.025) }.card:after {content: "";pointer-events: none;position: absolute;inset: 0;background: linear-gradient(0deg, rgb(5 8 6/ .65), transparent 52%) }.meta {position: absolute;z-index: 2;left: 22px;right: 22px;bottom: 18px;color: #fff;text-align: left }.meta strong {display: block;font-size: 1.04rem }.meta span {font-size: .78rem;opacity: .82 }.dark {background: var(--forest);color: #f7f4ed }.dark .lede {color: #c9d0c9 }.theme-grid, .season-grid {display: grid;grid-template-columns: repeat(3, 1fr);gap: 14px }.theme-card, .season-card {min-height: 290px;border-radius: var(--radius);padding: 28px;text-decoration: none;display: flex;flex-direction: column;justify-content: space-between;transition: .25s }.theme-card:hover, .season-card:hover {transform: translateY(-2px);box-shadow: var(--shadow) }.theme-card h3, .season-card h3 {font-family: Georgia, serif;font-size: 2.4rem;font-weight: 400;margin: 0 }.theme-card p, .season-card p {max-width: 32ch }.theme-card b, .season-card b {font-size: 1.6rem;font-weight: 400 }.theme-card strong, .season-card strong {font-family: Georgia, serif;font-size: 2rem;font-weight: 400 }.theme-card {background: rgb(255 255 255/ .02);border: 1px solid rgb(255 255 255/ .2) }.theme-card:hover {background: rgb(255 255 255/ .05) }.theme-card p, .theme-card small {color: #cbd2cb }.season-card {background: var(--paper);border: 1px solid var(--line) }.season-card:hover {background: rgb(23 32 26/ .04) }.season-card p, .season-card small {color: var(--muted) }.project {display: grid;grid-template-columns: 1.05fr .95fr;min-height: 660px }.project-img {min-height: 560px }.project-img img {width: 100%;height: 100%;object-fit: cover }.project-copy {padding: clamp(50px, 7vw, 100px);display: flex;justify-content: center;flex-direction: column;background: var(--paper) }.project-copy h2 {font-family: Georgia, serif;font-weight: 400;font-size: clamp(2.5rem, 5vw, 4.7rem);line-height: 1;margin: .5rem 0 1.5rem }.project-copy p {max-width: 60ch;color: var(--muted) }.page-hero {padding: clamp(80px, 10vw, 150px) 0 55px }.page-hero h1 {font-size: clamp(3.4rem, 8vw, 7rem);line-height: .95;margin: .3rem 0 1rem }.page-hero .lede {font-size: 1.15rem }.gallery-count {font-size: .8rem;color: var(--muted);margin-top: 1rem }.gallery-section {padding: 0 0 110px }.footer {border-top: 1px solid var(--line);padding: 34px 0 44px }.footer-inner {display: flex;gap: 28px;align-items: flex-end }.footer-brand {margin-right: auto;display: grid }.footer-brand strong {font-family: Georgia, serif }.footer-brand span {font-size: .8rem;color: var(--muted) }.footer-links {display: flex;gap: 1rem;flex-wrap: wrap }.footer-links a {font-size: .82rem;color: var(--muted) }.lightbox {position: fixed;inset: 0;background: rgb(5 8 6/ .95);z-index: 100;display: none;align-items: center;justify-content: center;padding: 70px 24px 32px }.lightbox.open {display: flex }.lightbox figure {margin: 0;max-width: min(1200px, 92vw);max-height: 86vh;display: grid;gap: 12px }.lightbox img {max-height: 75vh;max-width: 100%;width: auto;height: auto;object-fit: contain;margin: auto }.lightbox figcaption {color: #fff;text-align: center }.lb-close, .lb-prev, .lb-next, .lb-fullscreen {position: fixed;border: 0;background: rgb(255 255 255/ .1);color: #fff;width: 46px;height: 46px;border-radius: 50%;cursor: pointer;z-index: 110;transition: background .2s ease, transform .2s ease }.lb-close:hover, .lb-prev:hover, .lb-next:hover, .lb-fullscreen:hover {background: rgb(255 255 255/ .2);transform: scale(1.06) }.lb-close {right: 22px;top: 20px;font-size: 1.4rem }.lb-fullscreen {right: 78px;top: 20px;font-size: 1.4rem;line-height: 1 }.lb-prev {left: 24px;top: 50% }.lb-next {right: 24px;top: 50% }.lightbox:fullscreen {width: 100vw;height: 100vh;padding: 0;background: #000;display: flex;align-items: center;justify-content: center }.lightbox:fullscreen figure {width: 100vw;height: 100vh;max-width: none;max-height: none;margin: 0;padding: 20px 70px 55px;display: flex;flex-direction: column;align-items: center;justify-content: center;gap: 12px }.lightbox:fullscreen img {display: block;width: auto;height: auto;max-width: 100%;max-height: calc(100vh - 100px);object-fit: contain;margin: auto }.lightbox:fullscreen figcaption {flex: 0 0 auto;color: #fff;text-align: center }.lightbox:-webkit-full-screen {width: 100vw;height: 100vh;padding: 0;background: #000;display: flex;align-items: center;justify-content: center }.lightbox:-webkit-full-screen figure {width: 100vw;height: 100vh;max-width: none;max-height: none;margin: 0;padding: 20px 70px 55px;display: flex;flex-direction: column;align-items: center;justify-content: center;gap: 12px }.lightbox:-webkit-full-screen img {display: block;width: auto;height: auto;max-width: 100%;max-height: calc(100vh - 100px);object-fit: contain;margin: auto }.lightbox:-webkit-full-screen figcaption {flex: 0 0 auto;color: #fff;text-align: center }.legal {padding: 70px 0 110px;max-width: 900px }.legal h1 {font-size: clamp(3rem, 7vw, 5.8rem);margin: .2rem 0 2rem }.legal h2 {font-family: Georgia, serif;font-weight: 400;font-size: 2rem;margin-top: 2.7rem }.legal h3 {margin-top: 2rem }.legal p, .legal li {color: #4f5850 }.legal a {text-decoration: underline }.note {background: #efeae0;border-left: 3px solid var(--moss);padding: 18px 20px;margin: 24px 0 }@media ( max-width :980px) {.nav {display: none;position: absolute;left: 0;right: 0;top: 84px;background: var(--paper);padding: 22px 24px;border-bottom: 1px solid var(--line);flex-direction: column;align-items: flex-start }.nav.open {display: flex }.menu {display: block }.section-head, .project {grid-template-columns: 1fr }.grid {grid-template-columns: repeat(2, minmax(0, 1fr)) }.card {grid-column: auto;aspect-ratio: 3/2 }.theme-grid, .season-grid {grid-template-columns: repeat(2, 1fr) }.project-copy {padding: 55px 24px }.project-img {min-height: 480px }}@media ( max-width :640px) {.wrap {width: min(var(--max), calc(100% - 28px)) }.header-inner {height: 72px }.nav {top: 72px }.brand strong {font-size: 1rem }.hero {min-height: 72vh }.hero-copy {width: calc(100% - 28px);margin-left: 14px;margin-bottom: 42px }.hero h1 {font-size: 3.5rem }.section {padding: 65px 0 }.section-head {gap: 14px }.grid {grid-template-columns: 1fr }.card {grid-column: auto;aspect-ratio: 3/2 }.theme-grid, .season-grid {grid-template-columns: 1fr }.theme-card, .season-card {min-height: 180px }.footer-inner {display: grid }.footer-links {margin-top: 10px }.lb-prev, .lb-next {top: auto;bottom: 20px }.lb-prev {left: 25% }.lb-next {right: 25% }}@media ( prefers-reduced-motion :reduce) {* {scroll-behavior: auto !important;transition: none !important }}