:root {
    --emerald: #274636;
    --deep: #19392d;
    --gold: #b2975b;
    --gold-dark: #816b3e;
    --paper: #faf7ef;
    --ink: #2b4033;
    --muted: #5e6659;
    --line: #b8a77955;
    --serif: 'Cormorant Garamond', Georgia, serif;
    --script: 'Great Vibes', 'Cormorant Garamond', cursive;
    --body: 'Segoe UI', Arial, sans-serif;
    --section-space: clamp(44px, 5.5vw, 76px);
}

* {
    box-sizing: border-box;
}

html {
    scroll-behavior: auto;
    scrollbar-gutter: stable;
}

body {
    margin: 0;
    color: var(--ink);
    background: var(--paper);
    font: 16px/1.7 var(--body);
}

html.invitation-pending,
body.invitation-pending {
    overflow: hidden;
    overscroll-behavior: none;
}

h1,
h2,
h3,
p {
    margin: 0;
}

button {
    font: inherit;
    cursor: pointer;
}

button,
a {
    -webkit-tap-highlight-color: transparent;
}

button:focus-visible,
a:focus-visible,
[role="button"]:focus-visible {
    outline: 3px solid var(--gold);
    outline-offset: 6px;
}

.svg-definitions {
    position: absolute;
    width: 0;
    height: 0;
    overflow: hidden;
}


/* The envelope occupies the entire browser viewport on every device. */

.envelope-experience {
    position: fixed;
    inset: 0;
    z-index: 100;
    overflow: hidden;
    background: transparent;
    opacity: 1;
    transition: opacity 850ms ease;
}

.envelope-experience.departing {
    opacity: 0;
    pointer-events: none;
}

.envelope-experience.dismissed {
    display: none;
}

.envelope-wrapper {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    container-type: inline-size;
}

.envelope {
    position: absolute;
    inset: 0;
    overflow: hidden;
    isolation: isolate;
    cursor: pointer;
    background: transparent;
}

.env-flap-top,
.env-flap-bottom,
.env-flap-left,
.env-flap-right {
    position: absolute;
    inset: 0;
}

.env-flap-top,
.env-flap-bottom,
.env-flap-left,
.env-flap-right {
    background-image: linear-gradient(145deg, #ffffff10, transparent 48%, #17291c0b);
    transition: transform 5200ms cubic-bezier(.42, 0, .25, 1);
}

.env-flap-top {
    z-index: 4;
    clip-path: polygon(0 0, 100% 0, 50% 49%);
    background-color: #d5c3a4;
}

.env-flap-bottom {
    z-index: 4;
    clip-path: polygon(0 100%, 50% 48%, 100% 100%);
    background-color: #c7ae88;
}

.env-flap-left {
    z-index: 5;
    clip-path: polygon(0 0, 64% 50%, 0 100%);
    background-color: #d2bd9b;
}

.env-flap-right {
    z-index: 6;
    clip-path: polygon(100% 0, 42% 50%, 100% 100%);
    background-color: #233a2e;
    background-image: repeating-linear-gradient(45deg, transparent 0 38px, #d2b66c17 38px 39px);
}

.wax-seal {
    position: absolute;
    left: 45%;
    top: 50%;
    z-index: 8;
    width: clamp(80px, 8vw, 116px);
    aspect-ratio: 1;
    border-radius: 48% 51% 49% 47%;
    transform: translate(-50%, -50%);
    color: #72562a;
    background: radial-gradient(circle at 32% 24%, #f2d899, #c1a05c 57%, #977237 75%, #dfc280 84%, #99783b);
    box-shadow: 0 7px 18px #1a171453, inset 0 0 0 2px #b4924e, inset 0 0 0 5px #d7bb7a, inset 0 0 0 7px #9a793b;
    transition: transform 3000ms cubic-bezier(.45, 0, .55, 1);
}

.seal-rim,
.seal-inner-rim {
    position: absolute;
    inset: 12%;
    border: 1px solid #f6df9caa;
    border-radius: 50%;
}

.seal-inner-rim {
    inset: 17%;
    border-color: #88682c77;
}

.seal-rings {
    position: absolute;
    inset: 18%;
    width: 64%;
    height: 64%;
    filter: drop-shadow(0 1px 0 #e8d499);
}

.env-bismillah {
    position: absolute;
    z-index: 20;
    top: max(28px, env(safe-area-inset-top));
    left: 50%;
    transform: translateX(-50%);
    width: max-content;
    max-width: calc(100% - 40px);
    color: #344b35;
    font: clamp(25px, 2.5vw, 35px)/1.6 'Traditional Arabic', 'Times New Roman', serif;
    transition: opacity 350ms;
}

.envelope-address {
    position: absolute;
    z-index: 10;
    bottom: max(84px, 16%);
    left: 8%;
    width: 76%;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: clamp(2px, .6svh, 6px);
    transition: opacity 350ms;
    color: #3b4632;
}

.envelope-address .envelope-weds {
    font: 400 .65em/1.2 var(--script);
}

.envelope-address {
    font-size: clamp(24px, min(4.5vw, 5.5svh), 56px);
}

.envelope-address .envelope-name {
    max-width: 100%;
    font: 400 1em/1.2 var(--script);
}

.env-instruction {
    position: absolute;
    z-index: 25;
    bottom: max(22px, env(safe-area-inset-bottom));
    left: 32px;
    min-height: 44px;
    padding: 8px 0;
    border: 0;
    background: none;
    color: #3c4431;
    font: 12px/1.5 var(--body);
    letter-spacing: .12em;
    text-transform: uppercase;
    transition: opacity 300ms;
}

.skip-opening {
    position: absolute;
    z-index: 25;
    bottom: max(22px, env(safe-area-inset-bottom));
    right: 32px;
    min-height: 44px;
    padding: 8px 16px;
    border: 1px solid #e8dcc355;
    border-radius: 24px;
    background: #19392d;
    color: #faf3df;
    font: 12px/1.5 var(--body);
}

.opening .env-instruction,
.opening .env-bismillah,
.opening .envelope-address,
.opening .skip-opening {
    opacity: 0;
    pointer-events: none;
}

.is-open .env-flap-top {
    transform: translateY(-105%);
}

.is-open .env-flap-bottom {
    transform: translateY(105%);
}

.is-open .env-flap-left {
    transform: translateX(-105%);
}

.is-open .env-flap-right {
    transform: translateX(105%);
}

.is-open .wax-seal {
    transform: translate(calc(-50% + 105cqw), -50%) rotate(14deg);
}


/* A spacious cover, a formal invitation, and an editorial programme. */

.invitation-journey {
    position: relative;
}

.scene {
    position: relative;
    padding: var(--section-space) 40px;
}

.scene-inner {
    position: relative;
    width: min(100%, 1120px);
    margin-inline: auto;
}

.scene-hero {
    display: grid;
    place-items: center;
    min-height: min(100svh, 820px);
    padding: 100px 40px 64px;
    overflow: hidden;
    background: radial-gradient(ellipse at 50% 30%, #fffef9, #f0ecdf);
}

.hero-topline {
    position: absolute;
    top: 28px;
    left: 40px;
    right: 40px;
    display: flex;
    align-items: center;
    overflow: hidden;
    color: var(--emerald);
}

.hero-marquee-group,
.hero-marquee-track {
    display: flex;
    flex: 0 0 auto;
    width: max-content;
}

.hero-marquee-group {
    animation: wedding-marquee var(--marquee-duration, 16s) linear infinite;
}

.hero-marquee-text {
    flex: 0 0 auto;
    padding-right: 2em;
    white-space: nowrap;
    font: 500 clamp(16px, 1.8vw, 24px)/1.5 var(--serif);
    letter-spacing: .08em;
}

.hero-topline:hover .hero-marquee-group {
    animation-play-state: paused;
}

@keyframes wedding-marquee {
    from { transform: translateX(0); }
    to { transform: translateX(-50%); }
}

.hero-arch {
    position: absolute;
    top: 76px;
    bottom: 32px;
    left: 50%;
    width: min(880px, 88%);
    transform: translateX(-50%);
    border: 1px solid #b2975b42;
    border-radius: 44% 44% 0 0;
    pointer-events: none;
}

.hero-arch:before {
    content: '';
    position: absolute;
    inset: 12px;
    border: 1px solid #b2975b25;
    border-radius: inherit;
}

.hero-branch {
    position: absolute;
    bottom: 8%;
    width: clamp(90px, 11vw, 160px);
    height: 240px;
    color: #8e966245;
    pointer-events: none;
}

.hero-branch.branch-left {
    left: 3%;
}

.hero-branch.branch-right {
    right: 3%;
    bottom: auto;
    top: 14%;
}

.scene-hero .scene-inner {
    z-index: 1;
    display: flex;
    flex-direction: column;
    align-items: center;
    width: min(100%, 800px);
    gap: 16px;
    text-align: center;
}

.hero-bismillah {
    color: var(--emerald);
    font: 30px/1.5 'Traditional Arabic', 'Times New Roman', serif;
}

.hero-eyebrow,
.heading-eyebrow,
.lineage-label {
    display: block;
    color: var(--gold-dark);
    font: 11px/1.7 var(--body);
    letter-spacing: .14em;
    text-transform: uppercase;
}

.hero-names-block {
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 24px;
    width: 100%;
    margin-top: 8px;
    font-weight: 400;
    outline: none;
}

.hero-groom-name,
.hero-bride-name {
    color: var(--emerald);
    font: clamp(78px, 7.5vw, 116px)/1.2 var(--script);
}

.hero-and {
    color: var(--gold-dark);
    font: clamp(40px, 4vw, 54px)/1 var(--script);
}

.hero-full-names {
    color: var(--emerald);
    font: 21px/1.4 var(--serif);
}

.hero-full-names span {
    padding-inline: 10px;
    color: var(--gold-dark);
}

.hero-wording {
    max-width: 500px;
    color: var(--muted);
    font: italic 22px/1.45 var(--serif);
    text-wrap: balance;
}

.hero-date-pill {
    display: flex;
    align-items: center;
    justify-content: center;
    flex-wrap: wrap;
    gap: 18px;
    color: var(--emerald);
    font-weight: 600;
    margin-top: 10px;
}

.hero-date-pill > span:first-child {
    font-size: 17px;
}

.hero-date-pill > span:last-child {
    font-size: 14px;
}

.pill-dot {
    color: var(--gold-dark);
    font-size: 11px;
}

.hero-explore {
    display: flex;
    flex-direction: column;
    gap: 4px;
    min-height: 44px;
    margin-top: 4px;
    color: var(--gold-dark);
    font-size: 11px;
    letter-spacing: .09em;
    text-transform: uppercase;
    text-decoration: none;
}

.hero-explore span {
    font-size: 20px;
    line-height: 1;
}

.family-invitation {
    background: #fdfbf5;
}

.family-invitation-inner {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: clamp(32px, 5vw, 64px);
    width: min(100%, 1000px);
    margin: auto;
    align-items: center;
}

.formal-invite h2 {
    color: var(--emerald);
    font: 500 clamp(34px, 3.2vw, 44px)/1.12 var(--serif);
    margin: 18px 0;
}

.formal-invite p {
    max-width: 460px;
    color: var(--muted);
    font-size: 16px;
    line-height: 1.8;
}

.formal-invite strong {
    display: block;
    margin-bottom: 10px;
    color: var(--emerald);
    font: 600 25px/1.4 var(--serif);
}

.couple-lineage {
    border-left: 1px solid var(--line);
    padding-left: clamp(28px, 5vw, 64px);
}

.couple-lineage h3 {
    color: var(--emerald);
    font: 500 28px/1.2 var(--serif);
    margin: 8px 0;
}

.couple-lineage p {
    color: var(--muted);
    font-size: 14px;
    line-height: 1.7;
}

.lineage-amp {
    display: block;
    padding: 18px 0;
    color: var(--gold-dark);
    font: 42px/1 var(--script);
}

.scene-events {
    background: #f3efe3;
}

.section-heading {
    display: flex;
    justify-content: space-between;
    align-items: end;
    gap: 24px;
    margin-bottom: 32px;
}

.heading-title {
    color: var(--emerald);
    font: 500 clamp(34px, 3.2vw, 44px)/1.15 var(--serif);
    margin-top: 12px;
    text-wrap: balance;
}

.section-heading>p {
    color: var(--muted);
    font: italic 23px/1.45 var(--serif);
}

.event-card {
    display: grid;
    grid-template-columns: 120px minmax(0, 1fr) 170px;
    gap: clamp(24px, 3vw, 44px);
    padding: 36px 0;
    border-top: 1px solid var(--line);
}

.event-card:last-child {
    border-bottom: 1px solid var(--line);
}

.event-date {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 8px;
}

.event-day-number {
    color: var(--emerald);
    font: 400 76px/.9 var(--serif);
    font-variant-numeric: lining-nums;
}

.event-month-year {
    color: var(--gold-dark);
    font-size: 11px;
    letter-spacing: .1em;
    margin-top: 8px;
}

.event-weekday {
    color: var(--muted);
    font: italic 22px/1.2 var(--serif);
}

.event-card-body {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 16px;
}

.event-label,
.venue-label {
    color: var(--gold-dark);
    font: 11px/1.7 var(--body);
    letter-spacing: .1em;
    text-transform: uppercase;
}

.event-name {
    color: var(--emerald);
    font: 500 clamp(30px, 2.5vw, 36px)/1.15 var(--serif);
    text-wrap: balance;
}

.event-host {
    max-width: 520px;
    color: var(--muted);
    font-size: 15px;
    line-height: 1.8;
}

.event-time {
    color: var(--emerald);
    font: normal 600 26px/1.3 var(--serif);
    margin-top: 2px;
}

.event-venue {
    display: flex;
    flex-direction: column;
    gap: 8px;
    margin-top: 4px;
}

.venue-name {
    color: var(--emerald);
    font: 600 24px/1.3 var(--serif);
}

.venue-address,
.event-baraat {
    color: var(--muted);
    font-size: 15px;
    line-height: 1.8;
}

.event-baraat {
    font-style: italic;
}

.event-actions {
    display: flex;
    flex-direction: column;
    align-self: center;
    gap: 10px;
}

.btn-directions,
.btn-calendar,
.btn-replay {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 44px;
    padding: 10px 16px;
    border: 0;
    border-radius: 26px;
    font: 12px/1.5 var(--body);
    text-decoration: none;
    transition: background 200ms;
}

.btn-directions {
    color: #fffaf0;
    background: var(--emerald);
}

.btn-directions:hover {
    background: var(--deep);
}

.btn-calendar {
    color: var(--emerald);
    background: none;
    text-decoration: underline;
    text-underline-offset: 5px;
}

.btn-calendar:hover {
    background: #e5dfce;
}

.scene-countdown {
    padding-block: 52px;
    background: var(--deep);
    color: #f8f0de;
}

.scene-countdown .scene-inner {
    display: grid;
    grid-template-columns: 1fr 1fr;
    align-items: center;
    gap: 48px;
}

.scene-countdown .section-heading {
    display: block;
    margin: 0;
}

.scene-countdown .heading-title {
    color: #f8f0de;
    font-size: clamp(32px, 3vw, 40px);
}

.scene-countdown .heading-eyebrow {
    color: #dcc491;
}

.countdown-display {
    display: grid;
    grid-template-columns: 1fr auto 1fr auto 1fr auto 1fr;
    align-items: center;
    gap: clamp(6px, 1.4vw, 18px);
}

.cd-unit {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 12px;
    min-width: 0;
}

.cd-num {
    color: #fff7e5;
    font: 500 clamp(38px, 4vw, 58px)/1 var(--serif);
    font-variant-numeric: tabular-nums;
}

.cd-label {
    color: #dfc898;
    font: 10px/1.5 var(--body);
    text-transform: uppercase;
    letter-spacing: .06em;
}

.cd-sep {
    color: #af965e;
    font: 24px/1 var(--serif);
    padding-bottom: 25px;
}

.scene-rsvp {
    background: #faf8f1;
}

.rsvp-layout {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: clamp(32px, 6vw, 80px);
}

.scene-rsvp .section-heading {
    display: block;
    margin-bottom: 0;
}

.scene-rsvp .section-heading>p {
    margin-top: 24px;
}

.rsvp-card {
    border-top: 1px solid var(--line);
    padding-top: 24px;
}

.rsvp-name {
    color: var(--emerald);
    font: 500 36px/1.2 var(--serif);
    margin: 12px 0 18px;
}

.rsvp-phones {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 4px;
}

.rsvp-phone {
    display: inline-flex;
    align-items: center;
    min-height: 44px;
    color: var(--emerald);
    font-size: 16px;
    text-decoration: none;
    border-bottom: 1px solid #b2975b44;
}

.rsvp-family {
    border-top: 1px solid var(--line);
    margin-top: 30px;
    padding-top: 24px;
}

.family-heading {
    color: var(--gold-dark);
    font-size: 12px;
    letter-spacing: .14em;
}

.family-list {
    list-style: none;
    padding: 0;
    margin: 12px 0 0;
    color: var(--muted);
    font-size: 15px;
    line-height: 2;
}

.rsvp-card {
    padding: 28px;
    border: 1px solid var(--line);
    background: linear-gradient(145deg, #fffdf8, #f3efe3);
    box-shadow: 0 14px 36px #43351b0a;
}

.rsvp-family {
    margin-top: 24px;
    padding-top: 20px;
}

.family-list {
    display: grid;
    grid-template-columns: 1fr 1fr;
    column-gap: 20px;
    line-height: 1.8;
}

.scene-events .section-heading {
    align-items: center;
    margin-bottom: 38px;
}

.scene-events .section-heading>p {
    padding-left: 24px;
    border-left: 1px solid var(--line);
}

.event-card {
    grid-template-columns: 112px minmax(0, 1fr) 150px;
    gap: 32px;
    padding: 30px 0;
}

.event-date {
    position: relative;
}

.event-date::after {
    content: '';
    position: absolute;
    top: 8px;
    right: -17px;
    bottom: 8px;
    width: 1px;
    background: var(--line);
}

.event-card-body {
    gap: 12px;
}

.scene-events {
    background: linear-gradient(180deg, #f7f3e8 0%, #f1ecdd 100%);
}

.scene-events .section-heading {
    margin-bottom: 42px;
}

.event-card {
    position: relative;
    grid-template-columns: 118px minmax(0, 1fr) 150px;
    gap: 30px;
    margin: 0 0 18px;
    padding: 30px;
    border: 1px solid #b8a77944;
    background: #fbf9f2;
    box-shadow: 0 12px 30px #43351b08;
}

.event-card:last-child {
    margin-bottom: 0;
    border-bottom: 1px solid #b8a77944;
}

.event-date::after {
    right: -16px;
}

.event-day-number {
    font-size: 68px;
}

.event-card-body {
    gap: 12px;
}

.scene-closing {
    overflow: hidden;
    color: #f9f1df;
    background: var(--deep);
    text-align: center;
}

.scene-closing .scene-inner {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 24px;
}

.scene-closing .heading-eyebrow {
    color: #d6c18d;
}

.closing-couple {
    color: #faf1dd;
    font: 400 clamp(64px, 7vw, 96px)/1.25 var(--script);
}

.closing-couple span {
    color: #c7af78;
    padding-inline: 10px;
}

.closing-hashtag {
    color: #dcc895;
    font-size: 12px;
    letter-spacing: .13em;
}

.closing-quote {
    color: #e6e6d5;
    font: italic 28px/1.5 var(--serif);
}

.btn-replay {
    color: #e8dcc2;
    background: none;
    border: 1px solid #c7af7855;
    margin-top: 12px;
}

.btn-replay:hover {
    background: #ffffff0a;
}

.closing-branch {
    position: absolute;
    right: 3%;
    bottom: 8%;
    width: 16%;
    height: 70%;
    color: #c8b47c22;
    pointer-events: none;
}

.site-footer {
    display: flex;
    justify-content: space-between;
    gap: 20px;
    padding: 24px 40px;
    border-top: 1px solid #d0bd8222;
    background: var(--deep);
    color: #cfceba;
    font-size: 11px;
}


/* Restrained editorial palette, a soft photographic cover, and dimensional folds. */

:root {
    --emerald: #294538;
    --deep: #17382d;
    --gold: #aa9362;
    --gold-dark: #816e48;
    --paper: #f8f6ef;
    --ink: #293b31;
    --muted: #62665d;
    --line: #aa936244;
}

.envelope {
    perspective: 1700px;
    perspective-origin: 50% 48%;
    transform-style: preserve-3d;
}

.env-flap-top,
.env-flap-bottom,
.env-flap-left,
.env-flap-right {
    backface-visibility: hidden;
    transform-style: preserve-3d;
    transition: transform 5200ms cubic-bezier(.42, 0, .25, 1);
}

.env-flap-top {
    transform-origin: 50% 0;
    box-shadow: 0 16px 36px #19241a20;
}

.env-flap-bottom {
    transform-origin: 50% 100%;
}

.env-flap-left {
    transform-origin: 0 50%;
}

.env-flap-right {
    transform-origin: 100% 50%;
}

.is-open .env-flap-top {
    transform: rotateX(-158deg);
}

.is-open .env-flap-bottom {
    transform: rotateX(158deg);
}

.is-open .env-flap-left {
    transform: translateX(-108%) rotateY(-16deg);
}

.is-open .env-flap-right {
    transform: translateX(108%) rotateY(16deg);
}

.wax-seal {
    transition: transform 5000ms cubic-bezier(.42, 0, .25, 1), filter 350ms ease;
}

.envelope:hover .wax-seal {
    filter: brightness(1.06);
}

.scene-hero {
    isolation: isolate;
    background: #fff;
}

.scene-hero::before {
    content: '';
    position: absolute;
    inset: 0;
    z-index: 0;
    background: linear-gradient(145deg, #fff 0%, #fdfcf8 60%, #f8f6ef 100%);
    pointer-events: none;
}

.hero-arch {
    border-color: #aa936233;
}

.hero-arch::before {
    border-color: #aa93621c;
}

.hero-branch {
    opacity: .58;
}

.family-invitation,
.scene-rsvp {
    background-color: #f8f6ef;
}

.scene-events {
    background: #f1eee5;
}

.event-card {
    border-color: #aa936233;
    background: #faf9f5;
    box-shadow: 0 10px 28px #28372a08;
}

.rsvp-card {
    border-color: #aa936233;
    background: #fbfaf6;
    box-shadow: 0 10px 28px #28372a08;
}

.scene-countdown,
.scene-closing,
.site-footer {
    background-color: #17382d;
}

.env-flap-top,
.env-flap-bottom,
.env-flap-left {
    background-color: #e8e2d4;
}

.env-flap-right {
    background-color: #294538;
}

@media (max-width: 900px) {
    .event-card {
        grid-template-columns: 100px minmax(0, 1fr);
        gap: 24px 32px;
    }
    .event-actions {
        grid-column: 2;
        flex-direction: row;
        justify-content: flex-start;
        align-items: center;
    }
    .event-day-number {
        font-size: 80px;
    }
    .family-invitation-inner,
    .rsvp-layout {
        gap: 40px;
    }
    .scene-countdown .scene-inner {
        gap: 30px;
    }
}

@media (max-width: 700px) {
    .scene {
        padding-inline: 24px;
    }
    .hero-topline {
        top: 20px;
        left: 24px;
        right: 24px;
    }
    .scene-hero {
        min-height: 100svh;
        padding: max(76px, env(safe-area-inset-top)) 28px max(52px, env(safe-area-inset-bottom));
        background: #fff;
    }
    .scene-hero::before {
        background: linear-gradient(180deg, #fff 0%, #fffefa 65%, #f8f6ef 100%);
    }
    .scene-hero .scene-inner {
        gap: 14px;
    }
    .hero-arch {
        top: 62px;
        bottom: 20px;
        width: calc(100% - 28px);
        border-radius: 44% 44% 0 0;
    }
    .hero-arch:before {
        inset: 7px;
    }
    .hero-branch {
        width: 70px;
        height: 160px;
        opacity: .55;
    }
    .hero-branch.branch-left {
        left: 4%;
        bottom: 7%;
    }
    .hero-branch.branch-right {
        right: 4%;
        top: 18%;
    }
    .hero-bismillah {
        font-size: 26px;
    }
    .hero-eyebrow {
        max-width: 270px;
        font-size: 10px;
        line-height: 1.8;
    }
    .hero-names-block {
        flex-direction: column;
        gap: 0;
        margin-top: 4px;
    }
    .hero-groom-name,
    .hero-bride-name {
        font-size: clamp(62px, min(18vw, 12svh), 80px);
        line-height: 1.12;
    }
    .hero-and {
        font-size: 30px;
        line-height: 1;
        padding-block: 3px;
    }
    .hero-full-names {
        display: none;
    }
    .hero-full-names span {
        padding-inline: 4px;
    }
    .hero-wording {
        font-size: 21px;
        max-width: 330px;
    }
    .hero-date-pill {
        gap: 8px;
    }
    .hero-date-pill > span:first-child {
        font-size: 14px;
    }
    .hero-date-pill > span:last-child {
        font-size: 12px;
    }
    .hero-explore {
        margin-top: 6px;
    }
    .desktop-break {
        display: none;
    }
    .family-invitation-inner,
    .rsvp-layout {
        grid-template-columns: 1fr;
        gap: 40px;
    }
    .formal-invite h2 {
        font-size: 36px;
    }
    .couple-lineage {
        border-left: 0;
        border-top: 1px solid var(--line);
        padding: 32px 0 0;
    }
    .section-heading {
        display: block;
        margin-bottom: 24px;
    }
    .section-heading>p {
        margin-top: 18px;
        font-size: 22px;
    }
    .heading-title {
        font-size: 36px;
    }
    .scene-countdown .scene-inner {
        grid-template-columns: 1fr;
        gap: 32px;
        text-align: center;
    }
    .scene-events .section-heading {
        margin-bottom: 22px;
    }
    .scene-events .section-heading>p {
        margin-top: 12px;
        padding: 0;
        border: 0;
        font-size: 20px;
    }
    .rsvp-layout {
        gap: 28px;
    }
    .rsvp-card {
        padding: 24px 22px;
    }
    .family-list {
        grid-template-columns: 1fr;
        gap: 2px;
    }
    .countdown-display {
        width: min(100%, 440px);
        margin-inline: auto;
    }
    .cd-num {
        font-size: 48px;
    }
    .closing-couple {
        font-size: clamp(72px, 15vw, 104px);
    }
    .closing-couple span {
        padding-inline: 2px;
    }
    .closing-branch {
        width: 23%;
        right: 4%;
        height: 65%;
    }
    .site-footer {
        flex-direction: column;
        align-items: center;
        gap: 6px;
        padding: 24px;
        text-align: center;
    }
    .env-bismillah {
        top: max(24px, env(safe-area-inset-top));
        font-size: 26px;
    }
    .envelope-address {
        left: 6%;
        width: 66%;
        align-items: flex-start;
        transform: none;
        font-size: clamp(22px, min(6vw, 4.8svh), 28px);
        text-align: left;
    }
    .envelope-surname {
        display: inline;
    }
    .env-instruction {
        left: 20px;
        bottom: max(20px, env(safe-area-inset-bottom));
        font-size: 9px;
        letter-spacing: .08em;
    }
    .skip-opening {
        right: 20px;
        bottom: max(20px, env(safe-area-inset-bottom));
        padding-inline: 12px;
        font-size: 10px;
    }
}

@media (max-width: 480px) {
    .scene-events {
        padding: 48px 18px;
    }
    .scene-events .scene-inner {
        width: 100%;
    }
    .scene-events .section-heading {
        margin-bottom: 26px;
    }
    .scene-events .heading-eyebrow {
        max-width: 290px;
        font-size: 9px;
        letter-spacing: .12em;
    }
    .scene-events .heading-title {
        font-size: 34px;
    }
    .scene-events .section-heading>p {
        margin-top: 8px;
        font-size: 19px;
        line-height: 1.35;
    }
    .event-card {
        display: block;
        margin-bottom: 14px;
        padding: 22px 20px;
        border-radius: 3px;
    }
    .event-date {
        display: grid;
        grid-template-columns: minmax(78px, max-content) minmax(0, 1fr);
        column-gap: 16px;
        row-gap: 0;
        margin: 0 0 18px;
        padding-bottom: 15px;
        border-bottom: 1px solid var(--line);
    }
    .event-day-number {
        grid-row: 1 / 3;
        align-self: center;
        font-size: clamp(56px, 15vw, 62px);
    }
    .event-month-year {
        margin: 0;
        align-self: end;
    }
    .event-weekday {
        align-self: start;
    }
    .event-date::after {
        display: none;
    }
    .event-card-body {
        gap: 11px;
    }
    .event-label,
    .venue-label {
        font-size: 10px;
    }
    .event-name {
        font-size: 29px;
    }
    .event-host,
    .venue-address,
    .event-baraat {
        font-size: 14px;
        line-height: 1.65;
    }
    .event-time {
        font-size: 24px;
    }
    .event-venue {
        gap: 5px;
        margin-top: 1px;
    }
    .venue-name {
        font-size: 22px;
    }
    .event-actions {
        grid-column: 1;
        margin-top: 16px;
        flex-direction: row;
        align-self: auto;
        flex-wrap: wrap;
        gap: 6px;
    }
    .btn-directions,
    .btn-calendar {
        padding-inline: 14px;
        font-size: 11px;
    }
    .cd-num {
        font-size: 42px;
    }
    .cd-label {
        font-size: 9px;
        letter-spacing: 0;
    }
    .countdown-display {
        gap: 6px;
    }
    .closing-couple {
        font-size: 48px;
    }
}

@media (max-height: 700px) and (orientation: portrait) {
    .scene-hero {
        padding-top: 70px;
        padding-bottom: 28px;
    }
    .scene-hero .scene-inner {
        gap: 10px;
    }
    .hero-explore {
        margin-top: 0;
    }
    .hero-arch {
        top: 58px;
        bottom: 14px;
    }
}

@media (max-height: 600px) and (orientation: portrait) {
    .scene-hero {
        padding: 64px 24px 24px;
    }
    .scene-hero .scene-inner {
        gap: 8px;
    }
    .hero-bismillah {
        font-size: 24px;
    }
    .hero-eyebrow {
        font-size: 9px;
    }
    .hero-groom-name,
    .hero-bride-name {
        font-size: clamp(54px, 10svh, 62px);
        line-height: 1.1;
    }
    .hero-and {
        font-size: 24px;
        padding-block: 0;
    }
    .hero-wording {
        font-size: 20px;
        line-height: 1.35;
    }
    .hero-date-pill {
        font-size: 10px;
        gap: 8px;
        margin-top: 4px;
    }
    .hero-explore {
        min-height: 36px;
        font-size: 9px;
    }
    .hero-explore span {
        font-size: 18px;
    }
}

@media (max-height: 540px) and (orientation: landscape) {
    .env-bismillah {
        top: 12px;
        font-size: 24px;
    }
    .envelope-address {
        font-size: clamp(20px, 5svh, 28px);
    }
    .envelope-surname {
        display: inline;
    }
    .env-instruction,
    .skip-opening {
        bottom: 12px;
    }
}

@media (prefers-reduced-motion: reduce) {
    .hero-marquee-group {
        animation: none;
    }
    .hero-marquee-group .hero-marquee-track:not(:first-child) {
        display: none;
    }
    .hero-marquee-track:first-child .hero-marquee-text:not(:first-child) {
        display: none;
    }
    .hero-marquee-track:first-child .hero-marquee-text:first-child {
        padding-right: 0;
    }
    html {
        scroll-behavior: auto;
    }
    *,
    *::before,
    *::after {
        animation: none !important;
        transition-duration: 1ms !important;
    }
    .env-flap-top,
    .env-flap-bottom,
    .env-flap-left,
    .env-flap-right {
        transition-duration: 5200ms !important;
    }
    .wax-seal {
        transition-duration: 5000ms, 350ms !important;
    }
    .envelope-experience {
        transition-duration: 850ms !important;
    }
}
