/* ──────────────────────────────────────────────────────────
   SECRETPASS — Early Access page (one-off, not part of LP/blog).
   Shared color/type tokens come from tokens.css (linked in the
   template head); only this page's amber accent + layout live here.
   ────────────────────────────────────────────────────────── */

      /* ── RESET ── */
      *, *::before, *::after {
        box-sizing: border-box;
        margin: 0;
        padding: 0;
      }

      /* ── TOKENS ──
         Shared color/type tokens come from /css/tokens.css (linked in <head>).
         Only the amber accent, unique to this page, is defined here. */
      :root {
        --amber-border: rgba(180,130,30,0.35);
        --amber-bg: rgba(251,243,219,0.55);
      }

      /* ── BASE ── */
      html {
        scroll-behavior: smooth;
        font-size: 16px;
      }

      body {
        font-family: 'Geist', system-ui, sans-serif;
        font-weight: 400;
        background: var(--paper);
        color: var(--ink);
        -webkit-font-smoothing: antialiased;
        overflow-x: hidden;
      }

      /* ── LOAD ANIMATIONS ── */
      .hero-tag,
      .hero-headline,
      .hero-sub,
      .hero-cta,
      .hero-visual {
        opacity: 0;
        transform: translateY(24px);
        transition: opacity 0.7s ease, transform 0.7s ease;
      }

      body.loaded .hero-tag    { opacity: 1; transform: none; transition-delay: 0.05s; }
      body.loaded .hero-headline { opacity: 1; transform: none; transition-delay: 0.18s; }
      body.loaded .hero-sub    { opacity: 1; transform: none; transition-delay: 0.32s; }
      body.loaded .hero-cta    { opacity: 1; transform: none; transition-delay: 0.46s; }
      body.loaded .hero-visual { opacity: 1; transform: none; transition-delay: 0.6s; }

      /* ── SCROLL REVEAL ── */
      .reveal {
        opacity: 0;
        transform: translateY(30px);
        transition: opacity 0.65s ease, transform 0.65s ease;
      }
      .reveal.visible {
        opacity: 1;
        transform: none;
      }

      /* ── HEADER ── */
      .site-header {
        position: fixed;
        top: 0;
        left: 0;
        right: 0;
        z-index: 100;
        height: 56px;
        display: flex;
        align-items: center;
        justify-content: space-between;
        padding: 0 32px;
        background: rgba(10,10,10,0.78);
        backdrop-filter: blur(12px);
        -webkit-backdrop-filter: blur(12px);
        border-bottom: 1px solid rgba(255,255,255,0.07);
      }

      .header-logo svg {
        height: 22px;
        width: auto;
        display: block;
      }

      .header-badge {
        font-family: 'Geist Mono', monospace;
        font-size: 10px;
        font-weight: 400;
        letter-spacing: 0.12em;
        text-transform: uppercase;
        color: var(--gray-4);
        border: 1px solid rgba(255,255,255,0.12);
        padding: 4px 10px;
        border-radius: 2px;
      }

      /* ── HERO ── */
      .hero {
        min-height: 100svh;
        background: var(--ink);
        display: grid;
        grid-template-columns: 1fr 1fr;
        align-items: center;
        padding: 88px 64px 64px;
        gap: 48px;
        position: relative;
        overflow: hidden;
      }

      .hero::before {
        content: '';
        position: absolute;
        inset: 0;
        background: radial-gradient(ellipse 60% 60% at 80% 50%, rgba(255,255,255,0.025) 0%, transparent 70%);
        pointer-events: none;
      }

      .hero-content {
        display: flex;
        flex-direction: column;
        gap: 28px;
        position: relative;
        z-index: 1;
      }

      .hero-tag {
        font-family: 'Geist Mono', monospace;
        font-size: 11px;
        font-weight: 400;
        letter-spacing: 0.14em;
        text-transform: uppercase;
        color: var(--gray-4);
        display: flex;
        align-items: center;
        gap: 10px;
      }

      .hero-tag::before {
        content: '';
        display: inline-block;
        width: 20px;
        height: 1px;
        background: var(--gray-5);
      }

      .hero-headline {
        font-family: 'Geist', sans-serif;
        font-weight: 500;
        font-size: clamp(64px, 8vw, 104px);
        line-height: 0.95;
        letter-spacing: -0.04em;
        color: var(--paper);
      }

      .hero-sub {
        font-size: 17px;
        font-weight: 300;
        line-height: 1.65;
        color: var(--gray-4);
        max-width: 440px;
      }

      .hero-sub strong {
        color: var(--paper);
        font-weight: 500;
      }

      .hero-cta {
        display: flex;
        align-items: center;
        gap: 16px;
        flex-wrap: wrap;
      }

      .btn-primary {
        display: inline-flex;
        align-items: center;
        gap: 8px;
        background: var(--paper);
        color: var(--ink);
        font-family: 'Geist', sans-serif;
        font-size: 14px;
        font-weight: 500;
        letter-spacing: 0.01em;
        padding: 12px 24px;
        border: none;
        cursor: pointer;
        text-decoration: none;
        transition: background 0.2s, transform 0.15s;
      }

      .btn-primary:hover {
        background: var(--paper-2);
        transform: translateY(-1px);
      }

      .btn-primary svg {
        width: 14px;
        height: 14px;
        flex-shrink: 0;
      }

      /* ── HERO VISUAL (SVG grid) ── */
      .hero-visual {
        position: relative;
        z-index: 1;
        display: flex;
        align-items: center;
        justify-content: center;
      }

      .grid-svg {
        width: 100%;
        max-width: 520px;
        height: auto;
      }

      /* Axis line draw-in */
      .axis-line {
        stroke-dasharray: 600;
        stroke-dashoffset: 600;
        animation: drawAxis 1.2s cubic-bezier(0.4,0,0.2,1) forwards;
      }

      .axis-line-x { animation-delay: 0.7s; }
      .axis-line-y { animation-delay: 0.9s; }

      @keyframes drawAxis {
        to { stroke-dashoffset: 0; }
      }

      /* Grid lines */
      .grid-line {
        stroke-dasharray: 400;
        stroke-dashoffset: 400;
        animation: drawAxis 1s ease forwards;
      }

      /* Scatter dot pop */
      .scatter-dot {
        transform-origin: center;
        transform-box: fill-box;
        opacity: 0;
        transform: scale(0);
        animation: popDot 0.4s cubic-bezier(0.34,1.56,0.64,1) forwards;
      }

      @keyframes popDot {
        to { opacity: 1; transform: scale(1); }
      }

      /* Ranqia zone */
      .ranqia-zone {
        opacity: 0;
        animation: fadeIn 0.6s ease forwards;
        animation-delay: 1.8s;
      }

      @keyframes fadeIn {
        to { opacity: 1; }
      }

      /* ── STAT BAND ── */
      .stat-band {
        background: var(--paper);
        border-top: 1px solid var(--rule-soft);
        border-bottom: 1px solid var(--rule-soft);
        padding: 56px 64px;
        display: flex;
        align-items: center;
        gap: 40px;
      }

      .stat-number {
        font-family: 'Geist', sans-serif;
        font-weight: 300;
        font-size: clamp(64px, 8vw, 96px);
        line-height: 1;
        letter-spacing: -0.04em;
        color: var(--ink);
        white-space: nowrap;
        flex-shrink: 0;
      }

      .stat-separator {
        width: 1px;
        height: 64px;
        background: var(--rule-soft);
        flex-shrink: 0;
      }

      .stat-text {
        font-size: 17px;
        font-weight: 300;
        line-height: 1.6;
        color: var(--gray-6);
        max-width: 560px;
      }

      .stat-text strong {
        color: var(--ink);
        font-weight: 500;
      }

      /* ── MAIN CONTENT ── */
      .main-content {
        max-width: 1120px;
        margin: 0 auto;
        padding: 80px 64px;
      }

      /* ── RULES ── */
      .rule {
        border: none;
        border-top: 1px solid var(--rule-soft);
        margin: 56px 0;
      }

      .rule-ink {
        border: none;
        border-top: 2px solid var(--ink);
        margin: 0 0 32px 0;
      }

      /* ── INTRO TEXT ── */
      .intro-text {
        display: grid;
        grid-template-columns: 200px 1fr;
        gap: 48px;
        align-items: start;
      }

      .intro-eyebrow {
        font-family: 'Geist Mono', monospace;
        font-size: 10px;
        font-weight: 400;
        letter-spacing: 0.14em;
        text-transform: uppercase;
        color: var(--gray-5);
        padding-top: 4px;
      }

      .intro-body p {
        font-size: 17px;
        font-weight: 300;
        line-height: 1.7;
        color: var(--gray-6);
        margin-bottom: 20px;
      }

      .intro-body p:last-child { margin-bottom: 0; }

      .intro-body strong {
        color: var(--ink);
        font-weight: 500;
      }

      /* ── QUESTIONS BLOCK ── */
      .questions-block {
        display: grid;
        grid-template-columns: 200px 1fr;
        gap: 48px;
        align-items: start;
      }

      .questions-label {
        font-family: 'Geist Mono', monospace;
        font-size: 10px;
        font-weight: 400;
        letter-spacing: 0.14em;
        text-transform: uppercase;
        color: var(--gray-5);
        padding-top: 4px;
      }

      .questions-list {
        list-style: none;
        display: flex;
        flex-direction: column;
        gap: 20px;
      }

      .questions-list li {
        font-family: 'Newsreader', Georgia, serif;
        font-style: italic;
        font-weight: 400;
        font-size: 22px;
        line-height: 1.4;
        color: var(--ink);
        padding-left: 20px;
        border-left: 2px solid var(--rule-soft);
      }

      /* ── CAPABILITIES ── */
      .capabilities {
        display: flex;
        flex-direction: column;
        gap: 0;
      }

      .cap-item {
        display: grid;
        grid-template-columns: 64px 1fr;
        align-items: baseline;
        gap: 24px;
        padding: 20px 0;
        border-top: 1px solid var(--rule-soft);
      }

      .cap-item:last-child {
        border-bottom: 1px solid var(--rule-soft);
      }

      .cap-num {
        font-family: 'Geist Mono', monospace;
        font-size: 11px;
        font-weight: 400;
        letter-spacing: 0.1em;
        color: var(--gray-5);
      }

      .cap-title {
        font-size: 16px;
        font-weight: 400;
        color: var(--ink);
      }

      .cap-subtitle {
        font-size: 13px;
        color: var(--gray-5);
        margin-top: 2px;
      }

      /* ── METHODOLOGY ── */
      .method-grid {
        display: grid;
        grid-template-columns: 1fr 1fr;
        gap: 1px;
        background: var(--rule-soft);
        border: 1px solid var(--rule-soft);
        margin-bottom: 1px;
      }

      .method-cell {
        background: var(--paper);
        padding: 28px 32px;
        display: flex;
        flex-direction: column;
        gap: 10px;
      }

      .method-num {
        font-family: 'Geist Mono', monospace;
        font-size: 10px;
        font-weight: 400;
        letter-spacing: 0.14em;
        text-transform: uppercase;
        color: var(--gray-4);
      }

      .method-title {
        font-size: 15px;
        font-weight: 500;
        color: var(--ink);
      }

      .method-body {
        font-size: 14px;
        font-weight: 300;
        line-height: 1.6;
        color: var(--gray-6);
      }

      .method-highlight {
        background: var(--ink);
        padding: 28px 32px;
        display: flex;
        align-items: center;
        gap: 16px;
        border: 1px solid var(--rule-soft);
      }

      .method-highlight-label {
        font-family: 'Geist Mono', monospace;
        font-size: 10px;
        font-weight: 400;
        letter-spacing: 0.14em;
        text-transform: uppercase;
        color: var(--gray-4);
        white-space: nowrap;
        flex-shrink: 0;
      }

      .method-highlight-text {
        font-size: 16px;
        font-weight: 400;
        color: var(--paper);
        line-height: 1.4;
      }

      /* ── FUNNEL STRATEGY ── */
      .funnel-header {
        display: flex;
        flex-direction: column;
        gap: 10px;
        margin-bottom: 36px;
      }

      .section-eyebrow {
        font-family: 'Geist Mono', monospace;
        font-size: 10px;
        font-weight: 400;
        letter-spacing: 0.14em;
        text-transform: uppercase;
        color: var(--gray-5);
      }

      .section-title {
        font-family: 'Geist', sans-serif;
        font-weight: 400;
        font-size: 28px;
        letter-spacing: -0.02em;
        color: var(--ink);
      }

      .funnel-grid {
        display: grid;
        grid-template-columns: repeat(3, 1fr);
        gap: 1px;
        background: var(--rule-soft);
        border: 1px solid var(--rule-soft);
      }

      .funnel-cell {
        background: var(--paper);
        padding: 28px 28px 32px;
        display: flex;
        flex-direction: column;
        gap: 12px;
      }

      .funnel-stage {
        font-family: 'Geist Mono', monospace;
        font-size: 10px;
        font-weight: 400;
        letter-spacing: 0.14em;
        text-transform: uppercase;
        color: var(--gray-5);
      }

      .funnel-title {
        font-size: 16px;
        font-weight: 500;
        color: var(--ink);
      }

      .funnel-body {
        font-size: 14px;
        font-weight: 300;
        line-height: 1.6;
        color: var(--gray-6);
      }

      .funnel-note {
        margin-top: 16px;
        padding: 14px 18px;
        background: var(--paper-2);
        border-left: 2px solid var(--gray-3);
        font-family: 'Geist Mono', monospace;
        font-size: 12px;
        font-weight: 400;
        color: var(--gray-6);
        line-height: 1.5;
      }

      /* ── FORM SECTION ── */
      .form-section {
        background: var(--paper-2);
        border-top: 1px solid var(--rule-soft);
        padding: 80px 64px;
      }

      .form-container {
        max-width: 720px;
        margin: 0 auto;
      }

      .form-header {
        display: flex;
        flex-direction: column;
        gap: 10px;
        margin-bottom: 40px;
      }

      /* ── ERROR BANNER ── */
      .error-banner {
        display: none;
        background: #FEF2F2;
        border: 1px solid #FECACA;
        color: #991B1B;
        padding: 14px 18px;
        font-size: 14px;
        font-weight: 400;
        margin-bottom: 28px;
        border-radius: 2px;
      }

      .error-banner.visible { display: block; }

      /* ── FORM ── */
      .form-grid {
        display: grid;
        grid-template-columns: 1fr 1fr;
        gap: 20px;
        margin-bottom: 20px;
      }

      .field {
        display: flex;
        flex-direction: column;
        gap: 6px;
      }

      .field.full {
        grid-column: 1 / -1;
      }

      label {
        font-family: 'Geist Mono', monospace;
        font-size: 10px;
        font-weight: 400;
        letter-spacing: 0.12em;
        text-transform: uppercase;
        color: var(--gray-5);
      }

      input[type="text"],
      input[type="email"],
      input[type="tel"] {
        font-family: 'Geist', sans-serif;
        font-size: 15px;
        font-weight: 300;
        color: var(--ink);
        background: var(--paper);
        border: 1px solid var(--rule-soft);
        padding: 12px 14px;
        outline: none;
        transition: border-color 0.2s;
        width: 100%;
        border-radius: 0;
        -webkit-appearance: none;
      }

      input:focus {
        border-color: var(--gray-4);
      }

      input.invalid {
        border-color: #F87171;
      }

      /* ── PROMPTS ── */
      .prompts-section {
        margin-bottom: 20px;
      }

      .prompts-label {
        font-family: 'Geist Mono', monospace;
        font-size: 10px;
        font-weight: 400;
        letter-spacing: 0.12em;
        text-transform: uppercase;
        color: var(--gray-5);
        margin-bottom: 12px;
        display: block;
      }

      .prompts-list {
        display: flex;
        flex-direction: column;
        gap: 8px;
        margin-bottom: 12px;
      }

      .prompt-row {
        display: grid;
        grid-template-columns: 32px 1fr 32px;
        align-items: center;
        gap: 8px;
      }

      .prompt-num {
        font-family: 'Geist Mono', monospace;
        font-size: 11px;
        font-weight: 400;
        color: var(--gray-4);
        text-align: right;
        user-select: none;
      }

      .prompt-row input {
        font-family: 'Geist', sans-serif;
        font-size: 14px;
        font-weight: 300;
        color: var(--ink);
        background: var(--paper);
        border: 1px solid var(--rule-soft);
        padding: 10px 12px;
        outline: none;
        transition: border-color 0.2s;
        width: 100%;
        border-radius: 0;
      }

      .prompt-row input:focus { border-color: var(--gray-4); }

      .btn-remove-prompt {
        width: 28px;
        height: 28px;
        display: flex;
        align-items: center;
        justify-content: center;
        background: none;
        border: 1px solid var(--rule-soft);
        color: var(--gray-4);
        cursor: pointer;
        font-size: 16px;
        line-height: 1;
        transition: border-color 0.2s, color 0.2s;
        padding: 0;
        flex-shrink: 0;
      }

      .btn-remove-prompt:hover {
        border-color: var(--gray-5);
        color: var(--ink);
      }

      .btn-add-prompt {
        display: inline-flex;
        align-items: center;
        gap: 8px;
        background: none;
        border: 1px solid var(--rule-soft);
        color: var(--gray-5);
        font-family: 'Geist Mono', monospace;
        font-size: 11px;
        font-weight: 400;
        letter-spacing: 0.1em;
        text-transform: uppercase;
        padding: 8px 14px;
        cursor: pointer;
        transition: border-color 0.2s, color 0.2s;
      }

      .btn-add-prompt:hover {
        border-color: var(--gray-4);
        color: var(--ink);
      }

      .btn-add-prompt:disabled {
        opacity: 0.4;
        cursor: default;
      }

      /* ── AMBER NOTE ── */
      .amber-note {
        background: var(--amber-bg);
        border: 1px solid var(--amber-border);
        padding: 16px 20px;
        margin-bottom: 28px;
        display: flex;
        gap: 12px;
        align-items: flex-start;
      }

      .amber-note-icon {
        font-family: 'Geist Mono', monospace;
        font-size: 11px;
        font-weight: 400;
        color: #92660A;
        white-space: nowrap;
        padding-top: 1px;
      }

      .amber-note-text {
        font-size: 13px;
        font-weight: 400;
        line-height: 1.6;
        color: #7A5710;
      }

      /* ── SUBMIT ── */
      .form-footer {
        display: flex;
        align-items: center;
        gap: 20px;
        flex-wrap: wrap;
      }

      .btn-submit {
        display: inline-flex;
        align-items: center;
        gap: 8px;
        background: var(--ink);
        color: var(--paper);
        font-family: 'Geist', sans-serif;
        font-size: 14px;
        font-weight: 500;
        letter-spacing: 0.02em;
        padding: 14px 28px;
        border: none;
        cursor: pointer;
        transition: background 0.2s, transform 0.15s;
      }

      .btn-submit:hover:not(:disabled) {
        background: var(--ink-2);
        transform: translateY(-1px);
      }

      .btn-submit:disabled {
        opacity: 0.5;
        cursor: default;
      }

      .form-note {
        font-family: 'Geist Mono', monospace;
        font-size: 11px;
        font-weight: 400;
        letter-spacing: 0.06em;
        color: var(--gray-5);
      }

      /* ── SUCCESS PANEL ── */
      .success-panel {
        display: none;
        flex-direction: column;
        gap: 16px;
        padding: 40px;
        background: var(--ink);
        color: var(--paper);
      }

      .success-panel.visible { display: flex; }

      .success-label {
        font-family: 'Geist Mono', monospace;
        font-size: 10px;
        font-weight: 400;
        letter-spacing: 0.14em;
        text-transform: uppercase;
        color: var(--gray-4);
      }

      .success-title {
        font-family: 'Geist', sans-serif;
        font-weight: 400;
        font-size: 26px;
        letter-spacing: -0.02em;
        color: var(--paper);
      }

      .success-body {
        font-size: 15px;
        font-weight: 300;
        line-height: 1.6;
        color: var(--gray-3);
      }

      /* ── FOOTER ── */
      .site-footer {
        background: var(--ink);
        padding: 32px 64px;
        display: flex;
        align-items: center;
        justify-content: space-between;
        border-top: 1px solid rgba(255,255,255,0.06);
      }

      .footer-logo svg {
        height: 18px;
        width: auto;
        display: block;
      }

      .footer-copy {
        font-family: 'Geist Mono', monospace;
        font-size: 10px;
        font-weight: 400;
        letter-spacing: 0.1em;
        color: var(--gray-5);
      }

      /* ── RESPONSIVE ── */
      @media (max-width: 900px) {
        .hero {
          grid-template-columns: 1fr;
          padding: 80px 32px 56px;
        }

        .hero-visual { display: none; }

        .stat-band { flex-direction: column; gap: 20px; padding: 40px 32px; }
        .stat-separator { width: 48px; height: 1px; }

        .main-content { padding: 56px 32px; }

        .intro-text,
        .questions-block { grid-template-columns: 1fr; gap: 20px; }

        .form-grid { grid-template-columns: 1fr; }

        .funnel-grid { grid-template-columns: 1fr; }

        .method-grid { grid-template-columns: 1fr; }

        .form-section { padding: 56px 32px; }

        .site-footer { padding: 24px 32px; flex-direction: column; gap: 16px; text-align: center; }

        .site-header { padding: 0 24px; }
      }
