/* Elena's celestial home: engraved gold, ivory paper and a plum night sky.
   All overrides stay on this page; the shared reading/unlock components keep their own layout. */
.rf-body.ec-home { --home-night:#21102d; --home-plum:#321641; --home-ivory:#fff9ef; --home-gold:#dfc28f; --home-ink:#382440; --home-muted:#756477; background:var(--home-ivory); }
.ec-home h1,.ec-home h2,.ec-home h3 { font-family:var(--story-serif); font-weight:500; letter-spacing:-.045em; text-wrap:balance; }
.ec-home h2 { font-size:clamp(36px,4.2vw,57px); line-height:1.1; }
.ec-home .rf-wrap { width:min(1440px,100%); margin-inline:auto; padding-inline:clamp(24px,5vw,76px); }
.ec-home [id] { scroll-margin-top:24px; }
.ec-home .rf-header--nav { position:relative; background:var(--home-ivory); border-bottom:1px solid #e8dfd2; }
.ec-home .rf-header__inner { min-height:84px; gap:22px; }
.ec-home .rf-nav { gap:24px; margin-left:auto; }
.ec-home .rf-nav a { white-space:nowrap; }
.ec-home .ec-language { gap:4px; }
.rf-body.ec-home.ec-story-page .rf-btn { min-height:54px; padding:17px 27px; border-radius:5px; font-size:14px; background:#cf086b; box-shadow:0 8px 24px -14px #cf086b99; }
.rf-body.ec-home.ec-story-page .rf-btn:hover { background:#aa0656; }
.rf-body.ec-home.ec-story-page .rf-header .rf-btn { min-height:42px; padding:12px 17px; font-size:12px; }
.ec-home .rf-btn .rf-ico { width:20px; height:20px; }
.ec-home :focus-visible { outline-color:#bd387b; }
.ec-home-orbit { display:block; width:100%; height:auto; pointer-events:none; }
.ec-home-question-link { display:inline-flex; align-items:center; justify-content:center; gap:12px; min-height:44px; color:inherit; font-size:14px; font-weight:500; line-height:1.4; text-decoration:none; }
.ec-home-question-link .rf-ico { width:20px; height:20px; flex:none; }
.ec-home-question-link .rf-ico:first-child { fill:none; }
.ec-home-question-link .rf-ico:last-child { width:17px; }
.ec-home-question-link:hover { text-decoration:underline; text-underline-offset:5px; }
.ec-home-question-link--button { min-height:54px; padding:15px 24px; border:1px solid #796282; border-radius:5px; background:#392044; color:#fff9ef; }
.ec-home-question-link--button:hover { background:#4a2d59; text-decoration:none; }

/* One dramatic opening, with the action preceding the artwork on small screens. */
.ec-home-hero { position:relative; isolation:isolate; overflow:hidden; background:var(--home-night); color:#fff8ef; }
.ec-home-hero__sky { position:absolute; z-index:-1; inset:0; pointer-events:none; background:radial-gradient(ellipse at 70% 38%,#70447944,transparent 60%),radial-gradient(1px 1px at 6% 16%,#e8cd95 99%,transparent),radial-gradient(1px 1px at 15% 83%,#e8cd95 99%,transparent),radial-gradient(1px 1px at 44% 10%,#e8cd95 99%,transparent),radial-gradient(1px 1px at 48% 70%,#e8cd95 99%,transparent),radial-gradient(1.5px 1.5px at 95% 18%,#e8cd95 99%,transparent),radial-gradient(1px 1px at 90% 88%,#e8cd95 99%,transparent); }
.ec-home-hero__sky::after { content:""; position:absolute; width:900px; height:900px; top:-160px; right:-110px; border:1px solid #dab7871f; border-radius:50%; box-shadow:0 0 0 22px #dab78708,0 0 0 80px #dab78707; }
.ec-home-hero__layout { display:grid; grid-template-columns:1.04fr 1fr; align-items:center; gap:28px; min-height:650px; }
.ec-home-hero__copy { position:relative; z-index:2; padding-block:58px; }
.ec-home-hero__invitation { display:flex; align-items:center; gap:10px; margin:0 0 24px; font-size:12px; color:var(--home-gold); }
.ec-home-hero__invitation .rf-ico { width:23px; height:23px; }
.ec-home-hero h1 { max-width:12.5ch; margin:0 0 25px; font-size:clamp(48px,4.7vw,70px); line-height:1.05; color:#fff7ec; }
.ec-home-hero__lead { max-width:43ch; margin:0 0 28px; color:#e7d9e6; font-size:16px; line-height:1.7; }
.ec-home-hero__action .rf-btn { min-width:255px; }
.ec-home-hero__action > p { max-width:44ch; margin:12px 0 0; color:#cebace; font-size:11px; line-height:1.6; }
.ec-home-hero__alternative { display:flex; flex-direction:column; align-items:flex-start; gap:2px; max-width:365px; margin-top:23px; padding-top:17px; border-top:1px solid #dac39933; }
.ec-home-hero__alternative > span { color:#cebace; font-size:12px; }
.ec-home-hero__alternative .ec-home-question-link { color:#f4ddba; }
.ec-home-hero__alternative > .ec-home-hero__alternative-next { margin-top:8px; }
.ec-home-hero :focus-visible { outline-color:#f3d4a6; }
.ec-home-hero__portrait { position:relative; isolation:isolate; align-self:stretch; display:flex; align-items:center; justify-content:center; min-width:0; margin:0; padding-block:24px 0; }
.ec-home-hero__portrait picture { position:relative; z-index:1; display:block; width:100%; max-width:530px; align-self:end; }
.ec-home-hero__portrait picture img { display:block; width:100%; height:auto; aspect-ratio:4/5; object-fit:cover; border-radius:48% 48% 0 0; -webkit-mask-image:linear-gradient(#000 77%,transparent); mask-image:linear-gradient(#000 77%,transparent); }
.ec-home-hero__orbit { position:absolute; z-index:0; width:123%; max-width:none; left:-10%; top:50%; transform:translateY(-50%); opacity:.68; }
.ec-home-hero__portrait figcaption { position:absolute; z-index:2; bottom:37px; left:0; right:0; color:#d6bdd5; text-align:center; font-size:11px; line-height:1.5; }
.ec-home-hero__portrait figcaption > span { display:block; margin-bottom:7px; color:#fff4df; font:500 29px/1.1 var(--story-serif); letter-spacing:-.025em; }
.ec-home-hero__seal { position:absolute; z-index:3; left:-21px; bottom:105px; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:7px; width:108px; height:108px; padding:12px; border:1px solid #d4b78588; border-radius:50%; background:#fff4df; box-shadow:0 0 0 6px #ead5b011,0 12px 30px #12081633; color:#694c5d; text-align:center; font:500 14px/1.35 var(--story-serif); transform:rotate(-8deg); }
.ec-home-hero__seal .rf-ico { width:48px; height:48px; color:#a87a44; }
.ec-home-hero__foot { position:relative; border-top:1px solid #d7b37f2b; background:#24112fcc; }
.ec-home-hero__foot .rf-wrap { display:flex; align-items:center; justify-content:center; gap:60px; min-height:61px; }
.ec-home-hero__foot span { display:flex; align-items:center; gap:10px; color:#e1cda9; font-size:11px; }
.ec-home-hero__foot .rf-ico { width:22px; height:22px; }

/* The question route is illustrated as a personal letter, not a video add-on. */
.ec-home-ask { padding-block:52px; background:#eee3ec; border-block:1px solid #dfd0dd; overflow:hidden; }
.ec-home-ask__layout { display:grid; grid-template-columns:1fr 1fr; align-items:center; gap:60px; }
.ec-home-letter { position:relative; isolation:isolate; width:min(100%,440px); height:360px; margin:auto; }
.ec-home-letter > .ec-home-orbit { position:absolute; z-index:-1; width:410px; max-width:none; left:50%; top:50%; transform:translate(-50%,-50%); opacity:.8; }
.ec-home-letter__paper { position:absolute; z-index:1; top:10px; left:calc(50% - 137px); width:274px; height:285px; padding:25px 26px; border:1px solid #c5ad8a; background:linear-gradient(135deg,#fffaf0,#f4e7d0); box-shadow:0 16px 32px -20px #4f2f53aa; transform:rotate(-7deg); color:#6f535a; }
.ec-home-letter__paper::before { content:""; position:absolute; inset:8px; border:1px solid #dbc6a4; pointer-events:none; }
.ec-home-letter__moon { display:block; margin-bottom:12px; color:#b28a53; }
.ec-home-letter__moon .rf-ico { width:38px; height:38px; }
.ec-home-letter__paper > span:not(.ec-home-letter__moon) { display:block; font:500 17px/1.3 var(--story-serif); }
.ec-home-letter__paper > p { margin:10px 0 18px; font:400 22px/1.3 var(--story-serif); letter-spacing:-.025em; }
.ec-home-letter__paper i { display:block; width:78%; height:1px; background:#d1bb97; margin-top:10px; }
.ec-home-letter__paper i:last-child { width:55%; }
.ec-home-letter__envelope { position:absolute; z-index:2; left:calc(50% - 166px); bottom:2px; width:332px; height:160px; border:1px solid #674270; border-radius:0 0 6px 6px; background:linear-gradient(155deg,transparent 49.5%,#9473a033 50%,transparent 50.5%),linear-gradient(25deg,transparent 49.5%,#9473a033 50%,transparent 50.5%),linear-gradient(25deg,#40234e,#623771); clip-path:polygon(0 0,50% 37%,100% 0,100% 100%,0 100%); box-shadow:0 20px 40px #43224b33; transform:rotate(-3deg); }
.ec-home-letter__envelope > span { position:absolute; top:64px; left:calc(50% - 24px); display:grid; place-items:center; width:48px; height:48px; border:1px solid #dec394; border-radius:50%; background:linear-gradient(135deg,#e9d5ae,#b68c59); box-shadow:inset 0 0 0 4px #cca36b; color:#78552f; }
.ec-home-letter__envelope .rf-ico { width:31px; height:31px; }
.ec-home-ask__copy h2 { margin:0 0 21px; }
.ec-home-ask__copy > p { max-width:42ch; margin:0 0 19px; color:var(--home-muted); font-size:15px; line-height:1.7; }
.ec-home-ask__copy .ec-home-ask__independent { margin-bottom:22px; color:#563e61; font-size:12px; font-weight:500; }
.ec-home-ask__copy .ec-home-ask__note { margin:13px 0 0; color:#7d6980; font-size:11px; line-height:1.65; }

.ec-home .ec-questions { padding-block:65px; background:var(--home-ivory); }
.ec-home .ec-questions__layout { grid-template-columns:.75fr 1.25fr; gap:70px; }
.ec-home .ec-questions .ec-section-heading h2 { font-size:clamp(35px,3.7vw,49px); }
.ec-home .ec-questions .ec-section-heading h2 + p { font-size:14px; }
.ec-home .ec-faq summary { padding-block:20px; font-size:14px; }
.ec-home .ec-faq summary::after { top:19px; }
.ec-home .ec-faq details > p { font-size:13px; }

.ec-home-final { position:relative; isolation:isolate; padding-block:58px 49px; background:var(--home-night); color:#fff4e5; overflow:hidden; text-align:center; }
.ec-home-final::before { content:""; position:absolute; z-index:-1; inset:0; background:radial-gradient(ellipse at 50% 53%,#61306b66,transparent 68%); pointer-events:none; }
.ec-home-final__heading h2 { margin:0 0 18px; color:#fff4e5; font-size:clamp(40px,4.5vw,61px); }
.ec-home-final__heading p { margin:0; color:#d4bfd7; font-size:14px; line-height:1.7; }
.ec-home-final__spread { max-width:740px; margin:13px auto 0; }
.ec-home-final__spread .ec-celestial-spread__stage { padding:35px 55px 28px; }
.ec-home-final__spread .ec-celestial-spread__card { max-width:108px; }
.ec-home-final__spread .ec-celestial-spread__item > strong { margin-top:17px; font-size:17px; }
.ec-home-final__action { margin-top:13px; }
.ec-home-final__action .rf-btn { min-width:290px; }
.ec-home-final__action > p { margin:12px 0 0; color:#cbb5ce; font-size:11px; }
.ec-home-final__alternative { display:flex; justify-content:center; align-items:center; gap:14px; margin-top:17px; color:#dbc9db; font-size:12px; }
.ec-home-final__alternative .ec-home-question-link { color:#ebd1a8; font-size:12px; }
.ec-home-final :focus-visible { outline-color:var(--home-gold); }
.ec-home .rf-footer { padding-block:40px 30px; background:#fff9ef; }

@media(min-width:1450px) { .ec-home-hero__layout { min-height:690px; } .ec-home-hero__portrait picture { max-width:550px; } }
@media(max-width:1200px) {
  .ec-home .rf-header__inner { gap:16px; }
  .ec-home .rf-nav { gap:17px; }
  .ec-home-hero__layout { min-height:610px; gap:22px; }
  .ec-home-hero h1 { font-size:57px; }
  .ec-home-hero__lead { font-size:15px; }
  .ec-home-hero__seal { width:90px; height:90px; left:-5px; bottom:100px; font-size:12px; }
}
@media(max-width:1000px) {
  .ec-home-hero__layout { min-height:570px; }
  .ec-home-hero h1 { font-size:48px; }
  .ec-home-hero__copy { padding-block:40px; }
  .ec-home-hero__portrait { align-self:center; }
  .ec-home-hero__foot .rf-wrap { gap:25px; }
  .ec-home-hero__foot span { font-size:10px; gap:7px; }
  .ec-home-ask__layout { gap:30px; }
  .ec-home-letter { transform:scale(.88); transform-origin:center; }
  .ec-home .ec-questions__layout { gap:35px; }
}
@media(max-width:800px) {
  .ec-home .ec-questions__layout { grid-template-columns:1fr; gap:30px; }
}
@media(max-width:700px) {
  .rf-body.ec-home.ec-story-page :is(.ec-home-method__action,.ec-home-cards__action,.ec-home-trust__action,.ec-home-final__action) .rf-btn { width:100%; }
  .ec-home .rf-wrap { padding-inline:24px; }
  .ec-home .rf-header__inner { min-height:68px; }
  .rf-body.ec-home.ec-story-page .rf-logo { font-size:25px; gap:9px; }
  .rf-body.ec-home.ec-story-page .rf-logo__mark { width:39px; height:39px; padding:6px; }
  .rf-body.ec-home.ec-story-page .rf-logo__text small { font-size:8px; }
  .ec-home .ec-nav-toggle { width:44px; height:44px; }
  .ec-home-hero__layout { display:flex; flex-direction:column; gap:0; min-height:0; }
  .ec-home-hero__copy { width:100%; padding-block:30px 0; }
  .ec-home-hero__invitation { margin-bottom:17px; font-size:11px; gap:7px; }
  .ec-home-hero__invitation .rf-ico { width:20px; height:20px; }
  .ec-home-hero h1 { max-width:14ch; margin-bottom:18px; font-size:clamp(39px,10.4vw,54px); line-height:1.055; }
  .ec-home-hero__lead { max-width:46ch; margin-bottom:21px; font-size:14px; line-height:1.6; }
  .rf-body.ec-home.ec-story-page .ec-home-hero__action .rf-btn { width:100%; min-height:52px; }
  .ec-home-hero__action > p { max-width:36ch; margin:10px auto 0; text-align:center; font-size:10px; line-height:1.55; }
  .ec-home-hero__alternative { align-items:center; gap:0; max-width:none; margin-top:15px; padding-top:12px; }
  .ec-home-hero__alternative > span { font-size:11px; }
  .ec-home-hero__alternative .ec-home-question-link { font-size:13px; }
  .ec-home-hero__portrait { width:100%; max-width:450px; height:235px; margin-top:7px; padding:0; overflow:hidden; }
  .ec-home-hero__portrait picture { align-self:start; width:74%; max-width:none; }
  .ec-home-hero__portrait picture img { border-radius:47% 47% 0 0; -webkit-mask-image:linear-gradient(#000 45%,transparent 87%); mask-image:linear-gradient(#000 45%,transparent 87%); }
  .ec-home-hero__orbit { width:103%; left:-1.5%; top:85%; opacity:.7; }
  .ec-home-hero__seal { display:none; }
  .ec-home-hero__portrait figcaption { bottom:17px; font-size:9px; }
  .ec-home-hero__portrait figcaption > span { margin-bottom:4px; font-size:23px; }
  .ec-home-hero__foot .rf-wrap { justify-content:space-between; min-height:48px; gap:15px; }
  .ec-home-hero__foot span { max-width:44%; font-size:10px; line-height:1.5; }
  .ec-home-hero__foot span:first-child { display:none; }
  .ec-home-hero__foot .rf-ico { width:21px; height:21px; flex:none; }
  .ec-home-ask { padding-block:35px 40px; }
  .ec-home-ask__layout { grid-template-columns:1fr; gap:22px; }
  .ec-home-letter { width:100%; max-width:390px; height:210px; transform:none; }
  .ec-home-letter > .ec-home-orbit { width:285px; opacity:.65; }
  .ec-home-letter__paper { top:-10px; width:220px; height:211px; left:calc(50% - 105px); padding:16px 21px; }
  .ec-home-letter__moon { margin-bottom:4px; }
  .ec-home-letter__moon .rf-ico { width:29px; height:29px; }
  .ec-home-letter__paper > span:not(.ec-home-letter__moon) { font-size:14px; }
  .ec-home-letter__paper > p { font-size:18px; margin-top:7px; }
  .ec-home-letter__paper i { display:none; }
  .ec-home-letter__envelope { left:calc(50% - 137px); width:274px; height:85px; bottom:0; }
  .ec-home-letter__envelope > span { top:35px; width:37px; height:37px; left:calc(50% - 18px); }
  .ec-home-letter__envelope .rf-ico { width:23px; height:23px; }
  .ec-home-ask__copy h2 { margin-bottom:17px; font-size:36px; }
  .ec-home-ask__copy h2 br { display:none; }
  .ec-home-ask__copy > p { font-size:13px; margin-bottom:15px; }
  .ec-home-ask__copy .ec-home-ask__independent { font-size:12px; margin-bottom:20px; }
  .ec-home-ask__copy .ec-home-question-link--button { width:100%; font-size:13px; }
  .ec-home-ask__copy .ec-home-ask__note { font-size:10px; text-align:center; }
  .ec-home .ec-questions { padding-block:40px; }
  .ec-home .ec-questions__layout { gap:25px; }
  .ec-home .ec-questions .ec-section-heading h2 { font-size:35px; }
  .ec-home .ec-questions .ec-section-heading h2 br { display:initial; }
  .ec-home .ec-questions .ec-section-heading h2 + p { margin-top:15px; font-size:13px; }
  .ec-home .ec-questions .ec-text-link { margin-top:10px; font-size:12px; }
  .ec-home .ec-faq summary { font-size:13px; padding-block:18px; }
  .ec-home .ec-faq summary::after { top:16px; }
  .ec-home .ec-faq details > p { font-size:12px; }
  .ec-home-final { padding-block:40px 34px; }
  .ec-home-final__heading h2 { margin-bottom:17px; font-size:35px; }
  .ec-home-final__heading p { font-size:13px; }
  .ec-home-final__heading p br { display:none; }
  .ec-home-final__spread { margin-top:12px; }
  .ec-home-final__spread .ec-celestial-spread__stage { padding:28px 7px 19px; }
  .ec-home-final__spread .ec-celestial-spread__item > strong { font-size:12px; margin-top:12px; }
  .ec-home-final__action { margin-top:13px; }
  .ec-home-final__action .rf-btn { width:100%; min-width:0; }
  .ec-home-final__action > p { font-size:10px; line-height:1.6; }
  .ec-home-final__alternative { flex-direction:column; gap:0; margin-top:18px; }
  .ec-home-final__alternative > span { font-size:11px; }
  .ec-home .rf-footer { padding-bottom:95px; }
  .ec-home .ec-mobile-cta { background:#fff9effa; border-top-color:#dac8b0; }
}
@media(max-width:359px) {
  .rf-body.ec-home.ec-story-page .rf-logo { font-size:23px; }
  .ec-home-hero h1 { font-size:37px; }
  .ec-home-hero__portrait { height:205px; }
  .ec-home-final__spread .ec-celestial-spread__item > strong { font-size:10px; }
}
