/* Imperial archive: a floating city atlas opens into layered faction scenery. */
.lore-explorer{--faction:#d6bd80;--depth-x:0;--depth-y:0;--depth-scroll:0;position:relative;margin:60px calc(var(--gutter)*-.45) 60px;border:1px solid #bbd6df42;background:#071520;color:#edf0ec;scroll-margin-top:96px;isolation:isolate;overflow:hidden}
.lore-explorer:fullscreen{height:100dvh;width:100vw;margin:0;display:flex;flex-direction:column;overflow:auto}.lore-explorer:fullscreen .lore-stage{flex:1;min-height:500px}
.lore-toolbar{position:absolute;inset:0 0 auto;z-index:12;height:64px;display:flex;align-items:center;justify-content:space-between;padding:0 28px;border-bottom:1px solid #afc8d220;background:linear-gradient(#071520ba,#07152038);color:#b7cbd2}
.lore-toolbar>div{display:flex;align-items:center;gap:25px}.lore-map-return{display:flex;align-items:center;gap:9px;font-size:13px;letter-spacing:.04em;padding:8px 0;color:#d4c298}.lore-map-return>span{font-size:24px}.lore-map-return small{font-size:8px;color:#91a4ae;letter-spacing:.14em;margin-left:8px}
.lore-status{font-size:8px;letter-spacing:.16em;display:flex;align-items:center;gap:8px}.lore-status i{height:4px;width:4px;background:#a3dadd;border-radius:50%;box-shadow:0 0 12px #6fd9e7}.lore-fullscreen{font-size:16px;padding:8px;color:#b7cbd2}.lore-fullscreen span{font-size:10px;margin-left:5px}
.lore-stage{position:relative;height:clamp(620px,44.5vw,850px);isolation:isolate;overflow:hidden}
.lore-overview,.faction-panel{position:absolute;inset:0;overflow:hidden;opacity:0;visibility:hidden;pointer-events:none;transition:opacity .8s,visibility .8s}
.lore-overview.is-selected,.faction-panel.is-selected{opacity:1;visibility:visible;pointer-events:auto}
.lore-overview{background:radial-gradient(ellipse at 26% 43%,#173446,transparent 63%),linear-gradient(120deg,#0b1729,#08111c)}
.lore-overview:before{content:'';position:absolute;inset:0;opacity:.08;background-image:linear-gradient(#b7dce6 1px,transparent 1px),linear-gradient(90deg,#b7dce6 1px,transparent 1px);background-size:80px 80px;mask-image:linear-gradient(90deg,#000,transparent 72%)}
.lore-map-camera{position:absolute;left:-3%;top:8%;width:76%;height:91%;perspective:1250px;perspective-origin:50% 40%;transform:translate(calc(var(--depth-x)*-7px),calc(var(--depth-y)*-5px));transition:transform .6s ease-out}
.lore-map-float{position:absolute;inset:0;transform-style:preserve-3d;animation:cityFloat 13s ease-in-out infinite alternate;animation-play-state:paused}
.lore-map-plane{position:absolute;left:9%;top:16%;width:82%;aspect-ratio:1660/948;transform-style:preserve-3d;transform:rotateX(calc(42deg + var(--depth-y)*5deg)) rotateZ(calc(-15deg + var(--depth-x)*5deg));transition:transform .85s ease-out}
.lore-map-plane>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;border:1px solid #bae4df6b;filter:saturate(.65) brightness(.82);box-shadow:0 0 55px #92cfdb18;backface-visibility:hidden}
.lore-map-foundation{position:absolute;inset:0;background:#112938;border:1px solid #95bbc667;transform:translateZ(-16px);box-shadow:0 0 0 1px #183544,0 1px 0 #254553,0 2px 0 #183342,0 3px 0 #173844,0 4px 0 #254e5d,0 5px 0 #173443,0 6px 0 #1a3a48,0 10px 0 #10252f}
.lore-map-grid{position:absolute;inset:0;background-image:linear-gradient(#b7e0dc2b 1px,transparent 1px),linear-gradient(90deg,#b7e0dc2b 1px,transparent 1px);background-size:9% 12%;transform:translateZ(4px);pointer-events:none;mask-image:linear-gradient(0deg,#000,transparent 65%)}
.lore-map-sweep{position:absolute;inset:0;transform:translateZ(5px);background:linear-gradient(105deg,transparent 30%,#a0f4f80a 46%,#bcecf77d 50%,#a0f4f80a 51%,transparent 63%);background-size:300% 100%;animation:cityScan 9s linear infinite;animation-play-state:paused;mix-blend-mode:screen;pointer-events:none}
.lore-beacon{position:absolute;left:var(--x);top:var(--y);color:var(--faction);transform:translate(-50%,-100%) translateZ(35px) rotateZ(15deg) rotateX(-42deg);transform-origin:bottom center;z-index:3;text-align:left;padding:10px;display:flex;align-items:center;gap:9px;white-space:nowrap}
.lore-beacon>i{position:relative;display:block;width:8px;height:8px;border:1px solid currentColor;transform:rotate(45deg);background:currentColor;box-shadow:0 0 18px currentColor}.lore-beacon>i:before{content:'';position:absolute;inset:-7px;border:1px solid currentColor;opacity:.55;animation:beaconPulse 3.5s ease-out infinite;animation-play-state:paused}.lore-beacon>span{background:#061624d9;border:1px solid #abc5cc69;padding:10px 13px;font-size:12px;box-shadow:5px 7px 18px #0005;backdrop-filter:blur(8px)}.lore-beacon b{font-weight:400;margin-left:9px}.lore-beacon:hover>span,.lore-beacon:focus-visible>span{border-color:var(--faction);background:#183948}
.lore-map-shadow{position:absolute;left:17%;bottom:6%;width:67%;height:18%;background:#000;filter:blur(24px);border-radius:50%;opacity:.45}
.lore-map-reticle{position:absolute;left:10%;bottom:3%;width:74%;height:31%;border:1px solid #9bd2dc2b;border-radius:50%;transform:rotate(-12deg);pointer-events:none}.lore-map-reticle:after{content:'';position:absolute;inset:-17px;border:1px dashed #9bd2dc22;border-radius:50%}
.lore-overview-copy{position:absolute;left:68%;right:3%;top:26%;z-index:5}.lore-overview-copy .eyebrow{color:#9ac4ce;font-size:10px}.lore-overview-copy h3{font-size:clamp(32px,3.4vw,62px);font-weight:600;line-height:1.3;letter-spacing:-.055em;margin:24px 0}.lore-overview-copy h3 em{color:#d9c594;font-style:normal}.lore-overview-copy>p{color:#a9bdc9;line-height:1.95;font-size:14px}.lore-instruction{font-size:10px;color:#aab6b6;display:flex;gap:9px;align-items:center;margin-top:37px;line-height:1.7}.lore-instruction i{width:5px;height:5px;flex:none;background:#b6dce0;transform:rotate(45deg)}.lore-map-caption{position:absolute;bottom:27px;left:32px;font-size:9px;letter-spacing:.025em;color:#819da7}
.faction-depth{position:absolute;inset:0;perspective:1500px;overflow:hidden}.faction-backdrop{position:absolute;inset:-5%;background-size:cover;background-position:center;transform:scale(1.035) translate(calc(var(--depth-x)*-12px),calc(var(--depth-y)*-9px));transition:transform .9s ease-out;filter:brightness(.65) saturate(.7)}
.faction-panel:after{content:'';position:absolute;inset:0;background:linear-gradient(90deg,#071624ec 0%,#071624d4 31%,#07162410 65%),linear-gradient(0deg,#06141ded,transparent 22%,transparent 70%,#07152077);pointer-events:none;z-index:2}
.faction-mist{position:absolute;inset:-20%;background:radial-gradient(ellipse at 75% 40%,color-mix(in srgb,var(--faction) 23%,transparent),transparent 46%);mix-blend-mode:screen;animation:loreMist 17s ease-in-out infinite alternate;animation-play-state:paused}
.faction-orbit{position:absolute;width:39%;aspect-ratio:1;left:50%;top:10%;transform:translate(calc(var(--depth-x)*8px),calc(var(--depth-y)*6px));transition:transform .8s ease-out}.faction-orbit>i{position:absolute;inset:0;border:1px solid color-mix(in srgb,var(--faction) 38%,transparent);border-radius:50%;transform:rotateX(35deg) rotateY(-25deg);box-shadow:0 0 40px #a1cce00a}.faction-orbit>i:nth-child(2){inset:7%;border-style:dashed;opacity:.35;animation:orbitTurn 40s linear infinite;animation-play-state:paused}.faction-orbit>i:nth-child(3){inset:-6%;opacity:.2}
.faction-person{position:absolute;inset:9% -1% -30% 45%;transform:translate(calc(var(--depth-x)*23px),calc(var(--depth-y)*13px + var(--depth-scroll)*-10px));transition:transform .6s ease-out;z-index:2;pointer-events:none}.faction-person-float{width:100%;height:100%;animation:personBreathe 11s ease-in-out infinite alternate;animation-play-state:paused}.faction-person img{width:100%;height:100%;object-fit:contain;object-position:50% 0%;filter:drop-shadow(0 15px 28px #0008)}
.faction-copy{position:absolute;z-index:4;top:90px;left:5%;width:39%;max-width:540px}.faction-id{font-size:9px;letter-spacing:.18em;color:#8eacba;margin-bottom:23px}.faction-copy>.lore-seal{position:absolute;right:0;top:49px;font-size:47px;width:75px;height:75px;opacity:.35;border-color:var(--faction);color:var(--faction)}
.lore-seal{font-family:Georgia,'Times New Roman',serif;display:grid;place-items:center;width:38px;height:38px;border:1px solid currentColor;font-size:24px;line-height:1;flex:none;position:relative}.lore-seal:before{content:'';position:absolute;inset:3px;border:1px solid currentColor;opacity:.5}
.faction-en{display:block;color:var(--faction);font-size:10px;letter-spacing:.13em}.faction-copy h3{font-size:clamp(38px,4vw,68px);letter-spacing:-.065em;line-height:1.2;font-weight:600;margin:13px 0 27px;padding-right:37px}.faction-lead{font-size:clamp(17px,1.55vw,25px);line-height:1.65;color:#d2dce1;font-weight:400;letter-spacing:-.03em;margin:0 0 22px}.faction-body{font-size:13px;line-height:1.95;color:#9fb4c2;max-width:405px;word-break:keep-all;margin:0 0 20px}.faction-tags{display:flex;flex-wrap:wrap;gap:7px;list-style:none;margin:0 0 28px;padding:0}.faction-tags li{font-size:9px;color:var(--faction);border:1px solid #a5c5cd30;padding:6px 9px;background:#10233455}.faction-read{font-size:12px;display:inline-flex;align-items:center;gap:38px;color:var(--faction);border-bottom:1px solid #b5ced452;padding:10px 0}.faction-read span{font-size:20px}.faction-read:hover{color:#fff}
.faction-location{position:absolute;right:5%;bottom:30px;z-index:5;color:var(--faction);font-size:11px;letter-spacing:.13em}.faction-dust{position:absolute;inset:0;z-index:3;transform:translate(calc(var(--depth-x)*38px),calc(var(--depth-y)*21px));transition:transform .55s ease-out;pointer-events:none}.faction-dust>i{position:absolute;left:var(--px);top:var(--py);width:2px;height:2px;background:var(--faction);border-radius:50%;box-shadow:0 0 10px var(--faction);animation:loreDust var(--pd) var(--wait) ease-in-out infinite;animation-play-state:paused;opacity:0}.faction-dust>i:nth-child(4n){width:5px;height:3px;filter:blur(1px)}
.faction-frontlight{position:absolute;inset:55% -15% -50%;background:radial-gradient(ellipse at 80% 50%,color-mix(in srgb,var(--faction) 25%,transparent),transparent 55%);filter:blur(25px);transform:translate(calc(var(--depth-x)*40px),calc(var(--depth-y)*25px));transition:transform .6s ease-out;z-index:4;mix-blend-mode:screen;pointer-events:none}
.unregistered-record{position:absolute;top:25%;left:58%;width:30%;height:46%;border:1px solid #b9a8d061;background:#101c2b77;backdrop-filter:blur(3px);transform:perspective(900px) rotateY(-16deg) translate(calc(var(--depth-x)*22px),calc(var(--depth-y)*12px));transition:transform .7s ease-out;display:flex;flex-direction:column;align-items:center;justify-content:center;color:#d1c5dc;box-shadow:0 0 40px #c0add515,inset 0 0 50px #bcb7d40b}.unregistered-record>span{font-size:13px;letter-spacing:.6em;margin:0 0 20px}.unregistered-record b{font-size:55px;font-weight:300;letter-spacing:.05em}.unregistered-record p{font-size:25px;letter-spacing:.07em;margin:9px 0 20px}.unregistered-record small{font-size:8px;letter-spacing:.2em}.unregistered-record i{position:absolute;inset:9px;border:1px solid #bba4d129}.unregistered-record i+i{inset:-17px;border-color:#bba4d117}
.lore-frame{position:absolute;inset:75px 13px 14px;border:1px solid #adcad71a;pointer-events:none;z-index:9;clip-path:polygon(0 0,30px 0,30px 1px,calc(100% - 30px) 1px,calc(100% - 30px) 0,100% 0,100% 30px,calc(100% - 1px) 30px,calc(100% - 1px) calc(100% - 30px),100% calc(100% - 30px),100% 100%,calc(100% - 30px) 100%,calc(100% - 30px) calc(100% - 1px),30px calc(100% - 1px),30px 100%,0 100%)}
.lore-transition{position:absolute;inset:0;pointer-events:none;z-index:10;opacity:0;background:linear-gradient(110deg,transparent 25%,#c3e9ed1c 49%,#dbedf499 50%,#a5e3ed22 51%,transparent 70%);mix-blend-mode:screen}.lore-explorer.is-switching .lore-transition{animation:loreTraverse .95s ease-out both}
.is-switching .faction-panel.is-selected .faction-person{animation:personArrival 1.2s cubic-bezier(.1,.7,.2,1) both}.is-switching .faction-panel.is-selected .faction-copy{animation:loreCopyArrival .85s .12s both}
.lore-bottom{display:flex;border-top:1px solid #abcbd23b;position:relative;z-index:12;background:#0a1826}.lore-pager{display:flex;align-items:center;justify-content:center;gap:13px;min-width:130px;padding:0 15px;border-right:1px solid #abcbd220}.lore-pager>span{font-size:10px;color:#6c8490;white-space:nowrap}.lore-pager b{color:#dfd5ba;font-weight:400}.lore-pager button{font-size:17px;color:#c9c8b4;padding:10px 2px}.lore-tabs{flex:1;display:grid;grid-template-columns:repeat(4,1fr);min-width:0}.lore-tab{display:flex;align-items:center;gap:15px;text-align:left;position:relative;min-height:92px;padding:17px 20px;color:#91a6b0;border-right:1px solid #accad120;overflow:hidden;transition:background .35s,color .35s}.lore-tab:last-child{border:0}.lore-tab-number{font-size:8px;position:absolute;left:8px;top:8px;color:#6b8692}.lore-tab .lore-seal{opacity:.6}.lore-tab b{display:block;font-size:14px;font-weight:500;letter-spacing:-.03em}.lore-tab small{display:block;font-size:7px;letter-spacing:.05em;margin-top:8px;color:#6c929f}.lore-tab>i{font-size:15px;font-style:normal;margin-left:auto;opacity:.45}.lore-tab:after{content:'';position:absolute;left:0;right:0;bottom:0;height:2px;background:var(--faction);transform:scaleX(0);transition:transform .4s}.lore-tab[aria-selected=true]{background:linear-gradient(0deg,color-mix(in srgb,var(--faction) 13%,transparent),transparent);color:var(--faction)}.lore-tab[aria-selected=true]:after{transform:scaleX(1)}.lore-tab:hover{background:#153347; color:#e1d9bf}.lore-tab:focus-visible,.lore-beacon:focus-visible,.lore-toolbar button:focus-visible,.lore-pager button:focus-visible{outline:1px solid #e8d2a0;outline-offset:-4px}
.world-lore-notes{border-top:1px solid #abbdc633;border-bottom:1px solid #abbdc633;margin-top:60px}.world-lore-notes>summary{display:flex;align-items:center;gap:25px;list-style:none;padding:27px 0;font-size:18px;color:#dfd4b7}.world-lore-notes>summary::-webkit-details-marker{display:none}.world-lore-notes>summary small{font-size:10px;color:#839eae}.world-lore-notes>summary b{margin-left:auto;font-size:24px;font-weight:400;transition:transform .4s}.world-lore-notes[open]>summary b{transform:rotate(45deg)}.world-lore-content{padding-top:15px}.world-lore-notes .world-order-title{margin-top:25px}.world-lore-notes .world-step{padding-top:40px;padding-bottom:60px}
.lore-running .lore-overview.is-selected .lore-map-float,.lore-running .lore-overview.is-selected .lore-map-sweep,.lore-running .lore-overview.is-selected .lore-beacon>i:before,.lore-running .is-selected .faction-mist,.lore-running .is-selected .faction-person-float,.lore-running .is-selected .faction-dust>i,.lore-running .is-selected .faction-orbit>i{animation-play-state:running}
@keyframes cityFloat{from{translate:0 -7px}to{translate:0 9px}}
@keyframes cityScan{from{background-position:160% 0}to{background-position:-60% 0}}
@keyframes beaconPulse{from{scale:.6;opacity:.7}to{scale:2.4;opacity:0}}
@keyframes loreMist{from{translate:-1% 2%;opacity:.6}to{translate:3% -2%;opacity:1}}
@keyframes personBreathe{from{translate:0 0;rotate:-.2deg}to{translate:0 -7px;rotate:.2deg}}
@keyframes orbitTurn{from{rotate:0deg}to{rotate:360deg}}
@keyframes loreDust{0%,100%{translate:0 20px;opacity:0}25%,65%{opacity:.45}90%{translate:35px -75px;opacity:0}}
@keyframes loreTraverse{0%{transform:translateX(-85%);opacity:0}30%{opacity:.65}100%{transform:translateX(85%);opacity:0}}
@keyframes personArrival{from{opacity:0;translate:65px 15px;filter:blur(4px)}to{opacity:1;translate:0 0;filter:none}}
@keyframes loreCopyArrival{from{opacity:0;translate:-20px 0}to{opacity:1;translate:0 0}}
.motion-paused .lore-explorer *,.page-hidden .lore-explorer *{animation-play-state:paused!important}.motion-paused .lore-explorer.is-switching .faction-copy,.motion-paused .lore-explorer.is-switching .faction-person{animation:none!important}.motion-paused .lore-transition{animation:none!important}.motion-paused .lore-map-camera,.motion-paused .faction-person,.motion-paused .faction-dust,.motion-paused .faction-backdrop{transition:none!important}
@media(max-width:1100px){.lore-tab{gap:10px;padding:17px 13px}.lore-tab .lore-seal{width:29px;height:29px;font-size:19px}.lore-tab b{font-size:12px}.lore-tab small{font-size:6px}.lore-tab>i{display:none}.lore-pager{min-width:110px;gap:10px}.faction-copy{width:42%;left:4%}.faction-copy>.lore-seal{opacity:.2}.lore-overview-copy{left:67%;right:2%}.lore-overview-copy>p{font-size:13px}.lore-beacon>span{font-size:10px;padding:8px}.faction-copy h3{font-size:42px}.lore-overview-copy h3{font-size:40px}}
@media(max-width:700px){.lore-explorer{margin:28px -14px 40px;scroll-margin-top:85px}.lore-stage{height:860px}.lore-toolbar{height:54px;padding:0 16px}.lore-map-return{font-size:11px}.lore-map-return small{font-size:7px;margin-left:0}.lore-status{display:none}.lore-fullscreen span{font-size:9px}.lore-frame{inset:64px 8px 10px}.lore-overview-copy{left:8%;right:8%;top:70px}.lore-overview-copy h3{font-size:40px;line-height:1.25;margin:20px 0 18px}.lore-overview-copy>p{font-size:13px;line-height:1.8}.lore-instruction{margin-top:20px;font-size:9px}.lore-map-camera{width:120%;height:45%;left:-10%;top:47%;perspective:800px}.lore-map-plane{left:9%;width:82%;top:25%;transform:rotateX(38deg) rotateZ(-12deg)}.lore-map-shadow{bottom:11%}.lore-beacon{padding:4px;gap:4px;transform:translate(-50%,-100%) translateZ(20px) rotateZ(12deg) rotateX(-38deg)}.lore-beacon>span{font-size:8px;padding:7px 6px}.lore-beacon b{margin-left:4px}.lore-beacon>i{width:5px;height:5px}.lore-map-caption{font-size:8px;left:20px;right:20px;bottom:25px;line-height:1.7}.lore-bottom{flex-direction:column}.lore-pager{border:0;height:42px;border-bottom:1px solid #a5b9c222;gap:25px}.lore-tabs{grid-template-columns:repeat(2,1fr)}.lore-tab{min-height:72px;padding:15px 17px;gap:13px;border-bottom:1px solid #accad120}.lore-tab b{font-size:13px}.lore-tab small{font-size:6px}.lore-tab:nth-child(2){border-right:0}.lore-tab-number{font-size:6px;top:5px;left:5px}.lore-tab>i{display:block}.faction-copy{top:415px;left:7%;width:86%;max-width:none}.faction-id{font-size:7px;margin:0 0 14px}.faction-en{font-size:8px}.faction-copy h3{font-size:34px;margin:9px 0 17px}.faction-lead{font-size:16px;margin-bottom:15px;line-height:1.6}.faction-body{font-size:11px;line-height:1.8;margin-bottom:15px;max-width:none}.faction-tags{gap:5px;margin-bottom:12px}.faction-tags li{font-size:8px;padding:5px 7px}.faction-read{font-size:11px;padding:7px 0}.faction-copy>.lore-seal{top:25px;right:0;width:55px;height:55px;font-size:32px;opacity:.25}.faction-person{inset:61px -1% 40% 18%;transform:translate(calc(var(--depth-x)*10px),calc(var(--depth-y)*5px));mask-image:linear-gradient(#000 64%,transparent 100%)}.faction-person img{object-position:50% 0%}.faction-backdrop{background-position:65% 30%;filter:brightness(.6) saturate(.75)}.faction-panel:after{background:linear-gradient(0deg,#071624 4%,#071624fa 44%,#07162410 70%,#07162455)}.faction-orbit{width:66%;left:22%;top:12%}.faction-location{font-size:8px;bottom:auto;top:390px;left:7%;right:auto}.unregistered-record{top:110px;left:19%;width:66%;height:240px}.unregistered-record b{font-size:44px}.unregistered-record p{font-size:20px}.lore-explorer:fullscreen .lore-stage{min-height:860px;flex:none}.world-lore-notes>summary{font-size:15px;gap:10px}.world-lore-notes>summary small{display:none}.world-lore-notes{margin-top:35px}}
@media(prefers-reduced-motion:reduce){html:not(.site-motion-on) .lore-explorer *{animation:none!important;transition:none!important}html:not(.site-motion-on) .lore-map-camera,html:not(.site-motion-on) .faction-person,html:not(.site-motion-on) .faction-backdrop,html:not(.site-motion-on) .faction-dust{translate:none!important}html:not(.site-motion-on) .lore-transition{display:none}}
/* The document already reserves the sticky header through scroll-padding. */
.lore-explorer{scroll-margin-top:12px}
@media(max-width:700px){.lore-explorer[data-view=overview] .lore-stage{height:730px}.lore-explorer[data-view=overview] .lore-map-camera{top:43%;height:52%}.lore-explorer:fullscreen[data-view=overview] .lore-stage{min-height:730px}}
