/* ============ reset.css ============ */
*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
html, body { height: 100%; width: 100%; overflow: hidden; }
body {
  font-family: "Outfit", system-ui, sans-serif;
  -webkit-font-smoothing: antialiased;
  user-select: none;
  background: #000;
}
img { display: block; max-width: 100%; }
button { font-family: inherit; border: none; background: none; cursor: pointer; color: inherit; }
input, textarea { font-family: inherit; }
.hidden { display: none !important; }
.mono { font-family: "JetBrains Mono", monospace; }
::-webkit-scrollbar { width: 10px; height: 10px; }
::-webkit-scrollbar-thumb { background: var(--scroll-thumb); border-radius: 6px; border: 2px solid transparent; background-clip: padding-box; }
::-webkit-scrollbar-thumb:hover { background: var(--scroll-thumb-hover); background-clip: padding-box; border: 2px solid transparent; }
::-webkit-scrollbar-track { background: transparent; }

/* ---- Icon system ---- */
.ico { display: inline-flex; align-items: center; justify-content: center; line-height: 0; }
.ico svg, .ico img { display: block; width: 100%; height: 100%; }
.ico.glyph { width: 18px; height: 18px; color: currentColor; }
.ico.app-ico { width: 100%; height: 100%; }
.ico.file-ico { width: 100%; height: 100%; }
/* 3D app/file icons (png) get a soft shadow for depth */
.app-ico img, .file-ico img { filter: drop-shadow(0 2px 5px rgba(0,0,0,0.3)); }
.app-ico svg, .file-ico svg { filter: drop-shadow(0 2px 4px rgba(0,0,0,0.25)); }
img.os-icon { -webkit-user-drag: none; user-select: none; }
