/* Preset backgrounds are controlled by the admin theme panel. */
.topbar .brand img { border-radius: 50%; flex: none; aspect-ratio: 1; }
:root[data-page-theme="rose-sky"] { --page-bg: linear-gradient(145deg,#fff9fc,#f7fbff 48%,#fff9ef); }
:root[data-page-theme="mint-day"] { --page-bg: linear-gradient(145deg,#f7fffc,#eefaf7 48%,#fffaf3); }
:root[data-page-theme="lavender"] { --page-bg: linear-gradient(145deg,#fcf8ff,#f5f1ff 48%,#fff7fb); }
:root[data-page-theme="peach"] { --page-bg: linear-gradient(145deg,#fffaf7,#fff1ec 48%,#fff9ef); }
:root[data-page-theme="ice"] { --page-bg: linear-gradient(145deg,#f7fbff,#edf7ff 48%,#f7fffc); }
:root[data-section-theme="rose"] { --section-bg: linear-gradient(145deg,#fff7fb,#ffe7f1 58%,#fff0f6); --card-bg: linear-gradient(145deg,#fffafd,#ffeef6); --card-bg-strong:#fff4f9; --card-border:#f3c8da; }
:root[data-section-theme="mint"] { --section-bg: linear-gradient(145deg,#f5fffc,#def5e9 58%,#effdf5); --card-bg: linear-gradient(145deg,#fbfffd,#e8f9ef); --card-bg-strong:#f2fff7; --card-border:#c7ead6; }
:root[data-section-theme="lavender"] { --section-bg: linear-gradient(145deg,#fcf8ff,#ebe1ff 58%,#f5edff); --card-bg: linear-gradient(145deg,#fefcff,#f0e8ff); --card-bg-strong:#f7f1ff; --card-border:#dacbed; }
:root[data-section-theme="peach"] { --section-bg: linear-gradient(145deg,#fffaf7,#ffe6d8 58%,#fff1df); --card-bg: linear-gradient(145deg,#fffdfa,#ffede2); --card-bg-strong:#fff6ed; --card-border:#f0d4bf; }
:root[data-section-theme="ice"] { --section-bg: linear-gradient(145deg,#f7fbff,#dfefff 58%,#ebf9ff); --card-bg: linear-gradient(145deg,#fcfeff,#e8f5ff); --card-bg-strong:#f2faff; --card-border:#c6e2f4; }
:root[data-section-theme="plain"] { --section-bg: #fff; --card-bg: #fff; --card-bg-strong:#fff; --card-border:#eee1e7; }
html, body { min-height: 100%; }
body { background: var(--page-bg, linear-gradient(145deg,#fff9fc,#f7fbff 48%,#fff9ef)); }
body { isolation: isolate; }
:root[data-page-custom="true"] body::before { content: ""; position: fixed; inset: 0; z-index: -1; pointer-events: none; background-image: var(--custom-page-image); background-position: center; background-size: cover; background-repeat: no-repeat; }
main { background: transparent; }
.hero,.simple-section,.rank-section,.flow-section,.closing,.membership-section { background: transparent; }
.menu-section { background: transparent; }
.hero-panel,.hero-copy { background: var(--section-bg, #fff); }
.catalog-group,.feature-section,.companion-showcase,.review-feature,.review-item,.rank-card,.flow-card,.membership-shell { background: var(--card-bg, rgba(255,255,255,.78)); }
.catalog-group { border: 1px solid var(--card-border,#f0dce6); }
.feature-section,.companion-showcase,.rank-card,.flow-card,.membership-shell { background: var(--section-bg, #fff); }
.review-feature,.review-item { background: var(--card-bg, #fff); }
.flow-grid article,.contact-banner { background: var(--card-bg-strong,#fff); }
:root[data-section-custom="true"] :is(.catalog-group,.feature-section,.companion-showcase,.review-feature,.review-item,.rank-card,.flow-card,.membership-shell,.hero-panel,.hero-copy) { background-color: #fff; background-image: linear-gradient(rgba(255,255,255,.8),rgba(255,255,255,.8)),var(--custom-section-image); background-position: center; background-size: cover; background-repeat: no-repeat; }
.drawer-empty { align-content: center; gap: 10px; }
.drawer-empty-icon { width: 78px; height: 78px; object-fit: contain; margin: 0 auto; }
.drawer-empty b, .drawer-empty p { margin: 0; }
.game-tabs .tab-icon { width: 18px; height: 18px; object-fit: contain; vertical-align: -5px; margin-right: 5px; filter: brightness(0) saturate(100%) invert(40%) sepia(75%) saturate(1100%) hue-rotate(295deg) brightness(96%); }
.game-tabs button.active .tab-icon { filter: brightness(0) invert(1); }
.menu-tabs .tab-icon,.menu-title-icon { display: none; }
.bag-icon { width: 28px; height: 28px; object-fit: contain; display: inline-block; vertical-align: middle; }
.button-icon { width: 21px; height: 21px; object-fit: contain; flex: 0 0 auto; }
.headset-icon { width: 22px; height: 22px; }
.menu-cloud-icon { width: 22px; height: 22px; }
.poster-media { position: relative; min-width: 0; min-height: 0; overflow: hidden; background: #fff1f7; }
.poster-media > img { display: block; width: 100%; height: 100%; max-height: 88vh; object-fit: contain; cursor: zoom-in; }
.poster-zoom-controls, .image-zoom-controls { position: absolute; z-index: 3; display: flex; gap: 5px; padding: 5px; border-radius: 13px; background: rgba(57,43,52,.72); backdrop-filter: blur(8px); }
.poster-zoom-controls { right: 12px; bottom: 12px; }
.poster-zoom-controls button, .image-zoom-controls button { min-width: 32px; height: 30px; padding: 0 7px; border-radius: 9px; background: rgba(255,255,255,.92); color: #633f52; font-size: 13px; font-weight: 800; }
#poster-dialog { grid-template-columns: 1.15fr .85fr; }
#image-dialog { width: min(1000px, calc(100% - 22px)); height: min(92vh, 900px); padding: 0; background: #241720; }
.image-viewer { position: relative; width: 100%; height: 100%; display: grid; place-items: center; overflow: hidden; touch-action: none; }
.image-viewer > img { display: block; max-width: 92%; max-height: 88%; object-fit: contain; transform-origin: center center; will-change: transform; cursor: zoom-in; user-select: none; transition: transform .14s ease-out; }
.image-viewer > img.is-zoomed { cursor: grab; }
.image-viewer > img.is-zoomed:active { cursor: grabbing; }
.image-zoom-controls { left: 50%; bottom: 16px; transform: translateX(-50%); }
#image-dialog .dialog-close { background: rgba(255,255,255,.92); }
@media (max-width: 680px) {
  .poster-media { height: 55vh; min-height: 260px; }
  .poster-media > img { max-height: none; }
  #image-dialog { width: calc(100% - 12px); height: min(88vh, 900px); border-radius: 22px; }
  .image-viewer > img { max-width: 96%; max-height: 82%; }
}
