/* A silver campaign sigil marks in-page travel without changing layout. */
.worldbuilder-loader[hidden] {display:none!important;}
.worldbuilder-loader {position:relative;width:100%;box-sizing:border-box;display:flex;flex-direction:column;align-items:center;justify-content:flex-start;padding:48px 16px;min-height:240px;color:var(--wb-loader-text,#ebeef5);text-align:center;background:transparent;}
.worldbuilder-loader-art {width:112px;height:112px;color:var(--wb-loader-silver,#c9cbd1);}
.worldbuilder-loader-art svg {display:block;width:100%;height:100%;overflow:visible;}
.worldbuilder-loader-orbit {transform-origin:60px 60px;animation:worldbuilder-loader-orbit 14s linear infinite;}
.worldbuilder-loader-core {animation:worldbuilder-loader-pulse 1.8s ease-in-out infinite;}
.worldbuilder-loader-title {font:400 21px/1.4 Georgia,serif;margin:16px 0;}
.worldbuilder-loader-rule {height:1px;width:100px;background:var(--wb-loader-line,#47484a);position:relative;}
.worldbuilder-loader-rule span {position:absolute;left:46px;top:-3px;width:7px;height:7px;transform:rotate(45deg);background:var(--wb-loader-silver,#c9cbd1);}
@keyframes worldbuilder-loader-orbit {to{transform:rotate(360deg);}}
@keyframes worldbuilder-loader-pulse {0%,100%{opacity:.3;}50%{opacity:.9;}}
@media(prefers-reduced-motion:reduce){.worldbuilder-loader-orbit,.worldbuilder-loader-core{animation:none;}}
@media(max-width:600px){.worldbuilder-loader{padding-top:32px;}.worldbuilder-loader-art{width:88px;height:88px;}}
.worldbuilder-loader-overlay {position:absolute;inset:0;z-index:20;pointer-events:none;}


/* Preserve layout while keeping both old and incoming content out of view. */
.campaign-manager-content[aria-busy="true"],
.campaign-public-content[aria-busy="true"],
.worldbuilder-loading-content {visibility:hidden!important;pointer-events:none;}
.campaign-public-tab-status:has(+ .worldbuilder-loader:not([hidden])) {position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);}

.campaign-public-tab-status.campaign-navigation-loading{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:0!important;overflow:hidden!important;clip-path:inset(50%);white-space:nowrap;}
