@font-face{font-family:Cormorant;src:url('./assets/home-20260910/cormorant-400.ttf') format('truetype');font-weight:400;font-display:swap}@font-face{font-family:Hand;src:url('./assets/home-20260910/bad-script.ttf') format('truetype');font-display:swap}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:#f8f1ea;color:#2c2119;font-family:Cormorant,Georgia,serif}a{color:inherit;text-decoration:none}a:focus-visible{outline:2px solid #896033;outline-offset:6px}h1,h2,h3,p{margin:0}h1,h2,h3{font-weight:400}em{font-family:Hand,cursive;font-style:normal;color:#8c6234}button,a{touch-action:manipulation}.hero,.collection{position:relative;isolation:isolate;min-height:56.28vw;max-width:2200px;margin:auto}.hero-art{position:absolute;inset:0;z-index:-1;background:#f8f1ea url('./assets/home-20260910/hero-background.png') center/cover no-repeat}.brand-header{padding:2.6% 5.55% 0}.brand{display:inline-flex;align-items:center;gap:18px;font-size:clamp(28px,2.35vw,44px);line-height:1}.heart-logo{width:52px;height:56px;flex-shrink:0;stroke:#a47a48;stroke-width:2;stroke-linecap:round}.brand small{display:block;margin-top:10px;font:10px Arial,sans-serif;letter-spacing:3.5px;color:#9f8575}.hero-copy{margin:4.1% 0 0 5.55%;width:40%}.hero h1{font-size:5.5vw;line-height:.84;letter-spacing:-.025em}.hero h1 em{display:block;font-size:4.55vw;line-height:1.45;white-space:nowrap;letter-spacing:0;margin-top:10px}.hero-description{font-size:1.72vw;line-height:1.08;margin-top:1.75vw;color:#493c32}.hero-actions{display:flex;gap:1.15vw;margin-top:2.7vw}.button{display:inline-flex;align-items:center;justify-content:center;gap:24px;min-height:54px;padding:17px 30px;border-radius:40px;text-transform:uppercase;font-family:Georgia,serif;font-size:14px;line-height:1.2;white-space:nowrap;transition:transform .2s,box-shadow .2s,background .2s}.button:hover{transform:translateY(-3px)}.button-gold{color:#fff9f1;background:linear-gradient(165deg,#b89364,#927044);box-shadow:0 11px 20px #936d3822;border:1px solid transparent}.button-gold:hover{box-shadow:0 13px 24px #936d3838}.button-outline{border:1px solid #b99a7c;background:#fffaf133}.button-outline:hover{background:#fff8edcc}.button>span{font-size:25px;font-family:Georgia}.hero-actions .button{min-height:3.7vw;padding:1vw 1.8vw;gap:1.5vw;font-size:.88vw}.hero-actions .button-gold{min-width:17.85vw}.hero-actions .button-outline{min-width:15.1vw}.play-icon{border:1px solid;border-radius:50%;width:23px;height:23px;display:grid;place-items:center;font-size:15px!important}.benefits{display:flex;list-style:none;padding:0;margin:3.4vw 0 0;gap:4.75vw;text-transform:uppercase;color:#8f7d6d;font-size:.78vw;letter-spacing:.05em;line-height:1.14}.benefits li{position:relative}.benefits li+li:before{content:'✦';position:absolute;left:-2.8vw;top:.45em;color:#b28c5a}.hero-signature{position:absolute;bottom:6.1%;left:2.8%;font:1.55vw/1.35 Hand,cursive;color:#927864;transform:rotate(-7deg);width:26%}.hero-signature>span:not(.signature-heart){display:block;margin-left:20%}.signature-heart{position:absolute;right:0;top:40%;font:45px Cormorant;color:#aa7b44}.collection{background:#faf4ed url('./assets/home-20260910/gallery-background.png') center/cover no-repeat;padding:1.05% 0 2.6%;scroll-margin-top:0}.collection-heading{text-align:center}.collection h2{font-size:4.7vw;line-height:.87;letter-spacing:-.025em}.collection h2 em{display:block;font-size:4.5vw;line-height:1.1;letter-spacing:0}.collection-heading>p{font-size:1.7vw;line-height:1.2;margin-top:.55vw}.invitation-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1.35vw;width:70.65%;margin:.2vw auto 0;scroll-margin-top:20px;align-items:stretch}.invitation-card{background:linear-gradient(#fffaf570,#faf4edee);border:1px solid #d7b798;border-radius:50% 50% 28px 28px / 18% 18% 28px 28px;overflow:hidden;box-shadow:0 14px 20px #9c745513}.card-photo{position:relative;display:block;aspect-ratio:370/389;overflow:hidden;border-radius:50% 50% 12px 12px / 28% 28% 12px 12px;margin:5px 5px 0}.card-photo img{position:absolute;max-width:none;width:451.892%;height:auto;top:-47.815%;left:var(--crop-left);transition:filter .3s}.card-photo:hover img{filter:brightness(1.045)}.photo-ribbon{--crop-left:-67.568%}.photo-doors{--crop-left:-175.676%}.photo-book{--crop-left:-283.784%}.card-copy{text-align:center;padding:.8vw 1.35vw 1vw}.card-copy h3{font-size:2vw;line-height:1.05;letter-spacing:-.025em}.card-mood{text-transform:uppercase;letter-spacing:.16em;font-size:.85vw;line-height:1.4;margin-top:.45vw;color:#996f44}.card-rule{display:block;width:35px;height:1px;background:#b48c5a;margin:.8vw auto}.card-description{font-size:1.15vw;line-height:1.03;min-height:3.45vw}.card-copy .button{width:100%;margin-top:.85vw;font-size:.87vw;min-height:3.2vw;padding:.85vw .6vw;gap:1.4vw}.collection-action{display:flex;justify-content:center;align-items:center;gap:24px;margin-top:1vw}.collection-action>.button{min-width:20.6vw;min-height:3.5vw;font-size:.91vw}.collection-action>span{font:26px Hand;color:#af8757;width:120px;text-align:center}.side-note{position:absolute;font-size:.85vw;letter-spacing:.18em;line-height:1.55;text-transform:uppercase;color:#9b806a}.side-note span{display:block;margin-top:14px;color:#a47740;font-size:24px;line-height:1.4;letter-spacing:0}.side-note-left{top:8.4%;left:6.3%}.side-note-bottom{right:3%;bottom:4%;text-align:center}.side-handwriting{position:absolute;right:4%;top:5%;font:1.55vw/1.2 Hand;color:#95806b;transform:rotate(-17deg);text-align:center}.side-handwriting span{display:block;font:44px Georgia;color:#a47740;margin-top:10px}
@font-face{font-family:Calligraphy;src:url('./assets/home-20260910/marck-script.ttf') format('truetype');font-display:swap}
em,.hero-signature,.side-handwriting{font-family:Calligraphy,Hand,cursive}
@media(min-width:1101px){.hero-copy{margin-top:3.6%}.hero h1{font-size:5.2vw}.hero h1 em{font-size:5.2vw;line-height:1.1;margin-top:12px}.hero-description{margin-top:2vw}.hero-actions .button{padding-left:1.4vw;padding-right:1.4vw}.hero-signature{font-size:2vw}.collection h2 em{font-size:5.2vw;line-height:.85}.collection-heading>p{margin-top:.3vw}.card-copy .button{width:90%;min-height:3.1vw}}
@media(max-width:1100px) and (min-width:701px){.brand small{font-size:8px;letter-spacing:2px}.heart-logo{width:38px;height:42px}.brand{gap:10px}.hero-actions .button{font-size:11px;padding:13px 16px;min-height:46px;gap:10px}.hero-actions .button-gold{min-width:0}.hero-actions .button-outline{min-width:0}.hero-copy{width:45%;margin-top:4%}.benefits{font-size:11px;gap:4vw;margin-top:2.5vw}.hero-signature{font-size:19px;bottom:4%}.hero-description{font-size:20px}.collection{padding-top:30px;padding-bottom:35px}.collection h2{font-size:58px}.collection h2 em{font-size:50px}.collection-heading>p{font-size:24px}.invitation-grid{width:91%;gap:14px;margin-top:20px}.card-copy{padding:15px 10px}.card-copy h3{font-size:28px}.card-mood{font-size:11px;letter-spacing:.1em;min-height:30px}.card-description{font-size:17px;min-height:60px}.card-description br{display:none}.card-copy .button{font-size:11px;gap:10px;min-height:44px;padding:12px 8px}.side-note,.side-handwriting{display:none}.collection-action>.button{font-size:13px}.collection-action{margin-top:20px}}
@media(max-width:700px){.hero,.collection{min-height:0}.hero{padding-bottom:25px}.hero-art{position:relative;inset:auto;width:100%;height:108vw;max-height:570px;margin-top:25px;background-size:auto 100%;background-position:right center;order:3}.hero{display:flex;flex-direction:column;background:#faf4ee}.brand-header{padding:24px 6% 0;order:0}.brand{font-size:28px;gap:10px}.brand small{font-size:8px;letter-spacing:2px;margin-top:7px}.heart-logo{width:36px;height:42px}.hero-copy{order:1;width:auto;margin:40px 6% 0}.hero h1{font-size:clamp(49px,12.3vw,78px);line-height:.88;letter-spacing:-.025em}.hero h1 em{font-size:clamp(34px,8.4vw,55px);line-height:1.6;margin-top:8px}.hero-description{font-size:23px;line-height:1.12;margin-top:20px;max-width:480px}.desktop-break{display:none}.hero-actions{gap:12px;margin-top:25px;flex-direction:column;align-items:stretch;max-width:450px}.hero-actions .button{font-size:13px;min-height:52px;padding:14px 20px;gap:24px}.benefits{font-size:11px;line-height:1.25;gap:28px;justify-content:space-between;margin-top:30px;max-width:440px}.benefits li+li:before{left:-18px;font-size:10px}.hero-signature{position:relative;left:auto;bottom:auto;order:4;font-size:21px;width:290px;margin:0 6% 15px;transform:rotate(-5deg)}.signature-heart{font-size:35px}.collection{padding:38px 0 35px;background-size:auto 100%;background-position:center}.collection-heading{padding:0 6%}.collection h2{font-size:53px;line-height:.95}.collection h2 em{font-size:45px;line-height:1.25}.collection-heading>p{font-size:23px;line-height:1.1;margin:16px auto 25px;max-width:320px}.invitation-grid{width:86%;max-width:420px;display:grid;grid-template-columns:1fr;gap:28px;margin-top:0}.invitation-card{border-radius:50% 50% 25px 25px / 18% 18% 25px 25px}.card-copy{padding:18px 19px 22px}.card-copy h3{font-size:34px}.card-mood{font-size:12px;line-height:1.5;margin-top:10px;letter-spacing:.12em}.card-rule{margin:14px auto}.card-description{font-size:20px;line-height:1.12;min-height:0}.card-description br{display:none}.card-copy .button{margin-top:20px;font-size:12px;min-height:50px;padding:14px 12px;gap:20px}.side-note,.side-handwriting{display:none}.collection-action{margin:28px 6% 0}.collection-action>span{display:none}.collection-action>.button{font-size:12px;min-height:52px;padding:16px 22px;width:100%;max-width:370px;gap:20px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.button,.card-photo img{transition:none}}
@media(max-width:700px){.hero-signature{max-width:82%;font-size:clamp(18px,5.2vw,24px)}}
@media(min-width:901px) and (max-width:1100px){.hero-actions{gap:8px}.hero-actions .button{font-size:10px;padding:12px 13px;gap:9px}.hero-actions .button>span{font-size:18px}.hero-actions .play-icon{width:19px;height:19px}}
@media(min-width:1101px){.invitation-grid{margin-top:-.7vw}.hero h1 em{transform:rotate(-3deg);transform-origin:left center}.hero-signature:after{content:'';position:absolute;width:70%;height:24px;border-top:1px solid #b08a63;border-radius:50%;left:40%;bottom:-18px}.side-handwriting:after{content:'';position:absolute;width:100%;height:35px;border-bottom:1px solid #b08a63;border-radius:50%;left:35%;bottom:-8px}}
@media(max-width:1100px){.card-description br{display:initial}.hero-signature{position:relative;bottom:auto;margin-top:30px;padding-bottom:20px}.hero{min-height:64vw}}
@media(min-width:701px) and (max-width:900px){.hero{display:flex;flex-direction:column}.brand-header{order:0}.hero-copy{order:1;width:88%;margin:40px 6% 0}.hero h1{font-size:70px}.hero h1 em{font-size:65px;line-height:1.3}.hero-description{font-size:27px;line-height:1.15}.hero-actions{margin-top:28px}.hero-actions .button{font-size:14px;min-height:52px;padding:15px 26px}.benefits{font-size:13px;gap:70px;margin-top:32px}.hero-art{order:2;position:relative;inset:auto;height:650px;margin-top:32px;background-size:auto 100%;background-position:right}.hero-signature{order:3;font-size:30px;width:340px;margin-left:4%}.invitation-grid{max-width:430px;grid-template-columns:1fr;gap:25px}.card-copy h3{font-size:34px}.card-mood{min-height:0;font-size:13px}.card-description{font-size:21px;min-height:0}.card-copy{padding:20px}.card-copy .button{font-size:13px;margin-top:20px}.collection h2 em{line-height:1.2}}

/* Desktop: size the whole composition to the available window, not width alone. */
@media (min-width: 901px) {
  .hero {
    --hero-unit: min(1vw, 1.7768svh);
    height: min(56.28vw, 100svh);
    min-height: 0;
    max-width: none;
    background: #f8f1ea;
  }
  .hero-art {
    background-image: linear-gradient(90deg, #f8f1ea 0%, #f8f1ea max(0px, calc(100% - 177.68svh)), transparent max(22%, calc(100% - 140svh))), url('./assets/home-20260910/hero-background.png');
    background-size: 100% 100%, auto 100%;
    background-position: right center;
  }
  .hero .brand-header { position: absolute; top: 4.6%; left: 5.55%; padding: 0; }
  .hero .brand { font-size: calc(2.35 * var(--hero-unit)); gap: calc(1.08 * var(--hero-unit)); }
  .hero .heart-logo { width: calc(3.11 * var(--hero-unit)); height: calc(3.35 * var(--hero-unit)); }
  .hero .brand small { font-size: max(8px, calc(.6 * var(--hero-unit))); margin-top: calc(.6 * var(--hero-unit)); letter-spacing: calc(.21 * var(--hero-unit)); }
  .hero .hero-copy { position: absolute; top: 18%; left: 5.55%; margin: 0; width: calc(40 * var(--hero-unit)); }
  .hero h1 { font-size: calc(5.2 * var(--hero-unit)); }
  .hero h1 em { font-size: calc(5.2 * var(--hero-unit)); line-height: 1.1; margin-top: calc(.72 * var(--hero-unit)); }
  .hero .hero-description { font-size: max(16px, calc(1.72 * var(--hero-unit))); margin-top: calc(2 * var(--hero-unit)); }
  .hero .hero-actions { gap: calc(1.15 * var(--hero-unit)); margin-top: calc(2.7 * var(--hero-unit)); }
  .hero .hero-actions .button { min-height: max(40px, calc(3.7 * var(--hero-unit))); padding: calc(1 * var(--hero-unit)) calc(1.4 * var(--hero-unit)); gap: calc(1.5 * var(--hero-unit)); font-size: max(11px, calc(.88 * var(--hero-unit))); }
  .hero .hero-actions .button-gold { min-width: calc(17.85 * var(--hero-unit)); }
  .hero .hero-actions .button-outline { min-width: calc(15.1 * var(--hero-unit)); }
  .hero .hero-actions .button > span { font-size: calc(1.5 * var(--hero-unit)); }
  .hero .play-icon { width: max(18px, calc(1.38 * var(--hero-unit))); height: max(18px, calc(1.38 * var(--hero-unit))); font-size: 12px !important; }
  .hero .benefits { font-size: max(10px, calc(.78 * var(--hero-unit))); gap: calc(4.75 * var(--hero-unit)); margin-top: calc(3.4 * var(--hero-unit)); }
  .hero .benefits li + li:before { left: calc(-2.8 * var(--hero-unit)); }
  .hero .hero-signature { position: absolute; left: 2.8%; bottom: 6.1%; margin: 0; padding: 0; width: calc(26 * var(--hero-unit)); font-size: calc(2 * var(--hero-unit)); }
  .hero .signature-heart { font-size: calc(2.7 * var(--hero-unit)); }
  .side-handwriting:after { width: 65%; }
}

/* Keep the collection in normal flow: cards must never overlap the introduction. */
.collection .invitation-grid { margin-top: 20px; }
@media (min-width: 901px) {
  .collection {
    --collection-unit: min(1vw, 1.5svh);
    min-height: 100svh;
    max-width: none;
    padding: max(14px, 2svh) 0;
    display: flex;
    flex-direction: column;
    justify-content: center;
    gap: max(12px, 1.6svh);
  }
  .collection h2 { font-size: calc(4 * var(--collection-unit)); line-height: .9; }
  .collection h2 em { font-size: calc(4.6 * var(--collection-unit)); line-height: 1.05; }
  .collection-heading > p { font-size: max(18px, calc(1.6 * var(--collection-unit))); line-height: 1.15; margin-top: 8px; }
  .collection .invitation-grid { width: min(86%, calc(72 * var(--collection-unit))); max-width: none; margin: 0 auto; gap: calc(1.35 * var(--collection-unit)); }
  .collection .card-copy { padding: 8px 10px 10px; }
  .collection .card-copy h3 { font-size: max(24px, calc(2 * var(--collection-unit))); line-height: 1.05; }
  .collection .card-mood { font-size: max(10px, calc(.85 * var(--collection-unit))); letter-spacing: .12em; line-height: 1.3; min-height: 2.6em; margin-top: 7px; }
  .collection .card-rule { margin: 7px auto; }
  .collection .card-description { font-size: max(15px, calc(1.15 * var(--collection-unit))); line-height: 1.1; min-height: 4.4em; }
  .collection .card-description br { display: initial; }
  .collection .card-copy .button { width: 100%; min-height: 40px; padding: 10px 8px; margin-top: 9px; gap: 12px; font-size: max(10px, calc(.87 * var(--collection-unit))); }
  .collection .collection-action { margin: 0; gap: 20px; }
  .collection .button > span { font-size: 18px; line-height: 1; }
  .collection .collection-action > .button { min-height: 40px; min-width: 0; padding: 10px 24px; font-size: max(11px, calc(.91 * var(--collection-unit))); }
  .collection .side-note { font-size: max(10px, calc(.85 * var(--collection-unit))); }
  .collection .side-handwriting { font-size: calc(1.55 * var(--collection-unit)); }
}
@media (min-width: 901px) and (max-height: 700px) {
  .collection .card-photo { aspect-ratio: 370 / 335; }
  .collection .card-photo img { top: -55.522%; }
}

/* Third screen: the illustration and live typography share the PNG coordinate system. */
.keepsake{height:100svh;display:grid;place-items:center;background:#f7eee7;position:relative}
.keepsake-stage{position:relative;width:min(100%,177.6833svh);aspect-ratio:1672/941;container-type:inline-size;isolation:isolate}
.keepsake-copy{position:absolute;z-index:1;left:5.4%;top:19.6%;width:39.5%}
.keepsake h2{font-size:4.6cqw;line-height:.97;letter-spacing:-.035em}
.keepsake h2 em{display:block;font-size:6.8cqw;line-height:1.02;letter-spacing:-.025em;margin-top:1.1cqw;white-space:nowrap}
.keepsake-ornament{display:flex;align-items:center;gap:1.1cqw;margin-top:3.3cqw;width:17.2cqw;font:2.4cqw/1 Georgia,serif;color:#906333}
.keepsake-ornament span{height:1px;flex:1;background:currentColor}
.keepsake-visual{position:absolute;inset:0;z-index:-1}
.keepsake-art{position:absolute;inset:0;background:url('./assets/home-20260910/keepsake-background.png') center/100% 100% no-repeat}
.keepsake-label{position:absolute;text-align:center;width:23%;height:17%;color:#211d19}
.keepsake-label h3{font-size:2.3cqw;line-height:.96;letter-spacing:-.025em}
.keepsake-label p{position:absolute;top:7cqw;width:100%;font-size:1.15cqw;letter-spacing:.16em;color:#756151;white-space:nowrap}
.keepsake-label-invite{left:45.2%;top:23.7%;transform:rotate(-5.5deg)}
.keepsake-label-wedding{left:69.8%;top:36%;transform:rotate(8deg)}
.keepsake-label-wedding p{top:6.5cqw}
@media(min-width:901px){
 /* Extend the atmosphere independently of the height-fitted foreground. */
 .keepsake{isolation:isolate;overflow:clip}
 .keepsake::before{content:'';position:absolute;inset:-40px;z-index:-1;background:url('./assets/home-20260910/keepsake-background.png') center/cover no-repeat;filter:blur(28px)}
 .keepsake-art{mask-image:linear-gradient(to right,transparent,#000 5%,#000 95%,transparent),linear-gradient(to bottom,transparent,#000 5%,#000 95%,transparent);mask-composite:intersect}
}
@media(max-width:900px){
 .keepsake{height:auto;min-height:100svh;display:flex;align-items:stretch;padding-top:38px}
 .keepsake-stage{width:100%;aspect-ratio:auto;isolation:auto;display:flex;flex-direction:column;justify-content:space-between}
 .keepsake-copy{position:relative;left:auto;top:auto;width:auto;margin:0 6%;z-index:auto;padding-bottom:12px}
 .keepsake h2{font-size:clamp(34px,7.8vw,65px);line-height:1.02;letter-spacing:-.03em}
 .keepsake h2 em{font-size:clamp(44px,10.6vw,85px);line-height:1.06;margin-top:10px}
 .keepsake-ornament{width:170px;font-size:26px;gap:14px;margin-top:22px}
 .keepsake-visual{position:relative;inset:auto;z-index:auto;width:100%;aspect-ratio:972/941;margin-top:12px;container-type:inline-size}
 .keepsake-art{background-size:auto 100%;background-position:right center}
 .keepsake-label{width:39.6%;height:17%}
 .keepsake-label h3{font-size:4.2cqw}
 .keepsake-label p{font-size:max(12px,1.98cqw);letter-spacing:.035em;white-space:normal;line-height:1.05;top:12cqw;padding:0 3px}
 .keepsake-label-invite{left:5.74%;top:23.7%}
 .keepsake-label-wedding{left:48.06%;top:36%}
 .keepsake-label-wedding p{top:11.2cqw}
}

/* Fourth screen: live copy and feature panels over a separate decorative layer. */
.memories{height:100svh;display:grid;place-items:center;position:relative;isolation:isolate;overflow:clip;background:#f7eee7}
.memories::before{content:'';position:absolute;inset:0;z-index:-1;background:url('./assets/home-20260910/memories-fabric.png') center/cover no-repeat}
.memories-stage{position:relative;width:min(100%,177.6833svh);aspect-ratio:1672/941;container-type:inline-size;isolation:isolate}
.memories-art{position:absolute;inset:0;z-index:-1;background:url('./assets/home-20260910/memories-background.png') center/100% 100% no-repeat;mask-image:linear-gradient(to right,transparent,#000 3%,#000 97%,transparent)}
.memories-copy{position:absolute;left:3.9%;top:12.4%;width:43%}
.memories h2{text-align:center;font-size:4.65cqw;line-height:.82;letter-spacing:-.045em;padding-left:6.5cqw}
.memories h2 em{display:block;font-size:5.5cqw;line-height:.9;letter-spacing:-.03em;white-space:nowrap;margin-top:.3cqw}
.memories-intro{font-size:1.65cqw;line-height:1.07;margin:1cqw 0 1.4cqw 1.6cqw;color:#3e4144}
.memories-features{display:grid;grid-template-columns:1fr 1.05fr;gap:.6cqw}
.memory-feature{display:grid;grid-template-columns:2.3cqw minmax(0,1fr) 6.1cqw;gap:.9cqw;align-items:start;min-height:6.85cqw;border:1px solid #dbbaa880;border-radius:1.1cqw;padding:.6cqw .6cqw .6cqw 1.1cqw;background:#fffcf680}
.memory-feature>svg{width:1.9cqw;height:1.9cqw;fill:none;stroke:#96541f;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;margin-top:.7cqw}
.memory-feature>div{padding-top:.7cqw}
.memory-feature h3{font-size:1.4cqw;line-height:1.05;letter-spacing:-.04em;white-space:nowrap;color:#202327}
.memory-feature p{font-size:.95cqw;line-height:1.08;letter-spacing:-.02em;margin-top:.35cqw;color:#53545a}
.memory-thumb{display:block;width:100%;aspect-ratio:100/94;border-radius:.7cqw;background-image:url('./assets/home-20260910/memories-reference.png');background-size:1672% 1001.064%;background-repeat:no-repeat}
.memory-thumb-photos{background-position:18.957% 55.372%}
.memory-thumb-video{background-position:41.985% 55.49%}
.memory-thumb-day{background-position:19.275% 69.894%}
.memory-thumb-guests{background-position:42.621% 69.894%}
.memory-thumb-custom{background-position:42.685% 83.825%}
.memory-feature-wide{grid-column:1/-1;min-height:5.9cqw}
.memory-feature-wide .memory-thumb{height:4.7cqw;aspect-ratio:auto;mask-image:linear-gradient(to right,transparent,#000 40%)}
.memories-contact{font-family:Cormorant,Georgia,serif;text-transform:none;font-size:1.2cqw;min-height:3.8cqw;margin-top:1.6cqw;padding:.8cqw 2.3cqw;gap:1.8cqw}
.memories-contact:disabled{cursor:not-allowed;opacity:1}
.memories-contact:disabled:hover{transform:none;box-shadow:0 11px 20px #936d3822}
@media(max-width:900px){
 .memories{height:auto;min-height:100svh;padding-top:38px;display:block;overflow:visible}
 .memories::before{display:none}
 .memories-stage{width:100%;aspect-ratio:auto;display:flex;flex-direction:column;isolation:auto}
 .memories-copy{position:relative;left:auto;top:auto;width:auto;margin:0 6%}
 .memories h2{font-size:clamp(43px,8vw,68px);line-height:.9;padding:0;letter-spacing:-.035em;text-align:left}
 .memories h2 em{font-size:clamp(47px,9vw,75px);line-height:1.1;margin-top:6px}
 .memories-intro{font-size:23px;line-height:1.12;margin:24px 0}
 .memories-break{display:none}
 .memories-features{grid-template-columns:1fr;gap:10px}
 .memory-feature{grid-template-columns:28px minmax(0,1fr) 78px;gap:12px;padding:12px;min-height:108px;border-radius:16px}
 .memory-feature>svg{width:27px;height:27px;margin-top:6px}
 .memory-feature>div{padding-top:4px}
 .memory-feature h3{font-size:23px;line-height:1.05;white-space:normal}
 .memory-feature p{font-size:17px;line-height:1.12;margin-top:6px}
 .memory-feature p br{display:initial}
 .memory-thumb{border-radius:10px;align-self:center}
 .memory-feature-wide{min-height:132px}
 .memory-feature-wide .memory-thumb{height:auto;aspect-ratio:100/94}
 .memories-contact{font-size:20px;min-height:54px;padding:14px 20px;gap:16px;margin-top:24px;width:100%}
 .memories-art{position:relative;inset:auto;z-index:auto;order:2;margin-top:26px;width:100%;aspect-ratio:950/941;background-size:auto 100%;background-position:right center;mask-image:linear-gradient(to bottom,transparent,#000 5%)}
}

/* Contact-first actions and stronger mobile section hierarchy. */
.hero-contact{min-width:0}
.contact-caption{font-size:22px;line-height:1.1;color:#1c1814;margin-bottom:10px}
.contact-links{display:flex;gap:10px}
.contact-link svg{width:21px;height:21px;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round;flex-shrink:0}
.hero .hero-actions .contact-link{min-width:0;gap:8px;text-transform:none;font-family:Arial,sans-serif}
.hero .hero-actions .vk-symbol{font:bold 15px/1 Arial,sans-serif;letter-spacing:-1px}
.hero .hero-actions{align-items:flex-end}
.collection h2,.collection h2 em{color:#171310}
.collection h2{text-shadow:.3px 0 currentColor}
.collection .card-copy .button{color:#fffaf3;background:linear-gradient(150deg,#a77c45,#795127);border:1.5px solid #76522c;box-shadow:0 5px 12px #7b542124}
.collection .card-copy .button:hover{background:linear-gradient(150deg,#956834,#66411d);box-shadow:0 7px 16px #7b542138}
.memories h2{color:#171310}
@media(min-width:901px){
 .hero .hero-actions{gap:calc(.8 * var(--hero-unit));margin-top:calc(1.7 * var(--hero-unit))}
 .contact-caption{font-size:max(16px,calc(1.35 * var(--hero-unit)));margin-bottom:8px}
 .contact-links{gap:calc(.5 * var(--hero-unit))}
 .hero .hero-actions .contact-link{padding:calc(.8 * var(--hero-unit));font-size:max(11px,calc(.83 * var(--hero-unit)))}
 .hero .hero-actions .examples-link{min-width:0;padding:calc(1 * var(--hero-unit));gap:10px;font-size:max(10px,calc(.8 * var(--hero-unit)))}
 .hero .benefits{margin-top:calc(2.3 * var(--hero-unit))}
}
@media(max-width:900px){
 .hero .hero-actions{display:flex;flex-direction:column;align-items:stretch;gap:12px;max-width:480px;margin-top:26px}
 .contact-caption{font-size:25px;margin-bottom:12px}
 .contact-links{display:grid;grid-template-columns:1fr 1fr;gap:12px}
 .hero .hero-actions .contact-link{min-height:54px;padding:14px 10px;font-size:15px;gap:10px}
 .hero .hero-actions .examples-link{min-height:52px;font-size:13px;border-color:#8d755c;background:#fffaf5}
 /* Crop the source to x=640…1590: centre the phone and include both side columns. */
 .hero .hero-art{height:auto;max-height:none;width:100%;aspect-ratio:950/941;background-size:176% 100%;background-position:88.6427% center;margin-top:26px}
 .hero .hero-signature{margin-top:18px}
 .collection,.keepsake,.memories{border-top:2px solid #b4956d}
 .collection{padding-top:44px}
 .collection h2{font-size:clamp(50px,12.8vw,72px);line-height:.94}
 .collection h2 em{font-size:clamp(46px,11.6vw,70px);line-height:1.1}
 .collection-heading>p{color:#393027}
 .collection .card-copy .button{min-height:54px;font-size:13px;letter-spacing:.015em}
 .keepsake{min-height:0;padding-top:40px}
 .keepsake-stage{justify-content:flex-start}
 .keepsake-copy{display:flex;flex-direction:column;padding-bottom:0}
 .keepsake-ornament{order:-1;width:200px;font-size:32px;gap:16px;margin:0 0 24px}
 .keepsake h2{font-size:clamp(40px,10.2vw,72px);line-height:1.01;color:#171310;letter-spacing:-.035em}
 .keepsake h2 em{font-size:clamp(47px,11.8vw,86px);line-height:1.02;margin-top:12px}
 .keepsake-visual{margin-top:4px;flex-shrink:0}
 .memories{padding-top:42px}
 .memories h2{font-size:clamp(45px,10.5vw,72px);text-shadow:.2px 0 currentColor}
 .memories-contact{font-size:22px;min-height:56px}
}

.memories-contacts{margin-top:1.2cqw}
.memories-contacts .contact-caption{font-size:max(16px,1.35cqw);margin:0 0 8px}
.memories-contacts .contact-link{min-width:0;min-height:40px;padding:.8cqw 1.2cqw;gap:8px;text-transform:none;font: max(11px,.83cqw) Arial,sans-serif}
.memories-contacts .vk-symbol{font:bold 15px/1 Arial,sans-serif;letter-spacing:-1px}
@media(max-width:900px){.memories-contacts{margin-top:24px}.memories-contacts .contact-caption{font-size:25px;margin-bottom:12px}.memories-contacts .contact-link{min-height:54px;padding:14px 10px;font-size:15px;gap:10px}}
