/* Shared celestial materials. Ring halves share one plane and one light source. */
.interstellar-visitor { position: absolute; top: 22%; left: -100px; width: 64px; height: 10px; opacity: 0; pointer-events: none; }
.interstellar-visitor > span {
    display: block; width: 100%; height: 100%;
    clip-path: polygon(0 49%, 12% 21%, 42% 3%, 78% 14%, 100% 48%, 86% 78%, 34% 100%, 9% 73%);
    background: linear-gradient(172deg, #bab1a1 0%, #7d7162 30%, #463d36 52%, #181c20 80%);
    transform: rotate(-19deg);
}
.interstellar-visitor.is-passing { animation: interstellar-passage 4.8s linear both; }
.interstellar-visitor.is-passing > span { animation: interstellar-tumble 4.8s linear both; }
@keyframes interstellar-passage {
    0% { opacity: 0; transform: translate(0, 0); }
    12%, 83% { opacity: .65; }
    100% { opacity: 0; transform: translate(calc(100vw + 200px), 17vh); }
}
@keyframes interstellar-tumble { to { transform: rotate(23deg) scaleY(.55); } }
@media (prefers-reduced-motion: reduce) {
    .interstellar-visitor { display: none; }
    .interstellar-visitor.is-passing, .interstellar-visitor.is-passing > span { animation: none; }
}
body .space-canvas, body.page-home .space-canvas {
    background: radial-gradient(ellipse at 75% 16%, rgba(54, 72, 91, .12), transparent 48%),
        linear-gradient(175deg, #06090e, #020408 65%, #070b10);
}
body .nebula { opacity: .035; filter: blur(110px); background: #889caf; }
body .star-field-far { opacity: .8; background: url('../space/stars.svg') repeat; background-size: 1600px 1000px; }
body .star-field-near {
    opacity: .55; filter: none;
    background-image: radial-gradient(circle at 17% 31%, #e2e9ef 0 .7px, transparent 1.5px),
        radial-gradient(circle at 83% 12%, #c8d6e6 0 .8px, transparent 1.6px),
        radial-gradient(circle at 63% 78%, #ddd4c3 0 .7px, transparent 1.4px);
    background-size: 1103px 907px; background-position: 0 0;
}
.orbital-planet { --surface-light: #a3b6bb; --surface-mid: #526976; --surface-dark: #1e303d; }
.orbital-planet--music { --surface-light: #c2b296; --surface-mid: #81735e; --surface-dark: #343b40; }
.orbital-planet--projects { --surface-light: #b2bbc0; --surface-mid: #687b83; --surface-dark: #293d47; }
.orbital-planet--journal { --surface-light: #bbab97; --surface-mid: #857366; --surface-dark: #3a3330; }
.orbital-planet--about { --surface-light: #9bb3b0; --surface-mid: #577772; --surface-dark: #243e43; }
.orbital-planet .orbital-planet__halo { opacity: .23; background: radial-gradient(circle, #8dabb7, transparent 63%); }
.orbital-planet .orbital-planet__body {
    border-color: rgba(191, 211, 221, .15);
    background: radial-gradient(ellipse at 24% 24%, rgba(234, 231, 211, .28), transparent 45%),
        repeating-linear-gradient(173deg, transparent 0 7px, rgba(21, 30, 34, .13) 9px 12px, transparent 18px 24px),
        linear-gradient(125deg, var(--surface-light), var(--surface-mid) 46%, var(--surface-dark) 72%, #03070c 95%);
    box-shadow: inset -2.8rem -1rem 3.5rem #02050ad9, inset 2px 1px 4px #dce4df40, 0 0 14px #809caf12;
}
.orbital-planet .orbital-planet__body::before { border: 0; inset: 0; background: repeating-linear-gradient(165deg, transparent 0 15px, #d9ccaf0b 17px, transparent 23px); }
.orbital-planet .orbital-planet__body::after { inset: 0; transform: none; background: radial-gradient(ellipse at 17% 27%, transparent 26%, #02050955 63%, #020509cc 88%); }
.orbital-planet .orbital-planet__latitude { border: 0; }
.orbital-planet .orbital-planet__ring {
    inset: 36% 1% auto; height: 28%; border: 0; border-radius: 50%; transform: rotate(-22deg);
    background: radial-gradient(ellipse, transparent 49%, #ada18c55 50% 53%, #343c4255 54% 56%, #b9ad9580 57% 61%, #d0c1a561 62% 64%, transparent 65% 67%, #b9b4a43d 68% 71%, transparent 72%);
}
.orbital-planet .orbital-planet__ring--far { z-index: 1; clip-path: inset(0 0 50% 0); }
.orbital-planet .orbital-planet__ring--near { z-index: 3; clip-path: inset(50% 0 0 0); }
.orbital-planet .orbital-planet__moon { background: radial-gradient(circle at 28% 24%, #d4d2c9, #747b7d 43%, #171f28 77%); box-shadow: 0 2px 5px #0008; }
.orbital-planet .orbital-planet__glyph { background: #0a101be6; border-color: #8fabb63d; color: #c1d2dd; box-shadow: 0 5px 15px #0006; animation: none; }
body .booking-planet > span { background: radial-gradient(circle at 28% 27%, #a5b5ba, #506774 43%, #152732 71%, #03070b 90%); box-shadow: inset -15px -8px 20px #020509aa, 0 0 12px #8aadb016; }
body .booking-planet::after { border-color: #c1b59b66; border-width: 3px; clip-path: inset(50% 0 0 0); }
body .booking-planet::before { position: absolute; width: 13rem; height: 3rem; border: 3px solid #c1b59b66; border-radius: 50%; content: ''; transform: rotate(-14deg); clip-path: inset(0 0 50% 0); }
body .booking-planet > span { z-index: 1; }
body .booking-planet::after { z-index: 2; }
body .portrait-halo { opacity: .3; }
body .portrait-orbit { border-color: #a6b4bc66; }
body .portrait-orbit::before { background: #b4bdc4; box-shadow: none; }
body .support-system__planet { background: radial-gradient(circle at 28% 23%, #b7b9af, #647d83 38%, #233a48 65%, #050b13 85%); box-shadow: none; }
