:root {
      --bg-top: #fff4fb;
      --bg-mid: #ffe4f1;
      --bg-bottom: #ffd2e7;
      --pink-strong: #ff5d99;
      --pink-main: #ff7eb3;
      --pink-soft: #ffb9d4;
      --rose: #ff8fb1;
      --cream: #fffaf4;
      --text: #7d3b57;
      --text-soft: #9a6078;
      --card: rgba(255, 255, 255, 0.62);
      --card-border: rgba(255, 255, 255, 0.8);
      --shadow: 0 24px 60px rgba(226, 102, 149, 0.24);
    }

    * {
      box-sizing: border-box;
    }

    body {
      margin: 0;
      min-width: 320px;
      font-family: "Trebuchet MS", "Segoe UI", "PingFang SC", "Microsoft YaHei", sans-serif;
      color: var(--text);
      background:
        radial-gradient(circle at 15% 15%, rgba(255, 255, 255, 0.92), transparent 20%),
        radial-gradient(circle at 80% 12%, rgba(255, 235, 246, 0.95), transparent 22%),
        radial-gradient(circle at 50% 40%, rgba(255, 255, 255, 0.42), transparent 28%),
        linear-gradient(180deg, var(--bg-top) 0%, var(--bg-mid) 48%, var(--bg-bottom) 100%);
      overflow-x: hidden;
    }

    .page {
      position: relative;
      min-height: 100vh;
      overflow: hidden;
    }

    .cloud,
    .sparkle,
    .floating-heart {
      position: absolute;
      pointer-events: none;
    }

    .cloud {
      width: 220px;
      height: 72px;
      border-radius: 999px;
      background: rgba(255, 255, 255, 0.78);
      filter: blur(1px);
      box-shadow:
        50px -24px 0 8px rgba(255, 255, 255, 0.82),
        110px -8px 0 12px rgba(255, 255, 255, 0.78),
        160px -22px 0 0 rgba(255, 255, 255, 0.74);
      animation: drift 22s linear infinite;
    }

    .cloud.one { top: 8%; left: -60px; }
    .cloud.two { top: 20%; right: -80px; transform: scale(0.82); animation-duration: 28s; animation-direction: reverse; }
    .cloud.three { top: 30%; left: 8%; transform: scale(0.62); animation-duration: 20s; }

    .sparkle {
      width: 10px;
      height: 10px;
      border-radius: 50%;
      background: rgba(255, 255, 255, 0.88);
      box-shadow: 0 0 22px rgba(255, 255, 255, 0.95);
      animation: twinkle 3.4s ease-in-out infinite;
    }

    .sparkle::before,
    .sparkle::after {
      content: "";
      position: absolute;
      inset: 50%;
      width: 2px;
      height: 18px;
      margin: -9px 0 0 -1px;
      background: rgba(255, 255, 255, 0.88);
      border-radius: 999px;
    }

    .sparkle::after {
      transform: rotate(90deg);
    }

    .floating-heart {
      font-size: 18px;
      color: rgba(255, 93, 153, 0.48);
      animation: floatUp 9s linear infinite;
    }

    .hero {
      width: min(calc(100% - 32px), 1240px);
      margin: 0 auto;
      padding: 48px 0 240px;
      position: relative;
      z-index: 1;
    }

    .hero-card {
      padding: 30px 30px 36px;
      border-radius: 36px;
      background: var(--card);
      border: 1px solid var(--card-border);
      backdrop-filter: blur(14px);
      box-shadow: var(--shadow);
    }

    .eyebrow {
      margin: 0;
      text-align: center;
      letter-spacing: 0.28em;
      font-size: 0.82rem;
      color: var(--text-soft);
    }

    .title {
      margin: 16px 0 10px;
      text-align: center;
      font-size: clamp(2.4rem, 6vw, 4.8rem);
      line-height: 1;
      color: var(--pink-strong);
      text-shadow: 0 10px 24px rgba(255, 126, 179, 0.16);
    }

    .subtitle {
      margin: 0 auto 26px;
      max-width: 42rem;
      text-align: center;
      color: var(--text-soft);
      line-height: 1.8;
      font-size: 1.02rem;
    }

    .love-stage {
      display: grid;
      grid-template-columns: minmax(220px, 1fr) minmax(260px, 360px) minmax(220px, 1fr);
      gap: 24px;
      align-items: center;
    }

    .photo-frame {
      position: relative;
      padding: 14px;
      border-radius: 30px;
      background: linear-gradient(180deg, rgba(255,255,255,0.92), rgba(255,232,241,0.95));
      box-shadow: 0 16px 42px rgba(225, 124, 166, 0.18);
      transform: rotate(-3deg);
    }

    .photo-frame.right {
      transform: rotate(3deg);
    }

    .photo-frame::before {
      content: "";
      position: absolute;
      inset: 12px;
      border-radius: 22px;
      border: 2px dashed rgba(255, 126, 179, 0.42);
      pointer-events: none;
    }

    .photo-frame img {
      display: block;
      width: 100%;
      aspect-ratio: 4 / 5;
      object-fit: cover;
      border-radius: 20px;
      box-shadow: 0 10px 24px rgba(174, 93, 128, 0.16);
    }

    .photo-label {
      margin-top: 12px;
      text-align: center;
      color: var(--text-soft);
      font-size: 0.96rem;
    }

    .heart-zone {
      display: flex;
      flex-direction: column;
      align-items: center;
      gap: 18px;
    }

    .heart-shell {
      width: clamp(180px, 24vw, 250px);
      aspect-ratio: 1;
      display: grid;
      place-items: center;
      position: relative;
    }

    .heart-glow {
      position: absolute;
      width: 100%;
      height: 100%;
      border-radius: 50%;
      background: radial-gradient(circle, rgba(255, 152, 193, 0.5) 0%, rgba(255, 152, 193, 0.08) 54%, transparent 72%);
      filter: blur(8px);
      animation: glowPulse 2.2s ease-in-out infinite;
    }

    .heart {
      position: relative;
      display: grid;
      place-items: center;
      width: 100%;
      height: 100%;
      font-size: clamp(8rem, 16vw, 12rem);
      line-height: 1;
      color: #ff5d99;
      animation: beat 1.5s ease-in-out infinite;
      filter: drop-shadow(0 18px 28px rgba(226, 75, 136, 0.28));
      text-shadow:
        0 0 24px rgba(255, 141, 186, 0.88),
        0 10px 24px rgba(214, 69, 126, 0.22);
    }

    .heart::before {
      content: "❤";
      background: linear-gradient(180deg, #ffd9e8 0%, #ff7bb0 42%, #ef4f8e 100%);
      -webkit-background-clip: text;
      background-clip: text;
      color: transparent;
    }

    .heart-caption {
      display: inline-flex;
      align-items: center;
      gap: 10px;
      padding: 10px 18px;
      border-radius: 999px;
      background: rgba(255,255,255,0.7);
      color: var(--pink-strong);
      font-weight: 700;
      box-shadow: 0 10px 20px rgba(255, 126, 179, 0.14);
    }

    .timer-card {
      margin-top: 28px;
      display: grid;
      gap: 18px;
      grid-template-columns: 1.3fr 1fr;
      align-items: stretch;
    }

    .timer-copy,
    .timer-panel {
      padding: 24px;
      border-radius: 28px;
      background: rgba(255,255,255,0.58);
      border: 1px solid rgba(255,255,255,0.76);
      box-shadow: 0 16px 34px rgba(225, 124, 166, 0.12);
    }

    .timer-copy h2,
    .timer-panel h2 {
      margin: 0 0 12px;
      font-size: 1.5rem;
      color: var(--pink-strong);
    }

    .timer-copy p {
      margin: 0;
      color: var(--text-soft);
      line-height: 1.85;
    }

    .start-time {
      margin-top: 14px;
      display: inline-flex;
      padding: 10px 16px;
      border-radius: 999px;
      background: rgba(255, 126, 179, 0.14);
      color: var(--pink-strong);
      font-weight: 700;
    }

    .timer-grid {
      display: grid;
      grid-template-columns: repeat(4, minmax(0, 1fr));
      gap: 12px;
      margin-top: 16px;
    }

    .timer-item {
      padding: 14px 10px;
      border-radius: 22px;
      text-align: center;
      background: linear-gradient(180deg, rgba(255,255,255,0.92), rgba(255,232,241,0.86));
      border: 1px solid rgba(255,255,255,0.92);
    }

    .timer-item strong {
      display: block;
      font-size: clamp(1.5rem, 3vw, 2.4rem);
      color: var(--pink-strong);
    }

    .timer-item span {
      display: inline-block;
      margin-top: 6px;
      color: var(--text-soft);
      font-size: 0.86rem;
      letter-spacing: 0.08em;
    }

    .seconds-line {
      margin-top: 14px;
      text-align: center;
      color: var(--text-soft);
      font-size: 0.96rem;
    }

    .land {
      position: absolute;
      left: 0;
      right: 0;
      bottom: 0;
      height: 250px;
      z-index: 0;
      overflow: hidden;
    }

    .hill {
      position: absolute;
      bottom: -20px;
      left: -5%;
      width: 110%;
      height: 180px;
      border-radius: 50% 50% 0 0;
      background: linear-gradient(180deg, #9de0a6 0%, #7ecf8a 48%, #69b871 100%);
    }

    .hill.back {
      bottom: 54px;
      left: -10%;
      width: 70%;
      height: 120px;
      background: linear-gradient(180deg, #bcecbf 0%, #98dca2 100%);
      opacity: 0.92;
    }

    .hill.back.right {
      left: auto;
      right: -10%;
      width: 76%;
    }

    .flower,
    .tree,
    .cat {
      position: absolute;
      bottom: 0;
    }

    .flower {
      width: 48px;
      height: 92px;
    }

    .flower .stem {
      position: absolute;
      left: 50%;
      bottom: 0;
      width: 6px;
      height: 58px;
      margin-left: -3px;
      border-radius: 999px;
      background: #4ca95e;
    }

    .flower .leaf {
      position: absolute;
      width: 18px;
      height: 10px;
      border-radius: 18px 18px 0 18px;
      background: #74c67b;
    }

    .flower .leaf.left { left: 8px; bottom: 18px; transform: rotate(-30deg); }
    .flower .leaf.right { right: 8px; bottom: 28px; transform: scaleX(-1) rotate(-30deg); }

    .flower .bloom {
      position: absolute;
      top: 0;
      left: 50%;
      width: 48px;
      height: 48px;
      margin-left: -24px;
    }

    .flower .petal,
    .flower .center {
      position: absolute;
      border-radius: 50%;
    }

    .flower .petal {
      width: 22px;
      height: 22px;
      background: #ffb4cf;
    }

    .flower .petal.p1 { top: 0; left: 13px; }
    .flower .petal.p2 { top: 13px; left: 0; }
    .flower .petal.p3 { top: 13px; right: 0; }
    .flower .petal.p4 { bottom: 0; left: 13px; }
    .flower .petal.p5 { top: 7px; left: 7px; background: #ffc5da; }

    .flower .center {
      top: 14px;
      left: 14px;
      width: 20px;
      height: 20px;
      background: #ffd86f;
      box-shadow: inset 0 3px 6px rgba(255,255,255,0.58);
    }

    .tree {
      width: 130px;
      height: 180px;
    }

    .tree .trunk {
      position: absolute;
      left: 50%;
      bottom: 0;
      width: 24px;
      height: 96px;
      margin-left: -12px;
      border-radius: 18px 18px 6px 6px;
      background: #8d5d3b;
    }

    .tree .crown {
      position: absolute;
      border-radius: 50%;
      background: #7dd28e;
      box-shadow: inset 0 8px 16px rgba(255,255,255,0.26);
    }

    .tree .c1 { width: 78px; height: 78px; left: 8px; top: 40px; }
    .tree .c2 { width: 88px; height: 88px; right: 2px; top: 26px; }
    .tree .c3 { width: 94px; height: 94px; left: 18px; top: 0; }

    .cat {
      width: 82px;
      height: 112px;
      animation: sway 4s ease-in-out infinite;
    }

    .cat .tail,
    .cat .body,
    .cat .head,
    .cat .ear,
    .cat .paw,
    .cat .face,
    .cat .patch,
    .cat .bow,
    .cat .hat {
      position: absolute;
    }

    .cat .tail {
      width: 48px;
      height: 16px;
      left: 38px;
      bottom: 40px;
      border-radius: 16px;
      transform-origin: left center;
      transform: rotate(28deg);
      opacity: 0.95;
    }

    .cat .body {
      left: 14px;
      bottom: 18px;
      width: 52px;
      height: 54px;
      border-radius: 28px 28px 22px 22px;
    }

    .cat .head {
      left: 12px;
      bottom: 54px;
      width: 56px;
      height: 50px;
      border-radius: 46% 46% 44% 44%;
    }

    .cat .ear {
      width: 16px;
      height: 16px;
      top: -7px;
      background: inherit;
      clip-path: polygon(50% 0, 0 100%, 100% 100%);
    }

    .cat .ear.left { left: 6px; }
    .cat .ear.right { right: 6px; }

    .cat .face {
      left: 11px;
      top: 12px;
      width: 34px;
      height: 26px;
      border-radius: 16px;
      background: rgba(255,255,255,0.6);
    }

    .cat .face::before,
    .cat .face::after {
      content: "";
      position: absolute;
      top: 10px;
      width: 5px;
      height: 5px;
      border-radius: 50%;
      background: #523140;
      box-shadow: 0 0 0 2px rgba(255,255,255,0.2);
    }

    .cat .face::before { left: 8px; }
    .cat .face::after { right: 8px; }

    .cat .nose {
      position: absolute;
      left: 50%;
      top: 12px;
      width: 7px;
      height: 5px;
      margin-left: -3.5px;
      border-radius: 50% 50% 60% 60%;
      background: #ff8bb3;
    }

    .cat .nose::before,
    .cat .nose::after {
      content: "";
      position: absolute;
      top: 4px;
      width: 10px;
      height: 8px;
      border-bottom: 2px solid #7a4c5e;
      border-radius: 0 0 10px 10px;
    }

    .cat .nose::before { right: 3px; }
    .cat .nose::after { left: 3px; }

    .cat .paw {
      bottom: 0;
      width: 14px;
      height: 24px;
      border-radius: 12px;
      background: inherit;
    }

    .cat .paw.left { left: 20px; }
    .cat .paw.right { right: 20px; }

    .cat .patch {
      border-radius: 50%;
      opacity: 0.75;
      background: rgba(255,255,255,0.46);
    }

    .cat .bow {
      top: 42px;
      left: 24px;
      width: 18px;
      height: 10px;
      border-radius: 10px;
      background: #ff659f;
    }

    .cat .bow::before,
    .cat .bow::after {
      content: "";
      position: absolute;
      top: -2px;
      width: 10px;
      height: 12px;
      border-radius: 12px 12px 12px 2px;
      background: #ff8bb9;
    }

    .cat .bow::before { left: -8px; transform: rotate(-14deg); }
    .cat .bow::after { right: -8px; transform: scaleX(-1) rotate(-14deg); }

    .cat .hat {
      top: -8px;
      left: 16px;
      width: 24px;
      height: 12px;
      border-radius: 14px 14px 8px 8px;
      background: #ffcf8e;
    }

    .cat .hat::before {
      content: "";
      position: absolute;
      left: 4px;
      top: -7px;
      width: 16px;
      height: 10px;
      border-radius: 12px 12px 2px 2px;
      background: #ffc26b;
    }

    .cat.peach .head,
    .cat.peach .body,
    .cat.peach .tail,
    .cat.peach .paw { background: #f7c8ba; }
    .cat.cream .head,
    .cat.cream .body,
    .cat.cream .tail,
    .cat.cream .paw { background: #f9efd8; }
    .cat.gray .head,
    .cat.gray .body,
    .cat.gray .tail,
    .cat.gray .paw { background: #c9ccd9; }
    .cat.orange .head,
    .cat.orange .body,
    .cat.orange .tail,
    .cat.orange .paw { background: #f8c38a; }
    .cat.white .head,
    .cat.white .body,
    .cat.white .tail,
    .cat.white .paw { background: #fffdfd; }
    .cat.milk-tea .head,
    .cat.milk-tea .body,
    .cat.milk-tea .tail,
    .cat.milk-tea .paw { background: #dbc2af; }
    .cat.pink .head,
    .cat.pink .body,
    .cat.pink .tail,
    .cat.pink .paw { background: #f5bfd0; }

    .cat.peach .patch.one { width: 16px; height: 14px; left: 30px; top: 10px; }
    .cat.cream .patch.one { width: 14px; height: 12px; left: 8px; top: 18px; }
    .cat.gray .patch.one { width: 18px; height: 9px; left: 20px; top: 6px; }
    .cat.orange .patch.one { width: 14px; height: 14px; left: 34px; top: 18px; }
    .cat.white .patch.one { width: 14px; height: 14px; left: 11px; top: 12px; background: rgba(255, 197, 205, 0.82); }
    .cat.milk-tea .patch.one { width: 18px; height: 12px; left: 22px; top: 15px; }
    .cat.pink .patch.one { width: 15px; height: 11px; left: 31px; top: 7px; background: rgba(255,255,255,0.38); }

    .cat.peach { left: 4%; bottom: 44px; }
    .cat.cream { left: 14%; bottom: 28px; animation-delay: -1.1s; }
    .cat.gray { left: 27%; bottom: 46px; animation-delay: -2.2s; }
    .cat.orange { left: 43%; bottom: 22px; animation-delay: -0.7s; }
    .cat.white { right: 31%; bottom: 42px; animation-delay: -1.9s; }
    .cat.milk-tea { right: 17%; bottom: 26px; animation-delay: -2.7s; }
    .cat.pink { right: 5%; bottom: 40px; animation-delay: -0.3s; }

    .tree.one { left: 2%; bottom: 58px; transform: scale(0.95); }
    .tree.two { right: 3%; bottom: 52px; transform: scale(1.08); }

    .flower.f1 { left: 10%; bottom: 86px; transform: scale(0.9); }
    .flower.f2 { left: 19%; bottom: 92px; transform: scale(1.05); }
    .flower.f3 { left: 36%; bottom: 88px; transform: scale(0.86); }
    .flower.f4 { left: 54%; bottom: 90px; transform: scale(1.08); }
    .flower.f5 { left: 69%; bottom: 84px; transform: scale(0.9); }
    .flower.f6 { left: 79%; bottom: 96px; transform: scale(1.02); }

    @keyframes beat {
      0%, 100% { transform: rotate(-45deg) scale(1); }
      14% { transform: rotate(-45deg) scale(1.08); }
      28% { transform: rotate(-45deg) scale(1); }
      42% { transform: rotate(-45deg) scale(1.12); }
      70% { transform: rotate(-45deg) scale(1); }
    }

    @keyframes glowPulse {
      0%, 100% { transform: scale(0.95); opacity: 0.8; }
      50% { transform: scale(1.08); opacity: 1; }
    }

    @keyframes twinkle {
      0%, 100% { transform: scale(0.7); opacity: 0.5; }
      50% { transform: scale(1.1); opacity: 1; }
    }

    @keyframes drift {
      0% { transform: translateX(0); }
      50% { transform: translateX(26px); }
      100% { transform: translateX(0); }
    }

    @keyframes floatUp {
      0% { transform: translateY(20px) scale(0.9); opacity: 0; }
      20% { opacity: 0.7; }
      100% { transform: translateY(-180px) scale(1.1); opacity: 0; }
    }

    @keyframes sway {
      0%, 100% { transform: translateY(0) rotate(0deg); }
      50% { transform: translateY(-4px) rotate(1.4deg); }
    }

    @media (max-width: 980px) {
      .timer-card {
        grid-template-columns: 1fr;
      }

      .love-stage {
        grid-template-columns: minmax(96px, 1fr) minmax(120px, 180px) minmax(96px, 1fr);
        gap: 16px;
      }

      .photo-frame,
      .photo-frame.right {
        max-width: 340px;
        margin: 0 auto;
        transform: none;
      }

      .hero {
        padding-bottom: 300px;
      }

      .land {
        height: 320px;
      }
    }

    @media (max-width: 720px) {
      .love-stage {
        grid-template-columns: minmax(88px, 1fr) minmax(92px, 120px) minmax(88px, 1fr);
        gap: 10px;
      }

      .photo-frame,
      .photo-frame.right {
        padding: 10px;
        border-radius: 22px;
      }

      .photo-frame::before {
        inset: 8px;
        border-radius: 16px;
      }

      .photo-frame img {
        border-radius: 14px;
      }

      .photo-label {
        margin-top: 8px;
        font-size: 0.82rem;
      }

      .heart-zone {
        gap: 10px;
      }

      .heart-shell {
        width: clamp(92px, 24vw, 120px);
      }

      .heart-caption {
        padding: 8px 12px;
        font-size: 0.78rem;
        text-align: center;
      }

      .hero {
        width: min(calc(100% - 18px), 1240px);
        padding-top: 18px;
        padding-bottom: 340px;
      }

      .hero-card {
        padding: 22px 16px 30px;
        border-radius: 28px;
      }

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

      .land {
        height: 360px;
      }

      .tree.one {
        left: -10px;
        transform: scale(0.74);
      }

      .tree.two {
        right: -18px;
        transform: scale(0.82);
      }

      .cat {
        transform: scale(0.86);
      }

      .cat.peach { left: -2%; }
      .cat.cream { left: 10%; }
      .cat.gray { left: 23%; }
      .cat.orange { left: 38%; }
      .cat.white { right: 23%; }
      .cat.milk-tea { right: 8%; }
      .cat.pink { right: -3%; }
    }
