/* Shared orbital theatre: brand via --px-accent / --px-stack-* */
.orbital {
  overflow: hidden;
  padding: clamp(3rem, 7vw, 5rem) 0;
  background:
    radial-gradient(ellipse 70% 60% at 70% 40%, color-mix(in srgb, var(--px-accent, #c89f5d) 14%, transparent), transparent 55%);
}
.orbital .wrap,
.orbital .container {
  display: grid;
  gap: 2.5rem;
}
.orbital-copy { max-width: 36rem; }
.orbital-copy h2 em { color: var(--px-accent, #c89f5d); font-style: italic; }
.orbital-stage {
  position: relative;
  min-height: min(62vh, 540px);
  border-radius: 20px;
  border: 1px solid color-mix(in srgb, var(--px-accent, #c89f5d) 28%, transparent);
  background:
    linear-gradient(160deg, rgba(255,255,255,.03), transparent 40%),
    var(--px-stack-card-bg, #0f1a28);
  box-shadow: 0 24px 60px rgba(0,0,0,.35);
}
.orbital-lines {
  position: absolute; inset: 8% 6%; width: 88%; height: 84%;
  opacity: .35; pointer-events: none;
}
.orbital-lines path {
  fill: none;
  stroke: color-mix(in srgb, var(--px-accent, #c89f5d) 55%, transparent);
  stroke-width: 1.2;
  stroke-dasharray: 4 6;
}
.orbital-core {
  position: absolute; left: 50%; top: 50%; transform: translate(-50%,-50%);
  z-index: 2; width: min(280px, 58%); padding: 1.35rem 1.25rem;
  border-radius: 16px; text-align: center;
  background: color-mix(in srgb, var(--px-stack-card-bg, #0f1a28) 92%, #000);
  border: 1px solid color-mix(in srgb, var(--px-accent, #c89f5d) 42%, transparent);
  box-shadow: 0 16px 40px rgba(0,0,0,.4);
  color: var(--px-stack-fg, #f3efe6);
}
.orbital-core-kicker {
  display: block; font-size: .72rem; letter-spacing: .14em;
  text-transform: uppercase; color: var(--px-accent, #c89f5d); margin-bottom: .45rem;
}
.orbital-core strong {
  display: block; font-size: 1.15rem; line-height: 1.25;
}
.orbital-core-note {
  display: block; margin-top: .55rem; font-size: .82rem; opacity: .72;
}
.orbit-card {
  position: absolute;
  left: calc(50% + var(--ox));
  top: calc(50% + var(--oy));
  transform: translate(-50%,-50%);
  z-index: 3; width: min(220px, 42vw);
  padding: .95rem 1rem; border-radius: 14px;
  background: rgba(255,255,255,.04);
  border: 1px solid color-mix(in srgb, var(--px-accent, #c89f5d) 30%, transparent);
  box-shadow: 0 14px 36px rgba(0,0,0,.35);
  backdrop-filter: blur(10px);
  color: var(--px-stack-fg, #f3efe6);
  animation: orbitFloat 7s ease-in-out infinite;
  animation-delay: var(--od, 0s);
}
.orbit-label {
  display: block; font-size: .68rem; letter-spacing: .12em;
  text-transform: uppercase; color: var(--px-accent, #c89f5d); margin-bottom: .35rem;
}
.orbit-card strong { display: block; font-size: .98rem; margin-bottom: .4rem; }
.orbit-card p, .orbit-card li {
  font-size: .78rem; line-height: 1.45; margin: 0; opacity: .82;
}
.orbit-card ul { margin: 0; padding-left: 1rem; }
.orbit-meter {
  margin-top: .65rem; height: 4px; border-radius: 4px;
  background: rgba(255,255,255,.08); overflow: hidden;
}
.orbit-meter i {
  display: block; height: 100%; width: var(--w);
  background: linear-gradient(90deg, color-mix(in srgb, var(--px-accent) 70%, #000), var(--px-accent));
  border-radius: 4px;
}
.orbit-chips { display: flex; flex-wrap: wrap; gap: .35rem; margin-top: .45rem; }
.orbit-chips span {
  font-size: .68rem; padding: .2rem .45rem; border-radius: 999px;
  border: 1px solid color-mix(in srgb, var(--px-accent) 35%, transparent); opacity: .9;
}
.orbit-spark {
  display: flex; align-items: flex-end; gap: 4px; height: 28px; margin-top: .55rem;
}
.orbit-spark b {
  flex: 1; border-radius: 3px 3px 0 0;
  background: color-mix(in srgb, var(--px-accent) 75%, #fff);
  opacity: .75; animation: sparkPulse 1.6s ease-in-out infinite;
}
.orbit-spark b:nth-child(1){height:35%}
.orbit-spark b:nth-child(2){height:55%;animation-delay:.15s}
.orbit-spark b:nth-child(3){height:80%;animation-delay:.3s}
.orbit-spark b:nth-child(4){height:48%;animation-delay:.45s}
.orbit-spark b:nth-child(5){height:65%;animation-delay:.6s}
@keyframes orbitFloat {
  0%,100%{translate:0 0}
  50%{translate:0 -8px}
}
@keyframes sparkPulse {
  0%,100%{transform:scaleY(1);opacity:.65}
  50%{transform:scaleY(1.15);opacity:1}
}
@media (max-width:800px){
  .orbital-stage{min-height:0;display:grid;gap:.85rem;padding:1rem}
  .orbital-lines,.orbital-core{display:none}
  .orbit-card{position:relative;left:auto;top:auto;transform:none;width:100%;animation:none}
}
@media (prefers-reduced-motion:reduce){
  .orbit-card,.orbit-spark b{animation:none!important}
}

/* Archive loader */
.site-loader{
  position:fixed;inset:0;z-index:300;display:grid;place-items:center;
  background:
    radial-gradient(ellipse 80% 60% at 50% 40%, color-mix(in srgb, var(--px-accent,#c89f5d) 18%, transparent), transparent 55%),
    var(--px-stack-card-bg,#0c0a08);
  color:var(--px-stack-fg,#f6efe8);
  transition:opacity .55s cubic-bezier(.22,1,.36,1),visibility .55s;
}
.site-loader.is-done{opacity:0;visibility:hidden;pointer-events:none}
.site-loader-inner{text-align:center;max-width:28rem;padding:1.5rem}
.site-loader-kicker{font-size:.72rem;letter-spacing:.22em;text-transform:uppercase;opacity:.55;margin-bottom:1rem}
.site-loader-brand{font-size:clamp(2rem,6vw,3.2rem);font-weight:800;letter-spacing:-.03em;margin:0 0 .35rem}
.site-loader-vol{font-size:.85rem;letter-spacing:.16em;text-transform:uppercase;color:var(--px-accent,#c89f5d);margin-bottom:1.75rem}
.site-loader-mesh{width:min(220px,55vw);height:88px;margin:0 auto 1.5rem;opacity:.7}
.site-loader-mesh path{fill:none;stroke:var(--px-accent,#c89f5d);stroke-width:1.4;stroke-linecap:round}
.site-loader-pct{font-variant-numeric:tabular-nums;font-size:1.1rem;font-weight:600;letter-spacing:.08em}
.site-loader-bar{margin:.85rem auto 0;width:min(220px,55vw);height:2px;background:rgba(255,255,255,.1);border-radius:2px;overflow:hidden}
.site-loader-bar>i{display:block;height:100%;width:0%;background:var(--px-accent,#c89f5d)}
body.site-loading{overflow:hidden}
@media (prefers-reduced-motion:reduce){
  .site-loader{display:none!important}
  body.site-loading{overflow:auto}
}
