/* Keep Cyrillic letters and combining stress marks in the same font. */
@font-face{font-family:"Eos Glossary Sans";src:url('/assets/fonts/noto-sans-glossary-v1.woff2') format('woff2');font-style:normal;font-weight:400;font-display:swap}
@font-face{font-family:"Eos Glossary Serif";src:url('/assets/fonts/noto-serif-glossary-v1.woff2') format('woff2');font-style:normal;font-weight:400;font-display:swap}
@font-face{font-family:"Eos Map";src:url('/assets/fonts/eos-map-cyrillic.woff2') format('woff2');font-style:italic;font-weight:700;font-display:swap}:root{--header-height:72px;--map-sheet-width:50vw;--entity-sheet-width:min(38vw,720px);--bg:#090909;--surface:#11110f;--surface-raised:#1a1814;--line:#38342c;--text:#f3f0e9;--muted:#aaa69d;--gold:#d1ad65;--gold-strong:#ebc97f;--ease-out:cubic-bezier(.23,1,.32,1);color-scheme:dark;font-family:"Eos Glossary Sans","Trebuchet MS",Arial,sans-serif}
*{box-sizing:border-box}[hidden]{display:none!important}html{min-width:320px;background:var(--bg)}body{min-width:320px;min-height:100dvh;margin:0;background:linear-gradient(145deg,#080808,#111 52%,#090909);color:var(--text)}body.is-map-view{overflow:hidden}button,a{font:inherit}button{cursor:pointer}.skip-link{position:fixed;z-index:100;top:-60px;left:14px;padding:9px 13px;border-radius:8px;background:#ebd4a4;color:#111}.skip-link:focus{top:12px}button:focus-visible,a:focus-visible{outline:2px solid var(--gold-strong);outline-offset:3px}
.glossary-header{position:fixed;z-index:50;top:0;left:0;display:grid;width:100%;height:var(--header-height);grid-template-columns:minmax(190px,1fr) auto minmax(190px,1fr);align-items:center;padding:0 clamp(18px,4vw,60px);border-bottom:1px solid rgba(205,170,100,.25);background:rgba(9,9,9,.9);box-shadow:0 12px 40px rgba(0,0,0,.22);backdrop-filter:blur(18px) saturate(90%)}
.glossary-brand{justify-self:start;color:#dfc27d;font:400 clamp(19px,2vw,27px)/1 Georgia,serif;text-decoration:none;text-shadow:0 1px 14px rgba(221,177,94,.14)}.glossary-back{justify-self:end;padding:8px 12px;border:1px solid #3b3831;border-radius:9px;background:#171613;color:#d2cec5;font-size:12px;text-decoration:none;transition:border-color 160ms ease,background-color 160ms ease,color 160ms ease,transform 110ms var(--ease-out)}.glossary-back b{display:none}.glossary-back:hover{border-color:#8e7445;background:#242018;color:#fff}.glossary-back:active{transform:scale(.975)}
.glossary-tabs,.lexicon-tabs{display:flex;gap:4px;padding:4px;border:1px solid #39352d;border-radius:12px;background:#10100f}.glossary-tabs button,.lexicon-tabs button{min-height:38px;padding:0 17px;border:1px solid transparent;border-radius:8px;background:transparent;color:#aaa59b;transition:background-color 160ms ease,border-color 160ms ease,color 160ms ease,transform 100ms var(--ease-out)}.glossary-tabs button:hover,.lexicon-tabs button:hover{background:#232018;color:#fff}.glossary-tabs button[aria-selected="true"],.lexicon-tabs button[aria-selected="true"]{border-color:#6d5a37;background:#2b2519;color:#efd59d;box-shadow:inset 0 1px 0 rgba(255,229,173,.07)}.glossary-tabs button:active,.lexicon-tabs button:active{transform:scale(.975)}
main{padding-top:var(--header-height)}.visually-hidden{position:absolute!important;width:1px;height:1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.glossary-status{position:fixed;z-index:45;inset:var(--header-height) 0 0;display:grid;place-items:center;background:#090909;color:var(--muted)}.glossary-status::before{width:42px;height:42px;margin-right:12px;border:2px solid rgba(209,173,101,.18);border-top-color:var(--gold);border-radius:50%;content:"";animation:spin 850ms linear infinite}@keyframes spin{to{transform:rotate(360deg)}}
.library-search{position:relative;z-index:12;width:min(440px,100%);margin:0 0 18px}.library-search input{width:100%;height:44px;padding:0 42px 0 15px;border:1px solid #494238;border-radius:11px;background:#11100e;color:#eee8dc;font-size:14px;outline:0;-webkit-appearance:none;appearance:none}.library-search::after{position:absolute;top:14px;right:15px;width:11px;height:11px;border:1.5px solid #c7a564;border-radius:50%;content:"";pointer-events:none}.library-search::before{position:absolute;z-index:2;top:25px;right:13px;width:7px;height:1.5px;background:#c7a564;content:"";pointer-events:none;transform:rotate(45deg)}.library-search:focus-within input{border-color:#9a7d47;box-shadow:0 0 0 3px rgba(209,173,101,.1)}.library-search input::placeholder{color:#837f77}.search-results{position:absolute;z-index:40;top:calc(100% + 7px);left:0;width:100%;max-height:min(360px,50dvh);padding:6px;overflow-y:auto;border:1px solid #554b39;border-radius:12px;background:rgba(15,14,12,.98);box-shadow:0 24px 70px rgba(0,0,0,.58);backdrop-filter:blur(18px)}.search-results button{display:grid;width:100%;gap:3px;padding:10px 11px;border:1px solid transparent;border-radius:8px;background:transparent;color:#c9c3b8;text-align:left}.search-results button:hover,.search-results button[aria-selected="true"]{border-color:#695738;background:#2a2419;color:#fff}.search-results strong{font:400 17px/1.2 Georgia,serif}.search-results span,.search-results p{margin:0;color:#928d84;font-size:11px;line-height:1.4}.search-results>p{padding:12px}.map-search{position:fixed;z-index:15;top:calc(var(--header-height) + 18px);left:50%;margin:0;transform:translateX(-50%);transition:left 260ms cubic-bezier(.32,.72,0,1),opacity 150ms ease}.has-map-detail .map-search{left:calc((100vw - var(--map-sheet-width))/2);width:min(440px,calc(100vw - var(--map-sheet-width) - 100px))}
.glossary-panel{animation:panel-in 220ms var(--ease-out) both}@keyframes panel-in{from{opacity:.35;filter:blur(2px);transform:translateY(6px)}to{opacity:1;filter:none;transform:none}}
.map-panel,.world-map{position:fixed;inset:var(--header-height) 0 0}.map-panel{overflow:hidden;background:#050505;animation:none}.world-map{overflow:hidden;background:#050505;cursor:grab;touch-action:none;overscroll-behavior:none}.world-map.has-map::before{position:absolute;z-index:0;inset:-24px;background:linear-gradient(rgba(5,5,5,.68),rgba(5,5,5,.68)),var(--map-background) center/cover no-repeat;filter:blur(16px) saturate(65%);content:"";pointer-events:none}.world-map.is-dragging{cursor:grabbing;user-select:none}.map-stage{position:absolute;z-index:1;top:0;left:0;width:1px;height:1px;contain:layout paint;transform-origin:0 0;will-change:transform}.map-stage.is-camera-moving{will-change:transform}.map-stage::after{position:absolute;inset:0;outline:calc(1.5px * var(--marker-scale,1)) solid rgba(224,186,108,.9);outline-offset:calc(-1.5px * var(--marker-scale,1));box-shadow:inset 0 0 0 calc(1px * var(--marker-scale,1)) rgba(95,64,25,.62);content:"";pointer-events:none}.map-stage>img{display:block;width:100%;height:100%;max-width:none;backface-visibility:hidden;pointer-events:none;user-select:none}
.map-marker{position:absolute;z-index:3;top:var(--point-y);left:var(--point-x);display:grid;width:25px;height:25px;place-items:center;padding:0;border:2px solid #f0d392;border-radius:50%;background:#6e4b24;color:#fff;box-shadow:0 0 0 6px rgba(209,173,101,.16),0 8px 22px rgba(0,0,0,.5);transform:translate(-50%,-50%) scale(var(--marker-scale,1));transform-origin:center;transition:box-shadow 150ms ease}.map-marker::before{width:5px;height:5px;border-radius:50%;background:#fff0c8;content:""}.map-marker:hover,.map-marker:focus-visible{z-index:8;box-shadow:0 0 0 9px rgba(209,173,101,.2),0 10px 30px rgba(0,0,0,.56)}
.map-tooltip{position:absolute;bottom:calc(100% + 14px);left:50%;display:grid;width:min(300px,72vw);grid-template-columns:64px minmax(0,1fr);gap:11px;padding:10px;opacity:0;border:1px solid #595144;border-radius:11px;background:rgba(15,14,12,.96);box-shadow:0 20px 55px rgba(0,0,0,.52);color:#bbb6ad;font-size:11px;line-height:1.45;text-align:left;pointer-events:none;transform:translate(-50%,6px) scale(.98);transform-origin:bottom center;transition:opacity 130ms ease,transform 180ms var(--ease-out);backdrop-filter:blur(14px)}.map-tooltip.no-image{grid-template-columns:1fr}.map-tooltip img{display:block;width:64px;height:84px;object-fit:cover;border-radius:7px;background:#0a0a09}.map-tooltip strong{display:block;margin-bottom:4px;color:#f2eadc;font:400 17px/1.15 Georgia,serif}.map-marker:hover .map-tooltip,.map-marker:focus-visible .map-tooltip{opacity:1;transform:translate(-50%,0) scale(1)}
.map-menu-button{position:fixed;z-index:16;top:calc(var(--header-height) + 18px);left:18px;display:grid;width:44px;height:44px;place-content:center;gap:4px;padding:0;border:1px solid #625438;border-radius:10px;background:rgba(19,17,14,.9);box-shadow:0 12px 34px rgba(0,0,0,.35);backdrop-filter:blur(14px);transition:background-color 150ms ease,transform 110ms var(--ease-out)}.map-menu-button i{display:block;width:18px;height:1px;background:#f0d599}.map-menu-button:hover{background:#2a2419}.map-menu-button:active{transform:scale(.96)}
.map-menu{position:fixed;z-index:17;top:calc(var(--header-height) + 70px);left:18px;width:min(330px,calc(100vw - 36px));max-height:calc(100dvh - var(--header-height) - 88px);padding:12px;overflow-y:auto;border:1px solid #554b39;border-radius:14px;background:rgba(15,14,12,.96);box-shadow:0 24px 70px rgba(0,0,0,.52);backdrop-filter:blur(18px);transform-origin:top left}.map-menu.is-open{animation:menu-in 180ms var(--ease-out) both}@keyframes menu-in{from{opacity:0;transform:translateY(-5px) scale(.98)}to{opacity:1;transform:none}}.map-menu header{display:flex;align-items:center;justify-content:space-between;padding:3px 3px 10px}.map-menu header strong{font-size:14px}.map-menu header button{display:grid;width:30px;height:30px;place-items:center;padding:0;border:0;background:transparent;color:#bdb7ac;font-size:22px}.map-list{display:grid;gap:5px}.map-list button{width:100%;padding:10px 11px;border:1px solid transparent;border-radius:8px;background:#171613;color:#aaa59b;text-align:left}.map-list button:hover{background:#242018;color:#fff}.map-list button[aria-current="true"]{border-color:#6f5b37;background:#2b2519;color:#efd59d}.map-zoom-controls{display:grid;grid-template-columns:40px 58px 40px 1fr;margin-top:10px;overflow:hidden;border:1px solid #3e3931;border-radius:9px}.map-zoom-controls button,.map-zoom-controls output{display:grid;height:39px;place-items:center;border:0;border-right:1px solid #3e3931;background:#131210;color:#d8d2c7}.map-zoom-controls button:last-child{border-right:0;font-size:10px}.map-zoom-controls button:hover{background:#282319;color:#fff}.map-zoom-controls output{font-size:10px;font-variant-numeric:tabular-nums}
.map-detail{position:fixed;z-index:20;top:var(--header-height);right:0;bottom:0;display:grid;width:50vw;grid-template-rows:minmax(220px,43%) minmax(0,57%);overflow:hidden;border:0;border-left:1px solid rgba(218,183,112,.44);background:rgba(18,16,13,.82);box-shadow:-30px 0 80px rgba(0,0,0,.48);backdrop-filter:blur(18px) saturate(85%);transform:translateX(102%);transition:transform 260ms cubic-bezier(.32,.72,0,1);will-change:transform}.map-detail:not(.is-open){pointer-events:none}.map-detail.is-open{transform:none}.detail-close{position:absolute;z-index:4;top:14px;right:14px;display:grid;width:40px;height:40px;place-items:center;padding:0;border:1px solid #554c3d;border-radius:10px;background:rgba(12,11,10,.82);color:#ded8ce;font-size:27px;line-height:1;backdrop-filter:blur(12px);transition:background-color 150ms ease,color 150ms ease,transform 100ms var(--ease-out)}.detail-close:hover{background:#30291d;color:#fff}.detail-close:active{transform:scale(.96)}
.detail-media{min-height:0;background:#0b0a09}.detail-media img{display:block;width:100%;height:100%;object-fit:cover}.detail-media-placeholder{display:grid;width:100%;height:100%;place-items:center;color:rgba(209,173,101,.38);font:400 86px/1 Georgia,serif}.detail-copy{min-width:0;padding:clamp(28px,4vw,58px);overflow-y:auto}.detail-copy>span{color:var(--gold);font-size:10px}.detail-copy h2{margin:0 0 22px;color:#f4eee3;font:400 clamp(36px,4vw,62px)/1 Georgia,serif;letter-spacing:-.03em;text-wrap:balance}.detail-copy>span+ h2{margin-top:7px}.detail-copy>div{max-width:68ch;color:#c2bdb4;font-size:15px;line-height:1.72}.detail-copy p,.term-detail p{margin:0 0 1em}.detail-copy h3,.term-detail h3+div h3{margin:1.35em 0 .55em;color:#e5d2aa;font:400 23px/1.25 Georgia,serif}
.content-panel{width:95%;margin:0 auto;padding:clamp(22px,3vw,44px) 0 70px}.content-panel>.library-search{margin-left:auto;margin-right:auto}.entity-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(210px,100%),280px));justify-content:start;gap:clamp(12px,1.5vw,20px)}.entity-card{position:relative;display:grid;width:100%;aspect-ratio:9/16;grid-template-rows:1fr;padding:0;overflow:hidden;border:1px solid #3d3830;border-radius:15px;background:#111;color:var(--text);box-shadow:0 20px 54px rgba(0,0,0,.2);text-align:left;transition:border-color 180ms ease,transform 190ms var(--ease-out),box-shadow 190ms ease}.entity-card-media{position:absolute;inset:0;overflow:hidden;background:#0b0b0a}.entity-card-media::after{position:absolute;inset:48% 0 0;background:linear-gradient(transparent,rgba(7,7,6,.9));content:""}.entity-card img{display:block;width:100%;height:100%;object-fit:cover;transition:transform 450ms var(--ease-out),filter 180ms ease}.entity-card-placeholder{display:grid;width:100%;height:100%;place-items:center;color:rgba(209,173,101,.36);font:400 66px/1 Georgia,serif}.entity-card-copy{position:relative;z-index:2;align-self:end;padding:18px}.entity-card-copy span{display:block;margin-bottom:5px;color:#d0ae6b;font-size:10px}.entity-card h3{margin:0;color:#f4efe6;font:400 clamp(20px,2vw,27px)/1.1 Georgia,serif;text-wrap:balance}@media(hover:hover) and (pointer:fine){.entity-card:hover{border-color:#8c7346;box-shadow:0 27px 72px rgba(0,0,0,.3);transform:translateY(-3px)}.entity-card:hover img{transform:scale(1.035)}}
.lexicon-tabs{width:max-content;max-width:100%;margin-bottom:18px}.terms-layout{display:grid;width:100%;min-height:calc(100dvh - var(--header-height) - 102px);grid-template-columns:minmax(240px,30%) minmax(0,70%);overflow:hidden;border:1px solid #3d3830;border-radius:16px;background:#12110f;box-shadow:0 24px 70px rgba(0,0,0,.2)}.term-list{min-height:0;padding:10px;overflow-y:auto;border-right:1px solid #373229;background:#0c0c0b}.term-list button{display:block;width:100%;padding:13px 14px;border:1px solid transparent;border-radius:9px;background:transparent;color:#aaa59b;text-align:left}.term-list button:hover{background:#242019;color:#fff}.term-list button[aria-current="true"]{border-color:#6b5837;background:#2b2519;color:#f0d69e}.term-detail{min-width:0;padding:clamp(24px,4vw,58px);overflow-y:auto}.term-detail>h3{margin:0 0 22px;color:#f3eee5;font:400 clamp(34px,4vw,58px)/1 Georgia,serif;letter-spacing:-.03em}.term-detail>div{max-width:72ch;color:#c2bdb4;font-size:16px;line-height:1.75}
.empty-state{display:grid;min-height:260px;place-content:center;gap:6px;padding:28px;border:1px dashed #403b32;border-radius:15px;background:#10100f;text-align:center}.empty-state strong{color:#e9e4db;font:400 22px/1.2 Georgia,serif}.empty-state p{max-width:46ch;margin:0;color:var(--muted);line-height:1.5}.world-map>.empty-state{position:absolute;inset:20px;min-height:0}
.glossary-detail{position:fixed;z-index:30;top:var(--header-height);right:0;bottom:0;left:auto;width:var(--entity-sheet-width);max-width:none;height:auto;max-height:none;margin:0;padding:0;overflow:hidden;border:0;border-left:1px solid rgba(218,183,112,.44);border-radius:0;background:rgba(18,16,13,.96);color:var(--text);box-shadow:-30px 0 80px rgba(0,0,0,.52);grid-template-rows:minmax(420px,72%) minmax(0,28%);transform:translateX(102%);transition:transform 260ms cubic-bezier(.32,.72,0,1)}.glossary-detail[open]{display:grid}.glossary-detail:not(.is-open){pointer-events:none}.glossary-detail.is-open{transform:none}.glossary-detail.is-sheet .detail-media{min-height:0;border-bottom:1px solid #332e26}.glossary-detail.is-sheet .detail-media img{object-fit:contain;padding:12px}.glossary-detail.is-sheet .detail-copy{display:grid;grid-template-rows:auto auto minmax(0,1fr);gap:5px;padding:17px clamp(20px,2.3vw,34px);overflow:hidden}.glossary-detail.is-sheet .detail-copy h2{margin:0;font-size:clamp(30px,3vw,46px)}.glossary-detail.is-sheet #detailDescription{min-height:0;padding-right:8px;overflow-y:auto}.glossary-detail.is-term{top:50%;right:auto;bottom:auto;left:50%;display:grid;width:min(760px,95vw);max-height:90dvh;border:1px solid #4b4438;border-radius:18px;grid-template-rows:1fr;box-shadow:0 40px 140px rgba(0,0,0,.65);transform:translate(-50%,-48%) scale(.985)}.glossary-detail.is-term.is-open{transform:translate(-50%,-50%) scale(1)}.glossary-detail.is-term .detail-media{display:none}.glossary-detail.is-term .detail-copy{padding:clamp(30px,5vw,64px);overflow-y:auto}.glossary-detail::backdrop{background:rgba(4,4,4,.78);backdrop-filter:blur(12px)}@media(min-width:761px){body.has-entity-detail .content-panel{width:calc(100% - var(--entity-sheet-width) - 5vw);margin-right:auto;margin-left:2.5vw}}
@media(max-width:760px){:root{--header-height:112px;--map-sheet-width:88vw;--entity-sheet-width:92vw}.glossary-header{height:var(--header-height);grid-template-columns:1fr auto;grid-template-rows:58px 46px;padding:0 14px 8px}.glossary-brand{font-size:20px}.glossary-back{display:grid;width:38px;height:36px;place-items:center;padding:0}.glossary-back span{display:none}.glossary-back b{display:block;font-size:18px}.glossary-tabs{grid-column:1/-1;grid-row:2;width:100%;display:grid;grid-template-columns:repeat(4,minmax(0,1fr))}.glossary-tabs button{min-width:0;min-height:36px;padding:0 6px;font-size:12px}.map-menu-button{top:calc(var(--header-height) + 12px);left:12px}.map-menu{top:calc(var(--header-height) + 62px);left:12px;width:calc(100vw - 24px)}.map-search{top:calc(var(--header-height) + 12px);right:12px;left:68px;width:auto;transform:none}.has-map-detail .map-search{opacity:0;pointer-events:none}.map-tooltip{display:none}.map-detail{width:88vw;grid-template-rows:minmax(180px,38%) minmax(0,62%);background:#17140f;backdrop-filter:none}.map-stage{will-change:auto}.detail-copy{padding:25px 20px}.detail-copy h2{font-size:38px}.content-panel{padding-top:16px}.content-panel>.library-search{width:100%;margin-bottom:14px}.entity-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.entity-card-copy{padding:13px}.terms-layout{min-height:0;display:block;overflow:visible;border:0;background:transparent;box-shadow:none}.term-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;padding:0;overflow:visible;border:0;background:transparent}.term-list button{display:grid;width:100%;min-width:0;aspect-ratio:1.45;place-items:center;padding:12px;border:1px solid #4a4338;border-radius:12px;background:#15130f;color:#e7dcc5;font:400 clamp(18px,6vw,26px)/1.1 Georgia,serif;text-align:center}.term-list button[aria-current="true"]{border-color:#7b653e;background:#211c13;color:#f0d69e}.term-list .empty-state{grid-column:1/-1}.term-detail{display:none}.glossary-detail.is-sheet{grid-template-rows:minmax(280px,62%) minmax(0,38%);background:#17140f;backdrop-filter:none}.glossary-detail.is-sheet .detail-media{height:auto;min-height:0}.glossary-detail.is-sheet .detail-copy{padding:14px 18px 18px;overflow:hidden}.glossary-detail.is-sheet .detail-copy h2{font-size:34px}.glossary-detail.is-term{width:calc(100vw - 20px);max-height:calc(100dvh - 28px)}.glossary-detail.is-term .detail-copy{padding:54px 22px 28px}.glossary-detail.is-term .detail-copy h2{font-size:38px}.glossary-detail.is-term #detailDescription{font-size:16px}.search-results{max-height:42dvh}}
@media(max-width:360px){.entity-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.entity-card h3{font-size:18px}.entity-card-copy{padding:11px}.content-panel{width:calc(100% - 16px)}}
@media(prefers-reduced-motion:reduce){.glossary-status::before{animation:none}.glossary-panel,.map-menu.is-open,.map-detail,.entity-card,.entity-card img,.map-tooltip,.map-stage.is-camera-moving{animation:none;transition:none;filter:none}.map-detail{transform:none}}
@media(prefers-reduced-transparency:reduce){.glossary-header,.map-menu,.map-detail,.map-menu-button,.detail-close{background:#111;backdrop-filter:none}.glossary-detail::backdrop{backdrop-filter:none}}
/* Optional real-time 3D atlas. */
.world-map-3d{position:fixed;z-index:2;inset:var(--header-height) 0 0;overflow:hidden;background:#0b1214;touch-action:none}.world-map-3d canvas{display:block;width:100%;height:100%;outline:0;touch-action:none}.map-mode-switch{position:fixed;z-index:18;top:calc(var(--header-height) + 18px);right:18px;display:grid;grid-template-columns:42px 42px;padding:3px;border:1px solid #574f42;border-radius:11px;background:rgba(15,15,15,.92);box-shadow:0 12px 34px rgba(0,0,0,.38);backdrop-filter:blur(14px)}.map-mode-switch button{height:36px;padding:0;border:0;border-radius:8px;background:transparent;color:#918d86;font-size:11px;font-weight:700}.map-mode-switch button[aria-pressed="true"]{background:#4c5157;color:#fff;box-shadow:inset 0 0 0 1px #818892}.map-mode-3d .world-map{visibility:hidden}.map-mode-3d .map-zoom-controls{display:none}.map-3d-entry{position:absolute;z-index:5;inset:0;display:grid;place-content:center;justify-items:center;gap:7px;background:radial-gradient(circle,rgba(235,241,239,.88),rgba(168,183,183,.62) 36%,rgba(28,40,43,.08) 72%,transparent);color:#111b1e;text-align:center;pointer-events:none;animation:map-cloud-entry 3s ease-out both}.map-3d-entry span{font-size:10px;font-weight:800;letter-spacing:.18em;text-transform:uppercase}.map-3d-entry strong{font:400 clamp(27px,4vw,52px)/1.05 Georgia,serif}.map-3d-entry button{margin-top:10px;padding:8px 12px;border:1px solid rgba(20,27,29,.42);border-radius:8px;background:rgba(241,244,241,.42);color:#162023;pointer-events:auto}.map-3d-hud{position:absolute;z-index:4;right:16px;bottom:16px;display:grid;justify-items:end;gap:7px;color:#d6dad9;pointer-events:none}.map-3d-hud>div{display:flex;gap:6px;pointer-events:auto}.map-3d-hud button{padding:8px 10px;border:1px solid rgba(211,218,220,.3);border-radius:9px;background:rgba(10,15,17,.75);color:#dfe5e4;font-size:10px;box-shadow:0 10px 28px rgba(0,0,0,.28);backdrop-filter:blur(10px)}.map-3d-hud p{margin:0;padding:6px 9px;border-radius:7px;background:rgba(8,12,14,.62);color:#aeb7b7;font-size:9px;backdrop-filter:blur(8px)}.map-3d-hud b{color:#eef2f1}.map-3d-label-hit{cursor:pointer}@keyframes map-cloud-entry{0%{opacity:0}18%{opacity:1}64%{opacity:.92}100%{opacity:0}}
@media(max-width:760px){.map-mode-switch{top:auto;right:auto;bottom:12px;left:12px}.map-3d-hud{right:10px;bottom:62px}.map-3d-hud p{display:none}.map-3d-hud button{padding:7px 8px;font-size:9px}}
@media(prefers-reduced-motion:reduce){.map-3d-entry{display:none!important}.map-3d-hud,.map-mode-switch{transition:none}}

/* Immediate 2D → 3D feedback and a map-specific loading state. */
.map-mode-switch{isolation:isolate;overflow:hidden}.map-mode-switch::before{content:"";position:absolute;z-index:0;top:3px;left:3px;width:42px;height:36px;border:1px solid #818892;border-radius:8px;background:#4c5157;box-shadow:0 5px 14px rgba(0,0,0,.26);transition:transform 320ms cubic-bezier(.16,1,.3,1)}.map-mode-switch button{position:relative;z-index:1;transition:color 180ms ease}.map-mode-switch button[aria-pressed="true"]{background:transparent;box-shadow:none}.map-mode-loading-3d .map-mode-switch::before,.map-mode-3d .map-mode-switch::before{transform:translateX(42px)}.map-mode-loading-3d .world-map{visibility:hidden}.map-3d-loading{position:absolute;z-index:8;inset:0;display:grid;place-content:center;justify-items:center;gap:9px;padding:24px;background:linear-gradient(180deg,#10191b,#091012);color:#e9efed;text-align:center}.map-3d-loading::before{content:"";position:absolute;inset:0;opacity:.24;background:repeating-linear-gradient(118deg,transparent 0 36px,rgba(195,211,207,.055) 37px 38px,transparent 39px 72px);animation:map-loading-drift 2.8s linear infinite}.map-3d-loading>*{position:relative}.map-3d-loading svg{width:72px;height:72px;margin-bottom:8px;overflow:visible;fill:none;stroke:#aebfbb;stroke-width:1.35;stroke-linecap:round;stroke-linejoin:round}.map-3d-loading-orbit{stroke:#edf3f1;stroke-width:2.2;stroke-dasharray:18 12;transform-origin:40px 40px;animation:map-loading-orbit .8s linear infinite}.map-3d-loading strong{font:400 clamp(25px,3vw,38px)/1.1 Georgia,serif}.map-3d-loading span{max-width:36ch;color:#a9b5b2;font-size:11px;line-height:1.45}.map-mode-loading-3d .map-3d-hud{visibility:hidden}@keyframes map-loading-orbit{to{stroke-dashoffset:-30}}@keyframes map-loading-drift{to{transform:translateX(72px)}}
@media(prefers-reduced-motion:reduce){.map-mode-switch::before{transition:none}.map-3d-loading::before,.map-3d-loading-orbit{animation:none}.map-3d-loading::before{opacity:.12}}
@media(prefers-contrast:more){.glossary-tabs,.lexicon-tabs,.entity-card,.terms-layout,.glossary-detail{border-color:#897d69}}
/* Neutral graphite surfaces; gold remains an accent, never a brown canvas. */
.glossary-back{background:#171717}.glossary-back:hover{background:#252525}.glossary-tabs{background:#101010}.glossary-tabs button:hover{background:#232323}.glossary-tabs button[aria-selected="true"]{background:#262626}.library-search input{background:#111}.search-results{background:rgba(15,15,15,.98)}.search-results button:hover,.search-results button[aria-selected="true"]{background:#252525}.map-tooltip{background:rgba(15,15,15,.97)}.map-menu-button{background:rgba(19,19,19,.94)}.map-menu-button:hover{background:#292929}.map-menu{background:rgba(15,15,15,.98)}.map-list button{background:#171717}.map-list button:hover{background:#242424}.map-list button[aria-current="true"]{background:#262626}.map-zoom-controls button,.map-zoom-controls output{background:#131313}.map-zoom-controls button:hover{background:#282828}.map-detail,.glossary-detail,.glossary-detail.is-sheet{background:rgba(18,18,18,.97)}.detail-close{background:rgba(12,12,12,.88)}.detail-close:hover{background:#303030}.detail-media{background:#0b0b0b}.entity-card{background:#111}.entity-card-media{background:#0b0b0b}.terms-layout{background:#121212}.term-list{background:#0c0c0c}.term-list button:hover{background:#242424}.term-list button[aria-current="true"]{background:#262626}.term-detail{background:#121212}.empty-state{background:#101010}.term-list button{background:#151515}.term-list button[aria-current="true"]{background:#242424}
/* Character and bestiary details use a wide image-and-copy sheet. */
.glossary-detail.is-sheet .detail-copy{grid-template-rows:auto minmax(0,1fr);gap:0}.glossary-detail.is-sheet .detail-copy>span{display:none}.glossary-detail.is-sheet .detail-copy h2{margin:0 0 24px;padding:0 0 24px;border-bottom:1px solid #484848;color:#fff;font-weight:500;letter-spacing:-.035em}.glossary-detail.is-sheet .detail-media{border-color:#363636}.glossary-detail.is-sheet .detail-media img{padding:0;object-fit:cover;object-position:center}.glossary-detail.is-sheet.is-portrait-image .detail-media{background:#121212}.glossary-detail.is-sheet.is-portrait-image .detail-media img{object-fit:contain}
@media(min-width:761px){:root{--entity-sheet-width:65vw}body.has-entity-detail .entity-grid{justify-content:center}.glossary-detail.is-sheet{grid-template-columns:minmax(0,min(var(--detail-image-width,58%),58%)) minmax(320px,1fr);grid-template-rows:1fr}.glossary-detail.is-sheet .detail-media{grid-column:1;grid-row:1;height:100%;border-right:1px solid #363636;border-bottom:0}.glossary-detail.is-sheet .detail-copy{grid-column:2;grid-row:1;align-content:center;padding:clamp(36px,4vw,70px)}.glossary-detail.is-sheet .detail-copy h2{font-size:clamp(50px,5vw,74px)}.glossary-detail.is-sheet #detailDescription{font-size:19px;line-height:1.72}}
@media(max-width:760px){.glossary-detail.is-sheet .detail-copy h2{margin-bottom:18px;padding-bottom:18px;font-size:42px}.glossary-detail.is-sheet #detailDescription{font-size:18px;line-height:1.65}.glossary-detail.is-sheet .detail-media img{object-fit:cover}}
/* Search and both glossary columns stay inside the visible window. */
#glossaryTermsPanel{height:calc(100dvh - var(--header-height));grid-template-rows:auto minmax(0,1fr);gap:18px;padding-top:clamp(18px,3vh,32px);padding-bottom:clamp(18px,3vh,32px);overflow:hidden}#glossaryTermsPanel:not([hidden]){display:grid}#glossaryTermsPanel>.library-search{margin-bottom:0}.terms-layout{height:100%;min-height:0}.term-list,.term-detail{min-height:0;overflow-y:auto}@media(max-width:760px){#glossaryTermsPanel{gap:14px;padding-top:16px;padding-bottom:16px}.terms-layout{overflow:hidden}.term-list{height:100%;align-content:start;overflow-y:auto;overscroll-behavior:contain}}
.library-search input{font-family:inherit}
.detail-copy h2,.detail-copy h3,.term-detail h3,.entity-card h3,.map-tooltip strong,.search-results strong{font-family:"Eos Glossary Serif",Georgia,serif}
@media(max-width:760px){.term-list button{font-family:"Eos Glossary Serif",Georgia,serif}}
