/* Landing composition based on the approved Natal Ritual art direction. */
:root { --ink:#070c2d; --paper:#fbf5fc; --lav:#c8b1ff; --peach:#ffb29e; --line:rgba(211,194,255,.36); --glass:rgba(19,27,76,.66); }
* { box-sizing:border-box; }
html { scroll-behavior:smooth; }
body { margin:0; color:var(--paper); background:#080d31; font-family:Inter,system-ui,sans-serif; overflow-x:hidden; }
body::before { content:""; position:fixed; inset:0; pointer-events:none; background:radial-gradient(circle at 53% 11%,rgba(100,107,224,.38),transparent 23%),radial-gradient(circle at 84% 29%,rgba(255,152,181,.14),transparent 30%),linear-gradient(180deg,#070b29,#0a113c 62%,#080d2c); z-index:-4; }
.ritual-page { position:relative; max-width:1320px; padding:28px 32px 0; margin:0 auto; overflow:hidden; }
.aurora { position:absolute; z-index:-2; pointer-events:none; filter:blur(8px); opacity:.82; }
.aurora-one { width:1000px; height:460px; top:-135px; left:150px; border:48px solid transparent; border-radius:50%; background:linear-gradient(100deg,transparent 18%,#6659e7 39%,#efa2e7 59%,#ffcfac 68%,transparent 84%) border-box; -webkit-mask:linear-gradient(#000 0 0) padding-box,linear-gradient(#000 0 0); -webkit-mask-composite:xor; mask-composite:exclude; transform:rotate(10deg); }
.aurora-two { width:1050px; height:350px; left:-220px; top:260px; background:radial-gradient(ellipse,rgba(194,124,239,.60) 0,rgba(112,98,238,.28) 30%,transparent 68%); transform:rotate(-14deg); }
.stars { position:absolute; z-index:-1; inset:0; opacity:.45; background-image:radial-gradient(#fff 1px,transparent 1.2px),radial-gradient(#e9c4ff 1px,transparent 1.2px); background-size:130px 130px,210px 210px; background-position:13px 20px,80px 65px; mask-image:linear-gradient(180deg,black,transparent 75%); }
.ritual-nav { min-height:50px; display:flex; align-items:center; justify-content:space-between; position:relative; z-index:1; }
.ritual-brand { color:#fff7fe; font-family:"Cormorant Garamond",serif; font-size:29px; font-weight:500; text-decoration:none; letter-spacing:-.5px; display:inline-flex; align-items:center; gap:11px; }
.ritual-brand span { color:#f7e5ff; font-family:Inter,sans-serif; font-size:27px; }
.nav-links { display:flex; align-items:center; gap:30px; }
.nav-links a,.ritual-footer a { color:#dcd9ed; text-decoration:none; font-size:13px; }
.nav-actions { display:flex; align-items:center; gap:22px; }.language-control { position:relative; }.language-control > button { min-width:58px; padding:7px 9px; border:1px solid rgba(228,211,255,.54); border-radius:18px; color:#fff; background:rgba(22,31,77,.6); font:700 10px Inter,sans-serif; letter-spacing:.7px; cursor:pointer; }.language-control > button span + span { margin-left:5px; color:#e5c7ef; font-size:14px; line-height:0; }.language-menu { position:absolute; top:calc(100% + 9px); right:0; z-index:20; width:118px; padding:5px; border:1px solid rgba(227,210,255,.55); border-radius:12px; background:rgba(12,19,57,.96); box-shadow:0 16px 35px rgba(0,0,0,.32); }.language-menu[hidden] { display:none; }.language-menu button { display:block; width:100%; padding:9px 8px; border:0; border-radius:8px; color:#eae6f2; background:transparent; text-align:left; font:12px Inter,sans-serif; cursor:pointer; }.language-menu button:hover,.language-menu button.is-active { background:rgba(166,136,219,.24); color:#fff; }
.landing-hero { text-align:center; padding:52px 0 55px; position:relative; }
.hero-orbit { position:absolute; width:600px; height:310px; border:1px solid rgba(207,222,255,.35); border-radius:50%; top:-2px; left:50%; transform:translateX(-50%) rotate(-22deg); box-shadow:0 0 70px rgba(120,168,255,.23) inset; pointer-events:none; }
.hero-copy { max-width:680px; margin:auto; position:relative; }
h1,h2,h3,p { margin-top:0; }
.hero-copy h1 { color:#fffaff; font-family:"Cormorant Garamond",Georgia,serif; font-size:clamp(60px,7vw,98px); font-weight:400; line-height:.84; letter-spacing:-3.4px; margin:24px 0 24px; }
.hero-copy h1 em { font-weight:400; background:linear-gradient(95deg,#b79eff,#e7a5e7,#ffb49a); -webkit-background-clip:text; background-clip:text; color:transparent; }
.hero-copy > p { color:#dfdced; font-size:17px; line-height:1.48; max-width:430px; margin:0 auto 19px; }
.free-pill { display:inline-flex; gap:11px; align-items:center; border:1px solid rgba(214,181,255,.74); border-radius:30px; padding:10px 25px; color:#fff; background:rgba(25,32,81,.5); font-size:14px; }
.free-pill:first-letter { color:#dcadff; }
.birth-card { position:relative; z-index:1; max-width:1140px; margin:33px auto 0; padding:25px 26px 32px; border:1px solid rgba(234,205,255,.75); border-radius:18px; background:linear-gradient(115deg,rgba(62,55,107,.84),rgba(24,37,89,.84)); box-shadow:0 22px 60px rgba(0,0,0,.25),inset 0 1px rgba(255,255,255,.13); display:grid; grid-template-columns:1fr 1fr 1.1fr .8fr 1.05fr; gap:17px; text-align:left; }
.birth-card label { display:grid; gap:8px; min-width:0; }.birth-card label span { color:#d8d3e7; font-size:10px; font-weight:600; letter-spacing:.4px; }
.birth-card input,.birth-card select { width:100%; min-width:0; height:54px; border:1px solid rgba(193,189,232,.5); border-radius:10px; padding:0 14px; background:rgba(15,23,65,.5); color:#fff; font:14px Inter,sans-serif; outline:none; }
.birth-card input:focus,.birth-card select:focus { border-color:#eeb1b4; box-shadow:0 0 0 3px rgba(238,177,180,.16); }.birth-card input::placeholder { color:#b7b6cc; }.birth-card button,.preview-button,.plan-card button,.ritual-footer button { border:0; border-radius:11px; align-self:end; height:54px; color:#171530; font:600 14px Inter,sans-serif; background:linear-gradient(100deg,#ffb89d,#e9a4ec 95%); cursor:pointer; box-shadow:0 10px 24px rgba(234,145,179,.2); }.birth-card button b { margin-left:13px; font-size:20px; font-weight:400; }.form-privacy { position:absolute; bottom:10px; left:0; right:0; color:#c4c2d6; text-align:center; font-size:11px; margin:0; }
.hero-down { position:absolute; bottom:0; left:50%; color:#fff; text-decoration:none; font-size:34px; transform:translateX(-50%); }
.glass-panel { border:1px solid var(--line); background:linear-gradient(140deg,rgba(21,35,87,.75),rgba(6,17,54,.78)); box-shadow:inset 0 1px rgba(255,255,255,.09),0 24px 52px rgba(0,0,0,.2); border-radius:18px; }
.chart-preview { min-height:425px; display:grid; grid-template-columns:1.05fr 1.15fr .46fr; align-items:center; padding:34px; gap:21px; }.preview-copy h2,.guidance h2,.plans-heading h2 { font:400 35px/.94 "Cormorant Garamond",serif; letter-spacing:-.8px; margin-bottom:24px; }.preview-copy em,.guidance em { font-weight:400; color:#e6caec; }.identity-list { display:grid; gap:10px; }.identity-list article { display:flex; align-items:center; gap:16px; padding:12px 14px; background:linear-gradient(110deg,rgba(114,94,185,.56),rgba(34,42,95,.2)); border:1px solid rgba(217,201,255,.15); border-radius:11px; }.identity-list i { width:34px; color:#dbb7ff; font-size:29px; font-style:normal; text-align:center; }.identity-list .sun-glyph { color:#ffc96f; }.identity-list .moon-glyph { color:#c7a6ff; }.identity-list b { display:block; font-size:13px; }.identity-list p { margin:4px 0 0; color:#c9c6d8; font-size:11px; }.preview-button { min-width:130px; height:41px; margin:16px 0 10px; color:white; background:linear-gradient(100deg,#a98df4,#6e65db); }.preview-copy small { display:block; color:#b5b3c9; font-size:10px; }
.preview-wheel { width:min(330px,29vw); aspect-ratio:1; justify-self:center; position:relative; border:1px solid #d9a7bd; border-radius:50%; background:radial-gradient(circle,#10123a 0 17%,transparent 17.5%),repeating-conic-gradient(from -2deg,rgba(255,233,204,.4) 0 1deg,transparent 1deg 30deg),radial-gradient(circle,#24326d 0,#091233 71%); box-shadow:0 0 0 9px rgba(189,153,208,.13),0 0 0 30px rgba(5,10,35,.34); }.wheel-ring { position:absolute; border:1px solid rgba(235,203,212,.55); border-radius:50%; inset:12%; }.ring-b { inset:34%; border-color:rgba(226,180,249,.42); }.wheel-center { position:absolute; left:50%; top:50%; transform:translate(-50%,-50%); color:#ffb9b1; font-size:22px; }.aspect { position:absolute; width:1px; height:61%; left:50%; top:20%; transform-origin:bottom; background:linear-gradient(#e7abdf,transparent); }.aspect-one{transform:rotate(55deg)}.aspect-two{transform:rotate(-56deg);background:linear-gradient(#67b8ff,transparent)}.aspect-three{transform:rotate(178deg);background:linear-gradient(#ee8ea9,transparent)}.preview-wheel .z { position:absolute; color:#f0b5b9; font-style:normal; font-size:22px; }.z1{top:9%;left:47%}.z2{top:46%;right:9%}.z3{bottom:9%;left:47%}.z4{top:46%;left:9%}.planet-key { align-self:center; display:grid; gap:8px; color:#d9cfe7; font-size:11px; }.planet-key p { color:#fff; margin:0 0 5px; }.planet-key span:nth-of-type(1){color:#ffcc6f}.planet-key span:nth-of-type(2){color:#d6b6ff}.planet-key span:nth-of-type(4){color:#ffb1b2}
.how-section { padding:62px 3px 50px; }.ornament-title { display:flex; align-items:center; gap:17px; justify-content:center; }.ornament-title span { height:1px; flex:1; background:linear-gradient(90deg,transparent,#d9b4d4,transparent); }.ornament-title h2 { margin:0; font:400 35px "Cormorant Garamond",serif; }.ritual-steps { display:grid; grid-template-columns:1fr 42px 1fr 42px 1fr; gap:20px; text-align:center; padding:35px 20px 0; align-items:center; }.ritual-steps > b { color:#cdb6d8; font-weight:400; font-size:35px; }.ritual-steps article { min-width:0; }.step-icon { width:104px; height:104px; margin:0 auto 20px; border:1px solid #bba6e2; border-radius:50%; display:flex; align-items:center; justify-content:center; color:#e6d2fa; font-size:12px; position:relative; }.step-icon i { position:absolute; font-size:35px; font-style:normal; bottom:17px; }.step-icon.warm { border-color:#eba5b3; color:#ffd6cf; }.ritual-steps h3 { font-size:14px; margin-bottom:6px; }.ritual-steps p { max-width:190px; margin:auto; color:#c3c1d2; font-size:12px; line-height:1.5; }
.plans-section { padding:32px 14px 44px; border-top:1px solid rgba(207,179,213,.28); }.plans-heading { text-align:center; }.plans-heading h2 { margin:0 0 5px; font-size:39px; }.plans-heading p { color:#d5cddb; font-size:14px; }.billing-toggle { display:inline-flex; align-items:center; gap:25px; padding:5px 8px 5px 20px; margin:9px 0 24px; border:1px solid rgba(220,202,255,.63); border-radius:20px; font-size:12px; }.billing-toggle b { color:white; }.billing-toggle span { color:#c2bdd0; }.billing-toggle i { padding:5px 10px; border-radius:12px; font-style:normal; color:#f6cef0; background:#5b4aa2; font-size:10px; }.plan-grid { max-width:1050px; margin:auto; display:grid; grid-template-columns:1fr 1fr; gap:18px; }.plan-card { position:relative; min-height:385px; padding:24px; overflow:hidden; border:1px solid rgba(211,191,252,.48); border-radius:14px; background:linear-gradient(137deg,rgba(50,46,119,.93),rgba(15,25,74,.98)); }.plan-card::after { content:""; position:absolute; width:230px; height:230px; border:1px solid rgba(240,179,194,.45); border-radius:50%; right:-90px; bottom:-85px; box-shadow:0 0 0 25px rgba(200,141,226,.06),0 0 0 58px rgba(200,141,226,.04); }.plan-card > * { position:relative; z-index:1; }.plan-card > p { color:#d8c7f3; font-size:10px; letter-spacing:.8px; }.plan-card h3 { margin:12px 0 0; font:400 39px/.9 "Cormorant Garamond",serif; }.plan-card h3 em { color:#f2d9fb; font-style:normal; }.plan-card > span { color:#ded7e3; font-size:14px; }.plan-card strong { display:block; margin:23px 0 19px; font:400 37px "Cormorant Garamond",serif; }.plan-card strong small { color:#e2d9e6; font:14px Inter,sans-serif; }.plan-card ul { padding:0; list-style:none; display:grid; gap:10px; font-size:12px; color:#ece9f0; }.plan-card li::before { content:"✓"; display:inline-grid; place-items:center; width:16px; height:16px; margin-right:8px; border-radius:50%; color:white; background:#8b79d2; font-size:10px; }.plan-card button { width:100%; height:41px; position:absolute; bottom:21px; left:24px; width:calc(100% - 48px); color:white; background:linear-gradient(100deg,#8d73e3,#bd93e4); }.ritual-duo { background:linear-gradient(133deg,rgba(157,104,115,.87),rgba(95,72,126,.96)); }.ritual-duo button { color:#fff; background:linear-gradient(100deg,#ffac94,#ca8ae3); }
.guidance { max-width:1120px; margin:0 auto 36px; padding:28px 34px; display:grid; grid-template-columns:.8fr 1.2fr; align-items:center; gap:30px; background:linear-gradient(115deg,rgba(21,32,86,.78),rgba(47,49,116,.65)); }.guidance h2 { font-size:34px; margin-bottom:16px; }.guidance-intro p { max-width:270px; color:#d0ccd9; font-size:13px; line-height:1.55; }.chat-demo { border:1px solid rgba(200,190,245,.33); border-radius:10px; padding:13px; background:rgba(6,14,49,.43); }.chat-demo small { color:#d1c7e4; font-size:11px; }.chat-demo article { display:flex; gap:11px; margin:13px 0 9px; }.chat-demo article b { display:grid; place-items:center; min-width:28px; height:28px; border:1px solid #edbb9b; border-radius:50%; color:#ffe0ad; }.chat-demo article p { margin:0; padding:11px; border-radius:8px; background:rgba(79,75,139,.35); color:#e5e2e9; font-size:12px; line-height:1.45; }.prompt-tags { display:flex; gap:7px; padding-left:39px; }.prompt-tags span { padding:5px 8px; border-radius:12px; background:#58538d; color:#e7e0ee; font-size:10px; }.chat-input { margin-top:13px; padding:10px; border:1px solid rgba(195,186,241,.45); border-radius:7px; color:#aaa8c2; font-size:11px; }.chat-input b { float:right; color:#ffd2dc; font-size:15px; }
.trust-grid { display:grid; grid-template-columns:repeat(3,1fr); max-width:1110px; padding:10px 15px 46px; margin:auto; border-bottom:1px solid rgba(218,190,218,.35); gap:30px; }.trust-grid article { display:flex; align-items:flex-start; gap:12px; }.trust-grid i { color:#f7e4ff; font-size:28px; font-style:normal; }.trust-grid b { font-size:13px; }.trust-grid p { margin:5px 0 0; color:#c1bdca; font-size:11px; line-height:1.4; }.ritual-footer { max-width:1320px; padding:25px 47px 35px; margin:auto; display:grid; grid-template-columns:1.3fr 1fr 1.2fr 1.25fr; gap:16px; align-items:center; color:#d2ccdb; }.ritual-footer .ritual-brand { font-size:27px; grid-row:span 2; }.ritual-footer > p { font-size:11px; line-height:1.4; grid-row:2; }.ritual-footer > div { display:flex; gap:15px; flex-wrap:wrap; }.ritual-footer button { height:42px; color:#fff; }.ritual-footer small { font-size:10px; text-align:right; }
/* Preserve functional generated-chart UI in the same visual language. */
.result { max-width:1120px; margin:0 auto 45px; padding:35px; border:1px solid var(--line); border-radius:18px; background:rgba(9,19,57,.75); }.result h2 { font:400 44px "Cormorant Garamond",serif; }.result-head { display:flex; justify-content:space-between; align-items:center; }.ghost { padding:10px 17px; color:white; background:transparent; border:1px solid #c7b1e6; border-radius:20px; }.chart-layout { display:grid; grid-template-columns:1fr 1fr; gap:28px; }.wheel-panel,.story-panel { padding:20px; border-radius:14px; background:rgba(39,43,100,.28); }.wheel { margin:auto; }.insight { padding:14px; margin-bottom:9px; border-radius:10px; background:rgba(101,84,151,.38); }.insight h3 { margin-bottom:5px; font-size:15px; }.insight p,.personal-note p,.muted { color:#c8c4d4; font-size:12px; line-height:1.5; }.personal-note { display:flex; gap:12px; padding:12px; }.personal-note span { color:#eeb2e1; }.placements-section { display:flex; gap:30px; margin-top:22px; }.placements { display:grid; flex:1; grid-template-columns:repeat(3,1fr); gap:8px; }.placement { padding:9px; border-radius:8px; background:rgba(105,89,154,.28); font-size:11px; }.placement b,.placement span { display:block; }.placement span { margin-top:4px; color:#d0c7dc; }.hidden { display:none; }
@media (max-width:800px) { .ritual-page{padding:18px 16px 0}.ritual-nav{min-height:38px}.ritual-brand{font-size:25px}.nav-links{display:none}.nav-actions{gap:0}.landing-hero{padding:55px 0 42px}.hero-copy h1{font-size:61px;letter-spacing:-2.3px}.hero-copy>p{font-size:15px}.birth-card{grid-template-columns:1fr 1fr;padding:19px 16px 37px;gap:13px}.birth-card .place-field,.birth-card .zone-field,.birth-card button{grid-column:span 2}.birth-card button{margin-top:3px}.chart-preview{grid-template-columns:1fr;padding:24px;gap:25px}.preview-wheel{width:min(320px,74vw);grid-row:1}.preview-copy{grid-row:2}.planet-key{display:grid;grid-template-columns:repeat(3,1fr);font-size:10px}.planet-key p{grid-column:span 3}.how-section{padding-top:48px}.ritual-steps{grid-template-columns:1fr;padding:28px 0 0;gap:23px}.ritual-steps>b{transform:rotate(90deg)}.plan-grid,.guidance,.chart-layout{grid-template-columns:1fr}.plans-section{padding-left:0;padding-right:0}.guidance{padding:24px}.trust-grid{grid-template-columns:1fr;gap:20px;padding-bottom:28px}.ritual-footer{grid-template-columns:1fr;padding:24px 18px}.ritual-footer .ritual-brand,.ritual-footer>p{grid-row:auto}.ritual-footer small{text-align:left}.result{padding:22px 16px}.result-head{align-items:flex-start;gap:16px}.result h2{font-size:35px}.placements-section{display:block}.placements{margin-top:12px;grid-template-columns:repeat(2,1fr)} }
@media (max-width:420px) { .hero-copy h1{font-size:53px}.birth-card{grid-template-columns:1fr}.birth-card label,.birth-card .place-field,.birth-card .zone-field,.birth-card button{grid-column:span 1}.free-pill{font-size:12px;padding:9px 14px}.chart-preview{margin-left:-3px;margin-right:-3px}.preview-wheel{width:250px}.plan-card{padding:21px}.plan-card h3{font-size:34px}.planet-key{grid-template-columns:repeat(2,1fr)}.planet-key p{grid-column:span 2} }

/* A personal chart is the visual centre of the form, not a decorative static image. */
.birth-stage { max-width:1140px; margin:33px auto 0; display:grid; grid-template-columns:minmax(0,1.32fr) minmax(280px,.68fr); gap:16px; align-items:stretch; position:relative; z-index:1; }
.birth-stage .birth-card { max-width:none; margin:0; grid-template-columns:repeat(2,minmax(0,1fr)); min-height:325px; padding:26px 26px 42px; align-content:start; }
.birth-stage .birth-card .place-field,.birth-stage .birth-card .zone-field { grid-column:auto; }
.birth-stage .birth-card button { grid-column:1/-1; height:50px; margin-top:2px; }
.live-chart-card { min-height:325px; padding:22px 18px 15px; border:1px solid rgba(237,208,255,.68); border-radius:18px; background:linear-gradient(146deg,rgba(53,49,119,.84),rgba(12,22,63,.89)); box-shadow:0 22px 60px rgba(0,0,0,.25),inset 0 1px rgba(255,255,255,.12); overflow:hidden; text-align:center; }
.live-kicker { color:#ded4ef; margin:0 0 8px; font-size:9px; font-weight:700; letter-spacing:1.1px; }
.live-wheel { width:170px; aspect-ratio:1; margin:0 auto 8px; position:relative; display:grid; place-items:center; border:1px solid rgba(255,209,198,.65); border-radius:50%; background:radial-gradient(circle,rgba(250,179,178,.34) 0 6%,transparent 7%),repeating-conic-gradient(from 5deg,rgba(255,236,202,.35) 0 .8deg,transparent .8deg 30deg),radial-gradient(circle,#1c245c 0,#0a1138 67%); box-shadow:0 0 0 7px rgba(222,198,255,.1),0 0 38px rgba(201,132,223,.16); transition:transform 1.2s cubic-bezier(.16,1,.3,1),filter .7s ease; }
.live-wheel::after { content:""; position:absolute; inset:17%; border:1px solid rgba(236,216,255,.46); border-radius:50%; }.live-wheel.is-pending { filter:saturate(.62); }.live-wheel.is-ready { filter:saturate(1.1); animation:chart-arrive .85s cubic-bezier(.16,1,.3,1); }
.live-core { width:30px; height:30px; border-radius:50%; background:radial-gradient(circle,#ffe1c5 0 12%,#f0a5a4 13% 27%,rgba(145,100,218,.25) 28%); box-shadow:0 0 24px rgba(255,196,171,.75); z-index:2; }
.live-planet { --planet-angle:0deg; position:absolute; width:20px; height:20px; display:grid; place-items:center; color:#fff5ed; font-family:"Cormorant Garamond",serif; font-size:17px; line-height:1; border-radius:50%; background:rgba(114,76,183,.94); border:1px solid rgba(255,215,202,.72); box-shadow:0 0 13px rgba(203,143,233,.5); transform:rotate(var(--planet-angle)) translateY(-67px) rotate(calc(var(--planet-angle) * -1)); transition:transform 1.15s cubic-bezier(.16,1,.3,1),opacity .5s ease; z-index:3; }
.live-planet[data-key="Sun"] { background:#d59855; }.live-planet[data-key="Moon"] { background:#7666c8; }.live-planet[data-key="Venus"] { background:#c46f99; }
.live-chart-copy b { display:block; color:#fff; font-size:13px; }.live-chart-copy p { margin:5px auto 0; max-width:250px; color:#c9c5d7; font-size:11px; line-height:1.45; }.live-disclosure { margin:10px auto 0; max-width:250px; color:#a9a5bc; font-size:9px; line-height:1.4; }
@keyframes chart-arrive { from { transform:scale(.9); opacity:.28; } to { transform:scale(1); opacity:1; } }
@media (prefers-reduced-motion: reduce) { .live-wheel,.live-planet { transition:none; animation:none; } }

/* Carefully selected editorial art replaces tiny decorative glyphs. */
.identity-list i { display:none; }.identity-list article { gap:13px; }.position-orb { width:33px; height:33px; flex:0 0 33px; border-radius:50%; border:1px solid rgba(255,229,199,.72); box-shadow:0 0 15px rgba(255,191,151,.23); background:radial-gradient(circle at 35% 32%,#fff7df 0 5%,#ffcd7e 7% 22%,#c6784e 24% 45%,#39255f 48%); }.moon-orb { background:radial-gradient(circle at 34% 32%,#f2eaff 0 12%,#b99de6 13% 29%,#6558aa 30% 53%,#262653 54%); }.rising-orb { background:radial-gradient(circle at 50% 63%,#ffe1ad 0 11%,#e99370 12% 28%,#8f5c9a 30% 49%,#272654 51%); }
.ritual-steps { grid-template-columns:repeat(3,1fr); gap:22px; padding:35px 0 0; align-items:start; }.ritual-steps > b { display:none; }.ritual-steps article { position:relative; padding:0 7px; }.ritual-steps article img { display:block; width:100%; aspect-ratio:1.18; object-fit:cover; border:1px solid rgba(215,194,248,.4); border-radius:15px; box-shadow:0 18px 36px rgba(0,0,0,.2); }.ritual-steps article > span { position:absolute; top:12px; left:19px; display:grid; place-items:center; width:34px; height:34px; color:#2b2353; border-radius:50%; background:#f7e5df; font-size:11px; font-weight:700; }.ritual-steps h3 { margin:17px 0 7px; }.ritual-steps p { max-width:230px; }
.guidance-intro { display:grid; grid-template-columns:150px 1fr; gap:22px; align-items:center; }.guidance-intro > img { width:150px; aspect-ratio:1; object-fit:cover; border:1px solid rgba(232,204,229,.35); border-radius:13px; box-shadow:0 12px 30px rgba(0,0,0,.18); }.chat-presence { display:block; flex:0 0 28px; height:28px; border:1px solid rgba(255,210,191,.7); border-radius:50%; background:url("./assets/astral-guidance.jpg") center/180% no-repeat; }.chat-demo article p b { color:#fff8ef; }.trust-grid article { padding:20px 5px 6px; border-top:1px solid rgba(218,190,218,.28); }.trust-grid article::before { content:""; width:38px; height:2px; margin-bottom:16px; display:block; background:linear-gradient(90deg,#f4bda8,#a989ed); }.trust-grid i { display:none; }.trust-grid article div { display:block; }
.ritual-brand span { display:none; }.free-pill::before { content:""; width:7px; height:7px; display:block; border-radius:50%; background:radial-gradient(circle,#fff7d7 0 22%,#d6abff 28% 70%,transparent 72%); box-shadow:0 0 12px #d6abff; }.hero-down { font-size:0; width:15px; height:15px; border-right:2px solid white; border-bottom:2px solid white; transform:translateX(-50%) rotate(45deg); }.chat-input b { float:right; color:#ffd2dc; font-size:15px; }.ritual-footer .ritual-brand { grid-row:span 2; }
@media (max-width:800px) {
  .landing-hero { padding-top:37px; }
  .hero-copy h1 { margin-top:14px; margin-bottom:15px; }
  .birth-stage { display:flex; flex-direction:column; margin-top:20px; gap:10px; }
  .birth-stage .birth-card { order:2; min-height:0; margin:0; }
  .live-chart-card { order:1; min-height:0; display:grid; grid-template-columns:126px 1fr; gap:8px 16px; align-items:center; text-align:left; padding:15px 17px; }.live-kicker,.live-disclosure { grid-column:1/-1; }.live-kicker { margin:0; }.live-wheel { width:118px; margin:0; }.live-planet { transform:rotate(var(--planet-angle)) translateY(-45px) rotate(calc(var(--planet-angle) * -1)); width:16px; height:16px; font-size:13px; }.live-core { width:23px; height:23px; }.live-disclosure { display:none; margin:0; }
  .birth-stage .birth-card { padding:15px 16px 31px; gap:11px; }.birth-stage .birth-card label { gap:6px; }.birth-stage .birth-card input,.birth-stage .birth-card select { height:48px; }.birth-stage .birth-card button { height:49px; margin-top:0; }.birth-stage .form-privacy { bottom:8px; font-size:9px; }
  .language-control > button { display:none; }.language-menu,.language-menu[hidden] { position:static; display:flex!important; width:auto; gap:2px; padding:2px; border-radius:16px; background:rgba(18,29,76,.72); box-shadow:none; }.language-menu button { width:35px; padding:7px 0; border-radius:13px; text-align:center; font-size:0; }.language-menu button::after { content:attr(data-short); color:#dbd5ed; font:700 10px Inter,sans-serif; letter-spacing:.4px; }.language-menu button.is-active { background:linear-gradient(100deg,rgba(235,168,200,.46),rgba(153,131,227,.55)); }.language-menu button.is-active::after { color:#fff; }
  .ritual-steps { grid-template-columns:1fr; gap:30px; max-width:400px; margin:auto; }.ritual-steps article { padding:0; }.guidance-intro { grid-template-columns:110px 1fr; gap:16px; }.guidance-intro > img { width:110px; }.trust-grid article { padding-top:15px; }
}
@media (max-width:420px) {
  .hero-copy h1 { font-size:48px; line-height:.9; letter-spacing:-1.8px; }.hero-copy > p { margin-bottom:13px; }.free-pill { padding:8px 13px; }
  /* Native date/time controls reserve their own affordance on narrow iPhones.
     A single column is calmer and prevents their controls from colliding. */
  .birth-stage .birth-card { grid-template-columns:minmax(0,1fr); }.birth-stage .birth-card label,.birth-stage .birth-card .place-field,.birth-stage .birth-card .zone-field,.birth-stage .birth-card button { grid-column:1/-1; }.birth-stage .birth-card label { min-width:0; }.birth-stage .birth-card input,.birth-stage .birth-card select { padding-left:12px; padding-right:12px; font-size:14px; }
  .live-chart-card { grid-template-columns:104px 1fr; padding:13px 14px; }.live-wheel { width:100px; }.live-planet { transform:rotate(var(--planet-angle)) translateY(-37px) rotate(calc(var(--planet-angle) * -1)); width:14px; height:14px; font-size:11px; }.live-chart-copy b { font-size:12px; }.live-chart-copy p { font-size:10px; line-height:1.36; }.live-kicker { grid-column:1/-1; font-size:8px; }
  .guidance-intro { grid-template-columns:1fr; }.guidance-intro > img { width:100%; aspect-ratio:2.1; }.ritual-footer .ritual-brand { grid-row:auto; }
}

/* The AI reading is the first guided product moment after the chart. */
.ai-reading { margin-top:22px; padding:28px 30px 24px; border:1px solid rgba(237,208,255,.52); border-radius:18px; background:linear-gradient(135deg,rgba(45,38,105,.82),rgba(12,20,58,.9)); box-shadow:0 18px 45px rgba(0,0,0,.18),inset 0 1px rgba(255,255,255,.08); }
.ai-reading-intro { max-width:640px; }.ai-reading-intro .section-label { margin-bottom:8px; }.ai-reading h3 { margin:0 0 8px; color:#fff9f0; font:500 30px/1 "Cormorant Garamond",serif; }.ai-reading-intro > p:last-child { margin:0; color:#d0c9dc; font-size:13px; line-height:1.5; }
.ai-reading-button { display:flex; align-items:center; justify-content:space-between; width:100%; max-width:420px; margin-top:20px; color:#2d2352; background:linear-gradient(110deg,#f3c2b1,#e9b4e1); border-radius:12px; }.ai-reading-button:hover { background:linear-gradient(110deg,#ffd1bd,#f1c4e9); }.ai-reading-button:disabled { cursor:wait; opacity:.72; transform:none; }.ai-reading-button.is-loading .ai-button-arrow { animation:ai-pulse 1s ease-in-out infinite; }.ai-button-arrow { font-size:20px; }
.ai-reading-status { margin:13px 0 0; color:#f4d6d9; font-size:12px; line-height:1.45; }.ai-reading-status.is-error { color:#ffc5b8; }
.ai-reading-output { margin-top:23px; padding-top:22px; border-top:1px solid rgba(237,208,255,.25); }.ai-lead { display:flex; gap:12px; align-items:flex-start; }.ai-spark { display:grid; place-items:center; flex:0 0 28px; width:28px; height:28px; color:#302455; border-radius:50%; background:#f5c4bd; }.ai-reading-output h4 { margin:0 0 7px; color:#fff8ef; font:600 18px/1.05 "Cormorant Garamond",serif; }.ai-reading-output p { margin:0; color:#d7d0df; font-size:13px; line-height:1.55; }.ai-sections { display:grid; grid-template-columns:repeat(3,1fr); gap:12px; margin-top:22px; }.ai-sections article,.ai-reflection { padding:14px; border:1px solid rgba(237,208,255,.23); border-radius:11px; background:rgba(20,25,72,.48); }.ai-sections h4 { color:#f3c5bd; font:700 10px/1.2 Inter,sans-serif; letter-spacing:.07em; text-transform:uppercase; }.ai-reflection { margin-top:12px; }.ai-reflection h4 { color:#f3c5bd; font:700 10px/1.2 Inter,sans-serif; letter-spacing:.07em; text-transform:uppercase; }.ai-disclaimer { margin:20px 0 0; color:#aaa7bf; font-size:10px; line-height:1.5; }.ai-next { margin-top:9px; color:#c9c1d4; font-size:11px; line-height:1.45; }
.ai-chat { margin-top:24px; padding-top:22px; border-top:1px solid rgba(237,208,255,.2); }.ai-chat-heading { display:flex; align-items:flex-start; justify-content:space-between; gap:14px; }.ai-chat-heading .section-label { margin:0 0 7px; }.ai-chat-heading h4 { margin:0; }.ai-chat-live { flex:0 0 auto; padding:6px 9px; border:1px solid rgba(197,218,183,.35); border-radius:20px; color:#d9eabf; font:700 9px Inter,sans-serif; letter-spacing:.08em; text-transform:uppercase; }.ai-chat-help { max-width:650px; margin-top:8px!important; color:#c8c2d3!important; }.ai-chart-context { display:flex; flex-direction:column; gap:3px; max-width:340px; margin-top:17px; padding:12px 14px; border-left:2px solid #efb8b2; background:rgba(17,23,66,.52); }.ai-chart-context .section-label { margin:0 0 2px; color:#f0c1b8; font-size:9px; }.ai-chart-context b { color:#fff4eb; font:600 18px/1.05 "Cormorant Garamond",serif; }.ai-chart-context span { color:#c6bed1; font-size:11px; }.ai-question-chips { display:flex; flex-wrap:wrap; gap:7px; margin-top:17px; }.ai-chip { width:auto; padding:8px 11px; border:1px solid rgba(239,194,188,.38); border-radius:20px; color:#eee7f2; background:rgba(34,31,89,.58); font-size:11px; }.ai-chip:hover { transform:none; border-color:rgba(248,206,192,.8); background:rgba(70,48,105,.8); }.ai-question-form { margin-top:12px; }.ai-question-form textarea { display:block; width:100%; resize:vertical; min-height:72px; padding:12px 13px; border:1px solid rgba(237,208,255,.32); border-radius:10px; color:#fff5ed; background:rgba(12,18,54,.74); font:13px/1.5 Inter,sans-serif; }.ai-question-form textarea:focus { border-color:#edb5ba; outline:2px solid rgba(237,181,186,.16); }.ai-question-actions { display:flex; align-items:center; justify-content:space-between; gap:12px; margin-top:8px; color:#a9a3bb; font-size:10px; }.ai-question-actions button { display:flex; align-items:center; justify-content:space-between; gap:28px; width:auto; min-width:148px; margin-left:auto; padding:11px 13px; border-radius:9px; font-size:12px; }.ai-question-actions button:disabled { cursor:wait; opacity:.6; transform:none; }.ai-question-history { display:grid; gap:10px; margin-top:17px; }.ai-question-entry { padding:13px 14px; border-radius:10px; background:rgba(34,31,89,.42); }.ai-question-entry p { margin:0 0 8px; }.ai-question-entry .ai-question-text { color:#f3c5bd; font-size:12px; }.ai-question-entry .ai-answer-text { color:#e0d9e6; }.ai-question-entry small { display:block; color:#aaa4ba; font-size:11px; line-height:1.45; }.ai-local-storage { display:flex; align-items:center; justify-content:space-between; gap:15px; margin-top:17px; padding-top:13px; border-top:1px solid rgba(237,208,255,.16); color:#aaa6b9; font-size:10px; line-height:1.45; }.ai-clear { width:auto; flex:0 0 auto; padding:7px 10px; border:1px solid rgba(237,208,255,.32); border-radius:8px; color:#ddd5e3; background:transparent; font-size:10px; }.ai-clear:hover { transform:none; background:rgba(41,35,94,.68); }.visually-hidden { position:absolute!important; width:1px!important; height:1px!important; padding:0!important; margin:-1px!important; overflow:hidden!important; clip:rect(0,0,0,0)!important; white-space:nowrap!important; border:0!important; }
@keyframes ai-pulse { 50% { transform:translateX(4px); opacity:.5; } }
@media (max-width:800px) { .ai-reading { padding:23px 18px 20px; }.ai-reading h3 { font-size:27px; }.ai-sections { grid-template-columns:1fr; gap:8px; }.ai-sections article { padding:12px; }.ai-reading-button { max-width:none; }.ai-chat-heading { flex-direction:column; gap:8px; }.ai-chat-live { align-self:flex-start; }.ai-local-storage { align-items:flex-start; flex-direction:column; gap:9px; }.ai-clear { width:auto; margin-left:0; } }

/* Tarot MVP surface: question -> three cards -> grounded AI reading. */
.tarot-page { position:relative; min-height:100vh; max-width:1160px; margin:0 auto; padding:0 30px; overflow:hidden; }.tarot-page .ritual-nav { position:relative; z-index:3; }.tarot-page .nav-actions { display:flex; align-items:center; gap:24px; }.tarot-page .nav-actions > a { color:#d8d0e1; font-size:12px; text-decoration:none; }.tarot-page .nav-actions > a:hover { color:#fff; }.tarot-hero { position:relative; z-index:1; display:grid; grid-template-columns:minmax(0,1fr) minmax(390px,.9fr); align-items:center; gap:65px; min-height:670px; padding:85px 4px 90px; }.tarot-hero-copy h1 { margin:0; color:#fff8ef; font:500 clamp(54px,7vw,86px)/.87 "Cormorant Garamond",serif; letter-spacing:-.06em; }.tarot-hero-copy h1 em { color:#f0b5b1; font-style:italic; }.tarot-hero-copy > p:not(.section-label) { max-width:485px; margin:27px 0 22px; color:#cbc4d2; font-size:17px; line-height:1.55; }.tarot-form-wrap { display:grid; grid-template-columns:minmax(0,1fr) 88px; gap:18px; align-items:center; }.tarot-form { position:relative; z-index:2; padding:27px 25px 37px; border:1px solid rgba(235,207,255,.42); border-radius:17px; background:linear-gradient(145deg,rgba(41,38,105,.88),rgba(10,19,57,.92)); box-shadow:0 25px 70px rgba(0,0,0,.28),inset 0 1px rgba(255,255,255,.1); }.tarot-form .form-heading { display:flex; gap:13px; align-items:flex-start; padding-bottom:20px; margin-bottom:17px; border-bottom:1px solid rgba(235,207,255,.2); }.tarot-form .form-number { color:#f1b7b0; font:700 11px Inter,sans-serif; }.tarot-form .form-heading p { margin:0 0 5px; color:#fff4ec; font:600 22px/1 "Cormorant Garamond",serif; }.tarot-form .form-heading small { color:#bdb6ca; font-size:11px; line-height:1.35; }.tarot-form label { display:block; margin:15px 0; }.tarot-form label > span { display:block; margin-bottom:7px; color:#d8d1e0; font-size:10px; font-weight:700; letter-spacing:.1em; }.tarot-form textarea,.tarot-form select { display:block; width:100%; min-width:0; border:1px solid rgba(238,213,255,.35); border-radius:9px; color:#fff5ed; background:rgba(8,15,49,.7); font:14px/1.5 Inter,sans-serif; outline:0; }.tarot-form textarea { resize:vertical; min-height:108px; padding:11px 12px; }.tarot-form select { height:46px; padding:0 11px; }.tarot-form textarea:focus,.tarot-form select:focus { border-color:#efb9b3; box-shadow:0 0 0 3px rgba(239,185,179,.12); }.question-count { margin:-8px 0 10px; color:#9894ad; font-size:10px; text-align:right; }.tarot-form button,.follow-up-actions button { display:flex; align-items:center; justify-content:space-between; gap:22px; width:100%; border-radius:9px; color:#2b2353; background:linear-gradient(110deg,#f2bcae,#d9b5ed); }.tarot-form button:hover,.follow-up-actions button:hover { background:linear-gradient(110deg,#ffd0ba,#edc9fa); }.tarot-form button:disabled,.follow-up-actions button:disabled { cursor:wait; opacity:.6; transform:none; }.tarot-form .form-privacy { position:absolute; right:25px; bottom:11px; left:25px; margin:0; color:#9d99ae; font-size:9px; line-height:1.3; }.tarot-form-art { position:relative; width:88px; height:235px; transform:rotate(5deg); }.art-card { position:absolute; width:95px; height:150px; border:1px solid rgba(247,211,204,.7); border-radius:9px; display:grid; place-items:center; color:#f6c8be; font:42px "Cormorant Garamond",serif; box-shadow:0 16px 36px rgba(0,0,0,.25); }.art-card-back { top:37px; left:-17px; transform:rotate(-18deg); background:repeating-linear-gradient(135deg,rgba(109,77,161,.8) 0 4px,rgba(32,31,85,.9) 4px 8px); }.art-card-front { top:3px; left:-1px; transform:rotate(1deg); background:radial-gradient(circle at 50% 35%,rgba(247,203,178,.74),transparent 21%),linear-gradient(160deg,#413e94,#171c55); }.art-card-side { top:59px; left:6px; transform:rotate(21deg); background:radial-gradient(circle at 50% 34%,rgba(216,174,243,.75),transparent 19%),linear-gradient(160deg,#302b79,#171744); }.tarot-result { position:relative; z-index:2; padding:56px 0 75px; border-top:1px solid rgba(229,208,244,.18); }.tarot-result[hidden] { display:none; }.tarot-result .result-head { align-items:flex-end; margin-bottom:25px; }.tarot-result h2 { max-width:760px; margin:0; color:#fff8ef; font:500 clamp(38px,5vw,64px)/.9 "Cormorant Garamond",serif; letter-spacing:-.05em; }.result-question { max-width:690px; margin:14px 0 0; color:#c7bfd2; font-size:14px; line-height:1.5; }.ghost { width:auto; padding:10px 14px; border:1px solid rgba(232,207,247,.35); border-radius:20px; color:#eee8f1; background:transparent; font-size:11px; }.ghost:hover { transform:none; background:rgba(40,32,85,.55); }.draw-status { margin:12px 0; color:#f1c3bb; font-size:12px; line-height:1.45; }.draw-status.is-error { color:#ffb9b3; }.tarot-cards { display:grid; grid-template-columns:repeat(3,1fr); gap:16px; margin:25px 0 28px; }.tarot-card-wrap { perspective:900px; }.tarot-card { min-height:275px; display:flex; flex-direction:column; align-items:center; justify-content:center; padding:24px 18px; text-align:center; border:1px solid rgba(249,213,207,.7); border-radius:13px; background:radial-gradient(circle at 50% 17%,rgba(250,203,177,.34),transparent 22%),linear-gradient(155deg,#3e377d,#141a52 73%,#141232); box-shadow:0 22px 44px rgba(0,0,0,.25),inset 0 1px rgba(255,255,255,.13); }.tarot-card.revealed { animation:card-reveal .7s var(--card-delay) both cubic-bezier(.16,1,.3,1); }.tarot-card-marker { display:grid; place-items:center; width:40px; height:40px; margin-bottom:13px; border:1px solid rgba(250,214,201,.5); border-radius:50%; color:#ffd5c8; font-size:22px; }.tarot-card small { margin-bottom:11px; color:#edc8c4; font-size:10px; font-weight:700; letter-spacing:.08em; text-transform:uppercase; }.tarot-card-arcana { color:#aaa2c5; font-size:9px; letter-spacing:.14em; text-transform:uppercase; }.tarot-card h3 { margin:9px 0 8px; color:#fff8ef; font:500 29px/1 "Cormorant Garamond",serif; }.tarot-card p { max-width:210px; margin:0; color:#c9c2d5; font-size:11px; line-height:1.45; }.tarot-reading-panel,.follow-up-panel { padding:30px; border:1px solid rgba(235,207,255,.3); border-radius:16px; background:linear-gradient(145deg,rgba(35,34,91,.75),rgba(11,18,53,.82)); }.reading-intro { display:flex; gap:13px; align-items:flex-start; max-width:750px; }.ai-spark { display:grid; place-items:center; flex:0 0 28px; width:28px; height:28px; border-radius:50%; color:#302455; background:#f5c4bd; }.reading-intro h3 { margin:0 0 8px; color:#fff8ef; font:500 30px/1 "Cormorant Garamond",serif; }.reading-intro p:last-child { margin:0; color:#d4ccdc; font-size:14px; line-height:1.55; }.card-insights { display:grid; grid-template-columns:repeat(3,1fr); gap:12px; margin-top:26px; }.card-insights article,.reading-synthesis,.reading-reflection { padding:16px; border:1px solid rgba(235,207,255,.22); border-radius:11px; background:rgba(13,21,62,.45); }.card-insights .section-label,.reading-synthesis .section-label,.reading-reflection .section-label { margin:0 0 8px; color:#efb8b1; font-size:9px; }.card-insights h4 { margin:0 0 7px; color:#fff4eb; font:500 22px/1 "Cormorant Garamond",serif; }.card-insights article > p:last-child,.reading-synthesis p:last-child,.reading-reflection p:last-child { margin:0; color:#d2cad9; font-size:13px; line-height:1.55; }.reading-synthesis { margin-top:12px; }.reading-reflection { margin-top:12px; border-color:rgba(239,184,177,.32); }.follow-up-panel { margin-top:22px; }.follow-up-heading { display:flex; align-items:flex-start; justify-content:space-between; gap:15px; }.follow-up-heading .section-label { margin:0 0 7px; }.follow-up-heading h3 { margin:0; color:#fff8ef; font:500 29px/1 "Cormorant Garamond",serif; }.ai-chat-live { flex:0 0 auto; padding:6px 9px; border:1px solid rgba(197,218,183,.35); border-radius:20px; color:#d9eabf; font:700 9px Inter,sans-serif; letter-spacing:.08em; text-transform:uppercase; }.follow-up-panel > p { max-width:670px; margin:9px 0 0; color:#c9c2d3; font-size:13px; line-height:1.5; }.quick-questions { display:flex; flex-wrap:wrap; gap:7px; margin-top:17px; }.quick-question { width:auto; padding:8px 11px; border:1px solid rgba(239,194,188,.38); border-radius:20px; color:#eee7f2; background:rgba(34,31,89,.58); font-size:11px; }.quick-question:hover { transform:none; border-color:rgba(248,206,192,.8); background:rgba(70,48,105,.8); }.follow-up-form { margin-top:13px; }.follow-up-form textarea { display:block; width:100%; min-height:76px; padding:12px; resize:vertical; border:1px solid rgba(238,213,255,.35); border-radius:9px; color:#fff5ed; background:rgba(8,15,49,.7); font:13px/1.5 Inter,sans-serif; outline:0; }.follow-up-form textarea:focus { border-color:#efb9b3; box-shadow:0 0 0 3px rgba(239,185,179,.12); }.follow-up-actions { display:flex; align-items:center; justify-content:space-between; gap:12px; margin-top:8px; color:#9894ad; font-size:10px; }.follow-up-actions button { width:auto; min-width:180px; margin-left:auto; padding:11px 13px; font-size:12px; }.chat-history { display:grid; gap:10px; margin-top:18px; }.chat-entry { padding:13px 14px; border-radius:10px; background:rgba(35,31,89,.48); }.chat-entry p { margin:0 0 8px; color:#dbd4e3; font-size:13px; line-height:1.5; }.chat-entry .chat-question { color:#f0bdb6; }.chat-entry small { color:#aaa3ba; font-size:11px; line-height:1.45; }.tarot-disclaimer { max-width:750px; margin:21px 0 0; color:#aaa6b9; font-size:10px; line-height:1.5; }.local-history-note { display:flex; align-items:center; justify-content:space-between; gap:15px; margin-top:14px; padding-top:13px; border-top:1px solid rgba(235,207,255,.15); color:#aaa6b9; font-size:10px; line-height:1.45; }.ai-clear { width:auto; flex:0 0 auto; padding:7px 10px; border:1px solid rgba(237,208,255,.32); border-radius:8px; color:#ddd5e3; background:transparent; font-size:10px; }.ai-clear:hover { transform:none; background:rgba(41,35,94,.68); }.tarot-steps { display:grid; grid-template-columns:repeat(3,1fr); gap:18px; max-width:980px; margin:0 auto; padding:35px 0 0; }.tarot-steps article { padding:22px 18px; border:1px solid rgba(215,194,248,.28); border-radius:14px; background:linear-gradient(135deg,rgba(39,46,103,.58),rgba(14,23,62,.48)); }.tarot-steps article > span { color:#f1b7b0; font-size:11px; font-weight:700; }.tarot-steps h3 { margin:23px 0 8px; color:#fff4ec; font:500 27px/1 "Cormorant Garamond",serif; }.tarot-steps p { margin:0; color:#bcb6c9; font-size:12px; line-height:1.5; }.visually-hidden { position:absolute!important; width:1px!important; height:1px!important; padding:0!important; margin:-1px!important; overflow:hidden!important; clip:rect(0,0,0,0)!important; white-space:nowrap!important; border:0!important; }
@keyframes card-reveal { from { opacity:0; transform:translateY(25px) rotateX(15deg); } to { opacity:1; transform:translateY(0) rotateX(0); } }
@media (prefers-reduced-motion:reduce) { .tarot-card.revealed { animation:none; } }
@media (max-width:800px) { .tarot-page { padding:0 17px; }.tarot-page .ritual-nav { min-height:50px; }.tarot-page .nav-actions > a { display:none; }.tarot-hero { grid-template-columns:1fr; gap:28px; min-height:0; padding:58px 0 55px; }.tarot-hero-copy h1 { font-size:57px; }.tarot-hero-copy > p:not(.section-label) { font-size:15px; }.tarot-form-wrap { grid-template-columns:minmax(0,1fr) 68px; gap:9px; }.tarot-form-art { transform:scale(.75) rotate(5deg); transform-origin:center left; }.tarot-result { padding:40px 0 58px; }.tarot-result .result-head { flex-direction:column; align-items:flex-start; gap:17px; }.tarot-result h2 { font-size:48px; }.tarot-result .ghost { width:auto; }.tarot-cards { gap:9px; }.tarot-card { min-height:225px; padding:17px 9px; }.tarot-card h3 { font-size:22px; }.tarot-card p { font-size:10px; }.tarot-reading-panel,.follow-up-panel { padding:22px 17px; }.card-insights { grid-template-columns:1fr; gap:8px; }.card-insights article { padding:13px; }.tarot-steps { grid-template-columns:1fr; gap:10px; padding-top:25px; }.local-history-note { align-items:flex-start; flex-direction:column; gap:9px; } }
@media (max-width:480px) { .tarot-hero-copy h1 { font-size:48px; }.tarot-form-wrap { grid-template-columns:1fr; }.tarot-form-art { display:none; }.tarot-cards { grid-template-columns:1fr; gap:12px; }.tarot-card { min-height:205px; }.follow-up-heading { flex-direction:column; gap:9px; }.follow-up-actions { align-items:stretch; flex-direction:column; }.follow-up-actions button { width:100%; margin-left:0; }.quick-questions { display:grid; grid-template-columns:1fr 1fr; }.quick-question { width:100%; }.quick-question:last-child { grid-column:1/-1; } }

/* The revealed cards use the verified local public-domain RWS scans. */
.tarot-card { overflow:hidden; }
.tarot-card-image { display:block; width:100%; max-width:128px; aspect-ratio:2 / 3; object-fit:cover; margin:0 auto 14px; border:1px solid rgba(249,213,207,.65); border-radius:5px; box-shadow:0 10px 22px rgba(0,0,0,.28); }
@media (max-width:800px) { .tarot-card-image { max-width:105px; margin-bottom:10px; } }

/* Defensive iPhone form geometry. WebKit date/time controls have intrinsic
   affordances, so both the grid items and their controls must be allowed to
   shrink. This deliberately duplicates the narrow layout rules above: it is
   the last rule in the cascade and remains safe if an earlier stylesheet is
   cached or extended. */
@media (max-width: 420px) {
  .birth-stage,
  .birth-stage .birth-card,
  .birth-stage .birth-card label,
  .birth-stage .birth-card input,
  .birth-stage .birth-card select {
    min-width: 0 !important;
    max-width: 100% !important;
    box-sizing: border-box !important;
  }
  .birth-stage .birth-card {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) !important;
    inline-size: 100% !important;
    width: 100% !important;
    overflow: clip;
  }
  .birth-stage .birth-card > label,
  .birth-stage .birth-card > .place-field,
  .birth-stage .birth-card > .zone-field,
  .birth-stage .birth-card > button,
  .birth-stage .birth-card > .form-privacy {
    grid-column: 1 / -1 !important;
    inline-size: 100% !important;
    width: 100% !important;
  }
  .birth-stage .birth-card input[type="date"],
  .birth-stage .birth-card input[type="time"] {
    display: block;
    inline-size: 100% !important;
    width: 100% !important;
    max-inline-size: 100% !important;
    min-inline-size: 0 !important;
    -webkit-appearance: none;
    appearance: none;
  }
}

/* Product markers replace Unicode pictograms: each planet has a tactile, named material token. */
.planet-key { gap:10px; }
.planet-key .planet-token { display:flex; align-items:center; gap:8px; color:#e9e4ef; }
.planet-key .planet-token::before { content:""; width:16px; height:16px; flex:0 0 16px; border-radius:50%; border:1px solid rgba(255,238,215,.75); box-shadow:inset 2px 2px 4px rgba(255,255,255,.22),0 0 13px rgba(189,148,240,.32); background:radial-gradient(circle at 32% 27%,#fff7dc 0 10%,#e9aa67 11% 36%,#6a3e72 60%,#242455 100%); }
.planet-key .moon::before { background:radial-gradient(circle at 32% 27%,#fff 0 9%,#e7e4fa 10% 35%,#8375c6 40% 65%,#2c315a 100%); }.planet-key .mercury::before { background:radial-gradient(circle at 30% 25%,#fff3e0 0 8%,#bda5aa 11% 35%,#5d586f 68%); }.planet-key .venus::before { background:radial-gradient(circle at 30% 25%,#ffe9df 0 8%,#de8aa5 12% 40%,#714264 70%); }.planet-key .mars::before { background:radial-gradient(circle at 30% 25%,#ffe4ca 0 7%,#dc765d 10% 43%,#71374b 76%); }.planet-key .jupiter::before { background:radial-gradient(circle at 31% 24%,#fff1d8 0 8%,#d4a677 10% 32%,#b77366 35% 48%,#68507d 73%); }.planet-key .saturn::before { background:radial-gradient(ellipse at 48% 52%,#d5b78b 0 27%,#806a92 29% 41%,#ded2b7 43% 49%,#625476 51% 75%); }
.planet { width:14px; height:14px; border:1px solid rgba(255,239,214,.85); background:radial-gradient(circle at 35% 29%,#fff3df 0 12%,#ce9d75 15% 48%,#5c4678 78%); box-shadow:0 0 12px rgba(209,161,231,.55); }.planet[data-key="Moon"]{background:radial-gradient(circle at 34% 27%,#fff 0 10%,#d5c8f5 12% 48%,#5f5fa7 80%)}.planet[data-key="Venus"]{background:radial-gradient(circle at 34% 27%,#ffe8df 0 10%,#db82a1 12% 48%,#6c4264 80%)}.planet[data-key="Mars"]{background:radial-gradient(circle at 34% 27%,#ffe4ca 0 10%,#da725b 12% 48%,#6d3449 80%)}
.live-planet { font-size:0; }.live-planet::after { content:""; width:8px; height:8px; border-radius:50%; background:#ffe6b9; box-shadow:0 0 8px rgba(255,232,193,.9); }.live-planet[data-key="Moon"]::after { background:#e6ddff; }.live-planet[data-key="Mercury"]::after { background:#d9e4f5; }.live-planet[data-key="Venus"]::after { background:#ffd4e2; }.live-planet[data-key="Mars"]::after { background:#ffb997; }.live-planet[data-key="Jupiter"]::after { background:#f1c891; }.live-planet[data-key="Saturn"]::after { background:#b7d7cc; }
.plan-card li::before { content:""; width:7px; height:7px; margin:0 10px 1px 1px; border-radius:50%; background:linear-gradient(135deg,#f3c3af,#9e88e7); box-shadow:0 0 9px rgba(194,149,244,.5); }

/* Compact explanatory flow: data → chart → return. It is product information, not decorative art. */
.ritual-steps { max-width:980px; margin:0 auto; grid-template-columns:repeat(3,1fr); gap:16px; align-items:stretch; }
.ritual-steps .flow-step { display:grid; grid-template-columns:104px 1fr; gap:16px; align-items:center; padding:16px; border:1px solid rgba(215,194,248,.32); border-radius:15px; background:linear-gradient(135deg,rgba(39,46,103,.66),rgba(14,23,62,.54)); text-align:left; }
.ritual-steps .flow-step > div:last-child { min-width:0; }.ritual-steps .flow-step > div:last-child > span { display:inline-block; margin-bottom:7px; color:#f3c5bd; font-size:10px; font-weight:700; letter-spacing:.8px; }.ritual-steps .flow-step h3 { margin:0 0 6px; font-size:14px; }.ritual-steps .flow-step p { max-width:none; margin:0; font-size:11px; }
.step-visual { width:96px; height:76px; position:relative; overflow:hidden; border-radius:11px; background:linear-gradient(145deg,#222f71,#101942); }
.input-step .step-visual { padding:14px 12px; display:grid; gap:7px; }.input-step .step-visual i { display:block; border-radius:5px; background:linear-gradient(90deg,rgba(255,231,206,.78),rgba(179,159,239,.55)); }.input-step .step-visual i:nth-child(1){width:72%;height:8px}.input-step .step-visual i:nth-child(2){width:100%;height:18px;border:1px solid rgba(243,217,236,.45);background:rgba(24,32,79,.55)}.input-step .step-visual i:nth-child(3){width:56%;height:7px;background:rgba(235,174,214,.58)}
.chart-step .step-visual { border-radius:50%; width:76px; height:76px; margin-left:10px; border:1px solid rgba(245,216,206,.73); background:radial-gradient(circle,#f9c4b7 0 5%,#202966 7% 16%,transparent 17%),repeating-conic-gradient(rgba(238,216,244,.45) 0 1deg,transparent 1deg 30deg),#10183e; }.chart-step .step-visual i { position:absolute; width:8px; height:8px; border-radius:50%; background:#f0bce9; box-shadow:0 0 10px #d890e7; }.chart-step .step-visual i:nth-child(1){top:16px;left:34px}.chart-step .step-visual i:nth-child(2){top:38px;right:12px;background:#ffd2aa}.chart-step .step-visual i:nth-child(3){bottom:13px;left:19px;background:#adbcff}.chart-step .step-visual i:nth-child(4){bottom:9px;right:23px;background:#f7a5b4}
.ritual-step .step-visual { padding:13px; display:grid; align-content:center; gap:7px; }.ritual-step .step-visual::before { content:"TODAY"; color:#f3d1df; font:700 8px Inter,sans-serif; letter-spacing:.9px; }.ritual-step .step-visual i { display:block; height:6px; border-radius:4px; background:rgba(229,215,248,.58); }.ritual-step .step-visual i:nth-child(1){width:84%;background:linear-gradient(90deg,#efb6a9,#a58aea)}.ritual-step .step-visual i:nth-child(2){width:63%}.ritual-step .step-visual i:nth-child(3){width:42%}
@media (max-width:800px) { .ritual-steps { gap:10px; }.ritual-steps .flow-step { grid-template-columns:82px 1fr; padding:13px; }.step-visual { width:76px; height:62px; }.chart-step .step-visual { width:62px; height:62px; margin-left:7px; }.chart-step .step-visual i:nth-child(1){top:12px;left:27px}.chart-step .step-visual i:nth-child(2){top:31px;right:9px}.chart-step .step-visual i:nth-child(3){bottom:9px;left:15px}.chart-step .step-visual i:nth-child(4){bottom:7px;right:18px} }

/* V-01C visual integration: the guide dialogue leads into the real form. */
.tarot-page::before { content:""; position:absolute; inset:0; z-index:0; pointer-events:none; opacity:.18; background-image:url("./assets/ui/natal-grain-v1.jpg"); background-size:520px; mix-blend-mode:screen; }
.hero-halo { position:absolute; z-index:0; top:180px; right:-150px; width:420px; height:420px; object-fit:contain; opacity:.13; filter:blur(.2px); pointer-events:none; }
.tarot-hero-copy, .tarot-form-wrap { position:relative; z-index:1; }
.tarot-hero-copy h1 { max-width:620px; }
.tarot-hero-copy > p:not(.section-label) { max-width:430px; }
.tarot-form { padding-top:22px; padding-bottom:24px; border-color:rgba(246,197,170,.58); background:linear-gradient(145deg,rgba(31,28,76,.9),rgba(8,15,49,.94)); box-shadow:0 28px 78px rgba(0,0,0,.36),inset 0 1px rgba(255,255,255,.12); }
.guide-message { position:relative; padding:18px 18px 17px; margin-bottom:21px; border:1px solid rgba(244,221,197,.42); border-radius:14px 14px 14px 5px; background:linear-gradient(135deg,rgba(253,236,214,.95),rgba(207,181,221,.88)); box-shadow:0 12px 35px rgba(0,0,0,.22); }
.guide-message::after { content:""; position:absolute; left:22px; bottom:-17px; width:1px; height:18px; background:linear-gradient(#f5b6a5,transparent); }
.guide-message-meta { display:flex; align-items:center; gap:7px; margin-bottom:8px; color:#35506a; font:700 10px/1 Inter,sans-serif; letter-spacing:.08em; text-transform:uppercase; }
.ai-guided-mark { display:grid; place-items:center; width:20px; height:20px; border:1px solid rgba(82,103,120,.55); border-radius:50%; color:#5e607f; font-size:11px; }
.guide-message p { margin:0; color:#2c2750; font:500 clamp(20px,2.15vw,28px)/1.08 "Cormorant Garamond",serif; }
.form-reflection-note { margin:9px 0 0; color:#c9b9d2; font-size:10px; line-height:1.35; text-align:center; }
.tarot-form .form-privacy { position:static; margin:10px 0 0; color:#9d99ae; font-size:9px; line-height:1.3; text-align:center; }
.tarot-form .form-heading { margin-bottom:14px; }
.tarot-form-wrap .tarot-form-art { z-index:2; }
@media (max-width:800px) {
  .hero-halo { top:250px; right:-155px; width:310px; height:310px; opacity:.1; }
  .tarot-hero-copy h1 { max-width:480px; }
  .guide-message { padding:16px 15px 15px; }
  .guide-message p { font-size:24px; }
}
@media (max-width:480px) {
  .hero-halo { top:410px; right:-110px; width:250px; height:250px; opacity:.09; }
  .guide-message p { font-size:25px; }
  .form-reflection-note { max-width:260px; margin-right:auto; margin-left:auto; }
}
@media (max-width:480px) {
  .tarot-hero { gap:18px; padding:30px 0 40px; }
  .tarot-hero-copy h1 { font-size:46px; line-height:.86; }
  .tarot-hero-copy > p:not(.section-label) { margin:12px 0; font-size:14px; line-height:1.42; }
  .free-pill { padding:7px 12px; font-size:11px; }
  .tarot-form { padding:15px 15px 18px; }
  .guide-message { padding:12px 13px; margin-bottom:15px; }
  .guide-message p { font-size:22px; }
  .tarot-form .form-heading { padding-bottom:12px; margin-bottom:10px; }
  .tarot-form label { margin:10px 0; }
  .tarot-form textarea { min-height:80px; }
}

.continue-conversation {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:22px;
  margin:16px 0 0 auto;
  padding:12px 15px;
  border:1px solid rgba(239,194,188,.56);
  border-radius:9px;
  color:#2b2353;
  background:linear-gradient(110deg,#f2bcae,#d9b5ed);
  font:600 12px Inter,sans-serif;
}
.continue-conversation:hover { background:linear-gradient(110deg,#ffd0ba,#edc9fa); }
@media (max-width:480px) { .continue-conversation { width:100%; } }

.deepening-offer { display:grid; grid-template-columns:minmax(0,1.05fr) minmax(0,1fr) auto; gap:22px; align-items:center; margin-top:18px; padding:24px 26px; border:1px solid rgba(242,195,183,.48); border-radius:16px; background:radial-gradient(circle at 87% 15%,rgba(225,176,234,.18),transparent 28%),linear-gradient(120deg,rgba(58,39,105,.88),rgba(18,25,70,.9)); box-shadow:inset 0 1px rgba(255,255,255,.08); }
.deepening-offer .section-label { margin:0 0 8px; color:#efb8b1; font-size:9px; }
.deepening-offer h3 { margin:0 0 8px; color:#fff8ef; font:500 31px/1 "Cormorant Garamond",serif; }
.deepening-copy > p:last-child { max-width:370px; margin:0; color:#d1c8da; font-size:13px; line-height:1.5; }
.deepening-list { display:grid; gap:8px; margin:0; padding:0; list-style:none; }
.deepening-list li { position:relative; padding-left:18px; color:#d9d1e0; font-size:12px; line-height:1.42; }
.deepening-list li::before { content:"✦"; position:absolute; left:0; color:#f3c1b6; }
.deepening-action { display:grid; gap:9px; justify-items:stretch; min-width:178px; }
.deepening-button { width:100%; padding:12px 14px; border:1px solid rgba(249,211,197,.72); border-radius:9px; color:#2c2454; background:linear-gradient(110deg,#f2bcae,#d9b5ed); font:600 12px Inter,sans-serif; }
.deepening-button:hover { background:linear-gradient(110deg,#ffd0ba,#edc9fa); }
.deepening-action small { max-width:185px; color:#bdb3c9; font-size:10px; line-height:1.35; text-align:center; }
.premium-dialog { width:min(520px,calc(100% - 32px)); padding:0; border:1px solid rgba(242,195,183,.55); border-radius:17px; color:#e8e0eb; background:linear-gradient(145deg,#302c75,#0c1649); box-shadow:0 26px 80px rgba(0,0,0,.52); }
.premium-dialog::backdrop { background:rgba(4,8,32,.72); backdrop-filter:blur(5px); }
.premium-dialog > div { padding:31px; }
.premium-dialog .section-label { margin:0 0 10px; color:#efb8b1; font-size:9px; }
.premium-dialog h2 { margin:0 0 13px; color:#fff8ef; font:500 38px/1 "Cormorant Garamond",serif; }
.premium-dialog p:not(.section-label) { margin:0 0 23px; color:#d5ccde; font-size:14px; line-height:1.58; }
.premium-dialog button { width:auto; padding:11px 14px; border:1px solid rgba(235,207,255,.38); border-radius:9px; color:#2b2353; background:linear-gradient(110deg,#f2bcae,#d9b5ed); font:600 12px Inter,sans-serif; }
.premium-dialog button:hover { background:linear-gradient(110deg,#ffd0ba,#edc9fa); }
@media (max-width:800px) { .deepening-offer { grid-template-columns:1fr; gap:16px; padding:22px 18px; }.deepening-action { justify-items:start; }.deepening-action small { max-width:360px; text-align:left; } }
@media (max-width:480px) { .deepening-offer h3 { font-size:28px; }.deepening-button { width:100%; }.deepening-action { width:100%; }.premium-dialog > div { padding:25px 20px; } }

/* The same-spread follow-up is a conversation surface, not a second form. */
.follow-up-panel { max-width:860px; margin-right:auto; margin-left:auto; }
.chat-history { gap:12px; max-height:540px; overflow:auto; padding-right:3px; }
.chat-entry { display:grid; gap:7px; padding:0; background:transparent; }
.chat-entry p { width:fit-content; max-width:min(78%,620px); margin:0; padding:11px 13px; border:1px solid rgba(235,207,255,.25); border-radius:14px 14px 14px 4px; color:#e8e1ec; background:rgba(13,21,62,.62); }
.chat-entry .chat-question { justify-self:end; border-color:rgba(241,185,178,.55); border-radius:14px 14px 4px 14px; color:#342752; background:linear-gradient(110deg,#f3c0b4,#d7b6ed); }
.chat-entry .chat-answer { justify-self:start; }
.chat-entry small { width:fit-content; max-width:min(78%,620px); padding:0 12px; color:#b6aebe; line-height:1.5; }
.follow-up-form { padding:12px; border:1px solid rgba(235,207,255,.24); border-radius:13px; background:rgba(8,15,49,.44); }
.follow-up-form textarea { border-color:rgba(238,213,255,.28); }
@media (max-width:480px) { .chat-entry p,.chat-entry small { max-width:92%; } .chat-history { max-height:460px; } }

/* A compact, deliberate Tarot deal followed by user-led card reveals. */
.tarot-cards { position:relative; align-items:stretch; }
.tarot-deck-source { position:absolute; z-index:4; top:50%; left:50%; display:grid; place-items:center; width:94px; height:142px; border:1px solid rgba(249,213,207,.74); border-radius:9px; color:#f6c8be; background:repeating-linear-gradient(135deg,rgba(121,84,173,.94) 0 4px,rgba(28,29,82,.96) 4px 8px); box-shadow:0 19px 38px rgba(0,0,0,.34); transform:translate(-50%,-50%) rotate(3deg); pointer-events:none; animation:deck-source-settle .88s ease-out both; }
.tarot-deck-source span { position:absolute; font:25px "Cormorant Garamond",serif; opacity:.7; }.tarot-deck-source span:nth-child(1) { transform:translateY(-33px); }.tarot-deck-source span:nth-child(3) { transform:translateY(33px); }
.tarot-card-wrap { min-width:0; perspective:1100px; }
.tarot-card-wrap.is-dealing { opacity:0; transform:translate(var(--deal-x),-44px) scale(.67) rotate(-4deg); animation:tarot-deal .64s var(--deal-delay) cubic-bezier(.18,.9,.27,1) forwards; }
.tarot-card { display:grid; width:100%; min-height:300px; padding:0; border:0; border-radius:13px; overflow:visible; color:inherit; background:transparent; cursor:pointer; text-align:center; transform-style:preserve-3d; transition:transform .62s cubic-bezier(.2,.78,.2,1), filter .2s ease; }
.tarot-card:not(:disabled):hover .tarot-card-face { filter:brightness(1.07); }.tarot-card:not(:disabled):focus-visible { outline:3px solid rgba(247,206,185,.95); outline-offset:5px; }.tarot-card:disabled { cursor:default; }
.tarot-card.is-anticipating { transform:translateY(-8px) scale(1.018); }
.tarot-card.is-flipped { transform:rotateY(180deg); }
.tarot-card-face { grid-area:1 / 1; display:flex; flex-direction:column; align-items:center; justify-content:center; min-width:0; min-height:300px; padding:22px 18px; border:1px solid rgba(249,213,207,.7); border-radius:13px; background:radial-gradient(circle at 50% 17%,rgba(250,203,177,.34),transparent 22%),linear-gradient(155deg,#3e377d,#141a52 73%,#141232); box-shadow:0 22px 44px rgba(0,0,0,.25),inset 0 1px rgba(255,255,255,.13); backface-visibility:hidden; -webkit-backface-visibility:hidden; }
.tarot-card-back { display:none; background:radial-gradient(circle at 50% 34%,rgba(245,195,177,.24),transparent 18%),repeating-linear-gradient(135deg,rgba(121,84,173,.92) 0 4px,rgba(28,29,82,.96) 4px 8px); }
.tarot-card-back-mark { display:grid; place-items:center; width:58px; height:58px; margin-bottom:18px; border:1px solid rgba(250,214,201,.58); border-radius:50%; color:#ffd5c8; font:32px "Cormorant Garamond",serif; }.tarot-card-back small { margin-bottom:17px; color:#f4d1c9; font:700 10px Inter,sans-serif; letter-spacing:.1em; text-transform:uppercase; }
.tarot-card-reveal { justify-content:flex-start; transform:none; background:radial-gradient(circle at 50% 17%,rgba(250,203,177,.26),transparent 22%),linear-gradient(155deg,#3e377d,#141a52 73%,#141232); }
.tarot-card-reveal .tarot-card-image { max-width:96px; margin-bottom:9px; }.tarot-card-reveal .tarot-card-marker { width:30px; height:30px; margin-bottom:8px; font-size:16px; }.tarot-card-reveal small { margin-bottom:7px; }.tarot-card-reveal h3 { margin:6px 0 9px; font-size:25px; }.tarot-card-highlight-label { margin-bottom:7px; color:#efb8b1; font:700 9px Inter,sans-serif; letter-spacing:.09em; text-transform:uppercase; }.tarot-card-highlight { max-width:255px; margin:0; color:#e1d9e6; font:12px/1.48 Inter,sans-serif; }
.tarot-card-action { margin-top:16px; color:#f5c9bd; font:700 10px Inter,sans-serif; letter-spacing:.055em; text-transform:uppercase; }
@keyframes tarot-deal { 0% { opacity:0; transform:translate(var(--deal-x),-44px) scale(.67) rotate(-4deg); } 72% { opacity:1; transform:translate(0,4px) scale(1.01) rotate(.5deg); } 100% { opacity:1; transform:translate(0) scale(1) rotate(0); } }
@keyframes deck-source-settle { 0% { opacity:0; transform:translate(-50%,-42%) scale(.76) rotate(-7deg); } 22%,62% { opacity:.95; } 100% { opacity:0; transform:translate(-50%,-58%) scale(.84) rotate(7deg); } }
@media (prefers-reduced-motion:reduce) { .tarot-card,.tarot-card-wrap,.tarot-deck-source { animation:none!important; transition:none!important; }.tarot-card-wrap.is-dealing { opacity:1; transform:none; }.tarot-deck-source { display:none; }.tarot-card.is-anticipating { transform:none; } }
@media (max-width:800px) { .tarot-card { min-height:286px; }.tarot-card-face { min-height:286px; }.tarot-card-wrap.is-dealing { --deal-x:0%!important; transform:translate(0,-34px) scale(.76) rotate(-3deg); }.tarot-card-reveal .tarot-card-image { max-width:88px; }.tarot-card-highlight { max-width:230px; font-size:11px; } }
@media (max-width:480px) { .tarot-card,.tarot-card-face { min-height:0; }.tarot-card-face { padding:22px 17px; }.tarot-card-wrap.is-dealing { transform:translate(0,-25px) scale(.84) rotate(-2deg); }.tarot-card-reveal .tarot-card-image { max-width:104px; }.tarot-card-highlight { max-width:290px; font-size:12px; }.tarot-card-action { margin-top:13px; } }

/* Services teaser on the tarot landing. */
.services-teaser { padding-top: 40px; }
.services-teaser-lede { max-width: 640px; margin: 18px auto 26px; text-align: center; color: #cfcadd; font-size: 14px; line-height: 1.6; }
.services-teaser-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(230px, 1fr)); gap: 14px; max-width: 1060px; margin: 0 auto; }
.services-teaser-grid a { display: block; padding: 18px 20px; border: 1px solid rgba(211, 194, 255, .34); border-radius: 14px; background: linear-gradient(140deg, rgba(35, 44, 104, .8), rgba(11, 19, 58, .85)); text-decoration: none; transition: transform .18s, border-color .18s; }
.services-teaser-grid a:hover { transform: translateY(-3px); border-color: rgba(240, 190, 255, .7); }
.services-teaser-grid b { display: block; margin-bottom: 7px; color: #fff7fe; font: 400 22px "Cormorant Garamond", serif; }
.services-teaser-grid span { color: #c6c1d8; font-size: 12px; line-height: 1.55; }
.services-teaser-link { display: block; margin: 24px auto 0; text-align: center; color: #d9b6ff; text-decoration: none; font-size: 14px; }
.services-teaser-link:hover { color: #fff; }

/* Theme and guidance-mode picker on the tarot form. */
.theme-picker { margin: 15px 0 4px; }
.picker-label { display: block; margin-bottom: 8px; color: #d6d0e4; font: 600 10px Inter, sans-serif; letter-spacing: .5px; }
.theme-chips { display: flex; flex-wrap: wrap; gap: 7px; }
.tarot-form .theme-chip, .theme-chip { width: auto; height: auto; padding: 8px 13px; border: 1px solid rgba(199, 177, 230, .5); border-radius: 15px; background: rgba(15, 23, 65, .45); color: #ded8ee; font: 500 12px Inter, sans-serif; cursor: pointer; box-shadow: none; }
.tarot-form .theme-chip.is-active, .theme-chip.is-active { border-color: #e9b1e2; background: linear-gradient(100deg, rgba(235, 168, 200, .4), rgba(153, 131, 227, .5)); color: #fff; }
.mode-note { margin: 8px 0 0; color: #b3aecb; font-size: 11px; line-height: 1.45; }
.question-help { margin: 10px 0 0; }
.question-help a { color: #d9b6ff; font-size: 12px; text-decoration: none; }
.question-help a:hover { color: #fff; }

/* Learn and questions pages. */
.doc-page { position: relative; max-width: 900px; margin: 0 auto; padding: 24px 28px 60px; }
.doc-page h1 { font: 400 clamp(38px, 5.4vw, 62px)/.96 "Cormorant Garamond", Georgia, serif; letter-spacing: -2px; margin: 20px 0 16px; color: #fffaff; }
.doc-page h2 { font: 400 30px/1.05 "Cormorant Garamond", serif; margin: 34px 0 12px; color: #fff7fe; }
.doc-page h3 { font: 400 22px "Cormorant Garamond", serif; margin: 22px 0 8px; color: #fff7fe; }
.doc-page p, .doc-page li { color: #d5d1e4; font-size: 15px; line-height: 1.65; }
.doc-page ul { padding-left: 20px; }
.doc-lede { font-size: 17px; color: #e2dded; max-width: 62ch; }
.doc-block { margin: 18px 0; padding: 20px 24px; border: 1px solid rgba(211, 194, 255, .3); border-radius: 15px; background: rgba(9, 19, 57, .6); }
.doc-block p:last-child { margin-bottom: 0; }
.doc-cta { display: inline-flex; align-items: center; height: 48px; margin-top: 22px; padding: 0 24px; border-radius: 11px; color: #171530; background: linear-gradient(100deg, #ffb89d, #e9a4ec 95%); font: 600 14px Inter, sans-serif; text-decoration: none; }
.question-groups { display: grid; gap: 16px; }
.question-group { padding: 20px 24px; border: 1px solid rgba(211, 194, 255, .3); border-radius: 15px; background: linear-gradient(140deg, rgba(35, 44, 104, .8), rgba(11, 19, 58, .85)); }
.question-group h3 { margin-top: 0; }
.question-list { display: grid; gap: 8px; }
.question-list a { display: block; padding: 12px 15px; border: 1px solid rgba(199, 177, 230, .28); border-radius: 11px; color: #e6e2f2; font-size: 14px; line-height: 1.5; text-decoration: none; }
.question-list a:hover { border-color: #e9b1e2; background: rgba(139, 121, 210, .22); }
.doc-page .ritual-nav .nav-actions { display: flex; align-items: center; gap: 18px; flex-wrap: wrap; }
.doc-page .ritual-nav .nav-actions a { color: #dcd9ed; text-decoration: none; font-size: 13px; }
@media (max-width: 700px) {
  .doc-page { padding: 18px 16px 44px; }
  .doc-block, .question-group { padding: 16px 16px; }
}

/* Homepage: a light ivory ritual journal with vivid card art and a separate night mode. */
.home-body { background: #f7f0e7; color: #1c1210; }
.home-body::before { background: radial-gradient(circle at 12% 12%, rgba(171, 18, 39, .10), transparent 25%), radial-gradient(circle at 87% 20%, rgba(184, 118, 38, .10), transparent 21%); }
.home-page { min-height: auto; padding-bottom: 12px; overflow: hidden; }
.home-page .aurora { opacity: .18; filter: hue-rotate(290deg) saturate(.55); }
.home-page .stars { opacity: .10; mix-blend-mode: multiply; }
.home-page .ritual-nav { position: relative; z-index: 4; }
.home-page .ritual-brand { color: #20110f; }
.home-page .nav-actions { display: flex; align-items: center; gap: 16px; flex-wrap: wrap; }
.home-page .nav-actions a { color: #3b2420; font-size: 12px; text-decoration: none; }
.home-page .nav-actions .nav-signin { display:inline-flex; align-items:center; min-height:30px; padding:0 11px; border:1px solid rgba(111,36,48,.42); border-radius:17px; color:#702832; font-weight:700; }
.home-page .nav-actions a:hover { color: #a10e24; }
.theme-control { display: contents; }
.theme-control > button { display: inline-flex; align-items: center; gap: 6px; min-height: 32px; padding: 0 10px; border: 1px solid rgba(95, 18, 27, .28); border-radius: 18px; color: #4c171c; background: rgba(255, 252, 247, .65); font: 700 10px Inter, sans-serif; letter-spacing: .06em; text-transform: uppercase; cursor: pointer; }
.theme-control > button:hover { border-color: #a10e24; background: #fff8f0; }
.home-page .language-control > button { border-color: rgba(95, 18, 27, .28); color: #4c171c; background: rgba(255, 252, 247, .65); }
.home-page .language-menu { border-color: rgba(95, 18, 27, .24); background: #fffaf4; box-shadow: 0 16px 35px rgba(66, 24, 18, .16); }
.home-page .language-menu button { color: #3b2420; }
.home-page .language-menu button:hover, .home-page .language-menu button.is-active { color: #8b1021; background: #f8e5dc; }
.home-hero { min-height: 0; padding: 20px 0 12px; }
.home-hero .hero-orbit { width: 540px; height: 230px; border-color: rgba(135, 19, 36, .25); box-shadow: 0 0 70px rgba(163, 25, 37, .12) inset; }
.home-hero .hero-copy { max-width: 690px; }
.home-hero .section-label { color: #a10e24; }
.home-hero .hero-copy h1 { max-width: 700px; color: #21100f; font-size: clamp(50px, 5.2vw, 70px); line-height: .82; }
.home-hero .hero-copy h1 em { color: #a10e24; }
.home-hero .hero-copy > p { max-width: 500px; color: #5c3f39; }
.home-hero-actions { display: flex; align-items: center; justify-content: center; gap: 18px; flex-wrap: wrap; margin: 18px auto 13px; }
.home-primary-button { display: inline-flex; align-items: center; justify-content: space-between; gap: 28px; min-width: 212px; height: 46px; padding: 0 16px; border-radius: 5px; color: #fffaf2; background: #990d21; box-shadow: 0 10px 22px rgba(120, 11, 25, .22); font: 600 12px Inter, sans-serif; text-decoration: none; }
.home-primary-button:hover { color: #fff; background: #720817; transform: translateY(-2px); }
.home-secondary-link { color: #6a2027; font-size: 12px; text-decoration: underline; text-underline-offset: 4px; }
.home-secondary-link:hover { color: #1e1110; }
.home-page .free-pill { border-color: rgba(125, 17, 34, .22); color: #63322d; background: rgba(255, 251, 246, .56); }
.home-services { position: relative; z-index: 1; padding: 8px 0 54px; }
.home-services::before { content: ''; position: absolute; z-index: -1; top: 18px; right: -6vw; left: -6vw; height: 500px; border-top: 1px solid rgba(126, 21, 34, .13); border-bottom: 1px solid rgba(126, 21, 34, .08); background: linear-gradient(90deg, transparent, rgba(171, 18, 39, .045), transparent); }
.home-services .ornament-title span { background: linear-gradient(90deg, transparent, #b42a39); }
.home-services .ornament-title span:last-child { transform: scaleX(-1); }
.home-services .ornament-title h2 { color: #271210; }
.home-section-lede { max-width: 590px; margin: 11px auto 20px; color: #66453e; font-size: 13px; line-height: 1.5; text-align: center; }
.home-service-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 15px; max-width: 1180px; margin: 0 auto; }
.home-service-card { position: relative; display: flex; min-width: 0; min-height: 250px; isolation: isolate; flex-direction: column; gap: 8px; padding: 17px; overflow: hidden; border: 1px solid rgba(100, 13, 27, .45); border-radius: 8px; color: #fffaf4; background: #2b1113; box-shadow: 0 13px 23px rgba(64, 18, 12, .16); text-decoration: none; transition: transform .28s ease, border-color .28s ease, box-shadow .28s ease; }
.home-service-card::after { content: ''; position: absolute; z-index: -1; inset: 0; background: linear-gradient(180deg, rgba(20, 8, 10, .04) 14%, rgba(23, 7, 9, .38) 52%, rgba(18, 5, 7, .94) 100%); }
.home-service-card::before { content: ''; position: absolute; z-index: 1; inset: 9px; border: 1px solid rgba(255, 227, 199, .25); pointer-events: none; }
.home-service-card:hover { border-color: #d9a76e; box-shadow: 0 19px 30px rgba(64, 18, 12, .25); transform: translateY(-5px); }
.home-service-card:focus-visible { outline: 3px solid #a10e24; outline-offset: 4px; }
.home-service-art { position: absolute; z-index: -2; inset: 0; width: 100%; height: 100%; object-fit: cover; transition: transform .6s cubic-bezier(.2,.7,.2,1); }
.home-service-object { position: relative; z-index: 2; width: 54px; height: 54px; object-fit: contain; filter: drop-shadow(0 4px 9px rgba(0,0,0,.45)); }.tarot-object { height: 66px; object-position: center; }.home-service-card:has(.home-service-object) .home-service-icon { display:none; }
.home-service-card:hover .home-service-art { transform: scale(1.06); }
.home-service-icon, .home-service-kicker, .home-service-card h3, .home-service-card p, .home-service-action { position: relative; z-index: 2; }
.home-service-icon { display: grid; width: 35px; height: 35px; place-items: center; border: 1px solid rgba(255, 238, 210, .75); border-radius: 50%; color: #ffe8c1; background: rgba(73, 11, 17, .46); font: 21px "Cormorant Garamond", serif; box-shadow: 0 0 18px rgba(255, 193, 129, .2); }
.home-service-kicker { color: #f4cda4; font-size: 8px; font-weight: 700; letter-spacing: .1em; line-height: 1.35; text-shadow: 0 1px 9px #160608; text-transform: uppercase; }
.home-service-card h3 { margin: 0; color: #fff9ef; font: 500 27px/.92 "Cormorant Garamond", serif; text-shadow: 0 2px 12px #150609; }
.home-service-card p { margin: 0; color: #f5e6d8; font-size: 11px; line-height: 1.42; text-shadow: 0 1px 9px #130507; }
.home-service-action { display: flex; align-items: center; justify-content: space-between; gap: 8px; margin-top: auto; padding-top: 10px; border-top: 1px solid rgba(255, 229, 205, .36); color: #ffd4a8; font-size: 10px; font-weight: 700; }
.home-service-action b { color: #fff4e0; font-size: 17px; font-weight: 400; }
.home-all-services { display: block; margin: 23px auto 0; color: #8f1424; font-size: 12px; font-weight: 700; text-align: center; text-decoration: none; }
.home-all-services:hover { color: #24100e; }
.home-note { display: flex; align-items: center; gap: 13px; max-width: 760px; margin: 0 auto 35px; padding: 14px 17px; border: 1px solid rgba(121, 20, 31, .18); border-radius: 6px; background: rgba(255, 251, 246, .56); }
.home-note-mark { color: #a10e24; font-size: 18px; }.home-note p { margin: 0; color: #65443d; font-size: 11px; line-height: 1.5; }.home-footer { max-width: 1320px; }
.home-body .home-footer { border-color: rgba(121, 20, 31, .16); }.home-body .home-footer, .home-body .home-footer a, .home-body .home-footer small { color: #65443d; }.home-body .home-footer .ritual-brand { color: #24100e; }
.home-theme-night { background: #12080b; color: #f6e9dc; }.home-theme-night::before { background: radial-gradient(circle at 12% 12%, rgba(154, 18, 34, .34), transparent 28%), radial-gradient(circle at 87% 20%, rgba(177, 103, 21, .17), transparent 25%); }
.home-theme-night .home-page .ritual-brand, .home-theme-night .home-hero .hero-copy h1, .home-theme-night .home-services .ornament-title h2 { color: #fff5e9; }.home-theme-night .home-page .nav-actions a { color: #eeded2; }.home-theme-night .theme-control > button, .home-theme-night .home-page .language-control > button { border-color: rgba(255, 226, 205, .36); color: #fff2e7; background: rgba(65, 12, 20, .56); }.home-theme-night .home-page .language-menu { border-color: rgba(255,226,205,.28); background: #2a0b12; }.home-theme-night .home-page .language-menu button { color: #fff0e3; }.home-theme-night .home-page .language-menu button:hover, .home-theme-night .home-page .language-menu button.is-active { color: #fff; background: #6e101d; }.home-theme-night .home-hero .hero-copy > p, .home-theme-night .home-section-lede, .home-theme-night .home-note p { color: #dac4b6; }.home-theme-night .home-page .free-pill, .home-theme-night .home-note { border-color: rgba(255, 222, 205, .18); color: #e8d4c8; background: rgba(75, 12, 21, .36); }.home-theme-night .home-all-services { color: #f1b39d; }.home-theme-night .home-footer { border-color: rgba(255,222,205,.14); }.home-theme-night .home-footer, .home-theme-night .home-footer a, .home-theme-night .home-footer small { color: #d5beb2; }.home-theme-night .home-footer .ritual-brand { color: #fff5e9; }
@media (max-width: 980px) { .home-service-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
@media (max-width: 760px) { .home-page .nav-actions { gap: 10px; }.home-page .nav-actions a { font-size: 11px; }.home-hero { padding: 19px 0 15px; }.home-service-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }.home-service-card { min-height: 242px; } }
@media (max-width: 480px) { .home-page .ritual-nav { align-items: flex-start; flex-direction: column; gap: 10px; }.home-page .nav-actions { width: 100%; justify-content: flex-start; }.home-page .nav-actions a:nth-of-type(n+3) { display: none; }.home-hero { padding: 13px 0 10px; }.home-hero .hero-copy h1 { font-size: 47px; line-height: .84; letter-spacing: -1.8px; }.home-hero .hero-copy > p { max-width: 340px; font-size: 13px; }.home-hero-actions { margin: 12px auto 8px; }.home-primary-button { width: 100%; }.home-secondary-link { text-align: center; }.home-page .free-pill { font-size: 9px; }.home-services { padding-top: 8px; }.home-section-lede { margin-bottom: 14px; }.home-service-grid { grid-template-columns: 1fr; gap: 12px; }.home-service-card { min-height: 300px; padding: 18px; }.home-note { align-items: flex-start; margin-right: 0; margin-left: 0; } }
@media (prefers-reduced-motion: reduce) { .home-service-card, .home-service-art, .home-primary-button { transition: none; }.home-service-card:hover, .home-primary-button:hover { transform: none; } }

/* Softer light-theme accent: wine and dusty rose retain contrast without a loud red cast. */
.home-body::before { background: radial-gradient(circle at 12% 12%, rgba(111, 36, 48, .10), transparent 25%), radial-gradient(circle at 87% 20%, rgba(173, 113, 107, .10), transparent 21%); }
.home-page .nav-actions a:hover, .home-hero .section-label, .home-hero .hero-copy h1 em, .home-all-services, .home-note-mark { color: #702832; }
.home-page .nav-actions .nav-signin { display:inline-flex; align-items:center; min-height:30px; padding:0 11px; border:1px solid rgba(111,36,48,.42); border-radius:17px; color:#702832; font-weight:700; }
@media (max-width:480px){.home-page .nav-actions .nav-signin{display:inline-flex!important;}.home-page .nav-actions a:nth-of-type(n+3):not(.nav-signin){display:none;}}
.theme-control > button:hover { border-color: #702832; }.home-primary-button { background: #702832; box-shadow: 0 10px 22px rgba(79,23,32,.20); }.home-primary-button:hover { background: #4d1720; }.home-secondary-link { color: #6b3540; }.home-services::before { background: linear-gradient(90deg, transparent, rgba(111,36,48,.04), transparent); }.home-services .ornament-title span { background: linear-gradient(90deg, transparent, #a96e73); }.home-service-card { border-color: rgba(86,24,35,.42); }.home-service-card:hover { border-color: #c69686; }.home-service-card:focus-visible { outline-color: #702832; }.home-service-kicker, .home-service-action { color: #f1c9aa; }
