@font-face {
      font-family: 'Channel';
      src: url('assets/fonts/Channel.ttf') format('truetype');
      font-weight: normal;
      font-style: normal;
      font-display: swap;
    }

    @font-face {
      font-family: 'Fontleroy';
      src: url('assets/fonts/FontleroyBrown.ttf') format('truetype');
      font-weight: normal;
      font-style: normal;
      font-display: swap;
    }

    @font-face {
      font-family: "AphroditeSlimPro";
      src: url("https://db.onlinewebfonts.com/t/e120c69cb4c8183d9e55d6e54e1d3288.woff2") format("woff2"),
           url("https://db.onlinewebfonts.com/t/e120c69cb4c8183d9e55d6e54e1d3288.woff") format("woff"),
           url("https://db.onlinewebfonts.com/t/e120c69cb4c8183d9e55d6e54e1d3288.ttf") format("truetype");
      font-weight: normal;
      font-style: normal;
      font-display: swap;
    }

    :root {
      --bg: #FAF6F0;      /* Soft Off-white / light beige */
      --bg-gradient: linear-gradient(135deg, #FAF6F0 0%, #F5EFEB 100%);
      --paper: #FFFFFF;   /* Crisp white paper cards */
      --ink: #3D2E25;     /* Dark Brown */
      --muted: #826F63;   /* Cocoa */
      --line: #D9CFC4;    /* Light coffee beige */
      --coffee: #5C4A3E;  /* Coffee */
      --black: #231710;   /* Rich dark brown */
      --accent: #A69280;  /* Muted beige gold */
      --radius: 26px;
    }

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

    html {
      scroll-behavior: smooth;
      overflow-x: hidden;
      width: 100%;
    }

    body {
      font-family: "Inter", sans-serif;
      background: var(--bg);
      color: var(--ink);
      overflow-x: hidden;
      width: 100%;
      -webkit-font-smoothing: antialiased;
    }

    .grain {
      position: fixed;
      inset: 0;
      pointer-events: none;
      opacity: 0.05;
      z-index: 1000;
      background-image: radial-gradient(circle at 1px 1px, #5C4A3E 1px, transparent 0);
      background-size: 18px 18px;
    }

    .music-button {
      position: fixed;
      right: 22px;
      bottom: 22px;
      width: 54px;
      height: 54px;
      border-radius: 50%;
      border: 1px solid var(--line);
      background: var(--black);
      color: #FAF6F0;
      display: grid;
      place-items: center;
      cursor: pointer;
      z-index: 200;
      box-shadow: 0 12px 40px rgba(62, 42, 30, 0.15);
      font-size: 18px;
      transition: transform 0.3s ease;
    }
    .music-button:hover {
      transform: scale(1.05);
    }

    .section {
      min-height: 100vh;
      padding: 70px 7vw;
      position: relative;
      display: flex;
      align-items: center;
      justify-content: center;
    }

    .split {
      display: grid;
      grid-template-columns: 1.1fr .9fr;
      gap: 46px;
      align-items: center;
      width: min(1120px, 100%);
    }

    .serif {
      font-family: "Cormorant Garamond", serif;
      color: var(--ink);
    }

    .small-title {
      letter-spacing: .42em;
      text-transform: uppercase;
      font-size: 11px;
      color: var(--muted);
      margin-bottom: 22px;
    }

    .hero h1 {
      font-family: "Fontleroy", cursive;
      font-size: clamp(75px, 10vw, 130px);
      line-height: 1.1;
      font-weight: normal;
      max-width: 680px;
      color: var(--ink);
    }

    .hero .amp {
      font-family: "AphroditeSlimPro", serif;
      font-size: 1.1em;
      font-style: normal;
      font-weight: normal;
      color: var(--accent);
    }

    .hero-copy {
      margin-top: 24px;
      max-width: 480px;
      color: var(--muted);
      line-height: 1.7;
      font-size: 16px;
      font-family: "Inter", sans-serif;
      font-weight: 300;
    }

    .nav {
      position: fixed;
      top: 22px;
      left: 50%;
      transform: translateX(-50%);
      z-index: 25;
      background: rgba(250, 246, 240, 0.8);
      backdrop-filter: blur(18px);
      -webkit-backdrop-filter: blur(18px);
      border: 1px solid var(--line);
      border-radius: 999px;
      display: flex;
      gap: 4px;
      padding: 7px;
    }

    .nav a {
      color: var(--ink);
      text-decoration: none;
      font-size: 12px;
      padding: 10px 13px;
      border-radius: 999px;
      font-weight: 500;
      transition: background-color 0.3s ease, color 0.3s ease;
    }

    .nav a:hover {
      background: var(--black);
      color: #FAF6F0;
    }

    .photo-stack {
      height: 590px;
      position: relative;
    }

    .photo {
      position: absolute;
      border-radius: 22px;
      overflow: hidden;
      box-shadow: 0 20px 50px rgba(62, 42, 30, 0.12);
      border: 6px solid var(--paper);
    }

    .photo img {
      width: 100%;
      height: 100%;
      object-fit: cover;
      display: block;
    }

    .p1 { width: 290px; height: 390px; right: 40px; top: 20px; z-index: 2; transform: rotate(2deg); }
    .p2 { width: 210px; height: 280px; left: 10px; top: 80px; z-index: 1; transform: rotate(-3deg); }
    .p3 { width: 230px; height: 220px; right: 0; bottom: 40px; z-index: 3; transform: rotate(1.5deg); }
    
    .paper-card {
      background: var(--paper);
      border: 1px solid var(--line);
      border-radius: var(--radius);
      box-shadow: 0 24px 80px rgba(62, 42, 30, 0.04);
      padding: clamp(28px, 6vw, 72px);
    }

    .save-card {
      text-align: center;
      width: min(620px, 100%);
      min-height: 680px;
      display: flex;
      flex-direction: column;
      justify-content: center;
    }

    .save-title {
      font-family: "Channel", cursive;
      font-weight: normal;
      text-transform: uppercase;
      letter-spacing: 0.08em;
      font-size: clamp(32px, 5.5vw, 52px);
      line-height: 1.1;
      margin: 10px 0 24px;
      color: var(--ink);
    }

    .save-the-word {
      font-family: "AphroditeSlimPro", serif;
      text-transform: lowercase;
      font-style: italic;
      font-weight: normal;
      font-size: 38px;
      display: block;
      color: var(--accent);
      margin: 6px 0;
      letter-spacing: 0;
    }

    .couple-line {
      width: 160px;
      max-width: 100%;
      margin: 20px auto;
      opacity: 0.95;
      display: block;
      mix-blend-mode: multiply;
    }

    .save-datetime {
      margin: 25px 0 35px;
      display: flex;
      flex-direction: column;
      align-items: center;
    }
    .save-day {
      font-family: "Inter", sans-serif;
      font-size: 13px;
      font-weight: 600;
      text-transform: uppercase;
      letter-spacing: 0.3em;
      color: var(--accent);
      margin-bottom: 8px;
    }
    .save-date {
      font-family: "Cormorant Garamond", serif;
      font-size: clamp(38px, 6.5vw, 56px);
      font-weight: 700;
      text-transform: uppercase;
      letter-spacing: 0.08em;
      line-height: 1.1;
      color: var(--ink);
      margin-bottom: 12px;
      border-top: 1px solid var(--line);
      border-bottom: 1px solid var(--line);
      padding: 10px 24px;
      display: inline-block;
    }
    .save-time {
      font-family: "Cormorant Garamond", serif;
      font-size: clamp(20px, 3.5vw, 28px);
      font-weight: 600;
      text-transform: uppercase;
      letter-spacing: 0.15em;
      color: var(--muted);
      margin-top: 8px;
    }

    .script-note {
      font-family: "AphroditeSlimPro", serif;
      font-size: 36px;
      font-style: normal;
      color: var(--coffee);
    }

    .moon {
      background: #1F1611;
      color: white;
      overflow: hidden;
    }

    .moon::before {
      content: "";
      position: absolute;
      inset: 0;
      background:
        radial-gradient(circle at 78% 18%, rgba(255,255,255,.36), transparent 8%),
        linear-gradient(rgba(31,22,17,.15), rgba(31,22,17,.75)),
        url("https://images.unsplash.com/photo-1519741497674-611481863552?auto=format&fit=crop&w=1600&q=80");
      background-size: cover;
      background-position: center;
      filter: grayscale(1);
      opacity: .62;
    }

    .moon-content {
      position: relative;
      z-index: 1;
      width: min(800px, 100%);
      text-align: center;
      display: flex;
      flex-direction: column;
      align-items: center;
      justify-content: center;
    }

    .moon h2 {
      font-family: "Channel", cursive;
      font-size: clamp(32px, 5.5vw, 52px);
      line-height: 1.25;
      max-width: 600px;
      font-weight: normal;
      margin: 10px auto 20px;
    }

    .moon p {
      margin-top: 15px;
      color: rgba(255,255,255,.82);
      max-width: 480px;
      line-height: 1.7;
    }

    .venue-label {
      color: rgba(255, 255, 255, 0.9);
      font-weight: 600;
      letter-spacing: 0.35em;
      text-transform: uppercase;
      font-size: 11px;
      margin-bottom: 12px;
    }

    .date-pill {
      display: inline-flex;
      gap: 18px;
      padding: 12px 24px;
      border-radius: 999px;
      border: 1px solid rgba(255,255,255,.28);
      margin-top: 30px;
      color: white;
      background: rgba(255,255,255,.1);
      backdrop-filter: blur(14px);
      -webkit-backdrop-filter: blur(14px);
      font-size: 13px;
      letter-spacing: .16em;
      text-transform: uppercase;
    }

    /* Location Section styling */
    .location-sec {
      background: var(--bg);
      text-align: center;
      padding: 100px 7vw;
    }
    .location-sec h2,
    .schedule h2,
    .countdown-sec h2,
    .rsvp h2,
    .message-sec h2 {
      font-family: "Channel", cursive;
      font-size: clamp(32px, 5.5vw, 52px);
      color: var(--ink);
      margin-bottom: 24px;
      line-height: 1.25;
      font-weight: normal;
    }
    .location-sec p {
      color: var(--muted);
      line-height: 1.8;
      max-width: 520px;
      margin: 0 auto 30px;
    }
    .map-card {
      position: relative;
      width: min(680px, 100%);
      height: 300px;
      margin: 0 auto 30px;
      background: #E8E2D9;
      border: 1px solid var(--line);
      border-radius: var(--radius);
      box-shadow: 0 15px 40px rgba(62, 42, 30, 0.06);
      overflow: hidden;
      display: flex;
      align-items: center;
      justify-content: center;
      cursor: pointer;
      transition: transform 0.4s ease, box-shadow 0.4s ease;
    }
    .map-card:hover {
      transform: translateY(-5px);
      box-shadow: 0 20px 50px rgba(62, 42, 30, 0.1);
    }
    .map-lines {
      position: absolute;
      inset: 0;
      opacity: 0.15;
      background-image: 
        linear-gradient(90deg, var(--coffee) 1px, transparent 1px),
        linear-gradient(var(--coffee) 1px, transparent 1px);
      background-size: 40px 40px;
    }
    .map-pin-container {
      position: relative;
      z-index: 2;
      display: flex;
      flex-direction: column;
      align-items: center;
      gap: 12px;
    }
    .map-pin {
      width: 48px;
      height: 48px;
      stroke: var(--ink);
      fill: none;
      animation: pulse-pin 2s infinite ease-in-out;
    }
    @keyframes pulse-pin {
      0%, 100% { transform: translateY(0) scale(1); }
      50% { transform: translateY(-8px) scale(1.05); }
    }
    .map-address {
      font-family: "Cormorant Garamond", serif;
      font-size: 26px;
      font-weight: 500;
      color: var(--ink);
    }
    .map-sub-address {
      font-family: "Inter", sans-serif;
      font-size: 11px;
      text-transform: uppercase;
      letter-spacing: 0.15em;
      color: var(--muted);
    }
    .btn-maps {
      display: inline-flex;
      align-items: center;
      gap: 10px;
      text-decoration: none;
      border-radius: 999px;
      padding: 16px 30px;
      background: var(--black);
      color: #FAF6F0;
      font-family: "Inter", sans-serif;
      font-size: 13px;
      letter-spacing: 0.1em;
      text-transform: uppercase;
      border: none;
      cursor: pointer;
      box-shadow: 0 10px 25px rgba(62, 42, 30, 0.15);
      transition: transform 0.3s ease, background-color 0.3s ease;
    }
    .btn-maps:hover {
      transform: translateY(-2px);
      background: var(--coffee);
    }

    .schedule {
      width: min(800px, 100%);
    }



    .time-row {
      display: grid;
      grid-template-columns: 160px 1fr;
      gap: 30px;
      padding: 34px 0;
      border-bottom: 1px solid var(--line);
    }

    .time-row strong {
      font-family: "Cormorant Garamond", serif;
      font-size: 32px;
      color: var(--ink);
    }

    .time-row h3 {
      letter-spacing: .18em;
      text-transform: uppercase;
      font-size: 13px;
      margin-bottom: 8px;
      color: var(--ink);
    }

    .time-row p {
      color: var(--muted);
      line-height: 1.7;
    }

    /* Countdown Section styling */
    .countdown-sec {
      background: var(--bg-gradient);
      text-align: center;
      padding: 100px 7vw;
    }
    .countdown-container {
      display: grid;
      grid-template-columns: repeat(4, 1fr);
      gap: 24px;
      max-width: 950px;
      margin: 0 auto;
      width: 100%;
    }
    .countdown-card {
      background: rgba(255, 255, 255, 0.65);
      backdrop-filter: blur(12px);
      -webkit-backdrop-filter: blur(12px);
      border: 1px solid var(--line);
      border-radius: var(--radius);
      padding: 45px 20px;
      box-shadow: 0 12px 30px rgba(62, 42, 30, 0.05);
      display: flex;
      flex-direction: column;
      align-items: center;
      gap: 10px;
      transition: transform 0.4s cubic-bezier(0.25, 1, 0.5, 1), border-color 0.4s ease, box-shadow 0.4s ease;
    }
    .countdown-card:hover {
      transform: translateY(-8px);
      border-color: var(--accent);
      box-shadow: 0 24px 50px rgba(62, 42, 30, 0.08);
    }
    .countdown-val {
      font-family: "Channel", cursive;
      font-size: clamp(38px, 5vw, 64px);
      color: var(--ink);
      line-height: 1;
      font-weight: normal;
    }
    .countdown-label {
      font-family: "Inter", sans-serif;
      font-size: 11px;
      text-transform: uppercase;
      letter-spacing: 0.25em;
      color: var(--muted);
      font-weight: 500;
    }

    .rsvp-card {
      width: min(720px, 100%);
      text-align: center;
    }

    .rsvp p {
      color: var(--muted);
      line-height: 1.8;
      max-width: 520px;
      margin: 0 auto 28px;
    }

    .form-grid {
      display: grid;
      gap: 14px;
      margin-top: 28px;
    }

    input,
    select,
    textarea {
      width: 100%;
      border: 1px solid var(--line);
      background: #fbfaf6;
      border-radius: 999px;
      padding: 16px 18px;
      font: inherit;
      outline: none;
      color: var(--ink);
      box-shadow: inset 0 2px 4px rgba(62, 42, 30, 0.02);
      transition: border-color 0.3s ease;
    }
    input:focus, select:focus, textarea:focus {
      border-color: var(--accent);
    }

    textarea {
      border-radius: 24px;
      min-height: 110px;
      resize: vertical;
    }

    button.submit {
      border: 0;
      border-radius: 999px;
      padding: 17px 26px;
      background: var(--black);
      color: #FAF6F0;
      font: inherit;
      cursor: pointer;
      margin-top: 4px;
      box-shadow: 0 8px 20px rgba(62, 42, 30, 0.12);
      transition: transform 0.3s ease, background-color 0.3s ease;
    }
    button.submit:hover {
      transform: translateY(-2px);
      background: var(--coffee);
    }

    /* Message Section styling */
    .message-sec {
      background: var(--bg);
      text-align: center;
      padding: 100px 7vw;
    }

    .message-sec p {
      color: var(--muted);
      line-height: 1.8;
      max-width: 520px;
      margin: 0 auto 30px;
    }
    .message-card {
      background: var(--paper);
      border: 1px solid var(--line);
      border-radius: var(--radius);
      box-shadow: 0 24px 80px rgba(62, 42, 30, 0.04);
      padding: clamp(28px, 6vw, 72px);
      width: min(720px, 100%);
      margin: 0 auto;
    }
    .message-form {
      display: grid;
      gap: 16px;
    }
    .message-form input,
    .message-form textarea {
      width: 100%;
      border: 1px solid var(--line);
      background: #FAF9F6;
      padding: 16px 20px;
      font: inherit;
      outline: none;
      color: var(--ink);
      box-shadow: inset 0 2px 4px rgba(62, 42, 30, 0.02);
      transition: border-color 0.3s ease;
    }
    .message-form input:focus,
    .message-form textarea:focus {
      border-color: var(--accent);
    }
    .message-form input {
      border-radius: 999px;
    }
    .message-form textarea {
      border-radius: 20px;
      min-height: 120px;
      resize: vertical;
    }
    .btn-submit-message {
      border: 0;
      border-radius: 999px;
      padding: 17px 32px;
      background: var(--black);
      color: #FAF6F0;
      font-family: "Inter", sans-serif;
      font-size: 13px;
      letter-spacing: 0.1em;
      text-transform: uppercase;
      cursor: pointer;
      box-shadow: 0 8px 20px rgba(62, 42, 30, 0.12);
      transition: transform 0.3s ease, background-color 0.3s ease;
    }
    .btn-submit-message:hover {
      transform: translateY(-2px);
      background: var(--coffee);
    }

    .btn-scroll-rsvp {
      border: 0;
      border-radius: 999px;
      padding: 14px 28px;
      background: var(--black);
      color: #FAF6F0;
      font-family: "Inter", sans-serif;
      font-size: 13px;
      font-weight: 500;
      letter-spacing: 0.1em;
      text-transform: uppercase;
      cursor: pointer;
      margin-top: 18px;
      box-shadow: 0 8px 20px rgba(62, 42, 30, 0.12);
      transition: transform 0.3s ease, background-color 0.3s ease;
    }
    .btn-scroll-rsvp:hover {
      transform: translateY(-2px);
      background: var(--coffee);
    }

    .ending {
      min-height: 45vh;
      background: #231710;
      color: #FAF6F0;
      display: flex;
      flex-direction: column;
      align-items: center;
      justify-content: center;
      text-align: center;
      padding: 60px 24px;
      box-sizing: border-box;
    }

    .ending h2 {
      font-family: "Fontleroy", cursive;
      font-size: clamp(45px, 7vw, 80px);
      line-height: 1.1;
      margin-bottom: 14px;
      font-weight: normal;
      color: #FAF6F0;
    }

    .ending .amp {
      font-family: "AphroditeSlimPro", serif;
      font-size: 1.1em;
      font-style: normal;
      font-weight: normal;
      color: var(--accent);
      margin: 0 4px;
    }

    .ending .details {
      font-family: "AphroditeSlimPro", serif;
      color: rgba(250, 246, 240, 0.8);
      font-size: clamp(16px, 2.2vw, 22px);
      text-transform: none;
      letter-spacing: 0.05em;
    }

    .reveal {
      opacity: 0;
      transform: translateY(28px);
      transition: .9s ease;
    }

    .reveal.visible {
      opacity: 1;
      transform: translateY(0);
    }

    /* Envelope Opening Section Overlay */
    .section-envelope {
      position: fixed;
      inset: 0;
      background: var(--bg);
      display: flex;
      align-items: center;
      justify-content: center;
      z-index: 9999;
      padding: 20px;
      box-sizing: border-box;
      transition: opacity 1s cubic-bezier(0.25, 1, 0.5, 1), transform 1s cubic-bezier(0.25, 1, 0.5, 1);
    }
    .section-envelope.fade-out {
      opacity: 0;
      pointer-events: none;
      transform: translateY(-50px);
    }
    .envelope-wrapper {
      display: flex;
      flex-direction: column;
      align-items: center;
      gap: 30px;
      width: 100%;
      max-width: 540px;
      transition: transform 0.3s ease;
    }
    @media (max-width: 560px) {
      .envelope-wrapper {
        transform: scale(0.55);
        transform-origin: center;
      }
    }
    @media (max-width: 460px) {
      .envelope-wrapper {
        transform: scale(0.45);
        transform-origin: center;
      }
    }
    @media (max-width: 380px) {
      .envelope-wrapper {
        transform: scale(0.38);
        transform-origin: center;
      }
    }
    @media (max-width: 330px) {
      .envelope-wrapper {
        transform: scale(0.32);
        transform-origin: center;
      }
    }
    .envelope {
      position: relative;
      width: 540px;
      height: 350px;
      background: #E8E2D9;
      box-shadow: 0 15px 45px rgba(62, 42, 30, 0.08);
      border-radius: 0 0 12px 12px;
      cursor: pointer;
      transform-style: preserve-3d;
      transition: transform 1s cubic-bezier(0.25, 1, 0.5, 1);
      z-index: 2;
    }
    .envelope:hover {
      transform: translateY(-5px);
    }
    .envelope.opened {
      transform: scale(1.03);
    }
    
    /* Envelope fold creases lines overlay */
    .envelope-flap {
      position: absolute;
      width: 0;
      height: 0;
      border-style: solid;
    }
    .top-flap {
      top: 0;
      left: 0;
      border-width: 175px 270px 0 270px;
      border-color: #DCD4C9 transparent transparent transparent;
      transform-origin: top;
      z-index: 5;
      transition: transform 1.2s cubic-bezier(0.25, 1, 0.5, 1) 0.2s, z-index 0.2s 0.8s;
    }
    .envelope.opened .top-flap {
      transform: rotateX(180deg);
      z-index: 1;
    }
    .bottom-flap {
      bottom: 0;
      left: 0;
      border-width: 0 270px 180px 270px;
      border-color: transparent transparent #EAE4DB transparent;
      z-index: 4;
      border-radius: 0 0 12px 12px;
    }
    .left-flap {
      top: 0;
      left: 0;
      border-width: 175px 0 175px 270px;
      border-color: transparent transparent transparent #E3DCD2;
      z-index: 3;
      border-radius: 0 0 0 12px;
    }
    .right-flap {
      top: 0;
      right: 0;
      border-width: 175px 270px 175px 0;
      border-color: transparent #E3DCD2 transparent transparent;
      z-index: 3;
      border-radius: 0 0 12px 0;
    }
    .envelope-back {
      position: absolute;
      inset: 0;
      background: #E8E2D9;
      border-radius: 0 0 12px 12px;
      z-index: 0;
    }
    
    /* Botanical frame branches layered behind envelope */
    .botanical-branch {
      position: absolute;
      width: 250px;
      height: 320px;
      pointer-events: none;
      opacity: 0;
      animation: fade-in-floral 2.5s ease-out forwards;
      z-index: 1;
    }
    .branch-bottom-left {
      bottom: -40px;
      left: -90px;
    }
    .branch-top-right {
      top: -50px;
      right: -90px;
    }
    
    @keyframes fade-in-floral {
      0% {
        opacity: 0;
        transform: translateY(15px);
      }
      100% {
        opacity: 0.38;
        transform: translateY(0);
      }
    }

    /* Wax Seal styling (raised inner ring + embossed leaf branch) */
    .wax-seal {
      position: absolute;
      top: 175px;
      left: 270px;
      transform: translate(-50%, -50%);
      width: 64px;
      height: 64px;
      z-index: 6;
      border-radius: 50%;
      box-shadow: 0 6px 15px rgba(62, 42, 30, 0.22);
      transition: transform 1.0s cubic-bezier(0.25, 1, 0.5, 1) 0.1s, opacity 0.7s ease 0.3s;
    }
    .seal-svg {
      width: 100%;
      height: 100%;
      display: block;
    }
    .envelope.opened .wax-seal {
      transform: translate(-50%, -180%) rotate(15deg);
      opacity: 0;
      pointer-events: none;
    }

    /* Rising card inside envelope */
    .envelope-card {
      position: absolute;
      bottom: 15px;
      left: 30px;
      width: 480px;
      height: 300px;
      background: var(--paper);
      border: 1px solid var(--line);
      border-radius: 8px;
      box-shadow: 0 5px 15px rgba(0,0,0,0.03);
      z-index: 2;
      transition: transform 1.8s cubic-bezier(0.15, 0.85, 0.2, 1) 0.9s;
      padding: 24px;
      box-sizing: border-box;
      display: flex;
      align-items: center;
      justify-content: center;
    }
    .envelope.opened .envelope-card {
      transform: translateY(-205px);
      z-index: 4;
    }
    .card-inner {
      border: 1px solid var(--line);
      border-radius: 6px;
      width: 100%;
      height: 100%;
      display: flex;
      flex-direction: column;
      align-items: center;
      justify-content: center;
      gap: 12px;
      padding: 16px;
    }
    .card-names {
      font-family: "Fontleroy", cursive;
      font-size: clamp(32px, 5.5vw, 42px);
      color: var(--ink);
      line-height: 1.2;
      white-space: nowrap;
      text-align: center;
    }
    .card-date {
      font-family: "AphroditeSlimPro", serif;
      font-size: 22px;
      color: var(--muted);
      line-height: 1.4;
      white-space: nowrap;
      text-align: center;
    }
    .click-to-open {
      font-family: "Inter", sans-serif;
      font-size: 11px;
      text-transform: uppercase;
      letter-spacing: 0.3em;
      color: var(--coffee);
      font-weight: 500;
      animation: pulse-open 1.8s infinite ease-in-out;
      cursor: pointer;
    }
    @keyframes pulse-open {
      0%, 100% { opacity: 0.6; transform: translateY(0); }
      50% { opacity: 1; transform: translateY(-4px); }
    }

    /* Floral Reveal Section with split lavender stem */
    .section-invite {
      position: fixed;
      inset: 0;
      background: var(--bg);
      display: flex;
      flex-direction: column;
      align-items: center;
      justify-content: center;
      padding: 40px 24px;
      z-index: 400;
      box-sizing: border-box;
      opacity: 0;
      pointer-events: none;
      transition: opacity 1s cubic-bezier(0.25, 1, 0.5, 1), transform 1s cubic-bezier(0.25, 1, 0.5, 1);
    }
    .section-invite.visible {
      opacity: 1;
      pointer-events: auto;
    }
    .section-invite.fade-out {
      opacity: 0;
      pointer-events: none;
      transform: translateY(-50px);
    }
    .invite-content {
      display: flex;
      flex-direction: column;
      align-items: center;
      text-align: center;
      transform: scale(0.95);
      opacity: 0;
      transition: transform 1.5s cubic-bezier(0.25, 1, 0.5, 1), opacity 1.5s ease;
    }
    .section-invite.visible .invite-content {
      transform: scale(1) translateY(0);
      opacity: 1;
    }
    .lavender-spike-top {
      width: 80px;
      height: 100px;
      display: block;
    }
    .lavender-stem-bottom {
      width: 80px;
      height: 110px;
      display: block;
    }
    .draw-line {
      fill: none;
      stroke: var(--coffee);
      stroke-width: 1.2;
      stroke-linecap: round;
      stroke-linejoin: round;
      stroke-dasharray: 200;
      stroke-dashoffset: 200;
    }
    .section-invite.visible .draw-line {
      animation: draw-path 3s cubic-bezier(0.4, 0, 0.2, 1) forwards;
    }
    .section-invite.visible .stem-top      { animation-delay: 0.1s; }
    .section-invite.visible .bud-l1       { animation-delay: 0.3s; }
    .section-invite.visible .bud-r1       { animation-delay: 0.4s; }
    .section-invite.visible .bud-l2       { animation-delay: 0.6s; }
    .section-invite.visible .bud-r2       { animation-delay: 0.7s; }
    .section-invite.visible .bud-l3       { animation-delay: 0.9s; }
    .section-invite.visible .bud-r3       { animation-delay: 1.0s; }
    .section-invite.visible .bud-l4       { animation-delay: 1.2s; }
    .section-invite.visible .bud-r4       { animation-delay: 1.3s; }
    .section-invite.visible .bud-l5       { animation-delay: 1.5s; }
    .section-invite.visible .bud-r5       { animation-delay: 1.6s; }
    .section-invite.visible .bud-tip      { animation-delay: 1.8s; }
    
    .section-invite.visible .stem-bottom   { animation-delay: 1.0s; }
    .section-invite.visible .leaf-l        { animation-delay: 1.3s; }
    .section-invite.visible .leaf-r        { animation-delay: 1.6s; }

    @keyframes draw-path {
      to {
        stroke-dashoffset: 0;
      }
    }
    .reveal-title {
      font-family: "AphroditeSlimPro", serif;
      font-size: clamp(36px, 8vw, 56px);
      font-style: italic;
      color: var(--ink);
      font-weight: normal;
      margin: 15px 0;
      opacity: 0;
      transform: scale(0.95);
      transition: opacity 1.2s ease, transform 1.2s cubic-bezier(0.25, 1, 0.5, 1);
      line-height: 1;
    }
    .section-invite.visible .reveal-title {
      opacity: 1;
      transform: scale(1);
      transition-delay: 2.2s; /* reveals in the gap as buds complete drawing */
    }
    .scroll-indicator {
      position: absolute;
      bottom: 30px;
      display: flex;
      flex-direction: column;
      align-items: center;
      gap: 8px;
      font-family: "Inter", sans-serif;
      font-size: 10px;
      text-transform: uppercase;
      letter-spacing: 0.2em;
      color: var(--muted);
      opacity: 0;
      transition: opacity 1s ease 3.5s;
    }
    .section-invite.visible .scroll-indicator {
      opacity: 0.7;
    }
    .scroll-indicator svg {
      width: 16px;
      height: 16px;
      stroke: var(--coffee);
      animation: bounce-arrow 1.6s infinite ease-in-out;
    }
    @keyframes bounce-arrow {
      0%, 100% { transform: translateY(0); }
      50% { transform: translateY(5px); }
    }

    /* Main website wrapper state */
    .main-wrapper {
      opacity: 0;
      pointer-events: none;
      transition: opacity 1.2s ease;
      overflow-x: hidden;
      width: 100%;
    }
    .main-wrapper.visible {
      opacity: 1;
      pointer-events: auto;
    }

    @media (max-width: 850px) {
      .nav {
        display: none;
      }

      .section {
        padding: 70px 24px;
      }

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

      .photo-stack {
        height: 380px;
        width: 100%;
        max-width: 380px;
        position: relative;
        margin: 40px auto 0;
      }

      .photo {
        position: absolute !important;
        border-radius: 22px !important;
        overflow: hidden !important;
        box-shadow: 0 20px 50px rgba(62, 42, 30, 0.12) !important;
        border: 6px solid var(--paper) !important;
      }

      .photo img {
        width: 100%;
        height: 100%;
        object-fit: cover;
      }

      .p1 { 
        width: 165px !important; 
        height: 215px !important; 
        left: 50% !important;
        right: auto !important;
        top: -35px !important;
        bottom: auto !important;
        transform: translate(-50%, 0) rotate(2deg) !important;
        z-index: 2 !important; 
      }
      .p2 { 
        width: 130px !important; 
        height: 170px !important; 
        left: 5px !important; 
        right: auto !important;
        top: 75px !important;
        bottom: auto !important;
        transform: rotate(-18deg) !important;
        z-index: 1 !important; 
      }
      .p3 { 
        width: 140px !important; 
        height: 170px !important; 
        left: auto !important;
        right: -20px !important; 
        top: 105px !important; 
        bottom: auto !important;
        transform: rotate(15deg) !important;
        z-index: 3 !important; 
      }
      
      .save-card {
        min-height: 590px;
      }

      .time-row {
        grid-template-columns: 1fr;
        gap: 8px;
      }

      .countdown-container {
        grid-template-columns: repeat(2, 1fr);
        gap: 16px;
      }

      .countdown-card {
        padding: 30px 15px;
      }

      .ending {
        min-height: 35vh;
        padding: 45px 20px;
      }
    }
