:root{--ink:#0b0e17;--ink-soft:#12161f;--gold:#c9a227;--gold-dim:#8a7020;--silver:#a8b4c8;--lunar:#e8e4d9;--teal:#7a9e9f;--teal-dim:#4a6a6b;--parchment:#2a2418;--danger:#b85c38;--font-display:"Cinzel Decorative", "Cormorant Garamond", serif;--font-heading:"Cormorant Garamond", Georgia, serif;--font-body:"Source Serif 4", "Literata", Georgia, serif;color:var(--lunar);background:var(--ink);font-family:var(--font-body);font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased}*,:before,:after{box-sizing:border-box}html,body,#root{min-height:100%;margin:0}body{background:var(--ink);min-height:100vh;overflow-x:hidden}button,input,textarea{font:inherit;color:inherit}button{cursor:pointer}img,svg{max-width:100%;display:block}a{color:var(--gold)}.app-shell{z-index:1;flex-direction:column;min-height:100vh;display:flex;position:relative}.stars-bg{z-index:0;pointer-events:none;background:radial-gradient(80% 50% at 50% -10%,#7a9e9f1f,#0000 55%),radial-gradient(60% 40% at 90% 80%,#c9a2270f,#0000 50%),linear-gradient(#0b0e17 0%,#0e121c 45%,#0b0e17 100%);position:fixed;inset:0;overflow:hidden}.star{background:var(--lunar);border-radius:50%;animation:ease-in-out infinite twinkle;position:absolute;box-shadow:0 0 4px #e8e4d980}@keyframes twinkle{0%,to{opacity:.2;transform:scale(1)}50%{opacity:1;transform:scale(1.3)}}.bg-moon{filter:blur(.5px);background:radial-gradient(circle at 35% 35%,#e8e4d9,#a8b4c8 45%,#0000 70%);border-radius:50%;position:absolute}.zodiac-wheel{opacity:.55;background:repeating-conic-gradient(#0000 0deg 28deg,#c9a2270a 28deg 30deg);border:1px solid #c9a22714;border-radius:50%;width:min(90vw,640px);height:min(90vw,640px);animation:180s linear infinite wheel-spin;position:absolute;top:45%;left:50%;transform:translate(-50%,-50%);box-shadow:inset 0 0 0 40px #c9a22705,inset 0 0 0 80px #a8b4c805}@keyframes wheel-spin{to{transform:translate(-50%,-50%)rotate(360deg)}}.veil-gradient{background:radial-gradient(#0000 30%,#0b0e178c 100%);position:absolute;inset:0}.top-bar{z-index:5;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:linear-gradient(#0b0e17d9,#0b0e1759);border-bottom:1px solid #c9a22726;justify-content:space-between;align-items:center;gap:1rem;padding:.65rem .75rem;display:flex;position:relative}.brand-mini{background:0 0;border:none;align-items:center;gap:.55rem;padding:0;line-height:0;display:flex}.brand-mini-logo{object-fit:contain;filter:drop-shadow(0 0 10px #c9a22740);width:auto;max-width:18rem;height:3.25rem}.app-version{font-family:var(--font-heading);letter-spacing:.14em;color:var(--gold);opacity:.85;white-space:nowrap;font-size:.78rem;line-height:1}.app-version.hero{letter-spacing:.22em;opacity:.9;margin:.65rem 0 0;font-size:.95rem;display:block}.main-stage{z-index:2;flex:1;width:100%;max-width:none;margin:0;padding:.85rem .65rem 1.5rem;position:relative}.site-footer{z-index:2;text-align:center;color:var(--silver);opacity:.55;border-top:1px solid #c9a2271a;padding:1rem;font-size:.75rem;position:relative}.music-player{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:.35rem;display:flex}.music-btn{width:2rem;height:2rem;color:var(--gold);background:#12161fb3;border:1px solid #c9a22759;border-radius:50%;place-items:center;font-size:.7rem;transition:border-color .2s,background .2s;display:grid}.music-btn:hover,.music-btn.active{border-color:var(--gold);background:#c9a2271f}.music-label{color:var(--silver);white-space:nowrap;text-overflow:ellipsis;max-width:140px;font-size:.65rem;overflow:hidden}@media (width<=560px){.music-label{display:none}}.btn-primary{appearance:none;border:1px solid var(--gold);color:var(--lunar);font-family:var(--font-heading);letter-spacing:.08em;background:linear-gradient(135deg,#c9a22733,#7a9e9f1f);border-radius:2px;padding:.85rem 1.8rem;font-size:1.1rem;transition:transform .2s,box-shadow .2s,background .2s}.btn-primary:hover:not(:disabled){background:linear-gradient(135deg,#c9a22752,#7a9e9f2e);transform:translateY(-1px);box-shadow:0 0 24px #c9a22740}.btn-primary:disabled{opacity:.4;cursor:not-allowed}.btn-ghost{color:var(--silver);background:0 0;border:1px solid #a8b4c859;border-radius:2px;padding:.45rem .9rem;font-size:.85rem}.btn-ghost:hover{border-color:var(--gold);color:var(--gold)}.back-link{color:var(--silver);background:0 0;border:none;margin-bottom:1rem;padding:0;font-size:.9rem}.back-link:hover{color:var(--gold)}.landing{text-align:center;flex-direction:column;justify-content:center;align-items:center;min-height:calc(100vh - 8rem);padding:2rem 0 4rem;display:flex}.landing-inner{max-width:min(44rem,94vw)}.landing-eyebrow{letter-spacing:.2em;text-transform:uppercase;color:var(--teal);margin:0 0 1.25rem;font-size:.8rem}.brand-hero{max-width:min(42rem,94vw);margin:0 auto .5rem;line-height:0}.brand-hero-logo{filter:drop-shadow(0 0 36px #c9a22752);width:100%;height:auto;display:block}.landing-tagline{font-family:var(--font-heading);color:var(--lunar);margin:1rem 0 .75rem;font-size:clamp(1.15rem,3vw,1.55rem);font-style:italic}.landing-sub{color:var(--silver);max-width:28rem;margin:0 auto 2rem;font-size:1rem;line-height:1.6}.landing-cta{justify-content:center;display:flex}.landing-ornament{opacity:.8;width:min(280px,70vw);margin-top:3rem}.spread-picker{padding:1rem 0 3rem}.spread-picker-inner{max-width:960px;margin:0 auto}.spread-picker-lead{color:var(--silver);max-width:36rem;margin:0 0 1.75rem;line-height:1.55}.spread-cards{gap:1rem;display:grid}@media (width>=800px){.spread-cards{grid-template-columns:repeat(3,1fr);align-items:stretch}}.spread-choice{text-align:left;color:var(--lunar);background:linear-gradient(160deg,#1a1610f2,#12161fe6);border:1px solid #c9a22747;flex-direction:column;gap:.55rem;min-height:100%;padding:1.15rem 1.2rem 1.25rem;transition:border-color .25s,transform .25s,box-shadow .25s;display:flex}.spread-choice:hover{border-color:#c9a227a6;transform:translateY(-3px);box-shadow:0 12px 28px #00000059}.spread-choice.is-recommended{border-color:#c9a22780;box-shadow:inset 0 0 0 1px #c9a2271f}.spread-choice-top{justify-content:space-between;align-items:center;gap:.5rem;display:flex}.spread-choice-count{letter-spacing:.14em;text-transform:uppercase;color:var(--teal);font-size:.72rem}.spread-choice-badge{letter-spacing:.1em;text-transform:uppercase;color:var(--ink);background:var(--gold);padding:.2rem .45rem;font-size:.65rem}.spread-choice-title{font-family:var(--font-heading);color:var(--gold);margin:0;font-size:1.35rem;font-weight:600}.spread-choice-purpose{color:var(--lunar);flex:1;margin:0;font-size:.95rem;line-height:1.45}.spread-choice-meta{color:var(--silver);margin:0;font-size:.8rem;line-height:1.4}.spread-choice-meta strong{color:var(--gold-dim);font-weight:600}.spread-choice-cta{font-family:var(--font-heading);letter-spacing:.08em;color:var(--gold);margin-top:.35rem;font-size:.9rem}.divider-svg{width:100%;height:auto}.intake{max-width:640px;margin:0 auto}.section-title{font-family:var(--font-heading);color:var(--gold);letter-spacing:.04em;margin:0 0 .5rem;font-size:clamp(1.8rem,4vw,2.4rem);font-weight:500}.section-title.compact{font-size:1.4rem}.section-lead{color:var(--silver);margin:0 0 1.75rem;line-height:1.55}.eyebrow{letter-spacing:.16em;text-transform:uppercase;color:var(--teal);margin:0 0 .35rem;font-size:.75rem}.intake-form{flex-direction:column;gap:1.25rem;display:flex}.field{border:none;flex-direction:column;gap:.45rem;margin:0;padding:0;display:flex}.field>span,.field legend{color:var(--silver);letter-spacing:.04em;font-size:.85rem}.field em{opacity:.6;font-style:italic}.field input[type=text],.field input[type=date],.field textarea{color:var(--lunar);background:#12161fd9;border:1px solid #c9a22740;border-radius:2px;outline:none;padding:.7rem .85rem;transition:border-color .2s}.field input:focus,.field textarea:focus{border-color:var(--gold)}.field textarea{resize:vertical;min-height:100px}.sign-preview{background:linear-gradient(135deg,#7a9e9f1a,#c9a2270f);border:1px solid #7a9e9f59;border-radius:2px;align-items:center;gap:1rem;padding:.9rem 1rem;display:flex}.sign-symbol{color:var(--gold);font-size:2rem;line-height:1}.sign-preview strong{font-family:var(--font-heading);color:var(--lunar);font-size:1.2rem}.sign-preview p{color:var(--silver);margin:.2rem 0;font-size:.9rem}.sign-preview small{color:var(--teal)}.chip-row{flex-wrap:wrap;gap:.45rem;display:flex}.chip{color:var(--silver);cursor:pointer;border:1px solid #a8b4c840;border-radius:2px;align-items:center;gap:.35rem;padding:.4rem .75rem;font-size:.85rem;transition:border-color .2s,color .2s,background .2s;display:inline-flex}.chip input{opacity:0;pointer-events:none;position:absolute}.chip.active,.chip:hover{border-color:var(--gold);color:var(--gold);background:#c9a22714}.spread-options{flex-direction:column;gap:.65rem;display:flex}.spread-option{cursor:pointer;background:#12161f99;border:1px solid #c9a22733;border-radius:2px;gap:.2rem;padding:.85rem 1rem;transition:border-color .2s,background .2s;display:grid}.spread-option input{opacity:0;pointer-events:none;position:absolute}.spread-option strong{font-family:var(--font-heading);color:var(--lunar);font-size:1.05rem}.spread-option span{color:var(--silver);font-size:.85rem}.spread-option em{color:var(--teal);font-size:.75rem;font-style:normal}.spread-option.active,.spread-option:hover{border-color:var(--gold);background:#c9a22714}.reading-stage{flex-direction:column;gap:.75rem;width:100%;max-width:none;margin:0;padding:0 .15rem;display:flex}.voice-status{color:var(--teal);letter-spacing:.06em;margin:.35rem 0 0;font-size:.85rem;font-style:italic}.reading-split{grid-template-columns:1fr;align-items:stretch;gap:.85rem;min-height:0;display:grid}@media (width>=900px){.reading-stage.has-narrative .reading-split{grid-template-columns:minmax(0,1fr) minmax(220px,30%);align-items:start;gap:.85rem}}.table-and-text{display:contents}.mystical-table.tv-table{box-sizing:border-box;justify-self:stretch;width:100%;margin-left:.85rem;position:relative}.table-surface{background:radial-gradient(at 30% 20%,#c9a22714,#0000 45%),radial-gradient(at 70% 80%,#7a9e9f1a,#0000 40%),repeating-linear-gradient(0deg,#2a241859 0 1px,#0000 1px 3px),linear-gradient(145deg,#1a1610 0%,#2a2418 40%,#1c1812 100%);border:1px solid #c9a22747;border-radius:4px;position:relative;overflow:hidden;box-shadow:inset 0 0 40px #0006,0 12px 28px #0000004d}.table-surface-board{justify-content:center;align-items:center;min-height:0;padding:1.45rem 1rem .85rem;display:flex}.table-surface-board:before{content:"";pointer-events:none;opacity:.5;border:1px solid #c9a2271a;border-radius:40%/55%;position:absolute;inset:8% 4%}.table-surface-board:after{content:"☽  ·  ★  ·  ☾";letter-spacing:.3em;color:#c9a22773;pointer-events:none;font-size:.65rem;font-family:var(--font-heading);position:absolute;top:.4rem;left:50%;transform:translate(-50%)}.card-board{z-index:2;place-items:end center;gap:clamp(.3rem,1vw,.7rem) clamp(.3rem,1.1vw,.85rem);width:max-content;max-width:100%;margin:0 auto;padding:.2rem .05rem;display:grid;position:relative}.board-cell{justify-content:center;align-items:flex-end;width:100%;min-width:0;max-width:110px;display:flex}.board-cell-empty{opacity:0;pointer-events:none;min-height:clamp(72px,14vw,120px)}.board-cell-stack{max-width:120px;min-height:clamp(90px,18vw,140px);position:relative}.board-cell-stack .dealt-card-inline{width:clamp(52px,8vw,88px)}.board-cell-stack .dealt-card-inline:not(.cross-card){z-index:1;position:relative}.board-cell-stack .cross-card{z-index:2;position:absolute;top:55%;left:50%;transform:translate(-50%,-50%)}.board-cell-stack .cross-card .tarot-card{transform:rotate(90deg)scale(.9)}.dealt-card-inline{flex:none;width:clamp(56px,10vw,96px);position:relative}.reading-stage.rows-1 .dealt-card-inline{width:clamp(64px,12vw,110px)}.reading-stage.rows-3 .dealt-card-inline{width:clamp(54px,9vw,92px)}.reading-stage.rows-4 .dealt-card-inline{width:clamp(46px,6.8vw,76px)}.reading-stage.spread-celtic-cross .card-board{max-width:none;margin:0 auto}.dealt-card-inline.cross-card .card-position-label{display:none}.dealt-card-inline .card-position-label{letter-spacing:.04em;white-space:nowrap;text-overflow:ellipsis;max-width:100%;margin-bottom:.2rem;font-size:.55rem;overflow:hidden}.deck-pile-inline{width:72px;height:120px;margin:.5rem 0 1.5rem .5rem;position:relative;top:auto;left:auto;transform:none}.deck-pile-inline .deck-card{filter:drop-shadow(0 4px 8px #0006);width:72px;position:absolute;top:0;left:0}.deck-pile-inline .shuffle-label{white-space:nowrap;color:var(--gold);letter-spacing:.12em;font-size:.8rem;font-family:var(--font-heading);position:absolute;top:calc(100% + .35rem);left:0;transform:none}.narrative-window{background:linear-gradient(#12161feb,#0b0e17f2);border:1px solid #c9a22747;flex-direction:column;min-height:220px;max-height:min(48vh,440px);display:flex;box-shadow:0 12px 32px #00000059}@media (width>=900px){.reading-stage.has-narrative .narrative-window{max-height:calc(100vh - 9rem);position:sticky;top:.4rem}}.narrative-window-chrome{font-family:var(--font-heading);letter-spacing:.12em;text-transform:uppercase;color:var(--gold);border-bottom:1px solid #c9a22733;flex-shrink:0;justify-content:space-between;align-items:center;gap:.75rem;padding:.55rem .9rem;font-size:.85rem;display:flex}.narrative-window-hint{letter-spacing:.06em;text-transform:none;color:var(--silver);opacity:.75;font-size:.7rem;font-family:var(--font-body)}.narrative-window .narrative{background:0 0;border:none;flex:1;max-height:none;margin:0;padding:.85rem 1rem 1.25rem;overflow-y:auto}.reading-stage.spread-celtic-cross .dealt-card-inline{width:clamp(46px,6.5vw,74px)}.deck-pile,.dealt-card{display:none}.tarot-card-wrap{position:relative}.tarot-card-wrap .card-position-label{text-align:center;letter-spacing:.08em;text-transform:uppercase;color:var(--gold);text-shadow:0 1px 2px #000c;margin-bottom:.35rem;font-size:.65rem;display:block}.tarot-card{perspective:900px;aspect-ratio:2/3;width:100%}.tarot-card-inner{width:100%;height:100%;transform-style:preserve-3d;transition:transform .7s cubic-bezier(.4,.2,.2,1);position:relative}.tarot-card.face-up .tarot-card-inner{transform:rotateY(180deg)}.tarot-card-face{backface-visibility:hidden;border-radius:6px;position:absolute;inset:0;overflow:hidden;box-shadow:0 6px 18px #00000073}.tarot-card-face.front{transform:rotateY(180deg)}.tarot-card-face.back svg,.tarot-card-face.front svg,.card-photo,.card-back-img{object-fit:cover;width:100%;height:100%;display:block}.card-back-picture{width:100%;height:100%;display:block}.tarot-card-wrap.is-highlighted .tarot-card-face{box-shadow:0 0 0 2px var(--gold), 0 0 28px #c9a2278c;animation:1.6s ease-in-out infinite pulse-card}.tarot-card-wrap.in-group .glow-ring{opacity:1}.glow-ring{pointer-events:none;opacity:0;border:1.5px solid #7a9e9fb3;border-radius:10px;transition:opacity .3s;animation:2s ease-in-out infinite ring-pulse;position:absolute;inset:-8px;box-shadow:0 0 20px #7a9e9f73}@keyframes pulse-card{0%,to{filter:brightness()}50%{filter:brightness(1.15)}}@keyframes ring-pulse{0%,to{opacity:.7;transform:scale(1)}50%{opacity:1;transform:scale(1.04)}}.tarot-card-wrap.is-highlighted .glow-ring{opacity:1;border-color:var(--gold);box-shadow:0 0 24px #c9a22780}.narrative{scrollbar-width:thin;scrollbar-color:var(--gold-dim) transparent;background:linear-gradient(#12161feb,#0b0e17e0);border:1px solid #c9a22738;border-radius:2px;max-height:min(70vh,640px);padding:1.25rem 1.35rem 1.75rem;overflow-y:auto}.narrative-title{font-family:var(--font-heading);color:var(--gold);letter-spacing:.06em;margin:0 0 1rem;font-size:1.35rem}.narrative-block{margin-bottom:1rem}.narrative-block h4{font-family:var(--font-heading);color:var(--teal);margin:.5rem 0 .65rem;font-size:1.15rem;font-weight:500}.narrative-p{color:var(--lunar);margin:.4rem 0;font-size:.98rem;line-height:1.65}.narrative-p strong{color:var(--gold);font-weight:600}.card-ref,.group-ref{color:var(--gold);vertical-align:baseline;background:0 0;border:none;padding:0 .15rem;font-size:.9rem;display:inline}.card-ref:hover,.group-ref:hover{color:var(--lunar)}.narrative-typing{color:var(--teal);font-size:.9rem;font-style:italic;animation:1.4s ease-in-out infinite twinkle}@media (width<=600px){.main-stage{padding:.75rem .5rem 1.5rem}.dealt-card-inline{width:clamp(48px,16vw,72px)}.narrative-window{max-height:48vh}.brand-hero{max-width:min(28rem,94vw)}.brand-mini-logo{max-width:12rem;height:3rem}}
