html { scroll-behavior: smooth; color-scheme: dark; overflow-x: clip; }
body { overflow-x: visible; }
body:not(.desk):not(.miss) { padding-bottom: 5.25rem; }
::selection { background: #d07b53; color: #4d1900; }

body::before {
    content: "";
    pointer-events: none;
    position: fixed;
    inset: 0;
    z-index: 70;
    opacity: 0.045;
    background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='180' height='180'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='.8' numOctaves='2' stitchTiles='stitch'/></filter><rect width='100%25' height='100%25' filter='url(%23n)'/></svg>");
}

:focus-visible {
    outline: 2px solid #e3c288;
    outline-offset: 3px;
}

.paper {
    background-color: #f0e9dc;
    color: #171714;
    background-image: radial-gradient(rgba(60, 48, 39, 0.05) 0.6px, transparent 0.6px);
    background-size: 3px 3px;
}

.hero-title {
    text-shadow: 0 18px 50px rgba(0, 0, 0, 0.55);
}

.track-row.is-current {
    box-shadow: inset 3px 0 0 #e3c288;
    background: #2a2a27;
}

.field-error { color: #ffb4ab; font-size: 13px; margin-top: 0.35rem; }

main :is(input[type="text"], input[type="email"], input[type="password"], input[type="tel"], input[type="search"], input[type="url"], input[type="date"], textarea, select) {
    background: #1c1c19;
    color: #e5e2dd;
    border: 0;
    border-bottom: 1px solid rgba(227, 194, 136, 0.38);
    transition: border-color 0.2s ease, background 0.2s ease;
}

main :is(input[type="text"], input[type="email"], input[type="password"], input[type="tel"], input[type="search"], input[type="url"], input[type="date"], textarea, select):focus {
    outline: none;
    border-bottom-color: #d07b53;
    background: #20201d;
}

main input[type="number"] {
    background: #1c1c19;
    color: #e5e2dd;
    border: 0;
    border-bottom: 1px solid rgba(227, 194, 136, 0.38);
}

main button[type="submit"] {
    letter-spacing: 0.08em;
    cursor: pointer;
}

.site-header {
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    z-index: 50;
    height: 5rem;
    background: rgba(14, 14, 12, 0.82);
    backdrop-filter: blur(18px);
    border-bottom: 1px solid rgba(227, 194, 136, 0.16);
}

.is-home .site-header {
    background: transparent;
    border-bottom-color: transparent;
    backdrop-filter: none;
}

.is-home .site-header.is-solid,
body.nav-open .site-header {
    background: rgba(14, 14, 12, 0.88);
    border-bottom-color: rgba(227, 194, 136, 0.16);
    backdrop-filter: blur(18px);
}

.site-header-bar {
    height: 100%;
    max-width: 1440px;
    margin: 0 auto;
    padding: 0 1.25rem;
    display: grid;
    grid-template-columns: 1fr auto 1fr;
    align-items: center;
    gap: 1.25rem;
}

.site-brand {
    grid-column: 2;
    justify-self: center;
    font-family: "Playfair Display", serif;
    font-size: 1.15rem;
    letter-spacing: 0.18em;
    text-transform: uppercase;
    color: #e5e2dd;
    white-space: nowrap;
}

.site-nav {
    display: none;
    align-items: center;
    gap: clamp(0.7rem, 1.15vw, 1.45rem);
}

.site-header-bar > .site-nav {
    grid-column: 1;
    grid-row: 1;
    justify-self: end;
}

.site-cluster {
    grid-column: 3;
    grid-row: 1;
    display: flex;
    align-items: center;
    gap: clamp(0.7rem, 1.15vw, 1.45rem);
    min-width: 0;
}

.site-cluster .site-nav {
    margin-right: auto;
}

.site-nav a {
    position: relative;
    padding: 0.4rem 0;
    color: #cbb8ae;
    font-family: Oswald, sans-serif;
    font-size: 12px;
    letter-spacing: 0.14em;
    text-transform: uppercase;
}

.site-nav a:hover { color: #e5e2dd; }

.site-nav a[aria-current="page"] { color: #e3c288; }

.site-nav a[aria-current="page"]::after {
    content: "";
    position: absolute;
    left: 0;
    right: 0;
    bottom: 0;
    height: 1px;
    background: #e3c288;
}

.site-tools {
    display: flex;
    align-items: center;
    gap: 0.35rem;
    margin-left: auto;
}

.site-book {
    display: none;
    align-items: center;
    margin-right: 0.35rem;
    padding: 0.45rem 0.8rem;
    border: 1px solid rgba(227, 194, 136, 0.45);
    color: #e3c288;
    font-family: Oswald, sans-serif;
    font-size: 12px;
    letter-spacing: 0.14em;
    text-transform: uppercase;
}

.site-book:hover {
    background: #e3c288;
    color: #412d02;
}

.site-icon {
    position: relative;
    width: 2.4rem;
    height: 2.4rem;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    color: #e3c288;
}

.site-icon:hover { color: #e5e2dd; }

.site-icon .material-symbols-outlined { font-size: 22px; }

.site-count {
    position: absolute;
    top: 0;
    right: 0;
    min-width: 1rem;
    height: 1rem;
    padding: 0 0.2rem;
    display: flex;
    align-items: center;
    justify-content: center;
    background: #e3c288;
    color: #412d02;
    font-family: Oswald, sans-serif;
    font-size: 10px;
}

.site-menu { display: inline-flex; }

@media (min-width: 640px) {
    .site-book { display: inline-flex; }
}

@media (min-width: 1024px) {
    .site-header-bar { padding: 0 3rem; }
}

@media (min-width: 1280px) {
    .site-nav { display: flex; }
    .site-menu { display: none; }
}

.nav-drawer {
    display: none;
    position: fixed;
    z-index: 45;
    top: 5rem;
    right: 0;
    bottom: 0;
    left: 0;
    flex-direction: column;
    justify-content: space-between;
    gap: 1.5rem;
    padding: 1.75rem 1.75rem 2rem;
    overflow: auto;
    background: rgba(14, 14, 12, 0.94);
    backdrop-filter: blur(22px);
}

.drawer-links {
    display: flex;
    flex-direction: column;
}

.drawer-links a {
    display: flex;
    align-items: center;
    min-height: 2.35rem;
    color: #e5e2dd;
    font-family: "Playfair Display", serif;
    font-size: 1.15rem;
    letter-spacing: -0.03em;
    line-height: 1;
}

.drawer-links a:hover { color: #e3c288; }

.drawer-links a[aria-current="page"] { color: #e3c288; }

.drawer-links a[aria-current="page"]::before {
    content: "";
    width: 1.15rem;
    height: 1px;
    margin-right: 0.75rem;
    background: #e3c288;
}

.drawer-foot {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 0.85rem;
    margin-top: auto;
}

.drawer-book {
    display: inline-flex;
    align-items: center;
    min-height: 2.75rem;
    padding: 0 1.15rem;
    border: 1px solid rgba(227, 194, 136, 0.5);
    color: #e3c288;
    font-family: Oswald, sans-serif;
    font-size: 12px;
    letter-spacing: 0.14em;
    text-transform: uppercase;
}

.drawer-book:hover {
    background: #e3c288;
    color: #412d02;
}

.drawer-account {
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
    color: #a28c84;
    font-family: Oswald, sans-serif;
    font-size: 12px;
    letter-spacing: 0.14em;
    text-transform: uppercase;
}

.drawer-account .material-symbols-outlined { font-size: 18px; }

.drawer-account:hover { color: #e5e2dd; }

@media (max-width: 1279px) {
    .nav-drawer.is-open { display: flex; }
}

body.nav-open { overflow: hidden; }

.masthead {
    position: relative;
    isolation: isolate;
    min-height: 42vh;
    margin-top: -5rem;
    display: flex;
    align-items: flex-end;
    overflow: hidden;
    background: #0e0e0c;
}

.masthead-photo {
    position: absolute;
    inset: 0;
    background-position: center 30%;
    background-size: cover;
    filter: brightness(0.42) saturate(0.85);
    transform: scale(1.04);
}

.masthead-veil {
    position: absolute;
    inset: 0;
    background:
        linear-gradient(180deg, rgba(14, 14, 12, 0.35) 0%, rgba(19, 20, 17, 0.2) 30%, #131411 100%),
        linear-gradient(90deg, rgba(19, 20, 17, 0.72), transparent 55%);
}

.masthead-title {
    max-width: 12em;
    font-family: "Playfair Display", serif;
    font-size: clamp(40px, 6vw, 76px);
    line-height: 0.95;
    font-weight: 700;
    letter-spacing: -0.02em;
    text-transform: uppercase;
    color: #e5e2dd;
}

.masthead-dek {
    max-width: 40rem;
    margin-top: 1rem;
    color: #dac1b8;
    font-size: 1.125rem;
    line-height: 1.7;
}

.kicker {
    display: inline-flex;
    align-items: center;
    gap: 0.7rem;
    margin-bottom: 0.85rem;
    color: #e3c288;
    font-family: Oswald, sans-serif;
    font-size: 12px;
    letter-spacing: 0.18em;
    text-transform: uppercase;
}

.kicker::before {
    content: "";
    width: 1.75rem;
    height: 1px;
    background: #e3c288;
}

.piece,
.dispatch,
.film,
.record,
.frame {
    transition: transform 0.45s ease, box-shadow 0.45s ease;
}

.piece:hover,
.dispatch:hover,
.film:hover {
    transform: translateY(-4px);
    box-shadow: 0 18px 40px rgba(0, 0, 0, 0.28);
}

.record,
.frame,
.piece,
.dispatch,
.film,
.auth-card,
.ticket-card {
    outline: 1px solid rgba(227, 194, 136, 0.14);
}

.goods-board {
    background: #20201d;
    padding: 2.5rem 0 2.25rem;
}
.goods-head {
    display: flex;
    flex-wrap: wrap;
    align-items: end;
    justify-content: space-between;
    gap: 0.75rem 1.5rem;
    margin-bottom: 1rem;
}
.goods-head .kicker { margin-bottom: 0.35rem; }
.goods-head h2 {
    margin: 0;
    font-family: "Playfair Display", serif;
    font-size: clamp(1.7rem, 2.4vw, 2.15rem);
    line-height: 1;
    font-weight: 700;
    letter-spacing: -0.02em;
    text-transform: uppercase;
    color: #e5e2dd;
}
.goods-head > a {
    font-family: Oswald, sans-serif;
    font-size: 12px;
    letter-spacing: 0.14em;
    text-transform: uppercase;
    color: #e3c288;
}
.goods-head > a:hover { color: #e5e2dd; }
.goods-row {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 1rem 0.85rem;
}
.goods-piece { display: block; min-width: 0; }
.goods-photo {
    display: block;
    aspect-ratio: 1;
    overflow: hidden;
    background: #131411;
}
.goods-photo img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform 0.45s ease;
}
.goods-piece:hover img { transform: scale(1.04); }
.goods-name {
    display: block;
    margin-top: 0.55rem;
    color: #e5e2dd;
    font-family: "Playfair Display", serif;
    font-size: 1rem;
    line-height: 1.25;
}
.goods-price {
    display: block;
    margin-top: 0.15rem;
    color: #e3c288;
    font-family: Oswald, sans-serif;
    font-size: 13px;
    letter-spacing: 0.08em;
}
@media (min-width: 800px) {
    .goods-row { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 1.25rem; }
    .goods-photo { aspect-ratio: 4 / 3; }
}

.shelf {
    padding: 2.5rem 0 3rem;
}
.shelf-head {
    display: grid;
    gap: 0.45rem 2rem;
    margin-bottom: 1.25rem;
}
.shelf-head .kicker { margin-bottom: 0.35rem; }
.shelf-head h1 {
    margin: 0;
    font-family: "Playfair Display", serif;
    font-size: clamp(1.9rem, 3vw, 2.6rem);
    line-height: 1;
    font-weight: 700;
    letter-spacing: -0.02em;
    text-transform: uppercase;
    color: #e5e2dd;
}
.shelf-head > p {
    margin: 0;
    max-width: 28rem;
    color: #dac1b8;
    font-size: 0.95rem;
    line-height: 1.45;
}
.shelf-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 1.25rem 0.9rem;
}
.sleeve-card { display: block; min-width: 0; }
.sleeve-photo {
    display: block;
    aspect-ratio: 1;
    overflow: hidden;
    background: #131411;
    outline: 1px solid rgba(227, 194, 136, 0.22);
}
.sleeve-photo img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform 0.45s ease;
}
.sleeve-card:hover img { transform: scale(1.04); }
.sleeve-meta {
    display: block;
    margin-top: 0.6rem;
    font-family: Oswald, sans-serif;
    font-size: 11px;
    letter-spacing: 0.14em;
    text-transform: uppercase;
    color: #e3c288;
}
.sleeve-title {
    display: block;
    margin-top: 0.2rem;
    font-family: "Playfair Display", serif;
    font-size: 1.2rem;
    line-height: 1.2;
    color: #e5e2dd;
}
.sleeve-card:hover .sleeve-title { color: #ffb595; }
.sleeve-sub {
    display: block;
    margin-top: 0.15rem;
    color: #dac1b8;
    font-size: 0.9rem;
    font-style: italic;
}
@media (min-width: 900px) {
    .shelf-head { grid-template-columns: auto minmax(0, 1fr); align-items: end; }
    .shelf-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 1.25rem; }
}

.route-board {
    background: #131411;
    padding: 2.5rem 0 2.25rem;
}
.route-board-head {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 0.35rem 1.5rem;
    align-items: end;
    margin-bottom: 0.85rem;
}
.route-board-head > div { grid-column: 1; grid-row: 1; }
.route-board-head > a { grid-column: 2; grid-row: 1; justify-self: end; }
.route-board-head > p { grid-column: 1 / -1; grid-row: 2; }
.route-board-head .kicker { margin-bottom: 0.35rem; }
.route-board-head h2 {
    margin: 0;
    font-family: "Playfair Display", serif;
    font-size: clamp(1.7rem, 2.4vw, 2.15rem);
    line-height: 1;
    font-weight: 700;
    letter-spacing: -0.02em;
    text-transform: uppercase;
    color: #e5e2dd;
}
.route-board-head p {
    margin: 0;
    max-width: 36rem;
    color: #dac1b8;
    font-size: 0.95rem;
    line-height: 1.45;
}
.route-board-head > a {
    font-family: Oswald, sans-serif;
    font-size: 12px;
    letter-spacing: 0.14em;
    text-transform: uppercase;
    color: #e3c288;
}
.route-board-head > a:hover { color: #e5e2dd; }
.itin { padding: 2.5rem 0 3rem; }
.itin-head {
    display: grid;
    gap: 0.4rem 2rem;
}
.itin-head .kicker { margin-bottom: 0.35rem; }
.itin-head h1 {
    margin: 0;
    font-family: "Playfair Display", serif;
    font-size: clamp(1.9rem, 3vw, 2.6rem);
    line-height: 1;
    font-weight: 700;
    letter-spacing: -0.02em;
    text-transform: uppercase;
    color: #e5e2dd;
}
.itin-head > p {
    margin: 0;
    max-width: 28rem;
    color: #dac1b8;
    font-size: 0.95rem;
    line-height: 1.45;
}
.itin-count {
    font-family: Oswald, sans-serif;
    font-size: 12px;
    letter-spacing: 0.16em;
    text-transform: uppercase;
    color: #e3c288;
}
.itin-filters {
    display: flex;
    flex-wrap: wrap;
    gap: 0.85rem 2.25rem;
    margin-top: 1.35rem;
}
.itin-filter {
    display: flex;
    flex-wrap: wrap;
    align-items: baseline;
    gap: 0.35rem 0.85rem;
}
.itin-filter > span {
    margin-right: 0.25rem;
    font-family: Oswald, sans-serif;
    font-size: 11px;
    letter-spacing: 0.16em;
    text-transform: uppercase;
    color: #8a7a74;
}
.itin-filter a {
    padding-bottom: 0.15rem;
    border-bottom: 1px solid transparent;
    font-family: Oswald, sans-serif;
    font-size: 13px;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    color: #a28c84;
}
.itin-filter a.is-on {
    color: #e3c288;
    border-bottom-color: #e3c288;
}
.itin-filter a:hover { color: #e5e2dd; }
.itin-month {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: 1rem;
    margin: 1.65rem 0 0;
    padding: 0 0.1rem 0.4rem;
    border-bottom: 1px solid rgba(227, 194, 136, 0.28);
}
.itin-month h2 {
    margin: 0;
    font-family: "Playfair Display", serif;
    font-size: 1.2rem;
    font-weight: 600;
    letter-spacing: -0.01em;
    color: #e5e2dd;
}
.itin-month span {
    font-family: Oswald, sans-serif;
    font-size: 11px;
    letter-spacing: 0.16em;
    text-transform: uppercase;
    color: #a28c84;
}
.itin-stop {
    display: grid;
    grid-template-columns: 3.15rem minmax(0, 1fr) auto;
    grid-template-areas:
        "date place act"
        "date region act"
        "date status act";
    column-gap: 0.85rem;
    row-gap: 0.12rem;
    align-items: center;
    padding: 0.8rem 0.1rem;
    border-bottom: 1px solid rgba(227, 194, 136, 0.12);
}
.itin-date { grid-area: date; align-self: start; padding-top: 0.1rem; }
.itin-date b {
    display: block;
    font-family: "Playfair Display", serif;
    font-size: 1.45rem;
    font-weight: 700;
    line-height: 0.9;
    color: #e3c288;
}
.itin-date span {
    display: block;
    margin-top: 0.22rem;
    font-family: Oswald, sans-serif;
    font-size: 11px;
    letter-spacing: 0.14em;
    text-transform: uppercase;
    color: #a28c84;
}
.itin-place { grid-area: place; min-width: 0; }
.itin-place h3 {
    margin: 0;
    font-family: "Playfair Display", serif;
    font-size: 1.15rem;
    font-weight: 600;
    line-height: 1.15;
}
.itin-place a { color: #e5e2dd; }
.itin-place a:hover { color: #ffb595; }
.itin-place p {
    margin: 0.12rem 0 0;
    overflow: hidden;
    color: #dac1b8;
    font-size: 0.86rem;
    line-height: 1.35;
    white-space: nowrap;
    text-overflow: ellipsis;
}
.itin-place em { color: #c4a89a; }
.itin-place em::before { content: " · "; color: #6f625c; font-style: normal; }
.itin-region,
.itin-status {
    font-family: Oswald, sans-serif;
    font-size: 11px;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    color: #a28c84;
}
.itin-meta { display: contents; }
.itin-region { grid-area: region; }
.itin-status { grid-area: status; }
.itin-status-selling_fast { color: #e3c288; }
.itin-status-low_tickets { color: #ffb595; }
.itin-status-sold_out { color: #ffb4ab; }
.itin-act {
    grid-area: act;
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    gap: 0.1rem;
}
.itin-act a {
    font-family: Oswald, sans-serif;
    font-size: 12px;
    letter-spacing: 0.14em;
    text-transform: uppercase;
    color: #e3c288;
}
.itin-act a.is-vip { color: #a28c84; }
.itin-act a:hover { color: #e5e2dd; }
.itin-stop.is-sold .itin-date b,
.itin-stop.is-sold .itin-place a,
.itin-stop.is-past .itin-date b,
.itin-stop.is-past .itin-place a { color: #a28c84; }
.itin-empty { margin: 1.25rem 0 0; color: #dac1b8; }
@media (min-width: 900px) {
    .itin-head {
        grid-template-columns: minmax(0, 1fr) auto;
        align-items: end;
    }
    .itin-head > div { grid-column: 1; grid-row: 1; }
    .itin-count { grid-column: 2; grid-row: 1; align-self: end; justify-self: end; }
    .itin-head > p:not(.itin-count) { grid-column: 1 / -1; grid-row: 2; }
    .itin-filter + .itin-filter {
        margin-left: 0.5rem;
        padding-left: 2rem;
        border-left: 1px solid rgba(227, 194, 136, 0.22);
    }
}
@media (min-width: 960px) {
    .itin-stop {
        grid-template-columns: 4.1rem minmax(0, 1.55fr) 9rem 8rem auto;
        grid-template-areas: "date place region status act";
        padding: 0.72rem 0.35rem;
    }
    .itin-stop:hover { background: rgba(227, 194, 136, 0.045); }
    .itin-place h3 { font-size: 1.25rem; }
    .itin-act { flex-direction: row; align-items: center; gap: 0.85rem; }
}

.rack { padding: 2.25rem 0 3rem; }
.rack-layout { display: grid; gap: 1.15rem; }
.rack-side .kicker { margin-bottom: 0.4rem; }
.rack-side h1 {
    margin: 0;
    max-width: 11ch;
    font-family: "Playfair Display", serif;
    font-size: clamp(1.85rem, 2.4vw, 2.35rem);
    line-height: 0.95;
    font-weight: 700;
    letter-spacing: -0.02em;
    text-transform: uppercase;
    color: #e5e2dd;
}
.rack-count {
    margin: 0.7rem 0 0;
    font-family: Oswald, sans-serif;
    font-size: 12px;
    letter-spacing: 0.16em;
    text-transform: uppercase;
    color: #e3c288;
}
.rack-dek {
    margin: 0.55rem 0 0;
    max-width: 22rem;
    color: #dac1b8;
    font-size: 0.92rem;
    line-height: 1.45;
}
.rack-filters {
    display: flex;
    flex-wrap: wrap;
    align-items: baseline;
    gap: 0.35rem 0.85rem;
    margin-top: 1.1rem;
}
.rack-filters > span {
    margin-right: 0.2rem;
    font-family: Oswald, sans-serif;
    font-size: 11px;
    letter-spacing: 0.16em;
    text-transform: uppercase;
    color: #8a7a74;
}
.rack-filters a {
    padding-bottom: 0.12rem;
    border-bottom: 1px solid transparent;
    font-family: Oswald, sans-serif;
    font-size: 13px;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    color: #a28c84;
}
.rack-filters a.is-on {
    color: #e3c288;
    border-bottom-color: #e3c288;
}
.rack-filters a:hover { color: #e5e2dd; }
.rack-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0.5rem;
}
.rack-card {
    position: relative;
    display: block;
    min-width: 0;
    aspect-ratio: 4 / 5;
    overflow: hidden;
    background: #131411;
    color: #e5e2dd;
}
.rack-card img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform 0.55s ease;
}
.rack-card::after {
    content: "";
    position: absolute;
    inset: 0;
    background: linear-gradient(180deg, rgba(14, 14, 12, 0) 42%, rgba(14, 14, 12, 0.88) 100%);
    pointer-events: none;
}
.rack-card:hover img { transform: scale(1.05); }
.rack-badge {
    position: absolute;
    top: 0.55rem;
    left: 0.55rem;
    z-index: 1;
    padding: 0.18rem 0.4rem;
    background: rgba(14, 14, 12, 0.72);
    color: #e3c288;
    font-family: Oswald, sans-serif;
    font-size: 10px;
    letter-spacing: 0.14em;
    text-transform: uppercase;
}
.rack-copy {
    position: absolute;
    right: 0;
    bottom: 0;
    left: 0;
    z-index: 1;
    padding: 0.75rem 0.75rem 0.7rem;
}
.rack-meta {
    display: block;
    font-family: Oswald, sans-serif;
    font-size: 10px;
    letter-spacing: 0.16em;
    text-transform: uppercase;
    color: #e3c288;
}
.rack-name {
    display: -webkit-box;
    margin-top: 0.15rem;
    overflow: hidden;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
    font-family: "Playfair Display", serif;
    font-size: 0.98rem;
    line-height: 1.15;
}
.rack-card:hover .rack-name { color: #ffb595; }
.rack-price {
    display: block;
    margin-top: 0.25rem;
    font-family: Oswald, sans-serif;
    font-size: 12px;
    letter-spacing: 0.08em;
    color: #dac1b8;
}
.rack-card.is-gone img { filter: grayscale(0.65); }
.rack-card.is-gone .rack-price { color: #a28c84; }
.rack-empty { margin: 0; color: #dac1b8; }
@media (min-width: 960px) {
    .rack-layout {
        grid-template-columns: 15.5rem minmax(0, 1fr);
        gap: 2.5rem;
        align-items: start;
    }
    .rack-side { position: sticky; top: 6.25rem; }
    .rack-filters {
        flex-direction: column;
        align-items: flex-start;
        gap: 0.45rem;
    }
    .rack-grid { gap: 0.7rem; }
    .rack-copy { padding: 1rem 1rem 0.9rem; }
    .rack-name { font-size: 1.2rem; }
}
.route-board .route-day { font-size: 1.35rem; }
.route-board .route-meta { margin-top: 0.15rem; }
.route-board .route-city { font-size: 1.15rem; }
.route-board .route-stop p { margin-top: 0; font-size: 13px; line-height: 1.35; }
.route-board .route-stop {
    grid-template-columns: 3.4rem minmax(0, 1fr);
    gap: 0.15rem 0.9rem;
    padding: 0.65rem 0.1rem;
}
.route-vip {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    margin-top: 0.75rem;
    padding: 0.7rem 0.9rem;
    border: 1px solid rgba(227, 194, 136, 0.28);
    color: #dac1b8;
    font-size: 0.92rem;
}
.route-vip span:last-child {
    font-family: Oswald, sans-serif;
    font-size: 12px;
    letter-spacing: 0.14em;
    text-transform: uppercase;
    color: #e3c288;
    white-space: nowrap;
}
.route-vip:hover { border-color: #e3c288; }
@media (min-width: 900px) {
    .route-board .route-stop {
        grid-template-columns: 3.6rem minmax(0, 1fr) auto;
        padding: 0.55rem 0.25rem;
    }
}

.route-list { border-top: 1px solid rgba(227, 194, 136, 0.22); }
.route-stop {
    display: grid;
    grid-template-columns: 4.75rem minmax(0, 1fr);
    gap: 0.35rem 1.25rem;
    align-items: center;
    padding: 1.15rem 0.15rem;
    border-bottom: 1px solid rgba(227, 194, 136, 0.16);
}
.route-stop.is-sold .route-city,
.route-stop.is-sold .route-day { color: #a28c84; }
.route-day {
    font-family: "Playfair Display", serif;
    font-size: 2.5rem;
    line-height: 0.85;
    font-weight: 700;
    color: #e3c288;
}
.route-meta {
    margin-top: 0.35rem;
    font-family: Oswald, sans-serif;
    font-size: 11px;
    letter-spacing: 0.16em;
    text-transform: uppercase;
    color: #dac1b8;
}
.route-city {
    font-family: "Playfair Display", serif;
    font-size: clamp(1.35rem, 2vw, 1.75rem);
    line-height: 1.1;
    color: #e5e2dd;
}
.route-city a:hover { color: #ffb595; }
.route-cta {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.55rem;
}
.route-status {
    font-family: Oswald, sans-serif;
    font-size: 11px;
    letter-spacing: 0.14em;
    text-transform: uppercase;
    color: #dac1b8;
}
.route-status-selling_fast { color: #e3c288; }
.route-status-low_tickets { color: #ffb595; }
.route-status-sold_out { color: #ffb4ab; }
@media (min-width: 900px) {
    .route-stop {
        grid-template-columns: 5.5rem minmax(0, 1fr) auto;
        gap: 1.5rem;
        padding: 1.2rem 0.35rem;
    }
    .route-stop:hover { background: rgba(227, 194, 136, 0.04); }
}

.sleeve {
    box-shadow: 0 28px 70px rgba(0, 0, 0, 0.45);
    outline: 1px solid rgba(227, 194, 136, 0.28);
}

.photo-spot { scroll-margin-top: 6rem; }
.gallery-card figcaption {
    background: linear-gradient(180deg, transparent, rgba(14, 14, 12, 0.92));
}

.site-player {
    box-shadow: 0 -12px 40px rgba(0, 0, 0, 0.35);
}

.site-footer {
    background: #0e0e0c;
    color: #dac1b8;
    border-top: 1px solid rgba(227, 194, 136, 0.16);
    padding: 2.75rem 0 1.75rem;
}
.site-footer-inner {
    max-width: 1440px;
    margin: 0 auto;
    padding: 0 1.25rem;
}
.site-footer-top {
    display: grid;
    gap: 1.5rem;
    align-items: end;
    padding-bottom: 1.5rem;
    border-bottom: 1px solid rgba(227, 194, 136, 0.14);
}
.site-footer .kicker { margin-bottom: 0.45rem; }
.site-footer-name {
    margin: 0;
    font-family: "Playfair Display", serif;
    font-size: clamp(1.75rem, 2.6vw, 2.35rem);
    line-height: 1;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    color: #e5e2dd;
}
.site-footer-dek {
    margin: 0.7rem 0 0;
    max-width: 28rem;
    font-size: 0.95rem;
    line-height: 1.5;
}
.site-footer-mail label {
    display: block;
    margin-bottom: 0.5rem;
    font-family: Oswald, sans-serif;
    font-size: 12px;
    letter-spacing: 0.16em;
    text-transform: uppercase;
    color: #e3c288;
}
.site-footer-row { display: flex; gap: 0.5rem; }
.site-footer-row input {
    flex: 1;
    min-width: 0;
    background: #1c1c19;
    color: #e5e2dd;
    border: 0;
    border-bottom: 1px solid rgba(227, 194, 136, 0.4);
    padding: 0.7rem 0.75rem;
}
.site-footer-row button {
    background: #d07b53;
    color: #4d1900;
    border: 0;
    padding: 0 1rem;
    font-family: Oswald, sans-serif;
    font-size: 12px;
    letter-spacing: 0.14em;
    text-transform: uppercase;
    cursor: pointer;
}
.site-footer-row button:hover { background: #e3c288; color: #412d02; }
.site-footer-note { margin: 0.45rem 0 0; font-size: 12px; color: #a28c84; }
.site-footer-grid {
    display: grid;
    gap: 1.75rem 2rem;
    padding: 1.6rem 0 1.4rem;
}
.site-footer h2 {
    margin: 0 0 0.7rem;
    font-family: Oswald, sans-serif;
    font-size: 12px;
    font-weight: 500;
    letter-spacing: 0.16em;
    text-transform: uppercase;
    color: #e3c288;
}
.site-footer-links { display: grid; gap: 0.35rem; }
.site-footer-links a { color: #e5e2dd; font-size: 0.95rem; }
.site-footer-links a:hover { color: #e3c288; }
.site-footer-studio a {
    color: #e3c288;
    font-size: 0.95rem;
    overflow-wrap: anywhere;
}
.site-footer-studio a:hover { color: #e5e2dd; }
.site-footer-base {
    display: flex;
    flex-wrap: wrap;
    gap: 0.7rem 1.5rem;
    justify-content: space-between;
    align-items: center;
    padding-top: 1rem;
    border-top: 1px solid rgba(227, 194, 136, 0.14);
    font-family: Oswald, sans-serif;
    font-size: 11px;
    letter-spacing: 0.14em;
    text-transform: uppercase;
}
.site-footer-base p { margin: 0; }
.site-footer-base nav { display: flex; flex-wrap: wrap; gap: 0.75rem 1.2rem; }
.site-footer-base a:hover { color: #e3c288; }
@media (min-width: 720px) {
    .site-footer-visit { grid-template-columns: 1fr 1fr; }
}
@media (min-width: 960px) {
    .site-footer-inner { padding: 0 3rem; }
    .site-footer-top { grid-template-columns: minmax(0, 1.2fr) minmax(16rem, 0.8fr); }
    .site-footer-grid { grid-template-columns: 1fr 0.85fr 1fr; }
}

.auth-stage {
    margin-top: -5rem;
    min-height: 100svh;
    display: grid;
}

@media (min-width: 960px) {
    .auth-stage { grid-template-columns: 1.1fr 0.9fr; }
}

.auth-visual {
    min-height: 34vh;
    background-position: center 20%;
    background-size: cover;
    position: relative;
}

.auth-visual::after {
    content: "";
    position: absolute;
    inset: 0;
    background: linear-gradient(180deg, rgba(14, 14, 12, 0.15), #131411 92%);
}

@media (min-width: 960px) {
    .auth-visual::after {
        background: linear-gradient(90deg, rgba(14, 14, 12, 0.05), #131411 96%);
    }
}

.auth-card {
    background: #20201d;
    padding: 2rem 1.5rem 2.25rem;
}

@media (min-width: 960px) {
    .auth-card { padding: 3.5rem 3rem; }
}

.admin-input, .admin-select, .admin-textarea {
    width: 100%;
    background: #1c1c19;
    color: #e5e2dd;
    border: 0;
    border-bottom: 1px solid #e3c288;
    padding: 0.7rem 0.8rem;
    font-family: "Plus Jakarta Sans", sans-serif;
}
.admin-input:focus, .admin-select:focus, .admin-textarea:focus { outline: none; border-bottom-color: #d07b53; background: #2a2a27; }
.admin-label { display: block; margin-bottom: 0.35rem; font-family: Oswald, sans-serif; letter-spacing: 0.12em; text-transform: uppercase; font-size: 12px; color: #dac1b8; }

.desk {
    margin: 0;
    min-height: 100vh;
    background: #131411;
    color: #e5e2dd;
    font-family: "Plus Jakarta Sans", sans-serif;
}
.desk, .desk * { box-sizing: border-box; }
.desk-shell { display: grid; grid-template-columns: 232px minmax(0, 1fr); min-height: 100vh; align-content: start; }
.desk-side {
    position: sticky;
    top: 0;
    height: 100vh;
    display: flex;
    flex-direction: column;
    background: #191a17;
    border-right: 1px solid rgba(227, 194, 136, 0.18);
    padding: 22px 14px 16px;
}
.desk-side nav { display: grid; gap: 2px; min-height: 0; overflow-x: hidden; overflow-y: auto; }
.desk-side .desk-label {
    margin: 16px 10px 6px;
    font-family: Oswald, sans-serif;
    font-size: 11px;
    letter-spacing: 0.16em;
    text-transform: uppercase;
    color: #8d8178;
}
.desk-side a, .desk-side button {
    display: block;
    width: 100%;
    text-align: left;
    background: transparent;
    color: #e3c288;
    border: 0;
    padding: 8px 10px;
    font-family: Oswald, sans-serif;
    font-size: 13px;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    white-space: nowrap;
    cursor: pointer;
}
.desk-side a.is-on { background: rgba(227, 194, 136, 0.14); color: #ffb595; }
.desk-side-foot { margin-top: auto; padding-top: 12px; border-top: 1px solid rgba(227, 194, 136, 0.18); }
.desk-brand {
    display: block;
    margin: 0 10px 8px;
    font-family: "Playfair Display", serif;
    font-size: 22px;
    color: #e5e2dd;
    text-decoration: none;
}
.desk-main { min-width: 0; padding: 28px 28px 72px; }
.desk-wrap { max-width: 1180px; margin: 0 auto; padding: 0 20px 80px; }
.desk a { color: #e3c288; text-decoration: none; }
.desk h1, .desk h2 { font-family: "Playfair Display", serif; font-weight: 600; margin: 0 0 16px; }
.desk h2 { margin-top: 28px; }
.desk-page { display: flex; justify-content: space-between; align-items: flex-end; gap: 16px; margin-bottom: 16px; }
.desk-copy { display: flex; flex-wrap: wrap; gap: 10px; align-items: flex-end; max-width: 760px; margin: 0 0 18px; }
.desk-copy .admin-label { flex: 1 1 320px; margin: 0; }
.desk-copy .admin-input { width: 100%; }
.desk-page h1 { margin: 0; }
.desk-page .desk-help { margin: 6px 0 0; }
.desk-page-actions { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; }
.desk-panel { background: #1c1c19; border: 1px solid rgba(227, 194, 136, 0.16); overflow-x: auto; }
.desk table, .desk-table { width: 100%; border-collapse: collapse; }
.desk-table { min-width: 720px; }
.desk th, .desk td { text-align: left; padding: 13px 16px; border-bottom: 1px solid rgba(227, 194, 136, 0.14); vertical-align: middle; }
.desk thead th {
    position: sticky;
    top: 0;
    background: #161714;
    font-family: Oswald, sans-serif;
    font-size: 11px;
    font-weight: 500;
    letter-spacing: 0.14em;
    text-transform: uppercase;
    color: #dac1b8;
    white-space: nowrap;
}
.desk tbody tr:hover td { background: rgba(227, 194, 136, 0.05); }
.desk td.num, .desk th.num { text-align: right; font-variant-numeric: tabular-nums; }
.desk td.actions, .desk th.actions { text-align: right; width: 1%; white-space: nowrap; }
.desk td.areas { white-space: nowrap; }
.desk td.areas a + a::before { content: "·"; margin: 0 0.45rem; color: #8d8178; }
.desk-empty { color: #dac1b8; }
.desk-title { font-weight: 500; }
.desk-meta { display: block; margin-top: 2px; color: #8d8178; font-size: 13px; }
.desk-badge {
    display: inline-block;
    padding: 3px 8px;
    background: #2a2a27;
    color: #dac1b8;
    font-family: Oswald, sans-serif;
    font-size: 11px;
    letter-spacing: 0.1em;
    text-transform: uppercase;
}
.desk-badge.on { background: #3d4a28; color: #e7f0c8; }
.desk-badge.off { background: #3a2a24; color: #f0c2b0; }
.desk-btn, .desk form.stack > button, .desk .link-add button {
    background: #d07b53;
    color: #4d1900;
    border: 0;
    padding: 10px 14px;
    font-family: Oswald, sans-serif;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    cursor: pointer;
}
.desk button.desk-ghost, .desk-ghost {
    background: transparent;
    color: #e3c288;
    border: 1px solid rgba(227, 194, 136, 0.4);
    padding: 7px 10px;
}
.desk .actions .desk-btn, .desk .actions button { padding: 7px 10px; }
.desk-status { background: #5c4518; color: #ffdea6; padding: 10px 12px; margin-bottom: 16px; }
.desk-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(160px, 1fr)); gap: 12px; margin-bottom: 24px; }
.desk-card, a.desk-card {
    display: block;
    background: #20201d;
    padding: 16px 16px 14px;
    border-top: 2px solid #e3c288;
    color: inherit;
    text-decoration: none;
}
.desk-card p {
    margin: 0;
    font-family: Oswald, sans-serif;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    font-size: 12px;
    color: #dac1b8;
}
.desk-card strong {
    display: block;
    margin-top: 8px;
    font-family: "Playfair Display", serif;
    font-size: 32px;
    font-weight: 600;
    color: #e3c288;
}
.desk form.stack { display: grid; gap: 12px; max-width: 720px; }
.desk .row-actions, .desk .actions form { display: inline-flex; gap: 8px; align-items: center; }
.desk-help { color: #dac1b8; margin: 0 0 18px; max-width: 68ch; line-height: 1.5; }
.desk-kicker { font-family: Oswald, sans-serif; letter-spacing: 0.12em; text-transform: uppercase; color: #e3c288; font-size: 12px; }
.desk-tabs, .desk-subnav { display: flex; flex-wrap: wrap; gap: 0; margin: 0 0 16px; border-bottom: 1px solid rgba(227, 194, 136, 0.22); }
.desk-tabs a, .desk-subnav a { padding: 10px 14px; font-family: Oswald, sans-serif; letter-spacing: 0.12em; text-transform: uppercase; font-size: 13px; color: #dac1b8; }
.desk-tabs a.is-on, .desk-subnav a.is-on { background: #e3c288; color: #131411; }
.desk details { margin-top: 8px; }
.desk summary { cursor: pointer; padding: 12px 0; font-family: "Playfair Display", serif; font-size: 18px; }
.desk summary .desk-kicker { margin-left: 8px; }
.desk-table .admin-input, .desk-table .admin-select { width: 100%; padding: 0.45rem 0.55rem; }
.desk-table td.fit .admin-select, .desk-table td.status .admin-select { width: auto; min-width: 8.5rem; }
.desk td.status { width: 1%; white-space: nowrap; }
.desk td.status form { display: flex; gap: 8px; align-items: center; }
.desk-table td.url { min-width: 260px; }
.desk-table td.fit { width: 140px; }
.desk tr.link-add td { background: rgba(208, 123, 83, 0.07); }
.desk-login { max-width: 480px; padding-top: 12vh; }
.desk code { color: #e3c288; }
.desk-side-head { display: flex; align-items: center; justify-content: space-between; gap: 8px; }
.desk-bar, .desk-shade, .desk-side .desk-close { display: none; }
@media (max-width: 860px) {
    .desk { overflow-x: hidden; }
    body.desk-nav-open { overflow: hidden; }
    .desk-shell { grid-template-columns: 1fr; }
    .desk-bar {
        display: flex;
        align-items: center;
        gap: 12px;
        position: sticky;
        top: 0;
        z-index: 25;
        min-height: 60px;
        padding: calc(8px + env(safe-area-inset-top)) 12px 8px;
        background: #191a17;
        border-bottom: 1px solid rgba(227, 194, 136, 0.18);
    }
    .desk-bar .desk-brand { margin: 0; font-size: 20px; }
    .desk-menu {
        display: inline-flex;
        align-items: center;
        justify-content: center;
        gap: 8px;
        min-width: 44px;
        min-height: 44px;
        padding: 0 12px;
        background: transparent;
        color: #e3c288;
        border: 1px solid rgba(227, 194, 136, 0.4);
        font-family: Oswald, sans-serif;
        font-size: 13px;
        letter-spacing: 0.12em;
        text-transform: uppercase;
        cursor: pointer;
    }
    .desk-menu-icon {
        width: 16px;
        height: 11px;
        border-top: 2px solid currentColor;
        border-bottom: 2px solid currentColor;
        background: linear-gradient(currentColor, currentColor) center / 100% 2px no-repeat;
    }
    .desk-shade {
        position: fixed;
        inset: 0;
        z-index: 35;
        margin: 0;
        padding: 0;
        border: 0;
        background: rgba(8, 8, 7, 0.62);
        cursor: pointer;
    }
    .desk-shell.is-open .desk-shade { display: block; }
    .desk-side {
        position: fixed;
        z-index: 40;
        top: 0;
        left: 0;
        width: min(20.5rem, 88vw);
        height: 100vh;
        height: 100dvh;
        padding: calc(16px + env(safe-area-inset-top)) 14px calc(16px + env(safe-area-inset-bottom));
        transform: translateX(-105%);
        transition: transform 0.2s ease;
        box-shadow: none;
    }
    .desk-shell.is-open .desk-side { transform: none; box-shadow: 16px 0 40px rgba(0, 0, 0, 0.45); }
    .desk-side nav { display: grid; gap: 0; }
    .desk-side nav a { width: 100%; min-height: 40px; padding-top: 6px; padding-bottom: 6px; display: flex; align-items: center; }
    .desk-side .desk-label { width: auto; margin: 10px 10px 2px; }
    .desk-side .desk-close {
        display: inline-flex;
        align-items: center;
        justify-content: center;
        width: auto;
        min-height: 44px;
        padding: 0 12px;
        border: 1px solid rgba(227, 194, 136, 0.4);
    }
    .desk-side-foot { display: grid; gap: 4px; margin-top: auto; padding-top: 12px; border-top: 1px solid rgba(227, 194, 136, 0.18); }
    .desk-side-foot form { display: block; }
    .desk-side-foot a, .desk-side-foot button { width: 100%; min-height: 44px; display: flex; align-items: center; }
    .desk-main { padding: 16px 14px calc(32px + env(safe-area-inset-bottom)); }
    .desk h1 { font-size: 1.75rem; overflow-wrap: anywhere; }
    .desk h2 { font-size: 1.35rem; margin-top: 22px; overflow-wrap: anywhere; }
    .desk-page { flex-direction: column; align-items: stretch; }
    .desk-page > .desk-btn,
    .desk-page-actions > a,
    .desk-page-actions > .desk-btn {
        min-height: 48px;
        display: inline-flex;
        align-items: center;
        justify-content: center;
        text-align: center;
    }
    .desk-page > .desk-btn { width: 100%; }
    .desk-page-actions { display: grid; grid-template-columns: 1fr 1fr; }
    .desk-page-actions > a:only-child,
    .desk-page-actions > .desk-btn:only-child { grid-column: 1 / -1; }
    .desk-page-actions > a:not(.desk-btn) {
        border: 1px solid rgba(227, 194, 136, 0.4);
        color: #e3c288;
    }
    .desk-copy { flex-direction: column; align-items: stretch; max-width: none; }
    .desk-copy .admin-label { flex-basis: auto; }
    .desk-copy .desk-btn { width: 100%; min-height: 48px; }
    .desk form.stack { max-width: none; }
    .desk form.stack > button { width: 100%; min-height: 48px; }
    .admin-input, .admin-select, .admin-textarea { font-size: 16px; }
    .desk-login {
        max-width: none;
        padding: calc(8vh + env(safe-area-inset-top)) 4px calc(28px + env(safe-area-inset-bottom));
    }
    .desk-tabs, .desk-subnav {
        flex-wrap: nowrap;
        overflow-x: auto;
        -webkit-overflow-scrolling: touch;
        scrollbar-width: none;
    }
    .desk-tabs a, .desk-subnav a { flex: 0 0 auto; min-height: 44px; display: inline-flex; align-items: center; }
    .desk summary { min-height: 48px; display: flex; align-items: center; flex-wrap: wrap; gap: 6px; }
    .desk-grid { grid-template-columns: 1fr 1fr; }
    .desk-card strong { font-size: 28px; }
    .desk-panel { overflow: visible; border: 0; background: transparent; }
    .desk-table { min-width: 0; }
    .desk-table thead {
        position: absolute;
        width: 1px;
        height: 1px;
        padding: 0;
        margin: -1px;
        overflow: hidden;
        clip: rect(0, 0, 0, 0);
        border: 0;
    }
    .desk-table, .desk-table tbody { display: block; }
    .desk-table tr {
        display: flex;
        flex-direction: column;
        margin: 0 0 12px;
        padding: 12px 14px 8px;
        background: #1c1c19;
        border: 1px solid rgba(227, 194, 136, 0.16);
    }
    .desk-table tr.link-add { border-color: rgba(208, 123, 83, 0.5); }
    .desk-table td {
        display: flex;
        justify-content: space-between;
        align-items: center;
        gap: 12px;
        width: auto;
        padding: 9px 0;
        border-bottom: 1px solid rgba(227, 194, 136, 0.1);
        text-align: right;
        white-space: normal;
    }
    .desk-table td:last-child { border-bottom: 0; }
    .desk-table td[data-label]::before {
        content: attr(data-label);
        flex: 0 0 auto;
        font-family: Oswald, sans-serif;
        font-size: 11px;
        letter-spacing: 0.12em;
        text-transform: uppercase;
        color: #dac1b8;
        text-align: left;
    }
    .desk-table td.lead {
        order: -1;
        display: block;
        text-align: left;
        border-bottom: 0;
        padding: 2px 0 4px;
    }
    .desk-table td.lead .desk-title { font-size: 1.05rem; }
    .desk-table td.field,
    .desk-table td.note,
    .desk-table td.status {
        flex-direction: column;
        align-items: stretch;
        text-align: left;
        width: auto;
        white-space: normal;
    }
    .desk-table td.desk-empty { display: block; text-align: left; border: 0; }
    .desk-table td.areas { flex-wrap: wrap; justify-content: flex-end; }
    .desk-table td.areas a { min-height: 44px; display: inline-flex; align-items: center; }
    .desk-table td.url, .desk-table td.fit { min-width: 0; width: auto; }
    .desk-table td.fit .admin-select,
    .desk-table td.status .admin-select,
    .desk-table .admin-input,
    .desk-table .admin-select { width: 100%; min-width: 0; }
    .desk-table td.status form { display: grid; gap: 8px; width: 100%; }
    .desk-table td.status .desk-btn { width: 100%; min-height: 44px; }
    .desk-table input[type="checkbox"] { width: 22px; height: 22px; }
    .desk-table td.actions {
        display: flex;
        gap: 8px;
        width: auto;
        padding-top: 12px;
        text-align: left;
        white-space: normal;
    }
    .desk-table td.actions > a,
    .desk-table td.actions > button,
    .desk-table td.actions > form { flex: 1 1 0; }
    .desk-table td.actions form { display: flex; }
    .desk-table td.actions a,
    .desk-table td.actions button {
        display: flex;
        align-items: center;
        justify-content: center;
        width: 100%;
        min-height: 44px;
    }
}
@media (max-width: 860px) and (prefers-reduced-motion: reduce) {
    .desk-side { transition: none; }
}

.miss {
    min-height: 100vh;
    margin: 0;
    display: grid;
    place-items: center;
    background:
        radial-gradient(700px 320px at 50% 0%, rgba(208, 123, 83, 0.2), transparent 60%),
        #131411;
    color: #e5e2dd;
    text-align: center;
    padding: 2rem;
}
.miss h1 {
    margin: 0;
    font-family: "Playfair Display", serif;
    font-size: clamp(72px, 12vw, 140px);
    line-height: 0.9;
}
.miss p { font-family: "Playfair Display", serif; font-style: italic; color: #dac1b8; font-size: 1.25rem; }
.miss a {
    color: #4d1900;
    background: #d07b53;
    font-family: Oswald, sans-serif;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    text-decoration: none;
    padding: 0.8rem 1.1rem;
}

.home-block {
    scroll-margin-top: 5.5rem;
    padding: 1.75rem 0 2rem;
    border-top: 1px solid rgba(227, 194, 136, 0.14);
}

.home-wrap {
    max-width: 1440px;
    margin: 0 auto;
    padding: 0 1.25rem;
}

.home-block-head {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: 1rem;
    margin-bottom: 1rem;
}

.home-block-head h2 {
    margin: 0;
    font-family: "Playfair Display", serif;
    font-size: 1.7rem;
    line-height: 1;
    font-weight: 700;
    letter-spacing: -0.02em;
    text-transform: uppercase;
    color: #e5e2dd;
}

.home-block-head a {
    font-family: Oswald, sans-serif;
    font-size: 12px;
    letter-spacing: 0.14em;
    text-transform: uppercase;
    color: #e3c288;
    white-space: nowrap;
}

.home-block-head a:hover { color: #e5e2dd; }

.home-album {
    display: grid;
    gap: 1rem;
}

.home-album > img {
    width: 9.5rem;
    aspect-ratio: 1;
    object-fit: cover;
    background: #131411;
}

.home-album h3 {
    margin: 0 0 0.75rem;
    font-family: "Playfair Display", serif;
    font-size: 1.45rem;
    line-height: 1.1;
    font-weight: 600;
}

.home-play,
.home-track button {
    border: 0;
    cursor: pointer;
}

.home-play {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 2.6rem;
    padding: 0 1.15rem;
    background: #d07b53;
    color: #4d1900;
    font-family: Oswald, sans-serif;
    font-size: 13px;
    letter-spacing: 0.12em;
    text-transform: uppercase;
}

.home-play:hover { background: #e3c288; color: #412d02; }

.home-tracks {
    margin: 1rem 0 0;
    padding: 0;
    list-style: none;
    border-top: 1px solid rgba(227, 194, 136, 0.16);
}

.home-track {
    display: grid;
    grid-template-columns: 2.4rem minmax(0, 1fr) auto;
    align-items: center;
    gap: 0.65rem;
    min-height: 2.85rem;
    border-bottom: 1px solid rgba(227, 194, 136, 0.12);
    cursor: pointer;
}

.home-track button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 2.4rem;
    height: 2.4rem;
    padding: 0;
    background: transparent;
    color: #e3c288;
}

.home-track button .material-symbols-outlined { font-size: 22px; }

.home-track span {
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.home-track time {
    font-family: Oswald, sans-serif;
    font-size: 12px;
    letter-spacing: 0.06em;
    color: #a28c84;
}

.home-track.is-current span { color: #e3c288; }

.home-film {
    position: relative;
    display: block;
    aspect-ratio: 16 / 9;
    margin-bottom: 0.35rem;
    overflow: hidden;
    background: #131411;
}

.home-film img,
.home-rows img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.home-film span {
    position: absolute;
    right: 0;
    bottom: 0;
    left: 0;
    padding: 1.5rem 0.9rem 0.8rem;
    overflow: hidden;
    background: linear-gradient(transparent, rgba(14, 14, 12, 0.92));
    font-family: "Playfair Display", serif;
    font-size: 1.15rem;
    line-height: 1.2;
    white-space: nowrap;
    text-overflow: ellipsis;
}

.home-rows a {
    display: grid;
    grid-template-columns: 4.25rem minmax(0, 1fr) auto;
    align-items: center;
    gap: 0.75rem;
    min-height: 3.35rem;
    border-bottom: 1px solid rgba(227, 194, 136, 0.12);
    color: #e5e2dd;
}

.home-rows img {
    width: 4.25rem;
    height: 2.7rem;
}

.home-rows a > span {
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.home-rows time b {
    display: block;
    font-family: "Playfair Display", serif;
    font-size: 1.3rem;
    font-weight: 700;
    line-height: 0.9;
    color: #e3c288;
}

.home-rows time span {
    font-family: Oswald, sans-serif;
    font-size: 11px;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    color: #a28c84;
}

.home-rows em {
    font-family: Oswald, sans-serif;
    font-size: 12px;
    font-style: normal;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    color: #e3c288;
}

.home-rows a.is-sold span,
.home-rows a.is-sold time b { color: #a28c84; }

.home-rows a:hover span,
.home-rows a:hover em { color: #ffb595; }

.home-empty { margin: 0; color: #dac1b8; }

@media (min-width: 800px) {
    .home-wrap { padding: 0 3rem; }
    .home-block { padding: 2.25rem 0 2.5rem; }
    .home-block-head h2 { font-size: 2rem; }
    .home-album {
        grid-template-columns: 220px minmax(0, 1fr);
        align-items: start;
        gap: 1.75rem;
    }
    .home-album > img { width: 220px; }
    .home-film { aspect-ratio: 21 / 9; }
    .home-film span { font-size: 1.6rem; padding: 2rem 1.25rem 1rem; }
}

.club-asks { padding: 2.25rem 0 3rem; }
.club-pick {
    display: grid;
    border-top: 1px solid rgba(227, 194, 136, 0.22);
}
.club-choice {
    display: grid;
    width: 100%;
    gap: 0.35rem;
    padding: 1.15rem 0.15rem 1.2rem;
    font: inherit;
    border: 0;
    border-bottom: 1px solid rgba(227, 194, 136, 0.16);
    background: transparent;
    color: inherit;
    text-align: left;
    cursor: pointer;
    scroll-margin-top: 6.5rem;
}
.club-choice span {
    font-family: Oswald, sans-serif;
    font-size: 11px;
    letter-spacing: 0.16em;
    color: #e3c288;
}
.club-choice strong {
    font-family: "Playfair Display", serif;
    font-size: 1.45rem;
    font-weight: 600;
    line-height: 1.05;
    color: #e5e2dd;
}
.club-choice em {
    color: #dac1b8;
    font-size: 0.92rem;
    font-style: normal;
    line-height: 1.4;
}
.club-choice.is-on,
.club-choice:hover { background: rgba(227, 194, 136, 0.05); }
.club-choice.is-on strong { color: #ffb595; }
.club-sheet {
    position: relative;
    width: min(920px, calc(100vw - 2rem));
    max-height: calc(100vh - 7.5rem);
    margin: auto;
    padding: 1.5rem 1.35rem 1.25rem;
    border: 1px solid rgba(227, 194, 136, 0.28);
    background: #171714;
    color: #e5e2dd;
    overflow: auto;
}
.club-sheet::backdrop { background: rgba(14, 14, 12, 0.78); }
.club-sheet-close {
    position: absolute;
    top: 0.85rem;
    right: 0.95rem;
    border: 0;
    background: transparent;
    color: #e3c288;
    font-family: Oswald, sans-serif;
    font-size: 12px;
    letter-spacing: 0.14em;
    text-transform: uppercase;
    cursor: pointer;
}
.club-sheet-close:hover { color: #e5e2dd; }
.club-form[hidden] { display: none; }
.club-form .kicker { margin-bottom: 0.45rem; }
.club-form h2 {
    margin: 0;
    font-family: "Playfair Display", serif;
    font-size: clamp(1.7rem, 2.4vw, 2.15rem);
    line-height: 1;
    font-weight: 700;
    color: #e5e2dd;
}
.club-form > p {
    margin: 0.55rem 0 1rem;
    max-width: 36rem;
    color: #dac1b8;
    font-size: 0.92rem;
}
.club-line {
    display: grid;
    gap: 0.75rem;
    align-items: end;
}
.club-line input { width: 100%; }
.club-line label {
    display: block;
    margin-bottom: 0.3rem;
    font-family: Oswald, sans-serif;
    font-size: 11px;
    letter-spacing: 0.14em;
    text-transform: uppercase;
    color: #a28c84;
}
.club-line button {
    justify-self: start;
    padding: 0.7rem 1.1rem;
    background: #d07b53;
    color: #4d1900;
    font-family: Oswald, sans-serif;
    font-size: 13px;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    cursor: pointer;
}
.club-line button:hover { background: #e3c288; color: #3c2d1e; }
.club-note {
    margin: 0;
    color: #e3c288;
    font-size: 0.95rem;
}
@media (min-width: 900px) {
    .club-pick { grid-template-columns: repeat(3, minmax(0, 1fr)); }
    .club-choice {
        padding: 1.35rem 1.25rem 1.45rem;
        border-bottom: 0;
        border-right: 1px solid rgba(227, 194, 136, 0.16);
    }
    .club-choice:last-child { border-right: 0; }
    .club-choice strong { font-size: 1.65rem; }
    .club-line { grid-template-columns: repeat(3, minmax(0, 1fr)) auto; }
    #meet-form .club-line { grid-template-columns: repeat(4, minmax(0, 1fr)) auto; }
}
