/* A quiet companion to the original reading experience. */
[hidden]{display:none!important}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.companion-page{max-width:1240px}.companion-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:28px;margin:40px 0}.companion-heading h1{font:clamp(39px,4.6vw,66px)/1.12 Georgia,serif;margin:15px 0 20px;letter-spacing:-1.5px}.companion-heading p:not(.eyebrow){max-width:680px;color:var(--muted);line-height:1.8}.companion-heading>.button{white-space:nowrap;flex-shrink:0}.companion-nav{display:flex;gap:6px;flex-wrap:wrap;padding:0 0 21px;border-bottom:1px solid var(--line);font-size:12px;line-height:1.4}.companion-nav a{display:flex;align-items:center;gap:9px;padding:12px 14px;border:1px solid transparent;border-radius:3px;color:var(--muted)}.companion-nav a:hover,.companion-nav a[aria-current=page]{color:var(--text);background:var(--panel);border-color:var(--line)}.companion-nav a span{font-size:20px;color:#9eafc3}
.companion-panel{padding:30px;border:1px solid var(--line);background:var(--panel);min-width:0}.companion-panel h2{font:30px/1.2 Georgia,serif;margin:8px 0 20px}.companion-panel h3{font:23px/1.3 Georgia,serif;margin:26px 0 12px}.companion-panel p{color:var(--muted);line-height:1.8}.companion-panel .eyebrow{font-size:10px}.companion-columns{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px;margin:30px 0}.companion-card-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px;margin:30px 0}.companion-card-grid h2{font-size:27px}.companion-stat-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));border:1px solid var(--line);margin:28px 0;background:var(--panel)}.companion-stat-grid>div{padding:26px;border-right:1px solid var(--line);display:flex;flex-direction:column;gap:10px}.companion-stat-grid>div:last-child{border:0}.companion-stat-grid strong{font:35px Georgia,serif;font-variant-numeric:tabular-nums}.companion-stat-grid strong small{font:17px Georgia,serif;color:var(--muted)}.companion-stat-grid span{font-size:11px;line-height:1.5;color:var(--muted);letter-spacing:.4px}.companion-empty{grid-column:1/-1;border:1px dashed var(--line);padding:55px 28px;text-align:center;margin:20px 0}.companion-empty>span{font-size:32px;color:#9eafc3}.companion-empty h2{font:30px Georgia,serif}.companion-empty p{color:var(--muted);max-width:580px;margin:15px auto 25px;line-height:1.8}
.banner-forest{--banner-a:#193d32;--banner-b:#101c1a;--banner-ink:#a2d4bd}.banner-stars{--banner-a:#29284e;--banner-b:#111827;--banner-ink:#c4b7ee}.banner-storm{--banner-a:#234251;--banner-b:#111d29;--banner-ink:#a3d3e1}.banner-rose{--banner-a:#4c2c42;--banner-b:#251722;--banner-ink:#e8b0cf}.banner-ember{--banner-a:#4f3034;--banner-b:#21191d;--banner-ink:#e7b6af}.sanctuary-hero{position:relative;isolation:isolate;overflow:hidden;margin-top:30px;padding:55px;border:1px solid color-mix(in srgb,var(--banner-ink) 30%,#252525);background:radial-gradient(ellipse at 90% 20%,var(--banner-a),transparent 70%),var(--banner-b);color:#ebe7dd}.sanctuary-hero h1{font:clamp(40px,4.4vw,64px)/1.14 Georgia,serif;letter-spacing:-1px;margin:20px 0}.sanctuary-hero>p:not(.eyebrow){max-width:540px;color:#c7c7c0;line-height:1.8}.sanctuary-hero .eyebrow{color:var(--banner-ink)}.sanctuary-hero .actions{margin-top:30px}.sanctuary-hero .button.secondary{color:#ebe7dd;border-color:#aeb9be66}.sanctuary-orbit{position:absolute;right:-30px;top:-65px;z-index:-1;font:360px/1 Georgia,serif;color:var(--banner-ink);opacity:.13;transform:rotate(20deg);pointer-events:none}.sanctuary-title{position:absolute;right:30px;bottom:24px;font:italic 16px Georgia,serif;color:var(--banner-ink)}.profile-banner{background:radial-gradient(ellipse at 80% 0,var(--banner-a),transparent 65%),var(--banner-b)!important;color:#e9e4d7;border-color:color-mix(in srgb,var(--banner-ink) 35%,#30322d)!important}.profile-banner p,.profile-banner .textlink,.profile-banner small,.profile-banner .progress-caption{color:#bfc5c4}.profile-banner .button.secondary{color:#e9e4d7;border-color:#727b7a}.decorative-reader-title{font:italic 19px Georgia,serif;color:var(--banner-ink)!important}.reader-profile.profile-banner{padding:50px 30px;border:1px solid var(--line)}
.goal-number{font:48px Georgia,serif!important;color:var(--text)!important;margin:20px 0 10px!important}.goal-number span{font-size:20px;color:var(--muted)}.companion-panel progress{width:100%;height:7px;accent-color:#8acbb5}.reading-calendar{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:7px;margin:20px 0}.calendar-day{display:flex;align-items:center;justify-content:center;aspect-ratio:1;border:1px solid var(--line);font-size:11px;font-variant-numeric:tabular-nums;color:var(--muted);background:color-mix(in srgb,var(--bg) 65%,var(--panel))}.calendar-day.level-1{background:#244c40;color:#c7eadd;border-color:#416658}.calendar-day.level-2{background:#3a735e;color:white;border-color:#57957d}.calendar-day.level-3{background:#75b69c;color:#0a261d;border-color:#96cbb6}.sanctuary-quests{display:grid;gap:5px}.sanctuary-quests>a{display:flex;align-items:center;gap:20px;padding:21px 0;border-bottom:1px solid var(--line)}.sanctuary-quests>a>span{font:23px Georgia,serif;color:#9bafc7}.sanctuary-quests strong{font:21px Georgia,serif}.sanctuary-quests p{font-size:13px;margin:9px 0 0}.milestone-strip{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:10px;margin:30px 0}.milestone{border:1px solid var(--line);display:flex;flex-direction:column;align-items:center;gap:8px;padding:20px 8px;color:var(--muted);background:var(--panel)}.milestone>span{font-size:23px}.milestone strong{font:28px Georgia,serif}.milestone small{font-size:10px;letter-spacing:1px}.milestone.earned{color:#b7a5e7;border-color:#6e618b;background:linear-gradient(150deg,#262034,var(--panel))}
.companion-filters{display:flex;align-items:flex-end;flex-wrap:wrap;gap:18px;padding:22px;border:1px solid var(--line);background:var(--panel);margin:25px 0}.companion-filters>.author-field:first-child{flex:2;min-width:200px}.companion-filters>.author-field{flex:1;min-width:150px;margin:0}.companion-filters>.button{margin-bottom:2px}.companion-filters>.check{min-height:44px;margin:0}.companion-filters>p{flex-basis:100%;margin:0}.notebook-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:22px}.notebook-card{position:relative;border:1px solid var(--line);border-top:3px solid var(--note-ink);padding:28px;background:var(--panel);min-width:0;overflow-wrap:anywhere}.note-silver{--note-ink:#b9c5d7}.note-teal{--note-ink:#75cfc3}.note-violet{--note-ink:#b5a0e6}.note-rose{--note-ink:#e8a3bc}.note-top{display:flex;justify-content:space-between;gap:14px;color:var(--muted);font-size:10px}.notebook-card h2{font:28px/1.3 Georgia,serif;margin:22px 0}.notebook-card blockquote,.saved-quote{margin:20px 0;padding:15px 20px;border-left:2px solid var(--note-ink,#93b8a8);background:color-mix(in srgb,var(--bg) 45%,var(--panel));font:italic 18px/1.8 Georgia,serif;color:var(--text);white-space:pre-wrap}.note-body{white-space:pre-wrap;font-size:14px;line-height:1.9;color:var(--muted)}.notebook-card .actions{margin-top:25px;border-top:1px solid var(--line);padding-top:15px}.notebook-card .text-button{min-height:44px}
.companion-dialog{width:min(650px,94vw);max-height:90vh;overflow:auto;padding:30px;border:1px solid var(--line);background:var(--bg);color:var(--text);box-shadow:0 25px 100px #0008}.companion-dialog::backdrop{background:#000b;backdrop-filter:blur(4px)}.companion-dialog-head{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:25px}.companion-dialog h2{font:30px/1.2 Georgia,serif;margin:0}.companion-dialog input,.companion-dialog textarea,.companion-dialog select{max-width:100%}.companion-dialog [role=status]{color:var(--muted);line-height:1.7}.companion-dialog textarea[readonly]{width:100%;background:var(--panel);color:var(--text);padding:15px;border:1px solid var(--line)}.banner-picker{border:1px solid var(--line);padding:18px;margin:22px 0}.banner-picker legend{font:21px Georgia,serif}.banner-picker label{display:flex;align-items:center;gap:12px;background:linear-gradient(110deg,var(--banner-a),var(--banner-b));color:var(--banner-ink);padding:16px;border:1px solid #ffffff22;margin-bottom:9px;cursor:pointer}.banner-picker input{accent-color:#b3c4df}.banner-picker label:has(input:checked){outline:2px solid #b3c4df;outline-offset:1px}
.passport-summary{display:flex;align-items:center;gap:30px;border-block:1px solid var(--line);padding:28px 0;margin:25px 0}.passport-summary>strong{font:66px Georgia,serif;color:#a2c4b5;white-space:nowrap}.passport-summary strong span{font-size:25px;color:var(--muted)}.passport-summary h2{font:27px Georgia,serif;margin:0 0 8px}.passport-summary p{color:var(--muted);margin:0;line-height:1.7}.passport-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}.passport-stamp{border:1px dashed var(--line);padding:30px 18px;text-align:center;background:var(--panel)}.passport-stamp.stamped{border-style:solid;border-color:#668677;background:radial-gradient(circle at top,#20382e,var(--panel) 75%)}.stamp-art{position:relative;width:120px;height:120px;margin:auto;color:#777b82}.stamped .stamp-art{color:#8fcab1}.stamp-art svg{position:absolute;inset:0;width:100%;height:100%;stroke:currentColor;fill:none;stroke-width:1}.stamp-art>span{font:23px Georgia,serif;position:absolute;inset:0;display:grid;place-content:center}.passport-stamp h2{font:27px Georgia,serif}.passport-stamp p{font-size:12px;color:var(--muted);min-height:34px;line-height:1.7}.passport-stamp .tag{font-size:10px}.city-directory{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:15px;align-items:start}.city-directory-entry{border:1px solid var(--line);background:var(--panel);min-width:0}.city-directory-entry summary{list-style:none;display:flex;justify-content:space-between;align-items:center;gap:20px;cursor:pointer;padding:25px}.city-directory-entry summary::-webkit-details-marker{display:none}.city-directory-entry summary strong{display:block;font:26px/1.3 Georgia,serif;margin:12px 0}.city-directory-entry summary small{font:italic 15px/1.6 Georgia,serif;color:var(--muted);display:block}.city-directory-entry>div{padding:0 25px 25px;color:var(--muted);font-size:15px;line-height:1.8}.city-directory-entry .eyebrow{font-size:9px}.city-directory-entry[open] summary>span:last-child{transform:rotate(45deg)}
.inbox-list{display:grid;gap:12px}.inbox-entry{display:flex;align-items:flex-start;gap:25px;border:1px solid var(--line);padding:26px;background:var(--panel)}.inbox-entry>div{flex:1;min-width:0}.inbox-entry h2{font:25px/1.3 Georgia,serif;margin:8px 0 12px}.inbox-entry p{color:var(--muted);line-height:1.8;margin:0}.inbox-entry small{display:block;color:var(--muted);margin-top:15px;font-size:11px}.inbox-dot{width:8px;height:8px;border:1px solid var(--muted);border-radius:100%;margin-top:8px;flex-shrink:0}.inbox-entry.unread{border-left:3px solid #96c7b5}.unread .inbox-dot{background:#96c7b5;border-color:#96c7b5}.poll-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:25px}.poll-card h2{margin-top:25px}.poll-card fieldset{border:0;padding:0;margin:25px 0}.poll-choice{display:grid;grid-template-columns:1fr auto;gap:14px;align-items:center;border:1px solid var(--line);padding:17px;margin:10px 0;cursor:pointer}.poll-choice>span:first-child{display:flex;gap:12px;line-height:1.6;font-size:14px}.poll-choice input{accent-color:#a9c3df}.poll-choice progress{grid-column:1/-1;height:5px}.poll-result{color:var(--muted);font-size:10px;white-space:nowrap}.poll-choice:has(input:checked){border-color:#95bbd8;background:color-mix(in srgb,#527c9c 12%,var(--panel))}
.game-score{display:flex;gap:15px;justify-content:space-between;flex-wrap:wrap;font-size:11px;color:var(--muted);padding:15px 0}.memory-board{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin:10px 0 22px}.memory-card{aspect-ratio:1;display:grid;place-items:center;background:radial-gradient(circle at 10% 10%,#293545,#151b25);border:1px solid #475262;color:#9faec8;font:33px Georgia,serif;cursor:pointer;border-radius:3px;min-width:0;transition:background .15s,border-color .15s,transform .15s}.memory-card:hover{border-color:#a2bbdf;transform:translateY(-2px)}.memory-card.flipped{background:#e0ded3;color:#243a49;border-color:#f2eee0}.memory-card.matched{background:#203e34;color:#a8deca;border-color:#6caa91;opacity:1}.cipher-letters{font:25px/1.8 Georgia,serif;letter-spacing:3px;padding:22px 15px;border-block:1px solid var(--line);overflow-wrap:anywhere;text-align:center;color:var(--text)!important}.game-divider{border-top:1px solid var(--line);margin:40px 0}.game-score+div+p{min-height:50px}
.reader-companion{margin:20px auto 30px;border:1px solid var(--line);background:var(--panel);max-width:1000px}.reader-companion>summary{display:flex;justify-content:space-between;gap:15px;padding:20px 24px;cursor:pointer;list-style:none}.reader-companion>summary>span{font:21px Georgia,serif}.reader-companion summary small{color:var(--muted);font-size:11px;line-height:1.5}.reader-companion-body{padding:5px 24px 24px}.reader-companion-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:35px;border-top:1px solid var(--line);margin-top:25px;padding-top:10px}.reader-companion-grid h3{font:23px Georgia,serif}.reader-companion .author-field{font-size:12px}.reader-companion .small-note{line-height:1.8}.reader-companion .actions{flex-wrap:wrap;gap:10px}.session-clock{font:45px/1 Georgia,serif;font-variant-numeric:tabular-nums;margin:25px 0}.reader-auto-row{display:flex;align-items:center;flex-wrap:wrap;gap:20px;border-top:1px solid var(--line);margin-top:25px;padding-top:25px}.reader-auto-row .author-field{margin:0;min-width:170px}.spoken-passage{outline:1px solid #7eacba;outline-offset:9px;background:color-mix(in srgb,#7eacba 8%,var(--reader))}.guided-passage{border-left:3px solid #80bca4;padding-left:16px!important;background:color-mix(in srgb,#80bca4 7%,var(--reader))}.comfort-controls>label{display:flex;flex-direction:column;gap:12px;margin:23px 0;color:var(--muted);font-size:13px}.comfort-controls input[type=range]{width:100%}.comfort-controls select{background:var(--panel);color:var(--text);border:1px solid var(--line);padding:12px}.world-collection-controls{display:flex;flex-wrap:wrap;gap:15px;align-items:center}.world-map-tools{display:flex;gap:25px;flex-wrap:wrap;margin:-18px 0 30px}
.command-dialog{width:min(660px,94vw)}.command-results{display:grid;gap:5px;max-height:50vh;overflow:auto}.command-results a{display:flex;justify-content:space-between;align-items:center;gap:20px;min-height:46px;padding:12px 15px;border:1px solid transparent}.command-results a:hover,.command-results a:focus{background:var(--panel);border-color:var(--line)}.command-results small{font-size:10px;color:var(--muted);white-space:nowrap}.quick-find-button{font-size:11px!important;padding:8px 0;white-space:nowrap;color:var(--muted)!important}.shortcut-list>div{display:flex;gap:30px;padding:15px 0;border-top:1px solid var(--line)}.shortcut-list dt{min-width:210px}.shortcut-list dd{margin:0;color:var(--muted);line-height:1.7}.shortcut-list kbd{font:12px system-ui;background:var(--panel);border:1px solid var(--line);border-bottom-width:3px;padding:4px 7px;border-radius:3px}.release-list{display:grid;gap:4px}.release-item{display:flex;justify-content:space-between;align-items:center;gap:15px;text-align:left;background:transparent;border:0;border-bottom:1px solid var(--line);color:var(--text);padding:20px 0;cursor:pointer;width:100%}.release-item strong{font:20px/1.4 Georgia,serif}.release-item small{display:block;font:12px/1.7 system-ui;color:var(--muted);margin-top:8px}
.home-companion{max-width:1056px;margin:20px auto 45px;padding:32px;border:1px solid var(--line);background:linear-gradient(125deg,color-mix(in srgb,#537f73 11%,var(--bg)),var(--panel));display:flex;justify-content:space-between;align-items:center;gap:30px}.home-companion h2{font:30px/1.2 Georgia,serif;margin:10px 0}.home-companion p:not(.eyebrow){font-size:13px;line-height:1.8;color:var(--muted);max-width:440px}.home-companion .actions{flex-direction:column;align-items:flex-start;flex-shrink:0}.explore-tool-links{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;margin:25px 0 35px}.explore-tool-links>a{padding:23px;background:var(--panel);border:1px solid var(--line);display:grid;grid-template-columns:1fr auto;gap:10px}.explore-tool-links>a>span{font:26px Georgia,serif;color:#a4b7ce;grid-column:1/-1}.explore-tool-links strong{font:22px Georgia,serif;grid-column:1/-1}.explore-tool-links small{line-height:1.7;color:var(--muted);font-size:11px}.community-extras{margin-top:22px}.footer-tool-links{display:flex;justify-content:center;flex-wrap:wrap;gap:25px;font-size:11px;line-height:1.7;flex-basis:100%}.back-to-top{position:fixed;bottom:28px;right:24px;width:42px;height:42px;border:1px solid var(--line);background:var(--panel);color:var(--text);z-index:25;cursor:pointer;font-size:22px;box-shadow:0 4px 15px #0003}.connection-status{padding:12px 24px;background:#294b43;color:#e6f2e8;text-align:center;font-size:13px;line-height:1.6}.focused .reader-companion,.focused .back-to-top{display:none}
.companion-page a:focus-visible,.companion-page button:focus-visible,.companion-dialog :focus-visible,.reader-companion :focus-visible,.quick-find-button:focus-visible{outline:2px solid #a8c4e3;outline-offset:4px}.companion-page summary:focus-visible{outline:2px solid #a8c4e3;outline-offset:2px}.companion-page button,.companion-dialog button,.reader-companion button{min-height:44px}.companion-page .actions{flex-wrap:wrap}
@media(max-width:1100px){.home-companion{margin-inline:6%}.companion-heading{align-items:flex-start;flex-direction:column}.companion-stat-grid>div{padding:22px}.companion-card-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.sanctuary-title{position:static;display:block;margin-top:25px}.quick-find-button{font-size:10px!important}}
@media(max-width:800px){.companion-columns,.poll-grid{grid-template-columns:1fr}.passport-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.companion-stat-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.companion-stat-grid>div:nth-child(2){border-right:0}.companion-stat-grid>div:nth-child(-n+2){border-bottom:1px solid var(--line)}.home-companion{align-items:flex-start;flex-direction:column}.home-companion .actions{flex-direction:row;flex-wrap:wrap}.sanctuary-hero{padding:35px}.sanctuary-orbit{font-size:260px;top:-30px;right:-65px}.city-directory{grid-template-columns:1fr}.explore-tool-links{grid-template-columns:1fr}.explore-tool-links>a{grid-template-columns:auto 1fr auto;align-items:center;gap:15px}.explore-tool-links>a>span{grid-column:auto;grid-row:1/3}.explore-tool-links strong{grid-column:2;grid-row:1}.explore-tool-links small{grid-column:2;grid-row:2}.shortcut-list>div{flex-direction:column;gap:15px}}
@media(max-width:580px){.companion-page{padding-top:25px}.companion-nav{gap:3px}.companion-nav a{padding:11px 9px;font-size:10px;gap:6px}.companion-heading{margin-top:30px}.companion-heading h1{font-size:42px;letter-spacing:-1px}.companion-stat-grid strong{font-size:30px}.companion-stat-grid>div{padding:20px 15px}.sanctuary-hero{padding:30px 23px}.sanctuary-hero h1{font-size:38px}.sanctuary-orbit{font-size:210px;top:5px;right:-80px}.sanctuary-hero .actions{align-items:stretch;flex-direction:column}.sanctuary-hero .button{text-align:center}.companion-panel{padding:24px}.companion-panel h2{font-size:27px}.companion-card-grid,.notebook-grid{grid-template-columns:1fr}.companion-filters{padding:18px;align-items:stretch}.companion-filters>.author-field{flex-basis:100%;min-width:0}.companion-dialog{padding:23px 18px}.companion-dialog-head h2{font-size:26px}.milestone-strip{grid-template-columns:repeat(3,minmax(0,1fr))}.passport-stamp{padding:22px 10px}.passport-stamp h2{font-size:23px}.passport-stamp p{font-size:10px}.stamp-art{width:90px;height:90px}.passport-summary{gap:20px;align-items:flex-start}.passport-summary>strong{font-size:48px}.passport-summary h2{font-size:23px}.passport-summary p{font-size:12px}.inbox-entry{padding:22px 18px;gap:15px}.inbox-entry h2{font-size:24px}.inbox-entry p{font-size:13px}.reader-companion>summary{flex-direction:column;gap:8px;padding:20px}.reader-companion-body{padding:5px 17px 20px}.reader-companion-grid{grid-template-columns:1fr;gap:10px}.reader-companion-body>.actions{flex-direction:column;align-items:stretch}.reader-companion-body>.actions button{text-align:left}.reader-auto-row{align-items:flex-start;flex-direction:column}.reader-auto-row>.author-field{width:100%}.home-companion{padding:25px}.home-companion h2{font-size:27px}.home-companion .actions{flex-direction:column}.back-to-top{right:13px;bottom:75px}.memory-board{gap:8px}.memory-card{font-size:29px}.poll-choice{grid-template-columns:1fr}.poll-result{padding-left:25px}.footer-tool-links{gap:18px}.world-map-tools{margin-top:0}}
@media(prefers-reduced-motion:reduce){.memory-card{transition:none}.memory-card:hover{transform:none}.companion-page *{scroll-behavior:auto!important}}
@media(forced-colors:active){.companion-panel,.passport-stamp,.notebook-card,.memory-card,.sanctuary-hero,.companion-stat-grid,.poll-choice{border:1px solid CanvasText}.memory-card.matched{outline:2px solid Highlight}.calendar-day:not(.level-0){border:3px solid Highlight}.inbox-entry.unread{border-left:4px solid Highlight}}
@media print{.companion-nav,.reader-companion,.back-to-top,.reader-tools,.reader-bottom-nav,.chapter-utilities,header,footer{display:none!important}.published-chapter{background:white!important;color:black!important;border:0}.spoken-passage,.guided-passage{background:transparent!important;outline:0;border:0}}

main:focus{outline:none}
