/* The Open Table — isolated editorial direction for KJ. No production selectors. */
@font-face{font-family:"Instrument Serif";src:url("/assets/fonts/instrument-serif-latin.woff2") format("woff2");font-style:normal;font-weight:400;font-display:swap}
@font-face{font-family:"Instrument Serif";src:url("/assets/fonts/instrument-serif-italic-latin.woff2") format("woff2");font-style:italic;font-weight:400;font-display:swap}
@font-face{font-family:"DM Sans";src:url("/assets/fonts/dm-sans-latin.woff2") format("woff2");font-style:normal;font-weight:400 700;font-display:swap}
:root{--night:#111012;--night-deep:#0c0b0d;--bone:#efe7da;--bone-deep:#e6dccc;--oxblood:#64262f;--oxblood-deep:#431c25;--brass:#c8ab77;--ink:#252025;--ink-muted:#57504b;--night-muted:#c4bbb0;--line-dark:rgba(239,231,218,.23);--line-light:rgba(37,32,37,.25);--serif:"Instrument Serif",Georgia,serif;--sans:"DM Sans",Arial,sans-serif;--gutter:clamp(1.25rem,5.1vw,6.7rem);--width:1600px}
*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--night);color:var(--bone);font:400 1rem/1.62 var(--sans);-webkit-font-smoothing:antialiased}
img{display:block;max-width:100%}figure,h1,h2,h3,p{margin:0}a{color:inherit;text-decoration:none}a:hover{color:var(--brass)}a:focus-visible,button:focus-visible{outline:3px solid var(--brass);outline-offset:5px}button{font:inherit}::selection{background:var(--brass);color:var(--night-deep)}
h1,h2,h3{font-family:var(--serif);font-weight:400;line-height:.94;letter-spacing:-.035em}h1 em,h2 em{font-weight:400}cite{font-style:italic}p{max-width:68ch}
.skip-link{position:fixed;z-index:1000;left:1rem;top:-6rem;padding:.75rem 1rem;background:var(--brass);color:var(--night);font-weight:700}.skip-link:focus{top:1rem;color:var(--night)}
.topline{display:flex;justify-content:space-between;gap:1.5rem;padding:.55rem var(--gutter);background:var(--oxblood);color:var(--bone);font-size:.65rem;line-height:1.4;font-weight:700;letter-spacing:.16em;text-transform:uppercase}
.site-header{position:relative;z-index:10;border-bottom:1px solid var(--line-dark);background:var(--night-deep)}
.header-inner{width:min(100%,var(--width));min-height:92px;margin:auto;padding:0 var(--gutter);display:flex;align-items:center;gap:clamp(1.3rem,3vw,3.5rem)}
.wordmark{display:block;flex:0 0 auto;color:var(--bone);font:400 clamp(2.05rem,2.65vw,3rem)/.88 var(--serif);letter-spacing:-.055em;white-space:nowrap}.wordmark i,.footer-brand i{font-weight:400}.wordmark small{display:block;margin-top:.5rem;color:var(--brass);font:600 .56rem/1.2 var(--sans);letter-spacing:.18em;text-transform:uppercase}
.site-header nav{display:flex;align-items:center;justify-content:center;gap:clamp(.75rem,1.35vw,1.7rem);margin-left:auto}.site-header nav a{display:flex;align-items:center;min-height:44px;border-bottom:1px solid transparent;color:var(--night-muted);font-size:.77rem;font-weight:600;white-space:nowrap}.site-header nav a[aria-current="page"],.site-header nav a:hover{border-bottom-color:var(--brass);color:var(--bone)}
.header-cta{flex:0 0 auto;display:inline-flex;align-items:center;gap:1rem;min-height:44px;border-bottom:1px solid var(--brass);color:var(--bone);font-size:.76rem;font-weight:700;white-space:nowrap}.header-cta span{color:var(--brass)}.nav-toggle{display:none}.nav-toggle[hidden]{display:none!important}
.eyebrow,.folio,.section-marker,.membership-overline{font-size:.65rem;line-height:1.45;font-weight:700;letter-spacing:.18em;text-transform:uppercase}.eyebrow{color:var(--brass)}
.underlink{display:inline-flex;align-items:center;gap:1rem;min-height:44px;border-bottom:1px solid currentColor;font-size:.79rem;font-weight:700;letter-spacing:.015em;line-height:1.4}.underlink span{font-family:var(--serif);font-size:1.3rem;line-height:1}.underlink--subtle{border-color:transparent;opacity:.75}.underlink--subtle:hover{border-color:currentColor;opacity:1}
.action{display:inline-flex;align-items:center;justify-content:space-between;gap:2.2rem;min-height:55px;padding:.85rem 1.15rem;text-decoration:none;font-size:.78rem;font-weight:700;letter-spacing:.01em;transition:background-color .18s ease,color .18s ease}.action span{font:1.35rem/1 var(--serif)}.action--bone{background:var(--bone);color:var(--night)}.action--bone:hover{background:var(--brass);color:var(--night)}.action--brass{background:var(--brass);color:var(--night)}.action--brass:hover{background:var(--bone);color:var(--night)}
/* A print-cover entrance: the person first, then the invitation. */
.hero{overflow:hidden;background:var(--night-deep)}.hero-inner{width:min(100%,var(--width));margin:auto;padding:clamp(2.1rem,3vw,4rem) var(--gutter) clamp(2.4rem,4vw,4.5rem);display:grid;grid-template-columns:minmax(0,1.09fr) minmax(0,.91fr);gap:clamp(2rem,5.6vw,7rem);align-items:stretch}.hero-copy{display:flex;flex-direction:column;min-width:0}.folio{display:flex;align-items:center;gap:.85rem;color:var(--brass)}.folio-rule{width:2.5rem;height:1px;background:var(--brass)}.hero h1{margin:clamp(1.75rem,3vw,3.5rem) 0 clamp(1.75rem,2.8vw,3rem);font-size:clamp(5rem,8.2vw,8.9rem);line-height:.84;letter-spacing:-.06em}.hero h1 em{display:block;margin-top:.13em;color:var(--brass);font-style:italic;line-height:.84}.hero-intro{max-width:550px;padding-top:clamp(1rem,2vw,2rem);border-top:1px solid var(--line-dark)}.hero-lede{max-width:48ch;color:var(--bone);font-size:clamp(.97rem,1.12vw,1.08rem);line-height:1.65}.hero-actions{display:flex;flex-wrap:wrap;align-items:center;gap:1rem 1.8rem;margin-top:1.65rem}.hero-actions .underlink{color:var(--bone)}.hero-actions .underlink:hover{color:var(--brass)}
.hero-photo{display:flex;flex-direction:column;min-width:0;align-self:start}.hero-photo img{width:100%;height:clamp(580px,56vw,800px);object-fit:cover;object-position:center 24%;background:#3a3030}.hero-photo figcaption{display:flex;justify-content:space-between;gap:1rem;padding:.82rem 0;border-bottom:1px solid var(--brass);color:var(--brass);font-size:.61rem;font-weight:700;letter-spacing:.15em;text-transform:uppercase}.hero-foot{width:min(100%,var(--width));margin:auto;padding:1rem var(--gutter) 1.35rem;border-top:1px solid var(--line-dark);display:flex;justify-content:space-between;gap:1rem;color:var(--night-muted);font-size:.65rem;letter-spacing:.12em;text-transform:uppercase}.hero-foot span span{color:var(--brass);margin-left:.6rem}
/* The voice on paper — no box or quotation mark masquerading as design. */
.letter{padding:clamp(5.7rem,10vw,11rem) var(--gutter) clamp(4.5rem,8vw,9rem);background:var(--bone);color:var(--ink)}.letter-inner{width:min(100%,1360px);margin:auto;display:grid;grid-template-columns:minmax(140px,.22fr) minmax(0,1fr);gap:clamp(2.5rem,5vw,6rem)}.section-marker{display:flex;align-items:flex-start;gap:.8rem;padding-top:1rem;color:var(--oxblood);white-space:nowrap}.marker-line{flex:0 0 1.7rem;height:1px;margin-top:.45rem;background:var(--oxblood)}.letter h2{max-width:17ch;font-size:clamp(3.8rem,7.3vw,8rem);line-height:.96}.letter h2 em{color:var(--oxblood)}.letter-columns{display:grid;grid-template-columns:1fr 1fr;gap:clamp(2rem,4vw,5.5rem);margin-top:clamp(3.5rem,6vw,6.3rem);padding-top:1.35rem;border-top:1px solid var(--line-light)}.letter-columns p{max-width:48ch;color:#514843;font-size:clamp(.98rem,1.12vw,1.08rem);line-height:1.75}.letter-note{width:min(100%,1360px);max-width:none;margin:clamp(4rem,7vw,7rem) auto 0;padding-top:1.2rem;border-top:1px solid var(--line-light);color:var(--oxblood);font-size:.72rem;font-weight:700;letter-spacing:.09em;text-transform:uppercase}
/* One photographic anchor, then a ruled service index: never tiles. */
.gather{background:#f3ece2;color:var(--ink)}.gather-head{width:min(100%,var(--width));margin:auto;padding:clamp(5rem,8vw,9rem) var(--gutter) clamp(3rem,5vw,5rem);display:grid;grid-template-columns:minmax(145px,.25fr) minmax(0,.9fr) minmax(220px,.45fr);align-items:end;gap:clamp(2rem,3vw,4rem)}.gather-head .eyebrow{align-self:start;color:var(--oxblood)}.gather h2{font-size:clamp(3.6rem,6.2vw,7.2rem)}.gather h2 em{color:var(--oxblood)}.gather-head>p:last-child{max-width:30ch;padding-bottom:.4rem;color:var(--ink-muted);font-size:.95rem;line-height:1.65}.gather-layout{width:min(100%,var(--width));margin:auto;padding:0 var(--gutter) clamp(5rem,8vw,9rem);display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1fr);align-items:start;gap:clamp(2.6rem,6vw,7rem)}.gather-photo img{width:100%;height:clamp(490px,46vw,750px);object-fit:cover;object-position:center}.gather-photo figcaption,.books-photo figcaption,.meet-image figcaption{margin-top:.8rem;color:var(--ink-muted);font-size:.62rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase}.gather-content{min-width:0}.service-index{border-top:1px solid var(--line-light)}.service-index article{display:grid;grid-template-columns:2.1rem minmax(0,1fr);gap:clamp(.9rem,2vw,2.2rem);padding:clamp(1.25rem,2.2vw,2.5rem) 0 clamp(1.6rem,2.8vw,3rem);border-bottom:1px solid var(--line-light)}.service-num{color:var(--oxblood);font:400 1rem/1.3 var(--serif)}.service-index h3{margin-bottom:.6rem;font-size:clamp(2.3rem,3.45vw,4rem);line-height:.98}.service-index p{max-width:48ch;color:var(--ink-muted);font-size:.94rem;line-height:1.7}.gather-links{display:flex;flex-wrap:wrap;gap:.8rem 2.2rem;margin-top:1.3rem}.gather-links .underlink{color:var(--oxblood)}
/* Portraiture is a counterpoint to the plate, not another feature card. */
.meet{overflow:hidden;background:var(--night);color:var(--bone)}.meet-inner{width:min(100%,var(--width));min-height:680px;margin:auto;padding:clamp(5rem,8vw,9rem) var(--gutter);display:grid;grid-template-columns:minmax(0,1.12fr) minmax(0,.72fr);grid-template-rows:auto 1fr;gap:clamp(2rem,5vw,6rem)}.meet-heading{grid-column:1;grid-row:1;position:relative;z-index:1}.meet h2{max-width:12ch;margin-top:3.4rem;font-size:clamp(4rem,6.6vw,7.8rem)}.meet h2 em{color:var(--brass)}.meet-story{grid-column:1;grid-row:2;align-self:end;max-width:520px}.meet-story p{max-width:48ch;margin-bottom:1.25rem;color:var(--night-muted);font-size:1.02rem;line-height:1.74}.meet-image{grid-column:2;grid-row:1/3;align-self:stretch;min-width:0}.meet-image img{width:100%;height:100%;min-height:590px;max-height:760px;object-fit:cover;object-position:center;filter:grayscale(1) sepia(.18) contrast(1.06) brightness(.88)}.meet-image figcaption{color:var(--brass)}
/* The only oxblood field; coming soon, without offer mechanics. */
.membership{background:var(--oxblood);color:var(--bone)}.membership-inner{width:min(100%,var(--width));margin:auto;padding:clamp(5rem,9vw,10rem) var(--gutter)}.membership-overline{display:flex;justify-content:space-between;gap:1rem;padding-bottom:1.2rem;border-bottom:1px solid rgba(239,231,218,.38);color:var(--brass)}.membership h2{max-width:13ch;margin:clamp(3.5rem,7vw,7rem) 0 clamp(3rem,6vw,6rem);font-size:clamp(4rem,8.9vw,10.5rem)}.membership h2 em{color:var(--brass)}.membership-bottom{display:flex;align-items:end;justify-content:space-between;gap:2rem;padding-top:1.2rem;border-top:1px solid rgba(239,231,218,.38)}.membership-bottom p{max-width:55ch;color:var(--bone);font-size:1rem;line-height:1.75}.membership-bottom .underlink{flex:0 0 auto}
.books{background:var(--bone);color:var(--ink)}.books-inner{width:min(100%,var(--width));margin:auto;padding:clamp(5rem,8vw,9rem) var(--gutter);display:grid;grid-template-columns:minmax(0,1fr) minmax(0,.65fr);gap:clamp(3rem,7vw,8.5rem);align-items:center}.books .eyebrow{color:var(--oxblood)}.books h2{margin:clamp(2rem,3vw,3.5rem) 0 clamp(2rem,3vw,3.5rem);font-size:clamp(3.7rem,6.2vw,7.2rem)}.books h2 em{color:var(--oxblood)}.books-content>p:not(.eyebrow){max-width:58ch;color:var(--ink-muted);font-size:1.04rem;line-height:1.75}.books-links{display:flex;flex-wrap:wrap;gap:.6rem 2rem;margin-top:1.5rem}.books-links .underlink{color:var(--oxblood)}.books-photo{min-width:0}.books-photo img{width:100%;height:clamp(410px,44vw,670px);object-fit:cover;object-position:center}
.closing{background:var(--night-deep);color:var(--bone)}.closing-inner{width:min(100%,var(--width));margin:auto;padding:clamp(6rem,10vw,12rem) var(--gutter);display:grid;grid-template-columns:minmax(0,1fr) minmax(260px,.5fr);gap:clamp(2rem,6vw,7rem);align-items:end}.closing .eyebrow{grid-column:1/-1}.closing h2{grid-column:1;max-width:12ch;font-size:clamp(4.7rem,9.3vw,11rem)}.closing h2 em{color:var(--brass)}.closing-copy{grid-column:2}.closing-copy p{max-width:48ch;margin-bottom:1.1rem;color:var(--night-muted);font-size:.97rem;line-height:1.75}.closing-copy .action{margin-top:1rem}
.site-footer{padding:clamp(4rem,6vw,7rem) var(--gutter) 0;background:#1a1719;border-top:1px solid var(--line-dark)}.footer-inner,.footer-bottom{width:min(100%,var(--width));margin:auto}.footer-inner{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(120px,.55fr) minmax(0,.65fr);gap:clamp(2rem,5vw,6rem);padding-bottom:clamp(4rem,6vw,7rem)}.footer-brand>a{font:400 clamp(2.5rem,4vw,5rem)/1 var(--serif);letter-spacing:-.05em}.footer-brand p{max-width:25ch;margin-top:1.2rem;color:var(--night-muted);font:italic 1.45rem/1.2 var(--serif)}.footer-inner nav,.footer-contact{display:flex;flex-direction:column;align-items:flex-start;gap:.35rem}.footer-inner nav a,.footer-contact a{display:inline-flex;align-items:center;min-height:44px;color:var(--bone);font-size:.8rem}.footer-inner nav a:hover,.footer-contact a:hover{color:var(--brass);text-decoration:underline;text-underline-offset:.35em}.footer-contact p{margin-bottom:.8rem;color:var(--night-muted);font-size:.83rem;line-height:1.6}.footer-contact span{margin-left:.6rem;color:var(--brass)}.footer-bottom{display:flex;justify-content:space-between;gap:1rem;padding:1.15rem 0;border-top:1px solid var(--line-dark);color:var(--night-muted);font-size:.65rem;letter-spacing:.12em;text-transform:uppercase}
@media(max-width:1150px){.header-inner{flex-wrap:wrap;min-height:0;gap:.8rem 1.5rem;padding-top:1rem;padding-bottom:1rem}.site-header nav{order:3;width:100%;justify-content:flex-start;margin-left:0;gap:1.5rem}.header-cta{margin-left:auto}.hero h1{font-size:clamp(4.8rem,8.5vw,7rem)}.gather-head{grid-template-columns:minmax(0,1fr) minmax(220px,.4fr)}.gather-head .eyebrow{grid-column:1/-1}.gather-layout{gap:3rem}.meet h2{font-size:clamp(4rem,7.5vw,6.5rem)}}
@media(max-width:820px){.topline span:last-child{display:none}.hero-inner{grid-template-columns:minmax(0,1fr) minmax(0,.83fr);gap:1.5rem}.hero h1{font-size:clamp(4rem,9.5vw,6.3rem)}.hero-photo img{height:clamp(490px,76vw,720px)}.hero-lede{font-size:.94rem}.hero-actions{gap:.5rem 1rem}.hero-actions .underlink{font-size:.75rem}.letter-inner{grid-template-columns:1fr;gap:2.5rem}.letter-columns{gap:2rem}.gather-head{display:block}.gather-head .eyebrow{margin-bottom:2.5rem}.gather-head>p:last-child{margin-top:1.4rem}.gather-layout{grid-template-columns:1fr}.gather-photo{max-width:640px}.gather-photo img{height:clamp(420px,70vw,620px)}.meet-inner{grid-template-columns:minmax(0,1fr) minmax(0,.7fr);gap:2rem}.meet h2{font-size:clamp(3.7rem,8vw,6rem)}.meet-image img{min-height:520px}.books-inner{gap:2.3rem}.closing-inner{grid-template-columns:1fr}.closing .eyebrow,.closing h2,.closing-copy{grid-column:1}.closing-copy{max-width:620px}}
@media(max-width:640px){:root{--gutter:1.3rem}.topline{font-size:.57rem}.header-inner{position:relative;display:grid;grid-template-columns:1fr auto;align-items:center;gap:.6rem 1rem}.wordmark{font-size:2.3rem}.wordmark small{font-size:.51rem}.nav-toggle:not([hidden]){display:flex;align-items:center;gap:.65rem;justify-content:center;min-height:44px;padding:.3rem .5rem;border:1px solid var(--line-dark);background:transparent;color:var(--bone);font-size:.74rem;font-weight:700;cursor:pointer}.nav-toggle span{color:var(--brass);font-size:1.1rem}.site-header nav{grid-column:1/-1;order:2;display:flex;flex-wrap:wrap;gap:0 .9rem;width:100%;border-top:1px solid var(--line-dark);padding-top:.5rem}.js .site-header nav{display:none}.js .site-header nav[data-open="true"]{display:flex}.site-header nav a{min-height:44px}.header-cta{grid-column:1/-1;order:3;margin:0;justify-self:start;font-size:.75rem}.hero-inner{display:flex;flex-direction:column;padding-top:2.6rem}.hero h1{margin:2.3rem 0 2.2rem;font-size:clamp(4.6rem,14.5vw,7rem);line-height:.77}.hero h1 em{margin-top:.12em}.hero-photo{order:1;margin-top:2.6rem}.hero-photo img{height:auto;max-height:680px;aspect-ratio:602/720;object-fit:cover;object-position:center 18%}.hero-intro{order:0}.hero-foot{font-size:.56rem}.letter{padding-top:5.5rem}.letter h2{font-size:clamp(3.8rem,12vw,6.2rem)}.letter-columns{grid-template-columns:1fr;gap:1.5rem;margin-top:2.5rem}.letter-note{margin-top:4rem;font-size:.66rem}.gather-head{padding-top:5rem}.gather h2{font-size:clamp(3.6rem,11vw,6rem)}.gather-layout{gap:3rem}.gather-photo img{height:auto;max-height:570px;aspect-ratio:1/1;object-fit:cover}.service-index article{grid-template-columns:2rem 1fr}.service-index h3{font-size:clamp(2.4rem,8vw,3.6rem)}.meet-inner{display:flex;flex-direction:column;padding-top:5rem;padding-bottom:5rem}.meet h2{margin-top:2.1rem;font-size:clamp(4rem,11.2vw,6rem)}.meet-story{align-self:auto}.meet-image{width:min(100%,520px)}.meet-image img{height:auto;min-height:0;max-height:630px;aspect-ratio:4/5;object-fit:cover}.membership h2{font-size:clamp(3.8rem,12vw,7rem)}.membership-bottom{display:block}.membership-bottom .underlink{margin-top:1.2rem}.books-inner{grid-template-columns:1fr}.books h2{font-size:clamp(3.6rem,11vw,6rem)}.books-photo{width:min(100%,530px)}.books-photo img{height:auto;aspect-ratio:1/1;object-fit:cover}.closing h2{font-size:clamp(4.4rem,13vw,7rem)}.footer-inner{grid-template-columns:1fr 1fr}.footer-brand{grid-column:1/-1}.footer-contact{grid-column:1/-1}.footer-bottom{flex-direction:column;gap:.25rem}}
@media(max-width:380px){.hero h1{font-size:clamp(4.1rem,13.7vw,5rem)}.hero-photo figcaption{font-size:.54rem}.membership-overline{font-size:.55rem}.header-inner{column-gap:.35rem}.wordmark{font-size:2.05rem}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{transition-duration:.01ms!important;animation-duration:.01ms!important}}
