*{box-sizing:border-box} :root{--bg:#080610;--panel:#110d1c;--panel2:#171025;--line:#2a2038;--text:#f7eafa;--muted:#b8a6c6;--pink:#fa4b9b;--violet:#b66aff;--gold:#ffbf55;--blue:#8b8cff;--green:#70d7ad}
body{margin:0;background:radial-gradient(ellipse at 50% 0%,#281339 0,#0a0710 48%,#07050b 100%);color:var(--text);font-family:ui-rounded,"SF Pro Rounded",system-ui,sans-serif;font-size:14px;min-height:100vh}
button,input,select,textarea{font:inherit}button{cursor:pointer;color:inherit}.app-shell{max-width:520px;margin:auto;min-height:100dvh;padding:env(safe-area-inset-top) 12px calc(94px + env(safe-area-inset-bottom));position:relative}
.top{height:66px;display:flex;align-items:center;justify-content:space-between;gap:8px}.brand{display:flex;align-items:center;gap:8px;text-align:center}.brandmark{font-size:35px;color:#f4a2f2;text-shadow:0 0 18px #ce58ff}.brand h1{font-family:Georgia,serif;font-weight:500;letter-spacing:1px;font-size:27px;margin:0}.brand small{color:#d9a9e7;font-size:10px;letter-spacing:.4px}.iconbtn{border:1px solid #33213f;background:#130d20;border-radius:13px;width:39px;height:39px;font-size:19px}
h2{font:24px Georgia,serif;margin:9px 0 14px}h3{font-size:15px;margin:0 0 10px}.muted{color:var(--muted)}.tiny{font-size:11px;color:var(--muted)}.panel{background:linear-gradient(145deg,rgba(27,18,41,.97),rgba(11,9,18,.98));border:1px solid var(--line);border-radius:17px;padding:14px;margin:12px 0;box-shadow:0 7px 24px #0004}.panelhead{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:12px}.pill{border:1px solid #3b2850;border-radius:999px;padding:7px 11px;background:#1b1228;color:#e7c9f7}.primary{background:linear-gradient(120deg,#8f45b6,#d74aaf);border:0;border-radius:13px;padding:11px 15px;font-weight:650;box-shadow:0 0 17px #a33edc44}.secondary{background:#171020;border:1px solid #3a2a49;border-radius:12px;padding:9px 12px}.week{display:grid;grid-template-columns:repeat(7,1fr);gap:5px;margin:10px 0 13px}.weekday{border:1px solid #392743;background:#181220;border-radius:22px;text-align:center;padding:8px 0 7px;color:#e4cfe9;min-height:59px}.weekday strong{display:block;font-size:12px;margin-top:7px}.weekday .mark{height:7px;font-size:10px;color:var(--pink)}.weekday.today{outline:2px solid #f78be3;border-color:#f78be3;background:#39203f}
.wheelpanel{text-align:center;padding:12px 10px 15px;overflow:hidden}.wheel{width:min(78vw,330px);height:min(78vw,330px);max-width:330px;max-height:330px;margin:0 auto;position:relative;border-radius:50%;background:radial-gradient(circle,#100b19 0 48%,transparent 49%);border:1px solid #32203d;box-shadow:inset 0 0 35px #7e31aa20,0 0 22px #7e31aa12}
.wheel:before{content:"";position:absolute;inset:14px;border-radius:50%;border:1px dashed #473052}.wheel-dot{position:absolute;width:19px;height:19px;border-radius:50%;border:1px solid #ffffff60;box-shadow:0 2px 7px #0008;transform:translate(-50%,-50%);padding:0}.wheel-dot.selected{width:25px;height:25px;border:3px solid #fff1fb;box-shadow:0 0 0 3px #e95ac8,0 0 16px #fa7be4}.wheel-center{position:absolute;inset:27%;display:flex;align-items:center;justify-content:center;flex-direction:column;text-align:center}.moon{font-size:31px;color:#dca4ff;text-shadow:0 0 15px #b85aff}.phase-name{font-size:11px;color:#e6c1f4;text-transform:uppercase;letter-spacing:1px}.daynum{font:31px Georgia,serif;margin:3px 0}.flowtag{font-size:11px;background:#21152c;border:1px solid #3c2949;padding:6px 10px;border-radius:20px}.phaselabels{display:flex;justify-content:space-around;gap:4px;margin:8px 0 0;font-size:9px;letter-spacing:.4px;text-transform:uppercase}.nextcards{display:grid;grid-template-columns:1fr 1fr;gap:9px}.mini{border-radius:14px;padding:12px;background:#130e1c;border:1px solid #32233f;display:flex;gap:8px;align-items:center}.mini .emoji{font-size:24px}.mini strong{display:block;font-size:12px}.mini small{color:var(--muted);font-size:10px}
.dragonpreview{display:flex;align-items:center;gap:13px}.egg-art{font-size:62px;filter:drop-shadow(0 0 12px var(--egg,#d77aff));line-height:1}.egg-gem{display:inline-block;font-size:52px;filter:drop-shadow(0 0 10px var(--egg,#d77aff));background:linear-gradient(135deg,#fff,#e6b9ff 45%,#7a42ba);color:transparent;background-clip:text;-webkit-background-clip:text}.progress{height:9px;background:#2b1b37;border-radius:99px;overflow:hidden;margin-top:8px}.progress span{display:block;height:100%;background:linear-gradient(90deg,#d04dcb,#ff7dc8);border-radius:99px}
.grid2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.grid3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:7px}.tile{border:1px solid #352641;border-radius:13px;background:#120d1b;padding:12px 8px;text-align:center;min-height:80px}.tile .tileicon{font-size:23px;display:block;margin-bottom:7px;color:#e49cff}.tile.active{border-color:#ed85f2;box-shadow:0 0 0 1px #d55ce5,0 0 16px #b03bcc35;background:#26142f}.bottomnav{position:fixed;z-index:10;bottom:0;left:50%;transform:translateX(-50%);width:min(100%,520px);padding:8px 8px calc(8px + env(safe-area-inset-bottom));display:flex;justify-content:space-around;align-items:center;background:#0d0915ed;border-top:1px solid #382342;backdrop-filter:blur(18px)}.nav{background:transparent;border:0;color:#a38caf;display:flex;flex-direction:column;align-items:center;gap:3px;font-size:10px;min-width:48px}.nav span{font-size:22px}.nav.active{color:#f18ce9}.addnav{border:0;border-radius:50%;width:51px;height:51px;background:linear-gradient(145deg,#b65ad6,#e04cb6);font-size:31px;box-shadow:0 0 18px #c244c955}
.calendar-head{display:flex;align-items:center;justify-content:space-between}.monthgrid{display:grid;grid-template-columns:repeat(7,1fr);gap:3px;text-align:center}.dow{font-size:10px;color:#a991b5;padding:8px 0}.calday{min-height:43px;border:1px solid transparent;background:transparent;border-radius:9px;padding:5px 0 2px;font-size:12px;position:relative}.calday.other{color:#67596f}.calday.period{background:#9f285c;color:white}.calday.follicular{background:#713e9d}.calday.ovulation{background:#b37a22;color:#fff3d8}.calday.luteal{background:#45449a}.calday.predicted{outline:1px dashed #ff8abf}.calday.today{border-color:#fff0ff;box-shadow:0 0 0 1px #e989ee}.dotrow{font-size:8px;color:#e7a0ff;line-height:9px}
.formrow{margin:12px 0}.formrow label{display:block;margin-bottom:7px;color:#dfc9e9}.formrow input,.formrow select,.formrow textarea{width:100%;background:#0c0913;border:1px solid #342540;border-radius:11px;color:#fff;padding:11px}.formrow textarea{min-height:78px}.choice{border:1px solid #392746;background:#171020;color:#ead8f1;border-radius:20px;padding:8px 10px;margin:3px;font-size:12px}.choice.active{background:#9e3eab;border-color:#f08af0}.legend{display:flex;flex-wrap:wrap;gap:10px;font-size:10px;color:#c9b6d5}.legend i{display:inline-block;width:8px;height:8px;border-radius:50%;margin-right:4px}
.modalback{position:fixed;inset:0;background:#000b;z-index:20;display:flex;align-items:flex-end;justify-content:center}.modalback.hidden{display:none}.modal{width:min(100%,520px);max-height:90dvh;overflow:auto;background:#100b19;border:1px solid #493050;border-radius:22px 22px 0 0;padding:20px 16px calc(24px + env(safe-area-inset-bottom))}.modal h2{margin-top:0}.row{display:flex;gap:8px;align-items:center}.row>*{flex:1}.eggchoice{border:1px solid #342540;background:#171020;border-radius:12px;padding:10px 4px;text-align:center}.eggchoice .egg-gem{font-size:32px}.eggchoice.active{border-color:#f18be9;box-shadow:0 0 0 1px #e67ae5}.bar{display:flex;gap:7px;flex-wrap:wrap}.bar button{flex:1}.empty{padding:24px 8px;text-align:center;color:#b9a6c5}.danger{color:#ff7b91}.listitem{padding:11px 0;border-bottom:1px solid #2d2138;display:flex;justify-content:space-between;gap:8px}.stat{background:#171020;border:1px solid #30213d;padding:12px;border-radius:12px}.stat b{font-size:20px;display:block}.settingsline{display:flex;align-items:center;justify-content:space-between;padding:12px 0;border-bottom:1px solid #2c2035}

.egg-art-img{display:block;width:min(58%,190px);height:190px;object-fit:contain;margin:0 auto;filter:drop-shadow(0 0 13px var(--egg,#d77aff));}
.small-egg{width:72px;height:84px;margin:0 auto 5px;filter:drop-shadow(0 0 8px var(--egg,#d77aff));}
.eggchoice{min-height:122px}

.wheel-dot{cursor:pointer;touch-action:manipulation;transition:transform .15s ease,box-shadow .15s ease}
.wheel-dot:active{transform:translate(-50%,-50%) scale(1.18)}
.wheel-dot.fertile-dot{box-shadow:0 0 0 2px #9df6c7,0 0 12px #6df0bd;z-index:2}
.wheel-dot.selected{z-index:4;width:27px;height:27px;border:3px solid #fff;box-shadow:0 0 0 4px #f27ce6,0 0 20px #ff7ae9}
.calday{cursor:pointer;touch-action:manipulation}
.calday.today{border:2px solid #fff;box-shadow:0 0 0 2px #f27ce6,0 0 14px #f27ce6;background-image:radial-gradient(circle at center,#ffffff22,transparent 75%)}
.calday:active{transform:scale(.96)}

/* v8: selected date is distinct from today's marker */
.calday.selected { position:relative; outline:2px solid #f1d6ff !important; outline-offset:1px; box-shadow:0 0 0 3px rgba(194,117,255,.22),0 0 18px rgba(190,115,255,.38); background-image:linear-gradient(145deg,rgba(204,143,255,.28),rgba(111,61,160,.20)); color:#fff !important; z-index:1; }
.calday.today:not(.selected) { border:1px solid rgba(255,226,155,.85); }
.dragon-realm { position:relative; overflow:hidden; border:1px solid color-mix(in srgb,var(--realm-glow) 45%,transparent); min-height:330px; background:radial-gradient(ellipse at 50% 18%,color-mix(in srgb,var(--realm-glow) 34%,transparent),transparent 42%),radial-gradient(ellipse at 12% 88%,rgba(89,56,133,.38),transparent 42%),linear-gradient(160deg,#21112f,#0c0918 72%); }
.dragon-realm::before { content:"";position:absolute;inset:0;pointer-events:none;opacity:.48;background:radial-gradient(circle at 15% 22%,#fff 0 1px,transparent 2px),radial-gradient(circle at 78% 16%,#fff 0 1px,transparent 2px),radial-gradient(circle at 84% 66%,var(--realm-glow) 0 1px,transparent 3px),radial-gradient(circle at 22% 72%,var(--realm-glow) 0 1px,transparent 3px),radial-gradient(ellipse at 50% 100%,color-mix(in srgb,var(--realm-glow) 22%,transparent),transparent 54%); }
.dragon-realm > * { position:relative;z-index:1; }
.realm-name { font-family:Georgia,serif;font-size:1.25rem;color:#f0d9ff;letter-spacing:.04em;margin:8px 0 4px;text-shadow:0 0 16px var(--realm-glow); }
.realm-desc { max-width:34rem;margin:0 auto 14px;color:#d2c4df;font-size:.9rem; }
.realm-stars { color:#f3d8ff;letter-spacing:.25em;opacity:.8;margin-top:6px; }
.realm-forest { background:radial-gradient(ellipse at 50% 80%,#24553e,transparent 56%),radial-gradient(ellipse at 50% 10%,#243d48,transparent 45%),linear-gradient(#101d24,#0c1018 80%); }
.realm-moonstone { background:radial-gradient(ellipse at 50% 70%,#6385b8,transparent 45%),radial-gradient(ellipse at 50% 10%,#4b3d79,transparent 45%),linear-gradient(#11162d,#0c0918); }
.realm-amethyst { background:radial-gradient(ellipse at 50% 70%,#7946a7,transparent 48%),linear-gradient(155deg,#27133f,#0c0918 78%); }
.realm-aurora { background:radial-gradient(ellipse at 20% 20%,#237b79,transparent 38%),radial-gradient(ellipse at 70% 20%,#7043a5,transparent 42%),linear-gradient(#111a32,#0c0918); }
.realm-obsidian { background:radial-gradient(ellipse at 50% 75%,#66384c,transparent 48%),linear-gradient(#211322,#09070e 80%); }
.realm-ocean { background:radial-gradient(ellipse at 50% 75%,#1d7188,transparent 48%),linear-gradient(#13283c,#080c18 80%); }
.realm-rose { background:radial-gradient(ellipse at 50% 75%,#873e70,transparent 48%),linear-gradient(#2a142c,#0c0918 80%); }
.realm-sunrise { background:radial-gradient(ellipse at 50% 75%,#9d6a37,transparent 48%),linear-gradient(#34203a,#100a18 80%); }

.dragon-name-field { max-width:26rem; margin:12px auto 10px; padding:12px; border:1px solid rgba(220,184,255,.22); border-radius:14px; background:rgba(9,6,20,.35); text-align:left; }
.dragon-name-field label { display:block; color:#ead6ff; font-size:.85rem; margin-bottom:7px; }
.name-row { display:flex; gap:8px; align-items:center; }
.name-row input { min-width:0; flex:1; }
.dragon-name-field small { display:block; margin-top:7px; color:#bba9cc; font-size:.75rem; }

/* v11: visible habitat/home scene for the dragon */
.habitat-panel { overflow:hidden; border-color:color-mix(in srgb,var(--realm-glow) 42%,transparent); }
.habitat-scene { position:relative;height:230px;overflow:hidden;border-radius:15px;margin:12px 0;background:radial-gradient(ellipse at 50% 75%,color-mix(in srgb,var(--realm-glow) 42%,transparent),transparent 48%),linear-gradient(180deg,#111329,#1c1533 58%,#0b101a);isolation:isolate; }
.habitat-scene::before { content:"";position:absolute;inset:0;background:radial-gradient(circle at 12% 23%,#fff 0 1px,transparent 2px),radial-gradient(circle at 80% 17%,#fff 0 1px,transparent 2px),radial-gradient(circle at 72% 40%,var(--realm-glow) 0 2px,transparent 4px),radial-gradient(circle at 22% 55%,#f5d6ff 0 1px,transparent 3px),radial-gradient(ellipse at 50% 100%,rgba(7,9,20,.9),transparent 65%);z-index:-1; }
.habitat-moon { position:absolute;right:18%;top:17px;font-size:42px;color:#f5d9ff;text-shadow:0 0 22px var(--realm-glow); }
.habitat-spark { position:absolute;color:#f5d9ff;text-shadow:0 0 12px var(--realm-glow); }
.spark-one { left:19%;top:24%;font-size:22px; }.spark-two { right:27%;top:47%;font-size:19px; }
.habitat-crystal { position:absolute;bottom:28px;width:25px;background:linear-gradient(135deg,#f3d7ff,var(--realm-glow) 45%,#4d3a78);clip-path:polygon(50% 0,100% 35%,78% 100%,20% 100%,0 35%);filter:drop-shadow(0 0 9px var(--realm-glow));opacity:.88; }
.crystal-one { height:75px;left:13%; }.crystal-two {height:110px;right:13%;width:32px}.crystal-three {height:49px;right:28%;width:18px;bottom:20px}
.habitat-hills { position:absolute;left:-8%;right:-8%;bottom:-45px;height:105px;border-radius:50% 50% 0 0;background:linear-gradient(180deg,color-mix(in srgb,var(--realm-glow) 25%,#171229),#080b15);z-index:-1; }
.habitat-nest { position:absolute;bottom:18px;left:50%;transform:translateX(-50%);width:150px;height:72px;border-radius:50%;background:repeating-radial-gradient(ellipse at 50% 30%,#8e648c 0 3px,#49304e 4px 7px,#21172b 8px 10px);box-shadow:0 0 25px color-mix(in srgb,var(--realm-glow) 48%,transparent); }
.nest-glow {position:absolute;inset:4px 15px 20px;border-radius:50%;background:radial-gradient(ellipse,var(--realm-glow),transparent 70%);opacity:.7}
.nest-egg {position:absolute;left:50%;bottom:18px;transform:translateX(-50%);height:88px;display:flex;align-items:center;justify-content:center}
.nest-egg img {height:88px;width:78px;object-fit:contain;filter:drop-shadow(0 0 10px var(--realm-glow))}
.habitat-dragon {font-size:54px;text-shadow:0 0 18px currentColor;filter:drop-shadow(0 0 8px currentColor)}
.habitat-caption {text-align:center;margin-bottom:5px}
.realm-forest .habitat-scene {background:radial-gradient(ellipse at 50% 80%,#24553e,transparent 60%),linear-gradient(#101d24,#0c1018)}
.realm-moonstone .habitat-scene {background:radial-gradient(ellipse at 50% 70%,#6385b8,transparent 50%),linear-gradient(#11162d,#0c0918)}
.realm-amethyst .habitat-scene {background:radial-gradient(ellipse at 50% 70%,#7946a7,transparent 50%),linear-gradient(#27133f,#0c0918)}
.realm-aurora .habitat-scene {background:radial-gradient(ellipse at 20% 20%,#237b79,transparent 40%),radial-gradient(ellipse at 70% 20%,#7043a5,transparent 45%),linear-gradient(#111a32,#0c0918)}
.realm-ocean .habitat-scene {background:radial-gradient(ellipse at 50% 75%,#1d7188,transparent 50%),linear-gradient(#13283c,#080c18)}
.realm-rose .habitat-scene {background:radial-gradient(ellipse at 50% 75%,#873e70,transparent 50%),linear-gradient(#2a142c,#0c0918)}
.realm-sunrise .habitat-scene {background:radial-gradient(ellipse at 50% 75%,#9d6a37,transparent 50%),linear-gradient(#34203a,#100a18)}
.realm-obsidian .habitat-scene {background:radial-gradient(ellipse at 50% 75%,#66384c,transparent 50%),linear-gradient(#211322,#09070e)}

/* v12: bring the habitat into Lunaria's ornate gothic-celestial style */
.habitat-panel {
  position:relative; padding:18px; overflow:hidden;
  border:1px solid rgba(211,166,255,.38);
  border-radius:20px;
  background:linear-gradient(145deg,rgba(31,18,48,.96),rgba(12,8,24,.98));
  box-shadow:inset 0 0 0 1px rgba(255,221,255,.045),0 12px 34px rgba(0,0,0,.22);
}
.habitat-panel::before {
  content:"✧  ·  ☾  ·  ✧";display:block;text-align:center;
  color:#cba4ed;letter-spacing:.55em;font-size:12px;margin:-3px 0 12px;
}
.habitat-panel .panelhead {align-items:center;padding-bottom:12px;border-bottom:1px solid rgba(207,168,255,.18);margin-bottom:13px}
.habitat-panel .panelhead h3 {font-family:Georgia,serif;font-weight:500;letter-spacing:.025em;color:#f0d9ff;text-shadow:0 0 12px color-mix(in srgb,var(--realm-glow) 35%,transparent)}
.habitat-panel .tiny {color:#c4b0d9}
.habitat-scene {
  height:260px;border:1px solid color-mix(in srgb,var(--realm-glow) 42%,rgba(221,185,255,.2));
  border-radius:16px;
  box-shadow:inset 0 0 0 4px rgba(10,7,22,.35),inset 0 0 28px rgba(8,5,18,.45),0 0 22px color-mix(in srgb,var(--realm-glow) 16%,transparent);
  background-image:radial-gradient(ellipse at 50% 76%,color-mix(in srgb,var(--realm-glow) 40%,transparent),transparent 50%),linear-gradient(180deg,#17132e 0%,#292044 55%,#0c0b19 100%);
}
.habitat-scene::after {content:"";position:absolute;inset:8px;border:1px solid rgba(229,201,255,.16);border-radius:11px;pointer-events:none}
.habitat-moon {right:17%;top:20px;font-size:45px;color:#f9e9ff;text-shadow:0 0 8px #fff,0 0 22px var(--realm-glow),0 0 40px var(--realm-glow);transform:rotate(-12deg)}
.habitat-orbit {position:absolute;right:8%;top:9px;width:105px;height:64px;border:1px solid rgba(230,202,255,.25);border-radius:50%;transform:rotate(-25deg)}
.habitat-spark {color:#fbe9ff;text-shadow:0 0 8px #fff,0 0 16px var(--realm-glow);animation:habitatTwinkle 3.4s ease-in-out infinite}
.spark-two {animation-delay:1.4s}
.habitat-frame-corner {position:absolute;z-index:3;top:7px;color:#e0b8f8;font-size:22px;opacity:.8}
.corner-tl {left:10px}.corner-tr {right:10px;transform:scaleX(-1)}
.habitat-flower {position:absolute;bottom:38px;color:color-mix(in srgb,var(--realm-glow) 70%,#f3c6ef);font-size:25px;text-shadow:0 0 12px var(--realm-glow);opacity:.9}
.flower-left {left:8%;transform:rotate(-15deg)}.flower-right {right:8%;bottom:58px;font-size:21px}
.habitat-crystal {filter:drop-shadow(0 0 8px var(--realm-glow)) drop-shadow(0 0 16px color-mix(in srgb,var(--realm-glow) 42%,transparent));border:1px solid rgba(255,255,255,.3)}
.habitat-nest {width:164px;height:77px;bottom:17px;border:1px solid rgba(226,184,255,.38);background:repeating-radial-gradient(ellipse at 50% 30%,#a27ca2 0 2px,#69476d 3px 5px,#33223f 6px 9px);box-shadow:0 0 18px color-mix(in srgb,var(--realm-glow) 38%,transparent),inset 0 5px 12px rgba(255,226,255,.15)}
.nest-glow {inset:2px 12px 20px;filter:blur(3px);opacity:.9}
.nest-egg img {filter:drop-shadow(0 0 8px var(--realm-glow)) drop-shadow(0 0 17px rgba(219,177,255,.42))}
.habitat-caption {font-family:Georgia,serif;color:#e0cde9!important;line-height:1.6;margin-top:12px}
.habitat-panel > .tiny:last-child {text-align:center;letter-spacing:.02em;margin-top:10px}
@keyframes habitatTwinkle {0%,100%{opacity:.5;transform:scale(.9)}50%{opacity:1;transform:scale(1.12)}}
@media (prefers-reduced-motion:reduce){.habitat-spark{animation:none}}

/* v13 — unified moonlit gothic-celestial finish across the whole app */
:root { --lunaria-lilac:#d9b8ff; --lunaria-pink:#e889d8; --lunaria-ink:#0b0816; --lunaria-panel:#171025; }
body {
  background:
    radial-gradient(ellipse at 12% 8%,rgba(105,67,145,.18),transparent 32%),
    radial-gradient(ellipse at 92% 28%,rgba(95,59,135,.13),transparent 34%),
    linear-gradient(180deg,#0a0813 0%,#100a1d 52%,#090710 100%);
}
body::before {
  content:"✦　·　✧　　　 ☾　　　 ✧　·　✦";
  position:fixed;top:8px;left:0;right:0;text-align:center;pointer-events:none;
  color:rgba(215,181,255,.14);font-size:11px;letter-spacing:.24em;z-index:0;
}
#app, main, .app, #view { position:relative; }
.panel, .card, .stat, .modal, .settings-card {
  border-color:rgba(207,168,255,.22);
  background:linear-gradient(145deg,rgba(27,18,43,.94),rgba(13,9,24,.97));
  box-shadow:inset 0 1px 0 rgba(255,238,255,.035),0 10px 28px rgba(0,0,0,.13);
  border-radius:18px;
}
h1,h2,h3 { font-family:Georgia,'Times New Roman',serif; letter-spacing:.018em; }
h1,h2 { text-shadow:0 0 18px rgba(185,133,255,.16); }
button, .nav-item, .tab, .chip, .pill {
  transition:transform .16s ease, box-shadow .2s ease, border-color .2s ease, background .2s ease;
}
button:active, .nav-item:active { transform:scale(.97); }
button.primary, button:not(.secondary):not(.eggchoice):not([data-date]):not([data-wheeld]) {
  box-shadow:0 0 0 1px rgba(242,207,255,.08),0 0 18px rgba(183,91,218,.12);
}
input, textarea, select {
  background:rgba(11,7,20,.82)!important;color:#f7edff!important;
  border:1px solid rgba(211,173,255,.28)!important;border-radius:12px!important;
}
input:focus, textarea:focus, select:focus {
  outline:2px solid rgba(215,174,255,.55);outline-offset:2px;
  box-shadow:0 0 18px rgba(174,104,226,.17);
}
.muted, .tiny { color:#b9a8cc; }
.listitem { border-bottom-color:rgba(205,166,245,.13); }
.stat b { color:#f0d8ff; }
.progress { border:1px solid rgba(218,180,255,.22);background:#21152d;overflow:hidden; }
.progress span { background:linear-gradient(90deg,#8b5bc4,#e889d8,#f1c9ff);box-shadow:0 0 14px rgba(217,157,255,.48); }
.panelhead { gap:12px; }
.calday, .wheel-day, [data-wheeld] {
  border-color:rgba(205,168,244,.22);
}
.calday.selected, [data-wheeld].selected {
  border-color:#f2d8ff!important;
  box-shadow:0 0 0 2px rgba(214,164,255,.24),0 0 18px rgba(190,115,255,.36)!important;
}
.bottom-nav, nav, .navbar {
  background:rgba(12,8,21,.94);backdrop-filter:blur(16px);
  border-top:1px solid rgba(206,164,255,.2);
}
.eggchoice { border:1px solid rgba(210,168,255,.22);background:linear-gradient(145deg,rgba(42,26,59,.9),rgba(15,10,25,.96));border-radius:15px; }
.eggchoice:active { box-shadow:0 0 20px var(--egg); }
.realm-stars { text-shadow:0 0 12px #dcb5ff; }
#view > h2:first-child { margin-top:6px; }
#view > h2:first-child::after {
  content:"  ✧ ☾ ✧";font-size:.55em;color:#c8a2ed;vertical-align:middle;
}
@keyframes lunariaGlow { 0%,100%{opacity:.55}50%{opacity:1} }
.realm-stars, .habitat-spark { animation:lunariaGlow 4s ease-in-out infinite; }
@media (prefers-reduced-motion:reduce) {
  *,*::before,*::after { animation:none!important;transition:none!important;scroll-behavior:auto!important; }
}
