/* 01 · 作者入口附着原星轨的缺口；不再使用黑洞、独立卡片或额外轨道。 */
.star-chart:has(#author-entry){overflow:clip}
.author-entry{position:absolute;z-index:3;width:112px;height:100px;display:flex;flex-direction:column;align-items:center;padding:0;border:0;background:none;color:#a4864b;font-family:inherit;cursor:pointer;transform:translate(calc(-50% + var(--chart-x,0px)*.7),calc(-32px + var(--chart-y,0px)*.7));-webkit-tap-highlight-color:transparent}
/* 初见即可辨识：放大星芒、扩大金色光晕，标签直接说明入口用途，不再等待数秒才显现。 */
.author-entry:before{content:'';position:absolute;z-index:-1;left:50%;top:-25px;translate:-50% 0;width:150px;height:112px;background:radial-gradient(ellipse,#e6c36b55 0%,#ecd39032 38%,#f1dfb317 60%,transparent 76%);pointer-events:none;animation:gap-beacon 3.8s ease-in-out infinite}
.gap-symbol{display:block;width:64px;height:64px;flex-shrink:0;fill:#f2d48a;stroke:#a57e32;stroke-width:1.1;filter:drop-shadow(0 0 9px #dfbd66a0);transition:scale .55s,filter .55s;animation:gap-appear 1.1s ease both}
.gap-symbol circle{fill:#fff8dd;stroke:none}
.author-entry-label{font-size:13px;line-height:25px;letter-spacing:.8px;color:#4d708d;white-space:nowrap;background:#fffaf0e8;padding:0 6px;border-bottom:1px solid #c9a85b88;border-radius:3px;animation:gap-label .8s ease both}
.author-entry-label span{display:inline-block;font-size:10px;transition:translate .4s}
.gap-invitation{position:absolute;bottom:calc(100% + 5px);font-size:10px;line-height:1.8;letter-spacing:.5px;white-space:nowrap;color:#8094a2;opacity:0;translate:0 4px;transition:opacity .4s,translate .4s;pointer-events:none}
.author-entry:hover .gap-symbol,.author-entry:focus-visible .gap-symbol{scale:1.15;filter:drop-shadow(0 0 8px #d9ba6f88)}
.author-entry:is(:hover,:focus-visible) .gap-invitation{opacity:1;translate:0 0}
.author-entry:is(:hover,:focus-visible) .author-entry-label span{translate:2px -2px}
.author-entry:focus-visible{outline:1px dashed #bca577;outline-offset:3px;border-radius:40%}
/* 02 · 轨道真正缺失的六段由金色光桥接续，粒子从不同方向聚向同一组投影点。 */
.author-gap-bridge{fill:none;stroke-linecap:round;stroke-linejoin:round;pointer-events:none}
.gap-halo{stroke:#dfb952;stroke-width:14;opacity:.32;filter:blur(3px)}
.gap-trace{stroke:#b78b30;stroke-width:3.4;stroke-dasharray:1;stroke-dashoffset:0;animation:gap-connect 2s ease both;transition:translate .55s}
.gap-core-line{stroke:#fff0bd;stroke-width:.9;opacity:.8;transition:translate .55s}
.gap-echo{stroke:#d2b76e;stroke-width:.8;opacity:0;transition:translate .55s,opacity .55s}
.gap-dust{fill:#d5b365;stroke:none;animation:gap-gather 1.6s cubic-bezier(.2,.7,.25,1) both;animation-delay:var(--gather-delay)}
/* 03 · 靠近时光桥上下分开，形成可以走进去的一小段留白；轨道由控制器暂缓。 */
.gap-inspecting :is(.gap-trace,.gap-core-line){translate:0 -4px}.gap-inspecting .gap-echo{translate:0 5px;opacity:.65}
@keyframes gap-connect{0%,24%{stroke-dashoffset:1;opacity:0}45%{opacity:.6}100%{stroke-dashoffset:0;opacity:1}}
@keyframes gap-gather{from{transform:translate(var(--gather-x),var(--gather-y)) scale(.2);opacity:0}45%{opacity:.8}to{transform:translate(0,0) scale(1);opacity:1}}
@keyframes gap-appear{0%{opacity:.75;scale:.85}65%{opacity:1;scale:1.12}100%{opacity:1;scale:1}}
@keyframes gap-label{from{opacity:.65}to{opacity:1}}
@keyframes gap-beacon{0%,100%{opacity:.65;scale:.95}50%{opacity:1;scale:1.12}}
@media(max-width:700px){.author-entry{width:94px}.author-entry-label{font-size:11px;letter-spacing:.3px}.gap-invitation{font-size:8px;letter-spacing:0}.author-entry:before{width:120px}}
/* 减少动画时直接显示接好的光桥，保留聚光后的静态星点。 */
.reduce-motion :is(.gap-symbol,.author-entry-label,.gap-trace,.gap-dust),.gap-reduce-motion :is(.gap-symbol,.author-entry-label,.gap-trace,.gap-dust){animation:none}
.reduce-motion :is(.gap-symbol,.gap-invitation,.gap-trace,.gap-core-line,.gap-echo){transition:none}
.reduce-motion .author-entry:before,.gap-reduce-motion .author-entry:before{animation:none}
@media(prefers-reduced-motion:reduce){.gap-symbol,.author-entry-label,.gap-trace,.gap-dust,.author-entry:before{animation:none}.gap-symbol,.gap-invitation,.gap-trace,.gap-core-line,.gap-echo{transition:none}}
