*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; overscroll-behavior-y: none; } /* niente refresh nativo di Chrome né rimbalzo: il Pull To Refresh è gestito dall'app (js/ui/ptr.js) */
body { margin: 0; background: radial-gradient(1200px 500px at 50% -10%, #2a2118 0%, var(--bg) 60%) fixed, var(--bg); color: var(--text); font: var(--fs-md)/var(--lh) var(--font); min-height: 100dvh; -webkit-font-smoothing: antialiased; overscroll-behavior-y: none; }
h1, h2, h3 { margin: 0; line-height: 1.2; letter-spacing: -.01em; }
h1 { font-size: var(--fs-xl); } h2 { font-size: var(--fs-lg); } h3 { font-size: var(--fs-md); }
p { margin: 0 0 var(--s3); } a { color: var(--gold-2); }
button, input, select, textarea { font: inherit; color: inherit; }
button { cursor: pointer; }
:focus-visible { outline: 2px solid var(--gold-2); outline-offset: 2px; box-shadow: var(--ring); border-radius: var(--r-sm); }
.sr-only { position: absolute; width: 1px; height: 1px; margin: -1px; padding: 0; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0; }
.skip { position: absolute; left: -999px; top: 8px; background: var(--gold); color: var(--gold-ink); padding: 12px 14px; min-height: 44px; border-radius: var(--r-sm); z-index: 100; }
.skip:focus { left: 8px; }
[hidden] { display: none !important; }
.muted { color: var(--muted); } .small { font-size: var(--fs-sm); } .xs { font-size: var(--fs-xs); }
.row { display: flex; align-items: center; gap: var(--s3); } .row.between { justify-content: space-between; } .row.wrap { flex-wrap: wrap; }
.stack { display: grid; gap: var(--s3); } .stack-lg { display: grid; gap: var(--s5); }
.grow { flex: 1; min-width: 0; }
.ic { flex: none; }
@media (prefers-reduced-motion: no-preference) {
  .view { animation: rise var(--t-med) var(--ease) backwards; }
  @keyframes rise { from { opacity: 0; transform: translateY(8px); } to { opacity: 1; transform: none; } }
}
@media (prefers-reduced-motion: reduce) { *, *::before, *::after { animation-duration: 1ms !important; animation-iteration-count: 1 !important; transition-duration: 1ms !important; scroll-behavior: auto !important; } }
