@font-face{font-family:'Cinzel';src:url(/app/fonts/cinzel.woff) format('woff');font-weight:400 900;font-display:swap}
@font-face{font-family:'Cormorant Garamond';src:url(/app/fonts/cormorant.woff) format('woff');font-weight:300 700;font-display:swap}
@font-face{font-family:'Cormorant Garamond';src:url(/app/fonts/cormorant-italic.woff) format('woff');font-weight:300 700;font-style:italic;font-display:swap}
:root{--bg:#070a14;--bg2:#0d1120;--ink:#eadcc0;--muted:#b9ab92;--gold:#e2aa5a;--line:rgba(226,170,90,.22)}
*{box-sizing:border-box}html,body{margin:0}
body{background:radial-gradient(120% 60% at 50% 0%,#1a1220 0%,var(--bg) 55%) fixed,var(--bg);color:var(--ink);font-family:'Cormorant Garamond',Georgia,serif;font-size:19px;line-height:1.5;min-height:100vh;padding-bottom:calc(72px + env(safe-area-inset-bottom));-webkit-tap-highlight-color:transparent}
a{color:var(--gold)}
button{font:inherit;color:inherit;cursor:pointer}
h1,h2,h3{font-family:'Cinzel',serif;font-weight:600;letter-spacing:.05em;color:#f6e2ba;margin:.2em 0}
h1{font-size:1.15rem}h2{font-size:1.25rem;text-shadow:0 0 20px rgba(255,170,60,.3)}h3{font-size:.95rem;margin-top:1.4rem}
.tag{font-family:'Cinzel',serif;font-size:.68rem;letter-spacing:.16em;text-transform:uppercase;color:var(--gold);margin:0}
.muted{color:var(--muted)}.small{font-size:.92rem}
.top{position:sticky;top:0;z-index:5;display:flex;align-items:center;justify-content:space-between;gap:.6rem;padding:calc(.7rem + env(safe-area-inset-top)) 1rem .7rem;background:linear-gradient(180deg,rgba(7,10,20,.97),rgba(7,10,20,.85));border-bottom:1px solid var(--line);backdrop-filter:blur(6px)}
.brand{display:flex;align-items:center;gap:.6rem;min-width:0}.brand img{border-radius:50%;border:1px solid var(--line)}
.brand h1{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.lang{display:flex;border:1px solid var(--line);border-radius:999px;overflow:hidden;flex:none}
.lang button{background:none;border:0;padding:.35rem .8rem;font-family:'Cinzel',serif;font-size:.8rem;color:var(--muted)}
.lang button[aria-pressed=true]{background:var(--gold);color:#1a1208}
main{max-width:40rem;margin:0 auto;padding:1rem}
.view{display:none}.view.active{display:block}
.episodes{list-style:none;padding:0;margin:1rem 0;display:grid;gap:1rem}
.ep{border:1px solid var(--line);border-radius:14px;overflow:hidden;background:var(--bg2)}
.ep button.open{all:unset;display:block;width:100%;cursor:pointer}
.ep .thumb{position:relative;aspect-ratio:16/9;background:#111;display:block}
.ep .thumb img{width:100%;height:100%;object-fit:cover;display:block}
.ep .thumb.g{display:flex;align-items:flex-end;padding:.8rem}
.ep .thumb.g span{font-family:'Cinzel',serif;color:#f6e2ba;font-size:1.05rem;letter-spacing:.06em;text-shadow:0 2px 8px #000}
.g-A{background:radial-gradient(60% 70% at 50% 85%,rgba(255,140,40,.55),transparent 70%),linear-gradient(180deg,#0b1020,#2a1608)}
.g-B{background:radial-gradient(70% 60% at 70% 80%,rgba(230,170,80,.5),transparent 70%),linear-gradient(180deg,#0e1424,#3a2410)}
.g-C{background:radial-gradient(50% 60% at 30% 80%,rgba(255,150,60,.45),transparent 70%),linear-gradient(180deg,#070a14,#1d1426)}
.g-D{background:radial-gradient(70% 50% at 50% 100%,rgba(200,120,50,.45),transparent 70%),linear-gradient(180deg,#05101c,#14222e)}
.badge{position:absolute;top:.6rem;right:.6rem;font-family:'Cinzel',serif;font-size:.66rem;letter-spacing:.12em;text-transform:uppercase;padding:.25rem .6rem;border-radius:999px;background:rgba(7,10,20,.8);border:1px solid var(--line);color:var(--gold)}
.ep .body{padding:.8rem 1rem 1rem}
.ep h3{margin:.25rem 0 .3rem;font-size:1rem;line-height:1.35}
.ep p{margin:0;color:var(--muted);font-size:1rem}
.ep .meta{margin-top:.5rem;font-size:.88rem;color:var(--muted)}
.ep.soon{opacity:.82}.ep.soon button.open{cursor:default}
.prog{height:3px;background:rgba(255,255,255,.08)}.prog i{display:block;height:100%;background:var(--gold)}
.art{position:relative;aspect-ratio:16/9;border-radius:14px;overflow:hidden;border:1px solid var(--line);background:#000}
.art img,.art video{width:100%;height:100%;object-fit:cover;display:block}
.art video{position:absolute;inset:0}
#plTitle{margin:.3rem 0 .8rem;font-size:1.1rem;line-height:1.35}
.seek input{width:100%;accent-color:var(--gold)}
.times{display:flex;justify-content:space-between;font-size:.9rem;color:var(--muted)}
.controls{display:flex;justify-content:center;align-items:center;gap:1.4rem;margin:.8rem 0}
.round{width:58px;height:58px;border-radius:50%;border:1px solid var(--line);background:rgba(255,255,255,.03);font-family:'Cinzel',serif;font-size:.85rem}
.round.big{width:78px;height:78px;font-size:1.6rem;background:linear-gradient(180deg,#f0c27a,#d49442);color:#1a1208;border:0;box-shadow:0 0 30px rgba(226,140,50,.35)}
.modes,.chips{display:flex;flex-wrap:wrap;gap:.5rem;justify-content:center}
.chip{border:1px solid var(--line);background:rgba(255,255,255,.03);border-radius:999px;padding:.4rem .9rem;font-family:'Cinzel',serif;font-size:.78rem;letter-spacing:.06em}
.chip.on{background:var(--gold);color:#1a1208;border-color:var(--gold)}
.timer{text-align:center;margin-top:1rem}.timer h3{margin-bottom:.6rem}
.chapters{padding:0;list-style:none;margin:.5rem 0 1rem;border-top:1px solid var(--line)}
.chapters li button{all:unset;box-sizing:border-box;display:flex;gap:.8rem;width:100%;padding:.6rem .2rem;border-bottom:1px solid rgba(226,170,90,.12);cursor:pointer}
.chapters li .t{color:var(--muted);font-variant-numeric:tabular-nums;min-width:3.2rem}
.chapters li.cur button{color:var(--gold)}
.empty{text-align:center;color:var(--muted);padding:3rem 1rem}
.btn{display:inline-block;font-family:'Cinzel',serif;font-size:.85rem;letter-spacing:.08em;text-decoration:none;color:#1a1208;background:linear-gradient(180deg,#f0c27a,#d49442);padding:.6rem 1.2rem;border-radius:999px;border:0;margin:.4rem 0}
.link{background:none;border:0;color:var(--muted);font-size:1.4rem;padding:0 .4rem}
.install{max-width:40rem;margin:.8rem auto 0;padding:.7rem 1rem;border:1px solid var(--line);border-radius:12px;background:rgba(226,170,90,.06);display:flex;gap:.6rem;align-items:center;justify-content:space-between}
.install[hidden]{display:none}.install p{margin:0;font-size:.95rem}.install .row{display:flex;align-items:center;gap:.3rem;flex:none}
.tabs{position:fixed;left:0;right:0;bottom:0;z-index:6;display:flex;background:rgba(7,10,20,.97);border-top:1px solid var(--line);padding-bottom:env(safe-area-inset-bottom)}
.tabs button{flex:1;background:none;border:0;padding:.9rem .3rem;font-family:'Cinzel',serif;font-size:.74rem;letter-spacing:.08em;color:var(--muted)}
.tabs button.active{color:var(--gold);box-shadow:inset 0 2px 0 var(--gold)}
.dark{position:fixed;inset:0;z-index:50;background:#000;display:flex;align-items:flex-end;justify-content:center;opacity:0;transition:opacity 1.5s}
.dark.show{opacity:.985}
.dark p{color:#3a3328;font-size:.9rem;margin:0 0 calc(2rem + env(safe-area-inset-bottom));text-align:center}
.dark[hidden]{display:none}
/* ===== v2: sleep companion ===== */
:root{--ink2:#d9c9aa}
body{color:var(--ink2)}
.center{text-align:center}
button,.btn,.chip,.tile,.mood{min-height:48px}
.greet{font-family:'Cinzel',serif;color:#e9d3a8;font-size:1.05rem;letter-spacing:.04em;margin:.6rem 0 1rem}
.card{border:1px solid var(--line);border-radius:14px;padding:1rem;background:rgba(255,255,255,.02);margin:0 0 1rem}
.card.warm{background:linear-gradient(180deg,rgba(226,170,90,.09),rgba(226,170,90,.02));border-color:rgba(226,170,90,.4)}
.card h3{margin-top:0}
.cta{display:flex;flex-direction:column;gap:.35rem;width:100%;text-align:left;border:1px solid rgba(226,170,90,.5);border-radius:18px;padding:1.4rem 1.3rem;margin:0 0 1rem;
 background:radial-gradient(90% 120% at 85% 110%,rgba(226,130,40,.35),transparent 60%),linear-gradient(180deg,#151020,#0c0d18);box-shadow:0 0 50px rgba(226,140,50,.12) inset}
.cta-t{font-family:'Cinzel',serif;font-size:1.5rem;color:#f0d6a6;letter-spacing:.06em}
.cta-s{color:var(--muted);font-size:1rem}
.grid2{display:grid;grid-template-columns:1fr 1fr;gap:.8rem;margin-bottom:1rem}
.tile{display:flex;flex-direction:column;gap:.25rem;text-align:left;border:1px solid var(--line);border-radius:14px;padding:1rem;background:rgba(255,255,255,.02);min-height:96px}
.tile-t{font-family:'Cinzel',serif;font-size:.92rem;color:#e9d3a8;letter-spacing:.03em}
.tile-s{font-size:.92rem;color:var(--muted);line-height:1.3}
.btn{min-height:48px;cursor:pointer}
.btn.wide{display:block;width:100%;text-align:center;margin:.6rem 0}
.btn.ghost{background:transparent;color:var(--gold);border:1px solid rgba(226,170,90,.45)}
.btn.danger{background:transparent;color:#d48a7a;border:1px solid rgba(212,138,122,.45)}
.chip.big{padding:.6rem 1.2rem;font-size:.9rem}
.row2{display:flex;flex-wrap:wrap;gap:.6rem;align-items:center;margin:.5rem 0}
input[type=time],input[type=text],textarea{background:#0b0e1a;color:var(--ink2);border:1px solid var(--line);border-radius:10px;padding:.7rem .8rem;font:inherit;font-size:1.05rem;width:100%;color-scheme:dark}
input[type=time]{width:auto;min-height:48px}
textarea{resize:vertical;margin:.4rem 0}
input[type=text]{margin:.4rem 0}
.check{display:flex;gap:.7rem;align-items:flex-start;margin:.8rem 0;cursor:pointer;min-height:44px}
.check input{width:24px;height:24px;accent-color:var(--gold);flex:none;margin-top:.15rem}
.link.back{font-family:'Cinzel',serif;font-size:.85rem;padding:.4rem 0;color:var(--gold)}
.disclaimer{border:1px solid rgba(212,138,122,.3);background:rgba(212,138,122,.05);border-radius:10px;padding:.7rem .9rem;color:var(--muted);font-size:.92rem;margin-top:1.2rem}
.bar{height:6px;border-radius:6px;background:rgba(255,255,255,.07);overflow:hidden;margin-top:1rem}.bar i{display:block;height:100%;width:0;background:var(--gold)}
.nights{list-style:none;padding:0;margin:1rem 0;display:grid;gap:.6rem}
.nights button{all:unset;box-sizing:border-box;display:flex;gap:.9rem;align-items:center;width:100%;min-height:58px;padding:.7rem .9rem;border:1px solid var(--line);border-radius:12px;background:rgba(255,255,255,.02);cursor:pointer}
.nights .n{font-family:'Cinzel',serif;color:var(--gold);min-width:2rem;font-size:1.05rem}
.nights .nt{flex:1;color:var(--ink2)}
.nights .ns{font-size:.82rem;color:var(--muted);text-align:right;max-width:7.5rem}
.nights li.locked button{opacity:.5;cursor:default}
.nights li.done .n::after{content:' ✓';font-size:.8rem}
.lesson p{margin:.6rem 0}
.rate{display:flex;gap:.45rem;margin:.5rem 0}
.rate button{flex:1;min-height:52px;border-radius:12px;border:1px solid var(--line);background:rgba(255,255,255,.03);font-family:'Cinzel',serif;font-size:1.1rem}
.rate button.on,.opt.on{background:var(--gold);color:#1a1208;border-color:var(--gold)}
.opts{display:flex;flex-wrap:wrap;gap:.45rem;margin:.4rem 0 .6rem}
.opt{border:1px solid var(--line);background:rgba(255,255,255,.03);border-radius:999px;padding:.45rem .9rem;font-size:.95rem;min-height:44px}
.lbl{font-family:'Cinzel',serif;font-size:.78rem;letter-spacing:.08em;color:var(--muted);margin:.6rem 0 .1rem}
.chart svg{width:100%;height:auto;display:block}
.streaks{display:grid;grid-template-columns:repeat(3,1fr);gap:.5rem;margin-top:.8rem}
.streaks div{text-align:center;border:1px solid var(--line);border-radius:10px;padding:.6rem .3rem}
.streaks b{display:block;font-family:'Cinzel',serif;font-size:1.4rem;color:var(--gold)}
.streaks span{font-size:.82rem;color:var(--muted)}
.worries{list-style:none;padding:0;margin:.5rem 0}
.worries li{display:flex;gap:.7rem;align-items:flex-start;padding:.6rem 0;border-bottom:1px solid rgba(226,170,90,.12)}
.worries li input{width:24px;height:24px;accent-color:var(--gold);flex:none;margin-top:.2rem}
.worries .wt{flex:1}.worries .wn{display:block;font-size:.92rem;color:var(--gold)}
.worries li.done .wt{text-decoration:line-through;opacity:.6}
.calm{font-style:italic;color:#e9d3a8;text-align:center;font-size:1.15rem;margin:1rem 0}
.yt{position:absolute;inset:0}.yt iframe{width:100%;height:100%;border:0}
/* ritual */
.ritual{position:fixed;inset:0;z-index:40;overflow-y:auto;background:radial-gradient(120% 70% at 50% 110%,rgba(120,60,20,.25),transparent 60%),#05070e;padding:calc(1rem + env(safe-area-inset-top)) 1.2rem calc(2rem + env(safe-area-inset-bottom))}
.ritual[hidden]{display:none}
.r-top{display:flex;justify-content:space-between;align-items:center;max-width:36rem;margin:0 auto}
.r-step{display:none;max-width:36rem;margin:0 auto;padding-top:.6rem}
.r-step.active{display:block}
.moods{display:grid;grid-template-columns:1fr 1fr;gap:.8rem;margin-top:1.4rem}
.mood{min-height:96px;border-radius:16px;border:1px solid var(--line);background:rgba(255,255,255,.03);font-family:'Cinzel',serif;font-size:1.05rem;color:#e9d3a8}
.skip{display:block;margin:1rem auto 0;font-size:1rem;color:var(--muted)}
.pacer{position:relative;width:min(78vw,300px);aspect-ratio:1;margin:2.2rem auto 1rem;display:flex;align-items:center;justify-content:center}
.orb{position:absolute;inset:0;border-radius:50%;background:radial-gradient(circle at 50% 45%,rgba(240,190,110,.55),rgba(200,110,40,.22) 55%,rgba(120,60,20,0) 72%);transform:scale(.45);transition-property:transform;transition-timing-function:ease-in-out}
.orb-ring{position:absolute;inset:0;border-radius:50%;border:1px solid rgba(226,170,90,.25)}
.orb-text{position:relative;font-family:'Cinzel',serif;font-size:2rem;color:#f0d6a6;opacity:.85}
.phase{font-family:'Cinzel',serif;text-align:center;font-size:1.3rem;color:#e9d3a8;letter-spacing:.08em;margin:.4rem 0}
.ep.mini{margin:1rem 0}
.mini{position:fixed;left:.6rem;right:.6rem;bottom:calc(64px + env(safe-area-inset-bottom));z-index:6;display:flex;justify-content:space-between;align-items:center;gap:.8rem;padding:.6rem 1rem;border-radius:12px;border:1px solid var(--line);background:rgba(13,17,32,.97);text-align:left}
.mini[hidden]{display:none}
#miniT{overflow:hidden;white-space:nowrap;text-overflow:ellipsis;font-size:.95rem}#miniP{font-size:1.1rem;color:var(--gold)}
.toast{position:fixed;left:50%;bottom:calc(130px + env(safe-area-inset-bottom));transform:translateX(-50%);z-index:60;background:rgba(20,16,12,.96);border:1px solid var(--line);border-radius:999px;padding:.6rem 1.1rem;font-size:.95rem;max-width:90vw}
.toast[hidden]{display:none}
.tabs button{font-size:.68rem;padding:.95rem .15rem}
@media (prefers-reduced-motion:reduce){.orb{transition-duration:0s!important}}
main{padding-bottom:5rem}
.check input,.worries li input{appearance:none;-webkit-appearance:none;width:26px;height:26px;border-radius:7px;border:1.5px solid rgba(226,170,90,.6);background:#0b0e1a;display:inline-grid;place-content:center;cursor:pointer}
.check input:checked,.worries li input:checked{background:var(--gold);border-color:var(--gold)}
.check input:checked::after,.worries li input:checked::after{content:'';width:7px;height:13px;border:solid #1a1208;border-width:0 3px 3px 0;transform:rotate(45deg) translate(-1px,-1px)}
.check input:disabled{opacity:.4}
