/* The shared shell owns navigation, reading controls and player geometry. */
:root{--header-height:76px;--player-height:76px;--nav-width:286px;--space-1:8px;--space-2:16px;--space-3:24px;--space-4:32px;--control:44px;--edge:#b59b6059;--edge-strong:#c4a569;--focus:#f1d395;--panel:#192b23;--panel-raised:#21362c;--duration-fast:180ms;--duration-panel:260ms;--ease-out:cubic-bezier(.2,.75,.25,1);scroll-padding-top:calc(var(--header-height) + 24px);scroll-padding-bottom:calc(var(--player-height) + 24px)}
html[data-theme=night]{--panel:#142526;--panel-raised:#1e3233;--edge:#acac7d50}
body{--content-offset:0px}
body.nav-pinned{--content-offset:var(--nav-width)}
body.nav-modal{overflow:hidden}
[hidden]{display:none!important}
.masthead{position:fixed;inset:0 0 auto;z-index:40;height:76px;display:flex;align-items:center;gap:18px;padding:0 24px;background:linear-gradient(115deg,#16291ffb,#25352afb 70%,#3b3828fb);border-bottom:1px solid var(--edge);box-shadow:0 5px 30px #0003;transition:box-shadow var(--duration-panel)}
.has-scrolled .masthead{box-shadow:0 8px 28px #0005}
.mobile-menu{display:inline-flex;align-items:center;gap:7px;flex-shrink:0;font-size:.76rem;color:var(--gold)}
.quick-navigation{display:flex;align-items:center;gap:4px;margin-left:18px;white-space:nowrap}
.quick-navigation a{position:relative;padding:12px 10px;font-size:.78rem;color:var(--muted);min-height:44px;display:flex;align-items:center}
.quick-navigation a:hover,.quick-navigation a[aria-current]{color:#f4d797;background:#d8bc7410}
.quick-navigation a[aria-current]:after{content:"";height:2px;background:var(--gold);position:absolute;inset:auto 10px 0}
@media(max-width:1350px){.quick-navigation{display:none}}
@media(max-width:650px){.menu-caption{display:none}}
.brand{display:flex;align-items:center;gap:12px;flex-shrink:0;min-width:0;font-size:.9rem;font-weight:700;letter-spacing:.13em;color:#f3dbab;line-height:1.35}
.brand small{display:block;margin-top:5px;font-size:.64rem;font-weight:500;letter-spacing:.12em;color:#cdb888}
.seal{width:38px;height:44px;display:grid;place-items:center;flex-shrink:0;background:linear-gradient(145deg,#e5c379,#a07b3d);border:1px solid #e7cc8c;border-radius:3px;color:#223226;font:30px Georgia,serif;transform:rotate(-3deg);box-shadow:0 3px 12px #0004}
.search-trigger{min-height:var(--control);display:flex;align-items:center;gap:12px;min-width:0;width:min(280px,22vw);margin-left:auto;padding:9px 14px;border:1px solid var(--edge);border-radius:4px;background:#d5bd7b08;color:var(--muted);text-align:left;font-size:.82rem}
.search-trigger kbd{margin-left:auto;font-size:.65rem;border-color:var(--edge)}
.search-trigger .line-icon{width:19px;height:19px;flex-shrink:0}
.header-actions{display:flex;align-items:center;gap:14px}
.notebook-link{display:flex;align-items:center;gap:8px;font-size:.8rem;white-space:nowrap;padding:10px 0}
.icon-button{min-width:var(--control);min-height:var(--control);height:auto;padding:8px;border-radius:4px;flex-shrink:0}
.line-icon{flex-shrink:0}
.nav-backdrop{position:fixed;inset:0;z-index:60;background:#06140fb3;backdrop-filter:blur(5px);animation:veil-in var(--duration-panel) ease-out}
.sidebar{position:fixed;inset:0 auto 0 0;z-index:65;width:min(350px,calc(100vw - 22px));padding:24px 18px;background:var(--panel);border-right:1px solid var(--edge-strong);box-shadow:20px 0 80px #0005;overflow-y:auto;overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:#aa945e60 transparent;transform:translateX(-103%);visibility:hidden;transition:transform var(--duration-panel) var(--ease-out);scroll-padding:108px 16px 16px}
.sidebar.open{visibility:visible;transform:translateX(0)}
.sidebar-head{position:sticky;top:0;z-index:3;background:var(--panel);box-shadow:0 -24px 0 var(--panel);display:flex;align-items:center;justify-content:space-between;gap:12px;padding:0 10px 20px;border-bottom:1px solid var(--edge);margin-bottom:14px}
.sidebar-head .eyebrow{font-size:.67rem;letter-spacing:.14em;color:var(--gold)}
.sidebar-head h2{font-size:1.55rem;line-height:1.3;margin-top:4px}
.nav-pin,.nav-utility{display:flex;align-items:center;gap:12px;min-height:44px;width:100%;text-align:left;font-size:.8rem;line-height:1.5;background:transparent;border:0;border-radius:4px;padding:10px 12px}
.nav-pin{border:1px solid var(--edge);margin-bottom:12px;color:var(--gold)}
.nav-pin[aria-pressed=true]{background:#d2b77716}
.nav-pin i,.nav-utility i{display:flex}
.nav-group+.nav-group{margin-top:18px}
.nav-group>span{display:block;padding:0 12px;margin-bottom:7px;font-size:.66rem;letter-spacing:.12em;line-height:1.6;color:#c6b789}
.nav-link{position:relative;display:grid;grid-template-columns:20px minmax(0,1fr) auto;gap:12px;align-items:center;min-height:44px;padding:10px 12px;margin:3px 0;border:1px solid transparent;border-radius:4px;color:#e0dcc5;line-height:1.45;font-size:.84rem;transition:background var(--duration-fast),border-color var(--duration-fast)}
.nav-link i{display:flex;color:#ccb17b}
.nav-link .line-icon{width:19px;height:19px}
.nav-link .nav-text{min-width:0;overflow-wrap:anywhere}
.nav-link b{min-width:32px;text-align:right;font-size:.68rem;font-weight:400;font-variant-numeric:tabular-nums;color:#b9baa0}
.nav-link:hover,.nav-utility:hover{background:#d6bf7910}
.nav-link.active{background:linear-gradient(100deg,#d5b36d22,#b8995010);border-color:#b89c4b45;color:#f6dda3}
.nav-link.active:before{content:'';position:absolute;left:-1px;top:22%;bottom:22%;width:3px;border-radius:2px;background:#efd18c;box-shadow:0 0 14px #e8c67840}
.nav-link.active b,.nav-link.active i{color:#e4c382}
.sidebar-foot{border-top:1px solid var(--edge);margin-top:24px;padding:20px 0 10px}
.sidebar-foot>.eyebrow{display:block;padding:0 12px;margin-bottom:7px;font-size:.66rem;color:#c6b789}
.sidebar-foot .source-date,.sidebar-foot .local-status{display:block;margin:12px 12px 0;font-size:.68rem;line-height:1.6;color:var(--muted)}
.nav-pinned .sidebar{top:var(--header-height);bottom:var(--player-height);width:var(--nav-width);padding:20px 14px;box-shadow:none;z-index:35}
.nav-pinned .sidebar-head{padding-inline:8px}
.nav-pinned .sidebar-head h2{font-size:1.3rem}
main{margin:var(--header-height) 0 var(--player-height) var(--content-offset);min-height:calc(100dvh - var(--header-height) - var(--player-height));max-width:none;padding:28px max(clamp(20px,4vw,64px),calc((100vw - var(--content-offset) - 1440px)/2)) 64px;outline:none;container:content / inline-size}
body[data-page=home] main{padding:28px max(clamp(20px,4.5vw,80px),calc((100vw - var(--content-offset) - 1440px)/2)) 64px}
body[data-page=atlas] main{padding:0}
.reading-progress{top:calc(var(--header-height) - 1px);z-index:41}
.detail-aside,.draft-sheet{top:calc(var(--header-height) + 24px)}
.chart-chamber.unfolded{inset:calc(var(--header-height) + 12px) 20px calc(var(--player-height) + 12px)!important}
.player{position:fixed;inset:auto 0 0;z-index:40;display:flex;align-items:center;gap:18px;min-height:76px;padding:12px 28px max(12px,env(safe-area-inset-bottom));background:linear-gradient(110deg,#182a21fc,#203128fc);border-top:1px solid var(--edge);box-shadow:0 -4px 24px #0002}
.music-play{display:grid;place-items:center;flex-shrink:0;width:44px;height:44px;background:linear-gradient(135deg,#e9c885,#bd964f);color:#1b3026;border:1px solid #e9c885;border-radius:50%}
.music-play .line-icon{width:19px;height:19px;stroke-width:1.8}
.music-play{position:relative;isolation:isolate;box-shadow:0 0 20px #d9b46b16,inset 0 1px #fff4cf7d}
.music-play:before{content:'';position:absolute;inset:-5px;border:1px solid #e8c78140;border-radius:50%;pointer-events:none;opacity:0;transition:opacity .6s}
body[data-playing=true] .music-play:before,body[data-soundtrack=waiting] .music-play:before{opacity:1;animation:soundtrack-halo 4s ease-in-out infinite}
.player-repeat[aria-pressed=true]{color:#f0cf89;background:#d9b26c18;box-shadow:inset 0 0 0 1px #d0af6750}
.player-repeat .line-icon{width:18px;height:18px}
@keyframes soundtrack-halo{50%{scale:1.08;opacity:.45}}
.track-label{position:relative;min-width:0;flex:0 1 300px;padding:0 24px 0 0}
.track-label .eyebrow{display:block;font-size:.6rem;letter-spacing:.12em;color:#c0ae82;margin-bottom:5px}
.track-label strong{display:block;font-size:.82rem;line-height:1.4;font-weight:500;overflow-wrap:anywhere}
.player-controls{display:flex;align-items:center;gap:14px;flex:1;min-width:0}
.player input{min-width:0;accent-color:#dabb7f;padding:0;border:0;height:26px;box-shadow:none}
.player #music-seek{width:100%;max-width:300px;min-width:64px;flex:1}
.player #music-volume{width:72px;flex-shrink:0}
.player #music-time{font-size:.72rem;min-width:32px;font-variant-numeric:tabular-nums}
.queue-link{margin-left:auto;display:flex;align-items:center;gap:8px;font-size:.74rem;white-space:nowrap;min-height:44px}
.queue-link .line-icon{width:16px}
.player-expand{display:none}
#toast{bottom:calc(var(--player-height) + 14px)}
/* Shared surfaces and type. Long prose rests on calm ink, with ornament at the margins. */
.button,input,select{min-height:var(--control)}
.button.small{min-height:40px}
.button,.chip,input,select,textarea,dialog{border-radius:4px;border-color:var(--edge)}
.card,.note-box,.draft-sheet,.quest-box,.area{border-color:var(--edge)}
:is(button,a,input,select,textarea,summary):focus-visible{outline:2px solid var(--focus);outline-offset:3px}
.card .eyebrow,.card-read,.notice-label,.stat-strip span{font-size:.72rem;letter-spacing:.065em;line-height:1.6}
.card p{font-size:.87rem}
.card-bookmark{width:40px;height:40px}
.card:not(:has(.card-image)) .eyebrow{padding-right:32px}
.prose{max-width:72ch;line-height:1.85}
.reading-surface{background:linear-gradient(125deg,#1a2c23ed,#1b2b24e6);padding:clamp(20px,3vw,36px);border:1px solid var(--edge);border-radius:5px}
html[data-theme=night] .reading-surface{background:#142626f0}
.reading-surface p:last-child{margin-bottom:0}
.toolbar{padding:16px;background:var(--panel);border:1px solid var(--edge);border-radius:5px}
.toolbar input{min-width:min(220px,100%)}
.toolbar select{max-width:100%;flex:0 1 250px}
.toolbar>*{min-width:0}
.results-line{gap:16px;font-size:.85rem}
.detail-title .actions .line-icon{width:17px;height:17px}
.entry-secondary{display:flex;gap:20px;flex-wrap:wrap;padding:16px 0;border-bottom:1px solid var(--edge);margin-top:24px}
#entry-related{scroll-margin-top:calc(var(--header-height) + 24px);outline:0}
.entry-browsing{margin:30px 0;border:1px solid var(--edge);border-radius:5px;overflow:hidden;background:var(--panel)}
.back-results{display:flex;gap:12px;align-items:center;padding:18px 20px;color:var(--gold);font-size:.86rem;border-bottom:1px solid var(--edge)}
.back-results>.line-icon{rotate:180deg;width:18px}
.back-results>span{margin-left:auto;color:var(--muted);font-size:.7rem}
.neighbor-links{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}
.result-neighbor{display:block;padding:18px 20px;overflow-wrap:anywhere;line-height:1.6;font-size:.85rem}
.result-neighbor:last-child{text-align:right;border-left:1px solid var(--edge)}
.result-neighbor small{display:block;color:var(--muted);font-size:.7rem;margin-bottom:7px}
.result-neighbor:hover{background:var(--panel-raised)}
dialog{background:var(--panel);border:1px solid var(--edge-strong);padding:28px;max-height:calc(100dvh - 32px);scrollbar-width:thin;overscroll-behavior:contain}
dialog[open]{animation-duration:var(--duration-panel)}
.dialog-head{gap:12px}.dialog-head h2{font-size:1.7rem}
.search-input{margin-bottom:14px;border-color:var(--gold)}
.search-tools{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:18px;flex-wrap:wrap;font-size:.78rem}
.search-tools label{display:flex;align-items:center;gap:10px;min-width:0}
.search-tools select{padding:8px;max-width:230px;font-size:.82rem}
#search-summary{color:var(--muted);font-size:.72rem}
#search-results{max-height:47dvh;scroll-padding:8px}
.search-result{border:1px solid transparent;gap:14px;border-radius:4px}
.search-result.selected{border-color:var(--edge-strong);background:var(--panel-raised)}
.search-result>.line-icon{width:17px;color:var(--gold)}
.search-result .result-category{color:var(--gold);font-size:.68rem;letter-spacing:.06em;margin:0 0 5px}
.search-result strong{line-height:1.5}
.search-result small{font-size:.74rem;line-height:1.5}
.search-discover{padding:8px 0}.search-discover>.eyebrow{font-size:.7rem;display:block;margin-bottom:15px}
.search-discover .chip{gap:8px;min-height:40px;flex-wrap:wrap}.search-discover .chip small{color:var(--muted);font-size:.65rem}
.search-discover>.button{margin-top:16px}
.search-result img{border-radius:3px}.empty .actions{justify-content:center}
.local-status,[data-save-status],.offline-status,.source-date,.backup-feedback{font-size:.78rem;line-height:1.65;color:var(--muted)}
.offline-status,.backup-feedback{margin-top:16px;color:var(--gold)}
[data-save-status][data-status=error]{color:#ffcf9c}
.fieldbook-status{display:flex;flex-wrap:wrap;justify-content:space-between;gap:12px;padding:14px 18px;margin-bottom:22px;background:var(--panel);border:1px solid var(--edge);font-size:.78rem;color:var(--muted)}
.fieldbook-status [data-save-status]:before{content:'●';font-size:.55rem;color:#d8ba79;margin-right:9px}
.setting-row{gap:16px;flex-wrap:wrap}.setting-row>span{flex:1 1 180px}.setting-row select{max-width:100%}
.setting-row small{font-size:.78rem;line-height:1.65}.setting-row input[type=checkbox]{flex:0 0 24px;min-height:24px}
.detail-facts:only-child{border-top:1px solid var(--edge)}
.atlas-prologue{min-width:0;max-width:100%;width:100%}
.hero-copy{container:hero-copy / inline-size}
body[data-page=home] .hero h1{font-size:clamp(2.35rem,13.5cqw,5.8rem);padding-bottom:.18em}
html[data-contrast=high]{--edge:#d3bd86;--edge-strong:#f0dca5;--muted:#ece1c5;--panel:#101f1a;--panel-raised:#25382c}
html[data-contrast=high] :is(.nav-link,.nav-link b,.nav-group>span,.nav-utility,.brand small,.track-label .eyebrow){color:#f3e6c5}
@media(max-width:1199px){.masthead{gap:18px;padding-inline:22px}.brand{font-size:.8rem}.brand small{font-size:.6rem}.search-trigger{width:min(310px,30vw)}.player{gap:12px;padding-inline:22px}.player-controls{gap:10px}.track-label{flex-basis:260px}.queue-link{font-size:0;gap:0}.queue-link .line-icon{width:20px}.player #music-volume{width:56px}}
@media(max-width:850px){.masthead{gap:14px}.notebook-link{display:none}.header-actions{gap:0}.search-trigger kbd{display:none}.search-trigger{width:auto;flex:1;max-width:280px}.brand small{letter-spacing:.07em}.detail-aside{position:static}}
@media(max-width:650px){
 :root{--header-height:72px;--player-height:72px}
 .masthead{height:72px;padding:0 12px;gap:12px}.brand{flex:1;font-size:.74rem;gap:9px;letter-spacing:.08em}.brand small{font-size:.55rem;letter-spacing:.08em;margin-top:4px}.seal{width:30px;height:35px;font-size:25px}
 .header-actions{display:none}.search-trigger{flex:0 0 44px;width:44px;height:44px;min-width:44px;max-width:none;margin:0;padding:10px;justify-content:center;border:1px solid var(--edge)}.search-trigger .search-caption{display:none}
 main,body[data-page=home] main{padding:24px 18px 40px}body[data-page=atlas] main{padding:0}
 .sidebar{padding:20px 14px}.sidebar-head{padding-inline:10px}.nav-link{font-size:.85rem}.nav-group>span{font-size:.69rem}
 .player{display:grid;grid-template-columns:44px minmax(0,1fr) 44px;gap:10px;padding:10px 14px max(10px,env(safe-area-inset-bottom));min-height:72px}
 .player-expand{display:inline-grid}.player-expanded .player-expand .line-icon{rotate:180deg}
 .track-label{padding-right:24px;min-width:0}.track-label .eyebrow{font-size:.54rem;letter-spacing:.08em}.track-label strong{font-size:.76rem;line-height:1.4;display:block;white-space:normal;overflow:visible}
 .player-controls{display:none;grid-column:1/-1;min-width:0;padding-top:8px;border-top:1px solid var(--edge);align-items:center;gap:8px;grid-template-columns:44px minmax(50px,1fr) 38px 44px 52px}
 .player-expanded .player-controls{display:grid}.player #music-seek{min-width:0;width:100%;max-width:none}.player #music-volume{width:52px}.player #music-time{font-size:.65rem}
 .player-repeat{grid-column:1;grid-row:2}.queue-link{grid-column:2/-1;grid-row:2;font-size:.75rem;margin:0;justify-content:center;gap:10px;min-height:44px}
 .card .eyebrow,.card-read,.stat-strip span{font-size:.7rem;letter-spacing:.035em}.card .card-body{padding:18px}.card h3{line-height:1.3}.card p{font-size:.85rem}
 .toolbar{padding:12px;gap:10px}.toolbar input,.toolbar select{flex-basis:100%;width:100%;max-width:none}
 .button{gap:10px}.stat-strip a,.stat-strip a:first-child{padding:16px 12px!important}.stat-strip span{overflow-wrap:anywhere}
 .reading-surface{padding:20px}.detail-title .actions{gap:10px}.detail-title .actions .button{flex:1 1 auto}
 .back-results{padding:16px;flex-wrap:wrap}.neighbor-links{grid-template-columns:1fr}.result-neighbor:last-child{text-align:left;border-left:0;border-top:1px solid var(--edge)}
 dialog{padding:20px;width:calc(100vw - 24px)}.dialog-head h2{font-size:1.45rem}.search-input{gap:8px}.search-input input{font-size:.95rem;padding-inline:6px}.search-tools{gap:10px}.search-tools label{flex-wrap:wrap}.search-tools select{max-width:100%}
 .search-result{flex-wrap:nowrap;padding:12px 8px;gap:10px}.search-result>div{flex:1;min-width:0}.search-result img{width:36px;height:44px}.search-result>.line-icon{display:none}.search-result strong{font-size:.88rem}
 .search-result small{font-size:.7rem}.dialog-foot{font-size:.7rem;line-height:1.7}.empty{padding:36px 18px}
 .chart-chamber.unfolded{inset:calc(var(--header-height) + 6px) 8px calc(var(--player-height) + 6px)!important}
}
@media(max-width:360px){.masthead{gap:8px;padding-inline:10px}.brand{font-size:.65rem;gap:7px}.brand small{font-size:.48rem}.seal{width:25px;height:31px;font-size:23px}.player{padding-inline:10px;gap:8px}.track-label{padding-right:0}.track-label .sound-wave{display:none}.player-controls{grid-template-columns:40px minmax(35px,1fr) 32px 40px 45px;gap:6px}.player #music-volume{width:45px}}
/* Container rules keep the atlas and planner comfortable beside a pinned panel. */
@container content (max-width:1050px){.atlas-scene{grid-template-columns:minmax(0,1fr) 260px;gap:26px}.atlas-prologue{grid-column:1/-1;display:grid;grid-template-columns:1fr 1fr;gap:10px 28px}.atlas-prologue h1{font-size:3rem;grid-row:auto}.atlas-prologue .atlas-back,.atlas-prologue .atlas-edition{grid-column:1/-1}.atlas-prologue .atlas-schools{grid-column:1/-1}.atlas-discovery{max-height:680px}.atlas-experience .chart-chamber{height:680px}.planner-layout{grid-template-columns:minmax(0,1fr) 280px;gap:24px}.choice-grid{grid-template-columns:1fr}.grid.people{grid-template-columns:repeat(3,minmax(0,1fr))}}
@container content (max-width:720px){.atlas-scene{display:flex;flex-direction:column}.atlas-prologue{display:block}.atlas-discovery{max-height:none;width:100%}.atlas-experience .chart-chamber{width:100%;height:auto;grid-template-rows:auto auto auto auto}.atlas-experience .chart-stage{height:auto;aspect-ratio:5/6}.planner-layout{display:block}.draft-sheet{position:static;margin-top:30px}.detail-layout{grid-template-columns:1fr}.detail-aside{position:static}.grid.people{grid-template-columns:repeat(2,minmax(0,1fr))}.hero{grid-template-columns:1fr}.school-strip{grid-template-columns:repeat(2,minmax(0,1fr))}}
@container content (max-width:340px){.grid.people{grid-template-columns:1fr}.school-strip{grid-template-columns:1fr}}
@media print{.masthead,.sidebar,.nav-backdrop,.player,.entry-secondary,.entry-browsing,.local-status,.reading-progress{display:none!important}main,body[data-page=home] main,body[data-page=atlas] main{margin:0;padding:0;max-width:none}.reading-surface{background:none;padding:0;border:0}.detail-aside{position:static}}
