:root{
  --bg:#0a1328; --bg2:#101c38; --card-rgb:16,28,56; --line:#2a3c66; --text:#eef0f6; --muted:#9fb0cf;
  --gold:#f1cf7d; --gold2:#fbe7b4; --rose:#ee9a9a; --green:#93d8b0; --btn-text:#1a1530;
  --card:rgba(var(--card-rgb),.72); --card-solid:rgb(var(--card-rgb)); --soft:rgba(var(--card-rgb),.55);
  --track:color-mix(in srgb,var(--line) 70%,transparent); --hair:color-mix(in srgb,var(--line) 60%,transparent);
  --serif:'EB Garamond',Georgia,serif; --sans:'Inter',-apple-system,system-ui,sans-serif;
  --safe-b:env(safe-area-inset-bottom); --safe-t:env(safe-area-inset-top);
}
*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}
html{background:var(--bg)}
html,body{margin:0;color:var(--text);font-family:var(--sans);font-size:15px;line-height:1.5}
body{min-height:100vh;background:transparent}
#bgart{position:fixed;inset:0;z-index:-2;background-size:cover;background-position:center;transition:opacity .8s;transform:scale(1.04)}
#bgveil{position:fixed;inset:0;z-index:-1;background:linear-gradient(180deg,color-mix(in srgb,var(--bg) 18%,transparent) 0%,color-mix(in srgb,var(--bg) 62%,transparent) 26%,color-mix(in srgb,var(--bg) 90%,transparent) 55%,var(--bg) 100%)}
body.tab-today #bgveil{background:linear-gradient(180deg,transparent 0%,color-mix(in srgb,var(--bg) 25%,transparent) 22%,color-mix(in srgb,var(--bg) 88%,transparent) 50%,var(--bg) 78%)}
button{font:inherit;color:inherit;cursor:pointer}
input,textarea,select{font:inherit;color:var(--text);background:color-mix(in srgb,var(--bg2) 85%,transparent);border:1px solid var(--line);border-radius:10px;padding:10px 12px;width:100%}
textarea{min-height:90px;resize:vertical}
input:focus,textarea:focus,select:focus{outline:none;border-color:var(--gold)}
input::placeholder,textarea::placeholder{color:var(--muted);opacity:.8}
label{display:block;font-size:13px;color:var(--muted);margin:12px 0 6px}
h1,h2,h3{font-family:var(--serif);font-weight:500;margin:0}
h1{font-size:30px;line-height:1.15} h2{font-size:23px} h3{font-size:19px}
a{color:var(--gold)}
.hidden{display:none!important}
.muted{color:var(--muted)} .small{font-size:13px} .tiny{font-size:11px;letter-spacing:.08em;text-transform:uppercase}
.gold{color:var(--gold)} .serif{font-family:var(--serif)}
.row{display:flex;gap:10px;align-items:center} .row.wrap{flex-wrap:wrap} .grow{flex:1}
.between{justify-content:space-between}
.grid2{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.grid3{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}

#app{max-width:680px;margin:0 auto;padding:calc(var(--safe-t) + 14px) 16px calc(var(--safe-b) + 96px)}
.topbar{display:flex;justify-content:space-between;align-items:flex-end;gap:10px;margin:6px 2px 16px;text-shadow:0 1px 12px color-mix(in srgb,var(--bg) 70%,transparent)}
.topbar .date{font-size:13px;color:var(--muted)}
.hero{min-height:38vh;display:flex;flex-direction:column;justify-content:flex-end;padding:0 4px 18px;text-shadow:0 2px 18px rgba(0,0,0,.45)}
.hero .date{font-size:13px;opacity:.85}
.hero h1{font-size:36px}
.theme-light .hero{text-shadow:0 1px 14px rgba(255,255,255,.6)}
.card{background:var(--card);-webkit-backdrop-filter:blur(16px) saturate(1.2);backdrop-filter:blur(16px) saturate(1.2);border:1px solid var(--hair);border-radius:20px;padding:16px;margin-bottom:14px;box-shadow:0 10px 30px rgba(0,0,0,.18)}
.card.flat{background:var(--soft);box-shadow:none}
.card h3{margin-bottom:8px}
.card-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:10px;gap:8px}
.btn{background:color-mix(in srgb,var(--bg2) 75%,transparent);border:1px solid var(--line);border-radius:12px;padding:10px 14px;font-size:14px;color:var(--text)}
.btn.primary{background:linear-gradient(180deg,color-mix(in srgb,var(--gold) 85%,white),var(--gold));color:var(--btn-text);border:none;font-weight:600}
.btn.ghost{background:transparent;border-color:transparent}
.btn.danger{border-color:color-mix(in srgb,var(--rose) 50%,transparent);color:var(--rose)}
.btn.block{width:100%;display:block;text-align:center}
.btn.sm{padding:6px 10px;font-size:13px;border-radius:10px}
.btn:active{transform:scale(.98)}
.btn:disabled{opacity:.5}
.chip{display:inline-block;padding:6px 11px;border-radius:999px;border:1px solid var(--line);background:color-mix(in srgb,var(--bg2) 70%,transparent);font-size:13px;margin:0 6px 6px 0;user-select:none;cursor:pointer}
.chip.on{background:color-mix(in srgb,var(--gold) 22%,transparent);border-color:var(--gold);color:var(--gold2)}
.pill{display:inline-block;padding:2px 9px;border-radius:999px;font-size:12px;background:var(--track);color:var(--muted);white-space:nowrap}
.pill.good{background:color-mix(in srgb,var(--green) 18%,transparent);color:var(--green)} .pill.bad{background:color-mix(in srgb,var(--rose) 18%,transparent);color:var(--rose)}
hr{border:none;border-top:1px solid var(--hair);margin:14px 0}

/* nav */
#nav{position:fixed;left:0;right:0;bottom:0;background:color-mix(in srgb,var(--bg) 82%,transparent);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);border-top:1px solid var(--hair);padding:6px 6px calc(var(--safe-b) + 6px);display:flex;justify-content:center;z-index:20}
#nav .inner{display:flex;max-width:680px;width:100%}
#nav button{flex:1;background:none;border:none;padding:6px 0;color:var(--muted);font-size:10.5px;display:flex;flex-direction:column;align-items:center;gap:3px}
#nav button svg{width:22px;height:22px;stroke:currentColor;fill:none;stroke-width:1.6}
#nav button.on{color:var(--gold)}

/* streak */
.streak{display:flex;gap:18px;align-items:center}
.ring{position:relative;width:128px;height:128px;flex:none}
.ring svg{transform:rotate(-90deg)}
.ring .num{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center}
.ring .num b{font-family:var(--serif);font-size:42px;font-weight:500;line-height:1;color:var(--gold2)}
.ring .num span{font-size:12px;color:var(--muted)}
.sos{width:100%;border:1px solid color-mix(in srgb,var(--gold) 40%,transparent);border-radius:20px;padding:18px;font-size:17px;font-weight:600;color:#fff;background:linear-gradient(135deg,rgba(91,63,143,.92),rgba(36,58,122,.92));box-shadow:0 10px 30px rgba(60,50,140,.35);margin-bottom:14px;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}
.sos small{display:block;font-weight:400;font-size:13px;opacity:.85;margin-top:2px}
.bar{height:8px;background:var(--track);border-radius:99px;overflow:hidden}
.bar i{display:block;height:100%;background:linear-gradient(90deg,var(--gold),var(--gold2));border-radius:99px}
.check{display:flex;align-items:center;gap:12px;padding:10px 0;border-bottom:1px solid var(--hair);cursor:pointer}
.check:last-child{border-bottom:none}
.box{width:24px;height:24px;border-radius:7px;border:1.5px solid var(--line);flex:none;display:flex;align-items:center;justify-content:center}
.box.on{background:var(--gold);border-color:var(--gold)}
.box.on::after{content:'';width:10px;height:5px;border:2px solid var(--btn-text);border-top:none;border-right:none;transform:rotate(-45deg) translate(1px,-1px)}
.quote{font-family:var(--serif);font-size:19px;line-height:1.5;color:var(--gold2)}
.theme-light .quote{color:var(--text)}
.quote-src{font-size:12px;color:var(--muted);margin-top:8px}
.masters{font-family:var(--serif);font-size:18px;line-height:1.6}

/* diary */
.virtue{padding:12px 0;border-bottom:1px solid var(--hair)}
.virtue:last-child{border-bottom:none}
.virtue .vname{font-family:var(--serif);font-size:18px}
.twd{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-top:8px}
.counter{background:color-mix(in srgb,var(--bg2) 70%,transparent);border:1px solid var(--line);border-radius:12px;padding:6px;text-align:center}
.counter .lab{font-size:11px;color:var(--muted);text-transform:uppercase;letter-spacing:.05em}
.counter .ctl{display:flex;align-items:center;justify-content:space-between}
.counter .ctl button{background:none;border:none;width:34px;height:34px;font-size:20px;color:var(--muted)}
.counter .ctl b{font-size:20px;font-weight:500;min-width:20px}
.counter b.nz{color:var(--rose)}
.month{overflow-x:auto;-webkit-overflow-scrolling:touch}
.month table{border-collapse:collapse;font-size:12px;min-width:640px;width:100%}
.month th,.month td{border:1px solid var(--hair);padding:4px 3px;text-align:center}
.month th{color:var(--muted);font-weight:500;background:color-mix(in srgb,var(--bg2) 60%,transparent)}
.month td.nz{color:var(--rose)}
.month tr.tot td{font-weight:600;color:var(--gold2)}

/* heatmap */
.heat{display:grid;grid-template-columns:repeat(7,1fr);gap:4px}
.heat div{aspect-ratio:1;border-radius:5px;background:var(--track);position:relative}
.heat .clean{background:color-mix(in srgb,var(--green) 40%,var(--bg2))}.heat .clean.med{background:color-mix(in srgb,var(--green) 75%,var(--bg2))}
.heat .fall{background:color-mix(in srgb,var(--rose) 70%,var(--bg2))}
.heat .urge::after{content:'';position:absolute;right:3px;top:3px;width:5px;height:5px;border-radius:50%;background:var(--gold)}
.heat .today{outline:1.5px solid var(--gold)}
.heat .future{opacity:.25}
.legend{display:flex;gap:12px;font-size:12px;color:var(--muted);margin-top:8px;flex-wrap:wrap}
.legend i{display:inline-block;width:10px;height:10px;border-radius:3px;margin-right:4px;vertical-align:-1px}

/* charts */
.bars{display:flex;align-items:flex-end;gap:2px;height:110px}
.bars div{flex:1;background:color-mix(in srgb,var(--muted) 45%,transparent);border-radius:3px 3px 0 0;min-height:2px;position:relative}
.bars div.hi{background:var(--gold)}
.bars div.bad{background:color-mix(in srgb,var(--rose) 80%,transparent)}
.axis{display:flex;justify-content:space-between;font-size:10px;color:var(--muted);margin-top:4px}
.hbar{display:flex;align-items:center;gap:8px;margin:6px 0;font-size:13px}
.hbar .l{width:110px;color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.hbar .b{flex:1;height:10px;background:var(--track);border-radius:99px;overflow:hidden}
.hbar .b i{display:block;height:100%;background:var(--gold)}
.hbar .n{width:26px;text-align:right}
.spark{width:100%;height:60px;display:block}

/* overlay */
.overlay{position:fixed;inset:0;background:var(--bg);z-index:50;overflow-y:auto;padding:calc(var(--safe-t) + 14px) 18px calc(var(--safe-b) + 24px)}
.overlay .art{position:fixed;inset:0;background-size:cover;background-position:center;opacity:.45;z-index:-1}
.overlay .art::after{content:'';position:absolute;inset:0;background:linear-gradient(180deg,color-mix(in srgb,var(--bg) 40%,transparent),var(--bg) 70%)}
.overlay .wrap{max-width:620px;margin:0 auto;position:relative}
.sheet-bg{position:fixed;inset:0;background:rgba(0,0,0,.5);z-index:80;display:flex;align-items:flex-end;justify-content:center}
.sheet{background:var(--card-solid);border:1px solid var(--hair);border-bottom:none;border-radius:22px 22px 0 0;width:100%;max-width:680px;max-height:90vh;overflow-y:auto;padding:18px 18px calc(var(--safe-b) + 18px);animation:up .22s ease;color:var(--text)}
@keyframes up{from{transform:translateY(40px);opacity:.5}to{transform:none;opacity:1}}
.sheet .grab{width:40px;height:4px;background:var(--line);border-radius:4px;margin:0 auto 14px}
.x{background:none;border:none;color:var(--muted);font-size:26px;line-height:1;padding:4px 8px}

/* breathing */
.breath{width:220px;height:220px;margin:30px auto;border-radius:50%;background:radial-gradient(circle,color-mix(in srgb,var(--gold) 45%,transparent),transparent 70%);display:flex;align-items:center;justify-content:center;transition:transform 4s ease-in-out;font-family:var(--serif);font-size:22px;color:var(--gold2)}
.bigtime{font-family:var(--serif);font-size:72px;text-align:center;color:var(--gold2);font-variant-numeric:tabular-nums;letter-spacing:.02em}
.steps{display:flex;gap:6px;justify-content:center;margin:6px 0 18px}
.steps i{width:28px;height:4px;border-radius:4px;background:var(--line)}
.steps i.on{background:var(--gold)}
.tap{width:180px;height:180px;border-radius:50%;margin:20px auto;display:flex;align-items:center;justify-content:center;flex-direction:column;background:radial-gradient(circle,color-mix(in srgb,var(--gold) 18%,var(--card-solid)),var(--card-solid));border:1px solid var(--line);font-family:var(--serif);font-size:44px;color:var(--gold2);user-select:none;cursor:pointer}
.tap span{font-family:var(--sans);font-size:12px;color:var(--muted)}

/* meditation screen */
.medscreen{position:fixed;inset:0;z-index:60;background:#04050a;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:24px;color:#ece8dc}
.medscreen .art{position:absolute;inset:0;background-size:cover;background-position:center;opacity:.28;transition:opacity 2s}
.medscreen.dim .art{opacity:.12}
.medscreen > *:not(.art){position:relative}
.medscreen .eye{width:8px;height:8px;border-radius:50%;background:#f1cf7d;box-shadow:0 0 30px 8px #f1cf7d44;margin-bottom:40px;animation:glow 6s ease-in-out infinite}
.medscreen .bigtime{color:#fbe7b4}
.medscreen .btn{background:rgba(20,24,44,.6);border-color:#33385e;color:#ece8dc}
.medscreen .btn.primary{background:linear-gradient(180deg,#f6dc9b,#e3c27a);color:#1a1530}
.medscreen .chip{background:rgba(20,24,44,.6);border-color:#33385e;color:#ece8dc}
.medscreen .chip.on{border-color:#e3c27a;color:#fbe7b4}
.medscreen input,.medscreen textarea{background:rgba(20,24,44,.6);border-color:#33385e;color:#ece8dc}
.medscreen label,.medscreen .muted{color:#a7aac4}
@keyframes glow{50%{box-shadow:0 0 50px 16px #f1cf7d33}}
.medscreen.dim .bigtime,.medscreen.dim .medctl{opacity:.15}

/* library + reader */
.book{display:flex;gap:12px;align-items:center;padding:12px 0;border-bottom:1px solid var(--hair);cursor:pointer}
.book:last-child{border-bottom:none}
.cover{width:44px;height:60px;border-radius:5px;background:linear-gradient(160deg,color-mix(in srgb,var(--gold) 35%,var(--bg2)),var(--bg2));border:1px solid var(--line);display:flex;align-items:center;justify-content:center;font-family:var(--serif);color:var(--gold2);font-size:20px;flex:none}
.hit{padding:12px 0;border-bottom:1px solid var(--hair);cursor:pointer}
.hit:last-child{border-bottom:none}
.hit .src{font-size:12px;color:var(--muted);margin-bottom:4px}
.hit .txt{font-family:var(--serif);font-size:16px;line-height:1.5}
.hit mark,.answer mark{background:color-mix(in srgb,var(--gold) 35%,transparent);color:inherit;border-radius:3px;padding:0 1px}
.answer{font-family:var(--serif);font-size:17px;line-height:1.6}
.answer p{margin:0 0 .8em}
.cite{display:inline-block;min-width:20px;padding:0 5px;margin:0 1px;border-radius:6px;background:color-mix(in srgb,var(--gold) 22%,transparent);color:var(--gold2);font-family:var(--sans);font-size:11px;font-weight:600;cursor:pointer;vertical-align:2px;text-align:center}
.theme-light .cite{color:var(--gold)}
.reader{position:fixed;inset:0;z-index:55;display:flex;flex-direction:column}
.reader.night{background:#0d0e1b;color:#d9d4c5}
.reader.sepia{background:#f3ead8;color:#3b3226}
.reader.light{background:#fbfaf7;color:#22201c}
.reader .rbar{display:flex;align-items:center;gap:6px;padding:calc(var(--safe-t) + 8px) 10px 8px;border-bottom:1px solid rgba(128,128,128,.2);font-size:14px}
.reader .rbar button{background:none;border:none;padding:6px 8px;color:inherit;opacity:.8}
.reader .rbody{flex:1;overflow-y:auto;-webkit-overflow-scrolling:touch}
.reader .page{max-width:640px;margin:0 auto;padding:22px 22px 120px}
.reader .page p{margin:0 0 1em}
.reader .page h1,.reader .page h2,.reader .page h3{margin:1.4em 0 .6em;color:inherit}
.reader .page img{max-width:100%}
.reader .rfoot{padding:8px 14px calc(var(--safe-b) + 8px);border-top:1px solid rgba(128,128,128,.2);font-size:12px;opacity:.75;display:flex;justify-content:space-between}
.reader canvas{display:block;margin:0 auto 10px;max-width:100%;box-shadow:0 2px 10px rgba(0,0,0,.3)}
.reader mark{background:#e3c27a66;color:inherit}
.reader .flash{animation:flash 2.4s ease}
@keyframes flash{0%,40%{background:#e3c27a55}100%{background:transparent}}
.reader .page p.attr{text-align:right;font-variant:small-caps;letter-spacing:.06em;font-size:.85em;opacity:.75;margin-top:-.6em}
.reader .page h3{font-size:1.15em;text-align:center;letter-spacing:.02em}
.reader .page .pgm{display:block;height:0}
.selpop{position:fixed;z-index:70;left:50%;transform:translateX(-50%);bottom:calc(var(--safe-b) + 60px);background:#1d2140;border:1px solid #e3c27a;color:#fbe7b4;border-radius:999px;padding:10px 18px;font-size:14px}
.toast{position:fixed;left:50%;bottom:calc(var(--safe-b) + 90px);transform:translateX(-50%);background:var(--card-solid);border:1px solid var(--line);color:var(--text);padding:10px 16px;border-radius:12px;z-index:90;font-size:14px;box-shadow:0 6px 20px rgba(0,0,0,.35);max-width:90vw;text-align:center}

/* themes picker */
.themes{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}
.tcard{position:relative;border-radius:14px;overflow:hidden;aspect-ratio:1.3;background-size:cover;background-position:center;border:2px solid transparent;cursor:pointer}
.tcard.on{border-color:var(--gold)}
.tcard span{position:absolute;left:0;right:0;bottom:0;padding:18px 10px 8px;font-size:13px;color:#fff;background:linear-gradient(transparent,rgba(0,0,0,.65))}

/* login / lock */
.center{min-height:80vh;display:flex;flex-direction:column;justify-content:center}
.logo{font-family:var(--serif);font-size:46px;color:var(--gold2);text-align:center;letter-spacing:.02em;text-shadow:0 2px 20px rgba(0,0,0,.4)}
.pinpad{display:grid;grid-template-columns:repeat(3,72px);gap:14px;justify-content:center;margin-top:24px}
.pinpad button{height:72px;border-radius:50%;border:1px solid var(--line);background:var(--card);font-size:24px;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}
.dots{display:flex;gap:14px;justify-content:center;margin-top:18px}
.dots i{width:12px;height:12px;border-radius:50%;border:1.5px solid var(--gold)}
.dots i.on{background:var(--gold)}
details{border-bottom:1px solid var(--hair);padding:10px 0}
details:last-child{border-bottom:none}
summary{font-family:var(--serif);font-size:18px;cursor:pointer;list-style:none}
summary::-webkit-details-marker{display:none}
summary::after{content:'+';float:right;color:var(--muted)}
details[open] summary::after{content:'−'}
details .body{color:var(--text);opacity:.88;padding-top:8px}
details .body p{margin:0 0 .8em}
.list-item{padding:10px 0;border-bottom:1px solid var(--hair)}
.list-item:last-child{border-bottom:none}
.seg{display:flex;background:var(--soft);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border:1px solid var(--hair);border-radius:12px;padding:3px;margin-bottom:14px;overflow-x:auto}
.seg button{flex:1;background:none;border:none;padding:8px 6px;border-radius:9px;font-size:14px;color:var(--muted);white-space:nowrap}
.seg button.on{background:var(--card-solid);color:var(--gold2)}
.theme-light .seg button.on{color:var(--gold)}
input[type=range]{padding:0;background:none;border:none;accent-color:var(--gold)}
input[type=time]{width:auto}
.switch{position:relative;width:46px;height:28px;border-radius:99px;background:var(--track);border:1px solid var(--line);flex:none;cursor:pointer}
.switch::after{content:'';position:absolute;top:2px;left:2px;width:22px;height:22px;border-radius:50%;background:var(--muted);transition:.2s}
.switch.on{background:color-mix(in srgb,var(--gold) 45%,transparent);border-color:var(--gold)}
.switch.on::after{left:20px;background:var(--gold2)}
.spinner{width:18px;height:18px;border:2px solid var(--line);border-top-color:var(--gold);border-radius:50%;animation:spin 1s linear infinite;display:inline-block;vertical-align:-3px}
@keyframes spin{to{transform:rotate(360deg)}}
/* inner map */
.imap{position:relative;margin:6px 0}
.imap::before{content:'';position:absolute;left:27px;top:10px;bottom:10px;width:2px;background:linear-gradient(var(--gold),color-mix(in srgb,var(--gold) 20%,transparent));opacity:.45}
.imap-group{font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);margin:14px 0 4px 64px}
.imap-row{display:flex;gap:12px;align-items:center;padding:8px 0;position:relative;cursor:pointer}
.imap-row svg{background:color-mix(in srgb,var(--bg) 80%,transparent);border-radius:50%;opacity:.55}
.imap-row.seen svg{opacity:1;box-shadow:0 0 0 2px var(--gold)}
.imap-row.here::after{content:'You are here';position:absolute;right:0;top:8px;font-size:10px;letter-spacing:.08em;text-transform:uppercase;color:var(--btn-text);background:var(--gold);padding:2px 7px;border-radius:99px}
/* plan */
.dayline{position:relative;height:26px;border-radius:8px;background:var(--track);margin:10px 0 2px;overflow:hidden}
.dayline i{position:absolute;top:0;bottom:0;background:var(--gold);border-radius:4px;min-width:4px}
.dayline b{position:absolute;top:10px;height:6px;background:repeating-linear-gradient(90deg,var(--gold2) 0 2px,transparent 2px 8px);opacity:.6}
.hours{display:flex;gap:4px;margin-top:8px}
.hours i{flex:1;height:10px;border-radius:3px;background:var(--track)}
.hours i.on{background:var(--gold)}
.hours i.miss{background:color-mix(in srgb,var(--rose) 30%,var(--track))}
.photos{display:grid;grid-template-columns:repeat(4,1fr);gap:6px;margin:8px 0}
.photos img{width:100%;aspect-ratio:1;object-fit:cover;border-radius:8px;background:var(--track)}
.gear{position:absolute;right:16px;top:calc(var(--safe-t) + 14px);background:color-mix(in srgb,var(--bg) 40%,transparent);border:1px solid var(--hair);border-radius:50%;width:40px;height:40px;display:flex;align-items:center;justify-content:center;color:var(--text);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}
/* highlights */
mark.hl{color:inherit;border-radius:3px;padding:0 1px}
.hl-gold{background:#e3c27a66}.hl-rose{background:#e8a0a066}.hl-sky{background:#8fb6e866}.hl-sage{background:#9fd3b066}
span.hl{border-radius:3px}
.selpop{display:flex;align-items:center;gap:8px;padding:8px 12px}
.selpop button{border:none;background:none;color:inherit;font-size:14px;padding:4px 6px}
.selpop button[data-hc]{width:22px;height:22px;border-radius:50%;padding:0;border:2px solid #1d2140}
.selpop .sep{width:1px;height:20px;background:#3a3f6a}
.hlc{width:30px;height:30px;border-radius:50%;border:2px solid transparent}
.hlc.on{border-color:var(--text)}
.reader .rbar,.reader .rfoot{transition:transform .25s,opacity .25s}
.reader.immersive .rbar{transform:translateY(-100%);opacity:0;position:absolute;left:0;right:0;z-index:2}
.reader.immersive .rfoot{opacity:.35}
.cover.img{background-size:cover;background-position:center;color:transparent}
/* Refurbished editions */
.reader .page .titlepage{text-align:center;margin:0 0 2.4em;padding:0 0 1.6em}
.reader .page .tp-art{width:min(78%,360px);aspect-ratio:2/3;margin:1.6em auto 1.6em;background-size:cover;background-position:center;border-radius:4px;box-shadow:0 18px 50px rgba(0,0,0,.45)}
.reader .page .titlepage h1{font-size:2.1em;font-weight:500;margin:.2em 0 .1em;letter-spacing:.01em}
.reader .page .tp-sub{font-style:italic;opacity:.8}
.reader .page .tp-by{margin-top:1.2em;font-variant:small-caps;letter-spacing:.18em;opacity:.85}
.reader .page .dedication{text-align:center;margin:3em 0;font-size:1.05em}
.reader .page .dedication p{margin:.2em 0}
.reader .page .epigraph{margin:2em 1.2em 3em;font-style:italic;opacity:.9;border:none;padding:0}
.reader .page .epigraph cite{display:block;text-align:right;font-style:normal;font-variant:small-caps;letter-spacing:.08em;margin-top:.6em;opacity:.75}
.reader .page h2.chap{text-align:center;font-weight:500;font-size:1.6em;margin:3.2em 0 1.4em}
.reader .page h2.chap small{display:block;font-size:.5em;letter-spacing:.3em;text-transform:uppercase;opacity:.65;margin-bottom:.5em}
.reader .page h2.chap::after{content:'';display:block;width:42px;height:1px;margin:.8em auto 0;background:currentColor;opacity:.35}
.reader .page p.first::first-letter{float:left;font-size:3.2em;line-height:.85;padding:.06em .08em 0 0;color:var(--gold)}
