
    /* ── Custom fonts ── */
    @font-face {
      font-family: 'Aqueduct';
      src: url('../fonts/Aqueduct 400.otf') format('opentype');
      font-weight: 400;
      font-style: normal;
      font-display: swap;
    }

    @font-face {
      font-family: 'Myriad Pro';
      src: url('../fonts/MYRIADPRO-REGULAR.OTF') format('opentype');
      font-weight: 400;
      font-style: normal;
      font-display: swap;
    }

    @font-face {
      font-family: 'Myriad Pro';
      src: url('../fonts/MYRIADPRO-SEMIBOLD.OTF') format('opentype');
      font-weight: 600;
      font-style: normal;
      font-display: swap;
    }

    @font-face {
      font-family: 'Myriad Pro';
      src: url('../fonts/MYRIADPRO-BOLD.OTF') format('opentype');
      font-weight: 700;
      font-style: normal;
      font-display: swap;
    }

    :root {
      --color-bg: #FFFFFF;
      --color-primary: #DC8199;
      --color-secondary: #FEE3CE;
      --color-text: #3a2a2a;
      --color-text-muted: #7a6060;
      --color-desktop-bg: #fdf6f0;

      --font-display: 'Aqueduct', serif;
      --font-body: 'Myriad Pro', sans-serif;
      --font-ui: 'Work Sans', sans-serif;
    }

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

    html, body {
      height: 100%;
    }

    body {
      background-color: var(--color-desktop-bg);
      font-family: var(--font-body);
      color: var(--color-text);
      display: flex;
      justify-content: center;
      align-items: flex-start;
      min-height: 100dvh;
      padding: 0;
    }

    .card {
      background: var(--color-bg);
      width: 100%;
      max-width: 480px;
      min-height: 100dvh;
      display: flex;
      flex-direction: column;
      align-items: center;
      padding: 36px 28px 32px;
      gap: 0;
    }

    /* ── Animations ── */
    @keyframes fadeUp {
      from {
        opacity: 0;
        transform: translateY(14px);
      }
      to {
        opacity: 1;
        transform: translateY(0);
      }
    }

    /* ── Desktop wrapper shadow ── */
    @media (min-width: 480px) {
      .card {
        min-height: auto;
        margin: 40px auto;
        border-radius: 24px;
        box-shadow: 0 20px 60px rgba(180, 100, 120, 0.10);
      }
    }
  