@import url('https://fonts.googleapis.com/css2?family=Bricolage+Grotesque:opsz,wdth,wght@12..96,75..100,400..700&family=IBM+Plex+Mono:wght@400;500&display=swap');

:root{--paper:#f0ebe2;--ink:#171918;--navy:#173b4a;--teal:#3e7270;--plum:#6b3f63;--rose:#b56478;--timber:#a66c3f;--coral:#e06451;--rule:rgba(23,25,24,.22);--sans:"Bricolage Grotesque",Arial,sans-serif;--mono:"IBM Plex Mono",Consolas,monospace}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--paper);color:var(--ink);font:16px/1.5 var(--sans)}img{display:block;width:100%}button,a{font:inherit}a{color:inherit}.skip-link{position:fixed;left:1rem;top:-5rem;background:var(--ink);color:#fff;padding:.7rem 1rem;z-index:50}.skip-link:focus{top:1rem}.site-header{position:sticky;top:0;z-index:20;display:flex;align-items:center;justify-content:space-between;padding:1rem 3vw;background:rgba(240,235,226,.92);border-bottom:1px solid var(--rule);backdrop-filter:blur(12px)}.wordmark{font:700 1.55rem/1 var(--sans);text-decoration:none;letter-spacing:-.05em;text-transform:uppercase}.wordmark span{color:var(--coral);margin-left:.15em}.site-header nav{display:flex;gap:2rem}.site-header nav a{text-decoration:none;font:500 .72rem/1 var(--mono);text-transform:uppercase;letter-spacing:.1em}.site-header nav a:hover{color:var(--coral)}.menu-toggle{display:none;background:none;border:0}.hero{min-height:86vh;display:grid;grid-template-columns:minmax(280px,.85fr) minmax(400px,1.15fr);gap:5vw;padding:5vw 3vw 3vw;position:relative}.hero-copy{align-self:center;max-width:680px}.eyebrow{font:500 .7rem/1.4 var(--mono);text-transform:uppercase;letter-spacing:.12em}.hero h1{font:650 clamp(3.9rem,7.2vw,8rem)/.82 var(--sans);text-transform:uppercase;letter-spacing:-.075em;margin:2rem 0}.hero h1 em{display:inline-block;color:var(--plum);font-style:normal;font-weight:420;letter-spacing:-.055em}.lede{font-size:clamp(1.05rem,1.6vw,1.35rem);max-width:33rem}.text-link{display:inline-block;margin-top:1.5rem;font-family:var(--mono);font-size:.78rem;text-transform:uppercase;letter-spacing:.07em;text-underline-offset:.35em}.hero-art{margin:0;align-self:start}.hero-art img{height:68vh;object-fit:cover}.hero-art figcaption{display:flex;justify-content:space-between;padding:.7rem 0;font:400 .7rem/1.4 var(--mono);text-transform:uppercase;letter-spacing:.07em}.private-flag{position:absolute;right:3vw;bottom:1rem;color:var(--plum);font:400 .67rem/1.4 var(--mono);text-transform:uppercase;letter-spacing:.08em}.intro-strip{display:grid;grid-template-columns:repeat(4,1fr);background:var(--navy);color:#fff}.intro-strip p{margin:0;padding:1rem 3vw;border-right:1px solid rgba(255,255,255,.2);font:500 .78rem/1.4 var(--mono);text-transform:uppercase;letter-spacing:.08em}.section{padding:8rem 3vw;border-top:1px solid var(--rule)}.section-heading{display:grid;grid-template-columns:1fr 2fr 1fr;align-items:end;gap:2rem;margin-bottom:3rem}.section-heading h2,.about h2,.contact h2{font:600 clamp(2.8rem,5.4vw,6.2rem)/.9 var(--sans);letter-spacing:-.06em;margin:0;text-transform:uppercase}.section-heading>p:last-child{max-width:24rem}.filters{display:flex;gap:.5rem;flex-wrap:wrap;margin-bottom:2rem}.filter{border:1px solid var(--ink);border-radius:0;padding:.55rem 1rem;background:transparent;cursor:pointer;font:500 .69rem/1 var(--mono);text-transform:uppercase;letter-spacing:.06em}.filter.active,.filter:hover{background:var(--ink);color:var(--paper)}.gallery-grid{display:grid;grid-template-columns:repeat(12,1fr);gap:1.2rem}.work{grid-column:span 4}.work.wide{grid-column:span 8}.work.tall img{aspect-ratio:3/4}.work button{padding:0;border:0;background:none;text-align:left;width:100%;cursor:zoom-in}.work img{aspect-ratio:4/3;object-fit:cover;background:#d8d0c5;transition:filter .25s,transform .25s}.work button:hover img{filter:saturate(1.12);transform:translateY(-4px)}.work-meta{display:grid;gap:.25rem;padding:.8rem 0 2rem;border-top:1px solid var(--ink)}.work-meta b{font-weight:600;letter-spacing:-.015em}.work-meta small{font-family:var(--mono);font-size:.68rem;text-transform:uppercase;letter-spacing:.04em;opacity:.67}.work[hidden]{display:none}.about{display:grid;grid-template-columns:.7fr 1.5fr .8fr;gap:4vw;background:var(--navy);color:#fff}.about-mark{font:700 clamp(5rem,13vw,13rem)/.7 var(--sans);color:var(--coral);letter-spacing:-.1em;writing-mode:vertical-rl}.about-copy p{font-size:1.1rem;max-width:46rem}.about blockquote{align-self:end;margin:0;font:500 clamp(1.8rem,3.6vw,4rem)/.95 var(--sans);text-transform:uppercase;letter-spacing:-.05em;color:#c9dedb}.approval-note{border-left:3px solid var(--coral);padding-left:1rem;font-family:var(--mono);font-size:.72rem!important;opacity:.75}.news-list{border-top:1px solid var(--ink)}.news-list article{display:grid;grid-template-columns:1fr 2fr 2fr;gap:2rem;padding:2rem 0;border-bottom:1px solid var(--ink)}.news-list h3,.news-list p{margin:0}.news-list h3{font:600 1.75rem/1 var(--sans);letter-spacing:-.035em}.news-list time{font:400 .7rem/1.4 var(--mono);text-transform:uppercase;letter-spacing:.08em}.contact{background:var(--rose);min-height:70vh;display:flex;flex-direction:column;justify-content:center;align-items:flex-start}.contact h2{font-size:clamp(4.3rem,10.5vw,10.5rem);color:var(--paper)}.contact>p:not(.eyebrow){max-width:42rem;font-size:1.2rem}.contact-placeholder{border:1px solid var(--ink);background:transparent;padding:1rem 1.4rem;margin-top:1rem;opacity:.65;font:500 .72rem/1 var(--mono);text-transform:uppercase;letter-spacing:.06em}footer{display:flex;align-items:center;justify-content:space-between;padding:2rem 3vw;background:var(--ink);color:var(--paper)}footer p,footer a:last-child{font:400 .67rem/1.4 var(--mono);text-transform:uppercase;letter-spacing:.08em}.lightbox{width:min(1080px,92vw);max-height:92vh;border:0;padding:0;background:var(--paper);color:var(--ink);box-shadow:0 20px 80px rgba(0,0,0,.4)}.lightbox::backdrop{background:rgba(10,15,17,.82)}.lightbox[open]{display:grid;grid-template-columns:1.3fr .7fr}.lightbox img{height:88vh;object-fit:contain;background:#101414}.lightbox>div{padding:5rem 2rem 2rem}.lightbox h2{font:600 2.8rem/1 var(--sans);text-transform:uppercase;letter-spacing:-.05em}.lightbox-close{position:absolute;right:1rem;top:1rem;border:0;background:var(--ink);color:#fff;width:2.5rem;height:2.5rem;border-radius:0;font-size:1.5rem;cursor:pointer}
.site-header nav a.active{color:var(--coral)}.page-head{min-height:58vh;padding:9vw 3vw 5vw;display:grid;grid-template-columns:1fr 2fr 1fr;gap:3vw;align-items:end;border-bottom:1px solid var(--rule)}.page-head h1{font:650 clamp(4rem,9vw,10rem)/.82 var(--sans);letter-spacing:-.075em;text-transform:uppercase;margin:0}.page-head>p:last-child{max-width:30rem}.page-head-dark{background:var(--navy);color:#fff}.gallery-page{padding-top:3rem}.feature-grid{display:grid;grid-template-columns:repeat(12,1fr);gap:1.2rem}.feature-grid a{grid-column:span 3;text-decoration:none}.feature-grid img{aspect-ratio:4/5;object-fit:cover}.feature-grid span{display:grid;gap:.2rem;padding:.75rem 0;border-top:1px solid var(--ink)}.feature-grid small{font:400 .67rem/1.4 var(--mono);text-transform:uppercase}.home-about{display:grid;grid-template-columns:1fr 2fr 1fr;gap:3vw;background:var(--navy);color:#fff;align-items:start}.home-about h2{font:600 clamp(3rem,6vw,7rem)/.9 var(--sans);text-transform:uppercase;letter-spacing:-.06em;margin:0}.home-about>div p{font-size:1.15rem}.home-about .text-link{color:#c9dedb}.home-news{padding-bottom:5rem}.page-cta{min-height:55vh;padding:7vw 3vw;display:flex;flex-direction:column;justify-content:center;align-items:flex-start;background:var(--rose)}.page-cta h2{font:600 clamp(4rem,10vw,11rem)/.82 var(--sans);text-transform:uppercase;letter-spacing:-.07em;color:var(--paper);margin:1rem 0}.page-cta>a{font-family:var(--mono);text-transform:uppercase}.about-page{display:grid;grid-template-columns:.7fr 1.5fr .8fr;gap:4vw}.about-page .about-mark{color:var(--coral)}.about-lede{font-size:1.8rem!important;line-height:1.15}.about-page blockquote{font:500 clamp(2rem,4vw,4.5rem)/.95 var(--sans);text-transform:uppercase;letter-spacing:-.05em;margin:4rem 0}.about-page aside{border-left:1px solid var(--rule);padding-left:2rem}.about-page dl{margin-top:2rem}.about-page dt{font:500 .68rem/1.4 var(--mono);text-transform:uppercase}.about-page dd{margin:0 0 1.5rem}.year-rule{border-top:1px solid var(--ink);padding-top:1rem;font:500 4rem/1 var(--sans)}.news-archive article{grid-template-columns:.7fr 1.5fr 2fr}.archive-note{font-family:var(--mono);font-size:.72rem;text-transform:uppercase;margin-top:3rem}.contact-page{min-height:calc(100vh - 64px);padding:8vw 3vw;background:var(--rose)}.contact-page h1{font:650 clamp(5rem,12vw,13rem)/.8 var(--sans);text-transform:uppercase;letter-spacing:-.08em;color:var(--paper);margin:2rem 0 5rem}.contact-grid{display:grid;grid-template-columns:1.4fr .6fr;gap:8vw}.contact-grid>div{max-width:48rem}.contact-lede{font-size:1.7rem;line-height:1.2}.contact-grid aside{border-left:1px solid var(--ink);padding-left:2rem}.contact-grid ul{list-style:none;padding:0}.contact-grid li{padding:.7rem 0;border-bottom:1px solid var(--ink)}
@media(max-width:800px){.site-header{padding:1rem}.menu-toggle{display:block}.site-header nav{display:none;position:absolute;top:100%;left:0;right:0;padding:1rem;background:var(--paper);border-bottom:1px solid var(--rule);flex-direction:column}.site-header nav.open{display:flex}.hero{grid-template-columns:1fr;padding:4rem 1rem 3rem}.hero h1{font-size:clamp(4rem,18vw,7rem)}.hero-art img{height:55vh}.private-flag{position:static;grid-column:1}.intro-strip{grid-template-columns:1fr 1fr}.section{padding:5rem 1rem}.section-heading,.page-head,.home-about{grid-template-columns:1fr}.page-head{padding:6rem 1rem 3rem;min-height:auto}.page-head h1{font-size:16vw}.gallery-grid{gap:.8rem}.work,.work.wide{grid-column:span 12}.feature-grid a{grid-column:span 6}.about,.about-page{grid-template-columns:1fr}.about-mark{writing-mode:horizontal-tb}.about-page aside{border-left:0;border-top:1px solid var(--rule);padding:2rem 0 0}.news-list article,.news-archive article{grid-template-columns:1fr;gap:.6rem}.contact h2{font-size:22vw}.contact-page{padding:6rem 1rem}.contact-page h1{font-size:20vw}.contact-grid{grid-template-columns:1fr}.contact-grid aside{border-left:0;border-top:1px solid var(--ink);padding:2rem 0 0}.page-cta{padding:5rem 1rem}footer{align-items:flex-start;gap:1rem;flex-direction:column}.lightbox[open]{display:block}.lightbox img{height:55vh}.lightbox>div{padding:1.5rem}}
.cms-image-placeholder{display:grid;place-items:center;height:68vh;padding:2rem;background:#d8d0c5;border:1px dashed var(--ink);font:500 .78rem/1.4 var(--mono);text-align:center;text-transform:uppercase;letter-spacing:.08em}
[data-cms-field="about.image_1"]{display:grid;place-items:center;min-height:24rem;padding:2rem;background:#d8d0c5;border:1px dashed var(--ink);color:var(--ink)!important;font:500 .78rem/1.4 var(--mono);text-align:center;text-transform:uppercase;letter-spacing:.08em;writing-mode:horizontal-tb}
.cms-image-loaded{background-position:center;background-size:cover;border-style:solid!important}
@media(max-width:800px){.cms-image-placeholder{height:55vh}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.work img{transition:none}}
.year-nav{position:sticky;top:64px;z-index:10;display:flex;justify-content:center;gap:0;background:var(--ink);color:var(--paper);border-bottom:1px solid rgba(255,255,255,.18)}.year-nav a{padding:.85rem 2rem;text-decoration:none;font:500 .72rem/1 var(--mono);letter-spacing:.1em}.year-nav a:hover{background:var(--coral)}.filter-groups{display:grid;grid-template-columns:1fr 1fr;gap:3rem;margin-bottom:5rem}.year-filter{border:1px solid var(--ink);border-radius:0;padding:.55rem 1rem;background:transparent;cursor:pointer;font:500 .69rem/1 var(--mono);text-transform:uppercase;letter-spacing:.06em}.year-filter.active,.year-filter:hover{background:var(--ink);color:var(--paper)}.year-group{scroll-margin-top:8rem;margin-bottom:8rem}.year-heading{display:grid;grid-template-columns:1fr 2fr;gap:3rem;align-items:end;padding-top:1rem;margin-bottom:2rem;border-top:2px solid var(--ink)}.year-heading span{font:650 clamp(4rem,9vw,9rem)/.8 var(--sans);letter-spacing:-.08em}.year-heading p{max-width:34rem;margin:0 0 .5rem}.year-group[hidden]{display:none}
@media(max-width:800px){.year-nav{top:57px;overflow-x:auto;justify-content:flex-start}.year-nav a{padding:.8rem 1.1rem}.filter-groups,.year-heading{grid-template-columns:1fr;gap:1rem}.year-group{margin-bottom:5rem}.year-heading span{font-size:22vw}}

/* Monochrome gallery frame: keep the interface quiet so the artwork carries the colour. */
:root{--paper:#fff;--ink:#111;--navy:#fff;--teal:#111;--plum:#111;--rose:#fff;--timber:#111;--coral:#111;--rule:rgba(17,17,17,.2)}
.site-header{background:rgba(255,255,255,.94)}
.wordmark span,.hero h1 em,.private-flag,.about-mark,.about-page .about-mark{color:var(--ink)}
.site-header nav a:hover,.site-header nav a.active{color:var(--ink);text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:.45em}
.intro-strip{background:var(--paper);color:var(--ink);border-top:1px solid var(--ink);border-bottom:1px solid var(--ink)}
.intro-strip p{border-right-color:var(--rule)}
.page-head-dark,.about,.home-about{background:var(--paper);color:var(--ink)}
.about blockquote,.home-about .text-link{color:var(--ink)}
.approval-note{border-left-color:var(--ink)}
.contact,.page-cta,.contact-page{background:var(--paper);color:var(--ink)}
.contact h2,.page-cta h2,.contact-page h1{color:var(--ink)}
footer{background:var(--paper);color:var(--ink);border-top:1px solid var(--ink)}
.year-nav{background:var(--paper);color:var(--ink);border-top:1px solid var(--ink);border-bottom-color:var(--ink)}
.year-nav a:hover{background:var(--ink);color:var(--paper)}
.work img{background:#f4f4f4}
.lightbox img{background:#f4f4f4}
.purchase-row{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.85rem 0 2rem;border-top:1px solid var(--ink);font:600 .86rem/1 var(--mono)}
.purchase-row small{font-size:.62rem;font-weight:400;letter-spacing:.08em}
.work .buy-button{border:1px solid var(--ink);background:var(--ink);color:var(--paper);padding:.7rem 1rem;cursor:pointer;font:500 .68rem/1 var(--mono);text-transform:uppercase;letter-spacing:.06em}
.work .buy-button:hover,.work .buy-button:focus-visible{background:var(--paper);color:var(--ink)}
.gallery-grid .work,.gallery-grid .work.wide{grid-column:span 4}
.gallery-grid .work img,.gallery-grid .work.tall img{aspect-ratio:4/3;object-fit:cover}
.checkout-demo{width:min(920px,92vw);max-height:92vh;border:0;padding:0;background:var(--paper);color:var(--ink);box-shadow:0 20px 80px rgba(0,0,0,.35)}
.checkout-demo::backdrop{background:rgba(0,0,0,.72)}
.checkout-demo[open]{display:grid;grid-template-columns:1fr 1fr}
.checkout-summary,.checkout-panel{padding:clamp(2rem,5vw,5rem)}
.checkout-summary{display:flex;flex-direction:column;background:#f4f4f4}
.checkout-brand{margin:0 0 auto;font:700 1.3rem/1 var(--sans);text-transform:uppercase;letter-spacing:-.04em}
.checkout-summary h2{font:600 clamp(2.2rem,4vw,4.6rem)/.9 var(--sans);letter-spacing:-.055em;text-transform:uppercase;margin:1.2rem 0}
.checkout-price{font:500 1.2rem/1 var(--mono)}
.checkout-note{margin-top:auto;font-size:.82rem;max-width:26rem}
.checkout-panel{display:flex;flex-direction:column;justify-content:center;gap:1rem}
.stripe-mark{margin:0 0 1.5rem;font:700 2rem/1 var(--sans);letter-spacing:-.05em}.stripe-mark span{font:500 .62rem/1 var(--mono);letter-spacing:.08em;text-transform:uppercase}
.demo-field{display:grid;gap:.45rem;border:1px solid var(--ink);padding:1rem;font:400 .8rem/1.4 var(--mono)}
.demo-field small{text-transform:uppercase;letter-spacing:.08em;opacity:.65}
.demo-pay{border:1px solid var(--ink);background:var(--ink);color:var(--paper);padding:1rem;cursor:pointer;font:500 .72rem/1 var(--mono);text-transform:uppercase;letter-spacing:.06em}
.checkout-secure{margin:0;text-align:center;font:400 .62rem/1.4 var(--mono);text-transform:uppercase;letter-spacing:.05em;opacity:.65}
.checkout-close{position:absolute;right:1rem;top:1rem;z-index:2;border:1px solid var(--ink);background:var(--paper);color:var(--ink);width:2.5rem;height:2.5rem;font-size:1.5rem;cursor:pointer}
@media(max-width:800px){.gallery-grid .work,.gallery-grid .work.wide{grid-column:span 12}.checkout-demo[open]{display:block}.checkout-summary,.checkout-panel{padding:2rem}.checkout-summary{min-height:36vh}.checkout-brand{margin-bottom:4rem}}
