    :root {
      --bg: #0b1020;
      --card-border: rgba(255, 255, 255, 0.12);
      --text: #f5f7fb;
      --muted: #b9c0d4;
      --accent: #7c9cff;
      --accent-2: #58e1c1;
      --shadow: 0 20px 60px rgba(0,0,0,0.35);
    }

    * {
      box-sizing: border-box;
    }

    html {
      scroll-behavior: smooth;
    }

    body {
      margin: 0;
      font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", "Hiragino Sans", "Helvetica Neue", sans-serif;
      color: var(--text);
      background:
        radial-gradient(circle at top left, rgba(124,156,255,0.24), transparent 32%),
        radial-gradient(circle at top right, rgba(88,225,193,0.17), transparent 30%),
        linear-gradient(180deg, #0b1020 0%, #11172d 100%);
      min-height: 100vh;
      line-height: 1.75;
    }

    .container {
      width: min(960px, calc(100% - 32px));
      margin: 0 auto;
      padding: 36px 0 80px;
    }

    .hero {
      position: relative;
      overflow: hidden;
      background: #f7efe2;
      border: 1px solid var(--card-border);
      border-radius: 30px;
      padding: 44px 34px;
      box-shadow: var(--shadow);
      backdrop-filter: blur(18px);
      margin-bottom: 22px;
    }

    .hero::before,
    .hero::after {
      content: none;
    }

    .hero::before {
      width: 240px;
      height: 240px;
      background: rgba(124,156,255,0.36);
      top: -70px;
      right: -70px;
    }

    .hero::after {
      width: 190px;
      height: 190px;
      background: rgba(88,225,193,0.28);
      bottom: -55px;
      left: -55px;
    }

    .hero-inner {
      position: relative;
      z-index: 2;
      min-height: 590px;
      display: flex;
      align-items: center;
    }

    .hero-content {
      position: relative;
      z-index: 2;
      width: min(58%, 520px);
      padding: 22px;
      border-radius: 24px;
      color: #162037;
      background: linear-gradient(90deg, rgba(255,250,242,.97), rgba(255,250,242,.84) 78%, rgba(255,250,242,.28));
    }

    .hero-visual {
      position: absolute;
      z-index: 1;
      inset: -44px -34px;
      display: block;
      overflow: hidden;
    }

    .hero-visual img {
      display: block;
      width: 100%;
      height: 100%;
      object-fit: cover;
      object-position: center;
    }

    .hero h1 {
      color: #162037;
    }

    .eyebrow {
      display: inline-flex;
      font-size: 12px;
      letter-spacing: .08em;
      text-transform: uppercase;
      color: var(--accent-2);
      background: rgba(88,225,193,0.12);
      border: 1px solid rgba(88,225,193,0.22);
      padding: 8px 12px;
      border-radius: 999px;
      margin-bottom: 18px;
      font-weight: 800;
    }

    h1 {
      margin: 0 0 18px;
      font-size: clamp(32px, 5.2vw, 52px);
      line-height: 1.15;
      letter-spacing: -0.04em;
    }

    .lead {
      margin: 0 0 16px;
      color: #28344d;
      font-size: 19px;
      line-height: 1.85;
      max-width: 820px;
      font-weight: 650;
    }

    .hero-sub {
      color: #536078;
      font-size: 15px;
      max-width: 780px;
      margin-bottom: 24px;
    }

    .hero-cta,
    .final-cta a,
    .cta a {
      display: inline-flex;
      align-items: center;
      justify-content: center;
      padding: 15px 22px;
      border-radius: 14px;
      background: linear-gradient(135deg, #9eb4ff 0%, #7ce8d3 100%);
      color: #0e1428;
      text-decoration: none;
      font-weight: 900;
      box-shadow: 0 12px 30px rgba(88,225,193,0.22);
      transition: transform .15s ease, box-shadow .15s ease;
    }

    .hero-cta:hover,
    .final-cta a:hover,
    .cta a:hover {
      transform: translateY(-1px);
      box-shadow: 0 16px 38px rgba(88,225,193,0.26);
    }

    .stats {
      display: grid;
      grid-template-columns: repeat(3, minmax(0, 1fr));
      gap: 14px;
      margin-top: 28px;
    }

    .stat {
      background: rgba(255,255,255,.74);
      border: 1px solid rgba(30,49,77,.10);
      border-radius: 18px;
      padding: 16px 18px;
    }

    .stat-label {
      display: block;
      font-size: 12px;
      color: #667189;
      margin-bottom: 8px;
    }

    .stat-value {
      font-size: 18px;
      font-weight: 900;
      color: #162037;
    }

    .panel {
      background: rgba(255,255,255,0.06);
      border: 1px solid var(--card-border);
      border-radius: 24px;
      padding: 26px;
      box-shadow: var(--shadow);
      backdrop-filter: blur(14px);
      margin-bottom: 22px;
    }

    .panel h2 {
      margin: 0 0 12px;
      font-size: 25px;
      letter-spacing: -0.02em;
    }

    .panel p {
      color: #e7ebf5;
    }

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

    .target-grid,
    .reason-list {
      display: grid;
      gap: 12px;
      margin-top: 18px;
    }

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

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

    .target-item,
    .reason-card {
      padding: 16px;
      border-radius: 16px;
      background: rgba(255,255,255,0.05);
      border: 1px solid rgba(255,255,255,0.09);
      color: #eef2fa;
      font-size: 14px;
    }

    .target-item::before {
      content: "✓";
      color: var(--accent-2);
      font-weight: 900;
      margin-right: 8px;
    }

    .reason-card strong {
      display: block;
      color: #ffffff;
      margin-bottom: 8px;
      font-size: 15px;
    }

    .reason-card span {
      color: var(--muted);
      font-size: 13px;
    }

    .panel-head {
      display: flex;
      justify-content: space-between;
      align-items: end;
      gap: 16px;
      margin-bottom: 18px;
      flex-wrap: wrap;
    }

    .diagnosis-heading {
      display: flex;
      align-items: center;
      gap: 16px;
      min-width: min(100%, 410px);
    }

    .diagnosis-start-image {
      width: 104px;
      aspect-ratio: 1;
      object-fit: cover;
      border-radius: 20px;
      flex: 0 0 auto;
    }

    .panel-note {
      color: var(--muted);
      font-size: 14px;
    }

    .select-box {
      margin-top: 18px;
      padding: 20px;
      border-radius: 18px;
      background: rgba(255,255,255,0.04);
      border: 1px solid rgba(255,255,255,0.09);
    }

    .select-box label {
      display: block;
      font-weight: 800;
      color: #fff;
      margin-bottom: 10px;
    }

    .select-box select {
      width: 100%;
      padding: 14px 16px;
      border-radius: 14px;
      border: 1px solid rgba(255,255,255,0.16);
      background: rgba(255,255,255,0.08);
      color: #fff;
      font-size: 15px;
      outline: none;
    }

    .select-box option {
      color: #111;
    }

    .progress-wrap {
      width: 240px;
      max-width: 100%;
    }

    .progress-top {
      display: flex;
      justify-content: space-between;
      font-size: 12px;
      color: var(--muted);
      margin-bottom: 8px;
    }

    .progress-bar {
      height: 10px;
      border-radius: 999px;
      background: rgba(255,255,255,0.08);
      overflow: hidden;
    }

    .progress-bar-fill {
      width: 0%;
      height: 100%;
      background: linear-gradient(90deg, var(--accent), var(--accent-2));
      border-radius: 999px;
      transition: width .25s ease;
    }

    .progress-companion {
      display: flex;
      align-items: center;
      gap: 10px;
      margin-top: 10px;
      min-height: 54px;
    }

    .progress-companion img {
      width: 54px;
      height: 54px;
      border-radius: 50%;
      object-fit: cover;
      border: 1px solid rgba(255,255,255,.12);
    }

    .progress-message {
      color: var(--muted);
      font-size: 12px;
      line-height: 1.5;
    }

    .question {
      background: rgba(255,255,255,0.04);
      border: 1px solid rgba(255,255,255,0.08);
      border-radius: 18px;
      padding: 20px;
      margin-bottom: 16px;
      transition: transform .18s ease, border-color .18s ease, background .18s ease;
    }

    .question:hover {
      transform: translateY(-1px);
      border-color: rgba(124,156,255,0.28);
      background: rgba(255,255,255,0.06);
    }

    .question-title {
      font-weight: 850;
      font-size: 17px;
      margin-bottom: 14px;
      color: #fff;
    }

    .question-number {
      display: inline-flex;
      align-items: center;
      justify-content: center;
      width: 30px;
      height: 30px;
      border-radius: 999px;
      background: rgba(124,156,255,0.16);
      color: #dbe5ff;
      font-size: 13px;
      margin-right: 10px;
      border: 1px solid rgba(124,156,255,0.25);
    }

    .options {
      display: grid;
      gap: 10px;
    }

    .option {
      position: relative;
    }

    .option input {
      position: absolute;
      opacity: 0;
      pointer-events: none;
    }

    .option label {
      display: block;
      padding: 14px 16px;
      border-radius: 14px;
      background: rgba(255,255,255,0.04);
      border: 1px solid rgba(255,255,255,0.08);
      color: #e7ebf5;
      cursor: pointer;
      transition: all .18s ease;
      font-size: 14px;
    }

    .option label:hover {
      background: rgba(255,255,255,0.07);
    }

    .option input:checked + label {
      background: linear-gradient(135deg, rgba(124,156,255,0.24), rgba(88,225,193,0.18));
      border-color: rgba(124,156,255,0.5);
      color: #fff;
      box-shadow: 0 0 0 1px rgba(124,156,255,0.3) inset;
      font-weight: 750;
    }

    .submit-wrap {
      position: sticky;
      bottom: 16px;
      margin-top: 10px;
      z-index: 5;
    }

    button {
      width: 100%;
      border: none;
      border-radius: 16px;
      padding: 18px 20px;
      font-size: 17px;
      font-weight: 900;
      color: #0e1428;
      background: linear-gradient(135deg, #9eb4ff 0%, #7ce8d3 100%);
      box-shadow: 0 12px 30px rgba(88,225,193,0.2);
      cursor: pointer;
      transition: transform .15s ease, box-shadow .15s ease, opacity .15s ease;
    }

    button:hover {
      transform: translateY(-1px);
      box-shadow: 0 16px 34px rgba(88,225,193,0.24);
    }

    .result {
      display: none;
      position: relative;
      overflow: hidden;
    }

    .calculating {
      display: none;
      text-align: center;
    }

    .calculating.is-visible {
      display: block;
    }

    .calculating img {
      display: block;
      width: min(280px, 76vw);
      aspect-ratio: 1;
      object-fit: cover;
      margin: 0 auto 14px;
      border-radius: 24px;
    }

    .calculating h2 {
      margin-bottom: 6px;
    }

    .calculating-dots::after {
      content: "";
      animation: calculatingDots 1.2s steps(4, end) infinite;
    }

    @keyframes calculatingDots {
      0% { content: ""; }
      25% { content: "・"; }
      50% { content: "・・"; }
      75%, 100% { content: "・・・"; }
    }

    .result-badge {
      display: inline-block;
      padding: 8px 12px;
      border-radius: 999px;
      font-size: 12px;
      font-weight: 850;
      letter-spacing: .06em;
      text-transform: uppercase;
      background: rgba(124,156,255,0.16);
      color: #dbe5ff;
      border: 1px solid rgba(124,156,255,0.3);
      margin-bottom: 14px;
    }

    .result-type {
      font-size: clamp(28px, 4vw, 42px);
      line-height: 1.2;
      font-weight: 950;
      margin-bottom: 12px;
      letter-spacing: -0.03em;
    }

    .result-visual {
      display: block;
      width: min(520px, 100%);
      aspect-ratio: 1;
      object-fit: cover;
      margin: 0 auto 22px;
      border-radius: 24px;
      box-shadow: 0 16px 38px rgba(0,0,0,.24);
    }

    .result-text,
    .personality-text {
      color: #e7ebf5;
      font-size: 17px;
      margin-bottom: 20px;
      white-space: pre-line;
    }

    .personality-box {
      display: none;
      margin-top: 18px;
      padding: 26px;
      overflow: hidden;
      position: relative;
      border-radius: 22px;
      background:
        radial-gradient(circle at 100% 0%, rgba(88,225,193,.15), transparent 42%),
        linear-gradient(135deg, rgba(124,156,255,.13), rgba(255,255,255,.045));
      border: 1px solid rgba(124,156,255,.28);
    }

    .personality-box::before {
      content: "";
      position: absolute;
      inset: 0 auto 0 0;
      width: 4px;
      background: linear-gradient(180deg, #7c9cff, #58e1c1);
    }

    .personality-kicker {
      margin: 0 0 8px;
      color: #86ebd2;
      font-size: 12px;
      font-weight: 900;
      letter-spacing: .08em;
      text-transform: uppercase;
    }

    .personality-box h3 {
      margin: 0 0 10px;
      font-size: clamp(21px, 3vw, 26px);
      line-height: 1.4;
    }

    .personality-lead {
      margin: 0;
      color: #e7ebf5;
      font-size: 15px;
      line-height: 1.85;
      white-space: pre-line;
    }

    .personality-insights {
      display: grid;
      grid-template-columns: repeat(2, minmax(0, 1fr));
      gap: 12px;
      margin-top: 18px;
    }

    .personality-insight {
      padding: 16px;
      border-radius: 16px;
      background: rgba(9,18,38,.38);
      border: 1px solid rgba(255,255,255,.08);
    }

    .personality-insight h4 {
      margin: 0 0 8px;
      color: #aebfff;
      font-size: 13px;
    }

    .personality-insight p {
      margin: 0;
      color: #dce2ee;
      font-size: 13px;
      line-height: 1.75;
    }

    .personality-note {
      margin: 14px 0 0;
      color: #9da9c3;
      font-size: 11px;
      line-height: 1.65;
    }

    @media (max-width: 620px) {
      .personality-box {
        padding: 22px 18px;
      }

      .personality-insights {
        grid-template-columns: 1fr;
      }
    }

    .cta {
      background: linear-gradient(135deg, rgba(124,156,255,0.2), rgba(88,225,193,0.16));
      border: 1px solid rgba(255,255,255,0.14);
      border-radius: 20px;
      padding: 24px;
      margin-top: 20px;
    }

    .cta-grid {
      display: grid;
      grid-template-columns: minmax(0, 1fr) minmax(260px, .8fr);
      gap: 20px;
      align-items: center;
    }

    .cta-visual,
    .closing-visual {
      display: block;
      width: 100%;
      height: auto;
      border-radius: 18px;
    }

    .cta h3 {
      margin: 0 0 10px;
      font-size: 22px;
      letter-spacing: -0.02em;
    }

    .cta p {
      margin: 0 0 12px;
      color: #eef2fa;
    }

    .cta a {
      background: #fff;
      color: #0f1730;
      margin-top: 8px;
      box-shadow: none;
    }

    .faq {
      margin-top: 18px;
      padding: 20px;
      border-radius: 18px;
      background: rgba(255,255,255,0.04);
      border: 1px solid rgba(255,255,255,0.08);
    }

    .faq h3 {
      margin: 0 0 12px;
      font-size: 19px;
    }

    .faq ul {
      padding-left: 20px;
      margin: 0;
      color: #e7ebf5;
    }

    .faq li {
      margin-bottom: 8px;
    }

    .final-cta {
      text-align: center;
    }

    .closing-visual {
      max-width: 720px;
      margin: 0 auto 24px;
    }

    .final-cta h2 {
      font-size: clamp(26px, 4vw, 38px);
      line-height: 1.25;
    }

    .final-cta a {
      margin-top: 10px;
    }

    @media (max-width: 900px) {
      .stats,
      .target-grid,
      .reason-list {
        grid-template-columns: 1fr;
      }

      .panel-head {
        align-items: flex-start;
      }

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

      .hero-inner {
        min-height: 830px;
        align-items: flex-start;
      }

      .hero-content {
        width: 100%;
        padding: 0;
        background: linear-gradient(180deg, rgba(255,250,242,.98) 0%, rgba(255,250,242,.91) 76%, rgba(255,250,242,.16) 100%);
      }

      .hero-visual {
        inset: -30px -22px;
      }

      .hero-visual img {
        object-position: center;
      }

      .diagnosis-heading {
        align-items: flex-start;
      }

      .diagnosis-start-image {
        width: 82px;
        border-radius: 16px;
      }

      .progress-wrap {
        width: 100%;
      }

      .hero {
        padding: 30px 22px;
      }

      .hero-sub {
        font-size: 14px;
      }

      .stats {
        margin-top: 20px;
      }

      .result-visual {
        border-radius: 18px;
      }

      .panel {
        padding: 20px;
      }

      .question {
        padding: 18px;
      }

      .container {
        width: min(100% - 24px, 960px);
        padding-top: 20px;
      }
    }

    @media (prefers-reduced-motion: reduce) {
      html { scroll-behavior: auto; }
      *, *::before, *::after {
        animation-duration: .01ms !important;
        animation-iteration-count: 1 !important;
        transition-duration: .01ms !important;
      }
    }

    /* Seamless light canvas: text, character and page share one visual field. */
    :root {
      --bg: #f7f3ec;
      --card-border: rgba(41, 52, 73, .10);
      --text: #273247;
      --muted: #667085;
      --accent: #6f75b8;
      --accent-2: #2d948f;
      --shadow: 0 12px 34px rgba(55, 61, 78, .08);
    }

    body {
      color: var(--text);
      background: #f7f3ec;
    }

    .container {
      width: min(1080px, calc(100% - 32px));
    }

    .hero {
      background: #fbf4e8;
      border: 0;
      border-radius: 0;
      box-shadow: none;
      backdrop-filter: none;
      padding: 64px 48px;
    }

    .hero-content {
      width: min(54%, 520px);
      padding: 0;
      border-radius: 0;
      background: transparent;
    }

    .hero h1,
    .hero .lead {
      color: #273247;
    }

    .hero-sub {
      color: #5f6b7e;
    }

    .eyebrow {
      color: #247d79;
      background: rgba(45,148,143,.10);
      border-color: rgba(45,148,143,.18);
    }

    .stat {
      background: rgba(255,255,255,.55);
      border-color: rgba(39,50,71,.08);
    }

    .stat-label {
      color: #6b7485;
    }

    .stat-value {
      color: #273247;
    }

    .panel {
      color: #273247;
      background: rgba(255,255,255,.72);
      border-color: rgba(39,50,71,.09);
      box-shadow: var(--shadow);
      backdrop-filter: none;
    }

    .panel p,
    .result-text,
    .personality-text,
    .faq ul {
      color: #465267;
    }

    .muted,
    .panel-note,
    .progress-top,
    .progress-message {
      color: #6b7485;
    }

    .target-item,
    .reason-card,
    .select-box,
    .question,
    .option label,
    .personality-box,
    .faq {
      color: #354158;
      background: rgba(244,241,235,.76);
      border-color: rgba(39,50,71,.09);
    }

    .reason-card strong,
    .select-box label,
    .question-title,
    .personality-box h3,
    .faq h3 {
      color: #273247;
    }

    .reason-card span {
      color: #6b7485;
    }

    .select-box select {
      color: #273247;
      background: #fff;
      border-color: rgba(39,50,71,.14);
    }

    .progress-bar {
      background: rgba(39,50,71,.10);
    }

    .question:hover,
    .option label:hover {
      background: #fff;
    }

    .option input:checked + label {
      color: #273247;
      background: linear-gradient(135deg, rgba(111,117,184,.16), rgba(45,148,143,.13));
    }

    .result-badge {
      color: #555c9d;
      background: rgba(111,117,184,.11);
      border-color: rgba(111,117,184,.20);
    }

    .cta {
      background: linear-gradient(135deg, rgba(111,117,184,.12), rgba(45,148,143,.11));
      border-color: rgba(39,50,71,.10);
    }

    .cta p {
      color: #465267;
    }

    @media (max-width: 900px) {
      .container {
        width: min(100% - 20px, 1080px);
        padding-top: 10px;
      }

      .hero {
        padding: 30px 22px;
        margin-left: -10px;
        margin-right: -10px;
      }

      .hero-inner {
        min-height: 830px;
      }

      .hero-content {
        width: 100%;
        padding: 0;
        background: transparent;
      }

      .stats {
        grid-template-columns: repeat(3, minmax(0, 1fr));
        gap: 6px;
      }

      .stat {
        padding: 10px 8px;
        text-align: center;
      }

      .stat-value {
        font-size: 14px;
      }
    }

    .hero {
      background: #fbe9d7;
    }

    .hero-inner {
      min-height: 560px;
    }

    .hero-content {
      width: min(50%, 500px);
    }

    .hero-details {
      position: relative;
      z-index: 3;
      max-width: 760px;
      padding-top: 24px;
    }

    .hero-details .hero-sub {
      margin: 0;
      max-width: 720px;
      color: #4e5c70;
    }

    .hero-details .stats {
      max-width: 620px;
      margin-top: 18px;
    }

    @media (max-width: 900px) {
      .hero {
        background: #fee6c5;
      }

      .hero-inner {
        min-height: 900px;
      }

      .hero-content {
        width: 100%;
        max-width: 100%;
      }

      .hero h1 {
        font-size: 30px;
        line-height: 1.22;
      }

      .hero .lead {
        max-width: 340px;
        font-size: 16px;
        line-height: 1.7;
      }

      .hero-details {
        padding-top: 20px;
      }

      .hero-details .hero-sub {
        font-size: 14px;
        line-height: 1.75;
      }

      .hero-details .stats {
        max-width: none;
      }
    }

    /* Final palette: retain the original navy/teal identity while keeping the hero seamless. */
    :root {
      --bg: #0b1020;
      --card-border: rgba(255,255,255,.12);
      --text: #f5f7fb;
      --muted: #b9c0d4;
      --accent: #7c9cff;
      --accent-2: #58e1c1;
      --shadow: 0 20px 60px rgba(0,0,0,.35);
    }

    body {
      color: var(--text);
      background:
        radial-gradient(circle at top left, rgba(124,156,255,.24), transparent 32%),
        radial-gradient(circle at top right, rgba(88,225,193,.17), transparent 30%),
        linear-gradient(180deg, #0b1020 0%, #11172d 100%);
    }

    .hero {
      background: #0d1427;
      color: var(--text);
    }

    .hero-inner::after {
      content: "";
      position: absolute;
      z-index: 1;
      inset: -64px -48px;
      pointer-events: none;
      background: linear-gradient(
        90deg,
        rgba(11,16,32,.98) 0%,
        rgba(11,16,32,.92) 31%,
        rgba(11,16,32,.66) 49%,
        rgba(11,16,32,.10) 70%,
        rgba(11,16,32,0) 100%
      );
    }

    .hero-content {
      z-index: 2;
      color: #f7f9ff;
      background: transparent;
    }

    .hero h1,
    .hero .lead {
      color: #f7f9ff;
      text-shadow: 0 2px 18px rgba(0,0,0,.28);
    }

    .hero .lead {
      color: #e8edfa;
    }

    .eyebrow {
      color: #78ead2;
      background: rgba(88,225,193,.12);
      border-color: rgba(88,225,193,.24);
    }

    .hero-details .hero-sub {
      color: #c9d0df;
    }

    .stat {
      background: rgba(255,255,255,.07);
      border-color: rgba(255,255,255,.11);
    }

    .stat-label {
      color: #aeb7ca;
    }

    .stat-value {
      color: #fff;
    }

    .panel {
      color: var(--text);
      background: rgba(255,255,255,.06);
      border-color: var(--card-border);
      box-shadow: var(--shadow);
      backdrop-filter: blur(14px);
    }

    .panel p,
    .result-text,
    .personality-text,
    .faq ul,
    .cta p {
      color: #e7ebf5;
    }

    .muted,
    .panel-note,
    .progress-top,
    .progress-message {
      color: var(--muted);
    }

    .target-item,
    .reason-card,
    .select-box,
    .question,
    .option label,
    .personality-box,
    .faq {
      color: #e7ebf5;
      background: rgba(255,255,255,.04);
      border-color: rgba(255,255,255,.09);
    }

    .reason-card strong,
    .select-box label,
    .question-title,
    .personality-box h3,
    .faq h3 {
      color: #fff;
    }

    .reason-card span {
      color: var(--muted);
    }

    .select-box select {
      color: #fff;
      background: rgba(255,255,255,.08);
      border-color: rgba(255,255,255,.16);
    }

    .progress-bar {
      background: rgba(255,255,255,.08);
    }

    .question:hover,
    .option label:hover {
      background: rgba(255,255,255,.07);
    }

    .option input:checked + label {
      color: #fff;
      background: linear-gradient(135deg, rgba(124,156,255,.24), rgba(88,225,193,.18));
    }

    .result-badge {
      color: #dbe5ff;
      background: rgba(124,156,255,.16);
      border-color: rgba(124,156,255,.30);
    }

    .cta {
      background: linear-gradient(135deg, rgba(124,156,255,.20), rgba(88,225,193,.16));
      border-color: rgba(255,255,255,.14);
    }

    @media (max-width: 900px) {
      .hero {
        background: #0d1427;
      }

      .hero-inner::after {
        inset: -30px -22px;
        background: linear-gradient(
          180deg,
          rgba(11,16,32,.99) 0%,
          rgba(11,16,32,.94) 27%,
          rgba(11,16,32,.72) 39%,
          rgba(11,16,32,.18) 51%,
          rgba(11,16,32,0) 62%
        );
      }
    }

    /* Layout corrections after responsive visual review. */
    .hero-visual {
      inset: -64px -48px 0;
      border-radius: 0;
      box-shadow: none;
    }

    .hero-details {
      padding-top: 30px;
    }

    .diagnosis-start-image {
      width: 136px;
      height: 92px;
      aspect-ratio: auto;
      object-fit: cover;
      object-position: center 24%;
      border-radius: 16px;
    }

    .final-cta {
      position: relative;
      isolation: isolate;
      overflow: hidden;
      min-height: 520px;
      padding: 54px 48px;
      display: flex;
      flex-direction: column;
      justify-content: center;
      align-items: flex-end;
      text-align: left;
      background: #0d1427;
    }

    .closing-visual {
      position: absolute;
      z-index: -2;
      inset: 0;
      width: 100%;
      max-width: none;
      height: 100%;
      margin: 0;
      border-radius: 0;
    }

    .closing-visual img {
      display: block;
      width: 100%;
      height: 100%;
      object-fit: cover;
      object-position: center;
    }

    .final-cta::after {
      content: "";
      position: absolute;
      z-index: -1;
      inset: 0;
      background: linear-gradient(
        270deg,
        rgba(11,16,32,.98) 0%,
        rgba(11,16,32,.90) 34%,
        rgba(11,16,32,.44) 58%,
        rgba(11,16,32,0) 78%
      );
      pointer-events: none;
    }

    .final-cta h2,
    .final-cta p,
    .final-cta a {
      width: min(48%, 450px);
      position: relative;
      z-index: 2;
    }

    .final-cta h2 {
      color: #fff;
    }

    .final-cta p {
      color: #d6dceb;
    }

    @media (max-width: 900px) {
      .container {
        padding-top: 0;
      }

      .hero-visual {
        inset: -30px -22px 0;
        border-radius: 0;
      }

      .diagnosis-heading {
        width: 100%;
        min-width: 0;
      }

      .diagnosis-start-image {
        width: 112px;
        height: 76px;
        border-radius: 14px;
      }

      .final-cta {
        min-height: 500px;
        padding: 28px 18px;
        justify-content: center;
        align-items: flex-end;
        text-align: left;
      }

      .final-cta .closing-visual {
        position: absolute;
        z-index: -2;
        inset: 0;
        width: 100%;
        height: 100%;
        margin: 0;
      }

      .closing-visual img {
        object-fit: cover;
        object-position: 50% center;
        transform: translateY(clamp(-40px, -5vw, -18px)) scale(1.08);
      }

      .final-cta::after {
        display: block;
        background: linear-gradient(
          270deg,
          rgba(11,16,32,.97) 0%,
          rgba(11,16,32,.86) 36%,
          rgba(11,16,32,.30) 57%,
          rgba(11,16,32,0) 74%
        );
      }

      .final-cta h2,
      .final-cta p,
      .final-cta a {
        width: 54%;
        transform: translateY(clamp(-40px, -5vw, -18px));
      }

      .final-cta h2 {
        order: initial;
        font-size: clamp(18px, 5.2vw, 23px);
        line-height: 1.42;
      }

      .final-cta p {
        order: initial;
        font-size: 13px;
      }

      .final-cta a {
        order: initial;
        align-self: flex-end;
        margin-top: 12px;
        padding: 13px 10px;
        font-size: 13px;
        text-align: center;
      }
    }

    .penguin-meaning {
      margin-top: 22px;
      padding: 18px 20px;
      border-left: 4px solid var(--accent-2);
      border-radius: 0 16px 16px 0;
      background: linear-gradient(
        135deg,
        rgba(88,225,193,.10),
        rgba(124,156,255,.08)
      );
    }

    .penguin-meaning h3 {
      margin: 0 0 8px;
      color: #fff;
      font-size: 17px;
    }

    .penguin-meaning p {
      margin: 0;
      color: #dce2ee;
      font-size: 14px;
      line-height: 1.8;
    }

    /* Result experience v2 */
    .result {
      padding: 0;
      background:
        radial-gradient(circle at 8% 0%, rgba(124,156,255,.16), transparent 34%),
        rgba(255,255,255,.055);
    }

    .result-heading {
      display: grid;
      grid-template-columns: minmax(0, 1fr) minmax(300px, .88fr);
      gap: 28px;
      align-items: center;
      padding: 34px 34px 28px;
    }

    .result-copy {
      min-width: 0;
    }

    .result-kicker {
      margin: 0 0 7px;
      color: #9da9c3;
      font-size: 13px;
      font-weight: 800;
      letter-spacing: .08em;
    }

    .result-summary {
      margin: 0;
      max-width: 620px;
      color: #eef2fb;
      font-size: clamp(17px, 2vw, 20px);
      font-weight: 720;
      line-height: 1.75;
    }

    .result-art {
      padding: 10px;
      border: 1px solid rgba(255,255,255,.10);
      border-radius: 24px;
      background: rgba(255,255,255,.045);
    }

    .result-visual {
      width: 100%;
      margin: 0;
      border-radius: 18px;
      box-shadow: none;
    }

    .result-art-caption {
      margin: 10px 6px 2px;
      color: #aeb7ca !important;
      font-size: 12px;
      line-height: 1.6;
    }

    .result-body {
      display: grid;
      gap: 18px;
      padding: 0 34px 34px;
    }

    .result-section {
      padding: 24px;
      border: 1px solid rgba(255,255,255,.09);
      border-radius: 20px;
      background: rgba(255,255,255,.035);
    }

    .result-section h3 {
      margin: 0 0 12px;
      color: #fff;
      font-size: 19px;
      letter-spacing: -.01em;
    }

    .result-text {
      margin: 0;
      color: #dce2ee;
      font-size: 16px;
      line-height: 1.9;
      white-space: normal;
    }

    .axis-list {
      display: grid;
      gap: 13px;
    }

    .axis-row {
      display: grid;
      grid-template-columns: 154px minmax(0, 1fr) 96px;
      gap: 12px;
      align-items: center;
    }

    .axis-label {
      color: #e8edf7;
      font-size: 13px;
      font-weight: 750;
    }

    .axis-track {
      height: 10px;
      overflow: hidden;
      border-radius: 999px;
      background: rgba(255,255,255,.09);
    }

    .axis-fill {
      display: block;
      height: 100%;
      border-radius: inherit;
      background: linear-gradient(90deg, #7c9cff, #58e1c1);
      transition: width .55s ease;
    }

    .axis-fill.is-watch {
      background: linear-gradient(90deg, #7c9cff, #f0b56a);
    }

    .axis-fill.is-low {
      background: linear-gradient(90deg, #d57e86, #f0b56a);
    }

    .axis-status {
      color: #bfc8da;
      font-size: 12px;
      font-weight: 800;
      text-align: right;
    }

    .result-axis-note {
      margin: 14px 0 0 !important;
      color: #9da9c3 !important;
      font-size: 12px;
      line-height: 1.65;
    }

    .result-two-column {
      display: grid;
      grid-template-columns: repeat(2, minmax(0, 1fr));
      gap: 18px;
    }

    .result-list {
      display: grid;
      gap: 10px;
      margin: 0;
      padding: 0;
      list-style: none;
    }

    .result-list li {
      position: relative;
      padding-left: 25px;
      color: #dce2ee;
      font-size: 14px;
      line-height: 1.7;
    }

    .result-list li::before {
      content: "";
      position: absolute;
      top: .55em;
      left: 2px;
      width: 10px;
      height: 10px;
      border: 2px solid #58e1c1;
      border-radius: 50%;
      box-shadow: 0 0 0 4px rgba(88,225,193,.08);
    }

    .result-guidance {
      margin: 0;
      padding: 16px 18px;
      border-left: 4px solid #58e1c1;
      border-radius: 0 14px 14px 0;
      color: #dce2ee;
      background: linear-gradient(135deg, rgba(88,225,193,.09), rgba(124,156,255,.07));
      font-size: 14px;
      line-height: 1.8;
    }

    .result .personality-box,
    .result .cta,
    .result .faq {
      margin-top: 0;
    }

    body.result-preview-mode .container {
      width: min(980px, calc(100% - 24px));
      padding: 18px 0 40px;
    }

    body.result-preview-mode .container > :not(#result) {
      display: none !important;
    }

    body.result-preview-mode #result {
      display: block;
    }

    @media (max-width: 900px) {
      .result-heading {
        grid-template-columns: 1fr;
        gap: 20px;
        padding: 24px 18px 20px;
      }

      .result-copy {
        order: 1;
      }

      .result-art {
        order: 2;
        padding: 7px;
        border-radius: 20px;
      }

      .result-visual {
        border-radius: 15px;
      }

      .result-art-caption {
        margin: 8px 5px 3px;
        font-size: 11px;
      }

      .result-type {
        margin-bottom: 10px;
        font-size: 30px;
      }

      .result-summary {
        font-size: 16px;
        line-height: 1.75;
      }

      .result-body {
        gap: 14px;
        padding: 0 18px 20px;
      }

      .result-section {
        padding: 19px 17px;
        border-radius: 17px;
      }

      .result-section h3 {
        font-size: 17px;
      }

      .result-text {
        font-size: 14px;
        line-height: 1.85;
      }

      .axis-row {
        grid-template-columns: 116px minmax(0, 1fr);
        gap: 8px 10px;
      }

      .axis-label {
        font-size: 11px;
      }

      .axis-status {
        grid-column: 1 / -1;
        margin-top: -4px;
        font-size: 11px;
        text-align: left;
      }

      .result-two-column {
        grid-template-columns: 1fr;
        gap: 14px;
      }

      .result-list li {
        font-size: 13px;
      }
    }
