:root { --ink:#071014; --panel:#0c171b; --cream:#eee8dc; --muted:#a9aaa5; --gold:#d5ad62; --line:rgba(227,211,179,.15); --serif:'Cormorant Garamond',Georgia,serif; --sans:'Manrope',sans-serif; }
* { box-sizing:border-box; }
html { scroll-behavior:smooth; }
html,body { width:100%; max-width:100%; overflow-x:hidden; }
body { margin:0; background:var(--ink); color:var(--cream); font-family:var(--sans); font-size:15px; line-height:1.65; }
body::before { content:''; position:fixed; inset:0; pointer-events:none; opacity:.14; z-index:20; background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 160 160' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.8' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.22'/%3E%3C/svg%3E"); }
a { color:inherit; text-decoration:none; } button,select,textarea { font:inherit; } svg { width:22px; fill:none; stroke:currentColor; stroke-width:1.6; }
.sr-only { position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(0,0,0,0); }.age-locked { overflow:hidden; }.age-gate { position:fixed; inset:0; z-index:100; display:grid; place-items:center; padding:20px; background:rgba(2,7,9,.9); backdrop-filter:blur(8px); }.age-panel { width:min(100%,570px); padding:46px 48px 42px; text-align:center; border:1px solid rgba(213,173,98,.38); background:linear-gradient(145deg,#101c20,#081114); box-shadow:0 30px 90px rgba(0,0,0,.65); }.age-mark { width:58px; height:58px; display:grid; place-items:center; margin:0 auto 25px; border:1px solid var(--gold); border-radius:50%; color:var(--gold); font:32px var(--serif); }.age-panel h2 { margin:0 0 18px; font:500 38px/1.12 var(--serif); }.age-panel>p:not(.eyebrow) { max-width:410px; margin:0 auto; color:var(--muted); }.age-actions { display:flex; flex-direction:column; align-items:center; margin-top:20px; }.age-actions .button { width:100%; }.age-leave { margin-top:16px; padding:8px 22px; border:0; background:none; color:#a5aaa8; text-decoration:underline; text-underline-offset:4px; cursor:pointer; }.age-leave:hover { color:var(--cream); }
.site-header { height:76px; padding:0 5vw; display:flex; align-items:center; justify-content:space-between; border-bottom:1px solid var(--line); position:absolute; inset:0 0 auto; z-index:10; }
.brand { display:flex; flex-direction:column; line-height:1; letter-spacing:.15em; }.brand strong { font:500 25px/1 var(--serif); letter-spacing:.28em; color:var(--gold); }.brand span { font-size:8px; letter-spacing:.3em; margin-top:8px; color:#b8a985; }
.desktop-nav { display:flex; gap:42px; }.desktop-nav a { padding:26px 0 21px; border-bottom:2px solid transparent; }.desktop-nav a:hover { color:var(--gold); border-color:var(--gold); }
.header-actions { display:flex; gap:18px; align-items:center; }.language select { color:var(--cream); background:transparent; border:0; padding:10px; }.language option { background:var(--panel); }.menu-button { display:none; border:0; color:var(--cream); background:none; padding:10px; }
.hero { min-height:720px; padding:180px 7vw 100px; display:flex; align-items:center; position:relative; overflow:hidden; background-image:linear-gradient(90deg,rgba(4,10,12,.96) 0%,rgba(5,12,15,.84) 37%,rgba(5,12,15,.34) 70%,rgba(5,12,15,.12)),linear-gradient(0deg,rgba(4,10,12,.55),transparent 45%),url('/images/top_header.jpg'); background-size:cover; background-position:center; }
.hero::before,.hero::after,.hero-orbit { display:none; }
.hero-copy { max-width:680px; z-index:1; }.eyebrow { color:var(--gold); text-transform:uppercase; letter-spacing:.24em; font-size:11px; font-weight:600; margin:0 0 18px; }.hero h1,.profile-page h1,.consult-page h1,.text-page h1 { font:500 clamp(54px,6.5vw,92px)/.96 var(--serif); letter-spacing:-.02em; margin:0 0 24px; }.lede { max-width:570px; color:#c7c8c3; font:400 22px/1.5 var(--serif); }.button { display:inline-flex; align-items:center; justify-content:center; gap:24px; min-height:52px; padding:13px 24px; margin-top:20px; color:#15140f; background:linear-gradient(110deg,#c99c4b,#e6c77e); border:1px solid #d6ad61; border-radius:3px; font-family:var(--serif); font-size:18px; font-weight:600; cursor:pointer; }.button:hover { filter:brightness(1.08); transform:translateY(-1px); }.button:disabled,.button.disabled { opacity:.45; cursor:not-allowed; }.button-ghost { color:var(--cream); background:transparent; }.hero-note { position:absolute; right:7vw; bottom:46px; font:italic 21px var(--serif); color:#c8c1b5; }
.readers-section { padding:100px 5vw 110px; }.section-heading { display:flex; justify-content:space-between; align-items:end; gap:50px; margin:0 auto 42px; max-width:1500px; }.section-heading h2 { font:500 clamp(43px,4vw,62px)/1 var(--serif); margin:0; }.section-heading>p { color:var(--muted); max-width:500px; }
.reader-grid { max-width:1500px; margin:auto; display:grid; grid-template-columns:repeat(5,1fr); gap:15px; }.reader-card { min-width:0; border:1px solid var(--line); background:#0a1316; animation:rise .7s both; animation-delay:var(--delay); }.portrait { height:330px; display:block; overflow:hidden; position:relative; background:#101e22; }.portrait img { width:100%; height:100%; object-fit:cover; transition:transform .6s ease; }.portrait:hover img { transform:scale(1.025); }.portrait-number { position:absolute; top:12px; right:14px; font:18px var(--serif); color:rgba(238,232,220,.55); }.reader-copy { padding:22px 20px 20px; text-align:center; }.reader-style { color:var(--gold); font-size:9px; letter-spacing:.14em; text-transform:uppercase; min-height:30px; margin:0; }.reader-copy h3 { font:500 34px/1 var(--serif); margin:5px 0 12px; }.quote { font:italic 16px/1.35 var(--serif); min-height:44px; color:#ccc6ba; }.reader-meta { min-height:52px; display:flex; flex-direction:column; gap:6px; align-items:center; justify-content:center; color:#8f9494; font-size:10px; letter-spacing:.12em; }.status { display:inline-flex; align-items:center; gap:8px; letter-spacing:0; font-size:12px; }.status i { width:9px; height:9px; border-radius:50%; background:#7c8284; }.status-available { color:#69d89a; }.status-available i { background:#4ed588; box-shadow:0 0 10px rgba(78,213,136,.35); }.status-busy { color:#f0aa72; }.status-busy i { background:#ed8a58; }.reader-card .button { width:100%; font-size:16px; gap:12px; }.reader-card .button svg { width:17px; }
.trust-grid { border-top:1px solid var(--line); border-bottom:1px solid var(--line); padding:45px 6vw; display:grid; grid-template-columns:repeat(3,1fr); }.trust-grid article { display:flex; gap:24px; padding:10px 6vw; border-right:1px solid var(--line); }.trust-grid article:last-child { border:0; }.trust-grid svg { flex:0 0 42px; width:42px; height:42px; color:var(--gold); }.trust-grid h3 { font:500 24px var(--serif); margin:0 0 8px; }.trust-grid p { color:var(--muted); margin:0; }
footer { min-height:150px; padding:45px 6vw; display:flex; align-items:center; justify-content:space-between; gap:35px; }footer nav { display:flex; gap:30px; color:#aaa; }footer a:hover { color:var(--gold); }footer em { color:#908b81; font:italic 15px var(--serif); }
.profile-page,.consult-page,.text-page { min-height:calc(100vh - 150px); padding:130px 7vw 90px; background:radial-gradient(circle at 80% 20%,#172a2e 0,transparent 30%); }.back { color:var(--gold); }.profile-hero { max-width:1100px; margin:35px auto 0; display:grid; grid-template-columns:minmax(300px,470px) 1fr; gap:8vw; align-items:center; }.profile-image { height:610px; border:1px solid var(--line); }.profile-image img { width:100%; height:100%; object-fit:cover; }.profile-copy blockquote { margin:32px 0; padding-left:25px; border-left:1px solid var(--gold); font:italic 24px/1.4 var(--serif); color:#cbc4b7; }.profile-detail { border-top:1px solid var(--line); padding:20px 0; }.profile-detail>span { display:block; color:var(--gold); font-size:10px; letter-spacing:.18em; text-transform:uppercase; }.profile-detail p { color:var(--muted); }
.profile-daily-choice { margin-top:24px; padding:24px; border:1px solid rgba(215,174,83,.45); background:rgba(215,174,83,.055); }.profile-daily-choice h2 { margin:6px 0 10px; font-size:clamp(25px,2.4vw,34px); }.profile-daily-choice>p:not(.eyebrow) { color:var(--muted); }.profile-daily-choice>div { display:flex; flex-wrap:wrap; gap:12px; margin-top:20px; }.profile-daily-choice .button { margin:0; }
.consult-page { display:flex; align-items:center; justify-content:center; }.consult-panel { width:min(100%,760px); text-align:center; }.consult-panel.wide { width:min(100%,1100px); }.consult-panel>p { color:var(--muted); }.consult-panel .eyebrow { color:var(--gold); }.consult-page h1 { font-size:clamp(48px,6vw,76px); }textarea { display:block; width:100%; min-height:150px; resize:vertical; margin:36px 0 0; padding:22px; color:var(--cream); background:#0b1518; border:1px solid rgba(213,173,98,.35); border-radius:3px; outline:0; }textarea:focus { border-color:var(--gold); box-shadow:0 0 0 3px rgba(213,173,98,.08); }.form-error { color:#e9a17d!important; min-height:24px; }.disclaimer { max-width:650px; margin:32px auto 0!important; font-size:11px; color:#777f7f!important; }
.tarot-deck { display:grid; grid-template-columns:repeat(13,minmax(0,1fr)); gap:8px; margin:45px 0 25px; }.tarot-card { aspect-ratio:300/527; padding:4px; border:1px solid rgba(213,173,98,.4); background:#081014; color:var(--gold); cursor:pointer; transition:.25s ease; }.tarot-card:nth-child(even) { transform:translateY(12px); }.tarot-card:hover { transform:translateY(-8px); }.tarot-card.chosen { transform:translateY(-18px); background:#19282a; box-shadow:0 12px 30px rgba(0,0,0,.45),0 0 0 2px var(--gold); }.card-inner { position:relative; display:block; width:100%; height:100%; overflow:hidden; }.card-inner img { display:block; width:100%; height:100%; object-fit:cover; user-select:none; }.card-inner small { position:absolute; right:6px; bottom:5px; display:grid; place-items:center; width:20px; height:20px; border-radius:50%; background:rgba(4,10,12,.76); color:#e3c786; font:10px var(--serif); }.selection-count { color:var(--gold)!important; }.drawn-cards { display:grid; grid-template-columns:repeat(5,1fr); gap:10px; margin:35px auto; }.drawn-cards div { border:1px solid var(--line); padding:22px 10px; display:flex; flex-direction:column; }.drawn-cards span,.drawn-cards small { color:var(--gold); font-size:10px; text-transform:uppercase; letter-spacing:.15em; }.drawn-cards strong { font:24px var(--serif); }.reading-result { max-width:720px; margin:auto; text-align:left; color:#c9c8c2; }.reading-result h3 { font:500 29px var(--serif); color:var(--cream); margin:30px 0 5px; }.reading-result p { margin:9px 0; }
.text-page { padding-top:180px; }.text-page>h1,.text-page>.eyebrow,.prose,.faq-list { max-width:850px; margin-left:auto; margin-right:auto; }.prose { font:22px/1.65 var(--serif); color:#c3c1b9; }.faq-list details { border-top:1px solid var(--line); padding:22px 0; }.faq-list details:last-child { border-bottom:1px solid var(--line); }.faq-list summary { cursor:pointer; font:500 25px var(--serif); }.faq-list p { color:var(--muted); max-width:700px; }.about-article { background:radial-gradient(circle at 84% 8%,rgba(44,76,82,.5),transparent 25%),var(--ink); }.about-article>h1,.about-article>.eyebrow,.about-article>.about-intro,.about-article>section,.about-closing { width:min(100%,850px); margin-left:auto; margin-right:auto; }.about-article>h1 { font-size:clamp(48px,5.5vw,76px); line-height:1.02; }.about-intro { margin-top:32px; margin-bottom:70px; color:#d0cbc0; font:24px/1.55 var(--serif); }.about-article>section { padding:44px 0; border-top:1px solid var(--line); }.about-article>section h2 { margin:0 0 22px; color:var(--cream); font:500 38px/1.15 var(--serif); }.about-article>section p { color:#b9bbb6; font:17px/1.8 var(--serif); }.about-article>section strong { color:#e1d7c5; font-weight:600; }.about-article>section em { color:#d8bd89; }.about-closing { margin-top:25px; padding:38px; border:1px solid rgba(213,173,98,.35); background:rgba(213,173,98,.055); color:#e2d8c7; font:500 25px/1.55 var(--serif); }
.queue-position { width:150px; height:150px; margin:35px auto 22px; border:1px solid var(--gold); border-radius:50%; display:flex; flex-direction:column; align-items:center; justify-content:center; }.queue-position span { color:var(--muted); font-size:11px; text-transform:uppercase; letter-spacing:.12em; }.queue-position strong { font:52px/1 var(--serif); color:var(--gold); }.reading-loader { width:70px; height:70px; margin:50px auto; border:1px solid rgba(213,173,98,.2); border-top-color:var(--gold); border-radius:50%; animation:spin 1.1s linear infinite; }
.reading-result.typing { white-space:pre-wrap; min-height:300px; }.reading-result.typing::after { content:''; display:inline-block; width:1px; height:1em; margin-left:3px; vertical-align:-.1em; background:var(--gold); animation:blink .8s steps(1) infinite; }.reading-progress { height:1px; max-width:720px; margin:30px auto; background:var(--line); }.reading-progress i { display:block; width:0; height:100%; background:var(--gold); transition:width .2s linear; }
@keyframes blink { 50% { opacity:0; } }
@keyframes spin { to { transform:rotate(360deg); } }
.tarot-history { min-height:220px; display:grid; grid-template-columns:1.15fr 1.45fr .75fr; align-items:center; overflow:hidden; border-top:1px solid var(--line); border-bottom:1px solid var(--line); background:linear-gradient(100deg,#121413,#11191b 58%,#172225); }.history-art { align-self:stretch; position:relative; min-height:220px; background-image:linear-gradient(90deg,rgba(4,10,12,.02) 55%,#11191b 100%),url('/images/tarots.jpg'); background-size:cover; background-position:center 58%; }.history-copy { padding:34px 30px; }.history-copy h2 { margin:0 0 8px; font:500 31px/1.15 var(--serif); }.history-copy p { margin:0; color:#b9bbb6; font:16px/1.55 var(--serif); }.history-copy a { display:inline-flex; align-items:center; gap:12px; margin-top:10px; color:var(--gold); font:600 14px var(--serif); }.history-copy a svg { width:16px; }.tarot-history blockquote { margin:0; padding:30px 4vw 30px 25px; color:#c6beb0; font:italic 18px/1.5 var(--serif); border-left:1px solid var(--line); }
.about-article>.about-evolution { width:min(100%,1100px); margin-top:95px; padding-top:75px; }.about-evolution>.eyebrow { color:var(--gold); }.about-evolution>h2 { max-width:850px; font-size:clamp(42px,5vw,64px); }.about-evolution>.evolution-intro { max-width:780px; }.about-evolution .evolution-statement { margin:35px 0 70px; padding:30px 34px; border-left:2px solid var(--gold); background:rgba(213,173,98,.045); color:#ded5c5; font-size:22px; }.about-evolution>h3 { margin:0 0 30px; font:500 34px/1.2 var(--serif); }.benefit-grid { display:grid; grid-template-columns:repeat(2,1fr); border-top:1px solid var(--line); border-left:1px solid var(--line); }.benefit-grid article { padding:32px; border-right:1px solid var(--line); border-bottom:1px solid var(--line); }.benefit-grid article:last-child { grid-column:1/-1; }.benefit-grid span { color:var(--gold); font:15px var(--serif); }.benefit-grid h4 { margin:8px 0 10px; font:500 27px/1.15 var(--serif); }.benefit-grid article p { margin:0; font-size:16px; }
.legal-article>h1,.legal-article>.eyebrow,.legal-updated,.legal-intro,.legal-article>section { width:min(100%,850px); margin-left:auto; margin-right:auto; }.legal-updated { color:var(--gold); font-size:12px; letter-spacing:.1em; text-transform:uppercase; }.legal-intro { margin-top:38px; margin-bottom:60px; color:#d0cbc0; font:22px/1.6 var(--serif); }.legal-article>section { padding:38px 0; border-top:1px solid var(--line); }.legal-article>section h2 { margin:0 0 18px; font:500 32px/1.2 var(--serif); }.legal-article>section p { color:#b9bbb6; font:16px/1.75 var(--serif); }.legal-article a { color:var(--gold); text-decoration:underline; text-underline-offset:4px; }.legal-article address { display:flex; flex-direction:column; gap:4px; margin-top:22px; padding:25px; border-left:2px solid var(--gold); background:rgba(213,173,98,.045); font-style:normal; color:#c8c5bc; }.legal-article address strong { color:var(--cream); text-transform:uppercase; }
.header-login { border:0; background:transparent; color:var(--gold); cursor:pointer; }.account-name { max-width:130px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; color:#c4c4bd; font-size:12px; }.auth-page { min-height:calc(100vh - 150px); padding:130px 7vw 90px; display:grid; place-items:center; background:radial-gradient(circle at 80% 20%,#172a2e 0,transparent 30%); }.auth-panel { width:min(100%,540px); padding:45px; border:1px solid var(--line); background:#0a1417; }.auth-panel h1 { margin:0; font:500 58px/1 var(--serif); }.auth-intro { color:var(--muted); }.auth-panel form { margin-top:30px; }.auth-panel label:not(.auth-check) { display:block; margin-top:18px; color:#d6d1c7; font-size:12px; letter-spacing:.06em; }.auth-panel input[type="text"],.auth-panel input[type="email"],.auth-panel input[type="password"] { display:block; width:100%; margin-top:7px; padding:14px 15px; border:1px solid rgba(213,173,98,.28); background:#071014; color:var(--cream); outline:0; }.auth-panel input:focus { border-color:var(--gold); }.auth-panel label small { display:block; margin-top:4px; color:#777f7f; }.auth-check { display:flex; gap:10px; align-items:flex-start; margin-top:22px; color:var(--muted); font-size:12px; }.auth-check input { margin-top:4px; accent-color:var(--gold); }.auth-panel .button { width:100%; }.auth-switch { margin:25px 0 0; text-align:center; color:var(--muted); }.auth-switch a { color:var(--gold); }
@keyframes rise { from { opacity:0; transform:translateY(18px); } }
@media (max-width:1100px) { .reader-grid { grid-template-columns:repeat(3,1fr); }.reader-grid .reader-card:nth-child(n+4) { display:none; }.portrait { height:390px; }.tarot-deck { grid-template-columns:repeat(10,minmax(0,1fr)); } }
@media (max-width:760px) { body { font-size:14px; }.site-header { height:66px; padding:0 20px; }.brand strong { font-size:21px; }.desktop-nav { display:none; }.menu-button { display:block; }.mobile-nav { position:absolute; top:66px; left:0; width:100%; padding:25px; display:flex; flex-direction:column; gap:18px; background:#081114; border-bottom:1px solid var(--line); }.hero { min-height:600px; padding:125px 22px 72px; align-items:flex-start; }.hero::before { width:100vw; height:100vw; right:-45vw; top:20%; }.hero-orbit { width:140px; height:140px; right:-35px; top:44%; opacity:.7; }.hero h1 { font-size:53px; max-width:520px; }.lede { font-size:18px; max-width:85%; }.hero-note { left:22px; right:auto; bottom:28px; font-size:16px; }.readers-section { padding:65px 18px; }.section-heading { display:block; margin-bottom:28px; }.section-heading>p { margin-top:15px; }.reader-grid { display:flex; overflow-x:auto; scroll-snap-type:x mandatory; gap:12px; padding-bottom:15px; }.reader-card { flex:0 0 82vw; scroll-snap-align:center; }.reader-grid .reader-card:nth-child(n) { display:block; }.portrait { height:420px; }.trust-grid { grid-template-columns:1fr; padding:25px 22px; }.trust-grid article { padding:24px 0; border-right:0; border-bottom:1px solid var(--line); }footer { align-items:flex-start; flex-direction:column; padding:45px 25px; }footer nav { flex-wrap:wrap; gap:15px 25px; }footer em { display:none; }.profile-page,.consult-page,.text-page { padding:105px 20px 65px; }.profile-hero { grid-template-columns:1fr; gap:35px; }.profile-image { height:430px; }.profile-page h1 { font-size:60px; }.consult-page { align-items:flex-start; }.consult-page h1 { font-size:46px; }.tarot-deck { grid-template-columns:repeat(3,1fr); gap:8px; margin-top:30px; }.tarot-card:nth-child(n) { display:block; }.tarot-card:nth-child(even) { transform:none; }.tarot-card.chosen { transform:translateY(-9px); }.drawn-cards strong { font-size:18px; }.text-page { padding-top:130px; }.text-page h1 { font-size:55px; }.prose { font-size:19px; } }
@media (max-width:760px) { .tarot-history { grid-template-columns:1fr; }.history-art { min-height:210px; background-image:linear-gradient(0deg,#11191b 0%,transparent 38%),url('/images/tarots.jpg'); background-position:center 58%; }.history-copy { padding:30px 22px 20px; }.history-copy h2 { font-size:29px; }.tarot-history blockquote { margin:0 22px 30px; padding:14px 0 0; border-left:0; border-top:1px solid var(--line); } }
@media (max-width:760px) { .benefit-grid { grid-template-columns:1fr; }.benefit-grid article:last-child { grid-column:auto; }.about-article>.about-evolution { margin-top:65px; padding-top:55px; }.about-evolution .evolution-statement { margin-bottom:50px; padding:24px; } }
@media (max-width:760px) { .auth-page { padding:100px 18px 55px; }.auth-panel { padding:32px 22px; }.auth-panel h1 { font-size:46px; }.account-name { display:none; }.header-actions { gap:7px; } }
/* Full 78-card selection deck */
.shuffle-view { min-height:620px; display:flex; flex-direction:column; align-items:center; justify-content:center; overflow:hidden; }
.shuffle-deck { position:relative; width:min(100%,520px); height:330px; margin:20px auto -5px; perspective:1000px; }
.shuffle-deck span { position:absolute; top:50%; left:50%; z-index:var(--card); width:132px; aspect-ratio:300/527; border:1px solid rgba(213,173,98,.5); border-radius:4px; overflow:hidden; background:#081014 radial-gradient(circle at 50% 42%,rgba(213,173,98,.18),transparent 42%); box-shadow:0 8px 20px rgba(0,0,0,.38); transform:translate(calc(-50% + var(--card) * .08px),calc(-50% - var(--card) * .045px)) rotate(calc((var(--group) - 3) * .12deg)); animation:shuffle-left 1.25s cubic-bezier(.45,.05,.3,1) infinite; animation-delay:calc(var(--group) * -180ms); }
.shuffle-deck span:nth-child(3n+2) { animation-name:shuffle-right; animation-duration:1.45s; }
.shuffle-deck span:nth-child(5n) { animation-name:shuffle-cross; animation-duration:1.65s; }
.shuffle-deck img { display:block; width:100%; height:100%; object-fit:cover; }
.tarot-deck .tarot-card { animation:deal-card .42s both; animation-delay:calc(var(--card) * 7ms); }
.tarot-deck .tarot-card.chosen { transform:translateY(-12px) scale(1.035); border-color:var(--gold); box-shadow:0 12px 30px rgba(0,0,0,.48),0 0 0 2px var(--gold),0 0 22px rgba(213,173,98,.28); }
.credit-modal { position:fixed; inset:0; z-index:90; display:grid; place-items:center; padding:20px; background:rgba(2,7,9,.86); backdrop-filter:blur(7px); }
.credit-panel { width:min(100%,520px); padding:42px; text-align:center; border:1px solid rgba(213,173,98,.4); background:linear-gradient(145deg,#101c20,#081114); box-shadow:0 30px 90px rgba(0,0,0,.7); }
.credit-panel h2 { margin:0 0 14px; font:500 38px/1.1 var(--serif); }
.credit-panel>p:not(.eyebrow) { color:var(--muted); }
.credit-panel>div { display:flex; justify-content:center; align-items:center; gap:22px; margin-top:12px; }
.credit-panel>div .button { margin:0; }
.credit-panel button:not(.button) { padding:12px; border:0; background:none; color:var(--muted); cursor:pointer; }
@keyframes shuffle-left { 0%,100% { transform:translate(-50%,-50%) rotate(0); } 35% { transform:translate(-112%,-53%) rotate(-7deg); } 68% { z-index:85; transform:translate(-31%,-48%) rotate(3deg); } }
@keyframes shuffle-right { 0%,100% { transform:translate(-50%,-50%) rotate(0); } 32% { transform:translate(12%,-48%) rotate(7deg); } 70% { z-index:84; transform:translate(-69%,-52%) rotate(-3deg); } }
@keyframes shuffle-cross { 0%,100% { transform:translate(-50%,-50%) rotate(0); } 28% { transform:translate(-91%,-61%) rotate(-4deg); } 58% { z-index:86; transform:translate(-8%,-39%) rotate(5deg); } 82% { transform:translate(-54%,-50%) rotate(0); } }
@keyframes deal-card { from { opacity:0; transform:translate(calc(600% - var(--card) * 8%),-45px) rotate(2deg) scale(.72); } to { opacity:1; } }
.deck-actions { position:sticky; bottom:12px; z-index:5; display:flex; align-items:center; justify-content:center; gap:24px; width:max-content; max-width:100%; margin:28px auto 5px; padding:9px 16px 11px; border:1px solid rgba(213,173,98,.3); background:rgba(7,16,20,.94); box-shadow:0 12px 35px rgba(0,0,0,.45); backdrop-filter:blur(8px); }.deck-actions .selection-count,.deck-actions .button { margin:0; }.drawn-cards img { display:block; width:100%; aspect-ratio:300/527; margin:12px 0; object-fit:cover; }.drawn-cards img.reversed-card { transform:rotate(180deg); }
@media (max-width:760px) { .tarot-deck { grid-template-columns:repeat(5,minmax(0,1fr)); gap:6px; }.tarot-card:nth-child(n) { display:block; }.card-inner small { display:none; }.tarot-deck .tarot-card.chosen { transform:translateY(-10px) scale(1.035); }.deck-actions { width:100%; justify-content:space-between; padding:8px 10px; }.deck-actions .button { min-height:46px; padding:10px 14px; font-size:15px; }.drawn-cards { grid-template-columns:repeat(5,minmax(0,1fr)); gap:5px; }.drawn-cards div { padding:8px 4px; }.drawn-cards strong { font-size:12px; line-height:1.1; }.drawn-cards span,.drawn-cards small { font-size:7px; letter-spacing:.05em; } }
@media (max-width:760px) { .shuffle-view { min-height:520px; }.shuffle-deck { height:280px; }.shuffle-deck span { width:105px; }.credit-panel { padding:34px 23px; }.credit-panel h2 { font-size:32px; }.credit-panel>div { flex-direction:column; gap:7px; }.credit-panel .button { width:100%; } }
@media (prefers-reduced-motion:reduce) { * { scroll-behavior:auto!important; animation:none!important; transition:none!important; } }
@media (max-width:760px) { .hero { background-image:linear-gradient(90deg,rgba(4,10,12,.94),rgba(5,12,15,.74)),linear-gradient(0deg,rgba(4,10,12,.7),transparent 55%),url('/images/top_header.jpg'); background-position:42% center; } }
@media (max-width:760px) { .age-panel { padding:38px 24px 32px; }.age-panel h2 { font-size:32px; } }

/* Interactive deck: click to shuffle, overlapping board and selected-card tray */
.consult-panel.wide { width:min(100%,1320px); }
.shuffle-deck { padding:0; border:0; background:transparent; }
.shuffle-deck span { animation-timing-function:cubic-bezier(.4,0,.2,1); animation-duration:1.42s; will-change:transform; }
.shuffle-deck-idle { cursor:pointer; }
.shuffle-deck-idle span { animation:none!important; transform:translate(calc(-50% + var(--card) * .08px),calc(-50% - var(--card) * .045px)); }
.shuffle-deck-idle:hover span:last-child { transform:translate(-50%,-54%) scale(1.025); box-shadow:0 12px 32px rgba(0,0,0,.5),0 0 20px rgba(213,173,98,.16); }
.shuffle-prompt { margin-top:0!important; color:var(--gold)!important; font:500 18px var(--serif); }
.tarot-deck { grid-template-columns:repeat(26,minmax(0,1fr)); gap:18px 0; padding:14px 20px 28px; overflow:hidden; }
.tarot-deck .tarot-card { position:relative; z-index:calc(78 - var(--card)); justify-self:center; width:68px; max-width:none; }
.tarot-deck .tarot-card.chosen { visibility:hidden; transform:none; opacity:0; pointer-events:none; }
.selected-tray { display:flex; justify-content:center; gap:14px; min-height:148px; margin:12px auto 24px; padding:15px; border-top:1px solid var(--line); border-bottom:1px solid var(--line); }
.selected-slot { position:relative; display:grid; place-items:center; width:66px; aspect-ratio:300/527; padding:0; border:1px dashed rgba(213,173,98,.3); border-radius:3px; background:rgba(8,16,20,.55); color:rgba(213,173,98,.5); }
.selected-slot.filled { border-style:solid; border-color:var(--gold); cursor:default; box-shadow:0 10px 24px rgba(0,0,0,.45),0 0 18px rgba(213,173,98,.18); }
.selected-slot.arriving { visibility:hidden; }
.flying-card { position:fixed; z-index:200; display:block; margin:0; border:1px solid rgba(213,173,98,.18); border-radius:3px; object-fit:cover; pointer-events:none; }
.tarot-deck .tarot-card { border-color:rgba(213,173,98,.18); }
.tarot-deck .tarot-card:hover { transform:none; border-color:var(--gold); filter:brightness(1.06); box-shadow:0 0 0 1px var(--gold),0 0 16px rgba(213,173,98,.2); }
.selected-slot img { display:block; width:100%; height:100%; object-fit:cover; }
.selected-slot i { position:absolute; right:4px; bottom:3px; width:17px; height:17px; display:grid; place-items:center; border-radius:50%; background:rgba(4,10,12,.78); color:var(--gold); font:10px var(--serif); }
@media (min-width:1200px) { .tarot-deck { grid-template-columns:repeat(39,minmax(0,1fr)); }.tarot-deck .tarot-card { width:62px; } }
@media (max-width:760px) { .tarot-deck { grid-template-columns:repeat(20,minmax(0,1fr)); gap:14px 0; padding:12px 14px 22px; }.tarot-deck .tarot-card { width:54px; }.tarot-deck .tarot-card.chosen { transform:none; }.selected-tray { min-height:118px; gap:7px; padding:12px 4px; }.selected-slot { width:52px; } }

/* Account dashboard and pricing */
.dashboard-page,.pricing-page { min-height:calc(100vh - 150px); padding:145px 5vw 90px; background:radial-gradient(circle at 82% 8%,rgba(36,70,76,.55),transparent 27%); }
.dashboard-head { width:min(100%,1180px); margin:0 auto 90px; display:grid; grid-template-columns:1fr 310px; gap:8vw; align-items:center; }
.dashboard-head h1,.pricing-head h1 { margin:0 0 20px; font:500 clamp(50px,6vw,78px)/1 var(--serif); }
.dashboard-head>div>p:last-child,.pricing-head>p:last-child { color:var(--muted); font:20px/1.5 var(--serif); }
.balance-card { padding:32px; border:1px solid rgba(213,173,98,.35); background:rgba(8,18,21,.88); box-shadow:0 24px 60px rgba(0,0,0,.35); text-align:center; }
.balance-card span { display:block; color:var(--muted); font-size:11px; text-transform:uppercase; letter-spacing:.15em; }
.balance-card strong { display:block; margin-top:8px; color:var(--gold); font:64px/1 var(--serif); }
.balance-card small { color:var(--muted); }.balance-card .button { width:100%; }
.dashboard-loading { min-height:260px; display:grid; place-items:center; }
.dashboard-readers { max-width:1500px; margin:auto; }.dashboard-readers .readers-section { padding:0; }
.pricing-head { width:min(100%,850px); margin:0 auto 55px; text-align:center; }
.current-balance { display:inline-flex; gap:10px; margin-top:22px; padding:9px 18px; border:1px solid var(--line); color:var(--muted); }.current-balance strong { color:var(--gold); }
.consultation-price { width:min(100%,700px); margin:0 auto 42px; padding:30px; text-align:center; border-top:1px solid var(--line); border-bottom:1px solid var(--line); }
.consultation-price>span { display:block; color:var(--gold); text-transform:uppercase; letter-spacing:.14em; font-size:10px; }.consultation-price p { max-width:600px; margin:12px auto 0; color:var(--muted); }
.pricing-feedback { min-height:24px; margin:18px auto 0; color:var(--muted); }.pricing-feedback.success { color:#78d8a0; }.pricing-feedback.cancelled { color:#d4bd91; }
.package-grid { width:min(100%,1000px); margin:0 auto; display:grid; grid-template-columns:repeat(auto-fit,minmax(220px,1fr)); gap:14px; }
.subscription-section,.one-time-section { width:min(100%,1100px); margin:55px auto 0; }.subscription-section .section-heading,.one-time-section .section-heading { margin-bottom:24px; text-align:center; }.subscription-section .section-heading h2,.one-time-section .section-heading h2 { margin:0 0 8px; font:38px var(--serif); }.subscription-section .section-heading p,.one-time-section .section-heading p,.subscription-status { color:var(--muted); }.subscription-status { margin:18px auto 0; }.subscription-package>strong { font-size:38px; }.subscription-package h2 small { margin-left:5px; color:var(--muted); font:14px var(--sans); text-transform:none; letter-spacing:0; }
.subscription-terms { max-width:820px; margin:22px auto 0; color:var(--muted); font-size:12px; line-height:1.6; text-align:center; }
.price-package { position:relative; padding:35px 25px; text-align:center; border:1px solid var(--line); background:#0a1417; }.price-package.featured { border-color:var(--gold); }.price-package>span { position:absolute; inset:0 0 auto; padding:5px; color:#17130c; background:var(--gold); font-size:9px; letter-spacing:.13em; text-transform:uppercase; }.price-package>strong { display:block; margin-top:12px; font:58px/1 var(--serif); }.price-package>small { color:var(--muted); text-transform:uppercase; letter-spacing:.12em; }.price-package h2 { margin:22px 0 5px; color:var(--gold); font:36px var(--serif); }.price-package .button { width:100%; }
.pricing-pending { width:min(100%,700px); margin:auto; padding:36px; text-align:center; border:1px solid var(--line); background:#0a1417; }.pricing-pending h2 { margin:0; font:34px var(--serif); }.pricing-pending p,.pricing-note { color:var(--muted); }.pricing-note { margin:35px auto 0; text-align:center; font-size:11px; }
.promotion-page { min-height:calc(100vh - 150px); padding:145px 20px 90px; background:radial-gradient(circle at 50% 15%,rgba(42,72,73,.5),transparent 34%); }
.promotion-code-panel { width:min(100%,680px); margin:0 auto; padding:clamp(30px,5vw,55px); text-align:center; border:1px solid rgba(210,169,83,.42); background:rgba(8,19,22,.94); box-shadow:0 26px 70px rgba(0,0,0,.3); }
.promotion-code-panel h2 { margin:7px 0 12px; font:500 clamp(34px,4vw,50px)/1.08 var(--serif); }.promotion-code-panel>p:not(.eyebrow):not(.form-error) { max-width:520px; margin:0 auto 25px; color:var(--muted); line-height:1.65; }
.promotion-code-panel form { display:flex; align-items:end; gap:12px; }.promotion-code-panel label { flex:1; text-align:left; }.promotion-code-panel label span { display:block; margin-bottom:8px; color:var(--gold); font-size:10px; letter-spacing:.14em; text-transform:uppercase; }.promotion-code-panel input { width:100%; min-height:54px; padding:0 17px; color:var(--ivory); border:1px solid var(--line); background:#091417; font:16px var(--sans); }.promotion-code-panel .button { min-height:54px; white-space:nowrap; }.promotion-code-panel .form-error { min-height:20px; margin:14px 0 0; color:#dc7474; font-size:13px; }
.promotion-code-compact { margin:0 auto 90px; }
.promotion-code-input { text-transform:uppercase; letter-spacing:.06em; }
@media (max-width:650px) { .promotion-page { padding:105px 16px 60px; }.promotion-code-panel { padding:30px 20px; text-align:left; }.promotion-code-panel form { display:block; }.promotion-code-panel .button { width:100%; margin-top:12px; }.promotion-code-compact { margin-bottom:60px; } }
@media (max-width:760px) { .dashboard-page,.pricing-page { padding:105px 18px 60px; }.dashboard-head { grid-template-columns:1fr; gap:28px; margin-bottom:65px; }.balance-card { padding:25px; }.dashboard-readers .section-heading { display:block; }.pricing-head { text-align:left; }.pricing-head h1 { font-size:49px; } }

/* Reader consultation room */
.reader-room { min-height:100vh; padding:105px 3vw 45px; background:radial-gradient(circle at 12% 20%,rgba(41,70,73,.5),transparent 26%),#071014; }
.room-shell { width:min(100%,1650px); min-height:calc(100vh - 150px); margin:auto; display:grid; grid-template-columns:270px minmax(0,1fr); align-items:start; border:1px solid var(--line); background:rgba(7,15,18,.88); box-shadow:0 28px 80px rgba(0,0,0,.38); }
.room-shell.room-empty { display:block; min-height:420px; padding:60px; text-align:center; }.room-empty h1 { font:60px var(--serif); }
.room-reader { position:sticky; top:90px; min-height:520px; padding:20px; border-right:1px solid var(--line); background:#0a1417; }
.room-reader>img { display:block; width:100%; height:310px; object-fit:cover; object-position:top; border:1px solid var(--line); }
.room-reader h1 { margin:2px 0 12px; font:48px/1 var(--serif); }.room-reader .eyebrow { margin:22px 0 5px; }
.room-live { display:flex; align-items:center; gap:8px; color:#72d7a0; font-size:11px; }.room-live i { width:8px; height:8px; border-radius:50%; background:#50d68b; }
.reversed-card { transform:rotate(180deg); }
.room-workspace { min-width:0; padding:38px clamp(24px,4vw,64px) 55px; display:flex; flex-direction:column; align-items:center; justify-content:flex-start; }
.room-workspace>* { width:min(100%,1200px); }
.room-scene { width:min(100%,1200px); animation:room-scene-enter 280ms cubic-bezier(.22,.65,.3,1) both; }
.room-scene>* { width:100%; }
.room-conversation { max-height:none; overflow:visible; padding:12px 4px 28px; }
.room-message { max-width:900px; margin:0 0 25px; }.room-message>span { display:block; margin-bottom:5px; color:var(--gold); font-size:10px; letter-spacing:.14em; text-transform:uppercase; }.room-message>div { padding:17px 20px; background:#0c181b; border-left:1px solid var(--gold); color:#c9c9c3; }.room-message.user { margin-left:auto; }.room-message.user>span { text-align:right; }.room-message.user>div { background:rgba(213,173,98,.07); border:1px solid rgba(213,173,98,.2); }.room-message p { margin:7px 0; }
.room-message>div.is-fast-typing::after { content:''; display:inline-block; width:1px; height:.9em; margin-left:3px; vertical-align:-.06em; background:var(--gold); animation:blink .55s steps(1) infinite; }
.room-spread { display:grid; grid-template-columns:repeat(5,clamp(92px,7.2vw,120px)); justify-content:center; gap:clamp(12px,1.8vw,28px); margin:8px auto 30px; padding:24px clamp(10px,2vw,28px); border-top:1px solid var(--line); border-bottom:1px solid var(--line); }
.room-scene-chat>.room-spread,.room-closing>.room-spread,.room-scene-save>.room-spread { margin-top:30px; }
.room-spread-card { min-width:0; padding:0; border:0; background:none; color:var(--cream); cursor:zoom-in; text-align:center; }.room-spread-card img { display:block; width:100%; aspect-ratio:300/527; object-fit:cover; border:1px solid rgba(213,173,98,.35); box-shadow:0 10px 25px rgba(0,0,0,.34); transition:transform .2s ease,border-color .2s ease; }.room-spread-card:hover img,.room-spread-card:focus-visible img { transform:translateY(-5px); border-color:var(--gold); }.room-spread-card:hover img.reversed-card,.room-spread-card:focus-visible img.reversed-card { transform:rotate(180deg) translateY(5px); }.room-spread-card span { display:block; margin-top:10px; color:var(--gold); font-size:10px; letter-spacing:.13em; text-transform:uppercase; }.room-spread-card strong { display:block; overflow:hidden; margin-top:2px; font:500 16px/1.15 var(--serif); text-overflow:ellipsis; white-space:nowrap; }
.spread-card-visual { display:block!important; aspect-ratio:300/527; margin:0!important; perspective:900px; }.spread-card-inner { position:relative; display:block; width:100%; height:100%; transform-style:preserve-3d; }.spread-card-inner img { position:absolute; inset:0; width:100%; height:100%; backface-visibility:hidden; }.spread-card-front { transform:rotateY(180deg); }.spread-card-front.reversed-card { transform:rotateY(180deg) rotate(180deg); }.room-spread-card.is-revealed:not(.is-newly-revealed) .spread-card-inner { transform:rotateY(180deg); }.room-spread-card.is-newly-revealed .spread-card-inner { animation:spread-card-turn 720ms cubic-bezier(.22,.7,.25,1) both; }.room-spread-card.is-newly-revealed>span:not(.spread-card-visual),.room-spread-card.is-newly-revealed>strong,.room-spread-card.is-newly-revealed>small { animation:spread-label-in 220ms ease 620ms both; }.room-spread-card small { display:block; min-height:16px; color:var(--muted); font-size:9px; letter-spacing:.08em; text-transform:uppercase; }.room-spread-card:disabled { cursor:default; opacity:.88; }
.room-spread-card:hover .spread-card-visual,.room-spread-card:focus-visible .spread-card-visual { transform:translateY(-5px); }.room-spread-card:hover .spread-card-back,.room-spread-card:focus-visible .spread-card-back { transform:none; }.room-spread-card:hover .spread-card-front,.room-spread-card:focus-visible .spread-card-front { transform:rotateY(180deg); }.room-spread-card:hover .spread-card-front.reversed-card,.room-spread-card:focus-visible .spread-card-front.reversed-card { transform:rotateY(180deg) rotate(180deg); }
.tarot-stage { min-height:390px; margin-top:8px; padding:24px 12px; overflow:hidden; border-top:1px solid var(--line); border-bottom:1px solid var(--line); }.tarot-stage-preparing { position:relative; min-height:390px; animation:table-enter 250ms ease-out both; }.table-glow { position:absolute; inset:25% 10%; background:radial-gradient(ellipse,rgba(213,173,98,.1),transparent 68%); animation:table-breathe 1.4s ease-in-out infinite alternate; }.tarot-stage.is-shuffling { animation:table-enter 250ms ease-out both; }.tarot-stage.is-shuffling .shuffle-deck span { animation-duration:1.4s; animation-delay:calc(250ms + var(--group) * 10ms); animation-iteration-count:1; animation-fill-mode:both; animation-timing-function:cubic-bezier(.35,.08,.25,1); }.room-message.message-arriving { animation:message-appear 160ms ease-out both; }
.card-lightbox { position:fixed; inset:0; z-index:120; display:grid; place-items:center; padding:24px; background:rgba(2,7,9,.9); backdrop-filter:blur(8px); }.card-lightbox article { position:relative; width:min(88vw,360px); padding:22px; text-align:center; border:1px solid rgba(213,173,98,.5); background:#0a1417; box-shadow:0 30px 90px rgba(0,0,0,.7); }.card-lightbox img { display:block; width:min(100%,300px); aspect-ratio:300/527; margin:auto; object-fit:cover; }.card-lightbox p { margin:16px 0 0; color:var(--gold); font-size:11px; letter-spacing:.14em; text-transform:uppercase; }.card-lightbox h2 { margin:3px 0 0; font:38px/1.05 var(--serif); }.card-lightbox article>span { color:var(--muted); font-size:12px; text-transform:uppercase; }.lightbox-close { position:absolute; top:8px; right:8px; z-index:2; width:36px; height:36px; border:1px solid rgba(213,173,98,.4); border-radius:50%; background:rgba(5,12,14,.85); color:var(--cream); font-size:24px; cursor:pointer; }
.room-compose { display:grid; grid-template-columns:minmax(0, 1fr) auto; gap:12px; align-items:start; border-top:1px solid var(--line); padding-top:20px; }.room-compose textarea { height:98px; min-height:98px; max-height:180px; margin:0; transition:border-color .2s ease,opacity .2s ease; }.room-compose textarea:disabled { cursor:wait; opacity:.58; border-color:rgba(213,173,98,.18); }.room-compose .button { align-self:start; height:98px; min-height:98px; margin:0; }.room-input { min-width:0; }.room-input-meta { display:flex; justify-content:space-between; gap:12px; padding-top:6px; color:var(--muted); font-size:12px; }.room-input-error { color:#db6f78; }.room-shortcut { opacity:.72; white-space:nowrap; }.room-input-meta span:last-child { margin-left:auto; text-align:right; }
.room-closing .room-conversation { max-height:none; }.room-closing-offer { margin-top:22px; padding:22px; border:1px solid rgba(209,166,86,.35); border-radius:14px; background:rgba(209,166,86,.06); }.room-closing-offer h2 { margin:5px 0 18px; }.room-closing-offer>div { display:flex; flex-wrap:wrap; gap:12px; }.room-closing-offer .button { margin:0; }
.room-closing-urgent { display:flex; align-items:center; gap:12px; margin:0 0 18px; padding:12px 15px; border:1px solid rgba(209,166,86,.28); border-radius:10px; background:rgba(8,18,21,.94); box-shadow:0 12px 35px rgba(0,0,0,.24); color:var(--muted); font-size:12px; }.room-closing-urgent strong { flex:0 0 auto; color:var(--gold); font:500 18px var(--serif); }.tarot-decision.is-required { border-color:rgba(209,166,86,.55); background:rgba(209,166,86,.09); }
.room-tarot-actions { display:flex; justify-content:center; margin-top:32px; padding-top:25px; border-top:1px solid rgba(213,173,98,.16); }.room-tarot-actions .button { display:flex; min-width:220px; margin:0; flex-direction:column; align-items:center; gap:4px; }.room-tarot-actions .button small { color:var(--gold); font:500 11px/1.2 var(--sans); letter-spacing:.08em; text-transform:none; }
.room-actions { min-height:45px; display:flex; justify-content:flex-end; margin-top:54px; padding-top:25px; border-top:1px solid var(--line); }.room-actions button { margin:0; padding:11px 18px; border:1px solid rgba(181,75,91,.72); border-radius:5px; background:rgba(116,39,52,.72); box-shadow:0 8px 24px rgba(42,9,15,.22); color:#f4dadd; cursor:pointer; transition:background .2s ease,border-color .2s ease,color .2s ease; }.room-actions button:hover,.room-actions button:focus-visible { border-color:#ca6a78; background:#8f3444; color:#fff1f2; }
.finish-confirm { position:fixed; inset:0; z-index:140; display:grid; place-items:center; padding:24px; background:rgba(2,7,9,.88); backdrop-filter:blur(8px); }.finish-confirm>section { width:min(100%,560px); padding:34px; border:1px solid rgba(213,173,98,.45); background:#0a1417; box-shadow:0 30px 90px rgba(0,0,0,.72); }.finish-confirm h2 { margin:0 0 12px; font:500 36px/1.12 var(--serif); }.finish-confirm p { margin:0; color:var(--muted); font-size:16px; }.finish-confirm .modal-error { margin-top:14px; color:#db6f78; }.finish-confirm section>div { display:flex; flex-wrap:wrap; gap:12px; margin-top:25px; }.finish-confirm .button { margin:0; }
.minor-mode-notice { align-items:start; padding-top:clamp(72px,12vh,130px); background:rgba(2,7,9,.58); }.minor-mode-notice>section { width:min(100%,500px); padding:28px 30px; }.minor-mode-notice h2 { font-size:clamp(27px,3vw,34px); }.minor-mode-notice .eyebrow { margin-bottom:10px; color:var(--gold); }
.tarot-decision { margin:18px 0; padding:18px 20px; border:1px solid rgba(209,166,86,.32); border-radius:12px; background:rgba(209,166,86,.055); }.tarot-decision p { margin:0 0 14px; color:var(--paper); font-family:var(--serif); font-size:clamp(19px,2vw,24px); }.tarot-decision>div { display:flex; flex-wrap:wrap; gap:10px; }.tarot-decision .button { margin:0; }
.room-typing { margin:0 0 12px; color:var(--muted); font:italic 15px var(--serif); }.room-status,.save-reading { text-align:center; }.room-status .reading-loader { margin:20px auto; }.room-table { text-align:center; }.room-table h2,.save-reading h2 { font:42px/1.1 var(--serif); }.room-table .shuffle-deck { margin-top:0; }.room-table .tarot-deck { margin-top:20px; }
.room-reading-status { margin:12px 0 24px; padding:18px 0; border-top:1px solid rgba(213,173,98,.12); }.room-reading-status .reading-loader { width:48px; height:48px; margin:8px auto 14px; }
.tarot-stage.is-shuffling .shuffle-deck span { animation-duration:var(--shuffle-cycle,1.6s); animation-delay:calc(var(--group) * -35ms); animation-iteration-count:3; animation-fill-mode:both; animation-timing-function:cubic-bezier(.35,.08,.25,1); }
.save-reading { width:min(100%,650px); margin:auto; }.save-reading>div:last-child { display:flex; justify-content:center; gap:12px; }.room-farewell { margin-bottom:36px; padding:24px; border-left:1px solid var(--gold); text-align:left; color:#c9c9c3; }.room-sybilum-thanks { display:flex; flex-direction:column; gap:5px; margin:0 0 42px; color:var(--muted); font:italic 17px/1.5 var(--serif); }.room-sybilum-thanks strong { color:var(--gold); font:500 10px/1.2 var(--sans); letter-spacing:.22em; }.room-sybilum-thanks span { display:block; }
.dashboard-reading-link { display:inline-block; margin-top:15px; color:var(--gold); border-bottom:1px solid rgba(213,173,98,.45); }

/* Private access gateway */
.admin-page { position:relative; min-height:100vh; padding:125px 24px 80px; background:radial-gradient(circle at 50% 20%,rgba(41,70,73,.55),transparent 34%),#061014; }
.admin-panel { width:min(100%,520px); margin:auto; padding:clamp(28px,5vw,54px); border:1px solid rgba(213,173,98,.4); background:rgba(7,17,20,.96); box-shadow:0 30px 90px rgba(0,0,0,.48); }.admin-loading { min-height:300px; display:grid; place-items:center; }
.admin-panel h1 { margin:5px 0 12px; font:500 clamp(42px,6vw,68px)/1 var(--serif); }
.admin-panel form { margin-top:30px; }.admin-panel label { display:grid; gap:9px; color:var(--cream); }.admin-panel input { width:100%; padding:15px; border:1px solid var(--line); background:#071216; color:var(--paper); font:16px var(--mono); letter-spacing:.08em; }.admin-panel .button { width:100%; margin-top:14px; }
@media (max-width:760px) { .admin-page { padding:95px 14px 45px; } }
.admin-dashboard { width:min(100%,1400px); margin:auto; }.admin-dashboard-head { display:flex; align-items:end; justify-content:space-between; gap:30px; margin-bottom:38px; padding-bottom:24px; border-bottom:1px solid var(--line); }.admin-dashboard-head h1 { margin:3px 0 0; font:500 clamp(48px,6vw,76px)/.9 var(--serif); }.admin-dashboard-head nav { display:flex; gap:8px; }.admin-dashboard-head nav button { padding:11px 17px; color:var(--muted); border:1px solid var(--line); background:transparent; cursor:pointer; }.admin-dashboard-head nav button.active { color:#17130c; border-color:var(--gold); background:var(--gold); }
.admin-metrics { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:12px; }.admin-metric,.admin-data-card,.admin-promotion-create,.admin-promotion-list { border:1px solid var(--line); background:rgba(8,19,22,.94); }.admin-metric { min-height:145px; padding:25px; }.admin-metric span,.admin-metric small { display:block; color:var(--muted); }.admin-metric span { font-size:11px; letter-spacing:.1em; text-transform:uppercase; }.admin-metric strong { display:block; margin:12px 0 7px; color:var(--cream); font:42px/1 var(--serif); }
.admin-data-grid { display:grid; grid-template-columns:1fr 1fr; gap:14px; margin-top:14px; }.admin-data-card { padding:28px; }.admin-data-card h2,.admin-promotion-create h2,.admin-promotion-list h2 { margin:0 0 22px; font:32px var(--serif); }.admin-stat-row { display:grid; grid-template-columns:1fr auto auto; align-items:center; gap:18px; padding:13px 0; border-top:1px solid var(--line); }.admin-stat-row span { text-transform:capitalize; }.admin-stat-row small { color:var(--muted); }
.admin-promotion-create { padding:28px; }.admin-promotion-create form { display:grid; grid-template-columns:1fr 1fr 150px 220px auto; align-items:end; gap:12px; }.admin-promotion-create label { display:grid; gap:7px; color:var(--muted); font-size:11px; }.admin-promotion-create input,.admin-promotion-list input { min-width:0; padding:13px; color:var(--cream); border:1px solid var(--line); background:#071216; }.admin-promotion-create .button { min-height:45px; }.admin-promotion-list { margin-top:14px; padding:28px; }.admin-table-wrap { overflow:auto; }.admin-promotion-list table { width:100%; border-collapse:collapse; }.admin-promotion-list th,.admin-promotion-list td { padding:13px 12px; text-align:left; border-top:1px solid var(--line); }.admin-promotion-list th { color:var(--muted); font-size:10px; letter-spacing:.1em; text-transform:uppercase; }.admin-promotion-list td small { display:block; margin-top:4px; color:var(--muted); }.admin-promotion-list input { width:90px; }.admin-promotion-list .button { padding:9px 13px; }.admin-code-value { display:block; color:var(--gold); font:600 16px var(--mono); letter-spacing:.08em; white-space:nowrap; }.admin-code-status { color:#d09090; }.admin-code-status.is-enabled { color:#72d7a0; }
.admin-code-actions { display:flex; align-items:center; gap:10px; }.admin-delete-code { padding:8px 0; color:#d9919c; border:0; border-bottom:1px solid rgba(181,75,91,.6); background:transparent; cursor:pointer; }
.admin-legacy-code { display:flex; align-items:center; gap:7px; }.admin-legacy-code input { width:150px; }.admin-legacy-code button { padding:8px; color:var(--gold); border:0; border-bottom:1px solid rgba(213,173,98,.5); background:transparent; cursor:pointer; }
.admin-limit-control { display:flex; align-items:center; gap:7px; }.admin-limit-control button { padding:8px; color:var(--gold); border:0; border-bottom:1px solid rgba(213,173,98,.5); background:transparent; cursor:pointer; }
.admin-marketing-metrics { grid-template-columns:repeat(3,minmax(0,1fr)); }.admin-acquisition { margin-top:14px; }.admin-section-intro { display:flex; align-items:end; justify-content:space-between; gap:40px; margin-bottom:20px; }.admin-section-intro h2 { margin:3px 0 0; }.admin-section-intro>p { max-width:540px; margin:0; color:var(--muted); line-height:1.55; }.admin-acquisition table { width:100%; border-collapse:collapse; }.admin-acquisition th,.admin-acquisition td { padding:13px 12px; text-align:left; border-top:1px solid var(--line); white-space:nowrap; }.admin-acquisition th { color:var(--muted); font-size:10px; letter-spacing:.1em; text-transform:uppercase; }.admin-acquisition td small { display:block; color:var(--muted); }.admin-utm-note { margin:24px 0 0; color:var(--muted); font-size:13px; }.admin-utm-note code { color:var(--gold); overflow-wrap:anywhere; }
@media (max-width:900px) { .admin-dashboard-head { align-items:flex-start; flex-direction:column; }.admin-metrics { grid-template-columns:1fr 1fr; }.admin-data-grid { grid-template-columns:1fr; }.admin-promotion-create form { grid-template-columns:1fr 1fr; }.admin-promotion-create .button { width:100%; } }
@media (max-width:560px) { .admin-metrics,.admin-promotion-create form { grid-template-columns:1fr; }.admin-dashboard-head nav { width:100%; flex-wrap:wrap; }.admin-dashboard-head nav button { flex:1; }.admin-stat-row { grid-template-columns:1fr auto; }.admin-stat-row small { grid-column:1/-1; }.admin-section-intro { display:block; }.admin-section-intro>p { margin-top:12px; } }
.saved-readings-page>h1,.saved-readings-page>.eyebrow,.saved-readings-page>p,.saved-readings-list { width:min(100%,900px); margin-left:auto; margin-right:auto; }.saved-reading-item { position:relative; margin-bottom:12px; border:1px solid var(--line); background:#0a1417; }.saved-readings-list details { border:0; background:transparent; }.saved-readings-list summary { display:flex; justify-content:space-between; gap:20px; padding:22px 130px 22px 22px; cursor:pointer; }.saved-readings-list summary strong { font:25px var(--serif); }.saved-readings-list summary span { color:var(--muted); }.saved-reading-delete { position:absolute; top:18px; right:18px; padding:6px 0; border:0; border-bottom:1px solid rgba(181,75,91,.5); background:transparent; color:#c98c95; cursor:pointer; font:12px var(--sans); }.saved-reading-delete:hover,.saved-reading-delete:focus-visible { color:#f0bac2; border-color:#ca6a78; }.saved-reading-delete-confirm-button { border-color:rgba(181,75,91,.8)!important; background:#79303d!important; }.saved-cards { display:grid; grid-template-columns:repeat(5,1fr); gap:8px; max-width:600px; padding:22px; }.saved-cards figure { min-width:0; margin:0; text-align:center; }.saved-cards img { width:100%; }.saved-cards figcaption { margin-top:7px; color:var(--cream); font:13px/1.2 var(--serif); }.saved-transcript { padding:0 22px 30px; }.saved-transcript article { margin:18px 0; padding:15px 18px; border-left:1px solid var(--gold); color:#c5c6c1; }.saved-transcript article.user { margin-left:15%; border:1px solid var(--line); }
.saved-spread { margin:24px 0; padding:18px; border:1px solid rgba(213,173,98,.24); background:rgba(213,173,98,.045); }.saved-spread .eyebrow { margin:0 0 5px; }.saved-spread h3 { margin:0 0 8px; font:24px/1.2 var(--serif); color:var(--cream); }.saved-spread .saved-cards { padding:12px 0 0; }
@keyframes table-enter { from { opacity:0; transform:translateY(8px); } to { opacity:1; transform:none; } }
@keyframes table-breathe { to { opacity:.45; transform:scale(.98); } }
@keyframes spread-card-turn { 0% { transform:rotateY(0) scale(.98); } 48% { transform:rotateY(92deg) scale(1.035); } 100% { transform:rotateY(180deg) scale(1); } }
@keyframes spread-label-in { from { opacity:0; transform:translateY(3px); } to { opacity:1; transform:none; } }
@keyframes message-appear { from { opacity:0; transform:translateY(5px); } to { opacity:1; transform:none; } }
@keyframes room-scene-enter { from { opacity:.25; transform:translateY(7px); } to { opacity:1; transform:none; } }
@media (prefers-reduced-motion:reduce) { .room-scene,.tarot-stage,.tarot-stage-preparing,.tarot-stage.is-shuffling .shuffle-deck span,.room-spread-card.is-newly-revealed .spread-card-inner,.room-message.message-arriving { animation:none!important; transition:none!important; }.room-spread-card.is-newly-revealed .spread-card-inner { transform:rotateY(180deg); }.room-message>div.is-fast-typing::after { display:none; } }
@media (max-width:800px) { .reader-room { padding:82px 10px 25px; }.room-shell { grid-template-columns:1fr; }.room-reader { position:static; min-height:0; display:flex; align-items:center; gap:15px; padding:12px; border-right:0; border-bottom:1px solid var(--line); }.room-reader>img { width:72px; height:86px; }.room-reader h1 { font-size:30px; }.room-reader .eyebrow { margin:0; }.room-workspace { padding:24px 14px; }.room-compose { grid-template-columns:1fr; }.room-compose .button { height:48px; min-height:48px; }.room-spread { display:flex; justify-content:flex-start; gap:14px; width:100%; overflow-x:auto; scroll-snap-type:x mandatory; padding:20px 8px 24px; }.room-spread-card { flex:0 0 102px; scroll-snap-align:center; }.room-conversation { max-height:none; }.room-table .tarot-deck { padding-left:0; padding-right:0; }.save-reading>div:last-child { flex-direction:column; }.saved-readings-list summary { flex-direction:column; gap:3px; padding:20px 20px 54px; }.saved-reading-delete { top:auto; right:auto; bottom:14px; left:20px; }.saved-cards { padding:15px; } }

/* Mobile hierarchy: five-card spreads use a centered 3 + 2 grid. */
@media (max-width:800px) {
  .room-spread { display:grid; grid-template-columns:repeat(6,minmax(0,1fr)); justify-content:stretch; gap:12px 8px; overflow:visible; scroll-snap-type:none; padding:20px 2px 24px; }
  .room-spread-card { grid-column:span 2; min-width:0; }
  .room-spread-card:nth-child(4) { grid-column:2 / span 2; }
  .room-spread-card span { margin-top:7px; font-size:9px; }
  .room-spread-card strong { font-size:14px; white-space:normal; }
  .saved-cards { grid-template-columns:repeat(6,minmax(0,1fr)); }
  .saved-cards figure { grid-column:span 2; }
  .saved-cards figure:nth-child(4) { grid-column:2 / span 2; }
}

@media (max-width:760px) {
  .reader-room,.room-shell,.room-workspace,.room-scene,.room-conversation,.room-compose,.room-input { width:100%; max-width:100%; min-width:0; }
  .reader-room { overflow-x:hidden; }
  .room-compose textarea { width:100%; max-width:100%; resize:vertical; font-size:16px; line-height:1.55; }
  .room-input-meta { flex-wrap:wrap; overflow-wrap:anywhere; }
  .room-message { width:100%; max-width:100%; }
  .room-message>div { padding:18px 16px; font-size:17px; line-height:1.72; overflow-wrap:anywhere; word-break:break-word; }
  .room-message>span { font-size:11px; }
  .room-closing-urgent { position:fixed; z-index:90; top:74px; left:12px; right:12px; width:auto; margin:0; padding:11px 13px; }
  .room-closing .room-closing-urgent { display:none; }
  .room-closing-offer { position:fixed; z-index:91; top:74px; left:12px; right:12px; width:auto; max-height:calc(100dvh - 170px); overflow-y:auto; margin:0; padding:16px; background:rgba(8,18,21,.98); box-shadow:0 18px 55px rgba(0,0,0,.62); backdrop-filter:blur(10px); }
  .room-closing-offer .eyebrow { margin-bottom:5px; }
  .room-closing-offer h2 { margin:0 0 10px; font-size:25px; line-height:1.15; }
  .room-closing-offer .button { width:100%; margin:0; }
  .reader-copy h3 { margin:0 0 11px; font-size:38px; }
  .reader-style { min-height:0; margin:0 0 12px; font-size:12px; line-height:1.45; letter-spacing:.11em; }
  .quote { font-size:17px; }
  .room-tarot-actions { margin-top:30px; padding-top:22px; }
  .room-tarot-actions .button { width:min(100%,320px); }
  .room-actions { margin-top:58px; padding:24px 0 18px; }
  .room-actions button { min-height:44px; }
  .finish-confirm { padding:16px; }
  .finish-confirm>section { padding:26px 20px; }
  .finish-confirm h2 { font-size:30px; }
  .finish-confirm section>div { flex-direction:column; }
  .finish-confirm .button { width:100%; }
}

.daily-card-promo { max-width:1180px; margin:52px auto; padding:44px clamp(24px,5vw,70px); text-align:center; border:1px solid rgba(216,174,83,.35); background:linear-gradient(135deg,rgba(16,31,34,.92),rgba(8,17,20,.96)); }
.daily-card-promo h2 { margin:8px 0 12px; font-size:clamp(32px,4vw,52px); }
.daily-card-promo p:not(.eyebrow) { max-width:650px; margin:0 auto 24px; color:var(--muted); font-size:17px; line-height:1.7; }
.daily-card-promo.daily-card-strip { display:flex; align-items:center; justify-content:space-between; gap:28px; margin:28px auto 8px; padding:22px clamp(24px,4vw,46px); text-align:left; }
.daily-card-strip .eyebrow { margin:0 0 4px; }.daily-card-promo.daily-card-strip h2 { margin:0; font-size:clamp(25px,3vw,36px); }.daily-card-strip .button { flex:none; }
.daily-card-promo.daily-card-strip p:not(.eyebrow) { max-width:720px; margin:7px 0 0; font-size:15px; line-height:1.55; }
.promotion-entry { max-width:1180px; margin:0 auto 24px; text-align:right; }.promotion-entry a { color:var(--muted); font-size:12px; border-bottom:1px solid rgba(216,174,83,.45); }.promotion-entry a:hover { color:var(--gold); }
.dashboard-daily { margin-top:28px; }
.daily-card-page { min-height:70vh; padding:clamp(40px,7vw,100px) clamp(18px,5vw,72px); }
.daily-card-panel { max-width:720px; margin:0 auto; padding:clamp(30px,5vw,60px); text-align:center; border:1px solid rgba(216,174,83,.35); background:rgba(8,19,22,.9); }
.daily-card-selection { max-width:1180px; margin:0 auto; text-align:center; }.daily-card-selection h1 { margin:8px 0 10px; font-size:clamp(38px,5vw,62px); }.daily-card-selection>p:not(.eyebrow) { color:var(--muted); font-size:17px; }.daily-card-selection .daily-focus { max-width:720px; margin:24px auto 34px; text-align:left; }
.daily-card-enter { animation:daily-card-enter 1.2s cubic-bezier(.16,.72,.24,1) both; }
.daily-edit-question { margin:-18px 0 5px; padding:5px 2px; border:0; border-bottom:1px solid rgba(213,173,98,.35); background:transparent; color:var(--muted); font:13px/1.4 var(--sans); cursor:pointer; }.daily-edit-question:hover,.daily-edit-question:focus-visible { color:var(--cream); border-color:var(--gold); }.daily-edit-actions { display:flex; gap:10px; }.daily-edit-actions .button { margin:0; }
.daily-facedown-deck { display:grid; grid-template-columns:repeat(26,minmax(24px,1fr)); gap:8px 5px; max-width:1180px; margin:0 auto; padding:25px 18px; border-top:1px solid var(--line); border-bottom:1px solid var(--line); background:radial-gradient(ellipse at center,rgba(216,174,83,.07),transparent 65%); }.daily-facedown-deck button { min-width:0; padding:0; border:1px solid rgba(216,174,83,.34); background:none; cursor:pointer; transition:transform .18s ease,border-color .18s ease,box-shadow .18s ease; }.daily-facedown-deck button:hover,.daily-facedown-deck button:focus-visible { z-index:2; transform:translateY(-8px) scale(1.07); border-color:var(--gold); box-shadow:0 10px 24px rgba(216,174,83,.22); }.daily-facedown-deck img { display:block; width:100%; aspect-ratio:300/527; object-fit:cover; }
.daily-card-selection .shuffle-deck { display:block; margin-top:10px; }.daily-card-selection.tarot-stage { min-height:560px; padding:35px 20px; }.daily-card-selection .tarot-deck { margin-top:34px; }.daily-tarot-deck .tarot-card.chosen-daily { z-index:90; border-color:var(--gold); filter:brightness(1.12); box-shadow:0 0 0 2px var(--gold),0 0 28px rgba(213,173,98,.38); transform:translateY(-13px) scale(1.045); pointer-events:none; }.daily-card-selection.is-shuffling .shuffle-deck span { animation-duration:var(--shuffle-cycle,1.6s); animation-delay:calc(var(--group) * -35ms); animation-iteration-count:3; animation-fill-mode:both; }
.daily-question-form { margin-top:30px; text-align:left; }.daily-question-form label { display:block; margin-bottom:10px; color:var(--cream); font:24px/1.25 var(--serif); }.daily-question-form textarea { width:100%; min-height:130px; padding:17px 18px; border:1px solid rgba(216,174,83,.38); background:#091518; color:var(--cream); font:16px/1.55 var(--sans); resize:vertical; }.daily-question-form>div { display:flex; align-items:center; justify-content:space-between; gap:18px; margin-top:12px; }.daily-question-form small { color:var(--muted); }.daily-question-form .button { margin:0; }
.daily-card-result { display:grid; grid-template-columns:minmax(190px,300px) minmax(0,680px); align-items:center; justify-content:center; gap:clamp(36px,7vw,90px); max-width:1100px; margin:0 auto; }
.daily-card-result figure { margin:0; text-align:center; }
.daily-card-flip { width:100%; aspect-ratio:300/527; perspective:1100px; }.daily-card-flip-inner { position:relative; width:100%; height:100%; transform-style:preserve-3d; }.daily-card-result.is-revealing .daily-card-flip-inner { animation:daily-card-turn .9s cubic-bezier(.22,.7,.25,1) .45s both; }.daily-card-flip img { position:absolute; inset:0; display:block; width:100%; height:100%; object-fit:cover; border:1px solid rgba(216,174,83,.5); box-shadow:0 25px 70px rgba(0,0,0,.55); backface-visibility:hidden; }.daily-card-front { transform:rotateY(180deg); }.daily-card-front.reversed-card { transform:rotateY(180deg) rotate(180deg); }.daily-card-result:not(.is-revealing) .daily-card-flip-inner { transform:rotateY(180deg); }
.daily-card-result figcaption { margin-top:14px; font-family:var(--serif); font-size:20px; }
.daily-card-result article h1 { margin:8px 0 24px; font-size:clamp(38px,5vw,64px); }
.daily-card-result article>div { color:var(--soft); font-size:18px; line-height:1.75; }
.daily-text-pending,.daily-conversion-pending { visibility:hidden; }.daily-card-result.is-revealing figcaption { opacity:0; animation:daily-caption-in .3s ease 1.27s forwards; }.daily-card-result #daily-interpretation.is-fast-typing::after { content:''; display:inline-block; width:1px; height:.9em; margin-left:3px; vertical-align:-.06em; background:var(--gold); animation:blink .55s steps(1) infinite; }
.daily-focus { margin:0 0 26px; padding:14px 18px; border-left:1px solid var(--gold); background:rgba(216,174,83,.055); color:var(--cream); font:italic 19px/1.5 var(--serif); }
.daily-conversion { max-width:1180px; margin:90px auto 0; padding-top:45px; border-top:1px solid var(--line); text-align:center; }
.daily-conversion h2 { font-size:clamp(30px,4vw,48px); }
.daily-conversion>p { color:var(--muted); font-size:17px; }
.daily-conversion .reader-grid { margin-top:34px; text-align:left; }
.admin-daily-again { position:fixed; right:max(20px,env(safe-area-inset-right)); bottom:max(20px,env(safe-area-inset-bottom)); z-index:30; margin:0; padding:10px 14px; background:rgba(7,16,20,.88); box-shadow:0 8px 28px rgba(0,0,0,.4); backdrop-filter:blur(8px); font-size:13px; }
@media (max-width:700px) {
  .daily-card-result { grid-template-columns:1fr; }
  .daily-card-result figure { width:min(68vw,260px); margin:auto; }
  .daily-card-result article { text-align:center; }
  .daily-card-promo { margin:28px 14px; }
  .daily-card-promo.daily-card-strip { align-items:flex-start; margin:18px 14px 6px; padding:20px; }.daily-card-strip h2 { max-width:210px; }.daily-card-strip .button { padding:14px 16px; }.promotion-entry { margin:0 14px 18px; text-align:right; }
  .daily-question-form>div { align-items:stretch; flex-direction:column; }.daily-question-form .button { width:100%; }
  .daily-facedown-deck { grid-template-columns:repeat(8,minmax(28px,1fr)); gap:7px 5px; padding:18px 8px; }.daily-card-selection .daily-focus { margin-bottom:24px; }
  .daily-card-selection.tarot-stage { min-height:510px; padding:26px 5px; }.daily-card-selection .tarot-deck { padding-left:8px; padding-right:8px; }
}
@media (prefers-reduced-motion:reduce) { .daily-card-selection.is-shuffling .shuffle-deck span,.daily-tarot-deck .tarot-card { animation:none!important; transition:none!important; } }
@keyframes daily-card-turn { 0% { transform:rotateY(0) scale(.98); } 45% { transform:rotateY(92deg) scale(1.035); } 100% { transform:rotateY(180deg) scale(1); } }
@keyframes daily-caption-in { to { opacity:1; } }
@keyframes daily-card-enter { 0% { opacity:0; transform:translateY(7px); } 28% { opacity:.18; } 100% { opacity:1; transform:none; } }
@media (prefers-reduced-motion:reduce) { .daily-card-result.is-revealing .daily-card-flip-inner { animation:none!important; transform:rotateY(180deg); }.daily-card-result.is-revealing figcaption { opacity:1; animation:none!important; } }
