/* Elena Celeste — visual refinement of the existing reading experience.
   Same palette, typefaces, section order and content. No hidden-by-default UI. */
.rf-body {
  --rf-ease:cubic-bezier(.22,.68,.25,1);
  --rf-lift:0 18px 48px -28px rgb(71 13 89 / 26%);
}
.rf-body ::selection { color:var(--ec-plum); background:#f5bedc; }
.rf-body .rf-section { padding-block:clamp(58px,6.3vw,96px); }
.rf-body .rf-h2 { text-wrap:balance; }
.rf-body .rf-btn {
  position:relative; isolation:isolate; overflow:hidden; border:1px solid rgb(255 255 255 / 16%);
  border-radius:7px; background:linear-gradient(115deg,#d10c79,#bf0a73);
  box-shadow:0 3px 0 #a7085f,0 9px 22px -12px rgb(177 8 100 / 48%),inset 0 1px 0 rgb(255 255 255 / 23%);
  transition:transform .24s var(--rf-ease),box-shadow .24s var(--rf-ease),background .24s;
}
.rf-body .rf-btn::after { content:""; position:absolute; z-index:-1; inset:0; background:linear-gradient(105deg,transparent 30%,rgb(255 255 255 / 18%) 50%,transparent 70%); transform:translateX(-110%); transition:transform .65s var(--rf-ease); pointer-events:none; }
.rf-body .rf-btn:active { transform:translateY(2px); box-shadow:0 1px 0 #a7085f; }
.rf-body .rf-header { transition:box-shadow .3s,background .3s; }
.rf-body .rf-header--nav { background:rgb(255 253 249 / 94%); backdrop-filter:blur(18px); -webkit-backdrop-filter:blur(18px); border-bottom-color:rgb(91 20 111 / 10%); }
.rf-body .rf-header.is-scrolled { box-shadow:0 8px 30px -22px rgb(47 18 76 / 38%); }
.rf-body .rf-nav a { position:relative; padding-block:10px; }
.rf-body .rf-nav a::after { content:""; position:absolute; left:0; right:0; bottom:3px; height:1px; background:var(--ec-cta); transform:scaleX(0); transform-origin:left; transition:transform .25s; }
.rf-body .rf-nav a:hover::after,.rf-body .rf-nav a:focus-visible::after { transform:scaleX(1); }
.rf-body .rf-topbar { background:linear-gradient(90deg,#501362,#641978,#501362); }

/* One continuous scene: portrait, translucent signature and engraved cards. */
.rf-body .rf-hero--home { position:relative; isolation:isolate; padding:0; background:#fce6f1; }
.rf-body .rf-hero--home::before { content:""; position:absolute; z-index:-1; inset:0; background:radial-gradient(ellipse at 28% 35%,#fff9fc 0,transparent 65%); pointer-events:none; }
.rf-body .rf-hh { width:min(1560px,100%); gap:0; }
.rf-body .rf-hh__copy { position:relative; z-index:3; padding:52px 0 36px; }
.rf-body .rf-hh__title { max-width:11.5ch; margin:23px auto; font-size:clamp(42px,4.65vw,72px); line-height:1.045; letter-spacing:-.035em; }
.rf-body .rf-hh__sub { max-width:41ch; line-height:1.65; }
.rf-body .rf-pill { gap:8px; padding:9px 13px; border:1px solid rgb(91 20 111 / 14%); border-radius:5px; background:rgb(255 255 255 / 74%); box-shadow:0 4px 18px -12px rgb(91 20 111 / 25%); }
.rf-body .rf-hh__visual { position:relative; isolation:isolate; overflow:visible; width:100%; max-width:none; height:440px; aspect-ratio:auto; margin:0; border:0; background:none; box-shadow:none; }
.rf-hh__image { position:absolute; inset:0 -18px; overflow:hidden; }
.rf-body .rf-hh__image img { width:100%; height:100%; object-fit:cover; object-position:center 37%; mask-image:linear-gradient(180deg,transparent,#000 15%,#000 94%,transparent); -webkit-mask-image:linear-gradient(180deg,transparent,#000 15%,#000 94%,transparent); }
.rf-body .rf-hh__caption { position:absolute; display:flex; align-items:center; gap:12px; z-index:3; right:10px; bottom:32px; min-width:205px; padding:17px 23px; color:var(--ec-plum); background:rgb(255 253 249 / 91%); border:1px solid rgb(255 255 255 / 90%); border-radius:7px; box-shadow:0 15px 40px -18px rgb(47 18 76 / 35%); backdrop-filter:blur(12px); transform:rotate(-3deg); }
.rf-hh__caption b { display:block; font:500 21px/1.2 var(--ec-serif); }
.rf-hh__caption small { display:block; margin-top:5px; font-size:11px; color:var(--ec-muted); }
.rf-hh__caption-mark .rf-ico { width:34px; height:34px; }
.rf-card-fan { position:absolute; left:5px; bottom:28px; width:180px; height:172px; z-index:2; pointer-events:none; transform:translate(var(--pointer-x,0px),var(--pointer-y,0px)); transition:transform .4s ease-out; }
.rf-art-card { position:absolute; left:40px; top:0; display:flex; flex-direction:column; align-items:center; justify-content:space-between; width:104px; height:155px; padding:12px 10px; color:#f5d7ec; border:1px solid #a481b3; border-radius:7px; background:linear-gradient(150deg,#753684,#3f1459); box-shadow:inset 0 0 0 5px #502263,inset 0 0 0 6px #a481b3,0 10px 22px -8px rgb(47 18 76 / 38%); transform-origin:50% 100%; }
.rf-art-card:first-child { transform:translate(-40px,12px) rotate(-19deg); }
.rf-art-card:last-child { transform:translate(38px,12px) rotate(19deg); }
.rf-art-card:nth-child(2) { z-index:1; }
.rf-art-card i { font:400 10px var(--ec-serif); font-style:normal; letter-spacing:.14em; }
.rf-art-card__orbit { display:grid; place-items:center; width:67px; height:67px; border:1px solid rgb(245 215 236 / 35%); border-radius:50%; outline:1px solid rgb(245 215 236 / 17%); outline-offset:4px; }
.rf-art-card__orbit .rf-ico { width:45px; height:45px; }
.rf-art-card .rf-art-card__ornament { width:46px; height:18px; }

/* Fine rules and celestial engraving connect the existing sections. */
.rf-body .rf-trust { position:relative; padding-block:27px; background:var(--ec-paper); border-bottom:1px solid var(--ec-line); }
.rf-body .rf-trust .rf-badges { gap:0; }
.rf-body .rf-trust .rf-badges li { padding-inline:12px; }
.rf-body .rf-trust .rf-badges li + li { border-left:1px solid var(--ec-line); }
.rf-body .rf-mission { position:relative; overflow:hidden; padding-bottom:45px; }
.rf-body .rf-mission::before,.rf-body .rf-mission::after { content:""; position:absolute; left:-130px; top:25%; width:360px; height:360px; border:1px solid rgb(91 20 111 / 7%); border-radius:50%; box-shadow:0 0 0 26px var(--ec-paper),0 0 0 27px rgb(91 20 111 / 5%); pointer-events:none; }
.rf-body .rf-mission::after { left:auto; right:-210px; top:-45%; width:500px; height:500px; }
.rf-body .rf-mission .rf-wrap { position:relative; z-index:1; }
.rf-body .rf-mission__icon { width:82px; height:82px; display:grid; place-items:center; margin:0 auto 25px; color:var(--ec-plum); border:1px solid #e2d3e7; border-radius:50%; background:#faf3fc; box-shadow:inset 0 0 0 6px var(--ec-paper); }
.rf-body .rf-mission__icon .rf-ico { width:47px; height:47px; }
.rf-body .rf-mission__text { font-size:clamp(24px,2.3vw,34px); line-height:1.5; }
.rf-body .rf-divider { margin-block:30px; color:#9872a4; }
.rf-body .rf-divider::before,.rf-body .rf-divider::after { border:0; height:1px; background:linear-gradient(90deg,transparent,#d9c3e0); }
.rf-body .rf-divider::after { transform:rotate(180deg); }
.rf-body .rf-benefits-sec { padding-top:0; }
.rf-body .rf-benefits { gap:14px; }
.rf-body .rf-benefit { position:relative; border:1px solid #e8ddea; padding:29px 22px; border-radius:9px; background:#fff; box-shadow:0 7px 24px -20px rgb(71 13 89 / 27%); }
.rf-body .rf-benefit:nth-child(2) { background:#faf5fd; }
.rf-body .rf-benefit:nth-child(3) { background:#fff5f8; }
.rf-body .rf-benefit:nth-child(4) { background:#faf7f1; }
.rf-body .rf-benefit__icon { width:68px; height:68px; padding:13px; margin-bottom:19px; border:1px solid rgb(91 20 111 / 13%); border-radius:50%; background:rgb(255 255 255 / 65%); }
.rf-body .rf-benefit h3 { font-size:23px; margin-bottom:12px; }
.rf-body .rf-benefit p { font-size:14px; line-height:1.65; }
.rf-body .rf-band { position:relative; overflow:hidden; padding-block:29px; background:linear-gradient(100deg,#47105c,#681c7b 50%,#501162); }
.rf-body .rf-band::after { content:""; position:absolute; inset:8px; border-block:1px solid rgb(255 255 255 / 16%); pointer-events:none; }

/* Stories retain their carousel and prototype status; artwork gains depth. */
.rf-body .rf-ugc-sec { background:#fff; }
.rf-body .rf-ugc { width:min(1460px,100%); gap:22px; margin-top:38px; padding-bottom:24px; }
.rf-body .rf-ugc__item { isolation:isolate; border-radius:10px; border:1px solid rgb(91 20 111 / 15%); box-shadow:0 18px 32px -24px rgb(47 18 76 / 48%); }
.rf-body .rf-ugc__item::before { content:""; position:absolute; z-index:1; inset:10px; border:1px solid rgb(255 255 255 / 35%); border-radius:5px; pointer-events:none; }
.rf-body .rf-ugc__item::after { content:""; position:absolute; z-index:0; inset:0; background:linear-gradient(180deg,rgb(47 18 76 / 60%),transparent 44%,rgb(47 18 76 / 85%)); pointer-events:none; }
.rf-body .rf-ugc__item.is-playing::after,.rf-body .rf-ugc__item.is-playing::before { display:none; }
.rf-body .rf-ugc__art { background-image:linear-gradient(150deg,rgb(91 20 111 / 10%),rgb(47 18 76 / 18%)),url('../img/brand/tarot-spread.webp'); transition:transform .8s var(--rf-ease); }
.rf-body .rf-ugc__item:nth-child(even) .rf-ugc__art { background-size:auto 112%; }
.rf-body .rf-ugc__caption { top:30px; padding-inline:27px; font-size:clamp(25px,2.2vw,34px); text-shadow:0 2px 14px rgb(47 18 76 / 40%); }
.rf-body .rf-ugc__slot { padding-inline:27px; bottom:29px; line-height:1.45; }
.rf-body .rf-ugc__slot small { margin-top:7px; font-size:10px; }
.rf-body .rf-ugc__play { width:62px; height:62px; border:1px solid #fff; background:rgb(255 253 249 / 93%); box-shadow:0 0 0 9px rgb(255 255 255 / 13%),0 10px 20px -10px rgb(47 18 76 / 50%); }
.rf-body .rf-carousel-controls button { border-radius:50%; border-color:#d9c7df; box-shadow:0 4px 10px -7px #5b146f; }
.rf-body .rf-carousel-dot { border-radius:5px; transition:width .25s,background .25s; }
.rf-body .rf-cases-sec { background:linear-gradient(180deg,#fcf7ef,#fffaf7); }
.rf-body .rf-cases-sec .rf-sub { margin:14px 0 34px; }
.rf-body .rf-cases { width:min(1380px,100%); padding-bottom:22px; gap:22px; }
.rf-body .rf-case { grid-template-columns:54px minmax(0,1fr); grid-template-rows:auto auto 1fr auto; align-items:start; gap:17px 15px; padding:28px; border:1px solid #e5d8e6; border-radius:9px; box-shadow:0 10px 30px -24px rgb(71 13 89 / 32%); }
.rf-body .rf-case::after { content:'\201D' / ''; position:absolute; right:20px; top:12px; color:#eee1f0; font:500 82px/1 var(--ec-serif); pointer-events:none; }
.rf-body .rf-case__photo { display:block; grid-column:1; grid-row:1; width:54px; height:54px; border:3px solid #fff; outline:1px solid #decce4; border-radius:50%; overflow:hidden; background:var(--ec-lilac); }
.rf-case__photo img { width:100%; height:100%; object-fit:cover; }
.rf-body .rf-case > .rf-stars { grid-column:2; grid-row:1; align-self:center; color:var(--ec-brass); }
.rf-body .rf-case h3 { grid-column:1/-1; font-size:24px; max-width:23ch; }
.rf-body .rf-case__quote { grid-column:1/-1; line-height:1.7; }
.rf-body .rf-case__who { grid-column:1/-1; flex-wrap:wrap; gap:4px 6px; width:100%; padding-top:16px; margin-top:4px; border-top:1px solid #eee4ee; line-height:1.4; }
.rf-body .rf-case__who span { font-size:10px; font-weight:400; }

/* FAQ stays native and keyboard-operable. */
.rf-body .rf-faq-sec { position:relative; background:radial-gradient(ellipse at 12% 0%,#fce9f4,transparent 65%),#f4d5e8; }
.rf-body .rf-faq-sec .rf-h2 { margin-bottom:34px; }
.rf-body .rf-faq { gap:12px; }
.rf-body .rf-faq details,.rf-body .rf-accordions details { border:1px solid rgb(91 20 111 / 13%); border-radius:8px; background:rgb(255 253 249 / 86%); box-shadow:0 5px 18px -15px rgb(71 13 89 / 22%); transition:border-color .25s,box-shadow .25s; }
.rf-body .rf-faq details[open],.rf-body .rf-accordions details[open] { border-color:#bd92c9; box-shadow:0 9px 25px -18px rgb(71 13 89 / 28%); }
.rf-body .rf-faq summary,.rf-body .rf-accordions summary { gap:16px; min-height:69px; padding:18px 22px; }
.rf-body .rf-faq__icon { width:29px; height:29px; border-radius:50%; background:#f2e5f4; transition:background .25s; }
.rf-body details[open] > summary .rf-faq__icon { background:var(--ec-plum); }
.rf-body details[open] > summary .rf-faq__icon .rf-ico { color:#fff; }
.rf-body .rf-faq p,.rf-body .rf-accordions p { padding:0 22px 22px; line-height:1.75; }

/* Editorial portrait: offset close-up, card-table detail and signature. */
.rf-body .rf-about { background:var(--ec-paper); }
.rf-body .rf-about__grid { gap:45px; }
.rf-about__visual { position:relative; isolation:isolate; margin:0; width:100%; padding:0 22px 32px 0; }
.rf-about__visual::before { content:""; position:absolute; z-index:-1; inset:28px 0 0 28px; border:1px solid #d7bcdf; background:#f5eaf7; border-radius:10px; }
.rf-body .rf-about__photo { width:100%; max-width:none; height:100%; aspect-ratio:6/5; border-radius:8px; object-position:center 32%; box-shadow:0 22px 45px -30px rgb(71 13 89 / 35%); }
.rf-about__detail { position:absolute; right:-4px; bottom:16px; width:43%; aspect-ratio:5/4; padding:7px; border:1px solid #dbc8e1; border-radius:6px; background:var(--ec-paper); transform:rotate(7deg); box-shadow:0 12px 25px -14px rgb(47 18 76 / 32%); }
.rf-about__detail img { width:100%; height:100%; object-fit:cover; border-radius:2px; }
.rf-about__signature { position:absolute; left:22px; bottom:56px; display:flex; align-items:center; gap:13px; color:#fff; text-shadow:0 2px 10px #2f124c; font:500 italic clamp(22px,2.4vw,35px) var(--ec-serif); }
.rf-about__signature .rf-ico { width:25px; height:25px; }
.rf-body .rf-about__text { line-height:1.8; max-width:57ch; }
.rf-body .rf-about__kicker { margin-bottom:16px; }
.rf-body .rf-about .rf-h2 { margin-bottom:23px; }
.rf-body .rf-about__facts { gap:18px; display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); padding-top:23px; margin-top:27px; width:100%; }
.rf-body .rf-about__facts b { font-size:clamp(21px,2vw,28px); }
.rf-body .rf-about__facts span { font-size:11px; margin-top:8px; line-height:1.5; }
.rf-body .rf-about__facts li + li { border-left:1px solid var(--ec-line); padding-left:16px; }
.rf-body .rf-footer { position:relative; overflow:hidden; padding-top:60px; background:radial-gradient(ellipse at 50% 0%,#fff7fc,transparent 60%),#f3e8f7; }
.rf-body .rf-footer::before { content:""; position:absolute; left:50%; top:22px; width:310px; height:310px; border:1px solid rgb(91 20 111 / 6%); outline:1px solid rgb(91 20 111 / 4%); outline-offset:20px; border-radius:50%; transform:translateX(-50%); pointer-events:none; }
.rf-body .rf-footer > .rf-wrap { position:relative; }
.rf-body .rf-footer__logo { font-size:42px; }
.rf-body .rf-footer__nav a { text-underline-offset:5px; }
.rf-body .rf-footer__nav a:hover { text-decoration:underline; }

@media (hover:hover) and (pointer:fine) {
  .rf-body .rf-btn:hover { transform:translateY(-2px); box-shadow:0 4px 0 #a7085f,0 14px 28px -13px rgb(177 8 100 / 48%); }
  .rf-body .rf-btn:hover::after { transform:translateX(110%); }
  .rf-body .rf-btn:hover:active { transform:translateY(2px); box-shadow:0 1px 0 #a7085f; }
  .rf-body .rf-ugc__item:hover .rf-ugc__art { transform:scale(1.045); }
  .rf-body .rf-case { transition:box-shadow .3s,border-color .3s; }
  .rf-body .rf-case:hover { border-color:#c3a2ce; box-shadow:0 16px 36px -24px rgb(71 13 89 / 32%); }
}
@media (min-width:960px) {
  .rf-body .rf-hh { grid-template-columns:1fr 1.08fr; padding-inline:clamp(36px,5.5vw,88px); min-height:640px; }
  .rf-body .rf-hh__copy { padding:58px 0 64px; }
  .rf-body .rf-hh__title { margin-left:0; }
  .rf-body .rf-hh__visual { align-self:stretch; height:auto; min-height:600px; }
  .rf-hh__image { inset:0 calc(-1 * max(36px,(100vw - 1384px) / 2)) 0 -26px; }
  .rf-body .rf-hh__image img { object-position:50% 12%; mask-image:linear-gradient(90deg,transparent,#000 21%),linear-gradient(0deg,transparent,#000 12%); mask-composite:intersect; -webkit-mask-image:linear-gradient(90deg,transparent,#000 21%),linear-gradient(0deg,transparent,#000 12%); -webkit-mask-composite:source-in; }
  .rf-body .rf-hh__caption { right:2%; bottom:62px; }
  .rf-card-fan { left:20px; bottom:50px; transform:translate(var(--pointer-x,0px),var(--pointer-y,0px)) scale(1.25); }
  .rf-body .rf-trust .rf-badges li { display:flex; align-items:center; justify-content:center; gap:14px; }
  .rf-body .rf-benefit { border-bottom:1px solid #e8ddea!important; }
  .rf-body .rf-ugc__item:nth-child(even) { margin-top:22px; margin-bottom:-22px; }
  .rf-body .rf-ugc { padding-bottom:45px; }
  .rf-body .rf-about__grid { grid-template-columns:minmax(0,1fr) minmax(0,1.05fr); gap:clamp(50px,6vw,92px); }
  .rf-about__visual { padding:0 35px 46px 0; }
  .rf-body .rf-about__photo { aspect-ratio:5/6; }
  .rf-about__detail { right:-10px; bottom:30px; width:45%; }
  .rf-about__signature { bottom:95px; }
}
@media (min-width:640px) and (max-width:959px) {
  .rf-body .rf-hh__copy { padding-inline:30px; }
  .rf-body .rf-hh__visual { height:540px; }
  .rf-body .rf-hh__image img { object-position:50% 30%; }
  .rf-body .rf-hh__caption { right:8%; bottom:48px; }
  .rf-card-fan { left:9%; bottom:45px; transform:scale(1.25); }
  .rf-about__visual { max-width:620px; }
}
@media (max-width:639px) {
  .rf-body .rf-hh__copy { padding-top:34px; padding-bottom:10px; }
  .rf-body .rf-hh__title { max-width:12ch; font-size:clamp(36px,10.6vw,53px); margin-block:21px; }
  .rf-body .rf-hh__sub { font-size:16px; max-width:35ch; }
  .rf-body .rf-hh__note { flex-wrap:wrap; font-size:11px; }
  .rf-body .rf-pill { font-size:11px; gap:5px; padding:8px; }
  .rf-body .rf-hh__visual { height:410px; }
  .rf-body .rf-hh__caption { right:0; bottom:24px; min-width:0; padding:13px 16px; gap:8px; }
  .rf-hh__caption b { font-size:18px; }
  .rf-hh__caption small { font-size:10px; }
  .rf-hh__caption-mark .rf-ico { width:25px; height:25px; }
  .rf-card-fan { bottom:13px; left:-13px; transform:scale(.82); transform-origin:left bottom; }
  .rf-body .rf-trust { padding-block:23px; }
  .rf-body .rf-trust .rf-badges li { font-size:11px; padding-inline:9px; line-height:1.5; }
  .rf-body .rf-mission { padding-bottom:22px; }
  .rf-body .rf-mission::before,.rf-body .rf-mission::after { opacity:.5; }
  .rf-body .rf-benefits { gap:10px; }
  .rf-body .rf-benefit { padding:23px 13px; }
  .rf-body .rf-benefit h3 { font-size:21px; }
  .rf-body .rf-benefit p { font-size:13px; line-height:1.6; }
  .rf-body .rf-benefit__icon { width:56px; height:56px; padding:10px; margin-bottom:15px; }
  .rf-body .rf-limited { font-size:11px; }
  .rf-body .rf-ugc { gap:16px; grid-auto-columns:78%; padding-inline:18px; scroll-padding-inline:18px; }
  .rf-body .rf-ugc__caption { font-size:29px; }
  .rf-body .rf-cases { gap:15px; grid-auto-columns:89%; padding-inline:18px; scroll-padding-inline:18px; }
  .rf-body .rf-case { padding:25px; }
  .rf-body .rf-band .rf-badges li { font-size:11px; padding-inline:4px; }
  .rf-body .rf-faq summary { padding:17px; font-size:14px; }
  .rf-body .rf-faq p { padding:0 17px 20px; font-size:14px; }
  .rf-body .rf-about__grid { gap:37px; }
  .rf-body .rf-about__photo { aspect-ratio:5/6; }
  .rf-body .rf-about__text { font-size:16px; }
  .rf-body .rf-about__facts { gap:9px; }
  .rf-body .rf-about__facts b { font-size:21px; }
  .rf-body .rf-about__facts li + li { padding-left:9px; }
  .rf-about__signature { bottom:68px; left:14px; font-size:25px; }
  .rf-body .rf-footer__tag { font-size:12px; gap:8px; }
}
@media (prefers-reduced-motion:reduce) {
  html:has(.rf-body) { scroll-behavior:auto; }
  .rf-body *, .rf-body *::before, .rf-body *::after { animation:none!important; transition:none!important; scroll-behavior:auto!important; }
  .rf-body .rf-btn:hover { transform:none; }
}
