/* Optional layer. Official raster files remain unmodified; no layout/effects when hidden. */
.festive-ribbon[hidden] { display:none !important; }
.festive-ribbon { position:relative; box-sizing:border-box; display:grid; grid-template-columns:100px minmax(0,600px)116px; align-items:center; justify-content:center; gap:1rem; margin:0; padding:.35rem 1rem; border-top:3px solid #a82032; border-bottom:3px solid #087b4a; background:#fff; color:#163d32; font:400 .875rem/1.45 system-ui,sans-serif; text-align:center; }
.festive-ribbon strong { color:#9b2030; font-weight:700; }
.festive-copy { display:grid; gap:.25rem; min-width:0; }
.festive-ribbon img { display:block; max-width:100%; width:100%; height:auto; object-fit:contain; }
.festive-burst { position:absolute; right:.3rem; top:.3rem; width:32px; height:32px; pointer-events:none; opacity:0; }
.festive-burst::before,.festive-burst::after { content:""; position:absolute; inset:5px; border:2px dashed #a97a15; border-radius:50%; opacity:0; }
.festive-burst.active { opacity:1; }
.festive-burst.active::before { animation:rayan-celebrate 1.8s ease-out 1 both; }
.festive-burst.active::after { animation:rayan-celebrate 1.8s .25s ease-out 1 both; border-color:#197b30; }
@keyframes rayan-celebrate { 0%{transform:scale(.1);opacity:0} 25%{opacity:.6} 100%{transform:scale(1.35);opacity:0} }
@media(max-width:480px) { .festive-ribbon { grid-template-columns:54px minmax(0,1fr)72px; gap:.4rem; padding:.5rem .6rem; } .festive-burst { display:none; } }
@media(prefers-reduced-motion:reduce) { .festive-burst.active::before,.festive-burst.active::after { animation:none; opacity:.25; transform:scale(.65); } }
