:root {
  --ink: #1d1612;
  --paper: #f2ece3;
  --paper-bright: #fbf7f1;
  --rust: #8f3f2c;
  --clay: #c07055;
  --wine: #321b1b;
  --olive: #526047;
  --line: rgba(29, 22, 18, 0.2);
  --muted: #6d625b;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; background: var(--paper); color: var(--ink); font-family: "Manrope", sans-serif; }
a { color: inherit; text-decoration: none; }
.wrap { width: min(1160px, calc(100% - 2.5rem)); margin: 0 auto; }

h1, h2, h3, p { margin-top: 0; }
h1, h2, h3 { font-family: "Fraunces", serif; font-weight: 600; letter-spacing: 0; }
h1 { max-width: 840px; font-size: clamp(3.2rem, 6.4vw, 6.5rem); line-height: 0.91; }
h2 { font-size: clamp(2.3rem, 4.7vw, 4.7rem); line-height: 0.96; }
h3 { font-size: clamp(1.35rem, 2vw, 1.85rem); line-height: 1.04; }
p, li, summary, label { font-size: 1rem; line-height: 1.72; }
p { color: var(--muted); }

.topbar { position: sticky; top: 0; z-index: 20; display: flex; align-items: center; justify-content: space-between; gap: 1rem; min-height: 4.7rem; padding: 0.75rem max(1.25rem, calc((100vw - 1160px) / 2)); border-bottom: 1px solid rgba(255,255,255,.2); background: rgba(25,18,15,.93); color: #fffaf3; backdrop-filter: blur(14px); }
.brand, .nav-links { display: flex; align-items: center; gap: 0.75rem; }
.brand { font-size: .92rem; font-weight: 700; }
.brand-mark { display: grid; width: 2.25rem; height: 2.25rem; place-items: center; border: 1px solid currentColor; border-radius: 50%; font-family: "Fraunces", serif; }
.nav-links { gap: 1.3rem; }
.nav-links a, .nav-cta { font-size: .69rem; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; }
.nav-cta { padding: .78rem .9rem; border: 1px solid #fffaf3; }

.hero { position: relative; display: grid; min-height: calc(100svh - 4.7rem); overflow: hidden; color: #fffaf3; isolation: isolate; }
.hero-video, .hero-shade { position: absolute; inset: 0; width: 100%; height: 100%; }
.hero-video { z-index: -2; object-fit: cover; object-position: center 25%; }
.hero-shade { z-index: -1; background: linear-gradient(90deg, rgba(25, 14, 11, .87) 0%, rgba(25, 14, 11, .63) 47%, rgba(25, 14, 11, .2) 100%); }
.hero-content { position: relative; z-index: 1; align-self: end; padding: 5rem 0 5.5rem; }
.overline { margin-bottom: 1.1rem; color: var(--rust); font-family: "DM Mono", monospace; font-size: .67rem; font-weight: 500; letter-spacing: .12em; text-transform: uppercase; }
.overline.light { color: #f0cbbd; }
.hero-lead { max-width: 700px; margin: 1.55rem 0; color: #fbebe3; font-size: clamp(1rem, 1.6vw, 1.25rem); line-height: 1.65; }
.proof-line { max-width: 720px; margin: 0 0 1.65rem; color: #fffaf3; font-size: .83rem; font-weight: 700; line-height: 1.55; }
.proof-line span { color: #e5a891; padding: 0 .35rem; }
.hero-note { max-width: 480px; margin: .9rem 0 0; color: rgba(255,250,243,.75); font-size: .72rem; line-height: 1.5; }
.hero-index { position: absolute; z-index: 1; right: 3vw; bottom: 2rem; font-family: "DM Mono", monospace; font-size: .7rem; letter-spacing: .12em; }

.button { display: inline-flex; min-height: 3.3rem; align-items: center; justify-content: center; padding: .9rem 1.25rem; border: 1px solid currentColor; font-family: "Manrope", sans-serif; font-size: .78rem; font-weight: 700; letter-spacing: .04em; transition: transform .18s ease, background .18s ease; }
.button:hover { transform: translateY(-2px); }
.button-light { background: #fffaf3; color: var(--ink); }
.button-dark { background: var(--ink); color: #fffaf3; }

.proof-section { display: grid; grid-template-columns: .75fr 1fr; gap: clamp(2.5rem, 8vw, 9rem); align-items: center; padding: clamp(5rem, 12vw, 10rem) 0; }
.proof-copy h2 { margin-bottom: 1.4rem; }
.proof-media { margin: 0; }
.proof-placeholder { display: grid; aspect-ratio: 4 / 5; align-content: end; gap: .6rem; padding: 1.8rem; background: linear-gradient(135deg, #633224, #bb8167 50%, #2f3228); color: #fffaf3; }
.proof-placeholder span { font-family: "DM Mono", monospace; font-size: .65rem; letter-spacing: .12em; text-transform: uppercase; }
.proof-placeholder strong { max-width: 18rem; font-family: "Fraunces", serif; font-size: clamp(1.65rem, 3vw, 2.75rem); font-weight: 500; line-height: 1; }
.proof-placeholder small { max-width: 16rem; color: rgba(255,250,243,.78); font-size: .72rem; line-height: 1.5; }
.proof-media figcaption { margin-top: 1rem; color: var(--muted); font-size: .88rem; line-height: 1.65; }

.problem-section { padding: clamp(5rem, 11vw, 10rem) 0; background: var(--ink); color: var(--paper-bright); }
.problem-layout { display: grid; grid-template-columns: .16fr 1fr; gap: clamp(2rem, 6vw, 6rem); }
.vertical-label { color: #d6a18d; font-family: "DM Mono", monospace; font-size: .68rem; letter-spacing: .11em; text-transform: uppercase; writing-mode: vertical-rl; }
.problem-layout h2 { max-width: 850px; }
.problem-text { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1.2rem; margin-top: 3.5rem; }
.problem-text p { margin: 0; color: #ded1c7; }

.method-section { padding: clamp(5rem, 11vw, 10rem) 0; }
.method-intro { max-width: 700px; }
.method-intro h2 { margin-bottom: 1.5rem; }
.method-list { display: grid; grid-template-columns: repeat(3, 1fr); gap: 0; margin: 4rem 0 0; padding: 0; list-style: none; border-top: 1px solid var(--ink); border-bottom: 1px solid var(--ink); }
.method-list li { min-height: 25rem; padding: 1.4rem; border-right: 1px solid var(--ink); display: flex; flex-direction: column; justify-content: space-between; }
.method-list li:last-child { border-right: 0; }
.method-list span { color: var(--rust); font-family: "Fraunces", serif; font-size: 5.8rem; line-height: .8; }
.method-list p { margin: 1rem 0 0; }
.method-quote { max-width: 780px; margin: 3.4rem 0 0 auto; color: var(--ink); font-family: "Fraunces", serif; font-size: clamp(1.45rem, 2.5vw, 2.35rem); line-height: 1.25; }

.origin-section { padding: clamp(5rem, 11vw, 10rem) 0; background: var(--wine); color: #fff8ed; }
.origin-layout { display: grid; grid-template-columns: .26fr 1fr .45fr; gap: clamp(1.5rem, 5vw, 5rem); align-items: start; }
.origin-stamp { padding-top: .5rem; color: #e0a78f; font-family: "Fraunces", serif; font-size: clamp(1.8rem, 3.4vw, 3.3rem); line-height: .9; }
.origin-copy h2 { margin-bottom: 1.8rem; }
.origin-copy p { color: #ead8ce; }
.press-slot { min-height: 13rem; padding: 1.1rem; border: 1px solid rgba(255,248,237,.4); color: #e4c9bb; font-size: .78rem; line-height: 1.6; }

.course-section { padding: clamp(5rem, 11vw, 10rem) 0; }
.course-heading { display: grid; grid-template-columns: .5fr 1fr; gap: 1rem; align-items: end; margin-bottom: 3rem; }
.course-heading .overline { margin: 0 0 .5rem; }
.days { display: grid; grid-template-columns: 1fr 1fr; }
.day { min-height: 29rem; padding: clamp(1.5rem, 4vw, 3rem); }
.day-one { background: var(--clay); color: #fff9f1; }
.day-two { background: var(--olive); color: #fff9f1; }
.day > p { color: inherit; font-family: "Fraunces", serif; font-size: 3.2rem; line-height: 1; }
.day ul { margin: 2.5rem 0 0; padding-left: 1.2rem; }
.day li { margin-bottom: .85rem; line-height: 1.58; }
.structure-note { max-width: 770px; margin: 2rem 0 0 auto; padding: 1.45rem 0 0; border-top: 1px solid var(--ink); color: var(--ink); font-size: 1.1rem; line-height: 1.65; }

.practice-section { padding: clamp(5rem, 11vw, 10rem) 0; background: var(--olive); color: #fffaf3; }
.practice-layout { display: grid; grid-template-columns: .48fr 1fr; gap: clamp(2rem, 9vw, 10rem); align-items: center; }
.practice-marker { display: grid; align-content: center; justify-items: start; gap: .8rem; min-height: 22rem; padding: 1.5rem 0; border-top: 1px solid rgba(255,250,243,.5); border-bottom: 1px solid rgba(255,250,243,.5); color: #e5c6ae; font-family: "DM Mono", monospace; font-size: .7rem; letter-spacing: .12em; text-transform: uppercase; }
.practice-marker strong { color: #fffaf3; font-family: "Fraunces", serif; font-size: clamp(5rem, 12vw, 10rem); font-weight: 500; line-height: .7; }
.practice-copy h2 { max-width: 800px; margin-bottom: 1.7rem; }
.practice-copy > p:not(.overline) { max-width: 720px; color: #f1e7dc; font-size: clamp(1.05rem, 1.6vw, 1.28rem); line-height: 1.7; }
.practice-points { display: grid; gap: 0; max-width: 760px; margin: 2.2rem 0 0; padding: 0; border-top: 1px solid rgba(255,250,243,.5); list-style: none; }
.practice-points li { display: grid; grid-template-columns: 1.8rem 1fr; gap: .7rem; padding: 1rem 0; border-bottom: 1px solid rgba(255,250,243,.5); color: #fffaf3; line-height: 1.55; }
.practice-points li::before { content: "0" counter(item); counter-increment: item; color: #e5c6ae; font-family: "DM Mono", monospace; font-size: .7rem; padding-top: .35rem; }
.practice-points { counter-reset: item; }
.practice-copy .practice-capacity { margin: 2.2rem 0 0; color: #fffaf3; font-family: "Fraunces", serif; font-size: clamp(1.35rem, 2.4vw, 2rem); line-height: 1.22; }
.practice-copy .practice-closing { margin-top: .7rem; color: #f1e7dc; font-size: 1rem; line-height: 1.65; }
.practice-cta { margin-top: 1.7rem; }

.transformation-section { padding: clamp(5rem, 11vw, 10rem) 0; background: #e4d5c6; }
.transformation-layout { display: grid; grid-template-columns: 1fr .85fr; gap: clamp(2rem, 9vw, 10rem); }
.outcome-list { padding-left: 1.2rem; border-left: 1px solid var(--ink); }
.outcome-list > p { color: var(--ink); font-family: "Fraunces", serif; font-size: 1.4rem; }
.outcome-list ol { margin: 2rem 0 0; padding: 0; list-style: none; counter-reset: item; }
.outcome-list li { display: grid; grid-template-columns: 2.2rem 1fr; gap: .6rem; padding: .8rem 0; border-top: 1px solid rgba(29,22,18,.25); color: var(--ink); }
.outcome-list li::before { content: "0" counter(item); counter-increment: item; color: var(--rust); font-family: "DM Mono", monospace; font-size: .7rem; padding-top: .35rem; }

.social-section { display: grid; grid-template-columns: .33fr 1fr; gap: clamp(1rem, 7vw, 8rem); padding: clamp(5rem, 11vw, 10rem) 0; align-items: start; }
.social-number { color: var(--rust); font-family: "Fraunces", serif; font-size: clamp(7rem, 16vw, 14rem); line-height: .72; }
.social-section h2 { max-width: 780px; margin-bottom: 1.5rem; }
.social-section p:last-child { max-width: 670px; }

.offer-section { padding: clamp(5rem, 10vw, 9rem) 0; background: var(--rust); color: #fffaf3; }
.offer-layout { display: grid; grid-template-columns: 1.1fr .7fr; gap: 1rem; }
.offer-city { padding: 1.3rem 0; }
.offer-city p { max-width: 450px; color: #fae6dc; }
.price-block { display: grid; align-content: center; justify-items: start; gap: .9rem; min-height: 22rem; padding: 2rem; background: #f8eee5; color: var(--ink); }
.price-block span { font-family: "DM Mono", monospace; font-size: .7rem; letter-spacing: .11em; text-transform: uppercase; }
.price-block strong { font-family: "Fraunces", serif; font-size: clamp(3.3rem, 6vw, 5.3rem); line-height: .9; }
.price-block p { color: var(--muted); font-size: .8rem; }
.urgency-line { grid-column: 1 / -1; max-width: 760px; margin: 2.2rem 0 0; color: #fff2eb; font-size: 1.02rem; }

.form-section { display: grid; grid-template-columns: .65fr 1fr; gap: clamp(2.5rem, 8vw, 9rem); padding: clamp(5rem, 11vw, 10rem) 0; }
.form-copy { position: sticky; top: 6.5rem; align-self: start; }
.form-copy h2 { margin-bottom: 1.5rem; }
.application-form { display: grid; grid-template-columns: 1fr 1fr; gap: 1rem; padding: 1.25rem; background: var(--paper-bright); border: 1px solid var(--ink); }
label { display: grid; gap: .42rem; color: var(--ink); font-size: .75rem; font-weight: 700; line-height: 1.4; }
input, select { min-height: 3.2rem; padding: .75rem .8rem; border: 1px solid rgba(29,22,18,.45); border-radius: 0; background: transparent; color: var(--ink); font: inherit; }
input:focus, select:focus { outline: 2px solid var(--rust); outline-offset: 2px; }
.span-2 { grid-column: span 2; }
.form-actions { display: flex; align-items: center; flex-wrap: wrap; gap: 1rem; padding-top: .5rem; }
.form-actions p { margin: 0; font-size: .78rem; line-height: 1.5; }
.form-result { padding: 1rem; border: 1px solid var(--olive); background: #e7eee0; color: var(--ink); white-space: pre-wrap; }

.application-outcome { padding: 0 0 clamp(5rem, 11vw, 10rem); background: var(--paper); }
.outcome-panel { max-width: 900px; padding: clamp(2rem, 5vw, 4.4rem); background: var(--olive); color: #fffaf3; }
.outcome-panel h2 { max-width: 680px; margin: .65rem 0 1.4rem; }
.outcome-panel > p:not(.overline) { max-width: 650px; color: #f1e7dc; font-size: clamp(1.05rem, 1.8vw, 1.3rem); line-height: 1.65; }
.calendar-embed-slot { display: grid; gap: .25rem; min-height: 8.6rem; margin-top: 2.2rem; padding: 1.2rem; border: 1px dashed rgba(255,250,243,.58); align-content: center; color: #fffaf3; }
.calendar-embed-slot span { font-family: "Fraunces", serif; font-size: 1.4rem; }
.calendar-embed-slot small { color: #e5c6ae; }
.outcome-actions { display: flex; align-items: center; flex-wrap: wrap; gap: 1.1rem; margin-top: 1.75rem; }
.outcome-actions .button:disabled { cursor: default; opacity: 1; }
.outcome-link { padding: 0; border: 0; background: transparent; color: #fffaf3; font: inherit; font-weight: 700; text-decoration: underline; text-underline-offset: .22em; }
.outcome-link:disabled { cursor: default; opacity: .78; }

.faq-section { display: grid; grid-template-columns: .55fr 1fr; gap: clamp(2rem, 8vw, 8rem); padding: clamp(5rem, 11vw, 10rem) 0; border-top: 1px solid var(--line); }
.faq-list { border-top: 1px solid var(--ink); }
.faq-list details { border-bottom: 1px solid var(--ink); }
.faq-list summary { padding: 1.3rem 2.2rem 1.3rem 0; color: var(--ink); cursor: pointer; font-family: "Fraunces", serif; font-size: 1.25rem; font-weight: 600; line-height: 1.25; }
.faq-list p { max-width: 90%; padding-bottom: 1.3rem; }

.closing-section { padding: clamp(6rem, 15vw, 13rem) 0; background: #201714; color: #fffaf3; text-align: center; }
.closing-content { max-width: 850px; }
.closing-content h2 { margin-bottom: 1.6rem; }
.closing-content > p { max-width: 630px; margin: 0 auto 2rem; color: #ead8ce; }
.closing-content small { display: block; margin-top: 1.2rem; color: #cdb9ad; font-size: .78rem; }
.footer { display: flex; justify-content: space-between; gap: 1rem; padding-top: 1.4rem; padding-bottom: 1.4rem; color: var(--muted); font-size: .78rem; }
.footer a { font-weight: 700; }

@media (max-width: 800px) {
  .wrap { width: min(100% - 2rem, 640px); }
  .nav-links { display: none; }
  .topbar { padding: .65rem 1rem; }
  .nav-cta { font-size: .59rem; }
  .hero { min-height: calc(100svh - 4.1rem); }
  .hero-shade { background: linear-gradient(0deg, rgba(25,14,11,.87) 0%, rgba(25,14,11,.48) 100%); }
  .hero-content { padding-bottom: 3.5rem; }
  .hero-index { display: none; }
  .proof-section, .problem-layout, .origin-layout, .practice-layout, .transformation-layout, .social-section, .offer-layout, .form-section, .faq-section { grid-template-columns: 1fr; }
  .vertical-label { writing-mode: horizontal-tb; }
  .problem-text, .method-list { grid-template-columns: 1fr; }
  .problem-text { margin-top: 2rem; }
  .method-list li { min-height: auto; gap: 2rem; border-right: 0; border-bottom: 1px solid var(--ink); }
  .method-list li:last-child { border-bottom: 0; }
  .origin-stamp { order: 2; }
  .press-slot { min-height: 9rem; }
  .course-heading { grid-template-columns: 1fr; }
  .days { grid-template-columns: 1fr; }
  .day { min-height: auto; }
  .practice-marker { min-height: auto; grid-auto-flow: column; justify-content: start; align-items: center; }
  .practice-marker strong { font-size: 4rem; }
  .form-copy { position: static; }
  .application-form { grid-template-columns: 1fr; }
  .span-2 { grid-column: auto; }
  .outcome-panel { padding: 2rem 1.35rem; }
  .social-number { font-size: 7rem; }
}

@media (max-width: 420px) {
  h1 { font-size: 3rem; }
  .brand { font-size: .78rem; }
  .nav-cta { padding: .65rem .55rem; letter-spacing: .04em; }
  .proof-line span { padding: 0 .08rem; }
}
