:root {
  --ink: #14171A;
  --body: #3D444B;
  --muted: #6B737C;
  --canvas: #EDEFEC;
  --white: #FFFFFF;
  --acc: #2038D8;
  --peri: #9EABFF;
  --yel: #FFF1B8;
  --line: #D3D7D2;
  --err: #D0402F;
  --err-bg: #FCEBE8;
  --grad: linear-gradient(180deg, #2038D8 0%, #2038D8 66%, #172796 100%);
  --sans: 'Archivo', system-ui, -apple-system, 'Segoe UI', sans-serif;
  --serif: 'Newsreader', Georgia, 'Times New Roman', serif;
  --gutter: 120px;
  --shadow-card: 0 18px 40px rgba(0, 0, 0, .18);
}
@media (max-width: 1100px) { :root { --gutter: 48px; } }
@media (max-width: 760px) { :root { --gutter: 20px; } }

* { box-sizing: border-box; margin: 0; padding: 0; }
html { scroll-behavior: smooth; -webkit-text-size-adjust: 100%; }
body { font-family: var(--sans); color: var(--ink); background: var(--canvas); -webkit-font-smoothing: antialiased; letter-spacing: -0.006em; overflow-x: hidden; }
img { display: block; max-width: 100%; }
a { color: inherit; }
button, input, select { font: inherit; color: inherit; }
button { cursor: pointer; background: none; border: 0; }
.acc { color: var(--acc); }
.yel-t { color: var(--yel); }
.peri-t { color: var(--peri); }
.serif { font-family: var(--serif); }
.sr-only { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
@media (min-width: 761px) { .only-m { display: none !important; } }
@media (max-width: 760px) { .only-d { display: none !important; } }

/* ---------- layout ---------- */
.sec { padding: 120px var(--gutter); position: relative; }
.sec.tight { padding-block: 100px; }
.inner { max-width: 1200px; margin: 0 auto; position: relative; }
.bg-white { background: var(--white); }
.bg-canvas { background: var(--canvas); }
.bg-ink { background: var(--ink); color: var(--white); }
.bg-grad { background: var(--grad); color: var(--white); }
@media (max-width: 760px) { .sec, .sec.tight { padding-block: 72px; } }

.head { display: flex; justify-content: space-between; align-items: flex-end; gap: 64px; margin-bottom: 64px; }
.h2 { font-weight: 800; font-size: 64px; line-height: 1; letter-spacing: -0.04em; max-width: 680px; }
.head p { font-family: var(--serif); font-size: 20px; line-height: 1.5; color: var(--body); max-width: 440px; }
.bg-grad .head p, .bg-ink .head p { color: rgba(255, 255, 255, .86); }
@media (max-width: 760px) {
  .head { flex-direction: column; align-items: flex-start; gap: 16px; margin-bottom: 36px; }
  .h2 { font-size: 38px; letter-spacing: -0.036em; }
  .head p { font-size: 18px; }
}

/* ---------- buttons ---------- */
.btn { display: inline-flex; align-items: center; justify-content: center; gap: 10px; padding: 19px 30px; border-radius: 999px; font-weight: 600; font-size: 17px; line-height: 1.2; letter-spacing: -0.012em; text-decoration: none; transition: transform .15s ease, box-shadow .15s ease, background .15s ease; white-space: nowrap; }
.btn:hover { transform: translateY(-1px); }
.btn:active { transform: translateY(0); }
.btn-primary { background: var(--acc); color: var(--white); }
.btn-primary:hover { background: #1a2fc0; box-shadow: 0 10px 24px rgba(32, 56, 216, .28); }
.btn-dark { background: var(--ink); color: var(--white); }
.btn-yel { background: var(--yel); color: var(--ink); }
.btn-ghost { box-shadow: inset 0 0 0 1.5px var(--ink); color: var(--ink); }
.btn-ghost-w { box-shadow: inset 0 0 0 1.5px rgba(255, 255, 255, .9); color: var(--white); }
.btn-sm { padding: 11px 18px; font-size: 14px; }
.btn-block { width: 100%; }
.btn[disabled] { opacity: .6; cursor: progress; transform: none; }
.link { text-decoration: underline; text-underline-offset: 3px; text-decoration-thickness: 1px; }
.link-acc { color: var(--acc); }
@media (max-width: 760px) { .btn { font-size: 16px; padding: 16px 24px; } .btn-sm { font-size: 14px; padding: 11px 16px; } }

/* ---------- stickers ---------- */
.st { position: absolute; z-index: 3; transform-origin: top left; pointer-events: none; }
.star { display: grid; place-items: center; filter: drop-shadow(0 4px 10px rgba(0, 0, 0, .2)); }
.star svg { position: absolute; inset: 0; width: 100%; height: 100%; }
.star span { position: relative; font-weight: 800; line-height: 1; text-align: center; letter-spacing: -0.01em; }
.pill { display: inline-flex; align-items: center; padding: 8px 15px; border-radius: 999px; border: 2.5px solid var(--white); box-shadow: 0 4px 10px rgba(0, 0, 0, .16); font-weight: 600; font-size: 12px; line-height: 1.2; letter-spacing: .05em; text-transform: uppercase; white-space: nowrap; }
.pill.inflow { position: relative; align-self: flex-start; transform-origin: center; }
.p-yel { background: var(--yel); color: var(--ink); }
.p-ink { background: var(--ink); color: var(--white); }
.p-acc { background: var(--acc); color: var(--white); }
.p-white { background: var(--white); color: var(--acc); }
.doodle { position: absolute; z-index: 3; pointer-events: none; transform-origin: top left; }

/* ---------- nav ---------- */
.nav { display: flex; align-items: center; justify-content: space-between; padding: 26px var(--gutter); position: relative; z-index: 5; }
.wordmark { font-weight: 800; font-size: 22px; letter-spacing: -0.03em; text-decoration: none; }
.nav-links { display: flex; gap: 36px; }
.nav-links a { font-weight: 500; font-size: 16px; text-decoration: none; }
.nav-links a:hover { color: var(--acc); }
.secure { display: inline-flex; align-items: center; gap: 8px; font-weight: 500; font-size: 15px; color: var(--muted); }
@media (max-width: 1100px) { .nav-links { display: none; } }
@media (max-width: 760px) { .nav { padding: 16px var(--gutter); } .wordmark { font-size: 19px; } }

/* ---------- hero ---------- */
.hero { display: grid; grid-template-columns: 620px 1fr; gap: 40px; align-items: center; padding: 64px var(--gutter) 128px; max-width: calc(1200px + 2 * var(--gutter)); margin: 0 auto; }
.hero-copy { display: flex; flex-direction: column; gap: 28px; }
.h1 { font-weight: 800; font-size: 150px; line-height: .907; letter-spacing: -0.043em; }
.hero-sub { font-size: 25px; line-height: 1.4; color: var(--body); letter-spacing: -0.012em; max-width: 560px; }
.cta-row { display: flex; gap: 12px; flex-wrap: wrap; }
.byline { display: flex; align-items: center; gap: 12px; font-size: 16px; line-height: 1.4; color: var(--muted); }
.byline b { color: var(--ink); font-weight: 600; }
.avatar { border-radius: 50%; object-fit: cover; box-shadow: 0 0 0 2px var(--white); flex: none; }
.chips { display: flex; flex-wrap: wrap; gap: 10px; }
.chip { display: inline-flex; padding: 6px 12px; border-radius: 999px; background: var(--white); box-shadow: inset 0 0 0 1px var(--line); font-weight: 500; font-size: 14px; color: var(--body); }
.chip.hot { background: var(--yel); box-shadow: none; color: var(--ink); font-weight: 600; }
.mock-wrap { position: relative; width: 560px; height: 680px; justify-self: end; }
.mockup { position: absolute; left: 0; top: 0; width: 560px; height: 680px; transform-origin: top left; }
.mockup .pg { position: absolute; width: 405px; transform-origin: top left; box-shadow: 0 22px 44px rgba(0, 0, 0, .22); }
@media (max-width: 1300px) { .hero { grid-template-columns: 1fr; } .mock-wrap { justify-self: center; } }
@media (max-width: 760px) {
  .hero { padding: 28px var(--gutter) 72px; gap: 44px; }
  .hero-copy { gap: 22px; }
  .h1 { font-size: 76px; line-height: .92; letter-spacing: -0.04em; }
  .hero-sub { font-size: 19px; }
  .cta-row { flex-direction: column; }
  .cta-row .btn { width: 100%; }
  .mock-wrap { width: 350px; height: 425px; }
  .mockup { transform: scale(.625); }
  .chip { font-size: 13px; }
}
@media (max-width: 370px) { .mock-wrap { width: 320px; height: 389px; } .mockup { transform: scale(.571); } }

/* ---------- proof strip ---------- */
.proof { background: var(--white); padding: 52px var(--gutter); }
.proof .inner { display: grid; grid-template-columns: repeat(4, 1fr); }
.stat { padding: 0 16px 0 32px; border-left: 1px solid var(--line); }
.stat:first-child { padding-left: 0; border-left: 0; }
.stat b { display: block; font-weight: 800; font-size: 68px; line-height: 1; letter-spacing: -0.038em; color: var(--acc); margin-bottom: 8px; }
.stat span { font-weight: 500; font-size: 16px; line-height: 1.35; color: var(--body); }
@media (max-width: 760px) {
  .proof { padding: 36px var(--gutter); }
  .proof .inner { grid-template-columns: 1fr 1fr; gap: 28px 16px; }
  .stat { padding: 0; border: 0; }
  .stat b { font-size: 44px; }
  .stat span { font-size: 14px; }
}

/* ---------- cards / grids ---------- */
.grid4 { display: grid; grid-template-columns: repeat(4, 1fr); gap: 20px; }
.grid3 { display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px; }
.grid2 { display: grid; grid-template-columns: 1fr 1fr; gap: 20px; }
@media (max-width: 1100px) { .grid4 { grid-template-columns: 1fr 1fr; } }
@media (max-width: 760px) { .grid4, .grid3, .grid2 { grid-template-columns: 1fr; gap: 14px; } }
.card { background: var(--white); color: var(--ink); border-radius: 20px; padding: 32px 28px; position: relative; }
.card.canvas { background: var(--canvas); }
.card.yel { background: var(--yel); }
.card h3 { font-weight: 700; font-size: 22px; line-height: 1.2; letter-spacing: -0.02em; }
.card p, .body-serif { font-family: var(--serif); font-size: 17px; line-height: 1.5; color: var(--body); }
.tag { font-weight: 600; font-size: 13px; color: var(--acc); }
@media (max-width: 760px) { .card { padding: 24px 22px; } .card h3 { font-size: 20px; } .card p { font-size: 16px; } }

/* loop */
.step b { display: block; font-weight: 800; font-size: 56px; line-height: 1; letter-spacing: -0.035em; color: var(--acc); margin-bottom: 14px; }
.step h3 { color: var(--ink); margin-bottom: 14px; }
@media (max-width: 760px) { .step b { font-size: 40px; margin-bottom: 10px; } .step h3 { margin-bottom: 10px; } }

/* inside */
.part { padding: 34px 30px; display: flex; flex-direction: column; }
.part .lab { font-weight: 600; font-size: 14px; color: var(--muted); margin-bottom: 6px; }
.part .ttl { font-weight: 800; font-size: 32px; line-height: 1.05; letter-spacing: -0.03em; padding-bottom: 22px; }
.ch { display: grid; grid-template-columns: 28px 1fr; gap: 14px; padding: 14px 0; border-top: 1px solid var(--line); font-weight: 500; font-size: 17px; line-height: 1.35; letter-spacing: -0.012em; }
.ch b { font-weight: 800; color: var(--acc); }
.also { margin-top: 10px; background: var(--canvas); border-radius: 14px; padding: 18px; }
.also small { display: block; font-weight: 600; font-size: 13px; color: var(--muted); margin-bottom: 6px; }
.also p { font-family: var(--serif); font-size: 17px; line-height: 1.45; }
@media (max-width: 760px) { .part { padding: 26px 22px; } .part .ttl { font-size: 28px; padding-bottom: 16px; } .ch { font-size: 16px; padding: 12px 0; } }

/* look inside */
.pages { display: grid; grid-template-columns: repeat(4, 1fr); gap: 24px; }
.page-col { display: flex; flex-direction: column; gap: 18px; position: relative; }
.page-col img { width: 100%; box-shadow: 0 14px 30px rgba(0, 0, 0, .16); }
.page-col figcaption { font-weight: 500; font-size: 15px; color: var(--body); line-height: 1.35; }
@media (max-width: 760px) { .pages { grid-template-columns: 1fr 1fr; gap: 28px 20px; } .page-col { gap: 12px; } .page-col figcaption { font-size: 13px; } }

/* practice */
.work { padding: 0; overflow: hidden; display: flex; flex-direction: column; }
.work img { width: 100%; height: 250px; object-fit: cover; }
.work img.top { object-position: top; }
.work .copy { padding: 26px 28px 30px; display: flex; flex-direction: column; gap: 10px; }
.work .big { font-weight: 800; font-size: 30px; line-height: 1.08; letter-spacing: -0.03em; }
.num-card { display: flex; flex-direction: column; gap: 10px; padding: 34px 30px; }
.num-card .tag { opacity: .75; color: inherit; }
.num-card b { font-weight: 800; font-size: 56px; line-height: 1; letter-spacing: -0.036em; }
.num-card strong { font-weight: 700; font-size: 22px; line-height: 1.2; letter-spacing: -0.02em; }
.num-card p { font-family: var(--serif); font-size: 17px; line-height: 1.5; opacity: .86; color: inherit; }
.nc-acc { background: var(--acc); color: var(--white); } .nc-acc b { color: var(--yel); }
.nc-yel { background: var(--yel); color: var(--ink); } .nc-yel b { color: var(--acc); }
.nc-ink { background: var(--ink); color: var(--white); } .nc-ink b { color: var(--peri); }
@media (max-width: 760px) { .work img { height: 210px; } .work .copy { padding: 22px; } .work .big { font-size: 26px; } .num-card { padding: 26px 22px; } .num-card b { font-size: 44px; } .num-card strong { font-size: 20px; } }

/* stack */
.tool { background: var(--canvas); display: flex; flex-direction: column; gap: 10px; padding: 30px 28px; }
.tool .name { font-weight: 800; font-size: 26px; letter-spacing: -0.03em; line-height: 1.1; }
.tool .plan { font-weight: 500; font-size: 15px; color: var(--muted); }
.tool .price { font-weight: 800; font-size: 44px; letter-spacing: -0.036em; color: var(--acc); line-height: 1.1; }
.tool .price small { font-weight: 600; font-size: 16px; letter-spacing: 0; color: var(--muted); }
.total { margin-top: 20px; display: flex; align-items: center; justify-content: space-between; gap: 24px; background: var(--ink); color: var(--white); border-radius: 20px; padding: 26px 32px; }
.total b { font-weight: 800; font-size: 32px; letter-spacing: -0.03em; }
.total > span { font-weight: 500; font-size: 17px; opacity: .8; }
@media (max-width: 760px) { .total { flex-direction: column; align-items: flex-start; gap: 8px; padding: 24px 22px; } .total b { font-size: 26px; } .total > span { font-size: 15px; } .tool .price { font-size: 38px; } }

/* who */
.list-card { padding: 36px 34px; display: flex; flex-direction: column; gap: 20px; }
.list-card.outline { background: none; box-shadow: inset 0 0 0 1.5px var(--line); }
.list-card h3 { font-weight: 800; font-size: 30px; letter-spacing: -0.03em; }
.li { display: grid; grid-template-columns: 24px 1fr; gap: 14px; font-family: var(--serif); font-size: 19px; line-height: 1.45; align-items: start; }
.li svg { margin-top: 3px; }
@media (max-width: 760px) { .list-card { padding: 26px 22px; gap: 16px; } .list-card h3 { font-size: 26px; } .li { font-size: 17px; } }

/* author */
.author { display: grid; grid-template-columns: 440px 1fr; gap: 80px; align-items: start; }
.author-left { display: flex; flex-direction: column; gap: 28px; }
.photo { position: relative; width: 440px; height: 550px; }
.photo img.portrait { width: 100%; height: 100%; object-fit: cover; border-radius: 28px; }
.bio { display: flex; flex-direction: column; gap: 24px; }
.bio .lab { font-weight: 600; font-size: 15px; color: var(--acc); }
.bio .name { font-weight: 800; font-size: 60px; letter-spacing: -0.04em; line-height: 1; }
.bio .role { font-weight: 500; font-size: 18px; color: var(--muted); line-height: 1.35; }
.bio > p { font-family: var(--serif); font-size: 21px; line-height: 1.5; color: var(--body); }
.stats { display: grid; grid-template-columns: repeat(4, 1fr); background: var(--canvas); border-radius: 20px; padding: 24px 28px; gap: 12px; }
.stats b { display: block; font-weight: 800; font-size: 36px; color: var(--acc); letter-spacing: -0.034em; line-height: 1; margin-bottom: 4px; }
.stats span { font-weight: 500; font-size: 15px; color: var(--body); }
.exp h4 { font-weight: 700; font-size: 19px; letter-spacing: -0.015em; padding-bottom: 10px; }
.role-row { display: grid; grid-template-columns: 120px 1fr; gap: 20px; padding: 13px 0; border-top: 1px solid var(--line); align-items: center; font-weight: 500; font-size: 17px; }
.role-row small { font-size: 15px; color: var(--muted); }
.role-row b { font-weight: 700; }
.quote { background: var(--yel); border-radius: 20px; padding: 26px 30px; display: flex; flex-direction: column; gap: 12px; }
.quote p { font-family: var(--serif); font-size: 20px; line-height: 1.45; }
.quote span { font-weight: 600; font-size: 15px; }
.quote span i { font-style: normal; font-weight: 500; color: var(--body); }
.pf-card { background: var(--canvas); border-radius: 20px; padding: 14px 14px 18px; display: flex; flex-direction: column; gap: 14px; text-decoration: none; }
.browser { background: var(--ink); border-radius: 12px; overflow: hidden; }
.browser .bar { display: flex; align-items: center; gap: 6px; padding: 9px 12px; }
.browser .bar i { width: 8px; height: 8px; border-radius: 50%; background: rgba(255, 255, 255, .5); }
.browser .bar i:nth-child(2) { background: rgba(255, 255, 255, .35); }
.browser .bar i:nth-child(3) { background: rgba(255, 255, 255, .2); }
.browser .bar em { font-style: normal; font-weight: 500; font-size: 11px; color: rgba(255, 255, 255, .55); margin-left: 4px; }
.browser img { width: 100%; aspect-ratio: 1440 / 1000; object-fit: cover; }
.pf-card b { display: block; font-weight: 700; font-size: 17px; padding: 0 4px; }
.pf-card span { display: block; font-weight: 500; font-size: 15px; color: var(--muted); padding: 0 4px; text-decoration: underline; text-underline-offset: 3px; }
.pf-cta { display: flex; align-items: center; gap: 20px; flex-wrap: wrap; }
.pf-cta a.link { font-weight: 500; font-size: 16px; }
@media (max-width: 1100px) { .author { grid-template-columns: 1fr; gap: 40px; } }
@media (max-width: 760px) {
  .photo { width: 100%; max-width: 350px; height: auto; aspect-ratio: 350 / 438; }
  .bio { gap: 18px; }
  .bio .name { font-size: 40px; }
  .bio .role { font-size: 16px; }
  .bio > p { font-size: 18px; }
  .stats { grid-template-columns: 1fr 1fr; padding: 22px 20px; gap: 20px 16px; }
  .stats b { font-size: 30px; }
  .stats span { font-size: 14px; }
  .role-row { grid-template-columns: 1fr; gap: 2px; padding: 11px 0; font-size: 16px; }
  .role-row small { font-size: 13px; }
  .quote { padding: 22px; } .quote p { font-size: 18px; }
  .pf-cta { flex-direction: column; align-items: stretch; gap: 12px; }
  .pf-cta .btn { width: 100%; }
}

/* faq */
.faq { display: grid; grid-template-columns: 400px 1fr; gap: 80px; align-items: start; }
.qa { padding: 28px 0; border-top: 1px solid var(--line); }
.qa:last-child { border-bottom: 1px solid var(--line); }
.qa h3 { font-weight: 700; font-size: 22px; letter-spacing: -0.02em; line-height: 1.25; margin-bottom: 10px; }
.qa p { font-family: var(--serif); font-size: 19px; line-height: 1.5; color: var(--body); }
@media (max-width: 1100px) { .faq { grid-template-columns: 1fr; gap: 28px; } }
@media (max-width: 760px) { .qa { padding: 22px 0; } .qa h3 { font-size: 19px; } .qa p { font-size: 17px; } }

/* final cta */
.final { text-align: center; padding-block: 150px; }
.final .inner { display: flex; flex-direction: column; align-items: center; gap: 32px; }
.final .big { font-weight: 800; font-size: 132px; line-height: .92; letter-spacing: -0.042em; }
.final .sub { font-size: 24px; line-height: 1.4; max-width: 620px; opacity: .9; letter-spacing: -0.01em; }
.inline-form { display: flex; gap: 10px; align-items: flex-start; }
.inline-form .field { width: 420px; text-align: left; }
.inline-form input { width: 100%; background: var(--white); border: 0; border-radius: 999px; padding: 20px 26px; font-size: 17px; color: var(--ink); outline: none; box-shadow: inset 0 0 0 1.5px transparent; }
.inline-form input:focus { box-shadow: inset 0 0 0 2px var(--yel); }
.inline-form .field.is-error input { box-shadow: inset 0 0 0 2px var(--err); }
.inline-form .err-msg { margin: 10px 0 0 20px; color: var(--yel); }
.small-print { font-weight: 500; font-size: 15px; opacity: .72; }
@media (max-width: 760px) {
  .final { padding-block: 88px; }
  .final .inner { gap: 24px; }
  .final .big { font-size: 72px; }
  .final .sub { font-size: 19px; }
  .inline-form { flex-direction: column; width: 100%; align-items: stretch; }
  .inline-form .field { width: 100%; }
  .small-print { font-size: 13px; }
}

/* pricing (paid) */
.pricing-row { display: grid; grid-template-columns: 560px 1fr; gap: 24px; align-items: start; }
.price-card { background: var(--ink); color: var(--white); border-radius: 28px; padding: 40px; display: flex; flex-direction: column; gap: 20px; position: relative; }
.price-chip { align-self: flex-start; background: rgba(255, 255, 255, .1); border-radius: 999px; padding: 7px 14px; font-weight: 500; font-size: 13px; color: rgba(255, 255, 255, .85); }
.off { align-self: flex-start; background: var(--yel); color: var(--ink); border-radius: 999px; padding: 6px 12px; font-weight: 700; font-size: 12px; letter-spacing: .05em; }
.price { display: flex; align-items: baseline; gap: 16px; font-weight: 800; font-size: 96px; line-height: 1; letter-spacing: -0.042em; }
.price s { font-weight: 500; font-size: 34px; letter-spacing: 0; color: var(--peri); text-decoration-thickness: 2px; }
.price-note { font-weight: 500; font-size: 15px; opacity: .75; margin-top: -8px; }
.inc { display: grid; grid-template-columns: 22px 1fr; gap: 12px; align-items: center; font-weight: 500; font-size: 17px; line-height: 1.35; }
.price-card .cover-thumb { position: absolute; width: 131px; right: 29px; top: -40px; transform: rotate(8deg); box-shadow: 0 12px 28px rgba(0, 0, 0, .35); }
.secure-line { display: flex; align-items: center; justify-content: center; gap: 8px; font-weight: 500; font-size: 14px; color: rgba(255, 255, 255, .75); }
.reasons { display: flex; flex-direction: column; gap: 16px; }
.reasons .card { padding: 28px 30px; }
.reasons .card h3 { margin-bottom: 8px; }
.who-mini { display: flex; gap: 14px; align-items: center; }
.who-mini b { font-weight: 700; font-size: 18px; display: block; }
.who-mini span { font-weight: 500; font-size: 15px; color: var(--body); }
@media (max-width: 1100px) { .pricing-row { grid-template-columns: 1fr; } }
@media (max-width: 760px) {
  .price-card { padding: 28px 22px; gap: 16px; }
  .price { font-size: 72px; }
  .price s { font-size: 26px; }
  .inc { font-size: 15px; }
  .price-card .cover-thumb { width: 95px; right: 16px; top: -34px; }
  .reasons .card { padding: 22px 20px; }
  .who-mini b { font-size: 16px; }
  .who-mini span { font-size: 13px; }
}

/* footer */
.footer { background: var(--ink); color: var(--white); padding: 40px var(--gutter); }
.footer .inner { display: flex; align-items: center; justify-content: space-between; gap: 24px; }
.footer .wordmark { font-size: 22px; }
.footer small { font-weight: 500; font-size: 14px; opacity: .6; }
.footer a.link { font-weight: 500; font-size: 14px; opacity: .85; }
@media (max-width: 760px) { .footer { padding: 36px var(--gutter); } .footer .inner { flex-direction: column; align-items: flex-start; gap: 12px; } }

/* ---------- modal / sheet ---------- */
.overlay { position: fixed; inset: 0; background: rgba(20, 23, 26, .55); z-index: 50; display: none; align-items: center; justify-content: center; padding: 20px; }
.overlay.open { display: flex; animation: fade .18s ease; }
@keyframes fade { from { opacity: 0; } to { opacity: 1; } }
@keyframes rise { from { transform: translateY(24px); opacity: 0; } to { transform: none; opacity: 1; } }
.dialog { position: relative; width: 560px; max-width: 100%; background: var(--white); border-radius: 28px; padding: 36px 40px; box-shadow: 0 24px 60px rgba(0, 0, 0, .28); display: flex; flex-direction: column; gap: 18px; animation: rise .22s ease; max-height: calc(100vh - 40px); overflow: auto; }
.dialog .cover-side { position: absolute; left: -190px; top: 70px; width: 178px; transform: rotate(8deg); box-shadow: 0 16px 36px rgba(0, 0, 0, .3); }
.dialog-top { display: flex; align-items: center; justify-content: space-between; }
.dialog-top .chip { background: var(--canvas); box-shadow: none; font-size: 13px; }
.close { width: 36px; height: 36px; border-radius: 50%; background: var(--canvas); display: grid; place-items: center; }
.dialog h2 { font-weight: 800; font-size: 36px; line-height: 1.05; letter-spacing: -0.034em; }
.dialog .intro { font-family: var(--serif); font-size: 17px; line-height: 1.5; color: var(--body); }
.grabber { display: none; width: 44px; height: 5px; border-radius: 3px; background: var(--line); margin: 0 auto; }
.fld { display: flex; flex-direction: column; gap: 8px; }
.fld label { font-weight: 600; font-size: 14px; }
.fld input, .fld select { width: 100%; background: var(--canvas); border: 0; border-radius: 14px; padding: 16px 18px; font-size: 17px; outline: none; box-shadow: inset 0 0 0 1.5px transparent; transition: box-shadow .15s; appearance: none; -webkit-appearance: none; }
.fld input::placeholder { color: var(--muted); }
.fld input:focus, .fld select:focus { box-shadow: inset 0 0 0 1.5px var(--ink); background: var(--white); }
.fld.is-error input { background: var(--white); box-shadow: inset 0 0 0 1.5px var(--err); }
.err-msg { display: none; align-items: flex-start; gap: 8px; font-weight: 500; font-size: 14px; line-height: 1.35; color: var(--err); }
.is-error .err-msg { display: flex; }
.help { font-weight: 500; font-size: 13px; color: var(--muted); }
.check { display: flex; align-items: center; gap: 12px; font-weight: 500; font-size: 14px; color: var(--body); cursor: pointer; }
.check input { appearance: none; -webkit-appearance: none; width: 20px; height: 20px; border-radius: 6px; background: var(--white); box-shadow: inset 0 0 0 1.5px var(--line); flex: none; display: grid; place-items: center; cursor: pointer; }
.check input:checked { background: var(--acc); box-shadow: none; }
.check input:checked::after { content: ''; width: 10px; height: 6px; border: 2px solid var(--white); border-top: 0; border-right: 0; transform: translate(0, -1px) rotate(-45deg); }
.fine { font-weight: 500; font-size: 13px; color: var(--muted); text-align: center; }
@media (min-width: 761px) and (max-width: 1100px) { .dialog .cover-side { display: none; } }
@media (max-width: 760px) {
  .overlay { align-items: flex-end; padding: 0; }
  .dialog { width: 100%; border-radius: 28px 28px 0 0; padding: 12px 20px 30px; gap: 16px; max-height: 92vh; }
  .dialog .cover-side { display: none; }
  .grabber { display: block; }
  .dialog h2 { font-size: 30px; }
  .dialog .intro { font-size: 16px; }
  .fld input, .fld select { padding: 15px 18px; font-size: 16px; }
}

/* ---------- toast ---------- */
.toast { position: fixed; left: 50%; bottom: 28px; transform: translate(-50%, 20px); opacity: 0; background: var(--ink); color: var(--white); padding: 14px 22px; border-radius: 999px; font-weight: 600; font-size: 15px; transition: .25s ease; z-index: 80; pointer-events: none; max-width: calc(100vw - 40px); text-align: center; }
.toast.show { opacity: 1; transform: translate(-50%, 0); }

/* ---------- thank-you / confirmed ---------- */
.ty-hero { display: grid; grid-template-columns: 640px 1fr; gap: 40px; align-items: center; padding: 56px var(--gutter) 110px; max-width: calc(1200px + 2 * var(--gutter)); margin: 0 auto; }
.ty-copy { display: flex; flex-direction: column; gap: 24px; }
.ty-h1 { font-weight: 800; font-size: 112px; line-height: .94; letter-spacing: -0.041em; }
.ty-copy > p { font-family: var(--serif); font-size: 21px; line-height: 1.5; color: var(--body); max-width: 580px; }
.ty-copy > p b { font-weight: 600; color: var(--ink); }
.ty-copy h3 { font-weight: 700; font-size: 19px; letter-spacing: -0.015em; }
.dl { display: flex; align-items: center; gap: 16px; background: var(--white); border-radius: 18px; padding: 18px 20px; }
.dl-list { display: flex; flex-direction: column; gap: 12px; }
.dl .t { flex: 1; min-width: 0; }
.dl .t b { display: block; font-weight: 700; font-size: 18px; letter-spacing: -0.015em; }
.dl .t span { font-weight: 500; font-size: 14px; color: var(--muted); }
.resend { font-weight: 500; font-size: 16px; color: var(--body); }
.resend button { color: var(--acc); text-decoration: underline; text-underline-offset: 3px; font-weight: 500; }
.order-card { display: flex; flex-wrap: wrap; gap: 14px 28px; background: var(--white); border-radius: 18px; padding: 18px 22px; }
.order-card div small { display: block; font-weight: 500; font-size: 13px; color: var(--muted); margin-bottom: 3px; }
.order-card div b { font-weight: 700; font-size: 16px; }
.ty-mock { position: relative; width: 520px; height: 640px; justify-self: end; }
.ty-mock .inner-m { position: absolute; inset: 0; width: 520px; height: 640px; transform-origin: top left; }
.ty-mock .cv { position: absolute; left: 52px; top: 40px; width: 428px; transform: rotate(-4deg); transform-origin: top left; box-shadow: 0 26px 50px rgba(0, 0, 0, .25); }
.demo-bar { background: var(--yel); color: var(--ink); padding: 12px var(--gutter); font-weight: 500; font-size: 14px; line-height: 1.45; text-align: center; }
.demo-bar b { font-weight: 700; }
.demo-bar button { text-decoration: underline; text-underline-offset: 3px; font-weight: 600; color: var(--acc); }
.band { display: grid; grid-template-columns: 1fr 560px; gap: 72px; align-items: center; }
.band-copy { display: flex; flex-direction: column; gap: 22px; }
.band-copy .h2 { color: var(--white); font-size: 52px; }
.band-copy > p { font-family: var(--serif); font-size: 20px; line-height: 1.5; color: rgba(255, 255, 255, .82); }
.band-copy .facts { font-weight: 500; font-size: 16px; color: var(--peri); line-height: 1.4; }
.who-w { display: flex; align-items: center; gap: 12px; }
.who-w b { display: block; font-weight: 700; font-size: 16px; }
.who-w span { font-weight: 500; font-size: 16px; color: rgba(255, 255, 255, .6); }
.band .browser { box-shadow: 0 24px 50px rgba(0, 0, 0, .35), 0 0 0 1px rgba(255, 255, 255, .14); border-radius: 14px; position: relative; overflow: visible; }
.band .browser .clip { overflow: hidden; border-radius: 0 0 14px 14px; }
.band .browser .bar em { font-size: 12px; }
.share { display: flex; align-items: center; justify-content: space-between; gap: 24px; }
.share h2 { font-weight: 800; font-size: 36px; letter-spacing: -0.03em; line-height: 1.1; }
.share-btns { display: flex; gap: 10px; flex-wrap: wrap; }
@media (max-width: 1300px) { .ty-hero { grid-template-columns: 1fr; } .ty-mock { justify-self: center; } .band { grid-template-columns: 1fr; } }
@media (max-width: 760px) {
  .ty-hero { padding: 24px var(--gutter) 64px; gap: 40px; }
  .ty-copy { gap: 20px; }
  .ty-h1 { font-size: 60px; }
  .ty-copy > p { font-size: 18px; }
  .ty-copy h3 { font-size: 17px; }
  .dl { padding: 16px; gap: 12px; }
  .dl .t b { font-size: 16px; }
  .dl .t span { font-size: 13px; }
  .order-card { gap: 14px 16px; padding: 16px 18px; }
  .order-card div { width: calc(50% - 8px); }
  .order-card div b { font-size: 15px; }
  .ty-mock { width: 350px; height: 431px; }
  .ty-mock .inner-m { transform: scale(.673); }
  .band { gap: 36px; }
  .band-copy .h2 { font-size: 34px; }
  .band-copy > p { font-size: 18px; }
  .band-copy .facts { font-size: 14px; }
  .share { flex-direction: column; align-items: flex-start; gap: 18px; }
  .share h2 { font-size: 28px; }
}

/* ---------- checkout ---------- */
.co-top { display: flex; align-items: center; justify-content: space-between; padding: 22px var(--gutter); background: var(--white); border-bottom: 1px solid var(--line); }
.co { display: grid; grid-template-columns: 620px 1fr; background: var(--white); min-height: calc(100vh - 71px); }
.summary { background: var(--canvas); padding: 56px 56px 64px var(--gutter); display: flex; flex-direction: column; gap: 22px; }
.summary .lab { font-weight: 600; font-size: 15px; color: var(--muted); }
.product { display: grid; grid-template-columns: 120px 1fr auto; gap: 20px; align-items: start; }
.product img { width: 120px; box-shadow: 0 8px 18px rgba(0, 0, 0, .2); }
.product h2 { font-weight: 800; font-size: 26px; letter-spacing: -0.034em; line-height: 1.05; margin-bottom: 8px; }
.product p { font-family: var(--serif); font-size: 15px; line-height: 1.45; color: var(--body); margin-bottom: 8px; }
.product .chip { font-size: 12px; box-shadow: none; }
.product .amt { font-weight: 700; font-size: 20px; letter-spacing: -0.015em; }
.incl { display: grid; grid-template-columns: 20px 1fr; gap: 10px; align-items: center; font-weight: 500; font-size: 15px; }
.promo { display: flex; gap: 10px; }
.promo input { flex: 1; min-width: 0; background: var(--white); border: 0; border-radius: 12px; padding: 14px 16px; font-size: 16px; outline: none; }
.promo-note { display: none; font-weight: 500; font-size: 13px; color: var(--acc); margin-top: -12px; }
.promo-note.show { display: block; }
.rule { height: 1px; background: var(--line); }
.row { display: flex; justify-content: space-between; align-items: center; font-weight: 500; font-size: 16px; color: var(--body); }
.row.disc { color: var(--acc); }
.row.tot { color: var(--ink); }
.row.tot span:first-child { font-weight: 700; font-size: 20px; }
.row.tot b { font-weight: 800; font-size: 30px; letter-spacing: -0.034em; }
.row.tot b small { font-weight: 500; font-size: 14px; color: var(--muted); letter-spacing: 0; margin-right: 4px; }
.author-mini { display: flex; gap: 14px; align-items: center; }
.author-mini b { display: block; font-weight: 700; font-size: 15px; }
.author-mini a { font-weight: 500; font-size: 14px; color: var(--acc); }
.co-form { padding: 56px var(--gutter) 64px 72px; display: flex; flex-direction: column; gap: 20px; max-width: 760px; }
.co-form h1 { font-weight: 800; font-size: 44px; letter-spacing: -0.032em; line-height: 1; }
.co-form h2 { font-weight: 700; font-size: 18px; letter-spacing: -0.017em; }
.tabs { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.tab { display: flex; align-items: center; gap: 10px; padding: 15px 18px; border-radius: 14px; background: var(--canvas); font-weight: 600; font-size: 16px; text-align: left; }
.tab i { width: 20px; height: 20px; border-radius: 50%; box-shadow: inset 0 0 0 2px #9AA0A6; flex: none; display: grid; place-items: center; }
.tab[aria-selected="true"] { background: var(--white); box-shadow: inset 0 0 0 1.5px var(--ink); }
.tab[aria-selected="true"] i { box-shadow: inset 0 0 0 2px var(--ink); }
.tab[aria-selected="true"] i::after { content: ''; width: 9px; height: 9px; border-radius: 50%; background: var(--acc); }
.declined { display: none; gap: 10px; align-items: flex-start; background: var(--err-bg); border-radius: 14px; padding: 14px 16px; font-weight: 500; font-size: 14px; line-height: 1.4; color: var(--err); }
.declined.show { display: flex; }
.declined b { font-weight: 700; }
.notice { display: none; background: var(--canvas); border-radius: 14px; padding: 14px 16px; font-weight: 500; font-size: 14px; line-height: 1.45; color: var(--body); }
.notice.show { display: block; }
.card-input { position: relative; }
.card-input input { padding-right: 190px; letter-spacing: .06em; font-variant-numeric: tabular-nums; }
.brands { position: absolute; right: 14px; top: 50%; transform: translateY(-50%); display: flex; gap: 6px; }
.brands span { background: var(--white); box-shadow: inset 0 0 0 1px var(--line); border-radius: 6px; padding: 4px 7px; font-weight: 700; font-size: 10px; color: var(--body); }
.two { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.select-wrap { position: relative; }
.select-wrap svg { position: absolute; right: 18px; top: 50%; transform: translateY(-50%); pointer-events: none; }
.bank-panel { display: none; background: var(--canvas); border-radius: 14px; padding: 18px; font-weight: 500; font-size: 15px; line-height: 1.5; color: var(--body); }
.bank-panel.show { display: block; }
.cvc { -webkit-text-security: disc; }
.legal { font-weight: 500; font-size: 13px; line-height: 1.45; color: var(--muted); }
.sum-bar { display: none; align-items: center; gap: 12px; background: var(--canvas); padding: 14px var(--gutter); }
.sum-bar img { width: 40px; box-shadow: 0 4px 10px rgba(0, 0, 0, .18); }
.sum-bar .t { flex: 1; }
.sum-bar .t b { display: block; font-weight: 700; font-size: 16px; }
.sum-bar .t button { font-weight: 500; font-size: 13px; color: var(--acc); text-decoration: underline; text-underline-offset: 3px; }
.sum-bar > b { font-weight: 700; font-size: 17px; }
.spinner { width: 16px; height: 16px; border-radius: 50%; border: 2px solid rgba(255, 255, 255, .4); border-top-color: var(--white); animation: spin .8s linear infinite; }
@keyframes spin { to { transform: rotate(360deg); } }
@media (max-width: 1100px) { .co { grid-template-columns: 1fr 1.2fr; } .summary { padding-left: 48px; padding-right: 32px; } .co-form { padding: 48px; } }
@media (max-width: 760px) {
  .co-top { padding: 16px var(--gutter); }
  .co-top .secure { font-size: 13px; }
  .co { grid-template-columns: 1fr; min-height: 0; }
  .summary { display: none; padding: 24px var(--gutter); }
  .summary.open { display: flex; }
  .sum-bar { display: flex; }
  .co-form { padding: 24px var(--gutter) 34px; gap: 18px; }
  .co-form h1 { font-size: 34px; }
  .card-input input { padding-right: 18px; }
  .brands { display: none; }
  .product { grid-template-columns: 90px 1fr; }
  .product img { width: 90px; }
  .product .amt { grid-column: 2; }
}

/* ---------- email preview + flows ---------- */
.preview-page { padding: 48px var(--gutter) 80px; display: flex; flex-direction: column; align-items: center; gap: 20px; }
.preview-head { width: 680px; max-width: 100%; display: flex; justify-content: space-between; align-items: center; gap: 16px; }
.preview-head a { font-weight: 600; font-size: 15px; text-decoration: none; }
.mail { width: 680px; max-width: 100%; background: var(--canvas); border-radius: 12px; padding: 40px; display: flex; flex-direction: column; gap: 20px; box-shadow: 0 20px 60px rgba(0, 0, 0, .12); }
.spec { background: var(--white); border-radius: 14px; padding: 16px 20px; display: grid; grid-template-columns: 64px 1fr; gap: 8px 12px; font-weight: 500; font-size: 14px; line-height: 1.4; }
.spec dt { color: var(--muted); font-size: 13px; }
.spec dd b { font-weight: 700; }
.mail iframe { width: 100%; border: 0; display: block; background: var(--white); min-height: 600px; }
@media (max-width: 760px) { .mail { padding: 14px; border-radius: 0; } .preview-page { padding: 24px 0 40px; } .preview-head { padding: 0 var(--gutter); } }
.flows-hero { padding: 56px var(--gutter) 24px; }
.flows-hero .inner > p { font-family: var(--serif); font-size: 20px; line-height: 1.5; color: var(--body); max-width: 720px; margin-top: 18px; }
.flow-cols { display: grid; grid-template-columns: 1fr 1fr; gap: 24px; }
.flow { background: var(--white); border-radius: 24px; padding: 32px; }
.flow h2 { font-weight: 800; font-size: 32px; letter-spacing: -0.03em; margin-bottom: 6px; }
.flow > p { font-weight: 500; font-size: 15px; color: var(--muted); margin-bottom: 18px; }
.flow a.step-link { display: grid; grid-template-columns: 52px 1fr auto; gap: 14px; align-items: center; padding: 16px 0; border-top: 1px solid var(--line); text-decoration: none; }
.flow a.step-link:hover strong { color: var(--acc); }
.flow a.step-link b { font-weight: 800; font-size: 20px; color: var(--acc); }
.flow a.step-link strong { display: block; font-weight: 700; font-size: 18px; letter-spacing: -0.015em; }
.flow a.step-link span { font-weight: 500; font-size: 14px; color: var(--muted); }
.flow a.step-link em { font-style: normal; font-weight: 600; font-size: 14px; color: var(--acc); }
@media (max-width: 900px) { .flow-cols { grid-template-columns: 1fr; } .flow { padding: 24px 20px; } .flow a.step-link { grid-template-columns: 44px 1fr; } .flow a.step-link em { display: none; } }

.ty-copy > p.resend { font-family: var(--sans); font-size: 16px; font-weight: 500; }
@media (max-width: 760px) { .ty-copy > p.resend { font-size: 15px; } }

/* ---------- live payments + anti-bot ---------- */
.hp { position: absolute !important; left: -9999px !important; width: 1px; height: 1px; opacity: 0; }
.pay-panel { background: var(--canvas); border-radius: 14px; padding: 18px; display: flex; flex-direction: column; gap: 12px; }
.pay-panel .methods { display: flex; flex-wrap: wrap; gap: 8px; }
.pay-panel .methods span { display: inline-flex; align-items: center; gap: 8px; background: var(--white); border-radius: 999px; padding: 8px 14px 8px 8px; font-weight: 600; font-size: 14px; }
.pay-panel p { font-weight: 500; font-size: 14px; line-height: 1.5; color: var(--body); }
[hidden] { display: none !important; }
.ty-copy .notice { display: block; margin: 0; }
