@import "https://fonts.googleapis.com/css2?family=Cinzel+Decorative:wght@700;900&family=Cinzel:wght@400;600;700&family=Cormorant+Garamond:ital,wght@0,400;0,500;0,600;1,400&family=Marcellus&family=Lora:ital,wght@0,400;0,500;0,600;1,400&family=Playfair+Display:ital,wght@0,600;0,700;1,500&family=EB+Garamond:ital,wght@0,400;0,500;0,600;1,400&display=swap";@import "https://fonts.googleapis.com/css2?family=Material+Symbols+Outlined:opsz,wght,FILL,GRAD@20..48,400,0..1,0&display=block";.icon{letter-spacing:normal;text-transform:none;white-space:nowrap;word-wrap:normal;vertical-align:-.2em;color:currentColor;-webkit-font-smoothing:antialiased;font-feature-settings:"liga";-webkit-font-feature-settings:"liga";direction:ltr;font-family:Material Symbols Outlined;font-size:1.2em;font-style:normal;font-weight:400;line-height:1;display:inline-block}:root,:root[data-theme=noturno]{--bg-void:#0d0812;--bg-panel:#1a1024;--bg-panel-raised:#241633;--gold:#d8b25c;--gold-bright:#f0d38a;--gold-dim:#8a713a;--purple-deep:#2b1740;--purple-glow:#5a3b8c;--teal:#2ea89a;--crimson:#9c2b3a;--parchment:#ece0c6;--text-main:#ece3f5;--text-muted:#b6a8cc;--border-ornate:#6b4f2a;--shadow-glow:0 0 24px #d8b25c40;--font-heading:"Cinzel", serif;--font-heading-display:"Cinzel Decorative", serif;--font-body:"Cormorant Garamond", serif}:root[data-theme=eclipse]{--bg-void:#070c14;--bg-panel:#101a29;--bg-panel-raised:#16233a;--gold:#7fd8d0;--gold-bright:#b3ece6;--gold-dim:#3f7a76;--purple-deep:#142238;--purple-glow:#2d5a86;--teal:#5ac8ff;--crimson:#d1495b;--parchment:#dce7ec;--text-main:#e4edf2;--text-muted:#93a8b8;--border-ornate:#2c4257;--shadow-glow:0 0 24px #7fd8d040;--font-heading:"Marcellus", serif;--font-heading-display:"Marcellus", serif;--font-body:"Lora", serif}:root[data-theme=carmesim]{--bg-void:#0d0405;--bg-panel:#1c0a0d;--bg-panel-raised:#2b1013;--gold:#d4a24c;--gold-bright:#f0c273;--gold-dim:#8a5a2a;--purple-deep:#3a0f14;--purple-glow:#7a2430;--teal:#4a8f8a;--crimson:#c23b4a;--parchment:#ecd9c6;--text-main:#f2e3e0;--text-muted:#c2a3a0;--border-ornate:#5c2a2a;--shadow-glow:0 0 24px #c23b4a4d;--font-heading:"Playfair Display", serif;--font-heading-display:"Playfair Display", serif;--font-body:"EB Garamond", serif}:root{--shadow-soft:0 10px 30px #04020873;--shadow-lift:0 16px 40px #04020880, 0 0 0 1px #d8b25c14;--radius-sm:6px;--radius-md:10px;--radius-lg:16px;--ease-out:cubic-bezier(.16, 1, .3, 1)}*{box-sizing:border-box;transition:background-color .35s var(--ease-out), border-color .35s var(--ease-out), color .35s var(--ease-out)}html{scroll-behavior:smooth}html,body{min-height:100%;margin:0;padding:0}body{background:var(--bg-void);color:var(--text-main);font-family:var(--font-body);-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;min-height:100vh;font-size:19px;line-height:1.65;position:relative}::selection{color:var(--gold-bright);background:#d8b25c59}.bg-fx{z-index:0;pointer-events:none;position:fixed;inset:0;overflow:hidden}.bg-fx:after{content:"";background:radial-gradient(70% 55% at 50% 100%,#d8b25c0d,#0000 65%);position:absolute;inset:0}.bg-fx__nebula{filter:blur(6px);background:radial-gradient(55% 40% at 22% 18%,#5a3b8c66,#0000 60%),radial-gradient(45% 35% at 78% 72%,#2ea89a29,#0000 60%),radial-gradient(40% 30% at 85% 15%,#9c2b3a1f,#0000 60%);animation:26s ease-in-out infinite alternate nebula-drift;position:absolute;inset:-15%}@keyframes nebula-drift{0%{transform:translate(0)scale(1)}50%{transform:translate(-2.5%,2%)scale(1.06)}to{transform:translate(2%,-2.5%)scale(1)}}.spark{background:var(--gold-bright);opacity:0;border-radius:50%;width:3px;height:3px;animation-name:spark-rise;animation-timing-function:ease-in-out;animation-iteration-count:infinite;position:absolute;bottom:-10px;box-shadow:0 0 6px 2px #f0d38abf}@keyframes spark-rise{0%{opacity:0;transform:translateY(0)translate(0)scale(.6)}12%{opacity:.9}50%{transform:translateY(-48vh) translateX(var(--drift,12px)) scale(1)}88%{opacity:.7}to{transform:translateY(-96vh) translateX(calc(var(--drift,12px) * 2)) scale(.3);opacity:0}}main,.top-nav{z-index:1;position:relative}@media (prefers-reduced-motion:reduce){.bg-fx__nebula,.spark{animation:none!important}}h1,h2,h3,.display{font-family:var(--font-heading);letter-spacing:.03em;color:var(--gold-bright);margin:0 0 .5em;font-weight:700}h1{font-size:clamp(1.7rem,1.35rem + 1.4vw,2.25rem)}h2{font-size:clamp(1.25rem,1.1rem + .6vw,1.55rem)}h1.hero-title{font-family:var(--font-heading-display);text-shadow:0 0 18px #d8b25c73;margin-bottom:.35em;font-size:clamp(2.1rem,1.5rem + 3vw,3.1rem)}.eyebrow{font-family:var(--font-heading);letter-spacing:.32em;text-transform:uppercase;color:var(--gold-dim);align-items:center;gap:.6em;margin-bottom:1.1em;font-size:.72rem;display:inline-flex}.eyebrow:before,.eyebrow:after{content:"";background:linear-gradient(90deg, transparent, var(--gold-dim));width:1.6em;height:1px}.eyebrow:after{background:linear-gradient(90deg, var(--gold-dim), transparent)}a{color:var(--gold);transition:color .15s}.container{max-width:1100px;margin:0 auto;padding:2.5rem 1.5rem 5rem}.hero{padding-top:2vh}.hero__intro{margin-top:3rem}.hero__lede{max-width:540px;margin:0 auto 2.75rem;font-size:1.15rem;line-height:1.7}.hero__actions{justify-content:center}.divider--ornament{background:linear-gradient(90deg, transparent, var(--border-ornate) 20%, var(--gold-dim) 50%, var(--border-ornate) 80%, transparent);border:none;max-width:640px;height:1px;margin:4rem auto;position:relative}.divider--ornament:after{content:"✦";background:var(--bg-void);color:var(--gold-dim);padding:0 .75em;font-size:.85rem;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.how-it-works{text-align:left;max-width:700px;margin:0 auto}.how-it-works__list{padding-left:1.35em;line-height:2}.how-it-works__list li::marker{color:var(--gold-dim)}.ornate-frame{background:linear-gradient(160deg, var(--bg-panel-raised), var(--bg-panel));border:1px solid var(--border-ornate);border-radius:var(--radius-md);box-shadow:var(--shadow-glow), var(--shadow-soft), inset 0 0 40px #5a3b8c33;padding:2rem;position:relative}.ornate-frame:before{content:"";pointer-events:none;border:1px solid #d8b25c59;border-radius:6px;position:absolute;inset:6px}.modal-overlay{z-index:100;backdrop-filter:blur(2px);background:#08040eb8;justify-content:center;align-items:center;padding:1.5rem;animation:.15s ease-out modal-fade-in;display:flex;position:fixed;inset:0}.modal-box{width:100%;max-width:440px;animation:modal-pop-in .18s var(--ease-out,ease-out);padding:1.75rem}.modal-box__title{color:var(--gold-bright);margin:0 0 .75rem}.modal-box__message{color:var(--text-body,inherit);margin:0;line-height:1.6}.modal-box__actions{justify-content:flex-end;gap:.75rem;margin-top:1.5rem;display:flex}@keyframes modal-fade-in{0%{opacity:0}}@keyframes modal-pop-in{0%{opacity:0;transform:translateY(8px)scale(.98)}}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.help-tip{vertical-align:middle;color:var(--gold);cursor:help;align-items:center;margin-left:.2em;display:inline-flex;position:relative}.help-tip .icon{font-size:1.05em}.help-tip__bubble{background:var(--bg-panel-raised);border:1px solid var(--border-ornate);border-radius:var(--radius-sm);width:300px;max-width:min(80vw,300px);color:var(--text-main);text-align:left;box-shadow:var(--shadow-soft);opacity:0;pointer-events:none;z-index:20;padding:.75em .9em;font-size:.8rem;line-height:1.55;transition:opacity .15s,transform .15s;position:absolute;bottom:calc(100% + 10px);left:50%;transform:translate(-50%)translateY(4px)}.help-tip:hover .help-tip__bubble,.help-tip:focus .help-tip__bubble,.help-tip:focus-visible .help-tip__bubble{opacity:1;pointer-events:auto;transform:translate(-50%)translateY(0)}details.ornate-frame{padding:1.25rem 1.5rem}details.ornate-frame summary{list-style:none}details.ornate-frame summary::-webkit-details-marker{display:none}details.ornate-frame summary:before{content:"▸";color:var(--gold-dim);transition:transform .2s var(--ease-out);margin-right:.5em;display:inline-block}details.ornate-frame[open] summary:before{color:var(--gold);transform:rotate(90deg)}.auth-shell{border:1px solid var(--border-ornate);border-radius:var(--radius-lg);max-width:900px;box-shadow:var(--shadow-glow), var(--shadow-lift);background:var(--bg-panel);text-align:left;grid-template-columns:1fr 1fr;margin:3rem auto;display:grid;overflow:hidden}.auth-shell__aside{background:radial-gradient(ellipse 80% 60% at 30% 20%, #5a3b8c8c, transparent 65%), radial-gradient(ellipse 70% 50% at 85% 85%, #2ea89a2e, transparent 60%), linear-gradient(160deg, var(--purple-deep), var(--bg-void));border-right:1px solid var(--border-ornate);flex-direction:column;justify-content:center;gap:1.5rem;padding:3rem 2.5rem;display:flex;position:relative;overflow:hidden}.auth-shell__aside:before{content:"";opacity:.18;pointer-events:none;background-image:radial-gradient(#d8b25c59 1px,#0000 1px);background-size:26px 26px;position:absolute;inset:0}.auth-shell__symbol{filter:drop-shadow(0 0 14px #d8b25c80);font-size:2.6rem;position:relative}.auth-shell__aside h2{margin-bottom:.6rem;position:relative}.auth-shell__aside p{color:var(--text-muted);font-size:1rem;line-height:1.7;position:relative}.auth-shell__perks{flex-direction:column;gap:.7rem;margin:.5rem 0 0;padding:0;list-style:none;display:flex;position:relative}.auth-shell__perks li{color:var(--text-muted);align-items:baseline;gap:.65em;font-size:.95rem;display:flex}.auth-shell__perks li:before{content:"✦";color:var(--gold);font-size:.8em}.auth-shell__quote{border-left:2px solid var(--gold-dim);color:var(--text-muted);padding-left:1rem;font-style:italic;position:relative}.auth-shell__form{padding:3rem 2.5rem}.auth-shell__form h1{margin-bottom:.35em}.auth-shell__form>.muted{margin-bottom:2rem}.auth-field label{font-family:var(--font-heading);color:var(--gold);letter-spacing:.03em;margin-bottom:.5em;font-size:.85rem;display:block}.auth-input-group{align-items:center;display:flex;position:relative}.auth-input-group__icon{color:var(--gold-dim);pointer-events:none;font-size:1rem;line-height:1;position:absolute;left:.9em}.auth-input-group input{width:100%;padding-left:2.5em}.auth-input-group input[type=password],.auth-input-group input.has-toggle{padding-right:2.6em}.auth-password-toggle{cursor:pointer;color:var(--text-muted);font-size:.85rem;font-family:var(--font-heading);letter-spacing:.02em;background:0 0;border:none;padding:.4em .5em;transition:color .15s;position:absolute;right:.5em}.auth-password-toggle:hover{color:var(--gold-bright)}.auth-password-toggle:focus-visible{outline:2px solid var(--gold-bright);outline-offset:2px;border-radius:var(--radius-sm)}.auth-shell__form input[type=email],.auth-shell__form input[type=password],.auth-shell__form input[type=text]{background:var(--bg-void);border:1px solid var(--border-ornate);color:var(--text-main);border-radius:var(--radius-sm);font-family:var(--font-body);padding:.75em .9em;font-size:1.02rem;transition:border-color .15s,box-shadow .15s}.auth-shell__form input:focus{border-color:var(--gold);box-shadow:0 0 0 3px #d8b25c26}.auth-shell__form input:focus-visible{outline:2px solid var(--gold-bright);outline-offset:2px}.auth-error{color:#e08b96;border-radius:var(--radius-sm);background:#9c2b3a1f;border:1px solid #9c2b3a66;padding:.65em .9em;font-size:.9rem;display:none}.auth-success{color:var(--teal);border-radius:var(--radius-sm);background:#2ea89a1f;border:1px solid #2ea89a66;padding:.65em .9em;font-size:.9rem}.auth-shell__switch{text-align:center;margin-top:1.75rem;font-size:.92rem}@media (width<=760px){.auth-shell{grid-template-columns:1fr;margin:1.5rem auto}.auth-shell__aside{border-right:none;border-bottom:1px solid var(--border-ornate);padding:2.25rem 1.75rem}.auth-shell__form{padding:2.25rem 1.75rem}}.btn{font-family:var(--font-heading);letter-spacing:.06em;text-transform:uppercase;cursor:pointer;border-radius:var(--radius-sm);border:1px solid var(--gold-dim);background:linear-gradient(180deg, var(--purple-glow), var(--purple-deep));color:var(--gold-bright);transition:transform .18s var(--ease-out), box-shadow .18s var(--ease-out), border-color .18s var(--ease-out), filter .18s var(--ease-out);justify-content:center;align-items:center;gap:.5em;padding:.9em 1.8em;font-size:.95rem;text-decoration:none;display:inline-flex}.btn:hover{border-color:var(--gold);transform:translateY(-2px);box-shadow:0 6px 20px #d8b25c40}.btn:active{filter:brightness(.95);transform:translateY(0)}.btn:disabled{opacity:.45;cursor:not-allowed;box-shadow:none;transform:none}.btn-secondary{border-color:var(--border-ornate);color:var(--text-muted);background:0 0}.btn-secondary:hover{color:var(--gold-bright);background:#d8b25c0f}.btn-primary{background:linear-gradient(180deg, var(--gold), #a9843d);color:#241633;border-color:var(--gold-bright)}.btn-primary:hover{box-shadow:0 6px 24px #d8b25c80}.btn-sm{letter-spacing:.08em;padding:.45em .95em;font-size:.7rem}.badge{font-family:var(--font-heading);letter-spacing:.08em;text-transform:uppercase;border:1px solid var(--gold-dim);color:var(--gold);background:#d8b25c14;border-radius:999px;padding:.3em .8em;font-size:.72rem;display:inline-block}.badge-teal{border-color:var(--teal);color:var(--teal);background:#2ea89a1a}.badge-crimson{border-color:var(--crimson);color:#e08b96;background:#9c2b3a1f}.grid{gap:1.25rem;display:grid}.grid-cards{grid-template-columns:repeat(auto-fill,minmax(240px,1fr))}.card-tile{background:linear-gradient(160deg, var(--bg-panel-raised), var(--bg-panel));border:1px solid var(--border-ornate);border-radius:var(--radius-md);cursor:pointer;transition:border-color .25s var(--ease-out), transform .25s var(--ease-out), box-shadow .25s var(--ease-out), background .25s var(--ease-out);padding:1.4rem 1.4rem 1.25rem;position:relative;overflow:hidden}.card-tile:before{content:"";background:linear-gradient(90deg, transparent, var(--gold-dim), transparent);opacity:0;height:2px;transition:opacity .25s var(--ease-out);position:absolute;inset:0 0 auto}.card-tile:hover,.card-tile:focus-visible{border-color:var(--gold);box-shadow:var(--shadow-glow), var(--shadow-lift);background:linear-gradient(160deg, #2b1a3d, var(--bg-panel));transform:translateY(-4px)}.card-tile:hover:before,.card-tile:focus-visible:before{opacity:1}.card-tile:active{transform:translateY(-1px)}.card-tile h3{margin-top:.7em}.card-tile p{color:var(--text-muted);font-size:.95rem}.card-tile-locked{opacity:.6;filter:grayscale(.3)}.card-tile-locked:hover,.card-tile-locked:focus-visible{border-color:var(--crimson);box-shadow:none}.reading-table-head{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;margin-bottom:.75rem;display:flex}.zoom-controls{border:1px solid var(--border-ornate);border-radius:999px;align-items:center;gap:.6em;padding:.25em .4em;display:inline-flex}.zoom-controls button{border:1px solid var(--gold-dim);background:var(--bg-panel);width:28px;height:28px;color:var(--gold-bright);font-family:var(--font-heading);cursor:pointer;transition:border-color .15s var(--ease-out), transform .15s var(--ease-out), background .15s var(--ease-out);border-radius:50%;justify-content:center;align-items:center;font-size:1rem;line-height:1;display:flex}.zoom-controls button:hover:not(:disabled){border-color:var(--gold);background:#d8b25c1f;transform:scale(1.08)}.zoom-controls button:disabled{opacity:.35;cursor:not-allowed}.zoom-controls span:not(.icon){font-family:var(--font-heading);color:var(--text-muted);text-align:center;min-width:2.4em;font-size:.72rem}.spread-canvas-wrap{transition:max-width .25s var(--ease-out);justify-content:center;display:flex}.spread-canvas{aspect-ratio:4/3;border:1px dashed var(--border-ornate);border-radius:var(--radius-md);width:100%;max-width:420px;transition:max-width .25s var(--ease-out);background:radial-gradient(circle,#5a3b8c40,#0000 70%);margin:0 auto;position:relative}.spread-marker{text-align:center;flex-direction:column;align-items:center;gap:.3em;width:110px;display:flex;position:absolute;transform:translate(-50%,-50%)}.spread-marker .dot{background:radial-gradient(circle at 35% 30%, var(--gold-bright), var(--gold-dim));border:2px solid var(--gold-bright);width:34px;height:34px;font-family:var(--font-heading);color:#241633;border-radius:50%;justify-content:center;align-items:center;font-size:.9rem;font-weight:700;display:flex;box-shadow:0 0 12px #d8b25c99}.spread-marker span.label{color:var(--text-muted);font-size:.72rem;line-height:1.2}.form-row{border-bottom:1px solid #6b4f2a66;flex-wrap:wrap;align-items:center;gap:.75rem;padding:.9rem 0;transition:background .15s;display:flex}.form-row:hover{background:#d8b25c08}.form-row label.position-label{font-family:var(--font-heading);color:var(--gold);min-width:220px;font-size:.92rem}select,input[type=text]{background:var(--bg-void);border:1px solid var(--border-ornate);color:var(--text-main);border-radius:var(--radius-sm);font-family:var(--font-body);padding:.65em .85em;font-size:1rem;transition:border-color .15s,box-shadow .15s}.orientation-toggle{border:1px solid var(--border-ornate);border-radius:var(--radius-sm);display:inline-flex;overflow:hidden}.orientation-toggle button{background:var(--bg-panel);color:var(--text-muted);cursor:pointer;font-family:var(--font-heading);border:none;padding:.55em 1.1em;font-size:.8rem;transition:background .15s,color .15s}.orientation-toggle button:hover:not(.active){color:var(--gold-bright);background:#d8b25c14}.orientation-toggle button.active{background:var(--gold);color:#241633}.source-tabs{flex-wrap:wrap;gap:.4em;margin:.7em 0 .6em;display:flex}.source-tab{background:var(--bg-panel);color:var(--text-muted);border:1px solid var(--border-ornate);cursor:pointer;font-family:var(--font-heading);letter-spacing:.04em;border-radius:999px;padding:.35em .9em;font-size:.7rem;transition:background .15s,color .15s,border-color .15s}.source-tab:hover:not(.active){border-color:var(--gold);color:var(--gold-bright);background:#d8b25c14}.source-tab.active{background:var(--gold);color:#241633;border-color:var(--gold-bright)}.source-body .draw-interpretation{margin-bottom:.4em}.source-citation a{color:var(--teal)}.result-card{border-left:3px solid var(--gold);border-radius:0 var(--radius-md) var(--radius-md) 0;box-shadow:var(--shadow-soft);background:#5a3b8c1a;margin-bottom:1rem;padding:1.1rem 1.35rem;position:relative}.result-card h3{margin-bottom:.2em}.result-card .meta{color:var(--text-muted);letter-spacing:.03em;margin-bottom:.5em;font-size:.85rem}.top-nav{border-bottom:1px solid var(--border-ornate);backdrop-filter:blur(10px);z-index:5;background:linear-gradient(#0d0812d9,#0d08128c);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.75rem 1.5rem;padding:1.1rem 1.5rem;display:flex;position:sticky;top:0}.nav-brand{color:var(--gold-bright);font-family:var(--font-heading-display);align-items:center;gap:.5em;font-size:1rem;text-decoration:none;transition:filter .15s;display:inline-flex}.nav-brand:hover{filter:brightness(1.15)}.nav-brand__mark{filter:drop-shadow(0 0 6px #d8b25c80);font-size:1.15em}.nav-links{align-items:center;gap:1.5rem}.top-nav a:not(.btn){font-family:var(--font-heading);color:var(--text-muted);font-size:.85rem;text-decoration:none;transition:color .15s}.top-nav a:not(.btn):hover{color:var(--gold)}.muted{color:var(--text-muted)}.center{text-align:center}.stack{flex-direction:column;gap:1rem;display:flex}.row{flex-wrap:wrap;gap:1rem;display:flex}hr.divider{border:none;border-top:1px solid var(--border-ornate);margin:2rem 0}select:focus-visible,input[type=text]:focus-visible,.btn:focus-visible,.card-tile:focus-visible,.zoom-controls button:focus-visible,.orientation-toggle button:focus-visible,.source-tab:focus-visible{outline:2px solid var(--gold-bright);outline-offset:2px}select:focus,input[type=text]:focus{border-color:var(--gold);box-shadow:0 0 0 3px #d8b25c26}.step-panel{animation:step-fade-in .35s var(--ease-out)}@keyframes step-fade-in{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}@media (prefers-reduced-motion:reduce){.step-panel{animation:none}}@media (width<=640px){body{font-size:17px}.container{padding:1.5rem 1.1rem 3.5rem}.top-nav{padding:.9rem 1.1rem}.nav-links{justify-content:space-between;gap:.9rem;width:100%}.ornate-frame{padding:1.25rem}.hero__intro{margin-top:1.5rem}.hero__actions{flex-direction:column;align-items:stretch}.hero__actions .btn{width:100%}.form-row{flex-direction:column;align-items:stretch;gap:.5rem}.form-row label.position-label{min-width:0}.form-row select{width:100%}.reading-table-head{text-align:center;justify-content:center}.row.center{flex-direction:column;align-items:stretch}.row.center .btn{width:100%}}
