:root{--ink:#0d0b14;--vellum:#f5f0e8;--gold:#c9a84c;--gold-light:#e8d08a;--violet:#2e1b4e;--mist:#8b7fa8;--glow:#c9a84c26}*{box-sizing:border-box;margin:0;padding:0}body{background:var(--ink);color:var(--vellum);min-height:100vh;font-family:Cormorant Garamond,Georgia,serif;overflow-x:hidden}.stars{z-index:0;pointer-events:none;background:radial-gradient(at 20% 30%,#1a0f2e 0%,#0d0b14 60%),radial-gradient(at 80% 70%,#0f1a2e 0%,#0000 60%);position:fixed;inset:0}.stars:before,.stars:after{content:"";background-image:radial-gradient(1px 1px at 10% 15%,#ffffffb3 0%,#0000 100%),radial-gradient(1px 1px at 25% 8%,#ffffff80 0%,#0000 100%),radial-gradient(1px 1px at 40% 20%,#fff9 0%,#0000 100%),radial-gradient(1px 1px at 55% 5%,#fffc 0%,#0000 100%),radial-gradient(1px 1px at 70% 12%,#fff6 0%,#0000 100%),radial-gradient(1px 1px at 85% 22%,#fff9 0%,#0000 100%),radial-gradient(1px 1px at 15% 40%,#ffffff80 0%,#0000 100%),radial-gradient(1px 1px at 30% 55%,#ffffff4d 0%,#0000 100%),radial-gradient(1px 1px at 60% 35%,#ffffffb3 0%,#0000 100%),radial-gradient(1px 1px at 75% 48%,#ffffff80 0%,#0000 100%),radial-gradient(1px 1px at 90% 38%,#fff6 0%,#0000 100%),radial-gradient(1px 1px at 5% 65%,#fff9 0%,#0000 100%),radial-gradient(1px 1px at 45% 70%,#ffffff80 0%,#0000 100%),radial-gradient(1px 1px at 65% 80%,#ffffff4d 0%,#0000 100%),radial-gradient(1px 1px at 80% 90%,#fff9 0%,#0000 100%),radial-gradient(2px 2px at 20% 80%,#c9a84c66 0%,#0000 100%),radial-gradient(2px 2px at 50% 90%,#c9a84c4d 0%,#0000 100%),radial-gradient(2px 2px at 90% 60%,#c9a84c66 0%,#0000 100%);position:absolute;inset:0}.stars:after{background-image:radial-gradient(1px 1px at 8%,#fff6 0%,#0000 100%),radial-gradient(1px 1px at 35% 30%,#fff9 0%,#0000 100%),radial-gradient(1px 1px at 50% 45%,#ffffff4d 0%,#0000 100%),radial-gradient(1px 1px at 72% 25%,#ffffff80 0%,#0000 100%),radial-gradient(1px 1px at 95% 15%,#ffffffb3 0%,#0000 100%);animation:4s ease-in-out infinite alternate twinkle}@keyframes twinkle{0%{opacity:.6}to{opacity:1}}.moon{z-index:1;filter:drop-shadow(0 0 35px #dcd2b447)drop-shadow(0 0 70px #c9a84c24);width:115px;height:115px;animation:7s ease-in-out infinite moonFloat;position:fixed;top:6vh;right:8vw}.moon .moon-photo{object-fit:cover;border-radius:50%;width:100%;height:100%;display:block;transform:scale(1.04);box-shadow:inset -10px -10px 28px #08060c8c,inset 6px 6px 22px #fffaeb0f}.moon svg{width:100%;height:100%;display:block}@keyframes moonFloat{0%,to{transform:translateY(0)}50%{transform:translateY(-10px)}}.container{z-index:2;max-width:820px;margin:0 auto;padding:0 2rem 4rem;position:relative}header{text-align:center;padding:5rem 0 2rem;animation:1.2s both fadeDown}@keyframes fadeDown{0%{opacity:0;transform:translateY(-20px)}to{opacity:1;transform:translateY(0)}}.sigil{opacity:.7;width:60px;height:60px;margin:0 auto 1.5rem;display:block}header h1{letter-spacing:.25em;color:var(--gold-light);text-shadow:0 0 40px #c9a84c66;margin-bottom:.5rem;font-family:Cinzel,serif;font-size:clamp(2.5rem,6vw,4rem);font-weight:400}header .tagline{color:var(--mist);letter-spacing:.05em;font-family:Cormorant Garamond,serif;font-size:1.15rem;font-style:italic}.divider{opacity:.4;align-items:center;gap:1rem;margin:2rem 0;display:flex}.divider:before,.divider:after{content:"";background:linear-gradient(90deg, transparent, var(--gold), transparent);flex:1;height:1px}.divider span{letter-spacing:.3em;color:var(--gold);font-family:Cinzel,serif;font-size:.7rem}.steps{flex-wrap:wrap;justify-content:center;gap:.5rem;margin-bottom:2.5rem;display:flex}.step-dot{letter-spacing:.2em;color:#8b7fa880;align-items:center;gap:.4rem;font-family:Cinzel,serif;font-size:.6rem;transition:color .4s;display:flex}.step-dot .num{border:1px solid #c9a84c4d;border-radius:50%;place-items:center;width:22px;height:22px;font-size:.65rem;transition:all .4s;display:grid}.step-dot.active{color:var(--gold-light)}.step-dot.active .num{border-color:var(--gold);color:var(--gold-light);background:#c9a84c1f;box-shadow:0 0 12px #c9a84c40}.step-dot.done .num{border-color:var(--gold);color:var(--gold)}.screen{animation:.8s both fadeUp;display:none}.screen.active{display:block}@keyframes fadeUp{0%{opacity:0;transform:translateY(24px)}to{opacity:1;transform:translateY(0)}}.panel{background:#ffffff05;border:1px solid #c9a84c33;border-radius:2px;padding:2.25rem 2.5rem}.panel h2{letter-spacing:.3em;color:var(--gold);margin-bottom:.5rem;font-family:Cinzel,serif;font-size:.8rem}.panel .sub{color:var(--mist);margin-bottom:1.75rem;font-size:1.05rem;font-style:italic}.form-label{letter-spacing:.22em;color:var(--gold);text-transform:uppercase;margin-bottom:.6rem;font-family:Cinzel,serif;font-size:.68rem;display:block}.field{margin-bottom:1.4rem}input[type=text],input[type=date],input[type=email],select,textarea{width:100%;color:var(--vellum);background:#ffffff08;border:1px solid #c9a84c40;border-radius:2px;outline:none;padding:.85rem 1.1rem;font-family:EB Garamond,Georgia,serif;font-size:1.05rem;line-height:1.6;transition:border-color .3s,box-shadow .3s}input::placeholder,textarea::placeholder{color:#f5f0e84d;font-style:italic}input:focus,select:focus,textarea:focus{border-color:#c9a84c99;box-shadow:0 0 20px #c9a84c14,inset 0 0 20px #c9a84c08}select option{color:var(--vellum);background:#1a0f2e}textarea{resize:vertical;min-height:150px}.two-col{grid-template-columns:1fr 1fr;gap:1rem;display:grid}.provider-btn{width:100%;color:var(--vellum);cursor:pointer;text-align:left;background:#ffffff08;border:1px solid #c9a84c38;border-radius:2px;align-items:center;gap:.9rem;margin-bottom:.75rem;padding:.85rem 1.2rem;font-family:EB Garamond,serif;font-size:1rem;transition:all .25s;display:flex}.provider-btn:hover{border-color:var(--gold);background:#c9a84c12;box-shadow:0 0 18px #c9a84c1a}.provider-btn svg{flex-shrink:0;width:20px;height:20px}.provider-btn span.label{flex:1}.or-line{opacity:.5;color:var(--mist);align-items:center;gap:1rem;margin:1.25rem 0;font-size:.85rem;font-style:italic;display:flex}.or-line:before,.or-line:after{content:"";background:#c9a84c33;flex:1;height:1px}.auth-error{color:#d98a8a;min-height:1.2rem;margin:.25rem 0 0;font-size:.9rem;font-style:italic}.auth-error:empty{min-height:0;margin:0}.config-banner{z-index:10;text-align:center;color:#f5f0e8;background:#782828eb;border-bottom:1px solid #c9a84c66;padding:.75rem 1rem;font-family:EB Garamond,serif;font-size:.95rem;position:fixed;inset:0 0 auto}.config-banner code{color:var(--gold-light);font-family:Cinzel,serif}.demo-note{color:#8b7fa8b3;background:#c9a84c08;border-left:2px solid #c9a84c4d;margin-top:1.25rem;padding:.5rem .9rem;font-size:.8rem;font-style:italic}.mfa-inputs{justify-content:center;gap:.6rem;margin:1.5rem 0;display:flex}.mfa-inputs input{text-align:center;width:48px;height:58px;font-family:Cinzel,serif;font-size:1.5rem}.btn{width:100%;color:var(--gold-light);letter-spacing:.3em;cursor:pointer;background:linear-gradient(135deg,#c9a84c26,#c9a84c0d);border:1px solid #c9a84c80;border-radius:2px;margin-top:1.5rem;padding:1rem 2rem;font-family:Cinzel,serif;font-size:.8rem;transition:all .35s;display:block;position:relative;overflow:hidden}.btn:before{content:"";background:linear-gradient(90deg,#0000,#c9a84c26,#0000);width:100%;height:100%;transition:left .5s;position:absolute;top:0;left:-100%}.btn:hover:before{left:100%}.btn:hover{border-color:var(--gold);background:linear-gradient(135deg,#c9a84c38,#c9a84c14);box-shadow:0 0 30px #c9a84c26}.btn:disabled{opacity:.5;cursor:not-allowed}.btn.ghost{color:var(--mist);background:0 0;border-color:#c9a84c40}.btn.ghost:hover{color:var(--gold-light)}.btn-row{gap:1rem;display:flex}.btn-row .btn{margin-top:1.5rem}.mood-row{flex-wrap:wrap;gap:.6rem;margin:.5rem 0;display:flex}.mood-btn{color:var(--mist);cursor:pointer;background:0 0;border:1px solid #c9a84c33;border-radius:999px;padding:.35rem 1rem;font-family:Cormorant Garamond,serif;font-size:.95rem;font-style:italic;transition:all .25s}.mood-btn:hover,.mood-btn.active{border-color:var(--gold);color:var(--gold-light);background:#c9a84c14}.cosmic-strip{flex-wrap:wrap;gap:1rem;margin:1.5rem 0;display:flex}.cosmic-chip{background:#c9a84c0a;border:1px solid #c9a84c33;border-radius:2px;flex:1;min-width:130px;padding:.9rem 1.1rem}.cosmic-chip .k{letter-spacing:.2em;color:var(--gold);text-transform:uppercase;font-family:Cinzel,serif;font-size:.6rem}.cosmic-chip .v{color:var(--gold-light);margin-top:.2rem;font-size:1.25rem}.cosmic-chip .v small{color:var(--mist);font-size:.85rem;font-style:italic;display:block}.interpretation-text{color:#f5f0e8e6;font-family:EB Garamond,Georgia,serif;font-size:1.1rem;line-height:1.85}.interpretation-text p{margin-bottom:1rem}.interpretation-text em{color:var(--gold-light);font-style:italic}.symbol-tags{border-top:1px solid #c9a84c26;flex-wrap:wrap;gap:.5rem;margin-top:1.5rem;padding-top:1.5rem;display:flex}.symbol-tag{color:var(--mist);background:#c9a84c14;border:1px solid #c9a84c33;border-radius:2px;padding:.3rem .8rem;font-family:Cormorant Garamond,serif;font-size:.9rem;font-style:italic}.loading-rune{text-align:center;padding:2rem;display:none}.loading-rune.visible{display:block}.rune-spin{color:var(--gold);opacity:.7;font-size:2rem;animation:2s linear infinite spin;display:inline-block}@keyframes spin{to{transform:rotate(360deg)}}.loading-rune p{color:var(--mist);letter-spacing:.05em;margin-top:.75rem;font-family:Cormorant Garamond,serif;font-size:.95rem;font-style:italic}.journal-entry{background:#ffffff05;border:1px solid #c9a84c26;border-radius:2px;margin-bottom:1rem;padding:1.25rem 1.5rem}.journal-entry .date{letter-spacing:.2em;color:var(--gold);margin-bottom:.5rem;font-family:Cinzel,serif;font-size:.6rem}.journal-entry .dream-snippet{color:#f5f0e8bf;margin-bottom:.6rem;font-size:1rem;font-style:italic;line-height:1.6}.journal-entry .tags{flex-wrap:wrap;gap:.4rem;display:flex}.journal-empty{text-align:center;color:var(--mist);opacity:.7;padding:2rem;font-style:italic}.topbar{z-index:3;justify-content:space-between;align-items:center;max-width:820px;margin:0 auto;padding:1.25rem 2rem 0;display:none;position:relative}.topbar.visible{display:flex}.topbar .user{color:var(--mist);font-size:.95rem;font-style:italic}.topbar .nav{gap:1rem;display:flex}.topbar .nav button{color:var(--mist);cursor:pointer;letter-spacing:.18em;background:0 0;border:none;font-family:Cinzel,serif;font-size:.65rem;transition:color .25s}.topbar .nav button:hover,.topbar .nav button.active{color:var(--gold-light)}footer{text-align:center;color:#8b7fa866;letter-spacing:.05em;z-index:2;padding:3rem 0 1rem;font-family:Cormorant Garamond,serif;font-size:.85rem;font-style:italic;position:relative}@media (width<=600px){header{padding:3.5rem 0 1.5rem}.panel{padding:1.5rem}.two-col{grid-template-columns:1fr}.moon{width:80px;height:80px}}
