.ncl-app .ncl-celebration-controls {
  float: right;
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: flex-end;
  gap: 8px;
  margin: 0 0 12px 16px;
  max-width: 100%;
}
.ncl-app .ncl-celebration-button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 7px;
  min-height: 44px;
  padding: 10px 15px;
  border: 1px solid #e9c1d2;
  border-radius: 999px;
  background: #fff3f8;
  color: #9d315a;
  font: inherit;
  font-size: 12px;
  font-weight: 700;
  cursor: pointer;
  touch-action: manipulation;
}
.ncl-app .ncl-celebration-button:hover { background: #fce4ef; }
.ncl-app .ncl-celebration-button:active { background: #f6d3e3; }
.ncl-app .ncl-celebration-record-status { flex-basis: 100%; max-width: 260px; color: #9d315a; font-size: 11px; line-height: 1.6; }
.ncl-app .ncl-celebration-record-status:empty { display: none; }
.ncl-app .ncl-celebration-button:focus-visible,
.ncl-app .ncl-celebration-select:focus-visible { outline: 3px solid #b579a7; outline-offset: 3px; }
.ncl-app .ncl-celebration-select {
  width: auto;
  min-height: 44px;
  padding: 8px 26px 8px 10px;
  border: 1px solid #ddd8e1;
  border-radius: 10px;
  background: #fff;
  color: #67616d;
  font: inherit;
  font-size: 11px;
  cursor: pointer;
}
.ncl-app .ncl-detail-list article::after { content: ''; display: table; clear: both; }
.ncl-app .ncl-detail-list article > dl { clear: both; }
.ncl-celebration {
  position: fixed;
  inset: 0;
  z-index: 999999;
  overflow: hidden;
  pointer-events: none;
}
.ncl-celebration canvas { position: absolute; inset: 0; width: 100%; height: 100%; }
.ncl-celebration-message {
  position: absolute;
  top: 23%;
  left: 50%;
  width: max-content;
  max-width: calc(100% - 48px);
  box-sizing: border-box;
  padding: 18px 34px;
  border: 1px solid #eedde7;
  border-radius: 999px;
  background: #fff9fceF;
  box-shadow: 0 12px 60px #b46f9b20;
  color: #a44670;
  font: 800 clamp(21px, 4vw, 34px)/1.4 -apple-system, BlinkMacSystemFont, 'Hiragino Sans', 'Yu Gothic', sans-serif;
  letter-spacing: .12em;
  text-align: center;
  transform: translateX(-50%);
  animation: ncl-congratulations-message 4.2s both;
}
.ncl-celebration--gold .ncl-celebration-message { background: #fffaf0ef; border-color: #ebd4a6; color: #9e722b; box-shadow: 0 12px 60px #c4a05b24; }
.ncl-celebration--ribbon .ncl-celebration-message { background: #faf8ffef; color: #7f68ad; border-color: #e2d7f0; }
@keyframes ncl-congratulations-message {
  0% { opacity: 0; transform: translate(-50%, 12px) scale(.9); }
  12%, 68% { opacity: 1; transform: translate(-50%, 0) scale(1); }
  100% { opacity: 0; transform: translate(-50%, -10px) scale(1); }
}
.ncl-celebration--still .ncl-celebration-message { animation: none; top: 28%; }
@media (max-width: 640px) {
  .ncl-app .ncl-celebration-controls { float: none; margin: 0 0 16px; gap: 6px; }
  .ncl-app .ncl-celebration-button { padding: 10px 12px; font-size: 11px; }
  .ncl-app .ncl-celebration-select { font-size: 10px; }
  .ncl-celebration-message { padding: 15px 24px; }
}
@media (prefers-reduced-motion: reduce) {
  .ncl-celebration-message { animation: none; }
}
