.private-page {
  --ink: #f8f0f5;
  --muted: #c0aebb;
  --dim: #917d8a;
  --night: #190c19;
  --panel: #241321;
  --panel-light: #301a2b;
  --line: rgba(202, 113, 163, .19);
  --teal: #9f326c;
  --teal-light: #e873ad;
  --blue: #dc8ab6;
  --blue-bright: #ffb8d9;
  --amber: #f05b97;
  --fire: #f05b97;
  min-height: 100vh;
  background: radial-gradient(ellipse at 82% 0%, rgba(132, 28, 85, .12), transparent 35%), var(--night);
  color: var(--ink);
}

.private-page.private-gate-open { overflow: hidden; }
.private-page ::selection { background: rgba(232, 115, 173, .35); color: #fff8fc; }
.private-app { min-height: 100vh; display: flex; flex-direction: column; }
.private-app > main { flex: 1 0 auto; }
.private-age-gate[hidden], .private-app[hidden] { display: none !important; }

.private-page .site-header {
  border-bottom-color: rgba(214, 109, 163, .22);
  background: rgba(25, 12, 25, .96);
  box-shadow: 0 8px 30px rgba(8, 3, 10, .16);
}
.private-page .brand-logo { filter: drop-shadow(0 2px 12px rgba(223, 67, 139, .22)); }
.private-page .brand-words span { color: #e883b5; }
.private-page .main-nav a { color: #c1afbc; }
.private-page .main-nav a:hover,
.private-page .main-nav a.is-active { color: #fff0f7; }
.private-page .main-nav a::after { background: var(--teal-light); }
.private-page .main-nav .private-nav-link { color: #f08dbb; }
.private-page .main-nav .private-nav-link.is-active { color: #ffd3e7; }
.private-page .main-nav .private-nav-link::after { background: #f08dbb; }
.private-page .header-link { color: #decbd7; }
.private-page .header-link span { color: #f08dbb; }
.private-page .language-switch { color: #c894b3; }
.private-page .language-switch select { border-color: rgba(211, 119, 165, .3); background: #21101f; color: #f0dfe9; }
.private-page .language-switch select:focus-visible { border-color: rgba(244, 122, 183, .74); box-shadow: 0 0 0 3px rgba(232, 115, 173, .1); }

.private-page .catalog-intro .eyebrow { color: #e387b5; }
.private-page .catalog-intro h1 { color: #fcf4f8; }
.private-page .catalog-intro > p:last-child { color: #c3b0bd; }
.private-page .eyebrow { color: #e387b5; }
.private-page .eyebrow-dot,
.private-page .made-dot { background: #f15c99; box-shadow: 0 0 10px rgba(241, 92, 153, .42); }
.private-page .eyebrow i { background: #f15c99; }
.private-page .eyebrow-muted { color: #bd78a0; }
.private-page .heading-period { color: #f15c99; }
.private-page .section-heading h2 { color: #f8eef4; }
.private-page .section-intro { color: #bcaab7; }

.private-page .catalog-controls { border-color: rgba(211, 119, 165, .2); }
.private-page .filter-chip { color: #b49fad; }
.private-page .filter-chip:hover { color: #fff0f7; background: rgba(164, 49, 108, .16); }
.private-page .filter-chip.is-active { border-color: rgba(233, 111, 170, .52); background: rgba(160, 43, 101, .24); color: #ffc3dc; }
.private-page .search-box { border-color: rgba(211, 119, 165, .24); background: rgba(17, 7, 17, .56); }
.private-page .search-box:focus-within { border-color: rgba(244, 122, 183, .74); box-shadow: 0 0 0 3px rgba(232, 115, 173, .1); }
.private-page .search-box svg { stroke: #dd84b2; }
.private-page .search-box input { color: #fbf1f7; }
.private-page .search-box input::placeholder { color: #9f8799; }
.private-page .search-box kbd { border-color: rgba(230, 166, 199, .23); color: #c5aabd; }
.private-page .catalog-filter-tools .search-box { background: rgba(17, 7, 17, .56); }
.private-page .facet-field > span { color: #c894b3; }
.private-page .facet-field select { border-color: rgba(211, 119, 165, .26); background: #21101f; color: #f0dfe9; }
.private-page .facet-field select:focus-visible { border-color: rgba(244, 122, 183, .74); }
.private-page .results-line { color: #a48c9e; }
.private-page .results-line span:first-child { color: #ec9bc2; }

.private-page .product-card {
  border-color: rgba(196, 91, 145, .2);
  background: linear-gradient(155deg, rgba(48, 25, 44, .84), rgba(29, 13, 28, .97));
}
.private-page .product-card:hover { border-color: rgba(235, 105, 167, .48); box-shadow: 0 15px 32px rgba(0, 0, 0, .29); }
.private-page .product-image-wrap { border-bottom-color: rgba(200, 94, 149, .22); background: #291527; }
.private-page .product-image-wrap::after { background: linear-gradient(transparent, rgba(19, 7, 18, .52)); }
.private-page .stock-badge { border-color: rgba(240, 116, 175, .55); background: rgba(38, 9, 27, .9); color: #ffd0e5; }
.private-page .product-meta { color: #df83b2; }
.private-page .product-meta span:last-child { color: #a5859a; }
.private-page .product-title-row strong { color: #fcf1f7; }
.private-page .product-arrow { color: #ed8eb9; }
.private-page .product-price { color: #e5d1de; }
.private-page .product-price em { color: #ae94a5; }
.private-page .empty-state { border-color: rgba(215, 110, 166, .29); }
.private-page .empty-glyph,
.private-page .text-button { color: #ef8fbb; }
.private-page .empty-state p { color: #bda9b8; }
.private-page .demo-notice { background: rgba(93, 28, 63, .34); border-color: rgba(226, 107, 163, .23); border-left-color: rgba(241, 92, 153, .8); }
.private-page .demo-notice .notice-icon { border-color: rgba(240, 116, 175, .65); color: #f2a2c8; }
.private-page .demo-notice p { color: #c7afbf; }
.private-page .demo-notice strong { color: #fff0f7; }
.private-page .image-demo-tag,
.private-page .demo-stamp { border-color: rgba(240, 116, 175, .62); background: rgba(28, 10, 25, .82); color: #ffd0e5; }
.private-page .demo-detail-note { color: #bd9eb2; }
.private-page .catalog-pagination { color: #b99aae; }
.private-page .catalog-pagination button { border-color: rgba(211, 119, 165, .25); background: rgba(17, 7, 17, .52); color: #e0cad8; }
.private-page .catalog-pagination button:hover:not(:disabled) { border-color: rgba(233, 111, 170, .58); color: #fff0f7; }
.private-page .catalog-pagination button.is-active { border-color: rgba(233, 111, 170, .6); background: rgba(160, 43, 101, .28); color: #ffd0e5; }
.private-page .pagination-ellipsis,
.private-page .pagination-status { color: #b999ad; }

.private-page .contact-section {
  background: radial-gradient(ellipse at 84% 50%, rgba(136, 33, 88, .13), transparent 35%);
}
.private-page .contact-copy h2 { color: #fbf0f6; }
.private-page .contact-copy h2 em { color: #ee98c0; }
.private-page .contact-copy > p:last-child { color: #c0aebb; }
.private-page .contact-orbit,
.private-page .contact-orbit::before,
.private-page .contact-orbit::after { border-color: rgba(223, 107, 164, .12); }
.private-page .contact-orbit span { background: #f15c99; box-shadow: 0 0 9px rgba(241, 92, 153, .36); }
.private-page .button-primary { color: #fff9fc; background: #9f326c; border-color: rgba(239, 129, 185, .42); box-shadow: 0 5px 18px rgba(101, 21, 66, .24); }
.private-page .button-primary:hover { color: #2b1022; background: #f29ac4; border-color: #f29ac4; }
.private-page .button-primary span { color: #ffd2e6; }
.private-page .button-primary:hover span { color: #692349; }
.private-page .contact-hint { color: #b39eae; }
.private-page .contact-hint code { color: #f2b1cf; }
.private-page .catalog-back-link { color: #e991bc; }
.private-page .catalog-back-link:hover { color: #ffd4e7; }

.private-page .site-footer { border-color: rgba(204, 104, 157, .2); background: #130914; }
.private-page .site-footer > p { color: #b9a5b4; }
.private-page .private-footer-link { color: #ee9bc2; }
.private-page .private-footer-link span { color: #f15c99; }
.private-page .private-footer-link:hover { color: #fff1f7; }
.private-page .footer-meta { color: #997e91; }
.private-page .footer-meta i { background: #f15c99; }

.private-page .product-dialog { border-color: rgba(226, 107, 163, .34); background: #21101e; }
.private-page .product-dialog::backdrop { background: rgba(12, 4, 12, .86); }
.private-page .dialog-close { border-color: rgba(222, 127, 175, .38); background: rgba(35, 13, 29, .84); }
.private-page .dialog-close:hover { background: rgba(131, 38, 88, .82); }
.private-page .dialog-gallery { background: #180b18; }
.private-page .dialog-image-wrap { background: #291527; }
.private-page .gallery-arrow { border-color: rgba(232, 128, 181, .45); background: rgba(35, 10, 27, .84); color: #ffe1ee; }
.private-page .gallery-arrow:hover { border-color: #f08bb9; background: rgba(132, 38, 88, .92); }
.private-page .gallery-arrow:focus-visible { outline-color: #ffb8d9; }
.private-page .dialog-info .eyebrow { color: #e58db8; }
.private-page .dialog-kicker { color: #b196a9; }
.private-page .dialog-kicker span { color: #f15c99; }
.private-page .dialog-description { color: #d0bdca; }
.private-page .detail-price { border-color: rgba(211, 119, 165, .22); }
.private-page .detail-price span,
.private-page .detail-grid div > span,
.private-page .detail-grid div > label { color: #be9db3; }
.private-page .detail-price strong { color: #f8e8f1; }
.private-page .detail-grid div > strong { color: #e5d3df; }
.private-page .dialog-scale-select { border-color: rgba(211, 119, 165, .3); background: #21101f; color: #f0dfe9; }
.private-page .dialog-scale-select:focus-visible { border-color: rgba(244, 122, 183, .74); outline-color: #f08dbb; }
.private-page .made-order-note { border-color: rgba(215, 99, 157, .3); border-left-color: #e873ad; background: rgba(124, 35, 82, .2); color: #e1cdd9; }
.private-page .made-order-note .made-dot { background: #f15c99; }
.private-page .gallery-thumb.is-selected { border-color: #e873ad; }
.private-page #private-main-title:focus { outline: none; }
.private-page :focus-visible { outline-color: #ffb8d9; }

.private-age-gate {
  position: fixed;
  z-index: 100;
  inset: 0;
  display: grid;
  place-items: center;
  min-height: 100vh;
  overflow-y: auto;
  padding: 24px;
  background: rgba(15, 5, 13, .8);
  -webkit-backdrop-filter: blur(6px);
  backdrop-filter: blur(6px);
  opacity: 1;
  transition: opacity 260ms ease;
}
.private-gate-card {
  position: relative;
  width: min(500px, 100%);
  padding: clamp(27px, 7vw, 54px);
  border: 1px solid rgba(222, 111, 167, .3);
  background: linear-gradient(145deg, rgba(44, 21, 40, .98), rgba(27, 12, 27, .99));
  box-shadow: 0 28px 90px rgba(0, 0, 0, .55), 0 0 42px rgba(185, 46, 111, .12);
  text-align: center;
  opacity: 1;
  transform: translateY(0);
  animation: private-gate-enter 260ms cubic-bezier(.2, .7, .25, 1) both;
}
.private-kicker { margin: 0; color: #d89abb; font-size: 10px; font-weight: 600; letter-spacing: .26em; }
.private-kicker span { color: #f08bb9; }
.private-age-mark {
  display: grid;
  width: 64px;
  height: 64px;
  place-items: center;
  margin: 27px auto 20px;
  border: 1px solid rgba(240, 116, 175, .52);
  border-radius: 50%;
  color: #f08bb9;
  font-size: 11px;
  letter-spacing: .04em;
}
.private-gate-card h1 { margin: 0; color: #fcf1f7; font-family: var(--serif); font-size: clamp(29px, 7vw, 40px); font-weight: 400; line-height: 1.1; }
.private-gate-card > p:not(.private-kicker):not(.private-age-mark) { margin: 16px auto 0; max-width: 360px; color: #c5b0bf; font-size: 12px; line-height: 1.8; }
.private-gate-actions { display: grid; justify-items: center; gap: 16px; margin-top: 28px; }
.private-enter-button {
  min-height: 46px;
  padding: 0 21px;
  border: 1px solid rgba(240, 116, 175, .7);
  background: rgba(159, 50, 108, .28);
  color: #ffe1ee;
  font-size: 12px;
  letter-spacing: .025em;
  cursor: pointer;
  transition: background .2s ease, border-color .2s ease;
}
.private-enter-button:hover { border-color: #f08bb9; background: rgba(159, 50, 108, .48); }
.private-exit-link { color: #c5b0bf; font-size: 11px; text-decoration: underline; text-decoration-color: rgba(197, 176, 191, .42); text-underline-offset: 4px; }
.private-exit-link:hover { color: #fff0f7; text-decoration-color: currentColor; }
.private-gate-note { margin-top: 29px !important; color: #987f91 !important; font-size: 10px !important; }
.private-age-gate.is-leaving { opacity: 0; pointer-events: none; }
.private-age-gate.is-leaving .private-gate-card {
  animation: none;
  opacity: 0;
  transform: translateY(-6px);
  transition: opacity 240ms ease, transform 240ms ease;
}
@keyframes private-gate-enter {
  from { opacity: 0; transform: translateY(7px); }
  to { opacity: 1; transform: translateY(0); }
}

@media (max-width: 680px) {
  .private-age-gate {
    padding: 16px;
    background: rgba(15, 5, 13, .88);
    -webkit-backdrop-filter: blur(2px);
    backdrop-filter: blur(2px);
  }
  .private-gate-card { padding: 28px 22px; }
}

@media (max-width: 380px) {
  .private-gate-card { padding: 25px 18px; }
  .private-enter-button { width: 100%; padding-inline: 12px; }
}

@media (prefers-reduced-motion: reduce) {
  .private-gate-card { animation: none !important; }
  .private-age-gate, .private-gate-card { transition: none !important; }
}

@supports not ((backdrop-filter: blur(1px)) or (-webkit-backdrop-filter: blur(1px))) {
  .private-age-gate { background: rgba(15, 5, 13, .93); }
}
