/* =========================================================
   ANIMORI — design tokens & reset
   Единственный источник палитры/типографики всего сайта.
   Меняй переменные здесь — тема обновится везде.
   ========================================================= */
:root{
  /* surface */
  --bg:            #0b0b0d;
  --bg-panel:      #111114;
  --bg-raised:     #141417;
  --bg-hover:      #1a1a1f;
  --border:        #232328;
  --border-strong: #2c2c33;

  /* text */
  --text:          #f2f2f4;
  --text-dim:      #9a9aa2;
  --text-faint:    #6b6b74;

  /* brand */
  --accent1:       #7c5cff;
  --accent2:       #4a3dff;
  --accent-soft:   #19171f;
  --on-accent:     #ffffff;
  --gold:          #f5b93d;
  --ok:            #3ddc84;
  --danger:        #e5484d;

  /* shape */
  --radius:    10px;
  --radius-lg: 16px;
  --radius-xl: 18px;

  /* type */
  --font-sans:   "Inter","Segoe UI",system-ui,sans-serif;
  --font-display:"Unbounded","Inter",sans-serif;

  /* misc */
  --shadow-card: 0 18px 34px -14px rgba(0,0,0,.55);
  --shadow-pop:  0 20px 50px -18px rgba(0,0,0,.65);
  --sidebar-w:   224px;
  --sidebar-w-collapsed: 76px;

  /* motion */
  --t-fast: 150ms;
  --t-mid:  220ms;
  --ease:   cubic-bezier(.22,.61,.36,1);

  /* type scale */
  --ts-xs: 11px;  --ts-sm: 12.5px; --ts-md: 14px;
  --ts-lg: 17px;  --ts-xl: 24px;   --ts-2xl: 34px;
}

/* ---------- reset ---------- */
*,*::before,*::after{ box-sizing:border-box; margin:0; padding:0; }
html{ scroll-behavior:smooth; }
html,body{
  background:var(--bg);
  color:var(--text);
  font-family:var(--font-sans);
  -webkit-font-smoothing:antialiased;
  -moz-osx-font-smoothing:grayscale;
}
::selection{ background:var(--accent1); color:#fff; }
a{ color:inherit; text-decoration:none; }
button{ font-family:inherit; cursor:pointer; border:none; background:none; }
input,select,textarea{ font-family:inherit; }
img,svg{ display:block; }
h1,h2,h3,h4{ font-weight:600; line-height:1.15; }

/* accessibility: focus ring */
a:focus-visible,button:focus-visible,input:focus-visible,
select:focus-visible,textarea:focus-visible,.card:focus-visible{
  outline:2px solid var(--accent1);
  outline-offset:2px;
  border-radius:6px;
}
:focus:not(:focus-visible){ outline:none; }

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

::-webkit-scrollbar{ width:10px; height:10px; }
::-webkit-scrollbar-thumb{ background:#2b2b33; border-radius:6px; border:2px solid var(--bg); }
::-webkit-scrollbar-thumb:hover{ background:#3a3a44; }
::-webkit-scrollbar-track{ background:transparent; }

/* ---------- темы интерфейса (ключ user.cover) ---------- */
body[data-theme="ocean"]{ --accent1:#3d9bd6; --accent2:#1c5fa8; }
body[data-theme="sunset"]{ --accent1:#e0653a; --accent2:#a83a1c; }
body[data-theme="forest"]{ --accent1:#2bb673; --accent2:#0c6e42; }
body[data-theme="rose"]{ --accent1:#d64f7e; --accent2:#96254c; }
body[data-theme="gold"]{ --accent1:#d9a521; --accent2:#8a5f0e; }
body[data-theme="white"]{ --accent1:#dfe5ef; --accent2:#8b94a7; --on-accent:#14141a; }
body[data-theme="white"] ::selection{ color:#14141a; }

/* utility */
.visually_hidden{ position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(0 0 0 0); white-space:nowrap; }