/* SEG Welcome Letter. Above public contact controls, removed after confirmation. */
html[data-age-state="pending"], html[data-age-state="pending"] body { overflow: hidden; }
html[data-age-state="pending"] #age-page-content { pointer-events: none; user-select: none; }
.age-gate {
  position: fixed; inset: 0; z-index: 10000; overflow-y: auto; overscroll-behavior: contain;
  display: flex; align-items: center; justify-content: center;
  padding: max(20px, env(safe-area-inset-top)) max(20px, env(safe-area-inset-right)) max(20px, env(safe-area-inset-bottom)) max(20px, env(safe-area-inset-left));
  background: rgba(241, 222, 230, .42); backdrop-filter: blur(6px); -webkit-backdrop-filter: blur(6px);
  color: #60263e; text-align: center;
}
html[data-age-state="accepted"] .age-gate { display: none; }
.age-gate-panel {
  width: min(100%, 490px); margin: auto; padding: 32px 28px 24px;
  border: 1px solid #dc7e9e; border-radius: 12px; background: #fffafb;
  box-shadow: 0 0 0 3px rgba(255, 250, 251, .85), 0 18px 60px rgba(95, 37, 59, .14);
}
.age-gate-symbol { display: block; margin: 0 auto 14px; }
.age-gate-brand { font: 500 29px/1.2 var(--font-beauty-serif), serif; letter-spacing: .12em; }
.age-gate-subtitle { margin: 6px 0 0; font-size: 10px; line-height: 1.6; letter-spacing: .35em; }
.age-gate-rule { width: 44px; height: 0; border: 0; border-top: 1px solid #d56d91; margin: 22px auto; }
.age-gate h2 { margin: 0; font: 500 32px/1.65 var(--font-beauty-serif), serif; letter-spacing: .04em; }
.age-gate h2 span { display: block; }
.age-gate-intro { margin: 18px 0 0; font: 400 17px/1.8 var(--font-beauty-serif), serif; }
.age-gate-rule-short { width: 28px; margin: 20px auto; }
.age-gate #age-description { margin: 0 0 18px; font-size: 13px; line-height: 1.8; color: #57404a; text-wrap: balance; }
.age-gate-actions { display: grid; gap: 10px; }
.age-gate-actions button, .age-gate-actions a { cursor: pointer; font-family: var(--font-beauty-serif), serif; }
.age-gate-accept {
  display: flex; align-items: center; justify-content: center; gap: 12px;
  width: 100%; min-height: 58px; padding: 14px 16px; border: 1px solid transparent; border-radius: 999px;
  color: #fff; background: #b73864; font-size: 18px; font-weight: 500; line-height: 1.5;
  box-shadow: 0 10px 24px rgba(183, 56, 100, .16);
}
.age-gate-accept img { flex: 0 0 18px; }
.age-gate-exit {
  display: flex; align-items: center; justify-content: center; justify-self: center;
  min-height: 44px; padding: 8px 14px; border-radius: 6px;
  color: #60263e; font-size: 14px; line-height: 1.5;
  text-decoration: underline; text-underline-offset: 4px;
}
.age-gate-accept:hover { background: #9c2d53; }
.age-gate-accept:active { background: #8c2649; }
.age-gate-exit:hover { background: #f9eaf0; }
.age-gate-actions :focus-visible { outline: 2px solid #60263e; outline-offset: 4px; }
.age-gate-memory { margin: 10px 0 0; color: #786570; font-size: 11px; line-height: 1.8; }
.age-gate-error { margin: 16px 0 0; color: #942a45; font-size: 13px; line-height: 1.7; }
.no-js .age-gate-accept { display: none; }
@supports not ((backdrop-filter: blur(6px)) or (-webkit-backdrop-filter: blur(6px))) {
  .age-gate { background: rgba(241, 222, 230, .65); }
}
@media (max-width: 540px) {
  .age-gate { padding: max(16px, env(safe-area-inset-top)) 22px max(16px, env(safe-area-inset-bottom)); }
  .age-gate-panel { max-width: 360px; padding: 24px 15px 18px; }
  .age-gate-brand { font-size: 24px; }
  .age-gate h2 { font-size: clamp(22px, 6.8vw, 29px); }
  .age-gate-intro { font-size: 15px; }
  .age-gate #age-description { font-size: 12px; }
  .age-gate-accept { gap: 6px; min-height: 52px; padding: 12px 10px; font-size: 15px; }
  .age-gate-accept img { width: 15px; height: 15px; flex-basis: 15px; }
}
@media (max-height: 650px) {
  .age-gate-panel { padding-top: 20px; padding-bottom: 16px; }
  .age-gate-rule { margin-top: 16px; margin-bottom: 16px; }
  .age-gate-intro { margin-top: 14px; }
}
/* Keep the actual page translucent even with reduced-transparency enabled, per
   the explicit SEG preference. The reading panel remains opaque for contrast. */
