/* =========================================================================
   The Overwritten Timeline — site stylesheet
   1 tokens · 2 reset · 3 typography · 4 layout · 5 header · 6 buttons
   7 hero + book object · 8 components · 9 forms · 10 footer · 11 motion
   ========================================================================= */

/* ---------- 1. TOKENS ---------------------------------------------------- */
:root{
  --ink-950:#080A0D;
  --ink-900:#0B0E12;
  --ink-850:#0F1318;
  --ink-800:#131920;
  --ink-750:#1A2029;

  --fg:#DCE3EA;
  --fg-2:#A7B2BE;
  --fg-3:#7C8794;

  --rule:rgba(198,214,232,.10);
  --rule-2:rgba(198,214,232,.18);
  --rule-3:rgba(198,214,232,.28);

  --paper:#F1EADC;
  --paper-2:#E7DDC9;
  --paper-fg:#17140F;
  --paper-fg-2:#4E4638;
  --paper-fg-3:#6E6555;
  --paper-rule:rgba(23,20,15,.14);
  --paper-rule-2:rgba(23,20,15,.26);

  --brass:#C79A5E;
  --brass-lift:#E0BA84;
  --brass-deep:#8A6534;
  --brass-paper:#7E5B2E;
  --cta:#C2924F;
  --cta-hover:#D4A45E;
  --cta-active:#A87C3F;
  --cta-ink:#12100C;

  --alert:#C0463A;
  --alert-fg:#DE8072;

  --serif:"EB Garamond",EBGaramondFallback,"Iowan Old Style","Palatino Linotype",Palatino,"Hoefler Text",Georgia,serif;
  --sans:"IBM Plex Sans",PlexSansFallback,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;
  --mono:"IBM Plex Mono",ui-monospace,SFMono-Regular,Menlo,Consolas,"Liberation Mono",monospace;

  --fs-eyebrow:.6875rem;
  --fs-meta:.75rem;
  --fs-body:1.0625rem;
  --fs-lead:clamp(1.125rem,1.04rem + .38vw,1.3125rem);
  --fs-h1:clamp(2.5rem,1.62rem + 3.55vw,4.25rem);
  --fs-h2:clamp(1.875rem,1.36rem + 2.05vw,2.875rem);
  --fs-h3:clamp(1.1875rem,1.09rem + .42vw,1.4375rem);
  --fs-h4:clamp(1.0625rem,1.02rem + .2vw,1.1875rem);
  --lh-body:1.62;

  --wrap:1180px;
  --gutter:clamp(1.375rem,5vw,3rem);
  --sec-y:clamp(4rem,8.5vw,7.5rem);
  --radius:3px;
  --radius-sm:2px;

  --header-h:64px;

  color-scheme:dark;
}
@media (min-width:900px){ :root{ --fs-body:1.125rem; --header-h:76px; } }

/* Metric-matched fallbacks keep the webfont swap from moving the headline. */
@font-face{font-family:EBGaramondFallback;src:local("Georgia"),local("Times New Roman");size-adjust:92%;ascent-override:88%;descent-override:24%;line-gap-override:0%}
@font-face{font-family:PlexSansFallback;src:local("Segoe UI"),local("Helvetica Neue"),local("Arial");size-adjust:100%;ascent-override:96%;descent-override:24%;line-gap-override:0%}

/* ---------- 2. RESET ----------------------------------------------------- */
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth;overflow-x:hidden}
body{
  margin:0;
  background:var(--ink-900);
  color:var(--fg);
  font-family:var(--sans);
  font-size:var(--fs-body);
  line-height:var(--lh-body);
  font-synthesis-weight:none;
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
}
body.is-locked{overflow:hidden}
img,svg,video{max-width:100%;height:auto;display:block}
button,input,textarea,select{font:inherit;color:inherit}
button{background:none;border:0;cursor:pointer}
a{color:inherit;text-decoration:none}
p{margin:0 0 1.1em}
p:last-child{margin-bottom:0}
h1,h2,h3,h4{margin:0;font-weight:400;text-wrap:balance}
ul,ol{margin:0;padding:0;list-style:none}
dl,dd{margin:0}
hr{border:0;border-top:1px solid var(--rule);margin:0}
::selection{background:var(--brass-deep);color:#fff}

.skip-link{
  position:absolute;left:var(--gutter);top:-100px;z-index:200;
  background:var(--cta);color:var(--cta-ink);
  padding:.75rem 1.25rem;border-radius:var(--radius);
  font-family:var(--mono);font-size:var(--fs-meta);letter-spacing:.08em;text-transform:uppercase;
  transition:top .15s ease;
}
.skip-link:focus{top:.75rem}
:focus-visible{outline:2px solid var(--brass-lift);outline-offset:3px;border-radius:var(--radius-sm)}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}

/* ---------- 3. TYPOGRAPHY ------------------------------------------------ */
.h1,.h2,.h3{font-family:var(--serif);font-weight:400;letter-spacing:-.012em}
.h1{font-size:var(--fs-h1);line-height:1.04;letter-spacing:-.021em}
.h2{font-size:var(--fs-h2);line-height:1.1;letter-spacing:-.016em}
.h3{font-size:var(--fs-h3);line-height:1.22}
.h4{font-family:var(--sans);font-size:var(--fs-h4);font-weight:600;line-height:1.34;letter-spacing:-.005em}

.eyebrow{
  display:flex;align-items:center;gap:.6rem;
  font-family:var(--mono);font-size:var(--fs-eyebrow);font-weight:500;
  letter-spacing:.19em;text-transform:uppercase;
  color:var(--brass);margin:0 0 1.1rem;
}
.eyebrow::before{content:"";width:1.65rem;height:1px;background:currentColor;opacity:.6;flex:none}

.lead{font-size:var(--fs-lead);line-height:1.55;color:var(--fg-2)}
.prose{max-width:63ch}
.prose p{margin-bottom:1.15em}
.prose strong{font-weight:600;color:var(--fg)}
.muted{color:var(--fg-2)}
.dim{color:var(--fg-3)}
.mono{font-family:var(--mono);font-size:var(--fs-meta);letter-spacing:.09em;text-transform:uppercase;color:var(--fg-3)}
.tnum{font-variant-numeric:tabular-nums}

.pull{
  margin:0;padding:.15rem 0 .15rem 1.5rem;
  border-left:1px solid var(--brass);
  font-family:var(--serif);font-size:clamp(1.35rem,1.05rem + 1.2vw,1.875rem);
  line-height:1.32;color:var(--fg);letter-spacing:-.01em;
}
.pull cite{display:block;margin-top:.9rem;font:500 var(--fs-meta)/1.5 var(--mono);letter-spacing:.14em;text-transform:uppercase;color:var(--fg-3);font-style:normal}

/* ---------- 4. LAYOUT ---------------------------------------------------- */
.wrap{width:100%;max-width:var(--wrap);margin-inline:auto;padding-inline:var(--gutter)}
.wrap--narrow{max-width:820px}
.section{padding-block:var(--sec-y);position:relative}
.section--tight{padding-block:clamp(3rem,6vw,5rem)}

.band-dark{background:var(--ink-900)}
.band-deep{background:var(--ink-950)}
.band-alt{background:var(--ink-850)}
.band-paper{background:var(--paper);color:var(--paper-fg)}
.band-paper-2{background:var(--paper-2);color:var(--paper-fg)}

.band-paper .eyebrow,.band-paper-2 .eyebrow{color:var(--brass-paper)}
.band-paper .lead,.band-paper-2 .lead,
.band-paper .muted,.band-paper-2 .muted{color:var(--paper-fg-2)}
.band-paper .dim,.band-paper-2 .dim,
.band-paper .mono,.band-paper-2 .mono{color:var(--paper-fg-3)}
.band-paper .pull,.band-paper-2 .pull{color:var(--paper-fg);border-left-color:var(--brass-paper)}
.band-paper .pull cite,.band-paper-2 .pull cite{color:var(--paper-fg-3)}
.band-paper hr,.band-paper-2 hr{border-top-color:var(--paper-rule)}
.band-paper .prose strong,.band-paper-2 .prose strong{color:var(--paper-fg)}

.grain::after{
  content:"";position:absolute;inset:0;pointer-events:none;z-index:0;
  background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='140' height='140'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='140' height='140' filter='url(%23n)' opacity='.5'/%3E%3C/svg%3E");
  opacity:.035;mix-blend-mode:overlay;
}
.band-paper.grain::after,.band-paper-2.grain::after{opacity:.055;mix-blend-mode:multiply}
.grain > *{position:relative;z-index:1}

.sec-head{max-width:46ch}
.sec-head .h2{margin-bottom:1.1rem}
.sec-head--wide{max-width:58ch}

.rule-mark{display:flex;align-items:center;gap:1rem;padding-top:1.25rem;border-top:1px solid var(--rule)}
.band-paper .rule-mark,.band-paper-2 .rule-mark{border-top-color:var(--paper-rule)}
.reg{width:11px;height:11px;flex:none;opacity:.9;color:var(--brass)}
.band-paper .reg,.band-paper-2 .reg{color:var(--brass-paper)}

/* ---------- 5. HEADER ---------------------------------------------------- */
#top-sentinel{position:absolute;top:0;left:0;width:1px;height:1px;pointer-events:none}

.header{
  position:fixed;inset:0 0 auto;z-index:100;
  background:transparent;border-bottom:1px solid transparent;
  transition:background-color .25s ease,border-color .25s ease;
}
.header.is-stuck{
  background:rgba(9,12,16,.93);
  border-bottom-color:var(--rule);
  -webkit-backdrop-filter:saturate(140%) blur(10px);
  backdrop-filter:saturate(140%) blur(10px);
}
.header__inner{display:flex;align-items:center;justify-content:space-between;gap:1rem;height:var(--header-h)}
.brand{display:flex;align-items:center;gap:.7rem;flex:none;padding-block:.35rem}
.brand__mark{width:17px;height:17px;color:var(--brass);flex:none}
.brand__type{display:block;font-family:var(--serif);line-height:1.1;letter-spacing:.14em;text-transform:uppercase;font-size:.6875rem;color:var(--fg)}
.brand__type b{display:block;font-weight:400}
.brand__type i{display:block;font-style:normal;color:var(--fg-3);letter-spacing:.16em}

.nav{display:none}
@media (min-width:900px){
  .nav{display:flex;align-items:center;gap:2rem}
  .nav__list{display:flex;align-items:center;gap:1.9rem}
  .nav__link{position:relative;font-size:.875rem;color:var(--fg-2);padding:.4rem 0;transition:color .18s ease}
  .nav__link:hover{color:var(--fg)}
  .nav__link[aria-current="page"]{color:var(--fg)}
  .nav__link[aria-current="page"]::after{content:"";position:absolute;left:0;right:0;bottom:0;height:1px;background:var(--brass)}
}

.burger{display:inline-flex;align-items:center;justify-content:center;width:46px;height:46px;margin-right:-10px;color:var(--fg);border-radius:var(--radius)}
.burger__box{display:block;width:20px;height:12px;position:relative}
.burger__box span{position:absolute;left:0;width:100%;height:1.5px;background:currentColor;transition:transform .22s ease}
.burger__box span:nth-child(1){top:0}
.burger__box span:nth-child(2){bottom:0}
.burger[aria-expanded="true"] .burger__box span:nth-child(1){transform:translateY(5.25px) rotate(45deg)}
.burger[aria-expanded="true"] .burger__box span:nth-child(2){transform:translateY(-5.25px) rotate(-45deg)}
@media (min-width:900px){ .burger{display:none} }

.menu{
  position:fixed;inset:0;z-index:99;display:none;
  background:var(--ink-950);
  padding:calc(var(--header-h) + 1.5rem) var(--gutter) calc(2rem + env(safe-area-inset-bottom));
  overflow-y:auto;overscroll-behavior:contain;
}
.menu.is-open{display:flex;flex-direction:column}
.menu__list{display:flex;flex-direction:column;border-top:1px solid var(--rule)}
.menu__link{
  display:flex;align-items:center;justify-content:space-between;gap:1rem;
  min-height:60px;padding:.9rem 0;border-bottom:1px solid var(--rule);
  font-family:var(--serif);font-size:1.5rem;letter-spacing:-.01em;color:var(--fg);
}
.menu__link .mono{font-size:.6875rem}
.menu__link[aria-current="page"]{color:var(--brass)}
.menu__foot{margin-top:auto;padding-top:2.25rem}
.menu__foot .btn{width:100%}
.menu__meta{margin-top:1.1rem;text-align:center}
@media (min-width:900px){ .menu,.menu.is-open{display:none} }

/* ---------- 6. BUTTONS --------------------------------------------------- */
.btn{
  --btn-bg:var(--cta);--btn-fg:var(--cta-ink);--btn-bd:var(--cta);
  display:inline-flex;align-items:center;justify-content:center;gap:.6rem;
  min-height:52px;padding:.85rem 1.6rem;
  background:var(--btn-bg);color:var(--btn-fg);
  border:1px solid var(--btn-bd);border-radius:var(--radius);
  font-family:var(--sans);font-size:1rem;font-weight:600;
  text-align:center;white-space:nowrap;
  transition:background-color .16s ease,border-color .16s ease,transform .16s ease;
}
.btn:hover{--btn-bg:var(--cta-hover);--btn-bd:var(--cta-hover)}
.btn:active{--btn-bg:var(--cta-active);--btn-bd:var(--cta-active);transform:translateY(1px)}
.btn:focus-visible{outline:2px solid var(--brass-lift);outline-offset:3px}
.btn[disabled],.btn[aria-disabled="true"]{opacity:.6;pointer-events:none}
.btn--sm{min-height:44px;padding:.6rem 1.1rem;font-size:.875rem}
.btn--lg{min-height:62px;font-size:1.0625rem;font-weight:600}
.btn--block{display:flex;width:100%;min-width:0}
/* the buy label carries the price, so it gets a shorter form on small screens
   rather than wrapping or forcing its container wider than the viewport */
.cta-short{display:none}
@media (max-width:420px){
  .cta-long{display:none}
  .cta-short{display:inline}
  .btn--block{padding-inline:1.1rem;font-size:.9375rem}
}
.band-paper .btn,.band-paper-2 .btn{--btn-bd:var(--brass-paper)}
.band-paper .btn:hover,.band-paper-2 .btn:hover{--btn-bd:var(--brass-deep)}

.btn-ghost{--btn-bg:transparent;--btn-fg:var(--fg);--btn-bd:var(--rule-3)}
.btn-ghost:hover{--btn-bg:rgba(199,154,94,.09);--btn-bd:var(--brass)}

.link-quiet{
  display:inline-flex;align-items:center;gap:.55rem;min-height:44px;
  font-size:.9375rem;color:var(--fg-2);transition:color .16s ease;
}
.link-quiet svg{width:14px;height:14px;flex:none;color:var(--brass);transition:transform .18s ease}
.link-quiet:hover{color:var(--fg)}
.link-quiet:hover svg{transform:translateX(3px)}
.band-paper .link-quiet,.band-paper-2 .link-quiet{color:var(--paper-fg-2)}
.band-paper .link-quiet:hover,.band-paper-2 .link-quiet:hover{color:var(--paper-fg)}
.band-paper .link-quiet svg,.band-paper-2 .link-quiet svg{color:var(--brass-paper)}

.link-under{color:var(--brass);border-bottom:1px solid rgba(199,154,94,.4);transition:border-color .16s ease}
.link-under:hover{border-bottom-color:var(--brass)}
.band-paper .link-under,.band-paper-2 .link-under{color:var(--brass-paper);border-bottom-color:rgba(126,91,46,.45)}

.sticky-cta{
  position:fixed;left:0;right:0;bottom:0;z-index:95;
  padding:.7rem var(--gutter) calc(.7rem + env(safe-area-inset-bottom));
  background:rgba(9,12,16,.96);border-top:1px solid var(--rule-2);
  -webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);
  transform:translateY(115%);transition:transform .26s ease;
  display:flex;gap:.9rem;align-items:center;
}
.sticky-cta.is-visible{transform:translateY(0)}
.sticky-cta__meta{flex:1 1 auto;min-width:0}
.sticky-cta__meta > b,.sticky-cta__meta > span{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.sticky-cta__meta > b{font-family:var(--serif);font-size:1.0625rem;line-height:1.2;color:var(--fg);font-weight:400}
.sticky-cta__meta > span{font-family:var(--mono);font-size:.625rem;letter-spacing:.1em;text-transform:uppercase;color:var(--fg-3);margin-top:.15rem}
.sticky-cta .btn{flex:0 0 auto;min-height:48px;padding-inline:1.05rem;font-size:.9375rem}
@media (max-width:359px){
  .sticky-cta{gap:.6rem}
  .sticky-cta .btn{padding-inline:.8rem;font-size:.875rem}
  .sticky-cta__meta b{font-size:.9375rem}
}
@media (min-width:900px){ .sticky-cta{display:none} }
body.sticky-on .site-foot{padding-bottom:calc(6.5rem + env(safe-area-inset-bottom))}

/* ---------- 7. HERO + BOOK OBJECT ---------------------------------------- */
.hero{position:relative;padding-top:calc(var(--header-h) + clamp(2rem,6.5vw,4.25rem));padding-bottom:clamp(3rem,7vw,5.5rem);overflow:hidden}
/* the home hero occupies the first screen, content optically centred */
.hero--full{
  display:flex;align-items:center;min-height:100svh;
  padding-top:calc(var(--header-h) + 1.5rem);
  padding-bottom:clamp(2rem,4vw,3.5rem);
}
@supports not (min-height:100svh){ .hero--full{min-height:100vh} }
.hero--full > .wrap{width:100%}
/* a taller book so the first screen does not read as half empty */
@media (min-width:960px){ .hero--full .book{--bw:clamp(240px,23vw,330px)} }
.hero::before{content:"";position:absolute;inset:0;pointer-events:none;background:radial-gradient(115% 78% at 76% 30%,rgba(199,154,94,.085),transparent 62%)}
.hero__grid{position:relative;display:grid;gap:clamp(2.25rem,6vw,3.5rem)}
@media (min-width:960px){
  .hero__grid{grid-template-columns:minmax(0,55fr) minmax(0,45fr);align-items:center;gap:clamp(2.5rem,5vw,4.5rem)}
  .hero[data-layout="mockup-left"] .hero__copy{order:2}
  .hero[data-layout="mockup-left"] .hero__art{order:1;justify-content:flex-start}
}
.hero .h1{margin-bottom:1.15rem}
.hero__sub{max-width:45ch;margin-bottom:2rem}
.hero__actions{display:flex;flex-wrap:wrap;align-items:center;gap:.65rem 1.6rem}
.hero__actions .btn{min-height:54px}
.hero__meta{
  display:flex;flex-wrap:wrap;align-items:center;gap:.5rem .8rem;
  margin-top:1.6rem;padding-top:1.35rem;border-top:1px solid var(--rule);
  font-family:var(--mono);font-size:var(--fs-meta);letter-spacing:.1em;text-transform:uppercase;color:var(--fg-3);
}
.hero__meta i{font-style:normal;opacity:.55}
.hero__meta b{font-weight:500;color:var(--brass)}
.hero__art{display:flex;justify-content:center}
@media (min-width:960px){ .hero__art{justify-content:flex-end} }

/* landscape phones: short viewport, so tighten the hero rather than push
   the premise and the CTA off the screen */
@media (max-height:540px) and (min-width:600px) and (max-width:959px){
  :root{--fs-h1:clamp(1.875rem,1.2rem + 2.2vw,2.5rem);--fs-lead:1.0625rem}
  .hero{padding-top:calc(var(--header-h) + .75rem);padding-bottom:2.25rem}
  .hero .eyebrow{margin-bottom:.75rem}
  .hero .h1{margin-bottom:.7rem}
  .hero__sub{margin-bottom:1.1rem}
  .hero__meta{margin-top:1.1rem;padding-top:.9rem}
  .hero__grid{grid-template-columns:minmax(0,60fr) minmax(0,40fr);align-items:center;gap:2rem}
  .hero__art{justify-content:flex-end}
  .book{--bw:clamp(120px,17vw,160px)}
}

/* the book — built in CSS so it costs no request and stays sharp at any DPI */
.book{
  --bw:clamp(158px,42vw,264px);
  --bh:calc(var(--bw) * 1.5);
  --bd:clamp(19px,5vw,33px);
  position:relative;width:var(--bw);perspective:1400px;perspective-origin:62% 46%;
}
.book--sm{--bw:clamp(150px,40vw,206px)}
.book__body{position:relative;width:var(--bw);height:var(--bh);transform-style:preserve-3d;transform:rotateX(3.2deg) rotateY(-21deg) rotateZ(-.4deg)}
.book__face{position:absolute;inset:0;border-radius:1px 3px 3px 1px;overflow:hidden;backface-visibility:hidden}
.book__cover{
  background:
    linear-gradient(103deg,rgba(255,255,255,.09) 0%,rgba(255,255,255,0) 26%,rgba(0,0,0,.16) 78%),
    linear-gradient(168deg,#1B222B 0%,#141A22 46%,#0E1319 100%);
  box-shadow:inset 0 0 0 1px rgba(199,154,94,.16),inset 0 1px 0 rgba(255,255,255,.05);
  display:flex;padding:clamp(.8rem,2.5vw,1.4rem);
  transform:translateZ(calc(var(--bd) / 2));
}
.book__cover::after{content:"";position:absolute;inset:0 auto 0 0;width:14%;background:linear-gradient(90deg,rgba(0,0,0,.42),rgba(0,0,0,0))}
/* Side faces hinge on the cover's own edges and span the full depth.
   The Z translation is applied in the parent frame, after the rotation. */
.book__spine{
  width:var(--bd);left:0;right:auto;
  background:linear-gradient(90deg,#0A0D11 0%,#161C24 55%,#0C1116 100%);
  transform-origin:left center;
  transform:translateZ(calc(var(--bd) / -2)) rotateY(-90deg);
  box-shadow:inset 0 0 0 1px rgba(199,154,94,.1);
}
.book__pages{
  width:var(--bd);left:auto;right:0;
  background:
    repeating-linear-gradient(90deg,#D8CDB6 0 1px,#BCAF95 1px 2px,#E6DCC7 2px 3px),
    linear-gradient(90deg,#C9BDA4,#EFE7D6);
  transform-origin:right center;
  transform:translateZ(calc(var(--bd) / -2)) rotateY(90deg);
  border-radius:0 2px 2px 0;
}
.book__in{position:relative;z-index:1;display:flex;flex-direction:column;width:100%;text-align:left}
.book__rule{height:1px;background:linear-gradient(90deg,rgba(199,154,94,.75),rgba(199,154,94,.12));flex:none}
.book__tag{font-family:var(--mono);font-size:clamp(.3125rem,1.02vw,.5rem);letter-spacing:.23em;text-transform:uppercase;color:rgba(199,154,94,.86);line-height:1.55;margin:.5rem 0 auto}
.book__title{font-family:var(--serif);font-weight:400;font-size:clamp(1.0625rem,3.5vw,1.85rem);line-height:1.02;letter-spacing:-.015em;color:#EFE7DA;margin:0}
.book__title em{display:block;font-style:normal;color:var(--brass-lift)}
.book__author{font-family:var(--mono);font-size:clamp(.34375rem,1.1vw,.5625rem);letter-spacing:.19em;text-transform:uppercase;color:rgba(220,227,234,.72);margin:.6rem 0 0;line-height:1.5}
.book__foot{margin-top:auto;padding-top:.7rem}
.book__shadow{position:absolute;z-index:-1;left:6%;right:-9%;bottom:-5%;height:9%;background:radial-gradient(52% 100% at 46% 50%,rgba(0,0,0,.62),rgba(0,0,0,0) 72%);filter:blur(9px)}
.book__glow{position:absolute;z-index:-2;inset:-14% -18% -10% -12%;background:radial-gradient(58% 52% at 50% 44%,rgba(199,154,94,.13),transparent 70%)}
.band-paper .book__shadow,.band-paper-2 .book__shadow{background:radial-gradient(52% 100% at 46% 50%,rgba(40,30,16,.42),rgba(0,0,0,0) 72%)}
.band-paper .book__glow,.band-paper-2 .book__glow{display:none}

/* ---------- 8. COMPONENTS ------------------------------------------------ */
/* four cells: 2x2 on phones, one row from 760px. Dividers never hang. */
.datastrip{
  display:grid;grid-template-columns:repeat(2,minmax(0,1fr));
  margin-top:clamp(2rem,4vw,2.75rem);
  border-top:1px solid var(--rule);border-bottom:1px solid var(--rule);
}
.datastrip__item{padding:1.15rem 1.25rem;border-right:1px solid var(--rule)}
.datastrip__item:nth-child(odd){padding-left:0}
.datastrip__item:nth-child(even){border-right:0;padding-right:0}
.datastrip__item:nth-child(-n+2){border-bottom:1px solid var(--rule)}
@media (min-width:760px){
  .datastrip{grid-template-columns:repeat(4,minmax(0,1fr))}
  .datastrip__item{border-bottom:0;border-right:1px solid var(--rule);padding-left:1.25rem;padding-right:1.25rem}
  .datastrip__item:first-child{padding-left:0}
  .datastrip__item:last-child{border-right:0;padding-right:0}
}
.datastrip__v{display:block;font-family:var(--mono);font-variant-numeric:tabular-nums;font-size:clamp(1.0625rem,.95rem + .5vw,1.375rem);color:var(--brass);letter-spacing:-.01em}
.datastrip__k{display:block;margin-top:.35rem;font-family:var(--mono);font-size:.625rem;letter-spacing:.15em;text-transform:uppercase;color:var(--fg-3);line-height:1.5}
.band-paper .datastrip,.band-paper-2 .datastrip{border-color:var(--paper-rule)}
.band-paper .datastrip__item,.band-paper-2 .datastrip__item{border-right-color:var(--paper-rule)}
.band-paper .datastrip__v,.band-paper-2 .datastrip__v{color:var(--brass-paper)}
.band-paper .datastrip__k,.band-paper-2 .datastrip__k{color:var(--paper-fg-3)}

.steps{display:grid;margin-top:clamp(2.5rem,5vw,3.5rem);border-top:1px solid var(--rule)}
/* adapts to however many steps the page has */
@media (min-width:820px){ .steps{grid-auto-flow:column;grid-auto-columns:minmax(0,1fr)} }
.step{padding:1.75rem 0;border-bottom:1px solid var(--rule)}
@media (min-width:820px){
  .step{padding:2rem 1.75rem 2.25rem 0;border-bottom:0;border-right:1px solid var(--rule)}
  .step:last-child{border-right:0;padding-right:0}
  .step + .step{padding-left:1.75rem}
}
.step__n{display:block;font-family:var(--mono);font-size:var(--fs-meta);letter-spacing:.16em;color:var(--brass);margin-bottom:.9rem}
.step__t{display:block;font-family:var(--serif);font-size:1.25rem;line-height:1.24;margin-bottom:.65rem;letter-spacing:-.012em}
.step__d{font-size:.9375rem;line-height:1.6;color:var(--fg-2);margin:0}

.clocks{margin-top:clamp(2rem,4vw,3rem);border:1px solid var(--rule);border-radius:var(--radius);padding:clamp(1.1rem,3vw,1.75rem);background:var(--ink-850)}
.clocks__head{display:flex;flex-wrap:wrap;justify-content:space-between;gap:.5rem 1rem;margin-bottom:1.15rem}
.clocks svg{width:100%;height:auto;display:block}

.notice-list{margin-top:clamp(2rem,4vw,3rem);border-top:1px solid var(--paper-rule)}
.notice{display:grid;gap:.35rem .5rem;padding:1.1rem 0;border-bottom:1px solid var(--paper-rule)}
@media (min-width:760px){ .notice{grid-template-columns:auto minmax(0,1fr);align-items:baseline;gap:1.75rem;padding:1.15rem 0} }
/* rows that also carry a description get a third column */
.notice:has(.notice__d){grid-template-columns:auto minmax(0,1fr)}
@media (min-width:760px){ .notice:has(.notice__d){grid-template-columns:auto minmax(0,26ch) minmax(0,1fr)} }
.notice__n{font-family:var(--mono);font-size:var(--fs-meta);letter-spacing:.14em;color:var(--brass-paper);font-variant-numeric:tabular-nums}
.notice__t{font-family:var(--serif);font-size:clamp(1.125rem,1.02rem + .45vw,1.375rem);line-height:1.24;letter-spacing:-.012em;color:var(--paper-fg)}
.notice__d{font-size:.9375rem;line-height:1.62;color:var(--paper-fg-2);margin:0}

.compare{display:grid;margin-top:clamp(2.25rem,4.5vw,3rem);border-top:1px solid var(--rule)}
@media (min-width:760px){ .compare{grid-template-columns:1fr 1fr} }
.compare__col{padding:1.6rem 0;border-bottom:1px solid var(--rule)}
@media (min-width:760px){
  .compare__col{padding:1.9rem 2rem 2rem 0;border-bottom:0}
  .compare__col + .compare__col{padding:1.9rem 0 2rem 2rem;border-left:1px solid var(--rule)}
}
.compare__h{display:flex;align-items:baseline;gap:.7rem;margin-bottom:1.15rem}
.compare__h span{font-family:var(--mono);font-size:var(--fs-eyebrow);letter-spacing:.18em;text-transform:uppercase}
.compare__col--held .compare__h span{color:var(--fg-2)}
.compare__col--free .compare__h span{color:var(--brass)}
.compare__list li{padding:.6rem 0;border-bottom:1px solid var(--rule);font-size:.9375rem;color:var(--fg-2);line-height:1.5}
.compare__list li:last-child{border-bottom:0}
.compare__col--free .compare__list li{color:var(--fg)}

.curve{margin-top:clamp(2.25rem,4.5vw,3rem)}
.curve__row{display:grid;gap:.55rem;padding:1.25rem 0;border-bottom:1px solid var(--paper-rule)}
@media (min-width:780px){ .curve__row{grid-template-columns:minmax(0,21ch) minmax(0,1fr) minmax(0,19ch);align-items:center;gap:1.75rem} }
.curve__row:first-child{border-top:1px solid var(--paper-rule)}
.curve__k{font-family:var(--mono);font-size:var(--fs-meta);letter-spacing:.13em;text-transform:uppercase;color:var(--paper-fg-2)}
.curve__bar{position:relative;height:9px;background:rgba(23,20,15,.09);border-radius:1px;overflow:hidden}
.curve__bar i{position:absolute;inset:0 auto 0 0;background:var(--brass-paper);border-radius:1px;display:block}
.curve__row--faint .curve__bar i{background:repeating-linear-gradient(90deg,var(--brass-paper) 0 3px,transparent 3px 6px);opacity:.8}
.curve__v{font-size:.9375rem;color:var(--paper-fg);line-height:1.45}

.vera{display:grid;gap:clamp(2rem,5vw,3.5rem)}
@media (min-width:880px){ .vera{grid-template-columns:minmax(0,38fr) minmax(0,62fr);align-items:start;gap:clamp(2.5rem,6vw,5rem)} }
.vera__plate{border-top:1px solid var(--paper-rule-2);padding-top:1.5rem}
.vera__init{display:block;font-family:var(--serif);font-size:clamp(3.5rem,2rem + 7vw,6rem);line-height:.86;letter-spacing:.01em;color:var(--paper-fg);margin:.35rem 0 1.15rem}
.vera__line{display:flex;justify-content:space-between;gap:1rem;padding:.55rem 0;border-bottom:1px solid var(--paper-rule);font-family:var(--mono);font-size:var(--fs-meta);letter-spacing:.1em;text-transform:uppercase;color:var(--paper-fg-3)}
.vera__line b{font-weight:500;color:var(--paper-fg-2);letter-spacing:.06em;text-align:right}

.reject{margin-top:clamp(2.25rem,4.5vw,3rem);border-top:1px solid var(--rule)}
@media (min-width:900px){ .reject{columns:2;column-gap:3.5rem;border-top:0} }
.reject__i{break-inside:avoid;padding:1.25rem 0;border-bottom:1px solid var(--rule);display:grid;grid-template-columns:auto 1fr;gap:.9rem}
@media (min-width:900px){ .reject__i{border-top:1px solid var(--rule);border-bottom:0} }
.reject__x{width:13px;height:13px;margin-top:.4rem;color:var(--alert);flex:none}
.reject__t{font-size:.9375rem;line-height:1.62;color:var(--fg-2);margin:0}
.reject__t b{color:var(--fg);font-weight:600}

.moves{display:grid;margin-top:clamp(2.5rem,5vw,3.5rem);border-top:1px solid var(--rule)}
@media (min-width:700px){ .moves{grid-template-columns:1fr 1fr} }
@media (min-width:1040px){ .moves{grid-template-columns:repeat(3,1fr)} }
.move{padding:1.75rem 0;border-bottom:1px solid var(--rule)}
@media (min-width:700px){
  .move{padding:2rem 2rem 2.25rem 0;border-right:1px solid var(--rule)}
  .move:nth-child(2n){padding-right:0;padding-left:2rem;border-right:0}
}
@media (min-width:1040px){
  .move{padding:2rem 2rem 2.25rem 0;border-right:1px solid var(--rule)}
  .move:nth-child(2n){padding-left:2rem;padding-right:2rem;border-right:1px solid var(--rule)}
  .move:nth-child(3n){padding-left:2rem;padding-right:0;border-right:0}
  .move:nth-child(3n+1){padding-left:0;padding-right:2rem}
}
.move__n{font-family:var(--mono);font-size:var(--fs-eyebrow);letter-spacing:.2em;color:var(--brass)}
.move__t{display:block;font-family:var(--serif);font-size:1.4375rem;line-height:1.16;letter-spacing:-.015em;margin:.7rem 0 .6rem}
.move__d{font-size:.9375rem;line-height:1.6;color:var(--fg-2);margin:0 0 1.15rem}
.move__ch li{display:grid;grid-template-columns:2.6rem 1fr;gap:.35rem;padding:.45rem 0;border-top:1px solid var(--rule);font-size:.875rem;color:var(--fg-2);line-height:1.45}
.move__ch li span{font-family:var(--mono);color:var(--fg-3);font-variant-numeric:tabular-nums}

.tst{margin-top:clamp(2.25rem,4.5vw,3rem)}
.tst__viewport{
  display:flex;gap:1rem;
  overflow-x:auto;overscroll-behavior-x:contain;scroll-snap-type:x mandatory;
  padding-bottom:1rem;margin-inline:calc(var(--gutter) * -1);
  padding-inline:var(--gutter);scroll-padding-inline:var(--gutter);
  scrollbar-width:none;min-height:296px;
}
.tst__viewport::-webkit-scrollbar{display:none}
@media (min-width:700px){ .tst__viewport{gap:1.25rem;min-height:274px} }
@media (min-width:1040px){ .tst__viewport{gap:1.35rem;margin-inline:0;padding-inline:0;scroll-padding-inline:0;min-height:292px} }
.tst__card{
  flex:0 0 86%;min-width:0;scroll-snap-align:start;
  display:flex;flex-direction:column;padding:1.5rem 1.4rem 1.35rem;
  background:var(--ink-850);border:1px solid var(--rule);border-radius:var(--radius);
}
@media (min-width:700px){ .tst__card{flex-basis:calc(50% - .625rem)} }
@media (min-width:1040px){ .tst__card{flex-basis:calc(33.333% - .9rem)} }
.tst__stars{display:flex;gap:2px;color:var(--brass);margin-bottom:.95rem}
.tst__stars svg{width:13px;height:13px}
.tst__q{font-size:.9375rem;line-height:1.65;color:var(--fg);margin:0 0 1.25rem}
.tst__by{margin-top:auto;padding-top:1rem;border-top:1px solid var(--rule);display:flex;align-items:center;gap:.7rem}
.tst__av{width:34px;height:34px;flex:none;border-radius:50%;display:grid;place-items:center;background:var(--ink-750);border:1px solid var(--rule-2);font-family:var(--mono);font-size:.6875rem;color:var(--brass)}
.tst__who{min-width:0}
.tst__who b{display:block;font-size:.875rem;font-weight:600;color:var(--fg)}
.tst__who span{display:flex;align-items:center;gap:.35rem;font-family:var(--mono);font-size:.625rem;letter-spacing:.09em;text-transform:uppercase;color:var(--fg-3);margin-top:.15rem}
.tst__ok{width:11px;height:11px;color:var(--brass);flex:none}
.tst__nav{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-top:.75rem}
.tst__dots{display:flex;gap:.4rem;flex-wrap:wrap}
.tst__dot{width:26px;height:3px;border-radius:1px;background:var(--rule-2);transition:background-color .18s ease}
.tst__dot[aria-current="true"]{background:var(--brass)}
.tst__arrows{display:flex;gap:.5rem}
.tst__arrow{width:44px;height:44px;display:grid;place-items:center;border:1px solid var(--rule-2);border-radius:var(--radius);color:var(--fg-2);transition:color .16s ease,border-color .16s ease}
.tst__arrow:hover{color:var(--fg);border-color:var(--brass)}
.tst__arrow[disabled]{opacity:.35;cursor:default}
.tst__arrow svg{width:15px;height:15px}

.toc{margin-top:clamp(2.25rem,4.5vw,3rem)}
.toc__group{border-top:1px solid var(--rule)}
.toc__group:last-child{border-bottom:1px solid var(--rule)}
.toc__btn{display:flex;align-items:center;justify-content:space-between;gap:1rem;width:100%;min-height:64px;padding:1.15rem 0;text-align:left}
.toc__btn .h4{font-family:var(--serif);font-size:1.3125rem;font-weight:400;letter-spacing:-.012em;line-height:1.2}
.toc__btn-r{display:flex;align-items:center;gap:1rem;flex:none}
.toc__count{font-family:var(--mono);font-size:.6875rem;letter-spacing:.13em;text-transform:uppercase;color:var(--fg-3);white-space:nowrap}
.toc__chev{width:13px;height:13px;color:var(--brass);transition:transform .22s ease}
.toc__btn[aria-expanded="true"] .toc__chev{transform:rotate(180deg)}
.toc__panel{display:none;padding-bottom:1.35rem}
.toc__panel.is-open{display:block}
.toc__list li{display:grid;grid-template-columns:2.9rem minmax(0,1fr) auto;gap:.75rem;align-items:baseline;padding:.62rem 0;border-top:1px solid var(--rule);font-size:.9375rem;line-height:1.45;color:var(--fg)}
.toc__list li span,.toc__list li i{font-family:var(--mono);font-size:.75rem;font-style:normal;color:var(--fg-3);font-variant-numeric:tabular-nums}
.toc__list li i{text-align:right}
@media (min-width:900px){
  .toc{columns:2;column-gap:3.25rem}
  .toc__group{border-top:0;border-bottom:0!important;break-inside:avoid;display:inline-block;width:100%;margin-bottom:2.5rem}
  .toc__btn{pointer-events:none;min-height:0;padding:0 0 .85rem;border-bottom:1px solid var(--rule-2)}
  .toc__chev{display:none}
  .toc__panel,.toc__panel.is-open{display:block;padding-bottom:0}
}

.themes{margin-top:clamp(2.25rem,4.5vw,3rem);border-top:1px solid var(--paper-rule)}
.theme{display:grid;gap:.35rem;padding:1.15rem 0;border-bottom:1px solid var(--paper-rule)}
@media (min-width:800px){ .theme{grid-template-columns:minmax(0,27ch) minmax(0,1fr);gap:2rem;align-items:baseline} }
.theme__t{font-family:var(--serif);line-height:1.16;letter-spacing:-.015em;color:var(--paper-fg)}
.theme__d{margin:0;color:var(--paper-fg-2);line-height:1.6}
.theme--lg{padding:1.6rem 0}
.theme--lg .theme__t{font-size:clamp(1.5rem,1.2rem + 1.3vw,2.125rem)}
.theme--lg .theme__d{font-size:1.0625rem}
.theme--md .theme__t{font-size:clamp(1.1875rem,1.1rem + .5vw,1.4375rem)}
.theme--md .theme__d{font-size:.9375rem}
.theme--sm{padding:.85rem 0}
.theme--sm .theme__t{font-size:1.0625rem}
.theme--sm .theme__d{font-size:.875rem}

.exc{display:grid;gap:1.25rem;margin-top:clamp(2.25rem,4.5vw,3rem)}
@media (min-width:900px){ .exc{grid-template-columns:repeat(3,1fr);gap:1.35rem} }
.exc__card{padding:1.65rem 1.5rem;background:var(--ink-850);border:1px solid var(--rule);border-radius:var(--radius);display:flex;flex-direction:column}
.exc__src{font-family:var(--mono);font-size:.625rem;letter-spacing:.16em;text-transform:uppercase;color:var(--brass);margin-bottom:1rem}
.exc__q{font-family:var(--serif);font-size:1.125rem;line-height:1.44;letter-spacing:-.006em;color:var(--fg);margin:0}
.exc__f{margin-top:auto;padding-top:1.35rem;font-family:var(--mono);font-size:.625rem;letter-spacing:.13em;text-transform:uppercase;color:var(--fg-3)}

/* --- the purchase block -------------------------------------------------- */
.offer{background:none;border:0;padding:0}
.offer__brand{font-family:var(--mono);font-size:var(--fs-eyebrow);letter-spacing:.22em;text-transform:uppercase;color:var(--brass);margin:0 0 .9rem}
.offer__title{margin:0 0 1.1rem}
.offer__title em{font-style:normal;color:var(--brass)}

.offer__sub{font-size:1.0625rem;line-height:1.55;color:var(--fg-2);margin:0 0 1.5rem;max-width:44ch}

.offer__status{
  display:flex;align-items:center;gap:.5rem;margin:0 0 .85rem;
  font-family:var(--mono);font-size:.6875rem;letter-spacing:.16em;
  text-transform:uppercase;color:var(--brass);
}
.status-dot{width:6px;height:6px;border-radius:50%;background:currentColor;flex:none}

.offer__price{
  display:flex;align-items:baseline;gap:.45rem;margin:0 0 .55rem;
  font-family:var(--serif);font-size:clamp(1.75rem,1.5rem + .9vw,2.125rem);
  line-height:1.1;letter-spacing:-.02em;color:var(--fg);
}
.offer__cur{font-family:var(--serif);font-size:.72em;letter-spacing:0;text-transform:none;color:var(--fg)}
.offer__formats{font-size:.875rem;font-weight:600;color:var(--fg);margin:0 0 1.3rem}
.offer__why{font-size:.9375rem;line-height:1.55;color:var(--fg-3);margin:0 0 1.3rem;max-width:42ch}

/* the reassurance stack: no rules between the rows */
.offer__pay{
  display:flex;flex-wrap:wrap;gap:.2rem .5rem;margin:.95rem 0 0;
  font-family:var(--mono);font-size:.6875rem;letter-spacing:.06em;
  color:var(--fg-3);
}
.offer__pay b{font-weight:500;color:var(--brass);letter-spacing:.13em;text-transform:uppercase}

.offer__ticks{display:flex;flex-wrap:wrap;gap:.4rem 1.35rem;margin-top:.85rem}
.offer__ticks li{display:flex;align-items:center;gap:.4rem;font-size:.8125rem;color:var(--fg-2);line-height:1.4}
.offer__ticks svg{width:11px;height:11px;flex:none;color:var(--brass)}

.offer__viewing{
  display:flex;align-items:center;gap:.5rem;margin:.85rem 0 0;
  font-size:.8125rem;color:var(--fg-3);line-height:1.4;
}
.offer__viewing b{font-weight:600;color:var(--fg-2)}
.viewing-dot{
  width:7px;height:7px;border-radius:50%;background:#6FBF84;flex:none;
  box-shadow:0 0 0 3px rgba(111,191,132,.16);
}

.offer__desc{margin-top:1.9rem;padding-top:1.6rem;border-top:1px solid var(--rule);max-width:48ch}
.offer__desc p{font-size:1rem;line-height:1.62;color:var(--fg-2);margin-bottom:1em}
.offer__desc p:last-child{margin-bottom:0}
.offer__desc em{font-style:italic;color:var(--fg)}

/* the framed panel the book sits in */
/* the book floats on the page: transparent ground, natural shadow */
.prod__frame{width:100%;display:flex;justify-content:center;align-items:center}

/* legacy head row, still used by the closing block */
.offer__head{display:flex;flex-wrap:wrap;align-items:baseline;gap:.5rem .85rem;margin-bottom:.45rem}
.offer__head .offer__price{font-size:clamp(2.25rem,1.7rem + 2.2vw,3rem);margin:0}
.offer__was{font-family:var(--mono);font-size:.8125rem;color:var(--fg-3);text-decoration:line-through;text-decoration-thickness:1px}
.offer__note{font-family:var(--mono);font-size:var(--fs-meta);letter-spacing:.08em;color:var(--fg-3);margin:0 0 1.35rem}
.pay-chip{font-family:var(--mono);font-size:.625rem;letter-spacing:.1em;text-transform:uppercase;color:var(--fg-2);border:1px solid var(--rule-2);border-radius:var(--radius-sm);padding:.32rem .55rem;line-height:1.2}
.live-dot{width:6px;height:6px;border-radius:50%;background:var(--brass);flex:none;box-shadow:0 0 0 3px rgba(199,154,94,.15)}

.cd{display:flex;align-items:center;gap:.75rem;margin-bottom:1.25rem;padding:.7rem .85rem;border:1px solid var(--rule-2);border-radius:var(--radius);background:rgba(192,70,58,.05)}
.cd__mark{width:7px;height:7px;border-radius:50%;background:var(--alert);flex:none}
.cd__t{font-family:var(--mono);font-size:.6875rem;letter-spacing:.1em;text-transform:uppercase;color:var(--fg-2);line-height:1.5}
.cd__t b{display:block;color:var(--fg);font-weight:500;font-variant-numeric:tabular-nums;letter-spacing:.06em}

/* framed book on the left, one offer column on the right */
.prod{display:grid;gap:clamp(1.75rem,5vw,3rem)}
.prod > *{min-width:0}
.prod__art{display:flex;flex-direction:column;align-items:center;gap:1.1rem}
/* compact on phones so the price and the button stay near the fold */
.prod__art .book{--bw:clamp(168px,44vw,215px)}
.prod__frame{padding:0}
@media (min-width:640px){ .prod__art .book{--bw:clamp(210px,32vw,265px)} }
@media (min-width:960px){
  .prod{grid-template-columns:minmax(0,44fr) minmax(0,56fr);gap:clamp(3rem,6vw,4.5rem);align-items:start}
  .prod__art{position:sticky;top:calc(var(--header-h) + 2rem)}
  .prod__art .book{--bw:clamp(240px,23vw,320px)}
}
.prod__thumbs{display:flex;gap:.75rem}
.prod__thumb{width:74px;height:104px;flex:none;border:1px solid var(--rule-2);border-radius:var(--radius-sm);background:var(--ink-850);padding:.5rem;overflow:hidden;position:relative}
.prod__thumb::after{content:"";position:absolute;inset:auto 0 0 0;height:40%;background:linear-gradient(180deg,transparent,var(--ink-850))}
.prod__thumb i{display:block;height:2px;border-radius:1px;background:var(--rule-2);margin-bottom:4px}
.prod__thumb i:nth-child(3n){width:72%}
.prod__thumb i:nth-child(4n){width:88%}
.prod__thumb i.hd{background:var(--brass);opacity:.6;height:3px;width:56%;margin-bottom:7px}
.prod__title{margin:0 0 .4rem}
.prod__by{font-family:var(--mono);font-size:var(--fs-meta);letter-spacing:.16em;text-transform:uppercase;color:var(--brass);margin:0 0 1.15rem}
.prod__sub{max-width:52ch;margin-bottom:1.5rem}
.prod__facts{display:flex;flex-wrap:wrap;gap:.4rem;margin-bottom:1.6rem}
.fact{font-family:var(--mono);font-size:.625rem;letter-spacing:.11em;text-transform:uppercase;color:var(--fg-2);border:1px solid var(--rule);border-radius:var(--radius-sm);padding:.36rem .6rem}

.faq{margin-top:clamp(2.25rem,4.5vw,3rem);border-top:1px solid var(--rule)}
.faq__i{border-bottom:1px solid var(--rule)}
.faq__q{display:flex;align-items:center;justify-content:space-between;gap:1.25rem;width:100%;min-height:64px;padding:1.15rem 0;text-align:left;font-size:1.0625rem;font-weight:500;color:var(--fg);line-height:1.4}
.faq__ic{width:13px;height:13px;flex:none;color:var(--brass);transition:transform .22s ease}
.faq__q[aria-expanded="true"] .faq__ic{transform:rotate(45deg)}
.faq__a{display:none;padding:0 0 1.4rem;max-width:66ch}
.faq__a.is-open{display:block}
.faq__a p{font-size:.9375rem;line-height:1.65;color:var(--fg-2)}

.close-buy{border:1px solid var(--rule-2);border-radius:var(--radius);background:var(--ink-850);padding:clamp(1.5rem,4.5vw,2.75rem);display:grid;gap:1.75rem}
@media (min-width:860px){ .close-buy{grid-template-columns:minmax(0,1fr) minmax(0,300px);gap:3rem;align-items:center} }
.close-buy__spec{display:flex;flex-wrap:wrap;gap:.4rem;margin-top:1.25rem}

.mono-plate{display:grid;gap:1.75rem;align-items:start}
@media (min-width:820px){ .mono-plate{grid-template-columns:minmax(0,230px) minmax(0,1fr);gap:clamp(2.5rem,5vw,4rem)} }
.monogram{aspect-ratio:1/1.18;width:100%;max-width:230px;border:1px solid var(--rule-2);border-radius:var(--radius);background:var(--ink-850);display:flex;flex-direction:column;justify-content:space-between;padding:1.15rem}
.monogram__l{font-family:var(--serif);font-size:clamp(3.25rem,9vw,4.5rem);line-height:.88;letter-spacing:.02em;color:var(--fg);text-align:center;margin:auto 0}
.monogram__t{font-family:var(--mono);font-size:.5625rem;letter-spacing:.2em;text-transform:uppercase;color:var(--fg-3);line-height:1.65}
.sigwrap{margin-top:2.25rem;padding-top:1.5rem;border-top:1px solid var(--rule)}
.sig{width:200px;max-width:64%;height:auto;color:var(--fg-2)}

.bio-list{border-top:1px solid var(--rule);margin-top:clamp(2rem,4vw,2.75rem)}
.bio-list > div{display:grid;gap:.3rem;padding:1.05rem 0;border-bottom:1px solid var(--rule)}
@media (min-width:700px){ .bio-list > div{grid-template-columns:minmax(0,10rem) minmax(0,1fr);gap:2rem;align-items:baseline} }
.bio-list dt{font-family:var(--mono);font-size:var(--fs-meta);letter-spacing:.13em;text-transform:uppercase;color:var(--brass);font-weight:500}
.bio-list dd{font-size:.9375rem;line-height:1.62;color:var(--fg-2)}

/* --- components that also appear on the warm bands ----------------------- */
.band-paper .bio-list,.band-paper-2 .bio-list,
.band-paper .bio-list > div,.band-paper-2 .bio-list > div{border-color:var(--paper-rule)}
.band-paper .bio-list dt,.band-paper-2 .bio-list dt{color:var(--brass-paper)}
.band-paper .bio-list dd,.band-paper-2 .bio-list dd{color:var(--paper-fg-2)}

.band-paper .exc__card,.band-paper-2 .exc__card{
  background:rgba(255,255,255,.42);border-color:var(--paper-rule-2);
}
.band-paper .exc__src,.band-paper-2 .exc__src{color:var(--brass-paper)}
.band-paper .exc__q,.band-paper-2 .exc__q{color:var(--paper-fg)}
.band-paper .exc__f,.band-paper-2 .exc__f{color:var(--paper-fg-3)}

.band-paper .step__d,.band-paper-2 .step__d,
.band-paper .move__d,.band-paper-2 .move__d{color:var(--paper-fg-2)}
.band-paper .steps,.band-paper-2 .steps,
.band-paper .step,.band-paper-2 .step,
.band-paper .moves,.band-paper-2 .moves,
.band-paper .move,.band-paper-2 .move,
.band-paper .move__ch li,.band-paper-2 .move__ch li{border-color:var(--paper-rule)}
.band-paper .step__n,.band-paper-2 .step__n,
.band-paper .move__n,.band-paper-2 .move__n{color:var(--brass-paper)}

/* ---------- 9. FORMS ----------------------------------------------------- */
.form{max-width:600px;margin-top:clamp(2rem,4vw,2.75rem)}
.field{margin-bottom:1.5rem}
.field__label{display:block;margin-bottom:.5rem;font-family:var(--mono);font-size:var(--fs-meta);letter-spacing:.13em;text-transform:uppercase;color:var(--fg-2)}
.field__label .opt{color:var(--fg-3)}
.field__input,.field__area{
  width:100%;min-height:52px;padding:.85rem 1rem;
  background:var(--ink-850);color:var(--fg);
  border:1px solid var(--rule-2);border-radius:var(--radius);
  font-size:1rem;line-height:1.5;transition:border-color .16s ease;
}
.field__area{min-height:170px;resize:vertical}
.field__input:hover,.field__area:hover{border-color:var(--rule-3)}
.field__input:focus,.field__area:focus{outline:2px solid var(--brass-lift);outline-offset:1px;border-color:var(--brass)}
.field.has-error .field__input,.field.has-error .field__area{border-color:var(--alert)}
.field__err{display:none;align-items:center;gap:.45rem;margin-top:.5rem;font-size:.8125rem;color:var(--alert-fg);line-height:1.45}
.field.has-error .field__err{display:flex}
.field__err svg{width:12px;height:12px;flex:none}
.hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
.form__foot{display:flex;flex-wrap:wrap;align-items:center;gap:1rem 1.5rem;margin-top:.35rem}
.form__note{font-size:.8125rem;color:var(--fg-3);line-height:1.55;margin:0;max-width:34ch}
.form__status{display:none;align-items:flex-start;gap:.75rem;margin-top:1.5rem;padding:1rem 1.15rem;border-radius:var(--radius);border:1px solid var(--rule-2);font-size:.9375rem;line-height:1.55}
.form__status.is-on{display:flex}
.form__status svg{width:15px;height:15px;flex:none;margin-top:.22rem}
.form__status--ok{border-color:rgba(199,154,94,.4);background:rgba(199,154,94,.07);color:var(--fg)}
.form__status--ok svg{color:var(--brass)}
.form__status--bad{border-color:rgba(192,70,58,.45);background:rgba(192,70,58,.07);color:var(--fg)}
.form__status--bad svg{color:var(--alert-fg)}
.btn-spin{display:none;width:14px;height:14px;border:1.5px solid rgba(18,16,12,.3);border-top-color:var(--cta-ink);border-radius:50%;animation:spin .7s linear infinite}
.is-busy .btn-spin{display:inline-block}
@keyframes spin{to{transform:rotate(360deg)}}

.contact-side{border-top:1px solid var(--rule);margin-top:clamp(2.5rem,5vw,3.5rem);padding-top:1.75rem}
@media (min-width:900px){
  .contact-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,300px);gap:clamp(3rem,6vw,5rem);align-items:start}
  .contact-side{margin-top:0;border-top:0;padding-top:0}
}
.contact-side dl{border-top:1px solid var(--rule)}
.contact-side dl > div{padding:.95rem 0;border-bottom:1px solid var(--rule)}
.contact-side dt{font-family:var(--mono);font-size:.625rem;letter-spacing:.15em;text-transform:uppercase;color:var(--fg-3);margin-bottom:.3rem}
.contact-side dd{font-size:.9375rem;color:var(--fg-2);line-height:1.55}

/* ---------- 10. FOOTER --------------------------------------------------- */
.site-foot{background:var(--ink-950);border-top:1px solid var(--rule);padding-block:clamp(2.75rem,6vw,4rem) 2rem}
.foot__top{display:grid;gap:2.25rem;padding-bottom:2.25rem;border-bottom:1px solid var(--rule)}
@media (min-width:820px){ .foot__top{grid-template-columns:minmax(0,1.4fr) minmax(0,1fr) minmax(0,1fr);gap:3rem} }
.foot__blurb{font-size:.9375rem;line-height:1.62;color:var(--fg-3);max-width:38ch;margin:1.1rem 0 0}
.foot__h{font-family:var(--mono);font-size:.625rem;letter-spacing:.17em;text-transform:uppercase;color:var(--fg-3);margin-bottom:.85rem}
.foot__links li a{display:inline-flex;min-height:40px;align-items:center;font-size:.9375rem;color:var(--fg-2);transition:color .16s ease}
.foot__links li a:hover{color:var(--brass)}
.foot__bot{display:flex;flex-wrap:wrap;justify-content:space-between;gap:1rem;padding-top:1.75rem}
.foot__bot p{margin:0;font-family:var(--mono);font-size:.6875rem;letter-spacing:.08em;color:var(--fg-3);line-height:1.7}

/* ---------- 11. MOTION --------------------------------------------------- */
[data-reveal]{opacity:0;transform:translateY(14px);transition:opacity .62s cubic-bezier(.22,.61,.36,1),transform .62s cubic-bezier(.22,.61,.36,1)}
[data-reveal].is-in{opacity:1;transform:none}
.no-js [data-reveal]{opacity:1;transform:none}

@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important;scroll-behavior:auto!important}
  [data-reveal]{opacity:1!important;transform:none!important}
}

@media print{
  .header,.menu,.sticky-cta,.skip-link,.tst__nav,.book__glow{display:none!important}
  body{background:#fff;color:#000}
}
