/* Starlight interactions; base black palette comes from style.css. */
.starlight-section{position:relative;isolation:isolate}.starlight-section:before{content:'';position:absolute;inset:0 -3%;z-index:-1;pointer-events:none;background:radial-gradient(170px circle at var(--star-x,50%) var(--star-y,45%),#8ab4ff28,transparent 72%);opacity:0;transition:opacity .55s}.starlight-section.star-hover:before{opacity:.8}.starlight-section.is-starlit:before{opacity:1;background:radial-gradient(220px circle at var(--star-x,50%) var(--star-y,45%),#87b2ff44,transparent 76%)}.starlight-section .project-visual,.starlight-section .about-portrait{transition:transform .3s ease-out;transform:perspective(1000px) rotateX(var(--star-tilt-x,0deg)) rotateY(var(--star-tilt-y,0deg))}.starlight-section.is-starlit .eyebrow{color:#e6f0ff;text-shadow:0 0 18px #9ac0ff88}.starlight-canvas{position:fixed;inset:0;width:100%;height:100%;pointer-events:none;z-index:8}
@media(max-width:640px){body{background-attachment:scroll}.starlight-section:before{inset:0}.starlight-section .project-visual,.starlight-section .about-portrait{transform:none}}
@media(prefers-reduced-motion:reduce){.starlight-canvas{display:none}.starlight-section:before{display:none}.starlight-section .project-visual,.starlight-section .about-portrait{transform:none;transition:none}}
.starlight-section{isolation:auto}.starlight-section .ip-project .project-visual{transform:none}.starlight-section .ip-project .ip-character{transform:perspective(1000px) rotateX(var(--star-tilt-x,0deg)) rotateY(var(--star-tilt-y,0deg))}.starlight-section .ip-project:hover .ip-character{transform:translateY(-8px) rotate(-2deg)}
@media(prefers-reduced-motion:reduce){.starlight-section .ip-project .ip-character,.starlight-section .ip-project:hover .ip-character{transform:none}}

.ip-project.is-selected .ip-character{filter:url(#ip-outline-glow)}.ip-project.is-selected .project-caption h3{color:#d9e8ff;text-shadow:0 0 12px #8fb6ff55}.ip-project.is-selected .ip-character{transition:transform .25s ease-out}
