
    :root {
      --white: #fff;
      --primary: #b1507b;
      --primary-lifted: #913a62;
      --primary-accented: #752d4e;
      --primary-300: #f4b7ce;
      --tint: #fce4ec;
      --tint-strong: #f8d0de;
      --text: #1b1718;
      --text-muted: #746e70;
      --text-lifted: #625c5e;
      --text-accented: #4b4648;
      --border-muted: #eae5e6;
      --bg: #fff;
      --bg-lifted: #f9f4f5;
      --bg-accented: #f0e9eb;
      --bg-inverted: #2b2d35;
      --shell-max: 1400px;
      --shell-gutter: 1.5rem;
      --topnav-h: 64px;
      --ease: cubic-bezier(0.4, 0, 0.2, 1);
      --dur: 170ms;
    }

    * { box-sizing: border-box; }

    html, body {
      margin: 0;
      height: auto;
      min-height: 100%;
      background: var(--bg);
      color: var(--text);
      font-family: Inter, ui-sans-serif, system-ui, "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", sans-serif;
      -webkit-font-smoothing: antialiased;
      text-rendering: optimizeLegibility;
    }

    a { color: inherit; text-decoration: none; }
    button, input { font: inherit; }
    img, svg { display: block; }
    ul { margin: 0; padding: 0; list-style: none; }

    :focus-visible {
      outline: 2px solid var(--primary);
      outline-offset: 2px;
    }

    .container {
      width: 100%;
      max-width: var(--shell-max);
      margin: 0 auto;
      padding-left: var(--shell-gutter);
      padding-right: var(--shell-gutter);
    }

    .header { background: transparent; }
    .topnav-inner {
      display: flex;
      align-items: center;
      width: 100%;
      max-width: var(--shell-max);
      min-height: var(--topnav-h);
      margin: 0 auto;
      padding: 0 var(--shell-gutter);
      column-gap: 0.75rem;
    }
    .brand {
      order: 1;
      display: inline-flex;
      align-items: center;
      gap: 0.55rem;
      flex: 0 0 auto;
      color: var(--text);
    }
    .brand-mark {
      height: 40px;
      width: auto;
      display: block;
      flex: none;
    }
    .brand-name {
      font-size: 1.05rem;
      font-weight: 650;
      letter-spacing: -0.03em;
      line-height: 1;
    }
    .nav-toggle {
      position: absolute;
      width: 1px;
      height: 1px;
      opacity: 0;
      pointer-events: none;
    }
    .toolbar {
      order: 3;
      display: flex;
      align-items: center;
      gap: 0.125rem;
      margin-left: auto;
    }
    .icon-btn {
      width: 38px;
      height: 38px;
      display: inline-flex;
      align-items: center;
      justify-content: center;
      border: 0;
      border-radius: 8px;
      background: transparent;
      color: var(--text-lifted);
      cursor: pointer;
    }
    .icon-btn:hover { background: var(--bg-lifted); color: var(--text); }
    .menu-btn { display: none; }
    .icon-close { display: none; }
    .nav-toggle:checked ~ .toolbar .icon-open { display: none; }
    .nav-toggle:checked ~ .toolbar .icon-close { display: block; }

    .nav-collapse {
      order: 2;
      display: flex;
      align-items: center;
      flex: 1 1 auto;
      min-width: 0;
      gap: 0.75rem;
    }
    .nav-primary, .nav-secondary {
      display: flex;
      align-items: center;
      gap: 0.125rem;
    }
    .nav-primary { flex: 1 1 auto; min-width: 0; flex-wrap: wrap; }
    .nav-primary > li > a,
    .nav-secondary > li > a,
    .has-menu > a {
      display: inline-flex;
      align-items: center;
      gap: 0.3rem;
      height: 28px;
      padding: 0 0.5rem;
      border-radius: 8px;
      color: var(--text-lifted);
      font-size: 0.875rem;
      font-weight: 500;
      line-height: 1;
      white-space: nowrap;
    }
    .nav-primary > li > a:hover,
    .nav-secondary > li > a:hover,
    .has-menu:hover > a,
    .has-menu:focus-within > a {
      background: var(--bg-lifted);
      color: var(--text);
    }
    .has-menu { position: relative; }
    .menu {
      display: none;
      position: absolute;
      top: calc(100% + 0.35rem);
      left: 0;
      min-width: 11.5rem;
      padding: 0.35rem;
      background: var(--white);
      border: 1px solid var(--border-muted);
      border-radius: 12px;
      box-shadow: 0 8px 28px rgba(27, 23, 24, 0.10);
      z-index: 20;
    }
    .has-menu:hover .menu,
    .has-menu:focus-within .menu { display: grid; }
    .menu a {
      display: flex;
      align-items: center;
      min-height: 36px;
      padding: 0 0.6rem;
      border-radius: 8px;
      color: var(--text-lifted);
      font-size: 0.875rem;
      font-weight: 500;
    }
    .menu a:hover { background: var(--bg-lifted); color: var(--text); }

    .home-hero { padding-block: clamp(2rem, 6vw, 4.5rem) clamp(3rem, 8vw, 6rem); }
    .home-hero-grid {
      display: grid;
      grid-template-columns: minmax(0, 1.15fr) minmax(0, 0.85fr);
      gap: clamp(2rem, 5vw, 4rem);
      align-items: center;
    }
    .home-eyebrow {
      display: inline-block;
      margin: 0 0 1.25rem;
      padding: 0.3rem 0.85rem;
      border-radius: 999px;
      background: var(--tint);
      color: var(--primary-lifted);
      font-size: 0.75rem;
      font-weight: 500;
      letter-spacing: 0.01em;
    }
    .home-hero-title {
      margin: 0;
      color: var(--text);
      font-size: clamp(2.25rem, 5.2vw, 3.5rem);
      font-weight: 700;
      line-height: 1.06;
      letter-spacing: -0.035em;
      text-wrap: balance;
    }
    .home-hero-title-muted {
      display: block;
      color: var(--text-muted);
      font-weight: 700;
    }
    .home-hero-copy { min-width: 0; }
    .home-hero-sub {
      max-width: min(34rem, 100%);
      overflow-wrap: anywhere;
      margin: 1.375rem 0 0;
      color: var(--text-lifted);
      font-size: clamp(1rem, 1.6vw, 1.125rem);
      font-weight: 400;
      line-height: 1.6;
    }
    .home-hero-actions {
      display: flex;
      flex-wrap: wrap;
      gap: 0.75rem;
      margin-top: 2rem;
    }
    .btn {
      display: inline-flex;
      align-items: center;
      justify-content: center;
      gap: 0.4rem;
      border: 0;
      border-radius: 999px;
      padding: 0.5625rem 1.125rem;
      font-size: 0.875rem;
      font-weight: 500;
      line-height: 1.25rem;
      cursor: pointer;
      transition: background-color var(--dur) var(--ease), color var(--dur) var(--ease), transform var(--dur) var(--ease);
    }
    .btn-lg { padding: 0.75rem 1.5rem; font-size: 1rem; }
    .btn-primary { background: var(--primary); color: var(--white); }
    .btn-primary:hover { background: var(--primary-lifted); color: var(--white); transform: translateY(-2px); }
    .btn-soft { background: var(--tint); color: var(--primary-lifted); }
    .btn-soft:hover { background: var(--tint-strong); color: var(--primary-accented); transform: translateY(-2px); }
    .btn-quiet { background: var(--bg-accented); color: var(--text); }
    .btn-quiet:hover { background: #e6dee1; color: var(--text); transform: translateY(-2px); }

    .home-hero-points {
      display: flex;
      flex-wrap: wrap;
      gap: 0.5rem 1.75rem;
      margin: 2.25rem 0 0;
      color: var(--text-lifted);
      font-size: 0.875rem;
    }
    .home-hero-points li { display: flex; align-items: center; gap: 0.5rem; }
    .home-hero-points li::before {
      content: "";
      width: 0.3125rem;
      height: 0.3125rem;
      border-radius: 50%;
      background: var(--primary-300);
      flex: none;
    }

    .home-hero-art { display: flex; justify-content: center; align-items: center; }
    .mascot {
      width: 100%;
      max-width: 19rem;
      animation: floaty 4.5s ease-in-out infinite;
    }
    .mascot img { width: 100%; height: auto; }

    @keyframes floaty {
      0%, 100% { transform: translateY(0); }
      50% { transform: translateY(-7px); }
    }

    .home-section { padding-block: clamp(2.75rem, 6vw, 4.5rem); }
    .home-section-surface { background: var(--bg-lifted); }
    .home-section-title {
      margin: 0 0 1.75rem;
      color: var(--text);
      font-size: clamp(1.375rem, 2.6vw, 1.75rem);
      font-weight: 600;
      letter-spacing: -0.02em;
      text-wrap: balance;
    }
    .home-grid {
      display: grid;
      grid-template-columns: repeat(auto-fill, minmax(15rem, 1fr));
      gap: 1rem;
    }
    .home-tile {
      display: flex;
      flex-direction: column;
      gap: 0.5rem;
      padding: 1.5rem;
      background: var(--bg);
      border: 1px solid var(--border-muted);
      border-radius: 1rem;
      transition: border-color var(--dur) var(--ease), transform var(--dur) var(--ease);
    }
    .home-tile:hover { border-color: #f6c9d8; transform: translateY(-2px); }
    .home-tile-title {
      margin: 0;
      color: var(--text);
      font-size: 1.0625rem;
      font-weight: 600;
      letter-spacing: -0.01em;
    }
    .home-tile-text {
      margin: 0;
      color: var(--text-lifted);
      font-size: 0.875rem;
      line-height: 1.55;
    }
    .home-tile-cta {
      margin-top: 0.25rem;
      color: var(--primary);
      font-size: 0.875rem;
      font-weight: 500;
    }
    .home-tile-cta::after {
      content: " \2192";
      opacity: 0.55;
      transition: opacity var(--dur) var(--ease);
    }
    .home-tile:hover .home-tile-cta::after { opacity: 1; }

    .home-links {
      display: grid;
      grid-template-columns: repeat(auto-fill, minmax(11rem, 1fr));
      gap: 0.75rem;
    }
    .home-link {
      display: flex;
      align-items: center;
      gap: 0.875rem;
      min-height: 4.5rem;
      padding: 1rem 1.125rem;
      background: var(--bg);
      border: 1px solid var(--border-muted);
      border-radius: 1rem;
      color: var(--text);
      font-size: 0.875rem;
      font-weight: 500;
      transition: border-color var(--dur) var(--ease), transform var(--dur) var(--ease);
    }
    .home-link:hover { border-color: #f6c9d8; color: var(--text); transform: translateY(-2px); }
    .home-link-ico {
      flex: none;
      width: 2.25rem;
      height: 2.25rem;
      display: grid;
      place-items: center;
      border-radius: 0.75rem;
      background: var(--tint);
      color: var(--primary-lifted);
    }
    .home-link-label { line-height: 1.35; }

    footer {
      background: var(--bg-inverted);
      color: color-mix(in oklab, var(--white) 72%, var(--bg-inverted));
      padding: 2.5rem 0 2rem;
      font-size: 0.875rem;
    }
    .footer-row {
      display: flex;
      align-items: center;
      gap: 0.25rem 1rem;
    }
    .footer-links { display: flex; flex-wrap: wrap; align-items: center; }
    .footer-links a {
      display: flex;
      align-items: center;
      min-height: 40px;
      padding: 0 0.85rem 0 0;
      color: inherit;
    }
    .footer-links a:hover { color: var(--white); }
    .lang-chip {
      margin-left: auto;
      display: inline-flex;
      align-items: center;
      min-height: 36px;
      padding: 0.35rem 0.8rem;
      border: 1px solid color-mix(in oklab, var(--white) 28%, transparent);
      border-radius: 999px;
      color: color-mix(in oklab, var(--white) 82%, var(--bg-inverted));
      font-size: 0.75rem;
      white-space: nowrap;
    }
    .copyright {
      margin: 1.25rem 0 0;
      text-align: center;
      color: color-mix(in oklab, var(--white) 58%, var(--bg-inverted));
    }

    @media (max-width: 1199.98px) {
      .menu-btn { display: inline-flex; }
      .topnav-inner { flex-wrap: wrap; }
      .nav-collapse {
        display: none;
        order: 4;
        flex: 1 1 100%;
        flex-direction: column;
        align-items: stretch;
        gap: 2px;
        padding: 0.25rem 0 0.75rem;
        border-top: 1px solid var(--border-muted);
      }
      .nav-toggle:checked ~ .nav-collapse { display: flex; }
      .nav-primary, .nav-secondary {
        flex-direction: column;
        align-items: stretch;
        width: 100%;
      }
      .nav-primary > li > a,
      .nav-secondary > li > a,
      .has-menu > a {
        height: 44px;
        padding: 0 0.75rem;
        font-size: 0.9375rem;
      }
      .menu {
        position: static;
        display: grid;
        min-width: 0;
        margin: 0 0.75rem 0.35rem;
        box-shadow: none;
        background: var(--bg-lifted);
      }
    }

    @media (max-width: 820px) {
      .home-hero-grid { grid-template-columns: minmax(0, 1fr); }
      .home-hero-art { order: -1; justify-content: flex-start; }
      .mascot { max-width: 8.5rem; }
    }

    @media (max-width: 767.98px) {
      :root { --shell-gutter: 1rem; --topnav-h: 58px; }
      .brand-mark { height: 36px; }
      .footer-row { flex-wrap: wrap; justify-content: center; }
      .footer-links { justify-content: center; }
      .footer-links a { padding: 0 0.7rem; }
      .lang-chip { margin-left: 0; }
    }

    @media (prefers-reduced-motion: reduce) {
      .mascot { animation: none; }
      .btn, .home-tile, .home-link { transition: none; }
      .btn:hover, .home-tile:hover, .home-link:hover { transform: none; }
    }
  