/* Minimal resets + shared primitives. Components style themselves from the tokens. */
*, *::before, *::after { box-sizing: border-box; }
body { margin: 0; font: var(--type-body); color: var(--text-body); background: var(--bg-page); -webkit-font-smoothing: antialiased; text-wrap: pretty; }
h1, h2, h3, h4 { margin: 0; font-family: var(--font-display); font-weight: var(--weight-black); line-height: var(--leading-tight); color: var(--text-heading); }
p { margin: 0; }
a { color: var(--text-link); text-decoration: none; transition: var(--transition-control); }
a:hover { color: var(--text-link-hover); }
a:focus-visible, button:focus-visible, input:focus-visible, select:focus-visible, [tabindex]:focus-visible { outline: var(--border-2) solid var(--focus-ring); outline-offset: 2px; }
:lang(bn), .px-bn { font: var(--type-bengali); }
.px-caps { text-transform: uppercase; letter-spacing: var(--tracking-caps); }
.px-italic-display { font-family: var(--font-display); font-weight: var(--weight-black); font-style: italic; }
@media (prefers-reduced-motion: reduce) { * { animation-duration: 0.01ms !important; transition-duration: 0.01ms !important; } }
