.ritual-library{max-width:800px;margin:0 auto;color:#f2edff}.ritual-library-back,.ritual-library-other{display:inline-block;color:#a8dfdd;margin:10px 0 20px;text-decoration:none;line-height:1.6}.ritual-library-hero{padding:42px 26px 34px;border:1px solid #c7a96e88;border-radius:24px;text-align:center;background:linear-gradient(180deg,#191b3444,#191b34ee),url('/assets/lunar-clouds-v1.png') center/cover}.ritual-library-hero.is-festivals{background-image:linear-gradient(180deg,#191b3477,#191b34f5),url('/assets/grimoire-saisons-hero-v3.webp')}.ritual-library-eyebrow{font-size:11px;letter-spacing:.16em;color:#e7c78f}.ritual-library-hero h1{font:clamp(29px,7vw,43px)/1.2 Georgia,serif;color:#f3e9ff;margin:17px 0}.ritual-library-hero p{color:#e3d8ef;font-size:15px;line-height:1.8;max-width:570px;margin:0 auto 20px}.ritual-library-edition{display:inline-block;padding:7px 14px;border:1px solid #79c4d288;border-radius:24px;color:#b5e2df;background:#163b4b99;font-size:12px}.ritual-library-intro{font-size:14px;line-height:1.8;color:#d2c5df;margin:24px 3px}.ritual-library-filters{display:flex;gap:8px;flex-wrap:wrap;margin:20px 0}.ritual-library-filters button{background:#302d4d;border:1px solid #bca4d055;color:#e5d8ef;border-radius:22px;padding:9px 13px;font-size:12px;cursor:pointer}.ritual-library-filters button[aria-pressed=true]{background:#9dd8d7;color:#163c47;border-color:#9dd8d7}.ritual-library-filters button:focus-visible{outline:2px solid #e7c78f;outline-offset:3px}.ritual-library-list>.lunar-ritual{margin:16px 0}.ritual-library-festival .lunar-ritual-art{background-image:url('/assets/festival-rituals-atlas-v1.png')}.ritual-library .lunar-ritual-heading>b{font-size:23px}.ritual-library-footnote{font-size:12px;line-height:1.7;color:#bfb0cc}.ritual-library .lunar-ritual-body{background:#191b3466}
@media(max-width:420px){.ritual-library-hero{padding:30px 18px 25px}.ritual-library .lunar-ritual-heading>b{font-size:20px}.ritual-library-intro{font-size:13px}.ritual-library-hero p{font-size:14px}}
/* Editorial banner stays in document flow; the shared app header rules must not apply. */
#app .ritual-library .ritual-library-hero{display:block;position:relative;top:auto;inset:auto;z-index:auto;width:100%;min-width:0;min-height:0;height:auto;padding:0;margin:0;overflow:hidden;isolation:isolate;border:1px solid #c59879;border-radius:23px;background:linear-gradient(135deg,#341442,#1c0b2e);backdrop-filter:none;text-align:left;box-shadow:0 0 12px #d9a25e25}
#app .ritual-library-hero-image{position:static;display:block;width:100%;height:auto;aspect-ratio:2.5;object-fit:cover;object-position:center;max-width:100%;border-bottom:1px solid #c5987966}
#app .ritual-library-hero-copy{display:block;width:100%;min-width:0;padding:24px 27px 26px}
#app .ritual-library-hero .ritual-library-eyebrow{display:block;font-size:12px;line-height:1.5;letter-spacing:.12em;color:#eacb98;white-space:normal}
#app .ritual-library-hero h1{display:block;width:100%;max-width:none;font:500 clamp(30px,5vw,43px)/1.18 Georgia,serif;color:#ffe1a1;margin:10px 0 13px;word-break:normal;overflow-wrap:normal;white-space:normal}
#app .ritual-library-hero p{display:block;max-width:650px;margin:0 0 17px;font-size:17px;line-height:1.65;color:#f0e2f6;white-space:normal;word-break:normal}
#app .ritual-library-hero .ritual-library-edition{display:inline-block;max-width:100%;padding:7px 13px;border:1px solid #b787a2;background:#59286380;color:#f4dcab;font-size:14px;line-height:1.5;border-radius:20px;white-space:normal}
#app .ritual-library-back,#app .ritual-library-other{color:#edd49c}
@media(max-width:700px){#app .ritual-library-hero-image{aspect-ratio:2.05}#app .ritual-library-hero-copy{padding:20px 19px 22px}#app .ritual-library-hero h1{font-size:32px}#app .ritual-library-hero p{font-size:17px;line-height:1.65}#app .ritual-library-intro{font-size:16px;line-height:1.7}}
