/*
  Base — Reset + App Shell
  ─────────────────────────
*/

/* ── Reset ─────────────────────────────────────── */
*, *::before, *::after {
  margin: 0;
  padding: 0;
  box-sizing: border-box;
  -webkit-tap-highlight-color: transparent;
}

html {
  height: 100%;
  overscroll-behavior: none;
}

body {
  font-family: var(--font-family);
  background-color: var(--bg-base);
  height: 100%;
  min-height: 100dvh;
  overflow: hidden;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

button {
  border: none;
  background: none;
  cursor: pointer;
  font-family: inherit;
}

img, svg {
  display: block;
}

/* ── App container ──────────────────────────────────
   Full-viewport shell. No max-width — fills the screen
   at every size. BG declared in bg.css on this selector.
*/
.app {
  width: 100%;
  height: 100dvh;
  display: flex;
  flex-direction: column;
  position: relative;
  overflow: hidden;
}

/* ── Content container ──────────────────────────────
   Used by every section/component to constrain readable
   width and add fluid horizontal padding.
   Fluid padding: 16px (mobile) → 48px (large desktop).
   Max-width cap prevents content stretching too wide.
*/
.container {
  width: 100%;
  padding-left:  var(--container-px);
  padding-right: var(--container-px);
  margin-left:  auto;
  margin-right: auto;
  max-width: var(--container-max);
}
