/*
 * This is a manifest file that'll be compiled into application.css, which will include all the files
 * listed below.
 *
 * Any CSS (and SCSS, if configured) file within this directory, lib/assets/stylesheets, or any plugin's
 * vendor/assets/stylesheets directory can be referenced here using a relative path.
 *
 * You're free to add application-wide styles to this file and they'll appear at the bottom of the
 * compiled file so the styles you add here take precedence over styles defined in any other CSS
 * files in this directory. Styles in this file should be added after the last require_* statement.
 * It is generally better to create a new file per style scope.
 *

 */

:root{
  --manila:#EFE9DC;
  --manila-deep:#DFD6C2;
  --paper:#FCFBF8;
  --ink:#16233D;
  --ink-soft:#4A5468;
  --frank:#C42B20;
  --air:#2C5AA0;
  --rule:#CFC4AC;
  --measure:34rem;
}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{
  margin:0;
  background:var(--manila);
  color:var(--ink);
  font-family:"Newsreader",Georgia,serif;
  font-size:1.0625rem;
  line-height:1.65;
}
h1,h2,h3,.mast,.btn,label,.step-n,.spec dt{font-family:"Instrument Sans",system-ui,sans-serif}
a{color:var(--ink);text-underline-offset:3px;text-decoration-thickness:1px}
a:focus-visible,button:focus-visible,input:focus-visible{
  outline:3px solid var(--air);outline-offset:3px;
}

.wrap{max-width:66rem;margin:0 auto;padding:0 1.5rem}
.site-head{
  display:flex;justify-content:space-between;align-items:baseline;
  padding:1.6rem 0 0;
}
.mast{
  font-size:1.35rem;font-weight:700;letter-spacing:-.02em;
  text-decoration:none;
}
.mast em{font-style:normal;color:var(--frank)}
.site-head .sub{font-size:.9rem;color:var(--ink-soft)}

h1{
  font-size:clamp(2.1rem,5.4vw,3.5rem);
  line-height:1.06;letter-spacing:-.022em;font-weight:700;
  margin:0 0 1rem;max-width:15ch;
}
h2{
  font-size:clamp(1.35rem,2.6vw,1.8rem);
  line-height:1.15;letter-spacing:-.02em;font-weight:600;
  margin:0 0 .85rem;
}
h3{font-size:1.06rem;font-weight:600;letter-spacing:-.01em;margin:0 0 .3rem}
p{margin:0 0 1.15rem;max-width:var(--measure)}
.lede{font-size:1.2rem;color:var(--ink-soft);max-width:36rem}

/* ---------- hero ---------- */
.hero{
  display:grid;grid-template-columns:1.05fr .95fr;gap:3.5rem;align-items:center;
  padding:3.5rem 0 4rem;
}
@media(max-width:860px){.hero{grid-template-columns:1fr;gap:2.5rem;padding:2.5rem 0 3rem}}

.booklet-stage{position:relative;padding:1rem}
.booklet{
  position:relative;
  background:var(--paper);
  padding:1.4rem 1.4rem 1.7rem;
  box-shadow:
    0 1px 0 var(--manila-deep),
    0 18px 34px -18px rgba(22,35,61,.45);
  transform:rotate(-1.4deg);
}
.booklet::before{
  content:"";position:absolute;left:-3px;top:22%;
  width:6px;height:34px;background:#9AA0A6;
  box-shadow:0 74px 0 #9AA0A6;
  border-radius:1px;
}
.booklet-title{
  font-family:"Instrument Sans",sans-serif;font-weight:700;
  font-size:1.5rem;letter-spacing:-.02em;line-height:1;margin:0 0 .15rem;
}
.booklet-date{font-size:.85rem;color:var(--ink-soft);margin:0 0 .9rem}
.grid{display:grid;grid-template-columns:1fr 1fr;gap:.55rem}
.snap{
  aspect-ratio:4/3;border:5px solid #fff;
  box-shadow:0 1px 4px rgba(22,35,61,.18);
}
.snap.tall{aspect-ratio:3/4;grid-row:span 2}
.s1{background:linear-gradient(150deg,#8FA68C,#C6C29B 60%,#E3D9C0)}
.s2{background:linear-gradient(200deg,#7E93B8,#B9C2CE 70%,#DDD8CC)}
.s3{background:linear-gradient(120deg,#C79A78,#DFC3A4 65%,#EFE3D2)}
.s4{background:linear-gradient(165deg,#6F8296,#A7B0B4 60%,#D9D3C6)}
.cap{
  font-size:.78rem;color:var(--ink-soft);
  margin:.45rem 0 0;line-height:1.35;
}
.postmark{
  position:absolute;right:-1.1rem;top:-1.1rem;
  width:104px;height:104px;border-radius:50%;
  border:2px solid var(--frank);color:var(--frank);
  display:grid;place-content:center;text-align:center;
  font-family:"Instrument Sans",sans-serif;font-size:.62rem;font-weight:600;
  line-height:1.45;letter-spacing:.06em;
  transform:rotate(11deg);opacity:.82;
  background:rgba(252,251,248,.35);
}
.postmark b{display:block;font-size:.8rem;letter-spacing:.02em}

/* ---------- signup ---------- */
.signup{margin:1.6rem 0 0;max-width:30rem}
.signup .row{display:flex;gap:.5rem}
@media(max-width:480px){.signup .row{flex-direction:column}}
.signup label{
  display:block;font-size:.9rem;font-weight:500;margin:0 0 .4rem;
}
input[type=email]{
  flex:1;min-width:0;
  font-family:"Newsreader",serif;font-size:1rem;
  padding:.8rem .85rem;
  border:1.5px solid var(--ink);border-radius:2px;
  background:var(--paper);color:var(--ink);
}
.btn{
  border:1.5px solid var(--frank);border-radius:2px;
  background:var(--frank);color:#fff;
  font-size:.98rem;font-weight:600;letter-spacing:.01em;
  padding:.8rem 1.35rem;cursor:pointer;white-space:nowrap;
}
.btn:hover{background:#A82318;border-color:#A82318}
.consent{font-size:.82rem;color:var(--ink-soft);margin:.6rem 0 0;max-width:32rem}
.form-error{font-size:.88rem;color:var(--frank);margin:0 0 .6rem;font-weight:600}

/* honeypot: hidden from real users, still reachable by simple bots */
.hp-field{position:absolute;left:-9999px;top:auto;width:1px;height:1px;overflow:hidden}

/* ---------- sections ---------- */
section{padding:3.2rem 0;border-top:1px solid var(--rule)}
.steps{display:grid;grid-template-columns:repeat(3,1fr);gap:2rem;margin-top:1.8rem}
@media(max-width:760px){.steps{grid-template-columns:1fr;gap:1.6rem}}
.step-n{
  font-size:.82rem;font-weight:600;color:var(--frank);
  display:block;margin:0 0 .45rem;
}
.step p{margin:0;font-size:.98rem;color:var(--ink-soft);max-width:26rem}

.spec{
  margin:1.6rem 0 0;display:grid;grid-template-columns:11rem 1fr;
  gap:.1rem 1.5rem;max-width:40rem;
}
@media(max-width:600px){.spec{grid-template-columns:1fr;gap:.1rem}}
.spec dt{font-size:.95rem;font-weight:600;padding:.55rem 0 .1rem}
.spec dd{margin:0;padding:.55rem 0 .1rem;color:var(--ink-soft);font-size:.98rem;border-bottom:1px solid var(--rule)}
@media(max-width:600px){.spec dt{padding-bottom:0}.spec dd{padding-top:.1rem;padding-bottom:.7rem}}

.status{
  background:var(--paper);border-left:3px solid var(--air);
  padding:1.4rem 1.5rem;max-width:38rem;
}
.status h2{font-size:1.15rem;margin-bottom:.5rem}
.status p{font-size:.98rem;margin-bottom:.6rem}
.status p:last-child{margin-bottom:0}

.closer{background:var(--paper);border-top:1px solid var(--rule)}
.closer .wrap{padding-top:3.2rem;padding-bottom:3.4rem}

footer{padding:2rem 0 3rem;font-size:.88rem;color:var(--ink-soft)}
footer nav{display:flex;gap:1.2rem;flex-wrap:wrap;margin-bottom:.8rem}

/* ---------- SEO article ---------- */
.article{padding:2.6rem 0 0;max-width:var(--measure)}
.article h1{font-size:clamp(1.9rem,4.4vw,2.7rem);max-width:20ch}
.meta{font-size:.85rem;color:var(--ink-soft);margin:0 0 1.6rem}
.article h2{margin-top:2.4rem}
.article ul{padding-left:1.1rem;max-width:var(--measure)}
.article li{margin-bottom:.5rem}
.inline-note{
  border-left:3px solid var(--rule);
  padding:.2rem 0 .2rem 1.1rem;margin:1.8rem 0;
  color:var(--ink-soft);font-size:.98rem;
}
.inline-note a{color:var(--ink)}
.endcap{
  margin:2.8rem 0 0;background:var(--paper);
  border:1px solid var(--rule);padding:1.6rem 1.6rem 1.8rem;
}
.endcap h2{margin-top:0;font-size:1.25rem}
.related{margin-top:2.6rem;padding-top:1.4rem;border-top:1px solid var(--rule)}
.related h2{font-size:1rem;margin-bottom:.7rem}
.related ul{list-style:none;padding:0;margin:0}
.related li{margin-bottom:.45rem}

/* ---------- privacy / plain content pages ---------- */
.content-page{padding:2.6rem 0 4rem;max-width:var(--measure)}

@media(prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}
