html { scroll-behavior:smooth; }
body { background:#0E0E11; color:#F2F0EA; }

/* hivatali rácstextúra + vignetta */
.reg-grid {
  background-image:
    linear-gradient(rgba(201,162,75,.05) 1px, transparent 1px),
    linear-gradient(90deg, rgba(201,162,75,.05) 1px, transparent 1px);
  background-size: 56px 56px;
  mask-image: radial-gradient(120% 90% at 50% 0%, #000 30%, transparent 80%);
}
.vignette { background:
  radial-gradient(90% 70% at 50% -10%, rgba(192,57,43,.16), transparent 55%),
  radial-gradient(80% 80% at 90% 30%, rgba(201,162,75,.10), transparent 60%); }
.scan { background-image: repeating-linear-gradient(to bottom, rgba(255,255,255,.018) 0 1px, transparent 1px 3px); }

/* hivatalos sarokjelek */
.ticks { position:relative; }
.ticks::before, .ticks::after { content:""; position:absolute; width:16px; height:16px; pointer-events:none; }
.ticks::before { top:8px; left:8px; border-top:2px solid #C9A24B; border-left:2px solid #C9A24B; }
.ticks::after  { bottom:8px; right:8px; border-bottom:2px solid #C9A24B; border-right:2px solid #C9A24B; }

/* kártya */
.card { background:linear-gradient(180deg,#1A1A21,#141419); border:1px solid #2B2B34; border-radius:14px;
  transition: transform .35s cubic-bezier(.2,.7,.2,1), border-color .35s, box-shadow .35s; }
.card:hover { transform:translateY(-6px); border-color:rgba(201,162,75,.55);
  box-shadow:0 26px 50px -24px rgba(0,0,0,.8), 0 0 0 1px rgba(201,162,75,.25); }

/* hivatalos bélyegző-chip */
.chip { font-family:Oswald,sans-serif; letter-spacing:.12em; text-transform:uppercase; font-size:11px;
  border:1px solid currentColor; border-radius:4px; padding:3px 8px; display:inline-flex; align-items:center; gap:6px; }

/* gomb */
.btn { font-family:Oswald,sans-serif; letter-spacing:.08em; text-transform:uppercase; transition:all .18s ease; }
.btn-seal { background:#C0392B; color:#F2F0EA; border:1px solid #E06b5e; box-shadow:0 6px 22px -8px rgba(192,57,43,.8); }
.btn-seal:hover { background:#aa3125; transform:translateY(-2px); }
.btn-ghost { border:1px solid #2B2B34; color:#F2F0EA; }
.btn-ghost:hover { border-color:#C9A24B; color:#fff; }

.tricolor { background:linear-gradient(90deg,#C0392B 0 33.3%, #ECE6D6 33.3% 66.6%, #3F7D52 66.6% 100%); }

/* mozgás */
.rise { opacity:0; transform:translateY(20px); animation:rise .9s cubic-bezier(.2,.7,.2,1) forwards; }
@keyframes rise { to { opacity:1; transform:none; } }
.reveal { opacity:0; transform:translateY(24px); transition:opacity .7s ease, transform .7s cubic-bezier(.2,.7,.2,1); }
.reveal.in { opacity:1; transform:none; }
.live::after { content:""; position:absolute; inset:-4px; border-radius:999px; border:1px solid currentColor; animation:ping 1.8s cubic-bezier(0,0,.2,1) infinite; }
@keyframes ping { 0%{transform:scale(.7);opacity:.9} 80%,100%{transform:scale(2.1);opacity:0} }

a:focus-visible, button:focus-visible { outline:3px solid #C9A24B; outline-offset:3px; border-radius:6px; }
::selection { background:#C0392B; color:#fff; }

@media (prefers-reduced-motion: reduce) {
  .rise,.reveal { opacity:1!important; transform:none!important; animation:none!important; transition:none!important; }
  .live::after { animation:none!important; }
  html { scroll-behavior:auto; }
}