:root{--bg:#f5f3fb;--panel:#ffffff;--panel-2:#faf8ff;--ink:#241a3d;--muted:#6b6380;--line:#e7e1f2;--line-strong:#d8cfec;--brand:#6d28d9;--brand-2:#4c1d95;--brand-soft:#efe9fb;--gold:#c8a13a;--green:#0f766e;--danger:#dc2626;--shadow:0 8px 30px -14px rgba(60,30,110,.35);--sans:system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;--serif:Georgia,"Times New Roman",serif;--radius:16px}[data-theme=dark]{--bg:#120c22;--panel:#1b1430;--panel-2:#20183a;--ink:#ece7f7;--muted:#a99fc4;--line:#2c2348;--line-strong:#3a2f5c;--brand:#a78bfa;--brand-2:#8b5cf6;--brand-soft:#241a3d;--gold:#e6c463;--green:#5eead4;--danger:#f87171;--shadow:0 10px 34px -16px rgba(0,0,0,.7)}*{box-sizing:border-box;margin:0;padding:0}html,body,#root{min-height:100%}body{background:var(--bg);color:var(--ink);font-family:var(--sans);line-height:1.55;transition:background .3s ease,color .3s ease;-webkit-font-smoothing:antialiased}a{color:inherit}button{font-family:inherit;cursor:pointer}.app-bg{position:fixed;top:0;right:0;bottom:0;left:0;z-index:-1;opacity:.9;transition:background .5s ease}[data-theme=light] .app-bg{opacity:.14}.shell{max-width:520px;margin:0 auto;padding:0 18px 90px}header.top{display:flex;align-items:center;justify-content:space-between;padding:18px 0 10px;position:sticky;top:0;background:linear-gradient(var(--bg),var(--bg) 70%,transparent);z-index:20}.brand{display:flex;align-items:center;gap:11px}.brand img{width:42px;height:42px;border-radius:50%;box-shadow:var(--shadow)}.brand .t{display:flex;flex-direction:column;line-height:1.1}.brand .t b{font-family:var(--serif);font-size:19px;letter-spacing:.01em}.brand .t span{font-size:11px;color:var(--muted);letter-spacing:.14em;text-transform:uppercase}.top-actions{display:flex;align-items:center;gap:8px}.icon-btn{width:38px;height:38px;border-radius:12px;border:1px solid var(--line-strong);background:var(--panel);color:var(--ink);display:grid;place-items:center;transition:all .15s}.icon-btn:hover{border-color:var(--brand);color:var(--brand)}.tabs{display:flex;gap:6px;background:var(--panel);border:1px solid var(--line);border-radius:14px;padding:5px;margin:6px 0 18px}.tabs button{flex:1;border:none;background:transparent;color:var(--muted);font-weight:600;font-size:14px;padding:9px;border-radius:10px;transition:all .15s}.tabs button.active{background:var(--brand);color:#fff;box-shadow:var(--shadow)}.card{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);padding:16px;margin-bottom:16px;box-shadow:var(--shadow)}.card h3{font-size:13px;text-transform:uppercase;letter-spacing:.08em;color:var(--muted);margin-bottom:12px;font-weight:700}.eyebrow{font-size:11px;letter-spacing:.18em;text-transform:uppercase;color:var(--brand)}.status{display:flex;align-items:center;justify-content:space-between;min-height:34px}.status .now{display:flex;align-items:center;gap:10px;font-family:var(--serif);font-size:20px}.pulse{color:var(--brand);animation:pulse 1.6s ease-in-out infinite}@keyframes pulse{0%,to{opacity:.3}50%{opacity:1}}.countdown{background:var(--brand-soft);color:var(--brand);font-weight:700;padding:5px 12px;border-radius:10px;font-variant-numeric:tabular-nums}.play-btn{width:100%;padding:18px;border:none;border-radius:var(--radius);font-size:19px;font-weight:800;letter-spacing:.02em;color:#fff;background:linear-gradient(135deg,var(--brand),var(--brand-2));box-shadow:var(--shadow);transition:transform .12s,opacity .2s}.play-btn:hover{transform:translateY(-1px)}.play-btn.stop{background:linear-gradient(135deg,#e11d48,#be123c)}.play-btn:disabled{opacity:.5;cursor:default;transform:none;background:var(--line-strong)}.pills{display:grid;grid-template-columns:repeat(auto-fit,minmax(80px,1fr));gap:8px}.pill{border:1px solid var(--line-strong);background:var(--panel-2);color:var(--ink);font-weight:600;font-size:13px;padding:10px 8px;border-radius:11px;transition:all .15s;text-align:center}.pill:hover{border-color:var(--brand)}.pill.on{background:var(--brand);color:#fff;border-color:var(--brand)}.track{display:flex;align-items:center;justify-content:space-between;padding:12px;border:1px solid var(--line);border-radius:12px;margin-bottom:8px;background:var(--panel-2);transition:all .15s;cursor:pointer}.track.on{border-color:var(--brand);background:var(--brand-soft)}.track .l{display:flex;align-items:center;gap:11px}.track .dot{width:11px;height:11px;border-radius:50%}.track .title{font-weight:600;font-size:15px}.track .cat{font-size:12px;color:var(--muted)}input[type=checkbox]{width:20px;height:20px;accent-color:var(--brand)}.slider-row{margin-bottom:16px}.slider-row label{display:flex;justify-content:space-between;align-items:center;font-size:13px;color:var(--muted);margin-bottom:8px;font-weight:600}.slider-row .val{color:var(--brand);font-weight:800;font-size:15px}input[type=range]{width:100%;accent-color:var(--brand);height:6px}.field{width:100%;padding:11px 13px;border:1px solid var(--line-strong);border-radius:11px;background:var(--panel-2);color:var(--ink);font-size:14px;font-family:inherit;resize:none}.field:focus{outline:none;border-color:var(--brand)}.btn{border:none;border-radius:11px;padding:11px 16px;font-weight:700;font-size:14px;color:#fff;background:var(--brand);transition:opacity .15s}.btn:hover{opacity:.9}.btn:disabled{opacity:.5;cursor:default}.btn.ghost{background:transparent;color:var(--brand);border:1px solid var(--line-strong)}.verse{border-left:4px solid var(--brand)}.verse p.text{font-family:var(--serif);font-style:italic;font-size:16px;margin-bottom:6px}.verse .src{color:var(--brand);font-weight:700;font-size:13px}.note{font-size:12px;color:var(--muted);display:flex;gap:8px;align-items:flex-start;background:var(--panel-2);border:1px dashed var(--line-strong);border-radius:11px;padding:10px 12px;margin-top:10px}.toast{position:fixed;left:50%;bottom:24px;transform:translate(-50%);background:var(--ink);color:var(--bg);padding:11px 18px;border-radius:12px;font-size:14px;box-shadow:var(--shadow);z-index:60;max-width:90%}.modal-bg{position:fixed;top:0;right:0;bottom:0;left:0;background:#140c28b3;display:grid;place-items:center;padding:18px;z-index:70}.modal{background:var(--panel);border-radius:18px;box-shadow:var(--shadow);max-width:400px;width:100%;padding:22px;text-align:center}.footer{text-align:center;color:var(--muted);font-size:12px;margin-top:22px}.footer .v{font-family:ui-monospace,monospace}.footer button{background:none;border:none;color:var(--brand);font-size:12px;text-decoration:underline;font-family:ui-monospace,monospace}.journal-entry{background:var(--panel-2);border:1px solid var(--line);border-radius:12px;padding:12px;margin-bottom:10px}.journal-entry .meta{font-size:11px;color:var(--muted);margin-top:6px}@media (min-width:560px){.shell{padding-left:0;padding-right:0}}.colophon{display:flex;align-items:center;gap:12px;margin:18px 0 8px;padding-top:16px;border-top:1px solid var(--line)}.colophon img{border-radius:50%;flex:none;opacity:.9}.colophon div{display:flex;flex-direction:column;line-height:1.35}.colophon span{font-size:13px;color:var(--muted)}.colophon small{font-size:11px;color:var(--muted);opacity:.75}.back-btn{margin-bottom:16px}.section-blurb{font-size:13px;color:var(--muted);margin:-4px 0 10px}.credit-row{padding:11px 0;border-top:1px solid var(--line)}.credit-row:first-of-type{border-top:none;padding-top:2px}.credit-name{font-size:14px;color:var(--ink)}.credit-detail{font-size:12px;color:var(--muted);margin-top:3px}.credit-row.pending .credit-name{color:var(--muted)}.pending-pill{font-size:10px;color:var(--gold);border:1px solid var(--line-strong);border-radius:999px;padding:1px 7px;margin-left:6px;white-space:nowrap}.colophon .credits-link{background:none;border:none;padding:0;margin-top:4px;text-align:left;font-size:11px;color:var(--brand);text-decoration:underline;text-underline-offset:2px;font-family:inherit}.btn.ghost{background:transparent;border:1px solid var(--line-strong);color:var(--ink)}.tier-pill{font-size:10px;font-weight:700;letter-spacing:.04em;color:var(--gold);border:1px solid var(--line-strong);border-radius:999px;padding:1px 7px;margin-left:7px;text-transform:none;white-space:nowrap}.track.locked{opacity:.62}.track.locked .title{color:var(--muted)}.lock{font-size:14px;opacity:.7}.pill.locked{opacity:.6}.pill.locked:hover{border-color:var(--line-strong)}.app-bg{position:fixed;top:0;right:0;bottom:0;left:0;z-index:-1;overflow:hidden;transition:background .8s ease}.app-bg:before,.app-bg:after{content:"";position:absolute;top:-25%;right:-25%;bottom:-25%;left:-25%;pointer-events:none}[data-theme=light] .app-bg{opacity:.16}[data-theme=dark] .app-bg{opacity:1}.app-bg[data-bg=default]{background:linear-gradient(170deg,#241a3d,#120d21 60%,#0b0814)}.app-bg[data-bg=default]:before{background:radial-gradient(38% 28% at 78% 8%,rgba(196,180,255,.16),transparent 70%);animation:drift-slow 190s ease-in-out infinite}.app-bg[data-bg=default]:after{background:radial-gradient(60% 45% at 20% 95%,rgba(76,29,149,.32),transparent 70%);animation:breathe 74s ease-in-out infinite}.app-bg[data-bg=stars]{background:radial-gradient(130% 95% at 50% 0%,#241f46,#100f22 55%,#07060f)}.app-bg[data-bg=stars]:before{background-image:radial-gradient(1.6px 1.6px at 12% 18%,rgba(255,255,255,.85),transparent),radial-gradient(1.2px 1.2px at 33% 62%,rgba(255,255,255,.55),transparent),radial-gradient(1.8px 1.8px at 58% 27%,rgba(255,255,255,.75),transparent),radial-gradient(1.1px 1.1px at 71% 71%,rgba(255,255,255,.5),transparent),radial-gradient(1.5px 1.5px at 86% 38%,rgba(255,255,255,.8),transparent),radial-gradient(1.2px 1.2px at 46% 86%,rgba(255,255,255,.45),transparent),radial-gradient(1.4px 1.4px at 24% 44%,rgba(255,255,255,.6),transparent),radial-gradient(1px 1px at 92% 12%,rgba(255,255,255,.5),transparent);animation:twinkle 26s ease-in-out infinite}.app-bg[data-bg=stars]:after{background-image:radial-gradient(1px 1px at 8% 74%,rgba(255,255,255,.4),transparent),radial-gradient(1.3px 1.3px at 40% 12%,rgba(255,255,255,.55),transparent),radial-gradient(1px 1px at 64% 54%,rgba(255,255,255,.35),transparent),radial-gradient(1.2px 1.2px at 79% 88%,rgba(255,255,255,.5),transparent);animation:drift-slow 220s linear infinite,twinkle 37s ease-in-out infinite reverse}.app-bg[data-bg=candle]{background:linear-gradient(170deg,#1c1209,#120c07 55%,#080503)}.app-bg[data-bg=candle]:before{background:radial-gradient(42% 38% at 50% 78%,rgba(230,160,60,.2),transparent 72%);animation:flicker 9s ease-in-out infinite}.app-bg[data-bg=candle]:after{background:radial-gradient(70% 55% at 50% 100%,rgba(140,80,20,.22),transparent 70%);animation:breathe 52s ease-in-out infinite}.app-bg[data-bg=rain]{background:linear-gradient(175deg,#1b2733,#121a24 55%,#090e14)}.app-bg[data-bg=rain]:before{background-image:repeating-linear-gradient(8deg,rgba(180,205,230,.05) 0 1px,transparent 1px 7px);animation:rainfall 4.2s linear infinite}.app-bg[data-bg=rain]:after{background:radial-gradient(85% 55% at 50% 0%,rgba(120,160,200,.12),transparent 70%);animation:breathe 66s ease-in-out infinite}.app-bg[data-bg=forest]{background:linear-gradient(170deg,#16291f,#0e1c15 55%,#060d0a)}.app-bg[data-bg=forest]:before{background:radial-gradient(48% 62% at 18% 100%,rgba(6,20,12,.85),transparent 72%),radial-gradient(42% 58% at 52% 100%,rgba(4,16,10,.8),transparent 72%),radial-gradient(50% 66% at 85% 100%,rgba(6,20,12,.85),transparent 72%)}.app-bg[data-bg=forest]:after{background:linear-gradient(180deg,transparent 42%,rgba(150,190,170,.09) 62%,transparent 82%);animation:mist 96s ease-in-out infinite}.app-bg[data-bg=deep]{background:linear-gradient(180deg,#0e3038,#082129,#030c10)}.app-bg[data-bg=deep]:before{background:radial-gradient(90% 40% at 50% -6%,rgba(120,220,230,.16),transparent 72%);animation:breathe 58s ease-in-out infinite}.app-bg[data-bg=deep]:after{background-image:repeating-linear-gradient(100deg,rgba(150,230,235,.045) 0 2px,transparent 2px 26px);animation:caustics 44s ease-in-out infinite}.app-bg[data-bg=desert]{background:linear-gradient(180deg,#2f2418,#241c12 45%,#100c07)}.app-bg[data-bg=desert]:before{background:linear-gradient(180deg,transparent 30%,rgba(200,130,60,.16) 46%,transparent 58%);animation:breathe 88s ease-in-out infinite}.app-bg[data-bg=desert]:after{background:radial-gradient(75% 40% at 50% 100%,rgba(90,66,38,.45),transparent 72%)}.app-bg[data-bg=dawn]{background:linear-gradient(175deg,#3a2f52,#4a3c60 45%,#2a2140)}.app-bg[data-bg=dawn]:before{background:radial-gradient(40% 22% at 24% 34%,rgba(255,205,190,.16),transparent 70%),radial-gradient(46% 26% at 72% 56%,rgba(255,190,180,.13),transparent 70%);animation:drift-slow 168s ease-in-out infinite}.app-bg[data-bg=dawn]:after{background:radial-gradient(80% 36% at 50% 104%,rgba(255,170,140,.14),transparent 70%);animation:breathe 80s ease-in-out infinite}@keyframes drift-slow{0%{transform:translateZ(0)}50%{transform:translate3d(-4%,2%,0)}to{transform:translateZ(0)}}@keyframes breathe{0%,to{opacity:.75}50%{opacity:1}}@keyframes twinkle{0%,to{opacity:.55}50%{opacity:1}}@keyframes mist{0%{transform:translate3d(-12%,0,0)}50%{transform:translate3d(12%,-2%,0)}to{transform:translate3d(-12%,0,0)}}@keyframes caustics{0%,to{transform:translateZ(0);opacity:.6}50%{transform:translate3d(3%,1%,0);opacity:1}}@keyframes rainfall{0%{transform:translate3d(0,-7px,0)}to{transform:translateZ(0)}}@keyframes flicker{0%,to{opacity:.88}22%{opacity:1}41%{opacity:.82}58%{opacity:.96}77%{opacity:.86}}@media (prefers-reduced-motion:reduce){.app-bg:before,.app-bg:after{animation:none!important}}.dimmer{position:fixed;top:0;right:0;bottom:0;left:0;z-index:50;background:#000;pointer-events:none;transition:opacity .35s ease}.bg-mood{font-size:12px;color:var(--muted);margin-top:10px;min-height:1.2em}.swatches{display:grid;grid-template-columns:repeat(auto-fit,minmax(88px,1fr));gap:8px}.swatch{position:relative;border:1px solid var(--line-strong);border-radius:12px;overflow:hidden;padding:0;height:58px;cursor:pointer;transition:border-color .15s,transform .12s}.swatch:hover{transform:translateY(-1px)}.swatch.on{border-color:var(--brand);box-shadow:0 0 0 1px var(--brand)}.swatch .fill{position:absolute;top:0;right:0;bottom:0;left:0}.swatch .name{position:absolute;left:0;right:0;bottom:0;padding:4px 6px;font-size:11px;font-weight:600;color:#fff;background:linear-gradient(transparent,#000000bf);text-align:left}.swatch.locked{opacity:.55}.journal-entry .meta{display:flex;justify-content:space-between;align-items:center;gap:10px}.journal-entry .remove{background:none;border:none;padding:0;font-family:inherit;font-size:11px;color:var(--muted);text-decoration:underline;text-underline-offset:2px;cursor:pointer;flex:none}.journal-entry .remove:hover{color:var(--danger)}
