*{ margin:0; padding:0; box-sizing:border-box; }
html{ scroll-behavior:smooth; -webkit-text-size-adjust:100%; }
@media (prefers-reduced-motion: reduce){
  html{ scroll-behavior:auto; }
  *,*::before,*::after{ animation-duration:0.001ms !important; animation-iteration-count:1 !important; transition-duration:0.001ms !important; scroll-behavior:auto !important; }
}
body{
  background:var(--bg);
  color:var(--text-primary);
  font-family:var(--font-body);
  font-size:14.5px;
  line-height:1.5;
  -webkit-font-smoothing:antialiased;
  min-height:100vh;
  transition:background var(--dur) var(--ease), color var(--dur) var(--ease);
}
img{ max-width:100%; display:block; }
a{ color:inherit; text-decoration:none; }
button{ font-family:inherit; cursor:pointer; }
input,select,textarea{ font-family:inherit; font-size:inherit; color:inherit; }
ul{ list-style:none; }
svg{ display:block; flex-shrink:0; }
::selection{ background:var(--accent-dim); color:var(--text-primary); }

h1,h2,h3,h4{ font-weight:600; letter-spacing:-0.01em; line-height:1.2; }
.mono{ font-family:var(--font-mono); font-variant-numeric:tabular-nums; }

.page-title{ font-size:26px; font-weight:700; letter-spacing:-0.02em; }
.section-title{ font-size:16px; font-weight:600; }
.text-secondary{ color:var(--text-secondary); }
.text-tertiary{ color:var(--text-tertiary); }
.text-positive{ color:var(--positive); }
.text-negative{ color:var(--negative); }

.visually-hidden{ position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(0 0 0 0); white-space:nowrap; }
.skip-link{ position:absolute; left:8px; top:-48px; background:var(--accent); color:#fff; padding:8px 14px; border-radius:8px; z-index:999; transition:top var(--dur); }
.skip-link:focus{ top:8px; }

:focus-visible{ outline:2px solid var(--accent); outline-offset:2px; border-radius:4px; }

.app-content{ animation:pageIn 420ms var(--ease) both; }
@keyframes pageIn{ from{ opacity:0; transform:translateY(6px); } to{ opacity:1; transform:translateY(0); } }

.lift-3d{ transition:transform var(--dur-slow) var(--ease), box-shadow var(--dur-slow) var(--ease); }
.lift-3d:hover{ transform:translateY(-4px); box-shadow:var(--shadow-3d-hover); }
.text-gradient{ background:var(--gradient-accent); -webkit-background-clip:text; background-clip:text; color:transparent; }

::-webkit-scrollbar{ width:10px; height:10px; }
::-webkit-scrollbar-track{ background:transparent; }
::-webkit-scrollbar-thumb{ background:var(--border-strong); border-radius:99px; }
::-webkit-scrollbar-thumb:hover{ background:var(--text-tertiary); }
