:root {
    --bg: #0f1117;
    --bg-alt: #161924;
    --panel: rgba(21, 24, 34, 0.84);
    --panel-solid: #1a1e2b;
    --ink: #f0edf8;
    --ink-soft: #b5adc8;
    --accent: #d3a86e;
    --accent-2: #8c6ce0;
    --line: rgba(220, 210, 255, 0.16);
    --radius: 16px;
    --shadow: 0 18px 50px rgba(2, 2, 10, 0.45);
    --ambient-x: 50%;
    --ambient-y: 24%;
    --ambient-scroll: 0;
}

* {
    box-sizing: border-box;
}

html,
body {
    margin: 0;
    padding: 0;
    min-height: 100%;
}

html {
    background-color: #0b0d14;
}

body {
    color: var(--ink);
    background-color: #0b0d14;
    background:
        radial-gradient(circle at 15% 15%, rgba(127, 89, 221, 0.18) 0%, transparent 36%),
        radial-gradient(circle at 90% 12%, rgba(211, 168, 110, 0.12) 0%, transparent 32%),
        linear-gradient(180deg, #0d0f15 0%, #10131d 40%, #0b0d14 100%);
    font-family: 'Manrope', 'Segoe UI', sans-serif;
    line-height: 1.5;
    position: relative;
}

body::before,
body::after {
    content: '';
    position: fixed;
    inset: -18vmax;
    pointer-events: none;
    z-index: 0;
    opacity: 0.28;
}

body::before {
    background:
        radial-gradient(38vmax 28vmax at var(--ambient-x) var(--ambient-y), rgba(124, 190, 255, 0.055), transparent 66%),
        radial-gradient(42vmax 28vmax at 82% calc(8% + (var(--ambient-scroll) * 18%)), rgba(244, 186, 91, 0.042), transparent 70%);
    transform: translateY(calc(var(--ambient-scroll) * -8px));
}

body::after {
    background:
        radial-gradient(34vmax 22vmax at calc(18% + (var(--ambient-scroll) * 8%)) 82%, rgba(140, 108, 224, 0.052), transparent 68%);
    transform: translateY(calc(var(--ambient-scroll) * 5px));
}

img {
    max-width: 100%;
}

.page-shell {
    width: min(1180px, 92vw);
    margin: 0 auto;
    padding: 1.3rem 0 3rem;
    position: relative;
    z-index: 1;
}

.page-shell > main {
    position: relative;
    isolation: isolate;
    z-index: 1;
}

.page-shell:has(.home-editorial-strip-block:hover) > main,
.page-shell:has(.home-editorial-strip-block:focus-within) > main {
    z-index: 80;
}

.page-enhanced .page-shell {
    opacity: 0;
    transform: translateY(8px);
}

.page-enhanced.page-ready .page-shell {
    opacity: 1;
    transform: translateY(0);
    transition: opacity 220ms ease, transform 240ms ease;
}

.page-enhanced.page-leaving .page-shell {
    opacity: 0;
    transform: translateY(8px) scale(0.996);
    transition: opacity 140ms ease, transform 140ms ease;
}

.site-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 1rem;
    padding: 0.8rem 0;
    z-index: 20;
}

.brand {
    text-decoration: none;
    color: var(--ink);
    font-family: 'Cormorant Garamond', Georgia, serif;
    font-size: clamp(1.5rem, 2.4vw, 2rem);
    letter-spacing: 0.02em;
    font-weight: 600;
}

.main-nav {
    display: flex;
    gap: 0.45rem;
    flex-wrap: wrap;
    align-items: center;
}

.mobile-nav-toggle {
    display: none;
    align-items: center;
    gap: 0.45rem;
    border: 1px solid var(--line);
    background: rgba(255, 255, 255, 0.04);
    color: var(--ink);
    border-radius: 999px;
    padding: 0.52rem 0.9rem;
    font: inherit;
    font-weight: 700;
    cursor: pointer;
}

.mobile-nav-toggle-icon {
    font-size: 1rem;
    line-height: 1;
}

.main-nav-panel {
    display: contents;
}

.main-nav-group {
    display: flex;
    gap: 0.45rem;
    flex-wrap: wrap;
    align-items: center;
}

.main-nav-group-mobile-categories {
    display: none;
}

.main-nav-group-mobile-categories-wrap {
    display: none;
}

.main-nav-group-label {
    display: none;
    margin: 0;
    color: var(--ink-soft);
    font-size: 0.75rem;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    font-weight: 700;
}

.main-nav-group-categories-wrap {
    display: contents;
}

.main-nav-dropdown {
    position: relative;
    display: inline-flex;
    align-items: center;
}

.main-nav-dropdown-head {
    display: inline-flex;
    align-items: center;
    gap: 0.3rem;
}

.main-nav-dropdown-trigger {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 2.35rem;
}

.main-nav-dropdown-toggle {
    display: none;
    align-items: center;
    justify-content: center;
    min-width: 2.2rem;
    height: 2.2rem;
    border-radius: 999px;
    border: 1px solid transparent;
    background: transparent;
    color: var(--ink-soft);
    cursor: pointer;
    touch-action: manipulation;
}

.main-nav-dropdown-toggle-icon {
    width: 0.42rem;
    height: 0.42rem;
    border-right: 2px solid currentColor;
    border-bottom: 2px solid currentColor;
    transform: rotate(45deg) translateY(-1px);
    opacity: 0.8;
}

.main-nav-dropdown.is-open .main-nav-dropdown-toggle-icon {
    transform: rotate(-135deg) translateY(-1px);
}

.main-nav-dropdown-menu {
    position: absolute;
    top: 100%;
    left: 0;
    min-width: 220px;
    display: none;
    gap: 0.3rem;
    padding: 0.45rem;
    border-radius: 14px;
    border: 1px solid rgba(255, 255, 255, 0.08);
    background: rgba(18, 21, 30, 0.95);
    box-shadow: 0 14px 32px rgba(2, 2, 8, 0.24);
    z-index: 30;
}

.main-nav-dropdown-menu .nav-link {
    white-space: nowrap;
    display: flex;
    align-items: center;
    width: 100%;
    border-radius: 10px;
    border-color: transparent;
    padding: 0.58rem 0.72rem;
    font-weight: 600;
    color: var(--ink-soft);
    background: transparent;
}

.main-nav-dropdown-menu .nav-link:hover,
.main-nav-dropdown-menu .nav-link:focus-visible {
    background: rgba(255, 255, 255, 0.05);
    border-color: rgba(255, 255, 255, 0.06);
}

.main-nav-dropdown-menu .nav-link.is-active {
    color: var(--ink);
    background: rgba(244, 186, 91, 0.08);
    border-color: rgba(244, 186, 91, 0.18);
    box-shadow: none;
}

@media (min-width: 761px) {
    .main-nav-group-primary {
        gap: 0.5rem;
        align-items: center;
    }

    .main-nav-dropdown-trigger::after {
        content: '';
        width: 0.4rem;
        height: 0.4rem;
        margin-left: 0.18rem;
        border-right: 2px solid currentColor;
        border-bottom: 2px solid currentColor;
        transform: rotate(45deg) translateY(-1px);
        opacity: 0.7;
    }

    .main-nav-dropdown:hover .main-nav-dropdown-trigger::after,
    .main-nav-dropdown:focus-within .main-nav-dropdown-trigger::after {
        opacity: 1;
    }

    .main-nav-dropdown > .main-nav-dropdown-menu {
        display: none;
    }

    .main-nav-dropdown.is-open > .main-nav-dropdown-menu {
        display: none;
    }

    .main-nav-dropdown:hover > .main-nav-dropdown-menu {
        display: grid;
    }

    .main-nav-dropdown > .main-nav-dropdown-menu {
        min-width: 250px;
        padding: 0.42rem;
        gap: 0.24rem;
        grid-template-columns: 1fr;
        align-items: start;
        border: 1px solid rgba(255, 255, 255, 0.1);
        background:
            linear-gradient(180deg, rgba(255, 255, 255, 0.03), rgba(255, 255, 255, 0.015)),
            rgba(16, 19, 28, 0.97);
        box-shadow:
            0 14px 32px rgba(2, 2, 8, 0.24),
            0 2px 8px rgba(0, 0, 0, 0.2);
        transform-origin: top left;
        animation: navDropdownIn 120ms ease-out;
    }

    .main-nav-dropdown-toggle {
        display: none !important;
    }
}

@keyframes navDropdownIn {
    from {
        opacity: 0;
        transform: translateY(-4px) scale(0.98);
    }
    to {
        opacity: 1;
        transform: translateY(0) scale(1);
    }
}

.nav-link {
    color: var(--ink-soft);
    text-decoration: none;
    padding: 0.5rem 0.9rem;
    border: 1px solid transparent;
    border-radius: 999px;
    font-weight: 600;
    font-size: 0.92rem;
    touch-action: manipulation;
}

.nav-link:hover,
.nav-link.is-active {
    color: var(--ink);
    border-color: var(--line);
    background: rgba(255, 255, 255, 0.03);
}

.nav-link.is-active {
    box-shadow: inset 0 0 0 1px rgba(244, 186, 91, 0.12);
}

.hero-block,
.section-block,
.empty-panel,
.price-card,
.contact-card,
.category-card,
.adult-modal-card,
.cookie-modal-card {
    background: var(--panel);
    border: 1px solid var(--line);
    border-radius: var(--radius);
    box-shadow: var(--shadow);
}

.hero-block,
.section-block,
.empty-panel {
    padding: clamp(1.2rem, 2.5vw, 2.2rem);
    margin-top: 1.2rem;
}

.home-section {
    position: relative;
    overflow: hidden;
}

.home-section::before {
    content: '';
    position: absolute;
    inset: 0;
    pointer-events: none;
    opacity: 0.9;
}

.section-tone-cool {
    background:
        radial-gradient(circle at 10% 8%, rgba(124, 190, 255, 0.08), transparent 40%),
        radial-gradient(circle at 88% 90%, rgba(124, 190, 255, 0.06), transparent 42%),
        var(--panel);
}

.section-tone-cool::before {
    background:
        linear-gradient(180deg, rgba(124, 190, 255, 0.06), transparent 18%),
        linear-gradient(90deg, transparent, rgba(124, 190, 255, 0.03), transparent);
}

.section-tone-warm {
    background:
        radial-gradient(circle at 86% 16%, rgba(244, 186, 91, 0.12), transparent 42%),
        radial-gradient(circle at 12% 82%, rgba(227, 130, 96, 0.08), transparent 44%),
        linear-gradient(160deg, rgba(31, 23, 18, 0.55), rgba(19, 18, 26, 0.82));
    border-color: rgba(244, 186, 91, 0.14);
}

.section-tone-warm::before {
    background: linear-gradient(90deg, rgba(244, 186, 91, 0.08), transparent 18%, transparent 82%, rgba(227, 130, 96, 0.06));
}

.section-tone-violet {
    background:
        radial-gradient(circle at 14% 12%, rgba(186, 120, 255, 0.14), transparent 44%),
        radial-gradient(circle at 92% 82%, rgba(124, 190, 255, 0.08), transparent 40%),
        linear-gradient(165deg, rgba(25, 20, 39, 0.72), rgba(17, 19, 28, 0.92));
    border-color: rgba(186, 120, 255, 0.16);
}

.section-tone-violet::before {
    background: linear-gradient(180deg, rgba(186, 120, 255, 0.07), transparent 22%);
}

.section-tone-ink {
    background:
        radial-gradient(circle at 10% 20%, rgba(124, 190, 255, 0.08), transparent 38%),
        radial-gradient(circle at 90% 18%, rgba(244, 186, 91, 0.08), transparent 38%),
        linear-gradient(155deg, rgba(15, 18, 26, 0.96), rgba(12, 13, 20, 0.98));
}

.section-tone-ink::before {
    background: linear-gradient(90deg, rgba(255, 255, 255, 0.02), transparent 26%, transparent 74%, rgba(255, 255, 255, 0.02));
}

.hero-block h1,
.section-block h1,
.section-block h2,
.price-card h2,
.contact-card h2,
.category-card h3,
.adult-modal-card h2 {
    margin: 0;
    line-height: 1.12;
    font-family: 'Cormorant Garamond', Georgia, serif;
}

.hero-block h1 {
    margin-top: 0.45rem;
    font-size: clamp(2rem, 4.8vw, 3.8rem);
    max-width: 16ch;
}

.eyebrow {
    margin: 0;
    text-transform: uppercase;
    letter-spacing: 0.16em;
    font-size: 0.75rem;
    color: var(--accent);
    font-weight: 700;
}

.lead {
    margin: 0.85rem 0 0;
    max-width: 64ch;
    color: var(--ink-soft);
}

.hero-layout {
    display: grid;
    grid-template-columns: minmax(0, 1.35fr) minmax(220px, 320px);
    gap: 1.1rem;
    align-items: stretch;
}

.prices-hero-layout {
    grid-template-columns: minmax(0, 1.2fr) minmax(260px, 1fr);
    align-items: start;
}

.hero-copy {
    display: flex;
    flex-direction: column;
    position: relative;
}

.hero-copy h1 {
    max-width: 18ch;
}

.hero-copy::after {
    content: '';
    position: absolute;
    right: min(-8%, 1rem);
    top: 8%;
    width: clamp(120px, 18vw, 220px);
    height: clamp(120px, 18vw, 220px);
    background: radial-gradient(circle, rgba(244, 186, 91, 0.085), rgba(244, 186, 91, 0) 74%);
    filter: blur(16px);
    opacity: 0.28;
    pointer-events: none;
    animation: heroOrbDrift 18s ease-in-out infinite;
}

@keyframes heroOrbDrift {
    0%, 100% { transform: translate3d(0, 0, 0) scale(1); }
    50% { transform: translate3d(5px, -7px, 0) scale(1.03); }
}

.vertical-image-slot {
    min-height: 100%;
    border: 1px solid var(--line);
    border-radius: 14px;
    overflow: hidden;
    background: linear-gradient(160deg, #171b28, #120f1d);
    position: relative;
}

.hero-block .vertical-image-slot,
.hero-block .prices-intro-image-slot {
    animation: heroFrameFloat 22s ease-in-out infinite;
    box-shadow: 0 22px 52px rgba(3, 6, 14, 0.3);
}

.hero-block .vertical-image-slot::before,
.hero-block .prices-intro-image-slot::before {
    content: '';
    position: absolute;
    inset: -8% -18% auto auto;
    width: 52%;
    aspect-ratio: 1 / 1;
    border-radius: 50%;
    pointer-events: none;
    z-index: 1;
    opacity: 0.2;
    background: radial-gradient(circle, rgba(255, 255, 255, 0.16), rgba(255, 255, 255, 0) 70%);
    filter: blur(12px);
    animation: heroFrameGlowSweep 18s ease-in-out infinite;
}

.vertical-image-slot img {
    width: 100%;
    height: 100%;
    min-height: 380px;
    object-fit: cover;
    display: block;
    filter: saturate(0.88) contrast(1.06);
    transform: scale(1.02) translate3d(0, 0, 0);
    transform-origin: 50% 42%;
    animation: heroImageDrift 24s ease-in-out infinite;
    transition: transform 420ms ease, opacity 320ms ease;
}

.hero-block .vertical-image-slot img {
    animation: heroImageDriftHome 28s ease-in-out infinite;
    transform: scale(1.04) translate3d(0, 0, 0);
}

.hero-block .prices-intro-image-slot img {
    animation: heroImageDriftHomeWide 30s ease-in-out infinite;
    transform: scale(1.034) translate3d(0, 0, 0);
}

.prices-intro-image-slot {
    border: 1px solid var(--line);
    border-radius: 14px;
    overflow: hidden;
    background: linear-gradient(160deg, #171b28, #120f1d);
    aspect-ratio: 16 / 10;
    min-height: 220px;
    position: relative;
}

.prices-intro-image-slot img {
    width: 100%;
    height: 100%;
    display: block;
    object-fit: cover;
    filter: saturate(0.9) contrast(1.05);
    transform: scale(1.018) translate3d(0, 0, 0);
    transform-origin: 52% 46%;
    animation: heroImageDriftWide 28s ease-in-out infinite;
    transition: transform 420ms ease, opacity 320ms ease;
}

.vertical-image-slot::after,
.prices-intro-image-slot::after {
    content: '';
    position: absolute;
    inset: 0;
    pointer-events: none;
    background:
        linear-gradient(180deg, rgba(255, 255, 255, 0.04), transparent 28%),
        radial-gradient(circle at 18% 14%, rgba(255, 255, 255, 0.05), transparent 42%);
    opacity: 0.45;
    transition: opacity 320ms ease;
}

.hero-block:hover .vertical-image-slot img,
.hero-block:focus-within .vertical-image-slot img,
.hero-block:hover .prices-intro-image-slot img,
.hero-block:focus-within .prices-intro-image-slot img {
    opacity: 0.98;
}

.hero-block:hover .vertical-image-slot img,
.hero-block:focus-within .vertical-image-slot img {
    transform: scale(1.05) translate3d(0, -3px, 0);
}

.hero-block:hover .prices-intro-image-slot img,
.hero-block:focus-within .prices-intro-image-slot img {
    transform: scale(1.043) translate3d(0, -2px, 0);
}

.hero-block:hover .vertical-image-slot::after,
.hero-block:focus-within .vertical-image-slot::after,
.hero-block:hover .prices-intro-image-slot::after,
.hero-block:focus-within .prices-intro-image-slot::after {
    opacity: 0.62;
}

@keyframes heroImageDrift {
    0%, 100% { transform: scale(1.02) translate3d(0, 0, 0); }
    25% { transform: scale(1.026) translate3d(0, -4px, 0); }
    50% { transform: scale(1.03) translate3d(2px, -6px, 0); }
    75% { transform: scale(1.024) translate3d(-2px, -2px, 0); }
}

@keyframes heroImageDriftHome {
    0%, 100% { transform: scale(1.04) translate3d(0, 0, 0); }
    22% { transform: scale(1.046) translate3d(-2px, -5px, 0); }
    50% { transform: scale(1.052) translate3d(3px, -9px, 0); }
    78% { transform: scale(1.045) translate3d(1px, -3px, 0); }
}

@keyframes heroImageDriftHomeWide {
    0%, 100% { transform: scale(1.034) translate3d(0, 0, 0); }
    30% { transform: scale(1.04) translate3d(-5px, -2px, 0); }
    58% { transform: scale(1.046) translate3d(5px, -5px, 0); }
    84% { transform: scale(1.038) translate3d(2px, -2px, 0); }
}

@keyframes heroFrameFloat {
    0%, 100% { transform: translate3d(0, 0, 0); }
    50% { transform: translate3d(0, -3px, 0); }
}

@keyframes heroFrameGlowSweep {
    0%, 100% { transform: translate3d(0, 0, 0) scale(0.97); opacity: 0.12; }
    50% { transform: translate3d(-8px, 6px, 0) scale(1.03); opacity: 0.22; }
}

@keyframes heroImageDriftWide {
    0%, 100% { transform: scale(1.018) translate3d(0, 0, 0); }
    33% { transform: scale(1.024) translate3d(-4px, -2px, 0); }
    66% { transform: scale(1.027) translate3d(3px, -4px, 0); }
}

.vertical-image-placeholder {
    height: 100%;
    min-height: 380px;
    padding: 1rem;
    display: grid;
    place-items: center;
    text-align: center;
    gap: 0.45rem;
    color: var(--ink-soft);
}

.vertical-image-placeholder strong {
    color: var(--ink);
    font-family: 'Cormorant Garamond', Georgia, serif;
    font-size: 1.4rem;
}

.vertical-image-placeholder code {
    background: rgba(255, 255, 255, 0.07);
    border: 1px solid var(--line);
    border-radius: 8px;
    padding: 0.35rem 0.55rem;
    color: var(--ink);
}

.cta,
.btn-muted {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    text-decoration: none;
    padding: 0.72rem 1.12rem;
    border-radius: 999px;
    font-weight: 700;
    border: 1px solid transparent;
    cursor: pointer;
    line-height: 1.1;
    vertical-align: middle;
    touch-action: manipulation;
    position: relative;
    overflow: hidden;
    transition: transform 180ms ease, box-shadow 180ms ease, border-color 180ms ease, background 180ms ease, color 180ms ease;
}

.cta::after,
.btn-muted::after {
    content: '';
    position: absolute;
    inset: 0;
    background: linear-gradient(110deg, transparent 18%, rgba(255, 255, 255, 0.22) 50%, transparent 82%);
    transform: translateX(-120%);
    opacity: 0;
    transition: transform 420ms ease, opacity 220ms ease;
    pointer-events: none;
}

.cta {
    background: linear-gradient(120deg, #c39258, #9e74ea);
    color: #0b0a11;
}

.cta:hover,
.cta:focus-visible {
    transform: translateY(-1px);
    box-shadow: 0 10px 22px rgba(115, 83, 201, 0.22), 0 8px 18px rgba(195, 146, 88, 0.16);
}

.hero-copy > .cta {
    margin-top: 1rem;
    align-self: flex-start;
}

.btn-muted {
    background: rgba(255, 255, 255, 0.04);
    color: var(--ink);
    border-color: var(--line);
}

.btn-muted:hover,
.btn-muted:focus-visible {
    transform: translateY(-1px);
}

.cta:hover::after,
.cta:focus-visible::after,
.btn-muted:hover::after,
.btn-muted:focus-visible::after {
    transform: translateX(115%);
    opacity: 1;
}

.cta:active,
.btn-muted:active {
    transform: translateY(0);
}

.admin-page .cta {
    background: linear-gradient(120deg, #e3af6c, #7f63d8);
    color: #100c15;
    box-shadow: 0 6px 18px rgba(127, 99, 216, 0.22);
}

.admin-page .cta:hover,
.admin-page .cta:focus-visible {
    filter: brightness(1.03);
    box-shadow: 0 10px 22px rgba(227, 175, 108, 0.16), 0 8px 24px rgba(127, 99, 216, 0.18);
}

.admin-page .btn-muted {
    background: linear-gradient(180deg, rgba(255, 255, 255, 0.12), rgba(255, 255, 255, 0.06));
    border-color: rgba(211, 168, 110, 0.28);
    color: var(--ink);
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.05), 0 1px 0 rgba(0, 0, 0, 0.15);
}

.admin-page .btn-muted:hover,
.admin-page .btn-muted:focus-visible {
    border-color: rgba(211, 168, 110, 0.45);
    background: linear-gradient(180deg, rgba(244, 186, 91, 0.12), rgba(255, 255, 255, 0.05));
    color: #fff6e7;
    outline: none;
}

.section-head {
    display: flex;
    justify-content: space-between;
    align-items: end;
    gap: 1rem;
    margin-bottom: 1rem;
    position: relative;
    z-index: 1;
}

.section-head p,
.gallery-meta,
.card-content p,
.price-card ul,
.contact-card ul,
.empty-panel,
.contact-card p {
    color: var(--ink-soft);
}

.home-section-head-cta {
    display: flex;
    gap: 0.55rem;
    flex-wrap: wrap;
    align-items: center;
    justify-content: flex-end;
}

.home-section-head-cta .cta,
.home-section-head-cta .btn-muted {
    margin-top: 0;
}

.category-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 0.95rem;
}

.category-card {
    overflow: hidden;
    transition: transform 1460ms cubic-bezier(0.16, 0.84, 0.22, 1), border-color 320ms ease, box-shadow 420ms ease;
    position: relative;
    --cat-accent-a: rgba(124, 190, 255, 0.22);
    --cat-accent-b: rgba(244, 186, 91, 0.18);
    --cat-edge: rgba(255, 255, 255, 0.08);
    --cat-glow: rgba(124, 190, 255, 0.12);
    --cat-tilt-y-start: -2.6deg;
    --cat-tilt-y-end: 1.2deg;
    transform-style: preserve-3d;
}

.category-card::before {
    content: '';
    position: absolute;
    inset: -25% auto auto -35%;
    width: 58%;
    aspect-ratio: 1 / 1;
    background: radial-gradient(circle, rgba(255, 255, 255, 0.14), transparent 68%);
    opacity: 0;
    transform: translate3d(-8px, 8px, 0) rotate(-8deg);
    transition: opacity 260ms ease, transform 320ms ease;
    pointer-events: none;
    z-index: 2;
}

.category-card::after {
    content: '';
    position: absolute;
    inset: 0;
    border-radius: inherit;
    pointer-events: none;
    z-index: 1;
    opacity: 0.85;
    background:
        radial-gradient(140px 120px at var(--card-spot-x, 18%) var(--card-spot-y, 18%), rgba(255, 255, 255, 0.08), transparent 72%),
        linear-gradient(155deg, var(--cat-accent-a), transparent 42%),
        linear-gradient(335deg, var(--cat-accent-b), transparent 54%);
    transition: opacity 280ms ease;
}

.category-card[data-card-theme="event"] {
    --cat-accent-a: rgba(124, 190, 255, 0.2);
    --cat-accent-b: rgba(118, 162, 255, 0.12);
    --cat-glow: rgba(124, 190, 255, 0.14);
}

.category-card[data-card-theme="portrait"] {
    --cat-accent-a: rgba(244, 186, 91, 0.18);
    --cat-accent-b: rgba(227, 130, 96, 0.12);
    --cat-glow: rgba(244, 186, 91, 0.14);
}

.category-card[data-card-theme="glamour"] {
    --cat-accent-a: rgba(186, 120, 255, 0.18);
    --cat-accent-b: rgba(244, 186, 91, 0.14);
    --cat-glow: rgba(186, 120, 255, 0.14);
}

.category-card[data-card-theme="art"] {
    --cat-accent-a: rgba(176, 112, 255, 0.12);
    --cat-accent-b: rgba(244, 186, 91, 0.16);
    --cat-glow: rgba(244, 186, 91, 0.1);
}

.card-link {
    display: block;
    height: 100%;
    color: inherit;
    text-decoration: none;
    position: relative;
}

.card-link::before {
    content: '';
    position: absolute;
    top: -18%;
    bottom: -18%;
    left: -42%;
    width: 32%;
    z-index: 2;
    pointer-events: none;
    opacity: 0;
    background: linear-gradient(90deg, rgba(255,255,255,0), rgba(255,255,255,0.12), rgba(255,255,255,0));
    transform: translateX(-18%) rotate(12deg);
    transition: opacity 260ms ease, transform 420ms ease;
}

.card-link::after {
    content: '';
    position: absolute;
    inset: 0;
    background:
        linear-gradient(120deg, rgba(255, 255, 255, 0.09), transparent 36%),
        linear-gradient(130deg, rgba(244, 186, 91, 0.08), transparent 42%),
        linear-gradient(340deg, rgba(140, 108, 224, 0.08), transparent 48%);
    opacity: 0;
    transition: opacity 220ms ease, transform 320ms ease;
    pointer-events: none;
    transform: translate3d(0, 6px, 0) scale(1.02);
}

.card-media {
    aspect-ratio: 4 / 3;
    background: linear-gradient(135deg, #1d2230, #18131f);
    overflow: hidden;
    position: relative;
}

.card-media img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
    filter: saturate(0.85) contrast(1.04);
    transform: translate3d(var(--card-parallax-x, 0px), var(--card-parallax-y, 0px), 0) scale(1.001);
    transition: transform 320ms ease, opacity 240ms ease;
    will-change: transform;
}

.card-media::after {
    content: '';
    position: absolute;
    inset: 0;
    pointer-events: none;
    background:
        linear-gradient(180deg, rgba(7, 8, 13, 0.02) 0%, rgba(7, 8, 13, 0.12) 48%, rgba(7, 8, 13, 0.64) 100%),
        radial-gradient(120px 90px at 18% 14%, rgba(255, 255, 255, 0.08), transparent 72%);
    opacity: 0.92;
    transition: opacity 260ms ease;
}

.card-placeholder {
    height: 100%;
    display: grid;
    place-items: center;
    text-align: center;
    color: var(--ink-soft);
    padding: 1rem;
}

.card-content {
    margin: -2.2rem 0.55rem 0.55rem;
    padding: 0.58rem 0.75rem 0.62rem;
    display: flex;
    flex-direction: column;
    gap: 0.24rem;
    min-height: 100%;
    transition: transform 220ms ease;
    position: relative;
    z-index: 3;
    border: 1px solid rgba(255, 255, 255, 0.08);
    border-radius: 14px;
    background:
        linear-gradient(180deg, rgba(21, 24, 34, 0.72), rgba(13, 15, 22, 0.88)),
        radial-gradient(circle at 12% 12%, rgba(255, 255, 255, 0.04), transparent 56%);
    box-shadow: 0 14px 24px rgba(4, 5, 10, 0.2);
    backdrop-filter: blur(6px);
}

.card-content h3 {
    margin: 0;
    font-size: 1.46rem;
    letter-spacing: -0.02em;
    text-wrap: balance;
}

.card-content p {
    margin: 0;
    font-size: 0.88rem;
    line-height: 1.28;
    display: -webkit-box;
    -webkit-line-clamp: 1;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

.meta {
    display: inline-block;
    margin-top: auto;
    font-size: 0.85rem;
    color: var(--accent);
    font-weight: 700;
    border: 1px solid rgba(244, 186, 91, 0.24);
    background: rgba(244, 186, 91, 0.08);
    border-radius: 999px;
    padding: 0.14rem 0.5rem;
}

.category-card-topline {
    min-height: 1.55rem;
    display: flex;
    align-items: center;
}

.category-card-chips {
    display: flex;
    flex-wrap: wrap;
    gap: 0.35rem;
    margin-top: 0.12rem;
}

.category-card-chip {
    display: inline-flex;
    align-items: center;
    border-radius: 999px;
    padding: 0.15rem 0.45rem;
    font-size: 0.7rem;
    line-height: 1;
    color: rgba(255, 255, 255, 0.84);
    border: 1px solid rgba(255, 255, 255, 0.08);
    background: rgba(255, 255, 255, 0.03);
}

.category-card-cta-row {
    margin-top: auto;
    padding-top: 0.32rem;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.6rem;
    color: rgba(255, 255, 255, 0.92);
    border-top: 1px solid rgba(255, 255, 255, 0.06);
}

.category-card-cta-text {
    font-size: 0.86rem;
    font-weight: 700;
    letter-spacing: 0.01em;
}

.category-card-cta-arrow {
    display: inline-flex;
    width: 1.45rem;
    height: 1.45rem;
    align-items: center;
    justify-content: center;
    border-radius: 999px;
    border: 1px solid rgba(255, 255, 255, 0.1);
    background: rgba(255, 255, 255, 0.035);
    transform: translateX(0);
    transition: transform 220ms ease, border-color 220ms ease, background 220ms ease;
}

.category-card:hover,
.category-card:focus-within {
    transform: translate3d(0, -8px, 0) rotateZ(-1.2deg) rotateX(4deg) rotateY(var(--cat-tilt-y-start)) scale(1.016);
    border-color: rgba(244, 186, 91, 0.24);
    box-shadow: 0 14px 32px rgba(3, 3, 10, 0.3), 0 0 0 1px var(--cat-glow);
    z-index: 30;
}

.category-card:hover {
    animation: categoryCardHoverSway 5.1s linear infinite alternate;
    animation-fill-mode: both;
}

.category-card:nth-child(3n):hover,
.category-card:nth-child(3n):focus-within {
    --cat-tilt-y-start: 2.2deg;
    --cat-tilt-y-end: -1deg;
}

.category-card:hover .card-link::after,
.category-card:focus-within .card-link::after {
    opacity: 1;
    transform: translate3d(0, 0, 0) scale(1);
}

.category-card:hover .card-link::before,
.category-card:focus-within .card-link::before {
    opacity: 1;
    transform: translateX(280%) rotate(12deg);
}

.category-card:hover .card-media img,
.category-card:focus-within .card-media img {
    transform: translate3d(var(--card-parallax-x, 0px), var(--card-parallax-y, 0px), 0) scale(1.02);
    opacity: 0.985;
}

.category-card:hover .card-content,
.category-card:focus-within .card-content {
    transform: translateY(-1px);
    border-color: rgba(255, 255, 255, 0.12);
    box-shadow: 0 16px 34px rgba(4, 5, 10, 0.28);
}

.category-card:hover::before,
.category-card:focus-within::before {
    opacity: 1;
    transform: translate3d(4px, -2px, 0) rotate(0deg);
}

.category-card:hover::after,
.category-card:focus-within::after {
    opacity: 1;
}

.category-card:hover .card-media::after,
.category-card:focus-within .card-media::after {
    opacity: 1;
}

.category-card:hover .category-card-cta-arrow,
.category-card:focus-within .category-card-cta-arrow {
    transform: translateX(2px);
    border-color: rgba(244, 186, 91, 0.26);
    background: rgba(244, 186, 91, 0.08);
}

.category-grid > .category-card.reveal-on-scroll {
    transform: translateY(14px) scale(0.985);
    filter: blur(3px);
    transition:
        opacity 520ms ease,
        transform 620ms cubic-bezier(.2,.8,.2,1),
        filter 340ms ease;
}

.category-grid > .category-card.reveal-on-scroll.is-revealed {
    transform: translateY(0) scale(1);
    filter: blur(0);
}

.home-editorial-strip-block {
    overflow: visible;
    position: relative;
    z-index: 520;
    isolation: isolate;
    --strip-hover-headroom: 12px;
}

.home-editorial-strip-block .section-head {
    margin-bottom: 0.35rem;
    position: relative;
    z-index: 2;
}

.home-editorial-strip-block .section-head h2 {
    margin-bottom: 0.15rem;
    position: relative;
    z-index: 2;
}

.home-mid-cta-band,
.home-final-cta {
    position: relative;
    overflow: hidden;
}

.home-mid-cta-band-layout,
.home-final-cta-layout {
    display: grid;
    grid-template-columns: minmax(0, 1.3fr) auto;
    gap: 1rem;
    align-items: center;
    position: relative;
    z-index: 1;
}

.home-mid-cta-band h2,
.home-final-cta h2 {
    margin: 0.18rem 0 0.45rem;
    max-width: 18ch;
}

.home-mid-cta-band .lead,
.home-final-cta .lead {
    margin: 0;
    max-width: 58ch;
}

.home-mid-cta-band-actions,
.home-final-cta-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 0.6rem;
    justify-content: flex-end;
}

.home-editorial-strip-scroller {
    margin-top: 1rem;
    overflow-x: hidden;
    overflow-y: visible;
    padding: calc(0.35rem + var(--strip-hover-headroom)) 0 0.45rem;
    scrollbar-width: none;
    -webkit-overflow-scrolling: touch;
    mask-image: none;
    -webkit-mask-image: none;
    position: relative;
    z-index: 6;
    perspective: none;
    transform-style: flat;
}

.home-editorial-strip-block:hover,
.home-editorial-strip-block:focus-within,
.home-editorial-strip-scroller:hover,
.home-editorial-strip-scroller:focus-within {
    position: relative;
    z-index: 6200;
}

.home-editorial-strip-mobile-meta {
    display: none;
}

.home-editorial-strip-scroller::-webkit-scrollbar {
    display: none;
}

.home-editorial-strip-marquee {
    display: flex;
    align-items: center;
    gap: 0;
    width: max-content;
    transform: translate3d(0, 0, 0);
    will-change: transform;
    backface-visibility: hidden;
}

.home-editorial-strip-marquee.is-animated {
    animation: homeEditorialMarquee 168s linear infinite;
}

.home-editorial-strip-scroller:hover .home-editorial-strip-marquee.is-animated,
.home-editorial-strip-scroller:focus-within .home-editorial-strip-marquee.is-animated {
    animation-play-state: paused;
}

.home-editorial-strip-track {
    display: flex;
    align-items: flex-end;
    gap: 0;
    width: max-content;
    padding-right: 0;
    position: relative;
    z-index: 1;
    isolation: isolate;
    transform-style: flat;
}

.home-editorial-strip-track:hover,
.home-editorial-strip-track:focus-within {
    z-index: 20;
}

.home-editorial-strip-track[aria-hidden="true"] {
    z-index: 0;
    pointer-events: none;
}

.home-editorial-strip-track[aria-hidden="true"] .home-editorial-strip-link {
    pointer-events: none;
}

.home-editorial-strip-link {
    display: inline-flex;
    width: auto;
    height: 100%;
    text-decoration: none;
    outline: none;
    position: relative;
    z-index: 1;
}

.home-editorial-strip-link.is-loading {
    border-radius: 10px;
    background:
        linear-gradient(110deg, rgba(255, 255, 255, 0.02), rgba(255, 255, 255, 0.09), rgba(255, 255, 255, 0.02));
    background-size: 220% 100%;
    animation: uiSkeletonShimmer 1.6s ease-in-out infinite;
}

.home-editorial-strip-link::after {
    content: '';
    position: absolute;
    inset: 0;
    pointer-events: none;
    opacity: 0;
    border: 1px solid rgba(244, 186, 91, 0.56);
    background:
        linear-gradient(180deg, rgba(255, 255, 255, 0.04), rgba(255, 255, 255, 0.01)),
        radial-gradient(circle at 22% 16%, rgba(255, 255, 255, 0.1), transparent 52%);
    box-shadow:
        inset 0 0 0 1px rgba(255, 255, 255, 0.22),
        0 0 0 1px rgba(244, 186, 91, 0.34),
        0 0 10px rgba(244, 186, 91, 0.18);
    transition: opacity 220ms ease;
}

.home-editorial-strip-card {
    margin: 0;
    position: relative;
    z-index: 1;
    border-radius: 0;
    overflow: visible;
    border: 0;
    background: transparent;
    box-shadow: none;
    width: auto;
    max-width: none;
    height: clamp(220px, 27vw, 330px);
    aspect-ratio: auto;
    flex: 0 0 auto;
    transform: translate3d(0, 0, 0);
    --strip-tilt-y-start: -2.4deg;
    --strip-tilt-y-end: 1.1deg;
    transform-origin: center bottom;
    transform-style: flat;
    transition: transform 1460ms cubic-bezier(0.16, 0.84, 0.22, 1), filter 760ms ease;
}

.home-editorial-strip-track:hover .home-editorial-strip-card,
.home-editorial-strip-track:focus-within .home-editorial-strip-card {
    z-index: 1;
}

.home-editorial-strip-card img {
    width: auto;
    height: 100%;
    max-width: 100%;
    object-fit: contain;
    object-position: center;
    display: block;
    filter: saturate(0.92) contrast(1.03);
    transform: translate3d(0, 0, 0);
    transition: transform 520ms ease, filter 420ms ease, opacity 520ms ease;
    animation: none;
}

.home-editorial-strip-card::before {
    content: none;
    position: absolute;
    inset: -2px;
    pointer-events: none;
    z-index: 3;
    border: 1px solid rgba(244, 186, 91, 0.5);
    box-shadow:
        0 0 0 1px rgba(255, 255, 255, 0.28),
        0 0 22px rgba(244, 186, 91, 0.3),
        0 0 44px rgba(124, 190, 255, 0.2);
    opacity: 0;
    transition: opacity 320ms ease;
}

.home-editorial-strip-card::after {
    content: none;
    position: absolute;
    top: -20%;
    bottom: -20%;
    left: -40%;
    width: 34%;
    pointer-events: none;
    z-index: 2;
    opacity: 0.18;
    background: linear-gradient(90deg, rgba(255,255,255,0), rgba(255,255,255,0.18), rgba(255,255,255,0));
    transform: translateX(-20%) rotate(11deg);
    transition: opacity 280ms ease, transform 520ms ease;
    animation: none;
}

.home-editorial-strip-track .home-editorial-strip-card:nth-child(4n + 1) {
    width: auto;
    max-width: none;
    height: clamp(220px, 27vw, 330px);
    aspect-ratio: auto;
}

.home-editorial-strip-track .home-editorial-strip-card:nth-child(4n + 2) {
    width: auto;
    max-width: none;
    height: clamp(220px, 27vw, 330px);
    aspect-ratio: auto;
}

.home-editorial-strip-track .home-editorial-strip-card:nth-child(4n + 3) {
    width: auto;
    max-width: none;
    height: clamp(220px, 27vw, 330px);
    aspect-ratio: auto;
}

.home-editorial-strip-track .home-editorial-strip-card:nth-child(4n + 4) {
    width: auto;
    max-width: none;
    height: clamp(220px, 27vw, 330px);
    aspect-ratio: auto;
}

.home-editorial-strip-track .home-editorial-strip-card:nth-child(odd) img {
    animation-delay: -6s;
}

.home-editorial-strip-track .home-editorial-strip-card:nth-child(3n) img {
    animation-delay: -12s;
}

.home-editorial-strip-track .home-editorial-strip-card:nth-child(4n + 2)::after {
    animation-delay: -8s;
}

.home-editorial-strip-track .home-editorial-strip-card:nth-child(4n + 4)::after {
    animation-delay: -14s;
}

@media (hover: hover) and (pointer: fine) {
    .home-editorial-strip-card:focus-within,
    .home-editorial-strip-card.is-hovered {
        transform: translate3d(0, -8px, 0) rotateZ(-1.1deg) rotateX(4deg) rotateY(var(--strip-tilt-y-start)) scale(1.014);
        filter: drop-shadow(0 14px 26px rgba(4, 8, 18, 0.28));
        z-index: 180;
    }

    .home-editorial-strip-card:hover {
        filter: drop-shadow(0 14px 26px rgba(4, 8, 18, 0.28));
        animation: homeEditorialCardHoverSway 5.1s linear infinite alternate;
        animation-fill-mode: both;
        z-index: 180;
    }

    .home-editorial-strip-track .home-editorial-strip-card:nth-child(3n):hover,
    .home-editorial-strip-track .home-editorial-strip-card:nth-child(3n):focus-within,
    .home-editorial-strip-track .home-editorial-strip-card:nth-child(3n).is-hovered {
        --strip-tilt-y-start: 2deg;
        --strip-tilt-y-end: -0.9deg;
    }

    .home-editorial-strip-card:hover img,
    .home-editorial-strip-card:focus-within img,
    .home-editorial-strip-card.is-hovered img {
        transform: translate3d(0, 0, 0);
        opacity: 1;
        filter: saturate(1.05) contrast(1.09);
    }

    .home-editorial-strip-card:hover .home-editorial-strip-link::after,
    .home-editorial-strip-card:focus-within .home-editorial-strip-link::after,
    .home-editorial-strip-card.is-hovered .home-editorial-strip-link::after {
        opacity: 1;
    }
}

.home-editorial-strip-link:focus-visible {
    outline: 2px solid rgba(244, 186, 91, 0.5);
    outline-offset: 4px;
}

@keyframes homeEditorialMarquee {
    from { transform: translate3d(0, 0, 0); }
    to { transform: translate3d(-50%, 0, 0); }
}

@keyframes homeEditorialImageDrift {
    0% { transform: scale(1.025) translate3d(0%, 0%, 0); }
    50% { transform: scale(1.055) translate3d(-1.2%, -0.8%, 0); }
    100% { transform: scale(1.03) translate3d(0.9%, 0.5%, 0); }
}

@keyframes homeEditorialLightSweep {
    0%, 100% { opacity: 0.08; transform: translateX(-55%) rotate(11deg); }
    45% { opacity: 0.12; }
    60% { opacity: 0.22; transform: translateX(290%) rotate(11deg); }
}

.gallery.masonry {
    margin-top: 1.2rem;
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    grid-auto-rows: 6px;
    row-gap: 0.24rem;
    column-gap: 0.75rem;
    align-items: start;
    position: relative;
    perspective: 1100px;
    isolation: isolate;
}

@media (min-width: 1081px) {
    .gallery.masonry {
        grid-auto-flow: dense;
    }
}

.card {
    margin: 0;
    grid-row: span var(--masonry-span, 30);
    position: relative;
    z-index: 1;
    isolation: isolate;
    overflow: visible;
}

.gallery.masonry .card.is-landscape-wide {
    grid-column: span 2;
}

.gallery-filler-layer {
    position: absolute;
    inset: 0;
    pointer-events: none;
    z-index: 0;
    overflow: hidden;
}

.gallery-filler-card {
    position: absolute;
    border-radius: 12px;
    background:
        linear-gradient(180deg, rgba(255, 255, 255, 0.055), rgba(255, 255, 255, 0.015)),
        linear-gradient(145deg, rgba(58, 106, 214, 0.16), rgba(151, 88, 229, 0.13) 42%, rgba(34, 42, 76, 0.14));
    border: 1px solid rgba(255, 255, 255, 0.075);
    box-shadow:
        inset 0 1px 0 rgba(255, 255, 255, 0.06),
        inset 0 -18px 30px rgba(10, 16, 34, 0.12),
        0 0 0 1px rgba(128, 144, 206, 0.055),
        0 16px 34px rgba(8, 10, 18, 0.18);
    opacity: 0.96;
    overflow: hidden;
}

.gallery-filler-card::before,
.gallery-filler-card::after {
    content: '';
    position: absolute;
    inset: 0;
    border-radius: inherit;
    pointer-events: none;
}

.gallery-filler-card::before {
    background:
        radial-gradient(220px 140px at 18% 14%, rgba(255, 255, 255, 0.14), transparent 70%),
        radial-gradient(260px 170px at 82% 78%, rgba(137, 181, 255, 0.12), transparent 72%),
        radial-gradient(180px 128px at 52% 48%, rgba(202, 141, 255, 0.08), transparent 75%);
    opacity: 0.92;
}

.gallery-filler-card::after {
    background: linear-gradient(110deg,
        transparent 8%,
        rgba(255, 255, 255, 0.04) 28%,
        rgba(255, 255, 255, 0.15) 44%,
        rgba(196, 170, 255, 0.11) 50%,
        rgba(255, 255, 255, 0.04) 64%,
        transparent 88%);
    transform: translate3d(-130%, 0, 0);
    animation: galleryFillerShimmer 8.2s cubic-bezier(.23,.73,.24,1) infinite;
    animation-delay: var(--filler-delay, 0s);
    opacity: 0.78;
}

.gallery-filler-card::before {
    animation: galleryFillerGlowPulse 12s ease-in-out infinite;
    animation-delay: calc(var(--filler-delay, 0s) * -0.35);
}

@keyframes galleryFillerShimmer {
    0%, 10% { transform: translate3d(-130%, 0, 0); opacity: 0.18; }
    26% { opacity: 0.62; }
    40% { transform: translate3d(138%, 0, 0); opacity: 0.8; }
    100% { transform: translate3d(138%, 0, 0); opacity: 0.14; }
}

@keyframes galleryFillerGlowPulse {
    0%, 100% { opacity: 0.78; transform: scale(1); }
    50% { opacity: 1; transform: scale(1.01); }
}

.card.gallery-card-enter {
    opacity: 0;
    transform: translateY(8px) scale(0.994);
    filter: blur(3px);
    transition:
        opacity 300ms ease,
        transform 360ms cubic-bezier(.2,.8,.2,1),
        filter 280ms ease;
    transition-delay: var(--gallery-enter-delay, 0ms);
}

.card.gallery-card-enter.is-visible {
    opacity: 1;
    transform: translateY(0) scale(1);
    filter: blur(0);
}

.image-button {
    width: 100%;
    padding: 0;
    border: 0;
    border-radius: 12px;
    overflow: hidden;
    background: transparent;
    cursor: zoom-in;
    box-shadow: var(--shadow);
    position: relative;
    transform: translateY(0);
    transform-origin: center center;
    --gallery-tilt-y-start: -3.8deg;
    --gallery-tilt-y-end: 1.6deg;
    transition: transform 1580ms cubic-bezier(0.16, 0.84, 0.22, 1), box-shadow 760ms ease, filter 860ms ease;
    will-change: transform;
}

.image-button::before,
.image-button::after {
    content: '';
    position: absolute;
    inset: 0;
    pointer-events: none;
    opacity: 0;
    transition: opacity 520ms ease, transform 860ms cubic-bezier(0.18, 0.8, 0.24, 1);
}

.image-button::before {
    background:
        linear-gradient(180deg, rgba(8, 10, 16, 0.02), rgba(8, 10, 16, 0.16)),
        radial-gradient(120px 90px at 18% 12%, rgba(255, 255, 255, 0.08), transparent 72%);
}

.image-button::after {
    inset: -18% auto -18% -42%;
    width: 36%;
    background: linear-gradient(90deg, rgba(255,255,255,0), rgba(255,255,255,0.16), rgba(255,255,255,0));
    transform: translateX(-18%) rotate(10deg);
}

.image-button img {
    width: 100%;
    height: auto;
    display: block;
    transition: transform 760ms cubic-bezier(0.16, 0.84, 0.22, 1), opacity 460ms ease;
    filter: saturate(0.94) contrast(1.02);
}

.image-button.is-loading {
    background:
        linear-gradient(110deg, rgba(255, 255, 255, 0.03), rgba(255, 255, 255, 0.1), rgba(255, 255, 255, 0.03));
    background-size: 220% 100%;
    animation: uiSkeletonShimmer 1.4s ease-in-out infinite;
}

.image-button.is-loading img {
    opacity: 0;
}

@keyframes uiSkeletonShimmer {
    0% { background-position: 120% 0; }
    100% { background-position: -120% 0; }
}

.image-button:hover img,
.image-button:focus-visible img {
    transform: scale(1.035);
}

@media (hover: hover) and (pointer: fine) {
    .gallery.masonry .card:hover,
    .gallery.masonry .card:focus-within {
        z-index: 9999;
    }

    .gallery.masonry .card:nth-child(3n):hover,
    .gallery.masonry .card:nth-child(3n):focus-within {
        z-index: 9999;
    }

    .gallery.masonry .card:focus-within .image-button {
        --gallery-tilt-y-start: -3.8deg;
        --gallery-tilt-y-end: 2.2deg;
        transform: translate3d(0, -10px, 0) rotateZ(-1.8deg) rotateX(6deg) rotateY(var(--gallery-tilt-y-start)) scale(1.02);
        box-shadow: 0 28px 46px rgba(3, 6, 14, 0.34), 0 0 0 1px rgba(255, 255, 255, 0.1);
        position: relative;
        z-index: 8;
        filter: saturate(1.08);
    }

    .gallery.masonry .card:hover .image-button {
        --gallery-tilt-y-start: -3.8deg;
        --gallery-tilt-y-end: 1.6deg;
        box-shadow: 0 28px 46px rgba(3, 6, 14, 0.34), 0 0 0 1px rgba(255, 255, 255, 0.1);
        position: relative;
        z-index: 8;
        filter: saturate(1.08);
        animation: galleryThumbHoverSway 5.1s linear infinite alternate;
        animation-fill-mode: both;
    }

    .gallery.masonry .card:nth-child(3n):hover .image-button,
    .gallery.masonry .card:nth-child(3n):focus-within .image-button {
        --gallery-tilt-y-start: 3.2deg;
        --gallery-tilt-y-end: -1.3deg;
        transform: translate3d(0, -10px, 0) rotateZ(1.5deg) rotateX(6deg) rotateY(var(--gallery-tilt-y-start)) scale(1.02);
    }

    .gallery.masonry .card:hover .image-button::before,
    .gallery.masonry .card:focus-within .image-button::before {
        opacity: 1;
    }

    .gallery.masonry .card:hover .image-button::after,
    .gallery.masonry .card:focus-within .image-button::after {
        opacity: 0.75;
        transform: translateX(300%) rotate(10deg);
    }

    .gallery.masonry .card:hover .image-button img,
    .gallery.masonry .card:focus-within .image-button img {
        transform: scale(1.016);
        opacity: 0.985;
    }
}

@keyframes galleryThumbHoverSway {
    0% {
        transform: translate3d(0, 0, 0) rotateZ(0deg) rotateX(0deg) rotateY(0deg) scale(1);
    }
    45% {
        transform: translate3d(0, -10px, 0) rotateZ(-1.8deg) rotateX(6deg) rotateY(var(--gallery-tilt-y-start)) scale(1.02);
    }
    72% {
        transform: translate3d(0, -10.8px, 0) rotateZ(-0.35deg) rotateX(6.2deg) rotateY(calc(var(--gallery-tilt-y-start) * 0.2)) scale(1.0206);
    }
    100% {
        transform: translate3d(0, -11.2px, 0) rotateZ(0.95deg) rotateX(6.6deg) rotateY(var(--gallery-tilt-y-end)) scale(1.0214);
    }
}

.pricing-grid,
.contact-grid {
    display: grid;
    gap: 1rem;
    margin-top: 1.2rem;
}

.pricing-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    perspective: 1200px;
}

.contact-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

.price-card,
.contact-card {
    padding: 1rem;
}

.price-card.featured {
    border-color: rgba(211, 168, 110, 0.5);
    background: linear-gradient(160deg, rgba(35, 25, 50, 0.7), rgba(22, 24, 36, 0.9));
}

.price-card {
    position: relative;
    overflow: hidden;
    transform-style: preserve-3d;
}

.price-card-link {
    display: flex;
    flex-direction: column;
    text-decoration: none;
    color: inherit;
    cursor: pointer;
    transform-origin: center bottom;
    --price-tilt-start-x: 3.8deg;
    --price-tilt-start-y: -3.6deg;
    --price-tilt-end-x: 4.8deg;
    --price-tilt-end-y: 1.2deg;
    transition: transform 520ms cubic-bezier(0.2, 0.82, 0.24, 1), border-color 220ms ease, box-shadow 260ms ease, background 260ms ease, filter 260ms ease;
}

.price-card-link > * {
    transition: transform 300ms cubic-bezier(0.2, 0.82, 0.24, 1), opacity 220ms ease;
}

.price-card-link::after {
    content: '';
    position: absolute;
    inset: -16% -36%;
    background: linear-gradient(115deg, transparent 28%, rgba(255, 255, 255, 0.22) 50%, transparent 72%);
    transform: translate3d(-82%, 0, 0) rotate(8deg);
    opacity: 0;
    pointer-events: none;
    transition: transform 520ms ease, opacity 260ms ease;
}

.price-card-link:hover,
.price-card-link:focus-visible {
    transform: translate3d(0, -10px, 0) rotateX(var(--price-tilt-start-x)) rotateY(var(--price-tilt-start-y)) scale(1.016);
    border-color: rgba(244, 186, 91, 0.42);
    box-shadow: 0 22px 38px rgba(2, 6, 18, 0.34), 0 0 0 1px rgba(244, 186, 91, 0.18) inset;
    filter: saturate(1.09);
    outline: none;
}

.price-card-link:hover {
    animation: priceCardHoverSway 5.1s linear infinite alternate;
    animation-fill-mode: both;
}

.price-card-portrait.price-card-link {
    --price-tilt-start-y: -4.2deg;
    --price-tilt-end-y: 1.4deg;
}

.price-card-glamour.price-card-link {
    --price-tilt-start-y: 2.8deg;
    --price-tilt-end-y: -1.25deg;
}

.price-card-event.price-card-link {
    --price-tilt-start-y: -2.6deg;
    --price-tilt-end-y: 1.4deg;
}

.price-card-link:hover > h2,
.price-card-link:focus-visible > h2 {
    transform: translate3d(0, -1px, 18px);
}

.price-card-link:hover > .price,
.price-card-link:focus-visible > .price {
    transform: translate3d(0, 0, 14px);
}

.price-card-link:hover > ul,
.price-card-link:focus-visible > ul,
.price-card-link:hover > .admin-file-meta,
.price-card-link:focus-visible > .admin-file-meta {
    transform: translate3d(0, 1px, 10px);
}

.price-card-link:hover::after,
.price-card-link:focus-visible::after {
    transform: translate3d(68%, 0, 0) rotate(8deg);
    opacity: 1;
}

.price-card-link:active {
    transform: translate3d(0, -4px, 0) rotateX(1.2deg) scale(1.006);
    animation: none;
}

.price-card-link h2 {
    color: inherit;
}

.price-card-link .admin-file-meta {
    color: var(--ink-soft);
}

.price-card::before {
    content: '';
    position: absolute;
    inset: 0 0 auto 0;
    height: 3px;
    opacity: 0.9;
}

.price-card-portrait::before {
    background: linear-gradient(90deg, #d3a86e, #f1c895);
}

.price-card-glamour::before {
    background: linear-gradient(90deg, #a786ff, #d3a86e);
    height: 4px;
}

.price-card-event::before {
    background: linear-gradient(90deg, #68c7d9, #7fb8ff);
}

.price-card-portrait {
    background:
        radial-gradient(circle at 85% 18%, rgba(244, 186, 91, 0.08) 0%, transparent 42%),
        var(--panel);
}

.price-card-glamour {
    background:
        radial-gradient(circle at 10% 10%, rgba(140, 108, 224, 0.14) 0%, transparent 46%),
        linear-gradient(160deg, rgba(35, 25, 50, 0.7), rgba(22, 24, 36, 0.9));
}

.price-card-event {
    background:
        radial-gradient(circle at 85% 15%, rgba(104, 199, 217, 0.1) 0%, transparent 40%),
        var(--panel);
}

.price-card .admin-file-meta {
    margin-top: auto;
    padding-top: 0.35rem;
}

.price {
    margin: 0.4rem 0 0.7rem;
    font-size: 1.28rem;
    font-weight: 700;
    color: var(--accent);
}

@keyframes priceCardHoverSway {
    0% {
        transform: translate3d(0, 0, 0) rotateZ(0deg) rotateX(0deg) rotateY(0deg) scale(1);
    }
    45% {
        transform: translate3d(0, -8px, 0) rotateX(var(--price-tilt-start-x)) rotateY(var(--price-tilt-start-y)) scale(1.014);
    }
    72% {
        transform: translate3d(0, -9px, 0) rotateX(calc(var(--price-tilt-start-x) + 0.1deg)) rotateY(calc(var(--price-tilt-start-y) * 0.22)) scale(1.0148);
    }
    100% {
        transform: translate3d(0, -9.5px, 0) rotateX(calc(var(--price-tilt-end-x) - 0.5deg)) rotateY(var(--price-tilt-end-y)) scale(1.0156);
    }
}

@keyframes categoryCardHoverSway {
    0% {
        transform: translate3d(0, 0, 0) rotateZ(0deg) rotateX(0deg) rotateY(0deg) scale(1);
    }
    45% {
        transform: translate3d(0, -8px, 0) rotateZ(-1.2deg) rotateX(4deg) rotateY(var(--cat-tilt-y-start)) scale(1.016);
    }
    72% {
        transform: translate3d(0, -8.6px, 0) rotateZ(-0.35deg) rotateX(4.1deg) rotateY(calc(var(--cat-tilt-y-start) * 0.22)) scale(1.0164);
    }
    100% {
        transform: translate3d(0, -9px, 0) rotateZ(0.8deg) rotateX(4.4deg) rotateY(var(--cat-tilt-y-end)) scale(1.0168);
    }
}

@keyframes homeEditorialCardHoverSway {
    0% {
        transform: translate3d(0, 0, 0) rotateZ(0deg) rotateX(0deg) rotateY(0deg) scale(1);
    }
    45% {
        transform: translate3d(0, -8px, 0) rotateZ(-1.1deg) rotateX(4deg) rotateY(var(--strip-tilt-y-start)) scale(1.014);
    }
    72% {
        transform: translate3d(0, -8.5px, 0) rotateZ(-0.3deg) rotateX(4.1deg) rotateY(calc(var(--strip-tilt-y-start) * 0.2)) scale(1.0143);
    }
    100% {
        transform: translate3d(0, -8.9px, 0) rotateZ(0.72deg) rotateX(4.3deg) rotateY(var(--strip-tilt-y-end)) scale(1.0146);
    }
}

.narrow {
    max-width: 760px;
}

.adult-gate-form {
    display: flex;
    gap: 0.7rem;
    flex-wrap: wrap;
    margin-top: 1rem;
}

.contact-cta-card {
    grid-column: 1 / -1;
    display: grid;
    grid-template-columns: minmax(0, 1.35fr) auto;
    gap: 1rem;
    align-items: center;
    border-color: rgba(244, 186, 91, 0.22);
    background:
        radial-gradient(circle at 85% 18%, rgba(140, 108, 224, 0.12) 0%, transparent 38%),
        radial-gradient(circle at 12% 82%, rgba(244, 186, 91, 0.1) 0%, transparent 35%),
        rgba(22, 24, 34, 0.9);
}

.contact-cta-card .eyebrow {
    margin-bottom: 0.35rem;
}

.contact-cta-card h2 {
    margin-bottom: 0.35rem;
}

.contact-cta-card p {
    margin: 0;
}

.contact-cta-actions {
    display: grid;
    gap: 0.45rem;
    justify-items: end;
    text-align: right;
}

.contact-response-time {
    color: var(--ink-soft);
    font-size: 0.85rem;
}

.contact-form-card {
    grid-column: 1 / -1;
    scroll-margin-top: 6.5rem;
}

.contact-form-card > p {
    margin: 0.4rem 0 0.8rem;
}

.contact-prefill-badge-wrap {
    margin: 0.1rem 0 0.85rem;
    padding: 0.7rem 0.8rem;
    border-radius: 12px;
    border: 1px solid rgba(124, 190, 255, 0.18);
    background:
        radial-gradient(circle at 14% 18%, rgba(124, 190, 255, 0.1), transparent 58%),
        rgba(255, 255, 255, 0.02);
    display: grid;
    gap: 0.25rem;
}

.contact-prefill-badge {
    display: inline-flex;
    align-items: center;
    width: fit-content;
    max-width: 100%;
    border-radius: 999px;
    border: 1px solid rgba(124, 190, 255, 0.28);
    background: rgba(124, 190, 255, 0.12);
    color: var(--ink);
    padding: 0.28rem 0.65rem;
    font-size: 0.83rem;
    font-weight: 700;
    line-height: 1.2;
}

.contact-prefill-badge-wrap small {
    color: var(--ink-soft);
    line-height: 1.35;
}

.contact-form {
    display: grid;
    gap: 0.75rem;
}

.contact-form-hint-card {
    border-radius: 12px;
    border: 1px solid rgba(244, 186, 91, 0.18);
    background:
        radial-gradient(circle at 88% 18%, rgba(244, 186, 91, 0.08), transparent 45%),
        rgba(255, 255, 255, 0.02);
    padding: 0.75rem 0.85rem;
}

.contact-form-hint-title {
    margin: 0 0 0.35rem;
    color: var(--ink);
    font-weight: 700;
}

.contact-form-hint-list {
    margin: 0;
    padding-left: 1.05rem;
    color: var(--ink-soft);
    display: grid;
    gap: 0.25rem;
    line-height: 1.35;
}

.contact-form label {
    display: grid;
    gap: 0.35rem;
    color: var(--ink-soft);
    font-size: 0.9rem;
}

.contact-form input,
.contact-form textarea {
    border-radius: 10px;
    border: 1px solid var(--line);
    background: rgba(255, 255, 255, 0.04);
    color: var(--ink);
    padding: 0.65rem 0.75rem;
    font: inherit;
}

.contact-form textarea {
    resize: vertical;
    min-height: 140px;
}

.contact-form-success-panel {
    margin-top: 0.3rem;
    border: 1px solid rgba(123, 211, 156, 0.22);
    background: linear-gradient(180deg, rgba(123, 211, 156, 0.08), rgba(255, 255, 255, 0.02));
    border-radius: 12px;
    padding: 0.9rem;
    display: grid;
    gap: 0.65rem;
}

.contact-form-success-title {
    margin: 0;
    color: #d7ffe9;
    font-weight: 800;
}

.contact-form-actions {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.7rem;
    flex-wrap: wrap;
}

.contact-form-honeypot {
    position: absolute;
    left: -10000px;
    width: 1px;
    height: 1px;
    overflow: hidden;
}

.adult-modal {
    position: fixed;
    inset: 0;
    z-index: 4900;
    isolation: isolate;
    display: grid;
    place-items: center;
    padding: 1rem;
    background: rgba(4, 4, 9, 0.75);
    opacity: 0;
    visibility: hidden;
    transition: opacity 180ms ease, visibility 180ms ease;
}

.adult-modal.open {
    opacity: 1;
    visibility: visible;
}

.adult-modal-card {
    width: min(560px, 92vw);
    padding: 1.2rem;
}

.adult-modal-card p {
    color: var(--ink-soft);
}

.adult-actions {
    display: flex;
    gap: 0.6rem;
    justify-content: flex-end;
    flex-wrap: wrap;
    align-items: center;
}

.cookie-modal {
    position: fixed;
    inset: 0;
    display: grid;
    place-items: center;
    padding: 1rem;
    background: rgba(3, 3, 8, 0.78);
    opacity: 0;
    visibility: hidden;
    transition: opacity 180ms ease, visibility 180ms ease;
    z-index: 1200;
}

.cookie-modal.open {
    opacity: 1;
    visibility: visible;
}

.cookie-modal-card {
    width: min(640px, 94vw);
    padding: 1.2rem;
}

.cookie-modal-card p {
    color: var(--ink-soft);
}

.cookie-actions {
    display: flex;
    justify-content: flex-end;
    gap: 0.6rem;
    flex-wrap: wrap;
}

.lightbox {
    position: fixed;
    inset: 0;
    z-index: 5000;
    isolation: isolate;
    display: grid;
    grid-template-columns: auto 1fr auto;
    align-items: center;
    gap: 0.8rem;
    padding: 1rem;
    background: rgba(3, 3, 8, 0.88);
    opacity: 0;
    visibility: hidden;
    transition: opacity 180ms ease, visibility 180ms ease;
    backdrop-filter: blur(2px);
    --lightbox-control-size: 2.8rem;
    --lightbox-control-gap: 0.65rem;
    --lightbox-control-top: 1rem;
    --lightbox-control-right: 1rem;
}

.lightbox::before,
.lightbox::after {
    position: absolute;
    left: 50%;
    pointer-events: none;
    opacity: 0;
    transition: opacity 160ms ease;
    z-index: 26;
}

.lightbox::before {
    content: '';
    top: 50%;
    width: 40px;
    height: 40px;
    margin-left: -20px;
    margin-top: -20px;
    border-radius: 999px;
    border: 3px solid rgba(255, 255, 255, 0.2);
    border-top-color: rgba(244, 186, 91, 0.95);
    animation: lightboxSpinner 760ms linear infinite;
}

.lightbox::after {
    content: 'Betöltés';
    top: calc(50% + 30px);
    transform: translateX(-50%);
    font-size: 0.82rem;
    letter-spacing: 0.04em;
    color: rgba(240, 237, 248, 0.9);
    background: rgba(8, 10, 18, 0.56);
    border: 1px solid rgba(255, 255, 255, 0.16);
    border-radius: 999px;
    padding: 0.24rem 0.58rem;
}

.lightbox.is-loading::before,
.lightbox.is-loading::after {
    opacity: 1;
}

.lightbox.open {
    opacity: 1;
    visibility: visible;
}

.lightbox:focus,
.lightbox:focus-visible {
    outline: none;
    box-shadow: none;
}

.lightbox-image {
    grid-column: 2;
    grid-row: 1;
    max-width: min(88vw, 1220px);
    max-height: 88vh;
    border-radius: 12px;
    justify-self: center;
    transition: transform 180ms ease, opacity 160ms ease, filter 180ms ease;
    transform: translateY(10px) scale(0.985);
    opacity: 0;
    filter: saturate(0.96);
    box-shadow: 0 24px 60px rgba(0, 0, 0, 0.38);
    z-index: 1;
}

.lightbox-image-swipe-incoming {
    grid-column: 2;
    grid-row: 1;
    justify-self: center;
    align-self: center;
    max-width: min(88vw, 1220px);
    max-height: 88vh;
    border-radius: 12px;
    transform: translate3d(0, 0, 0) scale(1);
    opacity: 0;
    pointer-events: none;
    box-shadow: 0 24px 60px rgba(0, 0, 0, 0.38);
    z-index: 2;
}

.lightbox-swipe-layer {
    position: absolute;
    inset: 0;
    z-index: 3;
    pointer-events: none;
    opacity: 1;
}

.lightbox-swipe-slide {
    position: absolute;
    inset: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    overflow: hidden;
}

.lightbox-swipe-slide-image {
    max-width: min(88vw, 1220px);
    max-height: 88vh;
    border-radius: 12px;
    box-shadow: 0 24px 60px rgba(0, 0, 0, 0.38);
}

.lightbox.is-fullscreen {
    padding: 0;
    background: rgba(3, 4, 10, 0.95);
    backdrop-filter: blur(1.5px);
}

.lightbox.is-fullscreen .lightbox-image {
    max-width: 100vw;
    max-height: 100vh;
    border-radius: 0;
    box-shadow: none;
    touch-action: none;
}

.lightbox.is-fullscreen .lightbox-image-swipe-incoming {
    max-width: 100vw;
    max-height: 100vh;
    border-radius: 0;
    box-shadow: none;
}

.lightbox.is-fullscreen .lightbox-swipe-slide-image {
    max-width: 100vw;
    max-height: 100vh;
    border-radius: 0;
    box-shadow: none;
}

@keyframes lightboxSpinner {
    from { transform: rotate(0deg); }
    to { transform: rotate(360deg); }
}

.lightbox.open .lightbox-image {
    transform: translateY(0) scale(1);
    opacity: 1;
}

.lightbox.is-swipe-dragging .lightbox-image,
.lightbox.is-swipe-dragging .lightbox-image-swipe-incoming {
    transition: none !important;
}

.lightbox.is-zoomed .lightbox-image {
    transition: none !important;
}

.lightbox.is-image-transitioning .lightbox-image {
    opacity: 0.62;
    transform: scale(0.998);
    filter: blur(1.5px) saturate(0.94);
}

.lightbox-close,
.lightbox-fullscreen,
.lightbox-nav {
    border: 1px solid var(--line);
    color: #fff;
    background: rgba(255, 255, 255, 0.1);
    width: var(--lightbox-control-size);
    height: var(--lightbox-control-size);
    border-radius: 999px;
    cursor: pointer;
    font-size: 1.65rem;
    line-height: 1;
    transition: transform 160ms ease, background 160ms ease, border-color 160ms ease;
    position: relative;
    z-index: 22;
}

.lightbox-nav {
    z-index: 23;
}

.lightbox.is-fullscreen .lightbox-close,
.lightbox.is-fullscreen .lightbox-fullscreen,
.lightbox.is-fullscreen .lightbox-nav {
    background: rgba(8, 10, 18, 0.24);
    border-color: rgba(255, 255, 255, 0.17);
    box-shadow: 0 8px 18px rgba(2, 2, 8, 0.2);
    backdrop-filter: blur(8px);
}

.lightbox.open .lightbox-nav,
.lightbox.open .lightbox-fullscreen,
.lightbox.open .lightbox-close,
.lightbox.open .lightbox-counter {
    animation: lightboxControlIn 220ms ease both;
}

.lightbox.open .lightbox-counter {
    animation-name: lightboxCounterIn;
}

.lightbox.open .lightbox-nav.prev { animation-delay: 40ms; }
.lightbox.open .lightbox-nav.next { animation-delay: 55ms; }
.lightbox.open .lightbox-fullscreen { animation-delay: 65ms; }
.lightbox.open .lightbox-close { animation-delay: 75ms; }
.lightbox.open .lightbox-counter { animation-delay: 95ms; }

.lightbox-close:hover,
.lightbox-fullscreen:hover,
.lightbox-nav:hover,
.lightbox-close:focus-visible,
.lightbox-fullscreen:focus-visible,
.lightbox-nav:focus-visible {
    transform: translateY(-1px) scale(1.02);
    background: rgba(255, 255, 255, 0.14);
    border-color: rgba(255, 255, 255, 0.24);
    outline: none;
    box-shadow: 0 0 0 2px rgba(255, 255, 255, 0.16);
}

.lightbox.is-fullscreen .lightbox-close:hover,
.lightbox.is-fullscreen .lightbox-fullscreen:hover,
.lightbox.is-fullscreen .lightbox-nav:hover,
.lightbox.is-fullscreen .lightbox-close:focus-visible,
.lightbox.is-fullscreen .lightbox-fullscreen:focus-visible,
.lightbox.is-fullscreen .lightbox-nav:focus-visible {
    background: rgba(255, 255, 255, 0.2);
    border-color: rgba(255, 255, 255, 0.28);
}

.lightbox-close {
    position: absolute;
    top: var(--lightbox-control-top);
    right: var(--lightbox-control-right);
}

.lightbox-fullscreen {
    position: absolute;
    top: var(--lightbox-control-top);
    right: calc(var(--lightbox-control-right) + var(--lightbox-control-size) + var(--lightbox-control-gap));
    font-size: 1.2rem;
    font-weight: 600;
}

.lightbox.is-fullscreen .lightbox-close {
    top: max(var(--lightbox-control-top), env(safe-area-inset-top));
    right: max(var(--lightbox-control-right), env(safe-area-inset-right));
}

.lightbox.is-fullscreen .lightbox-fullscreen {
    top: max(var(--lightbox-control-top), env(safe-area-inset-top));
    right: calc(max(var(--lightbox-control-right), env(safe-area-inset-right)) + var(--lightbox-control-size) + var(--lightbox-control-gap));
}

.lightbox.is-fullscreen .lightbox-nav {
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    z-index: 23;
}

.lightbox.is-fullscreen .lightbox-nav.prev {
    left: max(0.65rem, env(safe-area-inset-left));
}

.lightbox.is-fullscreen .lightbox-nav.next {
    right: max(0.65rem, env(safe-area-inset-right));
}

.lightbox-fullscreen[hidden] {
    display: none !important;
}

.lightbox-counter {
    position: absolute;
    left: 50%;
    bottom: 1rem;
    transform: translateX(-50%);
    color: #fff;
    background: rgba(10, 10, 18, 0.7);
    border: 1px solid rgba(255, 255, 255, 0.18);
    border-radius: 999px;
    padding: 0.35rem 0.7rem;
    font-size: 0.9rem;
    line-height: 1;
    letter-spacing: 0.02em;
    min-width: 4.5rem;
    text-align: center;
    z-index: 21;
}

/* Unified micro-interaction language for clickable controls */
:where(.cta, .btn-muted, .nav-link, .gallery-category-chip, .gallery-tag-chip, .price-card-link, .home-editorial-strip-link, .lightbox-nav, .lightbox-close, .lightbox-fullscreen, .category-card .card-link, .image-button) {
    transition:
        transform 180ms ease,
        box-shadow 220ms ease,
        background-color 180ms ease,
        border-color 180ms ease,
        opacity 180ms ease;
}

:where(.cta, .btn-muted, .nav-link, .gallery-category-chip, .gallery-tag-chip, .price-card-link, .home-editorial-strip-link, .lightbox-nav, .lightbox-close, .lightbox-fullscreen, .category-card .card-link, .image-button):active {
    transform: translateY(0) scale(0.985);
}

:where(.cta, .btn-muted, .nav-link, .gallery-category-chip, .gallery-tag-chip, .price-card-link, .home-editorial-strip-link, .lightbox-nav, .lightbox-close, .lightbox-fullscreen, .category-card .card-link, .image-button):focus-visible {
    outline: 2px solid rgba(244, 186, 91, 0.45);
    outline-offset: 2px;
}

.gallery-hero {
    position: relative;
    overflow: hidden;
    --hero-accent-a: rgba(124, 176, 255, 0.12);
    --hero-accent-b: rgba(180, 128, 255, 0.09);
    --hero-line: rgba(255, 255, 255, 0.12);
}

.gallery-hero::before {
    content: '';
    position: absolute;
    inset: 0;
    pointer-events: none;
    background:
        radial-gradient(720px 260px at 88% -8%, var(--hero-accent-a), transparent 62%),
        radial-gradient(680px 280px at 8% 118%, var(--hero-accent-b), transparent 62%);
    z-index: 0;
}

.gallery-hero > .hero-layout {
    position: relative;
    z-index: 1;
}

.gallery-hero .hero-copy h1 {
    text-shadow: 0 14px 34px rgba(5, 7, 12, 0.2);
}

.gallery-page {
    --gallery-hero-accent-strength: 1;
    --gallery-hero-motion-scale: 1;
}

.gallery-page.gallery-preset-soft {
    --gallery-hero-accent-strength: 0.78;
    --gallery-hero-motion-scale: 1.16;
}

.gallery-page.gallery-preset-medium {
    --gallery-hero-accent-strength: 1;
    --gallery-hero-motion-scale: 1;
}

.gallery-page.gallery-preset-strong {
    --gallery-hero-accent-strength: 1.25;
    --gallery-hero-motion-scale: 0.88;
}

.gallery-page .gallery-hero::before {
    opacity: var(--gallery-hero-accent-strength);
}

.gallery-page .hero-block .vertical-image-slot,
.gallery-page .hero-block .prices-intro-image-slot {
    animation-duration: calc(24s * var(--gallery-hero-motion-scale));
}

.gallery-page .hero-block .vertical-image-slot img,
.gallery-page .hero-block .prices-intro-image-slot img {
    animation-duration: calc(30s * var(--gallery-hero-motion-scale));
}

.gallery-theme-events .gallery-hero,
.gallery-hero--events {
    --hero-accent-a: rgba(94, 188, 255, 0.16);
    --hero-accent-b: rgba(80, 123, 236, 0.1);
}

.gallery-theme-events .hero-copy .eyebrow,
.gallery-hero--events .hero-copy .eyebrow {
    color: #9fd5ff;
}

.gallery-theme-events .gallery-hero .hero-copy h1,
.gallery-hero--events .hero-copy h1 {
    max-width: 14ch;
    letter-spacing: -0.012em;
}

.gallery-theme-events .gallery-hero .lead,
.gallery-hero--events .lead {
    color: rgba(214, 233, 255, 0.86);
}

.gallery-theme-events .hero-block .vertical-image-slot,
.gallery-theme-events .hero-block .prices-intro-image-slot,
.gallery-hero--events .vertical-image-slot {
    animation-duration: calc(18s * var(--gallery-hero-motion-scale));
}

.gallery-theme-events .hero-block .vertical-image-slot img,
.gallery-hero--events .vertical-image-slot img {
    animation-duration: calc(22s * var(--gallery-hero-motion-scale));
}

.gallery-theme-events .gallery-category-chip.is-active {
    border-color: rgba(132, 204, 255, 0.46);
    background: rgba(132, 204, 255, 0.14);
    color: #d9f1ff;
}

.gallery-theme-portraits .gallery-hero,
.gallery-hero--portraits {
    --hero-accent-a: rgba(245, 183, 116, 0.16);
    --hero-accent-b: rgba(236, 143, 94, 0.1);
}

.gallery-theme-portraits .hero-copy .eyebrow,
.gallery-hero--portraits .hero-copy .eyebrow {
    color: #f3c27f;
}

.gallery-theme-portraits .gallery-hero .hero-copy h1,
.gallery-hero--portraits .hero-copy h1 {
    letter-spacing: -0.02em;
    max-width: 17ch;
}

.gallery-theme-portraits .gallery-hero .lead,
.gallery-hero--portraits .lead {
    color: rgba(255, 235, 210, 0.84);
}

.gallery-theme-portraits .hero-block .vertical-image-slot,
.gallery-theme-portraits .hero-block .prices-intro-image-slot,
.gallery-hero--portraits .vertical-image-slot {
    animation-duration: calc(26s * var(--gallery-hero-motion-scale));
}

.gallery-theme-portraits .hero-block .vertical-image-slot img,
.gallery-hero--portraits .vertical-image-slot img {
    animation-duration: calc(32s * var(--gallery-hero-motion-scale));
}

.gallery-theme-portraits .gallery-category-chip.is-active {
    border-color: rgba(243, 194, 127, 0.46);
    background: rgba(243, 194, 127, 0.14);
    color: #ffe8cc;
}

.gallery-theme-glamour .gallery-hero,
.gallery-hero--glamour {
    --hero-accent-a: rgba(181, 129, 255, 0.18);
    --hero-accent-b: rgba(255, 150, 220, 0.11);
}

.gallery-theme-glamour .hero-copy .eyebrow,
.gallery-hero--glamour .hero-copy .eyebrow {
    color: #d5b0ff;
}

.gallery-theme-glamour .gallery-hero .hero-copy h1,
.gallery-hero--glamour .hero-copy h1 {
    letter-spacing: 0.006em;
    text-shadow: 0 16px 34px rgba(16, 10, 30, 0.28);
}

.gallery-theme-glamour .gallery-hero .lead,
.gallery-hero--glamour .lead {
    color: rgba(238, 218, 255, 0.86);
}

.gallery-theme-glamour .hero-block .vertical-image-slot::after,
.gallery-hero--glamour .vertical-image-slot::after {
    opacity: 0.55;
}

.gallery-theme-glamour .hero-block .vertical-image-slot img,
.gallery-hero--glamour .vertical-image-slot img {
    filter: saturate(0.94) contrast(1.08);
}

.gallery-theme-glamour .gallery-category-chip.is-active {
    border-color: rgba(211, 161, 255, 0.44);
    background: rgba(211, 161, 255, 0.14);
    color: #ebd9ff;
}

.gallery-theme-artistic-nude .gallery-hero,
.gallery-hero--artistic-nude {
    --hero-accent-a: rgba(120, 225, 169, 0.13);
    --hero-accent-b: rgba(116, 171, 255, 0.1);
}

.gallery-theme-artistic-nude .hero-copy .eyebrow,
.gallery-hero--artistic-nude .hero-copy .eyebrow {
    color: #9fe2c5;
}

.gallery-theme-artistic-nude .gallery-hero .hero-copy h1,
.gallery-hero--artistic-nude .hero-copy h1 {
    letter-spacing: 0.004em;
    max-width: 15.5ch;
}

.gallery-theme-artistic-nude .gallery-hero .lead,
.gallery-hero--artistic-nude .lead {
    color: rgba(214, 241, 228, 0.84);
}

.gallery-theme-artistic-nude .hero-block .vertical-image-slot,
.gallery-theme-artistic-nude .hero-block .prices-intro-image-slot,
.gallery-hero--artistic-nude .vertical-image-slot {
    animation-duration: calc(30s * var(--gallery-hero-motion-scale));
}

.gallery-theme-artistic-nude .hero-block .vertical-image-slot img,
.gallery-hero--artistic-nude .vertical-image-slot img {
    animation-duration: calc(36s * var(--gallery-hero-motion-scale));
    filter: saturate(0.84) contrast(1.04);
}

.gallery-theme-artistic-nude .gallery-category-chip.is-active {
    border-color: rgba(159, 226, 197, 0.44);
    background: rgba(159, 226, 197, 0.14);
    color: #daf5ea;
}

.lightbox.is-fullscreen .lightbox-counter {
    bottom: max(0.7rem, env(safe-area-inset-bottom));
    background: rgba(8, 10, 18, 0.28);
    border-color: rgba(255, 255, 255, 0.16);
    box-shadow: 0 8px 18px rgba(2, 2, 8, 0.18);
    backdrop-filter: blur(8px);
}

/* Public motion performance: compositor hints for frequently animated elements */
.hero-motion-track,
.home-editorial-strip-marquee,
.hero-block .vertical-image-slot,
.hero-block .prices-intro-image-slot,
.hero-block .vertical-image-slot img,
.hero-block .prices-intro-image-slot img,
.card-media img,
.image-button,
.image-button img,
.lightbox,
.lightbox-close,
.lightbox-fullscreen,
.lightbox-nav,
.reveal-on-scroll,
.card.gallery-card-enter,
.category-card,
.gallery-cta-card,
.price-card-link,
.contact-cta-card {
    backface-visibility: hidden;
    transform: translateZ(0);
}

.hero-motion-track,
.home-editorial-strip-marquee,
.hero-block .vertical-image-slot,
.hero-block .prices-intro-image-slot,
.hero-block .vertical-image-slot img,
.hero-block .prices-intro-image-slot img,
.lightbox-image {
    will-change: transform, opacity;
}

.reveal-on-scroll,
.card.gallery-card-enter,
.image-button,
.image-button img,
.category-card,
.card-media img,
.price-card-link,
.gallery-cta-card {
    will-change: transform;
}

.category-card::before,
.category-card::after,
.card-link::before,
.card-link::after,
.image-button::before,
.image-button::after,
.cta::after {
    backface-visibility: hidden;
    will-change: opacity, transform;
}

@media (hover: hover) and (pointer: fine) {
    .category-card:hover,
    .category-card:focus-within,
    .image-button:hover,
    .image-button:focus-visible,
    .price-card-link:hover,
    .price-card-link:focus-visible,
    .gallery-cta-card:hover,
    .gallery-cta-card:focus-within {
        will-change: transform;
    }

    .category-card:hover .card-media img,
    .category-card:focus-within .card-media img,
    .gallery.masonry .card:hover .image-button img,
    .gallery.masonry .card:focus-within .image-button img,
    .hero-block:hover .vertical-image-slot img,
    .hero-block:focus-within .vertical-image-slot img,
    .hero-block:hover .prices-intro-image-slot img,
    .hero-block:focus-within .prices-intro-image-slot img {
        will-change: transform, opacity;
    }
}

.hero-block.is-motion-paused .vertical-image-slot,
.hero-block.is-motion-paused .prices-intro-image-slot,
.hero-block.is-motion-paused .vertical-image-slot::before,
.hero-block.is-motion-paused .prices-intro-image-slot::before,
.hero-block.is-motion-paused .vertical-image-slot img,
.hero-block.is-motion-paused .prices-intro-image-slot img {
    animation-play-state: paused !important;
}

.hero-motion-strip.is-motion-paused .hero-motion-track {
    animation-play-state: paused !important;
}

.home-editorial-strip-scroller.is-motion-paused .home-editorial-strip-marquee.is-animated {
    animation-play-state: paused !important;
}

@keyframes lightboxControlIn {
    from {
        opacity: 0;
        transform: translateY(8px) scale(0.96);
    }
    to {
        opacity: 1;
        transform: translateY(0) scale(1);
    }
}

@keyframes lightboxCounterIn {
    from {
        opacity: 0;
        transform: translateX(-50%) translateY(8px) scale(0.96);
    }
    to {
        opacity: 1;
        transform: translateX(-50%) translateY(0) scale(1);
    }
}

.gallery-category-nav-block {
    padding-top: 0.85rem;
    padding-bottom: 0.85rem;
}

.gallery-category-chip-row {
    display: flex;
    gap: 0.55rem;
    flex-wrap: wrap;
}

.gallery-category-chip {
    display: inline-flex;
    align-items: center;
    text-decoration: none;
    color: var(--ink-soft);
    border: 1px solid rgba(255, 255, 255, 0.1);
    background: rgba(255, 255, 255, 0.03);
    border-radius: 999px;
    padding: 0.45rem 0.8rem;
    font-size: 0.88rem;
    font-weight: 600;
    white-space: nowrap;
    touch-action: manipulation;
}

.gallery-category-chip:hover,
.gallery-category-chip:focus-visible {
    color: var(--ink);
    border-color: rgba(211, 168, 110, 0.42);
    background: rgba(244, 186, 91, 0.08);
    outline: none;
}

.gallery-category-chip.is-active {
    color: var(--ink);
    border-color: rgba(244, 186, 91, 0.28);
    background: rgba(244, 186, 91, 0.12);
}

.gallery-tag-filter-block {
    padding-top: 0;
    padding-bottom: 0.85rem;
}

.gallery-tag-chip-row {
    display: flex;
    gap: 0.55rem;
    flex-wrap: wrap;
}

.gallery-tag-chip {
    display: inline-flex;
    align-items: center;
    text-decoration: none;
    color: rgba(255, 255, 255, 0.82);
    border: 1px solid rgba(255, 255, 255, 0.08);
    background: rgba(255, 255, 255, 0.018);
    border-radius: 999px;
    padding: 0.38rem 0.72rem;
    font-size: 0.84rem;
    font-weight: 600;
    white-space: nowrap;
}

.gallery-tag-chip:hover,
.gallery-tag-chip:focus-visible {
    color: var(--ink);
    border-color: rgba(124, 190, 255, 0.35);
    background: rgba(124, 190, 255, 0.08);
    outline: none;
}

.gallery-tag-chip.is-active {
    color: var(--ink);
    border-color: rgba(124, 190, 255, 0.32);
    background: rgba(124, 190, 255, 0.14);
}

.gallery-cta-block {
    padding-top: 1.2rem;
}

.gallery-cta-card {
    display: grid;
    grid-template-columns: 1.35fr auto;
    gap: 1rem;
    align-items: center;
    border-radius: 16px;
    padding: 1rem 1.05rem;
    border: 1px solid rgba(255, 255, 255, 0.08);
    background:
        radial-gradient(circle at 10% 10%, rgba(244, 186, 91, 0.12), transparent 54%),
        radial-gradient(circle at 90% 85%, rgba(124, 190, 255, 0.14), transparent 58%),
        rgba(255, 255, 255, 0.02);
    transition: border-color 200ms ease, box-shadow 220ms ease, transform 200ms ease;
}

.gallery-cta-card:hover,
.gallery-cta-card:focus-within {
    border-color: rgba(244, 186, 91, 0.2);
    box-shadow: 0 14px 34px rgba(3, 7, 18, 0.22);
    transform: translateY(-2px);
}

.gallery-cta-card h2 {
    margin: 0.15rem 0 0.4rem;
}

.gallery-cta-card .lead {
    margin: 0;
    font-size: 0.98rem;
}

.gallery-cta-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 0.6rem;
    justify-content: flex-end;
}

.reveal-on-scroll {
    opacity: 0;
    transform: translateY(8px);
    filter: blur(2px);
    transition:
        opacity 460ms ease,
        transform 500ms cubic-bezier(.2,.8,.2,1),
        filter 320ms ease;
    transition-delay: var(--reveal-stagger, 0ms);
}

.reveal-on-scroll.is-revealed {
    opacity: 1;
    transform: translateY(0);
    filter: blur(0);
}

.cursor-glow {
    position: fixed;
    left: 0;
    top: 0;
    width: 168px;
    height: 168px;
    margin-left: -84px;
    margin-top: -84px;
    border-radius: 50%;
    pointer-events: none;
    z-index: 0;
    opacity: 0;
    background:
        radial-gradient(circle, rgba(244, 186, 91, 0.11) 0%, rgba(140, 108, 224, 0.075) 35%, transparent 72%);
    filter: blur(16px);
    transition: opacity 180ms ease;
}

.cursor-glow.is-visible {
    opacity: 0.44;
}

.hero-motion-strip {
    margin-top: 0.95rem;
    border-radius: 999px;
    border: 1px solid rgba(255, 255, 255, 0.08);
    background: rgba(255, 255, 255, 0.02);
    overflow: hidden;
    position: relative;
}

.hero-motion-strip::before,
.hero-motion-strip::after {
    content: '';
    position: absolute;
    top: 0;
    bottom: 0;
    width: 42px;
    z-index: 1;
    pointer-events: none;
}

.hero-motion-strip::before {
    left: 0;
    background: linear-gradient(90deg, rgba(15, 17, 24, 0.95), rgba(15, 17, 24, 0));
}

.hero-motion-strip::after {
    right: 0;
    background: linear-gradient(270deg, rgba(15, 17, 24, 0.95), rgba(15, 17, 24, 0));
}

.hero-motion-track {
    display: flex;
    gap: 0.55rem;
    width: max-content;
    padding: 0.48rem 0.65rem;
    animation: heroStripMove 44s linear infinite;
}

.hero-motion-strip:hover .hero-motion-track {
    animation-play-state: paused;
}

.hero-motion-pill {
    display: inline-flex;
    align-items: center;
    border-radius: 999px;
    border: 1px solid rgba(255, 255, 255, 0.08);
    background: rgba(255, 255, 255, 0.02);
    color: rgba(255, 255, 255, 0.82);
    padding: 0.22rem 0.55rem;
    font-size: 0.76rem;
    white-space: nowrap;
}

@keyframes heroStripMove {
    from { transform: translateX(0); }
    to { transform: translateX(-50%); }
}

.gallery-load-sentinel {
    width: 100%;
    height: 1px;
    margin-top: -1px;
    pointer-events: none;
}

#admin-image-lightbox {
    grid-template-columns: 1fr;
    justify-items: center;
}

#admin-image-lightbox .lightbox-image {
    grid-column: 1;
    justify-self: center;
}

#admin-image-lightbox .lightbox-counter {
    display: none;
}

@media (max-width: 1080px) {
    .category-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .gallery.masonry {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }

    .gallery-filler-layer {
        display: none;
    }

    .pricing-grid {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 760px) {
    .page-shell:not(.admin-page) {
        min-height: 100dvh;
    }

    .cursor-glow {
        display: none;
    }

    body::before,
    body::after {
        display: none;
    }

    .hero-copy::after {
        opacity: 0.16;
        filter: blur(18px);
        animation-duration: 22s;
    }

    .hero-block .vertical-image-slot,
    .hero-block .prices-intro-image-slot {
        animation-duration: 26s;
    }

    .hero-block .vertical-image-slot img {
        animation-duration: 32s;
        transform: scale(1.028) translate3d(0, 0, 0);
    }

    .hero-block .vertical-image-slot::before,
    .hero-block .prices-intro-image-slot::before {
        opacity: 0.14;
        animation-duration: 20s;
    }

    .hero-block .prices-intro-image-slot img {
        animation-duration: 34s;
        transform: scale(1.024) translate3d(0, 0, 0);
    }

    .vertical-image-slot img {
        animation-duration: 30s;
        transform: scale(1.015) translate3d(0, 0, 0);
    }

    .prices-intro-image-slot img {
        animation-duration: 34s;
        transform: scale(1.012) translate3d(0, 0, 0);
    }

    .vertical-image-slot::after,
    .prices-intro-image-slot::after {
        opacity: 0.28;
    }

    .reveal-on-scroll {
        transform: translateY(6px);
        filter: none;
        transition-duration: 320ms, 360ms, 1ms;
    }

    .card.gallery-card-enter {
        transform: translateY(6px) scale(0.998);
        filter: none;
        transition-duration: 260ms, 320ms, 1ms;
    }

    .lightbox.is-image-transitioning .lightbox-image {
        opacity: 0.78;
        transform: scale(1);
        filter: none;
    }

    .hero-motion-track {
        animation-duration: 56s;
    }

    .home-editorial-strip-scroller {
        margin-top: 0.8rem;
        mask-image: none;
        padding-top: 0.2rem;
        overflow-x: auto;
        overflow-y: visible;
    }

    .home-editorial-strip-block .section-head {
        margin-bottom: 0.2rem;
    }

    .home-editorial-strip-marquee.is-animated {
        animation: none;
    }

    .home-editorial-strip-scroller.is-manual-mobile .home-editorial-strip-track[aria-hidden="true"] {
        display: none;
    }

    .home-editorial-strip-scroller.is-manual-mobile .home-editorial-strip-marquee {
        width: max-content;
    }

    .home-editorial-strip-track {
        gap: 0;
        padding-right: 0;
    }

    .home-editorial-strip-card {
        width: auto;
        max-width: none;
        height: min(68vw, 320px);
        border-radius: 0;
        box-shadow: none;
    }

    .home-editorial-strip-mobile-meta {
        display: grid;
        gap: 0.35rem;
        margin-top: 0.4rem;
    }

    .home-editorial-strip-drag-hint {
        margin: 0;
        font-size: 0.78rem;
        color: rgba(255, 255, 255, 0.74);
        letter-spacing: 0.02em;
    }

    .home-editorial-strip-mobile-meta.is-used .home-editorial-strip-drag-hint {
        opacity: 0.45;
    }

    .home-editorial-strip-progress {
        height: 4px;
        border-radius: 999px;
        background: rgba(255, 255, 255, 0.12);
        overflow: hidden;
    }

    .home-editorial-strip-progress-fill {
        display: block;
        height: 100%;
        width: 0;
        border-radius: inherit;
        background: linear-gradient(90deg, rgba(244, 186, 91, 0.9), rgba(176, 128, 255, 0.9));
        transition: width 140ms linear;
    }

    .home-editorial-strip-track .home-editorial-strip-card:nth-child(4n + 1) {
        width: auto;
        max-width: none;
        height: min(76vw, 360px);
        aspect-ratio: auto;
    }

    .home-editorial-strip-track .home-editorial-strip-card:nth-child(4n + 3) {
        width: auto;
        max-width: none;
        height: min(76vw, 360px);
        aspect-ratio: auto;
    }

    .home-editorial-strip-track .home-editorial-strip-card:nth-child(4n + 2),
    .home-editorial-strip-track .home-editorial-strip-card:nth-child(4n + 4) {
        width: auto;
        max-width: none;
        height: min(76vw, 360px);
        aspect-ratio: auto;
    }

    .home-section-head-cta {
        width: 100%;
        justify-content: stretch;
    }

    .home-section-head-cta > a {
        flex: 1 1 100%;
        justify-content: center;
    }

    .home-mid-cta-band-layout,
    .home-final-cta-layout {
        grid-template-columns: 1fr;
        align-items: stretch;
        gap: 0.8rem;
    }

    .home-mid-cta-band h2,
    .home-final-cta h2 {
        max-width: none;
    }

    .home-mid-cta-band-actions,
    .home-final-cta-actions {
        justify-content: stretch;
    }

    .home-mid-cta-band-actions > a,
    .home-final-cta-actions > a {
        flex: 1 1 100%;
        justify-content: center;
    }

    .category-card::after {
        opacity: 0.68;
    }

    .card-link::before {
        display: none;
    }

    .card-content {
        margin: -1.8rem 0.45rem 0.45rem;
        padding: 0.52rem 0.65rem 0.58rem;
        gap: 0.2rem;
        backdrop-filter: blur(4px);
    }

    .card-content h3 {
        font-size: 1.22rem;
    }

    .card-content p {
        font-size: 0.82rem;
        -webkit-line-clamp: 1;
    }

    .category-card-chips {
        gap: 0.3rem;
    }

    .category-card-chip:nth-child(3) {
        display: none;
    }

    .category-card-cta-row {
        padding-top: 0.26rem;
    }

    .page-shell {
        width: min(680px, 94vw);
        padding-top: 0.5rem;
    }

    .page-shell:not(.admin-page) .site-header {
        flex-direction: column;
        align-items: flex-start;
        position: sticky;
        top: 0;
        margin: 0 calc((100vw - min(680px, 94vw)) / -2);
        padding: 0.65rem calc((100vw - min(680px, 94vw)) / 2) 0.6rem;
        background: rgba(12, 14, 20, 0.98);
        backdrop-filter: none;
        border-bottom: 1px solid rgba(255, 255, 255, 0.06);
    }

    .page-shell:not(.admin-page) .main-nav {
        width: 100%;
        display: grid;
        gap: 0.55rem;
        align-items: stretch;
    }

    .page-shell:not(.admin-page) .mobile-nav-toggle {
        display: inline-flex;
        justify-self: start;
    }

    .page-shell:not(.admin-page) .main-nav-panel {
        display: none;
        width: 100%;
        border: 1px solid rgba(255, 255, 255, 0.08);
        border-radius: 14px;
        background: rgba(18, 21, 30, 0.9);
        padding: 0.65rem;
        gap: 0.7rem;
        box-shadow: 0 10px 30px rgba(2, 2, 8, 0.22);
    }

    .page-shell:not(.admin-page) .main-nav-panel.is-open {
        display: grid;
    }

    .page-shell:not(.admin-page) .main-nav-group {
        width: 100%;
        gap: 0.45rem;
    }

    .page-shell:not(.admin-page) .main-nav-group-primary {
        display: grid;
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }

    .page-shell:not(.admin-page) .main-nav-group-primary .nav-link {
        text-align: center;
        justify-content: center;
    }

    .page-shell:not(.admin-page) .main-nav-dropdown {
        display: none;
    }

    .page-shell:not(.admin-page) .main-nav-group-mobile-categories {
        display: grid;
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 0.45rem;
    }

    .page-shell:not(.admin-page) .main-nav-group-mobile-categories .nav-link {
        text-align: center;
        justify-content: center;
    }

    .page-shell:not(.admin-page) .main-nav-group-mobile-categories-wrap {
        display: grid;
        grid-column: 1 / -1;
        gap: 0.45rem;
        padding: 0.55rem;
        border: 1px solid rgba(255, 255, 255, 0.08);
        border-radius: 12px;
        background: rgba(255, 255, 255, 0.02);
    }

    .page-shell:not(.admin-page) .main-nav-group-mobile-categories-wrap .main-nav-group-label {
        display: block;
        margin: 0;
        text-align: center;
        font-family: 'Cormorant Garamond', Georgia, serif;
        font-size: 1.05rem;
        letter-spacing: 0.12em;
        color: var(--accent);
        font-weight: 700;
    }

    .page-shell:not(.admin-page) .main-nav-dropdown-head {
        display: grid;
        grid-template-columns: minmax(0, 1fr) auto;
        align-items: center;
        gap: 0.35rem;
    }

    .page-shell:not(.admin-page) .main-nav-dropdown-trigger {
        width: 100%;
        justify-content: center;
    }

    .page-shell:not(.admin-page) .main-nav-dropdown-toggle {
        display: inline-flex;
    }

    .page-shell:not(.admin-page) .main-nav-dropdown-toggle:hover,
    .page-shell:not(.admin-page) .main-nav-dropdown-toggle:focus-visible,
    .page-shell:not(.admin-page) .main-nav-dropdown.is-open .main-nav-dropdown-toggle {
        border-color: rgba(255, 255, 255, 0.08);
        background: rgba(255, 255, 255, 0.03);
        color: var(--ink);
    }

    .page-shell:not(.admin-page) .main-nav-dropdown-menu {
        position: static;
        display: none;
        margin-top: 0.35rem;
        min-width: 0;
        grid-template-columns: 1fr;
        box-shadow: none;
        border-radius: 12px;
        background: rgba(255, 255, 255, 0.02);
    }

    .page-shell:not(.admin-page) .main-nav-dropdown.is-open .main-nav-dropdown-menu {
        display: grid;
    }

    .page-shell:not(.admin-page) .main-nav-dropdown-menu .nav-link {
        text-align: left;
        justify-content: flex-start;
        background: rgba(255, 255, 255, 0.015);
    }

    .page-shell:not(.admin-page) .main-nav-group-categories-wrap {
        display: grid;
        gap: 0.35rem;
    }

    .page-shell:not(.admin-page) .main-nav-group-label {
        display: block;
    }

    .page-shell:not(.admin-page) .main-nav-group-categories {
        flex-wrap: nowrap;
        overflow-x: auto;
        padding-bottom: 0.15rem;
        scrollbar-width: thin;
        -webkit-overflow-scrolling: touch;
        mask-image: linear-gradient(90deg, transparent 0, #000 12px, #000 calc(100% - 12px), transparent 100%);
    }

    .page-shell:not(.admin-page) .main-nav-group-categories .nav-link {
        white-space: nowrap;
        flex: 0 0 auto;
    }

    .section-head {
        flex-direction: column;
        align-items: flex-start;
    }

    .hero-layout {
        grid-template-columns: 1fr;
    }

    .vertical-image-slot img,
    .vertical-image-placeholder {
        min-height: 300px;
    }

    .category-grid,
    .contact-grid {
        grid-template-columns: 1fr;
    }

    .contact-cta-card {
        grid-template-columns: 1fr;
        align-items: stretch;
    }

    .contact-cta-actions {
        justify-items: stretch;
        text-align: left;
    }

    .contact-form label {
        gap: 0.42rem;
        font-size: 0.95rem;
    }

    .contact-form input,
    .contact-form textarea {
        padding: 0.85rem 0.9rem;
        border-radius: 12px;
        font-size: 16px;
    }

    .contact-form textarea {
        min-height: 170px;
    }

    .contact-form-actions {
        align-items: stretch;
    }

    .contact-form-actions .cta,
    .contact-form-actions .btn-muted {
        width: 100%;
    }

    .contact-form-success-panel {
        padding: 1rem;
    }

    .gallery.masonry {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .gallery.masonry .card.is-landscape-wide {
        grid-column: span 1;
    }

    .lightbox {
        grid-template-columns: 1fr;
    }

    .lightbox-image {
        grid-column: 1;
    }

    .lightbox-nav.prev,
    .lightbox-nav.next {
        display: none;
    }

    .lightbox-nav.prev {
        left: 0.5rem;
    }

    .lightbox-nav.next {
        right: 0.5rem;
    }

    .lightbox-counter {
        bottom: 0.6rem;
        font-size: 0.85rem;
    }

    .lightbox-fullscreen {
        top: var(--lightbox-control-top);
        right: calc(var(--lightbox-control-right) + var(--lightbox-control-size) + var(--lightbox-control-gap));
        width: var(--lightbox-control-size);
        height: var(--lightbox-control-size);
        font-size: 1.2rem;
    }

    .gallery-category-nav-block {
        position: sticky;
        top: 5.1rem;
        z-index: 15;
        margin-top: 0.75rem;
        padding-top: 0.7rem;
        padding-bottom: 0.7rem;
        background: rgba(15, 17, 24, 0.9);
        backdrop-filter: blur(10px);
        border: 1px solid rgba(255, 255, 255, 0.07);
    }

    .gallery-category-chip-row {
        flex-wrap: nowrap;
        overflow-x: auto;
        padding-bottom: 0.15rem;
        -webkit-overflow-scrolling: touch;
        scrollbar-width: thin;
    }

    .gallery-category-chip {
        flex: 0 0 auto;
        font-size: 0.84rem;
        padding: 0.42rem 0.72rem;
    }

    .gallery-tag-chip-row {
        flex-wrap: nowrap;
        overflow-x: auto;
        padding-bottom: 0.15rem;
        -webkit-overflow-scrolling: touch;
        scrollbar-width: thin;
    }

    .gallery-tag-chip {
        flex: 0 0 auto;
    }

    .gallery-cta-card {
        grid-template-columns: 1fr;
        gap: 0.8rem;
    }

    .gallery-cta-actions {
        justify-content: stretch;
    }

    .gallery-cta-actions > a {
        flex: 1 1 100%;
        justify-content: center;
    }

    .admin-editorial-strip-list {
        grid-template-columns: 1fr;
    }
}

@media (prefers-reduced-motion: reduce) {
    .home-editorial-strip-marquee.is-animated {
        animation: none !important;
    }

    .home-editorial-strip-card img,
    .home-editorial-strip-card::after,
    .gallery-filler-card::after {
        animation: none !important;
    }
}

@media (prefers-reduced-motion: reduce) {
    body::before,
    body::after,
    .hero-copy::after,
    .hero-motion-track,
    .cursor-glow,
    .hero-block .vertical-image-slot,
    .vertical-image-slot img,
    .prices-intro-image-slot img {
        animation: none !important;
        transition: none !important;
    }

    .page-shell,
    .reveal-on-scroll,
    .card.gallery-card-enter,
    .gallery.masonry .card,
    .lightbox-image,
    .cursor-glow {
        opacity: 1 !important;
        transform: none !important;
        filter: none !important;
        transition: none !important;
    }

    .category-card,
    .card-link::before,
    .card-link::after,
    .card-media img,
    .card-content,
    .price-card-link,
    .price-card-link::after,
    .price-card-link > *,
    .cta,
    .btn-muted {
        transition: none;
    }

    .price-card-link {
        animation: none !important;
    }

    .category-card,
    .home-editorial-strip-card {
        animation: none !important;
    }
}

@media (max-width: 520px) {
    .page-shell:not(.admin-page) .main-nav-group-primary {
        grid-template-columns: 1fr;
    }

    .gallery.masonry {
        grid-template-columns: 1fr;
    }

    .gallery.masonry .card.is-landscape-wide {
        grid-column: span 1;
    }
}

.admin-page .section-block h2 {
    margin-bottom: 0.8rem;
}

.admin-page .section-block {
    border-color: rgba(255, 255, 255, 0.14);
    background:
        radial-gradient(1200px 180px at 10% -10%, rgba(73, 122, 255, 0.11), transparent 60%),
        linear-gradient(180deg, rgba(255, 255, 255, 0.042), rgba(255, 255, 255, 0.02));
}

.admin-alert {
    margin-top: 0.8rem;
    padding: 0.65rem 0.85rem;
    border-radius: 10px;
    border: 1px solid var(--line);
}

.admin-ok {
    background: rgba(88, 180, 122, 0.14);
}

.admin-error {
    background: rgba(220, 92, 92, 0.14);
}

.admin-login-form,
.admin-inline-form {
    display: flex;
    gap: 0.55rem;
    flex-wrap: wrap;
    align-items: center;
}

.admin-login-form {
    flex-direction: column;
    align-items: stretch;
    max-width: 420px;
}

.admin-login-form label {
    display: flex;
    flex-direction: column;
    gap: 0.35rem;
    color: var(--ink-soft);
}

.admin-checkbox-row {
    display: flex;
    align-items: center;
    gap: 0.55rem;
    color: var(--ink-soft);
    margin-top: 0.15rem;
}

.admin-checkbox-row input[type="checkbox"] {
    margin: 0;
    flex: 0 0 auto;
    width: 1rem;
    height: 1rem;
    accent-color: rgba(235, 197, 115, 0.95);
}

.admin-checkbox-row > span {
    line-height: 1.35;
}

.admin-maintenance-card code {
    font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;
    font-size: 0.86em;
}

.admin-login-form input:not([type="checkbox"]),
.admin-inline-form input,
.admin-inline-form select {
    border-radius: 9px;
    border: 1px solid var(--line);
    background: rgba(255, 255, 255, 0.04);
    color: var(--ink);
    padding: 0.5rem 0.62rem;
    min-height: 2.15rem;
}

.admin-login-actions {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 0.55rem;
    margin-top: 0.5rem;
}

.admin-login-form .admin-actions-row {
    margin-top: 0.35rem;
}

.admin-head {
    display: flex;
    justify-content: space-between;
    gap: 1rem;
    align-items: flex-start;
}

.admin-head > div {
    padding: 0.2rem 0.1rem;
}

.admin-workspace-mode-tabs {
    margin-top: 0.8rem;
    display: inline-flex;
    flex-wrap: wrap;
    gap: 0.45rem;
    padding: 0;
}

.admin-workspace-mode-btn {
    border: 1px solid rgba(255, 255, 255, 0.14);
    background: linear-gradient(180deg, rgba(255, 255, 255, 0.07), rgba(255, 255, 255, 0.04));
    color: var(--ink-soft);
    border-radius: 999px;
    padding: 0.45rem 0.85rem;
    font: inherit;
    cursor: pointer;
}

.admin-workspace-mode-btn:hover,
.admin-workspace-mode-btn:focus-visible {
    border-color: rgba(244, 186, 91, 0.28);
    color: var(--ink);
    outline: none;
}

.admin-workspace-mode-btn.is-active {
    color: var(--ink);
    background: linear-gradient(180deg, rgba(244, 186, 91, 0.12), rgba(255, 255, 255, 0.05));
    border-color: rgba(244, 186, 91, 0.28);
}

.admin-category-tabs {
    margin-top: 1rem;
    display: flex;
    gap: 0.5rem;
    flex-wrap: wrap;
    padding: 0.6rem;
    border-radius: 14px;
    border: 1px solid rgba(109, 128, 198, 0.32);
    background: linear-gradient(180deg, rgba(72, 93, 160, 0.13), rgba(255, 255, 255, 0.03));
}

[data-admin-mode-panel][hidden],
[data-admin-mode-group][hidden] {
    display: none !important;
}

.admin-tab {
    text-decoration: none;
    color: var(--ink-soft);
    border: 1px solid rgba(136, 151, 212, 0.24);
    border-radius: 999px;
    padding: 0.42rem 0.78rem;
    font-size: 0.9rem;
    background: rgba(255, 255, 255, 0.02);
}

.admin-tab.is-active {
    color: var(--ink);
    background: linear-gradient(180deg, rgba(81, 109, 205, 0.16), rgba(255, 255, 255, 0.05));
    border-color: rgba(131, 153, 241, 0.36);
}

.admin-tab.is-drop-over {
    border-color: rgba(140, 108, 224, 0.9);
    background: rgba(140, 108, 224, 0.2);
    color: #ffffff;
}

.admin-multi-toolbar {
    display: flex;
    align-items: center;
    gap: 0.7rem;
    margin-bottom: 0.7rem;
    flex-wrap: wrap;
}

.admin-bulk-form {
    display: none;
    gap: 0.55rem;
    flex-wrap: wrap;
    align-items: center;
    margin-bottom: 1rem;
}

body.is-multi-select-mode .admin-bulk-form {
    display: flex;
}

.admin-bulk-form select {
    border-radius: 9px;
    border: 1px solid var(--line);
    background: rgba(255, 255, 255, 0.04);
    color: var(--ink);
    padding: 0.5rem 0.62rem;
    min-height: 2.15rem;
}

.admin-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
    gap: 0.95rem;
    justify-items: center;
}

.admin-card {
    width: 100%;
    max-width: 360px;
    border: 1px solid var(--line);
    border-radius: 12px;
    overflow: hidden;
    background: rgba(255, 255, 255, 0.02);
    transition: transform 120ms ease, border-color 120ms ease, opacity 120ms ease;
    cursor: default;
    position: relative;
}

.admin-card.is-category-preview {
    border-color: rgba(244, 186, 91, 0.55);
    box-shadow: 0 0 0 1px rgba(244, 186, 91, 0.28), 0 12px 24px rgba(0, 0, 0, 0.18);
}

.admin-card:hover {
    border-color: rgba(211, 168, 110, 0.55);
}

.admin-card.is-dragging {
    opacity: 0.55;
    transform: scale(0.98);
    cursor: grabbing;
}

.admin-card.is-drag-over {
    border-color: rgba(140, 108, 224, 0.78);
}

.admin-card.is-selected {
    border-color: rgba(140, 108, 224, 0.95);
    box-shadow: 0 0 0 2px rgba(140, 108, 224, 0.2);
}

.admin-card img {
    width: 100%;
    aspect-ratio: 1 / 1;
    object-fit: contain;
    background: rgba(255, 255, 255, 0.02);
    display: block;
}

.admin-card img.admin-image-drag-handle {
    cursor: grab;
}

.admin-card img.admin-image-drag-handle:active {
    cursor: grabbing;
}

.admin-select-chip {
    position: absolute;
    top: 0.55rem;
    right: 0.55rem;
    width: 1.3rem;
    height: 1.3rem;
    border-radius: 999px;
    border: 1px solid var(--line);
    background: rgba(9, 10, 14, 0.7);
    display: none;
    cursor: pointer;
}

body.is-multi-select-mode .admin-select-chip {
    display: block;
}

body.is-multi-select-mode .admin-card.is-selected .admin-select-chip {
    background: rgba(140, 108, 224, 0.95);
    border-color: rgba(140, 108, 224, 0.95);
}

.admin-card-body {
    padding: 0.75rem;
    display: flex;
    flex-direction: column;
    gap: 0.55rem;
}

.admin-card-top {
    display: flex;
    align-items: flex-start;
    gap: 0.65rem;
}

.admin-card-top-main {
    min-width: 0;
    width: 100%;
}

.admin-card-top-tools {
    display: flex;
    align-items: center;
    gap: 0.45rem;
    flex-shrink: 0;
}

.admin-file-name {
    margin: 0;
    font-size: 0.94rem;
    font-weight: 700;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.admin-file-meta {
    margin: 0;
    color: var(--ink-soft);
    font-size: 0.82rem;
}

.admin-file-meta-row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.55rem;
    flex-wrap: wrap;
}

.admin-file-meta-main {
    display: inline-flex;
    align-items: center;
    min-width: 0;
}

.admin-order-index-badge {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 1.45rem;
    padding: 0.1rem 0.35rem;
    margin-right: 0.35rem;
    border-radius: 999px;
    border: 1px solid rgba(244, 186, 91, 0.25);
    background: rgba(244, 186, 91, 0.1);
    color: var(--ink);
    font-size: 0.72rem;
    font-weight: 700;
    line-height: 1.1;
    vertical-align: middle;
}

.admin-actions-row {
    display: flex;
    gap: 0.65rem;
    row-gap: 0.65rem;
    flex-wrap: wrap;
    align-items: center;
}

.admin-actions-row form,
.admin-actions-row p,
.admin-actions-row a {
    margin: 0;
}

.admin-reset-row {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    align-items: center;
    column-gap: 0.8rem;
    row-gap: 0.35rem;
    flex-wrap: nowrap;
}

.admin-reset-row .admin-reset-btn {
    padding: 0.36rem 0.72rem;
    min-height: 1.95rem;
    border-radius: 999px;
    line-height: 1.18;
    font-size: 0.92rem;
    white-space: nowrap;
}

.admin-reset-row form {
    justify-self: end;
}

.admin-reset-row .admin-file-meta {
    line-height: 1.25;
}

.admin-reset-row + .admin-reset-row {
    margin-top: 0.22rem;
}

@media (max-width: 980px) {
    .admin-reset-row {
        grid-template-columns: 1fr;
        align-items: start;
    }

    .admin-reset-row form {
        justify-self: start;
    }
}

.admin-order-btn {
    gap: 0.35rem;
}

.admin-order-btn > span[aria-hidden="true"] {
    font-weight: 700;
    min-width: 0.8rem;
    text-align: center;
}

.admin-order-position-form {
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
    flex-wrap: wrap;
}

.admin-order-position-label {
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
    color: var(--ink-soft);
    font-size: 0.8rem;
}

.admin-order-position-label input {
    width: 4.8rem;
}

.admin-tool-group[data-admin-tools-tab-panel="tags"] .admin-inline-form input[name="tags"] {
    min-width: min(34rem, 78vw);
    width: 100%;
}

.admin-tool-group[data-admin-tools-tab-panel="tags"] .admin-inline-form {
    width: 100%;
}

.admin-filter-panel {
    margin: 0 0 0.85rem;
    padding: 0.85rem;
    border: 1px solid rgba(255, 255, 255, 0.08);
    border-radius: 12px;
    background: rgba(255, 255, 255, 0.02);
    display: grid;
    gap: 0.65rem;
}

.admin-filter-grid {
    display: grid;
    grid-template-columns: minmax(0, 2fr) minmax(180px, 1fr);
    gap: 0.7rem;
}

.admin-filter-grid label {
    display: grid;
    gap: 0.35rem;
    font-size: 0.84rem;
    color: var(--ink-soft);
}

.admin-filter-tags {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
}

.admin-tag-filter-btn.is-active {
    border-color: rgba(244, 186, 91, 0.45);
    background: rgba(244, 186, 91, 0.12);
    color: var(--ink);
}

.admin-tag-list {
    display: flex;
    flex-wrap: wrap;
    gap: 0.35rem;
}

.admin-tag-pill {
    display: inline-flex;
    align-items: center;
    padding: 0.15rem 0.42rem;
    border-radius: 999px;
    border: 1px solid rgba(255, 255, 255, 0.1);
    background: rgba(255, 255, 255, 0.04);
    font-size: 0.72rem;
    line-height: 1.1;
    color: var(--ink-soft);
}

.admin-view-groups {
    margin: 0.8rem 0 0.9rem;
    display: grid;
    gap: 0.85rem;
}

.admin-view-group {
    border: 1px solid rgba(255, 255, 255, 0.08);
    border-radius: 14px;
    padding: 0.7rem;
    background: rgba(255, 255, 255, 0.02);
}

.admin-view-group[data-admin-mode-group="images"] {
    border-color: rgba(104, 131, 214, 0.32);
    background: linear-gradient(180deg, rgba(70, 94, 172, 0.13), rgba(255, 255, 255, 0.03));
}

.admin-view-group[data-admin-mode-group="system"] {
    border-color: rgba(198, 148, 79, 0.3);
    background: linear-gradient(180deg, rgba(191, 131, 44, 0.11), rgba(255, 255, 255, 0.03));
}

.admin-view-group-title {
    margin: 0 0 0.55rem;
    font-size: 0.8rem;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    color: rgba(255, 255, 255, 0.78);
    font-weight: 700;
}

.admin-view-tabs {
    margin: 0;
    display: flex;
    flex-wrap: wrap;
    gap: 0.55rem;
}

.admin-view-tab-btn {
    display: inline-flex;
    align-items: center;
    gap: 0.45rem;
    border: 1px solid var(--line);
    background: rgba(255, 255, 255, 0.03);
    color: var(--ink-soft);
    border-radius: 999px;
    padding: 0.48rem 0.85rem;
    font: inherit;
    font-size: 0.88rem;
    cursor: pointer;
}

.admin-page .admin-view-tab-btn {
    background: rgba(255, 255, 255, 0.075);
    border-color: rgba(255, 255, 255, 0.18);
}

.admin-view-tab-btn:hover,
.admin-view-tab-btn:focus-visible {
    border-color: rgba(211, 168, 110, 0.55);
    color: var(--ink);
    outline: none;
}

.admin-view-tab-btn.is-active {
    color: var(--ink);
    background: rgba(255, 255, 255, 0.07);
    border-color: rgba(255, 255, 255, 0.14);
}

.admin-page .admin-view-tab-btn.is-active {
    background: linear-gradient(180deg, rgba(244, 186, 91, 0.12), rgba(255, 255, 255, 0.05));
    border-color: rgba(244, 186, 91, 0.28);
}

.admin-view-tab-badge {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 1.35rem;
    padding: 0.08rem 0.38rem;
    border-radius: 999px;
    border: 1px solid rgba(255, 255, 255, 0.12);
    background: rgba(255, 255, 255, 0.05);
    color: var(--ink);
    font-size: 0.74rem;
    line-height: 1.1;
    font-weight: 700;
}

.admin-inline-count-badge {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    margin-left: 0.35rem;
    padding: 0.12rem 0.42rem;
    border-radius: 999px;
    border: 1px solid rgba(255, 255, 255, 0.12);
    background: rgba(255, 255, 255, 0.04);
    color: var(--ink-soft);
    font-size: 0.73rem;
    line-height: 1.1;
    white-space: nowrap;
    vertical-align: middle;
}

.admin-view-tab-btn.is-active .admin-view-tab-badge {
    background: rgba(244, 186, 91, 0.14);
    border-color: rgba(244, 186, 91, 0.28);
}

.admin-view-block[hidden] {
    display: none !important;
}

.admin-view-block {
    position: relative;
}

.admin-texts-panel,
.admin-upload-panel,
.admin-maintenance-panel {
    position: relative;
    overflow: hidden;
    --admin-panel-accent: rgba(255, 255, 255, 0.18);
}

.admin-texts-panel::before,
.admin-upload-panel::before,
.admin-maintenance-panel::before {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    height: 3px;
    background: linear-gradient(90deg, var(--admin-panel-accent), rgba(255, 255, 255, 0));
    pointer-events: none;
}

.admin-view-block[data-admin-view-block="inbox"] .admin-maintenance-panel {
    --admin-panel-accent: rgba(100, 210, 148, 0.95);
    border-color: rgba(92, 180, 132, 0.32);
    background: linear-gradient(180deg, rgba(71, 165, 113, 0.11), rgba(255, 255, 255, 0.02));
}

.admin-view-block[data-admin-view-block="texts"] .admin-texts-panel {
    --admin-panel-accent: rgba(238, 187, 98, 0.95);
    border-color: rgba(220, 176, 100, 0.34);
    background: linear-gradient(180deg, rgba(214, 152, 58, 0.12), rgba(255, 255, 255, 0.024));
}

.admin-view-block[data-admin-view-block="migration"] .admin-maintenance-panel {
    --admin-panel-accent: rgba(110, 180, 255, 0.95);
    border-color: rgba(100, 155, 226, 0.34);
    background: linear-gradient(180deg, rgba(76, 129, 208, 0.12), rgba(255, 255, 255, 0.022));
}

.admin-view-block[data-admin-view-block="security"] .admin-maintenance-panel {
    --admin-panel-accent: rgba(245, 169, 77, 0.95);
    border-color: rgba(227, 163, 92, 0.36);
    background: linear-gradient(180deg, rgba(211, 128, 33, 0.13), rgba(255, 255, 255, 0.024));
}

.admin-view-block[data-admin-view-block="maintenance"] .admin-maintenance-panel,
.admin-view-block[data-admin-view-block="stats"] .admin-maintenance-panel {
    --admin-panel-accent: rgba(158, 177, 255, 0.9);
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.02);
}

.admin-view-block[data-admin-view-block="visitors"] .admin-maintenance-panel {
    --admin-panel-accent: rgba(244, 186, 91, 0.92);
    border-color: rgba(218, 170, 96, 0.34);
    background: linear-gradient(180deg, rgba(209, 152, 64, 0.1), rgba(255, 255, 255, 0.02));
}

.admin-texts-panel {
    margin: 0 0 0.9rem;
    padding: 0.9rem;
    border: 1px solid rgba(255, 255, 255, 0.14);
    border-radius: 14px;
    background: linear-gradient(180deg, rgba(215, 166, 89, 0.08), rgba(255, 255, 255, 0.03));
    display: grid;
    gap: 0.8rem;
}

.admin-texts-panel h3 {
    margin: 0 0 0.25rem;
}

.admin-subtabs {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
    margin: 0.1rem 0 0.2rem;
}

.admin-subtab-btn {
    display: inline-flex;
    align-items: center;
    border: 1px solid rgba(255, 255, 255, 0.1);
    background: rgba(255, 255, 255, 0.025);
    color: var(--ink-soft);
    border-radius: 999px;
    padding: 0.4rem 0.8rem;
    font: inherit;
    font-size: 0.85rem;
    cursor: pointer;
}

.admin-page .admin-subtab-btn {
    background: rgba(255, 255, 255, 0.075);
    border-color: rgba(255, 255, 255, 0.18);
}

.admin-subtab-btn:hover,
.admin-subtab-btn:focus-visible {
    border-color: rgba(211, 168, 110, 0.55);
    color: var(--ink);
    outline: none;
}

.admin-subtab-btn.is-active {
    color: var(--ink);
    background: rgba(244, 186, 91, 0.08);
    border-color: rgba(244, 186, 91, 0.22);
}

.admin-page .admin-subtab-btn.is-active {
    background: linear-gradient(180deg, rgba(244, 186, 91, 0.12), rgba(255, 255, 255, 0.04));
    border-color: rgba(244, 186, 91, 0.3);
}

.admin-subtabs.is-compact {
    margin-top: 0;
    margin-bottom: 0.15rem;
}

.admin-subtabs.is-compact .admin-subtab-btn {
    font-size: 0.8rem;
    padding: 0.32rem 0.68rem;
}

.admin-subtab-panel {
    display: grid;
    gap: 0.8rem;
    padding: 0.25rem 0 0;
}

.admin-subtab-panel[hidden] {
    display: none !important;
}

[data-admin-subtab-panel][hidden] {
    display: none !important;
}

.admin-subtab-panel-head {
    display: grid;
    gap: 0.3rem;
}

.admin-subtab-panel-head h4 {
    margin: 0;
    font-size: 0.96rem;
}

.admin-character-preset-form {
    margin: 1rem 0 1.25rem;
    gap: 0.8rem;
}

.admin-character-preset-form label {
    display: flex;
    align-items: center;
    gap: 0.6rem;
    color: var(--ink-soft);
}

.admin-text-form-grid {
    display: grid;
    gap: 0.7rem;
}

.admin-text-group {
    border: 1px solid rgba(255, 255, 255, 0.08);
    border-radius: 12px;
    background: rgba(255, 255, 255, 0.015);
    padding: 0.75rem;
    display: grid;
    gap: 0.6rem;
}

.admin-text-group h4 {
    margin: 0;
    font-size: 0.9rem;
}

.admin-category-text-group h4 {
    color: var(--ink);
}

.admin-text-group-fields {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0.7rem;
}

@media (max-width: 760px) {
    .admin-filter-grid {
        grid-template-columns: 1fr;
    }
}

.admin-text-field {
    display: grid;
    gap: 0.35rem;
}

.admin-text-field.is-wide {
    grid-column: 1 / -1;
}

.admin-text-field > span {
    color: var(--ink);
    font-size: 0.82rem;
    font-weight: 700;
}

.admin-text-field input,
.admin-text-field textarea,
.admin-text-field select {
    width: 100%;
    border-radius: 10px;
    border: 1px solid var(--line);
    background: rgba(255, 255, 255, 0.03);
    color: var(--ink);
    padding: 0.65rem 0.75rem;
    font: inherit;
}

.admin-text-field textarea {
    resize: vertical;
    min-height: 6.5rem;
}

.admin-checkbox-field {
    align-items: center;
}

.admin-checkbox-field input[type="checkbox"] {
    width: auto;
    min-width: 1rem;
    min-height: 1rem;
    padding: 0;
    justify-self: start;
}

@media (max-width: 760px) {
    .admin-text-group-fields {
        grid-template-columns: 1fr;
    }
}

.admin-upload-panel {
    --admin-panel-accent: rgba(120, 156, 255, 0.9);
    margin: 1rem 0 0.9rem;
    padding: 0.9rem;
    border: 1px solid rgba(255, 255, 255, 0.14);
    border-radius: 14px;
    background: linear-gradient(180deg, rgba(92, 122, 214, 0.1), rgba(255, 255, 255, 0.03));
}

.admin-upload-panel h3 {
    margin: 0 0 0.35rem;
}

.admin-maintenance-panel {
    --admin-panel-accent: rgba(196, 170, 104, 0.75);
    margin: 0 0 0.9rem;
    padding: 0.9rem;
    border: 1px solid rgba(255, 255, 255, 0.14);
    border-radius: 14px;
    background: linear-gradient(180deg, rgba(255, 255, 255, 0.045), rgba(255, 255, 255, 0.022));
}

.admin-maintenance-panel h3 {
    margin: 0 0 0.35rem;
}

.admin-maintenance-stats-grid {
    margin-top: 0.7rem;
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
    gap: 0.7rem;
}

.admin-view-block[data-admin-view-block="stats"] .admin-maintenance-panel > .admin-file-meta {
    margin-bottom: 1rem;
    line-height: 1.42;
}

.admin-view-block[data-admin-view-block="stats"] .admin-maintenance-panel > .admin-file-meta + .admin-stats-grid {
    margin-top: 1.2rem;
}

.admin-view-block[data-admin-view-block="inbox"] .admin-maintenance-panel > h3,
.admin-view-block[data-admin-view-block="migration"] .admin-maintenance-panel > h3,
.admin-view-block[data-admin-view-block="security"] .admin-maintenance-panel > h3,
.admin-view-block[data-admin-view-block="texts"] .admin-texts-panel > h3 {
    margin-bottom: 0.65rem;
}

.admin-view-block[data-admin-view-block="inbox"] .admin-maintenance-panel > .admin-file-meta,
.admin-view-block[data-admin-view-block="migration"] .admin-maintenance-panel > .admin-file-meta,
.admin-view-block[data-admin-view-block="security"] .admin-maintenance-panel > .admin-file-meta,
.admin-view-block[data-admin-view-block="texts"] .admin-texts-panel > .admin-file-meta {
    margin-bottom: 1rem;
    line-height: 1.42;
    max-width: 76ch;
}

.admin-view-block[data-admin-view-block="inbox"] .admin-maintenance-panel > .admin-file-meta + .admin-maintenance-card,
.admin-view-block[data-admin-view-block="migration"] .admin-maintenance-panel > .admin-file-meta + .admin-maintenance-card,
.admin-view-block[data-admin-view-block="security"] .admin-maintenance-panel > .admin-file-meta + .admin-maintenance-card {
    margin-top: 1.15rem;
}

.admin-view-block[data-admin-view-block="texts"] .admin-texts-panel > .admin-file-meta + .admin-subtabs {
    margin-top: 0.4rem;
    margin-bottom: 1rem;
}

.admin-view-block[data-admin-view-block="texts"] .admin-texts-panel > .admin-subtabs + .admin-subtab-panel {
    padding-top: 0.25rem;
}

.admin-visitors-panel {
    display: grid;
    gap: 0.9rem;
}

.admin-visitors-panel > h3 {
    margin-bottom: 0.2rem;
}

.admin-visitors-panel > .admin-file-meta {
    margin-top: -0.25rem;
    margin-bottom: 0.15rem;
}

.admin-visitors-panel .admin-actions-row {
    align-items: flex-end;
    column-gap: 0.8rem;
    row-gap: 0.7rem;
}

.admin-visitors-panel .admin-actions-row > .admin-inline-form:first-child {
    flex: 0 1 auto;
    align-items: flex-end;
    min-width: 0;
}

.admin-visitors-panel .admin-actions-row > .admin-inline-form:first-child .admin-text-field > span {
    display: none;
}

.admin-visitors-panel .admin-actions-row > .admin-inline-form:first-child > .btn-muted {
    transform: none;
}

.admin-visitors-panel .admin-actions-row > .admin-inline-form:last-child {
    margin-left: 0;
    flex: 0 0 auto;
}

.admin-visitors-panel .admin-actions-row .admin-text-field {
    min-width: 180px;
}

.admin-visitors-panel .admin-actions-row .admin-text-field > input,
.admin-visitors-panel .admin-actions-row .admin-text-field > select {
    padding: 0.38rem 0.56rem;
    min-height: 2.02rem;
}

.admin-visitors-panel .admin-actions-row .btn-muted,
.admin-visitors-panel .admin-actions-row .cta {
    min-height: 2.6rem;
}

@media (min-width: 761px) {
    .admin-visitors-panel .admin-actions-row {
        flex-wrap: nowrap;
        align-items: flex-end;
    }

    .admin-visitors-panel .admin-actions-row > .admin-inline-form:first-child {
        gap: 0.45rem;
    }
}

.admin-visitors-panel .admin-subtabs[data-admin-subtabs="visitors"] {
    margin-top: 0.35rem;
    margin-bottom: 0.65rem;
}

.admin-visitors-panel [data-admin-subtab-panel] {
    display: grid;
    gap: 0.8rem;
    margin-top: 0.15rem;
}

.admin-visitors-panel [data-admin-subtab-panel] .admin-maintenance-card {
    margin-bottom: 0;
}

.admin-visitor-chart-card {
    display: grid;
    gap: 0.7rem;
}

.admin-visitor-chart-form {
    align-items: flex-end;
    gap: 0.7rem;
}

.admin-visitor-chart-form .admin-text-field {
    min-width: 190px;
}

.admin-visitor-chart-form .admin-text-field > input,
.admin-visitor-chart-form .admin-text-field > select {
    padding: 0.38rem 0.56rem;
    height: 2.36rem;
    min-height: 2.36rem;
    line-height: 1.2;
}

.admin-visitor-chart-form .admin-text-field:not(.is-wide) {
    flex: 1 1 210px;
    max-width: 300px;
}

.admin-visitor-chart-form > .btn-muted {
    order: 4;
}

.admin-visitor-chart-form .admin-text-field.is-wide {
    order: 5;
    flex: 1 1 100%;
    min-width: 100%;
}

.admin-chart-series-checklist {
    min-height: 0;
    max-height: none;
    overflow: visible;
    padding: 0.25rem;
    border: 1px solid rgba(255, 255, 255, 0.14);
    border-radius: 12px;
    background: rgba(12, 15, 26, 0.42);
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    grid-auto-flow: row dense;
    align-items: start;
    gap: 0.5rem 0.65rem;
}

.admin-chart-series-tools {
    display: flex;
    flex-wrap: wrap;
    gap: 0.45rem;
    margin: 0.18rem 0 0.45rem;
}

.admin-chart-series-tools .btn-muted {
    padding: 0.4rem 0.82rem;
    font-size: 0.82rem;
}

.admin-chart-series-group {
    margin: 0;
    border: 1px solid rgba(255, 255, 255, 0.12);
    border-radius: 12px;
    padding: 0.42rem 0.48rem 0.46rem;
    background: linear-gradient(180deg, rgba(255, 255, 255, 0.045), rgba(255, 255, 255, 0.018));
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.05);
    display: grid;
    gap: 0.2rem;
}

.admin-chart-series-group > legend {
    margin: 0 0 0.2rem;
    padding: 0;
    color: var(--ink-strong);
    font-size: 0.8rem;
    font-weight: 700;
    letter-spacing: 0.01em;
}

.admin-chart-series-group-items {
    display: grid;
    gap: 0.2rem;
}

.admin-check-option {
    display: inline-flex;
    align-items: center;
    gap: 0.38rem;
    color: var(--ink);
    font-size: 0.75rem;
    line-height: 1.15;
}

.admin-check-option input[type="checkbox"] {
    width: 0.8rem;
    height: 0.8rem;
    min-height: 0;
    padding: 0;
    margin: 0;
    border-radius: 0.2rem;
    accent-color: rgba(244, 186, 91, 0.95);
}

.admin-visitor-chart-wrap {
    width: 100%;
    border: 1px solid rgba(255, 255, 255, 0.08);
    border-radius: 12px;
    background: rgba(8, 10, 18, 0.26);
    padding: 0.45rem 0.5rem 0.35rem;
    overflow-x: auto;
}

.admin-visitor-chart {
    width: max(860px, 100%);
    height: 330px;
    display: block;
}

.admin-visitor-chart-grid-line {
    stroke: rgba(255, 255, 255, 0.12);
    stroke-width: 1;
}

.admin-visitor-chart-axis-label {
    fill: rgba(235, 231, 247, 0.8);
    font-size: 12px;
    font-family: "Manrope", sans-serif;
}

.admin-visitor-chart-line {
    fill: none;
    stroke: rgba(244, 186, 91, 0.96);
    stroke-width: 2.4;
    stroke-linejoin: round;
    stroke-linecap: round;
}

.admin-visitor-chart-point {
    fill: rgba(244, 186, 91, 1);
    stroke: rgba(12, 14, 24, 0.94);
    stroke-width: 1.1;
}

.admin-visitor-chart-overlay-line {
    fill: none;
    stroke-width: 2;
    stroke-linejoin: round;
    stroke-linecap: round;
    opacity: 0.96;
}

.admin-visitor-chart-overlay-point {
    stroke: rgba(12, 14, 24, 0.9);
    stroke-width: 1;
}

.admin-visitor-chart-legend {
    display: flex;
    flex-wrap: wrap;
    gap: 0.4rem 0.75rem;
    margin-top: 0.45rem;
}

.admin-visitor-chart-legend-item {
    display: inline-flex;
    align-items: center;
    gap: 0.42rem;
    color: var(--ink-soft);
    font-size: 0.8rem;
}

.admin-visitor-chart-legend-swatch {
    width: 14px;
    height: 3px;
    border-radius: 999px;
    background: rgba(127, 179, 255, 0.95);
}

.admin-visitor-chart-legend-swatch.is-main {
    background: rgba(244, 186, 91, 0.96);
}

.admin-breakdown-chart {
    display: grid;
    gap: 0.48rem;
}

.admin-breakdown-time-chart-wrap {
    width: 100%;
    border: 1px solid rgba(255, 255, 255, 0.08);
    border-radius: 12px;
    background: rgba(8, 10, 18, 0.26);
    padding: 0.35rem 0.45rem 0.28rem;
    margin: 0.28rem 0 0.38rem;
    overflow-x: auto;
}

.admin-breakdown-time-chart {
    width: max(760px, 100%);
    height: 240px;
    display: block;
}

.admin-breakdown-time-legend {
    margin: 0.08rem 0 0.4rem;
}

.admin-breakdown-chart-row {
    display: grid;
    gap: 0.18rem;
}

.admin-breakdown-chart-head {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    align-items: center;
    gap: 0.6rem;
}

.admin-breakdown-chart-label {
    color: var(--ink);
    font-size: 0.9rem;
    line-height: 1.2;
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.admin-breakdown-chart-value {
    color: var(--ink);
    font-size: 0.9rem;
    letter-spacing: 0.01em;
}

.admin-breakdown-chart-track {
    position: relative;
    width: 100%;
    height: 9px;
    border-radius: 999px;
    overflow: hidden;
    background: rgba(255, 255, 255, 0.08);
    border: 1px solid rgba(255, 255, 255, 0.06);
}

.admin-breakdown-chart-fill {
    position: absolute;
    left: 0;
    top: 0;
    bottom: 0;
    border-radius: inherit;
    background: linear-gradient(90deg, rgba(244, 186, 91, 0.95), rgba(127, 179, 255, 0.92));
}

@media (max-width: 760px) {
    .admin-view-block[data-admin-view-block="inbox"] .admin-maintenance-panel > h3,
    .admin-view-block[data-admin-view-block="migration"] .admin-maintenance-panel > h3,
    .admin-view-block[data-admin-view-block="security"] .admin-maintenance-panel > h3,
    .admin-view-block[data-admin-view-block="texts"] .admin-texts-panel > h3 {
        margin-bottom: 0.8rem;
        line-height: 1.15;
    }

    .admin-view-block[data-admin-view-block="inbox"] .admin-maintenance-panel > .admin-file-meta,
    .admin-view-block[data-admin-view-block="migration"] .admin-maintenance-panel > .admin-file-meta,
    .admin-view-block[data-admin-view-block="security"] .admin-maintenance-panel > .admin-file-meta,
    .admin-view-block[data-admin-view-block="texts"] .admin-texts-panel > .admin-file-meta {
        margin-bottom: 1.1rem;
        line-height: 1.48;
    }

    .admin-view-block[data-admin-view-block="inbox"] .admin-maintenance-panel > .admin-file-meta + .admin-maintenance-card,
    .admin-view-block[data-admin-view-block="migration"] .admin-maintenance-panel > .admin-file-meta + .admin-maintenance-card,
    .admin-view-block[data-admin-view-block="security"] .admin-maintenance-panel > .admin-file-meta + .admin-maintenance-card {
        margin-top: 1.25rem;
    }

    .admin-view-block[data-admin-view-block="texts"] .admin-texts-panel > .admin-file-meta + .admin-subtabs {
        margin-top: 0.5rem;
        margin-bottom: 1.05rem;
    }

    .admin-visitors-panel .admin-actions-row {
        align-items: stretch;
    }

    .admin-visitors-panel .admin-actions-row > .admin-inline-form:first-child,
    .admin-visitors-panel .admin-actions-row > .admin-inline-form:last-child {
        flex: 1 1 100%;
        margin-left: 0;
    }

    .admin-visitors-panel .admin-actions-row .admin-text-field {
        min-width: min(100%, 220px);
    }

    .admin-visitor-chart {
        width: max(760px, 100%);
        height: 300px;
    }

    .admin-breakdown-time-chart {
        width: max(680px, 100%);
        height: 220px;
    }

    .admin-visitor-chart-form .admin-text-field {
        min-width: min(100%, 220px);
    }

    .admin-chart-series-checklist {
        grid-template-columns: 1fr;
    }

    .admin-breakdown-chart-label {
        white-space: normal;
        overflow: visible;
        text-overflow: clip;
    }
}

.admin-maintenance-card {
    border: 1px solid rgba(255, 255, 255, 0.16);
    border-radius: 12px;
    background:
        linear-gradient(180deg, rgba(255, 255, 255, 0.055), rgba(255, 255, 255, 0.02));
    padding: 0.7rem;
    box-shadow: 0 4px 18px rgba(4, 8, 20, 0.12);
}

.admin-maintenance-panel > .admin-maintenance-card + .admin-maintenance-card {
    margin-top: 0.75rem;
}

.admin-maintenance-stats-grid + .admin-maintenance-card {
    margin-top: 0.9rem;
}

.admin-view-block[data-admin-view-block="image_analysis"] .admin-maintenance-card > .admin-file-meta + .admin-file-meta {
    margin-top: 0.35rem;
}

.admin-view-block[data-admin-view-block="image_analysis"] .admin-subtab-panel[data-admin-subtab-panel="duplicates"] .admin-maintenance-card > .admin-file-meta {
    line-height: 1.42;
}

.admin-view-block[data-admin-view-block="image_analysis"] .admin-subtab-panel[data-admin-subtab-panel="duplicates"] .admin-maintenance-card > .admin-file-meta + .admin-file-meta {
    margin-top: 0.4rem;
}

.admin-view-block[data-admin-view-block="image_analysis"] > h3 {
    margin-bottom: 0.65rem;
}

.admin-view-block[data-admin-view-block="image_analysis"] > .admin-file-meta {
    margin-bottom: 0.95rem;
    max-width: 70ch;
    line-height: 1.4;
}

.admin-view-block[data-admin-view-block="image_analysis"] > .admin-subtabs {
    margin: 0.15rem 0 0.95rem;
}

.admin-view-block[data-admin-view-block="image_analysis"] .admin-maintenance-card > h4 + .admin-file-meta {
    margin-top: 0.2rem;
}

.admin-view-block[data-admin-view-block="image_analysis"] .admin-maintenance-card > .admin-file-meta:last-of-type {
    margin-bottom: 0.15rem;
}

.admin-analysis-actions-divider {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    margin-top: 1.15rem;
    margin-bottom: 1rem;
    color: rgba(255, 255, 255, 0.7);
    font-size: 0.76rem;
    letter-spacing: 0.05em;
    text-transform: uppercase;
    font-weight: 700;
}

.admin-analysis-actions-divider::before,
.admin-analysis-actions-divider::after {
    content: "";
    height: 1px;
    flex: 1 1 auto;
    background: linear-gradient(90deg, rgba(255, 255, 255, 0.05), rgba(255, 255, 255, 0.14), rgba(255, 255, 255, 0.05));
}

.admin-analysis-actions-divider > span {
    white-space: nowrap;
}

.admin-view-block[data-admin-view-block="image_analysis"] .admin-maintenance-card > .admin-actions-row {
    margin-top: 1.2rem;
    margin-bottom: 1rem;
    padding: 0.55rem 0.65rem;
    border-radius: 12px;
    border: 1px solid rgba(255, 255, 255, 0.08);
    background: linear-gradient(180deg, rgba(255, 255, 255, 0.035), rgba(255, 255, 255, 0.018));
}

.admin-view-block[data-admin-view-block="image_analysis"] .admin-maintenance-card > .admin-file-meta + .admin-actions-row {
    margin-top: 1.8rem;
    padding-top: 0.7rem;
    border-top: 1px solid rgba(255, 255, 255, 0.05);
}

.admin-view-block[data-admin-view-block="image_analysis"] .admin-analysis-actions-divider + .admin-actions-row {
    margin-top: 0;
    padding-top: 0.75rem;
    border-top: 0;
}

.admin-view-block[data-admin-view-block="image_analysis"] .admin-analysis-primary-actions {
    margin-top: 0 !important;
    margin-bottom: 1.1rem;
    padding: 0.8rem 0.8rem;
    background:
        linear-gradient(180deg, rgba(255, 255, 255, 0.05), rgba(255, 255, 255, 0.02));
    border-color: rgba(255, 255, 255, 0.11);
}

.admin-view-block[data-admin-view-block="image_analysis"] .admin-maintenance-card > .admin-actions-row + .admin-file-meta {
    margin-top: 0.4rem;
    line-height: 1.4;
}

@media (max-width: 760px) {
    .admin-view-block[data-admin-view-block="image_analysis"] > h3 {
        margin-bottom: 0.8rem;
        line-height: 1.15;
    }

    .admin-view-block[data-admin-view-block="image_analysis"] > .admin-file-meta {
        margin-bottom: 1.1rem;
        line-height: 1.48;
    }

    .admin-view-block[data-admin-view-block="image_analysis"] > .admin-subtabs {
        margin-bottom: 1.05rem;
        gap: 0.6rem;
    }

    .admin-view-block[data-admin-view-block="image_analysis"] > .admin-subtabs .admin-subtab-btn {
        min-height: 2.75rem;
        padding-block: 0.52rem;
    }

    .admin-view-block[data-admin-view-block="image_analysis"] .admin-maintenance-card {
        padding: 0.8rem;
    }

    .admin-view-block[data-admin-view-block="image_analysis"] .admin-maintenance-card > .admin-file-meta {
        line-height: 1.46;
    }

    .admin-view-block[data-admin-view-block="image_analysis"] .admin-maintenance-card > .admin-actions-row {
        margin-top: 1.1rem;
        margin-bottom: 1.05rem;
        padding: 0.65rem;
        gap: 0.7rem;
        row-gap: 0.7rem;
    }

    .admin-analysis-actions-divider {
        margin-top: 1.2rem;
        margin-bottom: 1rem;
    }

    .admin-view-block[data-admin-view-block="image_analysis"] .admin-analysis-primary-actions {
        padding: 0.75rem;
        margin-bottom: 1.15rem;
    }

    .admin-view-block[data-admin-view-block="image_analysis"] .admin-maintenance-card > .admin-actions-row > form {
        flex: 1 1 100%;
        min-width: 0;
    }

    .admin-view-block[data-admin-view-block="image_analysis"] .admin-maintenance-card > .admin-actions-row > form > button {
        width: 100%;
        min-height: 2.65rem;
        justify-content: center;
    }

    .admin-view-block[data-admin-view-block="image_analysis"] .admin-maintenance-card > .admin-actions-row + .admin-file-meta {
        margin-top: 0.55rem;
        line-height: 1.48;
    }
}

.admin-maintenance-card h4 {
    margin: 0 0 0.45rem;
    font-size: 0.9rem;
    color: rgba(255, 245, 214, 0.95);
}

.admin-maintenance-stats-list {
    margin: 0;
    padding: 0;
    list-style: none;
    display: grid;
    gap: 0.35rem;
}

.admin-maintenance-stats-list li {
    display: flex;
    justify-content: space-between;
    align-items: baseline;
    gap: 0.8rem;
    color: var(--ink-soft);
    font-size: 0.82rem;
}

.admin-maintenance-stats-list li strong {
    color: var(--ink);
    font-size: 0.9rem;
}

.admin-inline-details {
    margin: 0.55rem 0 0.4rem;
}

.admin-inline-details > summary {
    cursor: pointer;
    color: var(--ink-soft);
}

.admin-duplicate-list {
    margin: 0.6rem 0 0.7rem;
    padding: 0;
    list-style: none;
    display: grid;
    gap: 0.38rem;
}

.admin-duplicate-list li {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.45rem;
    padding: 0.45rem 0.5rem;
    border-radius: 10px;
    border: 1px solid rgba(255, 255, 255, 0.08);
    background: rgba(255, 255, 255, 0.02);
}

.admin-duplicate-list li > form {
    margin-left: auto;
}

.admin-duplicate-list li .admin-actions-row {
    margin-left: auto;
    display: flex;
    flex-wrap: wrap;
    gap: 0.4rem;
    justify-content: flex-end;
}

.admin-duplicate-list li .admin-actions-row form {
    margin-left: 0;
}

.admin-duplicate-list li.is-primary {
    border-color: rgba(113, 205, 145, 0.28);
    background: rgba(72, 163, 104, 0.08);
}

.admin-duplicate-role {
    display: inline-flex;
    align-items: center;
    border-radius: 999px;
    padding: 0.14rem 0.45rem;
    font-size: 0.72rem;
    line-height: 1.1;
    font-weight: 700;
    color: rgba(225, 255, 232, 0.95);
    background: rgba(78, 173, 112, 0.24);
    border: 1px solid rgba(94, 188, 128, 0.32);
}

.admin-duplicate-role.is-duplicate {
    color: rgba(255, 244, 220, 0.95);
    background: rgba(215, 150, 62, 0.18);
    border-color: rgba(226, 167, 84, 0.28);
}

.admin-duplicate-list code {
    font-size: 0.82rem;
}

.admin-similar-compare-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(120px, 1fr));
    gap: 0.55rem;
    margin: 0.55rem 0 0.75rem;
}

.admin-similar-compare-tile {
    display: grid;
    gap: 0.25rem;
    text-decoration: none;
    color: inherit;
    padding: 0.4rem;
    border-radius: 12px;
    border: 1px solid rgba(255, 255, 255, 0.1);
    background: rgba(255, 255, 255, 0.025);
}

.admin-similar-compare-tile:hover,
.admin-similar-compare-tile:focus-visible {
    border-color: rgba(255, 255, 255, 0.2);
    outline: none;
}

.admin-similar-compare-tile.is-primary {
    border-color: rgba(96, 196, 132, 0.28);
    background: rgba(72, 163, 104, 0.08);
}

.admin-similar-compare-tile img {
    width: 100%;
    aspect-ratio: 1 / 1;
    object-fit: contain;
    border-radius: 10px;
    background: rgba(0, 0, 0, 0.22);
    border: 1px solid rgba(255, 255, 255, 0.08);
}

.admin-similar-compare-label {
    display: inline-flex;
    align-items: center;
    font-size: 0.77rem;
    color: var(--ink);
    font-weight: 700;
}

.admin-similar-compare-tile small {
    color: var(--ink-soft);
    font-size: 0.74rem;
    line-height: 1.2;
}

.admin-similar-compare-actions {
    display: grid;
    gap: 0.35rem;
    margin-top: 0.1rem;
    align-content: start;
}

.admin-similar-compare-actions > * {
    justify-self: start;
}

.admin-similar-compare-actions .btn-muted {
    font-size: 0.74rem;
    padding: 0.28rem 0.55rem;
}

.admin-similar-compare-actions .admin-similar-compare-open-btn {
    font-size: 0.82rem;
    line-height: 1.1;
    padding: 0.28rem 0.6rem;
    min-height: 0;
    border-radius: 999px;
    box-shadow: 0 2px 10px rgba(10, 12, 24, 0.16);
}

.admin-duplicate-list li .admin-actions-row .admin-similar-compare-open-btn {
    font-size: 0.82rem;
    line-height: 1.1;
    padding: 0.28rem 0.6rem;
    min-height: 0;
    border-radius: 999px;
    box-shadow: 0 2px 10px rgba(10, 12, 24, 0.16);
}

.admin-similar-compare-placeholder {
    visibility: hidden;
    pointer-events: none;
}

.admin-compare-modal {
    position: fixed;
    inset: 0;
    z-index: 1200;
    display: none;
    align-items: center;
    justify-content: center;
    padding: 1rem;
}

.admin-compare-modal.open {
    display: flex;
}

.admin-compare-modal-backdrop {
    position: absolute;
    inset: 0;
    background: rgba(6, 9, 20, 0.82);
    backdrop-filter: blur(4px);
}

.admin-compare-modal-panel {
    position: relative;
    width: min(1100px, 100%);
    max-height: min(88vh, 900px);
    overflow: auto;
    border-radius: 16px;
    border: 1px solid rgba(255, 255, 255, 0.14);
    background: linear-gradient(180deg, rgba(21, 25, 44, 0.97), rgba(14, 17, 30, 0.97));
    box-shadow: 0 20px 80px rgba(0, 0, 0, 0.45);
    padding: 0.9rem;
}

.admin-compare-modal-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.75rem;
    margin-bottom: 0.75rem;
}

.admin-compare-modal-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0.75rem;
}

.admin-compare-modal-figure {
    margin: 0;
    display: grid;
    gap: 0.4rem;
    padding: 0.55rem;
    border-radius: 12px;
    border: 1px solid rgba(255, 255, 255, 0.1);
    background: rgba(255, 255, 255, 0.02);
}

.admin-compare-modal-figure img {
    width: 100%;
    max-height: min(62vh, 700px);
    object-fit: contain;
    border-radius: 10px;
    background: rgba(0, 0, 0, 0.25);
    border: 1px solid rgba(255, 255, 255, 0.08);
}

.admin-compare-modal-figure figcaption {
    color: var(--ink-soft);
    font-size: 0.82rem;
    line-height: 1.25;
}

.admin-compare-modal-delete-form {
    margin-top: 0.15rem;
    display: grid;
}

.admin-compare-modal-delete-form .admin-danger {
    width: 100%;
    justify-content: center;
}

.admin-compare-modal-delete-form .admin-compare-delete-btn {
    font-size: 0.9rem;
    font-weight: 700;
    padding: 0.42rem 0.6rem;
    border-radius: 10px;
    background: rgba(190, 74, 74, 0.14);
    border-color: rgba(220, 92, 92, 0.42);
    color: #ffd9d9;
}

.admin-compare-modal-delete-form .admin-compare-delete-btn:hover,
.admin-compare-modal-delete-form .admin-compare-delete-btn:focus-visible {
    background: rgba(206, 82, 82, 0.2);
    border-color: rgba(236, 111, 111, 0.58);
}

.admin-compare-modal-actions {
    margin-top: 0.7rem;
    display: flex;
    flex-wrap: wrap;
    gap: 0.45rem;
    justify-content: flex-end;
}

.admin-compare-modal-pair-form {
    margin: 0;
    width: 100%;
    display: flex;
    justify-content: center;
}

.admin-compare-modal-pair-form .admin-compare-ignore-btn {
    border-color: rgba(123, 214, 170, 0.45);
    background:
        linear-gradient(180deg, rgba(95, 207, 154, 0.2), rgba(64, 168, 131, 0.14)),
        rgba(255, 255, 255, 0.03);
    color: #e8fff3;
    box-shadow:
        inset 0 1px 0 rgba(255, 255, 255, 0.08),
        0 6px 16px rgba(38, 125, 92, 0.18);
    font-weight: 800;
}

.admin-compare-modal-pair-form .admin-compare-ignore-btn:hover,
.admin-compare-modal-pair-form .admin-compare-ignore-btn:focus-visible {
    border-color: rgba(123, 214, 170, 0.68);
    background:
        linear-gradient(180deg, rgba(95, 207, 154, 0.28), rgba(64, 168, 131, 0.2)),
        rgba(255, 255, 255, 0.05);
    color: #f1fff8;
    transform: translateY(-1px);
}

@media (max-width: 760px) {
    .admin-compare-modal-grid {
        grid-template-columns: 1fr;
    }

    .admin-compare-modal-panel {
        padding: 0.75rem;
        max-height: 92vh;
    }
}

.admin-maintenance-group-title {
    margin: 0.8rem 0 0.45rem;
    font-size: 0.88rem;
    color: var(--ink);
}

.admin-job-error-summary {
    margin-top: 0.7rem;
    padding: 0.75rem;
    border-radius: 12px;
    border: 1px solid rgba(234, 103, 103, 0.22);
    background: rgba(234, 103, 103, 0.06);
}

.admin-job-error-summary h4 {
    margin: 0 0 0.45rem;
    font-size: 0.88rem;
}

.admin-job-error-list {
    margin: 0;
    padding: 0;
    list-style: none;
    display: grid;
    gap: 0.35rem;
}

.admin-job-error-list li {
    display: grid;
    gap: 0.12rem;
    padding: 0.35rem 0.45rem;
    border-radius: 8px;
    background: rgba(0, 0, 0, 0.16);
    border: 1px solid rgba(255, 255, 255, 0.05);
}

.admin-job-error-list li strong {
    color: var(--ink);
    font-size: 0.82rem;
    overflow-wrap: anywhere;
}

.admin-job-error-list li span {
    color: var(--ink-soft);
    font-size: 0.8rem;
    overflow-wrap: anywhere;
}

.admin-upload-panel .admin-inline-form {
    margin-top: 0.65rem;
    gap: 0.7rem;
}

.admin-stats-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
    gap: 0.8rem;
    margin-bottom: 0.9rem;
}

.admin-performance-mini-card {
    margin-top: 0.9rem;
    margin-bottom: 1rem;
    border-color: rgba(124, 190, 255, 0.18);
    background:
        radial-gradient(circle at 12% 12%, rgba(124, 190, 255, 0.08), transparent 58%),
        rgba(255, 255, 255, 0.018);
}

.admin-latest-images-list {
    display: grid;
    gap: 0.55rem;
}

.admin-inbox-list {
    display: grid;
    gap: 0.8rem;
}

.admin-inbox-meta-form {
    margin-top: 0.75rem;
    padding-top: 0.7rem;
    border-top: 1px solid rgba(255, 255, 255, 0.06);
}

.admin-inbox-meta-form .admin-text-group-fields {
    gap: 0.7rem;
}

.admin-inbox-filters {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
    gap: 0.75rem;
    align-items: end;
}

.admin-inbox-filters .admin-text-field {
    margin: 0;
}

.admin-category-seo-preview {
    margin-top: 0.75rem;
    border-top: 1px solid rgba(255, 255, 255, 0.06);
    padding-top: 0.75rem;
}

.admin-category-seo-preview-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 0.8rem;
}

.admin-seo-snippet,
.admin-og-preview {
    border: 1px solid rgba(255, 255, 255, 0.06);
    border-radius: 12px;
    background: rgba(255, 255, 255, 0.02);
    padding: 0.75rem;
}

.admin-seo-snippet-title {
    margin: 0.2rem 0 0.15rem;
    color: #9ec3ff;
    font-size: 1rem;
    line-height: 1.25;
}

.admin-seo-snippet-url {
    margin: 0 0 0.25rem;
    color: #78bb7e;
    font-size: 0.82rem;
    line-height: 1.2;
}

.admin-seo-snippet-desc {
    margin: 0;
    color: var(--ink-soft);
    font-size: 0.87rem;
    line-height: 1.35;
}

.admin-og-preview-card {
    border-radius: 10px;
    overflow: hidden;
    border: 1px solid rgba(255, 255, 255, 0.06);
    background: rgba(0, 0, 0, 0.18);
}

.admin-og-preview-media {
    aspect-ratio: 1.91 / 1;
    background: rgba(255, 255, 255, 0.03);
    display: grid;
    place-items: center;
}

.admin-og-preview-media img {
    width: 100%;
    height: 100%;
    display: block;
    object-fit: cover;
}

.admin-og-preview-body {
    padding: 0.65rem 0.75rem 0.7rem;
    display: grid;
    gap: 0.28rem;
}

.admin-og-preview-title {
    margin: 0;
    color: var(--ink);
    font-weight: 600;
    line-height: 1.25;
}

.admin-og-preview-desc {
    margin: 0;
    color: var(--ink-soft);
    font-size: 0.84rem;
    line-height: 1.3;
}

.admin-og-preview-domain {
    margin: 0.1rem 0 0;
    color: rgba(255, 255, 255, 0.55);
    text-transform: uppercase;
    letter-spacing: 0.05em;
    font-size: 0.72rem;
}

.admin-inbox-item-head {
    display: flex;
    justify-content: space-between;
    gap: 0.7rem;
    align-items: flex-start;
}

.admin-inbox-item-head h4 {
    margin: 0;
}

.admin-inbox-status {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 0.24rem 0.55rem;
    border-radius: 999px;
    border: 1px solid rgba(255, 255, 255, 0.12);
    font-size: 0.75rem;
    line-height: 1.1;
    white-space: nowrap;
    background: rgba(255, 255, 255, 0.04);
}

.admin-inbox-status.is-new {
    border-color: rgba(244, 186, 91, 0.28);
    background: rgba(244, 186, 91, 0.12);
    color: #ffe7bd;
}

.admin-inbox-status.is-replied {
    border-color: rgba(123, 211, 156, 0.26);
    background: rgba(123, 211, 156, 0.1);
    color: #d8ffe9;
}

.admin-inbox-status.is-archived {
    border-color: rgba(170, 178, 201, 0.22);
    background: rgba(170, 178, 201, 0.08);
    color: #d7deee;
}

.admin-inbox-message {
    margin: 0;
    white-space: pre-wrap;
    word-break: break-word;
    border-radius: 10px;
    border: 1px solid rgba(255, 255, 255, 0.06);
    background: rgba(255, 255, 255, 0.02);
    padding: 0.65rem 0.75rem;
    color: var(--ink);
    font: inherit;
    line-height: 1.4;
}

.admin-smtp-diagnostics {
    margin-top: 0.8rem;
    border: 1px solid rgba(255, 255, 255, 0.08);
    border-radius: 12px;
    background: rgba(255, 255, 255, 0.018);
    padding: 0.75rem 0.8rem;
}

.admin-smtp-step-list {
    margin: 0.45rem 0 0;
    padding: 0;
    list-style: none;
    display: grid;
    gap: 0.35rem;
}

.admin-smtp-step-list li {
    display: grid;
    grid-template-columns: 130px minmax(0, 1fr);
    gap: 0.55rem;
    align-items: start;
    border-radius: 8px;
    padding: 0.35rem 0.45rem;
    border: 1px solid rgba(255, 255, 255, 0.05);
    background: rgba(255, 255, 255, 0.012);
}

.admin-smtp-step-list li strong {
    font-size: 0.78rem;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    color: rgba(255, 255, 255, 0.88);
}

.admin-smtp-step-list li span {
    color: var(--ink-soft);
    font-size: 0.83rem;
    line-height: 1.35;
}

.admin-smtp-step-list li.is-ok {
    border-color: rgba(123, 211, 156, 0.12);
}

.admin-smtp-step-list li.is-error {
    border-color: rgba(239, 106, 106, 0.18);
    background: rgba(239, 106, 106, 0.04);
}

@media (max-width: 760px) {
    .admin-smtp-step-list li {
        grid-template-columns: 1fr;
        gap: 0.25rem;
    }
}

.admin-latest-image-row {
    display: grid;
    grid-template-columns: 58px minmax(0, 1fr);
    align-items: center;
    gap: 0.6rem;
    text-decoration: none;
    color: inherit;
    border: 1px solid rgba(255, 255, 255, 0.06);
    border-radius: 10px;
    padding: 0.45rem;
    background: rgba(255, 255, 255, 0.015);
}

.admin-latest-image-row:hover,
.admin-latest-image-row:focus-visible {
    border-color: rgba(244, 186, 91, 0.25);
    background: rgba(255, 255, 255, 0.03);
    outline: none;
}

.admin-latest-image-row img {
    width: 58px;
    height: 58px;
    object-fit: contain;
    border-radius: 8px;
    border: 1px solid rgba(255, 255, 255, 0.06);
    background: rgba(255, 255, 255, 0.02);
}

.admin-latest-image-row img[data-admin-preview-btn] {
    cursor: zoom-in;
}

.admin-latest-image-row span {
    min-width: 0;
    display: grid;
    gap: 0.12rem;
}

.admin-latest-image-row strong {
    display: block;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    font-size: 0.88rem;
}

.admin-latest-image-row small {
    color: var(--ink-soft);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.admin-latest-image-row.admin-visitor-row {
    grid-template-columns: minmax(0, 1fr);
    align-items: start;
}

.admin-latest-image-row.admin-visitor-row span {
    gap: 0.4rem;
}

.admin-latest-image-row.admin-visitor-row strong {
    white-space: normal;
    overflow: visible;
    text-overflow: clip;
}

.admin-latest-image-row.admin-visitor-row small {
    white-space: normal;
    overflow: visible;
    text-overflow: clip;
}

.admin-visitor-meta-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(220px, 1fr));
    gap: 0.42rem 0.85rem;
}

.admin-visitor-meta-item {
    display: grid;
    gap: 0.08rem;
    min-width: 0;
}

.admin-visitor-meta-label {
    color: var(--ink-soft);
    font-size: 0.72rem;
    text-transform: uppercase;
    letter-spacing: 0.04em;
}

.admin-visitor-meta-value {
    color: var(--ink);
    line-height: 1.28;
}

@media (max-width: 760px) {
    .admin-visitor-meta-grid {
        grid-template-columns: 1fr;
    }
}

.admin-upload-dropzone {
    margin-top: 0.65rem;
    border: 1px dashed rgba(255, 255, 255, 0.18);
    border-radius: 12px;
    background: rgba(255, 255, 255, 0.02);
    padding: 0.9rem;
    display: grid;
    gap: 0.25rem;
    cursor: pointer;
    color: var(--ink-soft);
    transition: border-color 140ms ease, background-color 140ms ease, transform 140ms ease;
}

.admin-upload-dropzone strong {
    color: var(--ink);
    font-size: 0.92rem;
}

.admin-upload-dropzone span {
    font-size: 0.82rem;
}

.admin-upload-dropzone small {
    font-size: 0.78rem;
    color: var(--ink);
    opacity: 0.88;
}

.admin-upload-dropzone:hover,
.admin-upload-dropzone:focus-visible {
    border-color: rgba(211, 168, 110, 0.55);
    background: rgba(255, 255, 255, 0.035);
    outline: none;
}

.admin-upload-dropzone.is-drag-over {
    border-color: rgba(140, 108, 224, 0.9);
    background: rgba(140, 108, 224, 0.12);
    transform: translateY(-1px);
}

.admin-selected-images-panel {
    margin-top: 0.8rem;
    padding: 0.8rem;
    border-radius: 14px;
    border: 1px solid rgba(255, 255, 255, 0.08);
    background: rgba(255, 255, 255, 0.015);
}

.admin-selected-images-panel h3 {
    margin: 0 0 0.55rem;
}

.admin-selected-extra {
    margin-top: 0.8rem;
    border: 1px solid rgba(255, 255, 255, 0.07);
    border-radius: 12px;
    background: rgba(255, 255, 255, 0.015);
    overflow: hidden;
}

.admin-selected-extra summary {
    cursor: pointer;
    list-style: none;
    padding: 0.65rem 0.8rem;
    color: var(--ink-soft);
    font-weight: 700;
}

.admin-selected-extra summary::-webkit-details-marker {
    display: none;
}

.admin-selected-extra summary::after {
    content: ' +';
}

.admin-selected-extra[open] summary::after {
    content: ' -';
}

.admin-selected-extra-content {
    padding: 0 0.8rem 0.8rem;
    display: grid;
    gap: 0.4rem;
}

.admin-selected-extra-content > h3 {
    margin-top: 0.1rem;
}

.admin-selected-reset-extra {
    margin-top: 0;
    margin-bottom: 0.75rem;
}

.admin-crop-section-title {
    margin: 0.35rem 0 0.4rem;
    font-size: 0.96rem;
}

.admin-crop-editor {
    display: grid;
    gap: 0.75rem;
    margin-top: 0.55rem;
}

.admin-crop-advanced {
    border: 1px solid rgba(255, 255, 255, 0.07);
    border-radius: 12px;
    background: rgba(255, 255, 255, 0.015);
    overflow: hidden;
}

.admin-crop-advanced summary {
    cursor: pointer;
    list-style: none;
    padding: 0.55rem 0.7rem;
    color: var(--ink-soft);
    font-weight: 600;
}

.admin-crop-advanced summary::-webkit-details-marker {
    display: none;
}

.admin-crop-advanced summary::after {
    content: ' +';
}

.admin-crop-advanced[open] summary::after {
    content: ' -';
}

.admin-crop-advanced .admin-crop-preview {
    margin: 0 0.7rem 0.7rem;
}

.admin-crop-preview {
    position: relative;
    aspect-ratio: 4 / 3;
    border-radius: 12px;
    overflow: hidden;
    border: 1px solid rgba(255, 255, 255, 0.08);
    background: rgba(255, 255, 255, 0.03);
    cursor: crosshair;
    outline: none;
}

.admin-crop-preview img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

.admin-crop-marker {
    position: absolute;
    width: 14px;
    height: 14px;
    margin-left: -7px;
    margin-top: -7px;
    border-radius: 999px;
    border: 2px solid #fff;
    background: rgba(244, 186, 91, 0.85);
    box-shadow: 0 0 0 2px rgba(0, 0, 0, 0.4);
    pointer-events: none;
}

.admin-crop-control {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    color: var(--ink-soft);
    font-size: 0.82rem;
}

.admin-crop-control.is-hidden {
    display: none;
}

.admin-crop-control input[type="range"] {
    width: min(240px, 46vw);
}

.admin-crop-live-block {
    display: grid;
    gap: 0.35rem;
}

.admin-crop-live-preview {
    width: min(260px, 100%);
    border-radius: 12px;
    overflow: hidden;
    border: 1px solid rgba(255, 255, 255, 0.08);
    background: rgba(255, 255, 255, 0.03);
}

.admin-crop-live-preview.is-card {
    aspect-ratio: 4 / 3;
}

.admin-crop-live-preview.is-vertical {
    aspect-ratio: 4 / 5;
}

.admin-crop-live-preview img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

.admin-selected-images-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 0.65rem;
}

.admin-selected-tile {
    border: 1px solid rgba(255, 255, 255, 0.07);
    border-radius: 12px;
    padding: 0.55rem;
    background: rgba(0, 0, 0, 0.12);
}

.admin-selected-tile-label {
    margin: 0 0 0.4rem;
    font-size: 0.82rem;
    font-weight: 700;
}

.admin-selected-tile-media {
    aspect-ratio: 4 / 3;
    border-radius: 10px;
    overflow: hidden;
    background: rgba(255, 255, 255, 0.04);
    border: 1px solid rgba(255, 255, 255, 0.05);
    margin-bottom: 0.45rem;
}

.admin-selected-tile-media img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

.admin-selected-tile-placeholder {
    height: 100%;
    display: grid;
    place-items: center;
    text-align: center;
    color: var(--ink-soft);
    font-size: 0.8rem;
    padding: 0.75rem;
}

.admin-selected-strip-panel {
    margin-top: 0.9rem;
    padding-top: 0.8rem;
    border-top: 1px solid rgba(255, 255, 255, 0.07);
    display: grid;
    gap: 0.7rem;
}

.admin-selected-strip-panel .section-head {
    margin: 0;
    display: grid;
    grid-template-columns: minmax(270px, 340px) minmax(0, 1fr);
    align-items: center;
    column-gap: 1rem;
    row-gap: 0.45rem;
}

.admin-selected-strip-panel .section-head h4 {
    margin: 0 0 0.25rem;
    line-height: 1.2;
}

.admin-selected-strip-panel .section-head p {
    margin: 0;
    color: var(--ink-soft);
    font-size: 0.84rem;
    line-height: 1.35;
}

@media (max-width: 1080px) {
    .admin-selected-strip-panel .section-head {
        grid-template-columns: 1fr;
    }
}

.admin-editorial-strip-list {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
    gap: 0.7rem;
}

.admin-editorial-strip-item {
    display: grid;
    grid-template-rows: auto auto auto;
    gap: 0.65rem;
    align-items: stretch;
    border-radius: 12px;
    border: 1px solid rgba(255, 255, 255, 0.07);
    background: rgba(0, 0, 0, 0.1);
    padding: 0.55rem;
}

.admin-editorial-strip-thumb {
    aspect-ratio: 4 / 3;
    border-radius: 10px;
    overflow: hidden;
    border: 1px solid rgba(255, 255, 255, 0.07);
    background: rgba(255, 255, 255, 0.02);
}

.admin-editorial-strip-preview-btn {
    width: 100%;
    height: 100%;
    border: 0;
    padding: 0;
    margin: 0;
    border-radius: inherit;
    background: transparent;
    cursor: zoom-in;
    display: block;
}

.admin-editorial-strip-thumb img {
    width: 100%;
    height: 100%;
    object-fit: contain;
    background: rgba(0, 0, 0, 0.2);
    display: block;
}

.admin-editorial-strip-meta {
    min-width: 0;
}

.admin-editorial-strip-meta .admin-file-name {
    margin-bottom: 0.25rem;
}

.admin-editorial-strip-item .admin-actions-row {
    margin-top: 0.1rem;
}

.admin-editorial-strip-item .admin-actions-row form {
    width: 100%;
}

.admin-editorial-strip-item .admin-actions-row .admin-danger {
    width: 100%;
}

.admin-job-progress {
    margin-top: 0.8rem;
    margin-bottom: 1rem;
    padding: 0.7rem 0.8rem;
    border-radius: 12px;
    border: 1px solid rgba(140, 108, 224, 0.28);
    background: rgba(140, 108, 224, 0.08);
}

.admin-job-error-summary {
    margin-bottom: 1rem;
}

.admin-job-progress-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.75rem;
    margin-bottom: 0.45rem;
}

.admin-job-progress-tools {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    flex-wrap: wrap;
}

.admin-job-cancel-btn {
    min-height: auto;
    padding: 0.3rem 0.55rem;
}

.admin-job-progress-bar {
    position: relative;
    height: 10px;
    border-radius: 999px;
    overflow: hidden;
    background: rgba(255, 255, 255, 0.08);
    border: 1px solid rgba(255, 255, 255, 0.06);
}

.admin-job-progress-fill {
    height: 100%;
    width: 0;
    border-radius: inherit;
    background: linear-gradient(90deg, rgba(140, 108, 224, 0.95), rgba(244, 186, 91, 0.95));
    transition: width 180ms ease;
}

.admin-job-progress-bar.is-indeterminate .admin-job-progress-fill {
    width: 35%;
    animation: admin-progress-slide 1.1s ease-in-out infinite;
}

.admin-job-progress #admin-job-progress-meta {
    margin-top: 0.45rem;
}

@keyframes admin-progress-slide {
    0% {
        transform: translateX(-120%);
    }
    100% {
        transform: translateX(340%);
    }
}

.admin-drag-handle {
    border: 1px dashed var(--line);
    background: rgba(255, 255, 255, 0.04);
    color: var(--ink-soft);
    border-radius: 8px;
    min-height: 2rem;
    padding: 0.35rem 0.6rem;
    cursor: grab;
    font-size: 0.82rem;
}

.admin-preview-btn,
.admin-tools-open-icon {
    width: 2rem;
    min-width: 2rem;
    height: 2rem;
    border-radius: 8px;
    border: 1px solid var(--line);
    background: rgba(255, 255, 255, 0.04);
    color: var(--ink-soft);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    padding: 0;
    touch-action: manipulation;
}

.admin-preview-btn:hover,
.admin-preview-btn:focus-visible,
.admin-tools-open-icon:hover,
.admin-tools-open-icon:focus-visible {
    color: var(--ink);
    border-color: rgba(211, 168, 110, 0.55);
    outline: none;
}

.admin-preview-btn svg,
.admin-tools-open-icon svg {
    width: 1rem;
    height: 1rem;
    fill: none;
    stroke: currentColor;
    stroke-width: 2;
    stroke-linecap: round;
}

.admin-drag-handle:active {
    cursor: grabbing;
}

.admin-tools-open-btn {
    align-self: flex-start;
    margin-top: 0.1rem;
    gap: 0.35rem;
}

.admin-tools-open-btn > span[aria-hidden="true"] {
    font-size: 1.15rem;
    line-height: 1;
}

@media (hover: none) and (pointer: coarse) {
    .cta:active,
    .btn-muted:active,
    .nav-link:active,
    .gallery-category-chip:active,
    .admin-view-tab-btn:active,
    .admin-subtab-btn:active,
    .admin-card-tools-tab-btn:active {
        transform: translateY(1px) scale(0.99);
        filter: brightness(0.98);
    }

    .card-link:active .card-media img {
        transform: scale(1.02);
        filter: saturate(0.95) contrast(1.04);
    }
}

.admin-card-tools-modal {
    position: fixed;
    inset: 0;
    z-index: 70;
    display: grid;
    place-items: center;
    padding: 1rem;
}

.admin-card-tools-modal[hidden] {
    display: none !important;
}

.admin-card-tools-modal-backdrop {
    position: absolute;
    inset: 0;
    background: rgba(4, 5, 8, 0.82);
}

.admin-card-tools-modal-panel {
    position: relative;
    z-index: 1;
    width: min(900px, 96vw);
    max-height: min(88vh, 900px);
    overflow: auto;
    border: 1px solid rgba(255, 255, 255, 0.1);
    border-radius: 14px;
    background: rgba(13, 14, 20, 0.98);
    box-shadow: 0 20px 60px rgba(0, 0, 0, 0.45);
    padding: 0.85rem;
    display: grid;
    gap: 0.75rem;
}

.admin-card-tools-modal-head {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    gap: 0.65rem;
    padding-bottom: 0.55rem;
    border-bottom: 1px solid rgba(255, 255, 255, 0.08);
}

.admin-card-tools-modal-head-main {
    display: flex;
    align-items: flex-start;
    gap: 0.7rem;
    min-width: 0;
}

.admin-card-tools-modal-thumb {
    width: 140px;
    height: 140px;
    border-radius: 10px;
    overflow: hidden;
    border: 1px solid rgba(255, 255, 255, 0.08);
    background: rgba(255, 255, 255, 0.02);
    flex-shrink: 0;
}

.admin-card-tools-modal-thumb img {
    width: 100%;
    height: 100%;
    object-fit: contain;
    display: block;
}

.admin-card-tools-close-btn {
    flex-shrink: 0;
}

.admin-card-tools-tabs {
    display: flex;
    flex-wrap: wrap;
    gap: 0.45rem;
}

.admin-card-tools-tab-btn {
    border: 1px solid rgba(255, 255, 255, 0.1);
    background: rgba(255, 255, 255, 0.03);
    color: var(--ink-soft);
    border-radius: 999px;
    padding: 0.38rem 0.7rem;
    font: inherit;
    font-size: 0.8rem;
    cursor: pointer;
}

.admin-card-tools-tab-btn:hover,
.admin-card-tools-tab-btn:focus-visible {
    border-color: rgba(211, 168, 110, 0.45);
    color: var(--ink);
    outline: none;
}

.admin-card-tools-tab-btn.is-active {
    color: var(--ink);
    border-color: rgba(244, 186, 91, 0.28);
    background: rgba(244, 186, 91, 0.12);
}

.admin-tools-content {
    display: flex;
    flex-direction: column;
    gap: 0.55rem;
}

.admin-tool-group {
    border: 1px solid rgba(255, 255, 255, 0.06);
    border-radius: 10px;
    background: rgba(255, 255, 255, 0.015);
    padding: 0.55rem;
    display: grid;
    gap: 0.5rem;
}

.admin-tool-group[hidden] {
    display: none !important;
}

.admin-tool-group h4 {
    margin: 0;
    font-size: 0.78rem;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    color: var(--ink-soft);
}

.admin-tool-group[data-admin-tools-tab-panel="featured"] .admin-actions-row {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
    gap: 0.55rem;
}

.admin-tool-group[data-admin-tools-tab-panel="featured"] .admin-actions-row form {
    width: 100%;
}

.admin-tool-group[data-admin-tools-tab-panel="featured"] .admin-actions-row button {
    width: 100%;
    justify-content: flex-start;
}

.admin-featured-btn {
    opacity: 0.9;
}

.admin-featured-active-btn {
    position: relative;
    border-color: rgba(255, 214, 133, 0.75) !important;
    background:
        linear-gradient(125deg, rgba(244, 186, 91, 0.36), rgba(255, 255, 255, 0.08)),
        rgba(255, 255, 255, 0.08) !important;
    box-shadow:
        0 0 0 1px rgba(244, 186, 91, 0.36),
        0 8px 20px rgba(244, 186, 91, 0.16);
    padding-right: 2rem;
}

.admin-featured-active-btn::before {
    content: '✓';
    position: absolute;
    right: 0.72rem;
    top: 50%;
    transform: translateY(-50%);
    font-weight: 800;
    color: #ffe2a8;
    text-shadow: 0 1px 8px rgba(0, 0, 0, 0.28);
}

.admin-danger {
    border: 1px solid rgba(220, 92, 92, 0.55);
    background: rgba(220, 92, 92, 0.18);
    color: #ffd4d4;
    border-radius: 9px;
    padding: 0.5rem 0.62rem;
    cursor: pointer;
}

.admin-hidden-form {
    display: none;
}

@media (max-width: 960px) {
    .admin-head {
        flex-direction: column;
    }

    .admin-selected-images-grid {
        grid-template-columns: 1fr;
    }

    .admin-category-seo-preview-grid {
        grid-template-columns: 1fr;
    }

    .admin-job-progress-head {
        align-items: flex-start;
        flex-direction: column;
    }
}

@media (max-width: 760px) {
    .admin-grid {
        grid-template-columns: 1fr;
        justify-items: stretch;
    }

    .admin-card {
        max-width: none;
    }

    .admin-card-body {
        padding: 0.85rem;
        gap: 0.65rem;
    }

    .admin-preview-btn,
    .admin-tools-open-icon {
        width: 2.35rem;
        min-width: 2.35rem;
        height: 2.35rem;
        border-radius: 10px;
    }

    .admin-drag-handle {
        min-height: 2.35rem;
        padding: 0.45rem 0.75rem;
        border-radius: 10px;
    }

    .admin-tools-open-btn {
        min-height: 2.4rem;
        padding: 0.45rem 0.8rem;
        border-radius: 10px;
    }

    .admin-tools-open-btn-label {
        display: none;
    }

    .admin-card-tools-modal {
        padding: 0.6rem;
    }

    .admin-card-tools-modal-panel {
        width: min(96vw, 96vw);
        max-height: 92vh;
        padding: 0.7rem;
    }

    .admin-card-tools-tab-btn {
        min-height: 2.25rem;
        padding: 0.48rem 0.82rem;
        font-size: 0.84rem;
    }

    .admin-card-tools-modal-panel .admin-inline-form input,
    .admin-card-tools-modal-panel .admin-inline-form select {
        min-height: 2.5rem;
        font-size: 16px;
        padding: 0.55rem 0.7rem;
    }

    .admin-card-tools-modal-panel .admin-inline-form button,
    .admin-card-tools-modal-panel .admin-actions-row button,
    .admin-card-tools-modal-panel .admin-actions-row .btn-muted,
    .admin-card-tools-modal-panel .admin-actions-row .cta {
        min-height: 2.5rem;
    }

    .admin-card-tools-modal-panel .admin-tool-group .admin-actions-row {
        position: sticky;
        bottom: -0.7rem;
        margin: 0 -0.55rem -0.55rem;
        padding: 0.55rem;
        background: linear-gradient(180deg, rgba(13, 14, 20, 0.72), rgba(13, 14, 20, 0.98));
        border-top: 1px solid rgba(255, 255, 255, 0.07);
        backdrop-filter: blur(10px);
    z-index: 2;
    z-index: 21;
}

    .admin-card-tools-modal-head {
        flex-direction: column;
        align-items: flex-start;
    }

    .admin-card-tools-modal-head-main {
        width: 100%;
    }
}

@media (max-width: 640px) {
    .admin-card-top {
        gap: 0.55rem;
    }
}

/* Mobile stability overrides for public pages */
@media (max-width: 980px) {
    .page-shell:not(.admin-page) .hero-layout,
    .page-shell:not(.admin-page) .prices-hero-layout {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 760px) {
    html,
    body {
        overflow-x: hidden;
    }

    .page-shell:not(.admin-page) {
        width: min(100%, 94vw);
        padding-bottom: 2rem;
    }

    .page-shell:not(.admin-page) > main {
        overflow-x: clip;
    }

    .page-shell:not(.admin-page) .hero-block,
    .page-shell:not(.admin-page) .section-block {
        padding: 1rem;
    }

    .page-shell:not(.admin-page) .hero-layout,
    .page-shell:not(.admin-page) .prices-hero-layout,
    .page-shell:not(.admin-page) .category-grid,
    .page-shell:not(.admin-page) .contact-grid,
    .page-shell:not(.admin-page) .pricing-grid {
        grid-template-columns: 1fr;
    }

    .page-shell:not(.admin-page) .hero-layout > *,
    .page-shell:not(.admin-page) .prices-hero-layout > *,
    .page-shell:not(.admin-page) .hero-copy {
        min-width: 0;
    }

    .page-shell:not(.admin-page) .hero-copy,
    .page-shell:not(.admin-page) .hero-copy .lead {
        overflow-wrap: anywhere;
        word-break: break-word;
    }

    .page-shell:not(.admin-page) .hero-motion-strip {
        width: 100%;
        max-width: 100%;
    }

    .page-shell:not(.admin-page) .home-editorial-strip-scroller {
        overflow-x: auto;
        overflow-y: hidden;
        perspective: none;
        transform-style: flat;
        padding-top: 0.2rem;
    }

    .page-shell:not(.admin-page) .home-editorial-strip-track,
    .page-shell:not(.admin-page) .home-editorial-strip-card,
    .page-shell:not(.admin-page) .home-editorial-strip-card img,
    .page-shell:not(.admin-page) .category-card,
    .page-shell:not(.admin-page) .category-card .card-link,
    .page-shell:not(.admin-page) .price-card-link,
    .page-shell:not(.admin-page) .gallery.masonry .image-button {
        animation: none !important;
        transform: none !important;
        filter: none !important;
    }

    .page-shell:not(.admin-page) .home-editorial-strip-link::after {
        box-shadow: none;
        border-color: rgba(244, 186, 91, 0.34);
    }

    .page-shell:not(.admin-page) .hero-block .vertical-image-slot {
        min-height: 0;
        height: clamp(220px, 48vw, 320px);
    }

    .page-shell:not(.admin-page) .hero-block .vertical-image-slot img,
    .page-shell:not(.admin-page) .hero-block .vertical-image-placeholder {
        min-height: 0;
        height: 100%;
    }
}
