/* ==============================
   Yellow + Green Mobile-First Theme
   Cozy, clean, gift-page friendly
   With sparkles in the hero
   ============================== */

:root{
  /* Greens */
  --green-900: #0f3d2e;
  --green-700: #1f6f54;
  --green-500: #2ea97a;
  --green-100: #e6fbf2;

  /* Yellows */
  --yellow-700: #c48b00;
  --yellow-500: #f2c94c;
  --yellow-200: #fff4cf;

  /* Neutrals */
  --ink: #0b1a14;
  --muted: #566862;
  --surface: #ffffff;

  /* UI */
  --radius-xl: 22px;
  --radius-lg: 16px;
  --radius-md: 12px;

  --shadow-soft: 0 10px 28px rgba(8, 30, 20, 0.10);
  --shadow-lite: 0 6px 16px rgba(8, 30, 20, 0.08);

  /* Background gradients */
  --bg:
    radial-gradient(700px 380px at 15% 10%, rgba(242,201,76,0.24), transparent 60%),
    radial-gradient(700px 380px at 85% 20%, rgba(46,169,122,0.22), transparent 60%),
    linear-gradient(135deg, #fbfff6 0%, #f7fffb 40%, #fffdf3 100%);
}

/* Reset-ish */
*{ box-sizing: border-box; }
html, body{ height: 100%; }
body{
  margin: 0;
  font-family: system-ui, -apple-system, Segoe UI, Roboto, "Helvetica Neue", Arial, sans-serif;
  color: var(--ink);
  background: var(--bg);
}

/* Page container */
.page{
  min-height: 100%;
  display: flex;
  align-items: stretch;
  justify-content: center;
  padding: 18px 14px 32px;
}

/* Card-like shell */
.shell{
  width: min(720px, 100%);
  display: flex;
  flex-direction: column;
  gap: 16px;
}

/* Header badge */
.badge{
  align-self: flex-start;
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 7px 11px;
  border-radius: 999px;
  background: rgba(242,201,76,0.16);
  border: 1px solid rgba(196,139,0,0.25);
  color: #6d4800;
  font-weight: 700;
  font-size: 0.75rem;
  letter-spacing: 0.2px;
}

/* Main hero */
.hero{
  background:
    linear-gradient(120deg, rgba(242,201,76,0.14), rgba(46,169,122,0.16)),
    var(--surface);
  border: 1px solid rgba(31,111,84,0.10);
  border-radius: var(--radius-xl);
  box-shadow: var(--shadow-soft);
  padding: 22px 20px 20px;
  position: relative;
  overflow: hidden;
}

/* Soft decorative blobs */
.hero::before,
.hero::after{
  content: "";
  position: absolute;
  border-radius: 999px;
  filter: blur(28px);
  opacity: 0.35;
  pointer-events: none;
}
.hero::before{
  width: 220px; height: 220px;
  background: var(--yellow-500);
  top: -80px; right: -70px;
}
.hero::after{
  width: 200px; height: 200px;
  background: var(--green-500);
  bottom: -70px; left: -60px;
}

/* =======================
   MORE VISIBLE SPARKLES
   ======================= */

.sparkles{
  position: absolute;
  inset: 0;
  pointer-events: none;
  /* subtle overall glow layer */
  background:
    radial-gradient(10px 10px at 12% 18%, rgba(255,255,255,0.65), transparent 60%),
    radial-gradient(12px 12px at 78% 22%, rgba(242,201,76,0.45), transparent 60%),
    radial-gradient(10px 10px at 24% 62%, rgba(46,169,122,0.40), transparent 60%),
    radial-gradient(12px 12px at 86% 70%, rgba(255,255,255,0.6), transparent 60%);
  opacity: 0.9;
}

/* Individual sparkle “stars” */
.sparkle{
  position: absolute;
  width: 9px;
  height: 9px;
  border-radius: 999px;

  /* bright mixed sparkle color */
  background: radial-gradient(circle at 35% 35%,
    #ffffff 0%,
    #ffffff 22%,
    rgba(242,201,76,0.9) 45%,
    rgba(46,169,122,0.8) 75%,
    transparent 100%
  );

  filter: blur(0.2px);
  box-shadow:
    0 0 10px rgba(255,255,255,0.9),
    0 0 18px rgba(242,201,76,0.45),
    0 0 18px rgba(46,169,122,0.35);

  opacity: 0.25;
  animation: twinkleStrong 3.8s ease-in-out infinite;
}

/* Vary sizes a bit automatically */
.sparkle.s1{ width: 7px; height: 7px; }
.sparkle.s2{ width: 9px; height: 9px; }
.sparkle.s3{ width: 12px; height: 12px; }

/* Stronger twinkle */
@keyframes twinkleStrong{
  0%   { opacity: 0.10; transform: scale(0.7); }
  25%  { opacity: 0.85; transform: scale(1.0); }
  50%  { opacity: 0.25; transform: scale(0.85); }
  75%  { opacity: 0.95; transform: scale(1.08); }
  100% { opacity: 0.10; transform: scale(0.7); }
}

/* Respect reduced motion */
@media (prefers-reduced-motion: reduce){
  .sparkle{ animation: none; opacity: 0.5; }
}

/* Hero content */
.title{
  margin: 10px 0 6px;
  font-size: clamp(1.6rem, 6vw, 2.2rem);
  line-height: 1.1;
  color: var(--green-900);
  letter-spacing: -0.3px;
}
.subtitle{
  margin: 0 0 14px;
  color: var(--muted);
  font-size: clamp(0.98rem, 3.6vw, 1.05rem);
}

/* Highlight strip */
.highlight{
  display: flex;
  gap: 10px;
  flex-wrap: wrap;
  margin-top: 10px;
}
.chip{
  display: inline-flex;
  align-items: center;
  padding: 6px 10px;
  border-radius: 999px;
  font-weight: 700;
  font-size: 0.75rem;
  border: 1px solid transparent;
}
.chip.green{
  color: var(--green-900);
  background: rgba(46,169,122,0.12);
  border-color: rgba(46,169,122,0.22);
}
.chip.yellow{
  color: #6a4700;
  background: rgba(242,201,76,0.18);
  border-color: rgba(196,139,0,0.24);
}

/* Content blocks */
.section{
  background: rgba(255,255,255,0.86);
  border: 1px solid rgba(31,111,84,0.08);
  border-radius: var(--radius-lg);
  box-shadow: var(--shadow-lite);
  padding: 18px 18px 16px;
}

.section-title{
  margin: 0 0 8px;
  font-size: 1.05rem;
  color: var(--green-900);
}
.section-text{
  margin: 0;
  color: var(--muted);
  line-height: 1.5;
  font-size: 1rem;
}

/* Photo placeholder frame */
.photo-frame{
  border-radius: var(--radius-lg);
  background:
    linear-gradient(135deg, rgba(46,169,122,0.10), rgba(242,201,76,0.12)),
    var(--surface);
  border: 1px dashed rgba(31,111,84,0.22);
  padding: 14px;
}
.photo{
  width: 100%;
  height: 220px;
  border-radius: var(--radius-md);
  background:
    linear-gradient(135deg, var(--green-100), var(--yellow-200));
  display: grid;
  place-items: center;
  color: rgba(15,61,46,0.55);
  font-weight: 700;
  font-size: 0.95rem;
  text-align: center;
  padding: 14px;
}

/* Little “note” card */
.note{
  background:
    linear-gradient(90deg, rgba(46,169,122,0.08), rgba(242,201,76,0.10)),
    var(--surface);
  border: 1px solid rgba(31,111,84,0.10);
}

/* Converse CTA button */
.cta-button{
  display: block;
  width: 100%;
  margin-top: 14px;
  padding: 12px 16px;
  border-radius: 999px;
  text-align: center;
  text-decoration: none;
  font-weight: 700;
  font-size: 1rem;
  color: #0f3d2e;
  background: linear-gradient(135deg, var(--yellow-500), #ffe27a);
  border: 1px solid rgba(196,139,0,0.4);
  box-shadow: 0 8px 18px rgba(196,139,0,0.22);
  transition: transform 0.08s ease, box-shadow 0.12s ease, background 0.12s ease;
}
.cta-button:active{
  transform: translateY(1px);
  box-shadow: 0 4px 10px rgba(196,139,0,0.2);
}

/* Footer */
.footer{
  text-align: center;
  color: var(--muted);
  font-size: 0.85rem;
  padding: 6px 0 2px;
}

/* Desktop enhancements (still mobile-first) */
@media (min-width: 680px){
  .page{ padding: 28px 18px 50px; }
  .hero{ padding: 30px 28px 26px; }
  .photo{ height: 260px; }
}

.emoji{
  width: 20px;
  height: auto;

  transform: scaleX(-1);
}

.photo-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 12px;
  padding: 12px;
}

/* 2 columns on medium screens */
@media (min-width: 600px) {
  .photo-grid {
    grid-template-columns: repeat(2, 1fr);
  }
}

/* 3 columns on wider screens */
@media (min-width: 900px) {
  .photo-grid {
    grid-template-columns: repeat(3, 1fr);
  }
}

.photo {
  margin: 0;
  border-radius: 14px;
  overflow: hidden;
  background: rgba(255, 255, 255, 0.06);
  box-shadow: 0 6px 18px rgba(0,0,0,0.25);
}

.photo img {
  width: 100%;
  height: auto;
  display: block;
}