:root{
  --paper:#FBFAF6;
  --card:#FFFFFF;
  --ink:#1C1A2E;
  --ink-soft:#5C5870;
  --ink-mute:#85819A;
  --indigo:#4B3FB5;
  --indigo-deep:#3A2F94;
  --indigo-tint:#ECE9FB;
  --marigold:#F4B237;
  --marigold-soft:#FCEBC6;
  --hl:rgba(244,178,55,.55);
  --line:#EAE7DE;
  --line-card:#ECEAE2;
  --shadow:0 1px 2px rgba(28,26,46,.04), 0 12px 32px -16px rgba(28,26,46,.18);
  --shadow-pop:0 2px 6px rgba(28,26,46,.06), 0 28px 60px -24px rgba(75,63,181,.34);
}

*{box-sizing:border-box;}
html{-webkit-text-size-adjust:100%;}
body{
  margin:0;
  background:var(--paper);
  color:var(--ink);
  font-family:"Inter",system-ui,-apple-system,sans-serif;
  line-height:1.5;
  -webkit-font-smoothing:antialiased;
}
a{color:inherit;text-decoration:none;}
::selection{background:var(--hl);}

.wrap{max-width:1180px;margin:0 auto;padding:0 28px;}

/* ---------- announcement bar ---------- */
.banner{
  background:var(--marigold-soft);
  color:var(--ink);
  text-align:center;
  font-size:14px;
  padding:10px 16px;
}
.banner .new{
  font-family:"Space Mono",monospace;font-size:11px;letter-spacing:.06em;
  background:var(--ink);color:#fff;border-radius:5px;padding:2px 7px;margin-right:10px;
  text-transform:uppercase;
}
.banner a{font-weight:600;border-bottom:1px solid rgba(28,26,46,.3);margin-left:8px;}
.banner a:hover{border-bottom-color:var(--ink);}

/* ---------- nav ---------- */

.brand{display:flex;align-items:center;gap:9px;font-family:"Fraunces",serif;
  font-weight:600;font-size:23px;letter-spacing:-.01em;position:relative;}
.brand .swipe-mini{position:relative;}
.brand .swipe-mini::after{
  content:"";position:absolute;left:-.04em;right:-.06em;bottom:.04em;height:.34em;
  background:var(--hl);border-radius:.5em .6em .4em .55em / .9em .6em .9em .6em;
  transform:rotate(-1.5deg);z-index:-1;
}
.logo-mark{width:30px;height:30px;border-radius:9px;background:var(--indigo);
  display:grid;place-items:center;flex:0 0 auto;}

.btn{
  font-family:inherit;font-size:15px;font-weight:600;cursor:pointer;
  border-radius:11px;padding:11px 18px;border:1px solid transparent;
  transition:transform .15s ease, box-shadow .2s ease, background .2s ease;
}
.btn-primary{background:var(--ink);color:#fff;}
.btn-primary:hover{transform:translateY(-1px);box-shadow:0 8px 20px -8px rgba(28,26,46,.5);}

/* ---------- hero ---------- */
.hero {
    text-align: center;
    padding: 48px 0 34px;
}

.hero .wrap {
    max-width: 720px;
    margin: 0 auto;
    padding: 0 18px;
}

.hero h1 {
    display: block;
    max-width: 620px;
    margin: 18px auto 18px;
    font-family: Georgia, serif;
    font-size: clamp(42px, 7vw, 62px);
    line-height: 1.08;
    font-weight: 700;
    color: #171629;
    text-align: center;
}

.hero .lede {
    max-width: 690px;
    margin: 0 auto;
    text-align: center;
}

.eyebrow {
    text-align: center;
    margin: 0 auto;
}

.checks,
.social {
    justify-content: center;
}
h1{font-family:"Fraunces",serif;font-weight:500;letter-spacing:-.02em;
  font-size:clamp(40px,6.2vw,72px);line-height:1.02;margin:20px auto 0;max-width:13ch;}
.hl{position:relative;white-space:nowrap;}
.hl::before{
  content:"";position:absolute;left:-.08em;right:-.08em;top:.42em;bottom:.05em;
  background:var(--hl);
  border-radius:.5em .7em .4em .6em / .9em .6em .9em .5em;
  transform:rotate(-1.4deg) scaleX(0);transform-origin:left center;z-index:-1;
  animation:swipe .75s .45s cubic-bezier(.2,.75,.25,1) forwards;
}
.lede{max-width:600px;margin:24px auto 0;font-size:18.5px;color:var(--ink-soft);line-height:1.55;}
.lede .mark{color:var(--ink);font-weight:600;}

.checks{display:flex;gap:30px;justify-content:center;flex-wrap:wrap;margin:34px 0 0;
  font-size:15px;color:var(--ink-soft);font-weight:500;}
.checks span{display:inline-flex;align-items:center;gap:9px;}
.tick{width:20px;height:20px;border-radius:50%;background:var(--indigo-tint);
  display:grid;place-items:center;flex:0 0 auto;}

.social{display:flex;gap:14px;align-items:center;justify-content:center;margin:30px 0 0;flex-wrap:wrap;}
.avatars{display:flex;}
.avatars .av{width:38px;height:38px;border-radius:50%;border:2.5px solid var(--paper);
  margin-left:-11px;display:grid;place-items:center;color:#fff;font-size:13px;font-weight:700;
  font-family:"Inter";}
.avatars .av:first-child{margin-left:0;}
.social .label{font-size:15px;color:var(--ink-soft);}
.social .label b{color:var(--ink);font-weight:700;}
.stars{display:flex;gap:2px;margin-bottom:2px;}

.social {
    display: flex;
    justify-content: center;
    margin-top: 28px;
}

.social > div {
    text-align: center;
}

.stars {
    display: flex;
    justify-content: center;
    gap: 2px;
    margin-bottom: 8px;
}

/* ---------- pricing cards ---------- */
section[aria-label="Plans"] {
    padding-bottom: 80px;
}
.plans{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:26px;
  max-width:880px;margin:64px auto 0;align-items:start;}
.card{background:var(--card);border:1px solid var(--line-card);border-radius:22px;
  box-shadow:var(--shadow);overflow:hidden;transition:transform .2s ease, box-shadow .25s ease;}
.card:hover{transform:translateY(-3px);box-shadow:var(--shadow-pop);}
.card.pop{border:1.5px solid var(--indigo);box-shadow:var(--shadow-pop);}
.ribbon{background:var(--marigold-soft);color:var(--indigo-deep);
  font-family:"Space Mono",monospace;font-size:12px;letter-spacing:.22em;text-transform:uppercase;
  font-weight:700;text-align:center;padding:9px;
  background-image:repeating-linear-gradient(45deg,rgba(244,178,55,.18) 0 7px,transparent 7px 14px);}
.card-body{padding:34px 32px 38px;}
.plan-name{font-family:"Space Mono",monospace;font-size:14px;letter-spacing:.2em;
  text-transform:uppercase;color:var(--indigo);font-weight:700;}
.price{display:flex;align-items:baseline;gap:8px;margin:18px 0 0;}
.price .amt{font-family:"Fraunces",serif;font-weight:500;font-size:56px;letter-spacing:-.02em;line-height:1;}
.price .per{font-size:17px;color:var(--ink-mute);font-weight:500;}
.billed{margin-top:9px;font-size:14.5px;color:var(--ink-mute);min-height:21px;}
.save{background:var(--indigo-tint);color:var(--indigo-deep);font-weight:700;font-size:12.5px;
  border-radius:6px;padding:2px 8px;margin-left:6px;}
.blurb{margin:16px 0 0;font-size:16px;color:var(--ink-soft);line-height:1.5;min-height:48px;}

.cta{display:block;width:100%;text-align:center;margin:24px 0 0;font-size:16px;font-weight:600;
  border-radius:13px;padding:15px;cursor:pointer;font-family:inherit;
  transition:transform .15s ease, box-shadow .2s ease, background .2s ease, border-color .2s ease;}
.cta-out{background:#fff;border:1.5px solid var(--line);color:var(--ink);}
.cta-out:hover{border-color:var(--ink);transform:translateY(-1px);}
.cta-fill{background:var(--indigo);border:1.5px solid var(--indigo);color:#fff;}
.cta-fill:hover{background:var(--indigo-deep);border-color:var(--indigo-deep);transform:translateY(-1px);
  box-shadow:0 12px 26px -10px rgba(75,63,181,.55);}

.feat-head{margin:30px 0 16px;font-size:15px;font-weight:700;color:var(--ink);}
ul.feats{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:15px;}
ul.feats li{display:flex;gap:12px;align-items:flex-start;font-size:15.5px;color:var(--ink);}
.chip{width:24px;height:24px;border-radius:7px;flex:0 0 auto;display:grid;place-items:center;margin-top:1px;}
.chip.indigo{background:var(--indigo-tint);}
.chip.gold{background:var(--marigold-soft);}

/* ---------- closing line ---------- */
.closer{text-align:center;margin:46px auto 90px;font-size:16px;color:var(--ink-soft);}
.closer a{color:var(--indigo);font-weight:600;border-bottom:1.5px solid var(--indigo-tint);}
.closer a:hover{border-bottom-color:var(--indigo);}

/* ---------- load animation ---------- */
.rise{opacity:0;transform:translateY(14px);animation:rise .7s cubic-bezier(.2,.7,.25,1) forwards;}
.d1{animation-delay:.05s}.d2{animation-delay:.13s}.d3{animation-delay:.21s}
.d4{animation-delay:.29s}.d5{animation-delay:.37s}.d6{animation-delay:.5s}.d7{animation-delay:.6s}
@keyframes rise{to{opacity:1;transform:none;}}
@keyframes swipe{to{transform:rotate(-1.4deg) scaleX(1);}}

:focus-visible{outline:3px solid var(--indigo);outline-offset:3px;border-radius:6px;}

@media (max-width:820px){
  .nav-links{display:none;}
  .plans{grid-template-columns:1fr;max-width:440px;}
  .hero{padding-top:54px;}
  .checks{gap:18px 26px;}
}
@media (prefers-reduced-motion:reduce){
  .rise{animation:none;opacity:1;transform:none;}
  .hl::before{animation:none;transform:rotate(-1.4deg) scaleX(1);}
}