:root{--bg:#0b100e;--surface:#18201b;--muted:#b5bcb5;--gold:#e6c997;--ink:#f4f0e7}
body{background:var(--bg);isolation:isolate}
.ambient{z-index:-3;opacity:1;background:radial-gradient(ellipse at 72% 22%,#48443532,transparent 57%),radial-gradient(ellipse at 10% 80%,#243c3433,transparent 62%),linear-gradient(140deg,#0a0e0d,#151b16 60%,#090d0c)}
.ambient:after{content:"";position:absolute;inset:0;background:repeating-linear-gradient(90deg,#ffffff02 0 1px,transparent 1px 4px);opacity:.45}
body[data-scene=results] .ambient{background:radial-gradient(ellipse at 50% 38%,#81725825,transparent 57%),radial-gradient(ellipse at 50% 100%,#304b3d22,transparent 60%),linear-gradient(125deg,#0a0f0d,#17201a 48%,#0a0e0d)}
.scene{isolation:isolate}.header-actions{display:flex;align-items:center;gap:24px}.brand-sub{font-size:14px}.brand-mark span{background:var(--bg)}
.subtle-back{background:none;padding:10px 2px;color:#aab5ab;font-size:14px}.subtle-back:hover{color:var(--gold)}body[data-scene=intro] .subtle-back{visibility:hidden}
.intro-footer{font-size:16px}.intro-footer b{font-size:32px}.eyebrow{font-size:14px}.enter-label{font-size:16px}.footer-label{font-size:15px}
.intro{background:#030806}.mosaic-wall{inset:auto;top:50%;left:50%;width:110%;--gap:9px;--columns:10;transform:translate(-50%,-50%) rotate(-4deg);background:none;animation:none;filter:none;display:flex;flex-direction:column;gap:var(--gap);will-change:auto}
.mosaic-row{display:flex;gap:9px;flex:none;transform:translateX(0);transition:transform .78s cubic-bezier(.72,0,.23,1);transition-delay:calc(.14s + var(--row)*.042s)}
.mosaic-tile{width:calc((100% - (var(--columns) - 1)*var(--gap))/var(--columns));aspect-ratio:1;flex:none;perspective:1000px;--ax:1;--ay:0}
.mosaic-leaf{width:100%;height:100%;position:relative;transform-style:preserve-3d}
.mosaic-row .mosaic-tile img{display:block;position:absolute;inset:0;width:100%;height:100%;object-fit:cover;border:1px solid #f1dca42a;border-radius:5px;backface-visibility:hidden;-webkit-backface-visibility:hidden}
.mosaic-next{opacity:0}.mosaic-tile.is-turning img{will-change:opacity}
.mosaic-leaf:after{content:"";position:absolute;inset:0;background:linear-gradient(145deg,#142019,#030806);border:1px solid #cbb07b36;border-radius:5px;transform:rotate3d(var(--ax),var(--ay),0,180deg);backface-visibility:hidden;-webkit-backface-visibility:hidden}
.mosaic-tile.is-turning .mosaic-leaf{will-change:transform}
.intro-copy,.intro-footer,.site-header{transition:opacity .25s,transform .35s}.intro-leaving .intro-copy{opacity:0;transform:scale(.96)}.intro-leaving .intro-footer,.intro-leaving .site-header{opacity:0;pointer-events:none}.intro-leaving .mosaic-row{transform:translateX(calc(var(--direction)*135%))}.intro-leaving .wall-shade{opacity:.35;transition:opacity .4s}
.transition-veil{background:none;opacity:0;z-index:50}.transition-veil:before,.transition-veil:after{content:"";position:absolute;left:0;right:0;height:50.1%;background:#030806;transform:translateY(0);transition:transform .8s cubic-bezier(.23,.7,.15,1)}.transition-veil:before{top:0}.transition-veil:after{bottom:0}.covered .transition-veil{opacity:1}.eye-opening .transition-veil:before{transform:translateY(-101%)}.eye-opening .transition-veil:after{transform:translateY(101%)}.eye-opening .site-header{opacity:1}

/* All current card backs belong to a separate, subdued background layer. */
.memory-deck{position:fixed;inset:0;z-index:-2;pointer-events:none;overflow:hidden;opacity:0;transition:opacity .85s}
body[data-scene=ritual] .memory-deck{opacity:.62}body[data-scene=divination] .memory-deck{opacity:.26}
.memory-deck:after{content:"";position:absolute;inset:0;background:linear-gradient(0deg,#0b100ecc,transparent 25%,transparent 80%,#0b100e9c)}
.memory-card{position:absolute;left:var(--x);top:var(--y);width:clamp(72px,7.7vw,132px);aspect-ratio:1 / 1.38;transform:translate(-50%,-50%) scale(var(--scale));perspective:650px}
.memory-turn{position:absolute;inset:0;transform-style:preserve-3d;transition:transform 1.35s cubic-bezier(.4,0,.2,1)}.is-revealed .memory-turn{transform:rotateY(180deg);transition-duration:.72s}.is-revealed .memory-turn,.is-closing .memory-turn{will-change:transform}
.memory-back,.memory-front{position:absolute;inset:0;border-radius:7px;overflow:hidden;backface-visibility:hidden;-webkit-backface-visibility:hidden;border:1px solid #b798615c;background:#111913;box-shadow:0 8px 22px #0005}
.memory-back{display:grid;place-items:center;background:repeating-linear-gradient(135deg,#d5bc8510 0 1px,transparent 1px 9px),linear-gradient(140deg,#252e24,#101812)}
.memory-back:before{content:"";position:absolute;inset:7px;border:1px solid #bda3704f;border-radius:3px}
.memory-back span{font:clamp(18px,2.3vw,33px) Georgia,serif;color:#c8b07c9c;border:1px solid #bba06a4a;width:52%;aspect-ratio:1;display:grid;place-items:center;border-radius:50%}
.memory-front{transform:rotateY(180deg);display:flex;align-items:center;background:#080d0a}.memory-front img{display:block;width:100%;height:auto;filter:none;mix-blend-mode:normal;opacity:1}

/* A feathered scrim replaces the rectangular form panel. */
.ritual{padding:145px 8vw 65px;overflow:hidden}.ritual-layout{max-width:1240px;grid-template-columns:minmax(0,1fr) minmax(0,1.12fr);gap:7vw;align-items:center}
.question-side{position:relative;isolation:isolate;max-width:475px;width:100%;padding:22px 0;background:none;border:0;border-radius:0;box-shadow:none;backdrop-filter:none;min-width:0}
.question-side:before{content:"";position:absolute;inset:-85px -95px;z-index:-1;pointer-events:none;background:radial-gradient(ellipse,#0b100efa 36%,#0b100eef 53%,#0b100e8a 70%,transparent 84%);filter:blur(27px)}
.question-heading{margin:32px 0 35px}.question-heading h1{font-size:clamp(34px,3.1vw,45px);line-height:1.45;letter-spacing:.045em}.gold-note{font-size:18px}
.question-side label{display:block;font-size:16px;line-height:1.6;margin-bottom:12px;color:#d3d6ca}
.question-side input{box-sizing:border-box;min-width:0;height:64px;padding:14px 18px;font-size:23px;line-height:1.4;border:0;border-bottom:1px solid #bdaa7b65;border-radius:7px 7px 0 0;background:linear-gradient(90deg,#ffffff05,#ffffff09);color:#f6f2e9;caret-color:#e6c997;transition:border-color .2s,background .2s}
.question-side #nameInput{font-size:27px;letter-spacing:.06em}.question-side input::placeholder{color:#919e94;font-size:20px;letter-spacing:.03em}.question-side input:focus{outline:none;border-bottom-color:#d9c18b;background:#ffffff08}
input:-webkit-autofill,input:-webkit-autofill:hover,input:-webkit-autofill:focus{-webkit-text-fill-color:#f6f2e9;-webkit-box-shadow:0 0 0 1000px #141b16 inset;caret-color:#e6c997}
input:autofill{background:#141b16;color:#f6f2e9;box-shadow:0 0 0 1000px #141b16 inset}
.hero-input-row{gap:9px}.hero-input-row input{font-size:20px;flex:1}.add-button{flex:none;width:51px;height:64px;border:1px solid #bbaa7940;border-radius:7px;background:#d6bb7910}
.field-hint,.progress-caption{font-size:15px;line-height:1.85}.field-hint{margin-top:13px}.field-error{margin:8px 0 15px}.question-side .primary{font-size:16px;border-radius:4px;min-height:55px}.progress{margin-top:29px}.progress-caption strong{font-size:21px}
.suggestions{gap:8px}.suggestion,.hero-chip{font-size:14px;padding:8px 12px;border-radius:4px;background:#d3c3970a}.form-links{gap:20px}.text-button{font-size:15px}

/* Matte, engraved card backs without a nebula image. */
.deck-side{height:545px}.deck-halo{width:450px;max-width:100%;border:1px solid #a8956740;transform:rotateX(38deg);box-shadow:0 0 90px #d7b46a0b}.deck-halo:after{border-style:solid;opacity:.45}
.deck-caption{font-size:12px;color:#b9bea6;letter-spacing:.22em}.deck-foot{gap:22px}.deck-foot p{font-size:15px;color:#bdc3b4}
.card-back{background:repeating-linear-gradient(115deg,#dfd2a807 0 1px,transparent 1px 5px),linear-gradient(145deg,#293229,#121a14 50%,#20271e);border:1px solid #b79b63;border-radius:11px;box-shadow:0 20px 45px #0009,inset 0 0 20px #0006;overflow:hidden}
.card-back:before{inset:7px;border:1px solid #d2c4988c;border-radius:5px;background:linear-gradient(125deg,transparent 35%,#eedcad12 48%,transparent 62%)}
.card-inner{inset:18px;border:1px solid #bca3714a}.card-inner:before{content:"";position:absolute;inset:14px;border-top:1px solid #c7ad7338;border-bottom:1px solid #c7ad7338;border-radius:45%}
.card-symbol{width:93px;height:93px;margin:10px 0 32px;border:1px solid #d8c18a;box-shadow:0 0 0 7px #ba9d5b08,inset 0 0 18px #ddc48a08;position:relative}.card-symbol:after{content:"";position:absolute;inset:8px;border:1px solid #d7c48a50}.card-symbol span{font:48px Georgia,serif;color:#ead49e;text-shadow:0 2px 10px #0009}
.card-inner small{position:absolute;bottom:20px;font-size:11px;letter-spacing:.16em;color:#d8c799}.card-corner{font-size:13px;top:12px;left:13px}.card-corner.bottom{bottom:12px;right:13px}

/* Results retain soft upright memories around the edges. Portraits stay intact. */
.floating-portraits{position:fixed;inset:0;pointer-events:none;overflow:hidden;z-index:-1;opacity:0;transition:opacity .8s}body[data-scene=results] .floating-portraits{opacity:.23}
.floating-portrait{position:absolute;width:150px;height:auto;object-fit:contain;border:0;border-radius:0;box-shadow:none;transform:none;filter:blur(1px);opacity:.7;mask-image:radial-gradient(ellipse at center,#000 14%,#0009 43%,transparent 74%);-webkit-mask-image:radial-gradient(ellipse at center,#000 14%,#0009 43%,transparent 74%)}
.float-0{top:21%;left:3%}.float-1{top:18%;right:3%;width:195px}.float-2{bottom:9%;left:9%;width:200px}.float-3{bottom:5%;right:10%;width:170px}.float-4{top:5%;left:43%;width:95px}.float-5{bottom:41%;right:1%;width:100px}
.results{background:none}.results-heading{padding-bottom:12px}.results-heading>p{font-size:16px}.results-heading h1{font-size:42px}.result-cards{gap:27px;align-items:flex-start;margin-top:43px}
.result-card{width:324px;flex-basis:324px;--tilt:0deg}.multi .result-card{width:284px;flex-basis:284px}.result-cards.fan{gap:27px}.fan .result-card+.result-card{margin-left:0}.fan .result-card:nth-child(odd){margin-top:0}
.card-frame{padding:7px;background:#070b09;border:1px solid #b39a676e;border-radius:12px;box-shadow:0 24px 65px #0008,0 0 0 1px #0007;overflow:hidden}
.portrait-button{display:block;position:relative;isolation:isolate;width:100%;height:auto;aspect-ratio:auto;padding:0;background:#070b09;border:0;border-radius:5px 5px 0 0}.portrait-button:after{content:none}
.portrait-button img{display:block;width:100%;height:auto!important;max-height:none;aspect-ratio:auto;object-fit:contain;background:#070b09;mix-blend-mode:normal;filter:none;opacity:1;transform:none!important;transition:none}
.card-meta{background:#111913;padding:18px 15px;min-height:78px;border-top:1px solid #c1ab6940;gap:12px;align-items:center}.card-meta strong{font-size:30px}.card-meta span{display:block;font-size:14px;margin-top:5px;color:#bdc6b7}.card-meta button{font-size:15px;white-space:nowrap;padding:10px 1px}.card-caption,.save-hint{font-size:14px;color:#b8c1b5}
.gallery-grid{gap:22px;align-items:start}.gallery-item{background:#070b09;border:1px solid #b99f6b66;border-radius:8px;overflow:hidden;box-shadow:0 10px 25px #0003}
.gallery-item img{display:block;width:100%;height:auto!important;aspect-ratio:auto;object-fit:contain;background:#070b09;mix-blend-mode:normal;filter:none;opacity:1}.gallery-item .gallery-info{background:#141e16;padding:14px;min-height:65px;font-size:14px;gap:8px;color:#bcc5b5}.gallery-info strong{font-size:25px}.gallery-count-row{display:flex;justify-content:space-between;gap:20px;align-items:center}.manage-link{font-size:14px;color:#afbba8}
.image-dialog{background:#111a13;border-color:#bba47688;border-radius:12px}.image-dialog img{height:auto;max-height:62svh;background:#070b09;mix-blend-mode:normal;filter:none;opacity:1}.dialog-save-note{font-size:14px}.gallery-toolbar .text-button{font-size:15px}

@media(max-width:1000px){.ritual{padding-left:7vw;padding-right:7vw}.ritual-layout{gap:6vw}.question-heading h1{font-size:35px}.question-side:before{inset:-65px -50px}.deck-side{height:470px}.card-symbol{width:72px;height:72px}.card-symbol span{font-size:39px}.deck-foot p{font-size:14px}.deck-caption{font-size:12px}}
@media(max-width:700px){
 .site-header{padding:21px 19px;gap:12px}.brand-sub{font-size:12px}.brand{gap:10px}.header-actions{gap:12px}.subtle-back,.quiet-button{font-size:13px}.intro-title{font-size:clamp(62px,14vw,96px)}.intro-copy>.eyebrow{font-size:12px}.enter-label{font-size:14px}.intro-footer{font-size:14px;flex-wrap:wrap;gap:6px;line-height:1.8;bottom:24px;text-align:center}.intro-footer b{font-size:27px}.footer-label{display:block;width:100%;font-size:13px;opacity:.8}
 .mosaic-wall{left:-6%;width:112%;gap:6px}.mosaic-row{gap:6px;transition-delay:calc(.08s + var(--row)*.04s)}.mosaic-row img{width:calc((100% - 30px)/6);border-radius:3px}.memory-card{width:12.5vw;max-width:80px}.memory-back:before{inset:4px}.memory-back span{font-size:20px}body[data-scene=ritual] .memory-deck{opacity:.48}
 .ritual{padding:123px 30px 36px}.ritual-layout{flex-direction:column;gap:35px}.question-side{max-width:460px;padding:8px 0 0;border:0;border-radius:0;background:none;box-shadow:none;backdrop-filter:none}.question-side:before{inset:-65px -42px;background:radial-gradient(ellipse,#0b100efc 38%,#0b100eef 56%,#0b100e75 72%,transparent 88%);filter:blur(22px)}
 .question-heading{margin:25px 0 28px}.question-heading h1{font-size:32px;line-height:1.5}.gold-note{font-size:16px}.eyebrow{font-size:13px}.chapter-line{width:24px;margin:0 10px}.question-side label{font-size:16px;margin-bottom:10px}.question-side input,.question-side #nameInput{height:62px;padding:13px 16px;font-size:25px;line-height:1.4}.question-side input::placeholder{font-size:19px}.hero-input-row input{font-size:18px}.add-button{height:62px;width:46px}.question-side .primary{min-height:54px;font-size:16px}.field-hint,.progress-caption,.save-hint{font-size:14px}.suggestion,.hero-chip{font-size:14px}.progress{margin-top:25px}.field-error{font-size:14px}.form-links .text-button{font-size:14px}
 .deck-side{height:240px;max-width:400px}.back-deck{height:225px;transform:none}.deck-halo{width:270px;height:210px}.card-back{width:120px;height:180px;left:calc(50% - 60px);border-radius:8px;top:8px;transform:translateX(calc(var(--pos)*36px)) translateY(calc(var(--lift)*8px)) rotate(calc(var(--pos)*12deg))}.card-back:before{inset:5px}.card-inner{inset:12px}.card-inner:before{inset:9px}.card-symbol{width:46px;height:46px;margin:12px 0 25px}.card-symbol:after{inset:5px}.card-symbol span{font-size:28px}.card-inner small{font-size:9px;bottom:9px;letter-spacing:.04em}.card-corner{font-size:10px;top:7px;left:9px}.card-corner.bottom{bottom:7px;right:9px}.deck-foot{bottom:0;gap:15px}.deck-foot p{font-size:14px}.deck-caption{display:none}
 .results{padding:122px 21px 50px}.results-heading h1{font-size:29px}.results-heading>p{font-size:15px}.result-cards{margin-top:32px}.result-card{width:min(324px,85vw);flex-basis:min(324px,85vw)}.result-cards.multi{gap:23px;max-width:570px}.multi .result-card{width:min(300px,80vw);flex-basis:min(300px,80vw)}.multi .card-frame{padding:7px;border-radius:12px}.card-meta,.multi .card-meta{padding:16px 14px;min-height:75px}.multi .card-meta strong{font-size:29px}.multi .card-meta span,.multi .card-meta button{font-size:14px}.card-caption,.multi .card-caption{font-size:14px}.result-actions{gap:22px;flex-wrap:wrap}.result-actions .text-button{font-size:14px}
 .gallery{padding:113px 19px 50px}.gallery-heading h1{font-size:25px}.gallery-grid{gap:13px}.gallery-item .gallery-info{font-size:13px;min-height:62px;padding:11px;align-items:center}.gallery-info strong{font-size:24px}.gallery-info>span{max-width:76%;text-align:right;line-height:1.5}.gallery-count-row{align-items:baseline;gap:12px}.manage-link{font-size:14px;white-space:nowrap}.gallery-toolbar .text-button{font-size:14px}.image-dialog{padding:16px}.dialog-actions a,.dialog-save-note{font-size:14px}
 .float-0{width:90px;left:-4%;top:18%}.float-1{width:115px;right:-5%;top:24%}.float-2{width:140px;left:-8%;bottom:13%}.float-3{width:110px;right:-5%;bottom:5%}.float-4{width:75px;top:6%;left:45%}.float-5{display:none}
}
@media(max-width:360px){.ritual{padding-left:24px;padding-right:24px}.question-heading h1{font-size:29px}.chapter-line{width:16px;margin:0 7px}.site-header{gap:8px}.header-actions{gap:6px}.quiet-button{padding:9px}.brand{gap:8px;font-size:20px}.brand-sub{font-size:11px;max-width:76px;letter-spacing:0}.question-side input::placeholder{font-size:17px}}
@media(prefers-reduced-motion:reduce){.mosaic-row{transition:none}.intro-leaving .mosaic-row{transform:none}.transition-veil{display:none}.memory-turn{transition:none}}

body[data-scene=results] .floating-portraits{opacity:.34}.floating-portrait{opacity:0;transform:translateY(12px);transition:opacity 4s ease,transform 12s ease}.floating-portrait.is-lit{opacity:.78;transform:translateY(-12px)}
@media(max-width:700px){.mosaic-wall{left:50%;--gap:6px}}
.floating-portrait{transition:opacity 3.2s ease,transform 9.6s ease}

.mosaic-leaf:after{background:#102019 url('assets/reunion-back.svg') center/100% 100% no-repeat;border:1px solid #cbb37980}
.memory-turn{transition-duration:3.6s!important;transition-timing-function:cubic-bezier(.3,0,.15,1)}.memory-card.is-revealed .memory-turn{transition-duration:.72s!important}
body[data-scene=divination] .memory-deck{opacity:0}.divination{isolation:isolate;background:#080d0d;overflow:hidden}#kaleidoscope{position:fixed;inset:0;width:100%;height:100%;z-index:-1;pointer-events:none}.divination:after{content:"";position:absolute;inset:0;z-index:-1;background:radial-gradient(ellipse at 50% 58%,#070d0dd9 0%,#070d0d9c 25%,transparent 62%);pointer-events:none}.divination-ring{width:72px;height:72px;font-size:30px;margin-bottom:24px;background:#121e15c0;border-color:#dfca9266}.divination h1{font-size:clamp(30px,4vw,48px);text-shadow:0 3px 30px #000;margin:16px 0 20px}.divination .gold-note{font-size:14px;letter-spacing:.24em}.divination .text-button{padding:13px 23px;border:1px solid #d1bc7444;background:#09130fa6;font-size:14px}
.result-card{animation:cardUnveil 1.12s cubic-bezier(.18,.76,.24,1) both;animation-delay:var(--delay,0ms)}.result-card:after{content:"";position:absolute;inset:0;border-radius:12px;background:linear-gradient(115deg,transparent 10%,#f4ddabbd 45%,transparent 80%);pointer-events:none;opacity:0;animation:revealGleam 1.1s ease-out both;animation-delay:var(--delay,0ms)}
@keyframes cardUnveil{0%{opacity:0;transform:perspective(1100px) translateY(48px) rotateY(-60deg) scale(.86)}45%{opacity:1}100%{opacity:1;transform:perspective(1100px) translateY(0) rotateY(0) scale(1)}}
@keyframes revealGleam{0%,18%{opacity:0;transform:translateX(-15%) scaleX(.5)}40%{opacity:.75}100%{opacity:0;transform:translateX(0) scaleX(1)}}
@media(prefers-reduced-motion:reduce){.memory-turn{transition:none!important}.result-card,.result-card:after{animation:none}.result-card:after{display:none}#kaleidoscope{display:none}}
/* Warm light makes the entire entry control easy to discover. */
.enter-orbit{border:2px solid #ffe3a0;background:radial-gradient(circle,#f9cd6947,transparent 72%);box-shadow:0 0 16px #f5c86170,0 0 40px #f5c86133,inset 0 0 16px #ffe8aa24;animation:entry-lantern 3.6s ease-in-out infinite}
.enter-orbit:before{border-color:#ffe3a0a8}.enter-orbit span{color:#ffe7ae;text-shadow:0 0 9px #ffdc88,0 0 23px #f9c257;font-size:35px}
.enter-surface:hover .enter-orbit,.enter-surface:focus-visible .enter-orbit{box-shadow:0 0 22px #f5c861aa,0 0 54px #f5c86155,inset 0 0 20px #ffe8aa40}
@keyframes entry-lantern{0%,100%{box-shadow:0 0 16px #f5c86170,0 0 40px #f5c86133,inset 0 0 16px #ffe8aa24}50%{box-shadow:0 0 22px #f5c86199,0 0 52px #f5c86140,inset 0 0 22px #ffe8aa35}}
@media(prefers-reduced-motion:reduce){.enter-orbit,.enter-orbit span{animation:none}}
