body{font-family:'Inter',system-ui,sans-serif;background:#FBF8F0;color:#0A1F3D;-webkit-font-smoothing:antialiased;padding-bottom:80px}
@media(min-width:768px){body{padding-bottom:72px}}
.serif{font-family:'Fraunces',Georgia,serif;font-variation-settings:"opsz" 144,"SOFT" 30}
.italic-display{font-style:italic;font-variation-settings:"opsz" 144,"SOFT" 100,"WONK" 1}
.mono{font-family:'JetBrains Mono',monospace}

.handle{font-family:'Fraunces',serif;font-weight:300;letter-spacing:-.04em;line-height:.92;font-variation-settings:"opsz" 144,"SOFT" 30}
.handle-at{font-style:italic;color:#F26A4B;font-variation-settings:"opsz" 144,"SOFT" 100,"WONK" 1;margin-right:-.05em}

.topbar{background:rgba(251,248,240,.85);backdrop-filter:blur(14px)}
.footer-fixed{background:rgba(10,31,61,.96);backdrop-filter:blur(14px)}

.tab-active{color:#0A1F3D !important;position:relative}
.tab-active::after{content:"";position:absolute;left:0;right:0;bottom:-18px;height:2px;background:#F26A4B}

.section-h{font-family:'Fraunces',serif;font-weight:400;font-size:clamp(28px,3vw,42px);line-height:1.05;letter-spacing:-.02em;font-variation-settings:"opsz" 96,"SOFT" 30}
.section-h em{font-style:italic;color:#F26A4B;font-variation-settings:"opsz" 96,"SOFT" 100,"WONK" 1}

.fade-enter{opacity:0;transform:translateY(8px)}
.fade-active{opacity:1;transform:translateY(0);transition:opacity .35s ease,transform .35s ease}

/* Carousel */
.carousel-track{transition:transform .5s cubic-bezier(.4,0,.2,1)}

/* Audio waveform bars */
.wave-bar{display:inline-block;width:3px;margin:0 1.5px;background:currentColor;border-radius:2px;opacity:.55;transition:transform .15s ease}
.wave-bar.playing{animation:pulse 1.2s ease-in-out infinite;opacity:1}
@keyframes pulse{0%,100%{transform:scaleY(.4)}50%{transform:scaleY(1)}}

/* Map pulse */
.pin-pulse{animation:ping 2.4s ease-out infinite}
@keyframes ping{0%{transform:scale(1);opacity:.7}80%,100%{transform:scale(2.6);opacity:0}}

/* Hide scrollbar on mobile species nav */
.no-scrollbar::-webkit-scrollbar{display:none}
.no-scrollbar{-ms-overflow-style:none;scrollbar-width:none}

@media(prefers-reduced-motion:reduce){
  .fade-active,.carousel-track{transition:none}
  .wave-bar.playing,.pin-pulse{animation:none}
}
