/* v28 enhancements (Nov 5 site review with Tyzen + Hayden):
   resonance background, hover glows, springy scroll reveals, day/night theme, newsletter popup + footer signup.
   Loaded after each page's own <style>, so these rules win where they overlap. */

:root { --glow-gold: rgba(212, 175, 99, .55); --glow-violet: rgba(125, 92, 142, .45); --spring: cubic-bezier(.34, 1.56, .64, 1); }

/* Ambient resonance canvas sits behind everything */
#resonance { position: fixed; inset: 0; width: 100%; height: 100%; z-index: -1; pointer-events: none; }

/* Hover glows */
.btn { transition: background .25s, color .25s, border-color .25s, box-shadow .35s, transform .35s var(--spring); }
.btn:hover { box-shadow: 0 0 0 4px rgba(212,175,99,.14), 0 10px 30px -8px var(--glow-gold); transform: translateY(-2px); }
.offer, .post, .price-card, .prac-card, .levels article, .trio article .photo, .feature, .andara-band, .closing {
  transition: box-shadow .45s ease, transform .45s var(--spring), border-color .3s;
}
.offer:hover, .post:hover, .price-card:hover, .prac-card:hover, .levels article:hover {
  transform: translateY(-4px);
  box-shadow: 0 0 0 1px rgba(212,175,99,.35), 0 22px 50px -24px var(--glow-violet), 0 0 38px -10px var(--glow-gold);
  border-color: rgba(212,175,99,.6);
}
.trio article:hover .photo, .feature:hover, .andara-band:hover, .closing:hover {
  box-shadow: 0 0 46px -12px var(--glow-gold), 0 24px 60px -30px var(--glow-violet);
}
.photo img { transition: transform 1.2s cubic-bezier(.2,.7,.2,1); }
.offer:hover .photo img, .split:hover .photo img, .hero .photo:hover img { transform: scale(1.035); }
.nav a, .drop-btn { transition: color .2s, text-shadow .3s; }
.nav a:not(.btn):hover, .drop-btn:hover { text-shadow: 0 0 14px var(--glow-gold); }

/* Scroll reveals with a soft rubber-band settle */
.reveal { opacity: 0; transform: translateY(34px) scale(.985); transition: opacity .9s ease, transform 1.1s var(--spring); }
.reveal.in { opacity: 1; transform: none; }

/* Theme toggle button */
.theme-toggle { background: none; border: 1px solid var(--line); border-radius: 999px; width: 38px; height: 38px; display: inline-grid; place-items: center; color: var(--gold); cursor: pointer; flex: none; transition: box-shadow .3s, border-color .3s; }
.theme-toggle:hover { border-color: var(--gold); box-shadow: 0 0 18px -4px var(--glow-gold); }
.theme-toggle svg { width: 18px; height: 18px; }
.theme-toggle .sun { display: none; }
html[data-theme="night"] .theme-toggle .sun { display: block; }
html[data-theme="night"] .theme-toggle .moon { display: none; }
.site-header .wrap { gap: 1rem; }
.header-tools { display: flex; align-items: center; gap: .6rem; }

/* Night theme: Andara navy, gold and violet */
html[data-theme="night"] {
  --ground: #0E1630;
  --paper: #172142;
  --ink: #F2EDF5;
  --ink-soft: #C4BED6;
  --orchid: #C3A2D6;
  --orchid-wash: #262147;
  --gold: #D6B36A;
  --gold-soft: #E7D6AE;
  --line: #2C3660;
  color-scheme: dark;
}
html[data-theme="night"] .feature,
html[data-theme="night"] .andara-band,
html[data-theme="night"] .site-footer { background: #091027; color: #F2EDF5; border: 1px solid #222C52; }
html[data-theme="night"] .feature .btn.ghost:hover,
html[data-theme="night"] .feature .btn:hover { background: #F2EDF5; color: #0E1630; border-color: #F2EDF5; }
html[data-theme="night"] .site-footer h2 { color: #F2EDF5; }
html[data-theme="night"] .foot-offerings .foot-head { color: #F2EDF5; }
html[data-theme="night"] .btn { background: transparent; color: var(--ink); border-color: var(--gold); }
html[data-theme="night"] .btn:hover { background: var(--gold); color: #0E1630; border-color: var(--gold); }
html[data-theme="night"] .btn.gold { background: var(--gold); color: #0E1630; }
html[data-theme="night"] .btn.gold:hover { background: #F2EDF5; border-color: #F2EDF5; }
html[data-theme="night"] .feature .btn:not(.ghost) { background: var(--gold); color: #0E1630; }
html[data-theme="night"] .chip.gold { color: #4A3814; }
html[data-theme="night"] .closing { background: #1C1A40; }
html[data-theme="night"] .photo { background: linear-gradient(160deg, #262147, #3A3150); }

/* Newsletter: footer strip + timed popup */
.foot-news { margin-top: 36px; padding: 26px 0 4px; border-top: 1px solid rgba(255,255,255,.15); display: grid; grid-template-columns: 1fr auto; gap: 18px 32px; align-items: center; }
.foot-news h3 { font-family: var(--f-display); font-size: var(--step-1); font-weight: 400; }
.foot-news p { opacity: .75; font-size: var(--step--1); margin-top: .3rem; }
.news-form { display: flex; gap: 10px; flex-wrap: wrap; }
.news-form input[type="email"] { width: auto; min-width: 240px; flex: 1; border-radius: 999px; padding: 12px 18px; }
.site-footer .news-form input[type="email"] { background: rgba(255,255,255,.08); border-color: rgba(255,255,255,.25); color: #fff; }
.site-footer .news-form input::placeholder { color: rgba(255,255,255,.6); }
.news-form .btn { background: var(--gold); border-color: var(--gold); color: #0E1630; }
.news-msg { font-size: var(--step--1); color: var(--gold-soft); flex-basis: 100%; }
.news-msg:empty { display: none; }
@media (max-width: 760px) { .foot-news { grid-template-columns: 1fr; } .news-form input[type="email"] { min-width: 0; } }

.news-pop { position: fixed; inset: 0; z-index: 60; display: grid; place-items: center; padding: 20px; background: rgba(9, 16, 39, .55); backdrop-filter: blur(4px); opacity: 0; pointer-events: none; transition: opacity .5s ease; }
.news-pop.show { opacity: 1; pointer-events: auto; }
.news-card { position: relative; width: min(460px, 100%); background: #0E1630; color: #F2EDF5; border: 1px solid rgba(212,175,99,.45); border-radius: 18px; padding: 38px 32px 30px; display: grid; gap: 14px; text-align: center; box-shadow: 0 0 70px -18px var(--glow-gold), 0 30px 80px -30px rgba(0,0,0,.6); transform: translateY(24px) scale(.96); transition: transform .8s var(--spring); overflow: hidden; }
.news-pop.show .news-card { transform: none; }
.news-card .eyebrow { color: var(--gold-soft); }
.news-card h2 { font-family: var(--f-display); font-size: var(--step-2); color: #F2EDF5; }
.news-card p { color: #C4BED6; }
.news-card .news-form { justify-content: center; margin-top: 6px; }
.news-card .news-form input[type="email"] { background: rgba(255,255,255,.08); border-color: rgba(255,255,255,.25); color: #fff; min-width: 0; width: 100%; flex-basis: 100%; }
.news-card .news-form input::placeholder { color: rgba(255,255,255,.6); }
.news-card .news-form .btn { width: 100%; }
.news-close { position: absolute; top: 10px; right: 12px; background: none; border: 0; color: #C4BED6; font-size: 1.6rem; line-height: 1; cursor: pointer; padding: 6px 10px; }
.news-close:hover { color: var(--gold-soft); }
.news-rings { position: absolute; left: 50%; top: -190px; opacity: .45; width: 240px; height: 240px; transform: translateX(-50%); pointer-events: none; }
.news-rings span { position: absolute; inset: 0; border: 1px solid rgba(212,175,99,.5); border-radius: 50%; animation: ring 4.5s ease-out infinite; }
.news-rings span:nth-child(2) { animation-delay: 1.5s; }
.news-rings span:nth-child(3) { animation-delay: 3s; }
@keyframes ring { from { transform: scale(.2); opacity: .9; } to { transform: scale(1.6); opacity: 0; } }
.hp { position: absolute; left: -9999px; }

@media (prefers-reduced-motion: reduce) {
  .reveal { opacity: 1; transform: none; }
  #resonance { display: none; }
}
html[data-theme="night"] .feature .btn.ghost { background: transparent; color: #F2EDF5; border-color: rgba(242,237,245,.45); }
html[data-theme="night"] .feature .btn.ghost:hover { background: #F2EDF5; color: #0E1630; }
