/* Frequency Reset landing + thank-you — built on /final50/ff.css (same components as the $97 deck page).
   This file only adds what the deck page keeps in its own page-local <style>. */

/* ---- HERO: deck-page .hero-grid + an inline registration form ---- */
.hero-grid h1 { font-size: var(--t-hero); margin: 0.9rem 0 1.5rem; }
@media (min-width: 901px) { .hero-grid h1 { font-size: clamp(2.75rem, 3.6vw, 3.75rem); margin: 0.6rem 0 1.1rem; } .hero-copy-col .hero-live { margin-top: 0.9rem; } }
.hero-copy-col .hero-body { font-size: var(--t-body); line-height: 1.75; color: var(--cosmic-night); margin-bottom: 0; max-width: 620px; }
.hero-copy-col { justify-content: flex-start; }
@media (min-width: 901px) { .hero-copy-col { padding-top: calc(72px + 1.75rem) !important; padding-bottom: 4.5rem !important; } }
@media (max-width: 900px) { .hero-copy-col { padding-top: 3rem !important; } }
/* Desktop: the form makes the copy column tall; pin the photo to the viewport so Carson stays in frame */
@media (min-width: 901px) { .hero-grid .hero-photo-col { position: sticky; top: 0; align-self: start; height: 100vh; min-height: 640px; background-position: center 70%; } }
#join { margin-top: 2.25rem; max-width: 520px; }
section .cta-note, .hero-grid .cta-note, .modal-panel .cta-note { margin-top: 1rem; font-size: 1.0625rem; color: var(--smoke); line-height: 1.6; text-align: center; letter-spacing: 0.01em; }
.hero-grid .cta-note { text-align: left; }

/* ---- PREMIUM FORM CARD ---- */
.form-card { background: #fff; border: 1px solid var(--gold-border); border-top: 2px solid var(--gold); padding: 1.75rem 1.75rem 1.5rem; box-shadow: 0 18px 50px rgba(26,26,26,0.07), 0 2px 8px rgba(179,138,50,0.08); }
.register-form { text-align: left; }
.register-field { margin-bottom: 1rem; }
.register-label { display: block; font-family: var(--sans); font-size: 1rem; letter-spacing: 0.12em; text-transform: uppercase; color: var(--smoke); font-weight: var(--w-bold); margin-bottom: 0.45rem; }
.register-input { width: 100%; padding: 1rem 1.05rem; border: 1px solid rgba(107,94,82,0.3); font-family: var(--sans); font-size: 1.1875rem; color: var(--cosmic-night); background: var(--divine-white); outline: none; transition: border-color 0.2s, box-shadow 0.2s, background 0.2s; border-radius: 2px; }
.register-input:focus { border-color: var(--gold); background: #fff; box-shadow: 0 0 0 3px rgba(179,138,50,0.16); }
.register-input[aria-invalid="true"] { border-color: #B4332F; }
.register-submit { width: 100%; text-align: center; margin-top: 0.5rem; padding: 1.3rem 1.25rem; letter-spacing: 0.14em; box-shadow: 0 8px 22px rgba(159,120,56,0.28); }
.register-submit[disabled] { opacity: 0.55; cursor: not-allowed; }
.register-error { display: none; margin-top: 1rem; padding: 0.85rem 1rem; border-left: 3px solid #B4332F; background: rgba(180,51,47,0.07); color: #8A2622; font-size: 1.0625rem; line-height: 1.55; }
.register-error.on { display: block; }
.register-closed { display: none; padding: 1.5rem 1.75rem; border: 1px solid var(--gold-border); border-top: 2px solid var(--gold); background: var(--divine-white); text-align: center; }
.register-closed p { font-size: var(--t-body); color: var(--cosmic-night); line-height: 1.75; margin: 0; }
body.reset-closed .form-card, body.reset-closed .js-open-modal, body.reset-closed .cta-note, body.reset-closed .sticky-cta { display: none !important; }
body.reset-closed .register-closed { display: block; }

/* ---- APP SEQUENCE: open app → pull card → practice ---- */
.app-seq-section { background: var(--warm-cream); padding: 6rem 4rem; }
.app-seq { list-style: none; margin: 0 auto; padding: 0; max-width: 1080px; display: grid; grid-template-columns: repeat(3, 1fr); gap: 2.25rem; counter-reset: seq; }
.app-seq li { position: relative; }
.app-seq figure { margin: 0; background: #0D0D13; border-radius: 18px; overflow: hidden; box-shadow: 0 24px 50px rgba(26,26,26,0.18), 0 0 0 1px rgba(179,138,50,0.35); }
.app-seq img { display: block; width: 100%; height: auto; aspect-ratio: 3/4; }
.app-seq-cap { display: flex; align-items: baseline; gap: 0.85rem; margin-top: 1.5rem; justify-content: center; }
.app-seq-num { font-family: var(--serif); font-size: var(--t-title); color: var(--gold); line-height: 1; font-weight: var(--w-light); }
.app-seq-label { font-family: var(--serif); font-size: 1.75rem; color: var(--cosmic-night); line-height: 1.2; }
.app-seq li:not(:last-child)::after { content: ''; position: absolute; top: 38%; right: -1.8rem; width: 1.35rem; height: 1px; background: var(--gold); }
@media (max-width: 900px) {
  .app-seq-section { padding: 4rem 0 3.5rem; }
  .app-seq { display: flex; overflow-x: auto; scroll-snap-type: x mandatory; gap: 1.1rem; padding: 0.5rem 1.5rem 1.25rem; scroll-padding: 0 1.5rem; -webkit-overflow-scrolling: touch; scrollbar-width: none; }
  .app-seq::-webkit-scrollbar { display: none; }
  .app-seq li { flex: 0 0 72%; scroll-snap-align: start; max-width: 320px; }
  .app-seq li::after { display: none; }
  .app-seq-hint { display: block; }
}
.app-seq-hint { display: none; text-align: center; font-size: 1rem; color: var(--smoke); letter-spacing: 0.12em; text-transform: uppercase; margin-top: 0.25rem; }

/* ---- NUMBERED STEPS ---- */
.steps { list-style: none; margin: 3rem 0 0; padding: 0; }
.steps > li { display: grid; grid-template-columns: 4.25rem 1fr; gap: 0 1.5rem; padding: 2.25rem 0; border-top: 1px solid var(--gold-border); }
.steps > li:last-child { border-bottom: 1px solid var(--gold-border); }
.step-num { font-family: var(--serif); font-size: 3.75rem; font-weight: var(--w-light); color: var(--gold); line-height: 0.9; }
section .step-title { font-family: var(--serif); font-size: var(--t-title); font-weight: var(--w-medium); color: var(--cosmic-night); line-height: 1.2; margin: 0 0 1rem; }
.step-body p:last-child { margin-bottom: 0; }
.steps .shot { margin: 0.5rem 0 -1rem; max-width: 520px; overflow: hidden; }
.steps .shot img { margin: -9% 0 -4%; }
@media (max-width: 560px) { .steps > li { grid-template-columns: 1fr; gap: 0.5rem; padding: 2rem 0; } .step-num { font-size: 2.75rem; } }

/* ---- PRODUCT SHOTS (deck page) ---- */
.shot { margin: 3rem auto; max-width: 760px; text-align: center; }
.shot img { display: block; width: 100%; height: auto; margin: 0 auto; }

/* ---- SOUL LINE (deck page punchline) ---- */
.soul-block { text-align: center; margin: 2.75rem auto; max-width: 680px; }
section .soul-line { font-family: var(--serif); font-size: var(--t-title); font-style: italic; color: var(--gold-deep); line-height: 1.35; margin: 0; font-weight: var(--w-regular); }

/* ---- STORY: photo + text ---- */
.story-layout { display: grid; grid-template-columns: 340px 1fr; gap: 4.5rem; align-items: start; margin-top: 3.5rem; }
.story-photo { position: sticky; top: 110px; }
.story-photo img { width: 100%; height: auto; aspect-ratio: 4/5; object-fit: cover; object-position: center 30%; display: block; border: 1px solid var(--gold-border); box-shadow: 10px 10px 0 rgba(179,138,50,0.12); }
.story-text .soul-block { text-align: left; margin: 2rem 0 0; }
.story-text .soul-block .gold-line { margin-left: 0; }
@media (max-width: 900px) { .story-layout { grid-template-columns: 1fr; gap: 2.5rem; } .story-photo { position: static; max-width: 400px; margin: 0 auto; } .story-text .soul-block { text-align: center; } .story-text .soul-block .gold-line { margin-left: auto; } }

/* ---- TESTIMONIALS: the deck page #stories treatment ---- */
.quote-stack { display: flex; flex-direction: column; gap: 3.25rem; max-width: 760px; margin: 3.5rem auto 3.5rem; }
.quote { border-left: 2px solid var(--gold); padding: 0.5rem 0 0.5rem 2.25rem; }
section .quote-stack p.quote-text { font-family: var(--serif); font-size: var(--t-lead); color: var(--cosmic-night); font-weight: var(--w-regular); line-height: 1.65; margin: 0 0 1rem; }
section .quote-stack p.quote-name { font-family: var(--sans); font-size: 1rem; letter-spacing: 0.12em; text-transform: uppercase; color: var(--gold); font-weight: var(--w-bold); margin: 0; }
@media (max-width: 560px) { .quote { padding-left: 1.4rem; } section .quote-stack p.quote-text { font-size: 1.5rem; } }

.cta-row { text-align: center; margin-top: 3rem; }
.cta-row .btn-gold { padding: 1.3rem 2.4rem; letter-spacing: 0.14em; box-shadow: 0 8px 22px rgba(159,120,56,0.25); }
.final-form { margin: 3.5rem auto 0; max-width: 520px; }
.center { text-align: center; }

/* ---- MODAL ---- */
.reset-modal { position: fixed; inset: 0; z-index: 400; display: flex; align-items: center; justify-content: center; padding: 1.25rem; background: rgba(20,17,12,0.62); backdrop-filter: blur(3px); -webkit-backdrop-filter: blur(3px); opacity: 0; transition: opacity 0.2s ease; }
.reset-modal.open { opacity: 1; }
/* A closed modal must never block the page: [hidden] loses to display:flex without this */
.reset-modal[hidden] { display: none !important; }
.reset-modal:not(.open) { pointer-events: none; visibility: hidden; }
[hidden] { display: none !important; }
.reset-modal .modal-panel { background: var(--divine-white); max-width: 480px; width: 100%; padding: 3rem 2rem 2rem; position: relative; border-top: 2px solid var(--gold); box-shadow: 0 30px 80px rgba(0,0,0,0.35); max-height: calc(100vh - 2.5rem); overflow-y: auto; transform: translateY(12px); transition: transform 0.25s ease; }
.reset-modal.open .modal-panel { transform: none; }
.reset-modal .modal-close { position: absolute; top: 0.6rem; right: 0.75rem; background: none; border: none; cursor: pointer; font-size: 2rem; color: var(--smoke); line-height: 1; padding: 0.4rem 0.6rem; }
.reset-modal .modal-close:hover, .reset-modal .modal-close:focus-visible { color: var(--cosmic-night); }
.modal-heading { font-family: var(--serif); font-size: var(--t-title); font-weight: var(--w-regular); color: var(--cosmic-night); line-height: 1.2; margin: 0 0 1.5rem; text-align: center; }
body.modal-lock { overflow: hidden; }

/* ---- STICKY MOBILE CTA ---- */
.sticky-cta { display: none; }
@media (max-width: 900px) {
  .sticky-cta { display: block; position: fixed; left: 0; right: 0; bottom: 0; z-index: 300; padding: 0.75rem 1rem calc(0.75rem + env(safe-area-inset-bottom)); background: rgba(251,251,251,0.96); border-top: 1px solid var(--gold-border); box-shadow: 0 -8px 24px rgba(26,26,26,0.08); transform: translateY(110%); transition: transform 0.25s ease; }
  .sticky-cta.on { transform: none; }
  .sticky-cta .btn-gold { display: block; width: 100%; text-align: center; padding: 1.1rem 1rem; letter-spacing: 0.12em; }
  body.sticky-pad { padding-bottom: calc(5rem + env(safe-area-inset-bottom)); }
}

/* ---- THANK-YOU ---- */
.ty-hero { background: var(--divine-white); padding: calc(72px + 4.5rem) 1.5rem 1rem; text-align: center; }
.ty-hero-inner { max-width: 760px; margin: 0 auto; }
.ty-hero h1 { font-size: var(--t-hero); margin-bottom: 1rem; }
.ty-hero .hero-sub { text-align: center; }
.ty-schedule { margin: 2rem 0; border-top: 1px solid var(--gold-border); }
.ty-schedule-item { display: flex; justify-content: space-between; gap: 1rem; font-size: var(--t-body); color: var(--cosmic-night); line-height: 1.5; padding: 0.9rem 0; border-bottom: 1px solid var(--gold-border); }
.ty-schedule-item span:first-child { font-family: var(--serif); font-size: 1.625rem; color: var(--gold-deep); }
.ty-card { border: 1px solid var(--gold-border); border-top: 2px solid var(--gold); padding: 2.75rem 2.5rem; background: #fff; box-shadow: 0 18px 50px rgba(26,26,26,0.06); }
.ty-label { font-family: var(--sans); font-size: 1rem; letter-spacing: 0.14em; text-transform: uppercase; color: var(--gold); font-weight: var(--w-bold); margin-bottom: 1.25rem; }
.ty-choices { display: flex; flex-direction: column; gap: 1rem; margin-top: 2.25rem; }
.ty-choices a { text-align: center; padding: 1.25rem 1.25rem; letter-spacing: 0.12em; }
.ty-deck-grid { display: grid; grid-template-columns: 1fr 1.25fr; gap: 3rem; align-items: center; }
.ty-deck-grid .shot { margin: 0; }
@media (max-width: 860px) { .ty-deck-grid { grid-template-columns: 1fr; gap: 1.5rem; } .ty-card { padding: 2rem 1.35rem; } }

/* ---- Design floor: nothing visible under 16px ---- */
.nav-brand, .nav-cta, .btn-gold, .btn-ghost, .footer-copy, .footer-link, .footer-legal a { font-size: 1rem !important; }
.nav-cta { white-space: nowrap; cursor: pointer; }
@media (max-width: 420px) { .nav-brand { letter-spacing: 0.06em; } .nav-cta { padding-left: 0.9rem; padding-right: 0.9rem; letter-spacing: 0.08em; } }

/* Mobile hero: ff.css crops the photo at 15%, which shows only trees; show Carson */
@media (max-width: 900px) { .hero-grid .hero-photo-col { background-position: center 78% !important; } .hero-grid .cta-note { text-align: center; } #join { margin-left: auto; margin-right: auto; } }
@media (max-width: 480px) { .hero-grid .hero-eyebrow { letter-spacing: 0.1em; } .hero-grid .hero-eyebrow::before, .hero-grid .hero-eyebrow::after { display: none; } .form-card { padding: 1.35rem 1.1rem 1.2rem; } }

/* Reveal must never hide content if JS/IO fails */
.no-io .reveal { opacity: 1; transform: none; }
@media (prefers-reduced-motion: reduce) { .reveal { opacity: 1 !important; transform: none !important; transition: none !important; } h1 { animation: none !important; } }

/* ---- OCTOBER COHORT: hero line, Live line, compact Live schedule ---- */
.nowrap { white-space: nowrap; }
.hero-copy-col .hero-cohort { font-family: var(--sans); font-size: 1rem; letter-spacing: 0.14em; text-transform: uppercase; color: var(--smoke); font-weight: var(--w-bold); margin: 0.35rem 0 0; }
.hero-copy-col .hero-live { font-family: var(--serif); font-size: 1.5rem; font-style: italic; color: var(--gold-deep); line-height: 1.45; margin: 1.25rem 0 0; max-width: 620px; }
.live-list { list-style: none; margin: 2.5rem 0; padding: 0; border-top: 1px solid var(--gold-border); }
.live-list li { display: grid; grid-template-columns: minmax(0, 22rem) 1fr; gap: 0.25rem 2rem; align-items: baseline; padding: 1.2rem 0.25rem; border-bottom: 1px solid var(--gold-border); }
section .live-list p { margin: 0; }
section .live-list .live-when { font-family: var(--sans); font-size: 1.0625rem; letter-spacing: 0.04em; text-transform: uppercase; color: var(--gold-deep); font-weight: var(--w-bold); line-height: 1.5; }
section .live-list .live-what { font-size: var(--t-body); line-height: 1.55; }
@media (max-width: 760px) { .live-list li { grid-template-columns: 1fr; } }

/* Cormorant's old-style 1 reads as a Roman I: force lining figures on display numbers */
.step-num, .app-seq-num, .live-when, .modal-heading { font-variant-numeric: lining-nums; font-feature-settings: 'lnum' 1; }
@media (max-width: 480px) { .register-submit, .sticky-cta .btn-gold, .cta-row .btn-gold { letter-spacing: 0.06em !important; padding-left: 0.75rem; padding-right: 0.75rem; } }
.ty-deck-grid .shot img { mix-blend-mode: multiply; }
.ty-hero + section { padding-top: 3rem !important; }

/* Fanned cards: cropped image, wider than the text column, tight spacing */
.shot.shot-fan { max-width: 900px; margin: 2.25rem auto 2.25rem; width: min(900px, 100vw - 2rem); position: relative; left: 50%; transform: translateX(-50%); }
@media (max-width: 640px) { .shot.shot-fan { margin: 1.75rem auto; } }
