:root{
  --espresso:#0F0B09;
  --espresso-2:#15100D;
  --card:#191310;
  --cream:#F2E8D4;
  --muted:#C6B69C;
  --quiet:#B5A796;
  --brass:#D3A24A;
  --brass-lt:#E8C475;
  --line:rgba(242,232,212,.15);
  --line-strong:rgba(211,162,74,.45);
  --wrap:1320px;
  --gutter:clamp(20px,5vw,56px);
  --serif:'Bodoni Moda',Georgia,'Times New Roman',serif;
  --sans:'Libre Franklin',-apple-system,BlinkMacSystemFont,'Segoe UI',Helvetica,Arial,sans-serif;
}

*,*::before,*::after{box-sizing:border-box;}

html{-webkit-text-size-adjust:100%;scroll-behavior:smooth;}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto;}}

body{
  margin:0;
  background:var(--espresso);
  color:var(--cream);
  font-family:var(--sans);
  font-weight:300;
  font-size:1.0625rem;
  line-height:1.72;
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
}

img{max-width:100%;display:block;}

a{color:var(--brass-lt);text-decoration:none;}
a:hover{color:var(--cream);}

:focus{outline:none;}
:focus-visible{outline:2px solid var(--brass);outline-offset:3px;border-radius:2px;}

.wrap{max-width:var(--wrap);margin:0 auto;padding-inline:var(--gutter);}

.vh{
  position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;
  overflow:hidden;clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap;border:0;
}

.skip{
  position:absolute;left:-9999px;top:0;z-index:50;
  background:var(--brass);color:var(--espresso);padding:12px 18px;font-weight:500;
}
.skip:focus{left:12px;top:12px;}

/* ---------- header ---------- */

.site-head{border-bottom:1px solid var(--line);}
.head-inner{
  display:flex;align-items:center;justify-content:space-between;gap:20px;
  padding-block:22px;
}

.wordmark{
  font-family:var(--serif);
  font-size:clamp(1.05rem,2.2vw,1.35rem);
  letter-spacing:.46em;
  text-indent:.46em;
  color:var(--cream);
  font-weight:400;
}
.wordmark:hover{color:var(--cream);}
.wordmark.small{font-size:.95rem;}

/* ---------- buttons ---------- */

.btn{
  display:inline-flex;align-items:center;justify-content:center;
  min-height:48px;padding:0 26px;
  font-family:var(--sans);font-size:.97rem;font-weight:500;line-height:1;
  letter-spacing:.01em;border-radius:2px;cursor:pointer;
  transition:background-color .18s ease,color .18s ease,border-color .18s ease;
}
.btn-ghost{
  border:1px solid var(--line-strong);color:var(--cream);background:transparent;
}
.btn-ghost:hover{border-color:var(--brass);color:var(--brass-lt);}
.btn-solid{
  border:1px solid var(--brass);background:var(--brass);color:#170F06;
}
.btn-solid:hover{background:var(--brass-lt);border-color:var(--brass-lt);color:#170F06;}
.btn-solid[disabled]{opacity:.55;cursor:default;}

@media (max-width:640px){.head-cta{display:none;}}

/* ---------- hero ---------- */

.hero{border-bottom:1px solid var(--line);}
.hero-grid{
  display:grid;
  grid-template-columns:minmax(0,1.7fr) minmax(0,1fr);
  gap:clamp(28px,5vw,72px);
  align-items:stretch;
  padding-block:clamp(48px,7vw,92px) 0;
}
.hero-copy{padding-bottom:clamp(48px,7vw,92px);align-self:center;}

h1{
  font-family:var(--serif);
  font-weight:400;
  font-size:clamp(2.2rem,5vw,4.2rem);
  line-height:1.05;
  letter-spacing:-.012em;
  text-wrap:pretty;
  margin:0 0 clamp(20px,2.4vw,30px);
}
h1 em{font-style:italic;color:var(--brass);}

.lede{font-size:clamp(1.02rem,1.5vw,1.17rem);color:var(--cream);margin:0 0 14px;}
.sub{color:var(--muted);margin:0 0 14px;max-width:46ch;}

.hero-art{position:relative;min-height:240px;}
.hero-art img{
  width:100%;height:100%;object-fit:cover;object-position:center 40%;
}

@media (max-width:860px){
  .hero-grid{grid-template-columns:1fr;gap:0;padding-block:clamp(34px,7vw,52px) 0;}
  .hero-copy{padding-bottom:clamp(30px,6vw,44px);}
  .hero-art{min-height:0;margin-inline:calc(var(--gutter)*-1);}
  .hero-art img{height:clamp(230px,46vw,340px);}
}

/* ---------- signup ---------- */

.signup{margin-top:clamp(26px,3vw,36px);}
.signup-row{display:flex;gap:10px;flex-wrap:wrap;max-width:640px;}
.signup-center .signup-row{margin-inline:auto;}

.signup input[type=email],.signup input[name=firstName]{
  flex:1 1 240px;min-width:0;min-height:48px;
  background:transparent;color:var(--cream);
  border:1px solid var(--line-strong);border-radius:2px;
  padding:0 16px;font-family:var(--sans);font-size:1rem;font-weight:300;
}
.signup input[name=firstName]{flex:0 1 160px;}
.signup input[type=email]::placeholder,.signup input[name=firstName]::placeholder{color:var(--quiet);opacity:1;}
.signup input[type=email]:hover,.signup input[name=firstName]:hover{border-color:var(--brass);}
.signup input[type=email][aria-invalid=true],.signup input[name=firstName][aria-invalid=true]{border-color:#D98A6A;}

@media (max-width:560px){
  .signup-row{flex-direction:column;gap:12px;}
  .signup-row input[type=email],.signup-row input[name=firstName],.signup-row .btn{width:100%;flex:1 1 auto;}
}

.fineprint{
  font-size:.845rem;line-height:1.62;color:var(--quiet);
  margin:14px 0 0;max-width:52ch;
}
.fineprint.center{margin-inline:auto;text-align:center;margin-top:26px;}

.formstatus{margin:14px 0 0;font-size:.9rem;line-height:1.6;max-width:52ch;min-height:0;}
.signup-center .formstatus,.signup-center .fineprint{margin-inline:auto;text-align:center;}
.formstatus:empty{display:none;}
.formstatus[data-tone=ok]{color:var(--brass-lt);}
.formstatus[data-tone=err]{color:#E9A488;}
.formstatus[data-tone=note]{color:var(--quiet);}

.done{max-width:52ch;}
.signup-center .done{margin-inline:auto;text-align:center;}
.done .say{margin-bottom:10px;}
.done p{color:var(--muted);margin:0 0 10px;}
.done p:last-child{margin-bottom:0;}

/* ---------- bands ---------- */

.band{border-bottom:1px solid var(--line);padding-block:clamp(54px,8vw,104px);}
.band:last-of-type{border-bottom:0;}

h2{
  font-family:var(--serif);
  font-weight:400;
  font-size:clamp(1.9rem,3.9vw,3.05rem);
  line-height:1.12;
  letter-spacing:-.008em;
  margin:0;
  max-width:18ch;
  text-wrap:balance;
}

.rule{
  display:block;width:64px;height:1px;background:var(--brass);
  margin:clamp(20px,2.4vw,28px) 0 clamp(20px,2.4vw,28px);
  opacity:.85;
}
.rule.center{margin-inline:auto;}

.say{
  font-size:clamp(1.08rem,1.7vw,1.3rem);
  color:var(--cream);margin:0 0 16px;max-width:40ch;
}
.split-r p,.prose p{color:var(--muted);margin:0 0 16px;max-width:52ch;}
.split-r p:last-child,.prose p:last-child{margin-bottom:0;}

.split{
  display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);
  gap:clamp(28px,5vw,80px);align-items:start;
}
.split-l h2{max-width:15ch;}
.prose{padding-top:clamp(0px,1vw,10px);}

@media (max-width:860px){
  .split{grid-template-columns:1fr;gap:24px;}
  h2{max-width:20ch;}
}

/* ---------- sample question card ---------- */

.card{
  background:var(--card);
  border:1px solid var(--line);
  border-radius:3px;
  padding:clamp(24px,3vw,36px);
}
.card-kicker{
  margin:0 0 18px;color:var(--brass);
  font-size:.76rem;letter-spacing:.16em;text-transform:uppercase;font-weight:500;
}
.card-q{
  font-family:var(--serif);font-size:clamp(1.2rem,2.1vw,1.55rem);
  line-height:1.3;color:var(--cream);margin:0 0 26px;
}
.card-label{margin:0 0 10px;font-size:.86rem;color:var(--quiet);}
.card-field{
  height:92px;border:1px solid var(--line);border-radius:2px;
  background:rgba(242,232,212,.02);
}

/* ---------- price + founder + close ---------- */

.price-tag{font-size:clamp(1.05rem,1.6vw,1.2rem);color:var(--cream)!important;}
.price-tag strong{color:var(--brass-lt);font-weight:500;}

.founder{text-align:center;}
.founder h2{margin-inline:auto;max-width:20ch;}
.founder blockquote{
  margin:clamp(24px,3vw,34px) auto 0;max-width:44ch;
}
.founder blockquote p{
  font-family:var(--serif);font-style:italic;
  font-size:clamp(1.25rem,2.5vw,1.8rem);line-height:1.42;
  color:var(--cream);margin:0;
}
.founder blockquote footer{
  margin-top:18px;color:var(--brass);font-size:.95rem;letter-spacing:.06em;
}

.close{text-align:center;background:var(--espresso-2);}
.close h2{margin-inline:auto;max-width:22ch;}

/* ---------- footer ---------- */

.site-foot{border-top:1px solid var(--line);padding-block:34px 44px;}
.foot-inner{
  display:flex;align-items:center;justify-content:space-between;
  gap:16px;flex-wrap:wrap;
}
.foot-inner nav{display:flex;gap:22px;}
.foot-inner a{font-size:.9rem;color:var(--quiet);}
.foot-inner a:hover{color:var(--cream);}
.foot-note{margin:0;font-size:.82rem;color:var(--quiet);}

@media (max-width:640px){
  .foot-inner{flex-direction:column;align-items:flex-start;gap:14px;}
}

/* ---------- reveal ---------- */

[data-reveal]{opacity:1;}
.js [data-reveal]{opacity:0;transform:translateY(14px);}
.js [data-reveal].in{opacity:1;transform:none;transition:opacity .7s ease,transform .7s ease;}

@media (prefers-reduced-motion:reduce){
  .js [data-reveal]{opacity:1!important;transform:none!important;transition:none!important;}
  .btn{transition:none;}
}
