:root {
    --night: #141414;
    --coral: #FF6B4A;
    --cream: #F3EDE2;
    --map-grey: #8A8680;
    --line: rgba(243, 237, 226, .2);
    --muted: rgba(243, 237, 226, .68);
}
* { box-sizing: border-box; }
.sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0; }
.form-status { min-height: 1px; }
html { background: var(--night); color: var(--cream); }
body { margin: 0; background: var(--night); color: var(--cream); font-family: 'Inter', Arial, Helvetica, sans-serif; line-height: 1.5; }
a { color: inherit; text-decoration: none; }
img { display: block; width: 100%; height: 100%; object-fit: cover; }
.site-header { border-bottom: 1px solid var(--line); padding: 20px 4vw; position: relative; z-index: 2; }
.header-inner { display: flex; align-items: center; gap: 28px; max-width: 1440px; margin: 0 auto; }
.brand { color: var(--cream); font-size: 1.1rem; font-weight: 800; letter-spacing: .04em; white-space: nowrap; }
.brand span { color: var(--coral); }
.main-nav { display: flex; gap: 18px; color: var(--muted); font-size: .86rem; }
.main-nav a:hover, .main-nav a:focus-visible { color: var(--cream); }
.header-search { margin-left: auto; display: flex; border: 1px solid var(--line); min-width: min(300px, 38vw); }
.header-search input { width: 100%; border: 0; background: transparent; color: var(--cream); padding: 9px 11px; outline: none; }
.header-search button { border: 0; border-left: 1px solid var(--line); background: var(--coral); color: var(--night); padding: 0 13px; font-weight: 700; }
.portal-main { max-width: 1440px; margin: 0 auto; padding: 18px 4vw 80px; }
.eyebrow { color: var(--coral); font-size: .74rem; font-weight: 800; letter-spacing: .14em; text-transform: uppercase; }
.intro-row { display: flex; align-items: end; justify-content: space-between; gap: 28px; margin-bottom: 28px; }
h1 { font-family: 'Bebas Neue', Impact, sans-serif; font-size: clamp(2.5rem, 6vw, 6.8rem); line-height: .92; letter-spacing: .01em; margin: 8px 0 0; max-width: 760px; }
.intro-copy { max-width: 340px; color: var(--muted); font-size: .98rem; }
.filter-row { display: flex; gap: 10px; flex-wrap: wrap; border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); padding: 14px 0; margin-bottom: 28px; }
.filter-row select, .filter-row input { background: transparent; color: var(--cream); border: 1px solid var(--line); padding: 10px 34px 10px 12px; min-width: 150px; }
.filter-row option { color: var(--night); }
.filter-row button { background: var(--cream); border: 0; color: var(--night); padding: 10px 16px; font-weight: 800; }
.mosaic { display: grid; grid-template-columns: 1.45fr .8fr .8fr; grid-template-rows: 320px 220px; gap: 12px; }
.tile { position: relative; overflow: hidden; border: 1px solid var(--line); min-height: 220px; transition: transform .2s ease, opacity .2s ease; }
.tile:hover, .tile:focus-within { transform: translateY(-4px); opacity: .9; }
.tile.featured { grid-row: span 2; min-height: 320px; }
.tile::after { content: ""; position: absolute; inset: 35% 0 0; background: linear-gradient(transparent, rgba(20,20,20,.92)); }
.tile-content { position: absolute; z-index: 1; inset: auto 18px 16px; }
.tile-kicker { color: var(--coral); font-size: .72rem; font-weight: 800; text-transform: uppercase; letter-spacing: .12em; }
.tile h2 { margin: 5px 0 0; font-size: clamp(1.1rem, 2vw, 2rem); line-height: 1.02; }
.tile-meta { color: var(--muted); font-size: .82rem; margin-top: 7px; }
.map-tile { background: #292827; background-image: linear-gradient(135deg, transparent 48%, rgba(243,237,226,.16) 49%, transparent 51%), linear-gradient(35deg, transparent 48%, rgba(243,237,226,.12) 49%, transparent 51%); background-size: 38px 38px, 54px 54px; }
.map-tile::before { content: "TONIGHT / CITYWIDE"; position: absolute; top: 18px; left: 18px; color: var(--cream); font-size: .72rem; font-weight: 800; letter-spacing: .12em; z-index: 1; }
.section-head { display: flex; justify-content: space-between; align-items: baseline; border-bottom: 1px solid var(--line); margin: 70px 0 18px; padding-bottom: 12px; }
.section-head h2 { margin: 0; font-size: 1.55rem; letter-spacing: -.03em; }
.section-head a { color: var(--coral); font-size: .85rem; }
.list-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 12px; }
.list-item { border-top: 1px solid var(--line); padding: 14px 0; }
.list-item h3 { margin: 4px 0; font-size: 1.1rem; }
.list-item p { margin: 0; color: var(--muted); font-size: .9rem; }
.site-footer { border-top: 1px solid var(--line); padding: 26px 4vw; color: var(--muted); font-size: .82rem; }
.footer-inner { display: flex; justify-content: space-between; max-width: 1440px; margin: 0 auto; gap: 20px; }
@media (max-width: 800px) { .header-inner, .intro-row, .footer-inner { align-items: flex-start; flex-direction: column; } .header-search { margin-left: 0; width: 100%; min-width: 0; } .mosaic { grid-template-columns: 1fr 1fr; grid-template-rows: 250px 190px 190px; } .tile.featured { grid-row: span 1; grid-column: span 2; } .list-grid { grid-template-columns: 1fr; } }
@media (prefers-reduced-motion: reduce) { .tile { transition: none; } .tile:hover, .tile:focus-within { transform: none; } }
