/* Three living keepsakes: each promise sits directly above its own looping film. */
.promise-ritual{position:relative;isolation:isolate;padding:clamp(65px,8vw,116px) 0 64px;overflow:hidden;background:var(--paper,#ffedf4)}
.ritual-intro{position:relative;z-index:1;text-align:center;padding-inline:24px}
.ritual-intro .eyebrow{color:#965264;font-weight:700;margin-bottom:21px}
.ritual-intro h2{font-size:clamp(42px,4.6vw,68px);font-weight:600;text-shadow:0 2px 0 #fff9;line-height:1.08}
.ritual-intro h2 em{font-weight:500}
.ritual-intro>p:last-child{font-size:15px;font-weight:500;color:#59654e;margin-top:23px;text-wrap:balance}
.ritual-experience{position:relative;z-index:1;max-width:1280px;margin:60px auto 0;padding:0 36px;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(22px,3vw,46px);align-items:stretch}
.ritual-keepsake{min-width:0;display:flex;flex-direction:column;align-items:center;text-align:center;position:relative}
.ritual-keepsake-heading{width:100%;position:relative;z-index:1}
.ritual-keepsake-number{display:flex;align-items:center;justify-content:center;gap:14px;color:#a47673;font:600 10px var(--sans);letter-spacing:.16em}
.ritual-keepsake-number i{height:1px;width:32px;background:linear-gradient(90deg,transparent,#bf8d8466)}
.ritual-keepsake-number i:last-child{transform:rotate(180deg)}
.ritual-keepsake h3{font-family:var(--serif,Georgia,serif);color:#536344;font-size:clamp(36px,3.7vw,49px);font-weight:500;line-height:1.13;letter-spacing:-.04em;margin:17px 0 0;text-shadow:0 2px #fff8}
.ritual-keepsake-whisper{display:block;color:#b06d59;font-size:28px;font-weight:500;line-height:1.25;margin-top:8px}
.ritual-keepsake-promise{position:relative;z-index:2;max-width:315px;font-size:13px;font-weight:500;line-height:1.85;color:#656d58;overflow-wrap:anywhere;text-wrap:pretty;margin:22px auto 0;padding:0 8px}
.ritual-object{position:relative;flex:none;width:calc(100% + 30px);aspect-ratio:4/3;margin-top:auto;mix-blend-mode:multiply;-webkit-mask-image:radial-gradient(ellipse 50% 49% at 50% 51%,#000 54%,rgba(0,0,0,.92) 70%,transparent 100%);mask-image:radial-gradient(ellipse 50% 49% at 50% 51%,#000 54%,rgba(0,0,0,.92) 70%,transparent 100%);pointer-events:none}
.ritual-object>img,.ritual-object>video{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;pointer-events:none}
.ritual-object>video{opacity:0;transition:opacity .55s ease}
.ritual-object.is-ready:not(.is-playback-blocked):not(.is-unavailable)>video{opacity:1}
.ritual-object.is-ready:not(.is-playback-blocked):not(.is-unavailable)>img{visibility:hidden}
.ritual-object.is-unavailable>video{display:none}
.ritual-footer{position:relative;z-index:1;text-align:center;color:#986758;font-size:27px;font-weight:500;line-height:1.35;margin:26px auto 0;max-width:560px;padding:0 28px;text-wrap:balance}
.ritual-footer:before{content:'';display:block;width:100px;height:1px;margin:0 auto 25px;background:linear-gradient(90deg,transparent,#b88c7366,transparent)}
@media(max-width:760px){
  .promise-ritual{padding:69px 0 56px}
  .ritual-intro .eyebrow{font-size:9px;margin-bottom:16px}
  .ritual-intro h2{font-size:clamp(39px,9vw,58px)}
  .ritual-intro>p:last-child{font-size:13px;margin-top:18px}
  .ritual-experience{grid-template-columns:minmax(0,1fr);gap:38px;max-width:460px;margin-top:44px;padding:0 30px}
  .ritual-keepsake h3{font-size:43px;margin-top:14px}
  .ritual-keepsake-whisper{font-size:27px;margin-top:6px}
  .ritual-keepsake-promise{font-size:13px;line-height:1.8;max-width:330px;margin-top:19px;padding:0 8px}
  .ritual-object{width:calc(100% + 36px);margin-top:3px}
  .ritual-footer{font-size:25px;max-width:380px;margin-top:35px}
}
@media(max-width:360px){.ritual-experience{padding-inline:24px;gap:32px}.ritual-keepsake h3{font-size:39px}.ritual-keepsake-promise{font-size:12px}.ritual-keepsake-whisper{font-size:25px}}
@media(prefers-reduced-motion:reduce){.ritual-object>video{display:none!important}.ritual-object>img{visibility:visible!important}}
