
:root{
 --ink:#050505;--ink2:#0a0808;--panel:#0b0909;--panel2:#110c0c;--red:#9d201a;--red2:#d13a2d;--ember:#e4553f;
 --gold:#b99a62;--gold2:#dfc18b;--parch:#d8c7a8;--parch2:#b9a382;--paperink:#241d16;--text:#eee6d7;--muted:#9f927d;
 --line:rgba(185,154,98,.27);--redline:rgba(199,48,37,.38);--shadow:0 28px 90px rgba(0,0,0,.68);
 --serif:Georgia,'Times New Roman',serif;--ui:Arial,Helvetica,sans-serif;
}
*{box-sizing:border-box}html,body{margin:0;min-height:100%;background:#020202;color:var(--text)}
body{font-family:var(--serif);background:
 radial-gradient(circle at 50% -20%,rgba(132,25,20,.22),transparent 35%),
 radial-gradient(circle at 85% 70%,rgba(80,20,16,.10),transparent 28%),
 linear-gradient(#050505,#020202 65%);}
body:before{content:"";position:fixed;inset:0;pointer-events:none;opacity:.14;background-image:
 repeating-linear-gradient(0deg,transparent 0 3px,rgba(255,255,255,.015) 3px 4px),
 radial-gradient(circle at 30% 20%,rgba(255,255,255,.12) 0 1px,transparent 1.2px);background-size:auto,170px 170px;mix-blend-mode:screen}
button,textarea{font:inherit}.app{min-height:100vh;padding-bottom:72px}.desktop-shell{max-width:1600px;margin:auto}
.topline{height:2px;background:linear-gradient(90deg,transparent,var(--red),var(--gold),var(--red),transparent);opacity:.7}
.brandbar{display:flex;align-items:center;justify-content:space-between;padding:14px 16px;border-bottom:1px solid var(--line);background:rgba(4,4,4,.94);position:sticky;top:0;z-index:30;backdrop-filter:blur(10px)}
.brand{display:flex;align-items:center;gap:11px}.seal{width:31px;height:31px;border:1px solid var(--red2);border-radius:50%;position:relative;box-shadow:0 0 20px rgba(209,58,45,.14)}
.seal:before,.seal:after{content:"";position:absolute;inset:6px;border:1px solid rgba(185,154,98,.65);transform:rotate(45deg)}.seal:after{transform:rotate(0deg);border-radius:50%;inset:9px}
.brandname{font-size:1rem;letter-spacing:.19em}.tagline{font-size:.67rem;color:var(--red2);letter-spacing:.08em;margin-top:2px}
.header-actions{display:flex;gap:6px}.tinybtn,.textbtn,.action,.navbtn,.tabbtn{border:1px solid var(--line);background:#080707;color:var(--text);cursor:pointer}
.tinybtn{font-family:var(--ui);font-size:.72rem;padding:8px 10px;color:var(--muted)}.tinybtn:hover,.textbtn:hover,.action:hover,.navbtn:hover{border-color:var(--gold);color:#fff}
.thoughtbar{margin:12px 14px 4px;border-left:2px solid var(--red2);border-top:1px solid var(--redline);border-bottom:1px solid var(--line);padding:10px 12px;background:linear-gradient(90deg,rgba(91,18,15,.16),rgba(9,8,8,.5));cursor:pointer}
.eyebrow{font-family:var(--ui);font-size:.63rem;letter-spacing:.2em;text-transform:uppercase;color:var(--gold)}.thought{font-size:.92rem;line-height:1.35;margin-top:5px}.thought.collapsed{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.thoughtbar .hint{font-family:var(--ui);font-size:.58rem;color:#776d60;margin-top:5px}
.desktop-grid{display:block;padding:10px 12px 18px}.side{display:none}.center{min-width:0}.panel{border:1px solid var(--line);background:linear-gradient(180deg,rgba(15,11,11,.97),rgba(6,5,5,.98));box-shadow:inset 0 0 30px rgba(90,20,16,.05)}
.side-section{padding:15px;border-bottom:1px solid var(--line)}.side-title{font-size:.7rem;letter-spacing:.18em;text-transform:uppercase;color:var(--gold);margin-bottom:9px}.side-copy{font-size:.82rem;line-height:1.45;color:var(--muted)}
.journey-mini{display:flex;flex-direction:column;gap:8px}.mini-node{display:grid;grid-template-columns:18px 1fr;gap:8px;align-items:center}.mini-dot{width:8px;height:8px;border-radius:50%;border:1px solid #685a47;margin:auto}.mini-dot.done{background:var(--red);box-shadow:0 0 10px rgba(209,58,45,.55)}.mini-dot.current{background:var(--ember);box-shadow:0 0 15px rgba(228,85,63,.9)}.mini-label{font-size:.78rem;color:#c5b9a5}.mini-label.future{color:#5f584d}
.presence{margin:8px 0 12px;padding:10px 12px;border:1px solid rgba(157,32,26,.34);background:rgba(90,20,16,.11);color:#c9bba7;font-size:.83rem;line-height:1.42}.presence strong{color:var(--gold2);font-weight:normal}
.reader{border:1px solid rgba(185,154,98,.34);background:#060505;box-shadow:var(--shadow);position:relative;overflow:hidden}.reader-head{height:43px;display:flex;align-items:center;justify-content:space-between;padding:0 13px;border-bottom:1px solid var(--line);background:#070606}.bookline{font-size:.75rem;letter-spacing:.14em;text-transform:uppercase;color:#d5c4a7}.modebadge{font-family:var(--ui);font-size:.58rem;letter-spacing:.16em;text-transform:uppercase;color:var(--red2)}
.page{min-height:560px;position:relative;background:#090808}.page.parchment_split{display:grid;grid-template-rows:auto 48vh;background:var(--parch)}.page.parchment_split .prose{position:relative;background:linear-gradient(100deg,#d8c7a8,#c5b18f);color:var(--paperink);padding:30px 28px 24px;z-index:2}.page.parchment_split .art{position:relative;min-height:320px}.page.parchment_split .art:after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(202,183,150,.25),transparent 18%)}
.page.art_overlay .art,.page.lower_field .art{position:absolute;inset:0}.page.art_overlay .art:after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(0,0,0,.04) 0%,rgba(0,0,0,.18) 35%,rgba(0,0,0,.92) 100%)}.page.art_overlay .prose{position:relative;z-index:2;margin-top:54%;padding:24px 25px 30px;text-shadow:0 2px 20px #000}.page.lower_field{padding-top:58%}.page.lower_field .art:after{content:"";position:absolute;inset:42% 0 0;background:linear-gradient(transparent,#050505 33%)}.page.lower_field .prose{position:relative;z-index:3;padding:24px 25px 34px;background:rgba(4,4,4,.78)}
.page.edge_column{display:grid;grid-template-columns:42% 58%;min-height:610px}.page.edge_column .prose{padding:28px 22px;background:linear-gradient(180deg,#0b0908,#050505);border-right:1px solid var(--line)}.page.edge_column .art{min-height:610px}
.art{background-size:cover;background-position:center;overflow:hidden}.prose{font-size:1.05rem;line-height:1.55}.prose p{margin:0 0 1em}.prose p:last-child{margin-bottom:0}.dropcap .prose p:first-child:first-letter{float:left;font-size:3.1em;line-height:.78;padding:8px 7px 0 0;color:var(--red)}
.reader-foot{display:grid;grid-template-columns:1fr auto 1fr;gap:7px;padding:9px;border-top:1px solid var(--line);background:#050505}.navbtn{padding:11px 10px;font-family:var(--ui);font-size:.75rem;letter-spacing:.05em}.navbtn:last-child{text-align:right}.navbtn[disabled]{opacity:.3;cursor:default}.status{font-family:var(--ui);font-size:.6rem;letter-spacing:.14em;text-transform:uppercase;color:var(--gold);display:flex;align-items:center;justify-content:center;padding:0 8px;border-left:1px solid var(--line);border-right:1px solid var(--line)}
.page-actions{display:flex;gap:8px;justify-content:space-between;align-items:center;padding:10px 0 0}.action{padding:10px 13px;font-family:var(--ui);font-size:.68rem;letter-spacing:.08em;text-transform:uppercase}.action.primary{border-color:rgba(209,58,45,.55);background:linear-gradient(#37100e,#180908);color:#f2d8ca}.action.gold{border-color:rgba(185,154,98,.55);color:var(--gold2)}
.tabbar{position:fixed;bottom:0;left:0;right:0;height:64px;background:rgba(4,4,4,.97);border-top:1px solid var(--line);display:grid;grid-template-columns:repeat(3,1fr);z-index:40;backdrop-filter:blur(12px)}.tabbtn{border:0;border-right:1px solid rgba(185,154,98,.15);font-family:var(--ui);font-size:.65rem;letter-spacing:.12em;text-transform:uppercase;color:#8e8372;background:transparent}.tabbtn.active{color:var(--gold2);box-shadow:inset 0 2px 0 var(--red2);background:linear-gradient(180deg,rgba(126,28,23,.14),transparent)}
.mapview,.libraryview,.pulseview,.startview{border:1px solid var(--line);background:#080707;padding:16px;min-height:66vh}.viewtitle{font-size:1.25rem;letter-spacing:.05em;margin:2px 0 6px}.viewsub{font-size:.85rem;color:var(--muted);line-height:1.45;margin-bottom:18px}.mapcanvas{position:relative;padding:15px 8px 18px}.mapcanvas:before{content:"";position:absolute;inset:0;background:radial-gradient(circle at 53% 42%,rgba(157,32,26,.16),transparent 30%),repeating-radial-gradient(circle at 50% 50%,transparent 0 45px,rgba(185,154,98,.06) 46px 47px);opacity:.8;pointer-events:none}.route{position:relative;display:flex;flex-direction:column;gap:0}.route-node{display:grid;grid-template-columns:32px 1fr;gap:12px;min-height:76px;position:relative}.route-node:not(:last-child):before{content:"";position:absolute;left:15px;top:28px;bottom:-10px;width:1px;background:linear-gradient(var(--red),rgba(185,154,98,.22))}.route-dot{width:14px;height:14px;border-radius:50%;margin:8px auto 0;border:1px solid #6a5b48;background:#0b0909;z-index:2}.route-dot.done{background:var(--red);box-shadow:0 0 12px rgba(209,58,45,.55)}.route-dot.current{background:#ff624d;border-color:#ffd0b7;box-shadow:0 0 18px rgba(255,80,60,.95)}.route-dot.future{background:#090808}.route-info{padding:5px 0 14px;border-bottom:1px solid rgba(185,154,98,.09)}.route-book{font-size:.88rem;color:#d9ccb8}.route-pages{font-family:var(--ui);font-size:.62rem;color:var(--muted);margin-top:4px;letter-spacing:.06em}.route-future{color:#5f574d;font-style:italic}
.legend{display:flex;gap:15px;flex-wrap:wrap;font-family:var(--ui);font-size:.61rem;color:#7f7465;margin-top:12px}.legend span:before{content:"";display:inline-block;width:7px;height:7px;border-radius:50%;margin-right:6px;border:1px solid #6f614f}.legend .now:before{background:#ff624d}.legend .passed:before{background:var(--red)}
.library-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.bookcard{border:1px solid var(--line);background:#070606;min-width:0}.bookcover{aspect-ratio:1/1;background-size:cover;background-position:center;position:relative}.bookcover:after{content:"";position:absolute;inset:0;background:linear-gradient(transparent 45%,rgba(0,0,0,.8))}.bookmeta{padding:10px}.booktitle{font-size:.9rem;color:#dfd2bd}.bookstate{font-family:var(--ui);font-size:.58rem;letter-spacing:.1em;color:var(--red2);text-transform:uppercase;margin-top:4px}.bookactions{display:flex;gap:5px;margin-top:8px}.bookactions button{flex:1}.hiddenbook{border:1px solid rgba(185,154,98,.13);min-height:180px;background:radial-gradient(circle at 50% 40%,rgba(120,28,22,.08),transparent 34%),#050505;display:flex;align-items:center;justify-content:center;color:#514a40;font-size:.7rem;letter-spacing:.14em;text-transform:uppercase}
.startview{display:grid;place-items:center;position:relative;overflow:hidden}.startview:before{content:"";position:absolute;inset:0;background:radial-gradient(circle at 50% 25%,rgba(162,35,27,.20),transparent 23%),repeating-radial-gradient(circle at 50% 35%,transparent 0 55px,rgba(185,154,98,.055) 56px 57px);opacity:.9}.startcard{position:relative;max-width:620px;text-align:center;padding:26px}.startcard .seal{margin:0 auto 18px;width:52px;height:52px}.startcard h1{font-size:1.55rem;font-weight:normal;letter-spacing:.04em;margin:0 0 12px}.startthought{font-size:1.15rem;line-height:1.45;color:#f0e5d4;margin:20px 0}.startnote{color:var(--muted);line-height:1.5;font-size:.9rem}.beginbtn{margin-top:22px;min-width:210px}
.overlay{position:fixed;inset:0;background:rgba(0,0,0,.76);display:none;align-items:center;justify-content:center;padding:18px;z-index:100;backdrop-filter:blur(8px)}.overlay.open{display:flex}.modal{width:min(620px,100%);border:1px solid rgba(185,154,98,.42);background:linear-gradient(180deg,#0d0909,#050505);box-shadow:0 35px 100px #000;padding:24px;position:relative}.modal:before{content:"";position:absolute;inset:8px;border:1px solid rgba(157,32,26,.24);pointer-events:none}.modal h2{font-weight:normal;font-size:1.35rem;letter-spacing:.04em;margin:8px 0 14px}.modal p{line-height:1.55;color:#cbbda8}.modal-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:18px}.textbtn{padding:11px 14px;font-family:var(--ui);font-size:.7rem;letter-spacing:.08em;text-transform:uppercase}.textbtn.primary{border-color:rgba(209,58,45,.6);background:#2a0c0a;color:#f3ddd2}
.pulsebox{max-width:680px;margin:0 auto;padding-top:8vh}.pulsebox textarea{width:100%;min-height:180px;border:1px solid var(--line);background:#050505;color:#eee1ce;padding:16px;line-height:1.5;resize:vertical;outline:none}.pulsebox textarea:focus{border-color:var(--red)}.saved{font-family:var(--ui);font-size:.65rem;color:var(--gold);margin-top:8px}.desktop-only{display:none}
@media(max-width:640px){.page.edge_column{grid-template-columns:1fr;grid-template-rows:auto 44vh}.page.edge_column .prose{order:2;border-right:0;border-top:1px solid var(--line)}.page.edge_column .art{min-height:330px}.reader{border-left:0;border-right:0}.desktop-grid{padding-left:0;padding-right:0}.page{min-height:590px}.page.art_overlay .prose{margin-top:62%}.library-grid{grid-template-columns:repeat(2,1fr)}}
@media(min-width:900px){.brandbar{padding-inline:24px}.thoughtbar{margin-inline:24px}.desktop-grid{padding:14px 24px 26px}.library-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.page.parchment_split{grid-template-columns:48% 52%;grid-template-rows:1fr;min-height:650px}.page.parchment_split .art{min-height:650px}.page.edge_column{grid-template-columns:39% 61%;min-height:650px}.page.edge_column .art{min-height:650px}.page.art_overlay .prose{margin-top:43%;max-width:48rem}.page.lower_field{padding-top:48%}}
@media(min-width:1180px){.app{padding-bottom:0}.desktop-grid{display:grid;grid-template-columns:270px minmax(0,1fr) 300px;gap:10px;align-items:start}.side{display:block;position:sticky;top:67px;max-height:calc(100vh - 78px);overflow:auto}.center{min-width:0}.tabbar{position:sticky;bottom:auto;top:58px;z-index:25;margin:0 24px 10px;border:1px solid var(--line);height:45px}.desktop-only{display:block}.mobile-only{display:none}.thoughtbar{max-width:calc(100% - 48px)}.mapview,.libraryview,.pulseview,.startview{min-height:72vh}.reader{min-height:72vh}.page{min-height:680px}.page.parchment_split .art,.page.edge_column .art{min-height:680px}.side .library-grid{grid-template-columns:1fr 1fr}}
