/*
 * VidPost Reset
 * Minimal normalization on top of Tailwind/Basecoat reset.
 * -------------------------------------------------------- */

*,
*::before,
*::after {
    box-sizing: border-box;
    -webkit-tap-highlight-color: transparent;
}

html,
body {
    margin: 0;
    padding: 0;
    height: 100%;
    /* Use dvh so mobile chrome/safari bottom bar doesn't cause jumps */
    min-height: 100dvh;
    background-color: hsl(var(--background));
    color: hsl(var(--foreground));
    font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;
    -webkit-font-smoothing: antialiased;
    overscroll-behavior: none;
}

/* Disable pull-to-refresh globally — video swipe owns vertical scroll */
body {
    overscroll-behavior-y: contain;
}

/* Remove default button styles */
button {
    cursor: pointer;
    background: none;
    border: none;
    padding: 0;
    color: inherit;
    font: inherit;
}

/* Remove default list styles */
ul,
ol {
    list-style: none;
    margin: 0;
    padding: 0;
}

/* Image / video defaults */
img,
video {
    display: block;
    max-width: 100%;
}

/* Focus ring — visible only for keyboard */
:focus-visible {
    outline: 2px solid hsl(var(--ring));
    outline-offset: 2px;
}

:focus:not(:focus-visible) {
    outline: none;
}

/* Prevent text selection during swipe gestures */
.no-select {
    user-select: none;
    -webkit-user-select: none;
}