:root{--cream:#F8F1E5;--cream-2:#F3EADC;--paper:#FEFCF7;--ink:#2F2A24;--ink-2:#4A423A;--muted:#6E6053;--terra:#B5652B;--terra-dark:#8E4E1F;--sage:#5C6A42;--gold:#C4963A;--line:rgba(140,124,104,.26);--serif:"Fraunces",Georgia,serif;--sans:"Hanken Grotesk",system-ui,sans-serif;--mono:"Spline Sans Mono",ui-monospace,monospace}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--cream);color:var(--ink-2);font-family:var(--sans);font-size:17px;line-height:1.64;-webkit-font-smoothing:antialiased}
a{color:var(--terra-dark);text-decoration:none}a:hover{color:var(--ink)}
img{display:block;max-width:100%}
.wrap{max-width:1180px;margin:0 auto;padding:0 40px}
.eyebrow{font-family:var(--mono);font-size:11px;letter-spacing:.17em;text-transform:uppercase;color:var(--muted);margin:0 0 18px}
h1,h2,h3{font-family:var(--serif);color:var(--ink);font-weight:300;margin:0;text-wrap:balance}
h1{font-size:clamp(40px,5vw,64px);line-height:1.08;letter-spacing:-.026em}
h2{font-size:clamp(29px,3.2vw,40px);line-height:1.14;letter-spacing:-.02em}
h3{font-size:23px;line-height:1.22;font-weight:400;letter-spacing:-.02em}
p{margin:0 0 18px;text-wrap:pretty}
.lede{font-size:clamp(18px,1.6vw,19px);line-height:1.7;color:var(--ink-2)}
/* header */
header.site{position:sticky;top:0;z-index:60;background:rgba(248,241,229,.92);backdrop-filter:blur(8px);border-bottom:1px solid var(--line)}
header.site .bar{max-width:1180px;margin:0 auto;padding:16px 40px;display:flex;align-items:center;justify-content:space-between;gap:32px}
.lockup{display:flex;align-items:center;gap:14px}
.lockup img{width:46px;height:46px}
.lockup .wm{display:flex;flex-direction:column;line-height:1}
.lockup .wm b{font-family:var(--serif);font-size:21px;font-weight:400;color:var(--ink);letter-spacing:-.01em}
.lockup .wm span{font-family:var(--mono);font-size:9px;letter-spacing:.17em;text-transform:uppercase;color:var(--muted);margin-top:5px}
nav.site{display:flex;gap:26px;align-items:center}
nav.site a{font-size:14.5px;color:var(--ink-2)}
nav.site a:hover,nav.site a[aria-current]{color:var(--terra-dark)}
nav.site a[aria-current]{border-bottom:1px solid var(--terra-dark);padding-bottom:3px}
/* arch frame */
.arch{position:relative;border-radius:999px 999px 6px 6px;overflow:hidden;background:var(--cream-2);border:1px solid var(--line)}
.arch.soft{border-radius:140px 140px 4px 4px}
/* buttons */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:9px;font-family:var(--sans);font-size:15.5px;font-weight:500;height:50px;padding:0 24px;border-radius:2px;border:1px solid var(--terra);color:var(--terra-dark);background:none;cursor:pointer;transition:background .25s,color .25s}
.btn:hover{background:var(--terra-dark);border-color:var(--terra-dark);color:var(--paper)}
.btn.solid{background:var(--terra-dark);border-color:var(--terra-dark);color:var(--paper)}
.btn.solid:hover{background:var(--ink);border-color:var(--ink)}
.btn.quiet{border-color:var(--line);color:var(--ink-2)}
.btn.quiet:hover{background:var(--ink);border-color:var(--ink);color:var(--paper)}
/* rules + ornament */
.rule{height:1px;background:var(--line);border:0;margin:0}
.orn{display:flex;align-items:center;justify-content:center;gap:14px;color:var(--gold)}
.orn i{display:block;width:56px;height:1px;background:var(--gold);opacity:.6}
.orn img{width:26px;height:26px;opacity:.9}
/* sections */
section{padding:92px 0}
section.tight{padding:62px 0}
.center{text-align:center}
.measure{max-width:660px}
.measure.center{margin:0 auto}
/* turnstile */
.tn-shell{position:relative;padding:24px 0 0}
.tn{position:relative;height:470px;perspective:1700px;perspective-origin:50% 46%}
.tn-track{position:absolute;inset:0;transform-style:preserve-3d}
.tn-item{position:absolute;left:50%;top:14px;width:248px;height:372px;margin-left:-124px;transform-origin:50% 50%;transition:transform .68s cubic-bezier(.22,.61,.36,1),opacity .68s,filter .68s;cursor:pointer}
.tn-item .arch{width:100%;height:100%;box-shadow:0 24px 48px -18px rgba(47,42,36,.34)}
.tn-item .arch img{width:100%;height:100%;object-fit:cover}
.tn-item.is-active{cursor:default}
.tn-nav{position:absolute;top:50%;margin-top:-24px;width:48px;height:48px;border-radius:50%;border:1px solid var(--line);background:rgba(254,252,247,.86);color:var(--ink-2);display:grid;place-items:center;cursor:pointer;z-index:20;transition:border-color .25s,color .25s}
.tn-nav:hover{border-color:var(--terra-dark);color:var(--terra-dark)}
.tn-nav.prev{left:0}.tn-nav.next{right:0}
.tn-meta{margin:34px auto 0;max-width:640px;text-align:center;min-height:254px}
.tn-meta .series{font-family:var(--mono);font-size:10px;letter-spacing:.14em;text-transform:uppercase;color:var(--sage);margin-bottom:12px;min-height:14px}
.tn-meta h3{font-size:31px;margin-bottom:12px}
.tn-meta p{color:var(--muted);font-size:15px;margin-bottom:20px}
.tn-count{font-family:var(--mono);font-size:11px;letter-spacing:.1em;color:var(--muted)}
/* gallery */
.gal{display:grid;grid-template-columns:repeat(3,1fr);gap:52px 44px}
.gal .bk .arch{aspect-ratio:2/3;margin-bottom:22px}
.gal .bk .arch img{width:100%;height:100%;object-fit:cover}
.gal .bk .series{font-family:var(--mono);font-size:10px;letter-spacing:.14em;text-transform:uppercase;color:var(--sage);margin-bottom:9px}
.gal .bk h3{margin-bottom:10px}
.gal .bk p{font-size:14.5px;color:var(--muted);margin-bottom:0}
.pill{display:inline-block;font-family:var(--mono);font-size:10px;letter-spacing:.13em;text-transform:uppercase;color:var(--terra-dark);border:1px solid var(--terra);border-radius:2px;padding:4px 10px;margin-bottom:14px}
/* promise */
.three{display:grid;grid-template-columns:repeat(3,1fr);gap:44px}
.three .c{border-top:1px solid var(--line);padding-top:24px}
.three .c h3{margin-bottom:10px}
.three .c p{color:var(--muted);font-size:15px;margin:0}
/* quote */
blockquote{margin:0;font-family:var(--serif);font-size:clamp(21px,2.3vw,29px);font-weight:300;line-height:1.45;color:var(--ink);font-style:italic}
/* newsletter */
.nl{background:var(--paper);border:1px solid var(--line);border-radius:2px}
.nl-in{display:grid;grid-template-columns:1.1fr 1fr;gap:64px;padding:64px}
form.signup{display:grid;gap:16px}
form.signup label{font-family:var(--mono);font-size:10px;letter-spacing:.13em;text-transform:uppercase;color:var(--muted)}
form.signup input{width:100%;padding:14px 16px;border:1px solid var(--line);border-radius:2px;background:var(--cream);font-family:var(--sans);font-size:15px;color:var(--ink)}
form.signup input:focus{outline:none;border-color:var(--terra-dark)}
form.signup .note{font-size:12.5px;color:var(--muted);line-height:1.6}
/* footer */
footer.site{border-top:1px solid var(--line);padding:56px 0 44px;background:var(--cream-2)}
footer.site .cols{display:flex;justify-content:space-between;align-items:flex-start;gap:48px;flex-wrap:wrap}
footer.site nav{display:flex;flex-direction:column;gap:11px}
footer.site nav a{font-size:14.5px;color:var(--ink-2)}
footer.site nav a:hover{color:var(--terra-dark)}
footer.site .fine{margin-top:44px;padding-top:22px;border-top:1px solid var(--line);display:flex;justify-content:space-between;gap:24px;font-family:var(--mono);font-size:11px;letter-spacing:.05em;text-transform:uppercase;color:var(--muted);flex-wrap:wrap}
footer.site .fine.platform{justify-content:center;margin-top:14px;padding-top:0;border-top:none}
/* Retailer link. .vh keeps the destination available to screen readers without
   printing it on screen; the turnstile hides its button for unreleased titles. */
.vh{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}
/* Grid rows are already equal height, so pushing the button down with auto margin
   lands every Buy the book on one baseline across a row regardless of blurb length.
   align-self keeps it hugging its text instead of stretching to the column. */
.gal .bk{display:flex;flex-direction:column}
.gal .bk .btn{margin-top:20px;align-self:flex-start}
.gal .bk p{margin-bottom:auto}
.tn-buy{margin-top:22px}
.tn-buy[hidden]{display:none}
footer.site .tag{font-family:var(--serif);font-size:20px;font-weight:300;color:var(--ink);font-style:italic}
.about-grid{display:grid;grid-template-columns:1fr 1.25fr;gap:72px;align-items:start}
.about-grid .arch img{width:100%;height:100%;object-fit:cover}
@media(max-width:860px){.about-grid{grid-template-columns:1fr;gap:40px}.about-grid .arch{max-width:340px}}
@media(max-width:960px){.gal,.three{grid-template-columns:repeat(2,1fr)}.nl-in{grid-template-columns:1fr;gap:36px;padding:40px}nav.site{gap:20px}}
@media(max-width:640px){.wrap{padding:0 22px}.gal,.three{grid-template-columns:1fr}.tn{height:400px}.tn-item{width:200px;height:300px;margin-left:-100px}}

@media(max-width:620px){.btn{width:100%}h1{font-size:34px}section{padding:62px 0}}

@media(prefers-reduced-motion:reduce){
  .tn-item{transition:opacity .3s !important}
}
