/* Light, depth and motion, with a quiet version for reduced motion. */
.scroll-progress{position:fixed;inset:0 0 auto;height:2px;background:linear-gradient(90deg,#75d7de,var(--lime));transform:scaleX(0);transform-origin:left;z-index:60;pointer-events:none;box-shadow:0 0 12px #b7ff6260}
.header{position:fixed;transition:height .3s,background .3s,box-shadow .3s;z-index:30}
.header.scrolled{height:72px;background:#080e14e8;backdrop-filter:blur(20px);box-shadow:0 12px 40px #0003}
.header nav a{position:relative;transition:color .2s}
.header nav a:after{content:'';position:absolute;bottom:-10px;left:0;right:0;height:1px;background:var(--lime);transform:scaleX(0);transform-origin:left;transition:transform .3s}
.header nav a:hover:after,.header nav a[aria-current]:after{transform:scaleX(1)}
.header nav a[aria-current]{color:var(--lime)}
.hero-aurora{position:absolute;inset:0;z-index:-3;overflow:hidden;pointer-events:none}
.hero-aurora i{position:absolute;right:-10%;top:5%;width:75%;height:70%;background:radial-gradient(ellipse,#1c819332,transparent 65%);filter:blur(45px);animation:aurora-drift 18s ease-in-out infinite alternate}
.hero-aurora i:last-child{right:30%;top:40%;width:60%;background:radial-gradient(ellipse,#87c74518,transparent 65%);animation-delay:-9s}
@keyframes aurora-drift{to{transform:translate(-6%,8%) rotate(12deg) scale(1.15)}}
.callsign{background:linear-gradient(125deg,#fff 10%,#e8f1f4 45%,#84afba 95%);background-clip:text;color:transparent}
.callsign>span{color:var(--lime);text-shadow:0 0 45px #b7ff6240}
.hero-copy{animation:hero-enter 1s ease-out both}
@keyframes hero-enter{from{opacity:0;transform:translateY(20px)}to{opacity:1;transform:none}}
.button{position:relative;overflow:hidden;border-radius:6px;transition:box-shadow .3s,background .3s,transform .3s}
.button:before{content:'';position:absolute;inset:-50%;background:linear-gradient(110deg,transparent 40%,#ffffff60 50%,transparent 60%);transform:translateX(-100%);transition:transform .65s;pointer-events:none}
.button:hover:before{transform:translateX(100%)}
.button span,.text-link span{transition:transform .3s}
.button:hover span,.text-link:hover span{transform:translate(3px,-3px)}
.hero-bottom>a>span{animation:scroll-hint 2.5s ease-in-out infinite}
@keyframes scroll-hint{50%{transform:translateY(6px)}}
.ticker{background:linear-gradient(90deg,#0c151d,#162722,#0c151d);border-top:1px solid #b7ff621a}
.topic-card,.personal-project,.identity-card,.spectrum-panel{border-radius:14px;box-shadow:0 14px 50px #0002}
.topic-card,.personal-project,.identity-card{position:relative;isolation:isolate;transition:border-color .35s,box-shadow .35s,transform .35s}
.topic-card:after,.personal-project:after,.identity-card:after{content:'';position:absolute;inset:0;z-index:-1;pointer-events:none;background:radial-gradient(380px circle at var(--light-x,50%) var(--light-y,0%),#b7ff6216,transparent 70%);opacity:0;transition:opacity .35s}
.topic-card:hover:after,.personal-project:hover:after,.identity-card:hover:after{opacity:1}
.personal-project:hover,.identity-card:hover{border-color:#b7ff6245;box-shadow:0 20px 60px #0004}
.topic-card svg{transition:transform .5s,filter .5s}
.topic-card:hover svg{transform:translateY(-4px) rotate(-4deg);filter:drop-shadow(0 0 20px #b7ff6260)}
.identity-card:before{content:'';position:absolute;width:180px;height:180px;right:-100px;top:-100px;border:1px solid #b7ff6230;border-radius:50%;box-shadow:0 0 0 25px #b7ff6205,0 0 0 50px #b7ff6203;pointer-events:none}
.identity-monogram{color:#d8ecc9;text-shadow:0 0 45px #b7ff6215}
.about-tags span{transition:background .25s,border-color .25s,color .25s}
.about-tags span:hover{background:#b7ff620a;border-color:#b7ff6250;color:#d4e9c0}
.spectrum-panel{box-shadow:0 0 70px #4b9b8e08,0 20px 50px #0003}
.tuning-slider input{min-height:24px}
.tuning-slider input:focus-visible{outline:2px solid var(--lime);outline-offset:4px}
.radio-diagram{border-radius:14px;background:radial-gradient(ellipse at 50% 40%,#234b3430,transparent 70%),#0b171d}
.diagram-node{border-radius:8px;box-shadow:0 0 25px #b7ff6205}
.community-orbit:after{border-style:dashed;animation:orbit-turn 40s linear infinite}
@keyframes orbit-turn{to{transform:rotate(360deg)}}
.timeline-items article{position:relative;transition:background .3s}
.timeline-items article:hover{background:linear-gradient(90deg,#b7ff6205,transparent)}
.timeline-items time{color:#c3dea7}
.quote-section{isolation:isolate;background:radial-gradient(ellipse at 50% 120%,#32592755,transparent 70%),radial-gradient(ellipse at 0 0,#18475530,transparent 60%),#060c11}
.quote-section:after{content:'';position:absolute;left:50%;top:50%;width:min(80vw,800px);aspect-ratio:1;border:1px dashed #b7ff6214;border-radius:50%;z-index:-1;animation:quote-orbit 90s linear infinite;pointer-events:none}
@keyframes quote-orbit{from{transform:translate(-50%,-50%) rotate(0)}to{transform:translate(-50%,-50%) rotate(360deg)}}
.quote-section>p em{color:#ceeca9;text-shadow:0 0 40px #b7ff6218}
.faq details{transition:background .3s}
.faq details[open]{background:linear-gradient(90deg,#b7ff6205,transparent)}
.faq summary:hover{color:var(--lime)}
.closing{position:relative;overflow:hidden;border-radius:16px;box-shadow:0 20px 70px #0003}
.closing:before{content:'';position:absolute;right:-100px;top:-150px;width:380px;height:380px;border:1px solid #b7ff6218;border-radius:50%;box-shadow:0 0 0 40px #b7ff6204,0 0 0 80px #b7ff6203;pointer-events:none}
.closing>*{position:relative}
.contact-section{display:grid;grid-template-columns:1fr 1.2fr;gap:70px;border-top:1px solid var(--line)}
.contact-copy p{max-width:380px}.contact-copy .text-link{margin-top:20px;font-size:14px}
.contact-form{padding:32px;border:1px solid #b7ff6225;border-radius:14px;background:radial-gradient(ellipse at 100% 0,#244a3430,transparent 65%),#0b161f;display:grid;gap:22px;box-shadow:0 20px 50px #0003}
.contact-fields{display:grid;grid-template-columns:1fr 1fr;gap:20px}
.contact-form label{display:grid;gap:10px;font-size:12px;color:#c7d8df}
.contact-form input,.contact-form textarea{width:100%;min-width:0;border:1px solid #ffffff20;border-radius:6px;padding:14px;background:#070f17;color:var(--ink);font:14px/1.6 Arial,Helvetica,sans-serif;transition:border-color .2s,box-shadow .2s}
.contact-form textarea{resize:vertical;min-height:145px}.contact-form input::placeholder,.contact-form textarea::placeholder{color:#7d939f}
.contact-form input:focus,.contact-form textarea:focus{outline:2px solid #b7ff6280;outline-offset:2px;border-color:var(--lime);box-shadow:0 0 20px #b7ff6210}
.contact-help{margin:0;font-size:12px;color:#98afba}.contact-form .button{border:0;cursor:pointer;justify-self:start}.contact-help:empty{display:none}
.contact-trap{position:absolute;left:-10000px;width:1px;height:1px;overflow:hidden}.contact-form .button:disabled{opacity:.6;cursor:wait}
@media(max-width:900px){.contact-section{gap:35px;grid-template-columns:1fr}.contact-copy p{max-width:550px}}
@media(max-width:480px){.contact-form{padding:22px}.contact-fields{grid-template-columns:1fr}}
@media(max-width:720px){.hero{min-height:940px;padding-bottom:405px}}
.polish-reveal{transition:opacity .8s,transform .8s;transition-delay:var(--reveal-delay,0ms)}
.polish-reveal.pending{opacity:0;transform:translateY(24px)}
@media(max-width:720px){.header.scrolled{height:78px}.header nav{background:#0b1620f5;backdrop-filter:blur(20px)}.hero-aurora i{width:120%;filter:blur(25px)}.topic-card,.personal-project,.identity-card,.spectrum-panel{border-radius:10px}.closing{border-radius:12px}.ticker{gap:24px}.header nav a:after{bottom:-5px}}
@media(prefers-reduced-motion:reduce){.hero-copy,.hero-aurora i,.hero-bottom>a>span,.community-orbit:after,.quote-section:after{animation:none}.polish-reveal.pending{opacity:1;transform:none}.button:hover span,.text-link:hover span,.topic-card:hover svg{transform:none}}
