  :root {
    --sage: #8a9e7b;
    --teal: #2d7d6e;
    --teal-light: #3a9e8a;
    --teal-pale: #d4ece8;
    --sage-light: #b5c9a8;
    --sage-dark: #5e7050;
    --gold: #c8a96e;
    --gold-light: #e8d5a8;
    --gold-pale: #f5edd8;
    --cream: #faf6ee;
    --beige: #f0e8d5;
    --beige-dark: #d9cbb0;
    --brown: #7a6548;
    --brown-light: #a08860;
    --text-dark: #3a2e1e;
    --text-mid: #6b5840;
    --text-light: #9c8870;
    --white: #fffdf8;
  }
  * { margin: 0; padding: 0; box-sizing: border-box; }
  html { scroll-behavior: smooth; }
  body {
    font-family: 'Lato', sans-serif;
    background-color: var(--cream);
    color: var(--text-dark);
    font-weight: 300;
    overflow-x: hidden;
  }

  /* ===== MOROCCAN PATTERN SVG BACKGROUNDS ===== */

  .tile-bg {
    background-image: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyMDAgMjAwIiB3aWR0aD0iMjAwIiBoZWlnaHQ9IjIwMCI+CiAgPGRlZnM+CiAgICA8Y2xpcFBhdGggaWQ9ImMxIj48cmVjdCB4PSIwIiB5PSIwIiB3aWR0aD0iMTAwIiBoZWlnaHQ9IjEwMCIvPjwvY2xpcFBhdGg+CiAgICA8Y2xpcFBhdGggaWQ9ImMyIj48cmVjdCB4PSIxMDAiIHk9IjAiIHdpZHRoPSIxMDAiIGhlaWdodD0iMTAwIi8+PC9jbGlwUGF0aD4KICAgIDxjbGlwUGF0aCBpZD0iYzMiPjxyZWN0IHg9IjAiIHk9IjEwMCIgd2lkdGg9IjEwMCIgaGVpZ2h0PSIxMDAiLz48L2NsaXBQYXRoPgogICAgPGNsaXBQYXRoIGlkPSJjNCI+PHJlY3QgeD0iMTAwIiB5PSIxMDAiIHdpZHRoPSIxMDAiIGhlaWdodD0iMTAwIi8+PC9jbGlwUGF0aD4KICA8L2RlZnM+CiAgPCEtLSBUSUxFIDE6IDgtcG9pbnRlZCBzdGFyLCBkZWVwIHRlYWwgLS0+CiAgPGcgY2xpcC1wYXRoPSJ1cmwoI2MxKSI+CiAgICA8cmVjdCB4PSIwIiB5PSIwIiB3aWR0aD0iMTAwIiBoZWlnaHQ9IjEwMCIgZmlsbD0iIzFhNTI0OCIvPgogICAgPHJlY3QgeD0iMSIgeT0iMSIgd2lkdGg9Ijk4IiBoZWlnaHQ9Ijk4IiBmaWxsPSJub25lIiBzdHJva2U9IiMwZjM1MzAiIHN0cm9rZS13aWR0aD0iMS41Ii8+CiAgICA8cG9seWdvbiBwb2ludHM9IjMwLDEwIDcwLDEwIDkwLDMwIDkwLDcwIDcwLDkwIDMwLDkwIDEwLDcwIDEwLDMwIiBmaWxsPSJub25lIiBzdHJva2U9IndoaXRlIiBzdHJva2Utd2lkdGg9IjIiLz4KICAgIDxwb2x5Z29uIHBvaW50cz0iNTAsOCA5Miw1MCA1MCw5MiA4LDUwIiBmaWxsPSJub25lIiBzdHJva2U9IndoaXRlIiBzdHJva2Utd2lkdGg9IjIiLz4KICAgIDxwYXRoIGQ9Ik01MCAxMCBDNDQgMTggNDIgMjUgNTAgMzAgQzU4IDI1IDU2IDE4IDUwIDEwWiIgZmlsbD0iI2M4YTk2ZSIvPgogICAgPHBhdGggZD0iTTUwIDkwIEM0NCA4MiA0MiA3NSA1MCA3MCBDNTggNzUgNTYgODIgNTAgOTBaIiBmaWxsPSIjYzhhOTZlIi8+CiAgICA8cGF0aCBkPSJNMTAgNTAgQzE4IDQ0IDI1IDQyIDMwIDUwIEMyNSA1OCAxOCA1NiAxMCA1MFoiIGZpbGw9IiNjOGE5NmUiLz4KICAgIDxwYXRoIGQ9Ik05MCA1MCBDODIgNDQgNzUgNDIgNzAgNTAgQzc1IDU4IDgyIDU2IDkwIDUwWiIgZmlsbD0iI2M4YTk2ZSIvPgogICAgPHBhdGggZD0iTTg1IDE1IEM3OSAyNCA3NCAyNyA3MiAzNSBDODAgMzMgODYgMjcgODUgMTVaIiBmaWxsPSIjYjA4MDQwIi8+CiAgICA8cGF0aCBkPSJNODUgODUgQzc5IDc2IDc0IDczIDcyIDY1IEM4MCA2NyA4NiA3MyA4NSA4NVoiIGZpbGw9IiNiMDgwNDAiLz4KICAgIDxwYXRoIGQ9Ik0xNSA4NSBDMjEgNzYgMjYgNzMgMjggNjUgQzIwIDY3IDE0IDczIDE1IDg1WiIgZmlsbD0iI2IwODA0MCIvPgogICAgPHBhdGggZD0iTTE1IDE1IEMyMSAyNCAyNiAyNyAyOCAzNSBDMjAgMzMgMTQgMjcgMTUgMTVaIiBmaWxsPSIjYjA4MDQwIi8+CiAgICA8cG9seWdvbiBwb2ludHM9IjUwLDQyIDUzLDQ3IDU5LDQ3IDU0LDUxIDU2LDU3IDUwLDUzIDQ0LDU3IDQ2LDUxIDQxLDQ3IDQ3LDQ3IiBmaWxsPSIjM2E5ZThhIiBzdHJva2U9IiMwZjM1MzAiIHN0cm9rZS13aWR0aD0iMC44Ii8+CiAgICA8Y2lyY2xlIGN4PSI1MCIgY3k9IjUwIiByPSI1IiBmaWxsPSIjZDRlY2U4IiBzdHJva2U9IiMwZjM1MzAiIHN0cm9rZS13aWR0aD0iMC44Ii8+CiAgICA8Y2lyY2xlIGN4PSI1MCIgY3k9IjUwIiByPSIyLjUiIGZpbGw9IndoaXRlIi8+CiAgPC9nPgogIDwhLS0gVElMRSAyOiBEaWFtb25kIGxhdHRpY2UsIHNhZ2UgZ3JlZW4gLS0+CiAgPGcgY2xpcC1wYXRoPSJ1cmwoI2MyKSI+CiAgICA8cmVjdCB4PSIxMDAiIHk9IjAiIHdpZHRoPSIxMDAiIGhlaWdodD0iMTAwIiBmaWxsPSIjNWU3MDUwIi8+CiAgICA8cmVjdCB4PSIxMDEiIHk9IjEiIHdpZHRoPSI5OCIgaGVpZ2h0PSI5OCIgZmlsbD0ibm9uZSIgc3Ryb2tlPSIjM2Q0ZTMwIiBzdHJva2Utd2lkdGg9IjEuNSIvPgogICAgPHBvbHlnb24gcG9pbnRzPSIxNTAsOCAxOTIsNTAgMTUwLDkyIDEwOCw1MCIgZmlsbD0ibm9uZSIgc3Ryb2tlPSIjZThkNWE4IiBzdHJva2Utd2lkdGg9IjIiLz4KICAgIDxwb2x5Z29uIHBvaW50cz0iMTUwLDIyIDE3OCw1MCAxNTAsNzggMTIyLDUwIiBmaWxsPSJub25lIiBzdHJva2U9IiNjOGE5NmUiIHN0cm9rZS13aWR0aD0iMS41Ii8+CiAgICA8cG9seWdvbiBwb2ludHM9IjE1MCwzNiAxNjQsNTAgMTUwLDY0IDEzNiw1MCIgZmlsbD0ibm9uZSIgc3Ryb2tlPSIjZThkNWE4IiBzdHJva2Utd2lkdGg9IjEiLz4KICAgIDxsaW5lIHgxPSIxNTAiIHkxPSI4IiB4Mj0iMTUwIiB5Mj0iOTIiIHN0cm9rZT0iI2U4ZDVhOCIgc3Ryb2tlLXdpZHRoPSIwLjgiIG9wYWNpdHk9IjAuNSIvPgogICAgPGxpbmUgeDE9IjEwOCIgeTE9IjUwIiB4Mj0iMTkyIiB5Mj0iNTAiIHN0cm9rZT0iI2U4ZDVhOCIgc3Ryb2tlLXdpZHRoPSIwLjgiIG9wYWNpdHk9IjAuNSIvPgogICAgPHBhdGggZD0iTTEwOCA4IEwxMjAgOCBNMTA4IDggTDEwOCAyMCIgc3Ryb2tlPSIjOGE5ZTdiIiBzdHJva2Utd2lkdGg9IjEuNSIgZmlsbD0ibm9uZSIvPgogICAgPHBhdGggZD0iTTE5MiA4IEwxODAgOCBNMTkyIDggTDE5MiAyMCIgc3Ryb2tlPSIjOGE5ZTdiIiBzdHJva2Utd2lkdGg9IjEuNSIgZmlsbD0ibm9uZSIvPgogICAgPHBhdGggZD0iTTEwOCA5MiBMMTIwIDkyIE0xMDggOTIgTDEwOCA4MCIgc3Ryb2tlPSIjOGE5ZTdiIiBzdHJva2Utd2lkdGg9IjEuNSIgZmlsbD0ibm9uZSIvPgogICAgPHBhdGggZD0iTTE5MiA5MiBMMTgwIDkyIE0xOTIgOTIgTDE5MiA4MCIgc3Ryb2tlPSIjOGE5ZTdiIiBzdHJva2Utd2lkdGg9IjEuNSIgZmlsbD0ibm9uZSIvPgogICAgPGNpcmNsZSBjeD0iMTUwIiBjeT0iNTAiIHI9IjYiIGZpbGw9IiNjOGE5NmUiIHN0cm9rZT0iIzNkNGUzMCIgc3Ryb2tlLXdpZHRoPSIxIi8+CiAgICA8Y2lyY2xlIGN4PSIxNTAiIGN5PSI1MCIgcj0iMyIgZmlsbD0id2hpdGUiLz4KICA8L2c+CiAgPCEtLSBUSUxFIDM6IFF1YXRyZWZvaWwsIGNyZWFtL2JlaWdlIC0tPgogIDxnIGNsaXAtcGF0aD0idXJsKCNjMykiPgogICAgPHJlY3QgeD0iMCIgeT0iMTAwIiB3aWR0aD0iMTAwIiBoZWlnaHQ9IjEwMCIgZmlsbD0iI2YwZThkNSIvPgogICAgPHJlY3QgeD0iMSIgeT0iMTAxIiB3aWR0aD0iOTgiIGhlaWdodD0iOTgiIGZpbGw9Im5vbmUiIHN0cm9rZT0iI2Q5Y2JiMCIgc3Ryb2tlLXdpZHRoPSIxLjUiLz4KICAgIDxjaXJjbGUgY3g9IjUwIiBjeT0iMTI1IiByPSIyNCIgZmlsbD0ibm9uZSIgc3Ryb2tlPSIjMmQ3ZDZlIiBzdHJva2Utd2lkdGg9IjEuOCIvPgogICAgPGNpcmNsZSBjeD0iNzUiIGN5PSIxNTAiIHI9IjI0IiBmaWxsPSJub25lIiBzdHJva2U9IiMyZDdkNmUiIHN0cm9rZS13aWR0aD0iMS44Ii8+CiAgICA8Y2lyY2xlIGN4PSI1MCIgY3k9IjE3NSIgcj0iMjQiIGZpbGw9Im5vbmUiIHN0cm9rZT0iIzJkN2Q2ZSIgc3Ryb2tlLXdpZHRoPSIxLjgiLz4KICAgIDxjaXJjbGUgY3g9IjI1IiBjeT0iMTUwIiByPSIyNCIgZmlsbD0ibm9uZSIgc3Ryb2tlPSIjMmQ3ZDZlIiBzdHJva2Utd2lkdGg9IjEuOCIvPgogICAgPHBhdGggZD0iTTUwIDEyNiBBMjQgMjQgMCAwIDEgNzQgMTUwIEEyNCAyNCAwIDAgMSA1MCAxNzQgQTI0IDI0IDAgMCAxIDI2IDE1MCBBMjQgMjQgMCAwIDEgNTAgMTI2WiIgZmlsbD0iIzNhOWU4YSIgb3BhY2l0eT0iMC4xMiIvPgogICAgPGxpbmUgeDE9IjI2IiB5MT0iMTI2IiB4Mj0iNzQiIHkyPSIxNzQiIHN0cm9rZT0iI2M4YTk2ZSIgc3Ryb2tlLXdpZHRoPSIwLjgiIG9wYWNpdHk9IjAuNiIvPgogICAgPGxpbmUgeDE9Ijc0IiB5MT0iMTI2IiB4Mj0iMjYiIHkyPSIxNzQiIHN0cm9rZT0iI2M4YTk2ZSIgc3Ryb2tlLXdpZHRoPSIwLjgiIG9wYWNpdHk9IjAuNiIvPgogICAgPGNpcmNsZSBjeD0iNTAiIGN5PSIxNTAiIHI9IjciIGZpbGw9IiNjOGE5NmUiIHN0cm9rZT0iI2IwODA0MCIgc3Ryb2tlLXdpZHRoPSIxIi8+CiAgICA8Y2lyY2xlIGN4PSI1MCIgY3k9IjE1MCIgcj0iMy41IiBmaWxsPSJ3aGl0ZSIvPgogICAgPGNpcmNsZSBjeD0iOCIgY3k9IjEwOCIgcj0iNCIgZmlsbD0ibm9uZSIgc3Ryb2tlPSIjMmQ3ZDZlIiBzdHJva2Utd2lkdGg9IjEuMiIvPgogICAgPGNpcmNsZSBjeD0iOTIiIGN5PSIxMDgiIHI9IjQiIGZpbGw9Im5vbmUiIHN0cm9rZT0iIzJkN2Q2ZSIgc3Ryb2tlLXdpZHRoPSIxLjIiLz4KICAgIDxjaXJjbGUgY3g9IjgiIGN5PSIxOTIiIHI9IjQiIGZpbGw9Im5vbmUiIHN0cm9rZT0iIzJkN2Q2ZSIgc3Ryb2tlLXdpZHRoPSIxLjIiLz4KICAgIDxjaXJjbGUgY3g9IjkyIiBjeT0iMTkyIiByPSI0IiBmaWxsPSJub25lIiBzdHJva2U9IiMyZDdkNmUiIHN0cm9rZS13aWR0aD0iMS4yIi8+CiAgPC9nPgogIDwhLS0gVElMRSA0OiAxMi1wb2ludGVkIGNvbXBhc3MsIG1pZCB0ZWFsIC0tPgogIDxnIGNsaXAtcGF0aD0idXJsKCNjNCkiPgogICAgPHJlY3QgeD0iMTAwIiB5PSIxMDAiIHdpZHRoPSIxMDAiIGhlaWdodD0iMTAwIiBmaWxsPSIjMmQ3ZDZlIi8+CiAgICA8cmVjdCB4PSIxMDEiIHk9IjEwMSIgd2lkdGg9Ijk4IiBoZWlnaHQ9Ijk4IiBmaWxsPSJub25lIiBzdHJva2U9IiMxYTUyNDgiIHN0cm9rZS13aWR0aD0iMS41Ii8+CiAgICA8cG9seWdvbiBwb2ludHM9IjE1MCwxMTIgMTU1LDEzMCAxNzAsMTIyIDE2MywxMzggMTgwLDE0MCAxNjYsMTUyIDE3NCwxNjggMTU3LDE2NSAxNTUsMTgyIDE0MywxNzAgMTMwLDE4MiAxMjgsMTY1IDExMSwxNjggMTE5LDE1MiAxMDUsMTQwIDEyMiwxMzggMTE1LDEyMiAxMzAsMTMwIDEzNSwxMTIgMTQzLDEyNyIgZmlsbD0ibm9uZSIgc3Ryb2tlPSJ3aGl0ZSIgc3Ryb2tlLXdpZHRoPSIxLjUiLz4KICAgIDxwb2x5Z29uIHBvaW50cz0iMTUwLDEyNSAxNTcsMTM4IDE3MiwxNDAgMTYyLDE0OSAxNjYsMTYzIDE1MCwxNTUgMTM0LDE2MyAxMzgsMTQ5IDEyOCwxNDAgMTQzLDEzOCIgZmlsbD0ibm9uZSIgc3Ryb2tlPSIjYzhhOTZlIiBzdHJva2Utd2lkdGg9IjEuMiIvPgogICAgPHBhdGggZD0iTTE1MCAxMTIgQzE0NiAxMjIgMTQ0IDEyOCAxNTAgMTMyIEMxNTYgMTI4IDE1NCAxMjIgMTUwIDExMloiIGZpbGw9IiNjOGE5NmUiIG9wYWNpdHk9IjAuODUiLz4KICAgIDxwYXRoIGQ9Ik0xNTAgMTg4IEMxNDYgMTc4IDE0NCAxNzIgMTUwIDE2OCBDMTU2IDE3MiAxNTQgMTc4IDE1MCAxODhaIiBmaWxsPSIjYzhhOTZlIiBvcGFjaXR5PSIwLjg1Ii8+CiAgICA8cGF0aCBkPSJNMTEyIDE1MCBDMTIyIDE0NiAxMjggMTQ0IDEzMiAxNTAgQzEyOCAxNTYgMTIyIDE1NCAxMTIgMTUwWiIgZmlsbD0iI2M4YTk2ZSIgb3BhY2l0eT0iMC44NSIvPgogICAgPHBhdGggZD0iTTE4OCAxNTAgQzE3OCAxNDYgMTcyIDE0NCAxNjggMTUwIEMxNzIgMTU2IDE3OCAxNTQgMTg4IDE1MFoiIGZpbGw9IiNjOGE5NmUiIG9wYWNpdHk9IjAuODUiLz4KICAgIDxjaXJjbGUgY3g9IjE1MCIgY3k9IjE1MCIgcj0iOCIgZmlsbD0iIzFhNTI0OCIgc3Ryb2tlPSIjM2E5ZThhIiBzdHJva2Utd2lkdGg9IjEuNSIvPgogICAgPGNpcmNsZSBjeD0iMTUwIiBjeT0iMTUwIiByPSI0IiBmaWxsPSIjM2E5ZThhIi8+CiAgICA8Y2lyY2xlIGN4PSIxNTAiIGN5PSIxNTAiIHI9IjIiIGZpbGw9IndoaXRlIi8+CiAgPC9nPgo8L3N2Zz4=");
    background-repeat: repeat;
    background-size: 200px 200px;
    background-attachment: fixed;
  }
  .tile-border-strip {
    width: 100%; height: 16px;
    background: repeating-linear-gradient(90deg, #2d7d6e 0px, #2d7d6e 14px, #3a9e8a 14px, #3a9e8a 28px, #567a3f 28px, #567a3f 42px, #4a8c70 42px, #4a8c70 56px);
    opacity: 0.65;
  }
  .tile-border-strip.gold {
    background: repeating-linear-gradient(90deg, #c8a96e 0px, #c8a96e 14px, #d4b896 14px, #d4b896 28px, #b08040 28px, #b08040 42px, #c8a96e 42px, #c8a96e 56px);
    opacity: 0.5;
  }

  /* ===== TILE SEPARATORS ===== */
  .tile-sep {
    width: 100%;
    height: 55px;
    background-repeat: repeat-x;
    background-size: auto 100%;
    background-position: center;
  }
  .tile-sep--blue   { background-image: url("tiles_blue.png"); }
  .tile-sep--blue1  { background-image: url("tiles_blue1.png"); }
  .tile-sep--green  { background-image: url("tiles_green.png"); }
  .tile-sep--green1 { background-image: url("tiles_green1.png"); }

  /* ===== HERO SECTION ===== */
  #hero {
    min-height: 100vh;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    text-align: center;
    position: relative;
    background: linear-gradient(160deg, var(--white) 0%, var(--beige) 60%, var(--gold-pale) 100%);
    padding: 96px 20px 60px;
    overflow: hidden;
  }
  #hero::before {
    content: '';
    position: absolute;
    inset: 0;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cpath d='M80 0 L100 20 L160 20 L120 50 L140 80 L110 70 L80 100 L50 70 L20 80 L40 50 L0 20 L60 20 Z' fill='none' stroke='%23c8a96e' stroke-width='0.7' opacity='0.12'/%3E%3Cpath d='M80 40 L95 55 L80 70 L65 55 Z' fill='none' stroke='%238a9e7b' stroke-width='0.7' opacity='0.12'/%3E%3C/svg%3E");
    background-repeat: repeat;
    pointer-events: none;
  }
  /* Moroccan arch frame */
  .arch-frame {
    position: absolute;
    top: 0; left: 50%;
    transform: translateX(-50%);
    width: 340px;
    height: 420px;
    pointer-events: none;
    opacity: 0.18;
  }

  .hero-content { position: relative; z-index: 2; max-width: 700px; }

  .hero-ornament {
    color: var(--gold);
    font-size: 1.8rem;
    letter-spacing: 0.5rem;
    margin-bottom: 1.5rem;
    animation: fadeDown 1.2s ease both;
  }
  .hero-names {
    font-family: 'Playfair Display', serif;
    font-size: clamp(3.2rem, 9vw, 6rem);
    font-weight: 400;
    color: var(--text-dark);
    line-height: 1;
    letter-spacing: 0.02em;
    animation: fadeDown 1s 0.2s ease both;
  }
  .hero-names .ampersand {
    font-style: italic;
    color: var(--gold);
    font-size: 0.85em;
    display: inline-block;
    margin: 0 0.15em;
  }
  .hero-tagline {
    font-family: 'Cormorant Garamond', serif;
    font-size: 1.2rem;
    color: var(--text-mid);
    letter-spacing: 0.35em;
    text-transform: uppercase;
    margin-top: 1.2rem;
    animation: fadeDown 1s 0.4s ease both;
  }
  .hero-date {
    font-family: 'Playfair Display', serif;
    font-size: 1.5rem;
    color: var(--brown-light);
    margin-top: 2rem;
    letter-spacing: 0.1em;
    animation: fadeDown 1s 0.6s ease both;
  }

  .carousel-wrapper {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 20px;
    margin-top: 2.5rem;
    animation: fadeUp 1s 0.8s ease both;
    position: relative;
  }

  .hero-carousel {
    width: 100%;
    max-width: 600px;
    display: flex;
    align-items: center;
    gap: 30px;
    overflow-x: auto;
    scroll-snap-type: x mandatory;
    scrollbar-width: none; /* Firefox */
    padding: 2rem 0 3rem;
    scroll-behavior: smooth;
  }
  .hero-carousel::-webkit-scrollbar {
    display: none; /* Safari/Chrome */
  }

  .carousel-nav {
    flex-shrink: 0;
    width: 50px;
    height: 50px;
    border: 2px solid var(--gold);
    background: transparent;
    color: var(--gold);
    font-size: 1.5rem;
    cursor: pointer;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: all 0.3s ease;
    font-weight: 300;
  }
  .carousel-nav:hover {
    background: var(--gold-pale);
    transform: scale(1.1);
  }
  .carousel-nav:active {
    transform: scale(0.95);
  }

  .egg-item {
    flex-shrink: 0;
    width: 240px;
    height: 300px;
    border-radius: 50% 50% 50% 50% / 60% 60% 40% 40%;
    background: var(--beige-dark);
    border: 3px solid var(--gold-light);
    overflow: hidden;
    scroll-snap-align: center;
    scroll-snap-stop: always;
    position: relative;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: transform 0.4s cubic-bezier(0.25, 0.46, 0.45, 0.94), opacity 0.4s ease, border-color 0.4s ease;
    transform: scale(0.85); /* non-active are smaller */
    opacity: 0.6;
    cursor: pointer;
  }
  .egg-item img {
    width: 100%;
    height: 100%;
    object-fit: cover;
  }
  .egg-item::before {
    content: '';
    position: absolute;
    inset: -3px;
    border-radius: inherit;
    border: 6px solid transparent;
    background: linear-gradient(135deg, var(--gold), var(--sage-light), var(--gold)) border-box;
    -webkit-mask: linear-gradient(#fff 0 0) padding-box, linear-gradient(#fff 0 0);
    -webkit-mask-composite: destination-out;
    mask-composite: exclude;
    transition: opacity 0.4s;
    opacity: 0;
  }
  .egg-item.active {
    transform: scale(1.15); /* Center item is bigger */
    opacity: 1;
    border-color: var(--gold);
    z-index: 2;
    box-shadow: 0 15px 35px rgba(200, 169, 110, 0.2);
  }
  .egg-item.active::before {
    opacity: 1;
  }
  
  .photo-placeholder {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 8px;
    color: var(--text-light);
    font-size: 0.75rem;
    letter-spacing: 0.1em;
    text-align: center;
    padding: 20px;
  }
  .photo-placeholder svg { opacity: 0.5; }
  .hero-bottom-text {
    font-family: 'Cormorant Garamond', serif;
    font-style: italic;
    font-size: 1.1rem;
    color: var(--text-light);
    margin-top: 2rem;
    animation: fadeUp 1s 1s ease both;
  }
  @media (max-width: 768px) {
    .hero-bottom-text {
      margin-bottom: 100px;
    }
  }
  .scroll-hint {
    position: absolute;
    bottom: 30px;
    left: 50%;
    transform: translateX(-50%);
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 6px;
    color: var(--text-light);
    font-size: 0.7rem;
    letter-spacing: 0.2em;
    text-transform: uppercase;
    animation: fadeIn 2s 1.5s ease both;
  }
  .scroll-arrow {
    width: 1px;
    height: 40px;
    background: linear-gradient(to bottom, transparent, var(--gold));
    animation: scrollPulse 2s ease infinite;
  }

  /* ===== SECTION COMMON ===== */
  section {
    padding: 80px 20px;
    position: relative;
  }
  .section-title {
    font-family: 'Playfair Display', serif;
    font-size: 2.2rem;
    font-weight: 400;
    color: var(--text-dark);
    text-align: center;
    margin-bottom: 0.5rem;
  }
  .section-title i { font-style: italic; color: var(--gold); }
  .section-subtitle {
    text-align: center;
    font-family: 'Cormorant Garamond', serif;
    font-size: 0.95rem;
    letter-spacing: 0.3em;
    text-transform: uppercase;
    color: var(--text-light);
    margin-bottom: 2.5rem;
  }
  .gold-line {
    width: 80px;
    height: 1px;
    background: var(--gold);
    margin: 0 auto 0.8rem;
  }
  .container { max-width: 900px; margin: 0 auto; }
  .container-lg { max-width: 1100px; margin: 0 auto; }

  /* ===== SCHEDULE / EVENTS ===== */
  #schedule {
    /* background: url("flowers.png") center/cover no-repeat fixed; */
    position: relative;
  }
  #schedule::before {
    content: '';
    position: absolute;
    inset: 0;
    background: rgba(255,255,255,0.7);
    pointer-events: none;
  }
  #schedule .container { position: relative; z-index: 1; }
  .schedule-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 32px;
    max-width: 820px;
    margin: 0 auto;
  }
  @media(max-width:600px) { .schedule-grid { grid-template-columns: 1fr; } }

  .event-card {
    background: var(--cream);
    border: 1px solid var(--gold-light);
    border-radius: 4px;
    padding: 36px 28px 28px;
    text-align: center;
    position: relative;
    overflow: hidden;
    transition: transform 0.4s ease, box-shadow 0.4s ease;
  }
  .event-card::before {
    content: '';
    position: absolute;
    top: 0; left: 0; right: 0;
    height: 20px;
    background-image: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAxMDAgMTAwIiB3aWR0aD0iMTAwIiBoZWlnaHQ9IjEwMCI+IDwhLS0gQmFja2dyb3VuZCAtLT4gPHJlY3Qgd2lkdGg9IjEwMCIgaGVpZ2h0PSIxMDAiIGZpbGw9IiMwMDYwNzUiLz4gPCEtLSBPdXRlciBib3JkZXIgLS0+IDxyZWN0IHg9IjEiIHk9IjEiIHdpZHRoPSI5OCIgaGVpZ2h0PSI5OCIgZmlsbD0ibm9uZSIgc3Ryb2tlPSIjMDA0NDU1IiBzdHJva2Utd2lkdGg9IjIiLz4gPCEtLSBNYWluIDgtcG9pbnRlZCBzdGFyIGZyYW1lIGluIHdoaXRlIC0tPiA8IS0tIFRoZSBzdGFyIGlzIG1hZGUgb2YgdHdvIG92ZXJsYXBwaW5nIHNxdWFyZXMgcm90YXRlZCA0NSBkZWcgLS0+IDwhLS0gU3F1YXJlIDE6IGF4aXMtYWxpZ25lZCAtLT4gPHBvbHlnb24gcG9pbnRzPSIzMCwxMCA3MCwxMCA5MCwzMCA5MCw3MCA3MCw5MCAzMCw5MCAxMCw3MCAxMCwzMCIgZmlsbD0ibm9uZSIgc3Ryb2tlPSJ3aGl0ZSIgc3Ryb2tlLXdpZHRoPSIyLjUiLz4gPCEtLSBTcXVhcmUgMjogZGlhZ29uYWwgKHJvdGF0ZWQgNDXCsCkgLS0+IDxwb2x5Z29uIHBvaW50cz0iNTAsOCA5Miw1MCA1MCw5MiA4LDUwIiBmaWxsPSJub25lIiBzdHJva2U9IndoaXRlIiBzdHJva2Utd2lkdGg9IjIuNSIvPiA8IS0tIE9yYW5nZSBhbWJlciBwZXRhbHMgLSA4IGRpcmVjdGlvbmFsIHBldGFscyAtLT4gPCEtLSBUb3AgcGV0YWwgLS0+IDxwYXRoIGQ9Ik01MCAxMCBDNDQgMTggNDIgMjUgNTAgMzAgQzU4IDI1IDU2IDE4IDUwIDEwWiIgZmlsbD0iI2UwNzgxOCIgc3Ryb2tlPSIjM2ExNTAwIiBzdHJva2Utd2lkdGg9IjAuOCIvPiA8IS0tIEJvdHRvbSBwZXRhbCAtLT4gPHBhdGggZD0iTTUwIDkwIEM0NCA4MiA0MiA3NSA1MCA3MCBDNTggNzUgNTYgODIgNTAgOTBaIiBmaWxsPSIjZTA3ODE4IiBzdHJva2U9IiMzYTE1MDAiIHN0cm9rZS13aWR0aD0iMC44Ii8+IDwhLS0gTGVmdCBwZXRhbCAtLT4gPHBhdGggZD0iTTEwIDUwIEMxOCA0NCAyNSA0MiAzMCA1MCBDMjUgNTggMTggNTYgMTAgNTBaIiBmaWxsPSIjZTA3ODE4IiBzdHJva2U9IiMzYTE1MDAiIHN0cm9rZS13aWR0aD0iMC44Ii8+IDwhLS0gUmlnaHQgcGV0YWwgLS0+IDxwYXRoIGQ9Ik05MCA1MCBDODIgNDQgNzUgNDIgNzAgNTAgQzc1IDU4IDgyIDU2IDkwIDUwWiIgZmlsbD0iI2UwNzgxOCIgc3Ryb2tlPSIjM2ExNTAwIiBzdHJva2Utd2lkdGg9IjAuOCIvPiA8IS0tIERpYWdvbmFsIG9yYW5nZSBwZXRhbHMgLS0+IDwhLS0gVG9wLXJpZ2h0IHBldGFsIC0tPiA8cGF0aCBkPSJNODUgMTUgQzc5IDI0IDc0IDI3IDcyIDM1IEM4MCAzMyA4NiAyNyA4NSAxNVoiIGZpbGw9IiNkMDYwMTAiIHN0cm9rZT0iIzNhMTUwMCIgc3Ryb2tlLXdpZHRoPSIwLjgiLz4gPCEtLSBCb3R0b20tcmlnaHQgcGV0YWwgLS0+IDxwYXRoIGQ9Ik04NSA4NSBDNzkgNzYgNzQgNzMgNzIgNjUgQzgwIDY3IDg2IDczIDg1IDg1WiIgZmlsbD0iI2QwNjAxMCIgc3Ryb2tlPSIjM2ExNTAwIiBzdHJva2Utd2lkdGg9IjAuOCIvPiA8IS0tIEJvdHRvbS1sZWZ0IHBldGFsIC0tPiA8cGF0aCBkPSJNMTUgODUgQzIxIDc2IDI2IDczIDI4IDY1IEMyMCA2NyAxNCA3MyAxNSA4NVoiIGZpbGw9IiNkMDYwMTAiIHN0cm9rZT0iIzNhMTUwMCIgc3Ryb2tlLXdpZHRoPSIwLjgiLz4gPCEtLSBUb3AtbGVmdCBwZXRhbCAtLT4gPHBhdGggZD0iTTE1IDE1IEMyMSAyNCAyNiAyNyAyOCAzNSBDMjAgMzMgMTQgMjcgMTUgMTVaIiBmaWxsPSIjZDA2MDEwIiBzdHJva2U9IiMzYTE1MDAiIHN0cm9rZS13aWR0aD0iMC44Ii8+IDwhLS0gV2hpdGUgZ2VvbWV0cmljIGZyYW1lIGxpbmVzIGNyZWF0aW5nIHRoZSBzdGFyIGxhdHRpY2UgLS0+IDwhLS0gSG9yaXpvbnRhbCBiYXIgLS0+IDxyZWN0IHg9IjEwIiB5PSI0MiIgd2lkdGg9IjgwIiBoZWlnaHQ9IjE2IiBmaWxsPSJ3aGl0ZSIgb3BhY2l0eT0iMC4xNSIvPiA8IS0tIFZlcnRpY2FsIGJhciAtLT4gPHJlY3QgeD0iNDIiIHk9IjEwIiB3aWR0aD0iMTYiIGhlaWdodD0iODAiIGZpbGw9IndoaXRlIiBvcGFjaXR5PSIwLjE1Ii8+IDwhLS0gRGlhZ29uYWwgYmFycyAtLT4gPGxpbmUgeDE9IjE1IiB5MT0iMTUiIHgyPSI4NSIgeTI9Ijg1IiBzdHJva2U9IndoaXRlIiBzdHJva2Utd2lkdGg9IjExIiBvcGFjaXR5PSIwLjEyIi8+IDxsaW5lIHgxPSI4NSIgeTE9IjE1IiB4Mj0iMTUiIHkyPSI4NSIgc3Ryb2tlPSJ3aGl0ZSIgc3Ryb2tlLXdpZHRoPSIxMSIgb3BhY2l0eT0iMC4xMiIvPiA8IS0tIFN0YXIgaW5uZXIgcG9seWdvbiB3aGl0ZSBsaW5lcyAtLT4gPHBvbHlnb24gcG9pbnRzPSI1MCwyMCA2NCwzNiA4MCwzNiA2OCw1MCA4MCw2NCA2NCw2NCA1MCw4MCAzNiw2NCAyMCw2NCAzMiw1MCAyMCwzNiAzNiwzNiIgZmlsbD0ibm9uZSIgc3Ryb2tlPSJ3aGl0ZSIgc3Ryb2tlLXdpZHRoPSIxLjgiLz4gPCEtLSBJbm5lciB3aGl0ZSBzdGFyIGZpbGwgKHRoZSB3b3Zlbi9rbm90d29yayBsb29rKSAtLT4gPHBvbHlnb24gcG9pbnRzPSI1MCwyMiA2MiwzNiA3OCwzOCA2Niw1MCA3OCw2MiA2Miw2NCA1MCw3OCAzOCw2NCAyMiw2MiAzNCw1MCAyMiwzOCAzOCwzNiIgZmlsbD0id2hpdGUiIG9wYWNpdHk9IjAuMDgiLz4gPCEtLSBXaGl0ZSBrbm90d29yayBsaW5lcyBmb3JtaW5nIHRoZSAxMi1wb2ludCBpbm5lciBzdGFyIC0tPiA8IS0tIFRoZXNlIGNyb3NzLWxpbmVzIGNyZWF0ZSB0aGUgd292ZW4gZWZmZWN0IC0tPiA8bGluZSB4MT0iMzYiIHkxPSIzNiIgeDI9IjY0IiB5Mj0iNjQiIHN0cm9rZT0id2hpdGUiIHN0cm9rZS13aWR0aD0iMS4yIi8+IDxsaW5lIHgxPSI2NCIgeTE9IjM2IiB4Mj0iMzYiIHkyPSI2NCIgc3Ryb2tlPSJ3aGl0ZSIgc3Ryb2tlLXdpZHRoPSIxLjIiLz4gPGxpbmUgeDE9IjUwIiB5MT0iMjAiIHgyPSI1MCIgeTI9IjgwIiBzdHJva2U9IndoaXRlIiBzdHJva2Utd2lkdGg9IjEuMiIvPiA8bGluZSB4MT0iMjAiIHkxPSI1MCIgeDI9IjgwIiB5Mj0iNTAiIHN0cm9rZT0id2hpdGUiIHN0cm9rZS13aWR0aD0iMS4yIi8+IDwhLS0gT3JhbmdlIGlubmVyIGRpYW1vbmRzIGF0IDggcG9pbnRzIC0tPiA8cG9seWdvbiBwb2ludHM9IjUwLDI2IDU0LDMyIDUwLDM4IDQ2LDMyIiBmaWxsPSIjZTA3ODE4IiBzdHJva2U9IiMzYTE1MDAiIHN0cm9rZS13aWR0aD0iMC42Ii8+IDxwb2x5Z29uIHBvaW50cz0iNTAsNjIgNTQsNjggNTAsNzQgNDYsNjgiIGZpbGw9IiNlMDc4MTgiIHN0cm9rZT0iIzNhMTUwMCIgc3Ryb2tlLXdpZHRoPSIwLjYiLz4gPHBvbHlnb24gcG9pbnRzPSIyNiw1MCAzMiw1NCAzOCw1MCAzMiw0NiIgZmlsbD0iI2UwNzgxOCIgc3Ryb2tlPSIjM2ExNTAwIiBzdHJva2Utd2lkdGg9IjAuNiIvPiA8cG9seWdvbiBwb2ludHM9IjYyLDUwIDY4LDU0IDc0LDUwIDY4LDQ2IiBmaWxsPSIjZTA3ODE4IiBzdHJva2U9IiMzYTE1MDAiIHN0cm9rZS13aWR0aD0iMC42Ii8+IDwhLS0gRGlhZ29uYWwgaW5uZXIgZGlhbW9uZHMgLS0+IDxwb2x5Z29uIHBvaW50cz0iNjIsMjggNjYsMzQgNjIsMzggNTgsMzQiIGZpbGw9IiNlMDc4MTgiIHN0cm9rZT0iIzNhMTUwMCIgc3Ryb2tlLXdpZHRoPSIwLjUiLz4gPHBvbHlnb24gcG9pbnRzPSIzOCwyOCA0MiwzNCAzOCwzOCAzNCwzNCIgZmlsbD0iI2UwNzgxOCIgc3Ryb2tlPSIjM2ExNTAwIiBzdHJva2Utd2lkdGg9IjAuNSIvPiA8cG9seWdvbiBwb2ludHM9IjYyLDYyIDY2LDY2IDYyLDcyIDU4LDY2IiBmaWxsPSIjZTA3ODE4IiBzdHJva2U9IiMzYTE1MDAiIHN0cm9rZS13aWR0aD0iMC41Ii8+IDxwb2x5Z29uIHBvaW50cz0iMzgsNjIgNDIsNjYgMzgsNzIgMzQsNjYiIGZpbGw9IiNlMDc4MTgiIHN0cm9rZT0iIzNhMTUwMCIgc3Ryb2tlLXdpZHRoPSIwLjUiLz4gPCEtLSBDZW50ZXIgdHVycXVvaXNlL21pbnQgc3RhciAtLT4gPHBvbHlnb24gcG9pbnRzPSI1MCw0MiA1Myw0NyA1OSw0NyA1NCw1MSA1Niw1NyA1MCw1MyA0NCw1NyA0Niw1MSA0MSw0NyA0Nyw0NyIgZmlsbD0iIzAwYzhiMCIgc3Ryb2tlPSIjMDA0NDU1IiBzdHJva2Utd2lkdGg9IjAuOCIvPiA8IS0tIENlbnRlciBjaXJjbGUgLS0+IDxjaXJjbGUgY3g9IjUwIiBjeT0iNTAiIHI9IjUiIGZpbGw9IiMwMGUwYzgiIHN0cm9rZT0iIzAwNDQ1NSIgc3Ryb2tlLXdpZHRoPSIwLjgiLz4gPGNpcmNsZSBjeD0iNTAiIGN5PSI1MCIgcj0iMi41IiBmaWxsPSJ3aGl0ZSIvPiA8L3N2Zz4=");
    background-repeat: repeat-x;
    background-size: 20px 20px;
    opacity: 0.85;
  }
  .event-card:hover {
    transform: translateY(-4px);
    box-shadow: 0 12px 40px rgba(200,169,110,0.15);
  }
  .event-card .event-type {
    font-family: 'Cormorant Garamond', serif;
    font-size: 0.8rem;
    letter-spacing: 0.3em;
    text-transform: uppercase;
    color: var(--teal);
    margin-bottom: 0.8rem;
  }
  .event-card .event-name {
    font-family: 'Playfair Display', serif;
    font-size: 1.6rem;
    color: var(--text-dark);
    margin-bottom: 0.5rem;
  }
  .event-card .event-time {
    font-size: 2rem;
    color: var(--gold);
    font-family: 'Playfair Display', serif;
    font-weight: 400;
    margin: 0.5rem 0;
  }
  .event-card .event-venue {
    font-family: 'Cormorant Garamond', serif;
    font-size: 1.1rem;
    font-style: italic;
    color: var(--text-mid);
    margin-bottom: 1.2rem;
  }
  .event-card .event-attire {
    font-size: 0.78rem;
    color: var(--text-light);
    letter-spacing: 0.15em;
    text-transform: uppercase;
    background: var(--beige);
    padding: 6px 14px;
    border-radius: 2px;
    display: inline-block;
    margin-bottom: 1.2rem;
  }
  /* Watercolor illustration area */
  .event-illustration {
    width: 100%;
    height: 180px;
    border-radius: 3px;
    overflow: hidden;
    margin-bottom: 1.2rem;
  }
  .map-btn {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    background: var(--teal);
    color: white;
    text-decoration: none;
    padding: 11px 22px;
    border-radius: 2px;
    font-size: 0.8rem;
    letter-spacing: 0.15em;
    text-transform: uppercase;
    transition: background 0.3s ease, transform 0.2s ease;
    font-family: 'Lato', sans-serif;
    font-weight: 400;
  }
  .map-btn:hover { background: #1a5a4e; transform: scale(1.02); }
  .map-btn svg { width: 14px; height: 14px; flex-shrink: 0; }

  /* ===== VENUE DETAIL / TRANSPORT ===== */
  #transport { background: var(--beige); }
  .transport-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 24px;
  }
  @media(max-width:640px) { .transport-grid { grid-template-columns: 1fr; } }
  .transport-card {
    background: var(--white);
    border: 1px solid var(--beige-dark);
    padding: 28px 24px;
    border-radius: 4px;
  }
  .transport-card h3 {
    font-family: 'Playfair Display', serif;
    font-size: 1.2rem;
    color: var(--text-dark);
    margin-bottom: 1rem;
    display: flex;
    align-items: center;
    gap: 10px;
  }
  .transport-card h3 .icon-circle {
    width: 34px; height: 34px;
    border-radius: 50%;
    background: var(--gold-pale);
    border: 1px solid var(--gold-light);
    display: flex; align-items: center; justify-content: center;
    color: var(--brown-light);
    font-size: 0.9rem;
    flex-shrink: 0;
  }
  .transport-card ul {
    list-style: none;
    padding: 0;
  }
  .transport-card ul li {
    padding: 7px 0;
    border-bottom: 1px solid var(--beige);
    font-size: 0.88rem;
    color: var(--text-mid);
    line-height: 1.5;
    display: flex;
    gap: 8px;
    align-items: flex-start;
  }
  .transport-card ul li::before {
    content: '◇';
    color: var(--gold);
    font-size: 0.65rem;
    margin-top: 4px;
    flex-shrink: 0;
  }
  .transport-card ul li:last-child { border-bottom: none; }

  /* ===== HOTELS ===== */
  #hotels { background: var(--white); }
  .hotels-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(240px, 1fr));
    gap: 20px;
  }
  .hotel-card {
    background: var(--cream);
    border: 1px solid var(--beige-dark);
    border-radius: 4px;
    padding: 22px 20px;
    transition: transform 0.3s ease;
    position: relative;
    overflow: hidden;
  }
  .hotel-card::before {
    content: '';
    position: absolute;
    top: 0; left: 0; right: 0;
    height: 12px;
    background-image: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAxMDAgMTAwIiB3aWR0aD0iMTAwIiBoZWlnaHQ9IjEwMCI+IDwhLS0gQmFja2dyb3VuZCAtLT4gPHJlY3Qgd2lkdGg9IjEwMCIgaGVpZ2h0PSIxMDAiIGZpbGw9IiMwMDYwNzUiLz4gPCEtLSBPdXRlciBib3JkZXIgLS0+IDxyZWN0IHg9IjEiIHk9IjEiIHdpZHRoPSI5OCIgaGVpZ2h0PSI5OCIgZmlsbD0ibm9uZSIgc3Ryb2tlPSIjMDA0NDU1IiBzdHJva2Utd2lkdGg9IjIiLz4gPCEtLSBNYWluIDgtcG9pbnRlZCBzdGFyIGZyYW1lIGluIHdoaXRlIC0tPiA8IS0tIFRoZSBzdGFyIGlzIG1hZGUgb2YgdHdvIG92ZXJsYXBwaW5nIHNxdWFyZXMgcm90YXRlZCA0NSBkZWcgLS0+IDwhLS0gU3F1YXJlIDE6IGF4aXMtYWxpZ25lZCAtLT4gPHBvbHlnb24gcG9pbnRzPSIzMCwxMCA3MCwxMCA5MCwzMCA5MCw3MCA3MCw5MCAzMCw5MCAxMCw3MCAxMCwzMCIgZmlsbD0ibm9uZSIgc3Ryb2tlPSJ3aGl0ZSIgc3Ryb2tlLXdpZHRoPSIyLjUiLz4gPCEtLSBTcXVhcmUgMjogZGlhZ29uYWwgKHJvdGF0ZWQgNDXCsCkgLS0+IDxwb2x5Z29uIHBvaW50cz0iNTAsOCA5Miw1MCA1MCw5MiA4LDUwIiBmaWxsPSJub25lIiBzdHJva2U9IndoaXRlIiBzdHJva2Utd2lkdGg9IjIuNSIvPiA8IS0tIE9yYW5nZSBhbWJlciBwZXRhbHMgLSA4IGRpcmVjdGlvbmFsIHBldGFscyAtLT4gPCEtLSBUb3AgcGV0YWwgLS0+IDxwYXRoIGQ9Ik01MCAxMCBDNDQgMTggNDIgMjUgNTAgMzAgQzU4IDI1IDU2IDE4IDUwIDEwWiIgZmlsbD0iI2UwNzgxOCIgc3Ryb2tlPSIjM2ExNTAwIiBzdHJva2Utd2lkdGg9IjAuOCIvPiA8IS0tIEJvdHRvbSBwZXRhbCAtLT4gPHBhdGggZD0iTTUwIDkwIEM0NCA4MiA0MiA3NSA1MCA3MCBDNTggNzUgNTYgODIgNTAgOTBaIiBmaWxsPSIjZTA3ODE4IiBzdHJva2U9IiMzYTE1MDAiIHN0cm9rZS13aWR0aD0iMC44Ii8+IDwhLS0gTGVmdCBwZXRhbCAtLT4gPHBhdGggZD0iTTEwIDUwIEMxOCA0NCAyNSA0MiAzMCA1MCBDMjUgNTggMTggNTYgMTAgNTBaIiBmaWxsPSIjZTA3ODE4IiBzdHJva2U9IiMzYTE1MDAiIHN0cm9rZS13aWR0aD0iMC44Ii8+IDwhLS0gUmlnaHQgcGV0YWwgLS0+IDxwYXRoIGQ9Ik05MCA1MCBDODIgNDQgNzUgNDIgNzAgNTAgQzc1IDU4IDgyIDU2IDkwIDUwWiIgZmlsbD0iI2UwNzgxOCIgc3Ryb2tlPSIjM2ExNTAwIiBzdHJva2Utd2lkdGg9IjAuOCIvPiA8IS0tIERpYWdvbmFsIG9yYW5nZSBwZXRhbHMgLS0+IDwhLS0gVG9wLXJpZ2h0IHBldGFsIC0tPiA8cGF0aCBkPSJNODUgMTUgQzc5IDI0IDc0IDI3IDcyIDM1IEM4MCAzMyA4NiAyNyA4NSAxNVoiIGZpbGw9IiNkMDYwMTAiIHN0cm9rZT0iIzNhMTUwMCIgc3Ryb2tlLXdpZHRoPSIwLjgiLz4gPCEtLSBCb3R0b20tcmlnaHQgcGV0YWwgLS0+IDxwYXRoIGQ9Ik04NSA4NSBDNzkgNzYgNzQgNzMgNzIgNjUgQzgwIDY3IDg2IDczIDg1IDg1WiIgZmlsbD0iI2QwNjAxMCIgc3Ryb2tlPSIjM2ExNTAwIiBzdHJva2Utd2lkdGg9IjAuOCIvPiA8IS0tIEJvdHRvbS1sZWZ0IHBldGFsIC0tPiA8cGF0aCBkPSJNMTUgODUgQzIxIDc2IDI2IDczIDI4IDY1IEMyMCA2NyAxNCA3MyAxNSA4NVoiIGZpbGw9IiNkMDYwMTAiIHN0cm9rZT0iIzNhMTUwMCIgc3Ryb2tlLXdpZHRoPSIwLjgiLz4gPCEtLSBUb3AtbGVmdCBwZXRhbCAtLT4gPHBhdGggZD0iTTE1IDE1IEMyMSAyNCAyNiAyNyAyOCAzNSBDMjAgMzMgMTQgMjcgMTUgMTVaIiBmaWxsPSIjZDA2MDEwIiBzdHJva2U9IiMzYTE1MDAiIHN0cm9rZS13aWR0aD0iMC44Ii8+IDwhLS0gV2hpdGUgZ2VvbWV0cmljIGZyYW1lIGxpbmVzIGNyZWF0aW5nIHRoZSBzdGFyIGxhdHRpY2UgLS0+IDwhLS0gSG9yaXpvbnRhbCBiYXIgLS0+IDxyZWN0IHg9IjEwIiB5PSI0MiIgd2lkdGg9IjgwIiBoZWlnaHQ9IjE2IiBmaWxsPSJ3aGl0ZSIgb3BhY2l0eT0iMC4xNSIvPiA8IS0tIFZlcnRpY2FsIGJhciAtLT4gPHJlY3QgeD0iNDIiIHk9IjEwIiB3aWR0aD0iMTYiIGhlaWdodD0iODAiIGZpbGw9IndoaXRlIiBvcGFjaXR5PSIwLjE1Ii8+IDwhLS0gRGlhZ29uYWwgYmFycyAtLT4gPGxpbmUgeDE9IjE1IiB5MT0iMTUiIHgyPSI4NSIgeTI9Ijg1IiBzdHJva2U9IndoaXRlIiBzdHJva2Utd2lkdGg9IjExIiBvcGFjaXR5PSIwLjEyIi8+IDxsaW5lIHgxPSI4NSIgeTE9IjE1IiB4Mj0iMTUiIHkyPSI4NSIgc3Ryb2tlPSJ3aGl0ZSIgc3Ryb2tlLXdpZHRoPSIxMSIgb3BhY2l0eT0iMC4xMiIvPiA8IS0tIFN0YXIgaW5uZXIgcG9seWdvbiB3aGl0ZSBsaW5lcyAtLT4gPHBvbHlnb24gcG9pbnRzPSI1MCwyMCA2NCwzNiA4MCwzNiA2OCw1MCA4MCw2NCA2NCw2NCA1MCw4MCAzNiw2NCAyMCw2NCAzMiw1MCAyMCwzNiAzNiwzNiIgZmlsbD0ibm9uZSIgc3Ryb2tlPSJ3aGl0ZSIgc3Ryb2tlLXdpZHRoPSIxLjgiLz4gPCEtLSBJbm5lciB3aGl0ZSBzdGFyIGZpbGwgKHRoZSB3b3Zlbi9rbm90d29yayBsb29rKSAtLT4gPHBvbHlnb24gcG9pbnRzPSI1MCwyMiA2MiwzNiA3OCwzOCA2Niw1MCA3OCw2MiA2Miw2NCA1MCw3OCAzOCw2NCAyMiw2MiAzNCw1MCAyMiwzOCAzOCwzNiIgZmlsbD0id2hpdGUiIG9wYWNpdHk9IjAuMDgiLz4gPCEtLSBXaGl0ZSBrbm90d29yayBsaW5lcyBmb3JtaW5nIHRoZSAxMi1wb2ludCBpbm5lciBzdGFyIC0tPiA8IS0tIFRoZXNlIGNyb3NzLWxpbmVzIGNyZWF0ZSB0aGUgd292ZW4gZWZmZWN0IC0tPiA8bGluZSB4MT0iMzYiIHkxPSIzNiIgeDI9IjY0IiB5Mj0iNjQiIHN0cm9rZT0id2hpdGUiIHN0cm9rZS13aWR0aD0iMS4yIi8+IDxsaW5lIHgxPSI2NCIgeTE9IjM2IiB4Mj0iMzYiIHkyPSI2NCIgc3Ryb2tlPSJ3aGl0ZSIgc3Ryb2tlLXdpZHRoPSIxLjIiLz4gPGxpbmUgeDE9IjUwIiB5MT0iMjAiIHgyPSI1MCIgeTI9IjgwIiBzdHJva2U9IndoaXRlIiBzdHJva2Utd2lkdGg9IjEuMiIvPiA8bGluZSB4MT0iMjAiIHkxPSI1MCIgeDI9IjgwIiB5Mj0iNTAiIHN0cm9rZT0id2hpdGUiIHN0cm9rZS13aWR0aD0iMS4yIi8+IDwhLS0gT3JhbmdlIGlubmVyIGRpYW1vbmRzIGF0IDggcG9pbnRzIC0tPiA8cG9seWdvbiBwb2ludHM9IjUwLDI2IDU0LDMyIDUwLDM4IDQ2LDMyIiBmaWxsPSIjZTA3ODE4IiBzdHJva2U9IiMzYTE1MDAiIHN0cm9rZS13aWR0aD0iMC42Ii8+IDxwb2x5Z29uIHBvaW50cz0iNTAsNjIgNTQsNjggNTAsNzQgNDYsNjgiIGZpbGw9IiNlMDc4MTgiIHN0cm9rZT0iIzNhMTUwMCIgc3Ryb2tlLXdpZHRoPSIwLjYiLz4gPHBvbHlnb24gcG9pbnRzPSIyNiw1MCAzMiw1NCAzOCw1MCAzMiw0NiIgZmlsbD0iI2UwNzgxOCIgc3Ryb2tlPSIjM2ExNTAwIiBzdHJva2Utd2lkdGg9IjAuNiIvPiA8cG9seWdvbiBwb2ludHM9IjYyLDUwIDY4LDU0IDc0LDUwIDY4LDQ2IiBmaWxsPSIjZTA3ODE4IiBzdHJva2U9IiMzYTE1MDAiIHN0cm9rZS13aWR0aD0iMC42Ii8+IDwhLS0gRGlhZ29uYWwgaW5uZXIgZGlhbW9uZHMgLS0+IDxwb2x5Z29uIHBvaW50cz0iNjIsMjggNjYsMzQgNjIsMzggNTgsMzQiIGZpbGw9IiNlMDc4MTgiIHN0cm9rZT0iIzNhMTUwMCIgc3Ryb2tlLXdpZHRoPSIwLjUiLz4gPHBvbHlnb24gcG9pbnRzPSIzOCwyOCA0MiwzNCAzOCwzOCAzNCwzNCIgZmlsbD0iI2UwNzgxOCIgc3Ryb2tlPSIjM2ExNTAwIiBzdHJva2Utd2lkdGg9IjAuNSIvPiA8cG9seWdvbiBwb2ludHM9IjYyLDYyIDY2LDY2IDYyLDcyIDU4LDY2IiBmaWxsPSIjZTA3ODE4IiBzdHJva2U9IiMzYTE1MDAiIHN0cm9rZS13aWR0aD0iMC41Ii8+IDxwb2x5Z29uIHBvaW50cz0iMzgsNjIgNDIsNjYgMzgsNzIgMzQsNjYiIGZpbGw9IiNlMDc4MTgiIHN0cm9rZT0iIzNhMTUwMCIgc3Ryb2tlLXdpZHRoPSIwLjUiLz4gPCEtLSBDZW50ZXIgdHVycXVvaXNlL21pbnQgc3RhciAtLT4gPHBvbHlnb24gcG9pbnRzPSI1MCw0MiA1Myw0NyA1OSw0NyA1NCw1MSA1Niw1NyA1MCw1MyA0NCw1NyA0Niw1MSA0MSw0NyA0Nyw0NyIgZmlsbD0iIzAwYzhiMCIgc3Ryb2tlPSIjMDA0NDU1IiBzdHJva2Utd2lkdGg9IjAuOCIvPiA8IS0tIENlbnRlciBjaXJjbGUgLS0+IDxjaXJjbGUgY3g9IjUwIiBjeT0iNTAiIHI9IjUiIGZpbGw9IiMwMGUwYzgiIHN0cm9rZT0iIzAwNDQ1NSIgc3Ryb2tlLXdpZHRoPSIwLjgiLz4gPGNpcmNsZSBjeD0iNTAiIGN5PSI1MCIgcj0iMi41IiBmaWxsPSJ3aGl0ZSIvPiA8L3N2Zz4=");
    background-repeat: repeat-x;
    background-size: 12px 12px;
    opacity: 0.7;
  }
  .hotel-card { padding-top: 22px; }
  .hotel-card:hover { transform: translateY(-3px); }
  .hotel-card .hotel-category {
    font-size: 0.7rem;
    letter-spacing: 0.25em;
    text-transform: uppercase;
    color: var(--sage-dark);
    margin-bottom: 0.5rem;
  }
  .hotel-card h4 {
    font-family: 'Playfair Display', serif;
    font-size: 1.05rem;
    color: var(--text-dark);
    margin-bottom: 0.4rem;
  }
  .hotel-card .hotel-distance {
    font-size: 0.8rem;
    color: var(--text-light);
    margin-bottom: 0.6rem;
    display: flex;
    align-items: center;
    gap: 5px;
  }
  .hotel-card .hotel-note {
    font-family: 'Cormorant Garamond', serif;
    font-style: italic;
    font-size: 0.9rem;
    color: var(--text-mid);
    line-height: 1.5;
    margin-bottom: 0.8rem;
  }
  .hotel-link {
    font-size: 0.75rem;
    color: var(--gold);
    text-decoration: none;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    border-bottom: 1px solid var(--gold-light);
    transition: color 0.2s ease;
  }
  .hotel-link:hover { color: var(--brown); }

  /* ===== RSVP ===== */
  #rsvp {
    background: url("divers.png") center/cover no-repeat fixed;
    position: relative;
  }
  #rsvp .container { position: relative; z-index: 1; }
  .rsvp-form-wrap {
    max-width: 640px;
    margin: 0 auto;
    background: var(--white);
    border: 1px solid var(--beige-dark);
    padding: 44px 40px;
    border-radius: 4px;
    position: relative;
    overflow: hidden;
  }
  .rsvp-form-wrap > .tile-top-strip {
    position: absolute;
    top: 0; left: 0; right: 0;
    height: 16px;
    background-image: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAxMDAgMTAwIiB3aWR0aD0iMTAwIiBoZWlnaHQ9IjEwMCI+IDwhLS0gQmFja2dyb3VuZCAtLT4gPHJlY3Qgd2lkdGg9IjEwMCIgaGVpZ2h0PSIxMDAiIGZpbGw9IiMwMDYwNzUiLz4gPCEtLSBPdXRlciBib3JkZXIgLS0+IDxyZWN0IHg9IjEiIHk9IjEiIHdpZHRoPSI5OCIgaGVpZ2h0PSI5OCIgZmlsbD0ibm9uZSIgc3Ryb2tlPSIjMDA0NDU1IiBzdHJva2Utd2lkdGg9IjIiLz4gPCEtLSBNYWluIDgtcG9pbnRlZCBzdGFyIGZyYW1lIGluIHdoaXRlIC0tPiA8IS0tIFRoZSBzdGFyIGlzIG1hZGUgb2YgdHdvIG92ZXJsYXBwaW5nIHNxdWFyZXMgcm90YXRlZCA0NSBkZWcgLS0+IDwhLS0gU3F1YXJlIDE6IGF4aXMtYWxpZ25lZCAtLT4gPHBvbHlnb24gcG9pbnRzPSIzMCwxMCA3MCwxMCA5MCwzMCA5MCw3MCA3MCw5MCAzMCw5MCAxMCw3MCAxMCwzMCIgZmlsbD0ibm9uZSIgc3Ryb2tlPSJ3aGl0ZSIgc3Ryb2tlLXdpZHRoPSIyLjUiLz4gPCEtLSBTcXVhcmUgMjogZGlhZ29uYWwgKHJvdGF0ZWQgNDXCsCkgLS0+IDxwb2x5Z29uIHBvaW50cz0iNTAsOCA5Miw1MCA1MCw5MiA4LDUwIiBmaWxsPSJub25lIiBzdHJva2U9IndoaXRlIiBzdHJva2Utd2lkdGg9IjIuNSIvPiA8IS0tIE9yYW5nZSBhbWJlciBwZXRhbHMgLSA4IGRpcmVjdGlvbmFsIHBldGFscyAtLT4gPCEtLSBUb3AgcGV0YWwgLS0+IDxwYXRoIGQ9Ik01MCAxMCBDNDQgMTggNDIgMjUgNTAgMzAgQzU4IDI1IDU2IDE4IDUwIDEwWiIgZmlsbD0iI2UwNzgxOCIgc3Ryb2tlPSIjM2ExNTAwIiBzdHJva2Utd2lkdGg9IjAuOCIvPiA8IS0tIEJvdHRvbSBwZXRhbCAtLT4gPHBhdGggZD0iTTUwIDkwIEM0NCA4MiA0MiA3NSA1MCA3MCBDNTggNzUgNTYgODIgNTAgOTBaIiBmaWxsPSIjZTA3ODE4IiBzdHJva2U9IiMzYTE1MDAiIHN0cm9rZS13aWR0aD0iMC44Ii8+IDwhLS0gTGVmdCBwZXRhbCAtLT4gPHBhdGggZD0iTTEwIDUwIEMxOCA0NCAyNSA0MiAzMCA1MCBDMjUgNTggMTggNTYgMTAgNTBaIiBmaWxsPSIjZTA3ODE4IiBzdHJva2U9IiMzYTE1MDAiIHN0cm9rZS13aWR0aD0iMC44Ii8+IDwhLS0gUmlnaHQgcGV0YWwgLS0+IDxwYXRoIGQ9Ik05MCA1MCBDODIgNDQgNzUgNDIgNzAgNTAgQzc1IDU4IDgyIDU2IDkwIDUwWiIgZmlsbD0iI2UwNzgxOCIgc3Ryb2tlPSIjM2ExNTAwIiBzdHJva2Utd2lkdGg9IjAuOCIvPiA8IS0tIERpYWdvbmFsIG9yYW5nZSBwZXRhbHMgLS0+IDwhLS0gVG9wLXJpZ2h0IHBldGFsIC0tPiA8cGF0aCBkPSJNODUgMTUgQzc5IDI0IDc0IDI3IDcyIDM1IEM4MCAzMyA4NiAyNyA4NSAxNVoiIGZpbGw9IiNkMDYwMTAiIHN0cm9rZT0iIzNhMTUwMCIgc3Ryb2tlLXdpZHRoPSIwLjgiLz4gPCEtLSBCb3R0b20tcmlnaHQgcGV0YWwgLS0+IDxwYXRoIGQ9Ik04NSA4NSBDNzkgNzYgNzQgNzMgNzIgNjUgQzgwIDY3IDg2IDczIDg1IDg1WiIgZmlsbD0iI2QwNjAxMCIgc3Ryb2tlPSIjM2ExNTAwIiBzdHJva2Utd2lkdGg9IjAuOCIvPiA8IS0tIEJvdHRvbS1sZWZ0IHBldGFsIC0tPiA8cGF0aCBkPSJNMTUgODUgQzIxIDc2IDI2IDczIDI4IDY1IEMyMCA2NyAxNCA3MyAxNSA4NVoiIGZpbGw9IiNkMDYwMTAiIHN0cm9rZT0iIzNhMTUwMCIgc3Ryb2tlLXdpZHRoPSIwLjgiLz4gPCEtLSBUb3AtbGVmdCBwZXRhbCAtLT4gPHBhdGggZD0iTTE1IDE1IEMyMSAyNCAyNiAyNyAyOCAzNSBDMjAgMzMgMTQgMjcgMTUgMTVaIiBmaWxsPSIjZDA2MDEwIiBzdHJva2U9IiMzYTE1MDAiIHN0cm9rZS13aWR0aD0iMC44Ii8+IDwhLS0gV2hpdGUgZ2VvbWV0cmljIGZyYW1lIGxpbmVzIGNyZWF0aW5nIHRoZSBzdGFyIGxhdHRpY2UgLS0+IDwhLS0gSG9yaXpvbnRhbCBiYXIgLS0+IDxyZWN0IHg9IjEwIiB5PSI0MiIgd2lkdGg9IjgwIiBoZWlnaHQ9IjE2IiBmaWxsPSJ3aGl0ZSIgb3BhY2l0eT0iMC4xNSIvPiA8IS0tIFZlcnRpY2FsIGJhciAtLT4gPHJlY3QgeD0iNDIiIHk9IjEwIiB3aWR0aD0iMTYiIGhlaWdodD0iODAiIGZpbGw9IndoaXRlIiBvcGFjaXR5PSIwLjE1Ii8+IDwhLS0gRGlhZ29uYWwgYmFycyAtLT4gPGxpbmUgeDE9IjE1IiB5MT0iMTUiIHgyPSI4NSIgeTI9Ijg1IiBzdHJva2U9IndoaXRlIiBzdHJva2Utd2lkdGg9IjExIiBvcGFjaXR5PSIwLjEyIi8+IDxsaW5lIHgxPSI4NSIgeTE9IjE1IiB4Mj0iMTUiIHkyPSI4NSIgc3Ryb2tlPSJ3aGl0ZSIgc3Ryb2tlLXdpZHRoPSIxMSIgb3BhY2l0eT0iMC4xMiIvPiA8IS0tIFN0YXIgaW5uZXIgcG9seWdvbiB3aGl0ZSBsaW5lcyAtLT4gPHBvbHlnb24gcG9pbnRzPSI1MCwyMCA2NCwzNiA4MCwzNiA2OCw1MCA4MCw2NCA2NCw2NCA1MCw4MCAzNiw2NCAyMCw2NCAzMiw1MCAyMCwzNiAzNiwzNiIgZmlsbD0ibm9uZSIgc3Ryb2tlPSJ3aGl0ZSIgc3Ryb2tlLXdpZHRoPSIxLjgiLz4gPCEtLSBJbm5lciB3aGl0ZSBzdGFyIGZpbGwgKHRoZSB3b3Zlbi9rbm90d29yayBsb29rKSAtLT4gPHBvbHlnb24gcG9pbnRzPSI1MCwyMiA2MiwzNiA3OCwzOCA2Niw1MCA3OCw2MiA2Miw2NCA1MCw3OCAzOCw2NCAyMiw2MiAzNCw1MCAyMiwzOCAzOCwzNiIgZmlsbD0id2hpdGUiIG9wYWNpdHk9IjAuMDgiLz4gPCEtLSBXaGl0ZSBrbm90d29yayBsaW5lcyBmb3JtaW5nIHRoZSAxMi1wb2ludCBpbm5lciBzdGFyIC0tPiA8IS0tIFRoZXNlIGNyb3NzLWxpbmVzIGNyZWF0ZSB0aGUgd292ZW4gZWZmZWN0IC0tPiA8bGluZSB4MT0iMzYiIHkxPSIzNiIgeDI9IjY0IiB5Mj0iNjQiIHN0cm9rZT0id2hpdGUiIHN0cm9rZS13aWR0aD0iMS4yIi8+IDxsaW5lIHgxPSI2NCIgeTE9IjM2IiB4Mj0iMzYiIHkyPSI2NCIgc3Ryb2tlPSJ3aGl0ZSIgc3Ryb2tlLXdpZHRoPSIxLjIiLz4gPGxpbmUgeDE9IjUwIiB5MT0iMjAiIHgyPSI1MCIgeTI9IjgwIiBzdHJva2U9IndoaXRlIiBzdHJva2Utd2lkdGg9IjEuMiIvPiA8bGluZSB4MT0iMjAiIHkxPSI1MCIgeDI9IjgwIiB5Mj0iNTAiIHN0cm9rZT0id2hpdGUiIHN0cm9rZS13aWR0aD0iMS4yIi8+IDwhLS0gT3JhbmdlIGlubmVyIGRpYW1vbmRzIGF0IDggcG9pbnRzIC0tPiA8cG9seWdvbiBwb2ludHM9IjUwLDI2IDU0LDMyIDUwLDM4IDQ2LDMyIiBmaWxsPSIjZTA3ODE4IiBzdHJva2U9IiMzYTE1MDAiIHN0cm9rZS13aWR0aD0iMC42Ii8+IDxwb2x5Z29uIHBvaW50cz0iNTAsNjIgNTQsNjggNTAsNzQgNDYsNjgiIGZpbGw9IiNlMDc4MTgiIHN0cm9rZT0iIzNhMTUwMCIgc3Ryb2tlLXdpZHRoPSIwLjYiLz4gPHBvbHlnb24gcG9pbnRzPSIyNiw1MCAzMiw1NCAzOCw1MCAzMiw0NiIgZmlsbD0iI2UwNzgxOCIgc3Ryb2tlPSIjM2ExNTAwIiBzdHJva2Utd2lkdGg9IjAuNiIvPiA8cG9seWdvbiBwb2ludHM9IjYyLDUwIDY4LDU0IDc0LDUwIDY4LDQ2IiBmaWxsPSIjZTA3ODE4IiBzdHJva2U9IiMzYTE1MDAiIHN0cm9rZS13aWR0aD0iMC42Ii8+IDwhLS0gRGlhZ29uYWwgaW5uZXIgZGlhbW9uZHMgLS0+IDxwb2x5Z29uIHBvaW50cz0iNjIsMjggNjYsMzQgNjIsMzggNTgsMzQiIGZpbGw9IiNlMDc4MTgiIHN0cm9rZT0iIzNhMTUwMCIgc3Ryb2tlLXdpZHRoPSIwLjUiLz4gPHBvbHlnb24gcG9pbnRzPSIzOCwyOCA0MiwzNCAzOCwzOCAzNCwzNCIgZmlsbD0iI2UwNzgxOCIgc3Ryb2tlPSIjM2ExNTAwIiBzdHJva2Utd2lkdGg9IjAuNSIvPiA8cG9seWdvbiBwb2ludHM9IjYyLDYyIDY2LDY2IDYyLDcyIDU4LDY2IiBmaWxsPSIjZTA3ODE4IiBzdHJva2U9IiMzYTE1MDAiIHN0cm9rZS13aWR0aD0iMC41Ii8+IDxwb2x5Z29uIHBvaW50cz0iMzgsNjIgNDIsNjYgMzgsNzIgMzQsNjYiIGZpbGw9IiNlMDc4MTgiIHN0cm9rZT0iIzNhMTUwMCIgc3Ryb2tlLXdpZHRoPSIwLjUiLz4gPCEtLSBDZW50ZXIgdHVycXVvaXNlL21pbnQgc3RhciAtLT4gPHBvbHlnb24gcG9pbnRzPSI1MCw0MiA1Myw0NyA1OSw0NyA1NCw1MSA1Niw1NyA1MCw1MyA0NCw1NyA0Niw1MSA0MSw0NyA0Nyw0NyIgZmlsbD0iIzAwYzhiMCIgc3Ryb2tlPSIjMDA0NDU1IiBzdHJva2Utd2lkdGg9IjAuOCIvPiA8IS0tIENlbnRlciBjaXJjbGUgLS0+IDxjaXJjbGUgY3g9IjUwIiBjeT0iNTAiIHI9IjUiIGZpbGw9IiMwMGUwYzgiIHN0cm9rZT0iIzAwNDQ1NSIgc3Ryb2tlLXdpZHRoPSIwLjgiLz4gPGNpcmNsZSBjeD0iNTAiIGN5PSI1MCIgcj0iMi41IiBmaWxsPSJ3aGl0ZSIvPiA8L3N2Zz4=");
    background-repeat: repeat-x;
    background-size: 16px 16px;
    opacity: 0.75;
  }
  .rsvp-form-wrap::before, .rsvp-form-wrap::after {
    content: '✦';
    position: absolute;
    top: 16px;
    color: var(--gold-light);
    font-size: 0.9rem;
  }
  .rsvp-form-wrap::before { left: 16px; }
  .rsvp-form-wrap::after { right: 16px; }
  @media(max-width:500px) { .rsvp-form-wrap { padding: 28px 20px; } }
  .form-group {
    margin-bottom: 1.4rem;
  }
  .form-group label {
    display: block;
    font-size: 0.75rem;
    letter-spacing: 0.2em;
    text-transform: uppercase;
    color: var(--text-mid);
    margin-bottom: 0.5rem;
  }
  .form-group input,
  .form-group select,
  .form-group textarea {
    width: 100%;
    padding: 12px 14px;
    background: var(--cream);
    border: 1px solid var(--beige-dark);
    border-radius: 2px;
    font-family: 'Lato', sans-serif;
    font-size: 0.9rem;
    color: var(--text-dark);
    font-weight: 300;
    transition: border-color 0.2s ease;
    outline: none;
  }
  .form-group input:focus,
  .form-group select:focus,
  .form-group textarea:focus {
    border-color: var(--gold);
  }
  .form-group textarea { height: 90px; resize: vertical; }
  .form-group select { cursor: pointer; }
  .radio-group {
    display: flex;
    gap: 20px;
    flex-wrap: wrap;
  }
  .radio-label {
    display: flex;
    align-items: center;
    gap: 8px;
    cursor: pointer;
    font-size: 0.88rem;
    color: var(--text-mid);
  }
  .radio-label input[type="radio"] {
    width: auto;
    accent-color: var(--gold);
  }
  .submit-btn {
    width: 100%;
    padding: 16px;
    background: var(--sage);
    color: white;
    border: none;
    border-radius: 2px;
    font-family: 'Lato', sans-serif;
    font-size: 0.85rem;
    letter-spacing: 0.25em;
    text-transform: uppercase;
    cursor: pointer;
    transition: background 0.3s ease;
    margin-top: 0.5rem;
  }
  .submit-btn:hover { background: var(--sage-dark); }
  .form-success {
    display: none;
    text-align: center;
    padding: 30px;
  }
  .form-success h3 {
    font-family: 'Playfair Display', serif;
    font-size: 1.5rem;
    color: var(--sage-dark);
    margin-bottom: 0.5rem;
  }
  .form-success p {
    font-family: 'Cormorant Garamond', serif;
    font-style: italic;
    color: var(--text-mid);
  }

  /* ===== PLAYLIST ===== */
  #playlist { background: var(--cream); }
  .playlist-area {
    max-width: 600px;
    margin: 0 auto;
    text-align: center;
  }
  .playlist-desc {
    font-family: 'Cormorant Garamond', serif;
    font-size: 1.1rem;
    font-style: italic;
    color: var(--text-mid);
    margin-bottom: 2rem;
    line-height: 1.7;
  }
  .playlist-input-row {
    display: flex;
    gap: 10px;
    margin-bottom: 1.2rem;
  }
  .playlist-input-row input {
    flex: 1;
    padding: 12px 14px;
    background: var(--white);
    border: 1px solid var(--beige-dark);
    border-radius: 2px;
    font-family: 'Lato', sans-serif;
    font-size: 0.9rem;
    color: var(--text-dark);
    font-weight: 300;
    outline: none;
    transition: border-color 0.2s;
  }
  .playlist-input-row input:focus { border-color: var(--gold); }
  .add-song-btn {
    padding: 12px 20px;
    background: var(--gold);
    color: white;
    border: none;
    border-radius: 2px;
    cursor: pointer;
    font-size: 0.8rem;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    font-family: 'Lato', sans-serif;
    transition: background 0.2s;
  }
  .add-song-btn:hover { background: var(--brown-light); }
  .songs-list {
    list-style: none;
    text-align: left;
    max-height: 280px;
    overflow-y: auto;
  }
  .songs-list li {
    padding: 10px 14px;
    background: var(--white);
    border: 1px solid var(--beige);
    border-radius: 2px;
    margin-bottom: 6px;
    display: flex;
    align-items: center;
    gap: 10px;
    font-size: 0.88rem;
    color: var(--text-mid);
    animation: fadeUp 0.3s ease both;
  }
  .songs-list li .note-icon { color: var(--gold); font-size: 0.9rem; }
  .songs-list li .song-title { flex: 1; }
  .songs-list li .remove-btn {
    background: none;
    border: none;
    color: var(--text-light);
    cursor: pointer;
    font-size: 1rem;
    padding: 0 4px;
    transition: color 0.2s;
  }
  .songs-list li .remove-btn:hover { color: var(--brown); }
  .spotify-hint {
    font-size: 0.78rem;
    color: var(--text-light);
    margin-top: 0.8rem;
    letter-spacing: 0.05em;
  }

  /* ===== PHOTO UPLOAD QR ===== */
  #photos { background: var(--gold-pale); }
  .photos-btn {
    display: inline-block;
    margin-top: 1.5rem;
    padding: 14px 36px;
    background: var(--teal);
    color: var(--cream);
    font-family: 'Lato', sans-serif;
    font-size: 0.85rem;
    letter-spacing: 0.18em;
    text-transform: uppercase;
    text-decoration: none;
    border: 1px solid var(--teal);
    transition: background 0.2s, color 0.2s;
  }
  .photos-btn:hover {
    background: transparent;
    color: var(--teal);
  }
  .photo-section-inner {
    max-width: 600px;
    margin: 0 auto;
    text-align: center;
  }
  .qr-container {
    width: 180px;
    height: 180px;
    margin: 0 auto 1.5rem;
    background: white;
    border: 2px solid var(--gold-light);
    padding: 12px;
    border-radius: 4px;
    display: flex;
    align-items: center;
    justify-content: center;
    position: relative;
  }
  .qr-container::before,
  .qr-container::after {
    content: '';
    position: absolute;
    width: 18px; height: 18px;
    border-color: var(--gold);
    border-style: solid;
  }
  .qr-container::before { top: -4px; left: -4px; border-width: 2px 0 0 2px; }
  .qr-container::after { bottom: -4px; right: -4px; border-width: 0 2px 2px 0; }
  .qr-placeholder {
    display: grid;
    grid-template-columns: repeat(7, 1fr);
    gap: 2px;
    width: 120px;
    height: 120px;
  }
  .qr-cell {
    background: var(--text-dark);
    border-radius: 1px;
  }
  .qr-cell.empty { background: transparent; }
  .photo-upload-desc {
    font-family: 'Cormorant Garamond', serif;
    font-size: 1.1rem;
    font-style: italic;
    color: var(--text-mid);
    line-height: 1.7;
    margin-bottom: 1rem;
  }
  .upload-note {
    font-size: 0.78rem;
    color: var(--text-light);
    letter-spacing: 0.1em;
  }

  /* ===== CLOSING ===== */
  #closing {
    background: var(--text-dark);
    color: var(--cream);
    text-align: center;
    padding: 100px 20px;
    position: relative;
    overflow: hidden;
  }
  /* Fine diamond lattice */
  #closing::before {
    content: '';
    position: absolute;
    inset: 0;
    background-image:
      url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='60' height='60'%3E%3Cpolygon points='30,4 56,30 30,56 4,30' fill='none' stroke='%23c8a96e' stroke-width='0.6'/%3E%3Cpolygon points='30,14 46,30 30,46 14,30' fill='none' stroke='%23c8a96e' stroke-width='0.4'/%3E%3Ccircle cx='30' cy='30' r='2.5' fill='none' stroke='%23c8a96e' stroke-width='0.5'/%3E%3Ccircle cx='0' cy='0' r='1.5' fill='%23c8a96e' opacity='0.4'/%3E%3Ccircle cx='60' cy='0' r='1.5' fill='%23c8a96e' opacity='0.4'/%3E%3Ccircle cx='0' cy='60' r='1.5' fill='%23c8a96e' opacity='0.4'/%3E%3Ccircle cx='60' cy='60' r='1.5' fill='%23c8a96e' opacity='0.4'/%3E%3C/svg%3E");
    background-repeat: repeat;
    background-size: 60px 60px;
    opacity: 0.18;
    pointer-events: none;
    z-index: 0;
  }
  /* 8-pointed star accents at larger scale */
  #closing::after {
    content: '';
    position: absolute;
    inset: 0;
    background-image:
      url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='180' height='180'%3E%3Cpolygon points='90,15 105,65 155,65 115,95 130,145 90,115 50,145 65,95 25,65 75,65' fill='none' stroke='%23c8a96e' stroke-width='0.7'/%3E%3Cpolygon points='90,30 100,60 130,60 108,78 116,108 90,90 64,108 72,78 50,60 80,60' fill='none' stroke='%238a9e7b' stroke-width='0.5'/%3E%3Ccircle cx='90' cy='90' r='6' fill='none' stroke='%23c8a96e' stroke-width='0.6'/%3E%3C/svg%3E");
    background-repeat: repeat;
    background-size: 180px 180px;
    background-position: 30px 30px;
    opacity: 0.1;
    pointer-events: none;
    z-index: 0;
  }
  #closing .couple-photo {
    width: 200px;
    height: 250px;
    border-radius: 50% 50% 50% 50% / 60% 60% 40% 40%;
    background: rgba(255,255,255,0.06);
    margin: 0 auto 2.5rem;
    border: 2px solid rgba(200,169,110,0.4);
    position: relative;
    z-index: 1;
    overflow: hidden;
    display: flex;
    align-items: center;
    justify-content: center;
  }
  #closing h2, #closing p, #closing .closing-names, #closing .closing-date {
    position: relative;
    z-index: 1;
  }
  #closing h2 {
    font-family: 'Playfair Display', serif;
    font-size: 2.2rem;
    font-weight: 400;
    color: var(--gold-light);
    margin-bottom: 1rem;
  }
  #closing p {
    font-family: 'Cormorant Garamond', serif;
    font-style: italic;
    font-size: 1.2rem;
    color: rgba(250,246,238,0.7);
    line-height: 1.7;
    max-width: 500px;
    margin: 0 auto 1.5rem;
  }
  #closing .closing-names {
    font-family: 'Playfair Display', serif;
    font-size: 1.8rem;
    font-style: italic;
    color: var(--gold-light);
  }
  #closing .closing-date {
    font-size: 0.85rem;
    letter-spacing: 0.3em;
    text-transform: uppercase;
    color: rgba(200,169,110,0.6);
    margin-top: 0.5rem;
  }

  /* ===== FOOTER ===== */
  footer {
    background: #2a2117;
    text-align: center;
    padding: 24px;
    font-size: 0.75rem;
    letter-spacing: 0.15em;
    color: rgba(200,169,110,0.4);
    text-transform: uppercase;
  }

  /* ===== NAV ===== */
  nav {
    position: fixed;
    top: 0; left: 0; right: 0;
    z-index: 100;
    padding: 12px 24px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    background: rgba(250,246,238,0.92);
    backdrop-filter: blur(10px);
    border-bottom: none;
    transition: transform 0.3s ease;
  }
  .nav-links {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 6px 20px;
    flex: 1;
    justify-content: center;
  }
  nav::after {
    content: '';
    position: absolute;
    bottom: -18px; left: 0; right: 0;
    height: 18px;
    background-image: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAxMDAgMTAwIiB3aWR0aD0iMTAwIiBoZWlnaHQ9IjEwMCI+IDwhLS0gQmFja2dyb3VuZCAtLT4gPHJlY3Qgd2lkdGg9IjEwMCIgaGVpZ2h0PSIxMDAiIGZpbGw9IiMwMDYwNzUiLz4gPCEtLSBPdXRlciBib3JkZXIgLS0+IDxyZWN0IHg9IjEiIHk9IjEiIHdpZHRoPSI5OCIgaGVpZ2h0PSI5OCIgZmlsbD0ibm9uZSIgc3Ryb2tlPSIjMDA0NDU1IiBzdHJva2Utd2lkdGg9IjIiLz4gPCEtLSBNYWluIDgtcG9pbnRlZCBzdGFyIGZyYW1lIGluIHdoaXRlIC0tPiA8IS0tIFRoZSBzdGFyIGlzIG1hZGUgb2YgdHdvIG92ZXJsYXBwaW5nIHNxdWFyZXMgcm90YXRlZCA0NSBkZWcgLS0+IDwhLS0gU3F1YXJlIDE6IGF4aXMtYWxpZ25lZCAtLT4gPHBvbHlnb24gcG9pbnRzPSIzMCwxMCA3MCwxMCA5MCwzMCA5MCw3MCA3MCw5MCAzMCw5MCAxMCw3MCAxMCwzMCIgZmlsbD0ibm9uZSIgc3Ryb2tlPSJ3aGl0ZSIgc3Ryb2tlLXdpZHRoPSIyLjUiLz4gPCEtLSBTcXVhcmUgMjogZGlhZ29uYWwgKHJvdGF0ZWQgNDXCsCkgLS0+IDxwb2x5Z29uIHBvaW50cz0iNTAsOCA5Miw1MCA1MCw5MiA4LDUwIiBmaWxsPSJub25lIiBzdHJva2U9IndoaXRlIiBzdHJva2Utd2lkdGg9IjIuNSIvPiA8IS0tIE9yYW5nZSBhbWJlciBwZXRhbHMgLSA4IGRpcmVjdGlvbmFsIHBldGFscyAtLT4gPCEtLSBUb3AgcGV0YWwgLS0+IDxwYXRoIGQ9Ik01MCAxMCBDNDQgMTggNDIgMjUgNTAgMzAgQzU4IDI1IDU2IDE4IDUwIDEwWiIgZmlsbD0iI2UwNzgxOCIgc3Ryb2tlPSIjM2ExNTAwIiBzdHJva2Utd2lkdGg9IjAuOCIvPiA8IS0tIEJvdHRvbSBwZXRhbCAtLT4gPHBhdGggZD0iTTUwIDkwIEM0NCA4MiA0MiA3NSA1MCA3MCBDNTggNzUgNTYgODIgNTAgOTBaIiBmaWxsPSIjZTA3ODE4IiBzdHJva2U9IiMzYTE1MDAiIHN0cm9rZS13aWR0aD0iMC44Ii8+IDwhLS0gTGVmdCBwZXRhbCAtLT4gPHBhdGggZD0iTTEwIDUwIEMxOCA0NCAyNSA0MiAzMCA1MCBDMjUgNTggMTggNTYgMTAgNTBaIiBmaWxsPSIjZTA3ODE4IiBzdHJva2U9IiMzYTE1MDAiIHN0cm9rZS13aWR0aD0iMC44Ii8+IDwhLS0gUmlnaHQgcGV0YWwgLS0+IDxwYXRoIGQ9Ik05MCA1MCBDODIgNDQgNzUgNDIgNzAgNTAgQzc1IDU4IDgyIDU2IDkwIDUwWiIgZmlsbD0iI2UwNzgxOCIgc3Ryb2tlPSIjM2ExNTAwIiBzdHJva2Utd2lkdGg9IjAuOCIvPiA8IS0tIERpYWdvbmFsIG9yYW5nZSBwZXRhbHMgLS0+IDwhLS0gVG9wLXJpZ2h0IHBldGFsIC0tPiA8cGF0aCBkPSJNODUgMTUgQzc5IDI0IDc0IDI3IDcyIDM1IEM4MCAzMyA4NiAyNyA4NSAxNVoiIGZpbGw9IiNkMDYwMTAiIHN0cm9rZT0iIzNhMTUwMCIgc3Ryb2tlLXdpZHRoPSIwLjgiLz4gPCEtLSBCb3R0b20tcmlnaHQgcGV0YWwgLS0+IDxwYXRoIGQ9Ik04NSA4NSBDNzkgNzYgNzQgNzMgNzIgNjUgQzgwIDY3IDg2IDczIDg1IDg1WiIgZmlsbD0iI2QwNjAxMCIgc3Ryb2tlPSIjM2ExNTAwIiBzdHJva2Utd2lkdGg9IjAuOCIvPiA8IS0tIEJvdHRvbS1sZWZ0IHBldGFsIC0tPiA8cGF0aCBkPSJNMTUgODUgQzIxIDc2IDI2IDczIDI4IDY1IEMyMCA2NyAxNCA3MyAxNSA4NVoiIGZpbGw9IiNkMDYwMTAiIHN0cm9rZT0iIzNhMTUwMCIgc3Ryb2tlLXdpZHRoPSIwLjgiLz4gPCEtLSBUb3AtbGVmdCBwZXRhbCAtLT4gPHBhdGggZD0iTTE1IDE1IEMyMSAyNCAyNiAyNyAyOCAzNSBDMjAgMzMgMTQgMjcgMTUgMTVaIiBmaWxsPSIjZDA2MDEwIiBzdHJva2U9IiMzYTE1MDAiIHN0cm9rZS13aWR0aD0iMC44Ii8+IDwhLS0gV2hpdGUgZ2VvbWV0cmljIGZyYW1lIGxpbmVzIGNyZWF0aW5nIHRoZSBzdGFyIGxhdHRpY2UgLS0+IDwhLS0gSG9yaXpvbnRhbCBiYXIgLS0+IDxyZWN0IHg9IjEwIiB5PSI0MiIgd2lkdGg9IjgwIiBoZWlnaHQ9IjE2IiBmaWxsPSJ3aGl0ZSIgb3BhY2l0eT0iMC4xNSIvPiA8IS0tIFZlcnRpY2FsIGJhciAtLT4gPHJlY3QgeD0iNDIiIHk9IjEwIiB3aWR0aD0iMTYiIGhlaWdodD0iODAiIGZpbGw9IndoaXRlIiBvcGFjaXR5PSIwLjE1Ii8+IDwhLS0gRGlhZ29uYWwgYmFycyAtLT4gPGxpbmUgeDE9IjE1IiB5MT0iMTUiIHgyPSI4NSIgeTI9Ijg1IiBzdHJva2U9IndoaXRlIiBzdHJva2Utd2lkdGg9IjExIiBvcGFjaXR5PSIwLjEyIi8+IDxsaW5lIHgxPSI4NSIgeTE9IjE1IiB4Mj0iMTUiIHkyPSI4NSIgc3Ryb2tlPSJ3aGl0ZSIgc3Ryb2tlLXdpZHRoPSIxMSIgb3BhY2l0eT0iMC4xMiIvPiA8IS0tIFN0YXIgaW5uZXIgcG9seWdvbiB3aGl0ZSBsaW5lcyAtLT4gPHBvbHlnb24gcG9pbnRzPSI1MCwyMCA2NCwzNiA4MCwzNiA2OCw1MCA4MCw2NCA2NCw2NCA1MCw4MCAzNiw2NCAyMCw2NCAzMiw1MCAyMCwzNiAzNiwzNiIgZmlsbD0ibm9uZSIgc3Ryb2tlPSJ3aGl0ZSIgc3Ryb2tlLXdpZHRoPSIxLjgiLz4gPCEtLSBJbm5lciB3aGl0ZSBzdGFyIGZpbGwgKHRoZSB3b3Zlbi9rbm90d29yayBsb29rKSAtLT4gPHBvbHlnb24gcG9pbnRzPSI1MCwyMiA2MiwzNiA3OCwzOCA2Niw1MCA3OCw2MiA2Miw2NCA1MCw3OCAzOCw2NCAyMiw2MiAzNCw1MCAyMiwzOCAzOCwzNiIgZmlsbD0id2hpdGUiIG9wYWNpdHk9IjAuMDgiLz4gPCEtLSBXaGl0ZSBrbm90d29yayBsaW5lcyBmb3JtaW5nIHRoZSAxMi1wb2ludCBpbm5lciBzdGFyIC0tPiA8IS0tIFRoZXNlIGNyb3NzLWxpbmVzIGNyZWF0ZSB0aGUgd292ZW4gZWZmZWN0IC0tPiA8bGluZSB4MT0iMzYiIHkxPSIzNiIgeDI9IjY0IiB5Mj0iNjQiIHN0cm9rZT0id2hpdGUiIHN0cm9rZS13aWR0aD0iMS4yIi8+IDxsaW5lIHgxPSI2NCIgeTE9IjM2IiB4Mj0iMzYiIHkyPSI2NCIgc3Ryb2tlPSJ3aGl0ZSIgc3Ryb2tlLXdpZHRoPSIxLjIiLz4gPGxpbmUgeDE9IjUwIiB5MT0iMjAiIHgyPSI1MCIgeTI9IjgwIiBzdHJva2U9IndoaXRlIiBzdHJva2Utd2lkdGg9IjEuMiIvPiA8bGluZSB4MT0iMjAiIHkxPSI1MCIgeDI9IjgwIiB5Mj0iNTAiIHN0cm9rZT0id2hpdGUiIHN0cm9rZS13aWR0aD0iMS4yIi8+IDwhLS0gT3JhbmdlIGlubmVyIGRpYW1vbmRzIGF0IDggcG9pbnRzIC0tPiA8cG9seWdvbiBwb2ludHM9IjUwLDI2IDU0LDMyIDUwLDM4IDQ2LDMyIiBmaWxsPSIjZTA3ODE4IiBzdHJva2U9IiMzYTE1MDAiIHN0cm9rZS13aWR0aD0iMC42Ii8+IDxwb2x5Z29uIHBvaW50cz0iNTAsNjIgNTQsNjggNTAsNzQgNDYsNjgiIGZpbGw9IiNlMDc4MTgiIHN0cm9rZT0iIzNhMTUwMCIgc3Ryb2tlLXdpZHRoPSIwLjYiLz4gPHBvbHlnb24gcG9pbnRzPSIyNiw1MCAzMiw1NCAzOCw1MCAzMiw0NiIgZmlsbD0iI2UwNzgxOCIgc3Ryb2tlPSIjM2ExNTAwIiBzdHJva2Utd2lkdGg9IjAuNiIvPiA8cG9seWdvbiBwb2ludHM9IjYyLDUwIDY4LDU0IDc0LDUwIDY4LDQ2IiBmaWxsPSIjZTA3ODE4IiBzdHJva2U9IiMzYTE1MDAiIHN0cm9rZS13aWR0aD0iMC42Ii8+IDwhLS0gRGlhZ29uYWwgaW5uZXIgZGlhbW9uZHMgLS0+IDxwb2x5Z29uIHBvaW50cz0iNjIsMjggNjYsMzQgNjIsMzggNTgsMzQiIGZpbGw9IiNlMDc4MTgiIHN0cm9rZT0iIzNhMTUwMCIgc3Ryb2tlLXdpZHRoPSIwLjUiLz4gPHBvbHlnb24gcG9pbnRzPSIzOCwyOCA0MiwzNCAzOCwzOCAzNCwzNCIgZmlsbD0iI2UwNzgxOCIgc3Ryb2tlPSIjM2ExNTAwIiBzdHJva2Utd2lkdGg9IjAuNSIvPiA8cG9seWdvbiBwb2ludHM9IjYyLDYyIDY2LDY2IDYyLDcyIDU4LDY2IiBmaWxsPSIjZTA3ODE4IiBzdHJva2U9IiMzYTE1MDAiIHN0cm9rZS13aWR0aD0iMC41Ii8+IDxwb2x5Z29uIHBvaW50cz0iMzgsNjIgNDIsNjYgMzgsNzIgMzQsNjYiIGZpbGw9IiNlMDc4MTgiIHN0cm9rZT0iIzNhMTUwMCIgc3Ryb2tlLXdpZHRoPSIwLjUiLz4gPCEtLSBDZW50ZXIgdHVycXVvaXNlL21pbnQgc3RhciAtLT4gPHBvbHlnb24gcG9pbnRzPSI1MCw0MiA1Myw0NyA1OSw0NyA1NCw1MSA1Niw1NyA1MCw1MyA0NCw1NyA0Niw1MSA0MSw0NyA0Nyw0NyIgZmlsbD0iIzAwYzhiMCIgc3Ryb2tlPSIjMDA0NDU1IiBzdHJva2Utd2lkdGg9IjAuOCIvPiA8IS0tIENlbnRlciBjaXJjbGUgLS0+IDxjaXJjbGUgY3g9IjUwIiBjeT0iNTAiIHI9IjUiIGZpbGw9IiMwMGUwYzgiIHN0cm9rZT0iIzAwNDQ1NSIgc3Ryb2tlLXdpZHRoPSIwLjgiLz4gPGNpcmNsZSBjeD0iNTAiIGN5PSI1MCIgcj0iMi41IiBmaWxsPSJ3aGl0ZSIvPiA8L3N2Zz4=");
    background-repeat: repeat-x;
    background-size: 18px 18px;
    opacity: 0.7;
    pointer-events: none;
  }
  nav a {
    font-size: 0.7rem;
    letter-spacing: 0.2em;
    text-transform: uppercase;
    color: var(--text-mid);
    text-decoration: none;
    transition: color 0.2s;
  }
  nav a:hover { color: var(--gold); }
  .nav-hidden { transform: translateY(-100%); }

  /* ===== ANIMATIONS ===== */
  @keyframes fadeDown {
    from { opacity: 0; transform: translateY(-20px); }
    to { opacity: 1; transform: translateY(0); }
  }
  @keyframes fadeUp {
    from { opacity: 0; transform: translateY(20px); }
    to { opacity: 1; transform: translateY(0); }
  }
  @keyframes fadeIn {
    from { opacity: 0; }
    to { opacity: 1; }
  }
  @keyframes scrollPulse {
    0%, 100% { opacity: 1; transform: scaleY(1); }
    50% { opacity: 0.3; transform: scaleY(0.7); }
  }
  @keyframes gentleFloat {
    0%, 100% { transform: translateY(0); }
    50% { transform: translateY(-8px); }
  }
  .float-anim { animation: gentleFloat 6s ease-in-out infinite; }

  /* Scroll reveal */
  .reveal {
    opacity: 0;
    transform: translateY(24px);
    transition: opacity 0.8s ease, transform 0.8s ease;
  }
  .reveal.visible {
    opacity: 1;
    transform: translateY(0);
  }
  .reveal-delay-1 { transition-delay: 0.15s; }
  .reveal-delay-2 { transition-delay: 0.3s; }
  .reveal-delay-3 { transition-delay: 0.45s; }

  /* ===== MOROCCAN ORNAMENT ===== */
  .ornament-line {
    display: flex;
    align-items: center;
    gap: 12px;
    justify-content: center;
    margin: 1rem 0 2rem;
  }
  .ornament-line .line { flex: 1; max-width: 100px; height: 1px; background: var(--gold-light); }
  .ornament-line .star { color: var(--gold); font-size: 0.9rem; }

  /* LANG SWITCHER */
  .lang-switcher {
    display: flex;
    gap: 4px;
    flex-shrink: 0;
  }
  @media (max-width: 600px) {
    nav {
      flex-wrap: wrap;
      justify-content: center;
      padding: 10px 12px 8px;
      gap: 8px;
    }
    .nav-links {
      gap: 4px 14px;
      justify-content: center;
    }
    .lang-switcher {
      width: 100%;
      justify-content: center;
      border-top: 1px solid var(--beige-dark);
      padding-top: 6px;
    }
  }
  .lang-btn {
    background: var(--cream);
    border: 1px solid var(--beige-dark);
    padding: 4px 10px;
    font-size: 0.7rem;
    letter-spacing: 0.1em;
    cursor: pointer;
    color: var(--text-mid);
    border-radius: 2px;
    transition: all 0.2s;
    font-family: 'Lato', sans-serif;
  }
  .lang-btn.active, .lang-btn:hover {
    background: var(--gold);
    color: white;
    border-color: var(--gold);
  }
