:root{--bg:#080809;--bg-grad-1:#141416;--bg-grad-2:#070708;--panel:#0f0f11;--surface:#161618;--surface-2:#1d1d20;--surface-3:#262629;--line:rgba(255,255,255,.06);--line-2:rgba(255,255,255,.11);--text:#f2f1ef;--muted:#9a9a9f;--faint:#5f5f66;--accent:#f2f1ef;--accent-2:#ffffff;--accent-deep:#d8d6d1;--accent-soft:rgba(255,255,255,.09);--accent-line:rgba(255,255,255,.22);--on-accent:#0a0a0b;--ok:#7fc8a0;--ui:"Manrope",-apple-system,system-ui,sans-serif;--serif:"Spectral",Georgia,serif;--r-lg:30px;--r-md:20px;--r-sm:14px}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}html,body{margin:0;padding:0;background:#000}#root{height:100%}.frame-page{min-height:100dvh;width:100%;background:radial-gradient(120% 80% at 50% -10%,#141416,#050506 60%);display:flex;align-items:stretch;justify-content:center}.frame{position:relative;width:100%;height:100dvh;overflow:hidden;background:var(--bg)}@media (min-width:560px){.frame-page{padding:24px 0;align-items:center}.frame{width:430px;height:min(920px,calc(100dvh - 48px));border-radius:var(--r-lg);border:1px solid var(--line-2);box-shadow:0 40px 120px #000000b3,0 0 0 1px #ffffff08}}.app{position:relative;width:100%;height:100%;background:var(--bg);color:var(--text);font-family:var(--ui);-webkit-font-smoothing:antialiased;display:flex;flex-direction:column;overflow:hidden}.screen{flex:1;min-height:0;overflow-y:auto;overflow-x:hidden;-webkit-overflow-scrolling:touch;scrollbar-width:none}.screen::-webkit-scrollbar{display:none}.pad-top{padding-top:34px}.h-pad{padding-left:22px;padding-right:22px}.eyebrow{font-size:11px;font-weight:700;letter-spacing:.18em;text-transform:uppercase;color:var(--faint)}.h-screen{font-family:var(--serif);font-weight:600;font-size:40px;letter-spacing:-.02em;line-height:1;color:var(--text)}.h-sec{font-size:13px;font-weight:700;letter-spacing:.02em;color:var(--muted)}.serif{font-family:var(--serif)}.icon-btn{border:none;background:var(--surface);color:var(--text);width:46px;height:46px;border-radius:50%;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:transform .15s,background .2s;flex-shrink:0}.icon-btn:active{transform:scale(.92)}.icon-btn.ghost{background:transparent}.icon-btn.ghost:active{background:var(--surface)}.pill{display:inline-flex;align-items:center;gap:7px;padding:9px 15px;border-radius:999px;background:var(--surface);color:var(--muted);font-size:13px;font-weight:600;border:1px solid var(--line);cursor:pointer;transition:.18s;white-space:nowrap}.pill.active{background:var(--accent-soft);color:var(--accent);border-color:var(--accent-line)}.pill:active{transform:scale(.96)}.btn-primary{display:flex;align-items:center;justify-content:center;gap:10px;width:100%;padding:17px;border:none;border-radius:var(--r-md);background:var(--accent);color:var(--on-accent);font-family:var(--ui);font-size:16px;font-weight:700;cursor:pointer;transition:.15s}.btn-primary:active{transform:scale(.98)}.btn-primary:disabled{cursor:default}.btn-soft{display:flex;align-items:center;justify-content:center;gap:9px;width:100%;padding:15px;border:1px solid var(--line-2);border-radius:var(--r-md);background:var(--surface);color:var(--text);font-family:var(--ui);font-size:15px;font-weight:600;cursor:pointer;transition:.15s}.btn-soft:active{transform:scale(.98);background:var(--surface-2)}.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-md)}.row{display:flex;align-items:center}.col{display:flex;flex-direction:column}.muted{color:var(--muted)}.faint{color:var(--faint)}.bar{height:4px;border-radius:99px;background:var(--line-2);overflow:hidden}.bar>i{display:block;height:100%;border-radius:99px;background:var(--accent)}.cover{position:relative;overflow:hidden;border-radius:9px;box-shadow:0 18px 40px #0000008c,0 2px 8px #0006;display:flex;flex-direction:column;justify-content:space-between;flex-shrink:0}.cover .c-title{font-family:var(--serif);font-weight:600;line-height:1.04}.cover .c-author{font-weight:600;opacity:.72;letter-spacing:.02em}.fade-up{animation:fadeUp .4s cubic-bezier(.2,.7,.2,1) both}@keyframes fadeUp{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}.cf-scroll::-webkit-scrollbar{display:none}.pop-row{display:flex;align-items:center;justify-content:space-between;gap:14px;width:100%;background:none;border:none;cursor:pointer;padding:9px 14px;border-radius:11px;font-family:var(--ui);font-size:14px;font-weight:700;color:var(--text)}.pop-row:active{background:var(--surface-3)}@keyframes glow{0%,to{opacity:.55;transform:scale(1)}50%{opacity:1;transform:scale(1.06)}}.sheet-bg{position:absolute;top:0;right:0;bottom:0;left:0;background:#0000008c;z-index:90;animation:fadeUp .25s both}.sheet{position:absolute;left:0;right:0;bottom:0;z-index:91;background:var(--panel);border-top:1px solid var(--line-2);border-radius:28px 28px 0 0;max-height:80%;display:flex;flex-direction:column;box-shadow:0 -20px 50px #00000080;animation:sheetUp .38s cubic-bezier(.2,.8,.2,1) both}@keyframes sheetUp{0%{transform:translateY(100%)}to{transform:none}}.grabber{width:38px;height:5px;border-radius:9px;background:var(--line-2);margin:11px auto 4px}.field{display:flex;align-items:center;gap:11px;background:var(--surface);border:1px solid var(--line-2);border-radius:16px;padding:14px 16px}.field input{flex:1;background:none;border:none;outline:none;color:var(--text);font-family:var(--ui);font-size:16px;font-weight:600}.field input::placeholder{color:var(--faint)}.toast{position:absolute;bottom:40px;left:50%;transform:translate(-50%);z-index:95;background:var(--accent);color:var(--on-accent);padding:11px 20px;border-radius:12px;font-size:13.5px;font-weight:800;max-width:84%;text-align:center}.spin{width:18px;height:18px;border-radius:50%;border:2px solid var(--line-2);border-top-color:var(--text);animation:spin .7s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}@media (prefers-reduced-motion:reduce){.fade-up,.sheet,.sheet-bg,.spin{animation:none}}.scr-stack{position:absolute;top:0;right:0;bottom:0;left:0;overflow:hidden}.scr{position:absolute;top:0;right:0;bottom:0;left:0}.scr-fwd{animation:scrInRight .34s cubic-bezier(.32,.72,0,1) both}.scr-back{animation:scrInLeft .34s cubic-bezier(.32,.72,0,1) both}.scr-fade{animation:scrFade .26s ease both}@keyframes scrInRight{0%{transform:translate(100%)}to{transform:none}}@keyframes scrInLeft{0%{transform:translate(-100%)}to{transform:none}}@keyframes scrFade{0%{opacity:0}to{opacity:1}}@media (prefers-reduced-motion:reduce){.scr-fwd,.scr-back,.scr-fade{animation:none}}
