*{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; }
}

/* v14: illustrated habitat + more lavish fantasy finish throughout */
.habitat-scene {height:clamp(290px,78vw,430px);background:#100b20!important;overflow:hidden;border:1px solid rgba(231,194,255,.65);box-shadow:inset 0 0 0 4px rgba(14,8,24,.7),0 0 28px rgba(176,111,255,.22);}
.habitat-art {position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center 58%;z-index:0;filter:saturate(1.05) contrast(1.03);}
.habitat-scene::before {z-index:1;opacity:.25;background:linear-gradient(180deg,rgba(10,5,23,.04),transparent 50%,rgba(10,5,23,.32));}
.habitat-scene::after {z-index:5;border:1px solid rgba(235,204,255,.32);box-shadow:inset 0 0 20px rgba(8,4,19,.18);}
.habitat-frame-corner,.habitat-moon,.habitat-orbit,.habitat-spark,.habitat-flower,.habitat-crystal,.habitat-nest,.habitat-hills {z-index:2}
.habitat-moon,.habitat-orbit {display:none}
.habitat-nest {width:54%;max-width:250px;height:25%;min-height:62px;bottom:9%;background:repeating-radial-gradient(ellipse at 50% 30%,#b28a9e 0 2px,#77516f 3px 5px,#352039 6px 8px);border:1px solid rgba(241,207,255,.5);box-shadow:0 0 25px color-mix(in srgb,var(--realm-glow) 48%,transparent),inset 0 4px 14px rgba(255,228,255,.2);z-index:3}
.habitat-nest .nest-egg {bottom:15%;height:140%;z-index:4}
.habitat-nest .nest-egg img {height:clamp(105px,31vw,175px);width:clamp(90px,26vw,145px);object-fit:contain}
.habitat-hills {display:none}
.habitat-crystal {opacity:.28;bottom:12%;z-index:2}
.habitat-panel {background:linear-gradient(145deg,rgba(29,17,44,.98),rgba(10,7,19,.98));}
.habitat-caption {font-size:1rem;}
/* Add a more enchanted finish to all other screens, not just the dragon page. */
body {background-image:radial-gradient(ellipse at 12% 8%,rgba(126,74,169,.22),transparent 32%),radial-gradient(ellipse at 92% 30%,rgba(89,62,153,.18),transparent 34%),radial-gradient(ellipse at 48% 100%,rgba(90,44,119,.12),transparent 40%),linear-gradient(180deg,#090711,#120a20 54%,#08060f);}
.panel,.stat,.modal,.settings-card {position:relative;overflow:hidden;border-color:rgba(213,172,255,.29);box-shadow:inset 0 1px 0 rgba(255,239,255,.055),0 12px 30px rgba(0,0,0,.2),0 0 20px rgba(119,70,164,.045);}
.panel::after {content:"";position:absolute;inset:5px;border:1px solid rgba(220,185,255,.055);border-radius:inherit;pointer-events:none;}
.panel h2,.panel h3 {color:#f0dcff;text-shadow:0 0 16px rgba(189,134,255,.2);}
button.primary,.primary {background:linear-gradient(120deg,#8d52bb,#d54bb7)!important;border:1px solid rgba(255,221,255,.35)!important;box-shadow:0 0 18px rgba(198,91,222,.22),inset 0 1px 0 rgba(255,255,255,.15);}
.calday.selected,[data-wheeld].selected {background:linear-gradient(145deg,rgba(194,128,255,.4),rgba(115,64,160,.38))!important;box-shadow:0 0 0 2px rgba(231,194,255,.28),0 0 18px rgba(195,123,255,.42)!important;}
input,textarea,select {box-shadow:inset 0 1px 4px rgba(0,0,0,.25);}
.bottom-nav,nav,.navbar {box-shadow:0 -8px 30px rgba(0,0,0,.2);}
@media (max-width:600px){.habitat-panel{padding:13px}.habitat-scene{height:clamp(300px,95vw,410px)}}

/* v15: storybook fantasy home header, with the cycle wheel kept clear and readable */
.home-enchanted-hero {position:relative;min-height:210px;height:clamp(210px,56vw,300px);margin:0 0 18px;border:1px solid rgba(224,184,255,.48);border-radius:20px;overflow:hidden;background:#10091e;box-shadow:inset 0 0 0 4px rgba(9,5,17,.45),0 0 28px rgba(174,106,233,.16);}
.home-enchanted-hero img {position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center 45%;filter:saturate(1.04) contrast(1.03);}
.home-enchanted-hero .hero-veil {position:absolute;inset:0;background:linear-gradient(180deg,rgba(8,5,18,.18),rgba(10,5,20,.1) 35%,rgba(10,5,20,.86));}
.home-enchanted-hero .hero-copy {position:absolute;inset:auto 16px 17px;text-align:center;color:#f7eaff;text-shadow:0 2px 14px #080411;}
.hero-kicker {font-size:.65rem;letter-spacing:.2em;color:#e7c4ff;margin-bottom:6px}
.home-enchanted-hero h1 {font-family:Georgia,serif;font-size:clamp(1.9rem,8vw,3rem);letter-spacing:.17em;margin:0;text-shadow:0 0 18px #b77ce6,0 2px 8px #000;}
.home-enchanted-hero p {margin:5px 0 0;color:#e9d8f8;font-size:.95rem;}
.wheelpanel {background:radial-gradient(ellipse at 50% 45%,rgba(91,56,126,.22),transparent 55%),linear-gradient(145deg,rgba(23,14,36,.98),rgba(10,7,19,.98));}
.phaselabels {display:flex;flex-wrap:wrap;justify-content:center;gap:10px 14px}
.nextcards .mini {border:1px solid rgba(207,165,255,.2);background:linear-gradient(145deg,rgba(35,22,51,.92),rgba(13,8,23,.95));border-radius:15px;}
.weekday.today {box-shadow:0 0 0 2px rgba(225,139,225,.6),0 0 17px rgba(220,109,222,.25);}
.calendar-head {border-bottom:1px solid rgba(216,174,255,.2);}
.calday {background:rgba(15,10,26,.74);}
.phase-guidance {background:linear-gradient(145deg,rgba(42,22,53,.96),rgba(15,9,24,.98));}

/* v16: replace artificial concentric platform with a natural woven nest */
.habitat-nest {
 width:min(62%,270px)!important;height:84px!important;min-height:84px;bottom:8%!important;
 border:0!important;border-radius:50%;
 background:radial-gradient(ellipse at 50% 36%,rgba(250,220,255,.18),transparent 52%),
 repeating-linear-gradient(12deg,transparent 0 5px,rgba(218,175,204,.88) 6px 8px,rgba(81,48,76,.92) 9px 12px),
 repeating-linear-gradient(-14deg,#a67a9b 0 4px,#573858 5px 8px,#2b1a35 9px 12px)!important;
 box-shadow:0 8px 16px rgba(0,0,0,.42),inset 0 8px 10px rgba(255,231,255,.2),0 0 26px color-mix(in srgb,var(--realm-glow) 30%,transparent)!important;
 transform:translateX(-50%) perspective(100px) rotateX(8deg);
}
.habitat-nest::before {content:"";position:absolute;inset:-8px -6px 20px;border-radius:50%;border:7px solid #795476;border-top-color:#c49abd;border-left-color:#b08bb2;border-right-color:#604264;box-shadow:inset 0 4px 8px rgba(255,231,255,.2),0 2px 7px rgba(0,0,0,.3)}
.habitat-nest::after {content:"";position:absolute;inset:8px 15px 18px;border-radius:50%;background:radial-gradient(ellipse at 50% 30%,rgba(250,224,255,.3),rgba(51,27,57,.75) 68%);box-shadow:inset 0 8px 12px rgba(0,0,0,.35)}
.nest-glow {z-index:1!important;inset:5px 18px 20px!important;opacity:.45!important}
.nest-egg {z-index:3!important;bottom:22px!important;height:140%!important}
.nest-egg img {position:relative;z-index:4;height:clamp(110px,31vw,170px)!important;width:clamp(90px,26vw,145px)!important;filter:drop-shadow(0 0 12px var(--realm-glow)) drop-shadow(0 0 22px rgba(231,190,255,.35))!important}
.habitat-dragon {display:none!important}
.habitat-scene {isolation:isolate}
.habitat-art {z-index:0}
.habitat-scene::before {z-index:1}
.habitat-scene::after {z-index:6}
.habitat-crystal,.habitat-flower,.habitat-spark,.habitat-frame-corner {z-index:2}
.habitat-nest {z-index:3}
.nest-egg {z-index:4}

/* v17 — approved mockup direction: image-led personal realms, no artificial platform */
.home-enchanted-hero {display:none!important}
.habitat-scene {position:relative!important;height:clamp(300px,92vw,470px)!important;overflow:hidden!important;border-radius:18px!important;border:1px solid rgba(226,188,255,.58)!important;background:#0b0817!important;box-shadow:inset 0 0 0 4px rgba(10,5,20,.5),0 0 28px rgba(181,120,255,.18)!important;isolation:isolate}
.habitat-art {position:absolute!important;inset:0!important;width:100%!important;height:100%!important;object-fit:cover!important;object-position:center 50%!important;z-index:1!important;filter:saturate(1.08) contrast(1.04)!important}
.habitat-scene::before {content:"";position:absolute;inset:0;z-index:2;pointer-events:none;background:linear-gradient(180deg,rgba(9,5,19,.05),transparent 52%,rgba(9,5,19,.16))}
.habitat-scene::after {content:"";position:absolute;inset:8px;z-index:3;border:1px solid rgba(238,211,255,.3);border-radius:12px;pointer-events:none}
.habitat-nest,.nest-glow,.nest-egg,.habitat-dragon,.habitat-hills,.habitat-crystal,.habitat-moon,.habitat-orbit,.habitat-spark,.habitat-flower,.habitat-frame-corner {display:none!important}
.wheelpanel {position:relative;overflow:hidden;border:1px solid rgba(224,183,255,.36)!important;background:radial-gradient(ellipse at 50% 45%,rgba(118,72,162,.27),transparent 58%),linear-gradient(145deg,#1b102c,#0a0715 78%)!important;box-shadow:inset 0 0 0 1px rgba(242,216,255,.05),0 0 28px rgba(143,88,205,.12)!important}
.wheelpanel::before {content:"☾  ✧  ·  ✦  ·  ✧  ☽";display:block;text-align:center;color:#d7b3f5;letter-spacing:.35em;font-size:12px;padding:2px 0 10px;text-shadow:0 0 14px #9e70ce}
.wheel {filter:drop-shadow(0 0 12px rgba(182,117,255,.12))}
.wheel svg circle {filter:drop-shadow(0 0 3px currentColor)}
.phaselabels {padding-top:12px;gap:10px 14px;justify-content:center;flex-wrap:wrap}
.phaselabels span {text-shadow:0 0 10px currentColor;letter-spacing:.06em;font-size:.8rem}
.week {gap:8px}
.week > * {border:1px solid rgba(212,173,255,.22);background:linear-gradient(150deg,rgba(40,24,57,.92),rgba(13,9,23,.95));box-shadow:inset 0 1px 0 rgba(255,255,255,.035)}
.calendar-head {border-bottom:1px solid rgba(222,185,255,.26);padding-bottom:12px}
.calendar-head button {border:1px solid rgba(211,171,255,.3);background:rgba(57,34,79,.42);box-shadow:0 0 12px rgba(179,114,240,.1)}
.calday {position:relative;border:1px solid rgba(203,166,242,.17)!important;background:linear-gradient(145deg,rgba(30,19,44,.94),rgba(12,8,21,.98))!important;border-radius:10px!important;min-height:42px;box-shadow:inset 0 1px 0 rgba(255,255,255,.025)}
.calday.selected {outline:1px solid #f0d2ff!important;outline-offset:1px;background:linear-gradient(145deg,rgba(177,111,227,.44),rgba(65,37,94,.75))!important;box-shadow:0 0 0 2px rgba(208,160,255,.18),0 0 17px rgba(190,117,255,.32)!important}
.calday.today:not(.selected) {border-color:#f3c6e9!important;box-shadow:0 0 12px rgba(225,133,217,.18)}
.calendar-head h2,.calendar-head h3 {font-family:Georgia,serif;color:#f0d9ff}
.habitat-panel {background:linear-gradient(145deg,rgba(25,15,39,.97),rgba(9,6,18,.99))!important}

/* v18 fixes: reliable logging, visible wheel selection, crisp realm artwork */
.wheel-dot {cursor:pointer;z-index:5;transition:transform .15s ease,box-shadow .15s ease;touch-action:manipulation}
.wheel-dot.selected {transform:translate(-50%,-50%) scale(1.22)!important;outline:3px solid #fff0ff!important;outline-offset:3px;box-shadow:0 0 0 5px rgba(218,161,255,.45),0 0 24px 8px rgba(222,164,255,.8)!important;z-index:10!important}
.wheel-dot:focus-visible {outline:3px solid white;outline-offset:4px}
.wheel-dot.fertile-dot:not(.selected) {box-shadow:0 0 12px rgba(155,255,204,.9)}
.habitat-scene {height:clamp(340px,98vw,500px)!important}
.habitat-art {object-position:center 55%!important;image-rendering:auto}
.habitat-scene::before,.habitat-scene::after {pointer-events:none}

/* v19: one crisp illustrated stage scene per realm; no separate egg overlay or platform */
.habitat-scene {height:clamp(340px,88vw,470px)!important;max-height:470px!important;background:#10091e!important}
.habitat-art {object-fit:cover!important;object-position:center 50%!important;image-rendering:auto!important}
.habitat-scene::before {background:linear-gradient(180deg,rgba(9,5,19,.02),transparent 68%,rgba(9,5,19,.08))!important}
.habitat-nest,.nest-glow,.nest-egg,.habitat-dragon,.habitat-hills,.habitat-crystal,.habitat-moon,.habitat-orbit,.habitat-spark,.habitat-flower,.habitat-frame-corner {display:none!important}

/* v20: keep the original egg artwork separate and sharp over its realm background */
.habitat-scene {position:relative;isolation:isolate;overflow:hidden;height:clamp(340px,88vw,470px)!important;border-radius:18px}
.habitat-art {position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center 48%;filter:none!important;transform:none!important}
.habitat-egg-layer {position:absolute;z-index:4;left:50%;bottom:9%;transform:translateX(-50%);width:42%;height:48%;display:flex;align-items:flex-end;justify-content:center;pointer-events:none}
.habitat-egg-layer[hidden] {display:none!important}
.habitat-egg-layer img {display:block;width:auto;height:100%;max-width:100%;object-fit:contain;image-rendering:auto;filter:drop-shadow(0 0 12px rgba(220,180,255,.42)) drop-shadow(0 8px 12px rgba(0,0,0,.4))}
.habitat-scene::before {z-index:2;pointer-events:none}
.habitat-scene::after {z-index:5;pointer-events:none}
