:root {
  --lcg-burgundy: #881119;
  --lcg-gold: #BF9B30;
  --lcg-black: #101010;
  --lcg-ivory: #F5F5F7;
}

html.lcg-open { overflow: hidden; }
html.lcg-pressing, html.lcg-pressing * {
  -webkit-user-select: none !important;
  user-select: none !important;
  -webkit-touch-callout: none !important;
}

.lcg-overlay, .lcg-overlay * { box-sizing: border-box; }

.lcg-overlay[hidden] { display: none !important; }
.lcg-overlay {
  position: fixed;
  inset: 0;
  z-index: 2147483000;
  display: grid;
  place-items: center;
  padding: 22px;
  background: rgba(0, 0, 0, .82);
  backdrop-filter: blur(6px);
  opacity: 0;
  transition: opacity .22s ease;
}
.lcg-overlay.is-visible { opacity: 1; }

.lcg-dialog {
  position: relative;
  display: grid;
  grid-template-columns: minmax(250px, .9fr) minmax(310px, 1.1fr);
  align-items: center;
  width: min(920px, 96vw);
  max-height: min(720px, 92vh);
  overflow: hidden;
  color: var(--lcg-ivory);
  border: 1px solid rgba(191, 155, 48, .7);
  border-radius: 22px;
  background:
    radial-gradient(circle at 13% 8%, rgba(136, 17, 25, .35), transparent 38%),
    linear-gradient(145deg, #1c1c1c, #090909 70%);
  box-shadow: 0 28px 90px rgba(0, 0, 0, .72), 0 0 0 5px rgba(136, 17, 25, .16);
  transform: translateY(12px) scale(.985);
  transition: transform .22s ease;
  font-family: inherit;
}
.lcg-overlay.is-visible .lcg-dialog { transform: translateY(0) scale(1); }

.lcg-dialog::before {
  content: '';
  position: absolute;
  inset: 0 auto 0 0;
  width: 7px;
  background: linear-gradient(var(--lcg-gold), var(--lcg-burgundy), var(--lcg-gold));
}

.lcg-art-wrap {
  align-self: end;
  min-height: 470px;
  display: flex;
  align-items: flex-end;
  justify-content: center;
  height: 100%;
  padding: 30px 0 18px 18px;
  background: radial-gradient(ellipse at 50% 100%, rgba(191,155,48,.12), transparent 62%);
}
.lcg-art {
  display: block;
  width: auto;
  max-width: 100%;
  height: auto;
  max-height: min(622px, calc(92vh - 54px));
  object-fit: contain;
  object-position: center bottom;
}

.lcg-copy { min-width: 0; padding: 62px 52px 58px 34px; }
.lcg-mark { margin-bottom: 18px; color: var(--lcg-gold); font-size: 12px; font-weight: 800; letter-spacing: .28em; }
.lcg-copy .lcg-title { margin: 0 0 18px; color: #fff; font-size: clamp(27px, 3.6vw, 44px); line-height: 1.08; white-space: normal; overflow-wrap: anywhere; }
.lcg-copy p { margin: 0 0 30px; color: #dedee2; font-size: clamp(17px, 2vw, 21px); line-height: 1.55; white-space: normal; overflow-wrap: anywhere; }
.lcg-accept {
  border: 1px solid var(--lcg-gold);
  border-radius: 999px;
  padding: 14px 24px;
  color: #fff;
  background: var(--lcg-burgundy);
  box-shadow: 0 9px 26px rgba(136, 17, 25, .34);
  font: inherit;
  font-weight: 750;
  max-width: 100%;
  white-space: normal;
  overflow-wrap: anywhere;
  line-height: 1.25;
  text-align: center;
  cursor: pointer;
  transition: transform .16s ease, background .16s ease;
}
.lcg-accept:hover { transform: translateY(-2px); background: #a0141e; }
.lcg-accept:focus-visible { outline: 3px solid #fff; outline-offset: 3px; }

@media (max-width: 720px) {
  .lcg-overlay { padding: 12px; }
  .lcg-dialog { grid-template-columns: 1fr; width: min(470px, 94vw); max-height: 88vh; overflow-y: auto; }
  .lcg-art-wrap { min-height: 190px; height: 31vh; padding: 18px 42px 8px; }
  .lcg-art { width: 100%; max-height: 100%; }
  .lcg-copy { width: 100%; min-width: 0; padding: 22px 24px 28px; text-align: center; overflow: hidden; }
  .lcg-mark { margin-bottom: 11px; }
  .lcg-copy .lcg-title { margin-bottom: 12px; font-size: clamp(25px, 8vw, 34px); line-height: 1.12; }
  .lcg-copy p { margin-bottom: 19px; font-size: 17px; line-height: 1.42; }
  .lcg-accept { display: block; width: 100% !important; min-width: 0 !important; margin: 0 !important; padding: 13px 16px !important; font-size: 15px !important; letter-spacing: .02em !important; white-space: normal !important; }
  .lcg-dialog .lcg-accept {
    border: 2px solid var(--lcg-gold) !important;
    border-radius: 12px !important;
    background: var(--lcg-burgundy) !important;
    box-shadow:
      inset 0 0 0 3px #fff,
      0 7px 18px rgba(136, 17, 25, .3) !important;
    padding: 15px 19px !important;
  }
}

@media (prefers-reduced-motion: reduce) {
  .lcg-overlay, .lcg-dialog, .lcg-accept { transition: none; }
}
