/* 종이·잉크 위에 덧입히는 오늘의 색. 기존 그림의 분홍·청록·황갈에서 명도만 조절한다.
   하늘/인물 컷아웃과 사진 뷰어의 고정 어두운 팔레트는 그대로 둔다. */
:root[data-event]:not(.memo) {
  --text-3: #616b70;
  --event-ink: var(--accent);
  --event-wash: color-mix(in srgb, var(--accent) 7%, var(--surface));
}
:root[data-event="rose"]:not(.memo) {
  --bg: #f4f1f3; --surface: #fffafb; --surface-2: #efe9ec;
  --accent: #93434b; --btn-ink: #fff; --border: #decfd4;
}
:root[data-event="bouquet"]:not(.memo) {
  --bg: #eff4f2; --surface: #f9fdfb; --surface-2: #e6eeeb;
  --accent: #365f5c; --btn-ink: #fff; --border: #cbdcd5;
}
:root[data-event="gold"]:not(.memo) {
  --bg: #f5f3ee; --surface: #fffdf8; --surface-2: #eeeae2;
  --accent: #79592f; --btn-ink: #fff; --border: #ded4c3;
}
:root[data-event][data-theme="dark"]:not(.memo) { --text-3: #a1aaaf; }
:root[data-event="rose"][data-theme="dark"]:not(.memo) {
  --bg: #211a20; --surface: #2a2128; --surface-2: #342a31;
  --accent: #f0a5aa; --btn-ink: #211a20; --border: #513b45;
}
:root[data-event="bouquet"][data-theme="dark"]:not(.memo) {
  --bg: #151f1e; --surface: #1c2927; --surface-2: #253330;
  --accent: #a2c8b9; --btn-ink: #151f1e; --border: #384e47;
}
:root[data-event="gold"][data-theme="dark"]:not(.memo) {
  --bg: #211d17; --surface: #2a251e; --surface-2: #352f25;
  --accent: #e6c18d; --btn-ink: #211d17; --border: #514534;
}
@media (prefers-color-scheme: dark) {
  :root[data-event]:not([data-theme="light"]):not(.memo) { --text-3: #a1aaaf; }
  :root[data-event="rose"]:not([data-theme="light"]):not(.memo) {
    --bg: #211a20; --surface: #2a2128; --surface-2: #342a31;
    --accent: #f0a5aa; --btn-ink: #211a20; --border: #513b45;
  }
  :root[data-event="bouquet"]:not([data-theme="light"]):not(.memo) {
    --bg: #151f1e; --surface: #1c2927; --surface-2: #253330;
    --accent: #a2c8b9; --btn-ink: #151f1e; --border: #384e47;
  }
  :root[data-event="gold"]:not([data-theme="light"]):not(.memo) {
    --bg: #211d17; --surface: #2a251e; --surface-2: #352f25;
    --accent: #e6c18d; --btn-ink: #211d17; --border: #514534;
  }
}
.event-badge { display: inline-flex; align-items: center; gap: 3px; color: var(--accent); font-size: calc(12px * var(--fs)); white-space: nowrap; }
.event-badge img { width: 34px; height: 30px; object-fit: contain; }
.event-banner {
  display: flex; align-items: center; gap: 22px; padding: 20px 28px;
  margin-bottom: var(--gap); border: 1px solid var(--border); border-radius: var(--radius);
  background: linear-gradient(115deg, var(--event-wash), var(--surface));
}
.event-banner img { width: 144px; height: 106px; object-fit: contain; flex-shrink: 0; }
.event-banner small { display: block; color: var(--accent); font-size: calc(12px * var(--fs)); letter-spacing: .04em; }
.event-banner strong { display: block; font-size: calc(25px * var(--fs)); font-weight: 650; margin-top: 3px; letter-spacing: -.035em; }
.event-banner p { margin: 5px 0 0; color: var(--text-2); font-size: calc(13px * var(--fs)); }
html.memo .event-banner, html.memo .event-badge, html.memo .event-sparkles { display: none; }
.cv-cell.event-day { box-shadow: inset 0 -2px color-mix(in srgb, var(--accent) 42%, transparent); }
:root[data-event] .cv-ann:not(.hol) { color: var(--accent); }
.event-sparkles { position: fixed; inset: 0; z-index: 45; pointer-events: none; overflow: hidden; }
.event-sparkles i { position: absolute; top: 12%; left: var(--x); width: 6px; height: 10px; border-radius: 2px;
  background: var(--accent); animation: event-fall 1.8s var(--delay) ease-out both; }
.event-sparkles i:nth-child(3n) { background: var(--b); width: 7px; height: 7px; border-radius: 50%; }
.event-sparkles i:nth-child(3n + 1) { background: var(--warn); }
@keyframes event-fall {
  0% { opacity: 0; transform: translateY(-24px) rotate(0); }
  15% { opacity: .8; }
  100% { opacity: 0; transform: translateY(180px) rotate(var(--turn)); }
}
@media (max-width: 600px) {
  .event-banner { padding: 14px; gap: 12px; }
  .event-banner img { width: 82px; height: 88px; }
  .event-banner strong { font-size: calc(21px * var(--fs)); }
  .event-banner p { font-size: calc(12px * var(--fs)); }
  .event-preview-row .more-side { grid-column: 1 / -1; grid-row: 3; margin-top: 9px; }
  .event-preview-row select { width: 100%; max-width: none; }
  .event-badge { max-width: 135px; }
  .event-badge span { overflow: hidden; text-overflow: ellipsis; }
}
@media (prefers-reduced-motion: reduce) { .event-sparkles { display: none; } .event-sparkles i { animation: none; } }

.event-preview-controls { display:flex; flex-wrap:wrap; align-items:center; gap:8px; }
.event-preview-controls select { min-width:0; }
.event-dialog { box-sizing:border-box; width:min(420px,calc(100vw - 32px)); max-height:calc(100dvh - 32px); overflow:auto; padding:30px 24px 24px; border:1px solid var(--border); border-radius:26px; color:var(--text); background:var(--surface); text-align:center; box-shadow:0 20px 80px #0004; }
.event-dialog::backdrop { background:#10182099; }
.event-dialog-close { position:absolute; right:8px; top:6px; width:44px; height:44px; border:0; background:transparent; color:var(--text-2); font-size:28px; cursor:pointer; }
.event-dialog-kicker { margin:10px 0 6px; color:var(--accent); font-size:13px; }
.event-dialog-art { position:relative; margin:0 auto; width:100%; max-width:320px; aspect-ratio:3/2; }
.event-dialog-art>img:first-child { width:100%; height:100%; object-fit:contain; }
.event-dialog h2 { font-size:clamp(20px,5vw,26px); line-height:1.45; margin:12px 0; letter-spacing:-.04em; }
.event-dialog #event-dialog-note { white-space:pre-line; font-size:14px; line-height:1.85; color:var(--text-2); margin:0 0 20px; }
.event-dialog>.btn { min-height:44px; width:100%; }
.event-dialog :focus-visible { outline:3px solid var(--accent); outline-offset:3px; }
.event-dialog-star { position:absolute; width:24px; height:24px; left:calc(3% + var(--i)*29%); top:10%; animation:event-dialog-twinkle 1.8s ease-out both; }
@keyframes event-dialog-twinkle { 0%,100% { opacity:0; transform:scale(.6); } 35% { opacity:1; transform:scale(1.1) rotate(12deg); } }
html.memo .event-dialog { display:none; }
@media(prefers-reduced-motion:reduce) { .event-dialog-star { animation:none; display:none; } }

.event-dialog-star:nth-child(odd) { top:70%; }
