/* ===================== base ===================== */
*,*::before,*::after{box-sizing:border-box}
[hidden]{display:none!important}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}
body{
  margin:0;
  background:#faf3ea;
  background:var(--canvas);
  color:var(--ink);
  font-family:'Jost','Avenir Next','Segoe UI',system-ui,sans-serif;
  font-weight:300;
  font-size:clamp(1rem,.96rem + .18vw,1.08rem);
  line-height:1.72;
  letter-spacing:.006em;
  overflow-x:hidden;
  overflow-x:clip;
}
img,svg{max-width:100%;display:block}
h1,h2,h3,h4{
  font-family:'Cormorant Garamond','Iowan Old Style',Georgia,serif;
  font-weight:400;margin:0;color:var(--ink);
  line-height:1.06;letter-spacing:-.012em;
}
h1{font-size:clamp(2.85rem,1.7rem + 5.6vw,5.5rem)}
h2{font-size:clamp(2.1rem,1.4rem + 2.7vw,3.5rem)}
h3{font-size:clamp(1.3rem,1.15rem + .6vw,1.65rem);line-height:1.2}
p{margin:0 0 1.1em}
a{color:inherit;text-decoration:none}
button,input,select{font:inherit;color:inherit}
button{cursor:pointer;background:none;border:0}
:focus-visible{outline:2px solid var(--accent);outline-offset:3px;border-radius:var(--r-sm)}
::selection{background:var(--accent);color:var(--on-accent)}
section[id],footer[id]{scroll-margin-top:92px}
.wrap{width:100%;max-width:var(--maxw);margin-inline:auto;padding-inline:var(--pad)}
.skip{position:absolute;left:-9999px;top:0;z-index:99;background:var(--surface);padding:.7rem 1.1rem;border-radius:var(--r-md)}
.skip:focus{left:1rem;top:1rem}
.eyebrow{
  display:flex;align-items:center;gap:.7rem;margin:0 0 1.1rem;
  font-size:.7rem;font-weight:500;text-transform:uppercase;letter-spacing:.24em;
  color:var(--accent);
}
.eyebrow::before{content:"";width:2.6rem;height:1px;background:var(--accent);flex:none}
.lede{color:var(--ink-soft);max-width:46ch}
.serif-note{font-family:'Cormorant Garamond',Georgia,serif;font-style:italic;font-size:1.28rem;line-height:1.5}
.grain::after{
  content:"";position:absolute;inset:0;pointer-events:none;
  background-image:var(--grain);opacity:.055;mix-blend-mode:overlay;
}
.chessband{
  height:10px;
  background-image:
    linear-gradient(45deg,var(--accent) 25%,transparent 25% 75%,var(--accent) 75%),
    linear-gradient(45deg,var(--accent) 25%,transparent 25% 75%,var(--accent) 75%);
  background-size:10px 10px;background-position:0 0,5px 5px;opacity:.5;
}