/* 축제 1단계(D13 — features/festival festival.js): 목공소 창 축제 띠 30 · 축제 제작법 카드 띠 · 눈송이 말풍선(건설 말풍선 .skb-bub 그대로 + 푸른 빛) */
:root { --ic-snowflake: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round'%3E%3Cpath d='M12 2v20M3.3 7l17.4 10M3.3 17L20.7 7M9 3.5l3 2.5 3-2.5M9 20.5l3-2.5 3 2.5M3.6 10.6l3.7-.6-1.3-3.6M20.4 13.4l-3.7.6 1.3 3.6M3.6 13.4l3.7.6-1.3 3.6M20.4 10.6l-3.7-.6 1.3-3.6'/%3E%3C/svg%3E"); }
#ui .skw .fest-band { flex: none; display: flex; align-items: center; gap: 6px; height: 30px; padding: 0 10px 0 8px; border-radius: 15px; color: #fff; white-space: nowrap; overflow: hidden;
  background: linear-gradient(90deg, rgba(70, 120, 190, .62), rgba(30, 50, 90, .5)); box-shadow: inset 0 0 0 1px rgba(200, 230, 255, .35); animation: fest-in .32s cubic-bezier(.3, 1.6, .5, 1) backwards; }
#ui .skw .fest-band .fest-ic { flex: none; width: 16px; height: 16px; background: #fff; -webkit-mask: var(--ic-snowflake) center / contain no-repeat; mask: var(--ic-snowflake) center / contain no-repeat; }
#ui .skw .fest-band b { font-size: 13px; font-weight: 800; }
#ui .skw .fest-band em { font-style: normal; font-size: 12.5px; font-weight: 800; color: #ffe27a; }
#ui .skw .skq-rc:has(.fest-tag) { position: relative; }
#ui .skw .fest-tag { position: absolute; right: 8px; top: 4px; height: 16px; padding: 0 6px; border-radius: 8px; font: 800 10.5px/16px var(--ui-font); font-style: normal; color: #fff; white-space: nowrap;
  background: rgba(70, 130, 210, .88); box-shadow: inset 0 0 0 1px rgba(220, 240, 255, .4); pointer-events: none; }
#ui .skw .skq-rc.fest-off { opacity: .5; }
#ui .skw .skq-rc.fest-off .fest-tag { background: rgba(90, 90, 100, .9); }
#hud .skb-bub.fest { background: rgba(40, 80, 140, .82); box-shadow: inset 0 0 0 1px rgba(200, 230, 255, .5), 0 2px 5px rgba(0, 0, 0, .45); }
#hud .skb-bub.fest::after { border-top-color: rgba(40, 80, 140, .82); }
#hud .skb-bub.fest.off { opacity: .6; }
@keyframes fest-in { from { opacity: 0; transform: translateY(-6px); } }
