/* Content is arranged in the galaxy itself; these are open spatial anchors,
   not a row of cards placed over a decorative background. */
.galaxy-hub{position:absolute;inset:0;z-index:7;pointer-events:none;isolation:isolate}
.galaxy-hub-nodes{position:absolute;inset:0}
.galaxy-node{
 position:absolute;left:var(--node-x);top:var(--node-y);transform:translate(-50%,-50%);
 display:flex;align-items:center;gap:34px;min-width:112px;min-height:70px;padding:6px 10px;
 color:#edf5ff;text-decoration:none;pointer-events:auto;outline:none;
 -webkit-tap-highlight-color:transparent;transition:opacity 850ms ease,color 350ms ease;
}
.galaxy-node--main{flex-direction:column;gap:10px;min-height:96px;text-align:center}
.galaxy-node--main .galaxy-node-copy{order:0;align-items:center}
.galaxy-node--main .galaxy-node-star{order:1;flex-basis:22px;width:22px;height:22px}
.galaxy-node--main .galaxy-node-star i{display:none}
.galaxy-node-star{position:relative;display:block;flex:0 0 12px;width:12px;height:12px}
.galaxy-node-star::after{content:"";position:absolute;inset:-12px;background:radial-gradient(ellipse,#9bd6ff3d,transparent 68%);pointer-events:none;opacity:.35;transition:transform 200ms ease,opacity 200ms ease}
.galaxy-node-star svg{position:relative;z-index:1;display:block;width:100%;height:100%;fill:none;stroke:currentColor;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round;opacity:.8;transition:opacity 200ms ease}
.galaxy-node-star i{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:5px;height:5px;border-radius:50%;background:#f2fbff;box-shadow:0 0 8px #c1eaffb3,0 0 18px #91bfff59}
.galaxy-node-copy{display:flex;flex-direction:column;gap:5px;transition:transform 200ms ease,opacity 200ms ease;text-shadow:0 1px 3px #020714e6,0 2px 14px #020714}
.galaxy-node strong{font-weight:400;font-size:22px;letter-spacing:.015em;line-height:1.2}
.galaxy-node small{font-size:10px;color:#c9d7e9;letter-spacing:.01em;line-height:1.5}
.galaxy-hub.is-highlighting .galaxy-node:not(.is-highlighted){opacity:.68}
.galaxy-node.is-highlighted{color:#fff}
.galaxy-node.is-highlighted .galaxy-node-copy{transform:translate3d(0,-2px,0)}
.galaxy-node.is-highlighted .galaxy-node-star::after{opacity:1;transform:scale(1.3)}
.galaxy-node.is-highlighted .galaxy-node-star svg{opacity:1}
.galaxy-hub .galaxy-node:focus-visible{border-radius:8px;outline:1px solid #c5e9ffb3;outline-offset:5px}
.galaxy-node--small{gap:10px;min-width:76px;min-height:44px;padding:3px 6px;color:#c3d3e8}
.galaxy-node--small .galaxy-node-star{flex-basis:8px;width:8px;height:8px}
.galaxy-node--small .galaxy-node-star i{width:3px;height:3px;box-shadow:0 0 7px #b5d9ff8c}
.galaxy-node--small .galaxy-node-star::after{inset:-8px}
.galaxy-node--small strong{font-size:12px;font-weight:400;letter-spacing:.025em;line-height:1.5}
.galaxy-hub-hint{position:absolute;bottom:34px;left:50%;transform:translateX(-50%);margin:0;color:#b8c8dd;font-size:12px;letter-spacing:.01em;white-space:nowrap;text-shadow:0 1px 10px #020714}
.galaxy-hub.is-focusing .galaxy-node:not(.is-destination){opacity:.3}
.galaxy-node.is-destination .galaxy-node-star::after{opacity:1;transform:scale(1.6)}
.galaxy-node.is-destination .galaxy-node-copy{transform:translate3d(0,-2px,0)}
.galaxy-return{display:flex;align-items:center;gap:10px;width:fit-content;min-height:44px;margin:18px var(--studio-edge,6vw) -24px;padding:8px 0;color:#d7e8f9;background:#071522b3;box-shadow:0 0 0 7px #071522b3;border-radius:999px;text-shadow:0 1px 3px #020913;text-decoration:none;font-size:12px}
.galaxy-return span{font-size:18px;color:#d7e8f9}
.galaxy-return:hover{color:#fff}
/* Preserve the existing words and cat as smaller personal anchors. */
body.studio.galaxy-hub-ready:not(.view-immersive).blog-home .universe{height:100svh;min-height:650px}
body.studio.galaxy-hub-ready:not(.view-immersive).blog-home .hero-copy{left:6%;top:35%;width:220px;max-width:220px;right:auto;z-index:8}
body.studio.galaxy-hub-ready.blog-home .hero-copy .hello-note{font-size:10px;gap:9px;letter-spacing:.8px;margin:0 0 19px}
body.studio.galaxy-hub-ready.blog-home .hero-copy h1{font-size:30px;line-height:1.55;letter-spacing:2px;margin:0 0 18px}
body.studio.galaxy-hub-ready.blog-home .hero-intro{font-size:11px;line-height:2.1;max-width:210px;margin:0 0 15px;color:#b7c5d9}
body.studio.galaxy-hub-ready.blog-home .hero-links{display:none}
body.studio.galaxy-hub-ready.blog-home .hero-replay{font-size:10px;min-height:44px;margin:0;padding:0;border:0;background:none;color:#8fa5bf}
body.studio.galaxy-hub-ready:not(.view-immersive).bunny-mode.landscape-mode.blog-home .scene{
 --home-cat-width:min(31vw,calc((100svh - 190px)*.65),390px);
 width:var(--home-cat-width);left:calc(86% - var(--home-cat-width)*.2);top:82%;
}
body.studio.galaxy-hub-ready.blog-home .studio-hero-bottom{bottom:22px}
body.studio.galaxy-hub-ready.blog-home .scroll-invitation{font-size:10px;letter-spacing:.5px}
body.studio.galaxy-hub-ready.blog-home .studio-player{gap:8px}
body.studio.galaxy-hub-ready.blog-home .player-caption{display:none}
body.view-immersive .galaxy-hub{display:none}
@media(min-width:701px) and (max-width:1000px){
 body.studio.galaxy-hub-ready:not(.view-immersive).blog-home .hero-copy{left:4%;width:180px;max-width:180px;top:38%}
 body.studio.galaxy-hub-ready.blog-home .hero-copy h1{font-size:26px}
 body.studio.galaxy-hub-ready.blog-home .hero-intro{font-size:10px}
 .galaxy-node{min-width:100px}
 .galaxy-node strong{font-size:19px}.galaxy-node--small{gap:9px}.galaxy-node--small strong{font-size:11px}
 .galaxy-hub-hint{display:none}
}
/* Compact windows keep the same spatial map. The renderer uses this box as
   its camera anchor, including when a short viewport needs to scroll. */
@media(max-width:700px){
 body.studio.galaxy-hub-ready:not(.view-immersive).blog-home .universe{height:max(100svh,820px);min-height:820px}
 body.studio.galaxy-hub-ready:not(.view-immersive).blog-home .hero-copy{left:24px;top:148px;width:calc(100% - 48px);max-width:none}
 body.studio.galaxy-hub-ready.blog-home .hero-copy .hello-note{margin-bottom:8px}
 body.studio.galaxy-hub-ready.blog-home .hero-copy h1{font-size:25px;line-height:1.5;margin-bottom:8px;letter-spacing:1px}
 body.studio.galaxy-hub-ready.blog-home .hero-copy h1 br{display:none}
 body.studio.galaxy-hub-ready.blog-home .hero-intro{font-size:11px;line-height:1.8;max-width:100%;margin-bottom:0}
 body.studio.galaxy-hub-ready.blog-home .hero-replay{font-size:10px;min-height:40px}
 .galaxy-hub-nodes{inset:330px 0 auto;height:clamp(320px,40svh,420px)}
 .galaxy-node{min-width:88px;padding:6px;gap:8px}
 .galaxy-node--main{min-height:88px}
 .galaxy-node strong{font-size:20px;letter-spacing:.015em}
 .galaxy-node small{font-size:10px}
 .galaxy-node--small{min-width:64px;min-height:44px;gap:8px}
 .galaxy-node--small strong{font-size:12px}
 .galaxy-node[data-galaxy-node="projects"]{left:25%;top:26%}
 .galaxy-node[data-galaxy-node="essays"]{left:74%;top:18%}
 .galaxy-node[data-galaxy-node="album"]{left:76%;top:69%}
 .galaxy-node[data-galaxy-node="about-me"]{left:25%;top:79%}
 .galaxy-node[data-galaxy-node="archive"]{left:17%;top:0}
 .galaxy-node[data-galaxy-node="tags"]{left:72%;top:0}
 .galaxy-node[data-galaxy-node="friends"]{left:88%;top:46%}
 .galaxy-node[data-galaxy-node="guestbook"]{left:44%;top:108%}
 .galaxy-node[data-galaxy-node="subscribe"]{left:16%;top:103%}
 .galaxy-hub-hint{display:none}
 body.studio.galaxy-hub-ready:not(.view-immersive).bunny-mode.landscape-mode.blog-home .scene{
  --home-cat-width:min(42vw,220px);width:var(--home-cat-width);aspect-ratio:1.45;
  left:calc(100% - 24px - var(--home-cat-width)*.59);top:calc(100% - 78px - var(--home-cat-width)*.32);
 }
 body.studio.galaxy-hub-ready:not(.view-immersive).blog-home .cat-float,
 body.studio.galaxy-hub-ready:not(.view-immersive).blog-home .cat-foreground{left:31%;top:5%;width:78%}
 body.studio.galaxy-hub-ready:not(.view-immersive).blog-home .earth-shell{left:41.75%;top:46.5%;width:26%}
 .galaxy-return{margin-left:24px;margin-right:24px;font-size:11px}
}
@media(prefers-reduced-motion:reduce){.galaxy-node,.galaxy-node-copy,.galaxy-node-star svg,.galaxy-node-star::after{transition:none!important}.galaxy-node.is-highlighted .galaxy-node-copy,.galaxy-node.is-destination .galaxy-node-copy,.galaxy-node-star::after{transform:none!important}}
@media(forced-colors:active){.galaxy-node-star::after{display:none}.galaxy-node-star i{background:LinkText;box-shadow:none}.galaxy-node{color:LinkText}.galaxy-node-copy{text-shadow:none}.galaxy-node small{color:CanvasText}}
