/* Rituals collection, ritual pages, and the shared player. Loaded only on /rituals/ routes. */
.rituals-page,.ritual-page{--ritual-accent:var(--gold);--ritual-deep:#1d1524}
[data-theme=moonwater]{--ritual-accent:#b9cde6;--ritual-deep:#0f1a2c;--ritual-glow:#6f93c455}
[data-theme=unbinding]{--ritual-accent:#dcbf8c;--ritual-deep:#2a1531;--ritual-glow:#b5815855}
[data-theme=window]{--ritual-accent:#d6d7b1;--ritual-deep:#142a26;--ritual-glow:#8ca48233}
[data-theme=remembrance]{--ritual-accent:#e9c895;--ritual-deep:#141d32;--ritual-glow:#b4936933}
[data-theme=autumn]{--ritual-accent:#d9ab7e;--ritual-deep:#152c2b;--ritual-glow:#b7784733}

/* Collection */
.rituals-hero{text-align:center;margin-bottom:10px}
.rituals-doorway{width:190px;height:190px;margin:0 auto 34px;border-radius:50%;border:1px solid #d3b78a70;background:radial-gradient(circle at 50% 45%,#f1e9df30,#8b599d30 38%,transparent 70%);box-shadow:0 0 90px #8b599d38,inset 0 0 50px #d3b78a1c;animation:doorway-glow 9s ease-in-out infinite}
.rituals-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(290px,1fr));gap:28px;max-width:1080px;margin:0 auto 60px}
.ritual-card{border:1px solid var(--line);background:linear-gradient(160deg,var(--ritual-deep),#15111a 70%);padding:0 0 30px;display:flex;flex-direction:column}
.ritual-card>*:not(.ritual-card-art){margin-left:30px;margin-right:30px}
.ritual-card-art{height:190px;margin-bottom:26px;border-bottom:1px solid var(--line);overflow:hidden;background:var(--ritual-deep)}
.ritual-card-art img{width:100%;height:100%;object-fit:cover}
.ritual-card .eyebrow{font-size:10px;margin-bottom:12px}
.ritual-card h2,.ritual-card h3{font-size:38px;margin-bottom:12px}
.ritual-card h2 a:hover,.ritual-card h3 a:hover{color:var(--gold)}
.ritual-group{scroll-margin-top:100px;max-width:1080px;margin:0 auto}
.ritual-group>h2{font-size:34px;margin:44px 0 24px}
.ritual-group-nav{display:flex;flex-wrap:wrap;justify-content:center;gap:10px;max-width:1080px;margin:30px auto 44px}
.ritual-group-nav a{border:1px solid var(--line);padding:10px 15px;border-radius:24px;font-size:14px}
.ritual-group-nav a:hover,.ritual-group-nav a:focus-visible{border-color:var(--gold);color:var(--gold)}
[data-theme=quiet]{--ritual-accent:#d6cbb8;--ritual-deep:#111a29;--ritual-glow:#9b92bb33}
[data-theme=stream]{--ritual-accent:#becfc9;--ritual-deep:#142724;--ritual-glow:#86b9b333}
[data-theme=mirror]{--ritual-accent:#e2c7b6;--ritual-deep:#2a1d29;--ritual-glow:#d39fa633}
[data-theme=gratitude]{--ritual-accent:#e3c18c;--ritual-deep:#2b211a;--ritual-glow:#d9ae7033}
[data-theme=solstice]{--ritual-accent:#d4dfeb;--ritual-deep:#132339;--ritual-glow:#9daec533}
[data-theme=threshold]{--ritual-accent:#d9c6a2;--ritual-deep:#211d32;--ritual-glow:#b9aace33}
[data-theme=ledger]{--ritual-accent:#d4c39d;--ritual-deep:#192922;--ritual-glow:#b4bc9733}
[data-theme=birthday]{--ritual-accent:#e5c4ab;--ritual-deep:#2c1d2b;--ritual-glow:#d5a98f33}
[data-theme=bigday]{--ritual-accent:#d9d7bf;--ritual-deep:#1c2932;--ritual-glow:#b6c9c833}
.ritual-card p{font-size:15px}
.ritual-card-purpose{color:#e0d4e1!important}
.ritual-card .button{margin-top:auto;align-self:flex-start}

/* Ritual page */
.ritual-heading{margin-bottom:30px}
.ritual-facts{list-style:none;display:flex;justify-content:center;flex-wrap:wrap;gap:8px 22px;padding:0;margin:22px 0 0;font-size:12px;color:#c6bdcb}
.ritual-facts li:before{content:'✓';color:var(--gold);margin-right:8px}
.ritual-script{list-style:none;padding:0!important;margin:25px 0;border-left:1px solid var(--line)}
.ritual-script li{padding:0 0 22px 26px;position:relative}
.ritual-script li:before{content:'';position:absolute;left:-4px;top:12px;width:7px;height:7px;border-radius:50%;background:var(--gold)}
.ritual-script h3{font-size:26px;margin:0 0 8px}
.ritual-time{font:12px/1 var(--sans);letter-spacing:1px;color:var(--gold);margin-right:10px;vertical-align:middle}
.ritual-script p{margin-bottom:8px}
.ritual-optional{font-size:14px!important;font-style:italic}

/* Player shell */
.ritual-player{position:relative;max-width:920px;min-height:420px;margin:0 auto 60px;border:1px solid var(--line);background:radial-gradient(ellipse at 50% 0%,var(--ritual-glow,#8b599d33),transparent 60%),linear-gradient(180deg,var(--ritual-deep),#120f17);overflow:hidden;overflow:clip;display:flex;flex-direction:column}
.ritual-nojs,.ritual-fallback{margin:auto;padding:40px;max-width:560px;text-align:center}
.ritual-prepare,.ritual-closing{max-width:620px;margin:0 auto;padding:48px 32px;text-align:center}
.ritual-prepare h2,.ritual-closing h2{font-size:44px}
.ritual-options{display:flex;flex-wrap:wrap;justify-content:center;align-items:center;gap:14px 24px;margin:28px 0 10px}
.ritual-toggle{display:inline-flex;align-items:center;gap:10px;font-size:14px;color:#e0d2e2;cursor:pointer;min-height:44px}
.ritual-toggle input{width:18px;height:18px;accent-color:var(--gold)}
.ritual-volume{display:inline-flex;align-items:center;gap:10px;font-size:14px;color:#e0d2e2}
.ritual-volume input{accent-color:var(--gold);width:120px}
.ritual-options .button{min-height:44px;padding:10px 18px}
.ritual-error{color:#f0c9c9;font-size:14px}
.ritual-prepare-actions{display:flex;flex-direction:column;align-items:center;gap:10px;margin-top:16px}

/* Session */
.ritual-session{display:flex;flex-direction:column;flex:1;padding:28px 28px 0;text-align:center}
.ritual-scene{position:relative;height:auto;aspect-ratio:800/360;max-height:45vh;display:grid;place-items:center;margin:-28px -28px 10px;overflow:hidden}
.ritual-scene>svg{position:absolute;inset:0;width:100%;height:100%;display:block}
.scene-glow{position:absolute;width:320px;height:320px;border-radius:50%;background:radial-gradient(circle,var(--ritual-glow,#8b599d44),transparent 65%);opacity:calc(.45 + var(--progress,0)*.55);animation:ritual-breathe 10s ease-in-out infinite}
.scene-orb{width:calc(110px + var(--progress,0)*70px);height:calc(110px + var(--progress,0)*70px);border-radius:50%;border:1px solid var(--ritual-accent);background:radial-gradient(circle at 50% 40%,#ffffff1c,transparent 70%);box-shadow:0 0 calc(30px + var(--progress,0)*60px) var(--ritual-glow,#8b599d55),inset 0 0 30px #ffffff10;transition:width 2s,height 2s,box-shadow 2s}
.scene-marks{position:absolute;display:flex;gap:28px;bottom:6px}
.scene-marks .mark{width:14px;height:14px;border-radius:50%;border:1px solid var(--ritual-accent);transition:opacity 2.5s,transform 2.5s}
.scene-marks .is-active{background:var(--ritual-accent);box-shadow:0 0 18px var(--ritual-accent);animation:ritual-breathe 4s ease-in-out infinite}
.scene-marks .is-released{opacity:.12;transform:scale(.5) translateY(16px)}
.scene-marks .is-waiting{opacity:.4}
.ritual-player.is-paused .scene-glow,.ritual-player.is-paused .scene-marks .is-active{animation-play-state:paused}
.ritual-guidance{max-width:640px;margin:0 auto;width:100%;min-height:230px}
.ritual-stage-name{font-size:10px;margin-bottom:12px}
.ritual-prompt{font-size:32px;line-height:1.3;color:var(--text);min-height:2.6em;margin-bottom:22px;outline:none}
.ritual-interaction{min-height:60px}
.ritual-interaction input[type=text]{width:100%;max-width:420px;border:1px solid #a58bae45;background:#110f16;color:var(--text);padding:12px 14px}
.eyebrow-length{white-space:nowrap}
.ritual-interaction textarea.ritual-letter{display:block;width:100%;max-width:560px;min-height:120px;margin:0 auto;resize:vertical;border:1px solid #a58bae45;background:#110f16;color:var(--text);padding:12px 14px;font:inherit;line-height:1.6}
.ritual-interaction .field-label{margin-bottom:10px}
.ritual-choices{display:flex;flex-wrap:wrap;justify-content:center;gap:10px}
.ritual-choice{background:transparent;border:1px solid var(--line);padding:10px 18px;min-height:44px;font-size:14px;color:var(--muted)}
.ritual-choice:hover,.ritual-choice[aria-pressed=true]{border-color:var(--gold);color:var(--gold)}
.ritual-response{font:italic 20px/1.5 var(--serif);color:#d0c3d6;min-height:1.5em;margin:14px 0 0}
.ritual-paused{margin:18px auto 0;padding:20px;border:1px solid var(--line);background:#100d14cc;max-width:420px}
.ritual-paused p{margin-bottom:6px}
.ritual-paused-time{font-size:13px}
.ritual-paused .button{margin-top:10px}
.ritual-controls{display:flex;flex-wrap:wrap;justify-content:center;gap:10px;margin:12px -28px 0;padding:12px 16px 16px;position:sticky;bottom:0;z-index:2;background:linear-gradient(#120f1700,#120f17f2 35%)}
.ritual-control{background:transparent;border:1px solid var(--line);color:#c6bdcb;font-size:13px;padding:8px 14px;min-height:40px}
.ritual-control:hover{color:var(--gold);border-color:#c7aa7970}
.ritual-control[aria-pressed=true]{color:var(--gold)}
.ritual-control:disabled{opacity:.45}
.ritual-progress{height:2px;background:#ffffff10;margin:0 -28px}
.ritual-progress span{display:block;height:100%;background:var(--ritual-accent);transform-origin:left;transform:scaleX(0);transition:transform .3s linear}

/* Closing */
.ritual-closing .lead{font:24px/1.5 var(--serif);color:#e3d5e5}
.ritual-chosen{list-style:none;padding:0;margin:0 0 26px;color:#d0c3d6;font:italic 19px/1.6 var(--serif)}
.ritual-closing textarea{width:100%;min-height:95px;text-align:left}
.ritual-include{border:0;padding:0;margin:0 0 10px}
.ritual-include .ritual-toggle{margin:0 12px}

/* Immersion: simplify the surrounding page while a session is open. */
body.ritual-immersive .ritual-static,body.ritual-immersive .ritual-heading,body.ritual-immersive .breadcrumbs{display:none}
body.ritual-immersive .site-header,body.ritual-immersive .site-footer{opacity:.35;transition:opacity .6s}
body.ritual-immersive .site-header:hover,body.ritual-immersive .site-header:focus-within,body.ritual-immersive .site-footer:focus-within{opacity:1}
body.ritual-immersive .ritual-player{min-height:calc(100dvh - 190px)}
body.ritual-immersive .ritual-page{padding-top:24px}

/* Reduced motion: still compositions and gentle opacity changes only. */
.ritual-player[data-motion=reduced] *{animation:none!important;transition-property:opacity!important}
.ritual-player[data-motion=reduced] .scene-orb{width:150px;height:150px}
@media(prefers-reduced-motion:reduce){.rituals-doorway{animation:none}}

@keyframes ritual-breathe{50%{transform:scale(1.06);opacity:.85}}
@keyframes doorway-glow{50%{box-shadow:0 0 120px #8b599d4a,inset 0 0 60px #d3b78a2a}}

@media(max-width:700px){
  .rituals-doorway{width:140px;height:140px;margin-bottom:26px}
  .rituals-grid{grid-template-columns:1fr;gap:20px}
  .ritual-card>*:not(.ritual-card-art){margin-left:22px;margin-right:22px}
  .ritual-card h2,.ritual-card h3{font-size:32px}
  .ritual-player{margin-left:-22px;margin-right:-22px;border-left:0;border-right:0}
  .ritual-prepare,.ritual-closing{padding:36px 22px}
  .ritual-prepare h2,.ritual-closing h2{font-size:36px}
  .ritual-session{padding:18px 18px 0}
  .ritual-scene{height:220px;margin:-18px -18px 8px}
  .scene-glow{width:220px;height:220px}
  .scene-orb{width:calc(84px + var(--progress,0)*50px);height:calc(84px + var(--progress,0)*50px)}
  .ritual-prompt{font-size:25px}
  .ritual-progress{margin:0 -18px}
  .ritual-closing .lead{font-size:21px}
  .ritual-closing .reading-actions .button{width:100%}
  body.ritual-immersive .ritual-player{min-height:calc(100dvh - 90px)}
  body.ritual-immersive .site-header nav{display:none}
  body.ritual-immersive .site-header{min-height:0;padding-bottom:14px}
  .ritual-controls{margin:10px -18px 0}
}
/* Short screens: keep Pause and Leave within reach without scrolling. */
@media(max-height:720px) and (max-width:700px){.ritual-scene{height:190px}.scene-glow{width:180px;height:180px}.ritual-guidance{min-height:0}.ritual-prompt{font-size:23px}}
@media print{.ritual-player{display:none}}

/* Milestone 3: artwork interactions, prompt crossfade, and paused motion. */
.ritual-scene.is-traceable{cursor:crosshair;touch-action:none}
.ritual-prompt{transition:opacity .45s ease}
.ritual-prompt.is-changing{opacity:0}
.ritual-player.is-paused .ritual-scene *{animation-play-state:paused!important}

/* The Lantern Circle and support notes. */
[data-theme=lantern]{--ritual-accent:#f3cf8c;--ritual-deep:#141845;--ritual-glow:#e59a4a44}
.ritual-support{max-width:560px;margin:22px auto 0;font-size:13px;line-height:1.7;color:var(--muted);border-top:1px solid var(--line);padding-top:16px}
/* Moon rituals: tonight's moon and the table of upcoming dates. */
.moon-now{color:#e0d4e1!important}
.moon-dates caption{caption-side:bottom;text-align:left;font-size:12px;color:var(--muted);padding-top:8px}
[data-theme=fullmoon]{--ritual-accent:#dfe3ff;--ritual-deep:#1a2150;--ritual-glow:#9aa6ee44}
[data-theme=newmoon]{--ritual-accent:#d9d2ff;--ritual-deep:#0e1131;--ritual-glow:#7f74c844}

/* The private collection is distinct from the free ritual groups. */
.premium-ritual-feature{display:grid;grid-template-columns:1fr 1.15fr;max-width:1080px;margin:42px auto 48px;border:1px solid #d3bb7c55;background:linear-gradient(125deg,#24212d,#15151e);overflow:hidden}
.premium-ritual-image{min-height:390px;position:relative}.premium-ritual-image img{width:100%;height:100%;object-fit:cover;position:absolute;inset:0;object-position:45% center}
.premium-ritual-copy{padding:42px 38px;align-self:center}.premium-ritual-copy .eyebrow{font-size:10px;letter-spacing:2px;margin:0 0 20px}.premium-ritual-copy h2{font-size:43px;line-height:1.08;margin:0 0 20px}.premium-ritual-copy h2 em{color:var(--gold)}
.premium-ritual-facts{color:var(--gold);font-size:14px;letter-spacing:.3px}.premium-ritual-copy>p:not(.eyebrow):not(.premium-ritual-facts){line-height:1.8;color:var(--muted)}.premium-ritual-copy .button{margin-top:14px}.premium-ritual-copy .premium-ritual-note{font-size:11px;margin:20px 0 0}
@media(max-width:700px){.premium-ritual-feature{grid-template-columns:1fr;margin:30px auto 36px}.premium-ritual-image{min-height:230px}.premium-ritual-copy{padding:28px 24px}.premium-ritual-copy h2{font-size:36px}.premium-ritual-copy .button{max-width:100%;white-space:normal}}
.observatory-feature{margin-top:-15px;background:linear-gradient(125deg,#11253a,#071622);border-color:#bfc0a355}
.observatory-feature .premium-ritual-copy .eyebrow{color:#d4bd86}
.observatory-feature .premium-ritual-copy h2 em{color:#d7c493}
.premium-collection-intro{max-width:1100px;margin:88px auto 35px;padding:0 26px;text-align:center}.premium-collection-intro .eyebrow{margin-bottom:12px}.premium-collection-intro h2{margin-bottom:12px}.premium-collection-intro p:not(.eyebrow){font-size:14px;margin-bottom:15px}.premium-collection-intro>a{font-size:13px;color:#e5c996;text-decoration:underline;text-underline-offset:5px}
