/* Elena Celeste — internal public pages. The existing forms, routes and layouts
   remain in place. This sheet is loaded only by the public application shell. */
body.app.ec-public {
  --shadow-card:0 14px 35px -25px #53206144;
  --shadow:0 24px 55px -35px #53206155;
  background:radial-gradient(ellipse 70% 650px at 3% 140px,#f5eaf9 0,transparent 75%),radial-gradient(ellipse 65% 500px at 100% 620px,#fdf0f7 0,transparent 75%),var(--ec-paper);
}
.ec-public .header { border-bottom:1px solid #decae2; background:#fffdfaef; -webkit-backdrop-filter:blur(16px); backdrop-filter:blur(16px); }
.ec-public .header__inner, .ec-public .header.is-scrolled .header__inner { background:transparent; }
.ec-public .header.is-scrolled { box-shadow:0 8px 25px -22px #4d1a6380; }
.ec-public .brand__mark { filter:drop-shadow(0 2px 2px #b688c423); }
.ec-public .nav a { padding-block:7px; }
.ec-public .nav a::after { bottom:1px; height:2px; }
.ec-public .language-switch { padding:3px; border:1px solid #eadcec; border-radius:6px; background:#fbf6fd; }
.ec-public .language-switch a { transition:color .2s ease,background-color .2s ease; }
.ec-public .burger { background:#fff; border-color:#d6bfdd; transition:background-color .2s ease,border-color .2s ease; }
.ec-public .burger:hover { background:#f5eaf9; border-color:#a675b3; }
.ec-public .mobile-menu { border-radius:7px; background:#fffdfa; }
.ec-public .mobile-menu.is-open { box-shadow:0 20px 32px -21px #3b174d55; }
.ec-public .mobile-menu a:not(.btn):hover { color:var(--ec-plum); background:#f8f1fb; }
.ec-public .btn { transition:background-color .22s ease,border-color .22s ease,box-shadow .22s ease,transform .22s ease; }
.ec-public .btn--gold, .ec-public .header__cta.btn--ghost { box-shadow:0 3px 0 #a30860,0 8px 18px -12px #b5127459; }
.ec-public .btn--gold:hover, .ec-public .header__cta.btn--ghost:hover { box-shadow:0 3px 0 #860950,0 11px 22px -13px #ad186c70; }
.ec-public .btn--ghost { border-color:#aa7bb6; background:#fffdfa; }
.ec-public .btn--ghost:hover { border-color:var(--ec-plum); box-shadow:0 6px 15px -12px #5b146f55; }
.ec-public .btn:active { transform:translateY(1px); }
.ec-public .btn:disabled, .ec-public .btn[aria-disabled="true"] { transform:none; }
.ec-public .btn:focus-visible { outline-color:var(--ec-plum); outline-offset:5px; }
.ec-public .footer { position:relative; border-top:1px solid #dcc7e2; background:linear-gradient(130deg,#f5eaf8,#fcf4f9); }
.ec-public .footer::before { content:""; position:absolute; top:0; left:calc(50% - 32px); width:64px; height:3px; background:var(--ec-plum); }
.ec-public .footer__inner { gap:19px; }
.ec-public .footer__nav { padding-top:16px; border-top:1px solid #e1cde5; }
.ec-public .footer__support { padding:9px 15px; border:1px solid #ddc7e2; border-radius:5px; background:#ffffff85; transition:background-color .2s ease,border-color .2s ease; }
.ec-public .footer__support:hover { border-color:#b58fc3; background:#fff; }
.ec-public .footer__legal { margin-top:0; }

/* Useful surfaces have different weights: the form is the clearest one. */
.ec-public .wizard, .ec-public .authcard, .ec-public .ecard, .ec-public .panel {
  border-color:#decae5;
  border-radius:9px;
  background:#fffefa;
  box-shadow:var(--shadow-card);
}
.ec-public .authcard { border-top:3px solid var(--ec-plum); background:linear-gradient(180deg,#fffafd 0,#fffefa 210px); box-shadow:var(--shadow); }
.ec-public .authcard__head { margin-bottom:28px; }
.ec-public .authcard__title { line-height:1.15; }
.ec-public .authcard__lead { line-height:1.65; margin-top:13px; }
.ec-public .step__badge { border:1px solid #dac1e1; background:#f5eaf9; box-shadow:inset 0 0 0 5px #fff9fe,0 6px 15px -10px #6b2b7f55; }
.ec-public .authcard__head .step__badge { margin-bottom:22px; }
.ec-public .auth__tabs { padding:5px; gap:5px; border:1px solid #e2d0e8; border-radius:6px; background:#f3e9f7; }
.ec-public .auth__tab { min-height:45px; display:grid; place-items:center; padding:10px; border-radius:4px; }
.ec-public .auth__tab:hover { color:var(--ec-plum); background:#fff8fe; }
.ec-public #tab-login:checked ~ .auth__tabs .auth__tab[for='tab-login'],
.ec-public #tab-register:checked ~ .auth__tabs .auth__tab[for='tab-register'] { background:var(--ec-plum); box-shadow:0 3px 9px -5px #47105877; }
.ec-public .authform { gap:19px; }
.ec-public .authfield label, .ec-public .field > label { font-weight:600; }
.ec-public .field input, .ec-public .field textarea, .ec-public .authfield input,
.ec-public .esetup__input, .ec-public .ask__input, .ec-public .qpay__field input {
  border-color:#cbb3d5;
  border-radius:5px;
  background:#fffdff;
  box-shadow:inset 0 2px 4px #4b1b5a04;
  transition:background-color .2s ease,border-color .2s ease,box-shadow .2s ease;
}
.ec-public .field input:not([type=checkbox]):not([type=radio]), .ec-public .authfield input, .ec-public .qpay__field input { min-height:52px; }
.ec-public .field input:hover, .ec-public .field textarea:hover, .ec-public .authfield input:hover, .ec-public .esetup__input:hover { border-color:#aa83b6; }
.ec-public .field input:focus, .ec-public .field textarea:focus, .ec-public .authfield input:focus,
.ec-public .esetup__input:focus, .ec-public .ask__input:focus, .ec-public .qpay__field input:focus {
  border-color:var(--ec-plum);
  background:#fff;
  box-shadow:0 0 0 4px #efe2f8;
}
.ec-public .field input[aria-invalid="true"], .ec-public .field textarea[aria-invalid="true"],
.ec-public .authfield input[aria-invalid="true"], .ec-public .esetup__step.is-invalid .esetup__input {
  border-color:#bd6575;
  box-shadow:0 0 0 3px #f8e2e8;
}
.ec-public .authfield__link, .ec-public .authlink { text-underline-offset:4px; }
.ec-public .authform__foot { margin-top:7px; }
.ec-public .authreassure { margin-top:26px; border-color:#e6d6eb; }
.ec-public .authreassure svg { color:var(--ec-sage); }
.ec-public .notice, .ec-public .authnote { padding:16px 18px; border:1px solid #d7bde1; border-radius:6px; background:#f4ebf9; box-shadow:inset 3px 0 #b68bc7; line-height:1.6; }
.ec-public .notice > svg, .ec-public .authnote > svg { flex:none; }
.ec-public .alert, .ec-public .flash--err { border-radius:6px; border-left:3px solid #ac3e51; }
.ec-public .flash--ok, .ec-public .authnote--ok { background:#eef7f1; border-color:#c7dfd0; box-shadow:inset 3px 0 #65a280; }
.ec-public .trustfoot { font-size:.8rem; }

/* The energy profile has the texture of a personal card, across its whole width. */
.ec-public .ecard { isolation:isolate; background:linear-gradient(115deg,#fffaff,#fbf4fc 53%,#fffafa); border-top:3px solid #8e519e; }
.ec-public .ecard::after { content:""; position:absolute; z-index:-1; pointer-events:none; right:-72px; top:-95px; width:300px; height:300px; border:1px solid #b68ac822; border-radius:50%; box-shadow:0 0 0 35px #b68ac807,0 0 0 70px #b68ac805; }
.ec-public .ecard__kicker { color:#794787; }
.ec-public .ecard__kicker-rule { background:linear-gradient(90deg,transparent,#c29bce); }
.ec-public .ecard__kicker-rule:last-child { background:linear-gradient(90deg,#c29bce,transparent); }
.ec-public .ecard__portrait { border:1px solid #decae6; border-radius:50%; background:radial-gradient(circle,#fff 0,#f4e8f9 75%); box-shadow:inset 0 0 0 7px #ffffffbd,0 9px 22px -14px #6e2b7b44; }
.ec-public .ecard__portrait img { border:3px solid #fff; }
.ec-public .ecard__glyph { background:transparent; }
.ec-public .ecard__glyph-svg { width:43%; height:43%; }
.ec-public .ecard__sigil { border-color:#c9a8d4; box-shadow:0 4px 10px -6px #57206444; }
.ec-public .ecard__name { line-height:1.12; }
.ec-public .ecard__tagline { line-height:1.6; }
.ec-public .ecard__grid { gap:11px; }
.ec-public .ecard__cell { padding:20px 12px; border-radius:5px; border-color:#e2cde9; background:#ffffffbf; box-shadow:inset 0 1px #fff; }
.ec-public .ecard__cell dt { font-size:.73rem; }
.ec-public .ecard__cell dd { margin-top:2px; font-size:1.17rem; }
.ec-public .ecard__note { padding-block:17px; border-block-color:#e5d4ec; }
.ec-public .ecard__manage-btn { padding:8px 11px; border:1px solid #e4d0e9; background:#ffffff94; border-radius:4px; transition:background-color .2s ease,border-color .2s ease; }
.ec-public .ecard__manage-btn:hover { border-color:#ba93c7; background:#fff; }
.ec-public .credits-banner { border:1px solid #d3b9df; border-radius:5px; background:#f0e4f7; }
.ec-public .credits-banner strong { font-size:1.08em; }
.ec-public .esetup__stepnum { padding:5px 10px; border:1px solid #dbbee4; border-radius:4px; background:#f0e0f7; }
.ec-public .esetup__lead { line-height:1.65; }
.ec-public .esetup { padding-top:5px; }
.ec-public .esetup__label { font-size:.84rem; }
.ec-public .esetup__input { min-height:56px; }
.ec-public .esetup__dots span { background:#d7bfe1; }
.ec-public .esetup__note { line-height:1.6; color:#7b6283; }
.ec-public .teaser { background:#faf5fc; border:1px dashed #d5b9df; border-radius:7px; padding:25px; }
.ec-public .teaser__badge { border-color:#d5bbde; background:#f0e3f7; border-radius:4px; }
.ec-public .teaser__title { font-size:1.35rem; }
.ec-public .composer { background:#fffefa; }
.ec-public .composer__head { margin-bottom:28px; }
.ec-public .fromev { padding-block:18px; border-block:1px solid #eadceb; }
.ec-public .fromev__photo { width:76px; height:76px; border:3px solid #fff; outline:1px solid #d3b9df; box-shadow:0 8px 15px -12px #5b146f60; }
.ec-public .fromev__name { font-size:.76rem; color:var(--ec-plum); }
.ec-public .ask { border:1px solid #cba4d7; border-radius:7px; background:#fffdff; box-shadow:0 0 0 4px #f7effa; }
.ec-public .ask::before { left:18px; right:18px; background:linear-gradient(90deg,transparent,#ad74c1,transparent); }
.ec-public .ask__top { padding:14px 13px 12px; }
.ec-public .ask__label { font-size:.82rem; }
.ec-public .ask__credit { padding:5px 10px; border-radius:4px; }
.ec-public .ask textarea { line-height:1.7; }
.ec-public .ask__foot { margin-inline:12px; padding:13px 1px 10px; border-top:1px solid #eadced; }
.ec-public .ask__hint svg { color:var(--ec-sage); }
.ec-public .ask:focus-within { box-shadow:0 0 0 4px #efe2f8,0 12px 24px -22px #5b146f66; }
.ec-public .ask.is-invalid { border-color:#bd6575; box-shadow:0 0 0 3px #f8e2e8; }
.ec-public .qgift { border:1px solid #d4b6df; border-radius:8px; background:linear-gradient(115deg,#f2e3f9,#fff3f9); box-shadow:inset 3px 0 #9e6db0; }
.ec-public .qgift__ic { border:1px solid #d8bce3; background:#fff7ff; }
.ec-public .qcard { border-color:#dcc7e4; border-radius:6px; box-shadow:0 5px 15px -14px #55256870; transition:background-color .2s ease,border-color .2s ease; }
.ec-public .qcard:hover { background:#f6edf9; border-color:#bc94ca; }
.ec-public .qcard__avatar { border:2px solid #fff; outline:1px solid #d8bfdf; background:#eee0f5; }
.ec-public .panel h2 { font-size:1.15rem; text-transform:none; letter-spacing:0; border-color:#e7d8ec; }

/* Pricing: one featured membership, with quiet, clearly selectable packs. */
.ec-public .pricing-hero { position:relative; padding:7px 12px 14px; }
.ec-public .pricing-hero::after { content:""; display:block; width:50px; height:1px; margin:25px auto 0; background:#c391c3; }
.ec-public .pricing-hero h1 { line-height:1.12; }
.ec-public .pricing-hero > p:last-child { line-height:1.65; }
.ec-public .plan { padding:clamp(26px,3.4vw,38px); border:1px solid #d9c2e1; border-radius:9px; background:#fffefa; box-shadow:0 14px 35px -26px #58226655; }
.ec-public .plan--featured { border:2px solid var(--ec-plum); background:linear-gradient(155deg,#faf0fc,#fffefa 55%); box-shadow:0 16px 35px -25px #5b146f77; }
.ec-public .plan__ribbon { top:-15px; padding:7px 18px; border:1px solid #713780; border-radius:5px; background:var(--ec-plum); box-shadow:0 5px 13px -9px #44104e80; }
.ec-public .plan__name { color:var(--ec-plum); font-size:1.7rem; font-weight:600; }
.ec-public .plan__tagline { margin-top:7px; line-height:1.6; }
.ec-public .plan__price { margin:5px 0 24px; padding-bottom:23px; border-bottom:1px solid #dfc9e6; }
.ec-public .plan__price-new { font-size:3.2rem; letter-spacing:-.045em; }
.ec-public .plan__feats { gap:16px; }
.ec-public .plan__feats li { line-height:1.55; font-size:.91rem; }
.ec-public .plan__feats li svg { width:21px; height:21px; padding:3px; border-radius:50%; background:#f1e6f7; }
.ec-public .plan__feats li.is-off svg { background:#f0edf1; }
.ec-public .plan__note { color:#79657f; font-size:.77rem; }
.ec-public .pack { gap:13px; padding:18px 14px; border-radius:6px; border-color:#dfcde5; background:#fff; transition:background-color .2s ease,border-color .2s ease,box-shadow .2s ease; }
.ec-public .pack--pop { background:#f8eefb; border-color:#c7a3d4; }
.ec-public .pack:hover, .ec-public .pack:focus-within { border-color:#a679b7; background:#f5eaf9; box-shadow:0 7px 17px -14px #62267566; }
.ec-public .pack__qty { min-width:29px; font-weight:600; font-size:1.65rem; }
.ec-public .pack__price { padding:9px 11px; border-color:#dac2e3; border-radius:4px; background:#f4e8f9; font-size:1.15rem; }
.ec-public .pack__label { font-size:.92rem; }
.ec-public .pack__tag { padding:3px 6px; border:1px solid #d5b8df; border-radius:3px; background:#fff8fe; letter-spacing:0; text-transform:none; }
.ec-public .pack__per { white-space:normal; line-height:1.45; }
.ec-public .pricing-foot { line-height:1.6; max-width:68ch; }
.ec-public .pricing-foot svg { color:var(--ec-sage); }
.ec-public .modal__backdrop, .ec-public .ppay__backdrop, .ec-public .qpay__backdrop { background:#250b389e; -webkit-backdrop-filter:blur(5px); backdrop-filter:blur(5px); }
.ec-public .modal__dialog, .ec-public .ppay__dialog, .ec-public .qpay__dialog { border:1px solid #d9c4e1; border-radius:10px; background:#fffefa; box-shadow:0 30px 75px -30px #230d3899; }
.ec-public .modal__close, .ec-public .ppay__close, .ec-public .qpay__close { border-color:#decae5; background:#f7eefb; }
.ec-public .qpay-pack { border-radius:6px; background:#fff; }
.ec-public .qpay-pack.is-sel { border-color:var(--ec-plum); background:#f4e8f9; box-shadow:0 0 0 1px var(--ec-plum); }
.ec-public .qpay-pack__qty { border-color:#d6bce0; background:#fffafa; }
.ec-public .qpay__secure, .ec-public .ppay__secure { line-height:1.6; }

/* Contact is one composed scene. Legal pages remain calm, readable documents. */
.ec-public .contact-hero { position:relative; isolation:isolate; padding:30px; gap:clamp(28px,4vw,54px); border:1px solid #e0cce5; border-radius:9px; background:linear-gradient(118deg,#efe0f7,#fff4f9 57%,#fffdfa); box-shadow:0 16px 38px -29px #58246460; }
.ec-public .contact-hero::before { content:""; position:absolute; z-index:-1; top:26px; bottom:26px; left:50%; right:22px; border:1px solid #e1c9e533; border-radius:50%; pointer-events:none; }
.ec-public .contact-hero__image { position:relative; padding:0 10px 12px 0; }
.ec-public .contact-hero__image::before { content:""; position:absolute; z-index:-1; inset:15px 0 0 14px; border:1px solid #b78ec5; border-radius:5px; background:#e4cde9; transform:rotate(2deg); }
.ec-public .contact-hero__image img { display:block; width:100%; aspect-ratio:4/5; object-fit:cover; object-position:50% 35%; border:3px solid #fff; border-radius:5px; box-shadow:0 16px 24px -19px #48195199; }
.ec-public .contact-hero__copy h1 { line-height:1.13; }
.ec-public .contact-hero__copy > p:not(.kicker) { line-height:1.7; }
.ec-public .contact-email { padding-block:21px; gap:10px; border-color:#dac3e0; }
.ec-public .contact-email > a { text-decoration-color:#d6a3c6; text-decoration-thickness:1px; text-underline-offset:5px; transition:color .2s ease,text-decoration-color .2s ease; }
.ec-public .contact-email > a:hover { color:var(--ec-plum); text-decoration-color:var(--ec-plum); }
.ec-public .contact-help { margin-top:35px; padding-top:27px; border-top:0; }
.ec-public .contact-help details { margin-top:10px; padding:0; border:1px solid #e0cee6; border-radius:6px; background:#fffefa; transition:border-color .2s ease,background-color .2s ease; }
.ec-public .contact-help summary { padding:20px 23px; font-size:.96rem; }
.ec-public .contact-help details[open] { border-color:#cda9da; background:#fbf5fd; }
.ec-public .contact-help details p { margin:0; padding:0 23px 21px; line-height:1.7; }
.ec-public .ec-breadcrumb { padding-block:4px; font-size:.78rem; }
.ec-public .ec-breadcrumb a { text-decoration-color:#c69cd0; text-underline-offset:4px; }
.ec-public .legal { border-color:#decae4; border-radius:8px; border-top:3px solid var(--ec-plum); background:linear-gradient(180deg,#fffafd,#fffefa 230px); box-shadow:0 20px 40px -30px #4f1c6355; }
.ec-public .legal__head { padding-bottom:20px; margin-bottom:22px; }
.ec-public .legal__kicker { display:flex; gap:9px; align-items:center; }
.ec-public .legal__title { line-height:1.12; }
.ec-public .legal__updated { margin-top:16px; }
.ec-public .legal__tabs { padding-bottom:26px; gap:9px; border-color:#e3d1e8; }
.ec-public .legal__tabs a { padding:10px 13px; background:#fff; border-color:#decae6; border-radius:4px; transition:background-color .2s ease,border-color .2s ease,color .2s ease; }
.ec-public .legal__tabs a:hover { border-color:#b187bf; background:#f7edf9; }
.ec-public .legal__tabs a[aria-current] { background:var(--ec-plum); color:#fff; }
.ec-public .legal__body h2 { padding-top:10px; font-size:1.46rem; }
.ec-public .legal__body h2:first-child { padding-top:0; }
.ec-public .legal__body h2:not(:first-child) { border-top:1px solid #eddfef; padding-top:27px; }
.ec-public .legal__body a { text-underline-offset:4px; overflow-wrap:anywhere; }
.ec-public .legal-callout { border:1px solid #e0c7e8; border-left:3px solid #8b4c9c; border-radius:4px; background:#f7effa; }
.ec-public .legal__table-wrap { border-radius:5px; border-color:#d8c2e0; }
.ec-public .legal__body th { background:#f0e2f7; }
.ec-public .legal__body tr:nth-child(even) td { background:#fcf7fd; }
.ec-public .legal__nav { border-top-color:#e3d1e8; gap:9px; }
.ec-public .legal__nav-link { border-color:#dbc6e2; background:#fff; border-radius:4px; }
.ec-public .ec-help-note { padding:24px; margin-top:20px; border:1px solid #e4d3e9; border-radius:6px; background:#f8f0fb; }
.ec-public .ec-help-note > svg { width:28px; height:28px; padding:5px; border:1px solid #decae7; border-radius:50%; background:#fff; }

@media (hover:hover) and (pointer:fine) {
  .ec-public .btn--gold:hover, .ec-public .header__cta.btn--ghost:hover { transform:translateY(-1px); }
  .ec-public .btn--gold:active, .ec-public .header__cta.btn--ghost:active { transform:translateY(1px); }
}
@media (max-width:820px) {
  .ec-public .plans { gap:31px; }
  .ec-public .plan__name { font-size:1.6rem; }
  .ec-public .contact-hero { padding:23px; gap:26px; }
}
@media (max-width:620px) {
  .ec-public .header__inner { gap:9px; }
  .ec-public .language-switch { padding:2px; }
  .ec-public .header .brand__sub { letter-spacing:0; }
  .ec-public .authcard { padding:28px 23px; }
  .ec-public .auth__tab { font-size:.82rem; }
  .ec-public .ecard, .ec-public .wizard { border-radius:7px; }
  .ec-public .ecard__portrait { width:118px; }
  .ec-public .esetup__hero { gap:23px; }
  .ec-public .ecard__cell { padding:19px 14px; }
  .ec-public .ecard__id .credits-banner { padding:8px 12px; font-size:.83rem; }
  .ec-public .fromev { gap:17px; }
  .ec-public .ask__foot { flex-wrap:wrap; gap:7px; }
  .ec-public .ask__hint { font-size:.7rem; }
  .ec-public .teaser { padding:23px 20px; }
  .ec-public .plan { padding:28px 22px; }
  .ec-public .plan__price-new { font-size:3rem; }
  .ec-public .pack { gap:10px; padding:15px 12px; }
  .ec-public .pack__qty { font-size:1.5rem; min-width:25px; }
  .ec-public .pack__price { padding:8px 10px; }
  .ec-public .pack__label { font-size:.87rem; }
  .ec-public .pack__per { font-size:.74rem; }
  .ec-public .qpay__dialog { border-radius:10px 10px 0 0; padding-bottom:max(24px,env(safe-area-inset-bottom)); }
  .ec-public .contact-hero { padding:20px; gap:28px; }
  .ec-public .contact-hero__image { width:100%; max-width:none; margin:0; padding-right:7px; }
  .ec-public .contact-hero__image img { aspect-ratio:4/3; object-position:50% 40%; }
  .ec-public .contact-hero__image::before { inset:12px 0 0 9px; transform:rotate(1deg); }
  .ec-public .contact-hero::before { display:none; }
  .ec-public .contact-hero__copy h1 { font-size:2.15rem; }
  .ec-public .contact-email { padding-block:18px; }
  .ec-public .contact-help summary { padding:18px; font-size:.92rem; }
  .ec-public .contact-help details p { padding:0 18px 18px; font-size:.9rem; }
  .ec-public .legal { padding:27px 21px; }
  .ec-public .legal__tabs { gap:7px; }
  .ec-public .legal__tabs a { padding:9px 10px; }
  .ec-public .legal__body h2 { font-size:1.28rem; }
  .ec-public .ec-help-note { padding:20px 17px; gap:11px; }
  .ec-public .footer__inner { gap:16px; }
}
@media (max-width:359px) {
  .ec-public .authcard { padding-inline:19px; }
  .ec-public .plan { padding-inline:18px; }
  .ec-public .pack { padding-inline:10px; gap:8px; }
  .ec-public .pack__price { padding-inline:8px; font-size:1.03rem; }
  .ec-public .contact-hero { padding:17px; }
  .ec-public .legal { padding-inline:18px; }
}
@media (prefers-reduced-motion:reduce) {
  .ec-public *, .ec-public *::before, .ec-public *::after { scroll-behavior:auto!important; transition:none!important; animation-duration:.01ms!important; animation-iteration-count:1!important; }
  .ec-public .btn--gold:hover, .ec-public .header__cta.btn--ghost:hover { transform:none; }
}
