.button { display:inline-flex; align-items:center; justify-content:center; gap:10px; min-height:48px; padding:14px 22px; border:1px solid transparent; border-radius:999px; transition:transform .3s var(--ease-spring),background .3s,color .3s,border-color .3s,box-shadow .3s; position:relative; overflow:hidden; }
.button::before { content:""; position:absolute; inset:-20% auto -20% -40%; width:24%; background:rgba(255,255,255,.35); transform:skewX(-18deg); opacity:0; }
.button:hover::before { opacity:1; animation:shimmer .9s ease; }
.button:hover { transform:translateY(-3px); }
.button--gold { background:var(--gold); color:#111; border-color:var(--gold); box-shadow:0 12px 35px rgba(211,166,78,.18); }
.button--gold:hover { background:var(--gold-bright); border-color:var(--gold-bright); box-shadow:0 16px 45px rgba(211,166,78,.28); }
.button--outline { border-color:rgba(242,213,142,.5); color:var(--ivory); background:rgba(8,10,10,.26); }
.button--outline:hover { color:var(--gold-bright); border-color:var(--gold); background:rgba(211,166,78,.06); }
.button--dark { background:var(--obsidian); color:var(--ivory); border-color:rgba(211,166,78,.25); }
.button--disabled { opacity:.58; cursor:not-allowed; pointer-events:none; }
.text-link { display:inline-flex; align-items:center; gap:12px; color:var(--gold-deep); font-weight:700; text-transform:uppercase; letter-spacing:.12em; font-size:.75rem; }
.text-link::after { content:"→"; transition:transform .3s; }
.text-link:hover::after { transform:translateX(5px); }
