:root{--font-display:"Fraunces", Georgia, "Times New Roman", serif;--font-ui:"Plus Jakarta Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--font-reader:"Newsreader", Georgia, "Times New Roman", serif;--brand:#6c63ff;--brand-glow:#b5b0ff;--brand-contrast:#fff;--bg-0:#050507;--text:#f5f2ea;--text-soft:#a8a298;--text-faint:#6f6a61;--gold:#e7c98a;--gold-deep:#c9a35f;--glass:#ffffff0e;--glass-2:#ffffff1a;--glass-strong:#ffffff24;--glass-border:#ffffff1f;--glass-border-soft:#ffffff12;--shadow:0 24px 60px -24px #000000bf;--shadow-sm:0 8px 24px -12px #0009;--grad-a:var(--brand-glow);--grad-b:var(--gold);--radius:26px;--radius-sm:16px;--topbar-h:60px;--nav-h:74px}:root[data-theme=light]{--bg-0:#f4efe6;--text:#211e18;--text-soft:#6b6357;--text-faint:#9a9183;--gold:#b1842f;--gold-deep:#8a6520;--glass:#ffffff9e;--glass-2:#ffffffd1;--glass-strong:#ffffffeb;--glass-border:#2820121a;--glass-border-soft:#2820120f;--shadow:0 24px 50px -28px #46371e66;--shadow-sm:0 8px 22px -14px #46371e4d;--grad-a:var(--brand);--grad-b:var(--gold-deep)}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}html,body,#root{min-height:100%;margin:0}body{background:var(--bg-0);color:var(--text);font-family:var(--font-ui);-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;overscroll-behavior-y:none}body:before{content:"";z-index:-1;pointer-events:none;background:radial-gradient(115% 62% at 50% -12%, color-mix(in srgb, var(--brand-glow) 30%, transparent), transparent 58%), radial-gradient(80% 55% at 102% 104%, color-mix(in srgb, var(--gold) 14%, transparent), transparent 60%), radial-gradient(85% 60% at -8% 100%, color-mix(in srgb, var(--brand) 34%, transparent), transparent 62%);position:fixed;inset:0}:root[data-theme=light] body:before{background:radial-gradient(110% 55% at 50% -14%, color-mix(in srgb, var(--brand) 14%, transparent), transparent 55%), radial-gradient(75% 50% at 104% 104%, color-mix(in srgb, var(--gold) 16%, transparent), transparent 58%), radial-gradient(80% 55% at -6% 100%, color-mix(in srgb, var(--brand) 12%, transparent), transparent 60%)}button{cursor:pointer;color:inherit;font-family:inherit}a{color:inherit;text-decoration:none}.app-shell{flex-direction:column;max-width:520px;min-height:100dvh;margin:0 auto;display:flex;position:relative}.topbar{height:var(--topbar-h);padding:0 20px;padding-top:env(safe-area-inset-top);z-index:30;background:linear-gradient(to bottom, var(--bg-0) 30%, transparent);align-items:center;gap:12px;display:flex;position:sticky;top:0}.brand-mark{width:38px;height:38px;font-family:var(--font-display);color:var(--brand-contrast);object-fit:cover;background:linear-gradient(140deg, var(--brand-glow), var(--brand) 60%, var(--gold-deep));box-shadow:var(--shadow-sm);border-radius:12px;flex:none;place-items:center;font-size:17px;font-weight:600;display:grid}.brand-name{font-family:var(--font-display);letter-spacing:.01em;white-space:nowrap;text-overflow:ellipsis;flex:auto;min-width:0;font-size:18px;font-weight:600;overflow:hidden}.content{padding:18px 18px calc(var(--nav-h) + env(safe-area-inset-bottom) + 24px);flex:auto}.glass,.card,a.card{background:var(--glass);-webkit-backdrop-filter:blur(22px)saturate(140%);border:1px solid var(--glass-border);border-radius:var(--radius);box-shadow:var(--shadow);color:var(--text)}.card{margin-bottom:16px;padding:20px}.gradient-text{background:linear-gradient(100deg, var(--grad-a), var(--grad-b) 50%, var(--grad-a));color:#0000;-webkit-text-fill-color:transparent;background-size:220%;-webkit-background-clip:text;background-clip:text;animation:7s linear infinite shimmer}@keyframes shimmer{to{background-position:220%}}.rise{animation:.6s cubic-bezier(.2,.75,.2,1) both rise}@keyframes rise{0%{opacity:0;transform:translateY(14px)}}@media (prefers-reduced-motion:reduce){.gradient-text,.rise{animation:none}}.hero{padding:14px 4px 22px}.hero-eyebrow{letter-spacing:.22em;text-transform:uppercase;color:var(--gold);margin:0 0 8px;font-size:12px;font-weight:600}.hero-title{font-family:var(--font-display);letter-spacing:-.02em;margin:0 0 10px;font-size:clamp(2.1rem,9vw,2.8rem);font-weight:600;line-height:1.02}.hero-sub{color:var(--text-soft);max-width:30ch;margin:0;font-size:1rem}.continue-card{margin-bottom:16px;padding:22px;display:block;position:relative;overflow:hidden}.continue-card .eyebrow{letter-spacing:.18em;text-transform:uppercase;color:var(--gold);margin-bottom:10px;font-size:11px;font-weight:700}.continue-card .ref{font-family:var(--font-display);letter-spacing:-.01em;font-size:1.9rem;font-weight:600}.continue-card .meta{color:var(--text-soft);margin-top:6px;font-size:.9rem}.continue-card .go{background:linear-gradient(140deg, var(--brand-glow), var(--brand));width:44px;height:44px;color:var(--brand-contrast);box-shadow:var(--shadow-sm);border-radius:50%;place-items:center;display:grid;position:absolute;bottom:20px;right:20px}.bento{grid-template-columns:1fr 1fr;gap:14px;display:grid}.tile{flex-direction:column;justify-content:space-between;gap:10px;min-height:118px;padding:18px;display:flex}.tile .tile-ic{background:var(--glass-2);width:40px;height:40px;color:var(--gold);border-radius:12px;place-items:center;display:grid}.tile .tile-title{font-family:var(--font-display);font-size:1.15rem;font-weight:600}.tile .tile-sub{color:var(--text-soft);margin-top:-4px;font-size:.82rem}.tile.span-2{flex-direction:row;grid-column:span 2;align-items:center;min-height:auto}.bottom-nav{left:50%;bottom:calc(14px + env(safe-area-inset-bottom));z-index:40;background:color-mix(in srgb, var(--bg-0) 55%, transparent);-webkit-backdrop-filter:blur(30px)saturate(170%);border:1px solid var(--glass-border);box-shadow:var(--shadow);border-radius:24px;gap:2px;padding:7px 9px;display:flex;position:fixed;transform:translate(-50%)}.nav-item{min-width:58px;color:var(--text-faint);letter-spacing:.01em;background:0 0;border:none;border-radius:16px;flex-direction:column;align-items:center;gap:4px;padding:6px 4px;font-size:11px;font-weight:600;transition:color .18s,transform .18s;display:flex}.nav-item svg{width:24px;height:24px}.nav-item.active{color:var(--gold)}.nav-item.active svg{filter:drop-shadow(0 4px 10px color-mix(in srgb, var(--gold) 45%, transparent));transform:translateY(-1px)}.nav-item:active{transform:scale(.92)}.btn{color:#1a160d;background:linear-gradient(135deg, var(--gold), var(--gold-deep));width:100%;box-shadow:var(--shadow-sm);border:none;border-radius:16px;padding:14px 18px;font-size:15px;font-weight:700;transition:transform .15s,filter .15s}.btn:active{filter:brightness(1.05);transform:scale(.985)}.btn:disabled{opacity:.55;cursor:not-allowed}.btn-ghost{background:var(--glass-2);color:var(--text);border:1px solid var(--glass-border);box-shadow:none}.field{margin-bottom:14px;display:block}.field label{letter-spacing:.04em;text-transform:uppercase;color:var(--text-soft);margin-bottom:7px;font-size:12px;font-weight:600;display:block}.field input,.field textarea{border:1px solid var(--glass-border);background:var(--glass);width:100%;color:var(--text);border-radius:14px;padding:13px 14px;font-family:inherit;font-size:16px;transition:border-color .15s,box-shadow .15s}.field input:focus,.field textarea:focus{border-color:color-mix(in srgb, var(--gold) 60%, transparent);box-shadow:0 0 0 3px color-mix(in srgb, var(--gold) 18%, transparent);outline:none}.field input::placeholder{color:var(--text-faint)}.error-banner{background:color-mix(in srgb, #e2574c 16%, var(--glass));color:#ffb4ac;border:1px solid #e2574c4d;border-radius:14px;margin-bottom:14px;padding:12px 14px;font-size:14px}:root[data-theme=light] .error-banner{color:#9c2a20}.info-banner{background:var(--glass-2);color:var(--text);border:1px solid var(--glass-border);border-radius:14px;margin-bottom:14px;padding:12px 14px;font-size:14px}.muted{color:var(--text-soft)}.linkbtn{color:var(--gold);background:0 0;border:none;padding:0;font-weight:700}.center-screen{min-height:100dvh;padding:28px 22px calc(28px + env(safe-area-inset-bottom));place-items:center;display:grid}.auth-logo{width:60px;height:60px;font-family:var(--font-display);color:var(--brand-contrast);background:linear-gradient(140deg, var(--brand-glow), var(--brand) 60%, var(--gold-deep));box-shadow:var(--shadow);border-radius:18px;place-items:center;margin:0 auto 16px;font-size:28px;font-weight:600;display:grid}.auth-title{font-family:var(--font-display);text-align:center;margin:0 0 4px;font-size:2rem;font-weight:600}.tabs{background:var(--glass);border:1px solid var(--glass-border-soft);border-radius:16px;gap:8px;margin-bottom:16px;padding:5px;display:flex}.tabs button{color:var(--text-soft);background:0 0;border:none;border-radius:12px;flex:1;padding:10px;font-size:14px;font-weight:600;transition:all .18s}.tabs button.active{background:linear-gradient(135deg, var(--gold), var(--gold-deep));color:#1a160d;box-shadow:var(--shadow-sm)}.reader-controls{top:var(--topbar-h);z-index:20;background:color-mix(in srgb, var(--bg-0) 66%, transparent);-webkit-backdrop-filter:blur(20px)saturate(150%);border-bottom:1px solid var(--glass-border-soft);flex-wrap:wrap;align-items:center;gap:8px;padding:10px 16px;display:flex;position:sticky}.reader-controls select{border:1px solid var(--glass-border);background:var(--glass-2);color:var(--text);border-radius:12px;padding:9px 12px;font-family:inherit;font-size:14px;font-weight:600}.reader-controls .nav-btn{background:var(--glass-2);color:var(--text);border:1px solid var(--glass-border);border-radius:12px;padding:9px 13px;font-weight:700}.reader-controls .nav-btn:disabled{opacity:.35}.reader-controls .spacer{flex:auto}.reader-body{font-family:var(--font-reader);color:var(--text);max-width:36rem;padding:24px 20px calc(var(--nav-h) + env(safe-area-inset-bottom) + 40px);margin:0 auto;font-size:1.3rem;line-height:1.92}.reader-title{font-family:var(--font-display);text-align:center;letter-spacing:-.01em;margin:10px 0 4px;font-size:2rem;font-weight:600}.reader-heading{font-family:var(--font-ui);text-transform:uppercase;letter-spacing:.14em;color:var(--gold);margin:30px 0 8px;font-size:.72rem;font-weight:700}.verse{cursor:pointer;border-radius:6px;padding:1px 3px;transition:background .12s}.verse:hover{background:var(--glass-2)}.verse.studying{cursor:default}.verse.studying:hover{background:0 0}.verse.poem{text-indent:-.4rem;padding-left:1.6rem;display:block}.verse-num{font-family:var(--font-ui);color:var(--gold);vertical-align:super;-webkit-user-select:none;user-select:none;margin-right:4px;font-size:.62em;font-weight:700}.note-dot{background:var(--gold);vertical-align:middle;border-radius:50%;width:.5em;height:.5em;margin-left:4px;display:inline-block}.footnotes{border-top:1px solid var(--glass-border);font-family:var(--font-ui);color:var(--text-soft);margin-top:44px;padding-top:18px;font-size:.85rem}.footnotes h4{color:var(--gold);letter-spacing:.1em;text-transform:uppercase;margin:0 0 10px;font-size:.72rem}.footnotes p{margin:5px 0}.sheet-backdrop{-webkit-backdrop-filter:blur(4px);z-index:60;background:#0000008c;justify-content:center;align-items:flex-end;animation:.2s both fade;display:flex;position:fixed;inset:0}@keyframes fade{0%{opacity:0}}.sheet{width:100%;max-width:520px;padding:20px 20px calc(28px + env(safe-area-inset-bottom));background:var(--glass-strong);-webkit-backdrop-filter:blur(30px)saturate(160%);border:1px solid var(--glass-border);box-shadow:var(--shadow);border-bottom:none;border-radius:28px 28px 0 0;animation:.28s cubic-bezier(.2,.8,.2,1) both slideup}@keyframes slideup{0%{transform:translateY(100%)}}.sheet h3{font-family:var(--font-display);margin:0 0 4px;font-size:1.3rem;font-weight:600}.sheet .sheet-ref{color:var(--text-soft);margin-bottom:16px;font-size:.85rem}.color-row{flex-wrap:wrap;gap:14px;margin:8px 0 18px;display:flex}.color-swatch{outline:1px solid var(--glass-border);border:3px solid #0000;border-radius:50%;width:42px;height:42px;transition:transform .14s}.color-swatch:active{transform:scale(.9)}.color-swatch.selected{border-color:var(--gold)}.color-swatch.clear{background:var(--glass-2);color:var(--text-soft);place-items:center;font-size:18px;display:grid}.sheet-actions{gap:10px;display:flex}.sheet-actions .btn{flex:1}.section-title{font-family:var(--font-display);margin:6px 0 16px;font-size:1.7rem;font-weight:600}.list-item{margin-bottom:12px;padding:16px 18px;display:block}.list-item:active{transform:scale(.99)}.list-item .ref{font-family:var(--font-display);margin-bottom:4px;font-size:1.05rem;font-weight:600}.list-item .snippet{color:var(--text-soft);font-size:.92rem}.swatch-inline{vertical-align:middle;outline:1px solid var(--glass-border);border-radius:50%;width:12px;height:12px;margin-right:8px;display:inline-block}.profile-head{text-align:center;flex-direction:column;align-items:center;padding:18px 0 8px;display:flex}.profile-avatar{width:84px;height:84px;font-family:var(--font-display);color:var(--brand-contrast);background:linear-gradient(140deg, var(--brand-glow), var(--brand) 60%, var(--gold-deep));box-shadow:var(--shadow);border-radius:26px;place-items:center;margin-bottom:14px;font-size:34px;font-weight:600;display:grid}.profile-name{font-family:var(--font-display);font-size:1.6rem;font-weight:600}.row{border-bottom:1px solid var(--glass-border-soft);justify-content:space-between;align-items:center;padding:15px 18px;display:flex}.row:last-child{border-bottom:none}.row .row-label{font-weight:600}.seg{background:var(--glass);border:1px solid var(--glass-border-soft);border-radius:12px;gap:4px;padding:4px;display:flex}.seg button{color:var(--text-soft);background:0 0;border:none;border-radius:9px;padding:7px 14px;font-size:13px;font-weight:600}.seg button.active{background:var(--glass-strong);color:var(--text)}.study-input-row{gap:10px;margin-bottom:14px;display:flex}.study-input-row input{border:1px solid var(--glass-border);background:var(--glass);color:var(--text);border-radius:14px;flex:1;padding:13px 14px;font-family:inherit;font-size:16px}.study-input-row input:focus{border-color:color-mix(in srgb, var(--gold) 60%, transparent);box-shadow:0 0 0 3px color-mix(in srgb, var(--gold) 18%, transparent);outline:none}.study-input-row .btn{padding-left:22px;padding-right:22px}.chips{flex-wrap:wrap;gap:9px;display:flex}.chip{border:1px solid var(--glass-border);background:var(--glass);color:var(--text);border-radius:999px;padding:9px 15px;font-size:13px;font-weight:600;transition:transform .14s,border-color .14s}.chip:active{transform:scale(.94)}.chip:hover{border-color:color-mix(in srgb, var(--gold) 50%, transparent)}.ai-thinking{text-align:center;margin-top:20px;animation:1.4s ease-in-out infinite pulse}@keyframes pulse{50%{opacity:.45}}.study-title{font-family:var(--font-display);margin:0 0 6px;font-size:1.6rem;font-weight:600}.study-sub{font-family:var(--font-ui);text-transform:uppercase;letter-spacing:.14em;color:var(--gold);margin:24px 0 12px;font-size:.72rem;font-weight:700}.verse-card .reflink,.reflink{color:var(--gold);font-weight:700;font-family:var(--font-ui)}.verse-card .vc-text{font-family:var(--font-reader);margin:8px 0;font-size:1.12rem;line-height:1.6}.verse-card .vc-why{color:var(--text-soft);margin:0;font-size:.9rem}.plan-day{align-items:center;gap:14px;padding:16px 18px;display:flex}.plan-num{width:36px;height:36px;font-family:var(--font-display);color:#1a160d;background:linear-gradient(135deg, var(--gold), var(--gold-deep));border-radius:50%;flex:none;place-items:center;font-weight:600;display:grid}.plan-focus{margin-bottom:3px;font-weight:600}.plan-refs{color:var(--text-soft);font-size:.85rem}.chat{flex-direction:column;gap:12px;display:flex}.bubble{border-radius:20px;max-width:86%;padding:13px 16px;font-size:.98rem;line-height:1.6}.bubble.user{background:linear-gradient(135deg, var(--gold), var(--gold-deep));color:#1a160d;border-bottom-right-radius:6px;align-self:flex-end;font-weight:500}.bubble.ai{background:var(--glass);border:1px solid var(--glass-border);white-space:pre-wrap;border-bottom-left-radius:6px;align-self:flex-start}.bubble-verses{border-top:1px solid var(--glass-border);flex-wrap:wrap;gap:10px;margin-top:10px;padding-top:10px;display:flex}.chat-input{margin-top:16px}.word-orig{flex-wrap:wrap;align-items:baseline;gap:10px;margin:4px 0 12px;display:flex}.word-lemma{font-family:var(--font-display);color:var(--gold);font-size:1.5rem;font-weight:600}.word-translit{color:var(--text-soft);font-style:italic}.word-strongs{font-family:var(--font-ui);letter-spacing:.08em;background:var(--glass-2);border:1px solid var(--glass-border);color:var(--gold);border-radius:999px;padding:3px 9px;font-size:.72rem;font-weight:700}.word-meaning{margin:0 0 10px}.word-nuance{color:var(--text-soft);font-size:.92rem}.tap-word{cursor:pointer;border-radius:4px;transition:background .1s}.tap-word:active{background:color-mix(in srgb, var(--gold) 35%, transparent)}.study-toggle{background:var(--glass-2);color:var(--text);border:1px solid var(--glass-border);border-radius:12px;padding:9px 13px;font-size:13px;font-weight:700}.study-toggle.on{background:linear-gradient(135deg, var(--gold), var(--gold-deep));color:#1a160d;border-color:#0000}.admin-row{align-items:flex-start;gap:12px;margin-bottom:10px;padding:15px 16px;display:flex}.admin-main{flex:auto;min-width:0}.admin-title{font-family:var(--font-display);align-items:center;gap:8px;font-size:1.05rem;font-weight:600;display:flex}.admin-sub{color:var(--text-soft);word-break:break-word;margin-top:2px;font-size:.85rem}.admin-counts{flex-wrap:wrap;gap:12px;margin-top:8px;font-size:.85rem;display:flex}.role-chip{letter-spacing:.08em;text-transform:uppercase;background:linear-gradient(135deg, var(--gold), var(--gold-deep));color:#1a160d;border-radius:999px;padding:2px 8px;font-size:.62rem;font-weight:700}.admin-link{justify-content:space-between;align-items:center;margin-bottom:14px;padding:16px 18px;display:flex}.book-grid{grid-template-columns:1fr 1fr;gap:10px;margin:8px 0 4px;display:grid}.book-btn{border:1px solid var(--glass-border);background:var(--glass);color:var(--text);font-family:var(--font-display);text-align:left;border-radius:14px;padding:14px;font-size:.98rem;font-weight:600;transition:border-color .14s,transform .12s}.book-btn:hover{border-color:color-mix(in srgb, var(--gold) 50%, transparent)}.book-btn:active{transform:scale(.98)}.chapter-grid{grid-template-columns:repeat(5,1fr);gap:10px;display:grid}.chapter-btn{aspect-ratio:1;border:1px solid var(--glass-border);background:var(--glass);color:var(--text);font-family:var(--font-display);border-radius:12px;font-size:1.05rem;font-weight:700;transition:transform .12s,border-color .14s}.chapter-btn:hover{border-color:color-mix(in srgb, var(--gold) 55%, transparent)}.chapter-btn:active{transform:scale(.94)}.journey-card .ref{font-size:1.5rem}.journey-hero{text-align:center;flex-direction:column;align-items:center;padding:26px 20px 22px;display:flex}.score-ring{display:block}.ring-value{fill:var(--text);font-family:var(--font-display);font-size:2.6rem;font-weight:600}.ring-sub{fill:var(--text-soft);font-family:var(--font-ui);font-size:.72rem}.streak{align-items:center;gap:8px;margin-top:16px;display:flex}.streak-flame{font-size:1.4rem}.streak-n{font-family:var(--font-display);color:var(--gold);font-size:1.6rem;font-weight:700}.streak-label{color:var(--text-soft);font-weight:600}.stat-grid{grid-template-columns:1fr 1fr;gap:14px;margin-bottom:16px;display:grid}.stat{margin-bottom:0;padding:18px}.stat-num{font-family:var(--font-display);font-size:2.1rem;font-weight:600;line-height:1}.stat-label{color:var(--text-soft);margin-top:6px;font-size:.85rem}.journey-points{justify-content:space-between;align-items:center;padding:18px 20px;display:flex}.points-val{font-family:var(--font-display);font-size:1.8rem;font-weight:700}.domains{padding:6px 4px}.domain-row{border-bottom:1px solid var(--glass-border-soft);justify-content:space-between;align-items:center;padding:13px 16px;display:flex}.domain-row:last-child{border-bottom:none}.domain-label{font-weight:600}.domain-active{color:var(--gold);font-size:.85rem;font-weight:600}.domain-soon{color:var(--text-faint);font-size:.8rem}.translation-btn{letter-spacing:.02em;font-weight:700}.trans-list{flex-direction:column;gap:8px;max-height:60vh;margin-top:6px;display:flex;overflow-y:auto}.trans-row{text-align:left;border:1px solid var(--glass-border-soft);background:var(--glass);width:100%;color:var(--text);border-radius:14px;align-items:center;gap:14px;padding:13px 14px;transition:border-color .14s,transform .12s;display:flex}.trans-row:active{transform:scale(.99)}.trans-row.active{border-color:color-mix(in srgb, var(--gold) 55%, transparent);background:var(--glass-2)}.trans-short{font-family:var(--font-display);color:var(--gold);flex:0 0 52px;font-size:1rem;font-weight:700}.trans-meta{flex-direction:column;flex:auto;display:flex}.trans-name{font-size:.95rem;font-weight:600}.trans-blurb{color:var(--text-soft);font-size:.8rem}.trans-check{color:var(--gold);font-weight:700}.splash{min-height:100dvh;color:var(--text-soft);font-family:var(--font-display);place-items:center;font-size:1.1rem;display:grid}
