 /* ── DESIGN SYSTEM TOKENS v2.0 ── */

    html {
      scroll-behavior: smooth;
    }

    .writer-illustration {
      margin-top: var(--sp-4);
      opacity: 0;
      animation: fadeUp 0.7s 0.35s ease both;
    }

    .writer-illustration img {
      width: 170px;
      object-fit: contain;
    }

    /* FORM WRAP */
    .form-wrap {
      max-width: 860px;
      margin: 0 auto;
      padding: 0 52px var(--sp-12);
    }

    /* PROGRESS STEPS */
    .progress-steps {
      display: flex;
      align-items: center;
      margin-bottom: var(--sp-8);
      padding-top: var(--sp-4);
    }

    .step {
      display: flex;
      flex-direction: column;
      align-items: center;
      gap: 6px;
      opacity: 0.35;
      transition: opacity var(--t-hover);
    }

    .step.active,
    .step.done {
      opacity: 1;
    }

    .step-dot {
      width: 32px;
      height: 32px;
      border-radius: 50%;
      border: 2px solid var(--lavender-deep);
      display: flex;
      align-items: center;
      justify-content: center;
      font-family: 'Jost', sans-serif;
      font-size: 13px;
      font-weight: 500;
      color: var(--ink-light);
      background: var(--lavender);
      transition: all var(--t-hover);
    }

    .step.active .step-dot {
      border-color: var(--accent-gold);
      color: var(--accent-gold);
      background: rgba(201, 151, 74, 0.08);
    }

    .step.done .step-dot {
      border-color: var(--success);
      color: var(--white);
      background: var(--success);
      font-size: 12px;
    }

    .step-label {
      font-family: 'Jost', sans-serif;
      font-size: 10px;
      font-weight: 500;
      letter-spacing: 1.5px;
      text-transform: uppercase;
      color: var(--ink-light);
      white-space: nowrap;
    }

    .step.active .step-label {
      color: var(--accent-gold);
    }

    .step.done .step-label {
      color: var(--success);
    }

    .step-line {
      flex: 1;
      height: 1px;
      background: var(--lavender-deep);
      margin: 0 var(--sp-2);
      margin-bottom: 22px;
    }

    /* FORM PANEL */
    .form-panel {
      display: none;
    }

    .form-panel.active {
      display: block;
      animation: fadeUp 0.4s ease both;
    }

    /* GUIDELINES */
    .guidelines-box {
      background: rgba(255, 255, 255, 0.45);
      border: 1px solid rgba(196, 191, 223, 0.5);
      border-left: 3px solid var(--accent-gold);
      padding: var(--sp-4);
      margin-bottom: var(--sp-4);
    }

    .guidelines-title {
      font-family: 'Jost', sans-serif;
      font-size: 12px;
      font-weight: 500;
      letter-spacing: 2px;
      text-transform: uppercase;
      color: var(--accent-gold);
      margin-bottom: 0;
    }

    .guideline-item {
      display: flex;
      gap: var(--sp-2);
      margin-bottom: var(--sp-3);
    }

    .guideline-item:last-of-type {
      margin-bottom: 0;
    }

    .guideline-num {
      font-family: 'DM Serif Display', serif;
      font-size: 22px;
      font-style: italic;
      color: var(--lavender-deep);
      line-height: 1;
      flex-shrink: 0;
      width: 20px;
    }

    .guideline-content h4 {
      font-family: 'Jost', sans-serif;
      font-size: 14px;
      font-weight: 500;
      letter-spacing: 0.5px;
      color: var(--ink);
      margin-bottom: 4px;
    }

    .guideline-content p {
      font-family: 'Cormorant Garamond', serif;
      font-size: 17px;
      font-style: italic;
      color: var(--ink-mid);
      line-height: 1.75;
    }

    .avoid-box {
      background: rgba(196, 117, 106, 0.06);
      border: 1px solid rgba(196, 117, 106, 0.2);
      padding: var(--sp-2) var(--sp-4);
      margin-top: var(--sp-3);
    }

    .avoid-title {
      font-family: 'Jost', sans-serif;
      font-size: 11px;
      font-weight: 500;
      letter-spacing: 3px;
      text-transform: uppercase;
      color: var(--accent-rose);
      margin-bottom: 14px;
    }

    .avoid-list {
      list-style: none;
      display: flex;
      flex-direction: column;
      gap: var(--sp-1);
    }

    .avoid-list li {
      font-family: 'Cormorant Garamond', serif;
      font-size: 16px;
      font-style: italic;
      color: var(--ink-mid);
      padding-left: var(--sp-2);
      position: relative;
      line-height: 1.5;
    }

    .avoid-list li::before {
      content: '—';
      position: absolute;
      left: 0;
      color: var(--accent-rose);
      font-style: normal;
    }

    /* SAMPLE LINK */
    .sample-link {
      display: inline-flex;
      align-items: center;
      gap: var(--sp-1);
      font-family: 'Jost', sans-serif;
      font-size: 12px;
      font-weight: 500;
      letter-spacing: 1.5px;
      text-transform: uppercase;
      color: var(--ink-mid);
      text-decoration: none;
      margin-bottom: var(--sp-4);
      transition: color var(--t-micro);
      border-bottom: 1px solid var(--lavender-deep);
      padding-bottom: 4px;
    }

    .sample-link:hover {
      color: var(--ink);
      border-color: var(--ink);
    }

    .sample-link::after {
      content: '→';
    }

    /* FORM FIELDS */
    .field-group {
      margin-bottom: var(--sp-4);
    }

    .field-label {
      display: block;
      font-family: 'Jost', sans-serif;
      font-size: 11px;
      font-weight: 500;
      letter-spacing: 3px;
      text-transform: uppercase;
      color: var(--ink-mid);
      margin-bottom: 10px;
    }

    .field-label .req {
      color: var(--accent-rose);
      margin-left: 2px;
    }

    .field-label .opt {
      font-size: 10px;
      color: var(--accent-gold);
      font-style: italic;
      letter-spacing: 0;
      text-transform: none;
      margin-left: 6px;
    }

    .field-hint {
      font-family: 'Cormorant Garamond', serif;
      font-size: 16px;
      font-style: italic;
      color: var(--ink-light);
      margin-top: 8px;
      line-height: 1.75;
    }

    select,
    input[type="text"],
    input[type="email"],
    textarea {
      width: 100%;
      background: rgba(255, 255, 255, 0.7);
      border: 1px solid var(--lavender-deep);
      border-bottom: 2px solid var(--lavender-deep);
      padding: 13px var(--sp-2);
      font-family: 'Cormorant Garamond', Georgia, serif;
      font-size: 18px;
      color: var(--ink);
      outline: none;
      transition: border-color var(--t-micro), background var(--t-micro);
      border-radius: 1px;
      appearance: none;
      -webkit-appearance: none;
    }

    select:focus,
    input:focus,
    textarea:focus {
      border-color: var(--accent-gold);
      border-bottom-color: var(--accent-gold);
      background: var(--white);
      box-shadow: 0 2px 0 rgba(201, 151, 74, 0.2);
    }

    select {
      background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%23C9974A' stroke-width='1.5' fill='none'/%3E%3C/svg%3E");
      background-repeat: no-repeat;
      background-position: right var(--sp-2) center;
      background-color: rgba(255, 255, 255, 0.7);
      padding-right: 44px;
      cursor: pointer;
    }

    .dear-prefix {
      font-family: 'DM Serif Display', Georgia, serif;
      font-size: 22px;
      font-style: italic;
      color: var(--ink-mid);
      margin-bottom: 10px;
      display: block;
    }

    textarea {
      resize: vertical;
      min-height: 240px;
      line-height: 1.75;
      font-size: 18px;
    }

    .char-counter {
      display: flex;
      justify-content: space-between;
      align-items: center;
      margin-top: 10px;
      padding: 0 2px;
    }

    .char-hint {
      font-family: 'Cormorant Garamond', serif;
      font-size: 16px;
      font-style: italic;
      color: var(--ink-light);
      transition: color var(--t-hover);
    }

    .char-count {
      font-family: 'Jost', sans-serif;
      font-size: 12px;
      color: var(--accent-gold);
      letter-spacing: 1px;
    }

    .char-bar {
      height: 2px;
      background: var(--lavender-deep);
      margin-top: var(--sp-1);
      overflow: hidden;
    }

    .char-bar-fill {
      height: 100%;
      background: var(--accent-gold);
      width: 0%;
      transition: width var(--t-hover) ease, background var(--t-hover);
    }

    .field-row {
      display: grid;
      grid-template-columns: 1fr 1fr;
      gap: var(--sp-2);
    }

    /* ── PANEL 2: REVIEW LETTER ── */
    /* Parchment letter display */
    .review-letter-paper {
      background: var(--parchment);
      border: 1px solid rgba(196, 191, 223, 0.5);
      box-shadow: 0 4px 8px rgba(42, 37, 53, 0.04), 0 12px 40px rgba(42, 37, 53, 0.09);
      padding: var(--sp-8) 64px;
      position: relative;
      margin-bottom: var(--sp-4);
    }

    /* Ruled left margin line */
    .review-letter-paper::before {
      content: '';
      position: absolute;
      left: 44px;
      top: 0;
      bottom: 0;
      width: 1px;
      background: rgba(201, 151, 74, 0.15);
      pointer-events: none;
    }

    .review-letter-paper::after {
      content: "";
      display: block;
      clear: both;
    }

    .review-letter-salutation {
      font-family: 'DM Serif Display', Georgia, serif;
      font-size: 21px;
      font-style: italic;
      color: var(--ink-mid);
      display: block;
      margin-bottom: var(--sp-3);
    }

    .review-letter-body {
      font-family: 'Cormorant Garamond', Georgia, serif;
      font-size: 18px;
      color: var(--ink);
      line-height: 1.9;
      white-space: pre-wrap;
      word-break: break-word;
      /*padding-right: 80px; /* clear stamp area */
    }

    .review-letter-signature {
      margin-top: var(--sp-6);
      padding-top: var(--sp-3);
      border-top: 1px solid rgba(196, 191, 223, 0.5);
      clear: both;
    }

    .sig-from {
      font-family: 'Cormorant Garamond', serif;
      font-size: 14px;
      font-style: italic;
      color: var(--ink-light);
      margin-bottom: 3px;
    }

    .sig-name {
      font-family: 'DM Serif Display', Georgia, serif;
      font-size: 17px;
      font-style: italic;
      color: var(--ink-mid);
      margin-bottom: 2px;
    }

    .sig-loc {
      font-family: 'Jost', sans-serif;
      font-size: 11px;
      letter-spacing: 1px;
      color: var(--ink-light);
    }

    /* STAMP PICKER — compact inline row */
    .stamp-picker-wrap {
      margin-bottom: var(--sp-4);
    }

    .stamp-picker-label {
      font-family: 'Jost', sans-serif;
      font-size: 10px;
      font-weight: 500;
      letter-spacing: 3px;
      text-transform: uppercase;
      color: var(--ink-light);
      margin-bottom: var(--sp-2);
      display: block;
    }

    .stamp-picker-row {
      display: flex;
      align-items: center;
      gap: 8px;
      flex-wrap: nowrap;
    }

    .stamp-option {
      display: flex;
      flex-direction: column;
      align-items: center;
      gap: 4px;
      background: none;
      border: none;
      cursor: pointer;
      transition: transform var(--t-hover) ease;
      user-select: none;
      flex-shrink: 0;
      padding: 0;
    }

    .stamp-option:hover {
      transform: translateY(-2px);
    }

    .stamp-option.selected .stamp-option-img {
      box-shadow: 0 0 0 3px rgba(201, 151, 74, 0.55);
      border-radius: 2px;
    }

    .stamp-option-name {
      font-family: 'Jost', sans-serif;
      font-size: 9px;
      letter-spacing: 0.5px;
      color: var(--ink-light);
      text-transform: uppercase;
    }

    /* Stamp image in picker — the stamp IS the button, no wrapper */
    .stamp-option-img {
      width: 64px;
      height: auto;
      object-fit: contain;
      display: block;
      transition: transform var(--t-hover) ease;
    }

    /* Parchment preview stamp — replaces the SVG */
    .review-stamp-img {
      float: right;
      width: 88px;
      height: auto;
      object-fit: contain;
      margin-left: var(--sp-3);
      margin-bottom: var(--sp-2);
    }

    /* SECTION DIVIDER */
    .section-break {
      display: flex;
      align-items: center;
      gap: var(--sp-2);
      margin: var(--sp-6) 0 var(--sp-4);
    }

    .section-break span {
      font-family: 'Jost', sans-serif;
      font-size: 10px;
      font-weight: 500;
      letter-spacing: 3px;
      text-transform: uppercase;
      color: var(--accent-gold);
      white-space: nowrap;
    }

    .section-break::before,
    .section-break::after {
      content: '';
      flex: 1;
      height: 1px;
      background: var(--lavender-deep);
    }

    /* ANON TOGGLE */
    .anon-toggle {
      display: flex;
      align-items: center;
      gap: 10px;
      margin-top: 12px;
      cursor: pointer;
    }

    .anon-toggle input[type="checkbox"] {
      width: 16px;
      height: 16px;
      min-width: 16px;
      accent-color: var(--accent-gold);
      cursor: pointer;
    }

    .anon-toggle label {
      font-family: 'Cormorant Garamond', serif;
      font-size: 15px;
      font-style: italic;
      color: var(--ink-mid);
      cursor: pointer;
    }

    /* CHECKBOXES */
    .checkbox-group {
      display: flex;
      flex-direction: column;
      gap: var(--sp-2);
      margin-bottom: var(--sp-1);
    }

    .checkbox-item {
      display: flex;
      align-items: flex-start;
      gap: 14px;
    }

    .checkbox-item input[type="checkbox"] {
      width: 18px;
      height: 18px;
      min-width: 18px;
      accent-color: var(--warm-dark);
      margin-top: 2px;
      cursor: pointer;
    }

    .checkbox-item label {
      font-family: 'Cormorant Garamond', serif;
      font-size: 16px;
      color: var(--ink-mid);
      line-height: 1.75;
      cursor: pointer;
    }

    .checkbox-item label a {
      color: var(--accent-gold);
      text-decoration: underline;
      text-underline-offset: 2px;
    }

    .consent-note {
      font-family: 'Cormorant Garamond', serif;
      font-size: 14px;
      font-style: italic;
      color: var(--ink-light);
      margin-top: 14px;
      padding-left: var(--sp-4);
      line-height: 1.75;
    }

    /* BUTTONS */
    .form-actions {
      display: flex;
      align-items: center;
      justify-content: space-between;
      margin-top: var(--sp-4);
      padding-top: var(--sp-4);
      border-top: 1px solid var(--lavender-deep);
    }

    .submit-note {
      font-family: 'Cormorant Garamond', serif;
      font-size: 14px;
      font-style: italic;
      color: var(--ink-light);
      margin-top: var(--sp-2);
      text-align: center;
    }


    @keyframes fadeUp {
      from {
        opacity: 0;
        transform: translateY(16px);
      }

      to {
        opacity: 1;
        transform: translateY(0);
      }
    }

    /* ── CONFIRMATION OVERLAY ── */
    .confirm-overlay {
      display: none;
      position: fixed;
      inset: 0;
      z-index: 200;
      background: var(--lavender);
      flex-direction: column;
      align-items: center;
      justify-content: center;
      text-align: center;
      padding: 24px;
      animation: fadeUp 0.6s ease both;
    }

    .confirm-overlay.visible {
      display: flex;
    }

    .confirm-title {
      font-family: 'DM Serif Display', Georgia, serif;
      font-size: clamp(36px, 5vw, 52px);
      font-weight: 400;
      color: var(--ink);
      line-height: 1.1;
      margin-bottom: var(--sp-3);
    }

    .confirm-title em {
      font-style: italic;
      color: var(--ink-mid);
    }

    .confirm-body {
      font-family: 'Cormorant Garamond', serif;
      font-size: 20px;
      font-style: italic;
      color: var(--ink-mid);
      line-height: 1.3;
      max-width: 440px;
      margin: 0 auto var(--sp-2);
    }

    .confirm-pending {
      font-family: 'Jost', sans-serif;
      font-size: 11px;
      font-weight: 500;
      letter-spacing: 2px;
      text-transform: uppercase;
      color: var(--ink-light);
      margin-bottom: var(--sp-8);
    }

    .confirm-rule {
      width: 40px;
      height: 1px;
      background: var(--lavender-deep);
      margin: 0 auto var(--sp-6);
    }

    .confirm-actions {
      display: flex;
      gap: var(--sp-2);
      justify-content: center;
      flex-wrap: wrap;
    }

    /* GUIDELINES POPUP */
    .guidelines-popup-overlay {
      display: none;
      position: fixed;
      inset: 0;
      z-index: 300;
      background: rgba(42, 37, 53, 0.45);
      backdrop-filter: blur(4px);
      align-items: center;
      justify-content: center;
      padding: 24px;
    }

    .guidelines-popup-overlay.open {
      display: flex;
    }

    .guidelines-popup {
      background: var(--white);
      border: 1px solid var(--lavender-deep);
      max-width: 560px;
      width: 100%;
      max-height: 90vh;
      overflow-y: auto;
      padding: var(--sp-6);
      position: relative;
      animation: fadeUp 0.3s ease both;
    }

    .guidelines-popup-close {
      position: absolute;
      top: var(--sp-3);
      right: var(--sp-3);
      background: none;
      border: none;
      cursor: pointer;
      font-size: 18px;
      color: var(--ink-light);
      line-height: 1;
      transition: color var(--t-micro);
    }

    .guidelines-popup-close:hover {
      color: var(--ink);
    }

    .popup-eyebrow {
      font-family: 'Jost', sans-serif;
      font-size: 10px;
      font-weight: 500;
      letter-spacing: 3px;
      text-transform: uppercase;
      color: var(--accent-gold);
      margin-bottom: var(--sp-2);
    }

    .popup-title {
      font-family: 'DM Serif Display', Georgia, serif;
      font-size: 26px;
      font-weight: 400;
      color: var(--ink);
      line-height: 1.1;
      margin-bottom: var(--sp-4);
    }

    .popup-guideline {
      display: flex;
      gap: 14px;
      margin-bottom: var(--sp-3);
    }

    .popup-num {
      font-family: 'DM Serif Display', serif;
      font-size: 20px;
      font-style: italic;
      color: var(--lavender-deep);
      line-height: 1;
      flex-shrink: 0;
      width: 18px;
    }

    .popup-guideline h4 {
      font-family: 'Jost', sans-serif;
      font-size: 11px;
      font-weight: 500;
      letter-spacing: 0.5px;
      color: var(--ink);
      margin-bottom: 3px;
    }

    .popup-guideline p {
      font-family: 'Cormorant Garamond', serif;
      font-size: 15px;
      font-style: italic;
      color: var(--ink-mid);
      line-height: 1.7;
    }

    .popup-avoid {
      background: rgba(196, 117, 106, 0.06);
      border: 1px solid rgba(196, 117, 106, 0.2);
      padding: var(--sp-2) var(--sp-3);
      margin-top: var(--sp-3);
    }

    .popup-avoid-title {
      font-family: 'Jost', sans-serif;
      font-size: 10px;
      font-weight: 500;
      letter-spacing: 3px;
      text-transform: uppercase;
      color: var(--accent-rose);
      margin-bottom: 12px;
    }

    .popup-avoid-list {
      list-style: none;
      display: flex;
      flex-direction: column;
      gap: 8px;
    }

    .popup-avoid-list li {
      font-family: 'Cormorant Garamond', serif;
      font-size: 14px;
      font-style: italic;
      color: var(--ink-mid);
      padding-left: var(--sp-2);
      position: relative;
      line-height: 1.7;
    }

    .popup-avoid-list li::before {
      content: '—';
      position: absolute;
      left: 0;
      color: var(--accent-rose);
      font-style: normal;
    }

    .popup-privacy {
      margin-top: var(--sp-4);
      padding-top: var(--sp-3);
      border-top: 1px solid var(--lavender-deep);
      font-family: 'Cormorant Garamond', serif;
      font-size: 13px;
      font-style: italic;
      color: var(--ink-light);
      line-height: 1.75;
    }

    .popup-privacy a {
      color: var(--accent-gold);
      text-decoration: underline;
      text-underline-offset: 2px;
    }

    .popup-close-btn {
      margin-top: var(--sp-4);
      width: 100%;
    }

    @media(max-width:900px) {
      nav {
        padding: 16px 24px;
      }

      .nav-links {
        display: none;
      }

      .nav-hamburger {
        display: flex;
      }

      .page-header {
        padding: 120px 24px var(--sp-6);
      }

      .form-wrap {
        padding: 0 24px var(--sp-8);
      }

      .review-letter-paper {
        padding: var(--sp-6) var(--sp-4) var(--sp-6) 52px;
      }

      .review-letter-paper::before {
        left: 34px;
      }

      .review-letter-body {
        padding-right: var(--sp-6);
      }

      .review-stamp-wrap {
        display: none;
      }

      .review-stamp-img {
        width: 64px;
        top: var(--sp-3);
        right: var(--sp-2);
      }

      .step-line {
        width: 30px;
        min-width: 20px;
      }

      footer {
        padding: 48px 24px 24px;
      }

      .footer-top {
        flex-direction: column;
        gap: 28px;
      }

      .footer-right {
        align-items: flex-start;
      }

      .footer-bottom {
        flex-direction: column;
        gap: 14px;
        text-align: center;
      }

      .stamp-picker-row {
        flex-wrap: nowrap;
        gap: 8px;
      }

      .stamp-option-img {
        width: 64px;
      }

      /* Constrain label to stamp width so FLOWER doesn't overflow */
      .stamp-option-name {
        max-width: 64px;
        text-align: center;
        overflow: hidden;
        text-overflow: ellipsis;
        white-space: nowrap;
      }
    }

    @media(max-width:600px) {

      .btn-primary,
      .btn-secondary {
        width: 100%;
        max-width: 280px;
        text-align: center;
      }

      .form-actions {
        flex-direction: column-reverse;
        gap: var(--sp-2);
      }

      .field-row {
        grid-template-columns: 1fr;
      }

      .popup-close-btn {
        display: block;
        margin-left: auto;
        margin-right: auto;
        max-width: 280px;
      }
    }