@font-face { font-family:Inter; font-style:normal; font-weight:100 900; font-display:swap; src:url('/fonts/inter-latin.woff2') format('woff2'); }
@font-face { font-family:Lora; font-style:normal; font-weight:400 700; font-display:swap; src:url('/fonts/lora-latin.woff2') format('woff2'); }

:root {
  --background: 44 36% 95%;
  --foreground: 158 15% 20%;
  --card: 42 38% 98%;
  --card-foreground: 158 15% 20%;
  --card-border: 39 22% 86%;
  --popover: 42 38% 98%;
  --popover-foreground: 158 15% 20%;
  --popover-border: 39 22% 86%;
  --primary: 146 25% 25%;
  --primary-foreground: 42 38% 98%;
  --secondary: 104 19% 92%;
  --secondary-foreground: 146 25% 25%;
  --muted: 100 14% 91%;
  --muted-foreground: 150 8% 39%;
  --accent: 25 48% 57%;
  --accent-foreground: 30 35% 12%;
  --destructive: 3 58% 43%;
  --destructive-foreground: 42 38% 98%;
  --border: 39 22% 83%;
  --input: 39 22% 79%;
  --ring: 146 25% 25%;
  --chart-1: 146 25% 25%;
  --chart-2: 25 48% 57%;
  --chart-3: 103 18% 62%;
  --chart-4: 44 36% 78%;
  --chart-5: 158 15% 20%;
  --sidebar: 44 36% 95%;
  --sidebar-foreground: 158 15% 20%;
  --sidebar-border: 39 22% 83%;
  --sidebar-primary: 146 25% 25%;
  --sidebar-primary-foreground: 42 38% 98%;
  --sidebar-accent: 104 19% 92%;
  --sidebar-accent-foreground: 146 25% 25%;
  --sidebar-ring: 146 25% 25%;
  --app-font-sans: 'Inter', sans-serif;
  --app-font-serif: 'Lora', Georgia, serif;
  --app-font-mono: ui-monospace, monospace;
  --radius: 1rem;
  --button-outline: rgba(47, 79, 62, .16);
  --badge-outline: rgba(47, 79, 62, .08);
  --opaque-button-border-intensity: -8;
  --elevate-1: rgba(47, 79, 62, .035);
  --elevate-2: rgba(47, 79, 62, .075);
  --shadow-2xs: 0 2px 4px rgba(48, 59, 47, .035);
  --shadow-xs: 0 3px 10px rgba(48, 59, 47, .06);
  --shadow-sm: 0 8px 24px rgba(48, 59, 47, .08);
  --shadow: 0 16px 40px rgba(48, 59, 47, .1);
}

.dark {
  --background: 155 17% 13%;
  --foreground: 42 32% 91%;
  --card: 155 15% 17%;
  --card-foreground: 42 32% 91%;
  --card-border: 155 11% 28%;
  --popover: 155 15% 17%;
  --popover-foreground: 42 32% 91%;
  --popover-border: 155 11% 28%;
  --primary: 104 22% 69%;
  --primary-foreground: 155 17% 13%;
  --secondary: 155 12% 23%;
  --secondary-foreground: 42 32% 91%;
  --muted: 155 12% 23%;
  --muted-foreground: 42 13% 69%;
  --accent: 25 48% 64%;
  --accent-foreground: 155 17% 13%;
  --destructive: 3 58% 55%;
  --destructive-foreground: 42 32% 91%;
  --border: 155 11% 28%;
  --input: 155 11% 35%;
  --ring: 104 22% 69%;
  --chart-1: 104 22% 69%;
  --chart-2: 25 48% 64%;
  --chart-3: 42 32% 78%;
  --chart-4: 155 12% 40%;
  --chart-5: 42 13% 69%;
  --sidebar: 155 17% 13%;
  --sidebar-foreground: 42 32% 91%;
  --sidebar-border: 155 11% 28%;
  --sidebar-primary: 104 22% 69%;
  --sidebar-primary-foreground: 155 17% 13%;
  --sidebar-accent: 155 12% 23%;
  --sidebar-accent-foreground: 42 32% 91%;
  --sidebar-ring: 104 22% 69%;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; scroll-padding-top: 1.5rem; }
body {
  margin: 0;
  background: #f7f4ec;
  color: #3c3c3c;
  font-family: var(--app-font-sans);
  font-size: 16px;
  line-height: 1.6;
  -webkit-font-smoothing: antialiased;
}
button, input { font: inherit; }
button, a, input { -webkit-tap-highlight-color: transparent; }
a { color: inherit; }
button:focus-visible, a:focus-visible, input:focus-visible, summary:focus-visible {
  outline: 3px solid #c98b5b;
  outline-offset: 4px;
}
.serif { font-family: var(--app-font-serif); }
.site-wrap { width: min(1120px, calc(100% - 48px)); margin-inline: auto; }
.skip-link {
  position: absolute; z-index: 100; top: 8px; left: 8px; transform: translateY(-160%);
  padding: 10px 16px; background: #2f4f3e; color: #fff; border-radius: 8px;
}
.skip-link:focus { transform: translateY(0); }
.brand-mark {
  width: 42px; height: 42px; border: 1.5px solid #2f4f3e; border-radius: 50%;
  display: grid; place-items: center; color: #2f4f3e; font-family: var(--app-font-serif);
  font-size: 14px; font-weight: 700; letter-spacing: -.06em; flex: none;
}
.brand-name { font-family: var(--app-font-serif); font-weight: 600; font-size: 17px; letter-spacing: -.025em; color: #2f4f3e; }
.site-header { height: 88px; display: flex; align-items: center; border-bottom: 1px solid rgba(47,79,62,.12); }
.brand-lockup { display:flex; gap: 12px; align-items:center; text-decoration:none; }
.eyebrow { font-size: 11px; line-height: 1.3; text-transform: uppercase; letter-spacing: .16em; font-weight: 700; color: #506956; }
.hero {
  display:grid; grid-template-columns: 1.02fr .98fr; gap: clamp(36px, 7vw, 96px); align-items:center;
  min-height: 600px; padding: 68px 0 80px;
}
.hero-copy { max-width: 535px; }
.hero h1 { color:#2f4f3e; font: 600 clamp(38px, 5.1vw, 59px)/1.12 var(--app-font-serif); letter-spacing:-.045em; margin: 18px 0 20px; }
.hero-subhead { color:#556259; font-size: 18px; line-height:1.65; max-width: 480px; margin:0 0 22px; }
.check-list { list-style:none; padding:0; margin:0 0 29px; display:grid; gap:10px; color:#48544b; font-size:15px; }
.check-list li { display:flex; align-items:flex-start; gap:11px; }
.check-dot { color:#54765a; font-weight:700; margin-top:1px; }
.form-card { background:#fbfaf6; border:1px solid #e6e0d5; border-radius:16px; padding: 23px 24px 21px; box-shadow:0 8px 25px rgba(52,65,50,.055); max-width: 510px; }
.form-title { font-size:14px; font-weight:700; color:#344b3b; margin:0 0 13px; }
.form-grid { display:grid; grid-template-columns:1fr 1fr; gap:12px; }
.field { display:flex; flex-direction:column; gap:5px; min-width:0; }
.field.full { grid-column:1/-1; }
.field label { font-size:12px; font-weight:600; color:#4b584e; }
.field input {
  width:100%; min-height:45px; border-radius:8px; border:1px solid #cfcfc2; background:#fffefa;
  padding:10px 12px; color:#333f35;
}
.field input::placeholder { color:#898d83; opacity:1; }
.consent-row { display:flex; align-items:flex-start; gap:10px; margin:14px 0 15px; font-size:12px; line-height:1.55; color:#59635b; }
.consent-row input { margin:3px 0 0; width:17px; height:17px; flex:none; accent-color:#2f4f3e; }
.consent-row a { color:#2f4f3e; text-underline-offset:2px; font-weight:600; }
.btn {
  border:0; min-height:49px; border-radius:9px; padding:12px 18px; display:inline-flex; align-items:center;
  justify-content:center; gap:10px; background:#2f4f3e; color:#fffdf7; text-decoration:none; font-weight:700;
  cursor:pointer; transition:transform .2s ease, background-color .2s ease, opacity .2s ease;
}
.btn:hover { background:#244331; transform:translateY(-1px); }
.btn:disabled { opacity:.58; cursor:wait; transform:none; }
.btn-primary { width:100%; }
.form-note { margin:10px 0 0; font-size:12px; color:#58645a; text-align:center; }
.form-error { min-height: 0; margin:0; color:#9d433b; font-size:13px; }
.form-error:not(:empty) { margin:10px 0 0; }
.form-error:empty { display:none; }
.hp-field { position:absolute!important; left:-10000px!important; width:1px!important; height:1px!important; overflow:hidden!important; }
.preview-stage { min-height:480px; display:grid; place-items:center; position:relative; isolation:isolate; }
.worksheet-image { width:min(360px,78vw); height:auto; position:relative; transform:rotate(3deg); box-shadow:0 24px 54px rgba(41,54,42,.18); }
.book-cover-image { width:158px; height:auto; box-shadow:0 12px 24px rgba(39,58,45,.18); transform:rotate(-2deg); }
.thankyou-workbook .book-cover-image { width:105px; height:auto; flex:none; }
.education-note { font-size:13px; color:#58645a; padding:20px 24px; border-left:3px solid #9bb39b; background:#edf1e9; }
.footer-links a { display:inline-flex; min-height:44px; align-items:center; }
.preview-stage::before, .preview-stage::after { content:""; position:absolute; z-index:-1; border-radius:50%; background:#e6ede2; }
.preview-stage::before { width:370px;height:370px;right:0;top:10px; }
.preview-stage::after { width:190px;height:190px;left:3px;bottom:6px;background:#edf0e7; }
.worksheet {
  width:min(340px, 76vw); min-height:427px; padding:35px 32px 26px; background:#fffefa;
  border:1px solid #e8e2d8; box-shadow:0 24px 54px rgba(41,54,42,.18); transform:rotate(2.3deg);
  position:relative; color:#455148;
}
.worksheet::before { content:""; position:absolute; inset:13px; border:1px solid #e9e5dc; pointer-events:none; }
.sheet-top { display:flex; justify-content:space-between; align-items:center; font-size:8px; color:#738275; letter-spacing:.12em; text-transform:uppercase; }
.sheet-logo { font-family:var(--app-font-serif); font-size:9px; font-weight:700; letter-spacing:0; color:#35533f; text-transform:none; }
.worksheet h2 { position:relative; font:600 24px/1.15 var(--app-font-serif); color:#314d39; margin:29px 0 8px; letter-spacing:-.035em; }
.sheet-intro { font-size:9px; color:#7a8178; margin:0 0 21px; }
.sheet-question { font-size:9px; color:#536054; font-weight:600; margin:11px 0 5px; }
.sheet-lines { height:19px; border-bottom:1px solid #dedfd5; }
.sheet-own { margin-top:17px; padding-top:8px; border-top:1px solid #d8ded4; color:#718372; font-size:8px; text-transform:uppercase; letter-spacing:.1em; }
.sheet-footer { position:absolute; bottom:24px; right:31px; font-size:7px; color:#899087; }
.free-badge {
  position:absolute; top:40px; right:-9px; transform:rotate(10deg); width:100px; height:100px; border-radius:50%;
   display:grid; place-content:center; text-align:center; background:#c98b5b; color:#312619; box-shadow:0 6px 17px rgba(87,65,43,.17);
  font-size:11px; line-height:1.3; font-weight:700; letter-spacing:.08em; border:1px solid rgba(255,255,255,.72);
}
.free-badge small { font-size:8px; letter-spacing:.16em; }
.section { padding:90px 0; }
.section, .second-cta, footer { content-visibility:auto; contain-intrinsic-size:auto 650px; }
.section-soft { background:#edf1e9; }
.section-heading { max-width:560px; margin:0 auto 42px; text-align:center; }
.section-heading h2 { font:600 clamp(30px,4vw,42px)/1.18 var(--app-font-serif); letter-spacing:-.04em; color:#2f4f3e; margin:9px 0 12px; }
.section-heading p { color:#566459; margin:0; }
.get-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:20px; }
.get-item { padding:26px 24px 28px; border-top:1px solid #cfd8cc; }
.icon-wrap { width:44px;height:44px; border-radius:13px; background:#e8efe6; color:#44644a; display:grid; place-items:center; margin-bottom:19px; }
.icon-wrap svg { width:23px;height:23px; stroke:currentColor; fill:none; stroke-width:1.65; stroke-linecap:round; stroke-linejoin:round; }
.get-item h3 { font:600 19px/1.3 var(--app-font-serif); color:#314d39; margin:0 0 8px; }
.get-item p { font-size:14px; color:#566459; margin:0; }
.steps { display:grid; grid-template-columns:repeat(3,1fr); gap:30px; position:relative; }
.steps::before { content:""; position:absolute; top:20px; left:17%; right:17%; border-top:1px dashed #aebdac; }
.step { position:relative; text-align:center; }
.step-number { position:relative; z-index:1; margin:0 auto 22px; width:42px;height:42px;display:grid;place-items:center;border:1px solid #79917a;border-radius:50%;background:#f7f4ec;color:#36543e;font-weight:700;font-family:var(--app-font-serif); }
.step h3 { font:600 18px/1.3 var(--app-font-serif); color:#314d39; margin:0 0 7px; }
.step p { margin:0; color:#566459; font-size:14px; }
.workbook-panel { display:grid; grid-template-columns:190px 1fr; gap:42px; align-items:center; max-width:850px; margin:0 auto; padding:36px 45px; background:#f8f6ef; border:1px solid #e2e5da; border-radius:20px; }
.book-cover { width:158px; height:218px; padding:18px 16px; display:flex; flex-direction:column; justify-content:space-between; background:#35513f; color:#f7f4ec; box-shadow:0 12px 24px rgba(39,58,45,.18); transform:rotate(-2deg); position:relative; overflow:hidden; }
.book-cover::after { content:""; position:absolute; width:170px;height:170px; right:-78px; bottom:-46px; border:1px solid rgba(235,227,201,.35); border-radius:50%; box-shadow:0 0 0 13px rgba(235,227,201,.05),0 0 0 27px rgba(235,227,201,.05); }
.cover-kicker { font-size:8px; letter-spacing:.17em; text-transform:uppercase; position:relative; z-index:1; }
.book-cover strong { position:relative; z-index:1; font:600 20px/1.18 var(--app-font-serif); letter-spacing:-.035em; }
.cover-bottom { position:relative;z-index:1;font-size:8px;letter-spacing:.08em;text-transform:uppercase;color:#e0d8c1; }
.workbook-copy h2 { font:600 29px/1.2 var(--app-font-serif); color:#2f4f3e; margin:0 0 11px; letter-spacing:-.035em; }
.workbook-copy p { margin:0 0 12px; font-size:14px; color:#657066; }
.feature-line { font-size:13px!important; color:#48594b!important; }
.btn-secondary { min-height:45px; padding:10px 15px; border:1px solid #91a18f; background:transparent; color:#2f4f3e; font-size:14px; }
.btn-secondary:hover { background:#e8efe6;color:#263f31; }
.faq-list { width:min(760px,100%); margin:0 auto; border-top:1px solid #d8ddd3; }
.faq-list details { border-bottom:1px solid #d8ddd3; }
.faq-list summary { list-style:none; cursor:pointer; padding:18px 4px; display:flex; justify-content:space-between; gap:16px; color:#344e3b; font-weight:600; }
.faq-list summary::-webkit-details-marker { display:none; }
.faq-list summary::after { content:"+"; font-size:22px; line-height:1; font-weight:400; color:#718672; }
.faq-list details[open] summary::after { content:"−"; }
.faq-list details p { max-width:680px; margin:-4px 30px 20px 4px; color:#687269; font-size:14px; }
.second-cta { padding:84px 0 92px; background:#e7eee4; }
.second-cta .section-heading { margin-bottom:30px; }
.second-cta .form-card { margin:0 auto; }
.disclaimer-strip { padding:20px 0; border-top:1px solid rgba(47,79,62,.14); border-bottom:1px solid rgba(47,79,62,.14); font-size:12px; line-height:1.55; color:#606d61; }
.disclaimer-strip strong { color:#3b5541; }
.site-footer { padding:26px 0 34px; display:flex; justify-content:space-between; gap:25px; align-items:flex-start; color:#566459; font-size:12px; }
.footer-links { display:flex; flex-wrap:wrap; gap:18px; }
.site-footer a { color:#3e5a44; text-underline-offset:3px; }
.postal { margin:6px 0 0; }
.content-page { min-height:65vh; padding:70px 0 90px; max-width:780px; }
.content-page h1 { font:600 clamp(38px,5vw,52px)/1.12 var(--app-font-serif); letter-spacing:-.04em; color:#2f4f3e; margin:12px 0 26px; }
.content-page h2 { font:600 24px/1.25 var(--app-font-serif); color:#2f4f3e; margin:34px 0 10px; }
.content-page p,.content-page li { color:#58645a; }
.content-page a:not(.btn) { color:#2f4f3e; text-underline-offset:3px; }
.thankyou-card { padding:45px; background:#fbfaf6; border:1px solid #e4e1d6; border-radius:18px; text-align:center; }
.thankyou-card h1 { margin-top:0; }
.thankyou-card > p { max-width:540px; margin:0 auto 24px; }
.thankyou-card .btn { width:min(420px,100%); }
.thankyou-workbook { margin:36px auto 0; padding-top:26px; border-top:1px solid #e3e5db; display:flex; align-items:center; justify-content:center; gap:26px; text-align:left; }
.thankyou-workbook h2 { color:#2f4f3e; margin:0 0 8px; font-size:22px; }
.thankyou-workbook p { font-size:14px; color:#657066; margin:0 0 12px; }
.thankyou-workbook .book-cover { width:105px;height:145px;padding:12px;flex:none; }
.thankyou-workbook .book-cover strong { font-size:14px; }
.thankyou-workbook .cover-kicker,.thankyou-workbook .cover-bottom { font-size:6px; }
.notfound { min-height:70vh; display:grid; place-items:center; text-align:center; padding:55px 20px; }
.notfound h1 { font:600 44px/1.1 var(--app-font-serif); color:#2f4f3e; }
.notfound p { color:#687269; }
.notfound .btn { margin-top:12px; }
.site-header .site-wrap { display:flex; align-items:center; }
.inert-loading { animation: arrive .5s ease both; }
@keyframes arrive { from { opacity:0; transform:translateY(8px); } to {opacity:1;transform:translateY(0);} }
@media (max-width: 760px) {
  .site-wrap { width:min(100% - 36px, 560px); }
  .site-header { height:72px; }
  .hero { grid-template-columns:1fr; gap:22px; padding:49px 0 57px; min-height:auto; }
  .hero h1 { max-width:600px; font-size:clamp(38px,10.5vw,52px); }
  .hero-subhead { font-size:16px; }
  .preview-stage { min-height:440px; margin:0 -5px; }
  .preview-stage::before { width:min(320px,85vw);height:min(320px,85vw);right:8%;top:28px; }
  .preview-stage::after { width:145px;height:145px;left:5%;bottom:10px; }
  .worksheet { width:min(320px,78vw); min-height:410px; }
  .free-badge { right:0; top:37px; width:87px;height:87px;font-size:10px; }
  .section { padding:68px 0; }
  .section-heading { margin-bottom:30px; }
  .get-grid { grid-template-columns:1fr; gap:8px; }
  .get-item { display:grid; grid-template-columns:48px 1fr; gap:0 14px; padding:18px 0; }
  .get-item .icon-wrap { grid-row:span 2; margin:0; }
  .get-item h3 { font-size:18px; }
  .get-item p { font-size:13px; }
  .steps { grid-template-columns:1fr; gap:26px; }
  .steps::before { top:20px; bottom:20px; left:20px; right:auto; border-top:0; border-left:1px dashed #aebdac; }
  .step { display:grid; grid-template-columns:42px 1fr; column-gap:17px; text-align:left; align-items:start; }
  .step-number { grid-row:span 2; margin:0; }
  .workbook-panel { grid-template-columns:96px 1fr; gap:23px; padding:25px 21px; }
  .book-cover { width:93px;height:132px;padding:11px; }
  .book-cover-image { width:93px; }
  .book-cover strong { font-size:13px; }
  .cover-kicker,.cover-bottom { font-size:6px; }
  .workbook-copy h2 { font-size:23px; }
  .workbook-copy p { font-size:13px; }
  .feature-line { font-size:12px!important; }
  .btn-secondary { font-size:12px; min-height:44px; padding:9px 10px; }
  .second-cta { padding:64px 0 70px; }
  .site-footer { flex-direction:column; }
  .content-page { padding:54px 0 65px; }
  .thankyou-card { padding:32px 20px; }
  .thankyou-workbook { align-items:flex-start; gap:18px; }
}
@media (max-width: 380px) {
  .site-wrap { width:calc(100% - 32px); }
  .brand-name { font-size:16px; }
  .form-card { padding:19px 16px; }
  .form-grid { grid-template-columns:1fr; }
  .field.full { grid-column:auto; }
  .workbook-panel { grid-template-columns:72px 1fr; gap:18px; padding:20px 15px; }
  .book-cover { width:72px;height:112px;padding:8px; }
  .book-cover-image { width:72px; }
  .book-cover strong { font-size:11px; }
  .workbook-copy h2 { font-size:21px; }
  .btn-secondary { white-space:normal; }
}
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { scroll-behavior:auto!important; animation-duration:.01ms!important; animation-iteration-count:1!important; transition-duration:.01ms!important; }
}
