/* ── Minimal reset ───────────────────────────────── */
*, ::before, ::after { box-sizing: border-box; }

* {
  margin: 0; padding: 0;
  -webkit-touch-callout: none;
  -webkit-text-size-adjust: 100%;
  -webkit-tap-highlight-color: transparent;
  touch-action: manipulation;
}

html { scroll-behavior: smooth; }

body, html { height: 100%; }

ol[role=list], ul[role=list] { list-style: none; }

a { text-decoration: none !important; }

canvas, img, picture, svg, video {
  max-width: 100%;
  height: auto;
  vertical-align: middle;
  background-repeat: no-repeat;
  background-size: cover;
}

button, input, select, textarea { font: inherit; }

img { width: 100%; }

.hidden  { display: none  !important; }
.visible { display: flex  !important; }
