/* The world stays behind the cards; original artwork is never tinted. */
.atmosphere::after{content:"";position:absolute;inset:0;background:linear-gradient(140deg,#182939b8,#263b5ac9 55%,#373148b8);opacity:0;transition:opacity 1.8s}
body[data-ritual] .atmosphere::after{opacity:.75}body[data-ritual=reveal] .atmosphere::after{opacity:1}
body[data-ritual] .intro,body[data-ritual] footer{visibility:hidden;opacity:0}
body[data-ritual] #garden{pointer-events:none}body[data-ritual] #motion{visibility:hidden}
#ritual{position:fixed;inset:0;z-index:4;overflow-y:auto;padding:115px 6vw 40px;text-align:center;overscroll-behavior:contain;scrollbar-width:thin}
body[data-ritual] header{z-index:5}.ritual-heading{max-width:760px;margin:auto}.ritual-heading .eyebrow{margin-bottom:18px}
body[data-ritual=question] #ritual{padding-top:clamp(155px,21vh,225px)}
.ritual-heading h2{font-size:clamp(26px,3vw,43px);font-weight:400;letter-spacing:.09em;line-height:1.5;margin:0;outline:none}
.ritual-note{font-size:13px;line-height:1.9;color:#d4d7e0;letter-spacing:.08em}.question-form{max-width:690px;margin:48px auto 0}
textarea{width:100%;resize:vertical;min-height:145px;max-height:260px;border:0;border-bottom:1px solid #a9bbcb70;border-radius:0;background:transparent;color:#f5f2ea;font:25px/1.8 "Songti SC",serif;padding:12px 8px;outline:none}
textarea:focus{border-bottom-color:#c7a56a}textarea::placeholder{color:#c5ccd28c;font-size:21px}.input-note{font-size:12px;color:#ced2dc;min-height:24px;text-align:right}
.ritual-actions{display:flex;gap:26px;align-items:center;justify-content:center;flex-wrap:wrap;margin:20px auto}.ritual-actions button{min-height:48px;padding:10px 16px;letter-spacing:.1em;font-size:13px}
.ritual-link{border:0;background:none;color:#dde0e6}.ritual-link:hover{color:#fff}.ritual-primary{border:1px solid #c7a56a8c;border-radius:2px;background:#263b5a60;color:#f5f2ea;min-width:172px}.ritual-primary:hover:not(:disabled){background:#a9bbcb26;border-color:#c7a56a}button:disabled{opacity:.35;cursor:default}
.original-question{font-size:14px;line-height:1.9;max-width:720px;margin:15px auto 10px;color:#d7dbe5;overflow-wrap:anywhere;white-space:pre-wrap}
.candidate-deck{max-width:1050px;display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:16px;margin:42px auto 24px;align-items:center}
.candidate{border:0;background:none;padding:0;position:relative;transition:transform .4s,opacity .4s;animation:card-arrive .9s both;animation-delay:calc(var(--i)*75ms);min-width:44px}
.candidate img{width:100%;display:block;border-radius:6%;box-shadow:0 12px 32px #070e1d60}.candidate-number{display:block;font:12px/30px Georgia,"Songti SC",serif;color:#d3c4a5;min-height:30px}
@media(hover:hover){.candidate:hover:not([aria-disabled=true]){transform:translateY(-12px)}}
.candidate[aria-pressed=true]{transform:translateY(-18px)}.candidate[aria-pressed=true] img{outline:1px solid #c7a56a;outline-offset:4px}.candidate[aria-disabled=true]:not([aria-pressed=true]){opacity:.4}
.chosen-labels{display:flex;justify-content:center;gap:42px;color:#a9bbcb75;font-size:13px}.chosen-labels .filled{color:#e0d2ad}.selection-status{font-size:15px;min-height:24px;margin:20px 0}
.revealed-spread{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:35px;max-width:780px;margin:12px auto}.revealed-card{min-width:0;animation:card-arrive 1s both;animation-delay:calc(var(--i)*100ms)}.position-label{font-size:14px;letter-spacing:.2em;color:#d1c29f}
.face-button{border:0;padding:0;background:none;width:100%;display:block}.face-button img{display:block;width:100%;max-height:47vh;object-fit:contain}.reversed{transform:rotate(180deg)}.orientation{font-size:12px;color:#c6cddb}.prototype-note{font-size:11px;color:#a9bbcb;margin-top:24px}
#card-view{border:0;background:transparent;color:#f5f2ea;max-width:100vw;max-height:100dvh;padding:0;text-align:center;overflow:visible}#card-view::backdrop{background:#081322df}#card-view img{display:block;max-width:min(80vw,560px);max-height:82dvh;margin:auto;border-radius:4.8%;filter:drop-shadow(0 24px 44px #050b1480)}#card-view p{font-size:12px;margin:12px 0 0;text-shadow:0 2px 8px #07101a}
@keyframes card-arrive{from{opacity:0;translate:0 24px}to{opacity:1;translate:0 0}}
.revealed-card .face-button{animation:face-reveal .85s both;animation-delay:calc(var(--i)*120ms)}
@keyframes face-reveal{from{opacity:0;transform:perspective(900px) rotateY(-85deg)}to{opacity:1;transform:perspective(900px) rotateY(0)}}
.spatial-mode{overflow:hidden!important;touch-action:none;padding-top:85px!important;cursor:grab;user-select:none}
.candidate-deck:not(.spatial-deck) .candidate{translate:0 0!important}
.spatial-mode .ritual-heading{position:relative;z-index:500;pointer-events:none}.spatial-mode .ritual-heading h2{font-size:clamp(23px,2.3vw,33px)}
.spatial-mode .original-question{position:relative;z-index:500;max-height:42px;overflow:auto;font-size:12px}
.spatial-mode .spatial-deck{position:fixed;inset:0;margin:0;max-width:none;display:block;pointer-events:none}
.spatial-deck .candidate{position:absolute;margin:0;translate:-50% -50%!important;transform:none!important;pointer-events:auto;transition:width .65s,opacity .5s;touch-action:none;min-width:0}
.spatial-deck .candidate img{box-shadow:0 0 18px #b9afc822,0 12px 25px #09162280;opacity:.92}
body[data-depth-ready=true] .depth-test .candidate img{visibility:hidden}
.depth-test .candidate{opacity:1!important;pointer-events:none}.depth-test .candidate::before,.depth-test .card-dust{display:none}.depth-test .candidate-number{display:none}
.spatial-deck .candidate[aria-pressed=true]{transition:left .75s cubic-bezier(.2,.8,.2,1),top .75s cubic-bezier(.2,.8,.2,1),width .75s,opacity .5s}
.spatial-deck .candidate::before{content:"";position:absolute;bottom:100%;height:45px;width:1px;background:linear-gradient(transparent,#a9bbcb44);left:50%;pointer-events:none}
.spatial-deck .candidate-number{font-size:10px;line-height:19px;min-height:19px}
.spatial-mode .chosen-labels{display:none}.spatial-mode .selection-status{position:fixed;bottom:85px;left:0;right:0;z-index:500;pointer-events:none;font-size:13px}
.spatial-mode .ritual-actions{position:fixed;bottom:20px;left:3%;right:3%;z-index:500;margin:0;gap:12px;background:linear-gradient(transparent,#172536a0);padding:8px}
.card-dust{position:absolute;inset:-15px;pointer-events:none;background:radial-gradient(circle at 9% 24%,#c7a56a 0 1px,transparent 2px),radial-gradient(circle at 89% 67%,#b9afc8 0 1px,transparent 2px),radial-gradient(circle at 17% 80%,#a9bbcb 0 1px,transparent 2px),radial-gradient(circle at 94% 10%,#f5f2ea88 0 1px,transparent 2px);opacity:.45;animation:dust-drift 7s ease-in-out infinite alternate;animation-delay:calc(var(--i)*-.3s)}
.candidate[aria-pressed=true] .card-dust{animation:condense .85s ease-out both}.candidate[aria-pressed=true]::before{display:none}
@keyframes dust-drift{to{transform:translateY(-8px);opacity:.8}}@keyframes condense{from{transform:scale(2.5);opacity:1}to{transform:scale(.85);opacity:0}}
@media(max-width:700px){.spatial-mode .ritual-actions{gap:2px;bottom:8px;left:0;right:0}.spatial-mode .ritual-actions button{font-size:11px;min-width:0;padding:8px}.spatial-mode .ritual-primary{min-width:118px!important}.spatial-mode .selection-status{bottom:65px}.spatial-mode .ritual-heading .eyebrow{display:none}.spatial-mode .ritual-note{font-size:11px}}
@media(prefers-reduced-motion:reduce){.card-dust,.candidate[aria-pressed=true] .card-dust{animation:none}}
@media(max-width:700px){#ritual{padding:100px 6% 30px}.ritual-heading h2{font-size:27px}.ritual-note{font-size:12px}.question-form{margin-top:28px}textarea{font-size:21px}.candidate-deck{grid-template-columns:repeat(4,minmax(0,1fr));gap:13px;margin-top:32px;max-width:380px}.candidate-deck .candidate:nth-child(n+5){translate:55% 0}.candidate[aria-pressed=true]{transform:translateY(-6px)}.ritual-actions{gap:6px}.ritual-actions button{font-size:12px;padding:10px}.ritual-primary{min-width:146px}.revealed-spread{gap:12px;margin-top:26px}.face-button img{max-height:none}.position-label{font-size:12px}.chosen-labels{gap:25px}.original-question{font-size:12px;max-height:110px;overflow-y:auto}}
@media(max-width:700px){body[data-ritual=question] #ritual{padding-top:130px}}
@media(prefers-reduced-motion:reduce){.candidate,.revealed-card,.revealed-card .face-button{animation:none}.atmosphere::after{transition:none}}
#fresh-question{pointer-events:auto;min-height:44px}
