/* Shared visual language for archives, cards, record panels, and transitions. */
body:not(.portal-mode){
 --bg:#100f11;--panel:#211b27;--panel-hover:#30233d;--ink:#f0e5fa;
 --muted:#b6a6c1;--accent:#c9a3e9;--line:#c8acdf32;--archive-gold:#d3c1a0;
 background:linear-gradient(138deg,#080709,#131114 37%,#24201c 72%,#38332a);isolation:isolate;
}
.archive-background{position:fixed;inset:0;z-index:-1;pointer-events:none;overflow:hidden;opacity:.22}
.archive-background .sky-chart{width:100%;height:100%;position:absolute;inset:0}
.portal-mode .archive-background{display:none}
body:not(.portal-mode) .site-header{background:#110d16e8;border-bottom-color:#c5a4e24d;box-shadow:0 2px 24px #b27ac710}
body:not(.portal-mode) .brand img{filter:brightness(0) invert(1) drop-shadow(0 0 5px #c7a4e480)}
body:not(.portal-mode) .brand small{color:#b5a0c5}
body:not(.portal-mode) .site-header nav a{color:#baabc6}
body:not(.portal-mode) .site-header nav a.active{color:#ead5fb}
body:not(.portal-mode) .site-header nav a.active:after{background:#e4cda5;box-shadow:0 0 9px #d8b8f17d;border-radius:0;transform:translateX(-50%) rotate(45deg)}
.page-shell{position:relative}
.page-heading{position:relative;isolation:isolate;overflow:hidden;border-bottom-color:#c0a2d34a}
.page-heading:before{content:"";position:absolute;right:35px;top:-113px;width:340px;height:340px;border:1px solid #a67dc442;border-radius:50%;z-index:-1;box-shadow:0 0 0 20px #a67dc405,0 0 0 21px #c5aa7a26}
.page-heading:after{content:"";position:absolute;width:75px;height:75px;right:104px;top:48px;background:#9c6fb52e;clip-path:polygon(50% 0,59% 41%,100% 50%,59% 59%,50% 100%,41% 59%,0 50%,41% 41%);z-index:-1}
.page-heading h1{color:#e4c8fa;text-shadow:0 0 22px #af75cd21}
.page-heading .eyebrow{color:#d4bd96}
.page-heading>p{color:#bcadca}
.filter{border-radius:0;transition:color .2s,background .2s,border-color .2s}
.filter.selected{background:#b583dc20;border-color:#bc92d16b;color:#e3c8f5}
.filter.selected:before{content:"";display:inline-block;width:4px;height:4px;background:#d2b98c;transform:rotate(45deg);margin-right:8px;vertical-align:middle}
.result-meta{color:#b4a0c1}
.entry-card,.region-card{position:relative;isolation:isolate;background:linear-gradient(140deg,#2a2031ed,#17131ce8);border-color:#b58bc94f;overflow:hidden;transition:transform .25s,border-color .25s,box-shadow .25s,background .25s}
.entry-card:before,.region-card:before{content:"";position:absolute;top:-50px;right:-32px;width:150px;height:150px;border:1px solid #b183ca33;border-radius:50%;z-index:-1;box-shadow:0 0 0 13px #a97fc908,0 0 0 14px #c2a77322}
.entry-card:after,.region-card:after{content:"";position:absolute;right:24px;bottom:26px;width:9px;height:9px;clip-path:polygon(50% 0,58% 42%,100% 50%,58% 58%,50% 100%,42% 58%,0 50%,42% 42%);background:#d5bd8d;opacity:.6;pointer-events:none}
.entry-card:hover,.region-card:hover,.entry-card:focus-visible,.region-card:focus-visible{border-color:#d1a4ed9e;background:linear-gradient(140deg,#3b2946f5,#201728ed);transform:translateY(-3px);box-shadow:0 0 25px #ae77d51a}
.entry-card h3,.region-card h2{color:#ead5fc}
.entry-card p,.region-card p:not(.region-path){color:#bbadca}
.entry-top>.mono,.region-code{color:#d4bc93}
.entry-bottom,.region-link{color:#cda4e9}
.entry-bottom>span,.region-link>span{margin-right:16px}
.badge{border-color:#bea5d44a;color:#cbb7dc;background:#b18bc10c}
.region-path{color:#b396c5}
.region-mark{color:#b58bd52b}
.atlas-banner{background:linear-gradient(130deg,#211724e8,#4534488a,#2d271be0);border-color:#c1a0d54d}
.atlas-banner h2{color:#e0c3f7}
.atlas-glyph{color:#c8a4e499}
.chronicle-intro .mono{color:#d5bb8f}
.time-stamp{color:#d9c39c}
.time-content{border-left-color:#ae85ca6b}
.timeline-node{background:#d5a8ee;border:0;border-radius:0;clip-path:polygon(50% 0,59% 41%,100% 50%,59% 59%,50% 100%,41% 59%,0 50%,41% 41%);width:11px;height:11px;left:-6px}
.time-content h2{color:#e1c4f7}
.time-content p{color:#bbaac9}
.faction-symbol{color:#ccb0e6;text-shadow:0 0 25px #b280cd3d}
.faction-row{border-color:#bd9cd747}
.faction-main h2{color:#e5caf8}
.member-tags button{border-color:#b18cc94d;background:#a474c00c;color:#d6c0e7}
.member-tags button:hover{background:#b487d52b;border-color:#d3aeed99;color:#f0deff}
.round-link{border-color:#c5a3db66;color:#d4ba91;background:#9c73b212}
.portrait-placeholder{border-color:#b28bcd59;background:radial-gradient(circle at 50% 42%,#a479c932,transparent 66%),linear-gradient(150deg,#291e32e8,#17131deb)}
.portrait-ring{border-color:#b688d35c}
.portrait-ring:after{border-color:#c7af7d75}
.portrait-letter{color:#bd96d784}
.portrait-id{color:#d0ba91}
.portrait-status{color:#b4a0c3}
.character-caption h2{color:#e3c9f6}
.character-caption>span{color:#d5bd93}
.character-notice{background:#a879c51a;border-color:#b087cb61}
.character-notice strong{color:#dbc2ef}
.name-search input{border-color:#ad89c756;background:#241b2be8;color:#ead8f6}
.archive-note{border-color:#b597ce3d}
.archive-note>span{color:#d3b990}
.empty-state{border-color:#b392ca5c;background:#ae7bc00b}
body:not(.portal-mode) footer{background:#100c14b8;border-color:#b899ce3b}
body:not(.portal-mode) .to-top{background:#2b1f35ed;border-color:#bd94d56b;color:#dac19a}

/* Record reading panels retain the same purple/gold material and orbit motifs. */
#detail-dialog,#search-dialog{background:linear-gradient(145deg,#281d30,#17121c 52%,#29241d);border:1px solid #bc91d382;box-shadow:0 20px 100px #000b,0 0 42px #ab78c62b;color:#f0dffb;border-radius:0}
#detail-dialog::backdrop,#search-dialog::backdrop{background:#09050dda;backdrop-filter:blur(7px);animation:archive-backdrop-in .3s ease both}
.detail-wrap{isolation:isolate;overflow:hidden}
.detail-wrap:before{content:"";position:absolute;right:-105px;top:-72px;width:330px;height:330px;border:1px solid #a77bc84f;border-radius:50%;box-shadow:0 0 0 22px #ba95d308,0 0 0 23px #c4ac7d3d;z-index:-1;pointer-events:none}
.detail-wrap #detail-title{color:#e7c8fc;text-shadow:0 0 18px #bd89dd24}
.detail-wrap .eyebrow{color:#d2b98e}
.detail-close{border-color:#c49fdb70;background:#271b32;color:#e1c5f2}
.detail-close:hover{color:#efdcaf;border-color:#d4bc91}
.detail-meta{border-color:#b492ca4d;color:#c1a8d4}
.calendar-note{color:#d4bd93}
.article-prose p{color:#dfd0e8;line-height:2.25}
.article-prose h3{color:#d5b4ec}
.profile-fields{border-color:#b192c04d}
.profile-fields dt{color:#c8afda}
.profile-fields dd{color:#ebdaf5}
.related-section h3{color:#d9bf94}
.related-link{border-color:#a883bd40;color:#d8bee8;transition:color .2s,background .2s,padding .2s}
.related-link:hover{padding-left:10px;background:#b283ce15;color:#f2ddff}
.related-link span:last-child{color:#d4b789}
.source-caption{border-color:#b595c54a;color:#ac98b9}
.dialog-head{border-color:#b38ac63d;color:#d7bee8}
.search-field{border-color:#ba93cc47}
.search-field svg{color:#d3b98a}
.search-field input{color:#efddfc}
.search-result{border-color:#b28bc13b}
.search-result:hover{background:#ba89d71c!important}
.search-result small,.search-result>span{color:#d5ba90!important}
.search-result p{color:#b9a7c6}
.search-count,.search-foot{color:#bfa6d0!important}
.search-foot{border-color:#aa85bb3d}

/* Short, shared transitions echo the opening without replaying the full intro. */
.page-enter{animation:archive-page-enter .55s cubic-bezier(.2,.7,.2,1) both}
dialog.is-entering{animation:archive-dialog-enter .38s cubic-bezier(.2,.8,.2,1) both}
dialog.is-closing{animation:archive-dialog-exit .18s ease both;pointer-events:none}
.record-reveal{animation:archive-record-enter .4s ease both}
.route-veil{position:fixed;inset:0;z-index:50;display:grid;place-items:center;pointer-events:none;background:radial-gradient(ellipse,#24182aee,#0d090ee6);opacity:0}
.route-veil[hidden]{display:none}
.route-veil.is-active{animation:archive-route-veil .62s ease both}
.route-veil img{position:absolute;width:72px;height:72px;filter:brightness(0) invert(1) drop-shadow(0 0 10px #ce9ee4a6);animation:archive-route-mark .62s cubic-bezier(.5,0,.7,1) both}
.route-veil-ring{width:132px;height:132px;border:1px solid #c1a0d28c;border-radius:50%;box-shadow:0 0 0 10px #bd92d017,0 0 0 11px #d6bb8d55;animation:archive-route-ring .62s ease both}
.route-veil-star{position:absolute;width:8px;height:8px;background:#e2c79b;transform:translate(66px,0) rotate(45deg)}
@keyframes archive-page-enter{from{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}
@keyframes archive-dialog-enter{from{opacity:0;transform:translateY(16px) scale(.97)}to{opacity:1;transform:translateY(0) scale(1)}}
@keyframes archive-dialog-exit{to{opacity:0;transform:translateY(9px) scale(.98)}}
@keyframes archive-record-enter{from{opacity:.2;transform:translateY(9px)}to{opacity:1;transform:translateY(0)}}
@keyframes archive-backdrop-in{from{opacity:0}to{opacity:1}}
@keyframes archive-route-veil{0%{opacity:0}20%,45%{opacity:1}100%{opacity:0}}
@keyframes archive-route-mark{0%{transform:rotate(0) scale(.7);opacity:0}25%{opacity:1}75%{opacity:1}100%{transform:rotate(310deg) scale(.4);opacity:0}}
@keyframes archive-route-ring{from{transform:scale(.5);opacity:.3}45%{opacity:1}to{transform:scale(2.5);opacity:0}}
@media(max-width:700px){
 body:not(.portal-mode) .site-header nav{background:#191220f5;border-color:#b08ac44a}
 .archive-background{opacity:.17}
 .page-heading:before{right:-100px;top:-100px;width:270px;height:270px}
 .page-heading:after{right:7px;top:45px;width:50px;height:50px}
 .entry-card:before,.region-card:before{width:130px;height:130px}
 .detail-wrap:before{width:240px;height:240px;right:-100px;top:-70px}
}
@media(prefers-reduced-motion:reduce){
 .route-veil{display:none!important}.page-enter,.record-reveal,dialog.is-entering,dialog.is-closing,dialog::backdrop{animation:none!important}
 .entry-card:hover,.region-card:hover{transform:none}
 .archive-background *{animation:none!important}
}
