/* Homepage introduction and shared invitation collection. */
.home-intro { display: block; min-width: 0; min-height: 0; padding-block: 58px 32px; }
.home-intro-copy { width: 100%; max-width: 1040px; margin-inline: auto; text-align: center; }
.home-intro .eyebrow { font-size: 12px; letter-spacing: 2px; line-height: 1.6; margin: 0; }
.home-intro h1 { max-width: 100%; margin: 22px 0; font-size: clamp(44px,4.9vw,70px); line-height: 1.13; letter-spacing: -1.2px; }
.home-intro h1>span { display: block; }
.home-intro h1>span+span { margin-top: .12em; }
.home-intro .lede { max-width: 720px; margin: 0 auto; font-size: 18px; line-height: 1.8; color: #664a38; }
.home-themes.section { padding-block: 24px 0; }
.home-themes .section-head { margin-bottom: 22px; gap: 20px; }
.home-themes .section-head h2 { font-size: clamp(32px,3.4vw,46px); line-height: 1.15; }
.home-themes .section-head .eyebrow { margin-bottom: 12px; }
.theme-head-actions { display: grid; justify-items: end; gap: 5px; max-width: 330px; }
.theme-head-actions p { margin: 0; color: #765845; font-size: 12px; line-height: 1.55; text-align: right; }
.home-actions { padding-block: 12px 42px; }
.home-actions .hero-action-panel { grid-template-columns: minmax(0,.85fr) minmax(0,1.3fr); gap: 32px; }
.gallery-track { position: relative; display: flex; width: 100%; max-width: 100%; min-width: 0; flex-wrap: nowrap; gap: 0; overflow-x: auto; overflow-y: hidden; scroll-snap-type: x mandatory; overscroll-behavior-x: contain; scrollbar-width: none; -webkit-overflow-scrolling: touch; }
.gallery-track::-webkit-scrollbar { display: none; }
.gallery-track:focus-visible { outline: 2px solid var(--bronze); outline-offset: 5px; border-radius: 8px; }
.gallery-toolbar { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 12px 20px; margin: 0 0 24px; }
.gallery-navigation { display: flex; align-items: center; gap: 12px; }
.gallery-arrow { display: inline-grid; place-items: center; flex: 0 0 44px; width: 44px; height: 44px; border: 1px solid #b4895c; border-radius: 50%; background: #fff7e9; color: var(--espresso); font: 22px/1 Studio,Arial,sans-serif; }
.gallery-arrow:hover { background: #ecd6b7; }
.gallery-arrow:disabled { opacity: .35; }
.gallery-position { min-width: 60px; text-align: center; color: var(--bronze-text); font-size: 13px; font-variant-numeric: tabular-nums; }
.preview-motion-toggle { display: inline-flex; align-items: center; justify-content: center; min-height: 44px; border: 1px solid #c5a477; border-radius: 999px; background: #fff6e8; color: #67432d; padding: 9px 15px; font-size: 13px; line-height: 1.3; white-space: nowrap; }
.preview-motion-toggle[aria-pressed=true] { background: #ecd6b7; }
.theme-gallery { --gallery-inset-left: 48px; --gallery-inset-right: 48px; display: block; width: 100%; max-width: 100%; min-width: 0; }
/* Extend the scroll viewport through the page gutters, so they cannot cover cards. */
.theme-gallery .theme-grid.gallery-track {
  display: flex;
  box-sizing: border-box;
  grid-template-columns: none;
  width: calc(100% + var(--gallery-inset-left) + var(--gallery-inset-right));
  max-width: none;
  margin-left: calc(-1 * var(--gallery-inset-left));
  margin-right: calc(-1 * var(--gallery-inset-right));
  padding: 8px var(--gallery-inset-right) 30px var(--gallery-inset-left);
  scroll-padding-left: var(--gallery-inset-left);
  scroll-padding-right: var(--gallery-inset-right);
  gap: 28px;
  align-items: stretch;
}
.theme-gallery .theme-card { flex: 0 0 calc((100% - 56px)/3); min-width: 0; scroll-snap-align: start; }
.theme-gallery .theme-grid.gallery-track>.theme-card:not([hidden]) { display: flex; }
.theme-gallery .theme-card[hidden] { display: none; }
.theme-gallery .card-cover { padding: 28px 30px 34px; border-radius: 95px 95px 8px 8px; }
.theme-gallery .card-cover .device-phone { width: min(100%,238px); }
.theme-gallery .card-cover:hover .device-phone { transform: none; }
.theme-gallery .card-meta h3 { font-size: 30px; }
.theme-gallery .card-meta>p:not(.eyebrow) { font-size: 16px; line-height: 1.75; }
.emerald-cover-preview { position: relative; overflow: hidden; container-type: inline-size; background: #002926; }
.emerald-cover-preview>img { position: absolute; z-index: 0; inset: 0; display: block; width: 100%; height: 100%; object-fit: cover !important; object-position: center 24%; }
.emerald-cover-preview::after { position: absolute; inset: 0; z-index: 1; content: ''; background: linear-gradient(180deg,transparent 45%,#00221f44 63%,#00221feF 100%); pointer-events: none; }
.emerald-cover-copy { position: absolute; z-index: 2; right: 3%; bottom: 8%; left: 3%; color: #c2a376; text-align: center; }
.emerald-cover-copy h3 { margin: 0; color: #c2a376; font: 400 8cqw/1.05 Georgia,'Times New Roman',serif; letter-spacing: .05em; text-transform: uppercase; white-space: nowrap; }
.emerald-cover-copy h3 span { color: #e0c88e; font-size: .72em; }
.emerald-cover-copy p { margin: 5cqw 0 0; color: #f6f3eb; font: 400 3.2cqw/1.5 Georgia,'Times New Roman',serif; letter-spacing: .15em; text-transform: uppercase; }
.theme-card[data-theme="emerald-nocturne"] .device-open,.theme-showcase.emerald .device-open { width: 82%; min-height: 31px; padding: 7px 8px; border: 0; border-radius: 999px; background-color: transparent; background-image: url('emerald-nocturne/gold-button.png'); background-position: center 50%; background-repeat: no-repeat; background-size: 100% 450%; box-shadow: 0 2px 3px #0005; color: #211b13; font: 600 10px/1.2 Georgia,'Times New Roman',serif; letter-spacing: .05em; text-transform: uppercase; white-space: nowrap; flex-wrap: nowrap; gap: 4px; }
.has-auto-preview .device-invitation { position: relative; display: block; overflow: hidden; flex: 1 1 0; min-height: 0; background: var(--device-paper); }
.has-auto-preview .device-invite-footer { display: none; }
.has-auto-preview .device-invitation>.theme-preview { position: absolute; inset: 0; width: 100%; height: 100%; max-height: none; display: flex; align-items: center; }
.has-auto-preview .device-invitation>.theme-preview img { width: 100%; height: auto; object-fit: contain; }
.auto-invitation-frame { position: absolute; top: 0; left: 0; border: 0; display: block; max-width: none; transform-origin: 0 0; pointer-events: none; background: var(--device-paper); opacity: 0; transition: opacity .3s ease; }
.preview-ready .auto-invitation-frame { opacity: 1; }
/* A small frosted indicator leaves the opening snapshot visible while loading. */
.preview-buffering { position:absolute; z-index:5; left:50%; bottom:18px; display:inline-flex; align-items:center; justify-content:center; gap:8px; width:max-content; max-width:calc(100% - 28px); min-height:32px; padding:8px 12px; border:1px solid #b69a714d; border-radius:999px; background:#fffaf1eb; color:#775b3d; box-shadow:inset 0 1px 0 #ffffffb3,0 3px 14px #49301c12; backdrop-filter:blur(8px); -webkit-backdrop-filter:blur(8px); font:400 9px/1.2 Studio,Arial,sans-serif; letter-spacing:.04em; white-space:nowrap; pointer-events:none; opacity:0; visibility:hidden; transform:translate(-50%,5px); transition:opacity .25s ease,transform .25s ease,visibility 0s .25s; }
.preview-buffering-ring { position:relative; display:block; flex:0 0 14px; width:14px; height:14px; border:1px solid #aa8a5b40; border-top-color:#8c6a43; border-right-color:#aa8a5ba6; border-radius:50%; }
.preview-buffering-ring::after { content:''; position:absolute; top:-1.5px; left:calc(50% - 1.5px); width:3px; height:3px; border-radius:50%; background:#a48455; }
.is-preview-buffering > .preview-buffering { opacity:1; visibility:visible; transform:translate(-50%,0); transition-delay:0s; }
.is-preview-buffering .preview-buffering-ring { animation:preview-buffering-orbit 1.6s linear infinite; }
@keyframes preview-buffering-orbit { to { transform:rotate(360deg); } }
@media(prefers-reduced-motion:reduce) { .preview-buffering { transition:none; transform:translate(-50%,0); } .is-preview-buffering .preview-buffering-ring { animation:none; } }
/* The entire phone belongs to its sample link, including the loading poster. */
.has-auto-preview .device-screen { pointer-events: none; }
.has-auto-preview { touch-action: pan-x pan-y; }
.home-page .editorial-split { grid-template-columns: minmax(0,1fr); }
.home-page .editorial-copy { width: min(100%,900px); margin-inline: auto; }
.theme-preview.opening-poster-preview{position:relative;display:block;width:100%;height:100%;overflow:hidden;background:#fcf7ef}
.has-auto-preview .device-invitation>.opening-poster-preview img{display:block;width:100%;height:100%;object-fit:cover}
.wild-jasmine-live-preview>.theme-preview { position: relative!important; display: block!important; width: 100%!important; height: 100%!important; max-height: none!important; overflow: hidden; aspect-ratio: auto!important; container-type: inline-size; background: #f5f3e8; }
.wild-jasmine-live-preview .theme-preview>img,.wild-jasmine-live-preview .wild-jasmine-static-copy { display: none!important; }
.wild-jasmine-card-video { position: absolute; z-index: 0; inset: 0; display: block; width: 100%; height: 100%; object-fit: cover; }
.wild-jasmine-card-copy { position: absolute; z-index: 2; inset: 0; color: #58624c; pointer-events: none; text-shadow: 0 1px 4px #fff,0 0 12px #fff9; }
.wild-jasmine-card-invitation { position: absolute; top: 46%; left: 50%; display: flex; width: 100%; flex-direction: column; align-items: center; gap: 1px; text-align: center; transform: translate(-50%,-50%); opacity: 0; }
.wild-jasmine-card-invitation span { color: #777d68; font: 400 clamp(11px,5.8cqw,24px)/1.55 Georgia,'Times New Roman',serif; letter-spacing: .2em; }
.wild-jasmine-card-invitation em { color: #58624c; font: italic clamp(22px,11cqw,50px)/1.08 'Segoe Script','Brush Script MT',cursive; }
.wild-jasmine-card-personal { position: absolute; top: 28%; left: 5%; right: 5%; display: flex; flex-direction: column; align-items: center; text-align: center; opacity: 0; transform: translateY(10px); }
.wild-jasmine-card-personal>p { margin: 0; color: #777d68; font: 400 clamp(7px,4.4cqw,12px)/1.7 Georgia,'Times New Roman',serif; letter-spacing: .2em; }
.wild-jasmine-card-personal h2 { width: 100%; margin: 8% 0 0; color: #58624c; font: 400 clamp(20px,12cqw,44px)/1.08 Georgia,'Times New Roman',serif; letter-spacing: .025em; text-transform: uppercase; }
.wild-jasmine-card-personal h2>span { display: block; max-width: 100%; overflow-wrap: anywhere; }
.wild-jasmine-card-personal h2>em { display: block; margin: 3px 0; color: #7c8268; font: italic clamp(15px,7.5cqw,27px)/1.08 'Segoe Script','Brush Script MT',cursive; text-transform: none; }
.wild-jasmine-card-date { position: absolute; right: 6%; bottom: 18%; margin: 0; color: #58624c; font: 400 clamp(8px,5cqw,13px)/1.4 Georgia,'Times New Roman',serif; letter-spacing: .04em; text-align: right; opacity: 0; transform: translateY(8px); }
.wild-jasmine-live-preview.is-revealed .wild-jasmine-card-invitation { animation: wild-jasmine-invitation 4.3s ease both; }
.wild-jasmine-live-preview.is-revealed .wild-jasmine-card-personal,.wild-jasmine-live-preview.is-revealed .wild-jasmine-card-date { animation: wild-jasmine-personal 1s 4.354s ease both; }
.wild-jasmine-live-preview.is-revealed .wild-jasmine-card-personal h2 { animation: wild-jasmine-name-wipe 2.2s 4.354s cubic-bezier(.2,.7,.25,1) both; }
.wild-jasmine-live-preview.static-personal .wild-jasmine-card-invitation { display: none; }
.wild-jasmine-live-preview.static-personal .wild-jasmine-card-personal,.wild-jasmine-live-preview.static-personal .wild-jasmine-card-date { opacity: 1; transform: none; animation: none; }
.wild-jasmine-live-preview.static-personal .wild-jasmine-card-personal h2 { clip-path: none; animation: none; }
.wild-jasmine-live-preview.motion-paused .wild-jasmine-card-copy * { animation-play-state: paused!important; }
@media(prefers-reduced-motion:reduce) { .wild-jasmine-live-preview .wild-jasmine-card-invitation { display: none; } .wild-jasmine-live-preview .wild-jasmine-card-personal,.wild-jasmine-live-preview .wild-jasmine-card-date { opacity: 1; transform: none; animation: none; } .wild-jasmine-live-preview .wild-jasmine-card-personal h2 { clip-path: none; animation: none; } }
@keyframes wild-jasmine-invitation { 0% { opacity: 0; } 12%,55% { opacity: 1; } 78%,100% { opacity: 0; } }
@keyframes wild-jasmine-personal { 0% { opacity: 0; transform: translateY(10px); } 100% { opacity: 1; transform: translateY(0); } }
@keyframes wild-jasmine-name-wipe { 0% { opacity: 0; clip-path: inset(0 100% 0 0); } 15% { opacity: .35; } 100% { opacity: 1; clip-path: inset(0 0 0 0); } }
.theme-preview.wild-jasmine-static-preview { position:relative; display:block; width:100%; aspect-ratio:9/16; max-height:100%; overflow:hidden; isolation:isolate; container-type:inline-size; background:radial-gradient(ellipse at 52% 35%,#ffffffb8,transparent 58%),linear-gradient(145deg,#f8f7ed,#e8eadb 72%,#f5f3e8); }
.wild-jasmine-static-copy { position:absolute; inset:18% 8% 17%; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:7cqw; color:#354d3b; text-align:center; text-shadow:0 1px 8px #fff9; }
.wild-jasmine-static-occasion { margin:0; color:#747d69; font:400 clamp(7px,3.2cqw,12px)/1.7 Georgia,'Times New Roman',serif; letter-spacing:.2em; }
.wild-jasmine-static-names { display:flex; flex-direction:column; align-items:center; width:100%; max-width:100%; margin:0; color:#58624c; font:400 clamp(23px,10cqw,40px)/1.04 Georgia,'Times New Roman',serif; letter-spacing:.025em; text-transform:uppercase; }
.wild-jasmine-static-names>span { display:block; max-width:100%; overflow-wrap:anywhere; }
.wild-jasmine-static-names>em { display:block; margin:4px 0; color:#7c8268; font:italic clamp(15px,6cqw,24px)/1.08 'Segoe Script','Brush Script MT',cursive; text-transform:none; }
.wild-jasmine-static-date { margin:0; color:#58624c; font:400 clamp(8px,3.4cqw,13px)/1.4 Georgia,'Times New Roman',serif; letter-spacing:.04em; }
.standalone-preview-control { display: flex; justify-content: center; padding-top: 18px; }
#preview-frame { flex: 1 1 0; height: 0; min-height: 0; }
.editorial-visual>.standalone-preview-control { position: absolute; top: 52px; right: 20px; padding: 0; z-index: 4; }

/* A single, continuous line; the duplicate is visual only. */
.ribbon.ribbon-marquee { position: relative; display: flex; flex-wrap: nowrap; gap: 0; padding: 12px 0; min-height: 70px; }
.ribbon-viewport { min-width: 0; width: 100%; overflow: hidden; }
.ribbon-track { display: flex; width: max-content; animation: ribbon-drift 42s linear infinite; }
.ribbon-group { display: flex; flex: 0 0 auto; align-items: center; gap: 34px; padding-right: 34px; white-space: nowrap; }
.ribbon-group>span { flex: 0 0 auto; font-size: 16px; letter-spacing: .6px; }
.ribbon-group>i { font-style: normal; color: #e5c18d; }
.ribbon-marquee.is-paused .ribbon-track, .ribbon-marquee:hover .ribbon-track, .ribbon-marquee:focus-within .ribbon-track { animation-play-state: paused; }
.ribbon-motion-toggle { position: absolute; right: 12px; top: 50%; transform: translateY(-50%); min-height: 44px; padding: 8px 13px; border: 1px solid #cfa473; border-radius: 999px; background: #492417; color: #fff5e5; box-shadow: 0 0 18px 9px #492417; font-size: 12px; }
@keyframes ribbon-drift { to { transform: translateX(-50%); } }

/* Showcase frames render the real design with its demonstration controls quiet. */
html.is-showcase-preview { scroll-behavior: auto !important; scrollbar-width: none; }
html.is-showcase-preview::-webkit-scrollbar { display: none; }
.is-showcase-preview .sample-bar, .is-showcase-preview .journey-nav,
.is-showcase-preview .personalise-sample, .is-showcase-preview .sample-disclaimer,
.is-showcase-preview .form-demo-note, .is-showcase-preview .journey-brand { display: none !important; }
.is-showcase-preview .journey-shell { box-shadow: none; }
.is-showcase-preview .journey-cover { padding: 24px 18px 28px; }
.is-showcase-preview .journey-section { padding-block: 48px; }

@media(max-width:1100px) {
  .theme-gallery .theme-card { flex-basis: calc((100% - 28px)/2.25); }
}
@media(max-width:980px) {
  .theme-gallery { --gallery-inset-left: 28px; --gallery-inset-right: 28px; }
  .home-actions .hero-action-panel { grid-template-columns: minmax(0,1fr); gap: 0; }
}
@media(max-width:760px) {
  .home-intro { padding-block: 34px 20px; }
  .home-intro-copy { text-align: left; }
  .home-intro h1 { font-size: clamp(36px,9.4vw,56px); letter-spacing: -.7px; margin-block: 20px; }
  .home-intro .eyebrow { font-size: 11px; letter-spacing: 1.7px; }
  .home-intro .lede { font-size: 17px; line-height: 1.8; }
  .home-themes.section { padding-top: 22px; }
  .home-themes .section-head { gap: 10px; margin-bottom: 18px; }
  .home-themes .section-head h2 { font-size: 34px; margin-block: 10px 0; }
  .home-themes .section-head .eyebrow { margin: 0; }
  .home-themes .section-head .text-link { min-height: 44px; }
  .theme-head-actions { justify-items: start; }
  .theme-head-actions p { text-align: left; }
  .home-actions { padding-block: 0 28px; }
  .home-actions .hero-action-panel { border: 1px solid #815335; border-radius: 10px; padding: 38px 22px; }
  .theme-gallery .theme-grid.gallery-track { gap: 18px; }
  .theme-gallery .theme-card { flex-basis: 86%; }
  .theme-gallery .card-cover { padding: 28px 25px 34px; }
  .theme-gallery .card-cover .device-phone { width: min(100%,245px); }
  .gallery-toolbar { gap: 12px; }
  .gallery-position { min-width: 44px; }
  .gallery-navigation { gap: 8px; }
  .preview-motion-toggle { font-size: 12px; padding-inline: 12px; }
  .ribbon.ribbon-marquee { min-height: 64px; }
  .ribbon-group { gap: 26px; padding-right: 26px; }
  .ribbon-group>span { font-size: 15px; }
  .home-page .floating-concierge { display: inline-flex; align-items: center; justify-content: center; gap:9px; width: auto; min-height: 48px; height: auto; padding: 11px 16px; right: max(16px,env(safe-area-inset-right)); bottom: calc(16px + env(safe-area-inset-bottom)); border-radius: 28px; z-index: 50; }
  .home-page .floating-concierge svg { flex: 0 0 25px; width: 25px; height: 25px; }
  .home-page .floating-concierge>span { display: inline; }
  .home-page.preview-is-open .floating-concierge { visibility: hidden; }
}
@media(max-width:600px) {
  .theme-gallery { --gallery-inset-left: 20px; --gallery-inset-right: 20px; }
}
@media(prefers-reduced-motion:reduce) {
  .ribbon-track { animation: none; }
  .ribbon-viewport { overflow-x: auto; }
  .ribbon-group[aria-hidden=true] { display: none; }
  .ribbon-motion-toggle { display: none; }
  .auto-invitation-frame { transition: none; }
}

/* Keep the featured invitation in the opening viewport. */
.home-intro { display: grid; grid-template-columns: minmax(0,1.25fr) minmax(0,.85fr); align-items: center; gap: 48px; padding-block: 30px 42px; }
.home-intro-copy { max-width: 650px; text-align: left; }
.home-intro h1 { font-size: clamp(40px,4.1vw,62px); line-height: 1.08; margin-block: 22px; }
.home-intro h1>span+span { margin-top: .28em; }
.home-intro .lede { max-width: 510px; margin: 0; font-size: 17px; line-height: 1.7; }
.home-intro .intro-actions {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  align-items: stretch;
  gap: clamp(8px, 2vw, 12px);
  width: min(100%, 480px);
  min-width: 0;
  margin-top: 0;
  margin-inline: auto;
  container-type: inline-size;
}
.home-intro .intro-actions > .intro-action {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: clamp(3px, 1.5cqi, 7px);
  min-width: 0;
  min-height: 48px;
  padding: 13px clamp(4px, 2cqi, 12px);
  border: 1px solid #97704d66;
  border-radius: 999px;
  font: 400 14px/1.25 Studio, Arial, sans-serif;
  font-size: clamp(10px, 3vw, 14px);
  font-size: min(14px, 3.85cqi);
  letter-spacing: 0;
  text-decoration: none;
  transform: none;
  transition: background .2s, border-color .2s, box-shadow .2s, transform .2s;
}
.home-intro .intro-action > span { min-width: 0; white-space: nowrap; }
.home-intro .intro-action > svg { display: block; flex: 0 0 auto; width: 1em; height: 1em; fill: none; stroke: currentColor; stroke-width: 1.6; stroke-linecap: round; stroke-linejoin: round; }
.home-intro .intro-actions > .intro-action-primary { color: #fff7e9; background: linear-gradient(135deg, #603e2a, #381e12); border-color: #4b2c1a; box-shadow: inset 0 1px 0 #ffffff21, 0 4px 12px #492b1d14; }
.home-intro .intro-actions > .intro-action-secondary { color: #4b2c1a; background: #fff9efb3; box-shadow: inset 0 1px 0 #ffffffb3, 0 4px 12px #492b1d08; }
.home-intro .intro-action:focus-visible { outline: 2px solid #977449; outline-offset: 4px; }
@media (hover: hover) and (pointer: fine) {
  .home-intro .intro-actions > .intro-action:hover { transform: translateY(-1px); box-shadow: 0 6px 16px #492b1d1a; }
  .home-intro .intro-actions > .intro-action-primary:hover { background: #65432e; border-color: #65432e; }
  .home-intro .intro-actions > .intro-action-secondary:hover { background: #f1e3ce; border-color: #97704d; }
}
@media (prefers-reduced-motion: reduce) {
  .home-intro .intro-actions > .intro-action { transition: none; }
  .home-intro .intro-actions > .intro-action:hover { transform: none; }
}
.intro-details { margin: 22px 0 0; font-size: 12px; letter-spacing: .8px; color: #664a38; }
.intro-showcase { display: flex; flex-direction: column; align-items: center; gap: 12px; min-width: 0; position: relative; isolation: isolate; }
.intro-showcase::before { content: ''; position: absolute; z-index: -1; inset: 8% -5% 14%; border: 1px solid #b4895c40; border-radius: 50% 50% 12px 12px; background: radial-gradient(ellipse,#d6b58e50,transparent 70%); }
.intro-phone { display: block; width: clamp(190px,32svh,264px); max-width: 100%; border-radius: 38px; }
.intro-phone:focus-visible { outline: 2px solid var(--bronze); outline-offset: 8px; }
.intro-caption { margin: 0; color: #664a38; font-size: 13px; }
.intro-caption span { margin-left: 14px; font-size: 11px; }
.intro-showcase .preview-motion-toggle { min-height: 32px; padding: 6px 12px; font-size: 11px; }
.home-themes.section { border-top: 1px solid #b4895c40; padding-top: 38px; }
@media(max-width:980px) and (min-width:761px) {
  .home-intro { gap: 28px; grid-template-columns: minmax(0,1.2fr) minmax(0,.8fr); }
  .home-intro h1 { font-size: 40px; }
}
@media(max-width:760px) {
  .home-intro { grid-template-columns: minmax(0,1fr); gap: 16px; padding-block: 22px 28px; }
  .home-intro-copy { display: contents; }
  .home-intro-heading { grid-row: 1; text-align: center; }
  .home-intro .eyebrow { font-size: 10px; }
  .home-intro h1 { max-width: 480px; margin: 12px auto 0; font-size: clamp(27px,6.8vw,40px); line-height: 1.06; letter-spacing: -.5px; }
  .home-intro h1>span+span { margin-top: .16em; }
  .intro-showcase { grid-row: 2; gap: 8px; }
  .intro-showcase::before { inset-inline: 10%; }
  .intro-phone { width: clamp(130px,21svh,184px); }
  .home-intro .lede { grid-row: 3; max-width: 440px; margin: 0 auto; text-align: center; font-size: 14px; line-height: 1.5; }
  .intro-actions { grid-row: 4; justify-content: center; gap: 8px 20px; margin: 0; }
  .intro-actions .button { font-size: 14px; }
  .intro-details { display: none; }
  .intro-phone .device-status { flex-basis: 27px; padding-inline: 10px; font-size: 8px; }
  .intro-phone .device-status>svg { width: 26px; }
  .intro-phone .dynamic-island { height: 14px; top: 6px; }
  .intro-phone .dynamic-island::after { width: 5px; height: 5px; top: 4px; }
  .intro-phone .device-invite-footer { flex-basis: 48px; padding: 0 8px 12px; }
  .intro-phone .device-open { font-size: 8px; padding: 6px 2px; gap: 8px; }
  .intro-phone .device-brand { display: none; }
}

/* Stitched leather actions immediately beneath the introduction. */
.home-intro-heading { container-type: inline-size; }
.home-intro .home-intro-heading h1 { font-size: min(52px, 6cqi); max-width: none; }

/* These two headings keep their phrases together at the shared website size. */
.home-page .home-two-line-heading { width: 100%; max-width: none; }
.home-page .home-two-line-heading > .heading-line {
  display: block;
  font-size: inherit;
  line-height: inherit;
  white-space: nowrap;
}
.home-page .home-pricing .section-head { flex-wrap: wrap; }
.home-page .home-pricing .section-head > div { flex: 1; min-width: min(100%, 44rem); width: 100%; }

.home-intro h1 > span:last-child { white-space: nowrap; }
.home-intro .intro-actions.hero-action-panel { display: flex; grid-area: auto; gap: 12px 24px; padding: 32px 24px; border: 1px solid #815335; border-radius: 10px; }
.home-intro .intro-actions.hero-action-panel .button { min-height: 48px; padding: 13px 20px; font-size: 14px; }
.home-intro .intro-actions.hero-action-panel .text-link { color: #fff4e2; border-color: #cfa473; }
@media(max-width:760px) {
  .home-intro .intro-actions.hero-action-panel { grid-row: 4; padding: 30px 18px; gap: 8px 20px; }
}

/* The description carries the full-width stitched leather treatment. */
.home-intro .intro-leather.hero-action-panel { display: block; grid-area: auto; width: 100%; max-width: none; padding: 32px 24px; color: #fff5e5; border: 1px solid #815335; border-radius: 10px; }
.intro-phone { width: clamp(210px,36svh,290px); }
@media(max-width:760px) {
  .home-intro .intro-leather.hero-action-panel { grid-row: 3; width: 100%; padding: 30px 20px; }
  .intro-phone { width: clamp(145px,23svh,202px); }
}

/* An unbroken leather ribbon from one screen edge to the other. */
.home-intro .intro-leather.hero-action-panel {
  position: relative;
  overflow: visible;
  isolation: isolate;
  border: 0;
  border-radius: 0;
  background: none;
  box-shadow: none;
}
.home-intro .intro-leather.hero-action-panel::before {
  inset: 0;
  left: calc((100% - 100vw) / 2);
  width: 100vw;
  height: auto;
  z-index: -1;
  opacity: 1;
  background-color: var(--leather-base);
  background-image: url('fine-stitch.svg'), url('fine-stitch.svg'), var(--leather-texture);
  background-repeat: repeat-x, repeat-x, repeat, repeat;
  background-position: left 8px, left calc(100% - 8px), center, center;
  background-size: 28px 16px, 28px 16px, auto, 520px;
  box-shadow: inset 0 2px 2px #d8a36d55, inset 0 -2px 4px #1c08088c;
}
.home-intro .intro-leather.hero-action-panel::after { content: none; }
.cta::before, .cta::after {
  background-image: url('fine-stitch.svg');
  background-size: 28px 16px;
  opacity: .82;
}
@media(min-width:761px) {
  .home-intro-copy { display: contents; }
  .home-intro-heading { grid-column: 1; grid-row: 1; }
  .intro-showcase { grid-column: 2; grid-row: 1; }
  .home-intro .intro-leather.hero-action-panel { grid-column: 1 / -1; grid-row: 2; text-align: center; padding-inline: max(24px, 10%); }
  .intro-actions { grid-column: 1 / -1; grid-row: 3; justify-content: center; margin-top: 0; }
  .intro-details { grid-column: 1 / -1; grid-row: 4; text-align: center; margin: 0; }
  .home-intro { row-gap: 24px; }
}

.home-page { overflow-x: clip; }
html:has(.home-page) { overflow-x: clip; }

/* Keep the comparison readable on narrow screens without horizontal scrolling. */
@media(max-width:640px) {
  .comparison-table-wrap { overflow: visible; border: 0; background: transparent; box-shadow: none; }
  .comparison-table { display: block; width: 100%; min-width: 0; }
  .comparison-table thead { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; border: 0; }
  .comparison-table tbody { display: block; }
  .comparison-table tr { display: block; margin: 0 0 14px; overflow: hidden; border: 1px solid var(--line); border-radius: 12px; background: var(--cream); box-shadow: 0 6px 18px #4026230a; }
  .comparison-table td { display: grid; grid-template-columns: minmax(98px, 32%) minmax(0,1fr); gap: 10px; padding: 11px 13px; font-size: 12px; line-height: 1.5; text-align: left; }
  .comparison-table td:first-child { display: block; padding: 13px 15px; background: var(--warm); font-family: Editorial, Georgia, serif; font-size: 17px; color: var(--burgundy); }
  .comparison-table td:nth-child(2)::before, .comparison-table td:nth-child(3)::before, .comparison-table td:nth-child(4)::before { font-family: Arial, sans-serif; font-size: 10px; line-height: 1.4; font-weight: 700; letter-spacing: .02em; color: var(--burgundy); }
  .comparison-table td:nth-child(2)::before { content: 'Printed Cards'; }
  .comparison-table td:nth-child(3)::before { content: 'Static PDF or Video'; }
  .comparison-table td:nth-child(4)::before { content: 'Digitrika Web Invitation'; }
  .comparison-table .comparison-cell-copy { grid-column: 2; }
  .comparison-table td.col-highlight { background: #f4ecdf; }
  .comparison-table td:first-child { border-bottom: 1px solid var(--line); }
}

/* Vertical gestures scrub previews; horizontal gestures still browse the gallery. */
.has-auto-preview { touch-action: pan-x pinch-zoom; user-select: none; -webkit-user-select: none; }
.has-auto-preview img { -webkit-user-drag: none; }

/* A layered stationery setting for the invitation phones. */
.intro-showcase {
  background: radial-gradient(ellipse at 50% 88%, #8d5d3522 0, transparent 58%);
}
.intro-showcase::before {
  inset: 7% 8% 6%;
  border: 1px solid #fffaf0;
  border-radius: 48% 48% 8px 8px;
  transform: rotate(-7deg);
  background: linear-gradient(145deg, #fffcf1c9, #e7d0ac85), url('pressed-ivory.webp') center / 460px;
  box-shadow: 0 16px 30px -20px #66412c65, inset 0 0 0 7px #fff8eb77, inset 0 0 0 8px #b58a5430;
  pointer-events: none;
}
.intro-showcase::after {
  content: '';
  position: absolute;
  inset: 0 -2% 0;
  z-index: -1;
  background: url('bronze-botanical.svg') no-repeat right 2% bottom 8% / 35% auto;
  opacity: .65;
  pointer-events: none;
}
.intro-phone { position: relative; z-index: 1; }
.theme-gallery .card-cover {
  isolation: isolate;
  border-radius: 120px 120px 12px 12px;
  background: radial-gradient(ellipse at 35% 10%, #fffdf5c9, #ead6b280), url('pressed-ivory.webp') center / 460px;
  box-shadow: inset 0 0 0 1px #b08c5730;
}
.theme-gallery .card-cover::before {
  inset: 12px;
  border: 1px solid #b58a5438;
  border-radius: inherit;
  background: url('bronze-botanical.svg') no-repeat right -24px bottom 16px / 42% auto;
  opacity: .55;
  z-index: -1;
}
@media(max-width:760px) {
  .intro-showcase::before { inset: 6% 20% 5%; }
  .intro-showcase::after { inset: 0 12%; background-size: 32% auto; background-position: right bottom 8%; }
}

.theme-showcase.linen .device-open{background:linear-gradient(120deg,#f2dfa5,#c39b58);color:#4b3932;border:1px solid #a87f42}
.theme-card[data-theme="royal-linen"] .device-open{background:linear-gradient(120deg,#f2dfa5,#c39b58);color:#4b3932;border:1px solid #a87f42}
/* Royal Linen previews use the current full-screen envelope opening video. */
.theme-preview.linen-opening { container-type:inline-size; position:relative; display:block; width:100%; aspect-ratio:360/520; max-height:100%; overflow:hidden; isolation:isolate; background:#2d0819 url('royal-linen/embroidered-textile.webp') center/cover no-repeat; }
.linen-opening-preview-video { position:absolute; inset:0; display:block; width:100%; height:100%; object-fit:cover; object-position:center; background:#2d0819; }
.theme-preview.heirloom-opening-preview,.theme-preview.golden-opening-preview{position:relative;display:block;width:100%;aspect-ratio:9/16;overflow:hidden;background:#fcf7ef}
.heirloom-opening-preview .linen-opening-preview-video,.golden-opening-preview .linen-opening-preview-video{object-fit:cover;background:#fcf7ef}

/* Palace Reverie's homepage card previews the same closed-door opening. */
.theme-preview.palace-opening-preview { container-type:inline-size; position:relative; display:block; width:100%; aspect-ratio:360/520; max-height:100%; overflow:hidden; isolation:isolate; background:#2d0819 url('royal-linen/embroidered-textile.webp') center/cover no-repeat; }
.palace-opening-preview-card { position:absolute; inset:0; width:100%; height:100%; overflow:hidden; background:#35091e; container-type:inline-size; }
.palace-opening-preview-doors { position:absolute; inset:0; z-index:2; overflow:hidden; }
.palace-opening-preview-door { position:absolute; top:0; bottom:0; width:50.5%; background-color:#741b37; background-image:url('royal-linen/maroon-embroidered-textile.png'); background-size:200% 100%; background-repeat:no-repeat; border:.43cqw solid rgba(204,172,111,.72); box-shadow:inset 0 0 0 2.14cqw rgba(246,224,185,.13),inset 0 0 0 2.56cqw rgba(201,164,99,.35); }
.palace-opening-preview-door-left { left:0; background-position:left center; }
.palace-opening-preview-door-right { right:0; background-position:right center; }
.palace-opening-preview-doors::after { content:''; position:absolute; z-index:3; top:0; bottom:0; left:50%; width:.56cqw; transform:translateX(-50%); background:linear-gradient(90deg,rgba(69,30,23,.65),#d6bd85 45%,#f5e8c9 52%,#9a6b35); box-shadow:0 .28cqw 1.39cqw rgba(18,2,8,.75); }
.palace-opening-preview-ribbon { position:absolute; inset:0; z-index:4; pointer-events:none; background:url('royal-linen/opening-ribbon-lace.png') center/contain no-repeat; }
.palace-opening-preview-diamond { position:absolute; z-index:5; top:50%; left:50%; width:20cqw; aspect-ratio:1; transform:translate(-50%,-50%); pointer-events:none; background:url('royal-linen/opening-diamond-brooch.png') center/contain no-repeat; filter:drop-shadow(0 .55cqw 1.1cqw rgba(28,2,13,.3)); }
