/* Dusty-blue editorial invitation. Overrides the original animation and form styles. */
:root {
  --primary-blue:#6f8ba0; --primary-blue-light:#9eb4c4; --primary-blue-dark:#2d4557;
  --accent-blue:#adc0cd; --soft-blue:#d9e3ea; --pale-blue:#edf2f5;
  --cream:#f8f7f3; --gold-accent:#ad9062; --text-dark:#2c4253;
  --text-medium:#536776; --text-light:#617583; --paper-line:#c9d3d9;
}
html { scroll-padding-top:100px; }
body { background:var(--cream); }
:focus-visible { outline:3px solid var(--gold-accent); outline-offset:5px; }
.container { max-width:1120px; }
.eyebrow { text-align:center; font:500 10px/1.8 var(--font-sans); letter-spacing:3px; color:var(--primary-blue-dark); margin-bottom:20px; }
.section-heading { font:400 clamp(3rem,5vw,4.5rem)/1.2 var(--font-script); letter-spacing:0; color:var(--primary-blue-dark); margin-bottom:22px; }
.section-heading::after { content:""; display:block; width:55px; height:1px; background:var(--gold-accent); margin:18px auto 0; }
.section-intro { max-width:620px; margin:0 auto 48px; text-align:center; font:400 1.3rem/1.6 var(--font-serif); color:var(--text-medium); }
.name-line { display:block; }
.second-name { padding-left:.4em; }

/* The opening scene */
.envelope-section { min-height:100svh; height:100%; overflow-y:auto; background:linear-gradient(110deg,#d9e4eb 0%,#c0d0dc 53%,#edf1f2 53%,#f7f6f1 100%); }
.envelope-section::before { content:""; position:fixed; inset:22px; border:1px solid #ffffff9c; pointer-events:none; }
.envelope-background { background:radial-gradient(ellipse at 5% 5%,#ffffff5c,transparent 55%); }
.floating-petals { display:none; }
.envelope-container { position:relative; display:grid; grid-template-columns:1fr 1fr; align-items:center; gap:60px; width:min(100%,1240px); padding:72px 70px; margin:auto; }
.welcome-copy { min-width:0; }
.envelope-heading { text-align:left; }
.envelope-heading .eyebrow { text-align:left; margin-bottom:28px; font-size:9px; }
.envelope-heading h1 { font:400 clamp(4rem,7vw,6.8rem)/.94 var(--font-serif); letter-spacing:-4px; color:var(--primary-blue-dark); }
.envelope-heading h1 em { font-weight:300; font-size:.7em; color:#78909f; }
.welcome-message { font:400 italic 1.45rem/1.4 var(--font-serif); margin:32px 0; color:var(--text-medium); }
.welcome-date { font:500 10px/1.8 var(--font-sans); letter-spacing:2px; text-transform:uppercase; border-top:1px solid #66839b55; padding-top:20px; max-width:330px; }
.welcome-date span { display:block; font-size:8px; letter-spacing:3px; margin-top:6px; color:var(--text-medium); }
.welcome-stage { position:relative; display:flex; flex-direction:column; align-items:center; min-width:0; gap:32px; padding:50px 0; }
.welcome-stage::before { content:""; position:absolute; width:110%; aspect-ratio:1; border:1px solid #ad906234; border-radius:50%; top:50%; left:50%; transform:translate(-50%,-50%); pointer-events:none; }
.stage-eyebrow { font:500 8px/1.8 var(--font-sans); letter-spacing:2px; text-align:center; color:var(--text-medium); z-index:1; }
.envelope { width:100%; max-width:420px; flex-shrink:0; transform:rotate(-5deg); transition:transform .7s ease; }
.envelope:hover,.envelope.open { transform:rotate(0); }
.envelope-back { background:linear-gradient(140deg,#fdfdf9,#d6e0e6); border-radius:4px; box-shadow:12px 35px 65px #2d45572b; }
.envelope-front { background:linear-gradient(150deg,#ecf1f3,#dce5eb 65%,#f9faf6); border-radius:0 0 4px 4px; }
.envelope-front::after { content:"R & J"; position:absolute; bottom:27px; left:0; width:100%; text-align:center; color:#6a8091; font:400 13px var(--font-serif); letter-spacing:5px; }
.envelope-flap { background:linear-gradient(160deg,#f9faf6,#b7c9d6); }
.wax-seal { background:linear-gradient(135deg,#d4bf95,#b39565 40%,#866b43); color:#fff7e8; box-shadow:0 3px 12px #65451e50; border:2px solid #d9c59c; }
.wax-seal::before { border-color:#fff7e866; }
.letter { background:#fffef8; }
.open-btn { z-index:1; border:1px solid var(--primary-blue-dark); border-radius:0; background:var(--primary-blue-dark); color:#fff; padding:17px 28px; font:500 10px var(--font-sans); letter-spacing:2px; box-shadow:none; }
.open-btn:hover { background:#3d5c72; color:white; transform:translateY(-2px); box-shadow:0 8px 25px #2d455720; }
.open-btn .btn-icon svg { stroke:currentColor; }
.open-btn:disabled { opacity:.45; cursor:not-allowed; transform:none; }
.welcome-footnote { max-width:260px; text-align:center; font:400 italic 1.05rem/1.5 var(--font-serif); color:var(--text-medium); z-index:1; }
.invite-badge { text-align:left; max-width:100%; padding:14px 0; border:0; border-radius:0; background:none; box-shadow:none; backdrop-filter:none; margin-top:12px; }
.invite-badge-name { font-size:1.3rem; }
.invite-badge-role { font:500 9px/1.7 var(--font-sans); letter-spacing:1px; }
.invite-lock-card { width:100%; max-width:390px; margin-top:10px; padding:22px; border-radius:3px; background:#f8faf9e6; border:1px solid #ffffffb3; box-shadow:0 12px 30px #2d455712; text-align:left; }
.invite-lock-card::before { display:none; }
.invite-lock-icon { display:none; }
.invite-lock-title { font-size:1.65rem; letter-spacing:0; }
.invite-lock-sub { font-size:1.05rem; }
.invite-lock-form label { font-size:10px; letter-spacing:1px; }
.invite-lock-form input { border-radius:2px; font-size:14px; }
.invite-lock-form .rsvp-submit { padding:13px; }

/* Navigation and full-width photo invitation */
.wedding-nav { position:sticky; top:0; z-index:20; display:flex; align-items:center; justify-content:space-between; gap:24px; padding:18px max(30px,calc((100vw - 1120px)/2)); border-bottom:1px solid var(--paper-line); background:#f8f7f3f5; backdrop-filter:blur(14px); }
.wedding-nav a { color:var(--primary-blue-dark); text-decoration:none; }
.nav-monogram { flex-shrink:0; font:400 25px var(--font-serif); letter-spacing:1px; }
.nav-monogram span { font-style:italic; font-size:17px; color:var(--gold-accent); padding:0 3px; }
.nav-links { display:flex; align-items:center; gap:30px; }
.nav-links a { font:500 9px var(--font-sans); letter-spacing:1.5px; white-space:nowrap; padding:8px 0; }
.nav-links a:hover { color:#876d45; }
.nav-links .nav-rsvp { padding:11px 18px; border:1px solid #ad906277; }
.hero-section,.hero-section.hero-photo { min-height:calc(100svh - 76px); display:flex; align-items:center; justify-content:center; padding:55px 32px 45px; background:linear-gradient(145deg,#dce7ee,#f8f7f3); }
.hero-section.hero-photo { background:var(--hero-bg) center/cover no-repeat; }
.hero-section::after { content:""; position:absolute; inset:22px; border:1px solid #ad906266; pointer-events:none; z-index:1; }
.hero-overlay { opacity:1; background:radial-gradient(ellipse at 50% 42%,#ffffffc9 0%,#ffffff73 60%,transparent 100%),linear-gradient(180deg,#ffffff66 0%,#ffffff70 55%,#f8f7f3 100%); }
.hero-content { width:min(100%,1050px); padding:0; text-align:center; z-index:2; color:var(--primary-blue-dark); }
.save-the-date { font:500 9px var(--font-sans); letter-spacing:4px; margin-bottom:30px; color:var(--primary-blue-dark); }
.couple-names { font:400 clamp(4.4rem,9vw,8rem)/1.2 var(--font-script); letter-spacing:0; color:var(--primary-blue-dark); text-shadow:0 2px 24px #ffffffa6; margin-bottom:24px; }
.couple-names .name-line { display:inline; }
.couple-names .second-name { padding-left:0; }
.ampersand { font:300 italic .67em var(--font-serif); margin:0 12px; color:#8f764e; opacity:1; }
.hero-date { font:400 1.45rem var(--font-serif); letter-spacing:2px; margin-top:12px; }
.wedding-hashtag { font:500 9px var(--font-sans); letter-spacing:2px; margin:12px 0 30px; color:var(--text-medium); opacity:1; }
.hero-cta { display:inline-flex; align-items:center; gap:32px; color:var(--primary-blue-dark); background:#fff9; text-decoration:none; font:500 10px var(--font-sans); letter-spacing:1px; padding:15px 24px; border:1px solid #ad906288; }
.hero-cta:hover { background:#fff; border-color:var(--gold-accent); }
.hero-content .guest-greeting,.hero-content .guest-role { color:var(--primary-blue-dark); }
.countdown-container { justify-content:center; margin-top:40px; gap:28px; }
.countdown-item { background:#ffffff80; border:1px solid #ad906233; border-radius:2px; padding:12px 20px; min-width:85px; text-align:center; backdrop-filter:blur(4px); }
.countdown-number { font:300 2.8rem var(--font-serif); color:var(--primary-blue-dark); }
.countdown-label { font-size:8px; letter-spacing:1.5px; margin-top:6px; color:var(--text-medium); }
.countdown-separator { display:none; }
.scroll-indicator { position:static; transform:none; margin-top:30px; align-items:center; font-size:8px; letter-spacing:1.5px; opacity:1; color:var(--text-medium); }
.scroll-indicator svg { width:16px; height:16px; }

/* Spacious editorial sections */
.custom-section.slideshow { position:relative; isolation:isolate; width:100%; max-width:none; margin:0; padding:100px 32px; min-height:380px; border:0; border-radius:0; box-shadow:none; background:#e9eff3; }
.custom-section .custom-background { position:absolute; inset:0; height:100%; aspect-ratio:auto; z-index:-2; }
.custom-section .slide img { object-fit:cover; background:transparent; }
.custom-section::after { content:""; position:absolute; inset:0; background:#edf2f54d; z-index:-1; pointer-events:none; }
.custom-section-content { max-width:880px; position:relative; }
.custom-section .story-card { background:#fffdf5ed; }
.custom-section .section-heading,.custom-section .story-text { overflow-wrap:anywhere; }
.custom-section .story-text { text-align:center; }
.custom-photo-controls { display:flex; justify-content:center; gap:14px; margin-top:24px; }
.custom-photo-controls .slide-nav { position:static; transform:none; }
.custom-photo-controls .slide-nav:hover { transform:scale(1.05); }
@media(max-width:650px) { .custom-section.slideshow { padding:70px 20px; } .custom-section .story-card { padding:30px 20px; } }
.message-section,.story-section,.gallery-section,.details-section,.rsvp-section,.social-section,.entourage-section,.guidelines-section { padding:110px 32px; }
.with-bg::before { opacity:1; filter:saturate(.65); }
.with-bg::after { background:linear-gradient(180deg,#f8f7f3e6,#ffffffc4 45%,#edf2f5e6); }
.message-section { background:var(--cream); }
.message-section .container { position:relative; max-width:930px; padding:55px 32px; border:1px solid #ad90625c; }
.message-section .container::before { content:""; position:absolute; inset:8px; border:1px solid #ad906226; pointer-events:none; }
.ornament { color:var(--gold-accent); font-size:1.5rem; margin:8px 0 20px; }
.ornament-bottom { margin:25px 0 0; }
.invitation-intro { font:500 9px/1.8 var(--font-sans); letter-spacing:2.5px; color:var(--text-medium); text-transform:uppercase; }
.section-title { font:400 clamp(3rem,5vw,4.5rem) var(--font-script); letter-spacing:0; color:var(--primary-blue-dark); }
.invitation-text { font-size:1.35rem; line-height:1.7; margin-bottom:28px; }
.date-highlight { background:none; border:0; border-top:1px solid #ad906266; border-bottom:1px solid #ad906266; border-radius:0; padding:20px 40px; box-shadow:none; }
.date-day { font:500 9px var(--font-sans); letter-spacing:3px; color:var(--text-medium); }
.date-main { align-items:center; gap:25px; }
.date-number { font:400 3.8rem var(--font-serif); }
.date-month,.date-year { font-size:1.2rem; letter-spacing:1px; }
.story-section { background:#e9eff3; }
.story-section .container { max-width:880px; }
.story-card { border-radius:6px; padding:40px 50px; border:1px solid #ad906266; background:#fffdf5cc; box-shadow:0 18px 60px #2d455710; backdrop-filter:blur(4px); }
.story-text { font-size:1.35rem; line-height:1.8; }
.gallery-section { background:var(--cream); }
.gallery-subtitle { margin:0 0 40px; font:400 italic 1.3rem var(--font-serif); }
.slideshow { max-width:800px; border-radius:3px; border:12px solid #fff; box-shadow:0 20px 65px #2d455718; }
.slides { aspect-ratio:4 / 3; }
.slide img { object-fit:contain; background:#e4ebef; }
.slide-nav { background:#f8f7f3ef; color:var(--primary-blue-dark); border:1px solid #ffffff99; }
.slide-dots { flex-wrap:wrap; gap:5px; }
.dot,.dot.is-active { width:24px; height:24px; background:transparent; position:relative; }
.dot::before { content:""; position:absolute; inset:8px; border-radius:50%; background:#fff9; box-shadow:0 1px 3px #2d455740; }
.dot.is-active::before { background:white; }
.details-section { background:#eaf0f4; }
.details-grid { grid-template-columns:repeat(2,minmax(0,1fr)); max-width:100%; gap:28px; }
.detail-card { position:relative; overflow:hidden; text-align:center; border:1px solid #ad906277; border-radius:160px 160px 6px 6px; padding:55px 38px 40px; background:linear-gradient(180deg,#ffffffdd,#f8f7f3f2); box-shadow:0 18px 55px #2d45570d; }
.detail-card::after { content:""; position:absolute; width:150px; height:150px; border:1px solid #ad90622e; border-radius:50%; top:-65px; right:-65px; pointer-events:none; }
.detail-card:hover { transform:translateY(-3px); box-shadow:0 14px 35px #2d45570b; }
.event-number { font:500 9px var(--font-sans); color:var(--text-medium); letter-spacing:2px; margin-bottom:28px; }
.card-title { font:400 2.8rem var(--font-serif); letter-spacing:-1px; margin-bottom:15px; }
.card-time { font:400 1.5rem var(--font-serif); margin:15px 0 25px; color:var(--primary-blue-dark); justify-content:center; }
.card-venue { font-size:1.15rem; overflow-wrap:anywhere; }
.card-venue-sub { font-size:11px; line-height:1.9; margin-top:10px; min-height:3.8em; }
.card-divider { margin:25px auto; width:45px; background:var(--gold-accent); opacity:.6; }
.card-note { font-size:11px; }
.map-link { display:inline-block; color:var(--primary-blue-dark); margin-top:28px; border-bottom:1px solid #ad9062; padding-bottom:7px; font:500 10px/1.7 var(--font-sans); text-decoration:none; }
.entourage-section { background:var(--cream); }
.entourage-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:0 45px; max-width:950px; margin:auto; border-top:1px solid var(--paper-line); }
.entourage-card { text-align:center; padding:36px 22px; border-bottom:1px solid var(--paper-line); }
.entourage-card h3 { font:500 9px/1.8 var(--font-sans); letter-spacing:2px; text-transform:uppercase; color:var(--text-medium); margin-bottom:18px; }
.entourage-card ul { list-style:none; }
.entourage-card li { font:400 1.65rem/1.5 var(--font-serif); overflow-wrap:anywhere; }
.guidelines-section { background:#dce7ee; }
.attire-card { max-width:820px; margin:auto; text-align:center; padding:40px 35px; border:1px solid #8ba1b155; background:#ffffff30; }
.attire-label,.palette-label { font:500 9px/1.8 var(--font-sans); letter-spacing:2px; color:var(--primary-blue-dark); }
.attire-text { font:400 1.7rem/1.5 var(--font-serif); margin:22px 0; overflow-wrap:anywhere; }
.theme-swatches { display:flex; justify-content:center; gap:12px; margin:32px 0 20px; }
.theme-swatches span { height:58px; width:43px; border-radius:24px 24px 3px 3px; background:var(--swatch); border:1px solid #53677666; box-shadow:0 4px 12px #2d45570a; }
.attire-gallery { display:grid; grid-template-columns:repeat(auto-fit,minmax(260px,1fr)); max-width:820px; gap:20px; margin:24px auto 0; }
.attire-gallery a { display:block; min-width:0; text-align:center; color:var(--primary-blue-dark); font:500 10px/1.8 var(--font-sans); letter-spacing:1px; text-decoration:none; }
.attire-gallery a:only-child { grid-column:1 / -1; }
.attire-gallery img { display:block; width:100%; height:auto; background:#f8f7f3; border:8px solid #f8f7f3; margin-bottom:12px; }
.wedding-notes { max-width:820px; margin:45px auto 0; border-top:1px solid #8ba1b166; padding:30px 0; }
.wedding-notes h3 { text-align:center; font:400 2.2rem var(--font-serif); margin-bottom:22px; }
.wedding-notes ol { padding-left:24px; font-size:12px; line-height:1.9; }
.wedding-notes li { padding:14px 0 14px 12px; border-bottom:1px solid #8ba1b144; overflow-wrap:anywhere; }
.wedding-notes li::marker { color:var(--primary-blue-dark); }
.rsvp-section { background:var(--cream); }
.rsvp-form { border-radius:3px; background:#fdfcf8f5; box-shadow:0 20px 70px #2d45570d; border:1px solid #ad906250; }
.rsvp-form input,.rsvp-form select,.rsvp-form textarea { border-radius:3px; font-size:14px; }
.rsvp-submit { border-radius:2px; background:var(--primary-blue-dark); font:500 11px var(--font-sans); letter-spacing:1.5px; padding:18px; }
.rsvp-submit:hover { background:#3d5c72; }
.party-reservation { max-width:600px; margin:25px auto; padding:25px; text-align:center; background:#e9eff3; border:1px solid #a5bbcd; }
.party-reservation > span { display:block; font-size:9px; letter-spacing:2px; color:var(--text-medium); }
.party-reservation strong { display:block; font:400 1.7rem var(--font-serif); color:var(--primary-blue-dark); margin:10px 0; }
.party-reservation p { font-size:11px; line-height:1.8; color:var(--text-medium); }
.social-section { background:var(--cream); border-top:1px solid var(--paper-line); }
.social-subtitle { margin:0 0 25px; }
.social-card { max-width:900px; border:0; border-radius:0; box-shadow:none; background:none; backdrop-filter:none; padding:20px 0; }
.social-hashtag { border-radius:0; padding:0; background:none; color:var(--primary-blue-dark); box-shadow:none; }
.social-hashtag .tag { font:400 clamp(2.6rem,6vw,4.5rem) var(--font-serif); letter-spacing:-1px; }
.social-hashtag .hash { font:300 2rem var(--font-serif); color:var(--gold-accent); }
.social-btn,.social-btn.primary { border:1px solid #9db0be88; border-radius:2px; background:none; font:500 9px var(--font-sans); letter-spacing:1px; box-shadow:none; padding:15px 18px; color:var(--primary-blue-dark); }
.social-btn.primary { background:var(--primary-blue-dark); color:white; border-color:var(--primary-blue-dark); }
.social-note { font-size:1rem; color:var(--text-medium); }
.footer { border-top:1px solid #ad906255; background:#324e62; padding:70px 25px; }
.footer.with-bg::after { background:#324e62ed; }
.footer-names { font:400 3rem var(--font-serif); color:#f5f3ea; }
.footer-date,.footer-hashtag,.footer-ornament { color:#d2e0e9; }
.footer-hashtag { font-size:9px; letter-spacing:2px; }
.music-toggle { width:42px; height:42px; top:auto; bottom:20px; right:20px; background:var(--cream); border:1px solid #8da7be; box-shadow:0 3px 15px #2d455718; }
.music-icon { width:19px; height:19px; }
.no-js .message-section,.no-js .story-section,.no-js .gallery-section,.no-js .details-section,.no-js .rsvp-section,.no-js .social-section { opacity:1; transform:none; }
.no-js .guest-controls,.no-js .guest-remove-btn { display:none; }

@media(max-width:1000px) {
  .envelope-container { gap:35px; padding:65px 45px; }
  .envelope-heading h1 { font-size:5.2rem; }
  .hero-section,.hero-section.hero-photo { padding:55px 40px; }
  .couple-names { font-size:5.5rem; }
  .nav-links { gap:20px; }
}
@media(max-width:700px) {
  html { scroll-padding-top:76px; }
  .envelope-section { background:radial-gradient(ellipse at 10% 0%,#edf2f4,transparent 60%),linear-gradient(160deg,#d7e3eb,#bdcfdc); }
  .envelope-section::before { inset:12px; }
  .envelope-container { grid-template-columns:1fr; gap:20px; padding:44px 32px 32px; max-width:500px; }
  .envelope-heading { text-align:center; }
  .envelope-heading .eyebrow { text-align:center; margin-bottom:20px; font-size:8px; }
  .envelope-heading h1 { font-size:clamp(3.5rem,13vw,5rem); letter-spacing:-2px; }
  .welcome-message { font-size:1.2rem; margin:20px 0; }
  .welcome-message br { display:none; }
  .welcome-date { margin:auto; font-size:9px; padding-top:16px; }
  .welcome-date span { display:none; }
  .welcome-stage { padding:22px 8px 0; gap:24px; }
  .welcome-stage::before { width:96%; }
  .stage-eyebrow { font-size:7px; letter-spacing:1.5px; }
  .envelope { width:90%; max-width:320px; }
  .envelope-front::after { font-size:10px; bottom:20px; }
  .open-btn { padding:16px 24px; font-size:9px; }
  .welcome-footnote { font-size:.95rem; }
  .invite-badge { text-align:center; }
  .invite-lock-card { margin:10px auto 0; }
  .wedding-nav { gap:16px; padding:12px 18px; }
  .nav-monogram { display:none; }
  .nav-links { display:flex; justify-content:space-between; width:100%; gap:12px; min-width:0; padding:4px 0; }
  .nav-links a { font-size:8px; letter-spacing:.8px; }
  .nav-links .nav-rsvp { padding:9px 12px; }
  .hero-section,.hero-section.hero-photo { padding:55px 24px 45px; min-height:calc(100svh - 66px); }
  .hero-section::after { inset:12px; }
  .hero-content { text-align:center; }
  .save-the-date { font-size:8px; letter-spacing:2px; margin-bottom:25px; }
  .couple-names { font-size:clamp(3.7rem,16vw,5rem); letter-spacing:0; }
  .couple-names .name-line { display:block; }
  .couple-names .ampersand { margin:0 8px 0 0; }
  .hero-date { font-size:1.1rem; letter-spacing:.5px; }
  .hero-cta { font-size:9px; gap:24px; }
  .countdown-container { justify-content:center; margin-top:30px; gap:10px; }
  .countdown-item { text-align:center; min-width:55px; padding:10px 12px; }
  .countdown-number { font-size:2.3rem; }
  .scroll-indicator { display:none; }
  .message-section,.story-section,.gallery-section,.details-section,.rsvp-section,.social-section,.entourage-section,.guidelines-section { padding:70px 24px; }
  .section-heading { font-size:3rem; letter-spacing:0; }
  .eyebrow { font-size:8px; letter-spacing:2px; margin-bottom:16px; }
  .section-intro { font-size:1.15rem; margin-bottom:32px; }
  .message-section .container { padding:35px 18px; }
  .section-title { font-size:3rem; }
  .invitation-text { font-size:1.2rem; }
  .date-highlight { padding:18px 20px; }
  .date-main { gap:15px; }
  .date-number { font-size:3.2rem; }
  .story-section .container { display:block; }
  .story-section .eyebrow,.story-section .section-heading { text-align:center; }
  .story-card { padding:28px 22px; margin-top:30px; }
  .story-text { font-size:1.2rem; line-height:1.8; }
  .slideshow { border-width:7px; }
  .slides { aspect-ratio:4 / 5; }
  .details-grid { grid-template-columns:1fr; gap:20px; }
  .detail-card { padding:48px 26px 32px; }
  .card-title { font-size:2.5rem; }
  .card-venue-sub { min-height:0; }
  .entourage-grid { grid-template-columns:1fr; }
  .entourage-card { padding:28px 10px; }
  .entourage-card li { font-size:1.5rem; }
  .attire-card { padding:30px 20px; }
  .attire-text { font-size:1.4rem; }
  .theme-swatches { gap:8px; }
  .theme-swatches span { width:35px; height:48px; }
  .attire-gallery { grid-template-columns:minmax(0,1fr); gap:20px; }
  .social-hashtag .tag { font-size:2.8rem; }
  .social-actions { gap:8px; }
  .social-btn,.social-btn.primary { padding:13px 12px; font-size:8px; }
  .footer { padding:50px 25px; }
  .footer-names { font-size:2.5rem; }
}
@media(max-width:360px) { .envelope-container { padding-left:24px; padding-right:24px; } .hero-section,.hero-section.hero-photo { padding-left:24px; padding-right:24px; } .nav-links { gap:8px; } .nav-links a { font-size:7.5px; letter-spacing:.5px; } .nav-links .nav-rsvp { padding:9px 8px; } .countdown-container { gap:6px; } .countdown-item { min-width:50px; padding:10px 8px; } }
@media(prefers-reduced-motion:reduce) { *,*::before,*::after { animation:none!important; transition:none!important; scroll-behavior:auto!important; } .message-section,.story-section,.gallery-section,.details-section,.rsvp-section,.social-section { transform:none; } }
