
    :root {
      --ink: #241a37;
      --muted: #6d647a;
      --purple: #6940cd;
      --purple-dark: #21133c;
      --purple-mid: #372053;
      --lavender: #ded0fc;
      --lime: #d9fa8b;
      --paper: #ffffff;
      --wash: #f7f5fa;
      --line: #e8e2ee;
      --shadow: 0 12px 36px rgb(35 19 62 / 7%);
      --radius: 24px;
      --header: 78px;
    }

    *,
    *::before,
    *::after {
      box-sizing: border-box;
    }

    html {
      scroll-behavior: smooth;
      scroll-padding-top: calc(var(--header) + 24px);
      scroll-padding-bottom: 110px;
    }

    body {
      margin: 0;
      background: var(--paper);
      color: var(--ink);
      font-family: Inter, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
      font-size: 16px;
      line-height: 1.7;
      -webkit-font-smoothing: antialiased;
    }

    body.modal-open {
      overflow: hidden;
    }

    h1,
    h2,
    h3,
    p,
    figure {
      margin: 0;
    }

    h1,
    h2,
    h3 {
      font-weight: 750;
      line-height: 1.12;
      text-wrap: balance;
    }

    h1 {
      font-size: clamp(2.6rem, 5.25vw, 4.3rem);
      letter-spacing: -.058em;
    }

    h2 {
      font-size: clamp(2rem, 3.7vw, 3rem);
      letter-spacing: -.045em;
    }

    h3 {
      font-size: 1.25rem;
      letter-spacing: -.025em;
    }

    a {
      color: inherit;
      text-decoration-thickness: 1px;
      text-underline-offset: 4px;
    }

    a,
    button,
    input,
    select,
    summary {
      -webkit-tap-highlight-color: transparent;
    }

    button,
    input,
    select {
      font: inherit;
    }

    button,
    summary {
      cursor: pointer;
    }

    button {
      color: inherit;
    }

    button:disabled {
      cursor: not-allowed;
      opacity: .55;
    }

    img {
      display: block;
      max-width: 100%;
    }

    svg {
      display: inline-block;
      flex-shrink: 0;
      vertical-align: middle;
    }

    [hidden] {
      display: none !important;
    }

    :focus-visible {
      outline: 3px solid var(--purple);
      outline-offset: 5px;
    }

    .dark :focus-visible {
      outline-color: var(--lime);
    }

    ::selection {
      background: var(--lime);
      color: var(--ink);
    }

    .container {
      width: calc(100% - 40px);
      max-width: 1140px;
      margin-inline: auto;
    }

    .section {
      padding-block: clamp(64px, 8vw, 100px);
    }

    .section-soft {
      background: var(--wash);
    }

    .section-lilac {
      background: #eee7fb;
    }

    .icon {
      width: 22px;
      height: 22px;
      fill: none;
      stroke: currentColor;
      stroke-width: 1.7;
      stroke-linecap: round;
      stroke-linejoin: round;
    }

    .sprite {
      position: absolute;
      width: 0;
      height: 0;
      overflow: hidden;
    }

    .sr-only {
      position: absolute;
      width: 1px;
      height: 1px;
      padding: 0;
      margin: -1px;
      overflow: hidden;
      clip-path: inset(50%);
      white-space: nowrap;
      border: 0;
    }

    .skip-link {
      position: fixed;
      top: 12px;
      left: 12px;
      padding: 12px 18px;
      background: white;
      color: var(--ink);
      z-index: 100;
      transform: translateY(-180%);
      border-radius: 12px;
    }

    .skip-link:focus {
      transform: translateY(0);
    }

    .eyebrow {
      display: flex;
      align-items: center;
      gap: 10px;
      font-size: .7rem;
      font-weight: 750;
      letter-spacing: .13em;
      text-transform: uppercase;
      color: var(--purple);
      margin-bottom: 16px;
    }

    .eyebrow::before {
      content: "";
      width: 22px;
      height: 2px;
      background: currentColor;
    }

    .section-head {
      display: grid;
      gap: 20px;
      margin-bottom: 36px;
    }

    .section-head p {
      max-width: 510px;
      color: var(--muted);
    }

    .muted {
      color: var(--muted);
    }

    .small {
      font-size: .82rem;
      line-height: 1.65;
    }

    .micro {
      font-size: .72rem;
      line-height: 1.6;
    }

    .pill {
      display: inline-flex;
      align-items: center;
      gap: 6px;
      padding: 6px 11px;
      border-radius: 99px;
      font-size: .7rem;
      font-weight: 700;
      line-height: 1.4;
    }

    .pill-lime {
      background: var(--lime);
      color: var(--ink);
    }

    .pill-purple {
      background: #ece4fb;
      color: #533096;
    }

    .btn {
      display: inline-flex;
      align-items: center;
      justify-content: center;
      gap: 11px;
      min-height: 50px;
      padding: 13px 21px;
      border: 1px solid transparent;
      border-radius: 12px;
      font-size: .875rem;
      font-weight: 700;
      line-height: 1.4;
      text-decoration: none;
      transition:
        transform .18s ease,
        background .18s ease,
        box-shadow .18s ease;
    }

    .btn-lime {
      background: var(--lime);
      color: #241a37;
    }

    .btn-purple {
      background: var(--purple);
      color: white;
    }

    .btn-outline {
      border-color: var(--line);
      background: transparent;
      color: var(--ink);
    }

    .btn-light {
      background: white;
      color: var(--ink);
    }

    .btn-ghost {
      border-color: #65517d;
      color: white;
      background: transparent;
    }

    .btn-compact {
      min-height: 44px;
      padding: 10px 15px;
      font-size: .78rem;
    }

    .button-row {
      display: flex;
      flex-wrap: wrap;
      gap: 12px;
    }

    .text-link {
      display: inline-flex;
      align-items: center;
      gap: 7px;
      min-height: 44px;
      font-size: .85rem;
      font-weight: 650;
      color: var(--purple);
    }

    /* HEADER */

    .site-header {
      position: sticky;
      top: 0;
      z-index: 30;
      background: rgb(33 19 60 / 97%);
      color: white;
      border-bottom: 1px solid #45305e;
      backdrop-filter: blur(14px);
    }

    .nav-bar {
      min-height: var(--header);
      display: flex;
      justify-content: space-between;
      align-items: center;
      gap: 16px;
    }

    .brand {
      display: inline-flex;
      align-items: center;
      gap: 9px;
      color: inherit;
      text-decoration: none;
      white-space: nowrap;
    }

    .brand-mark {
      display: grid;
      place-items: center;
      width: 33px;
      height: 35px;
      border-radius: 11px 11px 11px 3px;
      background: var(--lime);
      color: var(--purple-dark);
      transform: rotate(-7deg);
    }

    .brand-name {
      font-size: 1.23rem;
      font-weight: 800;
      letter-spacing: -.07em;
    }

    .brand-name span {
      color: var(--lavender);
    }

    .brand-note {
      padding-left: 10px;
      margin-left: 3px;
      border-left: 1px solid #695577;
      font-size: .62rem;
      letter-spacing: .1em;
      color: #cec0df;
    }

    .desktop-nav {
      display: none;
      gap: 24px;
      align-items: center;
    }

    .desktop-nav a {
      font-size: .77rem;
      color: #e2d8ee;
      text-decoration: none;
      padding-block: 12px;
    }

    .desktop-nav a:hover {
      color: var(--lime);
    }

    .nav-actions {
      display: flex;
      align-items: center;
      gap: 10px;
    }

    .header-cta {
      display: none;
    }

    .mobile-menu {
      position: relative;
    }

    .mobile-menu summary {
      list-style: none;
      display: flex;
      align-items: center;
      gap: 8px;
      min-height: 44px;
      padding: 8px 12px;
      border: 1px solid #695577;
      border-radius: 10px;
      font-size: .8rem;
    }

    .mobile-menu summary::-webkit-details-marker {
      display: none;
    }

    .mobile-menu nav {
      position: absolute;
      top: calc(100% + 17px);
      right: 0;
      width: min(280px, calc(100vw - 40px));
      padding: 12px;
      background: white;
      color: var(--ink);
      border-radius: 18px;
      border: 1px solid var(--line);
      box-shadow: var(--shadow);
    }

    .mobile-menu nav a {
      display: block;
      padding: 12px;
      border-radius: 9px;
      font-size: .88rem;
      text-decoration: none;
    }

    .mobile-menu nav a:hover {
      background: var(--wash);
    }

    /* HERO */

    .hero {
      position: relative;
      isolation: isolate;
      background: var(--purple-dark);
      color: white;
      padding: 56px 0 24px;
      overflow: clip;
    }

    .hero::before,
    .hero::after {
      content: "";
      position: absolute;
      z-index: -1;
      pointer-events: none;
      border-radius: 50%;
    }

    .hero::before {
      width: 740px;
      height: 740px;
      right: -360px;
      top: -300px;
      border: 88px solid #322048;
    }

    .hero::after {
      width: 470px;
      height: 470px;
      left: -270px;
      bottom: -390px;
      border: 70px solid #40265e;
    }

    .hero-grid {
      display: grid;
      gap: 40px;
      align-items: center;
    }

    .hero .eyebrow {
      color: var(--lavender);
    }

    .hero h1 em {
      color: var(--lime);
      font-style: normal;
    }

    .hero-lead {
      max-width: 470px;
      margin-top: 23px;
      color: #d6c9e5;
      font-size: 1rem;
      line-height: 1.8;
    }

    .hero .button-row {
      margin-top: 28px;
    }

    .hero-disclosure {
      margin-top: 18px;
      max-width: 430px;
      color: #bbaccb;
    }

    .hero-art {
      position: relative;
      max-width: 520px;
      width: 100%;
      min-height: 380px;
      margin-inline: auto;
      padding: 10px 12px 80px;
    }

    .hero-art::before {
      content: "";
      position: absolute;
      width: 80%;
      aspect-ratio: 1;
      border: 42px solid #7952b5;
      border-radius: 50%;
      top: 2%;
      left: 12%;
      opacity: .35;
    }

    .portrait-pair {
      position: relative;
      display: grid;
      grid-template-columns: 1fr 1fr;
      gap: 14px;
      align-items: start;
    }

    .hero-portrait {
      position: relative;
      padding: 7px;
      border: 1px solid rgb(255 255 255 / 20%);
      border-radius: 28px;
      background: #3d295b;
      box-shadow: 0 20px 45px rgb(0 0 0 / 16%);
    }

    .hero-portrait:first-child {
      transform: rotate(-7deg);
      margin-top: 42px;
    }

    .hero-portrait:last-child {
      transform: rotate(7deg);
    }

    .hero-portrait img {
      width: 100%;
      aspect-ratio: .66;
      height: auto;
      object-fit: cover;
      object-position: center 30%;
      border-radius: 21px;
      background: #6b587a;
    }

    .portrait-label {
      position: absolute;
      inset: auto 16px 17px;
      padding: 10px 12px;
      border-radius: 12px;
      background: rgb(30 18 46 / 82%);
      font-size: .77rem;
      line-height: 1.4;
      backdrop-filter: blur(8px);
    }

    .portrait-label span {
      display: block;
      color: #cbbbdf;
      font-size: .63rem;
      margin-top: 2px;
    }

    .art-spark {
      position: absolute;
      top: 43%;
      left: calc(50% - 25px);
      display: grid;
      place-items: center;
      width: 50px;
      height: 50px;
      border: 5px solid var(--purple-dark);
      border-radius: 50%;
      background: var(--lime);
      color: var(--purple-dark);
    }

    .floating-note {
      position: absolute;
      left: 0;
      right: 9%;
      bottom: 0;
      display: flex;
      gap: 12px;
      padding: 17px;
      border: 1px solid #ddd0ef;
      border-radius: 19px;
      background: #faf6ff;
      color: var(--ink);
      box-shadow: 0 12px 40px rgb(0 0 0 / 15%);
      transform: rotate(-2deg);
    }

    .note-icon {
      display: grid;
      place-items: center;
      flex: 0 0 38px;
      height: 38px;
      background: #e9ddfc;
      border-radius: 12px;
      color: var(--purple);
    }

    .floating-note .micro {
      color: var(--muted);
      margin-bottom: 4px;
    }

    .floating-note strong {
      font-size: .85rem;
      line-height: 1.45;
      display: block;
    }

    .hero-bottom {
      display: flex;
      flex-wrap: wrap;
      gap: 12px 24px;
      margin-top: 42px;
      padding-top: 22px;
      border-top: 1px solid #49315e;
      color: #d6c9e5;
      font-size: .72rem;
    }

    .hero-bottom span {
      display: inline-flex;
      align-items: center;
      gap: 8px;
    }

    .hero-bottom .icon {
      width: 16px;
      height: 16px;
      color: var(--lime);
    }

    /* CHARACTER GALLERY */

    .catalog-head {
      display: flex;
      align-items: center;
      justify-content: space-between;
      gap: 16px;
      flex-wrap: wrap;
      margin-bottom: 20px;
    }

    .catalog-head h3 {
      font-size: 1.35rem;
    }

    .catalog-tools {
      display: flex;
      align-items: center;
      justify-content: space-between;
      gap: 16px;
      flex-wrap: wrap;
      margin-bottom: 22px;
    }

    .filter-group {
      display: inline-flex;
      max-width: 100%;
      gap: 4px;
      padding: 5px;
      border: 1px solid var(--line);
      background: white;
      border-radius: 13px;
    }

    .filter-btn {
      min-height: 44px;
      border: 0;
      background: transparent;
      color: var(--muted);
      padding: 9px 13px;
      border-radius: 9px;
      font-size: .78rem;
      font-weight: 650;
    }

    .filter-btn[aria-pressed="true"] {
      background: var(--purple-dark);
      color: white;
    }

    .search-box {
      position: relative;
      flex: 1 1 220px;
      max-width: 320px;
    }

    .search-box .icon {
      position: absolute;
      left: 14px;
      top: 15px;
      width: 19px;
      height: 19px;
      color: var(--muted);
      pointer-events: none;
    }

    .search-box input {
      width: 100%;
      min-height: 50px;
      padding: 11px 14px 11px 43px;
      background: white;
      border: 1px solid var(--line);
      border-radius: 12px;
      font-size: .83rem;
      color: var(--ink);
    }

    .character-grid {
      display: grid;
      grid-template-columns: minmax(0, 1fr);
      gap: 20px;
    }

    .character-card {
      min-width: 0;
      overflow: hidden;
      background: var(--purple-dark);
      color: white;
      border-radius: 24px;
      box-shadow: var(--shadow);
      border: 1px solid #38224f;
      transition: transform .2s ease, box-shadow .2s ease;
    }

    .character-photo {
      position: relative;
      overflow: hidden;
      background: #5f496d;
    }

    .character-photo img {
      width: 100%;
      height: auto;
      aspect-ratio: .83;
      object-fit: cover;
      object-position: center 27%;
      transition: transform .35s ease;
    }

    .character-photo::after {
      content: "";
      position: absolute;
      inset: 50% 0 0;
      background: linear-gradient(transparent, rgb(33 19 60 / 56%));
      pointer-events: none;
    }

    .character-tag {
      position: absolute;
      top: 14px;
      left: 14px;
      z-index: 1;
    }

    .tag-peach {
      background: #ffddbd;
      color: #5b3112;
    }

    .tag-lavender {
      background: #e3d6fe;
      color: #3c275d;
    }

    .character-info {
      padding: 21px;
    }

    .character-title {
      display: flex;
      justify-content: space-between;
      align-items: center;
      gap: 10px;
      margin-bottom: 10px;
    }

    .character-title h3 {
      font-size: 1.35rem;
    }

    .character-title span {
      font-size: .65rem;
      color: #d4c3e5;
    }

    .character-info p {
      min-height: 48px;
      color: #d2c5e0;
      font-size: .8rem;
      line-height: 1.6;
    }

    .character-info .text-link {
      margin-top: 12px;
      color: var(--lime);
      font-size: .76rem;
      text-decoration: none;
      justify-content: space-between;
      width: 100%;
      border-top: 1px solid #503865;
      padding-top: 12px;
    }

    .catalog-caption {
      margin-top: 18px;
      max-width: 820px;
      color: var(--muted);
    }

    .empty-state {
      padding: 40px 24px;
      text-align: center;
      border: 1px dashed #bbaccb;
      border-radius: 20px;
    }

    .empty-state .btn {
      margin-top: 16px;
    }

    .steps {
      display: grid;
      gap: 16px;
      margin: 36px 0 0;
      padding: 0;
      list-style: none;
      counter-reset: step;
    }

    .step {
      position: relative;
      border-radius: 19px;
      padding: 25px;
      background: white;
      border: 1px solid var(--line);
      counter-increment: step;
    }

    .step::before {
      content: "0" counter(step);
      display: block;
      margin-bottom: 16px;
      color: var(--purple);
      font-size: .8rem;
      font-weight: 750;
    }

    .step h3 {
      font-size: 1.07rem;
      margin-bottom: 10px;
    }

    .step p {
      color: var(--muted);
      font-size: .83rem;
    }

    .step:nth-child(2) {
      background: #ebe2fb;
      border-color: #ebe2fb;
    }

    .step:nth-child(3) {
      background: #eff6dd;
      border-color: #eff6dd;
    }

    /* CONVERSATION DEMO */

    .split {
      display: grid;
      align-items: start;
      gap: 36px;
    }

    .demo-copy h3 {
      font-size: clamp(1.7rem, 2.8vw, 2.4rem);
      max-width: 420px;
      margin-bottom: 20px;
    }

    .demo-copy > .pill {
      margin-bottom: 20px;
    }

    .demo-copy > p {
      color: #645570;
      max-width: 465px;
    }

    .checklist {
      list-style: none;
      padding: 0;
      margin: 24px 0;
    }

    .checklist li {
      position: relative;
      padding-left: 30px;
      margin-block: 12px;
      font-size: .875rem;
    }

    .checklist li::before {
      content: "✓";
      position: absolute;
      top: 2px;
      left: 0;
      display: grid;
      place-items: center;
      width: 20px;
      height: 20px;
      border-radius: 50%;
      font-size: .68rem;
      font-weight: 800;
      background: #d9c8f8;
      color: #512c89;
    }

    .editor-note {
      display: flex;
      align-items: flex-start;
      gap: 10px;
      background: rgb(255 255 255 / 62%);
      border: 1px solid #ddd1ee;
      border-radius: 14px;
      padding: 15px 17px;
      color: #695879;
      font-size: .76rem;
      line-height: 1.65;
    }

    .editor-note .icon {
      width: 18px;
      height: 18px;
      margin-top: 3px;
    }

    .chat {
      width: 100%;
      max-width: 470px;
      justify-self: center;
      border-radius: 26px;
      overflow: hidden;
      background: white;
      box-shadow: 0 22px 65px rgb(67 40 100 / 13%);
      border: 1px solid #d8c9eb;
    }

    .chat-top {
      padding: 18px 21px;
      display: flex;
      gap: 12px;
      align-items: center;
      border-bottom: 1px solid var(--line);
    }

    .chat-avatar {
      flex-shrink: 0;
      width: 44px;
      height: 44px;
      border-radius: 50%;
      object-fit: cover;
      object-position: center 25%;
      background: var(--lavender);
    }

    .chat-top h3 {
      font-size: .98rem;
    }

    .chat-top .small {
      font-size: .7rem;
    }

    .chat-top .pill {
      margin-left: auto;
    }

    .scenario-tabs {
      display: flex;
      gap: 7px;
      padding: 14px 18px 0;
      flex-wrap: wrap;
    }

    .scenario-btn {
      border: 1px solid var(--line);
      border-radius: 99px;
      background: white;
      min-height: 44px;
      padding: 8px 12px;
      font-size: .72rem;
    }

    .scenario-btn[aria-pressed="true"] {
      background: #eee6fc;
      border-color: #c9b1ef;
      color: #583193;
    }

    .chat-log {
      padding: 19px 21px 10px;
      min-height: 305px;
    }

    .chat-date {
      text-align: center;
      color: var(--muted);
      font-size: .65rem;
      margin: 0 0 15px;
    }

    .bubble {
      max-width: 88%;
      padding: 13px 15px;
      border-radius: 16px 16px 16px 4px;
      background: #f0ebf8;
      font-size: .82rem;
      line-height: 1.7;
      margin-bottom: 12px;
      overflow-wrap: anywhere;
    }

    .bubble-you {
      background: var(--purple);
      color: white;
      margin-left: auto;
      border-radius: 16px 16px 4px 16px;
    }

    .bubble-label {
      display: block;
      font-size: .61rem;
      font-weight: 650;
      opacity: .8;
      margin-bottom: 4px;
    }

    .demo-actions {
      display: flex;
      flex-wrap: wrap;
      gap: 8px;
      padding: 5px 21px 17px;
    }

    .reply-btn {
      min-height: 44px;
      padding: 9px 12px;
      background: white;
      border: 1px solid #d7c8e9;
      border-radius: 11px;
      color: #59388d;
      font-size: .72rem;
    }

    .chat-bottom {
      padding: 13px 21px;
      border-top: 1px solid var(--line);
      background: #fcfafe;
      color: var(--muted);
      font-size: .66rem;
    }

    /* LOCAL SETTINGS SIMULATION */

    .settings-panel {
      padding: clamp(23px, 3.3vw, 36px);
      border: 1px solid var(--line);
      border-radius: 25px;
      box-shadow: var(--shadow);
    }

    .panel-heading {
      display: flex;
      justify-content: space-between;
      align-items: center;
      gap: 14px;
      margin-bottom: 25px;
    }

    .panel-heading h3 {
      font-size: 1.2rem;
    }

    .settings-panel fieldset {
      padding: 0;
      margin: 0;
      border: 0;
      min-width: 0;
    }

    .setting-switch {
      display: flex;
      justify-content: space-between;
      align-items: center;
      gap: 20px;
      border-bottom: 1px solid var(--line);
      padding-bottom: 23px;
      margin-bottom: 23px;
      cursor: pointer;
    }

    .setting-switch strong {
      font-size: .86rem;
      display: block;
    }

    .setting-switch small {
      display: block;
      color: var(--muted);
      font-size: .72rem;
      margin-top: 4px;
      line-height: 1.5;
    }

    .switch-input {
      appearance: none;
      width: 47px;
      height: 28px;
      flex-shrink: 0;
      margin: 0;
      border: 1px solid #a59ab5;
      border-radius: 99px;
      background: #d6cedf;
      cursor: pointer;
      position: relative;
      transition: background .2s;
    }

    .switch-input::before {
      content: "";
      position: absolute;
      width: 20px;
      height: 20px;
      top: 3px;
      left: 3px;
      background: white;
      border-radius: 50%;
      box-shadow: 0 1px 4px rgb(0 0 0 / 15%);
      transition: transform .2s;
    }

    .switch-input:checked {
      background: var(--purple);
      border-color: var(--purple);
    }

    .switch-input:checked::before {
      transform: translateX(19px);
    }

    .field-grid {
      display: grid;
      gap: 18px;
    }

    .field-label {
      display: block;
      font-size: .77rem;
      font-weight: 650;
      margin-bottom: 8px;
    }

    .field-input {
      width: 100%;
      min-width: 0;
      min-height: 48px;
      padding: 10px 12px;
      border: 1px solid #d9d0e4;
      border-radius: 10px;
      color: var(--ink);
      background: #fcfafe;
    }

    .range-row {
      display: flex;
      justify-content: space-between;
      gap: 12px;
      align-items: center;
      margin: 23px 0 8px;
    }

    .range-row .field-label {
      margin: 0;
    }

    .range-row output {
      background: #ede5fa;
      color: #6134a1;
      border-radius: 7px;
      font-size: .72rem;
      font-weight: 700;
      padding: 4px 9px;
    }

    input[type="range"] {
      width: 100%;
      min-height: 30px;
      margin: 0;
      accent-color: var(--purple);
      cursor: pointer;
    }

    .range-labels {
      display: flex;
      justify-content: space-between;
      color: var(--muted);
      font-size: .65rem;
      margin-bottom: 23px;
    }

    .checkbox-line {
      display: flex;
      gap: 11px;
      align-items: flex-start;
      font-size: .79rem;
      line-height: 1.6;
      cursor: pointer;
    }

    .checkbox-line input {
      flex: 0 0 18px;
      width: 18px;
      height: 18px;
      margin: 3px 0 0;
      accent-color: var(--purple);
    }

    .settings-panel .button-row {
      margin-top: 25px;
    }

    .schedule-preview {
      position: relative;
      overflow: hidden;
      border-radius: 25px;
      background: var(--purple-dark);
      color: white;
      padding: clamp(25px, 4vw, 42px);
      min-height: 430px;
    }

    .schedule-preview::after {
      content: "";
      position: absolute;
      width: 280px;
      height: 280px;
      border: 40px solid #40265f;
      border-radius: 50%;
      right: -160px;
      bottom: -155px;
      pointer-events: none;
    }

    .schedule-preview .eyebrow {
      color: var(--lavender);
    }

    .schedule-preview h3 {
      font-size: 1.9rem;
      max-width: 290px;
      margin-bottom: 18px;
    }

    .preview-status {
      display: inline-flex;
      border: 1px solid #6e527f;
      border-radius: 99px;
      color: #e3d7ee;
      padding: 5px 12px;
      font-size: .68rem;
      margin-bottom: 25px;
    }

    .preview-status[data-state="active"] {
      color: var(--lime);
      border-color: #809755;
    }

    .preview-status[data-state="quiet"] {
      color: #ffddbd;
      border-color: #b68768;
    }

    .preview-message {
      position: relative;
      z-index: 1;
      padding: 20px;
      border: 1px solid #614178;
      border-radius: 17px;
      background: #38214f;
      margin-bottom: 20px;
    }

    .preview-message p {
      font-size: .85rem;
    }

    .preview-message .small {
      color: #c9b6dd;
      font-size: .72rem;
      margin-bottom: 8px;
    }

    .schedule-preview > .small {
      margin-top: 23px;
      color: #cbb8dc;
      max-width: 340px;
    }

    /* PRIVACY */

    .privacy-grid {
      display: grid;
      gap: 17px;
    }

    .privacy-card {
      border-radius: 21px;
      padding: 27px;
      border: 1px solid var(--line);
      background: white;
      box-shadow: var(--shadow);
    }

    .icon-box {
      display: grid;
      place-items: center;
      width: 45px;
      height: 45px;
      border-radius: 13px;
      color: var(--purple);
      background: #ece4fa;
      margin-bottom: 21px;
    }

    .privacy-card h3 {
      font-size: 1.15rem;
      margin-bottom: 12px;
    }

    .privacy-card p {
      color: var(--muted);
      font-size: .83rem;
    }

    .privacy-callout {
      display: grid;
      gap: 20px;
      margin-top: 25px;
      padding: 26px;
      border-radius: 20px;
      background: #e8def8;
    }

    .privacy-callout h3 {
      margin-bottom: 10px;
    }

    .privacy-callout p {
      max-width: 690px;
      font-size: .85rem;
      color: #665174;
    }

    /* ACCESS / PRICE TABLE */

    .pricing-layout {
      display: grid;
      gap: 24px;
      align-items: stretch;
    }

    .access-card {
      padding: 31px;
      border: 1px solid #d6c7f0;
      border-radius: 23px;
      background: #f2ecfc;
    }

    .access-card .price {
      font-size: 3.15rem;
      font-weight: 750;
      letter-spacing: -.06em;
      line-height: 1.1;
      margin: 20px 0 8px;
    }

    .access-card .price span {
      font-size: 1rem;
      font-weight: 600;
      letter-spacing: 0;
    }

    .access-card .checklist {
      margin: 22px 0;
    }

    .access-card .checklist li {
      font-size: .79rem;
    }

    .access-card .btn {
      width: 100%;
    }

    .price-table-wrap {
      border: 1px solid var(--line);
      border-radius: 23px;
      overflow: auto;
    }

    table {
      width: 100%;
      border-collapse: collapse;
      min-width: 410px;
      font-size: .8rem;
      text-align: left;
    }

    caption {
      text-align: left;
      padding: 24px;
      font-weight: 750;
      font-size: 1.12rem;
      color: var(--ink);
      background: white;
    }

    th,
    td {
      padding: 17px 20px;
      vertical-align: top;
      border-bottom: 1px solid var(--line);
    }

    thead th {
      background: var(--purple-dark);
      color: white;
      font-size: .73rem;
      font-weight: 650;
    }

    tbody th {
      font-weight: 650;
      width: 39%;
    }

    tbody tr:nth-child(even) {
      background: var(--wash);
    }

    tbody td {
      color: var(--muted);
    }

    tbody tr:last-child th,
    tbody tr:last-child td {
      border-bottom: 0;
    }

    .price-disclosure {
      margin-top: 17px;
      color: var(--muted);
    }

    /* FAQ */

    .faq-layout {
      display: grid;
      gap: 28px;
      margin-top: 65px;
    }

    .faq-intro h3 {
      font-size: 1.8rem;
      margin-bottom: 13px;
    }

    .faq-intro p {
      color: var(--muted);
      font-size: .86rem;
      max-width: 290px;
    }

    .faq-list {
      border-top: 1px solid var(--line);
    }

    .faq-item {
      border-bottom: 1px solid var(--line);
    }

    .faq-item summary {
      display: flex;
      align-items: center;
      justify-content: space-between;
      gap: 20px;
      min-height: 69px;
      padding: 18px 0;
      font-size: .86rem;
      font-weight: 650;
      list-style: none;
    }

    .faq-item summary::-webkit-details-marker {
      display: none;
    }

    .faq-item summary::after {
      content: "+";
      flex-shrink: 0;
      display: grid;
      place-items: center;
      width: 28px;
      height: 28px;
      background: var(--wash);
      color: var(--purple);
      border-radius: 50%;
      font-size: 1.2rem;
      font-weight: 500;
    }

    .faq-item[open] summary::after {
      content: "−";
    }

    .faq-answer {
      padding: 0 38px 23px 0;
      color: var(--muted);
      font-size: .83rem;
    }

    /* CONVERSION BRIDGE */

    .next-step {
      position: relative;
      isolation: isolate;
      display: grid;
      gap: 26px;
      margin-top: 65px;
      padding: clamp(28px, 5vw, 56px);
      border-radius: 30px;
      background: var(--lime);
      overflow: hidden;
    }

    .next-step::after {
      content: "";
      position: absolute;
      z-index: -1;
      width: 360px;
      height: 360px;
      border-radius: 50%;
      border: 50px solid #caeb78;
      right: -150px;
      bottom: -215px;
    }

    .next-step .eyebrow {
      color: #4b6224;
    }

    .next-step h3 {
      max-width: 630px;
      font-size: clamp(2rem, 3.7vw, 3.2rem);
      letter-spacing: -.045em;
    }

    .next-step p {
      max-width: 620px;
      margin-top: 18px;
      color: #465333;
      font-size: .9rem;
    }

    .next-step .btn {
      background: var(--purple-dark);
      color: white;
    }

    .next-step .micro {
      margin-top: 12px;
      max-width: 310px;
    }

    .guide-links {
      display: grid;
      gap: 12px;
      margin-top: 22px;
    }

    .guide-link {
      display: flex;
      align-items: center;
      gap: 12px;
      padding: 17px 18px;
      min-height: 64px;
      border: 1px solid var(--line);
      border-radius: 15px;
      text-decoration: none;
      font-size: .77rem;
      font-weight: 600;
    }

    .guide-link .icon:first-child {
      color: var(--purple);
    }

    .guide-link .icon:last-child {
      margin-left: auto;
      width: 17px;
    }

    /* FOOTER */

    .site-footer {
      padding: 40px 0 115px;
      background: var(--purple-dark);
      color: #bfaecd;
    }

    .footer-top {
      display: flex;
      flex-wrap: wrap;
      align-items: center;
      justify-content: space-between;
      gap: 23px;
      margin-bottom: 24px;
    }

    .footer-top .brand {
      color: white;
    }

    .footer-links {
      display: flex;
      flex-wrap: wrap;
      gap: 9px 20px;
      font-size: .75rem;
    }

    .footer-links a {
      display: inline-flex;
      align-items: center;
      min-height: 44px;
    }

    .footer-bottom {
      display: grid;
      gap: 13px;
      padding-top: 24px;
      border-top: 1px solid #48305c;
      font-size: .7rem;
    }

    .footer-bottom p {
      max-width: 790px;
    }

    /* MOBILE CTA */

    .mobile-cta {
      position: fixed;
      inset: auto 0 0;
      z-index: 25;
      display: flex;
      justify-content: space-between;
      align-items: center;
      gap: 15px;
      padding: 12px 20px calc(12px + env(safe-area-inset-bottom));
      background: rgb(33 19 60 / 98%);
      border-top: 1px solid #614776;
      box-shadow: 0 -8px 30px rgb(30 17 47 / 15%);
      color: white;
    }

    .mobile-cta strong {
      display: block;
      font-size: .77rem;
    }

    .mobile-cta small {
      display: block;
      font-size: .62rem;
      color: #c9b8da;
    }

    .mobile-cta .btn {
      flex-shrink: 0;
      min-height: 45px;
      font-size: .77rem;
      padding: 11px 15px;
    }

    /* OUTBOUND CONFIRMATION */

    .exit-dialog {
      width: min(480px, calc(100% - 32px));
      max-height: calc(100dvh - 40px);
      overflow-y: auto;
      margin: auto;
      padding: 29px;
      border: 1px solid var(--line);
      border-radius: 24px;
      background: white;
      color: var(--ink);
      box-shadow: 0 30px 120px rgb(0 0 0 / 30%);
    }

    .exit-dialog:not([open]) {
      display: none;
    }

    .exit-dialog::backdrop {
      background: rgb(22 12 37 / 75%);
      backdrop-filter: blur(7px);
    }

    .dialog-top {
      display: flex;
      align-items: center;
      justify-content: space-between;
      margin-bottom: 20px;
    }

    .close-btn {
      display: grid;
      place-items: center;
      width: 44px;
      height: 44px;
      border: 1px solid var(--line);
      border-radius: 50%;
      background: white;
    }

    .exit-dialog h2 {
      font-size: 1.85rem;
      margin-bottom: 17px;
    }

    .exit-dialog p {
      color: var(--muted);
      font-size: .86rem;
      margin-bottom: 18px;
    }

    .exit-dialog .destination {
      padding: 12px 15px;
      background: var(--wash);
      border: 1px solid var(--line);
      border-radius: 11px;
      color: var(--ink);
      font-weight: 650;
    }

    .exit-dialog .checkbox-line {
      margin: 22px 0;
    }

    .exit-dialog .button-row > * {
      flex: 1 1 160px;
    }

    /* HOVER */

    @media (hover: hover) {
      .btn:hover {
        transform: translateY(-2px);
        box-shadow: 0 7px 20px rgb(50 24 80 / 15%);
      }

      .btn-lime:hover {
        background: #e4ffae;
      }

      .btn-purple:hover {
        background: #5632b3;
      }

      .btn-outline:hover,
      .btn-light:hover {
        background: #f2ecfc;
      }

      .btn-ghost:hover {
        background: #38224f;
      }

      .character-card:hover {
        transform: translateY(-5px);
        box-shadow: 0 18px 40px rgb(35 19 62 / 16%);
      }

      .character-card:hover img {
        transform: scale(1.035);
      }

      .reply-btn:hover,
      .guide-link:hover {
        background: #f4eefc;
      }
    }

    /* RESPONSIVE: MOBILE FIRST */

    @media (min-width: 580px) {
      .header-cta {
        display: inline-flex;
      }

      .hero-art {
        min-height: 480px;
      }

      .character-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
      }

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

      .privacy-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
      }

      .privacy-card:last-child {
        grid-column: 1 / -1;
      }
    }

    @media (min-width: 800px) {
      .hero {
        padding-top: 70px;
      }

      .hero-grid {
        grid-template-columns: 1.04fr 1fr;
        gap: 45px;
      }

      .hero-art {
        min-height: 430px;
      }

      .section-head {
        grid-template-columns: 1.05fr 1fr;
        align-items: end;
        gap: 60px;
      }

      .steps {
        grid-template-columns: repeat(3, minmax(0, 1fr));
      }

      .split {
        grid-template-columns: 1fr 1fr;
        gap: 45px;
        align-items: center;
      }

      .privacy-grid {
        grid-template-columns: repeat(3, minmax(0, 1fr));
      }

      .privacy-card:last-child {
        grid-column: auto;
      }

      .privacy-callout {
        grid-template-columns: 1fr auto;
        align-items: center;
      }

      .pricing-layout {
        grid-template-columns: .77fr 1.35fr;
      }

      .faq-layout {
        grid-template-columns: .65fr 1.35fr;
        gap: 65px;
      }

      .next-step {
        grid-template-columns: 1.4fr .85fr;
        align-items: center;
        gap: 45px;
      }

      .guide-links {
        grid-template-columns: repeat(3, minmax(0, 1fr));
      }

      .mobile-cta {
        display: none;
      }

      .site-footer {
        padding-bottom: 35px;
      }
    }

    @media (min-width: 1024px) {
      .desktop-nav {
        display: flex;
      }

      .mobile-menu {
        display: none;
      }

      .hero-art {
        min-height: 480px;
      }

      .character-grid {
        grid-template-columns: repeat(4, minmax(0, 1fr));
      }

      .character-info {
        padding: 19px;
      }

      .character-photo img {
        aspect-ratio: .76;
      }

      .footer-bottom {
        grid-template-columns: 1fr auto;
        gap: 45px;
      }
    }

    @media (max-width: 359px) {
      .container {
        width: calc(100% - 28px);
      }

      .brand-note {
        display: none;
      }

      .filter-btn {
        padding-inline: 10px;
        font-size: .74rem;
      }

      .hero-art {
        min-height: 350px;
      }

      .mobile-cta {
        padding-inline: 14px;
        gap: 8px;
      }

      .mobile-cta strong {
        font-size: .7rem;
      }

      .mobile-cta .btn {
        font-size: .7rem;
        padding-inline: 12px;
      }
    }

    @media (prefers-reduced-motion: reduce) {
      html {
        scroll-behavior: auto;
      }

      *,
      *::before,
      *::after {
        animation: none !important;
        transition: none !important;
      }

      .btn:hover,
      .character-card:hover,
      .character-card:hover img {
        transform: none;
      }
    }

    @media (forced-colors: active) {
      .switch-input {
        appearance: auto;
      }

      .switch-input::before {
        display: none;
      }

      .btn,
      .pill,
      .character-card,
      .preview-message {
        border: 1px solid CanvasText;
      }
    }

    @media print {
      .site-header,
      .mobile-cta,
      .exit-dialog,
      [data-enhance],
      .button-row,
      .hero-art {
        display: none !important;
      }

      .section,
      .hero,
      .site-footer {
        padding-block: 24px;
        background: white;
        color: black;
      }

      .hero h1 em,
      .hero p,
      .hero-bottom,
      .hero .eyebrow {
        color: black;
      }

      .character-grid {
        grid-template-columns: repeat(2, 1fr);
      }

      .character-card,
      .privacy-card,
      .chat,
      .settings-panel {
        break-inside: avoid;
        box-shadow: none;
      }

      .faq-item .faq-answer {
        display: block;
      }
    }
  
    .gist-note {margin-block:24px;padding:24px;border:1px solid var(--line);border-radius:16px;background:#faf8fe;color:var(--ink);line-height:1.75;}
    .gist-note h3 {margin-bottom:14px;font-size:1.2rem;}
    .gist-note p + p {margin-top:12px;}
    .gist-note a {color:#5731aa;font-weight:650;}
    .hero .gist-note {background:#322048;border-color:#614b7c;color:#f3ebfc;}
    .gist-table-wrap {overflow-x:auto;margin-block:16px;}
    .gist-table {width:100%;border-collapse:collapse;font-size:.9rem;}
    .gist-table th,.gist-table td {padding:12px;text-align:left;vertical-align:top;border-bottom:1px solid var(--line);min-width:150px;}
    .gist-table th {background:#eee7fb;}
    .reading {max-width:780px;margin-inline:auto;padding:52px 0 80px;}
    .reading h1 {font-size:clamp(2.1rem,5vw,3.4rem);margin:18px 0 24px;}
    .reading h2 {font-size:clamp(1.5rem,3vw,2rem);margin:40px 0 16px;line-height:1.25;}
    .reading h3 {margin:26px 0 12px;}
    .reading p,.reading ul,.reading ol {margin:16px 0;}
    .reading li {margin-block:9px;}
    .reading blockquote {margin:20px 0;padding:16px 22px;border-left:4px solid var(--purple);background:var(--wash);}
    .reading a {color:#5731aa;overflow-wrap:anywhere;}
    .article-nav {display:flex;gap:12px 24px;flex-wrap:wrap;}
    .article-nav a {padding-block:12px;color:inherit;}
    .article-characters {margin:28px 0 32px;}
    .article-characters img {width:100%;height:auto;border-radius:24px;}
    .article-characters figcaption {font-size:.75rem;color:var(--muted);line-height:1.5;margin-top:10px;}
    .reading .lead {font-size:1.15rem;}
    @media(max-width:480px){.gist-note{padding:18px}.reading{padding-top:30px}}
  
.article-nav {align-items:center;justify-content:space-between;padding-block:10px;gap:8px 18px}
.article-nav .brand {font-weight:750;text-decoration:none;gap:10px}
.article-nav .btn {padding:10px 16px;color:#241a37;min-height:44px}
.article-nav img {width:34px;height:34px}
.article-cta {background:#21133c;color:white;padding:28px;border-radius:22px;margin:36px 0}
.article-cta h2 {margin:0 0 12px;color:white;font-size:1.7rem}
.article-cta p {color:#e1d5ef}
.article-cta a.btn {color:#241a37;text-decoration:none}
.breadcrumbs {font-size:.82rem;color:#6d647a;margin-bottom:22px}
.article-toc {padding:20px 24px;background:#f7f5fa;border-radius:16px;margin:28px 0}
.article-toc ul {margin-bottom:0}
.brand-logo {width:34px;height:34px}
@media(max-width:480px){.article-nav{gap:4px 10px}.article-nav .brand{font-size:.85rem}.article-nav .btn{font-size:.8rem}.article-cta{padding:22px}}
