*,*::before,*::after{box-sizing:border-box;margin:0;padding:0;}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth;}
body{
  font-family:var(--f-body);font-size:15px;line-height:1.55;
  color:var(--text);background:var(--bg);background-image:var(--bg-grad);
  background-attachment:fixed;min-height:100vh;
  -webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;
  transition:background-color var(--dur) var(--ease),color var(--dur) var(--ease);
}
button{font:inherit;color:inherit;background:none;border:none;cursor:pointer;}
input,select,textarea{font:inherit;color:inherit;}
a{color:var(--accent);text-decoration:none;}
svg{display:block;}
::selection{background:var(--accent-glow);}

.mono{font-family:var(--f-mono);}
.cond{font-family:var(--f-display);}
.hidden{display:none !important;}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;}
.spacer{flex:1;}

::-webkit-scrollbar{width:10px;height:10px;}
::-webkit-scrollbar-track{background:transparent;}
::-webkit-scrollbar-thumb{background:var(--line);border-radius:99px;border:3px solid transparent;background-clip:content-box;}
::-webkit-scrollbar-thumb:hover{background:var(--faint);background-clip:content-box;}

@keyframes fadeUp{from{opacity:0;transform:translateY(10px);}to{opacity:1;transform:none;}}
@keyframes fadeIn{from{opacity:0;}to{opacity:1;}}
@keyframes pop{0%{transform:scale(.85);opacity:0;}60%{transform:scale(1.04);}100%{transform:scale(1);opacity:1;}}
@keyframes pulse{0%,100%{opacity:1;}50%{opacity:.35;}}
@keyframes shimmer{0%{background-position:-500px 0;}100%{background-position:500px 0;}}
@keyframes flipIn{from{opacity:0;transform:perspective(500px) rotateX(-40deg);transform-origin:top;}to{opacity:1;transform:none;}}
.anim-up{animation:fadeUp .45s var(--ease-out) backwards;}

@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.001ms !important;animation-iteration-count:1 !important;transition-duration:.001ms !important;}
  html{scroll-behavior:auto;}
}
