@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700;800&family=Quicksand:wght@500;600;700&display=swap');

:root{
  --blue:#0070c0; --blue-dark:#005a9a; --blue-tint:#d9ebf8;
  /* One surface color for the See Later controls, See Now filters, and Journal recap. */
  --guide-table-bg:var(--blue-tint);
  --ink:#3f3931; --ink-strong:#322b25;
  --bg:#ffffff; --panel:#edece8;
  --brown:#473d35; --brown-dark:#3a322c; --brick:#a8472b;
  /* --c-close MUST equal the map-pin/legend closing orange (#f97316 in main.js CAT, map.html,
     theater-map.html, index.html legends) -- ONE orange everywhere; preflight inv23 guards it. */
  --c-free:#3d8a4a; --c-open:#7657c9; --c-recep:#8b5fbf; --c-close:#f97316; --c-gold:#c9a227;
  --c-walk:#1f8a7d; --c-talk:#4a6d92; --c-market:#8a5a2b;
  --tile-shadow:0 8px 24px rgba(43,38,31,.14),0 2px 6px rgba(43,38,31,.08);
  --tile-shadow-hover:0 14px 32px rgba(43,38,31,.18),0 4px 10px rgba(43,38,31,.10);
  /* Filter shadows are painted AFTER the rounded clip. Unlike a rectangular box-shadow,
     their silhouette follows the card's composited 14/16px corners on every browser. */
  --tile-drop-shadow:drop-shadow(0 8px 12px rgba(43,38,31,.14)) drop-shadow(0 2px 3px rgba(43,38,31,.08));
  --tile-drop-shadow-hover:drop-shadow(0 12px 16px rgba(43,38,31,.18)) drop-shadow(0 3px 5px rgba(43,38,31,.10));
  --rule:#3f3931; --rule-soft:#ddd8ce;
  --mobile-raised-shadow:0 10px 28px rgba(7,42,80,.42),0 2px 8px rgba(7,42,80,.25),0 0 0 1px rgba(255,255,255,.25);
  /* Slider rails clip wide blur at their horizontal scroll edges. Keep this shadow
     predominantly below the tile, with enough negative spread to feather its sides. */
  --mobile-tile-shadow:0 14px 26px -12px rgba(7,42,80,.48),0 4px 12px -6px rgba(7,42,80,.28),0 0 0 1px rgba(255,255,255,.25);
}

/* Quiet mobile information header: the same logo/title geometry as Journal,
   with no city, category, badge, map, search, or menu controls competing
   with page reading. Desktop keeps its full shared command header. */
.page-mobile-identity{display:none}
@media(max-width:620px), (orientation:landscape) and (max-height:620px) and (pointer:coarse){
  :is(body.info-page,body.legal) .site-header{
    position:relative!important;display:block!important;height:104px!important;
    min-height:104px!important;margin:0!important;padding:0!important;
    background:transparent!important;border:0!important;box-shadow:none!important;
  }
  :is(body.info-page,body.legal) .site-header__in{
    display:block!important;position:static!important;width:100%!important;
    min-height:0!important;margin:0!important;padding:0!important;
  }
  :is(body.info-page,body.legal) .site-header .logo{
    position:fixed!important;top:calc(14px + env(safe-area-inset-top))!important;
    left:14px!important;width:89.28px!important;height:89.28px!important;
    z-index:1150!important;
  }
  :is(body.info-page,body.legal) .site-header .logo img{box-shadow:var(--mobile-raised-shadow)!important}
  :is(body.info-page,body.legal) .page-mobile-identity{
    display:flex!important;position:fixed!important;top:calc(45px + env(safe-area-inset-top))!important;
    left:118px!important;right:14px!important;height:32px!important;
    align-items:center!important;min-width:0!important;z-index:1151!important;
    color:#fff!important;font:600 clamp(19px,6vw,23px)/1.2 'DM Sans',serif!important;
    letter-spacing:-.025em!important;text-shadow:0 2px 10px rgba(7,42,80,.38)!important;
    white-space:nowrap!important;overflow:hidden!important;text-overflow:ellipsis!important;
  }
  :is(body.info-page,body.legal) .site-header :is(.nav-toggle,.topnav),
  body.info-page .mastright,
  body.info-page .home-mast-tools,
  body.info-page .cityswitch,
  body.info-page .desktop-guide-switch{display:none!important}
  body.about-page .about-page__main,
  body.contact-page > .wrap{padding-top:14px!important}
  body.legal > .wrap:first-of-type{padding-top:14px!important}
  @media(max-width:350px){
    :is(body.info-page,body.legal) .page-mobile-identity{left:108px!important;font-size:18px!important}
  }
}

/* All To See — complete exhibition directory. The shelf deliberately uses
   the same glass-to-white treatment as the desktop Today in Art section. */
body.all-to-see-page{min-height:100vh;color:#fff;background-color:#0877bd;background-image:var(--sj-stats-star-bg),var(--sj-stats-star-bg),radial-gradient(760px 220px at 82% 0%,rgba(255,255,255,.14),transparent 70%),linear-gradient(112deg,#087fca 0%,#0070c0 54%,#075e9e 100%);background-position:4% 50%,78% 8%,82% 0%,0 0;background-size:180px 180px,220px 220px,760px 220px,100% 100%;background-repeat:no-repeat}
body.all-to-see-page .all-to-see-wrap{width:min(1280px,calc(100% - 80px));max-width:1280px;margin:0 auto}
body.all-to-see-page .all-to-see-hero{max-width:none;margin:0;padding:34px 0 24px;text-align:left;color:#fff}
body.all-to-see-page .all-to-see-hero h1{color:#fff;font:800 clamp(40px,5vw,64px)/.98 'DM Sans',sans-serif;letter-spacing:-.055em;text-shadow:0 3px 14px rgba(4,35,62,.28)}
body.all-to-see-page .all-to-see-hero p{max-width:760px;margin-top:12px;color:rgba(255,255,255,.86);font:600 15px/1.55 'Quicksand',sans-serif}
body.all-to-see-page .all-to-see-shelf{position:relative;isolation:isolate;overflow:hidden;padding:24px;border:0;border-radius:20px;background:linear-gradient(180deg,rgba(255,255,255,.12) 0%,rgba(224,244,255,.82) 27%,rgba(249,252,253,.98) 67%);box-shadow:0 24px 46px rgba(4,48,84,.16);backdrop-filter:blur(16px) saturate(1.08);-webkit-backdrop-filter:blur(16px) saturate(1.08)}
body.all-to-see-page .all-to-see-shelf::before{content:"";position:absolute;z-index:-1;inset:0;pointer-events:none;background:radial-gradient(circle at 50% -18%,rgba(255,255,255,.3),transparent 48%)}
body.all-to-see-page .all-to-see-shelf__head{display:flex;align-items:baseline;justify-content:space-between;gap:18px;margin:0 0 20px;padding:0 0 13px;border-bottom:1px solid rgba(8,119,192,.28);box-shadow:0 1px 0 rgba(255,255,255,.58)}
body.all-to-see-page .all-to-see-shelf__head h1{margin:0;color:#edf9ff;font:800 clamp(30px,2.5vw,40px)/1.02 'DM Sans',sans-serif;letter-spacing:-.04em;text-shadow:0 1px 0 rgba(255,255,255,.92),0 2px 0 rgba(9,72,112,.28),0 5px 12px rgba(4,35,62,.32)}
body.all-to-see-page #all-to-see-status{color:rgba(255,255,255,.78);font:700 11px/1.2 'DM Sans',sans-serif;white-space:nowrap;text-shadow:0 1px 5px rgba(4,35,62,.2)}
body.all-to-see-page .all-to-see-intro{max-width:780px;margin:0 0 18px;color:rgba(255,255,255,.82);font:600 14px/1.5 'Quicksand',sans-serif;text-shadow:0 1px 5px rgba(4,35,62,.2)}
body.all-to-see-page .all-to-see-tools{display:grid;grid-template-columns:minmax(250px,1.55fr) repeat(4,minmax(145px,1fr));gap:10px;margin:0 0 22px}
body.all-to-see-page .all-to-see-tools label{display:grid;gap:6px;min-width:0;color:rgba(255,255,255,.78);font:700 10px/1 'Quicksand',sans-serif;letter-spacing:.07em;text-transform:uppercase;text-shadow:0 1px 5px rgba(4,35,62,.2)}
body.all-to-see-page .all-to-see-tools input,
body.all-to-see-page .all-to-see-tools select{box-sizing:border-box;width:100%;min-width:0;height:42px;padding:0 12px;border:1px solid rgba(8,119,192,.2);border-radius:11px;color:#0a3d63;background:rgba(255,255,255,.7);box-shadow:inset 0 1px 0 rgba(255,255,255,.9);font:600 13px/1 'Quicksand',sans-serif;outline:none}
body.all-to-see-page .all-to-see-tools input:focus,
body.all-to-see-page .all-to-see-tools select:focus{border-color:#0877c0;box-shadow:0 0 0 3px rgba(8,119,192,.12),inset 0 1px 0 #fff}
body.all-to-see-page .all-to-see-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px;margin:0}
@media(min-width:761px){
  /* Use the desktop calendar's image-led card: one 4:3 image, status at the
     upper left, and the complete visit information on the lower gradient. */
  body.all-to-see-page .all-to-see-grid .card--mini{
    position:relative;
    display:block;
    min-width:0;
    aspect-ratio:4/3;
    overflow:hidden;
    isolation:isolate;
    border-radius:22px;
    background:linear-gradient(145deg,#097fc7,#054d87);
    box-shadow:0 14px 28px rgba(3,54,94,.25);
    filter:none;
    transition:transform .16s ease,box-shadow .16s ease;
  }
  body.all-to-see-page .all-to-see-grid .card--mini:hover{
    transform:translateY(-3px);
    box-shadow:0 20px 34px rgba(3,54,94,.32);
  }
  body.all-to-see-page .all-to-see-grid .card--mini .mini__media{
    position:absolute;
    inset:0;
    width:100%;
    height:100%;
    aspect-ratio:auto;
    overflow:hidden;
    border-radius:0;
    background:linear-gradient(145deg,#097fc7,#054d87);
    box-shadow:none;
    filter:none;
  }
  body.all-to-see-page .all-to-see-grid .card--mini .mini__media::after{
    content:"";
    position:absolute;
    inset:0;
    z-index:1;
    background:linear-gradient(180deg,rgba(2,19,33,.04) 18%,rgba(2,19,33,.24) 42%,rgba(2,19,33,.94) 100%);
    pointer-events:none;
  }
  body.all-to-see-page .all-to-see-grid .card--mini .mini__media .card__photo{
    position:absolute;
    inset:0;
    width:100%;
    height:100%;
    object-fit:cover;
  }
  body.all-to-see-page .all-to-see-grid .card--mini .card__kicks{
    top:16px;
    left:16px;
    z-index:3;
  }
  body.all-to-see-page .all-to-see-grid .card--mini .card__kick{
    display:inline-block!important;
    padding:6px 11px;
    font-size:11px;
    letter-spacing:.055em;
    box-shadow:0 3px 9px rgba(0,0,0,.18);
  }
  body.all-to-see-page .all-to-see-grid .card--mini .mini__txt{
    position:absolute;
    z-index:2;
    right:16px;
    bottom:15px;
    left:16px;
    display:flex;
    min-height:0;
    padding:0;
    flex-direction:column;
    gap:2px;
    background:transparent;
  }
  body.all-to-see-page .all-to-see-grid .card--mini .mini__txt > *{
    min-width:0;
    margin:0;
    overflow:hidden;
    text-overflow:ellipsis;
    white-space:nowrap;
  }
  body.all-to-see-page .all-to-see-grid .card--mini .card__date{
    margin-bottom:2px;
    color:rgba(255,255,255,.84)!important;
    font-size:12px;
    font-weight:600;
    line-height:1.2;
    text-shadow:0 1px 4px rgba(0,0,0,.5)!important;
  }
  body.all-to-see-page .all-to-see-grid .card--mini .card__title{
    display:-webkit-box;
    color:#fff!important;
    font-size:21px;
    line-height:1.12;
    white-space:normal;
    -webkit-box-orient:vertical;
    -webkit-line-clamp:2;
    text-shadow:0 2px 8px rgba(0,0,0,.55)!important;
  }
  body.all-to-see-page .all-to-see-grid .card--mini .card__venue{
    color:rgba(255,255,255,.94)!important;
    font-size:14px;
    line-height:1.2;
    text-shadow:0 1px 5px rgba(0,0,0,.48)!important;
  }
  body.all-to-see-page .all-to-see-grid .card--mini :is(.card__addr,.card__hours){
    color:rgba(255,255,255,.84)!important;
    font-size:12px;
    line-height:1.24;
    text-shadow:0 1px 4px rgba(0,0,0,.5)!important;
  }
}
body.all-to-see-page .all-to-see-empty{margin:38px 0;color:#0877c0;font:700 16px/1.45 'Quicksand',sans-serif;text-align:center}
body.all-to-see-page .all-to-see-more{display:flex;align-items:center;justify-content:center;min-height:40px;margin:24px auto 0;padding:8px 16px;border:1px solid rgba(8,119,192,.2);border-radius:12px;color:#0877c0;background:rgba(255,255,255,.62);box-shadow:inset 0 1px 0 rgba(255,255,255,.85);font:700 13px/1 'Quicksand',sans-serif;cursor:pointer}
body.all-to-see-page .all-to-see-more[hidden]{display:none}
body.all-to-see-page .all-to-see-more:hover{background:#fff}
body.all-to-see-page .site-footer{margin-top:76px}
@media(max-width:1100px){
  body.all-to-see-page .all-to-see-tools{grid-template-columns:repeat(2,minmax(0,1fr))}
  body.all-to-see-page .all-to-see-tools label:first-child{grid-column:1/-1}
}
@media(max-width:760px){
  body.all-to-see-page .all-to-see-wrap{width:calc(100% - 28px)}
  body.all-to-see-page .all-to-see-hero{padding:14px 0 18px}
  body.all-to-see-page .all-to-see-hero h1{font-size:38px}
  body.all-to-see-page .all-to-see-shelf{padding:16px;border-radius:17px}
  body.all-to-see-page .all-to-see-shelf__head{display:block}
  body.all-to-see-page #all-to-see-status{display:block;margin-top:8px;white-space:normal}
  body.all-to-see-page .all-to-see-tools{grid-template-columns:1fr;gap:9px}
  body.all-to-see-page .all-to-see-tools label:first-child{grid-column:auto}
  body.all-to-see-page .all-to-see-grid{grid-template-columns:1fr;gap:14px}
  body.all-to-see-page .all-to-see-grid .card{min-width:0;border-radius:14px;box-shadow:0 11px 24px rgba(4,48,84,.14)}
  body.all-to-see-page .all-to-see-grid .card--mini .mini__media{aspect-ratio:4/3}
  body.all-to-see-page .all-to-see-grid .card--mini .mini__txt{min-height:0;padding:15px 15px 17px;background:linear-gradient(180deg,rgba(4,68,113,.98),rgba(2,47,82,.99))}
  body.all-to-see-page .all-to-see-grid .card__title{color:#fff}
  body.all-to-see-page .all-to-see-grid :is(.card__date,.card__venue,.card__addr,.card__hours){color:rgba(255,255,255,.78)}
}

/* Theater and Drag use the same desktop editorial grammar as Art: one strong
   Today rail and a clear Coming Up handoff. Their underlying events remain
   category-specific; this is presentation only. */
@media (min-width:901px), (min-width:621px) and (min-height:621px), (min-width:621px) and (pointer:fine), (min-width:621px) and (orientation:portrait){
  body.desktop-home.desktop-editorial-discovery:not([data-cat="art"]) .home-editorial-top{
    display:grid!important;
    grid-template-columns:minmax(0,1fr) minmax(0,1fr);
    grid-template-areas:
      "today today"
      "upcoming upcoming"
      "dates dates";
    column-gap:30px;
    row-gap:34px;
    margin-top:-74px!important;
  }
}
@media (min-width:901px), (min-width:621px) and (min-height:621px), (min-width:621px) and (pointer:fine), (min-width:621px) and (orientation:portrait){
  body.desktop-home.desktop-editorial-discovery:not([data-cat="art"]) #home-essay,
  body.desktop-home.desktop-editorial-discovery:not([data-cat="art"]) #home-weekcols,
  body.desktop-home.desktop-editorial-discovery:not([data-cat="art"]) .desktop-editorial-source-host{display:none!important}
}
@media (min-width:901px), (min-width:621px) and (min-height:621px), (min-width:621px) and (pointer:fine), (min-width:621px) and (orientation:portrait){

  body.desktop-home.desktop-editorial-discovery:not([data-cat="art"]) .desktop-editorial-today{
    grid-area:today;
    min-width:0;
  }
}
@media (min-width:901px), (min-width:621px) and (min-height:621px), (min-width:621px) and (pointer:fine), (min-width:621px) and (orientation:portrait){
  body.desktop-home.desktop-editorial-discovery:not([data-cat="art"]) .desktop-editorial-today .shead{
    position:relative;
    display:flex!important;
    align-items:center!important;
    justify-content:flex-start!important;
    gap:0!important;
    min-height:52px;
    margin:0 0 18px!important;
    padding:0 0 14px!important;
    border:0!important;
    text-align:left!important;
  }
}
@media (min-width:901px), (min-width:621px) and (min-height:621px), (min-width:621px) and (pointer:fine), (min-width:621px) and (orientation:portrait){
  body.desktop-home.desktop-editorial-discovery:not([data-cat="art"]) .desktop-editorial-today .shead > .tag-blue{display:none!important}
}
@media (min-width:901px), (min-width:621px) and (min-height:621px), (min-width:621px) and (pointer:fine), (min-width:621px) and (orientation:portrait){
  body.desktop-home.desktop-editorial-discovery:not([data-cat="art"]) .desktop-editorial-today .shead h2{
    display:table;
    margin:0;
    color:#edf9ff!important;
    font-family:'DM Sans',sans-serif!important;
    font-size:clamp(30px,2.5vw,40px)!important;
    font-weight:800!important;
    line-height:1.02!important;
    letter-spacing:-.04em;
    text-shadow:0 1px 0 rgba(255,255,255,.92),0 2px 0 rgba(9,72,112,.28),0 5px 12px rgba(4,35,62,.32)!important;
  }
}
@media (min-width:901px), (min-width:621px) and (min-height:621px), (min-width:621px) and (pointer:fine), (min-width:621px) and (orientation:portrait){
  body.desktop-home.desktop-editorial-discovery:not([data-cat="art"]) .desktop-editorial-today .desktop-home__stat-line--title{
    position:static;
    margin-left:16px;
    transform:none;
    color:rgba(255,255,255,.78)!important;
    font:700 11px/1 'DM Sans',sans-serif!important;
    text-shadow:0 1px 5px rgba(4,35,62,.2)!important;
  }
}
@media (min-width:901px), (min-width:621px) and (min-height:621px), (min-width:621px) and (pointer:fine), (min-width:621px) and (orientation:portrait){
  body.desktop-home.desktop-editorial-discovery:not([data-cat="art"]) .desktop-editorial-today .desktop-home__stat-line--title strong{color:#fff!important}
}
@media (min-width:901px), (min-width:621px) and (min-height:621px), (min-width:621px) and (pointer:fine), (min-width:621px) and (orientation:portrait){
  body.desktop-home.desktop-editorial-discovery:not([data-cat="art"]) .desktop-editorial-today .grid{
    display:grid!important;
    grid-template-columns:minmax(0,1.48fr) repeat(2,minmax(0,1fr))!important;
    grid-template-rows:repeat(2,minmax(178px,1fr));
    gap:16px!important;
  }
}
@media (min-width:901px), (min-width:621px) and (min-height:621px), (min-width:621px) and (pointer:fine), (min-width:621px) and (orientation:portrait){
  body.desktop-home.desktop-editorial-discovery:not([data-cat="art"]) .desktop-editorial-today .card,
  body.desktop-home.desktop-editorial-discovery:not([data-cat="art"]) .desktop-home-upcoming__cards .card{
    position:relative;
    min-width:0;
    min-height:178px;
    overflow:hidden;
    border-radius:18px;
    background:linear-gradient(150deg,var(--blue),#03426f);
    box-shadow:0 12px 28px rgba(7,42,80,.22),0 2px 7px rgba(7,42,80,.13);
    filter:none;
  }
}
@media (min-width:901px), (min-width:621px) and (min-height:621px), (min-width:621px) and (pointer:fine), (min-width:621px) and (orientation:portrait){
  body.desktop-home.desktop-editorial-discovery:not([data-cat="art"]) .desktop-editorial-today .card:hover{
    transform:translateY(-3px);
    box-shadow:0 17px 34px rgba(7,42,80,.28),0 3px 9px rgba(7,42,80,.16);
  }
}
@media (min-width:901px), (min-width:621px) and (min-height:621px), (min-width:621px) and (pointer:fine), (min-width:621px) and (orientation:portrait){
  body.desktop-home.desktop-editorial-discovery:not([data-cat="art"]) .desktop-editorial-today .card__panel,
  body.desktop-home.desktop-editorial-discovery:not([data-cat="art"]) .desktop-home-upcoming__cards .card__panel{
    position:absolute;
    inset:0;
    height:100%;
    border-radius:0;
    background:transparent;
  }
}
@media (min-width:901px), (min-width:621px) and (min-height:621px), (min-width:621px) and (pointer:fine), (min-width:621px) and (orientation:portrait){
  body.desktop-home.desktop-editorial-discovery:not([data-cat="art"]) .desktop-editorial-today .card__panel > picture,
  body.desktop-home.desktop-editorial-discovery:not([data-cat="art"]) .desktop-home-upcoming__cards .card__panel > picture{
    position:absolute;
    inset:0;
    display:block;
  }
}
@media (min-width:901px), (min-width:621px) and (min-height:621px), (min-width:621px) and (pointer:fine), (min-width:621px) and (orientation:portrait){
  body.desktop-home.desktop-editorial-discovery:not([data-cat="art"]) .desktop-editorial-today .card__photo,
  body.desktop-home.desktop-editorial-discovery:not([data-cat="art"]) .desktop-home-upcoming__cards .card__photo{
    display:block;
    width:100%;
    height:100%;
    object-fit:cover;
  }
}
@media (min-width:901px), (min-width:621px) and (min-height:621px), (min-width:621px) and (pointer:fine), (min-width:621px) and (orientation:portrait){
  body.desktop-home.desktop-editorial-discovery:not([data-cat="art"]) .desktop-editorial-today .card__panel::after,
  body.desktop-home.desktop-editorial-discovery:not([data-cat="art"]) .desktop-home-upcoming__cards .card__panel::after{
    content:"";
    position:absolute;
    inset:0;
    z-index:1;
    background:linear-gradient(180deg,rgba(6,21,34,.04) 22%,rgba(6,21,34,.22) 51%,rgba(3,18,32,.9) 100%);
    pointer-events:none;
  }
}
@media (min-width:901px), (min-width:621px) and (min-height:621px), (min-width:621px) and (pointer:fine), (min-width:621px) and (orientation:portrait){
  body.desktop-home.desktop-editorial-discovery:not([data-cat="art"]) .desktop-editorial-today .card__cap,
  body.desktop-home.desktop-editorial-discovery:not([data-cat="art"]) .desktop-home-upcoming__cards .card__cap{
    position:absolute;
    right:0;
    bottom:0;
    left:0;
    z-index:2;
    padding:46px 15px 15px;
    background:linear-gradient(180deg,transparent,rgba(3,18,32,.18));
  }
}
@media (min-width:901px), (min-width:621px) and (min-height:621px), (min-width:621px) and (pointer:fine), (min-width:621px) and (orientation:portrait){
  body.desktop-home.desktop-editorial-discovery:not([data-cat="art"]) .desktop-editorial-today .card__title,
  body.desktop-home.desktop-editorial-discovery:not([data-cat="art"]) .desktop-home-upcoming__cards .card__title{
    color:#fff!important;
    font-size:17px;
    line-height:1.16;
    text-shadow:0 2px 8px rgba(0,0,0,.52)!important;
  }
}
@media (min-width:901px), (min-width:621px) and (min-height:621px), (min-width:621px) and (pointer:fine), (min-width:621px) and (orientation:portrait){
  body.desktop-home.desktop-editorial-discovery:not([data-cat="art"]) .desktop-editorial-today .card__date,
  body.desktop-home.desktop-editorial-discovery:not([data-cat="art"]) .desktop-editorial-today .card__venue,
  body.desktop-home.desktop-editorial-discovery:not([data-cat="art"]) .desktop-editorial-today .card__addr,
  body.desktop-home.desktop-editorial-discovery:not([data-cat="art"]) .desktop-home-upcoming__cards .card__date,
  body.desktop-home.desktop-editorial-discovery:not([data-cat="art"]) .desktop-home-upcoming__cards .card__venue,
  body.desktop-home.desktop-editorial-discovery:not([data-cat="art"]) .desktop-home-upcoming__cards .card__addr{
    color:rgba(255,255,255,.86)!important;
    text-shadow:0 1px 5px rgba(0,0,0,.55)!important;
  }
}
@media (min-width:901px), (min-width:621px) and (min-height:621px), (min-width:621px) and (pointer:fine), (min-width:621px) and (orientation:portrait){
  body.desktop-home.desktop-editorial-discovery:not([data-cat="art"]) .desktop-editorial-today .desktop-today__lead{
    grid-row:1 / span 2;
    min-height:372px;
  }
}
@media (min-width:901px), (min-width:621px) and (min-height:621px), (min-width:621px) and (pointer:fine), (min-width:621px) and (orientation:portrait){
  body.desktop-home.desktop-editorial-discovery:not([data-cat="art"]) .desktop-editorial-today .desktop-today__lead .card__title{
    font-size:clamp(25px,2.2vw,34px);
    line-height:1.08;
  }
}
@media (min-width:901px), (min-width:621px) and (min-height:621px), (min-width:621px) and (pointer:fine), (min-width:621px) and (orientation:portrait){
  body.desktop-home.desktop-editorial-discovery:not([data-cat="art"]) .desktop-editorial-today .desktop-today__lead .card__cap{padding:76px 23px 22px}
}
@media (min-width:901px), (min-width:621px) and (min-height:621px), (min-width:621px) and (pointer:fine), (min-width:621px) and (orientation:portrait){
  body.desktop-home.desktop-editorial-discovery:not([data-cat="art"]) .desktop-today__pick{
    position:absolute;
    top:14px;
    right:14px;
    left:auto;
    z-index:5;
    display:inline-flex;
    padding:7px 11px;
    border-radius:999px;
    color:#0b649f;
    background:rgba(255,255,255,.94);
    box-shadow:0 5px 15px rgba(4,35,62,.2);
    font:700 10px/1 'Quicksand',sans-serif;
    letter-spacing:.08em;
    text-transform:uppercase;
  }
}
@media (min-width:901px), (min-width:621px) and (min-height:621px), (min-width:621px) and (pointer:fine), (min-width:621px) and (orientation:portrait){
  body.desktop-home.desktop-editorial-discovery:not([data-cat="art"]) .desktop-today__lead .card__kicks{
    right:auto;
    left:14px;
    z-index:4;
    max-width:55%;
    justify-content:flex-start;
  }
}
@media (min-width:901px), (min-width:621px) and (min-height:621px), (min-width:621px) and (pointer:fine), (min-width:621px) and (orientation:portrait){
  body.desktop-home.desktop-editorial-discovery:not([data-cat="art"]) .desktop-today__more{
    display:flex;
    justify-content:flex-end;
    margin-top:13px;
  }
}
@media (min-width:901px), (min-width:621px) and (min-height:621px), (min-width:621px) and (pointer:fine), (min-width:621px) and (orientation:portrait){
  body.desktop-home.desktop-editorial-discovery:not([data-cat="art"]) .desktop-today__more a,
  body.desktop-home.desktop-editorial-discovery:not([data-cat="art"]) .home-upcoming-heading .desktop-home__viewall{
    color:#fff!important;
    font:700 11px/1 'Quicksand',sans-serif;
    letter-spacing:.055em;
    text-decoration:none;
    text-transform:uppercase;
    text-shadow:0 1px 5px rgba(4,35,62,.22);
  }
}
@media (min-width:901px), (min-width:621px) and (min-height:621px), (min-width:621px) and (pointer:fine), (min-width:621px) and (orientation:portrait){
  body.desktop-home.desktop-editorial-discovery:not([data-cat="art"]) .desktop-today__more a:hover,
  body.desktop-home.desktop-editorial-discovery:not([data-cat="art"]) .home-upcoming-heading .desktop-home__viewall:hover{text-decoration:underline}
}
@media (min-width:901px), (min-width:621px) and (min-height:621px), (min-width:621px) and (pointer:fine), (min-width:621px) and (orientation:portrait){

  body.desktop-home.desktop-editorial-discovery:not([data-cat="art"]) .home-upcoming-heading{
    grid-area:upcoming;
    display:flex!important;
    align-items:baseline;
    margin:2px 0 -18px!important;
    padding:0!important;
    border:0!important;
  }
}
@media (min-width:901px), (min-width:621px) and (min-height:621px), (min-width:621px) and (pointer:fine), (min-width:621px) and (orientation:portrait){
  body.desktop-home.desktop-editorial-discovery:not([data-cat="art"]) .home-upcoming-heading strong{
    color:#fff!important;
    font-size:30px!important;
    letter-spacing:-.035em;
    text-shadow:0 2px 8px rgba(4,35,62,.24)!important;
  }
}
@media (min-width:901px), (min-width:621px) and (min-height:621px), (min-width:621px) and (pointer:fine), (min-width:621px) and (orientation:portrait){
  body.desktop-home.desktop-editorial-discovery:not([data-cat="art"]) .home-upcoming-heading > span:not(.desktop-home__stat-line--title){display:none}
}
@media (min-width:901px), (min-width:621px) and (min-height:621px), (min-width:621px) and (pointer:fine), (min-width:621px) and (orientation:portrait){
  body.desktop-home.desktop-editorial-discovery:not([data-cat="art"]) .home-upcoming-heading .desktop-home__stat-line--title{
    margin-left:16px;
    color:rgba(255,255,255,.78)!important;
    text-shadow:0 1px 5px rgba(4,35,62,.2)!important;
  }
}
@media (min-width:901px), (min-width:621px) and (min-height:621px), (min-width:621px) and (pointer:fine), (min-width:621px) and (orientation:portrait){
  body.desktop-home.desktop-editorial-discovery:not([data-cat="art"]) #desktop-home-upcoming{grid-area:dates;min-width:0}
}
@media (min-width:901px), (min-width:621px) and (min-height:621px), (min-width:621px) and (pointer:fine), (min-width:621px) and (orientation:portrait){
  body.desktop-home.desktop-editorial-discovery:not([data-cat="art"]) .desktop-home-upcoming__cards{
    display:grid;
    grid-template-columns:repeat(4,minmax(0,1fr));
    gap:16px;
  }
}
@media (min-width:901px), (min-width:621px) and (min-height:621px), (min-width:621px) and (pointer:fine), (min-width:621px) and (orientation:portrait){
  body.desktop-home.desktop-editorial-discovery:not([data-cat="art"]) .desktop-home-upcoming__cards .card{min-height:210px;border-radius:16px}
}
@media (min-width:901px), (min-width:621px) and (min-height:621px), (min-width:621px) and (pointer:fine), (min-width:621px) and (orientation:portrait){
  body.desktop-home.desktop-editorial-discovery:not([data-cat="art"]) .desktop-home-upcoming__cards .card__cap{padding:42px 13px 13px}
}
@media (min-width:901px), (min-width:621px) and (min-height:621px), (min-width:621px) and (pointer:fine), (min-width:621px) and (orientation:portrait){
  body.desktop-home.desktop-editorial-discovery:not([data-cat="art"]) .desktop-home-upcoming__cards .card__title{font-size:16px}
}
@media (min-width:901px), (min-width:621px) and (min-height:621px), (min-width:621px) and (pointer:fine), (min-width:621px) and (orientation:portrait){
  body.desktop-home.desktop-editorial-discovery:not([data-cat="art"]) .desktop-home-upcoming__empty{
    margin:0;
    padding:22px;
    border:1px dashed rgba(255,255,255,.35);
    border-radius:14px;
    color:rgba(255,255,255,.78);
    text-align:center;
  }
}
@media (min-width:901px), (min-width:621px) and (min-height:621px), (min-width:621px) and (pointer:fine), (min-width:621px) and (orientation:portrait){
  body.desktop-home.desktop-editorial-discovery:not([data-cat="art"]) .desktop-home-upcoming__more{
    display:flex;
    align-items:center;
    justify-content:center;
    min-height:210px;
    padding:20px;
    border:1px solid rgba(255,255,255,.24);
    border-radius:16px;
    color:#fff;
    background:rgba(4,64,113,.35);
    font:700 12px/1.4 'Quicksand',sans-serif;
    text-align:center;
    text-decoration:none;
    text-transform:uppercase;
  }
}
@media (min-width:901px), (min-width:621px) and (min-height:621px), (min-width:621px) and (pointer:fine), (min-width:621px) and (orientation:portrait){
  /* Drag and Theater mirror the mobile homepage: Today, then one titled rail per
     near-term window. Each sits in the same glass panel as the Art homepage
     sections (Today in Art, Must Sees, Coming up). */
  body.desktop-home.desktop-editorial-discovery:is([data-cat="drag"],[data-cat="comedy"],[data-cat="theater"]) .home-upcoming-heading .desktop-home__viewall{
    margin-left:auto;
    padding-left:16px;
  }
}
@media (min-width:901px), (min-width:621px) and (min-height:621px), (min-width:621px) and (pointer:fine), (min-width:621px) and (orientation:portrait){
  body.desktop-home.desktop-editorial-discovery:is([data-cat="drag"],[data-cat="comedy"],[data-cat="theater"]) .desktop-home-upcoming--windows{
    display:grid;
    gap:30px;
  }
}
@media (min-width:901px), (min-width:621px) and (min-height:621px), (min-width:621px) and (pointer:fine), (min-width:621px) and (orientation:portrait){
  body.desktop-home.desktop-editorial-discovery:is([data-cat="drag"],[data-cat="comedy"],[data-cat="theater"]) .desktop-editorial-today,
  body.desktop-home.desktop-editorial-discovery:is([data-cat="drag"],[data-cat="comedy"],[data-cat="theater"]) .desktop-home-window{
    position:relative!important;
    isolation:isolate!important;
    overflow:hidden!important;
    padding:24px!important;
    border:0!important;
    border-radius:20px!important;
    background:linear-gradient(
      180deg,
      rgba(255,255,255,.12) 0%,
      rgba(224,244,255,.82) 27%,
      rgba(249,252,253,.98) 67%
    )!important;
    box-shadow:0 24px 46px rgba(4,48,84,.16)!important;
    backdrop-filter:blur(16px) saturate(1.08)!important;
    -webkit-backdrop-filter:blur(16px) saturate(1.08)!important;
  }
}
@media (min-width:901px), (min-width:621px) and (min-height:621px), (min-width:621px) and (pointer:fine), (min-width:621px) and (orientation:portrait){
  body.desktop-home.desktop-editorial-discovery:is([data-cat="drag"],[data-cat="comedy"],[data-cat="theater"]) .desktop-editorial-today::before,
  body.desktop-home.desktop-editorial-discovery:is([data-cat="drag"],[data-cat="comedy"],[data-cat="theater"]) .desktop-home-window::before{
    content:"";
    position:absolute;
    z-index:-1;
    inset:0;
    pointer-events:none;
    background:radial-gradient(circle at 50% -18%,rgba(255,255,255,.3),transparent 48%);
  }
}
@media (min-width:901px), (min-width:621px) and (min-height:621px), (min-width:621px) and (pointer:fine), (min-width:621px) and (orientation:portrait){
  body.desktop-home.desktop-editorial-discovery:is([data-cat="drag"],[data-cat="comedy"],[data-cat="theater"]) .desktop-editorial-today .shead,
  body.desktop-home.desktop-editorial-discovery:is([data-cat="drag"],[data-cat="comedy"],[data-cat="theater"]) .desktop-home-window__title{
    margin:0 0 20px!important;
    padding:0 0 13px!important;
    border-bottom:1px solid rgba(8,119,192,.28)!important;
    box-shadow:0 1px 0 rgba(255,255,255,.58)!important;
  }
}
@media (min-width:901px), (min-width:621px) and (min-height:621px), (min-width:621px) and (pointer:fine), (min-width:621px) and (orientation:portrait){
  body.desktop-home.desktop-editorial-discovery:is([data-cat="drag"],[data-cat="comedy"],[data-cat="theater"]) .desktop-home-window__title{
    display:flex;
    align-items:baseline;
    gap:14px;
    color:#edf9ff!important;
    font:800 clamp(30px,2.5vw,40px)/1.02 'DM Sans',sans-serif!important;
    letter-spacing:-.04em!important;
    text-shadow:0 1px 0 rgba(255,255,255,.92),0 2px 0 rgba(9,72,112,.28),0 5px 12px rgba(4,35,62,.32)!important;
  }
}
@media (min-width:901px), (min-width:621px) and (min-height:621px), (min-width:621px) and (pointer:fine), (min-width:621px) and (orientation:portrait){
  body.desktop-home.desktop-editorial-discovery:is([data-cat="drag"],[data-cat="comedy"],[data-cat="theater"]) .desktop-home-window__count{
    color:rgba(255,255,255,.78);
    font:700 11px/1 'DM Sans',sans-serif!important;
    letter-spacing:0!important;
    text-shadow:0 1px 5px rgba(4,35,62,.2);
  }
}
@media (min-width:901px), (min-width:621px) and (min-height:621px), (min-width:621px) and (pointer:fine), (min-width:621px) and (orientation:portrait){
  body.desktop-home.desktop-editorial-discovery:is([data-cat="drag"],[data-cat="comedy"],[data-cat="theater"]) .desktop-today__more a,
  body.desktop-home.desktop-editorial-discovery:is([data-cat="drag"],[data-cat="comedy"],[data-cat="theater"]) .desktop-home-window__more{
    display:inline-flex!important;
    align-items:center!important;
    min-height:34px!important;
    padding:7px 12px!important;
    border:1px solid rgba(8,119,192,.18)!important;
    border-radius:11px!important;
    color:#0877c0!important;
    background:rgba(255,255,255,.5)!important;
    box-shadow:inset 0 1px 0 rgba(255,255,255,.78)!important;
    font:700 11px/1 'Quicksand',sans-serif!important;
    letter-spacing:.06em!important;
    text-transform:uppercase!important;
    text-decoration:none!important;
    text-shadow:none!important;
  }
}
@media (min-width:901px), (min-width:621px) and (min-height:621px), (min-width:621px) and (pointer:fine), (min-width:621px) and (orientation:portrait){
  body.desktop-home.desktop-editorial-discovery:is([data-cat="drag"],[data-cat="comedy"],[data-cat="theater"]) .desktop-home-window__more{
    display:flex!important;
    margin:18px auto 0!important;
    cursor:pointer;
  }
}
@media (min-width:901px), (min-width:621px) and (min-height:621px), (min-width:621px) and (pointer:fine), (min-width:621px) and (orientation:portrait){
  body.desktop-home.desktop-editorial-discovery:is([data-cat="drag"],[data-cat="comedy"],[data-cat="theater"]) .desktop-today__more a:hover,
  body.desktop-home.desktop-editorial-discovery:is([data-cat="drag"],[data-cat="comedy"],[data-cat="theater"]) .desktop-home-window__more:hover,
  body.desktop-home.desktop-editorial-discovery:is([data-cat="drag"],[data-cat="comedy"],[data-cat="theater"]) .desktop-home-window__more:focus-visible{
    background:rgba(255,255,255,.78)!important;
  }
}

/* ── Desktop homepage editorial discovery (Option 3, Sep 12) ───────────────
   Art Reviews remains untouched. Below it, desktop Art uses one curated Today
   lead, four supporting choices, paired Must Sees/Solo Shows, and a real
   seven-day date picker. The mobile/app stream and Theater/Drag are unchanged. */
@media (min-width:901px), (min-width:621px) and (min-height:621px), (min-width:621px) and (pointer:fine), (min-width:621px) and (orientation:portrait){
  body.desktop-home.desktop-editorial-discovery[data-cat="art"] .home-editorial-top{
    grid-template-columns:minmax(0,1fr) minmax(0,1fr);
    grid-template-areas:
      "editorial editorial"
      "reviews reviews"
      "today today"
      "curated curated"
      "upcoming upcoming"
      "dates dates";
    column-gap:30px;
    row-gap:34px;
  }
}
@media (min-width:901px), (min-width:621px) and (min-height:621px), (min-width:621px) and (pointer:fine), (min-width:621px) and (orientation:portrait){
  body.desktop-home.desktop-editorial-discovery[data-cat="art"] #home-editorial-feature{grid-area:editorial;min-width:0}
}
@media (min-width:901px), (min-width:621px) and (min-height:621px), (min-width:621px) and (pointer:fine), (min-width:621px) and (orientation:portrait){
  body.desktop-home.desktop-editorial-discovery[data-cat="art"] #home-essay{grid-area:reviews}
}
@media (min-width:901px), (min-width:621px) and (min-height:621px), (min-width:621px) and (pointer:fine), (min-width:621px) and (orientation:portrait){
  body.desktop-home.desktop-editorial-discovery[data-cat="art"] #home-weekcols .week-col--art-today{
    grid-area:today;
  }
}
@media (min-width:901px), (min-width:621px) and (min-height:621px), (min-width:621px) and (pointer:fine), (min-width:621px) and (orientation:portrait){
  body.desktop-home.desktop-editorial-discovery[data-cat="art"] #desktop-home-curated{
    grid-area:curated;
  }
}
@media (min-width:901px), (min-width:621px) and (min-height:621px), (min-width:621px) and (pointer:fine), (min-width:621px) and (orientation:portrait){
  body.desktop-home.desktop-editorial-discovery[data-cat="art"] .home-upcoming-heading{
    grid-area:upcoming;
  }
}
@media (min-width:901px), (min-width:621px) and (min-height:621px), (min-width:621px) and (pointer:fine), (min-width:621px) and (orientation:portrait){
  body.desktop-home.desktop-editorial-discovery[data-cat="art"] #desktop-coming-dates{
    grid-area:dates;
  }
}
@media (min-width:901px), (min-width:621px) and (min-height:621px), (min-width:621px) and (pointer:fine), (min-width:621px) and (orientation:portrait){
  body.desktop-home.desktop-editorial-discovery .desktop-editorial-hidden,
  body.desktop-home.desktop-editorial-discovery .desktop-editorial-source-hidden{
    display:none!important;
  }
}
@media (min-width:901px), (min-width:621px) and (min-height:621px), (min-width:621px) and (pointer:fine), (min-width:621px) and (orientation:portrait){

  body.desktop-home.desktop-editorial-discovery[data-cat="art"] .desktop-editorial-today .week-col__head{
    position:relative;
    display:flex!important;
    align-items:center!important;
    justify-content:flex-start!important;
    gap:0!important;
    min-height:52px;
    margin-bottom:18px;
    padding-bottom:14px!important;
  }
}
@media (min-width:901px), (min-width:621px) and (min-height:621px), (min-width:621px) and (pointer:fine), (min-width:621px) and (orientation:portrait){
  body.desktop-home.desktop-editorial-discovery[data-cat="art"] #home-weekcols .week-col--art-today .week-col__head h2{
    display:table;
    margin:0;
    color:#edf9ff!important;
    font-family:'DM Sans',sans-serif!important;
    font-size:clamp(30px,2.5vw,40px)!important;
    font-weight:800!important;
    line-height:1.02!important;
    letter-spacing:-.04em;
    text-shadow:0 1px 0 rgba(255,255,255,.92),0 2px 0 rgba(9,72,112,.28),0 5px 12px rgba(4,35,62,.32)!important;
  }
}
@media (min-width:901px), (min-width:621px) and (min-height:621px), (min-width:621px) and (pointer:fine), (min-width:621px) and (orientation:portrait){
  body.desktop-home.desktop-editorial-discovery[data-cat="art"] #home-weekcols .week-col--art-today .desktop-home__stat-line--title{
    position:static;
    margin-left:16px;
    transform:none;
    color:rgba(255,255,255,.78)!important;
    font:700 11px/1 'DM Sans',sans-serif!important;
    text-shadow:0 1px 5px rgba(4,35,62,.2)!important;
  }
}
@media (min-width:901px), (min-width:621px) and (min-height:621px), (min-width:621px) and (pointer:fine), (min-width:621px) and (orientation:portrait){
  body.desktop-home.desktop-editorial-discovery[data-cat="art"] #home-weekcols .week-col--art-today .desktop-home__stat-line--title strong{
    color:#fff!important;
  }
}
@media (min-width:901px), (min-width:621px) and (min-height:621px), (min-width:621px) and (pointer:fine), (min-width:621px) and (orientation:portrait){
  body.desktop-home.desktop-editorial-discovery[data-cat="art"] .desktop-editorial-today .week-col__cards{
    display:grid!important;
    grid-template-columns:minmax(0,1.48fr) repeat(2,minmax(0,1fr))!important;
    grid-template-rows:repeat(2,minmax(178px,1fr));
    gap:16px!important;
  }
}
@media (min-width:901px), (min-width:621px) and (min-height:621px), (min-width:621px) and (pointer:fine), (min-width:621px) and (orientation:portrait){
  body.desktop-home.desktop-editorial-discovery[data-cat="art"] .desktop-editorial-today .card--mini{
    position:relative;
    min-width:0;
    min-height:178px;
    overflow:hidden;
    border-radius:18px;
    background:linear-gradient(150deg,var(--blue),#03426f);
    box-shadow:0 12px 28px rgba(7,42,80,.22),0 2px 7px rgba(7,42,80,.13);
    filter:none;
  }
}
@media (min-width:901px), (min-width:621px) and (min-height:621px), (min-width:621px) and (pointer:fine), (min-width:621px) and (orientation:portrait){
  body.desktop-home.desktop-editorial-discovery[data-cat="art"] .desktop-editorial-today .card--mini:hover{
    transform:translateY(-3px);
    box-shadow:0 17px 34px rgba(7,42,80,.28),0 3px 9px rgba(7,42,80,.16);
  }
}
@media (min-width:901px), (min-width:621px) and (min-height:621px), (min-width:621px) and (pointer:fine), (min-width:621px) and (orientation:portrait){
  body.desktop-home.desktop-editorial-discovery[data-cat="art"] .desktop-editorial-today .card--mini .mini__media{
    position:absolute;
    inset:0;
    width:100%;
    height:100%;
    aspect-ratio:auto!important;
    border-radius:0;
    filter:none;
  }
}
@media (min-width:901px), (min-width:621px) and (min-height:621px), (min-width:621px) and (pointer:fine), (min-width:621px) and (orientation:portrait){
  body.desktop-home.desktop-editorial-discovery[data-cat="art"] .desktop-editorial-today .card--mini .mini__media::after{
    content:"";
    position:absolute;
    inset:0;
    z-index:1;
    background:linear-gradient(180deg,rgba(6,21,34,.04) 22%,rgba(6,21,34,.22) 51%,rgba(3,18,32,.9) 100%);
    pointer-events:none;
  }
}
@media (min-width:901px), (min-width:621px) and (min-height:621px), (min-width:621px) and (pointer:fine), (min-width:621px) and (orientation:portrait){
  body.desktop-home.desktop-editorial-discovery[data-cat="art"] .desktop-editorial-today .card--mini .mini__txt{
    position:absolute;
    left:0;
    right:0;
    bottom:0;
    z-index:2;
    padding:46px 15px 15px;
    background:linear-gradient(180deg,transparent,rgba(3,18,32,.18));
  }
}
@media (min-width:901px), (min-width:621px) and (min-height:621px), (min-width:621px) and (pointer:fine), (min-width:621px) and (orientation:portrait){
  body.desktop-home.desktop-editorial-discovery[data-cat="art"] .desktop-editorial-today .card--mini .card__title{
    color:#fff!important;
    font-size:17px;
    line-height:1.16;
    text-shadow:0 2px 8px rgba(0,0,0,.52)!important;
  }
}
@media (min-width:901px), (min-width:621px) and (min-height:621px), (min-width:621px) and (pointer:fine), (min-width:621px) and (orientation:portrait){
  body.desktop-home.desktop-editorial-discovery[data-cat="art"] .desktop-editorial-today .card--mini .card__date,
  body.desktop-home.desktop-editorial-discovery[data-cat="art"] .desktop-editorial-today .card--mini .card__venue,
  body.desktop-home.desktop-editorial-discovery[data-cat="art"] .desktop-editorial-today .card--mini .card__addr,
  body.desktop-home.desktop-editorial-discovery[data-cat="art"] .desktop-editorial-today .card--mini .card__hours{
    color:rgba(255,255,255,.86)!important;
    text-shadow:0 1px 5px rgba(0,0,0,.55)!important;
  }
}
@media (min-width:901px), (min-width:621px) and (min-height:621px), (min-width:621px) and (pointer:fine), (min-width:621px) and (orientation:portrait){
  body.desktop-home.desktop-editorial-discovery[data-cat="art"] .desktop-editorial-today .desktop-today__lead{
    grid-row:1 / span 2;
    min-height:372px;
  }
}
@media (min-width:901px), (min-width:621px) and (min-height:621px), (min-width:621px) and (pointer:fine), (min-width:621px) and (orientation:portrait){
  body.desktop-home.desktop-editorial-discovery[data-cat="art"] .desktop-editorial-today .desktop-today__lead .card__title{
    font-size:clamp(25px,2.2vw,34px);
    line-height:1.08;
  }
}
@media (min-width:901px), (min-width:621px) and (min-height:621px), (min-width:621px) and (pointer:fine), (min-width:621px) and (orientation:portrait){
  body.desktop-home.desktop-editorial-discovery[data-cat="art"] .desktop-editorial-today .desktop-today__lead .mini__txt{
    padding:76px 23px 22px;
  }
}
@media (min-width:901px), (min-width:621px) and (min-height:621px), (min-width:621px) and (pointer:fine), (min-width:621px) and (orientation:portrait){
  body.desktop-home.desktop-editorial-discovery[data-cat="art"] .desktop-today__pick{
    position:absolute;
    top:14px;
    right:14px;
    left:auto;
    z-index:5;
    display:inline-flex;
    padding:7px 11px;
    border-radius:999px;
    color:#0b649f;
    background:rgba(255,255,255,.94);
    box-shadow:0 5px 15px rgba(4,35,62,.2);
    font:700 10px/1 'Quicksand',sans-serif;
    letter-spacing:.08em;
    text-transform:uppercase;
  }
}
@media (min-width:901px), (min-width:621px) and (min-height:621px), (min-width:621px) and (pointer:fine), (min-width:621px) and (orientation:portrait){
  body.desktop-home.desktop-editorial-discovery[data-cat="art"] .desktop-today__lead .card__kicks{
    left:14px;
    right:auto;
    max-width:55%;
    justify-content:flex-start;
  }
}
@media (min-width:901px), (min-width:621px) and (min-height:621px), (min-width:621px) and (pointer:fine), (min-width:621px) and (orientation:portrait){
  body.desktop-home.desktop-editorial-discovery[data-cat="art"] .desktop-today__more{
    display:flex;
    justify-content:flex-end;
    margin-top:13px;
  }
}
@media (min-width:901px), (min-width:621px) and (min-height:621px), (min-width:621px) and (pointer:fine), (min-width:621px) and (orientation:portrait){
  body.desktop-home.desktop-editorial-discovery[data-cat="art"] .desktop-today__more a{
    color:#fff;
    font:700 11px/1 'Quicksand',sans-serif;
    letter-spacing:.055em;
    text-decoration:none;
    text-transform:uppercase;
  }
}
@media (min-width:901px), (min-width:621px) and (min-height:621px), (min-width:621px) and (pointer:fine), (min-width:621px) and (orientation:portrait){
  body.desktop-home.desktop-editorial-discovery[data-cat="art"] .desktop-today__more a:hover{text-decoration:underline}
}
@media (min-width:901px), (min-width:621px) and (min-height:621px), (min-width:621px) and (pointer:fine), (min-width:621px) and (orientation:portrait){

  body.desktop-home.desktop-editorial-discovery[data-cat="art"] .desktop-home__curated{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:20px;
  }
}
@media (min-width:901px), (min-width:621px) and (min-height:621px), (min-width:621px) and (pointer:fine), (min-width:621px) and (orientation:portrait){
  body.desktop-home.desktop-editorial-discovery[data-cat="art"] .desktop-home__curated > div{
    min-width:0;
    margin:0!important;
    padding:18px;
    border:1px solid rgba(255,255,255,.18);
    border-radius:20px;
    background:linear-gradient(155deg,rgba(6,77,132,.52),rgba(4,49,91,.38));
    box-shadow:0 14px 30px rgba(7,42,80,.17),inset 0 1px 0 rgba(255,255,255,.15);
    backdrop-filter:blur(12px) saturate(1.15);
    -webkit-backdrop-filter:blur(12px) saturate(1.15);
  }
}
@media (min-width:901px), (min-width:621px) and (min-height:621px), (min-width:621px) and (pointer:fine), (min-width:621px) and (orientation:portrait){
  body.desktop-home.desktop-editorial-discovery[data-cat="art"] .desktop-home__curated .openings-sec{
    margin:0!important;
  }
}
@media (min-width:901px), (min-width:621px) and (min-height:621px), (min-width:621px) and (pointer:fine), (min-width:621px) and (orientation:portrait){
  body.desktop-home.desktop-editorial-discovery[data-cat="art"] .desktop-home__curated .shead{
    display:grid!important;
    grid-template-columns:1fr auto;
    grid-template-areas:"title link" "subtitle link";
    align-items:center;
    margin:0 0 15px!important;
    padding:0 0 12px!important;
    border-bottom:1px solid rgba(255,255,255,.22)!important;
    box-shadow:none!important;
  }
}
@media (min-width:901px), (min-width:621px) and (min-height:621px), (min-width:621px) and (pointer:fine), (min-width:621px) and (orientation:portrait){
  body.desktop-home.desktop-editorial-discovery[data-cat="art"] .desktop-home__curated .shead h2{
    grid-area:title;
    color:#fff!important;
    font-size:25px!important;
    letter-spacing:-.025em;
    text-shadow:0 2px 9px rgba(4,33,61,.3)!important;
  }
}
@media (min-width:901px), (min-width:621px) and (min-height:621px), (min-width:621px) and (pointer:fine), (min-width:621px) and (orientation:portrait){
  body.desktop-home.desktop-editorial-discovery[data-cat="art"] #desktop-home-curated #home-featured .shead h2{
    color:#fff1ad!important;
    font-family:'DM Sans',sans-serif!important;
    font-size:30px!important;
    font-weight:800!important;
    line-height:1.04!important;
    letter-spacing:-.04em!important;
    text-shadow:0 1px 0 rgba(255,255,255,.46),0 2px 0 rgba(83,57,8,.34),0 6px 14px rgba(2,27,50,.5)!important;
  }
}
@media (min-width:901px), (min-width:621px) and (min-height:621px), (min-width:621px) and (pointer:fine), (min-width:621px) and (orientation:portrait){
  body.desktop-home.desktop-editorial-discovery[data-cat="art"] #desktop-home-curated #home-solo .shead h2{
    color:#ffb3d8!important;
    font-family:'DM Sans',sans-serif!important;
    font-size:30px!important;
    font-weight:800!important;
    line-height:1.04!important;
    letter-spacing:-.04em!important;
    text-shadow:0 1px 0 rgba(255,255,255,.4),0 2px 0 rgba(116,24,71,.36),0 6px 14px rgba(2,27,50,.5)!important;
  }
}
@media (min-width:901px), (min-width:621px) and (min-height:621px), (min-width:621px) and (pointer:fine), (min-width:621px) and (orientation:portrait){
  body.desktop-home.desktop-editorial-discovery[data-cat="art"] #desktop-home-curated #home-solo .card__kicks::after{
    content:"Solo";
    display:inline-block;
    padding:4px 10px;
    border-radius:999px;
    color:#fff;
    background:#ec4899;
    box-shadow:0 2px 7px rgba(0,0,0,.3);
    font:700 11px/1.1 'Quicksand',sans-serif;
    letter-spacing:.04em;
    text-transform:uppercase;
    white-space:nowrap;
  }
}
@media (min-width:901px), (min-width:621px) and (min-height:621px), (min-width:621px) and (pointer:fine), (min-width:621px) and (orientation:portrait){
  body.desktop-home.desktop-editorial-discovery[data-cat="art"] .desktop-home__curated .shead p{
    grid-area:subtitle;
    margin:3px 0 0;
    color:rgba(255,255,255,.7)!important;
    font-size:12px!important;
  }
}
@media (min-width:901px), (min-width:621px) and (min-height:621px), (min-width:621px) and (pointer:fine), (min-width:621px) and (orientation:portrait){
  body.desktop-home.desktop-editorial-discovery[data-cat="art"] .desktop-home__curated .desktop-home__viewall{
    grid-area:link;
    color:rgba(255,255,255,.88);
  }
}
@media (min-width:901px), (min-width:621px) and (min-height:621px), (min-width:621px) and (pointer:fine), (min-width:621px) and (orientation:portrait){
  body.desktop-home.desktop-editorial-discovery[data-cat="art"] .desktop-home__curated .grid{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
    gap:13px!important;
    margin-top:0;
  }
}
@media (min-width:901px), (min-width:621px) and (min-height:621px), (min-width:621px) and (pointer:fine), (min-width:621px) and (orientation:portrait){
  body.desktop-home.desktop-editorial-discovery[data-cat="art"] .desktop-home__curated .card{
    border-radius:14px!important;
  }
}
@media (min-width:901px), (min-width:621px) and (min-height:621px), (min-width:621px) and (pointer:fine), (min-width:621px) and (orientation:portrait){

  body.desktop-home.desktop-editorial-discovery[data-cat="art"] .home-upcoming-heading{
    display:flex!important;
    align-items:baseline;
    margin:2px 0 -18px!important;
  }
}
@media (min-width:901px), (min-width:621px) and (min-height:621px), (min-width:621px) and (pointer:fine), (min-width:621px) and (orientation:portrait){
  body.desktop-home.desktop-editorial-discovery[data-cat="art"] .home-upcoming-heading strong{
    color:#fff!important;
    font-size:30px!important;
    letter-spacing:-.035em;
    text-shadow:0 2px 8px rgba(4,35,62,.24)!important;
  }
}
@media (min-width:901px), (min-width:621px) and (min-height:621px), (min-width:621px) and (pointer:fine), (min-width:621px) and (orientation:portrait){
  body.desktop-home.desktop-editorial-discovery[data-cat="art"] .home-upcoming-heading > span:not(.desktop-home__stat-line--title){display:none}
}
@media (min-width:901px), (min-width:621px) and (min-height:621px), (min-width:621px) and (pointer:fine), (min-width:621px) and (orientation:portrait){
  body.desktop-home.desktop-editorial-discovery[data-cat="art"] .home-upcoming-heading .desktop-home__viewall{
    margin-left:auto;
    color:#fff!important;
    text-shadow:0 1px 5px rgba(4,35,62,.22);
  }
}
@media (min-width:901px), (min-width:621px) and (min-height:621px), (min-width:621px) and (pointer:fine), (min-width:621px) and (orientation:portrait){
  body.desktop-home.desktop-editorial-discovery[data-cat="art"] .home-upcoming-heading .desktop-home__stat-line--title{
    margin-left:16px;
    color:rgba(255,255,255,.78)!important;
    text-shadow:0 1px 5px rgba(4,35,62,.2)!important;
  }
}
@media (min-width:901px), (min-width:621px) and (min-height:621px), (min-width:621px) and (pointer:fine), (min-width:621px) and (orientation:portrait){
  body.desktop-home.desktop-editorial-discovery[data-cat="art"] #home-onview .shead{
    display:flex!important;
    align-items:baseline!important;
    justify-content:flex-start!important;
    gap:0!important;
  }
}
@media (min-width:901px), (min-width:621px) and (min-height:621px), (min-width:621px) and (pointer:fine), (min-width:621px) and (orientation:portrait){
  body.desktop-home.desktop-editorial-discovery[data-cat="art"] #home-onview .shead h2{
    margin:0!important;
    color:#fff!important;
    font:700 30px/33px Georgia,'Times New Roman',serif!important;
    letter-spacing:-1.05px!important;
    text-shadow:0 2px 8px rgba(4,35,62,.24)!important;
  }
}
@media (min-width:901px), (min-width:621px) and (min-height:621px), (min-width:621px) and (pointer:fine), (min-width:621px) and (orientation:portrait){
  body.desktop-home.desktop-editorial-discovery[data-cat="art"] #home-onview .shead .desktop-home__stat-line--onview{
    margin-left:16px!important;
    color:rgba(255,255,255,.78)!important;
    font:700 11px/11px 'DM Sans',sans-serif!important;
    letter-spacing:.08em!important;
    text-shadow:0 1px 5px rgba(4,35,62,.2)!important;
  }
}
@media (min-width:901px), (min-width:621px) and (min-height:621px), (min-width:621px) and (pointer:fine), (min-width:621px) and (orientation:portrait){
  body.desktop-home.desktop-editorial-discovery[data-cat="art"] .desktop-coming-dates{
    min-width:0;
  }
}
@media (min-width:901px), (min-width:621px) and (min-height:621px), (min-width:621px) and (pointer:fine), (min-width:621px) and (orientation:portrait){
  body.desktop-home.desktop-editorial-discovery[data-cat="art"] .desktop-coming-dates__tabs{
    display:grid;
    grid-template-columns:repeat(7,minmax(0,1fr));
    gap:8px;
    margin-bottom:17px;
  }
}
@media (min-width:901px), (min-width:621px) and (min-height:621px), (min-width:621px) and (pointer:fine), (min-width:621px) and (orientation:portrait){
  body.desktop-home.desktop-editorial-discovery[data-cat="art"] .desktop-coming-dates__tab{
    min-width:0;
    padding:10px 8px 9px;
    border:1px solid rgba(255,255,255,.24);
    border-radius:14px;
    color:rgba(255,255,255,.77);
    background:rgba(4,64,113,.34);
    box-shadow:inset 0 1px 0 rgba(255,255,255,.1);
    font-family:'Quicksand',sans-serif;
    cursor:pointer;
  }
}
@media (min-width:901px), (min-width:621px) and (min-height:621px), (min-width:621px) and (pointer:fine), (min-width:621px) and (orientation:portrait){
  body.desktop-home.desktop-editorial-discovery[data-cat="art"] .desktop-coming-dates__tab:hover{
    background:rgba(4,64,113,.48);
  }
}
@media (min-width:901px), (min-width:621px) and (min-height:621px), (min-width:621px) and (pointer:fine), (min-width:621px) and (orientation:portrait){
  body.desktop-home.desktop-editorial-discovery[data-cat="art"] .desktop-coming-dates__tab.is-selected{
    color:#0b609a;
    background:rgba(255,255,255,.94);
    border-color:rgba(255,255,255,.82);
    box-shadow:0 8px 20px rgba(7,42,80,.18),inset 0 1px 0 #fff;
  }
}
@media (min-width:901px), (min-width:621px) and (min-height:621px), (min-width:621px) and (pointer:fine), (min-width:621px) and (orientation:portrait){
  body.desktop-home.desktop-editorial-discovery[data-cat="art"] .desktop-coming-dates__weekday,
  body.desktop-home.desktop-editorial-discovery[data-cat="art"] .desktop-coming-dates__count{
    display:block;
    overflow:hidden;
    white-space:nowrap;
    text-overflow:ellipsis;
  }
}
@media (min-width:901px), (min-width:621px) and (min-height:621px), (min-width:621px) and (pointer:fine), (min-width:621px) and (orientation:portrait){
  body.desktop-home.desktop-editorial-discovery[data-cat="art"] .desktop-coming-dates__weekday{
    font-size:10px;
    font-weight:700;
    letter-spacing:.06em;
    text-transform:uppercase;
  }
}
@media (min-width:901px), (min-width:621px) and (min-height:621px), (min-width:621px) and (pointer:fine), (min-width:621px) and (orientation:portrait){
  body.desktop-home.desktop-editorial-discovery[data-cat="art"] .desktop-coming-dates__tab strong{
    display:block;
    margin:2px 0;
    font-size:22px;
    line-height:1;
  }
}
@media (min-width:901px), (min-width:621px) and (min-height:621px), (min-width:621px) and (pointer:fine), (min-width:621px) and (orientation:portrait){
  body.desktop-home.desktop-editorial-discovery[data-cat="art"] .desktop-coming-dates__count{
    font-size:9px;
    opacity:.76;
  }
}
@media (min-width:901px), (min-width:621px) and (min-height:621px), (min-width:621px) and (pointer:fine), (min-width:621px) and (orientation:portrait){
  body.desktop-home.desktop-editorial-discovery[data-cat="art"] .desktop-coming-dates__cards{
    display:grid;
    grid-template-columns:repeat(4,minmax(0,1fr));
    gap:16px;
  }
}
@media (min-width:901px), (min-width:621px) and (min-height:621px), (min-width:621px) and (pointer:fine), (min-width:621px) and (orientation:portrait){
  body.desktop-home.desktop-editorial-discovery[data-cat="art"] .desktop-coming-dates__cards .card--mini{
    position:relative;
    min-height:210px;
    overflow:hidden;
    border-radius:16px;
    background:linear-gradient(150deg,var(--blue),#03426f);
    box-shadow:0 10px 24px rgba(7,42,80,.2);
    filter:none;
  }
}
@media (min-width:901px), (min-width:621px) and (min-height:621px), (min-width:621px) and (pointer:fine), (min-width:621px) and (orientation:portrait){
  body.desktop-home.desktop-editorial-discovery[data-cat="art"] .desktop-coming-dates__cards .card--mini .mini__media{
    position:absolute;
    inset:0;
    height:100%;
    aspect-ratio:auto;
    border-radius:0;
    filter:none;
  }
}
@media (min-width:901px), (min-width:621px) and (min-height:621px), (min-width:621px) and (pointer:fine), (min-width:621px) and (orientation:portrait){
  body.desktop-home.desktop-editorial-discovery[data-cat="art"] .desktop-coming-dates__cards .card--mini .mini__media::after{
    content:"";
    position:absolute;
    inset:0;
    z-index:1;
    background:linear-gradient(180deg,rgba(4,18,31,.02) 25%,rgba(3,18,32,.88) 100%);
  }
}
@media (min-width:901px), (min-width:621px) and (min-height:621px), (min-width:621px) and (pointer:fine), (min-width:621px) and (orientation:portrait){
  body.desktop-home.desktop-editorial-discovery[data-cat="art"] .desktop-coming-dates__cards .card--mini .mini__txt{
    position:absolute;
    left:0;
    right:0;
    bottom:0;
    z-index:2;
    padding:42px 13px 13px;
  }
}
@media (min-width:901px), (min-width:621px) and (min-height:621px), (min-width:621px) and (pointer:fine), (min-width:621px) and (orientation:portrait){
  body.desktop-home.desktop-editorial-discovery[data-cat="art"] .desktop-coming-dates__cards .card--mini .card__title{
    color:#fff!important;
    font-size:16px;
    text-shadow:0 2px 7px rgba(0,0,0,.52)!important;
  }
}
@media (min-width:901px), (min-width:621px) and (min-height:621px), (min-width:621px) and (pointer:fine), (min-width:621px) and (orientation:portrait){
  body.desktop-home.desktop-editorial-discovery[data-cat="art"] .desktop-coming-dates__cards .card--mini .card__date,
  body.desktop-home.desktop-editorial-discovery[data-cat="art"] .desktop-coming-dates__cards .card--mini .card__venue,
  body.desktop-home.desktop-editorial-discovery[data-cat="art"] .desktop-coming-dates__cards .card--mini .card__addr,
  body.desktop-home.desktop-editorial-discovery[data-cat="art"] .desktop-coming-dates__cards .card--mini .card__hours{
    color:rgba(255,255,255,.84)!important;
    text-shadow:0 1px 4px rgba(0,0,0,.52)!important;
  }
}
@media (min-width:901px), (min-width:621px) and (min-height:621px), (min-width:621px) and (pointer:fine), (min-width:621px) and (orientation:portrait){
  body.desktop-home.desktop-editorial-discovery[data-cat="art"] .desktop-coming-dates__empty{
    margin:0;
    padding:22px;
    border:1px dashed rgba(255,255,255,.35);
    border-radius:14px;
    color:rgba(255,255,255,.78);
    text-align:center;
  }
}
@media (min-width:901px), (min-width:621px) and (min-height:621px), (min-width:621px) and (pointer:fine), (min-width:621px) and (orientation:portrait){
  body.desktop-home.desktop-editorial-discovery[data-cat="art"] .desktop-coming-dates__more{
    appearance:none;
    -webkit-appearance:none;
    display:flex;
    align-items:center;
    justify-content:center;
    min-height:210px;
    padding:20px;
    border:1px solid rgba(255,255,255,.24);
    border-radius:16px;
    color:#fff;
    background:rgba(4,64,113,.35);
    font:700 12px/1.4 'Quicksand',sans-serif;
    text-align:center;
    text-decoration:none;
    text-transform:uppercase;
    cursor:pointer;
  }
}

*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth}
body{font-family:'DM Sans',Georgia,serif;color:var(--ink);background:var(--bg);font-size:18px;line-height:1.62;-webkit-font-smoothing:antialiased}
.wrap{max-width:1120px;margin:0 auto;padding:0 30px}
a{color:inherit;text-decoration:none}
.blue-word{color:var(--blue);font-weight:600}
.hidden{display:none}

/* ---------- HEADER ---------- */
.site-header{background:#0070c0;padding:0;border-bottom:1px solid var(--rule-soft);margin-bottom:104px;overflow:visible}
.site-header__in{height:56px}
.logo{position:relative;top:46px;z-index:5}   /* 46px keeps the beta tag (top:-7px) inside the field on desktop (owner Jul 16) */
.logo img{border-radius:14px;box-shadow:0 10px 28px rgba(7,42,80,.35),0 2px 8px rgba(7,42,80,.22)}
.site-header__in{display:flex;align-items:center;justify-content:space-between;flex-wrap:nowrap;gap:14px}
.logo{width:120px;height:120px;display:block;overflow:visible;line-height:0;flex:0 0 auto}
.logo img{width:100%;height:100%;object-fit:cover;display:block}
.logo__main,.logo__sub{display:none}
.topnav{display:flex;flex-wrap:wrap;align-items:center;justify-content:flex-end;gap:6px 20px;
        flex:0 1 auto;min-width:0}
.topnav a{font-family:'DM Sans',serif;font-weight:500;font-size:17px;line-height:1;
          letter-spacing:.01em;text-transform:lowercase;color:#fff;
          padding:16px 16px 15px;white-space:nowrap;transition:background .15s}
.topnav a:hover,.topnav a:focus-visible{opacity:.75}
.nav-toggle{display:none}
.cityswitch{position:relative;z-index:80;flex:0 0 auto;font-family:'Quicksand',sans-serif}
.cityswitch__btn{display:flex;align-items:center;gap:7px;border:1px solid rgba(255,255,255,.42);
  border-radius:999px;background:rgba(255,255,255,.15);color:#fff;padding:7px 12px;
  font:700 12.5px/1 'Quicksand',sans-serif;letter-spacing:.01em;cursor:pointer;white-space:nowrap}
.cityswitch__btn:hover,.cityswitch__btn:focus-visible{background:rgba(255,255,255,.25)}
.cityswitch__caret{font-size:14px;line-height:.7;transform:translateY(-1px)}
.cityswitch__menu{position:absolute;top:calc(100% + 7px);left:50%;transform:translateX(-50%);
  min-width:158px;padding:0;display:flex;flex-direction:column;gap:6px;
  background:none;border:none;border-radius:0;box-shadow:none}
.cityswitch__menu[hidden]{display:none}
.cityswitch__opt{display:block;border:1px solid rgba(255,255,255,.5);border-radius:999px;
  padding:9px 11px;color:#fff;background:rgba(0,112,192,.94);
  font:700 12.5px/1.2 'Quicksand',sans-serif;white-space:nowrap;text-align:center;
  box-shadow:0 4px 14px rgba(43,38,31,.3);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px)}
.cityswitch__opt:hover,.cityswitch__opt:focus-visible,.cityswitch__opt.is-on{background:#0070c0;color:#fff;border-color:#fff}
.cityswitch--floating{position:fixed;top:12px;right:18px}
.cityswitch__context{display:none}
body.cityswitch-ready .sd-label,body.cityswitch-ready .mapcity{display:none!important}
@media(max-width:620px), (orientation: landscape) and (max-height:620px) and (pointer:coarse){
  .site-header__in{gap:10px;justify-content:flex-start;position:relative}
  /* mobile: drop the blue header BAR entirely -- only the floating rounded logo remains */
  .site-header{margin-bottom:56px;background:transparent;border-bottom:none}
  .site-header__in{height:46px}
  /* 7% smaller than the previous 90px mobile tile, with the square proportion preserved. */
  .logo{width:83.7px;height:83.7px;top:24px;border-radius:11px}
  /* hamburger button removed on mobile (owner, Jul 2026) -- the bottom bar (Home/See now/Plan/Map) is
     the mobile nav now; the dropdown menu it toggled stays hidden since nothing can open it. */
  .nav-toggle{display:none}
  .nav-toggle span{position:relative;display:block;width:24px;height:2px;background:#fff;border-radius:2px;transition:background .15s}
  .nav-toggle span::before,.nav-toggle span::after{content:'';position:absolute;left:0;width:24px;height:2px;background:#fff;border-radius:2px;transition:transform .15s,top .15s}
  .nav-toggle span::before{top:-7px}
  .nav-toggle span::after{top:7px}
  /* menu collapses into a dropdown, revealed when the button is tapped */
  .topnav{display:none;position:absolute;top:calc(100% + 10px);right:0;z-index:60;
          flex-direction:column;flex-wrap:nowrap;align-items:stretch;gap:0;padding:0;
          background:#0070c0;border-radius:10px;min-width:172px;box-shadow:0 12px 30px rgba(0,0,0,.22)}
  .site-header__in.nav-open .topnav{display:flex}
  .topnav a{font-size:16px;letter-spacing:.01em;padding:14px 20px;border-bottom:1px solid rgba(255,255,255,.16)}
  .topnav a:last-child{border-bottom:none}
  /* Option 3 mobile hierarchy: the logo and Search/Contact retain the top row; the city
     becomes readable page context below that row and scrolls away with the page. */
  .cityswitch,.cityswitch--floating{position:absolute;top:calc(111px + env(safe-area-inset-top));left:14px;right:14px;
    transform:none;z-index:1140;display:flex;align-items:center;justify-content:center;gap:12px}
  .cityswitch__context{display:block;font:600 18px/1.1 'DM Sans',serif;color:#fff;
    text-shadow:0 1px 3px rgba(7,42,80,.65),0 3px 12px rgba(7,42,80,.5);white-space:nowrap}
  .cityswitch__btn{min-width:154px;justify-content:space-between;padding:8px 12px;
    background:rgba(0,112,192,.78);border-color:rgba(255,255,255,.38);
    font-size:14px;box-shadow:0 3px 12px rgba(7,42,80,.28);
    backdrop-filter:blur(14px) saturate(1.35);-webkit-backdrop-filter:blur(14px) saturate(1.35)}
  .cityswitch__menu{top:calc(100% + 5px);left:calc(50% - 35px);right:auto;transform:none;min-width:154px;
    background:none;border:none;box-shadow:none;backdrop-filter:none;-webkit-backdrop-filter:none}
  /* bars morph into an X when open */
  .site-header__in.nav-open .nav-toggle span{background:transparent}
  .site-header__in.nav-open .nav-toggle span::before{top:0;transform:rotate(45deg)}
  .site-header__in.nav-open .nav-toggle span::after{top:0;transform:rotate(-45deg)}
}

/* Keep the three guide tables on the same painted color.  The mobile value is the
   opaque equivalent of See Later's translucent-blue panel over the standard blue
   canvas, so it remains identical on the website and in the native WebView. */
@media(max-width:620px), (orientation: landscape) and (max-height:620px) and (pointer:coarse){
  :root{--guide-table-bg:#1a7dca}
}

#plan-form.plan-form,
body.opennow .on-filter-form,
.journal-summary{background:var(--guide-table-bg)!important}
@media(max-width:620px), (orientation: landscape) and (max-height:620px) and (pointer:coarse){
  body.savedpage .saved-summary{background:var(--guide-table-bg)!important;padding:8px}
  body.savedpage .saved-summary strong{font-size:23px;margin-bottom:0}
  body.savedpage .saved-summary span{display:block;margin-top:5px}
}

/* ---------- PAGE HERO / INTRO ---------- */
.page-hero .page-hero__dates{font-family:'DM Sans',cursive;font-weight:600;font-size:30px;line-height:1.2;color:var(--blue);opacity:1;margin-top:6px}
.page-hero{text-align:center;padding:18px 0 6px;max-width:780px;margin:0 auto}
.page-hero h1{font-weight:600;font-size:clamp(34px,5.5vw,56px);line-height:1.04;color:var(--ink-strong)}
.page-hero h1.h1-home{font-size:clamp(30px,4.6vw,46px);text-wrap:balance}
.page-hero p{font-size:18px;margin-top:14px;opacity:.9}

/* ---------- SECTION HEAD ---------- */
.shead{text-align:center;margin:64px 0 32px}
.tag-blue{display:inline-block;background:var(--blue);color:#fff;font-weight:600;letter-spacing:.1em;text-transform:uppercase;font-size:13px;padding:7px 15px;margin-bottom:18px;border-radius:999px}
.tag--closing{background:var(--c-close)}
.shead h2{font-weight:600;font-size:clamp(26px,4vw,38px);line-height:1.08;color:var(--ink-strong)}
.shead p{font-family:'DM Sans',cursive;font-size:24px;opacity:.8;margin-top:6px}

/* ---------- HERO STANDOUT ---------- */
.hero{position:relative;overflow:hidden;min-height:440px;display:flex;align-items:center;justify-content:center;text-align:center;background:linear-gradient(150deg,#5a3a2e,#3f2a25 45%,#6b4632)}
.hero::before{content:"";position:absolute;inset:0;background:radial-gradient(60% 80% at 50% 35%,rgba(220,210,190,.22),transparent 70%)}
.hero__photo{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:0}
.hero__scrim{position:absolute;inset:0;z-index:1;background:linear-gradient(150deg,rgba(48,30,24,.74),rgba(34,24,21,.55) 45%,rgba(58,36,24,.74))}
.hero__in{position:relative;z-index:2;color:#fff;padding:48px 30px;max-width:660px}
.hero__in h3{font-weight:600;font-size:clamp(28px,4.4vw,40px);line-height:1.12;text-shadow:0 2px 18px rgba(0,0,0,.4)}
.hero__meta{font-size:18px;margin-top:14px;text-shadow:0 2px 12px rgba(0,0,0,.5)}
.hero__cat{font-style:italic;font-size:18px;margin-top:14px;opacity:.95;text-shadow:0 2px 12px rgba(0,0,0,.5)}
.pill{display:inline-block;margin-top:26px;background:var(--blue);color:#fff;border-radius:999px;padding:14px 34px;font-weight:600;font-size:17px;transition:background .2s,transform .2s}
.pill:hover{background:var(--blue-dark);transform:translateY(-2px)}
.note{text-align:center;font-style:italic;font-size:14px;color:#9a948a;margin-top:10px}

/* ---------- CARD (image-first tile, v145) ---------- */
/* The photo IS the card: a rounded image tile with the kicker badge floating top-left and a
   gradient caption (date / title / venue) overlaid at the bottom. Image leads, text is secondary. */
.grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;margin-top:18px}
.card{position:relative;display:block;border-radius:16px;overflow:hidden;isolation:isolate;
  text-decoration:none;background:var(--blue);box-shadow:none;filter:var(--tile-drop-shadow);
  transition:transform .18s ease,filter .18s ease}
.card[hidden],.openings-sec[hidden]{display:none!important}
.card:hover{transform:translateY(-2px);filter:var(--tile-drop-shadow-hover)}
.card__panel{position:relative;display:block;aspect-ratio:4/3;padding:0;overflow:hidden}
.card__panel.is-blue{background:linear-gradient(150deg,var(--blue),#03426f)}
.card__photo{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:0}
/* readability scrim -- dark at the bottom where the caption sits, clear at the top */
.card__panel::after{content:"";position:absolute;inset:0;z-index:1;pointer-events:none;
  background:linear-gradient(to top,rgba(14,11,8,.86) 0%,rgba(14,11,8,.44) 32%,rgba(14,11,8,0) 58%)}
.card__kick{position:absolute;top:11px;left:11px;z-index:3;font-family:'Quicksand',sans-serif;
  font-weight:700;font-size:11px;letter-spacing:.04em;text-transform:uppercase;color:#fff;
  background:var(--blue);padding:4px 10px;border-radius:999px;line-height:1.1;white-space:nowrap;
  box-shadow:0 2px 7px rgba(0,0,0,.3)}
.card__kicks{position:absolute;top:11px;left:11px;z-index:3;display:flex;flex-wrap:wrap;gap:5px;max-width:calc(100% - 22px)}
.card__kicks .card__kick{position:static;display:inline-block}
.kick--opening{background:var(--c-open)}
.kick--reception{background:var(--c-recep)}
.kick--free_day{background:var(--c-free)}
.kick--closing{background:var(--c-close)}
.kick--art_walk{background:var(--c-walk)}
.kick--talk{background:var(--c-talk)}
.kick--market{background:var(--c-market)}
.kick--exhibition{background:rgba(20,16,12,.66)}
.kick--theater{background:#c0398b}
.kick--theater-now{background:#16a34a}   /* Now Playing chips are green (owner, Jul 14) */
.kick--drag{background:#c0398b}
.kick--comedy{background:#0d9488}
.kick--comedy-openmic{background:#7c3aed;color:#fff}
.card__panel.is-blue .card__kick.kick--theater-now{background:#16a34a;color:#fff}
.card__panel.is-blue .card__kick.kick--theater{background:#c0398b;color:#fff}   /* theater badge keeps its colour even on the image-less blue tile */
/* Image-less theater tiles get a stage-lit plum gradient (not the art blue), so the Theater view
   reads as its own thing even where a show has no photo. */
.card--theater .card__panel.is-blue{background:radial-gradient(120% 90% at 80% 0%,#a23a72 0%,#5c1f47 45%,#2c1024 100%)}
.card__cap{position:absolute;left:0;right:0;bottom:0;z-index:2;padding:12px 14px 13px}
.card__date{display:block;font-family:'Quicksand',sans-serif;font-weight:700;font-size:12px;
  letter-spacing:.03em;color:rgba(255,255,255,.94);margin-bottom:2px;text-shadow:0 1px 3px rgba(0,0,0,.6)}
.card__title{font-family:'DM Sans',serif;font-weight:600;font-size:19px;line-height:1.22;color:#fff;
  text-shadow:0 1px 5px rgba(0,0,0,.6);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.card__title em{font-style:italic}
.card__addr{font-family:'Quicksand',sans-serif;font-weight:500;font-size:11px;color:rgba(255,255,255,.72);
  margin-top:1px}
.card--theater .card__addr{line-height:1.28;text-shadow:0 1px 3px rgba(0,0,0,.55);
  display:-webkit-box;-webkit-line-clamp:1;-webkit-box-orient:vertical;overflow:hidden}
.card--theater .card__hours{color:rgba(255,255,255,.86);display:block;overflow:visible}
.card--theater .card__showtimes{color:rgba(255,255,255,.9);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.card__venue{font-family:'Quicksand',sans-serif;font-weight:500;font-size:12.5px;color:rgba(255,255,255,.9);
  margin-top:4px;line-height:1.35;text-shadow:0 1px 3px rgba(0,0,0,.55);
  display:-webkit-box;-webkit-line-clamp:1;-webkit-box-orient:vertical;overflow:hidden}
.card__more{margin-top:auto;padding-top:10px;color:var(--blue);font-weight:600;font-size:15px}
.card__more::after{content:" \2192"}

/* ---------- DAY BY DAY (four-column grid) ---------- */
.daygrid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-top:6px}
@media(max-width:1000px){.daygrid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:560px){.daygrid{grid-template-columns:1fr}}
.dayblock{display:flex;flex-direction:column;border:1px solid var(--rule-soft);border-radius:10px;overflow:hidden;background:var(--bg)}
.dayblock__date{display:flex;align-items:baseline;flex-wrap:wrap;gap:4px 8px;padding:10px 14px;background:var(--blue-tint);border-bottom:1px solid var(--rule-soft)}
.dd{font-family:'Quicksand',sans-serif;font-weight:700;font-size:26px;line-height:1;color:var(--ink-strong)}
.dw{font-style:italic;font-size:14px;opacity:.8}
.dn{font-family:'DM Sans',cursive;font-size:18px;color:var(--blue);line-height:1;flex:1 1 100%}
.dayblock__items{display:flex;flex-direction:column}
.row{display:flex;flex-wrap:wrap;align-items:center;gap:4px 10px;padding:10px 14px;border-bottom:1px solid var(--rule-soft)}
.row__sq{flex:0 0 auto;width:44px;height:44px;border-radius:5px;overflow:hidden;position:relative;background:var(--blue)}
.row__img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;display:block}
.row:last-child{border-bottom:none}
.row:hover{background:#faf8f3}
.row__title{font-weight:600;font-size:15px;flex:1 1 120px;color:var(--ink-strong);line-height:1.25}
.row__title em{font-style:italic;font-weight:500}
.flag{font-style:italic;font-weight:600;font-size:13px;color:var(--blue);margin-left:6px}
.flag.final{color:var(--brick)}
.row__venue{font-size:13px;opacity:.8;flex:1 1 auto}
.row__code{font-family:'Quicksand',sans-serif;font-weight:600;font-size:11px;letter-spacing:.06em;background:var(--panel);padding:2px 7px;color:var(--brown)}
.row__time{font-style:italic;font-size:13px;flex:0 0 auto}
.row__more{font-size:13px;color:var(--blue);font-weight:600}
.row__more::after{content:" \2197"}
.quiet{padding:20px 0 20px 24px;font-style:italic;opacity:.85;border-left:1px solid var(--rule-soft);font-size:16px}

/* ---------- ONGOING ---------- */
.areas{display:grid;grid-template-columns:repeat(3,1fr);gap:30px 34px}
.area h3{font-weight:600;font-size:20px;color:var(--ink-strong);border-bottom:2px solid var(--blue);padding-bottom:8px;margin-bottom:12px;display:flex;justify-content:space-between;align-items:baseline}
.area h3 .c{font-family:'Quicksand',sans-serif;font-weight:600;font-size:13px;letter-spacing:.06em;color:var(--blue)}
.area ul{list-style:none}
.area li{font-size:15px;opacity:.9;line-height:1.5;padding:8px 0;border-bottom:1px solid var(--rule-soft)}
.area li:last-child{border-bottom:none}
.area li b{font-weight:600;color:var(--ink-strong)}
.area li em{font-style:italic}

/* ---------- NOTES ---------- */
.notewrap{display:grid;grid-template-columns:1fr 1fr;gap:24px;margin-top:8px}
.notecol{padding:30px 32px}
.notecol.grey{background:var(--panel)}
.notecol.dark{background:var(--brown);color:#efe9df}
.notecol h3{font-weight:600;font-size:24px;margin-bottom:16px;color:var(--ink-strong)}
.notecol.dark h3{color:#fff}
.notecol ul{list-style:none}
.notecol li{position:relative;padding:9px 0 9px 24px;font-size:16px;line-height:1.5}
.notecol li::before{content:"\2014";position:absolute;left:0;font-weight:600;color:var(--blue)}
.notecol.dark li::before{content:"!";color:#e8a07f;font-weight:700}
.notecol li b{font-weight:600}
.notecol.dark li{color:#ded7cc}
.notecol.dark li b{color:#fff}

/* ---------- EVENT DETAIL ---------- */
.detail{max-width:900px;margin:8px auto 0}
.detail__media{min-height:380px;display:flex;align-items:flex-end;background:linear-gradient(150deg,#5a3a2e,#3f2a25 50%,#6b4632);position:relative}
.detail__media::before{content:"";position:absolute;inset:0;background:radial-gradient(70% 90% at 50% 30%,rgba(225,215,195,.20),transparent 70%)}
.detail__head{background:var(--panel);padding:40px 44px}
.detail__title{font-weight:600;font-size:clamp(30px,5vw,46px);line-height:1.08;color:var(--ink-strong)}
.detail__title em{font-style:italic}
.detail__meta{font-size:19px;margin-top:14px}
.detail__cat{font-style:italic;font-size:18px;margin-top:14px;opacity:.85}
.detail__body{padding:34px 4px 0;font-size:18px}
.detail__body p{margin-bottom:18px}
.share{margin-top:26px;padding-top:22px;border-top:1px solid var(--rule-soft)}
.share__label{font-weight:600;font-size:20px;color:var(--ink-strong);margin-bottom:14px}
.share__row{display:flex;gap:24px}
.share__row a{font-family:'Quicksand',sans-serif;font-weight:700;font-size:20px;color:var(--brown)}
.share__row a:hover{color:var(--blue)}
.detail__map{margin-top:30px;height:240px;border:1px solid var(--rule-soft);background:
  repeating-linear-gradient(0deg,#f0eee9,#f0eee9 22px,#e8e5de 23px),
  repeating-linear-gradient(90deg,#f4f2ed,#f4f2ed 22px,#ece9e2 23px);
  display:flex;align-items:center;justify-content:center;flex-direction:column;gap:8px;color:var(--ink);position:relative}
.detail__map .pin{width:24px;height:24px;background:var(--brick);border-radius:50% 50% 50% 0;transform:rotate(-45deg)}
.detail__map .loc{font-style:italic;font-size:16px}

/* ---------- STANDOUTS (BLOG) ---------- */
.lead-note{max-width:760px;margin:6px auto 0;text-align:center;font-size:20px;line-height:1.5}
.posts{max-width:760px;margin:46px auto 0;display:flex;flex-direction:column;gap:52px}
.post__date{font-family:'Quicksand',sans-serif;font-weight:600;letter-spacing:.04em;color:var(--blue);font-size:15px;margin-bottom:10px}
.post__img{aspect-ratio:16/10;background:linear-gradient(135deg,#b06a45,#7d4a39 55%,#caa06f);margin-bottom:18px}
.post__img.alt{background:linear-gradient(135deg,#3f566b,#2b3d4d 60%,#6a8398)}
.post__title{font-weight:600;font-size:28px;line-height:1.14;color:var(--ink-strong);margin-bottom:12px}
.post__title em{font-style:italic}
.post__body{font-size:17.5px}
.post__body p{margin-bottom:14px}
.post__foot{margin-top:16px;display:flex;align-items:center;gap:14px}
.post__tag{display:inline-block;background:var(--blue);color:#fff;font-weight:600;letter-spacing:.08em;text-transform:uppercase;font-size:12px;padding:5px 12px}
.post__by{font-style:italic;opacity:.8;font-size:15px}

/* ---------- PROSE (about / privacy) ---------- */
.prose{max-width:720px;margin:34px auto 0;font-size:18px}
.prose p{margin-bottom:18px}
.prose h2{font-weight:600;font-size:26px;color:var(--ink-strong);margin:30px 0 12px}
.prose a{color:var(--blue);font-weight:600}
.prose .role{font-style:italic;opacity:.85}

/* ---------- CONTACT ---------- */
.contact-grid{max-width:980px;margin:34px auto 0;display:grid;grid-template-columns:1fr 1fr;gap:48px}
.contact-info{font-size:16.5px}
.contact-info p{margin-bottom:16px}
.contact-info a{color:var(--blue);font-weight:600}
.form{display:flex;flex-direction:column;gap:16px}
.form h3{font-weight:600;font-size:22px;color:var(--ink-strong)}
.field{display:flex;flex-direction:column;gap:6px}
.field label{font-size:14px;font-weight:600;letter-spacing:.02em}
.field input,.field textarea{font-family:'DM Sans',serif;font-size:16px;padding:11px 13px;border:1px solid var(--rule-soft);background:#fff;color:var(--ink)}
.field input:focus,.field textarea:focus{outline:none;border-color:var(--blue)}
.btn{align-self:flex-start;background:var(--blue);color:#fff;border:none;border-radius:999px;padding:13px 32px;font-family:'DM Sans',serif;font-weight:600;font-size:16px;cursor:pointer;transition:background .2s,transform .2s}
.btn:hover{background:var(--blue-dark);transform:translateY(-2px)}
.newsletter{max-width:980px;margin:42px auto 0;background:var(--panel);padding:28px 32px}
.newsletter h3{font-weight:600;font-size:22px;color:var(--ink-strong);margin-bottom:6px}
.newsletter .row2{display:flex;gap:12px;flex-wrap:wrap;margin-top:14px}
.newsletter input{flex:1 1 240px;font-family:'DM Sans',serif;font-size:16px;padding:11px 13px;border:1px solid var(--rule-soft);background:#fff}

/* ---------- FOOTER ---------- */
.site-footer{margin-top:72px;background:#0070c0;padding:14px 0}
.site-footer .wrap{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:8px 20px}
.mission{font-weight:500;font-size:clamp(22px,3.4vw,30px);line-height:1.3;max-width:720px;margin:0 auto;color:var(--ink-strong)}
.mission em{font-style:italic;color:var(--blue)}
.footlinks{display:flex;flex-flow:row wrap;align-items:center;gap:8px 22px}
.footlinks a{font-family:'DM Sans',serif;font-weight:500;font-size:17px;line-height:1;letter-spacing:.01em;text-transform:lowercase;color:#fff}
.footlinks a:hover{opacity:.8}
@media(max-width:560px){.site-footer .wrap{justify-content:center;text-align:center}}
.copy{margin:0;font-size:13.5px;letter-spacing:.04em;color:#fff;opacity:.9}

/* ---------- TO TOP ---------- */
.totop{position:fixed;right:22px;bottom:22px;width:54px;height:54px;border-radius:50%;background:var(--brown-dark);color:#fff;display:flex;align-items:center;justify-content:center;font-size:24px;z-index:60;box-shadow:0 6px 18px -6px rgba(0,0,0,.5);transition:transform .2s,opacity .25s;opacity:0;pointer-events:none}
.totop.show{opacity:1;pointer-events:auto}
.totop:hover{transform:translateY(-3px)}

/* ---------- RESPONSIVE ---------- */
@media(max-width:900px){
  .grid{grid-template-columns:repeat(2,1fr)}
  .areas{grid-template-columns:1fr 1fr}
  .contact-grid{grid-template-columns:1fr;gap:32px}
}
@media(max-width:620px), (orientation: landscape) and (max-height:620px) and (pointer:coarse){
  .wrap{padding:0 18px}
  body{font-size:17px}
  /* Featured / On View grids become a 2-col image gallery on mobile (streamlined browse), while
     the weekly columns stay full-width single tiles. Smaller caption type for the tighter cards. */
  .grid{grid-template-columns:1fr 1fr;gap:12px}
  .grid .card__title{font-size:15px;line-height:1.22}
  .grid .card__venue{font-size:11px}
  .grid .card__kick{font-size:9.5px;padding:3px 8px;top:8px;left:8px}
  .grid .card__kicks{top:8px;left:8px;max-width:calc(100% - 16px);gap:3px}
  .grid .card__cap{padding:9px 10px 10px}
  .grid .card__date{font-size:10.5px}
  .areas{grid-template-columns:1fr}
  .notewrap{grid-template-columns:1fr}
  .quiet,.mcard{padding-left:0}
  .quiet{border-left:none}
  .menu a{font-size:26px}
  .detail__head{padding:28px 24px}
}

/* (Image-first card styles live in the CARD block above, v145 -- the old colored-panel/overlay
   rules that were here are superseded.) */


/* Calendar: featured mini-cards + routine row dots */
.mcard{display:flex;align-items:center;gap:14px;padding:12px 0 12px 24px;border-bottom:1px solid var(--rule-soft);text-decoration:none;color:inherit}
.mcard:last-child{border-bottom:none}
.mcard:hover{background:#faf8f3}
.mcard__thumb{flex:0 0 auto;width:84px;height:84px;border-radius:6px;overflow:hidden;position:relative;background:var(--blue)}
.mcard__img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.mcard__main{flex:1 1 auto;display:flex;flex-direction:column;gap:3px;min-width:0}
.mcard__main .card__kick{position:static;align-self:flex-start;font-size:11px;padding:2px 8px}
.mcard__title{font-weight:600;font-size:18px;line-height:1.24;color:var(--ink-strong)}
.mcard__venue{font-size:14px;opacity:.8;line-height:1.35}
.mcard__when{flex:0 0 auto;font-style:italic;font-size:14px;color:var(--ink);white-space:nowrap;padding-left:6px}
.thumb--opening{background:var(--c-open)}
.thumb--reception{background:var(--c-recep)}
.thumb--closing{background:var(--c-close)}
.thumb--art_walk{background:var(--c-walk)}
.thumb--talk{background:var(--c-talk)}
.thumb--market{background:var(--c-market)}
.thumb--exhibition{background:#6b6258}
.thumb--free_day{background:var(--c-free)}
.dot{display:inline-block;width:9px;height:9px;border-radius:50%;margin-right:9px;vertical-align:middle;background:var(--blue)}
.dot--opening{background:var(--c-open)}
.dot--reception{background:var(--c-recep)}
.dot--closing{background:var(--c-close)}
.dot--art_walk{background:var(--c-walk)}
.dot--talk{background:var(--c-talk)}
.dot--market{background:var(--c-market)}
.dot--exhibition{background:#6b6258}

/* Press / Writings reading list */
.page-hero .updated{font-family:'Quicksand',sans-serif;font-size:13px;color:#9a948a;margin-top:6px}
.wintro{font-size:15px;color:#6b6258;background:#f6f4ef;border:1px solid var(--rule-soft);padding:12px 16px;border-radius:8px;margin:0 0 8px;line-height:1.5}
.wintro a{color:var(--blue);font-weight:600}
.wmonth{margin:0}
.wmonth > h2{font-family:'DM Sans',serif;font-weight:600;font-size:23px;color:var(--ink-strong);border-bottom:2px solid var(--rule);padding-bottom:8px;margin:38px 0 2px}
.wlist__item{padding:18px 0;border-bottom:1px solid var(--rule-soft)}
.wlist__item:last-child{border-bottom:none}
.wlist__meta{font-family:'Quicksand',sans-serif;font-size:12.5px;color:#8a8278;display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:5px}
.wlist__outlet{font-weight:600;color:var(--brown)}
.dotsep{color:#cfc8ba}
.wlist__title{font-size:20px;line-height:1.25;margin:0 0 5px}
.wlist__title a{color:var(--ink-strong);text-decoration:none;border-bottom:1px solid transparent;transition:color .15s,border-color .15s}
.wlist__title a:hover{color:var(--blue);border-bottom-color:var(--blue)}
.wlist__title a::after{content:" \2197";font-size:.78em;color:var(--blue);opacity:.65}
.wlist__sum{font-size:16px;line-height:1.5;margin:0;color:var(--ink)}
.wlist__venue{color:#8a8278;font-style:italic}
.wlist__by{font-family:'Quicksand',sans-serif;font-size:12.5px;color:#9a948a;margin:4px 0 0}
.wtag{font-family:'Quicksand',sans-serif;font-weight:600;font-size:11px;letter-spacing:.04em;text-transform:uppercase;color:#fff;background:#6b6258;padding:2px 8px;border-radius:999px;white-space:nowrap}
.wtag--review{background:var(--brick)}
.wtag--profile,.wtag--interview{background:var(--blue)}
.wtag--news{background:#b9802b}
.wtag--essay{background:#7b4fb0}
.wtag--preview,.wtag--feature{background:#2b8a86}
.wtag--institutional{background:#6b6258}

/* City-specific original essays: a large, image-led editorial tile in the mobile
   calendar stream, with a quieter editorial treatment than event rails. */
.essay-feature{margin-top:var(--secgap,24px)}
.essay-feature__head{display:flex;align-items:center;gap:12px;justify-content:center;margin-bottom:12px}
.essay-feature__head h2{font-family:'DM Sans',serif;font-weight:600;font-size:22px;color:var(--ink-strong);margin:0}
.essay-feature__heading p{display:none}
.essay-feature__kicker,.essay-feature__read,.essay-feature__all,.essay-feature__meta,.essay-feature__summary{display:none}
.essay-feature__grid{display:block}
.essay-feature__story{min-width:0}
.tag--essay{background:#7b4fb0}
.essay-tile{position:relative;display:block;max-width:930px;margin:0 auto;aspect-ratio:16/7;overflow:hidden;border-radius:14px;background:#332346;color:#fff;box-shadow:0 10px 25px rgba(7,42,80,.18)}
.essay-tile img{width:100%;height:100%;display:block;object-fit:cover}
.essay-tile__shade{position:absolute;inset:0;background:linear-gradient(90deg,rgba(20,10,35,.78) 0%,rgba(20,10,35,.35) 52%,rgba(20,10,35,.08) 100%)}
.essay-tile__copy{position:absolute;left:clamp(20px,5vw,56px);bottom:clamp(18px,4vw,42px);display:flex;flex-direction:column;align-items:flex-start;max-width:min(560px,75%);text-shadow:0 2px 12px rgba(0,0,0,.38)}
.essay-tile__kicker{font-family:'Quicksand',sans-serif;font-weight:700;font-size:12px;letter-spacing:.08em;text-transform:uppercase;color:#f1ddff;margin-bottom:7px}
.essay-tile__copy strong{font-family:'DM Sans',serif;font-weight:700;font-size:clamp(26px,4vw,48px);line-height:1.05}
.essay-tile__by{font-family:'Quicksand',sans-serif;font-size:14px;font-weight:600;margin-top:9px}
.essay-tile__show{font-size:14px;line-height:1.35;opacity:.86;margin-top:3px}
.essay-tile:hover{filter:brightness(1.04)}
.essay-feature__story + .essay-feature__story{margin-top:28px}

@media(max-width:620px), (orientation: landscape) and (max-height:620px) and (pointer:coarse){
  body.home #home-essay:empty{display:none}
  body.home[data-cat="art"] #home-weekcols .week-col--art-today{order:0}
  /* The city review belongs to the Today stream: place it immediately below the
     Today rail, before the remaining dated event windows. */
  body.home[data-cat="art"] #home-weekcols .week-col--art-this-week{order:2}
  body.home[data-cat="art"] #home-weekcols .week-col--art-this-weekend{order:3}
  body.home[data-cat="art"] #home-weekcols .week-col--art-next-week{order:4}
  body.home[data-cat="art"] #home-weekcols .week-col--art-in-two-weeks{order:5}
  body.home > .wrap > #home-essay{order:1;margin-top:var(--secgap,24px)}
  body.home #home-essay .essay-feature{margin-top:0;padding:18px 14px 17px;background:radial-gradient(115% 90% at 0% 0%,rgba(255,255,255,.99) 0%,rgba(255,252,245,.97) 52%,rgba(232,246,253,.96) 100%);color:var(--ink-strong);border:1px solid rgba(255,255,255,.88);border-radius:22px;overflow:hidden;box-shadow:0 10px 28px rgba(9,42,65,.2),0 2px 6px rgba(9,42,65,.1),inset 0 1px 0 rgba(255,255,255,.98)}
  body.home #home-essay .essay-feature__head{justify-content:space-between;margin:0 5px 11px;gap:8px}
  body.home #home-essay .essay-feature__head h2{display:none}
  body.home #home-essay .essay-feature__heading p{display:none}
  body.home #home-essay .essay-feature__kicker{display:inline-flex;color:#0a5e9d;font-family:'Quicksand',sans-serif;font-size:11px;font-weight:800;letter-spacing:.12em;text-transform:uppercase}
  body.home #home-essay .essay-feature__read{display:inline-flex;color:#748292;font-family:'Quicksand',sans-serif;font-size:11px;font-weight:700}
  body.home #home-essay .tag--essay{display:none}
  body.home #home-essay .essay-tile{width:100%;aspect-ratio:5/4;border-radius:18px}
  body.home #home-essay .essay-feature__story + .essay-feature__story{margin-top:24px}
  body.home #home-essay .essay-tile__copy{left:20px;bottom:20px;max-width:82%}
  body.home #home-essay .essay-tile__kicker,body.home #home-essay .essay-tile__show{display:none}
  body.home #home-essay .essay-tile__copy strong{font-family:Georgia,'Times New Roman',serif;font-size:31px;letter-spacing:-.03em}
  body.home #home-essay .essay-feature__meta{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:11px 3px 0;color:#6d7d8c;font-family:'Quicksand',sans-serif;font-size:11px;font-weight:700}
  body.home #home-essay .essay-feature__meta span:first-child{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  body.home #home-essay .essay-feature__meta > :last-child{white-space:nowrap;color:#0a5e9d}
}

@media(min-width:621px){
  body.home > .wrap > #home-essay{order:2;margin-top:56px}
}

/* Category Atlas pages use the Art Atlas's directory structure with the
   theater/Drag data streams. The compact category switch is mobile-only: the
   shared desktop header supplies the same control in its command row. */
.atlas-category-switch{display:none}
.category-atlas .atlas-tools{margin:26px auto 10px}
.category-atlas .atlas-search{width:100%;box-sizing:border-box;padding:12px 16px;border:1px solid rgba(255,255,255,.58);border-radius:8px;background:rgba(255,255,255,.97);color:var(--ink);font:500 16px/normal 'Quicksand',sans-serif}
.category-atlas .atlas-chips{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin:14px 0 0}
.category-atlas .atlas-chips .chip{padding:6px 14px;border:1px solid rgba(255,255,255,.54);border-radius:999px;background:rgba(255,255,255,.12);color:#fff;font:600 13px/normal 'Quicksand',sans-serif;letter-spacing:.02em;cursor:pointer}
.category-atlas .atlas-chips .chip.is-on{border-color:#fff;background:#075f9f;color:#fff}
.category-atlas #map-section{margin:26px 0 44px;position:relative;isolation:isolate}
.category-atlas #placesmap{width:100%;height:540px;margin:0;overflow:hidden;border:1px solid rgba(255,255,255,.56);border-radius:12px;background:#e9e6df}
.category-atlas .map-note{margin:12px 0 0;color:#fff;font-size:14px;font-style:italic;text-align:center}
.category-atlas .atlas-results .area{margin:52px 0 0}
.category-atlas .area__head{display:flex;align-items:baseline;gap:10px;margin:0 0 18px;padding:0;color:#fff;font:600 26px/normal 'DM Sans',serif}
.category-atlas .area__count{padding:2px 9px;border:1px solid rgba(255,255,255,.55);border-radius:999px;background:rgba(255,255,255,.12);color:#fff;font:600 13px/1.4 'Quicksand',sans-serif}
.category-atlas .vgrid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:22px}
.category-atlas .vcard{display:flex;flex-direction:column;overflow:hidden;border:1px solid rgba(255,255,255,.4);border-radius:18px;background:rgba(0,91,162,.78);box-shadow:0 13px 30px rgba(7,42,80,.22)}
.category-atlas .vcard__media{position:relative;display:flex;align-items:center;justify-content:center;aspect-ratio:16/10;overflow:hidden;background:linear-gradient(135deg,#075f9f,#0c86c8)}
.category-atlas .vcard__photo{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}.category-atlas .vcard__mono{color:rgba(255,255,255,.92);font:700 46px/1 'Quicksand',sans-serif;letter-spacing:.04em}
.category-atlas .vcard__body{display:flex;flex:1 1 auto;flex-direction:column;gap:6px;padding:15px 17px 16px;background:rgba(0,91,162,.78)}
.category-atlas .vcard__name{margin:0;color:#fff;font:600 18.5px/1.22 'DM Sans',serif}.category-atlas .vcard__addr,.category-atlas .vcard__desc{margin:0;color:#fff;font-size:14.5px;line-height:1.4}.category-atlas .vcard__addr{opacity:.86}.category-atlas .vcard__desc{font-style:italic}
.category-atlas .vcard__foot{display:flex;align-items:center;flex-wrap:wrap;gap:6px 16px;margin-top:auto;padding-top:10px}.category-atlas .vcard__link{color:#fff;font:600 13.5px/normal 'Quicksand',sans-serif;letter-spacing:.02em}
.category-atlas .atlas-empty{margin:36px 0;color:#fff;text-align:center;font:600 16px/1.5 'Quicksand',sans-serif}
@media(max-width:900px){.category-atlas .vgrid{grid-template-columns:repeat(2,minmax(0,1fr))}.category-atlas #placesmap{height:460px}}
@media(max-width:620px), (orientation:landscape) and (max-height:620px) and (pointer:coarse){
  .atlas-category-switch{display:flex;align-items:center;gap:3px;margin:0 0 18px;padding:4px;border:1px solid rgba(255,255,255,.48);border-radius:999px;background:rgba(255,255,255,.15);box-shadow:0 8px 24px rgba(0,47,102,.19),inset 0 1px 0 rgba(255,255,255,.4);backdrop-filter:blur(18px) saturate(1.45);-webkit-backdrop-filter:blur(18px) saturate(1.45)}
  .atlas-category-switch a{flex:1 1 0;padding:8px 2px;border-radius:999px;color:rgba(255,255,255,.76);font:700 13.3px/1 'Quicksand',sans-serif;letter-spacing:.01em;text-align:center;text-decoration:none}.atlas-category-switch a[aria-current="page"]{color:#fff;background:rgba(255,255,255,.22);box-shadow:0 3px 12px rgba(0,47,102,.18),inset 0 1px 0 rgba(255,255,255,.38)}
  .category-atlas .atlas-tools{margin:18px auto 8px}.category-atlas .atlas-chips{max-height:105px;overflow:auto;padding-bottom:3px}.category-atlas #placesmap{height:380px}.category-atlas .vgrid{grid-template-columns:1fr;gap:16px}.category-atlas .atlas-results .area{margin:32px 0 0}.category-atlas .area__head{font-size:22px}.category-atlas .page-hero{padding-top:0}
}

/* Lock every fetched image to a fixed size (no stretch, no layout shift) */
.card__photo,.mcard__img{object-fit:cover;width:100%;height:100%;display:block}
.card__panel,.mcard__thumb{overflow:hidden}

/* Images never zoom/scale/animate on hover — fully static */
.card__photo,.mcard__img{transform:none!important;transition:none!important}
.card:hover .card__photo,.mcard:hover .mcard__img,
.card:hover .card__panel,.mcard:hover .mcard__thumb{transform:none!important}

/* No-image cards use the logo blue; keep the kick chip and text legible on blue */
/* Blue (image-less) tile chips: a chip's colour must NEVER depend on whether the card has a
   photo (Jul 15 bug: this rule used to set a translucent-white background on EVERY chip, so
   no-photo cards washed their "Opening" chips white while photo cards kept them green). Only
   the NEUTRAL chips (On View / Featured -- dark-on-blue and blue-on-blue don't read) take the
   white wash; every event-family chip keeps its palette colour. Preflight inv48 enforces
   that this generic rule stays background-free. */
.card__panel.is-blue .card__kick{color:#fff}
.card__panel.is-blue .card__kick.kick--exhibition,
.card__panel.is-blue .card__kick.kick--featured{background:var(--c-gold)}   /* gold survives the no-photo tile */
/* Closing chips keep the ONE closing orange even on the image-less blue tile (owner rule
   Jul 13, preflight inv34) -- same exception the theater badge has at the top of the file. */
.card__panel.is-blue .card__kick.kick--closing{background:var(--c-close);color:#fff}
.card__panel.is-blue .card__date,
.card__panel.is-blue .card__when{color:#fff}

/* ── Calendar rating block (editorial layer) ─────────────────────────────── */
.card__rate{display:flex;align-items:center;flex-wrap:wrap;gap:6px 10px;margin:7px 0 0}
.stars{color:var(--c-gold);font-size:14px;letter-spacing:1px;line-height:1;white-space:nowrap}
.card__badges{display:inline-flex;flex-wrap:wrap;gap:5px}
.badge{font-family:'Quicksand',sans-serif;font-weight:600;font-size:10.5px;letter-spacing:.03em;text-transform:uppercase;padding:2px 8px;border-radius:999px;line-height:1.55;white-space:nowrap}
.badge--last{background:#fbe9da;color:#c25a17}
.badge--open{background:#d9ebf8;color:#005a9a}
.badge--free{background:#e1efe1;color:#2f6b3c}
.badge--paid{background:#efe8da;color:#7a5a1e}
.badge--time{background:#eceae5;color:#6b6258}
.badge--gem{background:#efe6f6;color:#6b3fa0}
.badge--first{background:#e3f0fa;color:#005a9a}
.card__why{font-family:'DM Sans',serif;font-style:italic;font-size:13px;line-height:1.45;color:#5c5650;margin:7px 0 0}
.card__who{font-family:'Quicksand',sans-serif;font-size:12px;color:#8a8278;margin:5px 0 0}
.card__who span{font-weight:700;color:#6b6258;text-transform:uppercase;letter-spacing:.04em;font-size:11px;margin-right:3px}
/* compact rating block inside calendar mini-cards */
.mcard .card__rate{margin-top:5px;gap:4px 7px}
.mcard .stars{font-size:13px}

/* ---------------------------------------------------------------- Born on This Day */
.bday-sec{border-top:1px solid var(--rule-soft);margin-top:54px;padding-top:46px;padding-bottom:8px}
.bday-head{margin-bottom:26px}
.bday-kicker{display:inline-block;font-family:'Quicksand',sans-serif;font-weight:600;font-size:13px;
  letter-spacing:.1em;text-transform:uppercase;color:#fff;background:var(--c-gold);padding:6px 13px;border-radius:999px;margin-bottom:14px}   /* gold everywhere (owner Jul 16); the body.home rule below is now redundant but harmless */
.bday-head h2{font-weight:600;font-size:clamp(30px,4.6vw,46px);line-height:1.05;color:var(--ink-strong)}
.bday-sub{font-family:'DM Sans',cursive;font-size:16px;line-height:1.15;opacity:.82;margin-top:5px;max-width:none;white-space:nowrap}
.bday-card{display:flex;gap:30px;align-items:stretch;background:var(--bg);border:1px solid var(--rule-soft)}
/* Artist portrait (owner Jul 15): fills its box at the same footprint as the signature work,
   tight under the bio -- no credit line, no links (owner removed both). */
.bday-artist{flex:0 0 250px;padding:24px 0 24px 24px;display:flex;flex-direction:column;min-width:0}
.bday-portrait{width:100%;aspect-ratio:4/5;margin:0;position:relative;overflow:hidden;border-radius:8px;
  background:linear-gradient(150deg,var(--blue) 0%,var(--blue-dark) 55%,var(--brown) 100%);
  background-size:cover;background-position:center top;display:flex;align-items:center;justify-content:center}
.bday-portraitimg{display:block;width:100%;height:100%;object-fit:contain;object-position:center;border-radius:inherit}
.bday-portraitimg[hidden]{display:none}
.bday-portrait.has-img{background:var(--blue-tint)}
.bday-initials{font-family:'DM Sans',serif;font-weight:600;font-size:40px;color:rgba(255,255,255,.92);letter-spacing:.02em}
.bday-portrait.has-img .bday-initials{display:none}
.bday-body{flex:1 1 auto;padding:24px 0 26px 24px;min-width:0}   /* leftmost column since Jul 15 (text above photo on mobile) */
.bday-when{font-family:'Quicksand',sans-serif;font-weight:600;font-size:13px;letter-spacing:.09em;
  text-transform:uppercase;color:var(--brick);margin-bottom:4px}
.bday-when[hidden]{display:none}
.bday-status{display:none;margin:0 0 8px;padding:4px 9px;border-radius:999px;
  background:#7b4fb0;color:#fff;font-family:'Quicksand',sans-serif;font-size:11px;
  font-weight:700;letter-spacing:.08em;text-transform:uppercase}
.bday-status[hidden]{display:none}
.bday-name{font-weight:600;font-size:clamp(26px,3.5vw,38px);line-height:1.08;color:var(--ink-strong);margin:0 0 10px}
.bday-name-dob{display:none;font-size:.48em;font-weight:500;letter-spacing:.01em;color:#fff;white-space:nowrap}
.bday-bio{font-size:17px;line-height:1.55;color:var(--ink);margin:0 0 20px;max-width:54ch}
.bday-work{flex:0 0 calc(50% - 15px);background:var(--blue-tint);padding:24px 22px 20px}
.bday-work-label{display:block;font-family:'Quicksand',sans-serif;font-weight:600;font-size:11px;
  letter-spacing:.12em;text-transform:uppercase;color:var(--blue-dark);margin-bottom:5px}
.bday-work-title{font-family:'DM Sans',serif;font-style:italic;font-size:20px;line-height:1.3;color:var(--ink-strong);margin:0 0 3px}
.bday-work-meta{font-size:14px;color:var(--ink);opacity:.78;margin:0}
.bday-links{display:flex;flex-wrap:wrap;gap:12px;margin-top:18px}
.bday-link{display:inline-block;font-family:'Quicksand',sans-serif;font-weight:600;font-size:14px;
  letter-spacing:.02em;background:var(--blue);color:#fff;border:1px solid var(--blue);
  padding:9px 18px;border-radius:999px;transition:background .2s,transform .2s,color .2s}
.bday-link:hover{background:var(--blue-dark);border-color:var(--blue-dark);transform:translateY(-1px)}
.bday-link--ghost{background:transparent;color:var(--blue-dark)}
.bday-link--ghost:hover{background:var(--blue-tint);color:var(--blue-dark);transform:translateY(-1px)}
@media (max-width:700px){
  .bday-card{flex-direction:column;gap:0}
  /* portrait rides TIGHT under the bio (owner Jul 15: the credit/link removal left a gap) */
  .bday-artist{flex-basis:auto;padding:0 20px 20px}
  .bday-work{flex-basis:auto;padding:20px 20px 18px}
  .bday-body{padding:22px 22px 8px}
  .bday-bio{max-width:none;margin-bottom:0}
}
.bday-kicker:empty{display:none}

/* ---------------------------------------------------------------- demo badge + dev disclaimer */
/* beta rides the logo badge like an exponent (top-right, slightly overhanging) */
.beta-tag{position:absolute;top:-7px;right:-16px;z-index:6;font-family:'Quicksand',sans-serif;font-weight:700;
  font-size:10.5px;line-height:1;letter-spacing:.14em;text-transform:uppercase;color:#fff;
  background:var(--brick);padding:4px 7px 3px;border-radius:9px;white-space:nowrap;
  box-shadow:0 2px 6px rgba(0,0,0,.18)}
@media(max-width:620px), (orientation: landscape) and (max-height:620px) and (pointer:coarse){ .beta-tag{top:-6px;right:-12px;font-size:9.5px;padding:3px 6px 2px} }
.dev-disclaimer{max-width:620px;margin:22px auto 0;padding:11px 16px;border:1px solid var(--brick);
  border-radius:6px;background:rgba(168,71,43,.05);font-family:'Quicksand',sans-serif;font-size:13px;
  line-height:1.5;letter-spacing:.01em;color:var(--brick)}

/* signature-work image (hidden until JS verifies a direct or Commons source) */
.bday-workimg{display:block;width:100%;height:auto;margin:0 0 12px;
  border-radius:6px;box-shadow:0 1px 6px rgba(0,0,0,.18)}
.bday-work-fallback{display:grid;place-items:center;min-height:120px;margin:0 0 12px;padding:20px;
  border:1px dashed rgba(0,91,162,.38);border-radius:6px;background:rgba(0,91,162,.08);
  color:var(--blue-dark);font-family:'Quicksand',sans-serif;font-size:12px;letter-spacing:.03em;text-align:center}
.bday-work-fallback[hidden]{display:none}

/* image attribution credits (author + license from Wikimedia Commons) */
.bday-credit{display:none;font-family:'Quicksand',sans-serif;font-size:10.5px;letter-spacing:.02em;line-height:1.35}
.bday-credit a{color:inherit;text-decoration:none;border-bottom:1px solid currentColor}
.bday-credit a:hover{opacity:.8}
.bday-credit--over{position:absolute;left:0;right:0;bottom:0;padding:6px 9px;text-align:left;color:#fff;
  background:linear-gradient(to top,rgba(0,0,0,.62),rgba(0,0,0,0))}
.bday-credit--work{color:var(--ink);opacity:.62;margin:-4px 0 12px}
.bday-credit--photo{color:var(--ink);opacity:.55;margin:7px 0 0;max-width:180px}

/* non-clickable event tiles (no usable external link) — remove the hover affordance */
.card--static:hover{transform:none;filter:var(--tile-drop-shadow)}
.mcard--static:hover,.row--static:hover{background:transparent}

/* Atlas venue storefront photo (Google Street View) */
.vp-photo{display:none;margin:26px 0 0;border:1px solid var(--rule-soft);border-radius:10px;overflow:hidden;position:relative;line-height:0;background:#e9e6df}
.vp-photo.is-shown{display:block}
.vp-photo img{display:block;width:100%;height:auto}
.vp-photo__cap{position:absolute;right:0;bottom:0;line-height:1.2;font-family:'Quicksand',sans-serif;font-size:10.5px;letter-spacing:.02em;color:#fff;background:rgba(0,0,0,.45);padding:3px 8px;border-top-left-radius:8px}

/* venue page: live events pulled from data/events.json */
.vp-events ul{list-style:none;margin:0;padding:0}
.vp-events li{padding:11px 0;border-bottom:1px solid var(--rule-soft)}
.vp-events li:last-child{border-bottom:none}
.vp-ev-title{font-family:'DM Sans',serif;font-weight:600;font-size:17px;color:var(--ink-strong);text-decoration:none}
a.vp-ev-title:hover{color:var(--blue-dark)}
.vp-ev-meta{display:block;margin-top:3px;font-family:'Quicksand',sans-serif;font-weight:600;font-size:13.5px;color:var(--ink-soft)}
.vp-ev-kind{display:inline-block;margin-left:8px;padding:1px 7px;border:1px solid var(--rule-soft);border-radius:9px;font-size:11.5px;text-transform:uppercase;letter-spacing:.05em;color:var(--ink-soft)}
.vp-ev-none{font-size:15.5px;color:var(--ink-soft);margin:0}

/* footer bar: the beta note reads as plain small text, not a boxed warning */
.site-footer .dev-disclaimer{border:none;background:none;color:#fff;opacity:.75;margin:0;padding:0;max-width:none;font-size:clamp(9px,2.9vw,11.5px);white-space:nowrap;letter-spacing:.01em}

/* Standout: editorial hook + editor's note */
.hero__kick{font-family:'Quicksand',sans-serif;font-weight:700;font-size:13px;letter-spacing:.09em;
  text-transform:uppercase;color:#ffd9a8;margin:0 0 8px}
.hero-note{margin:18px 0 8px;padding:18px 22px 17px;max-width:620px;
  background:rgba(12,16,22,.55);backdrop-filter:blur(7px);-webkit-backdrop-filter:blur(7px);
  border:1px solid rgba(255,255,255,.14);border-left:3px solid #ffd9a8;border-radius:0 12px 12px 0}
.hero-note__label{display:flex;align-items:center;gap:10px;font-family:'Quicksand',sans-serif;
  font-weight:700;font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:#ffd9a8;margin-bottom:9px}
.hero-note__label::after{content:'';flex:1;height:1px;background:linear-gradient(90deg,rgba(255,217,168,.5),transparent)}
.hero-note p{margin:0;font-family:'DM Sans',serif;font-style:italic;font-size:15.5px;line-height:1.68;
  color:rgba(255,255,255,.93);text-shadow:0 1px 2px rgba(0,0,0,.35)}
.hero-note p::first-letter{float:left;font-family:'DM Sans',serif;font-style:normal;font-weight:600;
  font-size:2.55em;line-height:.85;padding:3px 9px 0 0;color:#ffd9a8}
@media(max-width:620px), (orientation: landscape) and (max-height:620px) and (pointer:coarse){ .hero-note{padding:14px 15px} .hero-note p{font-size:14.5px} }
.card__hook{margin-top:6px;font-family:'DM Sans',serif;font-style:italic;font-size:13.5px;line-height:1.45;
  color:var(--blue-dark);padding-left:10px;border-left:2px solid var(--blue-tint)}

#homemap .leaflet-tile-pane,#theatermap .leaflet-tile-pane,#dragmap .leaflet-tile-pane{filter:grayscale(1)}
#comedymap .leaflet-tile-pane{filter:grayscale(1)}
#homemap .leaflet-hotpins-pane path{filter:drop-shadow(0 1px 5px rgba(236,72,153,.55))}
/* Venue name under each map dot -- tiny label, no box: a white halo (text-shadow) gives the
   letters contrast over the grey map. Bound only on the map page (main.js); mobile only.
   main.js declutters them so only non-overlapping names show (more appear as you zoom in). */
.leaflet-tooltip.pin-label{background:none;border:none;box-shadow:none;padding:0;
  -webkit-backdrop-filter:none;backdrop-filter:none;
  color:#0f3f60;font-family:'Quicksand',sans-serif;font-weight:700;font-size:var(--pin-label-fs,8px);line-height:1.15;
  letter-spacing:.01em;white-space:nowrap;
  text-shadow:0 0 2px #fff,0 0 3px #fff,0 0 4px #fff,0 1px 1px rgba(255,255,255,.95)}
.pin-label.pin-label--selected{
  color:#123d59;
  padding:2px 6px;
  border:1px solid rgba(201,162,39,.96);
  border-radius:8px;
  background:rgba(255,245,194,.72);
  box-shadow:0 2px 9px rgba(87,58,0,.42),0 0 0 1px rgba(201,162,39,.58);
  text-shadow:0 1px 0 rgba(255,250,222,.95);
}
.leaflet-tooltip.pin-label::before{display:none}      /* drop the default tooltip arrow */
.leaflet-tooltip.pin-label.pin-label--off{display:none}   /* decluttered out (would overlap) */
@media(min-width:621px){ .leaflet-tooltip.pin-label{display:none} }   /* mobile map only */
.leaflet-tooltip.pin-label.pin-label--selected{
  display:block!important;
  z-index:1200!important;
}
/* "My location" map control -- target/crosshair button below the zoom control. */
.loc-ctrl a{display:flex;align-items:center;justify-content:center;width:30px;height:30px}
.loc-ctrl svg{width:19px;height:19px}
.loc-ctrl .loc-dot{fill:#0070c0}
.loc-ctrl .loc-ring,.loc-ctrl .loc-tick{fill:none;stroke:#0070c0;stroke-width:2;stroke-linecap:round}
.loc-ctrl.is-locating svg{opacity:.35}
.loc-ctrl.is-locating a{cursor:progress}

/* ---- Floating event sheet (map page): tap a dot -> image-first card, X to close, heart to save ---- */
.evsheet-back{position:fixed;inset:0;z-index:2000;background:rgba(18,14,10,.55);opacity:0;pointer-events:none;
  transition:opacity .22s;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}
.evsheet-back.is-open{opacity:1;pointer-events:auto}
.evsheet{position:fixed;z-index:2010;left:50%;top:50%;transform:translate(-50%,-46%) scale(.985);
  width:min(92vw,430px);max-height:88vh;display:flex;flex-direction:column;overflow:hidden;
  background:var(--bg);border-radius:20px;box-shadow:0 24px 64px -14px rgba(0,0,0,.55);
  opacity:0;pointer-events:none;transition:opacity .22s,transform .22s}
.evsheet.is-open{opacity:1;pointer-events:auto;transform:translate(-50%,-50%) scale(1)}
@keyframes evsheet-swipe-out-next{from{transform:translate(-50%,-50%) scale(1);opacity:1}to{transform:translate(calc(-50% - 28px),-50%) scale(.985);opacity:.72}}
@keyframes evsheet-swipe-out-prev{from{transform:translate(-50%,-50%) scale(1);opacity:1}to{transform:translate(calc(-50% + 28px),-50%) scale(.985);opacity:.72}}
@keyframes evsheet-swipe-in-next{from{transform:translate(calc(-50% + 28px),-50%) scale(.985);opacity:.72}to{transform:translate(-50%,-50%) scale(1);opacity:1}}
@keyframes evsheet-swipe-in-prev{from{transform:translate(calc(-50% - 28px),-50%) scale(.985);opacity:.72}to{transform:translate(-50%,-50%) scale(1);opacity:1}}
.evsheet--swipe-out-next{animation:evsheet-swipe-out-next .12s cubic-bezier(.22,.61,.36,1) both}
.evsheet--swipe-out-prev{animation:evsheet-swipe-out-prev .12s cubic-bezier(.22,.61,.36,1) both}
.evsheet--swipe-in-next{animation:evsheet-swipe-in-next .22s cubic-bezier(.22,.61,.36,1) both}
.evsheet--swipe-in-prev{animation:evsheet-swipe-in-prev .22s cubic-bezier(.22,.61,.36,1) both}
@media(prefers-reduced-motion:reduce){
  .evsheet--swipe-out-next,.evsheet--swipe-out-prev,.evsheet--swipe-in-next,.evsheet--swipe-in-prev{animation:none}
}
.evsheet-section-dots{position:fixed;left:50%;z-index:2012;display:flex;align-items:center;justify-content:center;gap:6px;
  transform:translateX(-50%);pointer-events:none;padding:2px 4px}
.evsheet-section-dots[hidden]{display:none}
.evsheet-section-dot{display:block;width:12px;height:12px;border-radius:50%;background:rgba(255,255,255,.48);
  box-shadow:0 1px 3px rgba(7,42,80,.55);transition:background .16s,transform .16s}
.evsheet-section-dot.is-on{background:#fff;transform:scale(1.2)}
/* hero (with the X + heart) stays fixed; only the body scrolls -- so close/save are always reachable */
.evsheet__hero{position:relative;flex:0 0 auto;aspect-ratio:16/10;overflow:hidden;background:var(--blue);border-radius:20px 20px 0 0}
.evsheet__hero.noimg{background:linear-gradient(150deg,var(--blue),#03426f)}
.evsheet__img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
/* Multi-show hero strip (owner Jul 15: venues like OMA with several concurrent exhibitions):
   one slide per show, right-to-left swipe with scroll-snap; the dots track the visible slide
   and the sheet's text panel repaints to follow (wired in main.js build()). */
.es2-strip{position:absolute;inset:0;display:flex;overflow-x:auto;overflow-y:hidden;
  scroll-snap-type:x mandatory;-webkit-overflow-scrolling:touch;scrollbar-width:none}
.es2-strip::-webkit-scrollbar{display:none}
.es2-slide{flex:0 0 100%;height:100%;scroll-snap-align:center;scroll-snap-stop:always;position:relative;
  background:linear-gradient(150deg,var(--blue),#03426f)}
.es2-slide img{width:100%;height:100%;object-fit:cover;display:block}
.es2-dots{position:absolute;bottom:12px;left:50%;transform:translateX(-50%);display:flex;gap:6px;z-index:3;
  pointer-events:none}
.es2-dot{width:7px;height:7px;border-radius:50%;background:rgba(255,255,255,.45);
  box-shadow:0 1px 3px rgba(7,42,80,.4)}
.es2-dot.is-on{background:#fff}
.evsheet__hero::after{content:"";position:absolute;inset:0;pointer-events:none;
  background:linear-gradient(to bottom,rgba(10,8,6,.34),rgba(10,8,6,0) 34%)}
.evsheet__kick{position:absolute;left:14px;bottom:12px;z-index:2;font-family:'Quicksand',sans-serif;
  font-weight:700;font-size:11.5px;letter-spacing:.04em;text-transform:uppercase;color:#fff;
  padding:5px 12px;border-radius:999px;box-shadow:0 2px 8px rgba(0,0,0,.32)}
.evsheet__heart,.evsheet__share,.evsheet__x{position:absolute;top:12px;z-index:3;width:44px;height:44px;
  border:1.5px solid rgba(255,255,255,.94);border-radius:50%;background:transparent;font-size:19px;line-height:44px;
  text-align:center;color:#fff;cursor:pointer;box-shadow:none;padding:0}
.evsheet__heart{right:12px;color:#ec4899}
.evsheet__share{right:64px;color:#fff}
.evsheet__share svg{display:block;width:20px;height:20px;margin:auto;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.evsheet__share.is-copied{color:#16a34a}
.evsheet__x{left:12px;color:#fff;font-size:17px}
.evsheet__journal{position:absolute;right:14px;bottom:14px;z-index:4;width:44px;height:44px;
  border:1.5px solid rgba(255,255,255,.94);border-radius:50%;background:transparent;color:#fff;display:grid;place-items:center;cursor:pointer;
  box-shadow:none;padding:0}
.evsheet__journal svg{display:block;width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:2.25;
  stroke-linecap:round;stroke-linejoin:round}
.evsheet__journal.is-journaled{color:#d5a11e}
.evsheet__journal.is-journaled svg{fill:currentColor;stroke:currentColor}
.evsheet__body{padding:16px 18px 20px;overflow-y:auto;-webkit-overflow-scrolling:touch}
.evsheet__venue{font-family:'DM Sans',serif;font-weight:600;font-size:22px;line-height:1.2;color:var(--ink-strong)}
.evsheet__addr{font-family:'Quicksand',sans-serif;font-size:13px;color:#8a8378;margin-top:3px}
.evsheet__shows{margin-top:14px;display:flex;flex-direction:column;gap:9px}
.evsheet__show{display:block;text-decoration:none;background:#f4f2ee;border:1px solid var(--rule-soft);
  border-radius:12px;padding:11px 13px;transition:background .15s}
.evsheet__show:hover{background:#efece6}
.evsheet__show-top{display:flex;align-items:center;gap:8px;margin-bottom:2px}
.evsheet__tag{font-family:'Quicksand',sans-serif;font-weight:700;font-size:10px;letter-spacing:.04em;
  text-transform:uppercase;color:#fff;background:var(--blue);padding:2px 7px;border-radius:999px}
.evsheet__show-date{font-family:'Quicksand',sans-serif;font-weight:600;font-size:12px;color:var(--blue-dark)}
.evsheet__show-title{font-family:'DM Sans',serif;font-weight:600;font-size:16px;line-height:1.25;color:var(--ink-strong)}
.evsheet__actions{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:16px}
.evsheet__drive{font-family:'Quicksand',sans-serif;font-weight:700;font-size:13px;color:#fff;
  background:var(--blue);border:none;border-radius:999px;padding:9px 16px;cursor:pointer}
.evsheet__vlink{font-family:'Quicksand',sans-serif;font-weight:600;font-size:13.5px;color:var(--blue);text-decoration:none;white-space:nowrap}

/* Homepage single-event sheet: blue variant of the map sheet, with complete show info. */
body.sheet-lock{overflow:hidden}   /* lock page scroll while an event/place sheet is open */
/* ---- Visual Arts / Theater category switch (mobile homepage, top-right) ---- */
/* Owner spec Jul 14: a "San Diego" wordmark centered ABOVE a segmented pill showing BOTH
   options. One FIXED wrapper (.mastright) holds them so the wordmark stays center-aligned
   to the pill; both fit inside the logo's height band (14..97px + inset). */
.mastright,.catswitch,.sd-label{display:none}
/* Pill option styling is GLOBAL (Jul 15: the switch now also renders on the desktop homepage) */
.catswitch__opt{font-family:'Quicksand',sans-serif;font-weight:700;font-size:12.5px;letter-spacing:.02em;
  color:rgba(255,255,255,.85);background:none;border:none;border-radius:999px;padding:7px 12px;cursor:pointer;
  white-space:nowrap}
.catswitch__opt.is-on{color:#fff;background:rgba(255,255,255,.24)}
/* Desktop homepage (owner Jul 15): the same Visual Arts | Theater switch, centered above the
   hero. The San Diego wordmark stays mobile-only -- the desktop hero already says it. In
   Theater view the art-only sections (art map, Artist of the Day) hide, mirroring mobile. */
@media(min-width:621px){
  body:is(.home,.eventpage) .mastright{display:block;text-align:center;margin:16px 0 0}
  body.home .sd-label{display:none}
  body:is(.home,.eventpage) .catswitch.is-ready{display:inline-flex;background:rgba(0,112,192,.52);   /* glass, matches the bottom nav (owner Jul 16) */
    border-radius:999px;padding:3px;gap:2px;box-shadow:0 3px 12px rgba(43,38,31,.22);
    backdrop-filter:blur(18px) saturate(1.5);-webkit-backdrop-filter:blur(18px) saturate(1.5)}
  body.home[data-cat="theater"] .bday-sec{display:none}
  body.home[data-cat="theater"] section[aria-labelledby="map-h"]{display:none}
  /* Drag is a San Diego mobile/app surface for now; keep the existing desktop
     Art/Theater presentation unchanged in the other viewport. */
  body:is(.home,.eventpage) .catswitch__opt[data-cat="drag"]{display:none}
  body:is(.home,.eventpage) .catswitch__opt[data-cat="comedy"]{display:none}
}
.week-cols:empty{display:none}   /* theater view has no week columns on ANY viewport */
@media(max-width:620px), (orientation: landscape) and (max-height:620px) and (pointer:coarse){
  /* All pages use the same city-context + guide-tabs hierarchy. display:contents lets the
     category row position against the viewport without changing generated markup. */
  body:is(.home,.eventpage) .mastright,body.opennow .mastright,body.planpage .mastright,body.contact .mastright{display:contents}
  /* .catswitch__opt styles are GLOBAL now (declared above the desktop block) */
}
/* ---- List page (list.html): every current listing as plain text lines ---- */
.lp-wrap{max-width:780px}
.lp-title{font-family:'DM Sans',serif;font-weight:600;font-size:clamp(26px,4vw,36px);margin:26px 0 2px}
.lp-sub{font-family:'Quicksand',sans-serif;font-weight:600;font-size:13px;opacity:.75;margin:0 0 10px}
.lp-wrap h2{font-family:'DM Sans',serif;font-weight:600;font-size:21px;margin:26px 0 8px}
.lp-list{list-style:none;padding:0;margin:0}
.lp-list li{font-family:'Quicksand',sans-serif;font-weight:500;font-size:14.5px;line-height:1.55;
  padding:7px 0;border-bottom:1px solid rgba(127,127,127,.18)}
.lp-list a{font-weight:700;text-decoration:none;color:var(--blue)}
@media(max-width:620px), (orientation: landscape) and (max-height:620px) and (pointer:coarse){
  /* the mobile design language: same translucent blue canvas as the homepage, white type */
  body.listpage{background:linear-gradient(rgba(3,110,202,.8),rgba(3,110,202,.8)),#fff}
  body.listpage .site-header{margin-bottom:0;background:transparent;border-bottom:none}
  body.listpage .lp-title{margin-top:88px}   /* clear the logo tile (top:24 + 78px tall) */
  body.listpage .lp-title,body.listpage .lp-wrap h2{color:#fff;text-shadow:0 2px 10px rgba(7,42,80,.45)}
  body.listpage .lp-sub{color:rgba(255,255,255,.8)}
  body.listpage .lp-list li{color:rgba(255,255,255,.94);border-bottom-color:rgba(255,255,255,.22)}
  body.listpage .lp-list a{color:#fff;text-decoration:underline;text-decoration-color:rgba(255,255,255,.45)}
  body.listpage .site-footer{background:transparent}
  body.listpage{padding-bottom:96px}   /* clear the floating bottom menu */
}

/* ---- Open Now (open-now.html): the SAME homepage tiles (card()) per Atlas area; tiles
   appear/disappear with the venue's actual doors, computed client-side against San Diego
   wall-clock time. .card sets display:block, so the [hidden] toggle needs its own rule. ---- */
.on-area{margin:0 0 6px}
.on-area .card[hidden]{display:none!important}
.plan-form.on-filter-form{max-width:520px;margin:12px 0 20px;padding:12px}
.on-filter-fields{grid-template-columns:repeat(2,minmax(0,1fr))}
.on-theater{margin:24px 0 6px}
.on-theater[hidden]{display:none!important}
.on-theater .on-theater__empty{font-family:'Quicksand',sans-serif;font-size:13px;color:inherit}

/* ---- Plan (plan.html): future date/time + place filters over the same verified city
   listings and the same image-first tiles used by See Now. ---- */
.plan-wrap{max-width:980px}
.plan-title{max-width:720px}
.plan-titlerow{display:flex;align-items:center;justify-content:space-between;gap:14px}
.plan-titlerow .lp-title{margin-bottom:0}
.plan-near{color:var(--blue);background:rgba(0,112,192,.1);border-color:rgba(0,112,192,.3)}
.plan-near.is-on{background:var(--blue);color:#fff}
.plan-form{margin:14px 0 16px;padding:14px;border-radius:18px;background:var(--blue-tint);
  border:1px solid rgba(0,112,192,.18);box-shadow:0 8px 24px rgba(43,38,31,.1)}
.plan-form.is-loading{opacity:.68;pointer-events:none}
.plan-fields{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;align-items:end}
.plan-field{display:flex;flex-direction:column;gap:5px;min-width:0}
.plan-field span{font-family:'Quicksand',sans-serif;font-weight:700;font-size:11.5px;
  letter-spacing:.05em;text-transform:uppercase;color:var(--blue-dark)}
.plan-control{display:block;width:100%;min-width:0;height:42px;overflow:hidden;border-radius:12px;
  background:#fff}
.plan-field input,.plan-field select{display:block;width:100%;max-width:100%;min-width:0;height:42px;
  margin:0;border:1px solid rgba(0,112,192,.25);
  border-radius:12px;background:#fff;color:var(--ink-strong);font-family:'Quicksand',sans-serif;
  font-size:13px;font-weight:600;line-height:1.2;padding:0 11px;box-sizing:border-box}
.plan-field input[type="date"],.plan-field input[type="time"]{text-align:center;color-scheme:light}
.plan-field input[type="date"]::-webkit-date-and-time-value,
.plan-field input[type="time"]::-webkit-date-and-time-value{text-align:center;margin:0}
.plan-field input[type="date"]::-webkit-datetime-edit,
.plan-field input[type="time"]::-webkit-datetime-edit{display:flex;align-items:center;justify-content:center;width:100%;padding:0}
.plan-control--temporal{position:relative;display:grid;place-items:center}
.plan-field .plan-temporal-input{position:absolute;inset:0;z-index:0;
  opacity:0;padding-right:11px!important;cursor:pointer}
.plan-field .plan-temporal-input::-webkit-date-and-time-value,
.plan-field .plan-temporal-input::-webkit-datetime-edit{
  color:transparent!important;-webkit-text-fill-color:transparent!important}
.plan-field .plan-temporal-input::-webkit-calendar-picker-indicator{
  position:absolute;right:11px;margin:0}
.plan-field .plan-time-select{display:none}
.plan-field .plan-temporal-value{position:relative;z-index:1;display:flex;align-items:center;
  justify-content:center;width:100%;height:100%;min-width:0;padding:0 38px;
  border-radius:12px;background:#fff;
  color:var(--ink-strong);font-family:'Quicksand',sans-serif;font-size:13px;font-weight:600;
  line-height:1;text-align:center;text-transform:none;letter-spacing:0;white-space:nowrap;
  pointer-events:none;box-sizing:border-box}
.plan-field .plan-temporal-value,.plan-field .plan-temporal-value span{
  color:var(--ink-strong)!important}
.plan-field .plan-temporal-text{font-size:13px;font-weight:600}
.plan-temporal-icon{position:absolute;right:11px;top:50%;width:14px;height:14px;
  color:#181818;transform:translateY(-50%)}
.plan-temporal-icon svg{display:block;width:100%;height:100%;fill:none;stroke:currentColor;
  stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.plan-control--temporal:focus-within .plan-temporal-value{outline:2px solid rgba(0,112,192,.45);
  outline-offset:1px}
.plan-field select:disabled{opacity:.62;color:#70695f;cursor:not-allowed}
.plan-submit{height:42px;border-radius:999px;border:1px solid rgba(0,112,192,.35);
  background:#fff;color:var(--blue);font-family:'Quicksand',sans-serif;font-size:13px;font-weight:700;
  cursor:pointer;padding:0 16px}
.plan-submit{display:block;margin:10px 0 0 auto;background:var(--blue);border-color:var(--blue);color:#fff;
  padding:0 24px}
.plan-summary{font-family:'Quicksand',sans-serif;font-size:14px;font-weight:700;color:var(--ink-strong);margin:0}
.plan-note{font-family:'Quicksand',sans-serif;font-size:12px;font-weight:600;color:#70695f;margin:5px 0 0}
.plan-section{margin:30px 0 0}
.plan-shead{display:flex;align-items:center;gap:10px;margin:0 0 10px}
.plan-shead span{flex:0 0 auto;border-radius:999px;color:#fff;padding:5px 10px;
  font-family:'Quicksand',sans-serif;font-size:10.5px;font-weight:700;letter-spacing:.04em;text-transform:uppercase}
.plan-shead h2{margin:0!important}
.plan-section--must .plan-shead span{background:var(--blue)}
.plan-section--reception .plan-shead span{background:#dc2626}
.plan-section--closing .plan-shead span{background:var(--c-close)}
.plan-section--opening .plan-shead span{background:#166534}
.plan-section--theater .plan-shead span{background:#16a34a}
.plan-section .grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}
.plan-empty{grid-column:1/-1;margin:0;padding:18px;border:1px dashed rgba(0,112,192,.3);
  border-radius:14px;font-family:'Quicksand',sans-serif;font-size:13px;color:#70695f}
@media(max-width:620px), (orientation: landscape) and (max-height:620px) and (pointer:coarse){
  /* Fixed logo (83px, matches home) means the header takes no real space; tighten the gap
     and let the title clear the logo band (14+83px) the same way the homepage hero does. */
  body.opennow .site-header{margin-bottom:6px}
  /* the near-me chip shares the title line, so the clear-the-logo margin moves to the ROW */
  body.opennow .on-titlerow{margin-top:calc(110px + env(safe-area-inset-top))}
  body.opennow .on-titlerow .lp-title{margin-top:0}
  /* Area breaks follow the homepage rhythm: 2x the 12px tile gap (one --secgap token). */
  body.opennow{--secgap:24px}
  body.opennow .on-area{margin-top:var(--secgap)}
  body.opennow .lp-wrap h2{margin:0 0 2px}   /* the section margin IS the break */
  body.opennow .on-empty{color:rgba(255,255,255,.85)}
  body.planpage .plan-wrap{padding-top:calc(102px + env(safe-area-inset-top))}
  body.planpage .plan-title .lp-title{margin-top:0}
  body.planpage .plan-title .lp-sub{max-width:90%}
  body.planpage .plan-titlerow{align-items:center}
  body.planpage .plan-near{margin-bottom:0;background:rgba(255,255,255,.16);color:#fff;
    border-color:rgba(255,255,255,.55)}
  body.planpage .plan-near.is-on{background:#fff;color:var(--blue)}
  body.planpage .plan-form{box-sizing:border-box;width:100%;max-width:100%;margin-top:12px;padding:12px;
    overflow:hidden;background:rgba(0,112,192,.52);
    border-color:rgba(255,255,255,.45);box-shadow:0 10px 28px rgba(7,42,80,.25);
    backdrop-filter:blur(18px) saturate(1.5);-webkit-backdrop-filter:blur(18px) saturate(1.5)}
  body.planpage .plan-fields{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:10px}
  body.planpage .plan-field{grid-column:span 1;width:100%;min-width:0;overflow:hidden}
  body.planpage .plan-field span{color:#fff}
  body.planpage .plan-control{width:100%;min-width:0;height:42px;background:rgba(255,255,255,.96)}
  body.planpage .plan-field input,body.planpage .plan-field select{width:100%;max-width:100%;min-width:0;height:42px;
    background:rgba(255,255,255,.96);
    border-color:rgba(255,255,255,.7)}
  body.planpage .plan-submit{width:100%;margin-top:10px;background:#fff;color:var(--blue);border-color:#fff}
  body.planpage .plan-summary{color:#fff;text-shadow:0 1px 3px rgba(7,42,80,.45)}
  body.planpage .plan-note{color:rgba(255,255,255,.8)}
  body.planpage .plan-section{margin-top:28px}
  body.planpage .plan-shead{margin-bottom:12px}
  body.planpage .plan-shead h2{color:#fff;text-shadow:0 1px 3px rgba(7,42,80,.45);font-size:18px}
  body.planpage .plan-section .grid{grid-template-columns:1fr 1fr;gap:16px 12px}
  body.planpage .plan-section .grid > .card{content-visibility:visible;contain-intrinsic-size:auto;min-width:0;width:100%}
  body.planpage .plan-empty{color:rgba(255,255,255,.82);border-color:rgba(255,255,255,.38)}
  body.planpage .card--mini .card__title{color:#fff;text-shadow:0 1px 3px rgba(7,42,80,.5)}
  body.planpage .card--mini .card__date,body.planpage .card--mini .card__venue,
  body.planpage .card--mini .card__addr,body.planpage .card--mini .card__hours{
    color:rgba(255,255,255,.92);text-shadow:0 1px 3px rgba(7,42,80,.5)}
}

/* ---- Map category pill (map pages, top-center): names WHICH map you're on and toggles
   between the art and theater maps. Same segmented style as the homepage catswitch. ---- */
.mapcity,.mapcat{display:none}
@media(max-width:620px), (orientation: landscape) and (max-height:620px) and (pointer:coarse){
  /* Static city labels are a no-JS fallback; the accessible city selector supplies the
     visible "Today in [city]" context once main.js mounts. */
  body.mappage .mapcity,
  body.home .sd-label,
  body.opennow .sd-label,
  body.planpage .sd-label{display:block;position:fixed;top:calc(14px + env(safe-area-inset-top));left:50%;
    transform:translateX(-50%);z-index:1121;font-family:'DM Sans',serif;font-weight:600;font-size:20px;line-height:1;
    color:#fff;text-shadow:0 1px 3px rgba(7,42,80,.65),0 3px 12px rgba(7,42,80,.5);
    pointer-events:none;white-space:nowrap}

  /* See Now, Plan, Contact, and maps retain the full-width guide row below their city
     context. The homepage receives compact logo-band tabs in the final override. */
  body.mappage .mapcat,
  body.opennow .catswitch.is-ready,
  body.planpage .catswitch.is-ready,
  body.contact .catswitch.is-ready{display:flex;position:absolute;top:calc(158px + env(safe-area-inset-top));
    left:14px;right:14px;transform:none;z-index:1139;background:rgba(0,112,192,.97);border-radius:999px;padding:4px;gap:3px;
    box-shadow:0 3px 12px rgba(43,38,31,.28);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px)}
  .mapcat__opt,
  body.opennow .catswitch__opt,
  body.planpage .catswitch__opt,
  body.contact .catswitch__opt{flex:1 1 0;text-align:center;font-family:'Quicksand',sans-serif;font-weight:700;
    font-size:13px;letter-spacing:.02em;color:rgba(255,255,255,.85);padding:8px 12px;border-radius:999px;
    text-decoration:none;white-space:nowrap}
  .mapcat__opt.is-on,
  body.opennow .catswitch__opt.is-on,
  body.planpage .catswitch__opt.is-on,
  body.contact .catswitch__opt.is-on{color:#fff;background:rgba(255,255,255,.24)}
  body.opennow .catswitch__opt:disabled,
  body.planpage .catswitch__opt:disabled{opacity:.42;cursor:not-allowed;pointer-events:none}
}
.evsheet--home{background:#0f6cb5;color:#fff}
.evsheet--home .evsheet__body{color:#fff}
.es2-when{font-family:'Quicksand',sans-serif;font-weight:700;font-size:12.5px;letter-spacing:.03em;color:rgba(255,255,255,.9);margin:0}
.es2-duration{font-family:'Quicksand',sans-serif;font-weight:600;font-size:11px;letter-spacing:.025em;color:rgba(255,255,255,.72);margin:4px 0 0}
.es2-title{font-family:'DM Sans',serif;font-weight:600;font-size:23px;line-height:1.18;color:#fff;margin:6px 0 0}
.es2-venue{font-family:'Quicksand',sans-serif;font-weight:600;font-size:14.5px;color:#fff;margin:9px 0 0}
.es2-addr{font-family:'Quicksand',sans-serif;font-size:13px;color:rgba(255,255,255,.78);margin:2px 0 0}
.es2-showtimes{font-family:'Quicksand',sans-serif;font-weight:600;font-size:13px;line-height:1.35;color:rgba(255,255,255,.94);margin:7px 0 0}
.es2-showtimes span{font-weight:700;color:#fff}
.es2-hours{font-family:'Quicksand',sans-serif;font-weight:600;font-size:13px;color:rgba(255,255,255,.86);margin:7px 0 0}
.es2-desc{font-family:'DM Sans',serif;font-size:16px;line-height:1.55;color:rgba(255,255,255,.96);margin:13px 0 0}
.es2-actions{display:flex;flex-wrap:wrap;gap:12px;margin:18px 0 2px}
.es2-more,.es2-dir{font-family:'Quicksand',sans-serif;font-weight:700;font-size:13.5px;color:#fff;text-decoration:none;
  background:rgba(255,255,255,.16);border:1px solid rgba(255,255,255,.42);border-radius:999px;padding:10px 17px}
.es2-more:hover,.es2-dir:hover{background:rgba(255,255,255,.27)}
/* Place sheet: the venue's current shows, each row taps through to the shared event sheet. */
.es2-shows{margin:16px 0 2px}
.es2-shows-h{font-family:'Quicksand',sans-serif;font-weight:700;font-size:12px;letter-spacing:.04em;text-transform:uppercase;color:rgba(255,255,255,.7);margin:0 0 8px}
.es2-showrow{display:flex;align-items:baseline;justify-content:space-between;gap:12px;width:100%;text-align:left;
  background:rgba(255,255,255,.12);border:1px solid rgba(255,255,255,.22);border-radius:12px;
  padding:11px 14px;margin:0 0 8px;cursor:pointer;font-family:inherit;color:#fff}
.es2-showrow:hover{background:rgba(255,255,255,.2)}
.es2-showrow-t{font-family:'DM Sans',serif;font-weight:600;font-size:15px;line-height:1.25;flex:1 1 auto;min-width:0}
.es2-showrow-d{font-family:'Quicksand',sans-serif;font-weight:600;font-size:11.5px;color:rgba(255,255,255,.82);white-space:nowrap;flex:0 0 auto}
.es2-noshows{font-family:'Quicksand',sans-serif;font-size:13.5px;color:rgba(255,255,255,.8);margin:0}
.walkbar{display:flex;align-items:center;flex-wrap:wrap;gap:10px;margin:12px 0 0;padding:10px 14px;
  border:1px solid var(--rule-soft);border-radius:10px;background:#fff;font-family:'Quicksand',sans-serif;font-size:13.5px}
.walkbar__label{font-weight:700;letter-spacing:.1em;text-transform:uppercase;font-size:11.5px;color:#8a8378}
.walkbar__btn{font-family:'Quicksand',sans-serif;font-size:13px;font-weight:600;padding:6px 12px;border-radius:999px;
  border:1px solid var(--rule-soft);background:#fff;color:var(--ink);cursor:pointer;text-decoration:none}
.walkbar__btn--go{background:#0070c0;border-color:#0070c0;color:#fff}
.walkbar__btn--quiet{border:none;color:#8a8378}
.walkhint{margin:8px 0 0;font-size:13px;color:#8a8378;font-style:italic}
.concierge{max-width:820px;margin:6px auto 30px;padding:22px 26px;border:1px solid var(--rule-soft);
  border-radius:14px;background:#fff}
.concierge{display:none !important}   /* removed from mobile per owner (Jul 7); was desktop-hidden already, so now hidden at every width. Markup kept in place, inert + reversible. */
@media(max-width:620px), (orientation: landscape) and (max-height:620px) and (pointer:coarse){ .concierge{margin-top:14px} }
/* ---- mobile cover carousel (swipe, near-full-bleed) ---- */
.cover{display:none}
@media(max-width:620px), (orientation: landscape) and (max-height:620px) and (pointer:coarse){
  .cover{display:block;margin:10px -22px 6px}
  .cover__track{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;gap:10px;
    padding:0 22px;scrollbar-width:none;-webkit-overflow-scrolling:touch}
  .cover__track::-webkit-scrollbar{display:none}
  /* wide-short tiles, 4:2 (owner Jul 17): all Must Sees ride one horizontal scroll, a
     neighbour peeking to invite the swipe */
  .cover__slide{position:relative;flex:0 0 74%;scroll-snap-align:center;aspect-ratio:2/1;height:auto;min-height:0;
    border-radius:20px;background-size:cover;background-position:center;background-color:#e7e2d9;
    overflow:hidden;text-decoration:none;box-shadow:0 2px 12px rgba(43,38,31,.16)}
  .cover__slide::after{content:"";position:absolute;inset:0;
    background:linear-gradient(180deg,rgba(0,112,192,0) 42%,rgba(0,112,192,.94) 100%)}
  .cover__strip{position:absolute;left:0;right:0;bottom:0;z-index:2;padding:14px 18px 18px}
  .cover__strip em{display:block;font-family:'Quicksand',sans-serif;font-style:normal;font-weight:700;
    font-size:11.5px;letter-spacing:.14em;text-transform:uppercase;color:rgba(255,255,255,.85)}
  .cover__strip strong{display:block;margin-top:4px;font-family:'DM Sans',serif;font-weight:600;
    font-size:25px;line-height:1.18;color:#fff}
  .cover__strip span{display:block;margin-top:4px;font-family:'Quicksand',sans-serif;font-size:14px;
    font-weight:600;color:rgba(255,255,255,.85)}
  .cover__dots{display:flex;justify-content:center;gap:7px;margin:10px 0 2px}
  .cover__dot{width:7px;height:7px;border-radius:50%;background:#cfc8bc;transition:background .2s}
  .cover__dot.is-on{background:#0070c0}
  .hero-sec{display:none}   /* the cover IS the story on mobile; desktop keeps its hero */
  body{padding-bottom:74px}
}
/* ---- Contact page: blue canvas + de-linked footer on mobile (owner, Jul 2026) ---- */
@media(max-width:620px), (orientation: landscape) and (max-height:620px) and (pointer:coarse){
  /* Homepage + Contact page: drop the About/Contact/Press/Privacy footer row on mobile.
     Homepage — About/Press/Privacy are removed and Contact moves to the pill; Contact page —
     all footer links removed per request. OTHER mobile pages KEEP their footer links so
     About/Privacy stay reachable (the pill carries no About/Privacy). Desktop is untouched. */
  /* Signature footer (owner Jul 15 PM; extended to the HOMEPAGE Jul 15 late): the homepage
     (both Visual Arts and Theater views) and contact share ONE quiet two-line signature --
     the beta footnote on its own line, then "(c) 2026 Sees Journal · Privacy · Terms"
     together, joined by middots. Only Privacy + Terms show (About/Contact/Press stay
     mobile-hidden; the bottom pill carries navigation). */
  body.home .footlinks, body.opennow .footlinks, body.contact .footlinks, body.legal .footlinks, body.journalpage .footlinks{display:flex;order:3;align-items:center;gap:0;margin:0}
  body.home .footlinks a, body.opennow .footlinks a, body.contact .footlinks a, body.legal .footlinks a, body.journalpage .footlinks a{display:none}
  /* SUBSTRING match ([href*=]), never exact: Netlify's Pretty URLs rewrite deployed hrefs
     to extensionless form ('/privacy'), so [href="privacy.html"] matches only in local
     previews and the links stayed hidden on the LIVE site (Jul 15). */
  body.home .footlinks a[href*="privacy"], body.home .footlinks a[href*="terms"],
  body.opennow .footlinks a[href*="privacy"], body.opennow .footlinks a[href*="terms"],
  body.contact .footlinks a[href*="privacy"], body.contact .footlinks a[href*="terms"],
  body.legal .footlinks a[href*="privacy"], body.legal .footlinks a[href*="terms"],
  body.journalpage .footlinks a[href*="contact"], body.journalpage .footlinks a[href*="privacy"], body.journalpage .footlinks a[href*="terms"],
  body.home .footlinks a[href*="contact"], body.opennow .footlinks a[href*="contact"], body.contact .footlinks a[href*="contact"], body.legal .footlinks a[href*="contact"]{
    display:inline-block;font-family:'Quicksand',sans-serif;font-weight:600;
    font-size:clamp(9px,2.9vw,11.5px);line-height:1.4;text-transform:none;
    color:rgba(255,255,255,.92);text-decoration:none}
  /* middot separators join the signature line; they live on the links' ::before so the
     row needs no extra markup (and carry no underline) */
  body.home .footlinks a[href*="privacy"]::before, body.home .footlinks a[href*="terms"]::before,
  body.opennow .footlinks a[href*="privacy"]::before, body.opennow .footlinks a[href*="terms"]::before,
  body.contact .footlinks a[href*="privacy"]::before, body.contact .footlinks a[href*="terms"]::before,
  body.legal .footlinks a[href*="privacy"]::before, body.legal .footlinks a[href*="terms"]::before,
  body.journalpage .footlinks a[href*="contact"]::before, body.journalpage .footlinks a[href*="privacy"]::before, body.journalpage .footlinks a[href*="terms"]::before,
  body.home .footlinks a[href*="contact"]::before, body.opennow .footlinks a[href*="contact"]::before, body.contact .footlinks a[href*="contact"]::before, body.legal .footlinks a[href*="contact"]::before{
    content:"\00b7";margin:0 7px;color:rgba(255,255,255,.55);font-weight:500}
  /* Contact = the homepage design language (owner Jul 15: the old center-hero + cream panels
     read clunky against the blue canvas). Same translucent blue canvas, the fixed 83px logo +
     San Diego wordmark/pill masthead, a left-aligned DM Sans title with the house text-shadow,
     and every block as a ROUNDED DEEP-BLUE CARD (the tile/event-sheet #0f6cb5 + 18px radius +
     soft shadow), with pill inputs and a solid white pill button. */
  body.contact{background:linear-gradient(rgba(3,110,202,.8),rgba(3,110,202,.8)),#fff;
    --secgap:24px;padding-bottom:96px}   /* clear the floating bottom menu */
  body.contact .site-header{margin-bottom:6px;background:transparent;border-bottom:none}
  body.contact .page-hero{text-align:left;max-width:none;padding:0;
    margin:calc(96px + env(safe-area-inset-top)) 0 0}
  body.contact .page-hero h1{font-size:clamp(26px,4vw,36px);color:#fff;
    text-shadow:0 2px 10px rgba(7,42,80,.45);margin:0 0 12px}
  body.contact .page-hero p{font-family:'Quicksand',sans-serif;font-weight:600;font-size:13.5px;
    line-height:1.5;color:rgba(255,255,255,.88);margin:0}
  /* The two blocks become homepage-style cards */
  body.contact .newsletter, body.contact .form{background:#0f6cb5;border-radius:18px;
    padding:20px 18px;box-shadow:0 10px 26px rgba(7,42,80,.28)}
  body.contact .newsletter{margin:var(--secgap) auto 0}
  body.contact .contact-grid{margin-top:var(--secgap);gap:var(--secgap)}
  body.contact .newsletter h3, body.contact .form h3{color:#fff;font-size:20px}
  body.contact .newsletter p{color:rgba(255,255,255,.85);font-size:14.5px}
  body.contact .contact-info p{color:rgba(255,255,255,.94);font-size:15px;line-height:1.6}
  body.contact .contact-info strong{color:#fff}
  body.contact .contact-info a{color:#fff;text-decoration:underline}
  body.contact .form h3{margin-bottom:2px}
  body.contact .field label{color:rgba(255,255,255,.95)}
  body.contact .field .opt{color:rgba(255,255,255,.72)}
  /* pill inputs, borderless -- the map-chip / bottom-bar aesthetic */
  body.contact .field input, body.contact .field textarea, body.contact .field select,
  body.contact .newsletter input{border:none;border-radius:12px;background:#fff;color:var(--ink)}
  body.contact .field select{font-family:'DM Sans',serif;font-size:16px;padding:11px 13px;
    -webkit-appearance:none;appearance:none}
  body.contact .field input:focus, body.contact .field textarea:focus,
  body.contact .newsletter input:focus{outline:2px solid rgba(255,255,255,.65);outline-offset:1px}
  /* solid white pill button pops on the blue card */
  body.contact .btn{background:#fff;color:#0f6cb5}
  body.contact .btn:hover{background:rgba(255,255,255,.88)}
  /* Footer melts into the canvas (owner Jul 15): page background, no blue strip. */
  body.contact .site-footer{background:transparent}
  body.contact .site-footer .copy, body.contact .site-footer .dev-disclaimer{color:rgba(255,255,255,.75)}
  /* Let the form column shrink to the phone width. Grid/flex items default to min-width:auto,
     so the long <select> option ("A missing space (gallery, museum, studio…)") was forcing the
     form wider than the viewport and creating a horizontal scroll. */
  body.contact .contact-grid > *{min-width:0}
  body.contact .field{min-width:0}
  body.contact .field select,
  body.contact .field input,
  body.contact .field textarea{max-width:100%}
}
/* ---- Thanks page (owner Jul 15): the single "Thanks — got it" sits dead-center in the
   viewport, no footer, nothing else. Placed AFTER the contact block so it outranks the
   contact hero's left alignment and top margin on mobile. ---- */
body.thanks .page-hero{position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);
  margin:0;padding:0;text-align:center;width:max-content;max-width:90vw}
body.thanks .page-hero h1{margin:0}
/* ---- Off-screen render skipping (mobile). Long, image-heavy lists only pay layout/paint/image-
   decode for what's near the viewport; everything scrolled away is skipped until it approaches.
   Every container already reserves its box (card aspect-ratio, fixed thumb sizes) so there is NO
   layout shift; contain-intrinsic-size is just the placeholder height used while a block is off
   screen. The FIRST featured card is deliberately excluded -- it's the LCP and must paint at once.
   Unsupported browsers (older iOS) simply ignore this and behave as before. ---- */
@media(max-width:620px), (orientation: landscape) and (max-height:620px) and (pointer:coarse){
  .grid > .card:nth-child(n+2),
  .week-col__cards > .card:nth-child(n+2){content-visibility:auto;contain-intrinsic-size:auto 300px}
  .mcard{content-visibility:auto;contain-intrinsic-size:auto 108px}
  .row{content-visibility:auto;contain-intrinsic-size:auto 64px}
}
/* ---- native bottom navigation ---- */
.bottomnav{display:none}
@media(max-width:620px), (orientation: landscape) and (max-height:620px) and (pointer:coarse){
  /* floating translucent pill: centered with five touch targets, lifted off the bottom edge */
  .bottomnav{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));column-gap:4px;justify-content:center;position:fixed;
    left:50%;transform:translateX(-50%);width:min(96%,370px);
    bottom:calc(16px + env(safe-area-inset-bottom));
    z-index:1200;background:rgba(0,112,192,.52);   /* glass: content blurs through (owner Jul 16) */
    border:1px solid rgba(255,255,255,.5);border-radius:999px;
    backdrop-filter:blur(18px) saturate(1.5);-webkit-backdrop-filter:blur(18px) saturate(1.5);
    box-shadow:0 10px 30px rgba(43,38,31,.34);
    padding:8px 6px;transform-origin:center bottom;
    transition:transform .24s cubic-bezier(.22,.61,.36,1);will-change:transform}
  .bn-item{display:flex;flex-direction:column;align-items:center;gap:1px;position:relative;
    border:none;background:none;text-decoration:none;color:rgba(255,255,255,.92);cursor:pointer;
    padding:3px 4px 4px;border-radius:999px;font-family:'Quicksand',sans-serif;
    transition:background .16s ease,box-shadow .16s ease}
  .bn-i{height:22px;display:flex;align-items:center;justify-content:center;font-size:19px;line-height:1}
  .bn-i svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.7;
    stroke-linecap:round;stroke-linejoin:round}
  /* Keep the first three navigation glyphs on the same 24px visual canvas as
     See Saved and Journal. Their labels remain unchanged, so only the icon
     scale changes. */
  .bn-item:nth-child(-n+3) .bn-i{height:24px}
  .bn-item:nth-child(-n+3) .bn-i svg{width:24px;height:24px;stroke-width:1.7}
  /* Today’s eye gets a little more presence while keeping its linework lighter;
     its small accent is the same four-point sparkle used by the saved bookmark. */
  .bn-item:first-child .bn-i{height:28px}
  .bn-item:first-child .bn-i svg{width:28px;height:28px;stroke-width:1.35}
  .bn-item:first-child .bn-i .today-eye-sparkle{stroke-width:1.31;stroke:#d5a11e}
  .bn-item#to-see-tab{color:#fff}
  /* See Saved follows Journal's state pattern: the bookmark/sparkle remains an
     outline until the first saved event, then only the bookmark fills. */
  .bn-item#to-see-tab .bn-i{height:24px;gap:3px}
  .bn-item#to-see-tab .bn-i svg{width:24px;height:24px;fill:none;stroke-width:2.3;stroke-linecap:round;stroke-linejoin:round}
  .bn-item#to-see-tab .bn-i svg .sees-save-bookmark{fill:none;stroke:#7654cf}
  .bn-item#to-see-tab .bn-i svg .sees-save-sparkle{fill:none;stroke:#d5a11e}
  .bn-item#to-see-tab.has-saved .bn-i svg .sees-save-bookmark{fill:#7654cf;stroke:#7654cf}
  .saved-count{display:inline-block;min-width:1ch;margin-left:1px;vertical-align:middle;color:currentColor;font:700 12px/1 'Quicksand',sans-serif}
  .bn-item#journal-tab{color:#fff}
  .bn-item#journal-tab .bn-i svg{color:#d5a11e;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
  .bn-item#journal-tab .bn-i{height:24px}
  .bn-item#journal-tab .bn-i svg{width:24px;height:24px}
  .bn-item#to-see-tab .bn-i svg{filter:drop-shadow(0 1px 2px rgba(255,255,255,.45))}
  .bn-item#journal-tab .bn-i svg{filter:drop-shadow(0 1px 2px rgba(0,0,0,.48))}
  .bn-cal{display:inline-flex;flex-direction:column;width:21px;height:21px;border-radius:4px;
    border:1.5px solid currentColor;overflow:hidden}
  .bn-cal i{display:block;height:5px;background:currentColor}
  .bn-cal b{flex:1;display:flex;align-items:center;justify-content:center;
    font-family:'Quicksand',sans-serif;font-weight:700;font-size:10px;line-height:1}
  .bn-item.is-here .bn-cal i{background:#fff}
  .bn-l{font-size:10.5px;font-weight:700;letter-spacing:.04em;white-space:nowrap}
  /* Today has the taller 28px eye canvas; lower the other labels to its
     baseline without changing the touch-target or menu height. */
  .bn-item:not(:first-child) .bn-l{transform:translateY(4px)}
  .bn-item.is-here{
    color:#fff;
    background:transparent;
    border-radius:999px;
    box-shadow:none;
  }
  /* Active state is a true square highlight behind the selected icon and label. */
  .bn-item.is-here::before{
    content:"";
    position:absolute;
    left:50%;
    top:50%;
    width:calc(100% + 2px);
    height:62px;
    transform:translate(-50%,-50%);
    border-radius:999px;
    background:rgba(255,255,255,.14);
    box-shadow:inset 0 1px 0 rgba(255,255,255,.16),0 2px 8px rgba(0,47,102,.12);
    pointer-events:none;
    z-index:0;
  }
  .bn-item.is-here > *{
    position:relative;
    z-index:1;
  }

  /* ---- sticky filter chips (calendar page) ---- */
  .fbar{position:sticky;top:0;z-index:900;display:flex;gap:8px;overflow-x:auto;
    padding:10px 22px;margin:0 -22px 8px;background:rgba(247,245,240,.94);
    backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);
    border-bottom:1px solid var(--rule-soft);scrollbar-width:none}
  .fbar::-webkit-scrollbar{display:none}
  .fchip{flex:0 0 auto;font-family:'Quicksand',sans-serif;font-size:13px;font-weight:700;
    padding:7px 14px;border-radius:999px;border:1px solid var(--rule-soft);
    background:#fff;color:var(--ink);cursor:pointer;white-space:nowrap}
  .fchip.is-on{background:#0070c0;border-color:#0070c0;color:#fff}
  .fchip--near.is-on, .fchip--r.is-on{background:#ec4899;border-color:#ec4899;color:#fff}
  .fradii{display:inline-flex;gap:8px}
  /* ---- save hearts ---- */
  .hbtn{position:absolute;top:8px;right:8px;z-index:5;width:40px;height:40px;border-radius:50%;
    border:1.5px solid rgba(255,255,255,.92);background:transparent;color:#ec4899;font-size:20px;line-height:40px;
    text-align:center;cursor:pointer;box-shadow:none;padding:0}
  .row .hbtn, .mcard .hbtn{position:static;width:34px;height:34px;line-height:34px;flex:0 0 auto;
    margin-left:6px;box-shadow:none;background:transparent;font-size:18px}
  .hbtn.is-saved{color:#ec4899}
  .jbtn{position:absolute;right:8px;bottom:8px;z-index:5;width:40px;height:40px;border:1.5px solid rgba(255,255,255,.92);border-radius:50%;
    background:transparent;color:#fff;font:700 19px/40px 'Quicksand',sans-serif;text-align:center;
    cursor:pointer;box-shadow:none;padding:0}
  .jbtn svg{display:block;width:22px;height:22px;margin:auto;fill:none;stroke:currentColor;stroke-width:2.25;
    stroke-linecap:round;stroke-linejoin:round}
  .jbtn.is-journaled{color:#d5a11e}
  .jbtn.is-journaled svg{fill:currentColor;stroke:currentColor}
  .tshare{position:absolute;left:8px;bottom:8px;z-index:5;width:40px;height:40px;border:1.5px solid rgba(255,255,255,.92);border-radius:50%;
    display:grid;place-items:center;background:transparent;color:#0070c0;cursor:pointer;box-shadow:none;padding:0}
  .tshare svg{display:block;width:21px;height:21px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
  .tshare:hover,.tshare:focus-visible,.tshare.is-copied{color:#fff}
  .row .jbtn,.mcard .jbtn{position:static;width:34px;height:34px;line-height:34px;flex:0 0 auto;margin-left:2px;background:transparent}
  .card__panel>.jbtn,.cover__slide>.jbtn{right:8px;bottom:8px}
  .card__panel>.tshare{left:auto;right:84px;top:8px;bottom:auto}
  .cover__slide>.tshare{left:auto;right:90px;top:10px;bottom:auto}
  .mini__media>.jbtn{right:8px;bottom:8px}
  .mini__media>.tshare{left:8px;bottom:8px}
  .row .row__sq>.jbtn,.mcard .mcard__thumb>.jbtn{position:absolute;right:6px;bottom:6px;width:34px;height:34px;line-height:34px;margin:0}
  .row .row__sq>.tshare,.mcard .mcard__thumb>.tshare{left:6px;bottom:6px;width:34px;height:34px}
  .jbtn.is-moving{animation:journal-fly .28s ease forwards}
  .journal-moving{animation:journal-card-away .28s ease forwards}
  .is-journal-hidden{display:none!important}
  @keyframes journal-fly{to{transform:translate(26px,-34px) scale(.35);opacity:0}}
  @keyframes journal-card-away{to{transform:translateX(20px);opacity:0}}
  .card{position:relative}
  /* The map + heart action buttons are pinned to the card's top-right on mobile, so move the
     kicker badge to the top-LEFT -- otherwise "OPENING"/"ON VIEW" collides with the two circles
     (verified 375px overlap). Badge top-left, actions top-right is the conventional card layout. */
  .card .card__panel > .card__kick{grid-column:1;grid-row:1;justify-self:start}
  .cover__slide .hbtn{z-index:3}
  /* ---- itinerary / search sheet ---- */
  .savedpanel{position:fixed;left:0;right:0;bottom:0;z-index:1300;max-height:72vh;overflow-y:auto;
    background:var(--bg);border-radius:18px 18px 0 0;border-top:1px solid var(--rule-soft);
    box-shadow:0 -8px 30px rgba(43,38,31,.25);padding:18px 22px 90px;display:none}
  .savedpanel.is-open{display:block}
  /* My Itinerary now shares the map's Saved "Best driving order" blue. Keep the
     search sheet independent and raise every secondary line to accessible contrast. */
  #savedpanel{left:50%;right:auto;bottom:20px;width:min(520px,calc(100% - 24px));max-height:min(58vh,560px);
    transform:translateX(-50%);padding:14px 16px;background:#0f6cb5;color:#fff;
    border:1px solid rgba(255,255,255,.35);border-radius:16px;
    box-shadow:0 10px 28px rgba(43,38,31,.35)}
  /* search sheet wears the homepage canvas colour at 50 instead of 80 (owner, Jul 19) */
  .searchsheet{background:linear-gradient(rgba(3,110,202,.5),rgba(3,110,202,.5)),#fff}
  .ss-head{display:flex;align-items:center;justify-content:space-between;gap:12px}
  .ss-close{display:grid;place-items:center;width:34px;height:34px;flex:0 0 auto;border:1px solid rgba(255,255,255,.58);
    border-radius:50%;background:rgba(255,255,255,.34);color:var(--ink);font:700 16px/1 'Quicksand',sans-serif;cursor:pointer}
  .sp-head{display:flex;align-items:center;justify-content:space-between;gap:12px}
  .sp-close{display:grid;place-items:center;width:28px;height:28px;flex:0 0 auto;border:1px solid rgba(255,255,255,.55);
    border-radius:50%;background:rgba(255,255,255,.14);color:#fff;font:700 12px/1 'Quicksand',sans-serif;cursor:pointer}
  #savedpanel h3{font-family:'DM Sans',serif;font-weight:600;font-size:18px;margin:0}
  #savedpanel .sp-sub{font-size:11.5px;color:rgba(255,255,255,.78);margin:2px 0 8px}
  .sp-item{display:flex;align-items:baseline;gap:8px;padding:8px 0;border:0;border-bottom:1px dashed rgba(255,255,255,.3);
    width:100%;text-align:left;background:none;cursor:pointer;font-family:inherit;color:inherit}
  .sp-ev,.sp-ven{flex-wrap:wrap}
  .sp-item b{font-family:'DM Sans',serif;font-weight:600;font-size:14px;flex:1 1 auto;min-width:0}
  .sp-item .sp-meta{font-size:12px;color:rgba(255,255,255,.82);font-family:'Quicksand',sans-serif}
  .sp-item-open{display:block;flex:1 1 auto;min-width:0;padding:0;border:0;background:none;
    color:inherit;text-align:left;font:inherit;cursor:pointer}
  .sp-x{border:none;background:none;color:#ffb6d4;font-size:14px;cursor:pointer;padding:2px 4px}
  #savedpanel .sp-empty{font-style:italic;color:rgba(255,255,255,.78)}
  .sp-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin:10px 0 0;padding:0;
    border-radius:0;background:transparent;color:#fff}
  .sp-action{display:inline-flex;align-items:center;justify-content:center;min-height:34px;padding:0 11px;
    border:1px solid rgba(255,255,255,.52);border-radius:999px;background:rgba(255,255,255,.12);
    color:#fff;text-decoration:none;font:700 12px/1 'Quicksand',sans-serif;cursor:pointer}
  .sp-action--go{flex:1 1 auto}
  .sp-action--timed{flex:1 0 100%;min-height:38px;background:#fff;color:#075e9f;border-color:#fff}
  #savedpanel.has-time-route{max-height:min(78vh,760px)}
  .sp-time-route{margin-top:12px;padding-top:12px;border-top:1px solid rgba(255,255,255,.32)}
  .sp-route-intro{margin:0 0 9px;color:rgba(255,255,255,.86);font:600 11.5px/1.4 'Quicksand',sans-serif}
  .sp-route-adjust{margin:9px 1px 0;color:rgba(255,255,255,.82);font:700 10.5px/1.3 'Quicksand',sans-serif}
  .sp-route-adjust summary{display:inline-block;cursor:pointer;text-decoration:underline;text-underline-offset:2px}
  .sp-route-adjust[open] summary{margin-bottom:8px}
  .sp-route-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
  .sp-route-grid label{display:block;min-width:0;color:rgba(255,255,255,.78);
    font:700 10px/1.2 'Quicksand',sans-serif;text-transform:uppercase;letter-spacing:.07em}
  .sp-route-grid input,.sp-route-grid select{display:block;box-sizing:border-box;width:100%;height:36px;
    margin-top:4px;padding:0 9px;border:1px solid rgba(255,255,255,.48);border-radius:9px;
    background:rgba(255,255,255,.14);color:#fff;font:700 12px/1 'Quicksand',sans-serif;
    color-scheme:dark}
  .sp-route-grid option{color:#16344e;background:#fff}
  .sp-route-build{display:flex;align-items:center;justify-content:center;width:100%;min-height:38px;
    margin-top:9px;border:0;border-radius:999px;background:#fff;color:#075e9f;
    font:700 12px/1 'Quicksand',sans-serif;cursor:pointer}
  .sp-route-build:disabled{opacity:.72;cursor:wait}
  .sp-route-output{font:500 12px/1.4 'Quicksand',sans-serif}
  .sp-route-summary{margin:12px 0 2px;color:#fff;font:700 14px/1.35 'Quicksand',sans-serif}
  .sp-route-source{margin:0 0 9px;color:rgba(255,255,255,.76);font-size:10.5px}
  .sp-route-list{margin:0;padding:0;list-style:none;counter-reset:route-stop}
  .sp-route-list > li{position:relative;margin:0 0 8px;padding:0 0 0 27px;counter-increment:route-stop}
  .sp-route-list > li::before{content:counter(route-stop);position:absolute;left:0;top:21px;
    display:grid;place-items:center;width:19px;height:19px;border-radius:50%;background:#fff;color:#075e9f;
    font:700 10px/1 'Quicksand',sans-serif}
  .sp-route-leg{display:flex;align-items:center;justify-content:space-between;gap:8px;
    min-height:18px;color:rgba(255,255,255,.72);font-size:10px}
  .sp-route-leg::before{content:"";position:absolute;left:9px;margin-top:22px;height:20px;
    border-left:1px dashed rgba(255,255,255,.54)}
  .sp-route-stop{padding:8px 10px;border:1px solid rgba(255,255,255,.3);border-radius:10px;
    background:rgba(255,255,255,.1)}
  .sp-route-stop time,.sp-route-stop b,.sp-route-stop span{display:block}
  .sp-route-stop time{margin-bottom:2px;color:#fff;font-size:11px;font-weight:700}
  .sp-route-stop b{font-family:'DM Sans',serif;font-size:13px}
  .sp-route-stop span{margin-top:1px;color:rgba(255,255,255,.78);font-size:10.5px}
  .sp-route-stop .sp-route-stale{display:inline-flex;width:max-content;margin-top:6px;padding:3px 7px;
    border:1px solid rgba(255,222,132,.52);border-radius:999px;color:#ffe7a7;background:rgba(91,61,0,.22);
    font-size:9px;font-weight:700}
  .sp-route-dwell{display:flex;align-items:center;gap:5px;width:max-content;margin-top:7px;
    color:rgba(255,255,255,.75);font:700 9.5px/1 'Quicksand',sans-serif}
  .sp-route-dwell select{height:25px;padding:0 6px;border:1px solid rgba(255,255,255,.4);
    border-radius:7px;background:rgba(255,255,255,.14);color:#fff;font:700 10px/1 'Quicksand',sans-serif;
    color-scheme:dark}
  .sp-route-actions{display:flex;gap:8px;margin:10px 0 0}
  .sp-route-actions a,.sp-route-actions button{display:flex;align-items:center;justify-content:center;flex:1 1 0;
    min-height:36px;padding:0 10px;border:1px solid rgba(255,255,255,.5);border-radius:999px;
    background:rgba(255,255,255,.12);color:#fff;text-decoration:none;
    font:700 11px/1.1 'Quicksand',sans-serif;text-align:center;cursor:pointer}
  .sp-route-warning{margin:8px 0 0;color:rgba(255,255,255,.68);font-size:9.5px}
  .sp-route-omitted{margin:9px 0 0;color:rgba(255,255,255,.82)}
  .sp-route-omitted h4{margin:0;font:700 11px/1.3 'Quicksand',sans-serif}
  .sp-route-skipped{margin:6px 0 0;padding:0;list-style:none}
  .sp-route-skipped li{padding:5px 0;border-top:1px dashed rgba(255,255,255,.24)}
  .sp-route-skipped b,.sp-route-skipped span{display:block}
  .sp-route-skipped span{color:rgba(255,255,255,.7);font-size:10.5px}
  .sp-route-loading,.sp-route-empty{margin:10px 0;color:rgba(255,255,255,.82)}
  @media(max-width:620px), (orientation: landscape) and (max-height:620px) and (pointer:coarse){
    #savedpanel{bottom:calc(96px + env(safe-area-inset-bottom));max-height:42vh;padding:12px 14px;
      border-radius:14px}
    #savedpanel.has-time-route{max-height:calc(100dvh - 128px)}
  }
  /* Full-screen route workspace. It follows the reference flow (My List -> My Route)
     while retaining Sees Journal's azure canvas, DM Sans headings, and glass cards. */
  #savedpanel,#savedpanel.has-time-route{
    inset:0;left:0;right:0;bottom:0;width:100%;height:100dvh;max-height:none;
    transform:none;box-sizing:border-box;padding:calc(16px + env(safe-area-inset-top)) 16px
      calc(24px + env(safe-area-inset-bottom));border:0;border-radius:0;
    background:
      radial-gradient(circle at 85% 5%,rgba(255,255,255,.2),transparent 30%),
      linear-gradient(165deg,#0878c7 0%,#0068b2 56%,#07568f 100%);
    color:#fff;overflow-y:auto;overscroll-behavior:contain}
  #savedpanel .sp-close{width:36px;height:36px;font-size:15px;background:rgba(255,255,255,.12)}
  .sp-list-head,.sp-route-pagehead{position:sticky;top:calc(-16px - env(safe-area-inset-top));
    z-index:6;display:flex;align-items:center;justify-content:space-between;gap:12px;
    margin:-16px -16px 14px;padding:calc(18px + env(safe-area-inset-top)) 16px 13px;
    background:rgba(2,91,156,.82);border-bottom:1px solid rgba(255,255,255,.18);
    backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px)}
  #savedpanel .sp-list-head h3,#savedpanel .sp-route-pagehead h3{font-size:25px;line-height:1.1}
  .sp-list-head h3 span{display:inline-grid;place-items:center;min-width:27px;height:27px;margin-left:5px;
    border-radius:999px;background:rgba(255,255,255,.18);font:700 12px/1 'Quicksand',sans-serif}
  .sp-list-head p,.sp-route-pagehead p{margin:4px 0 0;color:rgba(255,255,255,.76);
    font:600 11px/1.3 'Quicksand',sans-serif}
  .sp-route-pagehead{justify-content:flex-start}
  .sp-route-pagehead>div{flex:1;text-align:center}
  .sp-route-back{display:grid;place-items:center;width:38px;height:38px;border:1px solid rgba(255,255,255,.45);
    border-radius:50%;background:rgba(255,255,255,.12);color:#fff;font:400 32px/1 'DM Sans',serif;cursor:pointer}
  .sp-list-filters{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin-bottom:14px}
  .sp-list-filters button{min-height:38px;border:1px solid rgba(255,255,255,.36);border-radius:999px;
    background:rgba(255,255,255,.12);color:#fff;font:700 12px/1 'Quicksand',sans-serif;cursor:pointer}
  .sp-list-filters button.is-on{background:#fff;color:#075e9f;border-color:#fff}
  .sp-list-filters span{opacity:.72;margin-left:3px}
  .sp-list{display:grid;gap:10px;padding-bottom:118px}
  body.savedpage #savedpanel.is-inline .sp-list-group{display:grid;gap:10px}
  body.savedpage #savedpanel.is-inline .sp-list-group + .sp-list-group{margin-top:8px;padding-top:16px;border-top:1px solid var(--rule-soft)}
  body.savedpage #savedpanel.is-inline .sp-list-group h4{margin:0 0 1px;color:var(--ink-strong);font:700 14px/1.2 'Quicksand',sans-serif}
  .sp-list-item{position:relative;display:flex;align-items:center;gap:7px;min-height:84px;padding:8px 9px;
    border:1px solid rgba(255,255,255,.38);border-radius:14px;background:rgba(255,255,255,.94);
    color:#17364f;box-shadow:0 7px 18px rgba(3,43,77,.16);box-sizing:border-box;overflow:hidden}
  /* A closed venue dims the route-stop content, but the Saved heart remains a
     normal, actionable removal control. Applying opacity/filter to the whole
     article made that affordance look disabled even though it still worked. */
  .sp-list-item.is-closed .sp-item-open,
  .sp-list-item.is-closed .sp-list-select{opacity:.58;filter:grayscale(.72)}
  .sp-list-item .sp-item-open{display:flex;flex:1 1 0;width:0;min-width:0;align-items:center;gap:11px;color:#17364f}
  .sp-list-item img,.sp-list-thumb{width:66px;height:66px;flex:0 0 66px;border-radius:9px;object-fit:cover;
    background:#d9e9f5}
  .sp-list-thumb{display:grid;place-items:center;color:#0f6cb5;font-size:24px}
  .sp-list-copy{display:block;min-width:0}
  .sp-list-copy b,.sp-list-copy span,.sp-list-copy small{display:block}
  .sp-list-copy b{font-family:'DM Sans',serif;font-size:14px;line-height:1.2}
  .sp-list-copy span{margin-top:2px;font:600 11px/1.25 'Quicksand',sans-serif}
  .sp-list-copy small{margin-top:5px;color:#5b6d7d;font:600 9.5px/1.25 'Quicksand',sans-serif;
    white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .sp-list-copy .sp-list-duration{margin-top:4px;color:#075e9f;font-size:10px}
  .sp-list-copy .sp-list-availability{margin-top:3px;color:#3d7653;font-size:9px}
  .sp-list-copy .sp-list-availability.is-closed{color:#7b5799}
  .sp-list-copy .sp-list-closed{color:#8a4b57;text-decoration:underline;text-underline-offset:2px}
  .sp-list-select{position:relative;width:38px;height:24px;flex:0 0 38px;padding:0;border:0;border-radius:999px;background:transparent;color:#fff;cursor:pointer}
  .sp-list-toggle-bar{position:absolute;left:3px;top:5px;display:block;width:32px;height:14px;border-radius:999px;background:#aeb9c3;box-shadow:inset 0 1px 1px rgba(0,0,0,.18),0 1px 0 rgba(255,255,255,.32);transition:background .2s ease}
  .sp-list-select::after{content:"";position:absolute;left:4px;top:4px;width:16px;height:16px;border-radius:50%;background:#fff;box-shadow:0 1px 3px rgba(23,54,79,.32);transition:transform .2s ease}
  .sp-list-select.is-on .sp-list-toggle-bar{background:#e2c76d;box-shadow:inset 0 1px 1px rgba(112,80,0,.2),0 1px 0 rgba(255,255,255,.45)}
  .sp-list-select.is-on::after{transform:translateX(14px)}
  .sp-list-item .sp-x{display:none}
  .sp-list-footer{position:fixed;right:0;bottom:0;left:0;z-index:8;display:grid;grid-template-columns:1fr auto;
    gap:8px;padding:12px 16px calc(14px + env(safe-area-inset-bottom));
    border-top:1px solid rgba(255,255,255,.25);background:rgba(4,82,141,.88);
    backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px)}
  .sp-list-footer .sp-action{min-height:52px;border-radius:14px}
  .sp-list-footer .sp-action--timed{background:#fff;color:#075e9f;border-color:#fff;font-size:14px}
  .sp-list-footer .sp-action--timed span{display:inline-grid;place-items:center;min-width:22px;height:22px;
    margin-left:7px;border-radius:50%;background:#e4eef7;font-size:10px}
  .sp-list-footer #sp-share{padding:0 14px}
  .sp-list-footer button:disabled{opacity:.45}
  .sp-route-closed-note{grid-column:1/-1;margin:0;color:rgba(255,255,255,.8);font:600 10px/1.25 'Quicksand',sans-serif;text-align:center}

  .sp-time-route{margin:0;padding:0 0 36px;border:0}
  .sp-route-controls{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:0;margin-bottom:10px;
    padding:10px 4px;border:1px solid rgba(255,255,255,.4);border-radius:14px;background:rgba(255,255,255,.94);
    color:#18364e;box-shadow:0 7px 18px rgba(3,43,77,.14)}
  .sp-route-controls label{position:relative;display:flex;min-width:0;flex-direction:column;align-items:center;
    padding:0 4px;border-right:1px solid #dce5ec;font:600 9px/1.15 'Quicksand',sans-serif}
  .sp-route-controls label:last-child{border-right:0}
  .sp-route-control-icon{height:20px;color:#075e9f;font-size:17px;line-height:1}
  .sp-route-controls input,.sp-route-controls select{width:100%;height:28px;margin-top:2px;padding:0;border:0;
    background:transparent;color:#17364f;text-align:center;text-align-last:center;
    font:700 10px/1 'Quicksand',sans-serif;color-scheme:light}
  .sp-route-controls .sp-route-start{overflow:hidden}
  .sp-route-date-label{height:15px;margin-top:2px;color:#334f67;font-size:9px;white-space:nowrap}
  .sp-route-controls .sp-route-start input[type="date"]{position:absolute;top:0;right:0;left:0;width:100%;height:58%;opacity:0;cursor:pointer}
  .sp-route-controls .sp-route-start input[type="time"]{height:28px;margin-top:0;font-size:12px}
  .sp-route-controls input[type="date"]{font-size:9.5px}
  .sp-route-intro{display:flex;align-items:center;gap:7px;margin:0 0 10px;padding:10px 12px;border-radius:11px;
    background:rgba(255,255,255,.9);color:#075e9f;font:700 10.5px/1.35 'Quicksand',sans-serif}
  .sp-route-intro span{font-size:17px}
  .sp-route-output{font:600 11px/1.4 'Quicksand',sans-serif}
  .sp-route-loading{display:flex;min-height:180px;flex-direction:column;align-items:center;justify-content:center;
    margin:0;border:1px solid rgba(255,255,255,.3);border-radius:16px;background:rgba(255,255,255,.1)}
  .sp-route-loading i{width:30px;height:30px;margin-bottom:12px;border:3px solid rgba(255,255,255,.3);
    border-top-color:#fff;border-radius:50%;animation:spRouteSpin .8s linear infinite}
  .sp-route-loading b{font-family:'DM Sans',serif;font-size:15px}
  .sp-route-loading span{margin-top:3px;color:rgba(255,255,255,.72);font-size:9.5px}
  @keyframes spRouteSpin{to{transform:rotate(360deg)}}
  .sp-route-map{height:225px;margin:0;border-radius:14px;overflow:hidden;background:#dce9f1;box-shadow:inset 0 0 0 1px rgba(255,255,255,.3)}
  /* Keep the Saved-page planner map in the same monochrome visual language as the
     dedicated map page; route markers and the route line remain legible above it. */
  .sp-route-map .leaflet-tile-pane{filter:grayscale(1)}
  .sp-route-map-marker{display:grid;place-items:center;width:30px!important;height:30px!important;
    margin:0!important;border:2px solid #fff;border-radius:50%;background:#0f6cb5;color:#fff;
    box-shadow:0 2px 8px rgba(0,42,80,.36);font:700 12px/1 'Quicksand',sans-serif}
  .sp-route-map-marker.is-theater{background:#6887a7}
  .sp-route-map-marker.is-drag{background:#73519b}
  .sp-route-map-marker.is-comedy{background:#0f766e}
  .sp-route-summary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));margin:0 0 8px;padding:12px 7px;
    border-radius:0;background:rgba(255,255,255,.96);color:#17364f;box-shadow:0 6px 16px rgba(3,43,77,.15)}
  .sp-route-summary span{display:flex;min-width:0;flex-direction:column;align-items:center;border-right:1px solid #dce5ec;
    color:#677887;font-size:8.5px;text-align:center}
  .sp-route-summary span:last-child{border:0}
  .sp-route-summary b{color:#17364f;font-size:14px;white-space:nowrap}
  .sp-route-source{margin:8px 0 12px;color:rgba(255,255,255,.76);font-size:9.5px;text-align:center}
  .sp-route-start-row{display:flex;align-items:center;gap:12px;margin:0 0 5px;padding:7px 8px 9px 13px;color:#fff}
  .sp-route-start-dot{width:15px;height:15px;flex:0 0 15px;border:3px solid #fff;border-radius:50%;
    background:#1b72dc;box-shadow:0 0 0 2px rgba(255,255,255,.35)}
  .sp-route-start-row b,.sp-route-start-row span{display:block}
  .sp-route-start-row b{font:700 12px/1.2 'Quicksand',sans-serif}
  .sp-route-start-row span{margin-top:2px;color:rgba(255,255,255,.76);font-size:10px}
  .sp-route-list{margin:0;padding:0;list-style:none;counter-reset:route-stop}
  .sp-route-list>li{position:relative;margin:0 0 8px;padding-left:31px;counter-increment:route-stop}
  .sp-route-list>li::before{content:counter(route-stop);position:absolute;left:0;top:calc(50% - 11px);
    z-index:2;display:grid;place-items:center;width:23px;height:23px;border:2px solid #fff;border-radius:50%;
    background:#0f6cb5;color:#fff;font:700 10px/1 'Quicksand',sans-serif}
  .sp-route-list>li:not(:last-child)::after{content:"";position:absolute;left:12px;top:50%;bottom:-20px;
    border-left:2px solid rgba(255,255,255,.58)}
  .sp-route-leg{position:relative;display:flex;align-items:center;gap:7px;min-height:25px;margin:0 0 4px -24px;
    color:rgba(255,255,255,.82);font-size:9.5px}
  .sp-route-leg span{font-size:15px}
  .sp-route-stop{display:grid;grid-template-columns:58px minmax(0,1fr) auto;align-items:center;gap:10px;padding:9px;
    border:1px solid rgba(255,255,255,.4);border-radius:13px;background:rgba(255,255,255,.95);
    color:#17364f;box-shadow:0 6px 15px rgba(3,43,77,.14)}
  .sp-route-stop>img,.sp-route-thumb{width:58px;height:58px;border-radius:9px;object-fit:cover;background:#dce9f1}
  .sp-route-thumb{display:grid!important;place-items:center;color:#0f6cb5;font-size:22px}
  .sp-route-stopcopy{min-width:0}
  .sp-route-stopcopy b,.sp-route-stopcopy span{display:block}
  .sp-route-stopcopy b{font-family:'DM Sans',serif;font-size:13px;line-height:1.15}
  .sp-route-stopcopy>span{margin-top:2px;color:#667786;font-size:9.5px}
  .sp-route-stopcopy .sp-route-hours{display:inline-block;margin-top:5px;padding:2px 5px;border-radius:4px;
    background:#dff4e6;color:#18723d;font-size:8.5px}
  .sp-route-stopcopy .sp-route-curtain{display:inline-block;margin-top:5px;padding:2px 5px;border-radius:4px;
    background:#f9ddea;color:#9f2760;font-size:8.5px}
  .sp-route-stop time{color:#075e9f;font-size:10.5px;font-weight:700;white-space:nowrap;text-align:right}
  .sp-route-dwell select:focus,.sp-route-controls input:focus,.sp-route-controls select:focus{outline:2px solid rgba(0,112,192,.35);outline-offset:1px}
  .sp-route-stop .sp-route-stale{display:inline-block;width:max-content;margin-top:4px;padding:2px 5px;
    border:0;border-radius:4px;background:#fff0cc;color:#8c5a00;font-size:8px}
  .sp-route-dwell{display:flex;align-items:center;gap:4px;width:max-content;margin-top:5px;color:#667786;
    font:700 8.5px/1 'Quicksand',sans-serif}
  .sp-route-dwell select{height:24px;padding:0 5px;border:1px solid #c7d4de;border-radius:6px;background:#fff;
    color:#075e9f;font:700 8.5px/1 'Quicksand',sans-serif;color-scheme:light}
  .sp-route-actions{position:sticky;bottom:calc(-24px - env(safe-area-inset-bottom));z-index:5;display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin:13px -16px -36px;padding:11px 16px
      calc(14px + env(safe-area-inset-bottom));background:transparent;
    backdrop-filter:none;-webkit-backdrop-filter:none}
  .sp-route-actions a,.sp-route-actions button{min-height:48px;border-radius:13px;background:#fff;color:#075e9f;
    border-color:#fff;font-size:12px}
  .sp-route-actions #sp-route-share{grid-column:1/-1;min-height:38px;background:transparent;color:#fff}
  /* On compact Saved routes the share action replaces the Apple Maps slot. */
  .sp-route-actions #sp-route-share[data-share-label="Share my day"]{grid-column:auto;min-height:48px;
    background:#fff;color:#075e9f;border-color:#fff}
  .sp-route-actions #sp-route-save{grid-column:1/-1;background:var(--c-gold);color:#fff;border-color:var(--c-gold)}
  .sp-route-map-frame{position:relative;width:100%;margin:0 0 8px}
  .sp-route-map-full{display:flex;align-items:center;justify-content:center;width:100%;min-height:38px;margin:8px 0 0;
    padding:0 11px;border:1px solid rgba(255,255,255,.72);border-radius:999px;background:rgba(255,255,255,.9);
    color:#17364f;font:700 11px/1 'Quicksand',sans-serif;cursor:pointer;box-shadow:0 3px 10px rgba(3,43,77,.2)}
  .sp-route-map-full[hidden]{display:none}
  .sp-route-map-full-close{position:fixed;top:calc(14px + env(safe-area-inset-top));right:14px;z-index:1602;
    display:grid;place-items:center;width:40px;height:40px;padding:0;border:1px solid rgba(255,255,255,.72);
    border-radius:50%;background:rgba(0,0,0,.56);color:#fff;font:700 16px/1 'Quicksand',sans-serif;cursor:pointer}
  .sp-route-map.is-fullscreen{position:fixed!important;inset:0;z-index:1600;width:100vw;height:100dvh;
    margin:0;border-radius:0;background:#dce9f1}
  .sp-route-warning{margin:8px 0;color:rgba(255,255,255,.7);font-size:8.5px}
  .sp-route-omitted{margin:12px 0;padding:11px;border:1px solid rgba(255,192,204,.65);border-radius:13px;
    background:rgba(106,21,52,.28);color:#fff}
  .sp-route-omitted h4{margin:0;font:700 12px/1.3 'Quicksand',sans-serif}
  .sp-route-skipped{margin:7px 0 0;padding:0;list-style:none}
  .sp-route-skipped li{padding:7px 0;border-top:1px solid rgba(255,255,255,.2)}
  .sp-route-skipped b,.sp-route-skipped span{display:block}
  .sp-route-skipped span{margin-top:2px;color:rgba(255,255,255,.78);font-size:9.5px}
  .sp-route-empty{display:flex;flex-direction:column;gap:4px;margin:10px 0;padding:16px;border:1px solid rgba(255,255,255,.34);
    border-radius:13px;background:rgba(255,255,255,.1);color:#fff}
  .sp-route-empty b{font-family:'DM Sans',serif;font-size:15px}
  .sp-route-empty span{color:rgba(255,255,255,.76);font-size:10px}
  /* ---- quick map preview ---- */
  .mapbtn{display:inline-flex;align-items:center;justify-content:center;border:1.5px solid rgba(255,255,255,.92);
    background:transparent;color:#0070c0;cursor:pointer;padding:2px 6px;flex:0 0 auto}
  .mapbtn svg{width:21px;height:21px;fill:none;stroke:currentColor;stroke-width:1.55;
    stroke-linecap:round;stroke-linejoin:round}
  .card .mapbtn{position:absolute;top:8px;right:52px;z-index:5;width:40px;height:40px;
    border-radius:50%;background:transparent;box-shadow:none;
    line-height:40px;text-align:center;padding:0}
  .cover__slide .mapbtn{position:absolute;top:10px;right:58px;z-index:3;width:40px;height:40px;
    border-radius:50%;background:transparent;box-shadow:none;
    line-height:40px;text-align:center;padding:0}
  .mapsheet{position:fixed;left:0;right:0;bottom:0;z-index:1300;background:var(--bg);
    border-radius:18px 18px 0 0;border-top:1px solid var(--rule-soft);
    box-shadow:0 -8px 30px rgba(43,38,31,.25);padding:14px 20px 26px;display:none}
  .mapsheet.is-open{display:block}
  .mapsheet__map{height:190px;border-radius:12px;overflow:hidden;margin:8px 0 12px;background:#e7e2d9}
  .mapsheet__map .leaflet-tile-pane{filter:grayscale(1)}
  .mapsheet h3{font-family:'DM Sans',serif;font-weight:600;font-size:19px;margin:0}
  .mapsheet .ms-sub{font-family:'Quicksand',sans-serif;font-size:13px;color:#6b6258;margin:2px 0 0}
  .mapsheet .ms-detail strong{font-weight:700;color:#0070c0;margin-right:4px}
  .ms-near{margin:0 0 12px;padding:0;list-style:none}
  .ms-near li{display:flex;justify-content:space-between;gap:10px;font-size:14px;
    padding:7px 0;border-bottom:1px dashed var(--rule-soft)}
  .ms-near .ms-walk{font-family:'Quicksand',sans-serif;font-weight:600;color:#0070c0;white-space:nowrap}
  .ms-near a{color:inherit;text-decoration:none}
  .ms-actions{display:flex;gap:10px;flex-wrap:wrap}
  .ms-head{font-family:'Quicksand',sans-serif;font-size:11.5px;font-weight:700;letter-spacing:.12em;
    text-transform:uppercase;color:#8a8378;margin:0 0 4px}
  .ss-input{width:100%;font-family:'DM Sans',serif;font-size:17px;padding:10px 14px;margin:8px 0 12px;
    border:1px solid var(--rule-soft);border-radius:10px;background:#fff;color:var(--ink)}
}

/* ---- mobile tile treatment: footer blue behind text, white type ---- */
@media(max-width:620px), (orientation: landscape) and (max-height:620px) and (pointer:coarse){
  .fcard__strip{background:rgba(0,112,192,.92)}
  .fcard__strip strong{color:#fff}
  .fcard__strip span{color:rgba(255,255,255,.85)}
  .card__body{background:#0070c0}
  .card__body .card__kick{color:#fff;box-shadow:0 0 0 1.5px rgba(255,255,255,.55)}
  .card__body .card__title, .card__body .card__title a{color:#fff}
  .card__body .card__venue, .card__body .card__date, .card__body .card__hook,
  .card__body .card__why, .card__body .card__who{color:rgba(255,255,255,.88)}
  .card__body .card__rate{color:#ffd166}
  .card__body .card__more, .card__body a{color:#fff;text-decoration-color:rgba(255,255,255,.5)}
  .vcard__body{background:#0070c0}
  .vcard__body .vcard__name a{color:#fff}
  .vcard__body .vcard__addr{color:rgba(255,255,255,.85)}
  .vcard__body .vcard__detail, .vcard__body .vcard__link{color:#fff;text-decoration-color:rgba(255,255,255,.5)}
  .vcard__body .vcard__map{color:#fff;border-color:rgba(255,255,255,.55);background:transparent}
  /* hero + Artist of the Day join the same blue tile format */
  .hero__scrim{background:linear-gradient(180deg,rgba(0,112,192,0) 25%,rgba(0,112,192,.92) 100%)}
  .bday-card{background:#0070c0;border-color:#0070c0}
  .bday-card .bday-name, .bday-card .bday-name a, .bday-card .bday-kicker,
  .bday-card .bday-initials{color:#fff}
  .bday-card .bday-bio, .bday-card .bday-when, .bday-card .bday-sub,
  .bday-card .bday-credit{color:rgba(255,255,255,.88)}
  .bday-card .bday-links a{color:#fff;text-decoration-color:rgba(255,255,255,.5)}
  /* Artist of the Day as a BREAK in the listing (owner Jul 14): a tile-shaped card (same radius/
     shadow language as the event cards), centered header on the canvas, no divider hairline. */
  body.home .bday-sec{border-top:none;margin-top:var(--secgap,24px);padding-top:0;padding-bottom:0}
  body.home .bday-head{text-align:center;margin-bottom:16px}
  body.home .bday-head h2{color:#fff;font-size:26px;text-shadow:0 1px 3px rgba(7,42,80,.65),0 3px 12px rgba(7,42,80,.5)}
  body.home .bday-sub{color:rgba(255,255,255,.85);margin-left:auto;margin-right:auto}
  body.home .bday-kicker{background:var(--c-gold)}
  body.home .bday-card{border-radius:18px;overflow:hidden;border:none;
    box-shadow:0 10px 26px rgba(7,42,80,.28)}
  /* ---- TRANSLUCENT BLUE CANVAS: page bg is the LOGO's azure (#047cc8, sampled from logo.png)
     at 70% alpha over white (owner, Jul 13 -- earlier bluer tone read purple); loose type stays
     white. Composited over an explicit #fff base so it looks identical regardless of the
     browser's light/dark canvas. ---- */
  body.home{background:linear-gradient(rgba(3,110,202,.8),rgba(3,110,202,.8)),#fff}
  body.home .logo img,body.opennow .logo img,body.planpage .logo img,body.contact .logo img{box-shadow:var(--mobile-raised-shadow)}
  body.home .page-hero .h1-home{color:#fff}
  body.home .homestats{color:rgba(255,255,255,.85)}
  body.home .homestats strong{color:#fff}
  body.home .page-hero .page-hero__dates{color:#fff}
  /* Same two-layer shadow as the San Diego wordmark (owner Jul 14: "All On View" and
     "Art Walks & Crawls" need clearly visible shadows) */
  body.home .week-col__head h2, body.home .openings-sec h2, body.home .shead h2,
  body.home .week-col h2{color:#fff;text-shadow:0 1px 3px rgba(7,42,80,.65),0 3px 12px rgba(7,42,80,.5)}
  body.home .shead p{color:rgba(255,255,255,.82);text-shadow:0 1px 8px rgba(7,42,80,.4)}
  body.home .week-col__empty{color:rgba(255,255,255,.8)}
  body.home .tag-blue{background:rgba(255,255,255,.18);color:#fff;border:1px solid rgba(255,255,255,.45)}
}
.concierge__hello{margin:0;font-family:'DM Sans',serif;font-style:italic;font-size:21px;color:var(--ink-strong)}
.concierge__meta{margin:6px 0 12px;font-size:15.5px;line-height:1.55}
.cg-list{margin:0 0 14px;padding-left:22px;font-size:15px;line-height:1.7}
.cg-stars{color:#b8860b;letter-spacing:.06em;font-size:13px}
.cg-venue{color:#6b6258;font-size:13.5px}
.cg-list a{font-size:13.5px}
.concierge__actions{display:flex;gap:10px;flex-wrap:wrap;margin:4px 0 6px}
.cg-total{font-size:14px;margin:10px 0 0}
.concierge__tonight{margin:12px 0 0;font-size:14px;border-top:1px dashed var(--rule-soft);padding-top:12px}
.cg-newhead{margin:10px 0 2px;font-family:'Quicksand',sans-serif;font-size:11.5px;font-weight:700;
  letter-spacing:.13em;text-transform:uppercase;color:#ec4899}
.cg-newline{margin:2px 0;font-size:14.5px}
.concierge__ambient{margin:6px 0 0;font-size:13px;color:#8a8378;font-family:'Quicksand',sans-serif;
  letter-spacing:.06em;text-transform:uppercase}
@media(max-width:620px), (orientation: landscape) and (max-height:620px) and (pointer:coarse){ .concierge{padding:16px 16px} }
.leaflet-popup-content .walk-add{font-family:'Quicksand',sans-serif;font-size:12px;font-weight:700;margin-top:4px;
  padding:4px 10px;border-radius:999px;border:1px solid #ec4899;background:#fff;color:#ec4899;cursor:pointer}
#homemap,#theatermap,#dragmap{height:460px;border:1px solid var(--rule-soft);border-radius:12px;overflow:hidden;margin-top:6px}
#comedymap{height:460px;border:1px solid var(--rule-soft);border-radius:12px;overflow:hidden;margin-top:6px}
.maplegend{display:flex;align-items:center;gap:8px 10px;margin:0 0 12px;font-family:'Quicksand',sans-serif;font-weight:600;font-size:13.5px;color:var(--ink)}
.maplegend__dot{display:inline-block;width:13px;height:13px;border-radius:50%;border:2px solid #fff;box-shadow:0 0 0 1px rgba(0,0,0,.12)}
.maplegend__dot--today{background:#ec4899}
.maplegend__dot--onview{background:#0070c0;margin-left:14px;width:11px;height:11px}
@media(max-width:620px), (orientation: landscape) and (max-height:620px) and (pointer:coarse){ #homemap{height:360px} }

/* Atlas venue pages: hours line injected by main.js from data/hours.json (v110) */
.vp-hours{font-family:'Quicksand',sans-serif;font-weight:600;font-size:13.5px;letter-spacing:.02em;color:#6b6258;margin:8px 0 0}

/* Cover slides paint via a real <img> (v111): CSS background-image inside an iOS
   touch-scroll carousel is unreliably rasterized (silent blank); a real element
   also gains the site-standard onerror fallback and first-slide load priority. */
@media(max-width:620px), (orientation: landscape) and (max-height:620px) and (pointer:coarse){
  .cover__img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;border-radius:20px}
}

/* Hero stats line (v112): on-view-now / opened past week / closing this week */
.homestats{font-family:'Quicksand',sans-serif;font-weight:600;font-size:14.5px;
  letter-spacing:.02em;color:#6b6258;margin:6px 0 2px}
.homestats strong{color:#0070c0;font-weight:700}
.homestats .hs-week{display:block;margin-top:3px}
@media(max-width:620px), (orientation: landscape) and (max-height:620px) and (pointer:coarse){ .homestats{font-size:13.5px} }

/* Mobile hero order (v113, owner ask): title -> stats -> dates. Desktop keeps
   title -> dates -> stats. Scoped to the homepage hero only. */
@media(max-width:620px), (orientation: landscape) and (max-height:620px) and (pointer:coarse){
  /* Masthead: no title, no count. Date line over an "Updated <day, year>" line, both CENTERED in
     the space between the floating logo and the right edge. */
  body.home .site-header{margin-bottom:6px}
  /* Floating logo: pinned like the toggle so it stays visible as the page scrolls. */
  /* top matches the 14px left inset; both dimensions are 7% below the previous 96px tile. */
  body.home .logo,body.opennow .logo,body.planpage .logo,body.contact .logo{position:fixed;top:calc(14px + env(safe-area-inset-top));left:14px;
    width:89.28px;height:89.28px;z-index:1150}
  /* Footer melts into the canvas (owner Jul 14): no blue strip at the page bottom. */
  body.home .site-footer{background:transparent}
  /* Footer lines (owner Jul 15, home both categories + Open Now): the beta note reads first,
     with the (c) line centered UNDER it at the SAME font size. */
  body.home .site-footer .wrap, body.opennow .site-footer .wrap, body.contact .site-footer .wrap,
  body.legal .site-footer .wrap, body.journalpage .site-footer .wrap{
    flex-direction:column;align-items:center;gap:3px}
  body.home .site-footer .dev-disclaimer, body.opennow .site-footer .dev-disclaimer,
  body.contact .site-footer .dev-disclaimer, body.legal .site-footer .dev-disclaimer,
  body.journalpage .site-footer .dev-disclaimer{
    order:1;white-space:normal;text-align:center}
  body.home .site-footer .copy, body.opennow .site-footer .copy, body.contact .site-footer .copy,
  body.legal .site-footer .copy, body.journalpage .site-footer .copy{
    order:2;font-size:clamp(9px,2.9vw,11.5px);letter-spacing:.01em;opacity:.75;text-align:center}
  /* Contact refinement (owner Jul 15 PM): the footer signature is ONE wrapped ROW -- the
     beta footnote takes the full first line (flex-basis:100%), then "(c) 2026 Sees Journal
     · Privacy · Terms" sit together on the second. AFTER the shared column rule above so
     the row layout wins the cascade (same specificity, later source order). */
  body.home .site-footer .wrap, body.opennow .site-footer .wrap, body.contact .site-footer .wrap, body.legal .site-footer .wrap, body.journalpage .site-footer .wrap{flex-flow:row wrap;justify-content:center;gap:4px 0}
  body.home .site-footer .dev-disclaimer, body.opennow .site-footer .dev-disclaimer, body.contact .site-footer .dev-disclaimer, body.legal .site-footer .dev-disclaimer, body.journalpage .site-footer .dev-disclaimer{flex-basis:100%}
  /* The stats block no longer sits beside the logo: it moves down to just above the Featured
     title (order -2 below), centered full-width. margin-top clears the FIXED logo (14+83px). */
  body.home .page-hero{display:flex;flex-direction:column;align-items:center;
    text-align:center;padding:0 14px;margin-top:calc(79px + env(safe-area-inset-top));min-height:0}
  body.home .page-hero .h1-home{display:none}
  body.home .page-hero .page-hero__dates{display:none}   /* replaced by the "Updated ... for San Diego, CA" line */
  /* Primary line is the on-view count (order:1, prominent); "last updated" is subtle metadata below. */
  body.home .page-hero .homestats{display:block;order:1;margin:0;font-size:14px;line-height:1.25;
    font-weight:700;color:#fff}
  body.home .page-hero .home-updated{order:2;display:block;margin:4px 0 0;
    font-family:'Quicksand',sans-serif;font-weight:600;font-size:11px;letter-spacing:.03em;
    color:rgba(255,255,255,.62)}
  body.home .homestats .hs-more{display:none}          /* keep only "N exhibitions & events on view" */
  body.home .tag-blue{display:none}                    /* desktop section banners stay out of the mobile stream */
  body.home .week-col__head h2{display:none}           /* and their subtitles */
  /* Compact mobile section labels: same Quicksand size as the Visual Arts/Theater toggle,
     centered over each slider and colored exactly like each card's kicker. */
  body.home #home-featured .shead,
  body.home #home-weekcols .week-col__head{display:flex;justify-content:center;align-items:center;
    text-align:center;margin:0 14px 12px}
  body.home #home-featured .shead::before,
  body.home #home-weekcols .week-col__head::before{display:inline-flex;align-items:center;
    font-family:'Quicksand',sans-serif;font-weight:700;font-size:12.5px;line-height:1;
    letter-spacing:.02em;text-transform:uppercase;color:#fff;padding:7px 12px;border-radius:999px}
  body.home #home-featured .shead::before{content:"Must Sees";background:var(--c-gold)}
  body.home #home-solo .shead{display:flex;justify-content:center;align-items:center;text-align:center;margin:0 14px 12px}
  body.home #home-solo .shead::before{display:inline-flex;align-items:center;content:"Solo Shows";
    font-family:'Quicksand',sans-serif;font-weight:700;font-size:12.5px;line-height:1;letter-spacing:.02em;
    text-transform:uppercase;color:#fff;padding:7px 12px;border-radius:999px;background:#ec4899}
  body.home #home-solo .shead > h2, body.home #home-solo .shead > p{display:none}
  body.home #home-weekcols .week-col--open .week-col__head::before{content:"Opening";background:#166534}
  body.home #home-weekcols .week-col--recep .week-col__head::before{content:"Reception/Talk";background:#dc2626}
  body.home #home-weekcols .week-col--close .week-col__head::before{content:"Closing";background:var(--c-close)}
  body.home #home-weekcols .week-col--art-time .week-col__head h2{display:inline-flex!important;align-items:center;margin:0;color:#fff;font-family:'Quicksand',sans-serif;font-weight:700;font-size:12.5px;line-height:1;letter-spacing:.02em;text-transform:uppercase;padding:7px 12px;border-radius:999px;text-shadow:none}
  body.home #home-weekcols .week-col--art-time .week-col__head::before{display:none!important}
  body.home[data-cat="art"] #art-today{background:#16a34a}
  body.home[data-cat="art"] #art-this-week{background:#e87862}
  body.home[data-cat="art"] #art-this-weekend{background:#9b7cc4}
  body.home[data-cat="art"] #art-next-week{background:#6f4aa8}
  body.home[data-cat="art"] #art-in-two-weeks{background:#475569}
  body.home #home-featured .shead > h2,
  body.home #home-featured .shead > p{display:none}
  body.home #home-featured .grid{grid-template-columns:1fr}   /* Featured: one tile per row */
  /* The full Featured title/blurb stays desktop-only; mobile gets the compact Must Sees label. */
  /* Theater view: every section begins as a single-column stream. The slider rules below
     then give all five calendar sections the exact same mobile tile width as Visual Arts. */
body.home[data-cat="theater"] .grid{grid-template-columns:1fr}
/* Theater/Drag fragments are rendered from a daily payload, but their date buckets are
   authoritative only after main.js assigns them using the visitor's current civic date. */
body.home.home-buckets-pending #home-featured,
body.home.home-buckets-pending #home-onview,
body.home.home-buckets-pending #home-weekcols{visibility:hidden}
  /* Compact Theater labels mirror the Drag calendar board: Today green, near-term
     buckets plum, and the long-range bucket purple. The desktop tag pill is already
     hidden by the mobile .tag-blue rule above. */
  body.home[data-cat="theater"] .shead--th{display:flex;justify-content:center;align-items:center;
    text-align:center;margin:0 14px 12px}
  body.home[data-cat="theater"] .shead--th > p{display:none}
  body.home[data-cat="theater"] .shead--th > h2,
  body.home[data-cat="theater"] #home-featured .shead--th > h2{display:inline-flex;align-items:center;
    font-family:'Quicksand',sans-serif;font-weight:700;font-size:12.5px;line-height:1;
    letter-spacing:.02em;text-transform:uppercase;color:#fff;padding:7px 12px;border-radius:999px;
    text-shadow:none}
  body.home[data-cat="theater"] #theater-today{background:#16a34a}
  body.home[data-cat="theater"] #theater-this-week{background:#c0398b}
  body.home[data-cat="theater"] #theater-this-weekend{background:#9b7cc4}
  body.home[data-cat="theater"] #theater-next-week{background:#2b8a86}
  body.home[data-cat="theater"] #theater-in-two-weeks{background:#6f4aa8}
  body.home[data-cat="theater"] section[aria-labelledby="theater-in-two-weeks"] .card__kick,
  body.home[data-cat="theater"] section[aria-labelledby="theater-in-two-weeks"] .kick--theater{background:#8b5fbf}
  body.home[data-cat="theater"] #home-featured .shead::before{display:none}
  /* Theater view is theater-only: the art-centric Artist of the Day stays on Visual Arts (owner, Jul 13) */
  body.home[data-cat="theater"] .bday-sec{display:none}
  /* Drag view uses the same image-first Theater card/detail treatment. */
  body.home[data-cat="drag"] .grid{grid-template-columns:1fr}
  body.home[data-cat="comedy"] .grid{grid-template-columns:1fr}
  body.home[data-cat="drag"] .shead--th{display:flex;justify-content:center;align-items:center;
    text-align:center;margin:0 14px 12px}
  body.home[data-cat="comedy"] .shead--th{display:flex;justify-content:center;align-items:center;
    text-align:center;margin:0 14px 12px}
  body.home[data-cat="drag"] .shead--th > p{display:none}
  body.home[data-cat="comedy"] .shead--th > p{display:none}
  body.home[data-cat="drag"] .shead--th > h2,
  body.home[data-cat="drag"] #home-featured .shead--th > h2{display:inline-flex;align-items:center;
    font-family:'Quicksand',sans-serif;font-weight:700;font-size:12.5px;line-height:1;
    letter-spacing:.02em;text-transform:uppercase;color:#fff;padding:7px 12px;border-radius:999px;
    text-shadow:none}
  body.home[data-cat="comedy"] .shead--th > h2,
  body.home[data-cat="comedy"] #home-featured .shead--th > h2{display:inline-flex;align-items:center;
    font-family:'Quicksand',sans-serif;font-weight:700;font-size:12.5px;line-height:1;
    letter-spacing:.02em;text-transform:uppercase;color:#fff;padding:7px 12px;border-radius:999px;
    text-shadow:none}
  body.home[data-cat="drag"] #drag-tonight{background:#16a34a}
  body.home[data-cat="comedy"] #comedy-tonight{background:#16a34a}
  body.home[data-cat="drag"] #drag-later-this-week,
  body.home[data-cat="drag"] #drag-this-week{background:#c0398b}
  body.home[data-cat="comedy"] #comedy-later-this-week,
  body.home[data-cat="comedy"] #comedy-this-week{background:#0d9488}
  body.home[data-cat="drag"] #drag-this-weekend{background:#9b7cc4}
  body.home[data-cat="comedy"] #comedy-this-weekend{background:#14b8a6}
  body.home[data-cat="drag"] #drag-next-week{background:#2b8a86}
  body.home[data-cat="comedy"] #comedy-next-week{background:#2b8a86}
  /* The long-range bucket uses a deeper purple so it remains distinct from the
     lighter purple weekend label. */
  body.home[data-cat="drag"] #drag-in-two-weeks{background:#6f4aa8}
  /* Owner rule: Comedy's In Two Weeks label matches Drag's. */
  body.home[data-cat="comedy"] #comedy-in-two-weeks{background:#6f4aa8}
  body.home[data-cat="drag"] section[aria-labelledby="drag-in-two-weeks"] .card__kick,
  body.home[data-cat="drag"] section[aria-labelledby="drag-in-two-weeks"] .kick--theater{background:#8b5fbf}
  body.home[data-cat="comedy"] section[aria-labelledby="comedy-in-two-weeks"] .card__kick,
  body.home[data-cat="comedy"] section[aria-labelledby="comedy-in-two-weeks"] .kick--theater{background:#8b5fbf}
  body.home[data-cat="drag"] #home-featured .shead::before{display:none}
  body.home[data-cat="comedy"] #home-featured .shead::before{display:none}
  body.home[data-cat="drag"] .bday-sec{display:none}
  body.home[data-cat="comedy"] .bday-sec{display:none}
  /* Long-press on a tile opens the event sheet (main.js) -- suppress the iOS link-preview
     callout and text-selection so the hold gesture isn't hijacked by the OS. */
  body.home .card[data-k], body.home .mcard[data-k], body.home .row[data-k]{
    -webkit-touch-callout:none;-webkit-user-select:none;user-select:none}
  /* Featured moves to the TOP (right under the masthead), above the weekly columns. The content
     wrap becomes a flex column so order works; only these three get a negative order, everything
     else keeps DOM order after them. */
  body.home > .wrap{display:flex;flex-direction:column}
  /* Desktop uses this shell as a two-column editorial row; mobile keeps it transparent so
     its children participate in the same homepage stream as before. */
  body.home .home-editorial-top{display:contents}
  body.home .home-editorial-top > #home-essay{order:2;margin-top:56px}
  body.home > .wrap > #concierge{order:-3}
  body.home > .wrap > .page-hero{order:-2}   /* stats + "last updated" sit just above Featured */
  body.home > .wrap > #home-featured{order:-1}
  /* Art's dated event rails lead, with the city review immediately after Today;
     keep these values more specific than the shared category ordering rule. */
  body.home[data-cat="art"] > .wrap > #home-weekcols .week-col--art-today{order:0}
  body.home[data-cat="art"] > .wrap > #home-weekcols .week-col--art-this-week{order:2}
  body.home[data-cat="art"] > .wrap > #home-weekcols .week-col--art-this-weekend{order:3}
  body.home[data-cat="art"] > .wrap > #home-weekcols .week-col--art-next-week{order:4}
  body.home[data-cat="art"] > .wrap > #home-weekcols .week-col--art-in-two-weeks{order:5}
  body.home[data-cat="art"] .home-editorial-top > #home-weekcols .week-col--art-today{order:0}
  body.home[data-cat="art"] .home-editorial-top > #home-weekcols .week-col--art-this-week{order:2}
  body.home[data-cat="art"] .home-editorial-top > #home-weekcols .week-col--art-this-weekend{order:3}
  body.home[data-cat="art"] .home-editorial-top > #home-weekcols .week-col--art-next-week{order:4}
  body.home[data-cat="art"] .home-editorial-top > #home-weekcols .week-col--art-in-two-weeks{order:5}
  /* Keep the dated Art stream contiguous. These rails must follow the review before
     the other homepage content, otherwise Next Week can be pushed far below it. */
  body.home[data-cat="art"] > .wrap > #home-featured{order:6}
  body.home[data-cat="art"] > .wrap > #home-solo{order:7}
  body.home[data-cat="art"] > .wrap > #home-areas{order:8}
  body.home[data-cat="art"] > .wrap > .bday-sec{order:9}
  body.home[data-cat="art"] > .wrap > #home-onview{order:10}
  /* Browse by neighborhood leads into Artist of the Day, both before All To See.
     Theater view hides these art-only sections, so the orders only matter on Visual Arts. */
  body.home > .wrap > #home-areas{order:1}
  body.home > .wrap > .bday-sec{order:2}
  body.home > .wrap > #home-onview{order:3}
  body.home > .wrap > section[aria-labelledby="map-h"]{order:4}
  /* Section BREATHING (owner Jul 15): every break between tile sections is EXACTLY DOUBLE
     the 12px in-section tile gap -- one --secgap token so it can't drift apart per section.
     Applies identically to the Visual Arts and Theater views. */
  body.home{--secgap:24px}   /* = 2 x the .grid 12px tile gap (owner spec) */
  body.home #home-onview .openings-sec{margin-top:var(--secgap)}
  body.home .week-cols{margin:var(--secgap) 0 0;gap:var(--secgap)}   /* featured->Opening + between the stacked week columns */
  body.home .week-cols:empty{display:none}   /* theater view: no week columns -> no phantom 52px gap */
  /* Section headings carry no extra top margin on mobile -- the section's own --secgap IS the
     break (the base .shead's 64px top margin would collapse through and defeat it). */
  body.home .openings-sec > .shead,
  body.home section[aria-labelledby="map-h"] > .shead{margin-top:0}
  body.home > .wrap > section[aria-labelledby="map-h"]{margin-top:var(--secgap)}
  body.home #home-featured .shead{margin:0 14px 12px}   /* the section gap supplies all top breathing room */
}
/* "Updated" line is a mobile-only masthead element; desktop keeps the full stats count. */
.home-updated{display:none}

/* Map mode picker (v114): Saved shows / All shows / Receptions today */
.mapmodes{display:flex;justify-content:center;gap:8px;margin:14px 0 10px;flex-wrap:wrap}
.mapmode{font-family:'Quicksand',sans-serif;font-weight:700;font-size:13px;letter-spacing:.03em;
  padding:7px 14px;border-radius:999px;border:1.5px solid #0070c0;background:#fff;color:#0070c0;cursor:pointer}
.mapmode.is-on{background:#0070c0;color:#fff}
.mapmodes__note{font-family:'Quicksand',sans-serif;font-weight:600;font-size:13.5px;color:#6b6258;
  text-align:center;margin:0 0 8px}
.mapmodes__bookmark{display:inline-block;width:17px;height:17px;vertical-align:-4px;margin-right:4px;
  fill:none;stroke:currentColor;stroke-width:3.2;stroke-linecap:round;stroke-linejoin:round}
@media(max-width:620px), (orientation: landscape) and (max-height:620px) and (pointer:coarse){ .mapmode{font-size:12.5px;padding:6px 12px} }

/* Collapsible map filter (v139): a floating upper-right menu on MOBILE (chip shows the current
   mode, tap to pick Saved/All/Receptions); on DESKTOP the trigger is hidden and the three pills
   stay inline, exactly like before. */
.mapfilter{display:flex;justify-content:center;margin:14px 0 10px}
.mapfilter__btn{display:none}
.mapfilter__menu{display:flex;justify-content:center;gap:8px;flex-wrap:wrap}
.mapfilter__menu[hidden]{display:flex}          /* desktop: ignore the hidden attr, show inline */
@media(max-width:620px), (orientation: landscape) and (max-height:620px) and (pointer:coarse){
  body.mappage .mapfilter{position:fixed;top:calc(12px + env(safe-area-inset-top));right:12px;left:auto;
    margin:0;z-index:1140;display:flex;flex-direction:column;align-items:flex-end;gap:8px}
  body.mappage .mapfilter__btn{display:inline-flex;align-items:center;gap:8px;
    font-family:'Quicksand',sans-serif;font-weight:700;font-size:13.5px;letter-spacing:.02em;color:#fff;
    background:rgba(0,112,192,.94);border:1px solid rgba(255,255,255,.5);border-radius:999px;
    padding:9px 16px;box-shadow:0 4px 14px rgba(43,38,31,.34);cursor:pointer;
    backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px)}
  body.mappage .mapfilter__ic{width:15px;height:15px;fill:none;stroke:currentColor;stroke-width:1.8;
    stroke-linejoin:round;stroke-linecap:round}
  body.mappage .mapfilter__caret{width:0;height:0;border-left:4px solid transparent;
    border-right:4px solid transparent;border-top:5px solid currentColor;transition:transform .15s}
  body.mappage .mapfilter.is-open .mapfilter__caret{transform:rotate(180deg)}
  /* No white panel behind the mode menu (owner Jul 14): the options float directly over the
     map as self-contained blue chips, same language as the chip that opens them. */
  /* The open menu must clear the centered Art|Theater pill (fixed at ~52px): without the
     offset the first item lands on the pill (owner, Jul 16). Applies to BOTH map pages. */
  body.mappage .mapfilter__menu{display:flex;flex-direction:column;align-items:stretch;gap:6px;margin-top:44px;
    background:none;border:none;border-radius:0;padding:0;box-shadow:none;min-width:160px}
  body.mappage .mapfilter__menu[hidden]{display:none}
  body.mappage .mapfilter .mapmode{width:100%;text-align:center;border:1px solid rgba(255,255,255,.5);
    border-radius:999px;background:rgba(0,112,192,.94);color:#fff;padding:10px 12px;font-size:14px;letter-spacing:0;
    box-shadow:0 4px 14px rgba(43,38,31,.30);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px)}
  body.mappage .mapfilter .mapmode.is-on{background:#0070c0;color:#fff;border-color:#fff}
}

/* Map tab jump target (v115): heading clears the top when arriving via #map-h */
#map-h{scroll-margin-top:14px}

/* Dedicated map page (v116): the bottom-nav Map tab's destination. On mobile the
   homepage's plotted section hides -- the map lives at /map. */
@media(max-width:620px), (orientation: landscape) and (max-height:620px) and (pointer:coarse){
  body.home section[aria-labelledby="map-h"]{display:none}
  body.mappage #homemap,body.mappage #theatermap,body.mappage #dragmap{height:calc(100vh - 300px);min-height:420px}
  body.mappage #comedymap{height:calc(100vh - 300px);min-height:420px}
}
body.mappage #homemap,body.mappage #theatermap,body.mappage #dragmap{height:560px}
body.mappage #comedymap{height:560px}
body.mappage main{padding-bottom:8px}

/* Full-screen mobile map (v117, owner ask): edge-to-edge map, only overlaying
   menus -- floating mode pills on top, bottom nav over the map, walkbar floats
   when in use. Desktop map.html keeps the full page chrome. */
@media(max-width:620px), (orientation: landscape) and (max-height:620px) and (pointer:coarse){
  body.mappage .site-header, body.mappage .site-footer, body.mappage .shead,
  body.mappage .maplegend, body.mappage .walkhint, body.mappage .totop{display:none}
  body.mappage{padding-bottom:0}
  body.mappage main{padding:0;margin:0;max-width:none}
  /* top blue gradient over the map (owner mock 3.jpg): solid brand blue behind the fixed
     controls, fading out over the tiles. Page-level z2 sits above the map wrapper (z1) --
     and therefore above every Leaflet-internal layer -- but under the z1100 controls.
     pointer-events:none keeps pan/zoom/taps working through it. */
  body.mappage::before{content:"";position:fixed;top:0;left:0;right:0;height:150px;z-index:2;
    pointer-events:none;
    background:linear-gradient(to bottom,var(--blue) 0%,var(--blue) 34%,
      rgba(0,112,192,.5) 66%,rgba(0,112,192,0) 100%)}
  body.mappage #homemap,body.mappage #theatermap,body.mappage #dragmap{position:fixed;inset:0;height:100dvh;min-height:0;z-index:1;border-radius:0;
    margin:0;border:none}
  body.mappage #comedymap{position:fixed;inset:0;height:100dvh;min-height:0;z-index:1;border-radius:0;
    margin:0;border:none}   /* margin:0 kills the 6px white gap the base rule's margin-top left on top */
  body.mappage .mapmodes{position:fixed;top:calc(10px + env(safe-area-inset-top));left:0;right:0;z-index:1100;margin:0;pointer-events:none}
  body.mappage .mapmode{pointer-events:auto;box-shadow:0 3px 12px rgba(43,38,31,.28)}
  body.mappage .mapmodes__note{position:fixed;top:calc(58px + env(safe-area-inset-top));left:16px;right:16px;z-index:1100;
    background:rgba(250,248,243,.95);border-radius:10px;padding:8px 10px;box-shadow:0 3px 12px rgba(43,38,31,.18)}
  body.mappage #walkbar{position:fixed;left:12px;right:12px;bottom:calc(86px + env(safe-area-inset-bottom));z-index:1100;
    background:rgba(250,248,243,.96);border-radius:12px;padding:10px 12px;box-shadow:0 4px 16px rgba(43,38,31,.25)}
  body.mappage .leaflet-top{top:calc(52px + env(safe-area-inset-top))}
  /* OSM credit tucked to the very bottom, UNDER the floating menu (Leaflet flag/prefix removed
     in main.js). z-index below the nav (1200) so the menu always sits on top of it. */
  body.mappage .leaflet-bottom{bottom:calc(1px + env(safe-area-inset-bottom));z-index:1000}
  body.mappage .leaflet-control-attribution{font-size:9px;line-height:1.5;color:#6b6258;
    background:rgba(250,248,243,.55);padding:0 6px;border-radius:6px 6px 0 0;box-shadow:none}
}

/* Lifecycle pin legend (v121, owner palette) */
.mlg{display:flex;flex-wrap:wrap;justify-content:center;gap:5px 14px;margin:8px 0 10px}
.mlg__i{font-family:'Quicksand',sans-serif;font-weight:600;font-size:12.5px;color:#6b6258;
  display:inline-flex;align-items:center;gap:6px}
.mlg__i i{width:10px;height:10px;border-radius:50%;border:1.5px solid #fff;
  box-shadow:0 0 0 1px rgba(43,38,31,.12);display:inline-block}
/* Collapsible "Pin key" (v134): the toggle chip appears ONLY on the mobile map overlay so the
   legend no longer blankets the top of the map. On desktop the toggle is hidden and the legend
   stays inline (the hidden attr the markup carries is ignored). */
.mlg-toggle{display:none}
.mlg-wrap[hidden]{display:none !important}
.mlg[hidden]{display:flex}
.mlg-toggle__dots{display:inline-flex;gap:3px}
.mlg-toggle__dots i{width:9px;height:9px;border-radius:50%;border:1.5px solid #fff;
  box-shadow:0 0 0 1px rgba(43,38,31,.12);display:inline-block}

/* Map reconciliation line (v123): shows-vs-venues, per mode */
.mapcount{font-family:'Quicksand',sans-serif;font-weight:700;font-size:13.5px;color:#0070c0;
  text-align:center;margin:2px 0 6px}
@media(max-width:620px), (orientation: landscape) and (max-height:620px) and (pointer:coarse){
  body.mappage .mapcount{display:none}   /* owner: no stats line at the top of the mobile map */
  /* Pin key -> a compact tap-to-open chip pinned top-right (below the filters + count row). */
  body.mappage .mlg-wrap{position:fixed;top:calc(12px + env(safe-area-inset-top));left:10px;right:auto;
    z-index:1120;display:flex;flex-direction:column;align-items:flex-start;gap:7px}
  body.mappage .mlg-toggle{display:inline-flex;align-items:center;gap:7px;
    font-family:'Quicksand',sans-serif;font-weight:700;font-size:12px;letter-spacing:.02em;color:#3f3931;
    background:rgba(250,248,243,.95);border:1px solid var(--rule-soft);border-radius:999px;
    padding:6px 12px;box-shadow:0 3px 12px rgba(43,38,31,.22);cursor:pointer}
  body.mappage .mlg-toggle.is-open{background:#0070c0;color:#fff;border-color:#0070c0}
  body.mappage .mlg-toggle.is-open .mlg-toggle__dots{display:none}
  body.mappage .mlg{position:static;flex-direction:column;align-items:flex-start;width:auto;
    max-width:230px;gap:9px;background:rgba(250,248,243,.98);border:1px solid var(--rule-soft);
    border-radius:12px;padding:12px 14px;box-shadow:0 6px 22px rgba(43,38,31,.26);margin:0}
  body.mappage .mlg[hidden]{display:none}
  body.mappage .mlg__i{font-size:12.5px}
  /* Empty-state note ("No saved shows yet ...") shows only when NO pins match, so the map behind
     it is blank -- center it like an empty state instead of a top banner, which also stops it
     colliding with the Pin key chip that lives top-right. */
  body.mappage .mapmodes__note{top:50%;left:50%;right:auto;transform:translate(-50%,-50%);
    max-width:min(280px,84vw);text-align:center;z-index:1130}
  /* Option 3 occupies 111–203px; keep Leaflet zoom/location controls below the
     full-width guide tabs instead of letting the minus button overlap "Today in". */
  body.mappage .leaflet-top{top:calc(214px + env(safe-area-inset-top))}
}

/* ── Homepage three-column week + on-view (owner redesign, Jul 8) ─────────── */
.week-cols{display:grid;grid-template-columns:repeat(3,1fr);gap:28px;margin:64px 0 8px;align-items:start}
.week-col__head{text-align:center;margin-bottom:20px}
.week-col__head .tag-blue{margin-bottom:12px}
.week-col__head h2{font-weight:600;font-size:clamp(20px,2.2vw,26px);line-height:1.12;color:var(--ink-strong)}
.week-col__cards{display:flex;flex-direction:column;gap:22px}
.week-col__empty{opacity:.5;font-style:italic;text-align:center;padding:22px 12px;font-family:'DM Sans',serif;font-size:15px;border:1px dashed var(--rule-soft)}
.home-upcoming-heading{display:none}
@media(max-width:900px){.week-cols{grid-template-columns:1fr;gap:40px;margin-top:44px}}

/* ── Desktop homepage editorial hierarchy (Option 1) ────────────────────────
   Editorial leads the first row, followed by Art Reviews and Today. The dated rails
   then become a full-width planning band. This block is desktop-only; the
   mobile stream keeps its existing DOM/order and styling below. */
@media(min-width:901px){
  /* Desktop section headings use typography alone. Keep event-level status labels
     (.card__kick) intact so timing/category information remains visible on each card. */
  body.home .shead > .tag-blue,
  body.home .week-col__head > .tag-blue{display:none}
  body.home .week-col__head{margin-bottom:14px}}
@media (min-width:901px), (min-width:621px) and (min-height:621px), (min-width:621px) and (pointer:fine), (min-width:621px) and (orientation:portrait){

  body.home[data-cat="art"] .home-editorial-top{
    display:grid;
    grid-template-columns:minmax(0,1fr);
    grid-template-areas:
      "editorial"
      "reviews"
      "essay-stats"
      "today"
      "upcoming"
      "this-week"
      "this-weekend"
      "next-week"
      "in-two-weeks";
    gap:32px;
    align-items:start;
    margin-top:64px;
  }
}
@media (min-width:901px), (min-width:621px) and (min-height:621px), (min-width:621px) and (pointer:fine), (min-width:621px) and (orientation:portrait){
  body.home[data-cat="art"] .home-editorial-top > #home-weekcols{display:contents}
}
@media (min-width:901px), (min-width:621px) and (min-height:621px), (min-width:621px) and (pointer:fine), (min-width:621px) and (orientation:portrait){
  body.home[data-cat="art"] .home-editorial-top > #home-editorial-feature{grid-area:editorial;min-width:0}
}
@media (min-width:901px), (min-width:621px) and (min-height:621px), (min-width:621px) and (pointer:fine), (min-width:621px) and (orientation:portrait){
  body.home[data-cat="art"] .home-editorial-top > #home-weekcols > .week-col--art-today{
    grid-area:today;
    min-width:0;
    margin:0;
  }
}
@media (min-width:901px), (min-width:621px) and (min-height:621px), (min-width:621px) and (pointer:fine), (min-width:621px) and (orientation:portrait){
  body.home[data-cat="art"] .home-editorial-top > #home-essay{
    grid-area:reviews;
    min-width:0;
    margin:0;
  }
}
@media (min-width:901px), (min-width:621px) and (min-height:621px), (min-width:621px) and (pointer:fine), (min-width:621px) and (orientation:portrait){
  body.desktop-home.desktop-home-stats-under-essays[data-cat="art"] .home-editorial-top > #home-homestats{
    grid-area:essay-stats;
    display:block;
    min-width:0;
    margin:-18px 0 0;
    color:rgba(255,255,255,.82);
  }
}
@media (min-width:901px), (min-width:621px) and (min-height:621px), (min-width:621px) and (pointer:fine), (min-width:621px) and (orientation:portrait){
  body.home[data-cat="art"] .home-editorial-top > .home-upcoming-heading{
    grid-area:upcoming;
    display:flex;
    align-items:baseline;
    justify-content:space-between;
    margin-top:4px;
    padding-bottom:10px;
    border-bottom:1px solid rgba(255,255,255,.32);
  }
}
@media(min-width:901px){
  body.home[data-cat="art"] .home-upcoming-heading strong{
    color:#fff;
    font:700 22px/1.1 Georgia,'Times New Roman',serif;
    text-shadow:0 1px 3px rgba(7,42,80,.65),0 3px 12px rgba(7,42,80,.5);
  }
  body.home[data-cat="art"] .home-upcoming-heading span{
    color:rgba(255,255,255,.76);
    font:700 11px/1 'Quicksand',sans-serif;
    letter-spacing:.08em;
    text-transform:uppercase;
  }}
@media (min-width:901px), (min-width:621px) and (min-height:621px), (min-width:621px) and (pointer:fine), (min-width:621px) and (orientation:portrait){
  body.home[data-cat="art"] .home-editorial-top > #home-weekcols > .week-col--art-time:not(.week-col--art-today){
    grid-column:1 / -1;
    min-width:0;
    margin-top:18px;
  }
}
@media (min-width:901px), (min-width:621px) and (min-height:621px), (min-width:621px) and (pointer:fine), (min-width:621px) and (orientation:portrait){
  body.home[data-cat="art"] .home-editorial-top > #home-weekcols > .week-col--art-this-week{grid-area:this-week}
}
@media (min-width:901px), (min-width:621px) and (min-height:621px), (min-width:621px) and (pointer:fine), (min-width:621px) and (orientation:portrait){
  body.home[data-cat="art"] .home-editorial-top > #home-weekcols > .week-col--art-this-weekend{grid-area:this-weekend}
}
@media (min-width:901px), (min-width:621px) and (min-height:621px), (min-width:621px) and (pointer:fine), (min-width:621px) and (orientation:portrait){
  body.home[data-cat="art"] .home-editorial-top > #home-weekcols > .week-col--art-next-week{grid-area:next-week}
}
@media (min-width:901px), (min-width:621px) and (min-height:621px), (min-width:621px) and (pointer:fine), (min-width:621px) and (orientation:portrait){
  body.home[data-cat="art"] .home-editorial-top > #home-weekcols > .week-col--art-in-two-weeks{grid-area:in-two-weeks}
}
@media (min-width:901px), (min-width:621px) and (min-height:621px), (min-width:621px) and (pointer:fine), (min-width:621px) and (orientation:portrait){
  body.desktop-home.desktop-editorial-discovery[data-cat="art"] .home-editorial-top > #home-weekcols > .desktop-editorial-today{grid-area:today!important;margin-top:0!important}
}
@media (min-width:901px), (min-width:621px) and (min-height:621px), (min-width:621px) and (pointer:fine), (min-width:621px) and (orientation:portrait){
  body.home[data-cat="art"] .home-editorial-top > #home-weekcols > .week-col--art-time:not(.week-col--art-today) .week-col__cards{
    display:grid;
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:20px;
  }
}
@media (min-width:901px), (min-width:621px) and (min-height:621px), (min-width:621px) and (pointer:fine), (min-width:621px) and (orientation:portrait){
  body.home[data-cat="art"] .home-editorial-top > #home-weekcols > .week-col--art-time:not(.week-col--art-today) .week-col__head{
    margin-bottom:14px;
  }
}
@media (min-width:901px), (min-width:621px) and (min-height:621px), (min-width:621px) and (pointer:fine), (min-width:621px) and (orientation:portrait){
  body.home[data-cat="art"] #home-editorial-top #home-essay .essay-feature{
    position:relative;
    isolation:isolate;
    overflow:hidden;
    margin:0;
    padding:20px;
    background:linear-gradient(180deg,rgba(227,246,255,.92) 0%,rgba(198,230,244,.78) 48%,rgba(169,215,237,.66) 100%);
    border:1px solid rgba(255,255,255,.68);
    border-radius:20px;
    box-shadow:0 14px 30px rgba(7,42,80,.18),0 3px 9px rgba(7,42,80,.09),inset 0 1px 0 rgba(255,255,255,.96),inset 0 -1px 0 rgba(255,255,255,.28);
    backdrop-filter:blur(18px) saturate(1.2);
    -webkit-backdrop-filter:blur(18px) saturate(1.2);
  }
}
@media (min-width:901px), (min-width:621px) and (min-height:621px), (min-width:621px) and (pointer:fine), (min-width:621px) and (orientation:portrait){
  body.home[data-cat="art"] #home-editorial-top #home-essay .essay-feature::before{
    content:"";
    position:absolute;
    inset:0;
    z-index:-1;
    pointer-events:none;
    background:linear-gradient(180deg,rgba(255,255,255,.52) 0%,rgba(255,255,255,.16) 30%,transparent 62%);
  }
}
@media (min-width:901px), (min-width:621px) and (min-height:621px), (min-width:621px) and (pointer:fine), (min-width:621px) and (orientation:portrait){
  body.home[data-cat="art"] #home-editorial-top #home-essay .essay-feature__head{
    position:relative;
    display:block;
    margin:0 auto 24px;
    text-align:center;
  }
}
@media (min-width:901px), (min-width:621px) and (min-height:621px), (min-width:621px) and (pointer:fine), (min-width:621px) and (orientation:portrait){
  body.home[data-cat="art"] #home-editorial-top #home-essay .essay-feature__heading{
    width:100%;
    max-width:none;
    min-width:0;
    padding:4px 92px 0;
    text-align:center;
  }
}
@media (min-width:901px), (min-width:621px) and (min-height:621px), (min-width:621px) and (pointer:fine), (min-width:621px) and (orientation:portrait){
  body.home[data-cat="art"] #home-editorial-top #home-essay .essay-feature__head h2{
    display:table;
    margin:0 auto;
    padding:0;
    border:0;
    border-radius:0;
    background:none;
    box-shadow:none;
    font-family:'DM Sans',sans-serif;
    font-size:clamp(30px,2.5vw,40px);
    font-weight:800;
    line-height:1.02;
    letter-spacing:-.04em;
    color:#0876b8;
    text-shadow:0 1px 0 rgba(255,255,255,.92),0 2px 0 rgba(9,72,112,.14),0 5px 12px rgba(8,67,105,.26);
  }
}
@media (min-width:901px), (min-width:621px) and (min-height:621px), (min-width:621px) and (pointer:fine), (min-width:621px) and (orientation:portrait){
  body.home[data-cat="art"] #home-editorial-top #home-essay .essay-feature__heading p{
    display:block;
    max-width:38em;
    margin:7px auto 0;
    color:#687987;
    font:italic 500 15px/1.4 Georgia,'Times New Roman',serif;
    letter-spacing:0;
  }
}
@media (min-width:901px), (min-width:621px) and (min-height:621px), (min-width:621px) and (pointer:fine), (min-width:621px) and (orientation:portrait){
  body.home[data-cat="art"] #home-editorial-top #home-essay .essay-feature__heading::after{
    display:none;
  }
}
@media (min-width:901px), (min-width:621px) and (min-height:621px), (min-width:621px) and (pointer:fine), (min-width:621px) and (orientation:portrait){
  body.home[data-cat="art"] #home-editorial-top #home-essay .essay-feature__kicker,
  body.home[data-cat="art"] #home-editorial-top #home-essay .essay-feature__read{
    display:inline-flex;
    font-family:'Quicksand',sans-serif;
    font-size:11px;
    font-weight:700;
  }
}
@media (min-width:901px), (min-width:621px) and (min-height:621px), (min-width:621px) and (pointer:fine), (min-width:621px) and (orientation:portrait){
  body.home[data-cat="art"] #home-editorial-top #home-essay .essay-feature__kicker{color:var(--blue-dark);letter-spacing:.1em;text-transform:uppercase}
}
@media (min-width:901px), (min-width:621px) and (min-height:621px), (min-width:621px) and (pointer:fine), (min-width:621px) and (orientation:portrait){
  body.desktop-home[data-cat="art"] #home-editorial-top #home-essay .essay-feature__head > .essay-feature__kicker{display:none}
}
@media (min-width:901px), (min-width:621px) and (min-height:621px), (min-width:621px) and (pointer:fine), (min-width:621px) and (orientation:portrait){
  body.desktop-home[data-cat="art"] #home-editorial-top #home-essay .essay-feature__read{display:none}
}
@media (min-width:901px), (min-width:621px) and (min-height:621px), (min-width:621px) and (pointer:fine), (min-width:621px) and (orientation:portrait){
  body.home[data-cat="art"] #home-editorial-top #home-essay .essay-feature__read{
    position:absolute;
    top:50%;
    right:113px;
    transform:translateY(-50%);
    align-items:center;
    min-height:30px;
    padding:0 11px;
    border:1px solid rgba(23,61,88,.16);
    border-radius:999px;
    background:rgba(255,255,255,.42);
    color:#557181;
    white-space:nowrap;
  }
}
@media (min-width:901px), (min-width:621px) and (min-height:621px), (min-width:621px) and (pointer:fine), (min-width:621px) and (orientation:portrait){
  body.home[data-cat="art"] #home-editorial-top #home-essay .essay-feature__all{
    position:absolute;
    top:50%;
    right:0;
    transform:translateY(-50%);
    display:inline-flex;
    align-items:center;
    flex:0 0 auto;
    color:var(--blue-dark);
    font:700 11px/1 'Quicksand',sans-serif;
    white-space:nowrap;
    text-decoration:none;
  }
}
@media (min-width:901px), (min-width:621px) and (min-height:621px), (min-width:621px) and (pointer:fine), (min-width:621px) and (orientation:portrait){
  body.home[data-cat="art"] #home-editorial-top #home-essay .tag--essay{display:none}
}
@media (min-width:901px), (min-width:621px) and (min-height:621px), (min-width:621px) and (pointer:fine), (min-width:621px) and (orientation:portrait){
  body.home[data-cat="art"] #home-editorial-top #home-essay .essay-feature__grid{
    display:grid;
    grid-template-columns:minmax(0,1.55fr) minmax(240px,.85fr);
    gap:20px;
    align-items:start;
  }
}
@media (min-width:901px), (min-width:621px) and (min-height:621px), (min-width:621px) and (pointer:fine), (min-width:621px) and (orientation:portrait){
  body.home[data-cat="art"] #home-editorial-top #home-essay .essay-feature__story{
    min-width:0;
  }
}
@media (min-width:901px), (min-width:621px) and (min-height:621px), (min-width:621px) and (pointer:fine), (min-width:621px) and (orientation:portrait){
  body.home[data-cat="art"] #home-editorial-top #home-essay .essay-feature__story:not(.essay-feature__story--lead){
    margin-top:0;
    align-self:start;
  }
}
@media (min-width:901px), (min-width:621px) and (min-height:621px), (min-width:621px) and (pointer:fine), (min-width:621px) and (orientation:portrait){
  body.home[data-cat="art"] #home-editorial-top #home-essay .essay-feature__story--lead{
    grid-row:span 2;
  }
}
@media (min-width:901px), (min-width:621px) and (min-height:621px), (min-width:621px) and (pointer:fine), (min-width:621px) and (orientation:portrait){
  body.home[data-cat="art"] #home-editorial-top #home-essay .essay-tile{
    max-width:none;
    width:100%;
    aspect-ratio:16/9;
    border-radius:14px;
  }
}
@media (min-width:901px), (min-width:621px) and (min-height:621px), (min-width:621px) and (pointer:fine), (min-width:621px) and (orientation:portrait){
  body.home[data-cat="art"] #home-editorial-top #home-essay .essay-feature__story:not(.essay-feature__story--lead) .essay-tile{
    aspect-ratio:4/3;
  }
}
@media (min-width:901px), (min-width:621px) and (min-height:621px), (min-width:621px) and (pointer:fine), (min-width:621px) and (orientation:portrait){
  body.home[data-cat="art"] #home-editorial-top #home-essay .essay-tile__copy{left:18px;bottom:18px;max-width:88%}
}
@media (min-width:901px), (min-width:621px) and (min-height:621px), (min-width:621px) and (pointer:fine), (min-width:621px) and (orientation:portrait){
  body.home[data-cat="art"] #home-editorial-top #home-essay .essay-tile__copy strong{font-size:28px}
}
@media (min-width:901px), (min-width:621px) and (min-height:621px), (min-width:621px) and (pointer:fine), (min-width:621px) and (orientation:portrait){
  body.home[data-cat="art"] #home-editorial-top #home-essay .essay-tile__kicker{font-size:10px}
}
@media (min-width:901px), (min-width:621px) and (min-height:621px), (min-width:621px) and (pointer:fine), (min-width:621px) and (orientation:portrait){
  body.home[data-cat="art"] #home-editorial-top #home-essay .essay-feature__meta{display:flex;justify-content:space-between;gap:10px;margin:8px 2px 0;color:#71808b;font:700 10px 'Quicksand',sans-serif}
}
@media (min-width:901px), (min-width:621px) and (min-height:621px), (min-width:621px) and (pointer:fine), (min-width:621px) and (orientation:portrait){
  body.home[data-cat="art"] #home-editorial-top #home-essay .essay-feature__meta span:last-child{color:var(--blue-dark);white-space:nowrap}
}
@media (min-width:901px), (min-width:621px) and (min-height:621px), (min-width:621px) and (pointer:fine), (min-width:621px) and (orientation:portrait){
  body.home[data-cat="art"] #home-editorial-top #home-essay .essay-feature__summary{
    display:block;
    margin:8px 2px 0;
    color:#465c68;
    font:500 13px/1.45 'DM Sans',sans-serif;
  }
}
@media (min-width:901px), (min-width:621px) and (min-height:621px), (min-width:621px) and (pointer:fine), (min-width:621px) and (orientation:portrait){
  body.home[data-cat="art"] #home-editorial-top #home-essay .essay-feature__story:not(.essay-feature__story--lead) .essay-feature__summary{
    font-size:12px;
    line-height:1.4;
  }
}
@media(min-width:901px){
  body.home[data-cat="art"] > .wrap > #home-featured{margin-top:54px}
}

/* ── Dedicated desktop homepage ────────────────────────────────────────────
   desktop.html uses the same live fragments as the responsive homepage, but
   has its own entry surface and editorial stream. The mobile/app homepage
   remains index.html. */
@media(min-width:621px){
  body.desktop-home .site-header{margin-bottom:34px;border-bottom:none}
  body.desktop-home .desktop-home__wrap{max-width:1240px}
  body.desktop-home .cityswitch__context{display:none}
  body.desktop-home .cityswitch{padding-left:6px}
  body.desktop-home .cityswitch__btn{min-height:42px;line-height:1.2;padding:10px 13px 11px}
  body.desktop-home .topnav{border-top:none}
  body.desktop-home .desktop-home__mast{display:flex;align-items:center;justify-content:space-between;gap:24px;margin:18px 0 0}
  body.desktop-home .desktop-home__city{color:#fff;font:700 14px/1 'Quicksand',sans-serif;letter-spacing:.12em;text-transform:uppercase;text-shadow:0 2px 10px rgba(7,42,80,.3)}
  body.desktop-home .catswitch{display:inline-flex;align-items:center;gap:3px;padding:4px;border:1px solid rgba(255,255,255,.46);border-radius:999px;background:rgba(255,255,255,.16);box-shadow:0 8px 24px rgba(7,42,80,.22),inset 0 1px 0 rgba(255,255,255,.16);backdrop-filter:blur(16px) saturate(1.4);-webkit-backdrop-filter:blur(16px) saturate(1.4)}
  body.desktop-home .catswitch__opt{font-size:13px;padding:8px 17px}
}
@media (min-width:901px), (min-width:621px) and (min-height:621px), (min-width:621px) and (pointer:fine), (min-width:621px) and (orientation:portrait){
  body.desktop-home .page-hero{padding:32px 24px 10px;max-width:940px}
}
@media (min-width:901px), (min-width:621px) and (min-height:621px), (min-width:621px) and (pointer:fine), (min-width:621px) and (orientation:portrait){
  body.desktop-home .page-hero h1{font-size:clamp(36px,4.5vw,52px);letter-spacing:-.04em}
}
@media (min-width:901px), (min-width:621px) and (min-height:621px), (min-width:621px) and (pointer:fine), (min-width:621px) and (orientation:portrait){
  body.desktop-home .home-editorial-top{margin-top:42px}
}
@media (min-width:901px), (min-width:621px) and (min-height:621px), (min-width:621px) and (pointer:fine), (min-width:621px) and (orientation:portrait){
  body.desktop-home[data-cat="art"] .home-editorial-top{margin-top:-110px}
}
@media (min-width:901px), (min-width:621px) and (min-height:621px), (min-width:621px) and (pointer:fine), (min-width:621px) and (orientation:portrait){
  body.desktop-home .home-editorial-top > #home-weekcols > .week-col--art-today .week-col__cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}
}
@media (min-width:901px), (min-width:621px) and (min-height:621px), (min-width:621px) and (pointer:fine), (min-width:621px) and (orientation:portrait){
  body.desktop-home .home-editorial-top > #home-weekcols > .week-col--art-today .week-col__head{text-align:left;margin-bottom:14px}
}
@media (min-width:901px), (min-width:621px) and (min-height:621px), (min-width:621px) and (pointer:fine), (min-width:621px) and (orientation:portrait){
  body.desktop-home .desktop-home__map{margin-top:54px;padding-bottom:24px}
}

/* ── Desktop homepage streamlining ─────────────────────────────────────────
   The desktop surface is an editorial guide, not the full event database:
   Today gets one lead tile plus three supports, Coming Up is capped at eight,
   Must Sees at four, and the full To See board is reduced to two rows with a clear
   path to Calendar. Mobile/app keeps the complete existing rails. */
@media (min-width:901px), (min-width:621px) and (min-height:621px), (min-width:621px) and (pointer:fine), (min-width:621px) and (orientation:portrait){
  body.desktop-home .desktop-home__hero .h1-home,
  body.desktop-home .desktop-home__hero .page-hero__dates{display:none}
}
@media (min-width:901px), (min-width:621px) and (min-height:621px), (min-width:621px) and (pointer:fine), (min-width:621px) and (orientation:portrait){
  body.desktop-home .desktop-home__hero{padding-top:0}
}
@media (min-width:901px), (min-width:621px) and (min-height:621px), (min-width:621px) and (pointer:fine), (min-width:621px) and (orientation:portrait){
  body.desktop-home .desktop-stream-hidden{display:none!important}
}
@media (min-width:901px), (min-width:621px) and (min-height:621px), (min-width:621px) and (pointer:fine), (min-width:621px) and (orientation:portrait){
  body.desktop-home #home-weekcols .week-col--art-today .week-col__cards{
    display:grid;
    grid-template-columns:minmax(0,1.45fr) repeat(3,minmax(0,1fr));
    gap:20px;
  }
}
@media (min-width:901px), (min-width:621px) and (min-height:621px), (min-width:621px) and (pointer:fine), (min-width:621px) and (orientation:portrait){
  body.desktop-home #home-weekcols .week-col--art-today .card:first-child{
    grid-column:span 1;
  }
}
@media (min-width:901px), (min-width:621px) and (min-height:621px), (min-width:621px) and (pointer:fine), (min-width:621px) and (orientation:portrait){
  body.desktop-home #home-weekcols .week-col--art-today .card:first-child .mini__media{
    aspect-ratio:16/10;
  }
}
@media (min-width:901px), (min-width:621px) and (min-height:621px), (min-width:621px) and (pointer:fine), (min-width:621px) and (orientation:portrait){
  body.desktop-home #home-featured .grid,
  body.desktop-home #home-solo .grid,
  body.desktop-home #home-onview .grid{
    grid-template-columns:repeat(4,minmax(0,1fr));
    gap:20px;
  }
}
@media (min-width:901px), (min-width:621px) and (min-height:621px), (min-width:621px) and (pointer:fine), (min-width:621px) and (orientation:portrait){
  body.desktop-home .desktop-home__viewall,
  body.desktop-home .home-upcoming-heading .desktop-home__viewall{
    display:inline-flex;
    align-items:center;
    color:rgba(255,255,255,.9);
    font:700 11px/1 'Quicksand',sans-serif;
    letter-spacing:.06em;
    text-transform:uppercase;
    text-decoration:none;
    white-space:nowrap;
  }
}
@media (min-width:901px), (min-width:621px) and (min-height:621px), (min-width:621px) and (pointer:fine), (min-width:621px) and (orientation:portrait){
  body.desktop-home .desktop-home__viewall:hover{text-decoration:underline}
}
@media (min-width:901px), (min-width:621px) and (min-height:621px), (min-width:621px) and (pointer:fine), (min-width:621px) and (orientation:portrait){
  body.desktop-home #home-onview > .desktop-home__viewall{
    display:flex;
    justify-content:flex-end;
    width:100%;
    box-sizing:border-box;
    margin:14px 0 0;
    padding:0 14px;
  }
}

/* ── Badge (kick) colours by category (owner, Jul 8) ─────────────────────────
   reception + talks -> red, opening -> the 3 Plays journal purple, featured -> footer blue.
   On View (.kick--exhibition) is deliberately left unchanged. Later source order
   overrides the earlier var-based rules at equal specificity. */
.kick--opening{background:var(--c-open)}
.kick--reception{background:#dc2626}
.kick--talk{background:#dc2626}
.kick--featured{background:var(--c-gold)}   /* Must Sees wears the gold (owner Jul 17) */

/* ---- Saved-route planner (owner, Jul 16): appears in Saved mode with 2+ saved venues.
   Suggests the shortest driving order (nearest-neighbour + 2-opt on straight-line miles,
   road factor applied) and links the whole route into Google Maps for turn-by-turn. ---- */
.saveroute{position:relative;margin:10px auto 4px;max-width:560px;background:#0f6cb5;color:#fff;border-radius:14px;
  padding:12px 14px;font-size:14px;line-height:1.45}
.saveroute__close{position:absolute;top:8px;right:8px;display:grid;place-items:center;width:28px;height:28px;
  padding:0;border:1px solid rgba(255,255,255,.55);border-radius:50%;background:rgba(255,255,255,.14);
  color:#fff;font:700 12px/1 'Quicksand',sans-serif;cursor:pointer}
.saveroute__head{font-family:'Quicksand',sans-serif;font-weight:700}
.saveroute__est{font-weight:600;opacity:.85;margin-left:6px;white-space:nowrap}
.saveroute__list{margin:8px 0;padding-left:22px}
.saveroute__list li{margin:3px 0}
.saveroute__go{display:inline-block;margin-top:2px;color:#fff;font-weight:700;text-decoration:underline}
.saveroute__timed{margin-left:14px;padding:0;border:0;background:none;color:#fff;
  font-family:inherit;font-size:14px;font-weight:700;line-height:1.2;text-decoration:underline;cursor:pointer}
.saveroute__cap{margin:6px 0 0;font-size:12px;opacity:.8}
.map-timed-route{display:block;margin:8px auto;padding:9px 16px;border:1px solid rgba(255,255,255,.55);
  border-radius:999px;background:#0f6cb5;color:#fff;
  font:700 12px/1 'Quicksand',sans-serif;box-shadow:0 5px 16px rgba(11,55,91,.26);cursor:pointer}
@media(max-width:620px), (orientation: landscape) and (max-height:620px) and (pointer:coarse){
  /* mobile map: the page is a full-screen fixed map, so the planner floats above the bottom
     nav pill (which sits ~68px tall + 16px inset) and below nothing else. */
  body.mappage .saveroute{position:fixed;left:12px;right:12px;z-index:1100;margin:0;
    bottom:calc(96px + env(safe-area-inset-bottom));box-shadow:0 10px 28px rgba(43,38,31,.35);
    max-height:42vh;overflow:auto}
  body.mappage .map-timed-route{position:fixed;left:50%;bottom:calc(100px + env(safe-area-inset-bottom));
    z-index:1095;transform:translateX(-50%);margin:0;white-space:nowrap}
}

/* ---- Share-day button, Open Now near-me, add-to-home-screen nudge (owner, Jul 16) ---- */
.saveroute__share{margin-left:14px;background:none;border:none;color:#fff;font-weight:700;
  font-family:inherit;font-size:inherit;text-decoration:underline;cursor:pointer;padding:0}
.on-titlerow{display:flex;align-items:center;justify-content:space-between;gap:12px}
.on-titlerow .lp-title{margin-bottom:0}
.on-near{display:inline-flex;align-items:center;flex:0 0 auto;margin:0;cursor:pointer;
  font-family:'Quicksand',sans-serif;font-weight:700;font-size:13px;letter-spacing:.02em;
  color:#fff;background:rgba(0,112,192,.52);border:1px solid rgba(255,255,255,.5);
  backdrop-filter:blur(18px) saturate(1.5);-webkit-backdrop-filter:blur(18px) saturate(1.5);
  border-radius:999px;padding:8px 16px}
/* See Now and neighborhood guides share the same Near me pill and active state. */
body.opennow:not(.planpage) .on-near{color:var(--blue);background:rgba(0,112,192,.1);
  border-color:rgba(0,112,192,.3)}
body.opennow:not(.planpage) .on-near[data-near-active="1"]{background:var(--blue);color:#fff}
@media(max-width:620px), (orientation: landscape) and (max-height:620px) and (pointer:coarse){
  body.opennow:not(.planpage) .on-near{background:rgba(255,255,255,.16);color:#fff;
    border-color:rgba(255,255,255,.55)}
  body.opennow:not(.planpage) .on-near[data-near-active="1"]{background:#fff;color:var(--blue)}
}
.on-area .card{position:relative}
.on-area .on-dist{position:absolute;right:10px;bottom:10px;z-index:3;pointer-events:none;
  font-family:'Quicksand',sans-serif;font-weight:700;font-size:11px;letter-spacing:.03em;
  color:#fff;background:rgba(7,42,80,.72);border-radius:999px;padding:4px 10px}
.a2hs{position:fixed;left:12px;right:12px;bottom:calc(96px + env(safe-area-inset-bottom));z-index:1300;
  display:flex;align-items:center;gap:12px;color:#fff;background:rgba(0,112,192,.52);
  backdrop-filter:blur(18px) saturate(1.5);-webkit-backdrop-filter:blur(18px) saturate(1.5);
  border:1px solid rgba(255,255,255,.5);border-radius:18px;padding:12px 14px;
  font-family:'Quicksand',sans-serif;font-weight:600;font-size:13.5px;line-height:1.4;
  box-shadow:0 10px 28px rgba(7,42,80,.35);opacity:0;transform:translateY(8px);
  transition:opacity .25s,transform .25s}
.a2hs.is-in{opacity:1;transform:none}
.a2hs__txt{flex:1 1 auto}
.a2hs__go{flex:0 0 auto;background:#fff;color:#0070c0;border:none;border-radius:999px;
  font-family:inherit;font-weight:700;font-size:13px;padding:8px 14px;cursor:pointer}
.a2hs__x{flex:0 0 auto;background:none;border:none;color:#fff;font-size:20px;line-height:1;
  cursor:pointer;padding:2px 6px}

/* ---- Neighborhood rail + guide pages (owner, Jul 16 evening; reworked same night) ---- */
/* The home neighborhood rail is a self-contained panel. Its outer margin
   gives the surrounding sections a distinct, even visual break. */
body.home #home-areas{
  margin:32px 0;
  padding:18px 14px;
  background:rgba(247,251,255,.25);
  border:none;
  border-radius:22px;
  box-shadow:0 8px 22px rgba(7,42,80,.14);
}
body.home[data-cat="theater"] #home-areas,
body.home[data-cat="drag"] #home-areas{display:none}
body.home[data-cat="comedy"] #home-areas{display:none}
body.home #home-areas .arearail-sec{margin:0;padding-left:0}
body.home #home-areas .arearail__h{color:#fff;text-shadow:none;font-size:18px}
body.home #home-areas .arearail__pill{
  color:var(--blue-dark);
  background:var(--blue-tint);
  border-color:rgba(0,90,154,.76);
  backdrop-filter:none;
  -webkit-backdrop-filter:none;
}
body.home #home-areas .arearail__n{background:var(--blue)}
.arearail-sec{margin-top:var(--secgap,24px)}
.arearail__h{font-family:'Quicksand',sans-serif;font-weight:700;font-size:15px;letter-spacing:.02em;
  color:var(--ink-strong);margin:0 0 10px}
.arearail{display:flex;gap:8px;overflow-x:auto;padding:2px 34px 8px 2px;
  -webkit-overflow-scrolling:touch;scrollbar-width:none;
  /* right-edge fade: the cut pill + the fade say "there's more" (owner: swipe wasn't obvious) */
  -webkit-mask-image:linear-gradient(90deg,#000 88%,transparent);
  mask-image:linear-gradient(90deg,#000 88%,transparent)}
.arearail::-webkit-scrollbar{display:none}
.arearail__pill{flex:0 0 auto;display:inline-flex;align-items:center;gap:7px;white-space:nowrap;
  font-family:'Quicksand',sans-serif;font-weight:700;font-size:13px;color:var(--blue-dark);
  background:var(--blue-tint);border:1px solid rgba(0,112,192,.25);border-radius:999px;padding:8px 14px}
.arearail__n{font-size:11px;font-weight:700;color:#fff;background:var(--blue);border-radius:999px;
  padding:2px 7px;line-height:1.2}
@media(max-width:620px), (orientation: landscape) and (max-height:620px) and (pointer:coarse){
  body.home #home-areas{order:1}           /* immediately above Born on This Day */
  body.home .arearail-sec{margin:28px 0 4px;padding-left:14px}   /* top gap == the 28px below (owner: equal blank space) */
  body.home .arearail__h{color:#fff;text-shadow:0 1px 3px rgba(7,42,80,.5)}
  body.home .arearail{padding-right:44px;padding-bottom:0}  /* pill bleeds off-screen = scroll affordance; no bottom pad so the gap to Opening equals the 28px above the title */
  body.home .arearail__pill{color:#fff;background:rgba(0,112,192,.52);border:1px solid rgba(255,255,255,.5);
    backdrop-filter:blur(18px) saturate(1.5);-webkit-backdrop-filter:blur(18px) saturate(1.5)}
  body.home .arearail__n{background:rgba(255,255,255,.24)}
  /* A fixed chevron plus the cut-off pill makes the horizontal swipe direction explicit. */
  body.home #home-areas{position:relative}
  body.home #home-areas::after{
    content:"›";
    position:absolute;
    right:8px;
    top:12px;
    width:28px;
    height:28px;
    display:grid;
    place-items:center;
    color:var(--blue-dark);
    background:rgba(255,255,255,.82);
    border:1px solid rgba(0,112,192,.28);
    border-radius:999px;
    box-shadow:0 2px 7px rgba(7,42,80,.14);
    font:700 26px/1 Arial,sans-serif;
    padding-bottom:2px;
    pointer-events:none;
  }
}

/* guide pages: open-now chrome carries the canvas; these style the page's own bits */
.nb-when{margin-top:2px}
.nb-map{margin:10px 0 18px}
.nb-map a{font-family:'Quicksand',sans-serif;font-weight:700;color:var(--blue-dark)}
body.nbpage .nb-map a{color:#fff;text-decoration:underline}
.nb-h2{font-family:'DM Sans',serif;font-weight:600;font-size:24px;margin:26px 0 12px;color:var(--ink-strong)}
body.nbpage .nb-h2{color:#fff;text-shadow:0 1px 3px rgba(7,42,80,.5)}
.nb-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}
.nb-grid .card{position:relative}
.nb-rail-sec{margin:0 0 24px}
.nb-rail-sec .arearail__pill.is-current{color:#fff;background:var(--blue);border-color:var(--blue)}
.nb-grid .on-dist{position:absolute;right:10px;bottom:10px;z-index:3;pointer-events:none;
  font-family:'Quicksand',sans-serif;font-weight:700;font-size:11px;letter-spacing:.03em;
  color:#fff;background:rgba(7,42,80,.72);border-radius:999px;padding:4px 10px}
@media(max-width:620px), (orientation: landscape) and (max-height:620px) and (pointer:coarse){
  body.nbpage .nb-rail-sec{
    position:relative;
    margin:calc(122px + env(safe-area-inset-top)) 0 24px;
  }
  body.nbpage .nb-rail-sec .arearail__h{color:#fff;text-shadow:0 1px 3px rgba(7,42,80,.5)}
  /* The translucent surface belongs only to the horizontal pill rail. */
  body.nbpage .nb-rail-sec .arearail{
    margin:8px 0 0;
    padding:16px 42px 16px 14px;
    background:rgba(247,251,255,.25);
    border:none;
    border-radius:22px;
  }
  /* Fixed in the upper-right, matching the homepage neighborhood cue. */
  body.nbpage .nb-rail-sec::after{
    content:"›";
    position:absolute;
    top:0;
    right:8px;
    width:28px;
    height:28px;
    display:grid;
    place-items:center;
    color:var(--blue-dark);
    background:rgba(255,255,255,.82);
    border:1px solid rgba(0,112,192,.28);
    border-radius:999px;
    box-shadow:0 2px 7px rgba(7,42,80,.14);
    font:700 26px/1 Arial,sans-serif;
    padding-bottom:2px;
    pointer-events:none;
  }
  /* Match homepage neighborhood pills; bring the selected guide first and make it clear. */
  body.nbpage .nb-rail-sec .arearail__pill{
    color:var(--blue-dark);
    background:var(--blue-tint);
    border-color:rgba(0,90,154,.76);
    backdrop-filter:none;
    -webkit-backdrop-filter:none;
  }
  body.nbpage .nb-rail-sec .arearail__pill.is-current{
    order:-1;
    min-width:160px;
    justify-content:center;
    color:#fff;
    background:rgba(0,90,154,.76);
    border-color:rgba(255,255,255,.48);
    box-shadow:0 3px 10px rgba(7,42,80,.28);
    backdrop-filter:blur(14px) saturate(1.25);
    -webkit-backdrop-filter:blur(14px) saturate(1.25);
  }
  body.nbpage .nb-rail-sec .arearail__n{background:var(--blue)}
  body.nbpage .nb-rail-sec .arearail__pill.is-current .arearail__n{
    color:var(--blue-dark);
    background:var(--c-gold);
  }
  body.nbpage .on-titlerow{margin-top:0}
  .nb-grid{grid-template-columns:1fr 1fr;gap:16px 12px}
}
.es2-nb{color:inherit;text-decoration:underline}
.vp-area a{color:inherit;text-decoration:none}

/* ---- top-right Search control: the contact link lives in the footer and main menu. ---- */
.top-actions{display:none}
@media(max-width:620px), (orientation: landscape) and (max-height:620px) and (pointer:coarse){
  body.home .top-actions,body.opennow .top-actions{
    display:flex;position:fixed;top:calc(14px + env(safe-area-inset-top));right:12px;z-index:1150;
    flex-direction:column;align-items:center;gap:6px}
  .top-actions .srch-btn{display:flex;align-items:center;justify-content:center;
    border-radius:999px;border:1px solid rgba(255,255,255,.5);color:#fff;cursor:pointer;
    background:rgba(0,112,192,.52);backdrop-filter:blur(18px) saturate(1.5);
    -webkit-backdrop-filter:blur(18px) saturate(1.5);box-shadow:0 3px 12px rgba(7,42,80,.3);
    text-decoration:none;padding:0}
  .top-actions .srch-btn{width:44px;height:44px}
  .top-actions .srch-btn svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round}
}

/* ---- Must Sees rail (owner, Jul 17): ALL picks in one horizontal scroll, tiles 4 wide x
   2 high, a neighbour peeking; same fade affordance as the neighborhood rail ---- */
@media(max-width:620px), (orientation: landscape) and (max-height:620px) and (pointer:coarse){
  /* one tile in frame, events SLIDE through it (owner mock 1.jpg): snap-center slides,
     dots below signal position -- no peek, no fade */
  body.home #home-featured .grid,
  body.home #home-solo .grid,
  body.home[data-cat="theater"] #home-onview .openings-sec .grid,
  body.home[data-cat="drag"] #home-onview .openings-sec .grid{
    display:flex;align-items:flex-start;height:auto;overflow-x:auto;gap:16px;scroll-snap-type:x mandatory;
    /* Expand the rail to the viewport edges, then restore a 14px visual gutter. This makes
       each single-card slide materially larger without clipping its rounded side shadow. */
    padding:20px 14px 40px;margin:-20px -18px -34px;scrollbar-width:none;-webkit-overflow-scrolling:touch}
  body.home[data-cat="comedy"] #home-onview .openings-sec .grid{
    display:flex;align-items:flex-start;height:auto;overflow-x:auto;gap:16px;scroll-snap-type:x mandatory;
    /* Expand the rail to the viewport edges, then restore a 14px visual gutter. This makes
       each single-card slide materially larger without clipping its rounded side shadow. */
    padding:20px 14px 40px;margin:-20px -18px -34px;scrollbar-width:none;-webkit-overflow-scrolling:touch}
  body.home #home-featured .grid::-webkit-scrollbar,
  body.home #home-solo .grid::-webkit-scrollbar,
  body.home[data-cat="theater"] #home-onview .openings-sec .grid::-webkit-scrollbar,
  body.home[data-cat="drag"] #home-onview .openings-sec .grid::-webkit-scrollbar{display:none}
  body.home[data-cat="comedy"] #home-onview .openings-sec .grid::-webkit-scrollbar{display:none}
  body.home #home-featured .grid .card,
  body.home #home-solo .grid .card,
  body.home[data-cat="theater"] #home-onview .openings-sec .grid .card,
  body.home[data-cat="drag"] #home-onview .openings-sec .grid .card{
    flex:0 0 80%;scroll-snap-align:center;min-width:0;
    height:auto;min-height:0;border-radius:14px;filter:none;box-shadow:var(--mobile-tile-shadow);
    content-visibility:visible;contain-intrinsic-size:auto}
  body.home[data-cat="comedy"] #home-onview .openings-sec .grid .card{
    flex:0 0 80%;scroll-snap-align:center;min-width:0;
    height:auto;min-height:0;border-radius:14px;filter:none;box-shadow:var(--mobile-tile-shadow);
    content-visibility:visible;contain-intrinsic-size:auto}   /* the 300px offscreen placeholder
    (line ~820) sized the unscrolled tiles and stretched the rail; six tiles render cheap */
  body.home #home-featured .grid .card__panel,
  body.home #home-solo .grid .card__panel,
  body.home[data-cat="theater"] #home-onview .openings-sec .grid .card__panel,
  body.home[data-cat="drag"] #home-onview .openings-sec .grid .card__panel{
    aspect-ratio:5/4 !important;height:auto}
  body.home[data-cat="comedy"] #home-onview .openings-sec .grid .card__panel{
    aspect-ratio:5/4 !important;height:auto}   /* the mock tile's shape */
  /* Keep the theater rail's shared Art-slider contract explicit for publish
     preflight; these declarations match the grouped rules immediately above. */
  body.home[data-cat="theater"] #home-onview .openings-sec .grid{display:flex}
  body.home[data-cat="theater"] #home-onview .openings-sec .grid .card{flex-basis:80%}
}

/* Must Sees slider dots (owner mock 1.jpg) */
.msdots{display:none}
@media(max-width:620px), (orientation: landscape) and (max-height:620px) and (pointer:coarse){
  body.home .msdots{display:flex;justify-content:center;gap:8px;margin:10px 0 0}
  body.home .msdots i{width:7px;height:7px;border-radius:999px;background:rgba(255,255,255,.38);transition:background .15s}
  body.home .msdots i.is-on{background:#fff}
}

/* ---- Weekly event rails: Opening, Receptions/Talks, and Closing use the same
   one-large-tile horizontal slider as Must Sees on mobile. Desktop keeps three columns. ---- */
@media(max-width:620px), (orientation: landscape) and (max-height:620px) and (pointer:coarse){
  body.home #home-weekcols{display:contents}
  body.home #home-weekcols .week-col{order:1;margin-top:var(--secgap,24px)}
  body.home #home-weekcols .week-col--recep{order:0}
  body.home #home-weekcols .week-col__cards{display:flex;flex-direction:row;align-items:flex-start;height:auto;
    overflow-x:auto;gap:16px;scroll-snap-type:x mandatory;
    padding:20px 14px 40px;margin:-20px -18px -34px;
    scrollbar-width:none;-webkit-overflow-scrolling:touch}
  body.home #home-weekcols .week-col__cards::-webkit-scrollbar{display:none}
  body.home #home-weekcols .week-col__cards .card{flex:0 0 80%;scroll-snap-align:center;min-width:0;
    height:auto;min-height:0;content-visibility:visible;contain-intrinsic-size:auto}
}


/* ---- mobile large-tile slide tilt (owner request): a restrained 3D parallax as the
   horizontal rails move. The center tile stays face-on; neighbors lean into the slide. ---- */
@media(max-width:620px), (orientation: landscape) and (max-height:620px) and (pointer:coarse){
  body.home .home-slide-rail{
    perspective:1000px;
    perspective-origin:50% 50%;
    transform-style:preserve-3d;
  }
  body.home .home-slide-tilt{
    transform:translate3d(0,0,var(--home-tile-z,0px))
      rotateY(var(--home-tile-angle,0deg))
      scale(var(--home-tile-scale,1));
    transform-origin:50% 50%;
    transform-style:preserve-3d;
    will-change:transform;
    box-shadow:0 var(--home-tile-shadow-y,10px)
      var(--home-tile-shadow-blur,14px)
      rgba(7,42,80,var(--home-tile-shadow-alpha,.40));
    transition:transform 180ms cubic-bezier(.22,.61,.36,1),
      box-shadow 180ms cubic-bezier(.22,.61,.36,1);
  }
}
@media(max-width:620px) and (prefers-reduced-motion:reduce), (orientation: landscape) and (max-height:620px) and (pointer:coarse) and (prefers-reduced-motion:reduce){
  body.home .home-slide-tilt{
    transform:none !important;
    transition:none !important;
    will-change:auto;
  }
}

/* ---- tile hours ---- */
.card__hours{font-family:'Quicksand',sans-serif;font-weight:600;font-size:12px;color:rgba(255,255,255,.92);
  margin-top:3px;text-shadow:0 1px 2px rgba(0,0,0,.4)}
.col-more{display:none}

/* ---- mini tile (owner mock 2.jpeg): the generator emits .card--mini with the image and the
   text as SIBLINGS -- a media box (photo or blue stand-in, kicker on it) then a plain text
   block on the page canvas. Self-contained: no .card__panel, so none of the image-first
   overlay rules apply and nothing needs overriding. ---- */
.card--mini{background:transparent;box-shadow:none;filter:none;border-radius:0;overflow:visible}
.card--mini:hover{box-shadow:none;filter:none}
.card--mini .mini__media{position:relative;width:100%;aspect-ratio:16/10;border-radius:14px;
  overflow:hidden;background:linear-gradient(150deg,var(--blue),#03426f);
  box-shadow:none;filter:var(--tile-drop-shadow);transition:filter .18s ease}
.card--mini:not(.card--static):hover .mini__media{filter:var(--tile-drop-shadow-hover)}
.card--mini .mini__media .card__photo{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.card--mini .mini__txt{padding:8px 2px 2px}
/* the text sits on the PAGE canvas: cream on desktop -> ink; blue on mobile (home AND Open
   Now share the translucent-blue canvas) -> white (owner, Jul 18: Open Now details were
   still ink-on-blue) */
.card--mini .card__addr{color:var(--ink)}
.card--mini .card__title{font-size:15px;line-height:1.25;color:var(--ink-strong);text-shadow:none}
.card--mini .card__date{color:var(--blue)}
.card--mini .card__venue{color:var(--ink)}
.card--mini .card__hours{color:var(--ink);text-shadow:none}
@media(max-width:620px), (orientation: landscape) and (max-height:620px) and (pointer:coarse){
  body.home .card--mini .card__title,
  body.opennow .card--mini .card__title{color:#fff;text-shadow:0 1px 3px rgba(7,42,80,.5)}
  body.home .card--mini .card__date,body.home .card--mini .card__venue,
  body.home .card--mini .card__addr,
  body.home .card--mini .card__hours,
  body.opennow .card--mini .card__date,body.opennow .card--mini .card__venue,
  body.opennow .card--mini .card__addr,
  body.opennow .card--mini .card__hours{color:rgba(255,255,255,.92);text-shadow:0 1px 3px rgba(7,42,80,.5)}
}
.card--mini .mapbtn{display:none}          /* map icon: large tiles only */

/* Weekly mobile rails share one rounded 5:4 overlay tile. Use the exact box-shadow
   primitive as the logo: unlike a composited filter/outline layer, box-shadow follows
   the card's border radius directly in mobile Safari and Chromium. */
@media(max-width:620px), (orientation: landscape) and (max-height:620px) and (pointer:coarse){
  body.home #home-weekcols .card--mini{position:relative;background:var(--blue);border-radius:14px;
    overflow:hidden;isolation:isolate;filter:none;box-shadow:var(--mobile-tile-shadow)}
  body.home #home-weekcols .card--mini:hover{filter:none;box-shadow:var(--mobile-tile-shadow)}
  body.home #home-weekcols .card--mini .mini__media{aspect-ratio:5/4;border-radius:0;box-shadow:none;filter:none}
  body.home #home-weekcols .card--mini .mini__media::after{content:"";position:absolute;inset:0;z-index:1;
    pointer-events:none;background:linear-gradient(to top,rgba(14,11,8,.86) 0%,rgba(14,11,8,.44) 32%,rgba(14,11,8,0) 58%)}
  body.home #home-weekcols .card--mini .mini__txt{position:absolute;left:0;right:0;bottom:0;z-index:2;
    padding:12px 14px 13px}
  body.home #home-weekcols .card--mini .card__title{font-size:19px;line-height:1.22}
  /* These are desktop mini cards but become the same large 5:4 slider tiles as Must Sees
     on mobile. Restore the identical map action beside the heart only in these three rails. */
  body.home #home-weekcols .card--mini .mapbtn{display:inline-flex;top:10px;right:52px;
    z-index:5;width:34px;height:34px}
  /* Keep the weekly mobile rails aligned with Must Sees: Share sits directly
     beside Save at the upper-right of every homepage tile. */
  body.home #home-weekcols .card--mini .mini__media>.tshare{left:auto;right:52px;top:10px;bottom:auto}
}

/* ---- All To See board + Open Now areas: the opening-group treatment (owner, Jul 18) ---- */
.sec--seemore .shead{position:relative}
.sec--seemore .col-more{display:none}
@media(max-width:620px), (orientation: landscape) and (max-height:620px) and (pointer:coarse){
  .sec--seemore{position:relative;padding-bottom:28px}
  .sec--seemore .shead{position:static}
  .sec--seemore .col-more{display:inline-block;position:absolute;right:0;bottom:0;
    font-family:'Quicksand',sans-serif;font-weight:700;font-size:13px;text-decoration:underline}
  body.home .sec--seemore .col-more{color:#fff}
  body.home .sec--seemore .grid{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:16px 12px}
  body.home #home-onview .sec--seemore:not(.is-expanded) .grid > .card:nth-child(n+7){display:none!important}
  body.home #home-onview .sec--seemore.is-expanded .grid > .card:nth-child(n+7){display:flex!important}
  body.opennow .on-area .grid,
  body.opennow .on-theater .grid{grid-template-columns:1fr 1fr;gap:16px 12px}
  /* mini tiles are ~210px tall, not 300: the offscreen placeholder (line ~820) sized every
     unscrolled tile as a big blue slab AND its 300px minimum widened the 1fr columns past
     the screen until first render -- which lands the same instant the lazy image fetch
     fires (owner, Jul 18: "placement tile are big until the images load"). Same exemption
     as the Must Sees rail / recep slider / opening grid. */
  body.opennow .on-area .grid > .card,
  body.opennow .on-theater .grid > .card,
  body.nbpage .nb-grid > .card,
  .sec--seemore .grid > .card{content-visibility:visible;contain-intrinsic-size:auto;min-width:0;width:100%}
}
@media(max-width:620px), (orientation: landscape) and (max-height:620px) and (pointer:coarse){
  body.home .nb-grid .mapbtn{display:none}
}

/* Two-up homepage grids keep a flat shadow after the tilt is excluded. */
@media(max-width:620px), (orientation: landscape) and (max-height:620px) and (pointer:coarse){
  body.home:not([data-cat="theater"]) .sec--seemore .grid > .card{
    border-radius:14px;
    box-shadow:var(--mobile-tile-shadow);
  }
}

/* See Now + See Later two-up cards reuse the homepage's flat rounded shadow. */
@media(max-width:620px), (orientation: landscape) and (max-height:620px) and (pointer:coarse){
  body.opennow .on-area .grid > .card,
  body.opennow .on-theater .grid > .card,
  body.planpage .plan-section .grid > .card{
    border-radius:14px;
    box-shadow:var(--mobile-tile-shadow);
  }
}

/* Neighborhood two-up grids reuse the shared flat rounded shadow. */
@media(max-width:620px), (orientation: landscape) and (max-height:620px) and (pointer:coarse){
  body.nbpage .nb-grid > .card{
    border-radius:14px;
    box-shadow:var(--mobile-tile-shadow);
  }
}

/* ---- Option 3 mobile masthead: logo/actions row -> city context -> Art/Theater tabs ----
   The two control rows are absolute only at the top of the document, so they scroll away
   instead of permanently covering listings. These clearances replace the old fixed-stack
   offsets while leaving every desktop rule untouched. */
@media(max-width:620px), (orientation: landscape) and (max-height:620px) and (pointer:coarse){
  body.cityswitch-ready:not(.legal) .site-header{margin-bottom:118px}
  body.cityswitch-ready.has-guide-switch:not(.legal) .site-header{margin-bottom:166px}
  body.home.cityswitch-ready .page-hero{margin-top:0}
  body.opennow.cityswitch-ready .on-titlerow{margin-top:0}
  body.planpage.cityswitch-ready .plan-wrap{padding-top:0}
  /* The update line sits immediately above neighborhood content; preserve a clean break so
     the rail heading never collides with it on narrow screens. Padding prevents the first
     child's margin from collapsing back through the main container. */
  body.nbpage.cityswitch-ready .on-wrap{padding-top:18px}
  body.nbpage.cityswitch-ready .nb-rail-sec{margin-top:18px}
  body.listpage.cityswitch-ready:not(.opennow) .lp-title{margin-top:26px}
  body.mappage.cityswitch-ready .shead{margin-top:24px}

  /* Maps keep the pre-Option-3 compact controls: Pin key at left, mode filter at right,
     and a narrow city/category stack centered in the clear corridor between them. */
  body.mappage .cityswitch,
  body.mappage .cityswitch--floating{position:fixed;top:calc(8px + env(safe-area-inset-top));
    left:50%;right:auto;transform:translateX(-50%);z-index:1145;display:block}
  body.mappage .cityswitch__context{display:none}
  body.mappage .cityswitch__btn{min-width:132px;justify-content:space-between;padding:6px 10px;
    font-size:12px;box-shadow:0 3px 12px rgba(7,42,80,.28)}
  body.mappage .cityswitch__menu{top:calc(100% + 6px);left:50%;right:auto;
    transform:translateX(-50%);min-width:132px}
  body.mappage .cityswitch__opt{padding:7px 10px;font-size:11.5px}
  body.mappage .mapcat{position:fixed;top:calc(45px + env(safe-area-inset-top));
    left:50%;right:auto;transform:translateX(-50%);width:auto;z-index:1139;
    padding:3px;gap:2px}
  body.mappage .mapcat__opt{flex:0 0 auto;font-size:11px;padding:5px 10px}
  body.mappage .leaflet-top{top:calc(86px + env(safe-area-inset-top))}
}
@media(max-width:350px){
  body.mappage .cityswitch,
  body.mappage .cityswitch--floating,
  body.mappage .mapcat{left:50%}
  body.mappage .cityswitch__btn{min-width:116px;padding:5px 7px;gap:4px;font-size:10.5px}
  body.mappage .cityswitch__caret{font-size:12px}
}

/* ---- Homepage mobile masthead: city + guide tabs share the logo band -----------------
   The location-led city picker replaces the tagline beside the logo. Art/Theater sits
   directly below as a quiet tab rail on the existing blue canvas: no white card, no pill.
   Search and Contact keep their established right-hand stack. */
@media(max-width:620px), (orientation: landscape) and (max-height:620px) and (pointer:coarse){
  body:is(.home,.eventpage) .cityswitch,
  body:is(.home,.eventpage) .cityswitch--floating,
  body.opennow .cityswitch,
  body.opennow .cityswitch--floating{position:fixed;top:calc(17px + env(safe-area-inset-top));
    left:115.28px;right:64px;transform:none;z-index:1149;display:block}
  body:is(.home,.eventpage) .cityswitch__context,
  body.opennow .cityswitch__context{display:none}
  body:is(.home,.eventpage) .cityswitch__btn,
  body.opennow .cityswitch__btn{width:100%;min-width:0;height:31px;justify-content:flex-start;gap:6px;
    padding:0;border:0;border-radius:0;background:none;color:#fff;
    font:700 clamp(13.5px,4.15vw,17px)/1 'Quicksand',sans-serif;letter-spacing:0;
    box-shadow:none;backdrop-filter:none;-webkit-backdrop-filter:none;
    text-shadow:0 1px 3px rgba(7,42,80,.65),0 3px 12px rgba(7,42,80,.5)}
  body:is(.home,.eventpage) .cityswitch__btn:hover,
  body:is(.home,.eventpage) .cityswitch__btn:focus-visible,
  body.opennow .cityswitch__btn:hover,
  body.opennow .cityswitch__btn:focus-visible{background:none}
  body:is(.home,.eventpage) .cityswitch__btn:focus-visible,
  body.opennow .cityswitch__btn:focus-visible{outline:2px solid rgba(255,255,255,.85);
    outline-offset:3px;border-radius:4px}
  body:is(.home,.eventpage) .cityswitch__btn::before,
  body.opennow .cityswitch__btn::before{content:"";width:16px;height:21px;flex:0 0 16px;
    background:currentColor;
    -webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='black' fill-rule='evenodd' d='M12 1a8 8 0 0 0-8 8c0 6 8 14 8 14s8-8 8-14a8 8 0 0 0-8-8Zm0 11a3 3 0 1 1 0-6 3 3 0 0 1 0 6Z'/%3E%3C/svg%3E") center/contain no-repeat;
    mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='black' fill-rule='evenodd' d='M12 1a8 8 0 0 0-8 8c0 6 8 14 8 14s8-8 8-14a8 8 0 0 0-8-8Zm0 11a3 3 0 1 1 0-6 3 3 0 0 1 0 6Z'/%3E%3C/svg%3E") center/contain no-repeat}
  body:is(.home,.eventpage) .cityswitch__label,
  body.opennow .cityswitch__label{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  body:is(.home,.eventpage) .cityswitch__caret,
  body.opennow .cityswitch__caret{width:8px;height:8px;flex:0 0 8px;margin:0 1px 4px 0;
    border-right:2px solid currentColor;border-bottom:2px solid currentColor;
    font-size:0;line-height:0;transform:rotate(45deg)}
  body:is(.home,.eventpage) .cityswitch__menu,
  body.opennow .cityswitch__menu{top:calc(100% + 43px);left:0;right:auto;transform:none;
    width:100%;min-width:0;z-index:2}

  body:is(.home,.eventpage) .catswitch.is-ready{display:flex;position:fixed;
    top:calc(52px + env(safe-area-inset-top));left:115.28px;right:64px;transform:none;
    z-index:1148;padding:0;gap:0;border-radius:0;border-bottom:1px solid rgba(255,255,255,.32);
    background:none;box-shadow:none;backdrop-filter:none;-webkit-backdrop-filter:none}
  body:is(.home,.eventpage) .catswitch__opt{position:relative;flex:1 1 0;padding:7px 2px 9px;
    border-radius:0;background:none;color:rgba(255,255,255,.72);
    font-size:13px;letter-spacing:.01em;text-align:center}
  body:is(.home,.eventpage) .catswitch__opt:hover,
  body:is(.home,.eventpage) .catswitch__opt:focus-visible,
  body:is(.home,.eventpage) .catswitch__opt.is-on{background:none;color:#fff}
  body:is(.home,.eventpage) .catswitch__opt::after{content:"";position:absolute;left:10px;right:10px;bottom:-1px;
    height:3px;border-radius:999px;background:#fff;transform:scaleX(0);transform-origin:center;
    transition:transform .18s ease}
  body:is(.home,.eventpage) .catswitch__opt.is-on::after{transform:scaleX(1)}
  body.home.cityswitch-ready.has-guide-switch:not(.legal) .site-header{margin-bottom:72px}
}
@media(max-width:350px){
  body:is(.home,.eventpage) .cityswitch__btn{gap:5px;font-size:13.5px}
  body:is(.home,.eventpage) .cityswitch__btn::before{width:14px;height:19px;flex-basis:14px}
  body:is(.home,.eventpage) .catswitch__opt{font-size:12.5px}
}

/* ---- Shared mobile masthead (v315) -------------------------------------------
   Homepage, See Now, and Plan use one identity/actions row: floating logo,
   saved count, selected-city weather, and equal Search/Contact circles. Guide
   pages retain their own city/title spacing beneath that shared first row. */
.home-mast-tools,.saved-masthead,.weather-masthead,.mast-calendar-line{display:none}
@media(max-width:620px), (orientation: landscape) and (max-height:620px) and (pointer:coarse){
  body.home .site-header{margin-bottom:115px}
  /* Keep the identity tile floating while the event rails scroll beneath it. */
  body.home .logo,
  body.opennow .logo{position:fixed}
  body.home .logo .beta-tag,
  body.opennow .logo .beta-tag{display:none}
  /* Two equal controls plus their gap exactly equal the 89.28px logo height:
     41.14 + 7 + 41.14 = 89.28. */
  body.home .top-actions,
  body.opennow .top-actions{position:absolute;gap:7px}
  body.home .top-actions .srch-btn,
  body.opennow .top-actions .srch-btn{width:41.14px;height:41.14px;
    border-color:rgba(255,255,255,.8);background:rgba(0,112,192,.18);
    box-shadow:none;backdrop-filter:none;-webkit-backdrop-filter:none}
  body.home .top-actions .srch-btn svg,
  body.opennow .top-actions .srch-btn svg{width:23px;height:23px;stroke-width:1.9}

  body:is(.home,.eventpage) .cityswitch,
  body:is(.home,.eventpage) .cityswitch--floating,
  body.opennow .cityswitch,
  body.opennow .cityswitch--floating{position:absolute;top:calc(115px + env(safe-area-inset-top));
    left:14px;right:14px;z-index:1149;display:flex;align-items:center;
    justify-content:flex-start;gap:14px}
  /* The mobile homepage shows only the rolling seven-day summary. A bounded two-column
     grid reserves independent space for it, so long city names can never sit underneath
     or collide with the count text. See Now/See Later keep their existing live layout. */
  body:is(.home,.eventpage) .cityswitch,
  body:is(.home,.eventpage) .cityswitch--floating{display:grid;
    grid-template-columns:minmax(0,1.38fr) minmax(118px,1fr);column-gap:10px}
  /* See Now/See Later need the same protected columns as Home. Their live/selected counts
     are longer, so give the stats a fixed share instead of letting flex paint over the city. */
  body.opennow:not(.nbpage) .cityswitch,
  body.opennow:not(.nbpage) .cityswitch--floating{display:grid;
    grid-template-columns:minmax(0,1.45fr) minmax(112px,.9fr);column-gap:8px}
  body.opennow:not(.nbpage) .cityswitch__btn{min-width:0;width:100%;font-size:clamp(16px,4.8vw,19px)}
  body.opennow:not(.nbpage) .cityswitch .homestats{width:100%;overflow:hidden}
  body:is(.home,.eventpage) .cityswitch__btn{min-width:0;max-width:100%}
  body:is(.home,.eventpage) .cityswitch .homestats{width:100%;overflow:hidden}
  body:is(.home,.eventpage) .cityswitch__context,
  body.opennow .cityswitch__context{display:none}
  body:is(.home,.eventpage) .cityswitch__btn,
  body.opennow .cityswitch__btn{width:auto;max-width:100%;min-height:39px;height:auto;gap:9px;
    flex:0 1 auto;padding:3px 0 5px;overflow:visible;
    font:700 clamp(19px,6vw,23px)/1.24 'Quicksand',sans-serif}
  body:is(.home,.eventpage) .cityswitch__btn::before,
  body.opennow .cityswitch__btn::before{width:21px;height:27px;flex-basis:21px}
  body:is(.home,.eventpage) .cityswitch__label,
  body.opennow .cityswitch__label{display:block;padding-bottom:1px;overflow:visible;text-overflow:clip}
  body:is(.home,.eventpage) .cityswitch__caret,
  body.opennow .cityswitch__caret{width:9px;height:9px;flex-basis:9px;margin:0 0 5px 2px;
    border-width:0 2.5px 2.5px 0}
  body:is(.home,.eventpage) .cityswitch__menu,
  body.opennow .cityswitch__menu{top:calc(100% + 7px);width:min(230px,100%);
    min-width:190px}
  body:is(.home,.eventpage) .cityswitch .homestats,
  body.opennow .cityswitch .homestats{display:block;flex:1 1 auto;min-width:0;margin:0;
    font-size:0;line-height:1;font-weight:700;color:#fff;letter-spacing:0;text-align:left}
  body:is(.home,.eventpage) .cityswitch .homestats > span,
  body.opennow .cityswitch .homestats > span{display:none}
  body:is(.home,.eventpage) .cityswitch .homestats::before,
  body:is(.home,.eventpage) .cityswitch .homestats::after,
  body.opennow .cityswitch .homestats::before,
  body.opennow .cityswitch .homestats::after{display:block;
    font:700 10.5px/1.18 'Quicksand',sans-serif;letter-spacing:0;white-space:normal}
  body:is(.home,.eventpage) .cityswitch .homestats::before,
  body.opennow .cityswitch .homestats::before{content:attr(data-mobile-line-one)}
  body:is(.home,.eventpage) .cityswitch .homestats::after,
  body.opennow .cityswitch .homestats::after{content:attr(data-mobile-line-two);margin-top:2px}
  body.opennow:not(.nbpage) .cityswitch .homestats::before,
  body.opennow:not(.nbpage) .cityswitch .homestats::after{font-size:9.6px;line-height:1.16}

  body.opennow .on-filter-form{max-width:none;margin:12px 0 20px;padding:11px;
    background:rgba(0,112,192,.52);border-color:rgba(255,255,255,.45);
    box-shadow:0 10px 28px rgba(7,42,80,.25)}
  body.opennow .on-filter-fields{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:10px}
  body.opennow .on-filter-form .plan-field span{color:#fff}

  /* Saved events and city weather sit vertically centered with the 89.28px logo. */
  body:is(.home,.eventpage) .home-mast-tools,
  body.opennow .home-mast-tools{display:flex;position:fixed;
    top:calc(38.14px + env(safe-area-inset-top));left:110px;right:10px;z-index:1151;
    align-items:center;justify-content:flex-end;gap:5px}
  body.home .saved-masthead,
  body.opennow .saved-masthead{display:flex;position:static;
    min-width:52px;height:36px;padding:0 7px;align-items:center;justify-content:center;gap:5px;
    border:1px solid rgba(255,255,255,.8);border-radius:999px;
    background:rgba(0,112,192,.18);color:#fff;cursor:pointer;
    box-shadow:none;font:700 13px/1 'Quicksand',sans-serif}
  body.home .saved-masthead__icon,
  body.opennow .saved-masthead__icon{font:500 22px/1 'Quicksand',sans-serif;color:#ec4899}
  body.home .saved-masthead.has-saved .saved-masthead__icon,
  body.opennow .saved-masthead.has-saved .saved-masthead__icon{color:#ec4899}
  body.home .saved-masthead__count,
  body.opennow .saved-masthead__count{min-width:1ch;text-align:center}
  body.home .weather-masthead,
  body.opennow .weather-masthead{display:flex;min-width:56px;height:36px;padding:0 7px;
    align-items:center;justify-content:center;gap:4px;
    border:1px solid rgba(255,255,255,.8);border-radius:999px;
    background:rgba(0,112,192,.18);color:#fff;
    font:700 13px/1 'Quicksand',sans-serif}
  body.home .weather-masthead[hidden],
  body.opennow .weather-masthead[hidden]{display:none}
  body.home .weather-masthead__icon,
  body.opennow .weather-masthead__icon{font-size:19px;line-height:1}
  body.home .weather-masthead__temp,
  body.opennow .weather-masthead__temp{min-width:28px;text-align:left}
  body.home .map-masthead,
  body.opennow .map-masthead{display:flex;min-width:58px;height:36px;padding:0 9px;gap:5px;align-items:center;justify-content:center;
    border:1px solid rgba(255,255,255,.8);border-radius:999px;background:rgba(0,112,192,.18);color:#fff;
    font:700 12px/1 'Quicksand',sans-serif}
  .map-masthead svg{width:21px;height:21px;flex:0 0 auto;fill:currentColor;stroke:currentColor;stroke-width:1.55;stroke-linecap:round;stroke-linejoin:round}
  body.journalpage .home-mast-tools{display:flex;position:fixed;top:calc(38.14px + env(safe-area-inset-top));left:110px;right:10px;z-index:1151;align-items:center;justify-content:flex-end;gap:5px}
  body.journalpage .saved-masthead{display:flex;position:static;min-width:52px;height:36px;padding:0 7px;align-items:center;justify-content:center;gap:5px;border:1px solid rgba(255,255,255,.8);border-radius:999px;background:rgba(0,112,192,.18);color:#fff;cursor:pointer;box-shadow:none;font:700 13px/1 'Quicksand',sans-serif}
  body.journalpage .saved-masthead__icon{font:500 22px/1 'Quicksand',sans-serif;color:#ec4899}
  body.journalpage .saved-masthead.has-saved .saved-masthead__icon{color:#ec4899}
  body.journalpage .saved-masthead__count{min-width:1ch;text-align:center}
  body.journalpage .weather-masthead{display:flex;min-width:56px;height:36px;padding:0 7px;align-items:center;justify-content:center;gap:4px;border:1px solid rgba(255,255,255,.8);border-radius:999px;background:rgba(0,112,192,.18);color:#fff;font:700 13px/1 'Quicksand',sans-serif}
  body.journalpage .weather-masthead[hidden]{display:none}
  body.journalpage .weather-masthead__icon{font-size:19px;line-height:1}
  body.journalpage .weather-masthead__temp{min-width:28px;text-align:left}
  body.journalpage .map-masthead{display:flex;min-width:58px;height:36px;padding:0 9px;gap:5px;align-items:center;justify-content:center;border:1px solid rgba(255,255,255,.8);border-radius:999px;background:rgba(0,112,192,.18);color:#fff;font:700 12px/1 'Quicksand',sans-serif}
  body.home .mast-calendar-line,
  body.opennow .mast-calendar-line{display:block;position:relative;flex:0 0 clamp(28px,calc(100vw - 322px),72px);
    height:41px;overflow:hidden;color:rgba(255,255,255,.92);
    font:700 9.5px/1.15 'Quicksand',sans-serif;letter-spacing:.01em;text-align:left}
  body.home .mast-calendar-line span,
  body.opennow .mast-calendar-line span{position:absolute;left:0;right:0;top:0;
    will-change:transform;animation:mast-calendar-rise 9s linear infinite}

  body.home .page-hero{position:static;width:100%;max-width:none;flex-direction:row;flex-wrap:wrap;
    justify-content:flex-start;align-items:center;gap:7px;text-align:left;
    padding:0 4px;margin:0 0 64px;min-height:20px}
  body.home .page-hero .home-updated{margin:0;order:2;
    font:500 12.5px/1.25 'Quicksand',sans-serif;letter-spacing:0;
    color:rgba(255,255,255,.82);white-space:nowrap}
  body.opennow .guide-updated{display:block;position:absolute;
    top:calc(164px + env(safe-area-inset-top));left:22px;right:22px;margin:0;
    font:500 12.5px/1.25 'Quicksand',sans-serif;letter-spacing:0;
    color:rgba(255,255,255,.82);white-space:nowrap}
  body.opennow .guide-updated[hidden]{display:none}

  body:is(.home,.eventpage) .catswitch.is-ready,
  body.opennow .catswitch.is-ready{position:absolute;left:14px;right:14px;width:auto;
    transform:none;display:flex;padding:2px;gap:3px;
    border:1px solid rgba(255,255,255,.48);border-radius:999px;
    background:linear-gradient(135deg,rgba(255,255,255,.2),rgba(255,255,255,.07));
    box-shadow:0 8px 24px rgba(0,47,102,.19),inset 0 1px 0 rgba(255,255,255,.4);
    backdrop-filter:blur(18px) saturate(1.45);
    -webkit-backdrop-filter:blur(18px) saturate(1.45)}
  body:is(.home,.eventpage) .catswitch.is-ready{top:calc(192px + env(safe-area-inset-top))}
  body.opennow .catswitch.is-ready{top:calc(192px + env(safe-area-inset-top))}
  body:is(.home,.eventpage) .catswitch__opt,
  body.opennow .catswitch__opt{padding:3px 2px 4px;border-radius:999px;
    font-size:14px;color:rgba(255,255,255,.76);
    transition:background .18s ease,color .18s ease,box-shadow .18s ease}
  body:is(.home,.eventpage) .catswitch__opt:hover,
  body:is(.home,.eventpage) .catswitch__opt:focus-visible,
  body:is(.home,.eventpage) .catswitch__opt.is-on,
  body.opennow .catswitch__opt:hover,
  body.opennow .catswitch__opt:focus-visible,
  body.opennow .catswitch__opt.is-on{color:#fff;background:rgba(255,255,255,.22);
    box-shadow:0 3px 12px rgba(0,47,102,.18),inset 0 1px 0 rgba(255,255,255,.38)}
  body:is(.home,.eventpage) .catswitch__opt::after,
  body.opennow .catswitch__opt::after{display:none}
  body.home.cityswitch-ready.has-guide-switch:not(.legal) .site-header{margin-bottom:115px}
  body.opennow.cityswitch-ready.has-guide-switch:not(.legal) .site-header{margin-bottom:200px}
}

/* Journal recap keeps the familiar Sees Journal canvas while giving seen images room to breathe. */
.journal-wrap{max-width:900px;margin:0 auto;padding:28px 22px 110px}
.journal-head{display:flex;align-items:center;justify-content:space-between;gap:18px;margin-bottom:22px}
.journal-titleline{display:flex;align-items:center;gap:8px;min-width:0}.journal-titleline h1{white-space:nowrap}.journal-title-star{display:inline-flex;align-items:center;justify-content:center;flex:0 0 auto;width:clamp(26px,4vw,36px);height:clamp(26px,4vw,36px);color:#d5a11e;text-shadow:0 1px 5px rgba(112,77,0,.25)}.journal-title-star svg{display:block;width:100%;height:100%;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}.journal-title-star.is-filled svg{fill:currentColor;stroke:currentColor}
.saved-title-heart{display:inline-flex;align-items:center;justify-content:center;flex:0 0 auto;width:clamp(26px,4vw,36px);height:clamp(26px,4vw,36px);color:#ec4899}
.saved-title-heart svg{display:block;width:100%;height:100%;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
.saved-title-heart.is-filled svg{fill:currentColor;stroke:currentColor}
.journal-eyebrow{margin:0 0 4px;color:#0070c0;font:700 12px/1.2 'Quicksand',sans-serif;letter-spacing:.04em;text-transform:none}
.journal-head h1{margin:0;color:var(--ink);font:600 clamp(34px,6vw,52px)/1.05 'DM Sans',serif}
.journal-sub{margin:7px 0 0;color:#70695f;font-size:15px;white-space:nowrap}
.journal-share{border:1px solid #0070c0;border-radius:999px;background:#fff;color:#0070c0;padding:10px 15px;font:700 13px 'Quicksand',sans-serif;cursor:pointer;white-space:nowrap}
.journal-category-toggle{display:inline-flex;align-items:center;gap:3px;margin:-10px 0 18px;padding:4px;border:1px solid rgba(0,112,192,.25);border-radius:999px;background:rgba(0,112,192,.92);box-shadow:0 3px 12px rgba(43,38,31,.2);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px)}
.journal-category-toggle button{border:0;border-radius:999px;background:transparent;color:rgba(255,255,255,.86);padding:9px 22px;font:700 13px 'Quicksand',sans-serif;letter-spacing:.02em;cursor:pointer;white-space:nowrap;transition:background .18s ease,color .18s ease,box-shadow .18s ease}
.journal-category-toggle button.is-on,.journal-category-toggle button:hover,.journal-category-toggle button:focus-visible{background:rgba(255,255,255,.22);color:#fff;box-shadow:0 3px 12px rgba(0,47,102,.18),inset 0 1px 0 rgba(255,255,255,.38)}
.journal-summary{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin:0 0 18px;padding:16px;border:1px solid var(--rule-soft);border-radius:17px;background:var(--blue-tint);box-shadow:0 4px 14px rgba(43,38,31,.07);text-align:center}
.journal-summary strong{display:block;color:#0070c0;font:700 27px/1 'Quicksand',sans-serif}.journal-summary span{display:block;margin-top:5px;color:var(--muted);font-size:12px}
.journal-summary__item{border:0;background:transparent;color:inherit;font:inherit;text-align:center;padding:0;cursor:pointer;border-radius:10px}.journal-summary__item:hover,.journal-summary__item:focus-visible,.journal-summary__item.is-selected{background:rgba(0,112,192,.08);outline:2px solid rgba(0,112,192,.28);outline-offset:2px}
.journal-milestone{display:flex;align-items:center;gap:12px;margin:0 0 18px;padding:11px 14px;border-radius:14px;background:#fff7df;color:#704d00;font-size:14px}
.journal-badge{display:inline-grid;place-items:center;width:31px;height:31px;flex:0 0 auto;clip-path:polygon(50% 0,100% 50%,50% 100%,0 50%);background:#d1d5db;color:#fff;font:700 11px 'Quicksand',sans-serif}.journal-badge--gold{background:#d5a11e}
.journal-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.journal-card{position:relative;display:flex;flex-direction:column;overflow:hidden;border:1px solid #e2c76d;border-radius:16px;background:#d5a11e;box-shadow:0 4px 15px rgba(43,38,31,.08)}
.journal-card>img,.journal-card__placeholder{display:block;width:100%;height:145px;object-fit:cover;background:#dcecf7;color:#0070c0;text-align:center;font-size:34px;line-height:145px}
.journal-card__star{position:absolute;right:9px;top:9px;z-index:2;display:grid;place-items:center;width:34px;height:34px;padding:0;border:1.5px solid rgba(255,255,255,.94);border-radius:50%;background:rgba(255,255,255,.16);color:#d5a11e;appearance:none;-webkit-appearance:none;cursor:pointer}
.journal-card__star svg{display:block;width:21px;height:21px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
.journal-card__star.is-filled svg{fill:currentColor;stroke:currentColor}
.journal-city-label{color:#0070c0;font:700 11px/1.1 'Quicksand',sans-serif;letter-spacing:.02em}.journal-card__body{display:flex;flex:1;flex-direction:column;padding:12px 13px 13px}.journal-card h2{margin:0;color:#fff;font:700 17px/1.15 'Quicksand',sans-serif;text-shadow:0 1px 3px rgba(7,42,80,.22)}.journal-card p{margin:5px 0;color:#70695f;font-size:13px}.journal-card time{display:block;margin-top:auto;color:#0070c0;font-size:12px}.journal-card__warning{color:#a33a2b!important;font-size:12px!important}.journal-card__actions{display:flex;gap:8px;margin-top:auto;padding-top:11px}.journal-card__actions button{border:1px solid var(--rule-soft);border-radius:999px;background:#fff;padding:7px 10px;color:var(--ink);font:700 12px 'Quicksand',sans-serif;cursor:pointer}.journal-card__actions .journal-undo{border-color:#0070c0;color:#0070c0}.journal-card__actions .journal-delete{color:#a33a2b}.journal-empty{margin:24px 0;padding:38px 22px;border:1px dashed #b9d3e7;border-radius:18px;background:#fff;text-align:center}.journal-empty__icon{display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;color:#d5a11e}.journal-empty__icon svg{display:block;width:100%;height:100%;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}.journal-empty h2{margin:9px 0 4px;font:700 22px 'Quicksand',sans-serif}.journal-empty p{max-width:420px;margin:0 auto;color:#70695f;font-size:14px}.journal-future{margin:20px 0 0;color:#70695f;font-size:13px;text-align:center}
.journal-venue-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin:0 0 20px}.journal-venue-card{display:flex;flex-direction:column;overflow:hidden;border:1px solid #e2c76d;border-radius:16px;background:#d5a11e;box-shadow:0 4px 15px rgba(43,38,31,.08);color:inherit;text-decoration:none}.journal-venue-card__media{height:145px;aspect-ratio:16/10;overflow:hidden;background:#dcecf7}.journal-venue-card__media img,.journal-venue-placeholder{display:block;width:100%;height:100%;object-fit:cover}.journal-venue-card__media.is-missing::after{content:'✦';display:grid;place-items:center;width:100%;height:100%;color:#0070c0;font-size:34px}.journal-venue-placeholder{color:#0070c0;text-align:center;font-size:34px;line-height:145px}.journal-venue-card__body{padding:12px 13px 13px}.journal-venue-card h2{margin:0;color:var(--ink);font:700 17px/1.15 'Quicksand',sans-serif}.journal-venue-card p{margin:5px 0;color:#70695f;font-size:13px}.journal-venue-card span{display:block;color:#0070c0;font-size:12px}.journal-venue-empty{margin:0 0 20px;padding:28px 18px;border:1px dashed var(--rule-soft);border-radius:16px;background:#fff;color:#70695f;text-align:center}
.saved-wrap{max-width:900px;margin:0 auto;padding:28px 22px 110px}.saved-head{margin-bottom:18px}.saved-headline{display:flex;align-items:center;justify-content:space-between;gap:18px;margin-bottom:22px}.saved-titleblock{min-width:0}.saved-titleline{display:flex;align-items:center;gap:9px}.saved-titleline h1{margin:0;color:var(--ink);font:600 clamp(34px,6vw,52px)/1.05 'DM Sans',serif}.saved-title-star{color:#ec4899;font:600 clamp(28px,4vw,38px)/1 'DM Sans',serif}.saved-sub{margin:7px 0 0;color:#70695f;font-size:15px}.saved-share{border:1px solid #0070c0;border-radius:999px;background:#fff;color:#0070c0;padding:10px 15px;font:700 13px 'Quicksand',sans-serif;cursor:pointer;white-space:nowrap}.saved-summary{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;padding:14px;border:1px solid var(--rule-soft);border-radius:17px;background:#fff;box-shadow:0 4px 14px rgba(43,38,31,.07);text-align:center}.saved-summary span{color:var(--muted);font-size:12px}.saved-summary strong{display:block;color:#0070c0;font:700 25px/1 'Quicksand',sans-serif;margin-bottom:5px}.saved-route-card{display:flex;align-items:center;justify-content:space-between;gap:16px;margin:0 0 18px;padding:16px;border:1px solid #b9d3e7;border-radius:17px;background:#eaf4fc;box-shadow:0 4px 14px rgba(43,38,31,.06)}.saved-route-card h2{margin:0;color:var(--ink);font:700 17px/1.2 'Quicksand',sans-serif}.saved-route-card p{margin:5px 0 0;color:#70695f;font-size:13px}.saved-route-button{flex:0 0 auto;border:0;border-radius:999px;background:#0070c0;color:#fff;padding:11px 16px;font:700 13px 'Quicksand',sans-serif;cursor:pointer}.saved-route-button:disabled{opacity:.45;cursor:not-allowed}.saved-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.saved-card{position:relative;display:flex;flex-direction:column;overflow:hidden;border:1px solid var(--rule-soft);border-radius:16px;background:#fff;box-shadow:0 4px 15px rgba(43,38,31,.08)}.saved-card>img,.saved-card__placeholder{display:block;width:100%;height:145px;object-fit:cover;background:#dcecf7;color:#0070c0;text-align:center;font-size:34px;line-height:145px}.saved-card__heart{position:absolute;right:10px;bottom:10px;width:40px;height:40px;border:1.5px solid rgba(255,255,255,.94);border-radius:50%;background:transparent;color:#ec4899;font:700 20px/38px 'Quicksand',sans-serif;cursor:pointer;padding:0}.saved-card__body{padding:12px 13px 13px}.saved-card__body h2{margin:0;color:var(--ink);font:700 17px/1.15 'Quicksand',sans-serif}.saved-card__body p{margin:5px 0;color:#70695f;font-size:13px}.saved-card__body .saved-card__address{font-size:12px}.saved-card__body time{color:#0070c0;font-size:12px}.saved-empty{margin:24px 0;padding:38px 22px;border:1px dashed #b9d3e7;border-radius:18px;background:#fff;text-align:center}.saved-empty>span{color:#ec4899;font-size:34px}.saved-empty__icon{display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;color:#ec4899}.saved-empty__icon svg{display:block;width:100%;height:100%;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}.saved-empty h2{margin:9px 0 4px;font:700 22px 'Quicksand',sans-serif}.saved-empty p{max-width:420px;margin:0 auto;color:#70695f;font-size:14px}.saved-nearby{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:12px;align-items:center;margin:14px 0 0;padding:15px 16px;border:1px solid #b9d3e7;border-radius:17px;background:#eef7fc;box-shadow:0 4px 14px rgba(43,38,31,.06)}.saved-nearby>div:first-child strong,.saved-nearby>div:first-child span{display:block}.saved-nearby>div:first-child strong{color:var(--ink);font:700 15px/1.2 'Quicksand',sans-serif}.saved-nearby>div:first-child span{margin-top:4px;color:#70695f;font-size:12px}.saved-nearby-check{border:0;border-radius:999px;background:#0070c0;color:#fff;padding:10px 13px;font:700 12px 'Quicksand',sans-serif;cursor:pointer;white-space:nowrap}.saved-nearby-check:disabled{opacity:.65;cursor:wait}.saved-nearby-result{grid-column:1/-1}.saved-nearby-message{margin:0;color:#70695f;font-size:12px}.saved-nearby-prompt{display:flex;align-items:flex-start;gap:10px;padding:11px;border-radius:13px;background:#fff}.saved-nearby-prompt__dot{display:grid;place-items:center;width:28px;height:28px;flex:0 0 28px;border:2px solid #fff;border-radius:50%;background:#b98bd0;color:#fff;font-size:16px;box-shadow:0 0 0 2px #b98bd0}.saved-nearby-prompt__copy{min-width:0}.saved-nearby-prompt__copy>strong,.saved-nearby-prompt__copy>span,.saved-nearby-prompt__copy>small{display:block}.saved-nearby-prompt__copy>strong{color:#264f6b;font-size:12px}.saved-nearby-prompt__copy>span{margin-top:3px;color:#718c9e;font-size:11px;line-height:1.35}.saved-nearby-prompt__actions{display:flex;gap:7px;margin-top:8px}.saved-nearby-prompt__actions button{border:0;border-radius:999px;padding:7px 10px;font:700 10px 'Quicksand',sans-serif;cursor:pointer}.saved-nearby-yes{background:#d9eddf;color:#32744a}.saved-nearby-no{background:#edf1f3;color:#69808c}.saved-nearby-prompt__copy>small{margin-top:6px;color:#4b7f5b;font-size:10px;font-weight:700}
body.journalpage .journal-empty__icon{box-sizing:border-box;display:flex;margin:0 auto;width:52px;height:52px;border:1px solid rgba(213,161,30,.58);border-radius:50%;background:rgba(213,161,30,.10);box-shadow:0 5px 15px rgba(112,77,0,.16),inset 0 1px 0 rgba(255,255,255,.58)}
body.journalpage .journal-empty__icon svg{width:32px;height:32px}
@media(max-width:620px), (orientation: landscape) and (max-height:620px) and (pointer:coarse){body.journalpage .journal-empty__icon{width:48px;height:48px}body.journalpage .journal-empty__icon svg{width:30px;height:30px}}
body.journalpage .journal-empty .journal-empty__benefit{max-width:420px;margin:10px auto 0;color:rgba(0,112,192,.84);font:600 12px/1.35 'Quicksand',sans-serif;letter-spacing:.01em}
body.journalpage{background:var(--bg)} body.journalpage .site-header{margin-bottom:0}
.journal-count{display:inline-block;min-width:1ch;margin-left:4px;vertical-align:middle;color:currentColor;font:700 12px/1 'Quicksand',sans-serif}
.bn-item#journal-tab.has-journal .bn-i svg{color:#d5a11e;fill:currentColor;stroke:currentColor}
.journal-toast{position:fixed;left:50%;bottom:24px;z-index:2200;transform:translate(-50%,10px);opacity:0;pointer-events:none;
  padding:9px 15px;border-radius:999px;background:#fff;color:#0070c0;box-shadow:0 4px 16px rgba(7,42,80,.24);
  font:700 13px/1.2 'Quicksand',sans-serif;transition:opacity .18s ease,transform .18s ease}
.journal-toast.is-visible{opacity:1;transform:translate(-50%,0)}
.saved-availability-toast{display:none}

/* First-visit event-tile guide: mobile/app only, positioned above the fixed nav. */
.sees-tile-guide{display:none}
@media(max-width:620px), (orientation: landscape) and (max-height:620px) and (pointer:coarse){
  .sees-tile-guide{display:block;position:fixed;left:50%;bottom:calc(82px + env(safe-area-inset-bottom));z-index:3250;width:min(344px,calc(100% - 24px));padding:12px 12px 11px;border:1px solid rgba(255,255,255,.9);border-radius:18px;background:linear-gradient(145deg,rgba(255,255,255,.98),rgba(238,248,255,.96));box-shadow:0 14px 34px rgba(7,42,80,.3),inset 0 1px 0 rgba(255,255,255,.98);color:#063b72;font-family:'Quicksand',sans-serif;opacity:0;transform:translate(-50%,12px);transition:opacity .18s ease,transform .18s ease}
  .sees-tile-guide.is-visible{opacity:1;transform:translate(-50%,0)}
  .sees-tile-guide__head{display:flex;align-items:center;justify-content:space-between;gap:10px;margin:0 1px 7px;color:#063b72;font-size:14px}
  .sees-tile-guide__close{width:25px;height:25px;padding:0;border:0;border-radius:50%;background:rgba(4,74,133,.08);color:#0a5e9c;font:500 21px/23px Arial,sans-serif;cursor:pointer}
  .sees-tile-guide__close:focus-visible{outline:2px solid #7654cf;outline-offset:2px}
  .sees-tile-guide__row{display:grid;grid-template-columns:34px 1fr;align-items:center;gap:9px;padding:7px 2px;border-top:1px solid rgba(64,125,166,.13)}
  .sees-tile-guide__icon{display:grid;place-items:center;width:32px;height:32px;border-radius:11px}
  .sees-tile-guide__icon svg{display:block;width:24px;height:24px;fill:none;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round;stroke-width:2.7}
  .sees-tile-guide__icon--bookmark{color:#7654cf;background:rgba(118,84,207,.13)}
  .sees-tile-guide__icon--journal{color:#d5a11e;background:rgba(213,161,30,.15)}
  .sees-tile-guide__icon--journal svg{stroke-width:1.9}
  .sees-tile-guide__row b{display:block;color:#063b72;font-size:13px;line-height:1.15}
.sees-tile-guide__row small{display:block;margin-top:2px;color:#315a7d;font-size:11px;line-height:1.25}
}

/* First-use guided tour: one anchored callout at a time for the mobile site and
   both native WebView shells. The spotlight stays above the scrim while the
   scrim prevents an accidental tap on the underlying page. */
.sees-onboarding{display:none}
@media(max-width:620px), (orientation: landscape) and (max-height:620px) and (pointer:coarse){
  .sees-onboarding{display:block;position:fixed;inset:0;z-index:3250;color:#063b72;font-family:'Quicksand',sans-serif;pointer-events:none}
  .sees-onboarding__scrim{position:fixed;inset:0;background:rgba(3,22,48,.62);pointer-events:auto}
  .sees-onboarding__spotlight{position:fixed;z-index:1;border:2px solid rgba(255,255,255,.98);border-radius:14px;box-shadow:0 0 0 9999px rgba(3,22,48,.62),0 0 0 5px rgba(255,255,255,.18),0 0 22px rgba(255,255,255,.8);pointer-events:none;transition:left .22s ease,top .22s ease,width .22s ease,height .22s ease}
  .sees-onboarding__card{position:fixed;z-index:2;width:min(330px,calc(100vw - 24px));box-sizing:border-box;padding:14px 14px 12px;border:1px solid rgba(255,255,255,.95);border-radius:18px;background:linear-gradient(145deg,rgba(255,255,255,.99),rgba(238,248,255,.98));box-shadow:0 16px 38px rgba(0,20,48,.38),inset 0 1px 0 #fff;opacity:0;transform:translateY(8px);transition:opacity .18s ease,transform .18s ease;pointer-events:auto}
  .sees-onboarding.is-visible .sees-onboarding__card{opacity:1;transform:translateY(0)}
  .sees-onboarding.is-closing{opacity:0;transition:opacity .18s ease}
  .sees-onboarding__card::before{content:"";position:absolute;left:50%;width:0;height:0;transform:translateX(-50%);border-left:9px solid transparent;border-right:9px solid transparent}
  .sees-onboarding__card.is-below::before{top:-10px;border-bottom:10px solid rgba(255,255,255,.98)}
  .sees-onboarding__card.is-above::before{bottom:-10px;border-top:10px solid rgba(238,248,255,.98)}
  .sees-onboarding__head{display:flex;align-items:center;justify-content:space-between;gap:10px;margin:0 0 7px}
  .sees-onboarding__eyebrow{color:#7654cf;font-size:11px;font-weight:800;letter-spacing:.08em;text-transform:uppercase}
  .sees-onboarding__close{width:26px;height:26px;padding:0;border:0;border-radius:50%;background:rgba(4,74,133,.08);color:#0a5e9c;font:500 21px/24px Arial,sans-serif;cursor:pointer}
  .sees-onboarding__close:focus-visible,.sees-onboarding__next:focus-visible,.sees-onboarding__skip:focus-visible{outline:2px solid #7654cf;outline-offset:2px}
  .sees-onboarding__card h2{margin:0;color:#063b72;font:700 18px/1.12 'DM Sans',sans-serif;letter-spacing:-.02em}
  .sees-onboarding__copy{min-height:48px;margin:7px 0 10px;color:#315a7d;font-size:13px;line-height:1.38}
  .sees-onboarding__progress{color:#7654cf;font-size:11px;font-weight:700}
  .sees-onboarding__actions{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:10px}
  .sees-onboarding__skip{padding:7px 2px;border:0;background:none;color:#315a7d;font:600 12px/1 'Quicksand',sans-serif;cursor:pointer}
  .sees-onboarding__next{min-width:76px;padding:9px 16px;border:0;border-radius:999px;background:linear-gradient(135deg,#8c6bdf,#7654cf);color:#fff;box-shadow:0 6px 13px rgba(47,20,111,.22),inset 0 1px 0 rgba(255,255,255,.28);font:700 13px/1 'Quicksand',sans-serif;cursor:pointer}
}

.journal-achievement-toast{position:fixed;top:50%;left:50%;z-index:3200;
  display:flex;align-items:center;gap:12px;width:min(420px,calc(100% - 28px));padding:14px 14px 14px 13px;
  border:1px solid rgba(255,255,255,.94);border-radius:30px;
  background:linear-gradient(135deg,rgba(255,255,255,.98),rgba(239,249,255,.96) 58%,rgba(222,240,252,.95));
  box-shadow:0 20px 48px rgba(7,42,80,.34),0 4px 14px rgba(7,42,80,.18),inset 0 1px 0 rgba(255,255,255,.98);
  backdrop-filter:blur(18px) saturate(1.18);-webkit-backdrop-filter:blur(18px) saturate(1.18);
  transform:translate(-50%,-46%) scale(.94);opacity:0;transition:opacity .22s ease,transform .22s ease}
.journal-achievement-toast.is-visible{opacity:1;transform:translate(-50%,-50%) scale(1)}
.journal-achievement-toast__badge{display:grid;place-items:center;flex:0 0 54px;width:54px;height:54px;border-radius:50%;
  color:#fff;background:radial-gradient(circle at 33% 28%,rgba(255,255,255,.57),rgba(255,255,255,.08) 34%,transparent 35%),var(--journal-badge);
  border:2px solid rgba(255,255,255,.84);box-shadow:0 3px 10px color-mix(in srgb,var(--journal-badge) 54%,transparent),inset 0 1px 1px rgba(255,255,255,.8)}
.journal-achievement-toast__badge svg{width:31px;height:31px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
.journal-achievement-toast__badge .journal-badge-word{font-size:14px}
.journal-achievement-toast__copy{display:grid;min-width:0;gap:1px;font-family:'Quicksand',sans-serif;color:#063b72}
.journal-achievement-toast__copy strong{font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--journal-badge)}
.journal-achievement-toast__copy b{font-size:17px;line-height:1.1;color:#063b72}
.journal-achievement-toast__copy span{font-size:12px;line-height:1.25;color:#315a7d}
.journal-achievement-toast__close{flex:0 0 auto;width:27px;height:27px;padding:0;border:0;border-radius:50%;background:rgba(4,74,133,.08);color:#0a5e9c;font:500 22px/24px Arial,sans-serif;cursor:pointer}
.journal-achievement-toast__close:focus-visible{outline:2px solid var(--journal-badge);outline-offset:2px}
@media(max-width:620px), (orientation: landscape) and (max-height:620px) and (pointer:coarse){
  .journal-toast{bottom:calc(104px + env(safe-area-inset-bottom))}
  .saved-availability-toast{position:fixed;left:50%;bottom:calc(82px + env(safe-area-inset-bottom));z-index:3250;display:flex;align-items:center;justify-content:center;gap:8px;width:max-content;max-width:calc(100% - 24px);padding:8px 9px 8px 13px;border:1px solid rgba(255,255,255,.92);border-radius:999px;background:linear-gradient(135deg,rgba(255,255,255,.98),rgba(232,246,255,.96));box-shadow:0 12px 28px rgba(7,42,80,.28),inset 0 1px 0 rgba(255,255,255,.98);color:#063b72;font:700 12px/1.15 'Quicksand',sans-serif;opacity:0;pointer-events:none;transform:translate(-50%,10px);transition:opacity .18s ease,transform .18s ease}
  .saved-availability-toast.is-visible{opacity:1;pointer-events:auto;transform:translate(-50%,0)}
  .saved-availability-toast__message{white-space:nowrap}
  .saved-availability-toast__link{padding:6px 10px;border-radius:999px;background:#0070c0;color:#fff;text-decoration:none;white-space:nowrap;box-shadow:0 2px 6px rgba(0,47,102,.18)}
  .saved-availability-toast__link:focus-visible{outline:2px solid #7654cf;outline-offset:2px}
  /* Journal uses the exact list/See Now mobile canvas and utility contrast so every
     page in the shared WKWebView feels like one product. */
  body.journalpage{background:linear-gradient(rgba(3,110,202,.8),rgba(3,110,202,.8)),#fff;color:#fff}
  body.journalpage .site-header{background:transparent;border-bottom:none;margin-bottom:0}
  body.journalpage .logo{position:fixed;top:calc(14px + env(safe-area-inset-top));left:14px;
    width:89.28px;height:89.28px;z-index:1150}
  body.journalpage .logo img{box-shadow:var(--mobile-raised-shadow)}
  body.journalpage .journal-wrap{padding:calc(72px + env(safe-area-inset-top)) 16px 24px}
  body.journalpage .journal-head{align-items:center;margin-bottom:16px;gap:10px}
  /* Match the mobile See Later title scale and serif face. */
  body.journalpage .journal-titleline{gap:5px}
  body.journalpage .journal-title-star{font-size:clamp(26px,4vw,36px)}
  body.journalpage .journal-head h1{color:#fff;font:600 clamp(26px,4vw,36px)/1.05 'DM Sans',serif;text-shadow:0 2px 10px rgba(7,42,80,.38)}
  body.journalpage .journal-sub{color:rgba(255,255,255,.82);font-size:13px}
  body.journalpage .journal-share{border-color:rgba(255,255,255,.78);background:rgba(255,255,255,.12);color:#fff}
  body.journalpage .journal-category-toggle{display:flex;width:100%;margin:-8px 0 14px;padding:4px;gap:3px;border-color:rgba(255,255,255,.48);background:linear-gradient(135deg,rgba(255,255,255,.2),rgba(255,255,255,.07));box-shadow:0 3px 12px rgba(0,47,102,.18);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px)}
  body.journalpage .journal-category-toggle button{flex:1 1 0;border:0;border-radius:999px;background:transparent;color:rgba(255,255,255,.84);padding:8px 2px 9px;font-size:14px}
  body.journalpage .journal-category-toggle button.is-on,
  body.journalpage .journal-category-toggle button:hover,
  body.journalpage .journal-category-toggle button:focus-visible{background:rgba(255,255,255,.22);color:#fff;box-shadow:0 3px 12px rgba(0,47,102,.18),inset 0 1px 0 rgba(255,255,255,.38)}
  body.journalpage .journal-summary{border-color:rgba(255,255,255,.45);background:rgba(0,112,192,.52);
    box-shadow:0 10px 26px rgba(7,42,80,.2);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px)}
  body.journalpage .journal-summary strong{color:#fff}
  body.journalpage .journal-summary span{color:rgba(255,255,255,.8)}
  body.journalpage .journal-summary__item{color:#fff}
  body.journalpage .journal-summary__item:hover,body.journalpage .journal-summary__item:focus-visible,body.journalpage .journal-summary__item.is-selected{background:rgba(255,255,255,.12);outline-color:rgba(255,255,255,.55)}
  body.journalpage .journal-milestone{background:rgba(255,247,223,.95);color:#704d00}
  body.journalpage .journal-empty{border-color:rgba(255,255,255,.55);background:rgba(255,255,255,.94);box-shadow:0 10px 26px rgba(7,42,80,.2)}
  body.journalpage .journal-empty h2{color:var(--ink-strong)}
  body.journalpage .journal-empty p{color:#70695f}
  body.journalpage .journal-empty__icon{color:#d5a11e}
  body.journalpage .journal-card{border-color:rgba(226,199,109,.9);background:#d5a11e;box-shadow:0 10px 24px rgba(7,42,80,.22)}
  body.journalpage .journal-card .journal-city-label{color:#fff}
  body.journalpage .journal-venue-card .journal-city-label{color:#0070c0}
  body.journalpage .journal-venue-grid{grid-template-columns:1fr;gap:10px}
  body.journalpage .journal-venue-card{display:grid;grid-template-columns:96px minmax(0,1fr);min-height:96px;border-color:rgba(226,199,109,.9);background:rgba(255,243,196,.9);box-shadow:0 10px 24px rgba(7,42,80,.22)}
  body.journalpage .journal-venue-card__media{width:96px;height:96px;min-height:96px;aspect-ratio:1/1}
  body.journalpage .journal-venue-card__body{padding:11px 12px}
  body.journalpage .journal-venue-card h2{color:var(--ink);font-size:15px}
  body.journalpage .journal-venue-card p{color:#70695f;font-size:12px}
  body.journalpage .journal-venue-card span{color:#0070c0}
  body.journalpage .journal-venue-empty{background:rgba(255,255,255,.14);border-color:rgba(255,255,255,.55);color:rgba(255,255,255,.84)}
  body.journalpage .journal-future{color:rgba(255,255,255,.78)}
  body.journalpage .site-footer{background:transparent;margin-top:16px}
  body.journalpage .site-footer .footlinks a,
  body.journalpage .site-footer .copy,
  body.journalpage .site-footer .dev-disclaimer{color:rgba(255,255,255,.84)}
  body.savedpage{background:linear-gradient(rgba(3,110,202,.8),rgba(3,110,202,.8)),#fff;color:#fff}
  body.savedpage .site-header{background:transparent;border-bottom:none;margin-bottom:0}
  body.savedpage .logo{position:fixed;top:calc(14px + env(safe-area-inset-top));left:14px;width:89.28px;height:89.28px;z-index:1150}
  body.savedpage .logo img{box-shadow:var(--mobile-raised-shadow)}
  body.savedpage .saved-wrap{padding:calc(72px + env(safe-area-inset-top)) 16px 24px}
  body.savedpage .saved-titleline{gap:6px}
  body.savedpage .saved-titleline h1{color:#fff;font:600 clamp(26px,4vw,36px)/1.05 'DM Sans',serif;text-shadow:0 2px 10px rgba(7,42,80,.38)}
  body.savedpage .saved-sub{color:rgba(255,255,255,.84);font-size:13px}
  body.savedpage .home-mast-tools .weather-masthead{display:none !important}
  body.savedpage .saved-context-pill{display:flex;align-items:center;gap:8px;width:fit-content;max-width:100%;margin:-7px 0 15px;padding:8px 12px;border:1px solid rgba(255,255,255,.72);border-radius:999px;background:rgba(255,255,255,.14);box-shadow:0 6px 16px rgba(7,42,80,.16),inset 0 1px 0 rgba(255,255,255,.36);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);color:#fff;font:700 12px/1 'Quicksand',sans-serif}
  body.savedpage .saved-context-pill__city{font-weight:700}
  body.savedpage .saved-context-pill__weather{display:inline-flex;align-items:center;gap:3px;color:rgba(255,255,255,.94)}
  body.savedpage .saved-context-pill__icon{font-size:15px;line-height:1}
  body.savedpage .saved-context-pill__count{padding-left:8px;border-left:1px solid rgba(255,255,255,.38);color:rgba(255,255,255,.84);font-size:11px}
  body.savedpage .saved-summary{border-color:rgba(255,255,255,.42);background:rgba(255,255,255,.14);box-shadow:0 10px 26px rgba(7,42,80,.2);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px)}
  body.savedpage .saved-summary strong{color:#fff} body.savedpage .saved-summary span{color:rgba(255,255,255,.8)}
  body.savedpage .saved-route-card{border-color:rgba(255,255,255,.48);background:rgba(255,255,255,.14);box-shadow:0 10px 26px rgba(7,42,80,.2);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px)}
  body.savedpage .saved-route-card h2{color:#fff;font-size:16px} body.savedpage .saved-route-card p{color:rgba(255,255,255,.8);font-size:12px}
  body.savedpage .saved-route-button{background:#fff;color:#075e9f}
  body.savedpage .saved-card{border-color:rgba(255,255,255,.55);box-shadow:0 10px 24px rgba(7,42,80,.22)}
  body.savedpage .saved-card__heart{width:40px;height:40px}
  body.savedpage .saved-empty{border-color:rgba(255,255,255,.55);background:rgba(255,255,255,.94);box-shadow:0 10px 26px rgba(7,42,80,.2)}
  body.savedpage .site-footer{background:transparent;margin-top:16px}
  body.savedpage .site-footer .footlinks a,body.savedpage .site-footer .copy,body.savedpage .site-footer .dev-disclaimer{color:rgba(255,255,255,.84)}
  body.savedpage .saved-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
  body.savedpage .saved-card>img,body.savedpage .saved-card__placeholder{height:108px;line-height:108px}
  body.savedpage .saved-card__body{padding:10px}.saved-card__body h2{font-size:15px}.saved-card__body p{font-size:12px}
  body.savedpage .saved-route-card{align-items:flex-start;flex-direction:column;gap:10px;padding:13px}
  body.savedpage .saved-route-button{width:100%}
  body.savedpage .home-mast-tools{display:flex;position:fixed;top:calc(38.14px + env(safe-area-inset-top));left:110px;right:10px;z-index:1151;align-items:center;justify-content:flex-end;gap:5px}
  body.savedpage .saved-masthead,body.savedpage .weather-masthead,body.savedpage .map-masthead{display:flex;position:static;align-items:center;justify-content:center;border:1px solid rgba(255,255,255,.8);border-radius:999px;background:rgba(0,112,192,.18);color:#fff;box-shadow:none;cursor:pointer}
  body.savedpage .saved-masthead{min-width:52px;height:36px;padding:0 7px;gap:5px;font:700 13px/1 'Quicksand',sans-serif}
  body.savedpage .saved-masthead__icon{font:500 22px/1 'Quicksand',sans-serif;color:#ec4899}.savedpage .saved-masthead.has-saved .saved-masthead__icon{color:#ec4899}
  body.savedpage .weather-masthead{min-width:56px;height:36px;padding:0 7px;gap:4px;font:700 13px/1 'Quicksand',sans-serif}.savedpage .weather-masthead[hidden]{display:none}
  body.savedpage .map-masthead{min-width:58px;height:36px;padding:0 9px;gap:5px;font:700 12px/1 'Quicksand',sans-serif}
  .journal-wrap{padding:18px 16px 112px}.journal-head{align-items:flex-start}.journal-head h1{font-size:36px}.journal-sub{font-size:13px}.journal-share{padding:8px 11px;font-size:12px}.journal-grid{gap:10px}.journal-card>img,.journal-card__placeholder{height:108px;line-height:108px}.journal-card__body{padding:10px}.journal-card h2{font-size:15px}.journal-card p{font-size:12px}.journal-card__actions{display:block}.journal-card__actions button{margin:4px 4px 0 0;padding:6px 8px}.journal-summary{padding:8px}.journal-summary strong{font-size:23px}
}
@keyframes mast-calendar-rise{
  from{transform:translate3d(0,42px,0)}
  to{transform:translate3d(0,calc(-100% - 8px),0)}
}

/* Keep the mobile masthead, tile actions, and event sheets on one visual system. */
@media(max-width:620px), (orientation: landscape) and (max-height:620px) and (pointer:coarse){
  body.home .saved-masthead__icon,
  body.opennow .saved-masthead__icon,
  body.journalpage .saved-masthead__icon,
  body.savedpage .saved-masthead__icon{font-size:20px !important}
  body.home .map-masthead svg,
  body.opennow .map-masthead svg,
  body.journalpage .map-masthead svg,
  body.savedpage .map-masthead svg{color:#0070c0 !important}

  .card .jbtn,.cover__slide .jbtn,.mini__media>.jbtn,
  .row .jbtn,.mcard .jbtn{color:#d5a11e}
  .card .jbtn.is-journaled svg,.cover__slide .jbtn.is-journaled svg,
  .mini__media>.jbtn.is-journaled svg,.row .jbtn.is-journaled svg,
  .mcard .jbtn.is-journaled svg{fill:currentColor;stroke:currentColor}
  .card .tshare,.cover__slide .tshare,.mini__media>.tshare,
  .row .tshare,.mcard .tshare{color:#000}

  .evsheet__heart,.evsheet__share,.evsheet__x{width:36px;height:36px;line-height:36px;font-size:20px}
  .evsheet__heart{right:10px;color:#ec4899}
  .evsheet__share{right:52px;color:#000}
  .evsheet__share svg{width:21px;height:21px}
  .evsheet__x{left:10px}
  .evsheet__journal{right:10px;bottom:10px;width:36px;height:36px;color:#d5a11e}
  .evsheet__journal svg{width:22px;height:22px}
}


/* The stats star is a sibling of the large floating star, so both share the same
   fixed background stacking level and never move with document scrolling. */
.sj-fixed-background-layer{
  position:fixed;
  z-index:-1;
  pointer-events:none;
  left:var(--sj-stats-star-x);
  top:var(--sj-stats-star-y);
  width:144px;
  height:144px;
  margin-left:-72px;
  clip-path:polygon(50% 0%,62% 37%,100% 50%,62% 63%,50% 100%,38% 63%,0% 50%,38% 37%);
  background:
    radial-gradient(circle at 34% 28%,rgba(217,235,248,.34),transparent 34%),
    linear-gradient(135deg,rgba(0,112,192,.28),rgba(3,66,111,.22) 62%,rgba(0,90,154,.08));
  filter:blur(10px);
  opacity:.62;
  animation:sj-liquid-star 42s ease-in-out infinite alternate;
  will-change:transform,opacity;
}
@media(max-width:620px), (orientation: landscape) and (max-height:620px) and (pointer:coarse){
  .sj-fixed-background-layer{
    width:116px;
    height:116px;
    margin-left:-58px;
  }
}

@media(prefers-reduced-motion:reduce){
  body.home .mast-calendar-line span,
  body.opennow .mast-calendar-line span{top:50%;transform:translateY(-50%);animation:none}
}

/* The Journal category switch is the same glass treatment used by the homepage
   Art/Theater switch. Keep the selected state from the generic blue chip rule
   from repainting this mobile control. */
@media(max-width:620px), (orientation: landscape) and (max-height:620px) and (pointer:coarse){
  body.journalpage .journal-category-toggle{
    border:1px solid rgba(255,255,255,.48) !important;
    border-radius:999px !important;
    background:linear-gradient(135deg,rgba(255,255,255,.2),rgba(255,255,255,.07)) !important;
    box-shadow:0 8px 24px rgba(0,47,102,.19),inset 0 1px 0 rgba(255,255,255,.4) !important;
    backdrop-filter:blur(18px) saturate(1.45) !important;
    -webkit-backdrop-filter:blur(18px) saturate(1.45) !important;
  }
  body.journalpage .journal-category-toggle button,
  body.journalpage .journal-category-toggle .catswitch__opt{
    padding:8px 2px 9px !important;
    border-radius:999px !important;
    background:transparent !important;
    color:rgba(255,255,255,.76) !important;
    font-size:14px !important;
  }
  body.journalpage .journal-category-toggle .catswitch__opt.is-on,
  body.journalpage .journal-category-toggle .catswitch__opt:hover,
  body.journalpage .journal-category-toggle .catswitch__opt:focus-visible{
    color:#fff !important;background:rgba(255,255,255,.22) !important;
    box-shadow:0 3px 12px rgba(0,47,102,.18),inset 0 1px 0 rgba(255,255,255,.38) !important;
  }
  /* Journal and Saved are personal, city-free surfaces. Keep their compact
     chrome identical and avoid the legacy legal/footer block consuming the
     first screen in the WKWebView. */
  body.journalpage .cityswitch,
  body.journalpage .cityswitch--floating,
  body.savedpage .cityswitch,
  body.savedpage .cityswitch--floating,
  body.journalpage .site-footer,
  body.savedpage .site-footer{display:none !important}

  /* The map and share controls share the top-right action rail. A 10% size
     reduction plus an explicit 8px gutter prevents their white rings from
     touching the saved heart on narrow cards. */
  .card .mapbtn,
  .cover__slide .mapbtn{width:36px;height:36px;line-height:36px}
  .card .mapbtn{right:52px}
  .cover__slide .mapbtn{right:58px}
  .card__panel>.tshare,
  .cover__slide>.tshare{width:36px;height:36px}
  .card__panel>.tshare{right:96px}
  .cover__slide>.tshare{right:102px}
  .card .mapbtn svg,
  .cover__slide .mapbtn svg,
  .card__panel>.tshare svg,
  .cover__slide>.tshare svg{width:19px;height:19px}
}
/* Search now sits in the same fixed utility line as Saved, Weather, and Map.
   Keeping the wrapper inside .home-mast-tools makes the row share the logo's floating
   behavior and prevents the old stacked corner controls from drifting independently. */
@media(max-width:620px), (orientation: landscape) and (max-height:620px) and (pointer:coarse){
  body:is(.home,.eventpage) .mast-inline-actions,
  body.opennow .mast-inline-actions,
  body.journalpage .mast-inline-actions,
  body.savedpage .mast-inline-actions{display:flex;position:static;align-items:center;gap:5px}
  body:is(.home,.eventpage) .mast-inline-actions .srch-btn,
  body.opennow .mast-inline-actions .srch-btn,
  body.journalpage .mast-inline-actions .srch-btn,
  body.savedpage .mast-inline-actions .srch-btn{display:flex;width:36px;height:36px;align-items:center;
    justify-content:center;border-radius:50%;border:1px solid rgba(255,255,255,.8);
    color:#fff;cursor:pointer;background:rgba(0,112,192,.18);box-shadow:none;
    backdrop-filter:none;-webkit-backdrop-filter:none;text-decoration:none;padding:0}
  body:is(.home,.eventpage) .mast-inline-actions .srch-btn svg,
  body.opennow .mast-inline-actions .srch-btn svg,
  body.journalpage .mast-inline-actions .srch-btn svg,
  body.savedpage .mast-inline-actions .srch-btn svg{width:20px;height:20px;fill:none;stroke:currentColor;
    stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
}
@media(max-width:350px){
  body:is(.home,.eventpage) .cityswitch__btn,
  body.opennow .cityswitch__btn{font-size:18px;gap:7px}
  body:is(.home,.eventpage) .cityswitch__btn::before,
  body.opennow .cityswitch__btn::before{width:19px;height:24px;flex-basis:19px}
  body:is(.home,.eventpage) .home-mast-tools,
  body.opennow .home-mast-tools,
  body.journalpage .home-mast-tools,
  body.savedpage .home-mast-tools{left:105px;right:8px;gap:4px}
  body.home .saved-masthead,
  body.opennow .saved-masthead,
  body.journalpage .saved-masthead,
  body.savedpage .saved-masthead{min-width:46px;padding:0 5px;gap:4px}
  body.home .weather-masthead,
  body.opennow .weather-masthead,
  body.journalpage .weather-masthead,
  body.savedpage .weather-masthead{min-width:50px;padding:0 5px}
  body.home .map-masthead,
  body.opennow .map-masthead,
  body.journalpage .map-masthead,
  body.savedpage .map-masthead{min-width:54px;height:32px;padding:0 7px}
  body:is(.home,.eventpage) .mast-inline-actions .srch-btn,
  body.opennow .mast-inline-actions .srch-btn,
  body.journalpage .mast-inline-actions .srch-btn,
  body.savedpage .mast-inline-actions .srch-btn{width:32px;height:32px}
  body.journalpage .journal-head{gap:5px}
  body.journalpage .journal-titleline{gap:3px}
  body.journalpage .journal-titleline h1,
  body.journalpage .journal-title-star{font-size:24px;width:24px;height:24px}
  body.journalpage .journal-share{padding:7px 8px;font-size:11px}
  body:is(.home,.eventpage) .cityswitch .homestats::before,
  body:is(.home,.eventpage) .cityswitch .homestats::after,
  body.opennow .cityswitch .homestats::before,
  body.opennow .cityswitch .homestats::after{font-size:10.75px}
  body.home .page-hero .home-updated,
  body.opennow .guide-updated{font-size:11.5px}
}

/* Selected Art/Theater state uses the logo's #0070c0 blue on every page. */
body .catswitch__opt.catswitch__opt.is-on,
body .mapcat__opt.mapcat__opt.is-on{
  color:#fff;
  background:var(--blue);
  box-shadow:0 3px 12px rgba(0,47,102,.28),inset 0 1px 0 rgba(255,255,255,.22)
}

/* See Now and See Later already explain their result context in the page/section heading.
   Repeating “See Now”, “To See”, or “Must See” over every image adds noise. */
body.opennow .card__kick,
body.planpage .card__kick{display:none}
/* “To See” is a section heading, not useful information repeated on every exhibition tile.
   Generated cards omit it; this also cleans already-published/static cards until regeneration. */
.card__kick.kick--exhibition{display:none}

/* ---------- DESKTOP / MOBILE DESIGN PARITY (v332) ----------
   Desktop keeps its top navigation, three-column rails, maps, and full editorial
   headings. The palette, glass controls, rounded surfaces, and status colors now
   follow the mobile product instead of forming a separate beige/blue design system. */
.tag--featured{background:var(--c-gold)}
.tag--opening{background:var(--c-open)}
.tag--reception{background:#dc2626}
.tag--art-walk{background:var(--c-walk)}
.tag--theater-now{background:#16a34a}
.tag--theater-opening{background:#c0398b}

@media(min-width:621px){
  /* Beta remains available as a quiet footer disclosure, but never rides the
     desktop logo. This one rule covers hand-authored and generated pages. */
  .logo .beta-tag{display:none!important}

  /* Keep every city homepage aligned with San Diego: the city is already
     represented by the selector, so do not repeat it above Today. */
  body.desktop-home .desktop-home__city{display:none!important}

  /* A more useful desktop masthead: familiar horizontal navigation, with the
     current city promoted to a first-class glass control beside the logo. */
  .site-header{
    background:linear-gradient(110deg,#047cc8 0%,#006bb6 58%,#075e9e 100%);
    border-bottom-color:rgba(255,255,255,.22);
    box-shadow:0 7px 24px rgba(7,42,80,.16)}
  .site-header__in{height:64px}
  .logo{top:34px}
  .topnav{gap:5px 8px}
  .topnav a{padding:11px 14px;border-radius:999px;transition:background .16s,opacity .16s}
  .topnav a:hover,.topnav a:focus-visible{opacity:1;background:rgba(255,255,255,.14)}
  .cityswitch{
    display:flex;align-items:center;gap:10px;padding:5px 6px 5px 13px;
    border:1px solid rgba(255,255,255,.44);border-radius:18px;
    background:rgba(255,255,255,.13);
    box-shadow:0 5px 18px rgba(7,42,80,.24);
    backdrop-filter:blur(16px) saturate(1.4);
    -webkit-backdrop-filter:blur(16px) saturate(1.4)}
  .cityswitch__context{
    display:block;font:700 9.5px/1.05 'Quicksand',sans-serif;
    letter-spacing:.11em;text-transform:uppercase;color:rgba(255,255,255,.76);
    white-space:nowrap}
  .cityswitch__btn{
    min-width:146px;min-height:38px;justify-content:space-between;padding:9px 13px;
    border-color:rgba(255,255,255,.72);background:rgba(0,72,130,.42);
    font-size:15.5px;box-shadow:inset 0 1px 0 rgba(255,255,255,.15)}
  .cityswitch__btn:hover,.cityswitch__btn:focus-visible{background:rgba(0,72,130,.62)}
  .cityswitch__caret{font-size:17px}
  .cityswitch__menu{top:calc(100% + 8px);left:auto;right:0;transform:none;min-width:174px}
  .cityswitch__opt{
    padding:10px 14px;background:rgba(0,85,154,.96);font-size:13.5px;
    border-color:rgba(255,255,255,.6);box-shadow:0 8px 24px rgba(7,42,80,.3)}

  /* Homepage canvas and type inherit the mobile azure language while the
     desktop information density and three-column organization remain intact. */
  body.home{
    background:
      radial-gradient(1050px 570px at 50% 0%,rgba(255,255,255,.16),transparent 70%),
      linear-gradient(135deg,#087fca 0%,#0877c0 46%,#056caf 100%);
    color:#fff}
  body.home .site-header{margin-bottom:92px}
  body:is(.home,.eventpage) .mastright{margin:8px 0 0}
  body:is(.home,.eventpage) .catswitch.is-ready{
    padding:4px;border:1px solid rgba(255,255,255,.46);
    background:rgba(255,255,255,.16);
    box-shadow:0 8px 24px rgba(7,42,80,.22),inset 0 1px 0 rgba(255,255,255,.16)}
  body:is(.home,.eventpage) .catswitch__opt{font-size:13.5px;padding:8px 18px;color:rgba(255,255,255,.82)}
  body:is(.home,.eventpage) .catswitch__opt.is-on{
    color:#fff;background:#075f9f;
    box-shadow:0 3px 10px rgba(7,42,80,.28),inset 0 1px 0 rgba(255,255,255,.16)}
  body.home .page-hero{padding:26px 24px 12px;max-width:900px}
  body.home .page-hero h1,
  body.home .page-hero h1.h1-home,
  body.home .page-hero .page-hero__dates,
  body.home .shead h2,
  body.home .week-col__head h2,
  body.home .bday-head h2{color:#fff}
  body.home .page-hero .page-hero__dates{opacity:.94;text-shadow:0 2px 12px rgba(7,42,80,.24)}
  body.home .homestats{color:rgba(255,255,255,.82)}
  body.home .homestats strong{color:#fff}
  body.home .shead h2,
  body.home .week-col__head h2,
  body.home .bday-head h2{text-shadow:0 2px 12px rgba(7,42,80,.28)}
  body.home .shead p,
  body.home .bday-sub,
  body.home .week-col__empty{color:rgba(255,255,255,.8)}
  body.home .week-col__empty{border-color:rgba(255,255,255,.34)}

  /* Desktop mini tiles keep their image-over-copy composition; only their
     canvas typography changes from beige-page ink to the mobile white system. */
  body.home .card--mini .card__title{color:#fff;text-shadow:0 1px 3px rgba(7,42,80,.45)}
  body.home .card--mini .card__date,
  body.home .card--mini .card__venue,
  body.home .card--mini .card__addr,
  body.home .card--mini .card__hours{
    color:rgba(255,255,255,.9);text-shadow:0 1px 3px rgba(7,42,80,.38)}
  body.home .card--mini .mini__media{
    filter:drop-shadow(0 10px 15px rgba(7,42,80,.28)) drop-shadow(0 2px 4px rgba(7,42,80,.18))}
  body.home .card--mini:not(.card--static):hover .mini__media{
    filter:drop-shadow(0 15px 20px rgba(7,42,80,.34)) drop-shadow(0 3px 6px rgba(7,42,80,.22))}

  /* Neighborhoods and map controls become glass/white surfaces over the blue
     canvas, matching the mobile interaction vocabulary without losing the
     desktop rail and full embedded map. */
  body.home .area h3,
  body.home .area h3 .c,
  body.home .area li,
  body.home .maplegend,
  body.home .mapcount,
  body.home .mapmodes__note,
  body.home .walkhint{color:#fff}
  body.home .area h3{border-bottom-color:rgba(255,255,255,.5)}
  body.home .area li{border-bottom-color:rgba(255,255,255,.22)}
  body.home .mapmode{
    color:#fff;background:rgba(255,255,255,.12);
    border-color:rgba(255,255,255,.55);backdrop-filter:blur(12px);
    -webkit-backdrop-filter:blur(12px)}
  body.home .mapmode.is-on{background:#075f9f;border-color:#fff}
  body.home #homemap{
    border-color:rgba(255,255,255,.56);
    box-shadow:0 16px 36px rgba(7,42,80,.28)}

  /* Artist of the Day uses the same raised blue-card logic as mobile, scaled
     to the desktop three-panel composition. */
  body.home .bday-sec{border-top-color:rgba(255,255,255,.28)}
  body.home .bday-card{
    overflow:hidden;border:1px solid rgba(255,255,255,.4);border-radius:20px;
    background:rgba(0,91,162,.62);
    box-shadow:0 16px 38px rgba(7,42,80,.28);
    backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px)}
  body.home .bday-name,
  body.home .bday-bio,
  body.home .bday-when,
  body.home .bday-work-title,
  body.home .bday-work-meta,
  body.home .bday-work-label{color:#fff}
  body.home .bday-work{background:rgba(255,255,255,.13)}
  body.home .bday-work-meta,
  body.home .bday-bio{opacity:.86}
}

/* ---------- DESKTOP HOME / ATLAS + MOBILE MASTHEAD FOLLOW-UP (v333) ----------
   Desktop retains its information-dense layouts while the homepage order and Atlas
   now follow the same blue/glass system. Mobile keeps its existing card rails, with
   a clearer live summary and quieter update metadata. */
.topnav a[href$="essays.html"]{display:none}
.hs-mobile{display:none}
.hs-item + .hs-item::before{content:" \00b7 "}

@media(min-width:621px){
  /* Artist of the Day belongs directly after the editorial Must Sees board. */
  body.home > .wrap{display:flex;flex-direction:column}
  body.home > .wrap > .mastright{order:-2}
  body.home > .wrap > .page-hero{order:-1}
  body.home > .wrap > #concierge{order:0}
  body.home > .wrap > #home-weekcols{order:1}
  body.home > .wrap > #home-featured{order:2}
  body.home > .wrap > .bday-sec{order:3;margin-top:64px}
  body.home > .wrap > #home-areas{order:4}
  body.home > .wrap > #home-onview{order:5}

  /* The dedicated Atlas is the map surface; the duplicate homepage plot is retired. */
  body.home section[aria-labelledby="map-h"]{display:none!important}

  /* Atlas uses the same azure canvas, white typography, glass filters, and raised
     image tiles as the homepage while keeping its desktop map and three-column grid. */
  body.atlas-page{
    background:
      radial-gradient(1050px 570px at 50% 0%,rgba(255,255,255,.16),transparent 70%),
      linear-gradient(135deg,#087fca 0%,#0877c0 46%,#056caf 100%);
    color:#fff}
  body.atlas-page .page-hero h1,
  body.atlas-page .atlas-lede,
  body.atlas-page .atlas-stat,
  body.atlas-page .area__head,
  body.atlas-page .map-note,
  body.atlas-page .more h2,
  body.atlas-page .more p{color:#fff}
  body.atlas-page .atlas-stat strong{color:#fff}
  body.atlas-page .atlas-stat::before{
    background:linear-gradient(90deg,transparent,rgba(255,255,255,.58))}
  body.atlas-page .atlas-stat::after{
    background:linear-gradient(90deg,rgba(255,255,255,.58),transparent)}
  body.atlas-page .atlas-tools{
    padding:16px;border:1px solid rgba(255,255,255,.4);border-radius:18px;
    background:rgba(255,255,255,.13);
    box-shadow:0 12px 30px rgba(7,42,80,.2);
    backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px)}
  body.atlas-page .atlas-search{
    border-color:rgba(255,255,255,.7);border-radius:12px;
    background:rgba(255,255,255,.94);box-shadow:inset 0 1px 0 #fff}
  body.atlas-page .chip{
    color:#fff;background:rgba(255,255,255,.12);
    border-color:rgba(255,255,255,.55)}
  body.atlas-page .chip:hover{border-color:#fff;background:rgba(255,255,255,.2)}
  body.atlas-page .chip.is-on{color:#fff;background:#075f9f;border-color:#fff}
  body.atlas-page .atlas-count{color:rgba(255,255,255,.78)}
  body.atlas-page .area__head{border-bottom-color:rgba(255,255,255,.52)}
  body.atlas-page .area__count{background:#075f9f;border:1px solid rgba(255,255,255,.55)}
  body.atlas-page .vcard{
    overflow:hidden;border-color:rgba(255,255,255,.4);border-radius:18px;
    background:rgba(0,91,162,.64);
    box-shadow:0 13px 30px rgba(7,42,80,.22)}
  body.atlas-page .vcard:hover{box-shadow:0 18px 38px rgba(7,42,80,.3)}
  body.atlas-page .vcard__body{background:rgba(0,91,162,.78)}
  body.atlas-page .vcard__name,
  body.atlas-page .vcard__name a,
  body.atlas-page .vcard__addr,
  body.atlas-page .vp-hours,
  body.atlas-page .vcard__detail,
  body.atlas-page .vcard__link,
  body.atlas-page .vcard__map{color:#fff}
  body.atlas-page .vcard__addr,
  body.atlas-page .vp-hours{opacity:.86}
  body.atlas-page .vcard__map{border-color:rgba(255,255,255,.6)}
  body.atlas-page #placesmap{
    border-color:rgba(255,255,255,.62);
    box-shadow:0 16px 36px rgba(7,42,80,.28)}
  body.atlas-page .more{
    border-color:rgba(255,255,255,.4);background:rgba(255,255,255,.13);
    box-shadow:0 12px 30px rgba(7,42,80,.2)}
  body.atlas-page .more a{color:#fff}

  /* Calendar keeps its information-dense desktop grid, but now shares the same
     azure canvas, glass surfaces, white headings, and raised tiles as Home/Atlas. */
  body.calendar-page{
    background:
      radial-gradient(1050px 570px at 50% 0%,rgba(255,255,255,.16),transparent 70%),
      linear-gradient(135deg,#087fca 0%,#0877c0 46%,#056caf 100%);
    color:#fff}
  body.calendar-page .page-hero h1,
  body.calendar-page .page-hero p,
  body.calendar-page .shead h2,
  body.calendar-page .shead p{color:#fff}
  body.calendar-page .page-hero .note,
  body.calendar-page .shead p{opacity:.82}
  body.calendar-page .tag-blue{
    background:transparent;border:1px solid rgba(255,255,255,.55);
    box-shadow:0 5px 15px rgba(7,42,80,.2)}
  body.calendar-page .calwrap{
    padding:16px;border:1px solid rgba(255,255,255,.42);border-radius:20px;
    background:rgba(255,255,255,.13);
    box-shadow:0 14px 34px rgba(7,42,80,.22);
    backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px)}
  body.calendar-page .calgrid{border-collapse:separate;border-spacing:4px}
  body.calendar-page .calgrid th{
    color:#fff;border-bottom-color:rgba(255,255,255,.58)}
  body.calendar-page .calgrid td{
    border-color:rgba(255,255,255,.72);border-radius:9px;
    background:rgba(255,255,255,.94)}
  body.calendar-page .calgrid td.is-out{background:rgba(255,255,255,.68)}
  body.calendar-page .calgrid td.is-today{
    background:#fff;box-shadow:inset 0 0 0 2px #075f9f}
  body.calendar-page .calgrid td.is-today .cal__num{color:#075f9f}
  body.calendar-page .callegend{color:#fff}
  body.calendar-page #also .card{
    filter:drop-shadow(0 12px 18px rgba(7,42,80,.28))}
  body.calendar-page .fbar{
    grid-column:1/-1;display:flex;flex-wrap:wrap;gap:8px;padding:14px;
    border:1px solid rgba(255,255,255,.42);border-radius:18px;
    background:rgba(255,255,255,.13);
    box-shadow:0 12px 30px rgba(7,42,80,.2);
    backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px)}
  body.calendar-page .fchip{
    padding:7px 13px;border:1px solid rgba(255,255,255,.62);border-radius:999px;
    background:rgba(255,255,255,.13);color:#fff;cursor:pointer;
    font:700 12.5px/1.2 'Quicksand',sans-serif}
  body.calendar-page .fchip:hover,
  body.calendar-page .fchip:focus-visible{background:rgba(255,255,255,.24)}
  body.calendar-page .fchip.is-on{background:#075f9f;border-color:#fff}
  body.calendar-page .fradii{display:inline-flex;gap:8px}
  body.calendar-page .dayblock{
    border-color:rgba(255,255,255,.52);border-radius:16px;
    background:rgba(255,255,255,.94);color:var(--ink);
    box-shadow:0 10px 24px rgba(7,42,80,.19)}
  body.calendar-page .dayblock__date{
    background:rgba(217,235,248,.92);border-bottom-color:rgba(0,112,192,.2)}
  body.calendar-page .dw,
  body.calendar-page .row__venue,
  body.calendar-page .row__time{color:var(--ink);opacity:.76}
  body.calendar-page .row:hover{background:#eef6fc}
  body.calendar-page .notecol{border-radius:18px;box-shadow:0 12px 30px rgba(7,42,80,.2)}
  body.calendar-page .notecol.grey{background:rgba(255,255,255,.94);color:var(--ink)}
  body.calendar-page .notecol.dark{
    border:1px solid rgba(255,255,255,.42);background:rgba(7,95,159,.82)}
  body.calendar-page .notecol.dark li::before{color:#fff}
}

@media(max-width:620px), (orientation: landscape) and (max-height:620px) and (pointer:coarse){
  /* The ticker competed with saved items and weather without adding navigation value. */
  .mast-calendar-line{display:none!important}

  /* Home: current-city live counts, one fact per line, with a larger readable size. */
  body:is(.home,.eventpage) .cityswitch .homestats.has-mobile-lines::before,
  body:is(.home,.eventpage) .cityswitch .homestats.has-mobile-lines::after{display:none}
  body:is(.home,.eventpage) .cityswitch .homestats.has-mobile-lines > .hs-mobile{
    display:flex;flex-direction:column;gap:1px;
    font:700 12.25px/1.22 'Quicksand',sans-serif;
    letter-spacing:0;color:#fff;text-align:left}
  body:is(.home,.eventpage) .cityswitch .hs-mobile__line{display:block;white-space:nowrap}

  /* See Now / See Later already communicate the active result set in their content. */
  body.opennow:not(.nbpage) .cityswitch,
  body.opennow:not(.nbpage) .cityswitch--floating{grid-template-columns:1fr}
  body.opennow .cityswitch .homestats,
  body.opennow:not(.nbpage) .guide-homestats{display:none!important}

  /* See Later's result cards are self-explanatory; remove the redundant first heading. */
  body.planpage .plan-section--must > .plan-shead{display:none}

  /* Update recency remains visible, but as metadata rather than a competing headline. */
  body.home .page-hero .home-updated,
  body.opennow .guide-updated{font-size:10px;line-height:1.2;font-weight:500}
}

/* ---------- DESKTOP TWO-LEVEL COMMAND BAR (v338) ----------
   Option 1: logo + prominent city context + utility row above a complete local nav and
   Art/Theater glass switch. Everything is scoped above 620px so the established mobile
   logo/actions/city/tabs/bottom-nav composition remains byte-for-byte and visually unchanged. */
@media(min-width:621px){
  .site-header{
    margin-bottom:30px;
    overflow:visible;
    background:
      radial-gradient(760px 180px at 82% 0%,rgba(255,255,255,.13),transparent 70%),
      linear-gradient(112deg,#087fca 0%,#0070c0 54%,#075e9e 100%);
    border-bottom:1px solid rgba(255,255,255,.24);
    box-shadow:0 9px 28px rgba(7,42,80,.18)}
  .site-header__in{
    display:grid;
    grid-template-columns:124px minmax(220px,1fr) auto;
    grid-template-rows:minmax(104px,auto) auto;
    align-items:center;
    column-gap:26px;
    row-gap:0;
    height:auto;
    min-height:152px;
    padding-top:14px;
    padding-bottom:12px}
  .site-header .logo{
    position:relative;
    top:0;
    grid-column:1;
    grid-row:1;
    width:110px;
    height:110px;
    align-self:center}
  .site-header .logo img{
    border:1px solid rgba(255,255,255,.34);
    border-radius:18px;
    box-shadow:0 12px 28px rgba(7,42,80,.32),inset 0 1px 0 rgba(255,255,255,.14)}

  .site-header .cityswitch{
    grid-column:2;
    grid-row:1;
    justify-self:start;
    display:grid;
    grid-template-columns:auto auto;
    align-items:center;
    gap:5px 10px;
    min-width:0;
    padding:0;
    border:0;
    border-radius:0;
    background:none;
    box-shadow:none;
    backdrop-filter:none;
    -webkit-backdrop-filter:none}
  .site-header .cityswitch__context{
    display:block;
    grid-column:1 / -1;
    font:700 11px/1 'Quicksand',sans-serif;
    letter-spacing:.12em;
    text-transform:uppercase;
    color:rgba(255,255,255,.76)}
  .site-header .cityswitch__btn{
    grid-column:1 / -1;
    min-width:230px;
    min-height:48px;
    justify-content:flex-start;
    gap:12px;
    padding:9px 17px 10px;
    border:1px solid rgba(255,255,255,.55);
    border-radius:999px;
    background:rgba(0,72,130,.34);
    color:#fff;
    font:700 21px/1 'Quicksand',sans-serif;
    box-shadow:0 7px 20px rgba(7,42,80,.22),inset 0 1px 0 rgba(255,255,255,.16);
    backdrop-filter:blur(16px) saturate(1.35);
    -webkit-backdrop-filter:blur(16px) saturate(1.35)}
  .site-header .cityswitch__btn::before{
    content:"";
    width:17px;
    height:22px;
    flex:0 0 17px;
    background:currentColor;
    -webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='black' fill-rule='evenodd' d='M12 1a8 8 0 0 0-8 8c0 6 8 14 8 14s8-8 8-14a8 8 0 0 0-8-8Zm0 11a3 3 0 1 1 0-6 3 3 0 0 1 0 6Z'/%3E%3C/svg%3E") center/contain no-repeat;
    mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='black' fill-rule='evenodd' d='M12 1a8 8 0 0 0-8 8c0 6 8 14 8 14s8-8 8-14a8 8 0 0 0-8-8Zm0 11a3 3 0 1 1 0-6 3 3 0 0 1 0 6Z'/%3E%3C/svg%3E") center/contain no-repeat}
  .site-header .cityswitch__btn:hover,
  .site-header .cityswitch__btn:focus-visible{background:rgba(0,72,130,.55)}
  .site-header .cityswitch__label{min-width:0;overflow:hidden;text-overflow:ellipsis}
  .site-header .cityswitch__caret{margin-left:auto;font-size:18px}
  .site-header .cityswitch__menu{
    top:calc(100% + 9px);
    left:0;
    right:auto;
    transform:none;
    min-width:230px}
  .site-header .cityswitch__opt{
    padding:11px 15px;
    background:rgba(0,85,154,.97);
    border-color:rgba(255,255,255,.62);
    font-size:13.5px;
    box-shadow:0 8px 24px rgba(7,42,80,.32)}

  .desktop-command__utilities{
    display:flex;
    grid-column:3;
    grid-row:1;
    align-items:center;
    justify-content:flex-end;
    gap:9px}
  .desktop-command__contact{
    display:flex;
    align-items:center;
    justify-content:center;
    width:46px;
    height:46px;
    border:1px solid rgba(255,255,255,.52);
    border-radius:999px;
    color:#fff;
    background:rgba(255,255,255,.13);
    box-shadow:0 6px 18px rgba(7,42,80,.22),inset 0 1px 0 rgba(255,255,255,.14);
    backdrop-filter:blur(14px) saturate(1.3);
    -webkit-backdrop-filter:blur(14px) saturate(1.3);
    transition:background .16s,transform .16s}
  .desktop-command__contact:hover,
  .desktop-command__contact:focus-visible{
    background:rgba(255,255,255,.24);
    transform:translateY(-1px)}
  .desktop-command__contact svg{
    width:22px;
    height:22px;
    fill:none;
    stroke:currentColor;
    stroke-width:1.7;
    stroke-linecap:round;
    stroke-linejoin:round}

  .site-header .topnav{
    grid-column:1 / -1;
    grid-row:2;
    display:flex;
    flex-wrap:wrap;
    align-items:center;
    justify-content:flex-start;
    gap:6px;
    min-width:0;
    padding-top:11px;
    border-top:1px solid rgba(255,255,255,.24)}
  .site-header .topnav .desktop-command__link{
    padding:10px 15px;
    border:1px solid transparent;
    border-radius:999px;
    color:rgba(255,255,255,.86);
    background:transparent;
    font:700 13.5px/1 'Quicksand',sans-serif;
    letter-spacing:.01em;
    text-transform:none;
    transition:background .16s,color .16s,border-color .16s}
  .site-header .topnav .desktop-command__link:hover,
  .site-header .topnav .desktop-command__link:focus-visible{
    opacity:1;
    color:#fff;
    background:rgba(255,255,255,.14)}
  .site-header .topnav .desktop-command__link[aria-current="page"]{
    color:#075e9e;
    background:#fff;
    border-color:#fff;
    box-shadow:0 4px 12px rgba(7,42,80,.17)}

  .desktop-guide-switch{
    display:inline-flex;
    align-items:center;
    gap:3px;
    margin-left:auto;
    padding:4px;
    border:1px solid rgba(255,255,255,.46);
    border-radius:999px;
    background:rgba(255,255,255,.14);
    box-shadow:0 5px 16px rgba(7,42,80,.19),inset 0 1px 0 rgba(255,255,255,.14);
    backdrop-filter:blur(14px) saturate(1.3);
    -webkit-backdrop-filter:blur(14px) saturate(1.3)}
  .desktop-guide-switch__opt{
    min-width:82px;
    padding:9px 17px;
    border:0;
    border-radius:999px;
    color:rgba(255,255,255,.84);
    background:transparent;
    font:700 13.5px/1 'Quicksand',sans-serif;
    cursor:pointer}
  .desktop-guide-switch__opt:hover,
  .desktop-guide-switch__opt:focus-visible{color:#fff;background:rgba(255,255,255,.12)}
  .desktop-guide-switch__opt.is-on{
    color:#fff;
    background:#0870b8;
    box-shadow:0 3px 10px rgba(7,42,80,.28),inset 0 1px 0 rgba(255,255,255,.18)}

  /* The command bar now owns the desktop guide control. The original node stays in place
     for its established event handlers and is still the visible mobile control. */
  body:is(.home,.eventpage) .mastright{display:none}

  body.home .site-header,
  body.opennow .site-header,
  body.contact .site-header,
  body.cityswitch-ready:not(.legal) .site-header{margin-bottom:30px}

  }
@media (min-width:621px) and (max-width:900px) and (orientation:landscape) and (max-height:620px) and (pointer:coarse){
    .site-header__in{
      grid-template-columns:102px minmax(190px,1fr) auto;
      column-gap:18px;
      padding-left:20px;
      padding-right:20px}
}
@media (min-width:621px) and (max-width:900px) and (orientation:landscape) and (max-height:620px) and (pointer:coarse){
    .site-header .logo{width:94px;height:94px}
}
@media (min-width:621px) and (max-width:900px) and (orientation:landscape) and (max-height:620px) and (pointer:coarse){
    .site-header .cityswitch__btn{min-width:205px;font-size:18px}
}
@media (min-width:621px) and (max-width:900px) and (orientation:landscape) and (max-height:620px) and (pointer:coarse){
    .site-header .topnav .desktop-command__link{padding-inline:11px;font-size:12.5px}
}
@media (min-width:621px) and (max-width:900px) and (orientation:landscape) and (max-height:620px) and (pointer:coarse){
    .desktop-guide-switch__opt{min-width:66px;padding-inline:12px}
}

@media(max-width:620px), (orientation: landscape) and (max-height:620px) and (pointer:coarse){
  .desktop-command__utilities,
  .desktop-guide-switch{display:none!important}
}

/* Desktop homepage header: keep the primary menu on the same centered row as
   the city toggle. The page-level Art/Theater/Drag switch remains below in the
   homepage masthead, so the header has one clear navigation system. */
@media(min-width:621px){
  /* Give the desktop See Now and See Later boards the homepage's editorial width.
     Keep neighborhood drill-down pages on their own measure. */
  body.opennow:not(.planpage):not(.nbpage) .on-wrap,
  body.planpage .plan-wrap{max-width:1240px}
  /* Use a real dropdown on desktop because WebKit's type=time field has no
     clickable popup. Mobile retains the native picker and centered value layer. */
  body.planpage .plan-control--desktop-time .plan-temporal-input,
  body.planpage .plan-control--desktop-time .plan-temporal-value{display:none!important}
  body.planpage .plan-control--desktop-time .plan-time-select{
    display:block;cursor:pointer}
  /* Keep the individual controls, but remove the pale form rectangle. */
  body.planpage #plan-form.plan-form{
    padding:0;
    border:0;
    background:transparent!important;
    box-shadow:none}
  /* Let the two filters sit directly on the star canvas instead of inside a pale box. */
  body.opennow:not(.planpage):not(.nbpage) .on-filter-form{
    padding:0;
    border:0;
    background:transparent!important;
    box-shadow:none}

  body.desktop-atlas .site-header .topnav .desktop-atlas-today{display:none}
  body.desktop-atlas .site-header .cityswitch__context{display:none}
  body.desktop-atlas .site-header .topnav .desktop-atlas-contact{display:none}
  body.essay-journalpage .site-header{margin-bottom:98px;border-bottom:none;background:transparent;box-shadow:none}
  body.essay-journalpage .essay-journal-brand{display:flex;top:116px;height:110px}
  body.essay-journalpage .site-header .cityswitch__context{display:none}
  body.essay-journalpage .desktop-guide-switch{display:none!important}

  body.desktop-home .site-header__in,
  body.desktop-atlas .site-header__in,
  body.essay-journalpage .site-header__in{
    grid-template-columns:110px 220px minmax(0,1fr) auto;
    grid-template-rows:minmax(104px,auto);
    column-gap:10px;
    row-gap:0;
    min-height:138px;
  }
  body.desktop-home .site-header .cityswitch,
  body.desktop-atlas .site-header .cityswitch,
  body.essay-journalpage .site-header .cityswitch{
    grid-column:2;
    grid-row:1;
  }
  body.desktop-home .site-header .cityswitch__btn,
  body.desktop-atlas .site-header .cityswitch__btn,
  body.essay-journalpage .site-header .cityswitch__btn{min-width:220px}
  body.desktop-home .site-header .topnav,
  body.desktop-atlas .site-header .topnav,
  body.essay-journalpage .site-header .topnav{
    grid-column:3;
    grid-row:1;
    align-self:center;
    flex-wrap:nowrap;
    justify-content:flex-end;
    gap:3px;
    padding-top:0;
    border-top:none;
  }
  body.desktop-home .site-header .topnav .desktop-command__link,
  body.desktop-atlas .site-header .topnav .desktop-command__link,
  body.essay-journalpage .site-header .topnav .desktop-command__link{
    padding:9px 8px;
    font-size:13.75px;
    text-shadow:0 1px 2px rgba(0,0,0,.22);
  }
  body.desktop-home .desktop-command__utilities,
  body.desktop-atlas .desktop-command__utilities,
  body.essay-journalpage .desktop-command__utilities{
    grid-column:4;
    grid-row:1;
  }
  body.desktop-home .desktop-guide-switch,
  body.desktop-atlas .desktop-guide-switch{display:none}
  body.desktop-home .site-header__in,
  body.desktop-atlas .site-header__in,
  body.essay-journalpage .site-header__in{
    grid-template-columns:110px 170px minmax(0,1fr) auto;
  }
  body.desktop-home .site-header .cityswitch__btn,
  body.desktop-atlas .site-header .cityswitch__btn,
  body.essay-journalpage .site-header .cityswitch__btn{
    min-width:165px;
    min-height:36px;
    gap:9px;
    padding:7px 10px 8px;
    font-size:15.75px;
    line-height:1.2;
  }
  body.desktop-home .site-header .cityswitch__btn::before,
  body.desktop-atlas .site-header .cityswitch__btn::before,
  body.essay-journalpage .site-header .cityswitch__btn::before{
    width:13px;
    height:17px;
    flex-basis:13px;
  }
  body.desktop-home .site-header .cityswitch__caret,
  body.desktop-atlas .site-header .cityswitch__caret,
  body.essay-journalpage .site-header .cityswitch__caret{font-size:13.5px}
}

/* Desktop homepage: place the category switch between the city picker and the
   primary menu in the same centered header row. */
@media(min-width:621px){
  body.desktop-home .site-header__in,
  body.desktop-atlas .site-header__in{
    grid-template-columns:110px 170px 204px minmax(0,1fr);
  }
  body.desktop-home .desktop-guide-switch,
  body.desktop-atlas .desktop-guide-switch{
    display:inline-flex;
    grid-column:3;
    grid-row:1;
    align-self:center;
    justify-self:start;
    margin-left:0;
    height:36px;
    padding:3px 4px;
  }
  body.desktop-home .desktop-guide-switch__opt,
  body.desktop-atlas .desktop-guide-switch__opt{
    min-width:62px;
    height:28px;
    padding:0 10px;
    font-size:12.5px;
    line-height:28px;
  }
  body.desktop-home .site-header .topnav,
  body.desktop-atlas .site-header .topnav{
    grid-column:4;
    grid-row:1;
    align-self:center;
    flex-wrap:wrap;
    align-content:center;
    justify-content:flex-end;
    row-gap:2px;
    padding-top:0;
    border-top:none;
  }
  body.desktop-home .site-header .topnav .desktop-home__app-store{
    display:inline-flex;
    align-items:center;
    gap:8px;
    min-width:132px;
    height:38px;
    margin-left:8px;
    padding:5px 12px 6px 10px;
    border:1px solid rgba(255,255,255,.62);
    border-radius:11px;
    color:#fff;
    background:linear-gradient(180deg,rgba(5,57,99,.78),rgba(4,44,79,.9));
    box-shadow:0 7px 18px rgba(5,42,76,.27),inset 0 1px 0 rgba(255,255,255,.2);
    text-transform:none;
    text-shadow:0 1px 2px rgba(0,0,0,.24);
    transition:transform .16s ease,box-shadow .16s ease,background .16s ease;
  }
  body.desktop-home .site-header .topnav .desktop-home__app-store:hover,
  body.desktop-home .site-header .topnav .desktop-home__app-store:focus-visible{
    opacity:1;
    color:#fff;
    background:linear-gradient(180deg,rgba(5,64,110,.86),rgba(3,38,69,.96));
    box-shadow:0 9px 22px rgba(5,42,76,.34),inset 0 1px 0 rgba(255,255,255,.25);
    transform:translateY(-1px);
  }
  body.desktop-home .desktop-home__app-store-mark{
    display:grid;
    place-items:center;
    width:22px;
    height:22px;
    flex:0 0 22px;
    border:1px solid rgba(255,255,255,.46);
    border-radius:50%;
    font:800 15px/1 'Quicksand',sans-serif;
  }
  body.desktop-home .desktop-home__app-store-copy{
    display:flex;
    flex-direction:column;
    align-items:flex-start;
    gap:1px;
    white-space:nowrap;
  }
  body.desktop-home .desktop-home__app-store-copy small{
    font:600 8px/1 'DM Sans',sans-serif;
    letter-spacing:.02em;
  }
  body.desktop-home .desktop-home__app-store-copy strong{
    font:700 13px/1 'DM Sans',sans-serif;
    letter-spacing:.01em;
  }
  body.desktop-home .desktop-command__utilities,
  body.desktop-atlas .desktop-command__utilities{
    grid-column:5;
    grid-row:1;
  }
  body.desktop-home .desktop-home__mast .catswitch,
  body.desktop-atlas .desktop-home__mast .catswitch{display:none}
}

/* Desktop homepage masthead: one continuous blue field behind the logo,
   city/category controls, and menu. The layered stars carry the same quiet
   Journal sparkle as the rest of the blue treatment without adding another
   horizontal rule below the header. */
@media(min-width:621px){
  /* Desktop calendar keeps the focus on the date rail and event listings. */
  body.calendar-page #notes{display:none}

  /* Calendar uses the same desktop command-bar geometry as Home and Atlas. */
  body.calendar-page .site-header__in{
    grid-template-columns:110px 170px 204px minmax(0,1fr);
    grid-template-rows:minmax(104px,auto);
    column-gap:10px;
    row-gap:0;
    min-height:138px;
  }
  body.calendar-page .site-header .cityswitch{
    grid-column:2;
    grid-row:1;
  }
  body.calendar-page .site-header .cityswitch__context{display:none}
  body.calendar-page .site-header .cityswitch__btn{
    min-width:165px;
    min-height:36px;
    gap:9px;
    padding:7px 10px 8px;
    font-size:15.75px;
    line-height:1.2;
  }
  body.calendar-page .site-header .cityswitch__btn::before{
    width:13px;
    height:17px;
    flex-basis:13px;
  }
  body.calendar-page .site-header .cityswitch__caret{font-size:13.5px}
  body.calendar-page .desktop-guide-switch{
    display:inline-flex;
    grid-column:3;
    grid-row:1;
    align-self:center;
    justify-self:start;
    margin-left:0;
    height:36px;
    padding:3px 4px;
  }
  body.calendar-page .desktop-guide-switch__opt{
    min-width:62px;
    height:28px;
    padding:0 10px;
    font-size:12.5px;
    line-height:28px;
  }
  body.calendar-page .site-header .topnav{
    grid-column:4;
    grid-row:1;
    align-self:center;
    flex-wrap:wrap;
    align-content:center;
    justify-content:flex-end;
    row-gap:2px;
    padding-top:0;
    border-top:none;
  }
  body.calendar-page .site-header .topnav .desktop-command__link{
    padding:9px 8px;
    font-size:13.75px;
    text-shadow:0 1px 2px rgba(0,0,0,.22);
  }
  body.calendar-page #days .dayblock.desktop-calendar-beyond-window{display:none}
  body.calendar-page #days .dayblock.desktop-calendar-before-window{display:none}
  body.calendar-page #days .shead p.calendar-window-note{font-size:0}
  body.calendar-page #days .shead p.calendar-window-note::after{
    content:"14 days, every listing";
    font-size:24px;
  }
  body.calendar-page[data-calendar-category="theater"] #days .shead p.calendar-window-note::after{
    content:"14 days of theater performances";
  }
  body.calendar-page[data-calendar-category="drag"] #days .shead p.calendar-window-note::after{
    content:"14 days of drag shows";
  }
  body.calendar-page[data-calendar-category="comedy"] #days .shead p.calendar-window-note::after{
    content:"14 days of comedy shows";
  }
  body.calendar-page #days .shead > p.calendar-stats{
    margin-top:14px;font:600 15px/1.35 'Quicksand',sans-serif;letter-spacing:.01em;opacity:.92;
  }
  body.calendar-page #days .shead > p.calendar-updated{
    margin-top:4px;font:500 12px/1.3 'Quicksand',sans-serif;letter-spacing:.02em;opacity:.7;
  }
  body.calendar-page .calendar-date-strip{
    display:grid;grid-template-columns:repeat(14,minmax(42px,1fr));gap:6px;
    margin:0 0 16px;padding:8px;border:1px solid rgba(255,255,255,.42);border-radius:18px;
    background:rgba(255,255,255,.13);box-shadow:0 12px 30px rgba(7,42,80,.2);
    backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);
  }
  body.calendar-page .calendar-date-strip button{
    min-width:0;padding:9px 5px 8px;border:1px solid rgba(255,255,255,.38);border-radius:11px;
    color:rgba(255,255,255,.82);background:rgba(255,255,255,.08);cursor:pointer;
    font-family:'Quicksand',sans-serif;text-align:center;transition:background .16s,color .16s,opacity .16s;
  }
  body.calendar-page .calendar-date-strip button:hover:not(:disabled),
  body.calendar-page .calendar-date-strip button:focus-visible{color:#fff;background:rgba(255,255,255,.22)}
  body.calendar-page .calendar-date-strip button.is-on{color:#075f9f;background:#fff;border-color:#fff;box-shadow:0 4px 12px rgba(7,42,80,.22)}
  body.calendar-page .calendar-date-strip button:disabled{opacity:.38;cursor:default}
  body.calendar-page .calendar-date-strip__day,
  body.calendar-page .calendar-date-strip__date{display:block}
  body.calendar-page .calendar-date-strip__day{font-size:11px;font-weight:700;line-height:1.1}
  body.calendar-page .calendar-date-strip__date{margin-top:4px;font-size:13px;font-weight:600;line-height:1.1}
  body.calendar-page #days .daygrid{display:block;margin-top:0}
  body.calendar-page #days .daygrid > .fbar{margin:0 0 14px}
  body.calendar-page #days .dayblock{
    display:grid;grid-template-columns:148px minmax(0,1fr);margin:0 0 12px;
  }
  body.calendar-page #days .dayblock__date{
    display:flex;flex-direction:column;align-items:flex-start;gap:6px;
    padding:18px 20px;border-bottom:0;border-right:1px solid rgba(0,112,192,.18);
  }
  body.calendar-page #days .dayblock.is-today .dayblock__date{background:#075f9f}
  body.calendar-page #days .dayblock.is-today .dayblock__date .dd,
  body.calendar-page #days .dayblock.is-today .dayblock__date .dw{color:#fff;opacity:1}
  body.calendar-page #days .dayblock__items{min-width:0}
  body.calendar-page #days .dayblock__items > .row,
  body.calendar-page #days .dayblock__items > .mcard{padding:13px 18px}
  body.calendar-page #days .dayblock__items > .row .row__sq{
    width:84px;height:84px;border-radius:6px;
  }
  body.calendar-page #days .calendar-row__main{
    display:flex;flex:1 1 220px;flex-direction:column;align-items:flex-start;gap:3px;min-width:0;
  }
  body.calendar-page #days .calendar-row__main .row__title{
    flex:0 1 auto;width:100%;font-size:18px;line-height:1.24;
  }
  body.calendar-page #days .calendar-row__main .row__venue{
    flex:0 1 auto;width:100%;font-size:14px;line-height:1.35;
  }
  body.calendar-page #days .calendar-row__label{
    flex:0 0 auto;
    align-self:flex-start;
    margin:0;
    padding:2px 8px;
    border-radius:999px;
    color:#fff;
    font:700 10px/1 'Quicksand',sans-serif;
    letter-spacing:.04em;
    text-transform:uppercase;
    white-space:nowrap;
    box-shadow:0 2px 6px rgba(20,16,12,.12);
  }
  body.calendar-page #days .calendar-row__label.kick--exhibition{background:rgba(20,16,12,.66)}
  body.calendar-page .page-hero{display:none}
  body.calendar-page.calendar-non-art #days .fbar{display:none}
  body.calendar-page #grid{display:none}
  body.calendar-page #also{display:none}

  /* Calendar shares the homepage's continuous masthead field on desktop;
     the existing calendar canvas remains responsible for the page below. */
  body.atlas-page .site-header{
    background:transparent!important;
    border-bottom:0!important;
    box-shadow:none;
  }

  body.calendar-page .site-header{
    background:transparent!important;
    border-bottom:0!important;
    box-shadow:none;
  }

  body.desktop-home{
    background-color:#fff;
    background-image:
      var(--sj-stats-star-bg),
      var(--sj-stats-star-bg),
      radial-gradient(760px 180px at 82% 0%,rgba(255,255,255,.14),transparent 70%),
      linear-gradient(112deg,#087fca 0%,#0070c0 54%,#075e9e 100%);
    background-position:4% 50%,78% 8%,82% 0%,0 0;
    background-size:180px 180px,220px 220px,760px 180px,100% 184px;
    background-repeat:no-repeat;
  }
  body.desktop-home .site-header{
    border-bottom:0!important;
    box-shadow:none;
    background:transparent!important;
  }
}

/* Desktop Journal uses the same masthead as Calendar. The Journal content and
   its mobile/app identity remain unchanged; only this desktop header is shared. */
@media(min-width:621px){
  body.journalpage .site-header{
    margin-bottom:30px!important;
    background:transparent!important;
    border-bottom:0!important;
    box-shadow:none!important;
  }
  body.journalpage .site-header__in{
    grid-template-columns:110px 170px 204px minmax(0,1fr);
    grid-template-rows:minmax(104px,auto);
    column-gap:10px;
    row-gap:0;
    min-height:138px;
  }
  /* The personal Journal title belongs to the Journal content, not the shared
     desktop command bar. Keep the existing title and controls available on mobile/app. */
  body.journalpage .site-header .journal-identity{display:none!important}
  body.journalpage .site-header .cityswitch{
    grid-column:2;
    grid-row:1;
  }
  body.journalpage .site-header .cityswitch__context{display:none}
  body.journalpage .site-header .cityswitch__btn{
    min-width:165px;
    min-height:36px;
    gap:9px;
    padding:7px 10px 8px;
    font-size:15.75px;
    line-height:1.2;
  }
  body.journalpage .site-header .cityswitch__btn::before{
    width:13px;
    height:17px;
    flex-basis:13px;
  }
  body.journalpage .site-header .cityswitch__caret{font-size:13.5px}
  body.journalpage .desktop-guide-switch{
    display:inline-flex;
    grid-column:3;
    grid-row:1;
    align-self:center;
    justify-self:start;
    margin-left:0;
    height:36px;
    padding:3px 4px;
  }
  body.journalpage .desktop-guide-switch__opt{
    min-width:62px;
    height:28px;
    padding:0 10px;
    font-size:12.5px;
    line-height:28px;
  }
  body.journalpage .site-header .topnav{
    grid-column:4;
    grid-row:1;
    align-self:center;
    flex-wrap:wrap;
    align-content:center;
    justify-content:flex-end;
    row-gap:2px;
    padding-top:0;
    border-top:none;
  }
  body.journalpage .site-header .topnav .desktop-command__link{
    padding:9px 8px;
    font-size:13.75px;
    text-shadow:0 1px 2px rgba(0,0,0,.22);
  }
}

/* ---------- SITE-WIDE STATUS + LEGAL SURFACES (v340) ----------
   Beta is no longer part of the product identity. The plain listings note remains
   in generated footers, while this guard also hides any legacy badge held in cache. */
.beta-tag{display:none!important}

/* Privacy and Terms use the same azure/glass language as Today. The long-form copy
   keeps its editorial measure and contrast instead of inheriting card typography. */
body.legal{
  min-height:100vh;
  color:#fff;
  background:
    radial-gradient(1050px 570px at 50% 0%,rgba(255,255,255,.16),transparent 70%),
    linear-gradient(135deg,#087fca 0%,#0877c0 46%,#056caf 100%)}
body.legal .page-hero h1{
  color:#fff;
  text-shadow:0 2px 12px rgba(7,42,80,.28)}
body.legal .prose{
  max-width:760px;
  padding:32px 36px;
  border:1px solid rgba(255,255,255,.4);
  border-radius:22px;
  color:rgba(255,255,255,.94);
  background:rgba(0,82,149,.45);
  box-shadow:0 16px 38px rgba(7,42,80,.27),inset 0 1px 0 rgba(255,255,255,.12);
  backdrop-filter:blur(16px) saturate(1.25);
  -webkit-backdrop-filter:blur(16px) saturate(1.25)}
body.legal .prose h2{color:#fff;text-shadow:0 2px 10px rgba(7,42,80,.22)}
body.legal .prose a{color:#fff;text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:3px}
body.legal .prose .role{opacity:.92}
body.legal .site-footer{background:transparent}

@media(max-width:620px), (orientation: landscape) and (max-height:620px) and (pointer:coarse){
  body.legal .site-header{
    margin-bottom:calc(116px + env(safe-area-inset-top));
    background:transparent;
    border-bottom:0}
  body.legal .logo{
    position:fixed;
    top:calc(14px + env(safe-area-inset-top));
    left:14px;
    width:89.28px;
    height:89.28px;
    z-index:1150}
  body.legal .logo img{box-shadow:var(--mobile-raised-shadow)}
  body.legal .page-hero{padding:0 14px 6px}
  body.legal .page-hero h1{font-size:clamp(31px,9.5vw,40px)}
  body.legal .prose{
    margin-top:24px;
    padding:22px 19px;
    border-radius:18px;
    font-size:17px;
    line-height:1.58}
  body.legal .prose h2{font-size:24px;line-height:1.16;margin-top:28px}
}

/* ---------- MOBILE WEB / IPHONE APP PARITY (v344) ----------
   The native shell previously supplied these final layout refinements at runtime.
   They now live in the shared responsive layer, so mobile Safari, an installed PWA,
   and the iPhone app use the same safe areas, masthead hierarchy, map canvas, and
   navigation proportions for every current and future city. */
@media(max-width:620px), (orientation: landscape) and (max-height:620px) and (pointer:coarse){
  /* Shared mobile contract: Safari/PWA and the native iOS shell use these same
     dimensions. Keep the values here so later mobile refinements have one source
     of truth without changing the established layout. */
  :root{
    --sees-mobile-nav-scale:1.05;
    --sees-mobile-nav-scroll-scale:1.05;
    --sees-mobile-nav-space:112px;
    --sees-mobile-map-fade:140px;
    --sees-mobile-totop-size:42px}

  html,body{min-height:100dvh}

  /* The final product no longer interrupts the calendar with an install tutorial. */
  .a2hs{display:none!important}

  /* Match the app's enlarged floating navigation and keep every page footer clear of it. */
  .bottomnav{
    transform:translateX(-50%) scale(var(--sees-mobile-nav-scroll-scale));
    transform-origin:center bottom}
  body:not(.mappage){
    padding-bottom:calc(var(--sees-mobile-nav-space) + env(safe-area-inset-bottom))!important}
  body.home .totop{
    right:14px;
    bottom:calc(84px + env(safe-area-inset-bottom));
    width:var(--sees-mobile-totop-size);
    height:var(--sees-mobile-totop-size);
    font-size:20px;
    background:#0070c0;
    box-shadow:0 6px 18px rgba(7,42,80,.38)}

  /* Contact and policy pages use the same quiet, compact app treatment. */
  body.contact .cityswitch,
  body.contact .mastright{display:none!important}
  body.contact .site-header{
    margin-bottom:calc(64px + env(safe-area-inset-top))!important}
  body.legal .site-header{
    margin-bottom:calc(62px + env(safe-area-inset-top))!important}
  body.legal .page-hero{padding:0 14px 4px}
  body.legal .page-hero h1{
    font-size:clamp(25px,7.2vw,30px);
    line-height:1.08}
  body.legal .prose{
    margin-top:14px;
    padding:18px 17px;
    font-size:14.5px;
    line-height:1.52}
  body.legal .prose h2{
    margin-top:22px;
    font-size:19px;
    line-height:1.2}

  /* Keep the update recency directly beneath its city instead of letting it drift
     into the page content or sit underneath the Art/Theater segmented control. */
  body:is(.home,.eventpage) .cityswitch,
  body:is(.home,.eventpage) .cityswitch--floating{align-items:start}
  body:is(.home,.eventpage) .sees-native-city-column,
  body.opennow .sees-native-city-column{
    display:flex;
    min-width:0;
    grid-column:1;
    flex-direction:column;
    align-items:flex-start}
  body:is(.home,.eventpage) .sees-native-city-column .cityswitch__btn,
  body.opennow .sees-native-city-column .cityswitch__btn{width:100%}
  body:is(.home,.eventpage) .sees-native-city-column .home-updated,
  body.opennow .sees-native-city-column .guide-updated{
    display:block;
    position:static!important;
    align-self:start;
    width:auto;
    top:auto;
    right:auto;
    left:auto;
    margin:-2px 0 0 30px;
    color:rgba(255,255,255,.82);
    font:500 10px/1.2 'Quicksand',sans-serif;
    letter-spacing:0;
    white-space:nowrap}
  body:is(.home,.eventpage) .cityswitch .homestats{
    grid-column:2;
    align-self:center}
  body.home.cityswitch-ready.has-guide-switch:not(.legal) .site-header{
    margin-bottom:calc(115px + env(safe-area-inset-top))}
  body:is(.home,.eventpage) .catswitch.is-ready{
    top:calc(178px + env(safe-area-inset-top));
    transform:none}
  body:is(.home,.eventpage) .catswitch__opt,
  body.opennow .catswitch__opt{
    padding-top:3px;
    padding-bottom:4px;
    font-size:13.3px}
  /* This is intentionally app-only: the installed iOS app injects its legacy
     category padding after this stylesheet loads. Keep the remote rule authoritative. */
  html.sees-native-ios body:is(.home,.eventpage) .catswitch__opt,
  html.sees-native-ios body.opennow .catswitch__opt{
    padding-top:3px!important;
    padding-bottom:4px!important;
  }
  body.opennow.cityswitch-ready.has-guide-switch:not(.legal) .site-header{
    margin-bottom:calc(200px + env(safe-area-inset-top))}
  body.opennow .catswitch.is-ready{
    top:calc(178px + env(safe-area-inset-top))}
  body.opennow .cityswitch__btn{
    font-size:clamp(19px,6vw,23px)}

  /* Neighborhood pages keep the same masthead rhythm without allowing their title
     or swipe rail to collide with city/update controls. */
  body.nbpage.cityswitch-ready .site-header{
    margin-bottom:calc(112px + env(safe-area-inset-top))}
  body.nbpage.cityswitch-ready .on-wrap{padding-top:10px!important}
  body.nbpage.cityswitch-ready .nb-rail-sec{margin-top:0!important}
  body.nbpage .on-titlerow{gap:8px}
  body.nbpage .on-titlerow .lp-title{
    min-width:0;
    font-size:clamp(17px,5vw,20px);
    line-height:1.12;
    letter-spacing:-.015em}
  body.nbpage .on-near{
    padding:7px 11px;
    font-size:11.5px}
  body.opennow:not(.nbpage):not(.planpage) .on-near,
  body.planpage .plan-near{
    padding:7px 11px;
    font-size:11.5px}

  /* Maps remain edge-to-edge, with the same lower blue fade and balanced glass
     city/category controls as the native app. */
  body.mappage,
  body.mappage main{min-height:100dvh}
  body.mappage #homemap,
  body.mappage #theatermap,body.mappage #dragmap{
    position:fixed!important;
    inset:0!important;
    width:100vw!important;
    height:100dvh!important;
    margin:0!important}
  body.mappage #comedymap{
    position:fixed!important;
    inset:0!important;
    width:100vw!important;
    height:100dvh!important;
    margin:0!important}
  body.mappage::after{
    content:"";
    position:fixed;
    right:0;
    bottom:0;
    left:0;
    z-index:2;
    height:var(--sees-mobile-map-fade);
    pointer-events:none;
    background:linear-gradient(to bottom,
      rgba(0,112,192,0) 0%,
      rgba(0,112,192,.42) 42%,
      rgba(5,79,137,.96) 100%)}
  body.mappage .cityswitch__btn{
    min-width:154px;
    min-height:34px;
    padding:8px 13px;
    font-size:14.5px}
  body.mappage .cityswitch__menu{min-width:154px}
  body.mappage .mapcat{
    top:calc(46px + env(safe-area-inset-top));
    border:1px solid rgba(255,255,255,.48);
    background:linear-gradient(135deg,rgba(255,255,255,.2),rgba(255,255,255,.07));
    box-shadow:0 8px 24px rgba(0,47,102,.19),inset 0 1px 0 rgba(255,255,255,.4);
    backdrop-filter:blur(18px) saturate(1.45);
    -webkit-backdrop-filter:blur(18px) saturate(1.45)}
  body.mappage .mapcat__opt{
    color:rgba(255,255,255,.76);
    background:transparent !important;
    transition:background .18s ease,color .18s ease,box-shadow .18s ease}
  body.mappage .mapcat__opt:hover,
  body.mappage .mapcat__opt:focus-visible,
  body.mappage .mapcat__opt.is-on{
    color:#fff;
    background:var(--blue) !important;
    box-shadow:0 3px 12px rgba(0,47,102,.18),inset 0 1px 0 rgba(255,255,255,.38)}
  /* Touch browsers can retain :hover/:focus on the last unselected link. Keep
     that state transparent so only the active category receives a filled pill. */
  body.mappage .mapcat__opt:not(.is-on):hover,
  body.mappage .mapcat__opt:not(.is-on):focus-visible{
    color:rgba(255,255,255,.76);
    background:transparent !important;
    box-shadow:none !important}
}

/* Keep the Journal segmented control on the same glass treatment as See Now.
   This comes after the global selected-category rule so the Journal's active
   option does not fall back to the older solid-blue pill. */
body.journalpage .journal-category-toggle .catswitch__opt.catswitch__opt.is-on{
  color:#fff !important;background:#0070c0 !important;
  box-shadow:0 3px 12px rgba(0,47,102,.28),inset 0 1px 0 rgba(255,255,255,.22) !important
}

/* Shared mobile/app masthead (Aug 2026): the homepage's two-level command
   bar is the standard on every browsable page. City pages keep City → Map →
   Search on the city row; city-free pages keep Search above Map in the same
   fixed rail. Scope this to the JS-mounted marker so legacy legal/contact
   shells remain untouched. */
@media(max-width:620px), (orientation: landscape) and (max-height:620px) and (pointer:coarse){
  body.has-mobile-masthead .home-mast-tools{
    display:grid;
    position:fixed;
    top:calc(38.14px + env(safe-area-inset-top));
    left:110px;
    right:10px;
    z-index:1151;
    grid-template-columns:auto auto minmax(0,1fr) auto;
    grid-template-rows:32px 32px;
    align-items:center;
    justify-content:stretch;
    column-gap:4px;
    row-gap:4px;
  }
  body.has-mobile-masthead .saved-masthead,
  body.has-mobile-masthead .weather-masthead,
  body.has-mobile-masthead .map-masthead{
    display:flex;
    position:static;
    align-items:center;
    justify-content:center;
    border:1px solid rgba(255,255,255,.8);
    border-radius:999px;
    background:rgba(0,112,192,.18);
    color:#fff;
    box-shadow:none;
    cursor:pointer;
  }
  body.has-mobile-masthead .saved-masthead{
    grid-column:1;
    grid-row:1;
    justify-self:start;
    min-width:52px;
    height:36px;
    padding:0 7px;
    gap:5px;
    font:700 13px/1 'Quicksand',sans-serif;
  }
  body.has-mobile-masthead .weather-masthead{
    grid-column:2;
    grid-row:1;
    justify-self:start;
    min-width:56px;
    height:36px;
    padding:0 7px;
    gap:4px;
    font:700 13px/1 'Quicksand',sans-serif;
  }
  body.has-mobile-masthead .weather-masthead[hidden]{display:none}
  body.has-mobile-masthead .map-masthead{
    grid-column:4;
    grid-row:2;
    justify-self:end;
    min-width:73px;
    height:36px;
    padding:0 11px;
    gap:6px;
    font:700 15px/1 'Quicksand',sans-serif;
    text-decoration:none;
    /* Keep the Map action in the same blue glass treatment as the other masthead pills. */
    background:rgba(0,112,192,.18);
  }
  body.has-mobile-masthead .map-masthead svg{
    width:26px;
    height:26px;
    flex:0 0 auto;
    color:#0070c0 !important;
    fill:currentColor;
    stroke:currentColor;
    stroke-width:1.55;
    stroke-linecap:round;
    stroke-linejoin:round;
  }
  body.has-mobile-masthead .home-mast-tools > .homestats{
    grid-column:3;
    grid-row:1;
    justify-self:stretch;
    display:block;
    min-width:0;
    width:auto;
    height:36px;
    margin:0;
    overflow:hidden;
    color:rgba(255,255,255,.9);
    font:700 9.5px/1.16 'Quicksand',sans-serif;
    text-align:left;
  }
  body.has-mobile-masthead .home-mast-tools > .homestats > .hs-main,
  body.has-mobile-masthead .home-mast-tools > .homestats::before,
  body.has-mobile-masthead .home-mast-tools > .homestats::after{display:none}
  body.has-mobile-masthead .home-mast-tools > .homestats.has-mobile-lines > .hs-mobile{
    display:flex;
    flex-direction:column;
    justify-content:center;
    gap:1px;
    height:100%;
    overflow:hidden;
    white-space:nowrap;
  }
  body.has-mobile-masthead .home-mast-tools > .homestats .hs-mobile__line{
    display:block;
    overflow:hidden;
    text-overflow:ellipsis;
    white-space:nowrap;
  }
  body.has-mobile-masthead .mast-calendar-line{display:none!important}
  body.has-mobile-masthead .mast-inline-actions{
    display:flex;
    position:static;
    grid-column:4;
    grid-row:1;
    justify-self:end;
    align-items:center;
    gap:4px;
  }
  body.has-mobile-masthead .mast-inline-actions .srch-btn{
    display:flex;
    width:36px;
    height:36px;
    align-items:center;
    justify-content:center;
    border-radius:50%;
    border:1px solid rgba(255,255,255,.8);
    color:#fff;
    background:rgba(0,112,192,.18);
    box-shadow:none;
    padding:0;
  }
  body.has-mobile-masthead .mast-inline-actions .srch-btn svg{
    width:20px;
    height:20px;
    fill:none;
    stroke:currentColor;
    stroke-width:1.8;
    stroke-linecap:round;
    stroke-linejoin:round;
  }

  /* City row alignment is deliberately independent of the fixed top rail. */
  body.has-mobile-masthead .cityswitch,
  body.has-mobile-masthead .cityswitch--floating{
    display:flex;
    align-items:center;
    justify-content:flex-start;
    gap:9px;
  }
  body.has-mobile-masthead.opennow:not(.nbpage) .cityswitch,
  body.has-mobile-masthead.opennow:not(.nbpage) .cityswitch--floating{
    display:flex !important;
    grid-template-columns:none !important;
  }
  body.has-mobile-masthead .cityswitch__btn{
    flex:1 1 auto;
    width:auto;
    min-width:0;
    align-self:center;
  }
  body.has-mobile-masthead .sees-native-city-column{
    display:flex;
    flex:1 1 auto;
    width:auto;
    min-width:0;
    flex-direction:column;
    align-items:flex-start;
    justify-content:center;
  }
  body.has-mobile-masthead .sees-native-city-column .cityswitch__btn{
    flex:0 1 auto;
    width:auto;
    max-width:100%;
  }
  body.has-mobile-masthead .cityswitch .homestats{display:none!important}
  body.has-mobile-masthead .cityswitch > .map-masthead{
    display:flex;
    position:static;
    flex:0 0 auto;
    align-self:center;
    grid-column:auto;
    grid-row:auto;
  }
  body.has-mobile-masthead .cityswitch > .mast-inline-actions{
    display:flex;
    position:static;
    flex:0 0 auto;
    align-items:center;
    align-self:center;
    grid-column:auto;
    grid-row:auto;
  }
}
@media(max-width:350px){
  body.has-mobile-masthead .home-mast-tools{left:105px;right:8px;gap:4px}
  body.has-mobile-masthead .saved-masthead{min-width:46px;padding:0 5px;gap:4px}
  body.has-mobile-masthead .weather-masthead{min-width:50px;padding:0 5px}
  body.has-mobile-masthead .map-masthead{min-width:68px;height:33px;padding:0 9px}
  body.has-mobile-masthead .mast-inline-actions .srch-btn{width:32px;height:32px}
}

/* The Saved page owns the planner in its normal document flow at every
   breakpoint; the mobile block below adds the tighter Journal-style spacing. */
body.savedpage #savedpanel.is-inline{position:static;inset:auto;width:auto;height:auto;max-height:none;min-height:0;
  display:block !important;transform:none;padding:0;margin:0;background:transparent;color:var(--ink);
  border:0;border-radius:0;box-shadow:none;overflow:visible}
body.savedpage #savedpanel.is-inline .sp-list-head,
body.savedpage #savedpanel.is-inline .sp-route-pagehead{position:static;margin:0 0 14px;padding:0;background:transparent;
  border:0;color:var(--ink);backdrop-filter:none;-webkit-backdrop-filter:none}
body.savedpage #savedpanel.is-inline .sp-route-first{
  display:flex;align-items:center;justify-content:space-between;gap:14px;margin:0 0 16px;padding:14px 15px;
  border:1px solid rgba(93,92,177,.48);border-radius:18px;
  background:radial-gradient(circle at 8% 0,rgba(255,255,255,.58),transparent 32%),
    radial-gradient(circle at 100% 100%,rgba(221,182,241,.48),transparent 48%),
    linear-gradient(112deg,#cfe9fb 0%,#e5ddf6 52%,#f5d8e8 100%);
  color:#17364f;box-shadow:0 10px 24px rgba(66,79,138,.18),inset 0 1px 0 rgba(255,255,255,.78);
  backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px)}
body.savedpage #savedpanel.is-inline .sp-route-first__copy{display:grid;min-width:0;gap:2px}
body.savedpage #savedpanel.is-inline .sp-route-first__copy strong{
  color:#075e9f;font:700 16px/1.15 'Quicksand',sans-serif}
body.savedpage #savedpanel.is-inline .sp-route-first__copy span{
  color:#17364f;font:700 12px/1.2 'Quicksand',sans-serif}
body.savedpage #savedpanel.is-inline .sp-route-first__copy small{
  color:#5f7180;font:600 10px/1.25 'Quicksand',sans-serif}
body.savedpage #savedpanel.is-inline .sp-route-first__button{
  display:inline-flex;align-items:center;justify-content:center;gap:6px;min-width:120px;min-height:40px;
  padding:0 14px;border:0;border-radius:999px;background:#075e9f;color:#fff;
  font:700 12px/1 'Quicksand',sans-serif;box-shadow:0 4px 10px rgba(7,94,159,.2);cursor:pointer}
body.savedpage #savedpanel.is-inline .sp-route-first__button span{font-size:17px;line-height:1}
body.savedpage #savedpanel.is-inline .sp-route-first__button:disabled{opacity:.48;cursor:not-allowed}
body.savedpage #savedpanel.is-inline .sp-list-group__note{
  margin:-3px 0 2px;color:#70695f;font:600 10px/1.35 'Quicksand',sans-serif}
body.savedpage #savedpanel.is-inline .sp-list-footer{
  grid-template-columns:1fr;border-top:0;padding-top:4px}
body.savedpage #savedpanel.is-inline .sp-list-footer #sp-share{
  width:100%;min-height:42px;border-radius:999px}
body.savedpage #savedpanel.is-inline .sp-close{display:none}
body.savedpage #savedpanel.is-inline .sp-list{padding-bottom:18px}
body.savedpage #savedpanel.is-inline .sp-list-footer{position:static;display:grid;margin:4px 0 18px;padding:10px 0 0;border-top:1px solid var(--rule-soft);background:transparent;backdrop-filter:none;-webkit-backdrop-filter:none}
body.savedpage #savedpanel.is-inline .sp-x{display:grid;place-items:center;width:31px;height:31px;border:1.5px solid #ec4899;border-radius:50%;background:transparent;color:#ec4899;font-size:15px;padding:0}

/* Final mobile polish: personal pages use the same footer treatment as Home,
   the Journal switch uses the logo blue for its active option, and the planner
   lives inline on Saved instead of opening a second full-screen workspace. */
@media(max-width:620px), (orientation: landscape) and (max-height:620px) and (pointer:coarse){
  body.journalpage .site-footer,
  body.savedpage .site-footer{display:block !important;background:transparent;margin-top:16px}
  body.journalpage .site-footer .wrap,
  body.savedpage .site-footer .wrap{flex-flow:row wrap;justify-content:center;gap:4px 0}
  body.journalpage .site-footer .footlinks,
  body.savedpage .site-footer .footlinks{display:flex;order:3;align-items:center;justify-content:center;gap:0;flex-basis:auto;margin:0}
  body.journalpage .site-footer .footlinks a,
  body.savedpage .site-footer .footlinks a{display:none !important}
  body.journalpage .site-footer .footlinks a[href*="privacy"],
  body.journalpage .site-footer .footlinks a[href*="terms"],
  body.journalpage .site-footer .footlinks a[href*="contact"],
  body.savedpage .site-footer .footlinks a[href*="privacy"],
  body.savedpage .site-footer .footlinks a[href*="terms"],
  body.savedpage .site-footer .footlinks a[href*="contact"]{display:inline-block !important;color:rgba(255,255,255,.75);padding:0 7px;font-size:clamp(9px,2.9vw,11.5px)}
  body.journalpage .site-footer .copy,
  body.savedpage .site-footer .copy{order:2;color:rgba(255,255,255,.75);font-size:clamp(9px,2.9vw,11.5px);letter-spacing:.01em;opacity:.75;text-align:center;margin:0}
  body.journalpage .site-footer .dev-disclaimer,
  body.savedpage .site-footer .dev-disclaimer{order:1;flex-basis:100%;color:rgba(255,255,255,.75);white-space:normal;text-align:center;margin:0}

  body.savedpage{background:linear-gradient(rgba(3,110,202,.8),rgba(3,110,202,.8)),#fff;color:#fff}
  body.savedpage .saved-titleline h1{color:#fff;text-shadow:0 2px 10px rgba(7,42,80,.38)}
  body.savedpage .saved-title-star{color:#fff}
  body.savedpage .saved-sub{color:rgba(255,255,255,.84)}
  body.savedpage .saved-summary{border-color:rgba(255,255,255,.42);background:rgba(255,255,255,.14);box-shadow:0 10px 26px rgba(7,42,80,.2);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px)}
  body.savedpage .saved-summary strong{color:#fff}
  body.savedpage .saved-summary span{color:rgba(255,255,255,.8)}
  body.savedpage .saved-summary{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;padding:11px}
  body.savedpage .saved-nearby{grid-template-columns:1fr;gap:10px;margin-top:12px;padding:13px;background:rgba(255,255,255,.14);border-color:rgba(255,255,255,.42);box-shadow:0 8px 22px rgba(7,42,80,.18);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px)}
  body.savedpage .saved-nearby>div:first-child strong{color:#fff}
  body.savedpage .saved-nearby>div:first-child span{color:rgba(255,255,255,.8)}
  body.savedpage .saved-nearby-check{width:100%;background:#fff;color:#075e9f}
  body.savedpage .saved-nearby-prompt{background:rgba(255,255,255,.96)}
  body.savedpage .saved-nearby-message{color:rgba(255,255,255,.84)}

  /* Keep only the glyph size from the existing tile controls; shrink their
     rings by 10% and preserve a consistent gutter on the action rail. */
  .card .hbtn,.cover__slide .hbtn,.card .jbtn,.cover__slide .jbtn,
  .mini__media>.jbtn,.mini__media>.tshare{width:36px;height:36px}
  .card .hbtn,.cover__slide .hbtn{line-height:36px}
  .card .jbtn,.cover__slide .jbtn{line-height:36px}
  .card .mapbtn,.cover__slide .mapbtn{width:36px;height:36px;line-height:36px}
  .card__panel>.tshare,.cover__slide>.tshare{width:36px;height:36px}
  .card .mapbtn svg,.cover__slide .mapbtn svg,
  .card__panel>.tshare svg,.cover__slide>.tshare svg{width:21px;height:21px}
  .card--mini .mapbtn,.row .mapbtn,.mcard .mapbtn{width:31px;height:31px;line-height:31px;border-radius:50%;padding:0}
  .card--mini .mapbtn svg,.row .mapbtn svg,.mcard .mapbtn svg{width:21px;height:21px}
  .row .hbtn,.mcard .hbtn,.row .jbtn,.mcard .jbtn,
  .row .row__sq>.jbtn,.mcard .mcard__thumb>.jbtn,
  .row .row__sq>.tshare,.mcard .mcard__thumb>.tshare{width:31px;height:31px;line-height:31px}

  /* Saved's planner is now part of the Journal-style page flow. */
  body.savedpage #savedpanel.is-inline .sp-list-head,
  body.savedpage #savedpanel.is-inline .sp-route-pagehead{position:static;margin:0 0 14px;padding:0;background:transparent;
    border:0;color:var(--ink);backdrop-filter:none;-webkit-backdrop-filter:none}
  body.savedpage #savedpanel.is-inline .sp-list-head h3,
  body.savedpage #savedpanel.is-inline .sp-route-pagehead h3{color:var(--ink);font-size:22px}
  body.savedpage #savedpanel.is-inline .sp-list-head p,
  body.savedpage #savedpanel.is-inline .sp-route-pagehead p{color:#70695f}
  body.savedpage #savedpanel.is-inline .sp-list-filters button{border-color:var(--rule-soft);background:#fff;color:var(--ink)}
  body.savedpage #savedpanel.is-inline .sp-list-filters button.is-on{background:#0070c0;border-color:#0070c0;color:#fff}
  body.savedpage #savedpanel.is-inline .sp-list-item{border-color:var(--rule-soft);background:#fff;color:#17364f;box-shadow:0 4px 15px rgba(43,38,31,.08)}
  body.savedpage #savedpanel.is-inline .sp-list-item .sp-item-open{color:#17364f}
  body.savedpage #savedpanel.is-inline .sp-list-footer .sp-action--timed{background:#0070c0;color:#fff;border-color:#0070c0}
  body.savedpage #savedpanel.is-inline .sp-list-footer #sp-share{background:#fff;color:#0070c0;border-color:#0070c0}
  body.savedpage #savedpanel.is-inline .sp-list-footer .sp-route-closed-note{color:#70695f}
  body.savedpage #savedpanel.is-inline .sp-x{display:grid;place-items:center;width:31px;height:31px;border:1.5px solid #ec4899;border-radius:50%;background:transparent;color:#ec4899;font-size:15px;padding:0}
  body.savedpage #savedpanel.is-inline .sp-time-route{border-top:0}
  body.savedpage #savedpanel.is-inline .sp-route-intro{background:#eaf4fc;color:#0070c0}
  body.savedpage #savedpanel.is-inline .sp-route-summary{color:var(--ink)}
  body.savedpage #savedpanel.is-inline .sp-route-source{color:#70695f}
  body.savedpage #savedpanel.is-inline .sp-route-stop{border-color:var(--rule-soft);background:#fff;color:var(--ink)}
  body.savedpage #savedpanel.is-inline .sp-route-stop span{color:#70695f}
  body.savedpage #savedpanel.is-inline .sp-route-stop time{color:#0070c0}

  /* All mobile surfaces use one compact weather pill: 30% smaller than the
     previous 56px × 36px control, with its contents scaled to match. */
  body.home .weather-masthead,body.opennow .weather-masthead,body.planpage .weather-masthead,
  body.nbpage .weather-masthead,body.journalpage .weather-masthead,body.savedpage .weather-masthead{
    min-width:39px !important;width:39px;height:25px !important;padding:0 !important;box-sizing:border-box}
  /* Match the Saved pill's heart glyph size and vertical centering. */
  body.home .weather-masthead__icon,body.opennow .weather-masthead__icon,
  body.planpage .weather-masthead__icon,body.nbpage .weather-masthead__icon,
  body.journalpage .weather-masthead__icon,body.savedpage .weather-masthead__icon{
    font-size:15px !important;line-height:1 !important;align-self:center;width:15px !important;height:15px !important;margin:0 !important;text-align:center;display:grid;place-items:center}
  /* Keep the glyph and temperature centered as a single, identical control. */
  body.home .weather-masthead,body.opennow .weather-masthead,body.planpage .weather-masthead,
  body.nbpage .weather-masthead,body.journalpage .weather-masthead,body.savedpage .weather-masthead{
    display:grid !important;grid-template-columns:15px 20px !important;align-items:center !important;justify-content:center !important;
    column-gap:0 !important;padding:0 !important;font:700 9px/1 'Quicksand',sans-serif !important}
  body.home .weather-masthead__temp,body.opennow .weather-masthead__temp,
  body.planpage .weather-masthead__temp,body.nbpage .weather-masthead__temp,
  body.journalpage .weather-masthead__temp,body.savedpage .weather-masthead__temp{
    min-width:20px !important;width:20px !important;text-align:center !important;line-height:1 !important;justify-self:center}

  /* Journal uses the same compact signature footer as the other mobile surfaces:
     the beta note, then the Contact · Privacy · Terms line with identical type,
     spacing, and separators. */
  body.journalpage .site-footer .footlinks a[href*="contact"],
  body.journalpage .site-footer .footlinks a[href*="privacy"],
  body.journalpage .site-footer .footlinks a[href*="terms"]{
    display:inline-block !important;font-family:'Quicksand',sans-serif;font-weight:600;
    font-size:clamp(9px,2.9vw,11.5px);line-height:1.4;text-transform:none;
    color:rgba(255,255,255,.92);text-decoration:none;padding:0}
  body.journalpage .site-footer .footlinks a[href*="contact"]::before,
  body.journalpage .site-footer .footlinks a[href*="privacy"]::before,
  body.journalpage .site-footer .footlinks a[href*="terms"]::before{
    content:"\00b7";margin:0 7px;color:rgba(255,255,255,.55);font-weight:500}
}

/* Final cascade for Journal / homepage parity. These rules intentionally come
   last so legacy Journal overrides cannot drift from the homepage system. */
body.journalpage .journal-head h1{font:600 clamp(30px,4.4vw,42px)/1.04 'DM Sans',serif}
body.journalpage .journal-card h2,
body.journalpage .journal-venue-card h2{font:600 19px/1.16 'DM Sans',serif}
body.journalpage .journal-card p,
body.journalpage .journal-venue-card p,
body.journalpage .journal-card time,
body.journalpage .journal-venue-card span{font-family:'Quicksand',sans-serif;font-weight:500;line-height:1.35}
body.journalpage .journal-card p,
body.journalpage .journal-venue-card p{font-size:12.5px}
body.journalpage .journal-card time,
body.journalpage .journal-venue-card span{font-weight:700;font-size:12px}

@media(min-width:621px){
  body.journalpage{background:
    radial-gradient(1050px 570px at 50% 0%,rgba(255,255,255,.16),transparent 70%),
    linear-gradient(135deg,#087fca 0%,#0877c0 46%,#056caf 100%);color:#fff}
  body.journalpage .journal-category-toggle{display:inline-flex;align-items:center;gap:2px;margin:-10px 0 18px;padding:4px;border:1px solid rgba(255,255,255,.46);border-radius:999px;background:rgba(255,255,255,.16);box-shadow:0 8px 24px rgba(7,42,80,.22),inset 0 1px 0 rgba(255,255,255,.16);backdrop-filter:blur(18px) saturate(1.5);-webkit-backdrop-filter:blur(18px) saturate(1.5)}
  body.journalpage .journal-category-toggle .catswitch__opt{flex:0 0 auto;padding:8px 18px;border-radius:999px;font:700 13.5px/1 'Quicksand',sans-serif;letter-spacing:.02em;color:rgba(255,255,255,.82)}
  body.journalpage .journal-category-toggle .catswitch__opt.is-on{color:#fff !important;background:#075f9f !important;box-shadow:0 3px 10px rgba(7,42,80,.28),inset 0 1px 0 rgba(255,255,255,.16) !important}
  body.journalpage .journal-head h1,body.journalpage .journal-sub,body.journalpage .journal-future{color:#fff}
  body.journalpage .journal-sub{font-family:'Quicksand',sans-serif;font-size:14px}
  body.journalpage .site-footer{background:transparent}
}

@media(max-width:620px), (orientation: landscape) and (max-height:620px) and (pointer:coarse){
  body.journalpage .journal-category-toggle{display:flex;width:100%;align-items:center;gap:3px;margin:-8px 0 14px;padding:4px;border:1px solid rgba(255,255,255,.48) !important;border-radius:999px !important;background:linear-gradient(135deg,rgba(255,255,255,.2),rgba(255,255,255,.07)) !important;box-shadow:0 8px 24px rgba(0,47,102,.19),inset 0 1px 0 rgba(255,255,255,.4) !important;backdrop-filter:blur(18px) saturate(1.45);-webkit-backdrop-filter:blur(18px) saturate(1.45)}
  body.journalpage .journal-category-toggle .catswitch__opt{flex:1 1 0;padding:7px 2px 8px !important;border-radius:999px !important;font:700 13.3px/1 'Quicksand',sans-serif !important;letter-spacing:.01em;color:rgba(255,255,255,.72) !important;background:none !important}
  body.journalpage .journal-category-toggle .catswitch__opt.is-on,
  body.journalpage .journal-category-toggle .catswitch__opt:hover,
  body.journalpage .journal-category-toggle .catswitch__opt:focus-visible{color:#fff !important;background:rgba(255,255,255,.22) !important;box-shadow:0 3px 12px rgba(0,47,102,.18),inset 0 1px 0 rgba(255,255,255,.38) !important}
  body.journalpage .journal-title-star{width:clamp(30px,4.4vw,42px);height:clamp(30px,4.4vw,42px)}
  body.journalpage .journal-head h1{font-size:clamp(30px,4.4vw,42px)}
  body.journalpage .journal-sub{font-family:'Quicksand',sans-serif;font-size:12.5px}
  body.journalpage .journal-card h2,body.journalpage .journal-venue-card h2{font-size:15px}
  body.journalpage .journal-card p,body.journalpage .journal-venue-card p{font-size:11px}
  body.journalpage .journal-card time,body.journalpage .journal-venue-card span{font-size:10.5px}
}

/* Mobile Journal parity: use the same title scale and 362x42px category pill as
   the homepage / See Now / See Later masthead controls. */
@media(max-width:620px), (orientation: landscape) and (max-height:620px) and (pointer:coarse){
  body.journalpage .journal-head h1{font:600 26px/1.62 'DM Sans',serif}
  body.journalpage .journal-category-toggle{
    width:calc(100% + 4px);margin-left:-2px;margin-right:-2px;
    gap:3px;padding:4px;
    border:1px solid rgba(255,255,255,.46) !important;
    background:rgba(255,255,255,.16) !important;
    box-shadow:0 8px 24px rgba(7,42,80,.22),inset 0 1px 0 rgba(255,255,255,.16) !important;
  }
  body.journalpage .journal-category-toggle .catswitch__opt{
    flex:1 1 0;padding:7px 2px 8px !important;
    font:700 13.3px/normal 'Quicksand',sans-serif !important;
    color:rgba(255,255,255,.82) !important;background:none !important;
  }
  body.journalpage .journal-category-toggle .catswitch__opt.is-on,
  body.journalpage .journal-category-toggle .catswitch__opt:hover,
  body.journalpage .journal-category-toggle .catswitch__opt:focus-visible{
    color:#fff !important;background:#075f9f !important;
    box-shadow:0 3px 10px rgba(7,42,80,.28),inset 0 1px 0 rgba(255,255,255,.16) !important;
  }
}

/* Keep the heart glyph itself consistent between the masthead pill, tiles,
   and event sheets. The masthead uses Quicksand's lighter outline; applying
   that same face (with a restrained stroke) prevents the tile heart from
   looking smaller or heavier just because it inherited the card serif font. */
.saved-masthead__icon,
.hbtn,
.evsheet__heart{
  font-family:'Quicksand',sans-serif !important;
  font-weight:500 !important;
  font-size:22px !important;
  line-height:1 !important;
  -webkit-text-stroke:.35px currentColor;
  text-stroke:.35px currentColor;
}
.saved-masthead__icon{display:inline-grid;place-items:center}
.hbtn,.evsheet__heart{display:grid;place-items:center}
.row .hbtn,.mcard .hbtn{font-size:22px !important}
.saved-masthead__icon svg,
.hbtn svg,
.evsheet__heart svg{display:block;width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
.saved-masthead__icon.is-filled svg,
.hbtn.is-saved svg,
.evsheet__heart.is-saved svg{fill:currentColor;stroke:currentColor}

/* The quick-map buttons now use the exact filled folded-map construction
   rendered in the masthead Map pill, including its shared line weight. */
.mapbtn svg{
  width:21px;height:21px;fill:currentColor;stroke:currentColor;
  stroke-width:1.55;stroke-linecap:round;stroke-linejoin:round;
}

@media(max-width:620px), (orientation: landscape) and (max-height:620px) and (pointer:coarse){
  .saved-masthead__icon,
  .hbtn,
  .evsheet__heart{
    font-size:20px !important;
  }
  .row .hbtn,.mcard .hbtn{font-size:20px !important}
  .saved-masthead__icon svg,.hbtn svg,.evsheet__heart svg{width:20px;height:20px}
}

/* Standalone event pages use the same mobile shell as Home. The generated event
   markup historically carried its own white header/city surface, which meant a
   deep link looked like a different product from the rest of the app. Keep the
   event content readable on the shared blue canvas and let the JS-mounted utility
   row provide the same Saved / Weather / Map / Search actions. */
@media(max-width:620px), (orientation: landscape) and (max-height:620px) and (pointer:coarse){
  body.eventpage{background:linear-gradient(rgba(3,110,202,.8),rgba(3,110,202,.8)),#fff;color:#fff}
  body.eventpage .site-header{background:transparent;border-bottom:none;margin-bottom:0}
  body.eventpage .site-header__in{height:46px}
  body.eventpage .logo{position:fixed;top:calc(14px + env(safe-area-inset-top));left:14px;width:89.28px;height:89.28px;z-index:1150}
  body.eventpage .logo img{box-shadow:var(--mobile-raised-shadow)}
  body.eventpage > .wrap{max-width:none !important;margin:0 !important;padding:calc(112px + env(safe-area-inset-top)) 18px 112px !important}

  body.eventpage .home-mast-tools{display:flex;position:fixed;top:calc(38.14px + env(safe-area-inset-top));left:105px;right:8px;z-index:1151;align-items:center;justify-content:flex-end;gap:4px}
  body.eventpage .saved-masthead,
  body.eventpage .weather-masthead,
  body.eventpage .map-masthead{display:flex;position:static;align-items:center;justify-content:center;border:1px solid rgba(255,255,255,.8);border-radius:999px;background:rgba(0,112,192,.18);color:#fff;box-shadow:none;cursor:pointer}
  body.eventpage .saved-masthead{min-width:46px;height:32px;padding:0 5px;gap:4px;font:700 13px/1 'Quicksand',sans-serif}
  body.eventpage .saved-masthead__icon{font:500 20px/1 'Quicksand',sans-serif;color:#ec4899}
  body.eventpage .weather-masthead{min-width:35px;width:35px;height:22px;padding:0;gap:0;font:700 9px/1 'Quicksand',sans-serif}
  body.eventpage .map-masthead{min-width:68px;height:33px;padding:0 9px;gap:6px;font:700 15px/1 'Quicksand',sans-serif;background:rgb(104,124,132)}
  body.eventpage .map-masthead svg{width:26px;height:26px;color:#0070c0;fill:currentColor;stroke:currentColor;stroke-width:1.55}
  body.eventpage .mast-inline-actions{display:flex;position:static;align-items:center;gap:4px}
  body.eventpage .mast-inline-actions .srch-btn{display:flex;width:32px;height:32px;align-items:center;justify-content:center;border-radius:50%;border:1px solid rgba(255,255,255,.8);color:#fff;background:rgba(0,112,192,.18);padding:0}
  body.eventpage .mast-inline-actions .srch-btn svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
  body.eventpage .weather-masthead{display:grid !important;grid-template-columns:15px 20px !important;align-items:center !important;justify-content:center !important;column-gap:0 !important}
  body.eventpage .weather-masthead__icon{font-size:15px !important;line-height:1 !important;width:15px;height:15px;display:grid;place-items:center}
  body.eventpage .weather-masthead__temp{min-width:20px;width:20px;text-align:center;line-height:1}

  body.eventpage .ep-back,
  body.eventpage .ep-title,
  body.eventpage .ep-when,
  body.eventpage .ep-hours,
  body.eventpage .ep-recep,
  body.eventpage .ep-recep a,
  body.eventpage .ep-venue,
  body.eventpage .ep-venue a,
  body.eventpage .ep-addr,
  body.eventpage .ep-desc p,
  body.eventpage .ep-more,
  body.eventpage .ep-more a{color:#fff !important}
  body.eventpage .ep-back{display:inline-block;text-decoration:none;text-shadow:0 1px 5px rgba(7,42,80,.35)}
  body.eventpage .ep-head{margin-top:20px}
  body.eventpage .ep-title{font-size:27px;text-shadow:0 1px 3px rgba(7,42,80,.55),0 3px 12px rgba(7,42,80,.38)}
  body.eventpage .ep-photo img{border-color:rgba(255,255,255,.55)}
  body.eventpage .ep-map{border-color:rgba(255,255,255,.55);background:rgba(255,255,255,.12)}
  body.eventpage .ep-head .hbtn,
  body.eventpage .ep-head .mapbtn,
  body.eventpage .ep-head .jbtn,
  body.eventpage .ep-head .tshare{top:0;bottom:auto;right:auto;width:36px;height:36px;border:1.5px solid rgba(255,255,255,.92);border-radius:50%;background:transparent;box-sizing:border-box}
  body.eventpage .ep-head .hbtn{right:0;color:#ec4899;line-height:36px}
  body.eventpage .ep-head .mapbtn{right:44px;padding:0;color:#0070c0;line-height:36px}
  body.eventpage .ep-head .tshare{right:88px;left:auto;color:#000;padding:0}
  body.eventpage .ep-head .jbtn{right:132px;color:#d5a11e;padding:0}
  body.eventpage .ep-head .mapbtn svg{width:21px;height:21px}
  body.eventpage .ep-head .tshare svg{width:19px;height:19px}
  body.eventpage .ep-head .jbtn svg{width:21px;height:21px}

  body.eventpage .site-footer{display:block !important;background:transparent;margin-top:0}
  body.eventpage .site-footer .wrap{flex-flow:row wrap;justify-content:center;gap:4px 0}
  body.eventpage .site-footer .footlinks{display:flex;order:3;align-items:center;justify-content:center;gap:0;flex-basis:auto;margin:0}
  body.eventpage .site-footer .footlinks a{display:none !important;font-family:'Quicksand',sans-serif;font-weight:600;font-size:clamp(9px,2.9vw,11.5px);line-height:1.4;text-transform:none;color:rgba(255,255,255,.92);text-decoration:none;padding:0}
  body.eventpage .site-footer .footlinks a[href*="contact"],
  body.eventpage .site-footer .footlinks a[href*="privacy"],
  body.eventpage .site-footer .footlinks a[href*="terms"]{display:inline-block !important}
  body.eventpage .site-footer .footlinks a[href*="contact"]::before,
  body.eventpage .site-footer .footlinks a[href*="privacy"]::before,
  body.eventpage .site-footer .footlinks a[href*="terms"]::before{content:"\00b7";margin:0 7px;color:rgba(255,255,255,.55);font-weight:500}
  body.eventpage .site-footer .copy{order:2;color:rgba(255,255,255,.75);font:500 clamp(9px,2.9vw,11.5px)/1.4 'Quicksand',sans-serif;letter-spacing:.01em;opacity:.75;text-align:center;margin:0}
  body.eventpage .site-footer .dev-disclaimer{order:1;flex-basis:100%;color:rgba(255,255,255,.75);font-family:'Quicksand',sans-serif;white-space:normal;text-align:center;margin:0}
}

/* Saved's inline planner sits on the same blue canvas as Home. Its list and
   route notes must therefore use the homepage's white type treatment; the
   individual stop cards intentionally remain white with dark card text. */
@media(max-width:620px), (orientation: landscape) and (max-height:620px) and (pointer:coarse){
  body.savedpage #savedpanel.is-inline,
  body.savedpage #savedpanel.is-inline .sp-list-head,
  body.savedpage #savedpanel.is-inline .sp-route-pagehead,
  body.savedpage #savedpanel.is-inline .sp-route-summary{color:#fff !important}
  body.savedpage #savedpanel.is-inline .sp-list-head h3,
  body.savedpage #savedpanel.is-inline .sp-route-pagehead h3{color:#fff !important;text-shadow:0 1px 5px rgba(7,42,80,.3)}
  body.savedpage #savedpanel.is-inline .sp-list-head p,
  body.savedpage #savedpanel.is-inline .sp-route-pagehead p,
  body.savedpage #savedpanel.is-inline .sp-route-source,
  body.savedpage #savedpanel.is-inline .sp-route-closed-note{color:rgba(255,255,255,.82) !important}
  body.savedpage #savedpanel.is-inline .sp-route-intro{background:rgba(255,255,255,.16);border-color:rgba(255,255,255,.38);color:#fff}
  body.savedpage #savedpanel.is-inline .sp-route-intro *{color:inherit}
  body.savedpage #savedpanel.is-inline .sp-list-group h4{color:#fff;text-shadow:0 1px 4px rgba(7,42,80,.28)}
  body.savedpage #savedpanel.is-inline .sp-list-group__note{color:rgba(255,255,255,.82)}
}

/* On the mobile website, See Now and See Later use the same city label scale as
   the homepage. The native iOS shell owns its own scoped city sizing, so keep it
   out of this web-only parity rule. */
@media(max-width:620px), (orientation: landscape) and (max-height:620px) and (pointer:coarse){
  html:not(.sees-native-ios) body.opennow:not(.nbpage) .cityswitch__btn{
    font-size:clamp(19px,6vw,23px)
  }
}

/* Saved follows Journal's mobile title rhythm exactly.  The heart stays the
   same red outline when empty and fills in place when at least one stop is
   saved, while retaining the Journal star's footprint and title alignment. */
@media(max-width:620px), (orientation: landscape) and (max-height:620px) and (pointer:coarse){
  body.savedpage .saved-headline{align-items:flex-start;gap:5px;margin-bottom:22px}
  body.savedpage .saved-share{padding:7px 8px;font-size:11px;border-color:rgba(255,255,255,.78);background:rgba(255,255,255,.12);color:#fff}
  body.savedpage .saved-titleline{gap:5px}
  body.savedpage .saved-titleline h1{font:600 26px/1.62 'DM Sans',serif}
  body.savedpage .saved-title-heart{width:clamp(30px,4.4vw,42px);height:clamp(30px,4.4vw,42px);color:#ec4899}
}

body.savedpage .saved-empty h2{color:#000}

/* Tile actions use one shared glass-white surface. Keep the ring and glyph
   readable over both photography and the blue mobile canvas without bringing
   back the opaque white button treatment. */
.hbtn,
.jbtn,
.tshare,
.mapbtn,
.journal-card__star,
.saved-card__heart,
.evsheet__heart,
.evsheet__share,
.evsheet__journal{
  background:rgba(255,255,255,.5) !important;
  -webkit-backdrop-filter:blur(8px) saturate(1.15);
  backdrop-filter:blur(8px) saturate(1.15);
}

/* Shows and Theaters are selectable stats views, not outlined controls. The
   selected-cell outline was reading as an unwanted white border on mobile. */
@media(max-width:620px), (orientation: landscape) and (max-height:620px) and (pointer:coarse){
  body.journalpage .journal-summary__item.is-selected{
    outline:none !important;
    outline-offset:0 !important;
  }
}

/* Final mobile parity pass (Aug 2026): Saved and Journal share one title-row
   action treatment, and the floating utility rail keeps Map directly below
   Search.  The third column remains an intentional empty slot where Map used
   to sit; this prevents the logo-side controls from reflowing when Map moves. */
@media(max-width:620px), (orientation: landscape) and (max-height:620px) and (pointer:coarse){
  body.journalpage .journal-head,
  body.savedpage .saved-headline{
    align-items:flex-start;
  }
  body.journalpage .journal-share,
  body.savedpage .saved-share{
    box-sizing:border-box;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    width:76px;
    min-width:76px;
    height:32px;
    margin-top:5px;
    padding:0 10px;
    border-radius:999px;
    font:700 11px/1 'Quicksand',sans-serif;
    white-space:nowrap;
  }

  /* The DOM order is Saved, Weather, Search, Map, calendar text. Explicit
     grid placement makes the visual order stable without moving the calendar
     or causing the old Map slot to be filled by another pill. */
  body:is(.home,.eventpage) .home-mast-tools,
  body.opennow .home-mast-tools,
  body.journalpage .home-mast-tools,
  body.savedpage .home-mast-tools,
  body.eventpage .home-mast-tools{
    display:grid;
    grid-template-columns:auto auto minmax(0,1fr) auto;
    grid-template-rows:32px 32px;
    align-items:center;
    justify-content:stretch;
    column-gap:4px;
    row-gap:4px;
  }
  /* Saved and Weather are 36px pills. Give See Now/See Later the same first
     grid row height as Home so both pills sit on the identical vertical centerline. */
  body.opennow .home-mast-tools{grid-template-rows:36px 32px;}
  body:is(.home,.eventpage) .home-mast-tools > .saved-masthead,
  body.opennow .home-mast-tools > .saved-masthead,
  body.journalpage .home-mast-tools > .saved-masthead,
  body.savedpage .home-mast-tools > .saved-masthead,
  body.eventpage .home-mast-tools > .saved-masthead{grid-column:1;grid-row:1;justify-self:start}
  body:is(.home,.eventpage) .home-mast-tools > .weather-masthead,
  body.opennow .home-mast-tools > .weather-masthead,
  body.journalpage .home-mast-tools > .weather-masthead,
  body.savedpage .home-mast-tools > .weather-masthead,
  body.eventpage .home-mast-tools > .weather-masthead{grid-column:2;grid-row:1;justify-self:start}
  body:is(.home,.eventpage) .home-mast-tools > .mast-inline-actions,
  body.opennow .home-mast-tools > .mast-inline-actions,
  body.journalpage .home-mast-tools > .mast-inline-actions,
  body.savedpage .home-mast-tools > .mast-inline-actions,
  body.eventpage .home-mast-tools > .mast-inline-actions{grid-column:4;grid-row:1;justify-self:end}
  body:is(.home,.eventpage) .home-mast-tools > .map-masthead,
  body.opennow .home-mast-tools > .map-masthead,
  body.journalpage .home-mast-tools > .map-masthead,
  body.savedpage .home-mast-tools > .map-masthead,
  body.eventpage .home-mast-tools > .map-masthead{grid-column:4;grid-row:2;justify-self:end}
  body:is(.home,.eventpage) .home-mast-tools > .mast-calendar-line,
  body.opennow .home-mast-tools > .mast-calendar-line{grid-column:3;grid-row:2;justify-self:stretch;flex:none}

  /* Every sheet/planner close circle uses the same black 50% glass surface;
     the glyph remains white over both photography and the blue canvas. */
  .evsheet__x,
  .saveroute__close,
  .sp-close,
  .ss-close{
    background:rgba(0,0,0,.5) !important;
    color:#fff !important;
    border-color:rgba(255,255,255,.72) !important;
    -webkit-backdrop-filter:blur(8px) saturate(1.15);
    backdrop-filter:blur(8px) saturate(1.15);
    -webkit-text-fill-color:#fff;
  }
}

/* Keep the same close treatment on desktop event/route sheets as well. */
.evsheet__x,
.saveroute__close,
.sp-close,
.ss-close{
  display:grid;
  place-items:center;
  line-height:1;
  padding:0;
  background:rgba(0,0,0,.5) !important;
  color:#fff !important;
  border-color:rgba(255,255,255,.72) !important;
  -webkit-backdrop-filter:blur(8px) saturate(1.15);
  backdrop-filter:blur(8px) saturate(1.15);
  -webkit-text-fill-color:#fff;
}

/* Homepage mobile masthead (Aug 2026): live three-line counts share the floating
   logo rail, while the city row owns Map followed by Search. This intentionally
   overrides the older two-column city/stats layout without changing See Now or
   the personal surfaces. */
@media(max-width:620px), (orientation: landscape) and (max-height:620px) and (pointer:coarse){
  body:is(.home,.eventpage) .home-mast-tools{
    display:flex;
    align-items:center;
    justify-content:flex-end;
    gap:5px;
  }
  body:is(.home,.eventpage) .home-mast-tools > .homestats{
    display:block;
    flex:1 1 auto;
    min-width:0;
    width:auto;
    height:41px;
    margin:0;
    overflow:hidden;
    color:rgba(255,255,255,.9);
    font:700 9.5px/1.16 'Quicksand',sans-serif;
    text-align:left;
  }
  body:is(.home,.eventpage) .home-mast-tools > .homestats > .hs-main,
  body:is(.home,.eventpage) .home-mast-tools > .homestats::before,
  body:is(.home,.eventpage) .home-mast-tools > .homestats::after{display:none}
  body:is(.home,.eventpage) .home-mast-tools > .homestats.has-mobile-lines > .hs-mobile{
    display:flex;
    flex-direction:column;
    justify-content:center;
    gap:1px;
    height:100%;
    overflow:hidden;
    white-space:nowrap;
  }
  body:is(.home,.eventpage) .home-mast-tools > .homestats .hs-mobile__line{
    display:block;
    overflow:hidden;
    text-overflow:ellipsis;
    white-space:nowrap;
  }
  body:is(.home,.eventpage) .home-mast-tools > .mast-calendar-line{display:none!important}

  body:is(.home,.eventpage) .cityswitch,
  body:is(.home,.eventpage) .cityswitch--floating{
    display:flex;
    align-items:center;
    justify-content:flex-start;
    gap:9px;
  }
  body:is(.home,.eventpage) .cityswitch__btn{
    flex:1 1 auto;
    width:auto;
    align-self:center;
  }
  body:is(.home,.eventpage) .cityswitch .homestats{display:none!important}
  body:is(.home,.eventpage) .cityswitch > .map-masthead{
    display:flex;
    flex:0 0 auto;
    align-self:center;
  }
  body:is(.home,.eventpage) .cityswitch > .mast-inline-actions{
    display:flex;
    flex:0 0 auto;
    align-items:center;
    align-self:center;
  }
  body:is(.home,.eventpage) .cityswitch > .mast-inline-actions .srch-btn{display:flex;align-items:center;justify-content:center}
}

/* Full-screen map chrome (Aug 2026): the map is the whole mobile surface, so
   the shared Saved/Weather/Search/Map rail is intentionally absent. Keep the
   map's own City and Art/Theater controls, move City into the old left-side
   Pin-key position, and park Pin key above the bottom navigation. */
@media(max-width:620px), (orientation: landscape) and (max-height:620px) and (pointer:coarse){
  body.mappage .home-mast-tools{display:none!important}
  body.mappage .cityswitch > .map-masthead,
  body.mappage .cityswitch > .mast-inline-actions{display:none!important}
  body.mappage .cityswitch,
  body.mappage .cityswitch--floating{
    top:calc(8px + env(safe-area-inset-top));
    left:12px;
    right:auto;
    transform:none;
    z-index:1145;
  }
  body.mappage .cityswitch__menu{
    left:0;
    right:auto;
    transform:none;
  }
  body.mappage .mlg-wrap{
    top:auto;
    right:auto;
    left:12px;
    bottom:calc(96px + env(safe-area-inset-bottom));
    z-index:1150;
    flex-direction:column-reverse;
    align-items:flex-start;
  }
}

/* Journal mobile/app parity with the homepage (Aug 2026). The Journal keeps
   the homepage's footer typography and white signature treatment, while its
   focused rail omits Map. The share control reuses the event-tile glyph. */
.journal-share svg{
  display:block;
  flex:0 0 auto;
  width:17px;
  height:17px;
  fill:none;
  stroke:currentColor;
  stroke-width:1.8;
  stroke-linecap:round;
  stroke-linejoin:round;
}
.journal-share span{display:inline-block;color:inherit}
@media(max-width:620px), (orientation: landscape) and (max-height:620px) and (pointer:coarse){
  body.journalpage .home-mast-tools > .map-masthead{display:none !important}
  body.journalpage .site-footer .footlinks a[href*="contact"],
  body.journalpage .site-footer .footlinks a[href*="privacy"],
  body.journalpage .site-footer .footlinks a[href*="terms"]{
    display:inline-block !important;
    font-family:'Quicksand',sans-serif;
    font-size:clamp(9px,2.9vw,11.5px);
    font-weight:600;
    line-height:1.4;
    color:rgba(255,255,255,.92);
    text-decoration:none;
    padding:0;
  }
  body.journalpage .site-footer .copy{
    color:#fff;
    font-family:'DM Sans',serif;
    font-size:clamp(9px,2.9vw,11.5px);
    font-weight:400;
    line-height:1.62;
    letter-spacing:.01em;
    opacity:.75;
  }
  body.journalpage .site-footer .dev-disclaimer{
    color:#fff;
    font-family:'Quicksand',sans-serif;
    font-size:clamp(9px,2.9vw,11.5px);
    font-weight:400;
    line-height:1.5;
    opacity:.75;
  }
  body.journalpage .journal-share{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    gap:6px;
    width:76px;
    min-width:76px;
    height:32px;
    padding:0 10px;
    border:1px solid rgba(255,255,255,.78);
    border-radius:999px;
    background:transparent !important;
    color:#fff;
    font:700 11px/1 'Quicksand',sans-serif;
    white-space:nowrap;
  }
}

/* The Journal’s native masthead keeps Search only. Saved and Weather remain
   available elsewhere in the app, but would duplicate the Journal controls. */
@media(max-width:620px), (orientation: landscape) and (max-height:620px) and (pointer:coarse){
  html.sees-native-ios body.journalpage .saved-masthead,
  html.sees-native-ios body.journalpage .weather-masthead{
    display:none !important;
  }
}

/* iPhone map only: a raised venue pin carries the number of listings at that
   location. The Leaflet marker's outer element remains untransformed so its
   own positioning is untouched; all depth is drawn by this inner shape. */
@media(max-width:620px), (orientation: landscape) and (max-height:620px) and (pointer:coarse){
  html.sees-native-ios body.mappage .sj-3d-map-marker{
    display:block !important;
    width:44px !important;
    height:56px !important;
    margin:0 !important;
    background:transparent !important;
    border:0 !important;
    pointer-events:auto !important;
  }
  html.sees-native-ios body.mappage .sj-3d-map-marker__pin{
    display:grid;
    place-items:center;
    width:34px;
    height:34px;
    margin:6px auto 0;
    border:2px solid rgba(255,255,255,.96);
    border-radius:50% 50% 50% 5px;
    background:linear-gradient(135deg,rgba(255,255,255,.42),rgba(255,255,255,0) 38%),var(--sj-map-marker-color,#0070c0);
    box-shadow:0 14px 20px rgba(6,38,76,.5),0 4px 7px rgba(6,38,76,.3),inset 0 1px 0 rgba(255,255,255,.54),inset 0 -2px 3px rgba(0,0,0,.18);
    color:#fff;
    transform:rotate(-45deg) translate3d(0,-1px,0);
    transform-origin:center;
    transition:transform .2s ease,box-shadow .2s ease;
  }
  html.sees-native-ios body.mappage .sj-3d-map-marker__count{
    font:700 12px/1 'Quicksand',sans-serif;
    text-shadow:0 1px 2px rgba(0,0,0,.28);
    transform:rotate(45deg);
  }
  html.sees-native-ios body.mappage .sj-3d-map-marker:hover .sj-3d-map-marker__pin,
  html.sees-native-ios body.mappage .sj-3d-map-marker:focus-visible .sj-3d-map-marker__pin{
    box-shadow:0 18px 23px rgba(6,38,76,.54),0 5px 8px rgba(6,38,76,.32),inset 0 1px 0 rgba(255,255,255,.58),inset 0 -2px 3px rgba(0,0,0,.18);
    transform:rotate(-45deg) translate3d(0,-5px,0) scale(1.05);
  }
}

  /* The depth wash sits above raster tiles but below Leaflet's marker pane. It is
     pointer-transparent, so panning and sheet taps remain owned by Leaflet. */
  html.sees-native-ios body.mappage .sj-map-depth-host{
    isolation:isolate;
    background:#075f9f;
  }
  html.sees-native-ios body.mappage .sj-map-depth-host::before{
    content:"";
    position:absolute;
    inset:0;
    z-index:410;
    pointer-events:none;
    opacity:.68;
    background:
      radial-gradient(ellipse at calc(50% + var(--sj-map-parallax-x,0px)) calc(34% + var(--sj-map-parallax-y,0px)), rgba(255,255,255,.20), transparent 38%),
      linear-gradient(135deg,rgba(3,43,84,.16),transparent 34%,rgba(2,39,77,.30));
    transform:scale(var(--sj-map-depth-scale,1));
    transform-origin:center center;
    transition:background-position .22s ease,transform .22s ease;
  }
  html.sees-native-ios body.mappage .sj-map-depth-host::after{
    content:"";
    position:absolute;
    inset:0;
    z-index:411;
    pointer-events:none;
    box-shadow:inset 0 0 70px rgba(2,35,70,.28),inset 0 -18vh 18vh rgba(2,38,76,.18);
  }
  html.sees-native-ios body.mappage .sj-map-depth-horizon{
    position:fixed;
    top:calc(52px + env(safe-area-inset-top));
    left:0;
    right:0;
    height:84px;
    z-index:1110;
    pointer-events:none;
    overflow:hidden;
    opacity:.82;
    transform:translate3d(var(--sj-map-parallax-x,0px),var(--sj-map-parallax-y,0px),0);
    transition:transform .22s ease;
  }
  html.sees-native-ios body.mappage .sj-map-depth-horizon::before{
    content:attr(data-city);
    position:absolute;
    left:20px;
    top:3px;
    color:rgba(255,255,255,.18);
    font:700 clamp(28px,9vw,48px)/1 'Quicksand',sans-serif;
    letter-spacing:.12em;
    text-transform:uppercase;
    white-space:nowrap;
    text-shadow:0 5px 18px rgba(3,42,82,.32);
  }
  html.sees-native-ios body.mappage .sj-map-depth-horizon::after{
    content:"";
    position:absolute;
    left:12%;
    right:12%;
    bottom:-44px;
    height:80px;
    border-top:1px solid rgba(255,255,255,.26);
    border-radius:50%;
    transform:perspective(160px) rotateX(48deg);
    transform-origin:center top;
    box-shadow:0 -8px 28px rgba(0,34,72,.22);
  }
  html.sees-native-ios body.mappage .sj-3d-map-marker__pin{
    display:grid;
    place-items:center;
    width:34px;
    height:34px;
    margin:6px auto 0;
    border:2px solid rgba(255,255,255,.96);
    border-radius:50% 50% 50% 5px;
    background:linear-gradient(135deg,rgba(255,255,255,.42),rgba(255,255,255,0) 38%),var(--sj-map-marker-color,#0070c0);
    box-shadow:0 14px 20px rgba(6,38,76,.5),0 4px 7px rgba(6,38,76,.3),inset 0 1px 0 rgba(255,255,255,.54),inset 0 -2px 3px rgba(0,0,0,.18);
    color:#fff;
    transform:rotate(-45deg) translate3d(0,-1px,0) rotateX(8deg) translateZ(0);
    transform-origin:center;
    backface-visibility:hidden;
    transition:transform .28s cubic-bezier(.2,.8,.2,1),box-shadow .28s ease;
  }
  html.sees-native-ios body.mappage .sj-3d-map-marker__shadow{
    position:absolute;
    left:50%;
    top:39px;
    width:25px;
    height:9px;
    border-radius:50%;
    background:rgba(2,27,57,.42);
    filter:blur(4px);
    transform:translate3d(-50%,0,0) scaleX(1.08);
    transition:transform .28s cubic-bezier(.2,.8,.2,1),opacity .28s ease;
  }
  html.sees-native-ios body.mappage .sj-3d-map-marker__count{
    font:700 12px/1 'Quicksand',sans-serif;
    text-shadow:0 1px 2px rgba(0,0,0,.28);
    transform:rotate(45deg);
  }
  html.sees-native-ios body.mappage .sj-3d-map-marker:hover .sj-3d-map-marker__pin,
  html.sees-native-ios body.mappage .sj-3d-map-marker:focus-visible .sj-3d-map-marker__pin,
  html.sees-native-ios body.mappage .sj-3d-map-marker__pin.is-lifted{
    box-shadow:0 18px 23px rgba(6,38,76,.54),0 5px 8px rgba(6,38,76,.32),inset 0 1px 0 rgba(255,255,255,.58),inset 0 -2px 3px rgba(0,0,0,.18);
    transform:rotate(-45deg) translate3d(0,-5px,0) rotateX(8deg) translateZ(0) scale(1.05);
  }
  html.sees-native-ios body.mappage .sj-3d-map-marker__pin.is-lifted .sj-3d-map-marker__count{transform:rotate(45deg)}
  html.sees-native-ios body.mappage .sj-3d-map-marker:has(.sj-3d-map-marker__pin.is-lifted) .sj-3d-map-marker__shadow{
    opacity:.22;
    transform:translate3d(-50%,4px,0) scaleX(.82);
  }
}

/* Native marker sheets use a tiny perspective rise instead of a flat opacity
   swap. Website sheets keep their existing transition exactly as-is. */
@media(max-width:620px), (orientation: landscape) and (max-height:620px) and (pointer:coarse){
  html.sees-native-ios body.mappage .evsheet{
    transform:perspective(900px) translate3d(-50%,-46%,0) rotateX(4deg) scale(.965);
    transform-origin:center bottom;
    transition:opacity .28s ease,transform .38s cubic-bezier(.2,.8,.2,1);
  }
  html.sees-native-ios body.mappage .evsheet.is-open{
    transform:perspective(900px) translate3d(-50%,-50%,0) rotateX(0deg) scale(1);
  }
  html.sees-native-ios body.mappage .evsheet-back{
    -webkit-backdrop-filter:blur(5px) saturate(1.08);
    backdrop-filter:blur(5px) saturate(1.08);
  }
  html.sees-native-ios body.mappage.sj-native-map-sheet-open .sj-map-depth-host::before{
    opacity:.42;
  }
}

@media(max-width:620px) and (prefers-reduced-motion:reduce), (orientation: landscape) and (max-height:620px) and (pointer:coarse) and (prefers-reduced-motion:reduce){
  html.sees-native-ios body.mappage .sj-map-depth-horizon,
  html.sees-native-ios body.mappage .sj-map-depth-host::before,
  html.sees-native-ios body.mappage .sj-3d-map-marker__pin,
  html.sees-native-ios body.mappage .sj-3d-map-marker__shadow,
  html.sees-native-ios body.mappage .evsheet{
    transition:none !important;
  }
}
/* Native MapLibre GL surface. It is loaded and shown only after the native
   WebGL renderer is ready; Leaflet keeps markers, controls, and gestures on top. */
@media(max-width:620px), (orientation: landscape) and (max-height:620px) and (pointer:coarse){
  html.sees-native-ios body.mappage .sj-maplibre-layer{
    position:absolute;
    inset:0;
    /* Keep the vector surface and its DOM markers in one stacking layer above
       the depth wash; controls remain in Leaflet's higher panes. */
    z-index:420;
    overflow:hidden;
    pointer-events:none;
    background:transparent;
  }
  html.sees-native-ios body.mappage .sj-maplibre-layer .maplibregl-canvas-container,
  html.sees-native-ios body.mappage .sj-maplibre-layer .maplibregl-canvas{
    position:absolute;
    inset:0;
    width:100% !important;
    height:100% !important;
    pointer-events:none !important;
  }
  html.sees-native-ios body.mappage.sj-maplibre-ready .sj-maplibre-layer .maplibregl-canvas{
    filter:grayscale(1) contrast(1.08) brightness(1.08);
  }
  html.sees-native-ios body.mappage .sj-maplibre-layer .maplibregl-marker{
    position:absolute !important;
    top:0 !important;
    left:0 !important;
    z-index:3 !important;
    display:block !important;
    pointer-events:auto !important;
  }
  html.sees-native-ios body.mappage.sj-maplibre-ready .leaflet-container{
    background:transparent !important;
  }
  html.sees-native-ios body.mappage.sj-maplibre-ready .leaflet-tile-pane{
    opacity:0 !important;
    visibility:hidden !important;
  }
  html.sees-native-ios body.mappage.sj-maplibre-ready .leaflet-marker-pane{
    visibility:hidden !important;
  }
  html.sees-native-ios body.mappage .sj-maplibre-layer .maplibregl-marker{
    pointer-events:auto !important;
  }
  html.sees-native-ios body.mappage.sj-maplibre-ready .sj-map-depth-host::before{
    opacity:.12;
  }
}
/* Native full-map controls: City fits its current name at left, Art/Theater
   stays centered, and the All/Saved filter remains at right. */
@media(max-width:620px), (orientation: landscape) and (max-height:620px) and (pointer:coarse){
  html.sees-native-ios body.mappage .cityswitch,
  html.sees-native-ios body.mappage .mapcat,
  html.sees-native-ios body.mappage .mapfilter{
    top:calc(12px + env(safe-area-inset-top)) !important;
  }
  html.sees-native-ios body.mappage .cityswitch__btn{
    width:max-content !important;
    min-width:0 !important;
    max-width:calc(100vw - 226px) !important;
    box-sizing:border-box;
    min-height:36px !important;
    height:36px !important;
    padding:0 10px !important;
    gap:5px !important;
    font-size:13px !important;
  }
  html.sees-native-ios body.mappage .cityswitch__label{
    min-width:0;
    overflow:hidden;
    text-overflow:ellipsis;
    white-space:nowrap;
  }
  html.sees-native-ios body.mappage .mapcat{
    right:auto !important;
    left:50% !important;
    transform:translateX(-50%) !important;
    z-index:1141 !important;
    box-sizing:border-box;
    height:36px !important;
    padding:3px !important;
  }
  html.sees-native-ios body.mappage .mapcat__opt{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    min-height:28px;
    padding:0 10px !important;
    font-size:13px !important;
  }
  html.sees-native-ios body.mappage .mapfilter__btn{
    box-sizing:border-box;
    width:max-content;
    min-width:0;
    height:36px;
    padding:0 10px;
    gap:5px;
    justify-content:space-between;
    font-size:13px;
  }
}


/* Native-app map depth (safe pass): visual-only effects stay on the Leaflet marker/control
   elements. The geographic map panes and marker anchors are never transformed. */
html.sees-native-ios body.mappage .sj-map-depth-marker{
  filter:drop-shadow(0 2px 1px rgba(16,24,40,.28))
         drop-shadow(0 6px 8px rgba(16,24,40,.24));
  transition:filter .22s ease,opacity .22s ease;
  vector-effect:non-scaling-stroke;
}
html.sees-native-ios body.mappage .sj-map-depth-marker:hover,
html.sees-native-ios body.mappage .sj-map-depth-marker:focus{
  filter:drop-shadow(0 3px 1px rgba(16,24,40,.32))
         drop-shadow(0 8px 10px rgba(16,24,40,.28));
}
html.sees-native-ios body.mappage .mapfilter__btn,
html.sees-native-ios body.mappage .mapfilter .mapmode,
html.sees-native-ios body.mappage .mlg-toggle,
html.sees-native-ios body.mappage .leaflet-control-zoom a,
html.sees-native-ios body.mappage .loc-ctrl a{
  box-shadow:0 8px 18px rgba(16,24,40,.24),
             inset 0 1px 0 rgba(255,255,255,.42);
}
html.sees-native-ios body.mappage .evsheet{
  will-change:opacity,transform;
  transition:opacity .24s ease,
             transform .34s cubic-bezier(.22,.8,.24,1);
}
html.sees-native-ios body.mappage .evsheet.is-open{
  box-shadow:0 30px 78px -18px rgba(0,0,0,.62);
}


/* Native-app 3D pin face: only the inner visual is transformed; Leaflet's outer
   marker element remains the geographic anchor. */
html.sees-native-ios body.mappage .sj-safe-3d-map-marker{
  width:44px;height:54px;border:0;background:transparent;pointer-events:auto;
  isolation:isolate;
}
/* The DOM pin is the only native marker face. Keep the legacy Leaflet dot hidden
   as a defensive guard so it cannot cover the pin count during redraws. */
html.sees-native-ios body.mappage .sj-map-depth-marker,
html.sees-native-ios body.mappage .sj-3d-map-marker__shadow{
  display:none !important;
}
html.sees-native-ios body.mappage .sj-safe-3d-map-marker__shadow{
  position:absolute;left:8px;bottom:4px;width:28px;height:8px;border-radius:50%;
  background:rgba(15,23,42,.34);filter:blur(3px);
  transform:scaleX(1.12);transform-origin:center;
  z-index:0;pointer-events:none;
}
html.sees-native-ios body.mappage .sj-safe-3d-map-marker__pin{
  position:absolute;left:7px;top:3px;width:30px;height:30px;
  border:2px solid rgba(255,255,255,.96);
  border-radius:50% 50% 50% 0;
  background:linear-gradient(145deg,
    rgba(255,255,255,.44),
    var(--sj-map-marker-color,#0070c0) 58%,
    rgba(6,21,44,.78));
  box-shadow:inset 2px 2px 0 rgba(255,255,255,.46),
             3px 5px 0 rgba(7,24,48,.28),
             0 7px 12px rgba(7,24,48,.24);
  transform:rotate(-45deg) rotateX(12deg);
  transform-origin:50% 50%;
  z-index:1;
  transform-style:preserve-3d;
  transition:transform .28s cubic-bezier(.22,.8,.24,1),filter .28s ease;
}
html.sees-native-ios body.mappage .sj-safe-3d-map-marker__pin::before{
  content:"";position:absolute;inset:2px -4px -4px 2px;border-radius:inherit;
  background:rgba(4,18,40,.28);transform:translateZ(-3px);
  z-index:-1;
}
html.sees-native-ios body.mappage .sj-safe-3d-map-marker__pin::after{
  content:"";position:absolute;left:6px;top:5px;width:12px;height:7px;
  border-radius:50%;background:rgba(255,255,255,.44);
  transform:rotate(45deg);filter:blur(.2px);
}
html.sees-native-ios body.mappage .sj-safe-3d-map-marker__count{
  position:absolute;left:50%;top:40%;font-family:'Quicksand',sans-serif;
  font-size:12px;font-weight:700;line-height:1;color:#fff;text-shadow:0 1px 2px rgba(0,0,0,.35);
  z-index:10 !important;
  transform:translate(-50%,-50%) rotate(45deg) rotateX(-12deg);
  transform-origin:center;white-space:nowrap;
}
html.sees-native-ios body.mappage .sj-safe-3d-map-marker.is-selected .sj-safe-3d-map-marker__pin{
  transform:rotate(-45deg) rotateX(12deg) translate3d(-1px,-5px,5px) scale(1.08);
  filter:brightness(1.08);
}
html.sees-native-ios body.mappage .sj-safe-3d-map-marker.is-selected .sj-safe-3d-map-marker__shadow{
  transform:translateY(4px) scaleX(.9);opacity:.7;
}
html.sees-native-ios body.mappage .evsheet{
  transform:perspective(900px) translate(-50%,-46%) rotateX(8deg) scale(.97);
  transform-origin:center 8%;transform-style:preserve-3d;
}
html.sees-native-ios body.mappage .evsheet.is-open{
  transform:perspective(900px) translate(-50%,-50%) rotateX(0deg) scale(1);
}

/* Native 3D marker count layer: keep the label above any depth treatment without
   changing the marker's geographic anchor or the map's interaction model. */
@media(max-width:620px), (orientation: landscape) and (max-height:620px) and (pointer:coarse){
  html.sees-native-ios body.mappage .sj-3d-map-marker{
    position:relative;
    isolation:isolate;
  }
  html.sees-native-ios body.mappage .sj-3d-map-marker__shadow{
    display:none !important;
    position:absolute;
    z-index:0;
    pointer-events:none;
  }
  html.sees-native-ios body.mappage .sj-3d-map-marker__pin{
    position:relative;
    z-index:1;
    box-shadow:0 8px 12px rgba(6,38,76,.38),0 2px 4px rgba(6,38,76,.22),
      inset 0 1px 0 rgba(255,255,255,.54),inset 0 -2px 3px rgba(0,0,0,.18);
  }
  html.sees-native-ios body.mappage .sj-3d-map-marker__count{
    position:relative;
    z-index:10 !important;
    display:block;
  }
}

/* Safe native pin face: keep one controlled shadow outside the face. The former
   transformed pseudo-layer could paint across the count in dense marker clusters. */
@media(max-width:620px), (orientation: landscape) and (max-height:620px) and (pointer:coarse){
  html.sees-native-ios body.mappage .sj-safe-3d-map-marker__pin::before{
    content:none !important;
    display:none !important;
  }
  html.sees-native-ios body.mappage .sj-safe-3d-map-marker__pin{
    box-shadow:inset 2px 2px 0 rgba(255,255,255,.46),
      0 5px 9px rgba(7,24,48,.22);
  }
  html.sees-native-ios body.mappage .sj-safe-3d-map-marker__count{
    z-index:20 !important;
  }
}

/* Native iPhone map counts: use a compact high-contrast badge so the listing number
   stays readable over glossy pin highlights and the tilted map surface. */
@media(max-width:620px), (orientation: landscape) and (max-height:620px) and (pointer:coarse){
  html.sees-native-ios body.mappage .sj-3d-map-marker__count{
    display:grid;
    place-items:center;
    min-width:22px;
    height:22px;
    padding:0 4px;
    border:1.5px solid rgba(255,255,255,.96);
    border-radius:999px;
    background:rgba(13,33,48,.62);
    box-shadow:0 2px 5px rgba(6,38,76,.34),inset 0 1px 0 rgba(255,255,255,.28);
    color:#fff;
    font:700 15px/1 'Quicksand',sans-serif;
    letter-spacing:0;
    text-shadow:0 1px 2px rgba(0,0,0,.65);
    transform:rotate(45deg) rotateX(-8deg) translateZ(3px);
  }
  html.sees-native-ios body.mappage .sj-safe-3d-map-marker__count{
    display:grid;
    place-items:center;
    min-width:22px;
    height:22px;
    padding:0 4px;
    border:1.5px solid rgba(255,255,255,.96);
    border-radius:999px;
    background:rgba(13,33,48,.62);
    box-shadow:0 2px 5px rgba(6,38,76,.34),inset 0 1px 0 rgba(255,255,255,.28);
    color:#fff;
    font:700 15px/1 'Quicksand',sans-serif;
    letter-spacing:0;
    text-shadow:0 1px 2px rgba(0,0,0,.65);
    transform:translate(-50%,-50%) rotate(45deg) rotateX(-12deg) translateZ(3px);
  }
}

/* Native iPhone map counts: center the badge in the pin face and use the same
   marker color so the number reads as part of the pin, not a separate dot. */
@media(max-width:620px), (orientation: landscape) and (max-height:620px) and (pointer:coarse){
  html.sees-native-ios body.mappage .sj-3d-map-marker__pin{
    position:relative;
  }
  html.sees-native-ios body.mappage .sj-3d-map-marker__count,
  html.sees-native-ios body.mappage .sj-safe-3d-map-marker__count{
    background:transparent;
    border:0;
    box-shadow:none;
    text-shadow:0 1px 2px rgba(0,48,34,.55);
  }
  html.sees-native-ios body.mappage .sj-3d-map-marker__count{
    position:absolute;
    left:50%;
    top:50%;
    transform:translate(-50%,-50%) rotate(45deg) rotateX(-8deg) translateZ(3px);
  }
  html.sees-native-ios body.mappage .sj-safe-3d-map-marker__count{
    left:50%;
    top:50%;
    transform:translate(-50%,-50%) rotate(45deg) rotateX(-12deg) translateZ(3px);
  }
}


/* Mobile map Pin key: place it directly below the Art/Theater toggle. */
@media(max-width:620px), (orientation: landscape) and (max-height:620px) and (pointer:coarse){
  body.mappage .mlg-wrap{
    top:calc(88px + env(safe-area-inset-top));
    right:auto;
    bottom:auto;
    left:50%;
    transform:translateX(-50%);
    align-items:center;
    flex-direction:column;
  }
}


/* Mobile map header controls: share one compact height and Quicksand type scale. */
@media(max-width:620px), (orientation: landscape) and (max-height:620px) and (pointer:coarse){
  body.mappage .cityswitch__btn,
  body.mappage .mapfilter__btn{
    height:36px !important;
    min-height:36px !important;
    padding:0 10px !important;
    display:flex !important;
    align-items:center;
    font:700 13px/1 'Quicksand',sans-serif !important;
    box-sizing:border-box !important;
  }
  body.mappage .mapcat{
    height:36px !important;
    min-height:36px !important;
    padding:3px !important;
    box-sizing:border-box;
  }
  /* Match the City control's lighter one-pixel outline on both map toggles. */
  body.mappage .mapcat,
  body.mappage .mapfilter__btn{
    border:1px solid rgba(255,255,255,.42) !important;
  }
  /* All/Saved has a compact trigger; keep its outline a touch finer than the other pills. */
  /* Keep the All/Saved trigger visibly lighter than the City outline, including when it retains focus. */
  body.mappage .mapfilter__btn{
    border-width:0.5px !important;
    border-color:rgba(255,255,255,.34) !important;
    outline:none !important;
  }
  body.mappage .mapfilter__btn:focus-visible{
    outline:none !important;
  }
  /* Use the same down-chevron glyph as the City toggle. */
  body.mappage .mapfilter__caret{
    width:auto;
    height:auto;
    border:0;
    font-size:14px;
    line-height:.7;
    transform:translateY(-1px);
    transition:transform .15s;
  }
  body.mappage .mapfilter__caret::before{
    content:"⌄";
  }
  body.mappage .mapfilter.is-open .mapfilter__caret{
    transform:translateY(-1px) rotate(180deg);
  }
  /* Mirror All/Saved: the City caret points up while its menu is open. */
  body.mappage .cityswitch__btn[aria-expanded="true"] .cityswitch__caret{
    transform:translateY(-1px) rotate(180deg);
  }
  body.mappage .mapcat{
    box-shadow:0 8px 24px rgba(0,47,102,.19) !important;
  }
  /* The current All/Saved option uses the same selected blue treatment as City options. */
  body.mappage .mapfilter .mapmode.is-on{
    background:#0070c0 !important;
    color:#fff !important;
    border-color:#fff !important;
  }
  /* Match City: tint the trigger while its selection menu is open. */
  body.mappage .mapfilter.is-open .mapfilter__btn{
    background:rgba(255,255,255,.25) !important;
  }
  body.mappage .mapcat__opt{
    height:30px !important;
    min-height:30px !important;
    padding:0 10px !important;
    font:700 13px/1 'Quicksand',sans-serif !important;
  }
}


/* Mobile map City dropdown: match the opening City pill’s height and type scale. */
@media(max-width:620px), (orientation: landscape) and (max-height:620px) and (pointer:coarse){
  body.mappage .cityswitch__menu .cityswitch__opt{
    height:36px !important;
    min-height:36px !important;
    padding:0 10px !important;
    font:700 13px/1 'Quicksand',sans-serif !important;
  }
}


/* Mobile City dropdown: size every option to the longest city label and align labels left. */
@media(max-width:620px), (orientation: landscape) and (max-height:620px) and (pointer:coarse){
  body.mappage .cityswitch__menu{
    width:max-content !important;
    min-width:0 !important;
  }
  body.mappage .cityswitch__menu .cityswitch__opt{
    width:max-content !important;
    min-width:100% !important;
    display:flex !important;
    align-items:center;
    justify-content:flex-start;
    text-align:left;
  }
}


/* Mobile map All/Saved menu: use the same 6px gap as its option pills and right-align labels. */
@media(max-width:620px), (orientation: landscape) and (max-height:620px) and (pointer:coarse){
  body.mappage .mapfilter{
    gap:6px !important;
  }
  body.mappage .mapfilter__menu{
    width:max-content !important;
    min-width:0 !important;
    margin-top:0 !important;
  }
  body.mappage .mapfilter .mapmode{
    width:max-content !important;
    min-width:100% !important;
    height:36px !important;
    min-height:36px !important;
    padding:0 10px !important;
    display:flex !important;
    align-items:center;
    justify-content:flex-end;
    text-align:right;
    font:700 13px/1 'Quicksand',sans-serif !important;
  }
}

/* Non-map Art/Theater controls use 75% of the city-toggle type scale. */
@media(min-width:621px){
  body:not(.mappage){--city-toggle-font-size:15.5px}
  body:not(.mappage) .catswitch__opt{
    font-size:calc(var(--city-toggle-font-size) * .75) !important;
  }
}
@media(max-width:620px), (orientation: landscape) and (max-height:620px) and (pointer:coarse){
  body.home,
  body.opennow{--city-toggle-font-size:clamp(19px,6vw,23px)}
  body.contact{--city-toggle-font-size:14px}
  body:is(.home,.eventpage) .catswitch__opt,
  body.opennow .catswitch__opt,
  body.contact .catswitch__opt{
    font-size:calc(var(--city-toggle-font-size) * .75) !important;
  }
}

/* Keep single-tile action circles at 50% glass without letting the
   backdrop-filter sample the neighboring card at the horizontal seam. */
@media(max-width:620px), (orientation: landscape) and (max-height:620px) and (pointer:coarse){
  body.home .home-slide-tilt .hbtn,
  body.home .home-slide-tilt .mapbtn,
  body.home .home-slide-tilt .tshare,
  body.home .home-slide-tilt .jbtn{
    background:rgba(255,255,255,.5) !important;
    -webkit-tap-highlight-color:transparent;
    -webkit-backdrop-filter:none !important;
    backdrop-filter:none !important;
    transform:translateZ(0);
    backface-visibility:hidden;
    isolation:isolate;
    contain:paint;
  }
}

/* Liquid blue canvas: live SeesJournal palette with restrained motion. */
:root{
  --sj-azure-top:#087fca;
  --sj-azure-mid:#0877c0;
  --sj-azure-deep:#056caf;
  --sj-blue:#0070c0;
  --sj-blue-dark:#005a9a;
  --sj-blue-shadow:#03426f;
  --sj-glass:#d9ebf8;
  /* Background-layer star: lives with the liquid canvas instead of inside a stats stacking context. */
  --sj-stats-star-x:68%;
  --sj-stats-star-y:clamp(80px,calc(34vh - 200px),140px);
  --sj-stats-star-bg:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 100'%3E%3Cdefs%3E%3CradialGradient id='r' cx='34%25' cy='28%25' r='70%25'%3E%3Cstop offset='0%25' stop-color='%23d9ebf8' stop-opacity='.20'/%3E%3Cstop offset='34%25' stop-color='%2374c1ee' stop-opacity='.08'/%3E%3Cstop offset='100%25' stop-color='%2303426f' stop-opacity='0'/%3E%3C/radialGradient%3E%3ClinearGradient id='g' x1='0' y1='0' x2='1' y2='1'%3E%3Cstop offset='0%25' stop-color='%230070c0' stop-opacity='.18'/%3E%3Cstop offset='62%25' stop-color='%2303426f' stop-opacity='.14'/%3E%3Cstop offset='100%25' stop-color='%23005a9a' stop-opacity='.04'/%3E%3C/linearGradient%3E%3C/defs%3E%3Cpath d='M50 2L62 38L98 50L62 62L50 98L38 62L2 50L38 38Z' fill='url(%23r)'/%3E%3Cpath d='M50 2L62 38L98 50L62 62L50 98L38 62L2 50L38 38Z' fill='url(%23g)' opacity='.72'/%3E%3C/svg%3E");
}
@keyframes sj-liquid-drift{
  0%,100%{transform:translate3d(-8%,-5%,0) rotate(-8deg) scale(1.02)}
  50%{transform:translate3d(9%,7%,0) rotate(8deg) scale(1.12)}
}
@keyframes sj-liquid-star{
  0%,100%{transform:translate3d(10%,-8%,0) rotate(-8deg) scale(.92);opacity:.48}
  50%{transform:translate3d(-8%,10%,0) rotate(10deg) scale(1.06);opacity:.72}
}
@keyframes sj-liquid-shimmer{
  0%,100%{background-position:var(--sj-stats-star-x) var(--sj-stats-star-y),50% 0%,0% 0%}
  25%{background-position:calc(var(--sj-stats-star-x) - 10px) calc(var(--sj-stats-star-y) - 5px),58% 10%,50% 16%}
  50%{background-position:calc(var(--sj-stats-star-x) + 14px) calc(var(--sj-stats-star-y) + 9px),66% 20%,100% 35%}
  75%{background-position:calc(var(--sj-stats-star-x) - 7px) calc(var(--sj-stats-star-y) + 4px),58% 12%,50% 55%}
}
body.home,
body.opennow,
body.planpage,
body.contact,
body.journalpage,
body.savedpage,
body.listpage,
body.nbpage,
body.atlas-page,
body.calendar-page,
body.legal{
  position:relative;
  isolation:isolate;
  background-color:var(--sj-azure-deep) !important;
  background-image:
    linear-gradient(135deg,var(--sj-azure-top) 0%,var(--sj-azure-mid) 46%,var(--sj-azure-deep) 100%) !important;
  background-position:0% 0%;
  background-repeat:no-repeat;
  background-size:cover;
  color:#fff;
}
body:is(.home,.mobile-event-header)::before,
body.opennow::before,
body.planpage::before,
body.contact::before,
body.journalpage::before,
body.savedpage::before,
body.listpage::before,
body.nbpage::before,
body.atlas-page::before,
body.calendar-page::before,
body.legal::before{
  content:"";
  position:fixed;
  inset:-32%;
  z-index:-1;
  pointer-events:none;
  background:
    radial-gradient(42% 34% at 18% 10%,rgba(217,235,248,.22),transparent 69%),
    radial-gradient(40% 38% at 88% 26%,rgba(0,90,154,.34),transparent 72%),
    radial-gradient(48% 38% at 48% 86%,rgba(3,66,111,.28),transparent 70%);
  filter:blur(24px);
  opacity:.78;
  animation:sj-liquid-drift 34s ease-in-out infinite alternate;
  will-change:transform;
}
body:is(.home,.mobile-event-header)::after,
body.opennow::after,
body.planpage::after,
body.contact::after,
body.journalpage::after,
body.savedpage::after,
body.listpage::after,
body.nbpage::after,
body.atlas-page::after,
body.calendar-page::after,
body.legal::after{
  content:"";
  position:fixed;
  left:-14vmax;
  top:18vh;
  width:54vmax;
  height:54vmax;
  z-index:-1;
  pointer-events:none;
  clip-path:polygon(50% 0%,62% 37%,100% 50%,62% 63%,50% 100%,38% 63%,0% 50%,38% 37%);
  background:
    radial-gradient(circle at 34% 28%,rgba(217,235,248,.34),transparent 34%),
    linear-gradient(135deg,rgba(0,112,192,.28),rgba(3,66,111,.22) 62%,rgba(0,90,154,.08));
  filter:blur(10px);
  opacity:.62;
  animation:sj-liquid-star 42s ease-in-out infinite alternate;
  will-change:transform,opacity;
}
@media(max-width:620px), (orientation: landscape) and (max-height:620px) and (pointer:coarse){
  body.home,
  body.opennow,
  body.planpage,
  body.contact,
  body.journalpage,
  body.savedpage,
  body.listpage,
  body.nbpage,
  body.atlas-page,
  body.calendar-page,
  body.legal{
    --sj-stats-star-x:74%;
    --sj-stats-star-y:84px;
    background-size:cover;
  }
}

@media (prefers-reduced-motion:reduce){
  body.home,
  body.opennow,
  body.planpage,
  body.contact,
  body.journalpage,
  body.savedpage,
  body.listpage,
  body.nbpage,
  body.atlas-page,
  body.calendar-page,
  body.legal,
  body:is(.home,.mobile-event-header)::before,
  body.opennow::before,
  body.planpage::before,
  body.contact::before,
  body.journalpage::before,
  body.savedpage::before,
  body.listpage::before,
  body.nbpage::before,
  body.atlas-page::before,
  body.calendar-page::before,
  body.legal::before,
  body:is(.home,.mobile-event-header)::after,
  body.opennow::after,
  body.planpage::after,
  body.contact::after,
  body.journalpage::after,
  body.savedpage::after,
  body.listpage::after,
  body.nbpage::after,
  body.atlas-page::after,
  body.calendar-page::after,
  body.legal::after{
    animation:none !important;
  }
}



/* Masthead stats: use the city toggle's readable depth and a small Journal-gold
   sparkle so the live count feels like part of the same masthead language. */
@keyframes sj-stats-sparkle{
  0%,100%{background-size:13px 13px}
  50%{background-size:16px 16px}
}
body.home .homestats,
body.opennow .homestats{
  padding-left:18px;
  background-image:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%3E%3Cpath%20d%3D%22M12%202.5L14.1%209.9L21.5%2012L14.1%2014.1L12%2021.5L9.9%2014.1L2.5%2012L9.9%209.9Z%22%20fill%3D%22%23d5a11e%22%2F%3E%3C%2Fsvg%3E");
  background-position:left center;
  background-repeat:no-repeat;
  background-size:13px 13px;
  text-shadow:0 1px 3px rgba(7,42,80,.65),0 3px 12px rgba(7,42,80,.5);
  animation:sj-stats-sparkle 3.6s ease-in-out infinite;
}
@media(prefers-reduced-motion:reduce){
  body.home .homestats,
  body.opennow .homestats{animation:none !important}
}


/* The four-point glass star is now a background layer on the liquid canvas so it
   cannot be hidden by stats stacking, clipping, or responsive masthead moves. */

/* A compact floating four-point star lives INSIDE the logo tile, blended into
   the blue background behind the white wordmark. The white lettering remains crisp
   because the star is a low-opacity screen layer above the artwork. */
.logo{isolation:isolate}
.logo::before{
  content:"";
  position:absolute;
  left:14%;
  top:14%;
  width:72%;
  height:72%;
  z-index:2;
  pointer-events:none;
  clip-path:polygon(50% 0%,62% 37%,100% 50%,62% 63%,50% 100%,38% 63%,0% 50%,38% 37%);
  background:
    radial-gradient(circle at 34% 28%,rgba(217,235,248,.38),transparent 36%),
    linear-gradient(135deg,rgba(0,112,192,.34),rgba(3,66,111,.26) 62%,rgba(0,90,154,.12));
  filter:blur(4px) drop-shadow(0 3px 7px rgba(3,66,111,.32));
  opacity:.48;
  mix-blend-mode:screen;
  animation:sj-liquid-star 24s ease-in-out infinite alternate;
  will-change:transform,opacity;
}
.logo img{position:relative;z-index:1}
@media(prefers-reduced-motion:reduce){.logo::before{animation:none}}

/* Lift the Artist of the Day card above the blue canvas so it reads as a featured moment. */
body.home .bday-card{position:relative;z-index:1;border-radius:18px;transform:translateY(-4px);
  box-shadow:0 20px 42px rgba(7,42,80,.28),0 5px 12px rgba(7,42,80,.18);
  transition:transform .2s ease,box-shadow .2s ease}
body.home .bday-card:hover{transform:translateY(-7px);
  box-shadow:0 26px 50px rgba(7,42,80,.34),0 7px 16px rgba(7,42,80,.2)}

/* In every two-column tile row, let the hours line use spare height and stay anchored
   to the bottom of its tile. Weekly one-up rails are intentionally excluded.
   Match the mobile landscape range used by See more: its revealed cards use flex
   and must retain the same vertical stack even when the phone is wider than 900px. */
@media(max-width:900px), (orientation:landscape) and (max-height:620px) and (pointer:coarse){
  body.home .sec--seemore .grid > .card.card--mini:not([hidden]),
  body.opennow .on-area .grid > .card.card--mini:not([hidden]),
  body.opennow .on-theater .grid > .card.card--mini:not([hidden]),
  body.planpage .plan-section .grid > .card.card--mini:not([hidden]),
  body.nbpage .nb-grid > .card.card--mini:not([hidden]){display:flex;flex-direction:column;align-items:stretch;min-width:0}
  body.home .sec--seemore .grid > .card.card--mini:not([hidden]) .mini__media,
  body.opennow .on-area .grid > .card.card--mini:not([hidden]) .mini__media,
  body.opennow .on-theater .grid > .card.card--mini:not([hidden]) .mini__media,
  body.planpage .plan-section .grid > .card.card--mini:not([hidden]) .mini__media,
  body.nbpage .nb-grid > .card.card--mini:not([hidden]) .mini__media{flex:0 0 auto}
  body.home .sec--seemore .grid > .card.card--mini:not([hidden]) .mini__txt,
  body.opennow .on-area .grid > .card.card--mini:not([hidden]) .mini__txt,
  body.opennow .on-theater .grid > .card.card--mini:not([hidden]) .mini__txt,
  body.planpage .plan-section .grid > .card.card--mini:not([hidden]) .mini__txt,
  body.nbpage .nb-grid > .card.card--mini:not([hidden]) .mini__txt{display:flex;flex:1 1 auto;flex-direction:column;min-height:0}
  body.home .sec--seemore .grid > .card.card--mini:not([hidden]) .mini__txt .card__hours,
  body.opennow .on-area .grid > .card.card--mini:not([hidden]) .mini__txt .card__hours,
  body.opennow .on-theater .grid > .card.card--mini:not([hidden]) .mini__txt .card__hours,
  body.planpage .plan-section .grid > .card.card--mini:not([hidden]) .mini__txt .card__hours,
  body.nbpage .nb-grid > .card.card--mini:not([hidden]) .mini__txt .card__hours{margin-top:auto;padding-top:6px}
}
@media(prefers-reduced-motion:reduce){
  body.home .bday-card,body.home .bday-card:hover{transform:none;transition:none}
}


/* The installed iOS app injects older category-toggle styles after page load.
   Keep the eligible Art/Theater controls on app routes at the same compact height. */
@media(max-width:620px), (orientation: landscape) and (max-height:620px) and (pointer:coarse){
  html.sees-native-ios body:is(.home,.eventpage) .catswitch__opt,
  html.sees-native-ios body.opennow .catswitch__opt,
  html.sees-native-ios body.planpage .catswitch__opt,
  html.sees-native-ios body.thanks .catswitch__opt,
  html.sees-native-ios body.journalpage .journal-category-toggle .catswitch__opt{
    padding-top:3px!important;
    padding-bottom:4px!important;
  }
}


/* Match the app Journal's Art/Theater control to See Now exactly. */
@media(max-width:620px), (orientation: landscape) and (max-height:620px) and (pointer:coarse){
  html.sees-native-ios body.journalpage{
    --city-toggle-font-size:clamp(19px,6vw,23px);
  }
  html.sees-native-ios body.journalpage .journal-category-toggle{
    padding:2px!important;
  }
  html.sees-native-ios body.journalpage .journal-category-toggle .catswitch__opt{
    font-size:calc(var(--city-toggle-font-size) * .75)!important;
  }
}


/* ---------- DIRECT MIRROR OF THE IOS APP MOBILE LAYOUT ----------
   Kept in the same cascade order and selector specificity as BrowserView.swift's runtime style injection.
   Edit the native rule block first, then mirror it here for browser mobile parity. */
@media(max-width:620px), (orientation: landscape) and (max-height:620px) and (pointer:coarse){

            html:root,
            html:root body {
              min-height: 100dvh;
            }
            html:root .a2hs {
              display: none !important;
            }
            html:root body.mappage,
            html:root body.mappage main {
              min-height: 100dvh;
            }
            html:root body.mappage #homemap,
            html:root body.mappage #theatermap,html:root body.mappage #dragmap {
              position: fixed !important;
              inset: 0 !important;
              width: 100vw !important;
              height: 100dvh !important;
              margin: 0 !important;
            }
            html:root body.mappage #comedymap{
              position: fixed !important;
              inset: 0 !important;
              width: 100vw !important;
              height: 100dvh !important;
              margin: 0 !important;
            }
            html:root body.mappage::after {
              content: "";
              position: fixed;
              right: 0;
              bottom: 0;
              left: 0;
              z-index: 2;
              height: 140px;
              pointer-events: none;
              background: linear-gradient(
                to bottom,
                rgba(0, 112, 192, 0) 0%,
                rgba(0, 112, 192, 0.42) 42%,
                rgba(5, 79, 137, 0.96) 100%
              );
            }
            html:root .bottomnav {
              transform: translateX(-50%) scale(var(--sees-mobile-nav-scroll-scale));
              transform-origin: center bottom;
            }
            html:root body:not(.mappage) {
              padding-bottom: calc(112px + env(safe-area-inset-bottom)) !important;
            }
            html:root body.home .totop {
              right: 14px;
              bottom: calc(84px + env(safe-area-inset-bottom));
              width: 42px;
              height: 42px;
              font-size: 20px;
              background: #0070c0;
              box-shadow: 0 6px 18px rgba(7, 42, 80, 0.38);
            }
            

              html:root body.contact .cityswitch,
              html:root body.contact .mastright {
                display: none !important;
              }
              html:root body.contact .site-header {
                margin-bottom: calc(64px + env(safe-area-inset-top)) !important;
              }
              html:root body.legal .site-header {
                margin-bottom: calc(62px + env(safe-area-inset-top)) !important;
              }
              html:root body.legal .page-hero {
                padding: 0 14px 4px;
              }
              html:root body.legal .page-hero h1 {
                font-size: clamp(25px, 7.2vw, 30px);
                line-height: 1.08;
              }
              html:root body.legal .prose {
                margin-top: 14px;
                padding: 18px 17px;
                font-size: 14.5px;
                line-height: 1.52;
              }
              html:root body.legal .prose h2 {
                margin-top: 22px;
                font-size: 19px;
                line-height: 1.2;
              }
              html:root body:is(.home,.eventpage) .cityswitch,
              html:root body:is(.home,.eventpage) .cityswitch--floating {
                align-items: start;
              }
              html:root body:is(.home,.eventpage) .sees-native-city-column,
              html:root body.opennow .sees-native-city-column {
                display: flex;
                min-width: 0;
                grid-column: 1;
                flex-direction: column;
                align-items: flex-start;
              }
              html:root body:is(.home,.eventpage) .sees-native-city-column .cityswitch__btn,
              html:root body.opennow .sees-native-city-column .cityswitch__btn {
                width: 100%;
              }
              html:root body:is(.home,.eventpage) .sees-native-city-column .home-updated,
              html:root body.opennow .sees-native-city-column .guide-updated {
                display: block;
                position: static !important;
                align-self: start;
                width: auto;
                top: auto;
                right: auto;
                left: auto;
                margin: -2px 0 0 30px;
                color: rgba(255, 255, 255, 0.82);
                font: 500 10px/1.2 "Quicksand", sans-serif;
                letter-spacing: 0;
                white-space: nowrap;
              }
              html:root body:is(.home,.eventpage) .cityswitch .homestats {
                grid-column: 2;
                align-self: center;
              }
              html:root body.home.cityswitch-ready.has-guide-switch:not(.legal) .site-header {
                margin-bottom: calc(115px + env(safe-area-inset-top));
              }
              html:root body:is(.home,.eventpage) .catswitch.is-ready {
                top: calc(178px + env(safe-area-inset-top));
                transform: none;
              }
              html:root body:is(.home,.eventpage) .catswitch__opt,
              html:root body.opennow .catswitch__opt {
                padding-top: 3px;
                padding-bottom: 4px;
                font-size: 13.3px;
              }
              html:root body.opennow.cityswitch-ready.has-guide-switch:not(.legal) .site-header {
                margin-bottom: calc(200px + env(safe-area-inset-top));
              }
              html:root body.nbpage.cityswitch-ready .site-header {
                margin-bottom: calc(112px + env(safe-area-inset-top));
              }
              html:root body.nbpage.cityswitch-ready .on-wrap {
                padding-top: 10px !important;
              }
              html:root body.nbpage.cityswitch-ready .nb-rail-sec {
                margin-top: 0 !important;
              }
              html:root body.nbpage .on-titlerow {
                gap: 8px;
              }
              html:root body.nbpage .on-titlerow .lp-title {
                min-width: 0;
                font-size: clamp(17px, 5vw, 20px);
                line-height: 1.12;
                letter-spacing: -0.015em;
              }
              html:root body.nbpage .on-near {
                padding: 7px 11px;
                font-size: 11.5px;
              }
              html:root body.opennow:not(.nbpage):not(.planpage) .on-near,
              html:root body.planpage .plan-near {
                padding: 7px 11px;
                font-size: 11.5px;
              }
              html:root body.opennow .catswitch.is-ready {
                top: calc(178px + env(safe-area-inset-top));
              }
              html:root body.opennow .cityswitch__btn {
                font-size: clamp(19px, 6vw, 23px);
              }
              html:root body.mappage .cityswitch__btn {
                min-width: 154px;
                min-height: 34px;
                padding: 8px 13px;
                font-size: 14.5px;
              }
              html:root body.mappage .cityswitch__menu {
                min-width: 154px;
              }
              html:root body.mappage .mapcat {
                top: calc(46px + env(safe-area-inset-top));
                border: 1px solid rgba(255, 255, 255, 0.48);
                background: linear-gradient(
                  135deg,
                  rgba(255, 255, 255, 0.28),
                  rgba(255, 255, 255, 0.12)
                );
                box-shadow:
                  0 8px 24px rgba(0, 47, 102, 0.19),
                  inset 0 1px 0 rgba(255, 255, 255, 0.4);
                backdrop-filter: blur(18px) saturate(1.45);
                -webkit-backdrop-filter: blur(18px) saturate(1.45);
              }
              html:root body.mappage .mapcat__opt {
                color: rgba(255, 255, 255, 0.9);
                background: rgba(255, 255, 255, 0.16);
              }
              html:root body.mappage .mapcat__opt.is-on {
                color: #fff;
                background: #0070c0;
              }
            
}


/* Theater and Drag large cards keep the two mobile actions together:
   Share upper-right directly left of Save. Small tiles retain their lower-left share. */
@media(max-width:620px), (orientation: landscape) and (max-height:620px) and (pointer:coarse){
  body.planpage .plan-section--theater .grid > .card .mapbtn{display:none!important}
  body.planpage .plan-section--theater .grid > .card .card__panel > .tshare,
body.planpage .plan-section--theater .grid > .card .cover__slide > .tshare{
    left:auto!important;right:52px!important;top:8px!important;bottom:auto!important;
  }
}


/* ---------- DIRECT MIRROR OF ALL IOS-ONLY MOBILE MAP RULES ----------
   These rules keep the browser map's controls, depth layers, pins, and event sheet
   in the same final cascade as the installed iOS WebView. */
@media(max-width:620px), (orientation: landscape) and (max-height:620px) and (pointer:coarse){
html:root body.mappage .sj-3d-map-marker {
    display:block !important;
    width:44px !important;
    height:56px !important;
    margin:0 !important;
    background:transparent !important;
    border:0 !important;
    pointer-events:auto !important;
  }
html:root body.mappage .sj-3d-map-marker__pin {
    display:grid;
    place-items:center;
    width:34px;
    height:34px;
    margin:6px auto 0;
    border:2px solid rgba(255,255,255,.96);
    border-radius:50% 50% 50% 5px;
    background:linear-gradient(135deg,rgba(255,255,255,.42),rgba(255,255,255,0) 38%),var(--sj-map-marker-color,#0070c0);
    box-shadow:0 14px 20px rgba(6,38,76,.5),0 4px 7px rgba(6,38,76,.3),inset 0 1px 0 rgba(255,255,255,.54),inset 0 -2px 3px rgba(0,0,0,.18);
    color:#fff;
    transform:rotate(-45deg) translate3d(0,-1px,0);
    transform-origin:center;
    transition:transform .2s ease,box-shadow .2s ease;
  }
html:root body.mappage .sj-3d-map-marker__count {
    font:700 12px/1 'Quicksand',sans-serif;
    text-shadow:0 1px 2px rgba(0,0,0,.28);
    transform:rotate(45deg);
  }
html:root body.mappage .sj-3d-map-marker:hover .sj-3d-map-marker__pin,
  html:root body.mappage .sj-3d-map-marker:focus-visible .sj-3d-map-marker__pin {
    box-shadow:0 18px 23px rgba(6,38,76,.54),0 5px 8px rgba(6,38,76,.32),inset 0 1px 0 rgba(255,255,255,.58),inset 0 -2px 3px rgba(0,0,0,.18);
    transform:rotate(-45deg) translate3d(0,-5px,0) scale(1.05);
  }
html:root body.mappage .sj-map-depth-host {
    isolation:isolate;
    background:#075f9f;
  }
html:root body.mappage .sj-map-depth-host::before {
    content:"";
    position:absolute;
    inset:0;
    z-index:410;
    pointer-events:none;
    opacity:.68;
    background:
      radial-gradient(ellipse at calc(50% + var(--sj-map-parallax-x,0px)) calc(34% + var(--sj-map-parallax-y,0px)), rgba(255,255,255,.20), transparent 38%),
      linear-gradient(135deg,rgba(3,43,84,.16),transparent 34%,rgba(2,39,77,.30));
    transform:scale(var(--sj-map-depth-scale,1));
    transform-origin:center center;
    transition:background-position .22s ease,transform .22s ease;
  }
html:root body.mappage .sj-map-depth-host::after {
    content:"";
    position:absolute;
    inset:0;
    z-index:411;
    pointer-events:none;
    box-shadow:inset 0 0 70px rgba(2,35,70,.28),inset 0 -18vh 18vh rgba(2,38,76,.18);
  }
html:root body.mappage .sj-map-depth-horizon {
    position:fixed;
    top:calc(52px + env(safe-area-inset-top));
    left:0;
    right:0;
    height:84px;
    z-index:1110;
    pointer-events:none;
    overflow:hidden;
    opacity:.82;
    transform:translate3d(var(--sj-map-parallax-x,0px),var(--sj-map-parallax-y,0px),0);
    transition:transform .22s ease;
  }
html:root body.mappage .sj-map-depth-horizon::before {
    content:attr(data-city);
    position:absolute;
    left:20px;
    top:3px;
    color:rgba(255,255,255,.18);
    font:700 clamp(28px,9vw,48px)/1 'Quicksand',sans-serif;
    letter-spacing:.12em;
    text-transform:uppercase;
    white-space:nowrap;
    text-shadow:0 5px 18px rgba(3,42,82,.32);
  }
html:root body.mappage .sj-map-depth-horizon::after {
    content:"";
    position:absolute;
    left:12%;
    right:12%;
    bottom:-44px;
    height:80px;
    border-top:1px solid rgba(255,255,255,.26);
    border-radius:50%;
    transform:perspective(160px) rotateX(48deg);
    transform-origin:center top;
    box-shadow:0 -8px 28px rgba(0,34,72,.22);
  }
html:root body.mappage .sj-3d-map-marker__pin {
    display:grid;
    place-items:center;
    width:34px;
    height:34px;
    margin:6px auto 0;
    border:2px solid rgba(255,255,255,.96);
    border-radius:50% 50% 50% 5px;
    background:linear-gradient(135deg,rgba(255,255,255,.42),rgba(255,255,255,0) 38%),var(--sj-map-marker-color,#0070c0);
    box-shadow:0 14px 20px rgba(6,38,76,.5),0 4px 7px rgba(6,38,76,.3),inset 0 1px 0 rgba(255,255,255,.54),inset 0 -2px 3px rgba(0,0,0,.18);
    color:#fff;
    transform:rotate(-45deg) translate3d(0,-1px,0) rotateX(8deg) translateZ(0);
    transform-origin:center;
    backface-visibility:hidden;
    transition:transform .28s cubic-bezier(.2,.8,.2,1),box-shadow .28s ease;
  }
html:root body.mappage .sj-3d-map-marker__shadow {
    position:absolute;
    left:50%;
    top:39px;
    width:25px;
    height:9px;
    border-radius:50%;
    background:rgba(2,27,57,.42);
    filter:blur(4px);
    transform:translate3d(-50%,0,0) scaleX(1.08);
    transition:transform .28s cubic-bezier(.2,.8,.2,1),opacity .28s ease;
  }
html:root body.mappage .sj-3d-map-marker__count {
    font:700 12px/1 'Quicksand',sans-serif;
    text-shadow:0 1px 2px rgba(0,0,0,.28);
    transform:rotate(45deg);
  }
html:root body.mappage .sj-3d-map-marker:hover .sj-3d-map-marker__pin,
  html:root body.mappage .sj-3d-map-marker:focus-visible .sj-3d-map-marker__pin,
  html:root body.mappage .sj-3d-map-marker__pin.is-lifted {
    box-shadow:0 18px 23px rgba(6,38,76,.54),0 5px 8px rgba(6,38,76,.32),inset 0 1px 0 rgba(255,255,255,.58),inset 0 -2px 3px rgba(0,0,0,.18);
    transform:rotate(-45deg) translate3d(0,-5px,0) rotateX(8deg) translateZ(0) scale(1.05);
  }
html:root body.mappage .sj-3d-map-marker__pin.is-lifted .sj-3d-map-marker__count {transform:rotate(45deg)}
html:root body.mappage .sj-3d-map-marker:has(.sj-3d-map-marker__pin.is-lifted) .sj-3d-map-marker__shadow {
    opacity:.22;
    transform:translate3d(-50%,4px,0) scaleX(.82);
  }
@media (prefers-reduced-motion:reduce){
html:root body.mappage .sj-map-depth-horizon,
  html:root body.mappage .sj-map-depth-host::before,
  html:root body.mappage .sj-3d-map-marker__pin,
  html:root body.mappage .sj-3d-map-marker__shadow,
  html:root body.mappage .evsheet {
    transition:none !important;
  }
}
html:root body.mappage .sj-maplibre-layer {
    position:absolute;
    inset:0;
    /* Keep the vector surface and its DOM markers in one stacking layer above
       the depth wash; controls remain in Leaflet's higher panes. */
    z-index:420;
    overflow:hidden;
    pointer-events:none;
    background:transparent;
  }
html:root body.mappage .sj-maplibre-layer .maplibregl-canvas-container,
  html:root body.mappage .sj-maplibre-layer .maplibregl-canvas {
    position:absolute;
    inset:0;
    width:100% !important;
    height:100% !important;
    pointer-events:none !important;
  }
html:root body.mappage.sj-maplibre-ready .sj-maplibre-layer .maplibregl-canvas {
    filter:grayscale(1) contrast(1.08) brightness(1.08);
  }
html:root body.mappage .sj-maplibre-layer .maplibregl-marker {
    position:absolute !important;
    top:0 !important;
    left:0 !important;
    z-index:3 !important;
    display:block !important;
    pointer-events:auto !important;
  }
html:root body.mappage.sj-maplibre-ready .leaflet-container {
    background:transparent !important;
  }
html:root body.mappage.sj-maplibre-ready .leaflet-tile-pane {
    opacity:0 !important;
    visibility:hidden !important;
  }
html:root body.mappage.sj-maplibre-ready .leaflet-marker-pane {
    visibility:hidden !important;
  }
html:root body.mappage .sj-maplibre-layer .maplibregl-marker {
    pointer-events:auto !important;
  }
html:root body.mappage.sj-maplibre-ready .sj-map-depth-host::before {
    opacity:.12;
  }
html:root body.mappage .cityswitch,
  html:root body.mappage .mapcat,
  html:root body.mappage .mapfilter {
    top:calc(12px + env(safe-area-inset-top)) !important;
  }
html:root body.mappage .cityswitch__btn {
    width:max-content !important;
    min-width:0 !important;
    max-width:calc(100vw - 226px) !important;
    box-sizing:border-box;
    min-height:36px !important;
    height:36px !important;
    padding:0 10px !important;
    gap:5px !important;
    font-size:13px !important;
  }
html:root body.mappage .cityswitch__label {
    min-width:0;
    overflow:hidden;
    text-overflow:ellipsis;
    white-space:nowrap;
  }
html:root body.mappage .mapcat {
    right:auto !important;
    left:50% !important;
    transform:translateX(-50%) !important;
    z-index:1141 !important;
    box-sizing:border-box;
    height:36px !important;
    padding:3px !important;
  }
html:root body.mappage .mapcat__opt {
    display:inline-flex;
    align-items:center;
    justify-content:center;
    min-height:28px;
    padding:0 10px !important;
    font-size:13px !important;
  }
html:root body.mappage .mapfilter__btn {
    box-sizing:border-box;
    width:max-content;
    min-width:0;
    height:36px;
    padding:0 10px;
    gap:5px;
    justify-content:space-between;
    font-size:13px;
  }
html:root body.mappage .sj-map-depth-marker {
  filter:drop-shadow(0 2px 1px rgba(16,24,40,.28))
         drop-shadow(0 6px 8px rgba(16,24,40,.24));
  transition:filter .22s ease,opacity .22s ease;
  vector-effect:non-scaling-stroke;
}
html:root body.mappage .sj-map-depth-marker:hover,
html:root body.mappage .sj-map-depth-marker:focus {
  filter:drop-shadow(0 3px 1px rgba(16,24,40,.32))
         drop-shadow(0 8px 10px rgba(16,24,40,.28));
}
html:root body.mappage .mapfilter__btn,
html:root body.mappage .mapfilter .mapmode,
html:root body.mappage .mlg-toggle,
html:root body.mappage .leaflet-control-zoom a,
html:root body.mappage .loc-ctrl a {
  box-shadow:0 8px 18px rgba(16,24,40,.24),
             inset 0 1px 0 rgba(255,255,255,.42);
}
html:root body.mappage .evsheet {
  will-change:opacity,transform;
  transition:opacity .24s ease,
             transform .34s cubic-bezier(.22,.8,.24,1);
}
html:root body.mappage .evsheet.is-open {
  box-shadow:0 30px 78px -18px rgba(0,0,0,.62);
}
html:root body.mappage .sj-safe-3d-map-marker {
  width:44px;height:54px;border:0;background:transparent;pointer-events:auto;
  isolation:isolate;
}
html:root body.mappage .sj-map-depth-marker,
html:root body.mappage .sj-3d-map-marker__shadow {
  display:none !important;
}
html:root body.mappage .sj-safe-3d-map-marker__shadow {
  position:absolute;left:8px;bottom:4px;width:28px;height:8px;border-radius:50%;
  background:rgba(15,23,42,.34);filter:blur(3px);
  transform:scaleX(1.12);transform-origin:center;
  z-index:0;pointer-events:none;
}
html:root body.mappage .sj-safe-3d-map-marker__pin {
  position:absolute;left:7px;top:3px;width:30px;height:30px;
  border:2px solid rgba(255,255,255,.96);
  border-radius:50% 50% 50% 0;
  background:linear-gradient(145deg,
    rgba(255,255,255,.44),
    var(--sj-map-marker-color,#0070c0) 58%,
    rgba(6,21,44,.78));
  box-shadow:inset 2px 2px 0 rgba(255,255,255,.46),
             3px 5px 0 rgba(7,24,48,.28),
             0 7px 12px rgba(7,24,48,.24);
  transform:rotate(-45deg) rotateX(12deg);
  transform-origin:50% 50%;
  z-index:1;
  transform-style:preserve-3d;
  transition:transform .28s cubic-bezier(.22,.8,.24,1),filter .28s ease;
}
html:root body.mappage .sj-safe-3d-map-marker__pin::before {
  content:"";position:absolute;inset:2px -4px -4px 2px;border-radius:inherit;
  background:rgba(4,18,40,.28);transform:translateZ(-3px);
  z-index:-1;
}
html:root body.mappage .sj-safe-3d-map-marker__pin::after {
  content:"";position:absolute;left:6px;top:5px;width:12px;height:7px;
  border-radius:50%;background:rgba(255,255,255,.44);
  transform:rotate(45deg);filter:blur(.2px);
}
html:root body.mappage .sj-safe-3d-map-marker__count {
  position:absolute;left:50%;top:40%;font-family:'Quicksand',sans-serif;
  font-size:12px;font-weight:700;line-height:1;color:#fff;text-shadow:0 1px 2px rgba(0,0,0,.35);
  z-index:10 !important;
  transform:translate(-50%,-50%) rotate(45deg) rotateX(-12deg);
  transform-origin:center;white-space:nowrap;
}
html:root body.mappage .sj-safe-3d-map-marker.is-selected .sj-safe-3d-map-marker__pin {
  transform:rotate(-45deg) rotateX(12deg) translate3d(-1px,-5px,5px) scale(1.08);
  filter:brightness(1.08);
}
html:root body.mappage .sj-safe-3d-map-marker.is-selected .sj-safe-3d-map-marker__shadow {
  transform:translateY(4px) scaleX(.9);opacity:.7;
}
html:root body.mappage .evsheet {
  transform:perspective(900px) translate(-50%,-46%) rotateX(8deg) scale(.97);
  transform-origin:center 8%;transform-style:preserve-3d;
}
html:root body.mappage .evsheet.is-open {
  transform:perspective(900px) translate(-50%,-50%) rotateX(0deg) scale(1);
}
html:root body.mappage .sj-3d-map-marker {
    position:relative;
    isolation:isolate;
  }
html:root body.mappage .sj-3d-map-marker__shadow {
    display:none !important;
    position:absolute;
    z-index:0;
    pointer-events:none;
  }
html:root body.mappage .sj-3d-map-marker__pin {
    position:relative;
    z-index:1;
    box-shadow:0 8px 12px rgba(6,38,76,.38),0 2px 4px rgba(6,38,76,.22),
      inset 0 1px 0 rgba(255,255,255,.54),inset 0 -2px 3px rgba(0,0,0,.18);
  }
html:root body.mappage .sj-3d-map-marker__count {
    position:relative;
    z-index:10 !important;
    display:block;
  }
html:root body.mappage .sj-safe-3d-map-marker__pin::before {
    content:none !important;
    display:none !important;
  }
html:root body.mappage .sj-safe-3d-map-marker__pin {
    box-shadow:inset 2px 2px 0 rgba(255,255,255,.46),
      0 5px 9px rgba(7,24,48,.22);
  }
html:root body.mappage .sj-safe-3d-map-marker__count {
    z-index:20 !important;
  }
html:root body.mappage .sj-3d-map-marker__count {
    display:grid;
    place-items:center;
    min-width:22px;
    height:22px;
    padding:0 4px;
    border:1.5px solid rgba(255,255,255,.96);
    border-radius:999px;
    background:rgba(13,33,48,.62);
    box-shadow:0 2px 5px rgba(6,38,76,.34),inset 0 1px 0 rgba(255,255,255,.28);
    color:#fff;
    font:700 15px/1 'Quicksand',sans-serif;
    letter-spacing:0;
    text-shadow:0 1px 2px rgba(0,0,0,.65);
    transform:rotate(45deg) rotateX(-8deg) translateZ(3px);
  }
html:root body.mappage .sj-safe-3d-map-marker__count {
    display:grid;
    place-items:center;
    min-width:22px;
    height:22px;
    padding:0 4px;
    border:1.5px solid rgba(255,255,255,.96);
    border-radius:999px;
    background:rgba(13,33,48,.62);
    box-shadow:0 2px 5px rgba(6,38,76,.34),inset 0 1px 0 rgba(255,255,255,.28);
    color:#fff;
    font:700 15px/1 'Quicksand',sans-serif;
    letter-spacing:0;
    text-shadow:0 1px 2px rgba(0,0,0,.65);
    transform:translate(-50%,-50%) rotate(45deg) rotateX(-12deg) translateZ(3px);
  }
html:root body.mappage .sj-3d-map-marker__pin {
    position:relative;
  }
html:root body.mappage .sj-3d-map-marker__count,
  html:root body.mappage .sj-safe-3d-map-marker__count {
    background:transparent;
    border:0;
    box-shadow:none;
    text-shadow:0 1px 2px rgba(0,48,34,.55);
  }
html:root body.mappage .sj-3d-map-marker__count {
    position:absolute;
    left:50%;
    top:50%;
    transform:translate(-50%,-50%) rotate(45deg) rotateX(-8deg) translateZ(3px);
  }
html:root body.mappage .sj-safe-3d-map-marker__count {
    left:50%;
    top:50%;
    transform:translate(-50%,-50%) rotate(45deg) rotateX(-12deg) translateZ(3px);
  }
}


/* Two-up Theater and Drag large cards keep Share directly left of Save. */
@media(max-width:620px), (orientation: landscape) and (max-height:620px) and (pointer:coarse){
  body.opennow .on-theater .grid > .card .mapbtn{display:none!important}
  body.opennow .on-theater .grid > .card .card__panel > .tshare,
  body.opennow .on-theater .grid > .card .cover__slide > .tshare{
    left:auto!important;right:52px!important;top:8px!important;bottom:auto!important;
  }
}


/* Homepage All To See tiles match Neighborhood tiles: the share circle sits
   in the lower-left corner of the image panel. */
@media(max-width:620px), (orientation: landscape) and (max-height:620px) and (pointer:coarse){
  body.home #home-onview .card--mini .mini__media > .tshare,
  body.home #home-onview .card__panel > .tshare,
  body.home #home-onview .cover__slide > .tshare{
    top:auto!important;
    right:auto!important;
    bottom:8px!important;
    left:8px!important;
  }
}

/* Artist of the Day: the portrait and signature work live in one focused, swipeable media carousel. */
.bday-title--sr-only{position:absolute!important;width:1px!important;height:1px!important;margin:-1px!important;padding:0!important;overflow:hidden!important;clip:rect(0 0 0 0)!important;clip-path:inset(50%)!important;white-space:nowrap!important;border:0!important}
.bday-media{flex:0 0 calc(50% - 15px);min-width:0;display:flex;flex-direction:column;overflow:hidden}
.bday-media-track{display:flex;min-width:0;overflow-x:auto;overscroll-behavior-x:contain;scroll-snap-type:x mandatory;
  scroll-behavior:smooth;scrollbar-width:none;-ms-overflow-style:none}
.bday-media-track::-webkit-scrollbar{display:none}
.bday-media-slide{flex:0 0 100%;min-width:0;scroll-snap-align:start;scroll-snap-stop:always}
.bday-media-slide{cursor:default}
.bday-media-slide .bday-artist{box-sizing:border-box;flex:1 1 auto;min-height:100%;padding:24px 22px 20px;align-items:center}
.bday-media-slide .bday-portrait{width:100%;flex:1 1 auto;min-height:0;aspect-ratio:auto}
.bday-media-slide .bday-work{box-sizing:border-box;flex:none;min-height:100%;padding:24px 22px 20px}
.bday-media-nav{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:11px 14px 13px;
  background:rgba(255,255,255,.10)}
.bday-media-hint{display:none;margin:0;padding:7px 12px 0;text-align:center;color:rgba(255,255,255,.78);
  font-family:'Quicksand',sans-serif;font-size:11px;letter-spacing:.03em}
.bday-media-hint[hidden]{display:none}
.bday-media-tabs{display:flex;align-items:center;justify-content:center;gap:5px;min-width:0}
.bday-media-tab,.bday-media-control{font-family:'Quicksand',sans-serif;font-weight:600;cursor:pointer;
  border:1px solid rgba(255,255,255,.52);background:transparent;color:#fff}
.bday-media-tab{min-height:30px;padding:5px 10px;border-radius:999px;font-size:12px;line-height:1.1;white-space:nowrap}
.bday-media-tab[aria-pressed="true"]{background:#fff;border-color:#fff;color:var(--blue-dark)}
.bday-media-position{display:none;min-width:36px;color:rgba(255,255,255,.78);font-family:'Quicksand',sans-serif;
  font-size:11px;text-align:center;white-space:nowrap}
.bday-media-control{width:30px;height:30px;border-radius:50%;font-size:18px;line-height:1}
.bday-media-control:disabled{opacity:.35;cursor:default}
.bday-media-tab:focus-visible,.bday-media-control:focus-visible,.bday-media-track:focus-visible{
  outline:2px solid #fff;outline-offset:3px}
/* Give both carousel slides the same generous 4:3 image footprint as event cards. */
body.home .bday-media-slide .bday-portrait{aspect-ratio:4/3!important}
body.home .bday-portraitimg{object-fit:cover}
body.home .bday-workimg{aspect-ratio:4/3;height:auto;object-fit:cover}
@media (max-width:700px){
  .bday-name-dob{display:inline;font-size:.48em}
  .bday-status:not([hidden]){display:block;width:max-content;margin:8px auto 0}
  .bday-credit--work{margin:10px 0 0;font-size:10px}
  .bday-credit--work::before{content:'Source · ';font-weight:700;letter-spacing:.04em}
  .bday-media{flex-basis:auto;width:100%}
  .bday-media-slide{cursor:pointer}
  .bday-media-slide .bday-artist{padding:0 20px 20px}
  .bday-media-slide .bday-work{padding:20px 20px 18px}
  .bday-media-hint:not([hidden]){display:block}
  .bday-media-position{display:inline-block}
  .bday-media-nav{padding:10px 14px 12px}
}

/* Artist of the Day inherits the desktop Today in Art glass shelf on mobile:
   a pale blue-to-white veil with the portrait/work carousel left as the focus. */
@media(max-width:620px), (orientation:landscape) and (max-height:620px) and (pointer:coarse){
  body.home[data-cat="art"] .bday-sec{
    position:relative!important;
    overflow:visible!important;
    margin-top:var(--secgap,24px)!important;
    padding:0!important;
    border:0!important;
    border-radius:0!important;
    background:transparent!important;
    box-shadow:none!important;
    backdrop-filter:none!important;
    -webkit-backdrop-filter:none!important;
  }
  body.home[data-cat="art"] .bday-head{margin:0 0 14px!important}
  body.home[data-cat="art"] .bday-sub{display:none!important}
  body.home[data-cat="art"] .bday-card,
  body.home[data-cat="art"] .bday-card:hover{
    position:relative!important;
    isolation:isolate!important;
    overflow:hidden!important;
    background:linear-gradient(180deg,rgba(255,255,255,.12) 0%,rgba(224,244,255,.82) 27%,rgba(249,252,253,.98) 67%)!important;
    border:0!important;
    border-radius:20px!important;
    box-shadow:0 18px 34px rgba(4,48,84,.16)!important;
    transform:none!important;
  }
  body.home[data-cat="art"] .bday-card::before{
    content:"";
    position:absolute;
    z-index:-1;
    inset:0;
    pointer-events:none;
    background:radial-gradient(circle at 50% -18%,rgba(255,255,255,.34),transparent 48%);
  }
  body.home[data-cat="art"] .bday-media-hint,
  body.home[data-cat="art"] .bday-media-control,
  body.home[data-cat="art"] .bday-media-position{display:none!important}
  body.home[data-cat="art"] .bday-body{display:block!important;padding:18px 20px 12px!important}
  body.home[data-cat="art"] .bday-when{display:none!important}
  body.home[data-cat="art"] .bday-name,
  body.home[data-cat="art"] .bday-name a{color:#17384d!important;text-shadow:none!important}
  body.home[data-cat="art"] .bday-bio{color:#315d7a!important;text-shadow:none!important}
  body.home[data-cat="art"] .bday-work :is(.bday-credit,.bday-work-label,.bday-work-title,.bday-work-meta){
    color:#17384d!important;
    text-shadow:none!important;
  }
  body.home[data-cat="art"] .bday-work .bday-credit{color:#fff!important}
  body.home[data-cat="art"] .bday-work :is(.bday-work-label,.bday-work-title,.bday-work-meta){margin-left:10px!important}
  body.home[data-cat="art"] .bday-media{
    overflow:visible!important;
    border-radius:0!important;
    background:transparent!important;
    box-shadow:none!important;
  }
  body.home[data-cat="art"] .bday-media-slide .bday-artist,
  body.home[data-cat="art"] .bday-media-slide .bday-work{padding:0!important;background:transparent!important}
  body.home[data-cat="art"] .bday-media-slide :is(.bday-portrait,.bday-workimg){margin:0!important;border-radius:16px!important}
  body.home[data-cat="art"] .bday-media-slide .bday-portrait{
    width:85%!important;
    flex:0 0 auto!important;
    margin:0 auto!important;
  }
  body.home[data-cat="art"] .bday-media-slide .bday-workimg{
    width:85%!important;
    height:auto!important;
    margin:0 auto!important;
  }
  body.home[data-cat="art"] .bday-media-nav{
    justify-content:center!important;
    padding:12px 0 20px!important;
    background:transparent!important;
  }
  body.home[data-cat="art"] .bday-media-tabs{gap:8px!important}
  body.home[data-cat="art"] .bday-media-tab{
    width:8px!important;
    min-width:8px!important;
    height:8px!important;
    min-height:8px!important;
    padding:0!important;
    border:0!important;
    border-radius:50%!important;
    background:rgba(23,56,77,.28)!important;
    color:transparent!important;
    font-size:0!important;
  }
  body.home[data-cat="art"] .bday-media-tab[aria-pressed="true"]{background:#0a5e9d!important}
}
@media (prefers-reduced-motion:reduce){
  .bday-media-track{scroll-behavior:auto}
}

/* City-switch guide pages reserve the masthead separately; retain the intended
   lower starting point for the neighborhood rail after that layout rule runs. */
@media(max-width:620px), (orientation: landscape) and (max-height:620px) and (pointer:coarse){
  /* The mobile guide stats are absolutely positioned in the masthead; keep the
     neighborhood rail below their full rendered block instead of letting it overlap. */
  html:root body.nbpage.cityswitch-ready .nb-rail-sec{margin-top:70px!important}
}


/* ---------- JOURNAL ACHIEVEMENTS ---------- */
body.journalpage .site-header__in{justify-content:flex-start}
body.journalpage .topnav{margin-left:auto}
.journal-achievements{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));grid-template-rows:repeat(2,32px);
  align-content:center;gap:6px;width:252px;min-height:78px;margin-left:14px;padding:6px;
  border:1px solid rgba(255,255,255,.54);border-radius:22px;
  background:linear-gradient(145deg,rgba(2,82,143,.62),rgba(0,55,104,.52));
  box-shadow:0 10px 24px rgba(7,42,80,.28),inset 0 1px 0 rgba(255,255,255,.14);
  backdrop-filter:blur(16px) saturate(1.35);-webkit-backdrop-filter:blur(16px) saturate(1.35)}
.journal-achievements:empty{display:none}
.journal-achievement{grid-column:span 2;position:relative;display:flex;align-items:center;justify-content:space-between;
  min-width:0;height:32px;padding:0 5px;border:1px solid currentColor;border-radius:12px;
  font-family:'Quicksand',sans-serif;line-height:1;cursor:pointer;overflow:hidden;
  transition:transform .18s ease,box-shadow .18s ease,background .18s ease}
.journal-achievement:nth-child(4){grid-column:2 / span 2}
.journal-achievement:nth-child(5){grid-column:4 / span 2}
.journal-achievement__mark{position:relative;z-index:1;display:grid;place-items:center;flex:0 0 auto;width:22px;height:22px;
  border-radius:50%;box-shadow:inset 0 1px 0 rgba(255,255,255,.28)}
.journal-achievement__mark svg{width:14px;height:14px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.journal-achievement__mark .journal-badge-word{font-size:6px;letter-spacing:-.08em}
.journal-achievement__count{position:relative;z-index:1;display:flex;align-items:baseline;justify-content:flex-end;gap:1px;min-width:0;white-space:nowrap}
.journal-achievement__count b{font-size:12px;font-weight:700;letter-spacing:-.04em}
.journal-achievement__count small{font-size:8.5px;font-weight:700;letter-spacing:-.03em}
.journal-achievement.is-locked{color:#111820;background:linear-gradient(145deg,#fff,#dce4e9);border-color:#111820;
  box-shadow:inset 0 1px 0 #fff,0 3px 7px rgba(0,0,0,.18);cursor:default;opacity:1}
.journal-achievement.is-locked .journal-achievement__mark{color:#fff;background:#111820}
.journal-achievement.is-locked .journal-achievement__count small{color:rgba(17,24,32,.63)}
.journal-achievement.is-unlocked{color:#fff;background:linear-gradient(145deg,color-mix(in srgb,var(--journal-badge) 62%,#fff),var(--journal-badge) 62%,color-mix(in srgb,var(--journal-badge) 72%,#042b54));
  border-color:rgba(255,255,255,.9);box-shadow:0 5px 13px color-mix(in srgb,var(--journal-badge) 54%,transparent),inset 0 1px 0 rgba(255,255,255,.34)}
.journal-achievement.is-unlocked::after{content:"";position:absolute;inset:0;background:linear-gradient(115deg,rgba(255,255,255,.27),transparent 38%,transparent 65%,rgba(255,255,255,.13));pointer-events:none}
.journal-achievement.is-unlocked .journal-achievement__mark{color:#fff;background:rgba(3,45,82,.27);border:1px solid rgba(255,255,255,.3)}
.journal-achievement.is-unlocked .journal-achievement__count small{color:rgba(255,255,255,.82)}
.journal-achievement.is-unlocked:hover,.journal-achievement.is-unlocked:focus-visible{transform:translateY(-2px);box-shadow:0 8px 17px color-mix(in srgb,var(--journal-badge) 66%,transparent),inset 0 1px 0 rgba(255,255,255,.38);outline:none}
.journal-achievement.is-selected{outline:2px solid #fff;outline-offset:2px}
@media(min-width:621px){body.journalpage .journal-achievements{position:relative;top:78px}}
.journal-achievement-detail{margin:16px 0 20px;padding:14px;border:1px solid color-mix(in srgb,var(--journal-badge) 66%,#fff);
  border-radius:18px;background:linear-gradient(135deg,color-mix(in srgb,var(--journal-badge) 31%,#fff),color-mix(in srgb,var(--journal-badge) 15%,#fff));box-shadow:0 8px 22px color-mix(in srgb,var(--journal-badge) 26%,rgba(7,42,80,.14))}
.journal-achievement-detail__head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}
.journal-achievement-detail__head>div{display:flex;align-items:center;gap:10px}
.journal-achievement-detail__icon{display:grid;place-items:center;flex:0 0 auto;width:38px;height:38px;border-radius:12px;color:#fff;background:var(--journal-badge)}
.journal-achievement-detail__icon svg{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.journal-achievement-detail h2{margin:0;font:700 16px/1.12 'Quicksand',sans-serif;color:#123654}
.journal-achievement-detail p{margin:3px 0 0;font-size:12px;line-height:1.3;color:#31536e}
.journal-achievement-detail__head button{flex:0 0 auto;width:30px;height:30px;padding:0;border:1px solid rgba(7,42,80,.22);border-radius:50%;background:#fff;color:#123654;font-size:22px;line-height:1;cursor:pointer}
.journal-achievement-events{max-height:288px;margin:12px 0 0;padding:0;overflow:auto;list-style:none;border-top:1px solid color-mix(in srgb,var(--journal-badge) 28%,#fff)}
.journal-achievement-events li{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:9px 2px;border-bottom:1px solid rgba(7,42,80,.1)}
.journal-achievement-events strong{display:block;font:700 13px/1.2 'Quicksand',sans-serif;color:#123654}
.journal-achievement-events span{display:block;margin-top:2px;font-size:11px;color:#45637b}
.journal-achievement-events i{font-style:normal;color:var(--journal-badge);font-weight:700}
.journal-achievement-events time{flex:0 0 auto;font:600 10px/1.2 'Quicksand',sans-serif;color:#45637b;text-align:right}
@media(max-width:620px), (orientation: landscape) and (max-height:620px) and (pointer:coarse){
  body.journalpage .journal-achievements{position:fixed;top:calc(20px + env(safe-area-inset-top));left:109px;right:10px;z-index:1151;
    width:auto;min-height:76px;margin:0;padding:5px 6px;grid-template-rows:repeat(2,30px);gap:5px;border-radius:20px}
  body.journalpage .journal-achievement{height:30px;padding:0 5px;border-radius:11px}
  .journal-achievement__mark{width:21px;height:21px}
  .journal-achievement__mark svg{width:13px;height:13px}
  .journal-achievement__count b{font-size:11px}
  .journal-achievement__count small{font-size:8px}
  .journal-achievement-detail{margin:12px 0 18px;padding:12px}
  .journal-achievement-events{max-height:260px}
  .journal-achievement-events li{align-items:flex-start}
  .journal-achievement-events time{max-width:66px}
}


/* All To See follows Born on This Day. Match the generous visual break between
   Browse by Neighborhood and Born on This Day without changing either section. */
@media(max-width:620px), (orientation: landscape) and (max-height:620px) and (pointer:coarse){
  body.home #home-onview .openings-sec{margin-top:calc(32px + var(--secgap));}
  /* Theater has no All To See section above it. When Final Days is empty, the first
     available theater rail takes Final Days' position directly below the category toggle
     instead of retaining the Visual Arts section break. */
  body.home[data-cat="theater"] #home-featured:empty ~ #home-onview .openings-sec:first-child,
  body.home[data-cat="drag"] #home-featured:empty ~ #home-onview .openings-sec:first-child{
    margin-top:12px;
  }
  body.home[data-cat="comedy"] #home-featured:empty ~ #home-onview .openings-sec:first-child{
    margin-top:12px;
  }
  body.home[data-cat="theater"] #home-onview .openings-sec.is-leading-home-section,
  body.home[data-cat="drag"] #home-onview .openings-sec.is-leading-home-section{
    margin-top:12px;
  }
  body.home[data-cat="comedy"] #home-onview .openings-sec.is-leading-home-section{
    margin-top:12px;
  }
  body.home #home-weekcols .week-col.is-leading-home-section,
  body.home #home-areas.is-leading-home-section,
  body.home .bday-sec.is-leading-home-section,
  body.home #home-onview .openings-sec.is-leading-home-section{
    margin-top:12px;
  }
}


/* Journal event history: a compact four-up gallery on every Journal surface. */
body.journalpage .journal-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}
body.journalpage .journal-card>img,body.journalpage .journal-card__placeholder{height:132px;line-height:132px}
body.journalpage .journal-card__body{padding:10px 11px 11px}
body.journalpage .journal-card h2{font-size:15px}
@media(max-width:620px), (orientation: landscape) and (max-height:620px) and (pointer:coarse){
  body.journalpage .journal-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:7px}
  body.journalpage .journal-card{border-radius:11px}
  body.journalpage .journal-card>img,body.journalpage .journal-card__placeholder{display:grid;place-items:center;height:auto;aspect-ratio:1/1;line-height:1;font-size:24px}
  body.journalpage .journal-card__star{top:5px;right:5px;width:25px;height:25px}
  body.journalpage .journal-card__star svg{width:16px;height:16px}
  body.journalpage .journal-card__body{padding:7px 6px 8px}
  body.journalpage .journal-card h2{font-size:11px;line-height:1.15}
  body.journalpage .journal-card p{margin:4px 0;font-size:9px;line-height:1.22}
  body.journalpage .journal-city-label{font-size:8px}
  body.journalpage .journal-card time{font-size:9px;line-height:1.2}
}


/* Building-level All Venues map previews: small, image-first façade callouts. */
.leaflet-marker-icon.sj-venue-preview-marker{
  background:transparent!important;
  border:0!important;
  pointer-events:auto!important;
  cursor:pointer;
}
.sj-venue-preview{
  --sj-venue-preview-scale:1;
  display:block;
  width:60px;
  height:60px;
  box-sizing:border-box;
  overflow:hidden;
  border:1px solid rgba(255,255,255,.96);
  border-radius:50%;
  background:rgba(20,79,122,.94);
  box-shadow:0 4px 10px rgba(3,35,66,.38);
  opacity:0;
  transform-origin:50% 100%;
  transform:translateY(4px) scale(.86);
  transition:opacity 180ms ease-out,transform 180ms ease-out;
  pointer-events:auto;
  cursor:pointer;
  touch-action:manipulation;
}
.sj-venue-preview.is-visible{
  opacity:1;
  transform:translateY(0) scale(var(--sj-venue-preview-scale));
}
.sj-venue-preview.is-front{
  border-color:rgba(201,162,39,.98);
  box-shadow:0 10px 22px rgba(3,35,66,.54),0 0 0 2px rgba(201,162,39,.9),0 0 16px rgba(201,162,39,.68);
}
.sj-venue-preview img{
  display:block;
  width:100%;
  height:100%;
  object-fit:cover;
}
.sj-venue-preview.is-empty{visibility:hidden;}
.sj-venue-preview-wrap{position:relative;display:block;width:60px;height:60px;overflow:visible}
.sj-venue-preview-title{
  position:absolute;left:30px;top:116px;transform:translateX(-50%);
  box-sizing:border-box;text-align:center;color:#fff;
  font:600 11px/1.12 Quicksand,Arial,sans-serif;letter-spacing:.01em;
  text-shadow:0 1px 5px rgba(0,30,58,.96);pointer-events:none;
  overflow:hidden;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;
}
.sj-venue-preview-title.is-front{color:#fff4c1;text-shadow:0 1px 6px rgba(117,82,0,.98),0 0 8px rgba(201,162,39,.85)}


/* Journal achievement medals: neutral until earned, then colored by achievement. */
body.journalpage .site-header{position:relative;z-index:1152}
body.journalpage .journal-achievements{z-index:1153;pointer-events:auto}
body.journalpage .journal-achievement{pointer-events:auto}

.journal-achievements{
  position:relative;box-sizing:border-box;display:grid;grid-template-columns:repeat(8,minmax(0,1fr));grid-template-rows:repeat(2,52px);
  align-content:center;gap:4px;width:270px;height:120px;min-height:120px;margin-left:14px;padding:4px 8px;
  border:0;border-radius:0;background:transparent;box-shadow:none;
  backdrop-filter:none;-webkit-backdrop-filter:none;
}
.journal-achievement{
  grid-column:span 1;position:relative;display:grid;grid-template-columns:1fr;grid-template-rows:36px 14px;
  align-content:start;justify-items:center;gap:2px;min-width:0;height:52px;padding:0;border:0!important;
  border-radius:0;background:transparent!important;box-shadow:none!important;color:#fff;overflow:visible;
  font-family:'Quicksand',sans-serif;line-height:1;cursor:default;opacity:1;
  transition:transform .18s ease,filter .18s ease;
}
.journal-achievement::after{display:none}
.journal-achievement__mark{
  position:relative;z-index:1;display:grid;place-items:center;width:36px;height:36px;
  border:1.5px solid rgba(255,255,255,.98);border-radius:50%;
  background:linear-gradient(145deg,#fff,#cbd3d8);color:#687983;
  box-shadow:inset 0 1px 1px rgba(255,255,255,.96),0 3px 8px rgba(3,39,68,.28);
}
.journal-achievement__mark svg{width:21px;height:21px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
.journal-badge-image{display:block;width:100%;height:100%;object-fit:contain;border-radius:50%}
.journal-badge-image--drag,
.journal-badge-image--drag-supporter,
.journal-badge-svg--drag-supporter{opacity:.86}
.journal-achievement__label{
  position:relative;z-index:1;display:block;max-width:100%;min-height:14px;overflow:visible;white-space:normal;overflow-wrap:anywhere;
  color:rgba(255,255,255,.98);font:700 7.2px/1.02 'Quicksand',sans-serif;letter-spacing:-.06em;text-align:center;
  text-shadow:0 1px 2px rgba(0,49,90,.6);
}
.journal-achievement.is-locked{color:#fff;cursor:help;opacity:1}
.journal-achievement.is-locked .journal-achievement__mark{color:#687983;background:linear-gradient(145deg,#fff,#cbd3d8)}
.journal-achievement.is-unlocked{cursor:pointer;color:#fff}
.journal-achievement.is-unlocked .journal-achievement__mark{
  color:#fff;background:linear-gradient(145deg,color-mix(in srgb,var(--journal-badge) 46%,#fff),var(--journal-badge) 74%);
  border-color:rgba(255,255,255,.94);
  box-shadow:inset 0 1px 1px rgba(255,255,255,.52),0 4px 11px color-mix(in srgb,var(--journal-badge) 54%,transparent);
}
.journal-achievement.is-unlocked:hover,.journal-achievement.is-unlocked:focus-visible{
  transform:translateY(-2px);filter:brightness(1.06);outline:none;
}
.journal-achievement.is-selected{outline:0}
.journal-achievement.is-selected .journal-achievement__mark{
  box-shadow:0 0 0 2px #fff,0 0 0 4px var(--journal-badge),inset 0 1px 1px rgba(255,255,255,.52),0 4px 11px color-mix(in srgb,var(--journal-badge) 54%,transparent);
}
@media(max-width:620px), (orientation: landscape) and (max-height:620px) and (pointer:coarse){
  body.journalpage .journal-achievements{
    grid-template-rows:repeat(2,38px);height:83.7px;min-height:83.7px;padding:2px 6px;gap:3px;
    border:0;border-radius:0;background:transparent;box-shadow:none;
  }
  body.journalpage .journal-achievement{grid-template-rows:27px 10px;height:38px;gap:1px;border-radius:0}
  body.journalpage .journal-achievement__mark{width:28px;height:28px}
  body.journalpage .journal-achievement__mark svg{width:17px;height:17px}
  body.journalpage .journal-achievement__label{max-width:100%;min-height:10px;font-size:6.2px;line-height:1;letter-spacing:-.06em}
}

.journal-achievement-tooltip{
  position:fixed;z-index:1205;top:10px;left:50%;width:min(260px,calc(100vw - 32px));
  box-sizing:border-box;padding:8px 10px;border:1px solid rgba(10,68,112,.24);border-radius:12px;
  background:rgba(255,255,255,.97);box-shadow:0 8px 20px rgba(4,37,71,.24);
  color:#174d77;font:700 11px/1.3 'Quicksand',sans-serif;text-align:center;
  opacity:0;visibility:hidden;pointer-events:none;transform:translate(-50%,-5px);
  transition:opacity .18s ease,transform .18s ease,visibility .18s ease;
}
.journal-achievement-tooltip.is-visible{opacity:1;visibility:visible;transform:translate(-50%,0)}


/* Journal goals stay legible in two compact rows of five per swipeable page. */
.journal-achievements{
  display:flex;align-items:stretch;gap:8px;overflow-x:auto;overflow-y:visible;
  scroll-snap-type:x mandatory;scroll-behavior:smooth;overscroll-behavior-x:contain;
  scrollbar-width:none;-webkit-overflow-scrolling:touch;
}
.journal-achievements::-webkit-scrollbar{display:none}
.journal-achievement-page{
  flex:0 0 100%;display:grid;grid-template-columns:repeat(5,minmax(0,1fr));grid-template-rows:repeat(2,52px);
  align-content:center;gap:4px;min-width:0;scroll-snap-align:start;scroll-snap-stop:always;
}
.journal-achievement-page .journal-achievement,
.journal-achievement-page .journal-achievement:nth-child(n){grid-column:span 1}
.journal-achievement-page .journal-achievement__label{max-width:100%;font-size:7.2px;letter-spacing:-.06em}
@media(max-width:620px), (orientation: landscape) and (max-height:620px) and (pointer:coarse){
  body.journalpage .journal-achievements{display:flex;gap:8px;overflow-x:auto;overflow-y:visible}
  body.journalpage .journal-achievement-page{grid-template-rows:repeat(2,38px);gap:3px}
  body.journalpage .journal-achievement-page .journal-achievement{grid-template-rows:27px 10px;height:38px;gap:1px}
  body.journalpage .journal-achievement-page .journal-achievement__label{max-width:100%;min-height:10px;font-size:6.2px;line-height:1;letter-spacing:-.06em}
}


/* Empty Journals introduce the full badge collection with Architecture Study glyphs. */
body.journalpage .journal-empty-badges{
  max-width:580px;margin:24px auto 38px;padding:0 4px;text-align:center;
}
body.journalpage .journal-empty-badges__title{
  margin:0 0 16px;color:#fff;font:700 17px/1.15 'Quicksand',sans-serif;letter-spacing:.01em;
  text-shadow:0 2px 9px rgba(3,43,83,.42);
}
body.journalpage .journal-empty-badges__grid{
  display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:21px 14px;align-items:start;
}
body.journalpage .journal-empty-badge{
  display:grid;grid-template-rows:68px auto;justify-items:center;align-items:start;gap:8px;min-width:0;
  padding:0;border:0;background:transparent;font:inherit;cursor:help;-webkit-appearance:none;appearance:none;
}
body.journalpage .journal-empty-badge:focus-visible{outline:none}
body.journalpage .journal-empty-badge:focus-visible .journal-empty-badge__mark{box-shadow:0 0 0 3px rgba(255,255,255,.96),0 0 0 5px var(--journal-badge),0 7px 15px color-mix(in srgb,var(--journal-badge) 62%,transparent)}
body.journalpage .journal-empty-badge__mark{
  display:grid;place-items:center;width:64px;height:64px;box-sizing:border-box;border:2px solid #d5a11e;
  border-radius:50%;color:#fff;
  background:linear-gradient(145deg,color-mix(in srgb,var(--journal-badge) 76%,#fff),var(--journal-badge) 68%,color-mix(in srgb,var(--journal-badge) 74%,#052c53));
  box-shadow:0 7px 15px color-mix(in srgb,var(--journal-badge) 62%,transparent),inset 0 1px 1px rgba(255,255,255,.58);
}
body.journalpage .journal-empty-badge__mark svg{
  width:38px;height:38px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round;
}
body.journalpage .journal-empty-badge__mark .journal-badge-svg--trifecta,
body.journalpage .journal-progress-badge__mark .journal-badge-svg--trifecta{width:30px;height:30px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
body.journalpage .journal-empty-badge__mark .journal-badge-svg--drag-supporter,
body.journalpage .journal-progress-badge__mark .journal-badge-svg--drag-supporter{opacity:.86}
body.journalpage .journal-empty-badge__mark .journal-badge-image,
body.journalpage .journal-progress-badge__mark .journal-badge-image{width:100%;height:100%;object-fit:contain}
body.journalpage .journal-badge-word{display:inline-block;color:currentColor;font:800 12px/1 'Quicksand',sans-serif;letter-spacing:-.08em;text-transform:lowercase}
body.journalpage .journal-empty-badge__label{
  max-width:100%;color:#fff;font:700 11.5px/1.12 'Quicksand',sans-serif;text-shadow:0 2px 8px rgba(3,43,83,.62);
}
@media(max-width:620px), (orientation: landscape) and (max-height:620px) and (pointer:coarse){
  body.journalpage .journal-empty-badges{margin:22px auto 32px;padding:0 2px}
  body.journalpage .journal-empty-badges__title{margin-bottom:14px;font-size:15px}
  body.journalpage .journal-empty-badges__grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:18px 8px}
  body.journalpage .journal-empty-badge{grid-template-rows:60px auto;gap:7px}
  body.journalpage .journal-empty-badge__mark{width:56px;height:56px}
  body.journalpage .journal-empty-badge__mark svg{width:34px;height:34px}
  body.journalpage .journal-empty-badge__mark .journal-badge-svg--trifecta,
  body.journalpage .journal-progress-badge__mark .journal-badge-svg--trifecta{width:26px;height:26px}
  body.journalpage .journal-empty-badge__label{font-size:10px}
}



/* Journal identity now lives beside the logo; the achievement deck occupies the former title space. */
body.journalpage .journal-identity{
  display:flex;align-items:center;gap:10px;min-width:0;margin-left:30px;color:#fff;
}
body.journalpage .journal-identity__titleline{
  display:flex;align-items:center;gap:4px;min-width:0;
}
body.journalpage .journal-identity__title{
  margin:0;min-width:0;color:#fff;font:600 clamp(20px,2.6vw,30px)/1.08 'DM Sans',serif;
  text-shadow:0 2px 10px rgba(7,42,80,.38);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
}
body.journalpage .journal-name-control{
  display:grid;grid-template-rows:18px auto;justify-items:center;gap:2px;flex:0 0 auto;min-width:0;
}
body.journalpage .journal-name-edit{
  display:grid;place-items:center;position:relative;width:18px;height:18px;padding:0;border:0;border-radius:50%;
  background:rgba(255,255,255,.17);color:#f4d36a;font:700 18px/1 'Quicksand',sans-serif;line-height:0;cursor:pointer;
  text-shadow:0 1px 4px rgba(80,51,0,.36);
}
body.journalpage .journal-name-edit__glyph{
  display:block;width:11px;height:11px;fill:none;stroke:currentColor;stroke-width:2.4;stroke-linecap:round;
}
body.journalpage .journal-name-cue{
  display:block;white-space:nowrap;color:rgba(255,255,255,.88);
  font:600 8px/1 'Quicksand',sans-serif;letter-spacing:.015em;text-shadow:0 1px 4px rgba(7,42,80,.5);
}
body.journalpage .journal-name-edit:hover,
body.journalpage .journal-name-edit:focus-visible{
  outline:none;background:rgba(255,255,255,.3);box-shadow:0 0 0 2px rgba(255,255,255,.72);
}
body.journalpage .journal-identity .journal-share{
  display:inline-flex;align-items:center;justify-content:center;gap:5px;flex:0 0 auto;margin:0;padding:8px 11px;
  border-color:rgba(255,255,255,.82);background:rgba(255,255,255,.13);color:#fff;font-size:11px;
  box-shadow:0 3px 10px rgba(7,42,80,.16);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);
}
body.journalpage .journal-identity .journal-share svg{
  width:15px;height:15px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;
}
body.journalpage .journal-head--badges{
  display:block;margin:0 0 22px;
}
body.journalpage .journal-achievement-slot{
  display:block;width:min(100%,480px);
}
body.journalpage .journal-head--badges .journal-achievements{
  position:relative!important;top:auto!important;left:auto!important;right:auto!important;z-index:auto;
  width:100%;height:120px;min-height:120px;margin:0;padding:4px 8px;
}
body.journalpage .journal-head--badges .journal-achievement-page{
  grid-template-columns:repeat(5,minmax(0,1fr));
}
body.journalpage .journal-achievement-sub{
  max-width:480px;margin:13px 0 0!important;color:rgba(255,255,255,.92)!important;
  font:600 17px/1.35 'Quicksand',sans-serif!important;white-space:normal!important;
  text-shadow:0 2px 9px rgba(7,42,80,.38);
}

@media(max-width:620px), (orientation: landscape) and (max-height:620px) and (pointer:coarse){
  body.journalpage .journal-identity{
    position:fixed;top:calc(22px + env(safe-area-inset-top));left:124px;right:10px;z-index:1151;
    justify-content:space-between;gap:6px;margin:0;
  }
  body.journalpage .journal-identity__titleline{flex:1 1 auto;gap:3px}
  body.journalpage .journal-identity__title{
    font-size:clamp(16px,4.7vw,22px);line-height:1.08;
  }
  body.journalpage .journal-name-control{grid-template-rows:15px auto;gap:1px}
  body.journalpage .journal-name-edit{width:15px;height:15px;font-size:15px}
  body.journalpage .journal-name-cue{font-size:6.5px}
  body.journalpage .journal-identity .journal-share{gap:4px;padding:7px 8px;font-size:10px}
  body.journalpage .journal-identity .journal-share svg{width:14px;height:14px}
  body.journalpage .journal-head--badges{margin:0 0 18px}
  body.journalpage .journal-achievement-slot{width:100%}
  body.journalpage .journal-head--badges .journal-achievements{
    position:relative!important;top:auto!important;left:auto!important;right:auto!important;
    width:100%;height:83.7px;min-height:83.7px;margin:0;padding:2px 6px;
  }
  body.journalpage .journal-achievement-sub{
    max-width:none;margin-top:11px!important;font-size:15.5px!important;line-height:1.33!important;
  }
}



/* The Journal title retains its progress star: outline when empty, gold-filled after a saved event. */
body.journalpage .journal-identity .journal-title-star{
  width:22px;height:22px;flex:0 0 auto;color:#d5a11e;
}
body.journalpage .journal-identity .journal-title-star svg{width:100%;height:100%}
@media(max-width:620px), (orientation: landscape) and (max-height:620px) and (pointer:coarse){
  body.journalpage .journal-identity .journal-title-star{width:18px;height:18px}
}

@media(max-width:350px){
  body.journalpage .journal-identity{left:114px;gap:4px}
  body.journalpage .journal-identity__title{font-size:14px}
  body.journalpage .journal-identity .journal-title-star{width:16px;height:16px}
  body.journalpage .journal-identity .journal-share{padding:6px 7px;font-size:9.5px}
}



/* Native prompt dialogs are unavailable in the installed app, so name editing stays in-page. */
.journal-name-editor{
  position:fixed;z-index:1300;inset:0;display:grid;place-items:center;padding:20px;box-sizing:border-box;
  opacity:0;visibility:hidden;pointer-events:none;transition:opacity .16s ease,visibility .16s ease;
}
.journal-name-editor.is-open{opacity:1;visibility:visible;pointer-events:auto}
.journal-name-editor__backdrop{
  position:absolute;inset:0;border:0;background:rgba(3,35,66,.48);backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);
}
.journal-name-editor__card{
  position:relative;z-index:1;box-sizing:border-box;width:min(340px,100%);padding:20px;border:1px solid rgba(255,255,255,.72);
  border-radius:22px;background:linear-gradient(145deg,rgba(22,141,210,.98),rgba(5,85,153,.98));box-shadow:0 18px 46px rgba(1,28,57,.42);
  color:#fff;font-family:'Quicksand',sans-serif;
}
.journal-name-editor__card label{display:block;font:700 19px/1.16 'DM Sans',serif}
.journal-name-editor__card input{
  display:block;box-sizing:border-box;width:100%;margin-top:14px;padding:11px 13px;border:1px solid rgba(255,255,255,.72);border-radius:12px;
  background:rgba(255,255,255,.96);color:#113d62;font:600 16px/1.2 'Quicksand',sans-serif;outline:none;
}
.journal-name-editor__card input:focus{box-shadow:0 0 0 3px rgba(244,211,106,.8)}
.journal-name-editor__card p{margin:8px 0 0;color:rgba(255,255,255,.8);font-size:11px}
.journal-name-editor__actions{display:flex;justify-content:flex-end;gap:8px;margin-top:18px}
.journal-name-editor__actions button{
  border:1px solid rgba(255,255,255,.7);border-radius:999px;background:rgba(255,255,255,.14);color:#fff;padding:8px 13px;
  font:700 12px/1 'Quicksand',sans-serif;cursor:pointer;
}
.journal-name-editor__actions button[type="submit"]{border-color:#f4d36a;background:#f4d36a;color:#174d77}


/* Journal header: title sits at the logo's visual center; Share aligns to its lower edge. */
@media(min-width:621px){
  body.journalpage .site-header__in{position:relative}
  body.journalpage .journal-identity{
    position:absolute;top:46px;left:150px;right:0;height:120px;z-index:6;
    display:block;margin:0;color:#fff;
  }
  body.journalpage .journal-identity__titleline{
    display:flex;align-items:center;height:120px;gap:6px;min-width:0;
  }
  body.journalpage .journal-identity__title{
    font-size:clamp(26px,3vw,38px);line-height:1.05;
  }
  body.journalpage .journal-identity .journal-title-star{width:27px;height:27px}
  body.journalpage .journal-identity .journal-name-edit{width:20px;height:20px;font-size:20px}
  body.journalpage .journal-identity .journal-share{
    position:absolute;right:0;bottom:0;margin:0;padding:9px 14px;font-size:12px;
  }
}
@media(max-width:620px), (orientation: landscape) and (max-height:620px) and (pointer:coarse){
  body.journalpage .journal-identity{
    position:fixed;top:calc(45px + env(safe-area-inset-top));left:118px;right:10px;height:58px;z-index:1151;
    display:block;margin:0;color:#fff;
  }
  body.journalpage .journal-identity__titleline{
    display:flex;align-items:center;height:27px;gap:4px;min-width:0;
  }
  body.journalpage .journal-identity__title{
    font-size:clamp(18px,5.2vw,25px);line-height:1.04;
  }
  body.journalpage .journal-identity .journal-title-star{width:20px;height:20px}
  body.journalpage .journal-identity .journal-name-edit{width:17px;height:17px;font-size:17px}
  body.journalpage .journal-identity .journal-share{
    position:absolute;right:0;bottom:0;margin:0;padding:7px 9px;font-size:10px;
  }
}
@media(max-width:350px){
  body.journalpage .journal-identity{left:108px}
  body.journalpage .journal-identity__title{font-size:16px}
  body.journalpage .journal-identity .journal-title-star{width:17px;height:17px}
  body.journalpage .journal-identity .journal-name-edit{width:15px;height:15px;font-size:15px}
  body.journalpage .journal-identity .journal-share{padding:6px 7px;font-size:9.5px}
}


/* One Journal timeline: preserve the existing event tiles and identify their source with a single compact marker. */
body.journalpage .journal-card__category{
  position:absolute;top:9px;left:9px;z-index:2;display:inline-flex;align-items:center;justify-content:center;
  min-height:23px;padding:5px 8px;border:1px solid rgba(255,255,255,.82);border-radius:999px;
  /* Match the Journal source labels to their corresponding first badge colors. */
  background:#18d0d3;color:#efffff;font:700 9px/1 'Quicksand',sans-serif;letter-spacing:.08em;
  box-shadow:0 3px 9px rgba(3,45,84,.25);text-shadow:0 1px 2px rgba(1,53,60,.28);
}
body.journalpage .journal-card--theater .journal-card__category{
  background:#17a7ef;color:#fff;text-shadow:0 1px 2px rgba(0,58,112,.32);
}
body.journalpage .journal-card--drag .journal-card__category{
  background:#4b267d;color:#fff;text-shadow:0 1px 2px rgba(74,48,125,.3);
}
body.journalpage .journal-card--comedy .journal-card__category{
  background:#0f766e;color:#fff;text-shadow:0 1px 2px rgba(15,118,110,.3);
}
@media(max-width:620px), (orientation: landscape) and (max-height:620px) and (pointer:coarse){
  body.journalpage .journal-card__category{
    top:5px;left:5px;min-height:17px;padding:3px 5px;font-size:6.7px;letter-spacing:.055em;
  }
}


/* Unified Journal event tiles use a deeper blue surface; their existing gold border remains the frame. */
body.journalpage .journal-card{background:#005f9f}


/* Unified Journal tile metadata: venue line stays bright; the recorded date carries the gold accent. */
body.journalpage .journal-card p,
body.journalpage .journal-card .journal-city-label{color:#fff}
body.journalpage .journal-card time{color:#d5a11e;font-weight:700}


/* Day chapters keep the unified Journal as one timeline while leaving the familiar event grid intact. */
body.journalpage .journal-day-chapter{margin:0 0 28px}
body.journalpage .journal-day-chapter__title{
  display:flex;align-items:center;gap:8px;margin:0 0 11px;color:rgba(255,255,255,.72);
  font:700 11px/1 'Quicksand',sans-serif;letter-spacing:.12em;text-transform:uppercase;
}
body.journalpage .journal-day-chapter__title::after{
  content:"";height:1px;flex:1 1 auto;background:rgba(255,255,255,.34);
}
body.journalpage .journal-day-chapter__title time{color:#d5a11e;font-weight:700}
@media(max-width:620px), (orientation: landscape) and (max-height:620px) and (pointer:coarse){
  body.journalpage .journal-day-chapter{margin-bottom:20px}
  body.journalpage .journal-day-chapter__title{gap:6px;margin-bottom:8px;font-size:9px;letter-spacing:.1em}
}


/* Empty Journal badge explanations use a quiet neutral-gray surface. */
.journal-achievement-tooltip{
  background:rgba(216,222,228,.98);
  border-color:rgba(58,78,95,.34);
  color:#173f5f;
  box-shadow:0 8px 20px rgba(4,37,71,.28);
}


/* Empty Journal state: a calm, soft-gray surface without changing its content or frame. */
/* Empty Journal state: a calm, soft-gray panel with quiet, wavy contours. */
body.journalpage .journal-empty{
  position:relative;isolation:isolate;overflow:hidden;
  background:linear-gradient(145deg,#eef1f3 0%,#e2e7ea 48%,#d7dfe4 100%);
}
body.journalpage .journal-empty::before,
body.journalpage .journal-empty::after{
  content:"";position:absolute;inset:-1px;z-index:0;pointer-events:none;
}
body.journalpage .journal-empty::before{
  background:
    radial-gradient(110% 54% at -8% -12%,transparent 0 49%,rgba(255,255,255,.42) 50% 59%,transparent 60%),
    radial-gradient(104% 52% at 106% 112%,transparent 0 44%,rgba(184,198,208,.34) 45% 55%,transparent 56%);
}
body.journalpage .journal-empty::after{
  background:radial-gradient(92% 42% at 52% 108%,transparent 0 56%,rgba(255,255,255,.22) 57% 68%,transparent 69%);
}
body.journalpage .journal-empty>*{position:relative;z-index:1}
@media(max-width:620px), (orientation: landscape) and (max-height:620px) and (pointer:coarse){
  body.journalpage .journal-empty{
    background:linear-gradient(180deg,#eef1f3 0%,#e2e7ea calc(100% - 112px),rgba(225,230,233,.99) calc(100% - 104px),rgba(222,228,231,.96) calc(100% - 96px),rgba(219,226,229,.90) calc(100% - 84px),rgba(215,223,228,.78) calc(100% - 64px),rgba(215,223,228,.42) calc(100% - 32px),rgba(215,223,228,0) 100%);
  }
}

/* Empty Journal handoff: let the gray waiting panel dissolve into the badge field
   instead of ending on a hard lower rule. */
@media(max-width:620px), (orientation: landscape) and (max-height:620px) and (pointer:coarse){
  body.journalpage .journal-empty{
    margin-bottom:0;padding-bottom:112px;border-top:0!important;border-bottom:0!important;border-radius:18px 18px 0 0;overflow:visible;
    box-shadow:0 8px 22px rgba(7,42,80,.12);
  }
  body.journalpage .journal-empty h2,
  body.journalpage .journal-empty p{position:relative;z-index:2}
  body.journalpage .journal-empty::before{inset:0}
  body.journalpage .journal-empty::after{
    inset:auto -1px -168px;height:280px;z-index:0;box-sizing:border-box;
    background:
      radial-gradient(140% 38% at 50% 8%,rgba(255,255,255,.30) 0%,rgba(255,255,255,.12) 30%,rgba(255,255,255,0) 70%),
      linear-gradient(180deg,rgba(255,255,255,0) 0%,rgba(255,255,255,.05) 18%,rgba(255,255,255,.12) 46%,rgba(255,255,255,.06) 72%,rgba(255,255,255,0) 100%);
    -webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);
  }
  body.journalpage .journal-empty-badges{
    position:relative;isolation:isolate;margin-top:0;padding-top:10px;
  }
  body.journalpage .journal-empty-badges::before{
    display:none;
  }
  body.journalpage .journal-empty-badges__title,
  body.journalpage .journal-empty-badges__grid{position:relative;z-index:1}
}

/* Desktop empty Journal uses the same panel-to-badge fade as mobile/app. */
@media(min-width:621px){
  body.journalpage .journal-empty{
    margin-bottom:0;padding-bottom:112px;border-top:0!important;border-bottom:0!important;border-radius:18px 18px 0 0;overflow:visible;
    background:linear-gradient(180deg,#eef1f3 0%,#e2e7ea calc(100% - 112px),rgba(225,230,233,.99) calc(100% - 104px),rgba(222,228,231,.96) calc(100% - 96px),rgba(219,226,229,.90) calc(100% - 84px),rgba(215,223,228,.78) calc(100% - 64px),rgba(215,223,228,.42) calc(100% - 32px),rgba(215,223,228,0) 100%);
    box-shadow:0 8px 22px rgba(7,42,80,.12);
  }
  body.journalpage .journal-empty h2{color:#000}
  body.journalpage .journal-empty h2,
  body.journalpage .journal-empty p{position:relative;z-index:2}
  body.journalpage .journal-empty::before{inset:0}
  body.journalpage .journal-empty::after{
    inset:auto -1px -168px;height:280px;z-index:0;box-sizing:border-box;
    background:
      radial-gradient(140% 38% at 50% 8%,rgba(255,255,255,.30) 0%,rgba(255,255,255,.12) 30%,rgba(255,255,255,0) 70%),
      linear-gradient(180deg,rgba(255,255,255,0) 0%,rgba(255,255,255,.05) 18%,rgba(255,255,255,.12) 46%,rgba(255,255,255,.06) 72%,rgba(255,255,255,0) 100%);
    -webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);
  }
  body.journalpage .journal-empty-badges{
    position:relative;isolation:isolate;margin-top:0;padding-top:10px;
  }
  body.journalpage .journal-empty-badges::before{display:none}
  body.journalpage .journal-empty-badges__title,
  body.journalpage .journal-empty-badges__grid{position:relative;z-index:1}
}


/* Empty-Journal badges travel in one even, center-outward wave. */
@keyframes journal-empty-badge-wave{
  0%,6.5%{
    transform:translateY(-1px) scale(1.012);
    box-shadow:0 9px 22px color-mix(in srgb,var(--journal-badge) 60%,transparent),0 0 14px color-mix(in srgb,var(--journal-badge) 33%,transparent),inset 0 1px 1px rgba(255,255,255,.64);
  }
  8.333%,100%{
    transform:translateY(0) scale(1);
    box-shadow:0 7px 15px color-mix(in srgb,var(--journal-badge) 42%,transparent),inset 0 1px 1px rgba(255,255,255,.58);
  }
}
body.journalpage .journal-empty-badge__mark{
  animation:journal-empty-badge-wave 6.6s ease-in-out var(--journal-badge-wave-delay,0s) infinite;
  will-change:transform,box-shadow;
}
/* One phase per badge: a ripple begins at the center and travels to the edges. */
body.journalpage .journal-empty-badge:nth-child(5) .journal-empty-badge__mark{--journal-badge-wave-delay:0s}
body.journalpage .journal-empty-badge:nth-child(8) .journal-empty-badge__mark{--journal-badge-wave-delay:-.55s}
body.journalpage .journal-empty-badge:nth-child(2) .journal-empty-badge__mark{--journal-badge-wave-delay:-1.1s}
body.journalpage .journal-empty-badge:nth-child(4) .journal-empty-badge__mark{--journal-badge-wave-delay:-1.65s}
body.journalpage .journal-empty-badge:nth-child(6) .journal-empty-badge__mark{--journal-badge-wave-delay:-2.2s}
body.journalpage .journal-empty-badge:nth-child(7) .journal-empty-badge__mark{--journal-badge-wave-delay:-2.75s}
body.journalpage .journal-empty-badge:nth-child(9) .journal-empty-badge__mark{--journal-badge-wave-delay:-3.3s}
body.journalpage .journal-empty-badge:nth-child(11) .journal-empty-badge__mark{--journal-badge-wave-delay:-3.85s}
body.journalpage .journal-empty-badge:nth-child(1) .journal-empty-badge__mark{--journal-badge-wave-delay:-4.4s}
body.journalpage .journal-empty-badge:nth-child(3) .journal-empty-badge__mark{--journal-badge-wave-delay:-4.95s}
body.journalpage .journal-empty-badge:nth-child(10) .journal-empty-badge__mark{--journal-badge-wave-delay:-5.5s}
body.journalpage .journal-empty-badge:nth-child(12) .journal-empty-badge__mark{--journal-badge-wave-delay:-6.05s}
@media(prefers-reduced-motion:reduce){
  body.journalpage .journal-empty-badge__mark{animation:none;will-change:auto}
}

/* Journal badge paths: every saved event advances the next visible milestone. */
body.journalpage .journal-badge-paths{display:grid;gap:34px}
body.journalpage .journal-badge-path{margin:0;padding:0}
body.journalpage .journal-badge-path__title{
  margin:0 0 10px;color:#fff;font:700 16px/1.1 'Quicksand',sans-serif;
  letter-spacing:.01em;text-shadow:0 2px 9px rgba(3,43,83,.42);
}
body.journalpage .journal-badge-step{position:relative;margin:0 0 12px}
body.journalpage .journal-badge-step__head{
  display:flex;align-items:center;gap:10px;min-height:54px;padding:7px 11px 7px 8px;
  border:1px solid color-mix(in srgb,var(--journal-badge) 70%,#fff);
  border-radius:17px;background:linear-gradient(90deg,var(--journal-badge) 0%,color-mix(in srgb,var(--journal-badge) 60%,#052c53) 100%);
  box-shadow:0 7px 16px color-mix(in srgb,var(--journal-badge) 34%,transparent),inset 0 1px 0 rgba(255,255,255,.52);
}
body.journalpage .journal-badge-step__mark{
  display:grid;place-items:center;flex:0 0 auto;width:39px;height:39px;border:1.5px solid rgba(255,255,255,.88);
  border-radius:50%;color:#fff;background:rgba(6,48,85,.24);box-shadow:inset 0 1px 1px rgba(255,255,255,.42);
}
body.journalpage .journal-badge-step__mark svg{
  width:25px;height:25px;fill:none;stroke:currentColor;stroke-width:1.75;stroke-linecap:round;stroke-linejoin:round;
}
body.journalpage .journal-badge-step__copy{display:grid;gap:2px;min-width:0;color:#fff}
body.journalpage .journal-badge-step__copy strong{
  overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font:700 14px/1.08 'Quicksand',sans-serif;
}
body.journalpage .journal-badge-step__copy small{
  color:rgba(255,255,255,.84);font:600 10px/1 'Quicksand',sans-serif;letter-spacing:.08em;text-transform:uppercase;
}
body.journalpage .journal-badge-step__count{
  margin-left:auto;flex:0 0 auto;color:#fff;font:700 13px/1 'Quicksand',sans-serif;
  text-shadow:0 1px 4px rgba(3,43,83,.38);
}
body.journalpage .journal-badge-step__events{padding:10px 0 6px}
body.journalpage .journal-badge-step.is-locked .journal-badge-step__head{
  border-color:rgba(116,132,145,.42);background:linear-gradient(135deg,rgba(226,231,235,.94),rgba(188,199,207,.92));
  box-shadow:0 6px 14px rgba(3,43,83,.13),inset 0 1px 0 rgba(255,255,255,.78);
}
body.journalpage .journal-badge-step.is-locked .journal-badge-step__mark{
  border-color:rgba(92,113,128,.35);background:rgba(255,255,255,.6);color:#72828e;
}
body.journalpage .journal-badge-step.is-locked .journal-badge-step__copy,
body.journalpage .journal-badge-step.is-locked .journal-badge-step__count{color:#37546b;text-shadow:none}
body.journalpage .journal-badge-step.is-locked .journal-badge-step__copy small{color:rgba(55,84,107,.72)}
@media(max-width:620px), (orientation: landscape) and (max-height:620px) and (pointer:coarse){
  body.journalpage .journal-badge-paths{gap:25px}
  body.journalpage .journal-badge-path__title{margin-bottom:8px;font-size:14px}
  body.journalpage .journal-badge-step{margin-bottom:10px}
  body.journalpage .journal-badge-step__head{min-height:47px;gap:8px;padding:6px 9px 6px 7px;border-radius:15px}
  body.journalpage .journal-badge-step__mark{width:34px;height:34px}
  body.journalpage .journal-badge-step__mark svg{width:22px;height:22px}
  body.journalpage .journal-badge-step__copy strong{font-size:12px}
  body.journalpage .journal-badge-step__copy small{font-size:8px}
  body.journalpage .journal-badge-step__count{font-size:11px}
  body.journalpage .journal-badge-step__events{padding:8px 0 4px}
}


/* Journal event history uses horizontal cards so every badge path stays compact. */
body.journalpage .journal-badge-step__events .journal-grid{grid-template-columns:minmax(0,1fr);gap:10px}
body.journalpage .journal-badge-step__events .journal-card{
  flex-direction:row;min-height:150px;border-radius:14px;
}
body.journalpage .journal-badge-step__events .journal-card>img,
body.journalpage .journal-badge-step__events .journal-card__placeholder{
  flex:0 0 150px;width:150px;height:150px;min-height:150px;aspect-ratio:1 / 1;line-height:1;
}
body.journalpage .journal-badge-step__events .journal-card>img{display:block;object-fit:cover}
body.journalpage .journal-badge-step__events .journal-card__placeholder{display:grid;place-items:center}
body.journalpage .journal-badge-step__events .journal-card__body{min-width:0;padding:13px 43px 13px 14px}
body.journalpage .journal-badge-step__events .journal-card h2{font-size:16px;line-height:1.16}
body.journalpage .journal-badge-step__events .journal-card p{margin:5px 0;font-size:12px;line-height:1.28}
body.journalpage .journal-badge-step__events .journal-card time{font-size:11px;line-height:1.2}
@media(max-width:620px), (orientation: landscape) and (max-height:620px) and (pointer:coarse){
  body.journalpage .journal-badge-step__events .journal-grid{gap:8px}
  body.journalpage .journal-badge-step__events .journal-card{min-height:104px;border-radius:12px}
  body.journalpage .journal-badge-step__events .journal-card>img,
  body.journalpage .journal-badge-step__events .journal-card__placeholder{
    flex-basis:104px;width:104px;height:104px;min-height:104px;aspect-ratio:1 / 1;
  }
  body.journalpage .journal-badge-step__events .journal-card__body{padding:10px 37px 10px 10px}
  body.journalpage .journal-badge-step__events .journal-card h2{font-size:13px;line-height:1.16}
  body.journalpage .journal-badge-step__events .journal-card p{margin:4px 0;font-size:10px;line-height:1.22}
  body.journalpage .journal-badge-step__events .journal-card time{font-size:10px;line-height:1.15}
}

/* The Art/Theater label anchors the lower-right corner of each horizontal event card. */
body.journalpage .journal-badge-step__events .journal-card__category{
  top:auto;left:auto;right:8px;bottom:8px;
}
@media(max-width:620px), (orientation: landscape) and (max-height:620px) and (pointer:coarse){
  body.journalpage .journal-badge-step__events .journal-card__category{right:5px;bottom:5px}
}


/* Theater titles may run longer; keep their Journal cards aligned with art-card dimensions. */
body.journalpage .journal-badge-step__events .journal-card--theater{
  height:116px;min-height:116px;
}
body.journalpage .journal-badge-step__events .journal-card--theater .journal-card__body{overflow:hidden}
body.journalpage .journal-badge-step__events .journal-card--theater h2{
  display:-webkit-box;overflow:hidden;-webkit-box-orient:vertical;-webkit-line-clamp:2;
}
body.journalpage .journal-badge-step__events .journal-card--theater p{
  overflow:hidden;text-overflow:ellipsis;white-space:nowrap;
}
@media(max-width:620px), (orientation: landscape) and (max-height:620px) and (pointer:coarse){
  body.journalpage .journal-badge-step__events .journal-card--theater{
    height:94px;min-height:94px;
  }
}

/* Keep the name cue aligned with the responsive asterisk circle at every header size. */
@media(min-width:621px){
  body.journalpage .journal-name-control{grid-template-rows:20px auto}
}
@media(max-width:620px), (orientation: landscape) and (max-height:620px) and (pointer:coarse){
  body.journalpage .journal-name-control{grid-template-rows:17px auto}
}
@media(max-width:350px){
  body.journalpage .journal-name-control{grid-template-rows:15px auto}
}


/* Keep the Journal title’s descenders clear of its clipping edge. */
body.journalpage .journal-identity__title{
  line-height:1.2;
  padding:1px 0 3px;
}


/* Match the Journal heading star to the bottom-menu Journal star. */
body.journalpage .journal-identity .journal-title-star{
  width:24px;
  height:24px;
}


/* Give the Journal title its own line; keep the name prompt in the lower-right corner. */
body.journalpage .journal-name-control{
  position:absolute;
  right:0;
  bottom:0;
  z-index:1;
}
@media(max-width:620px), (orientation: landscape) and (max-height:620px) and (pointer:coarse){
  body.journalpage .journal-identity__titleline{
    height:32px;
  }
  body.journalpage .journal-identity__title{
    font-size:clamp(19px,6vw,23px);
  }
}
@media(min-width:621px){
  body.journalpage .journal-name-control{
    bottom:8px;
  }
}


/* The Journal name control is a clear light-blue action pill, not a gold asterisk. */
body.journalpage .journal-name-control{
  display:block;
}
body.journalpage .journal-name-edit{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:auto;
  height:auto;
  min-height:24px;
  padding:5px 10px;
  border:1px solid rgba(255,255,255,.56);
  border-radius:999px;
  background:linear-gradient(135deg,rgba(185,227,251,.48),rgba(98,181,229,.45));
  color:#fff;
  font:700 9px/1 'Quicksand',sans-serif;
  line-height:1;
  white-space:nowrap;
  text-shadow:0 1px 3px rgba(7,42,80,.42);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.28),0 3px 9px rgba(7,42,80,.18);
}
body.journalpage .journal-name-cue{
  display:none;
}
@media(min-width:621px){
  body.journalpage .journal-name-edit{
    min-height:28px;
    padding:6px 12px;
    font-size:10px;
  }
}


/* Long Journal names receive their own centered two-line title treatment. */
@media(max-width:620px), (orientation: landscape) and (max-height:620px) and (pointer:coarse){
  body.journalpage .journal-identity.has-long-title{
    left:104px;
    height:86px;
  }
  body.journalpage .journal-identity.has-long-title .journal-identity__titleline{
    display:grid;
    grid-template-columns:24px minmax(0,1fr);
    align-items:start;
    height:59px;
    gap:4px;
  }
  body.journalpage .journal-identity.has-long-title .journal-title-star{
    margin-top:2px;
  }
  body.journalpage .journal-identity.has-long-title .journal-identity__title{
    min-width:0;
    padding:1px 0;
    overflow:hidden;
    text-overflow:clip;
    white-space:normal;
    text-align:center;
    font-size:clamp(17px,4.8vw,22px);
    line-height:1.12;
    display:-webkit-box;
    -webkit-box-orient:vertical;
    -webkit-line-clamp:2;
  }
}
@media(max-width:350px){
  body.journalpage .journal-identity.has-long-title{
    left:96px;
  }
  body.journalpage .journal-identity.has-long-title .journal-identity__title{
    font-size:15px;
  }
}


/* Keep the name-pill label at the former helper-text scale. */
body.journalpage .journal-name-edit{
  font-size:8px;
}
@media(max-width:620px), (orientation: landscape) and (max-height:620px) and (pointer:coarse){
  body.journalpage .journal-name-edit{
    font-size:6.5px;
  }
}
@media(min-width:621px){
  body.journalpage .journal-name-edit{
    font-size:8px;
  }
}


/* Prevent native text autosizing from enlarging the Journal name pill. */
@media(max-width:620px), (orientation: landscape) and (max-height:620px) and (pointer:coarse){
  body.journalpage .journal-name-edit{
    font-size:6.5px !important;
    line-height:1 !important;
    -webkit-text-size-adjust:100%;
    text-size-adjust:100%;
  }
}
@media(min-width:621px){
  body.journalpage .journal-name-edit{
    font-size:8px !important;
    line-height:1 !important;
  }
}


/* Allow every wrapped Journal title to use both available lines. */
@media(max-width:620px), (orientation: landscape) and (max-height:620px) and (pointer:coarse){
  body.journalpage .journal-identity.has-long-title .journal-identity__title{
    overflow-wrap:anywhere;
    word-break:normal;
  }
}


/* Keep the Add your name label contained inside its inset header pill. */
body.journalpage .journal-name-control{
  right:8px;
}
body.journalpage .journal-name-edit{
  box-sizing:border-box;
  display:flex;
  align-items:center;
  justify-content:center;
  width:76px;
  min-width:76px;
  min-height:26px;
  padding:0 9px;
  overflow:hidden;
  text-align:center;
}
@media(max-width:620px), (orientation: landscape) and (max-height:620px) and (pointer:coarse){
  body.journalpage .journal-name-control{
    right:8px;
  }
  body.journalpage .journal-name-edit{
    width:76px;
    min-width:76px;
    min-height:26px;
  }
}
@media(min-width:621px){
  body.journalpage .journal-name-control{
    right:10px;
  }
  body.journalpage .journal-name-edit{
    width:86px;
    min-width:86px;
    min-height:30px;
  }
}


/* Long Journal names retain the standard title scale and wrap instead of shrinking. */
@media(max-width:620px), (orientation: landscape) and (max-height:620px) and (pointer:coarse){
  body.journalpage .journal-identity.has-long-title .journal-identity__title{
    font-size:clamp(19px,6vw,23px);
    line-height:1.2;
  }
}
@media(min-width:621px){
  body.journalpage .journal-identity.has-long-title .journal-identity__titleline{
    display:grid;
    grid-template-columns:27px minmax(0,1fr);
    align-items:center;
    height:84px;
    gap:6px;
  }
  body.journalpage .journal-identity.has-long-title .journal-title-star{
    align-self:start;
    margin-top:22px;
  }
  body.journalpage .journal-identity.has-long-title .journal-identity__title{
    min-width:0;
    padding:2px 0;
    overflow:hidden;
    text-overflow:clip;
    white-space:normal;
    text-align:center;
    font-size:clamp(26px,3vw,38px);
    line-height:1.16;
    display:-webkit-box;
    -webkit-box-orient:vertical;
    -webkit-line-clamp:2;
    overflow-wrap:anywhere;
  }
}


/* Keep the Journal star close to the first word of a wrapped title. */
body.journalpage .journal-identity.has-long-title .journal-identity__titleline{
  position:relative;
}
body.journalpage .journal-identity.has-long-title .journal-title-star{
  position:absolute;
  left:var(--journal-title-star-left,0px);
  top:var(--journal-title-star-top,0px);
  margin:0;
  z-index:1;
}
@media(max-width:620px), (orientation: landscape) and (max-height:620px) and (pointer:coarse){
  body.journalpage .journal-identity.has-long-title .journal-identity__titleline{
    display:block;
    height:59px;
  }
  body.journalpage .journal-identity.has-long-title .journal-identity__title{
    display:block;
    width:100%;
  }
}
@media(min-width:621px){
  body.journalpage .journal-identity.has-long-title .journal-identity__titleline{
    display:block;
    height:84px;
  }
  body.journalpage .journal-identity.has-long-title .journal-identity__title{
    display:-webkit-box;
    width:100%;
  }
}


/* A long owner name stays whole above the Sees Journal line. */
body.journalpage .journal-title-suffix::before{
  content:" ";
}
body.journalpage .journal-identity.has-long-title .journal-owner-name,
body.journalpage .journal-identity.has-long-title .journal-title-suffix{
  display:block;
}
body.journalpage .journal-identity.has-long-title .journal-owner-name{
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}
body.journalpage .journal-identity.has-long-title .journal-title-suffix{
  margin-top:2px;
  white-space:nowrap;
}
body.journalpage .journal-identity.has-long-title .journal-title-suffix::before{
  content:"";
}


/* Reserve a safe lane so the title star never covers a wrapped name. */
body.journalpage .journal-identity.has-long-title .journal-identity__title{
  box-sizing:border-box;
  padding-left:32px;
  padding-right:32px;
}


/* Use the title font's own space width between the Journal star and title. */
body.journalpage .journal-identity__titleline{
  gap:var(--journal-title-word-space,4px);
}


/* Center the two-line Journal title block on the logo. */
body.journalpage .journal-identity.has-long-title .journal-identity__titleline{
  position:absolute;
  top:var(--journal-title-block-top,0px);
  left:0;
  right:0;
}


/* Put the exact one-space separation on the star itself. */
body.journalpage .journal-identity__titleline{
  gap:0 !important;
}
body.journalpage .journal-identity .journal-title-star{
  margin-right:var(--journal-title-word-space,4px) !important;
}
body.journalpage .journal-identity.has-long-title .journal-title-star{
  margin:0 !important;
}


/* Journal personalization stays beneath the title: a quiet, clear action without crowding the name. */
body.journalpage .journal-name-control{
  position:absolute;
  top:auto;
  right:auto!important;
  bottom:0;
  left:50%;
  z-index:2;
  display:block;
  min-width:0;
  transform:translateX(-50%);
}
body.journalpage .journal-name-edit{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:auto!important;
  min-width:118px!important;
  min-height:28px!important;
  margin:0;
  padding:0 13px!important;
  overflow:visible;
  border:1px solid rgba(255,255,255,.7);
  border-radius:999px;
  background:rgba(151,215,245,.3);
  color:#fff;
  font:600 11px/1 'Quicksand',sans-serif!important;
  line-height:1!important;
  white-space:nowrap;
  text-shadow:0 1px 5px rgba(7,42,80,.46);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.18),0 3px 9px rgba(7,42,80,.14);
  backdrop-filter:blur(10px);
  -webkit-backdrop-filter:blur(10px);
}
body.journalpage .journal-name-edit:hover,
body.journalpage .journal-name-edit:focus-visible{
  background:rgba(191,232,249,.42);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.24),0 0 0 2px rgba(255,255,255,.64);
}
@media(min-width:621px){
  body.journalpage .journal-name-control{bottom:0}
  body.journalpage .journal-name-edit{min-width:130px!important;min-height:31px!important;padding:0 16px!important;font-size:12px!important}
}
@media(max-width:620px), (orientation: landscape) and (max-height:620px) and (pointer:coarse){
  body.journalpage .journal-name-control{bottom:0}
  body.journalpage .journal-identity.has-long-title{height:91px}
  body.journalpage .journal-identity.has-long-title .journal-name-control{bottom:0}
}


/* Keep the Journal title centered above its personalization control. */
body.journalpage .journal-identity__titleline{justify-content:center}


/* Journal title and personalization rhythm: center the title, then give the smaller action room. */
body.journalpage .journal-identity__titleline{position:relative;justify-content:center}
body.journalpage .journal-identity .journal-title-star{
  position:absolute;
  left:var(--journal-title-star-left,0px);
  top:var(--journal-title-star-top,0px);
  margin:0;
  z-index:1;
}
@media(min-width:621px){
  body.journalpage .journal-identity{height:126px}
  body.journalpage .journal-identity__titleline{height:84px}
  body.journalpage .journal-name-control{bottom:0}
  body.journalpage .journal-name-edit{min-width:120px!important;min-height:27px!important;padding:0 13px!important;font-size:11px!important}
}
@media(max-width:620px), (orientation: landscape) and (max-height:620px) and (pointer:coarse){
  body.journalpage .journal-identity{top:calc(34px + env(safe-area-inset-top));height:70px}
  body.journalpage .journal-identity__titleline{height:29px}
  body.journalpage .journal-name-control{bottom:0}
  body.journalpage .journal-name-edit{min-width:105px!important;min-height:24px!important;padding:0 10px!important;font-size:10px!important}
  body.journalpage .journal-identity.has-long-title{height:108px}
}
@media(max-width:350px){
  body.journalpage .journal-identity{top:calc(30px + env(safe-area-inset-top));height:68px}
  body.journalpage .journal-identity.has-long-title{height:105px}
  body.journalpage .journal-name-edit{min-width:98px!important}
}


/* Populated Journals reuse the former waiting field as a visual badge ledger. */
body.journalpage .journal-progress-badges{
  max-width:580px;margin:24px auto 34px;padding:24px 16px 26px;
}
body.journalpage .journal-progress-badges h2{
  margin:0 0 19px;color:var(--ink-strong);font:700 20px/1.15 'Quicksand',sans-serif;
}
body.journalpage .journal-progress-badges__grid{
  display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:22px 14px;align-items:start;
}
body.journalpage .journal-progress-badge{
  display:grid;grid-template-rows:64px auto auto;justify-items:center;align-items:start;gap:6px;min-width:0;
  padding:0;border:0;background:transparent;color:inherit;font:inherit;cursor:pointer;-webkit-appearance:none;appearance:none;
}
body.journalpage .journal-progress-badge:focus-visible{outline:none}
body.journalpage .journal-progress-badge__mark{
  display:grid;place-items:center;width:64px;height:64px;box-sizing:border-box;border:2px solid #d5a11e;border-radius:50%;
}
body.journalpage .journal-progress-badge.is-earned .journal-progress-badge__mark{
  color:#fff;background:linear-gradient(145deg,color-mix(in srgb,var(--journal-badge) 76%,#fff),var(--journal-badge) 68%,color-mix(in srgb,var(--journal-badge) 74%,#052c53));
  box-shadow:0 7px 15px color-mix(in srgb,var(--journal-badge) 62%,transparent),inset 0 1px 1px rgba(255,255,255,.58);
}
body.journalpage .journal-progress-badge.is-future .journal-progress-badge__mark{
  color:rgba(255,255,255,.43);border-color:#717980;background:linear-gradient(145deg,#68717a,#434b53);box-shadow:inset 0 1px 1px rgba(255,255,255,.12),0 5px 12px rgba(37,47,57,.18);
}
body.journalpage .journal-progress-badge__mark svg{width:38px;height:38px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
body.journalpage .journal-progress-badge__mark .journal-badge-word{font-size:12px}
body.journalpage .journal-progress-badge__label{max-width:100%;color:var(--ink-strong);font:700 11.5px/1.12 'Quicksand',sans-serif}
body.journalpage .journal-progress-badge.is-future .journal-progress-badge__label{color:#69727a}
body.journalpage .journal-progress-badge__date{color:#8a6509;font:700 9.5px/1.1 'Quicksand',sans-serif}
body.journalpage .journal-progress-badge.is-future .journal-progress-badge__date{color:#7d858b;font-weight:600}
body.journalpage .journal-progress-badge.is-earned:focus-visible .journal-progress-badge__mark{box-shadow:0 0 0 3px #fff,0 0 0 5px var(--journal-badge),0 7px 15px color-mix(in srgb,var(--journal-badge) 62%,transparent)}
body.journalpage .journal-progress-badge.is-future:focus-visible .journal-progress-badge__mark{box-shadow:0 0 0 3px #fff,0 0 0 5px #667078,0 5px 12px rgba(37,47,57,.2)}
@media(max-width:620px), (orientation: landscape) and (max-height:620px) and (pointer:coarse){
  body.journalpage .journal-progress-badges{margin:22px auto 30px;padding:20px 10px 23px}
  body.journalpage .journal-progress-badges h2{margin-bottom:16px;font-size:17px}
  body.journalpage .journal-progress-badges__grid{gap:18px 8px}
  body.journalpage .journal-progress-badge{grid-template-rows:56px auto auto;gap:5px}
  body.journalpage .journal-progress-badge__mark{width:56px;height:56px}
  body.journalpage .journal-progress-badge__mark svg{width:34px;height:34px}
  body.journalpage .journal-progress-badge__label{font-size:10px}
  body.journalpage .journal-progress-badge__date{font-size:8.5px}
}


/* Future Journal badge placements stay visible but deliberately quiet. */
body.journalpage .journal-progress-badge.is-future .journal-progress-badge__mark{
  border-color:#aeb8bd;
  background:linear-gradient(145deg,#c8d0d4,#9ca8ae);
  box-shadow:inset 0 1px 1px rgba(255,255,255,.42),0 5px 12px rgba(37,47,57,.1);
}


/* One chronological Journal timeline keeps every event singular. */
body.journalpage .journal-timeline{display:grid;gap:28px;margin:0}
body.journalpage .journal-timeline .journal-grid{grid-template-columns:minmax(0,1fr);gap:10px}
body.journalpage .journal-timeline .journal-card{
  flex-direction:row;min-height:150px;border-radius:14px;
}
body.journalpage .journal-timeline .journal-card>img,
body.journalpage .journal-timeline .journal-card__placeholder{
  flex:0 0 150px;width:150px;height:150px;min-height:150px;aspect-ratio:1 / 1;line-height:1;
}
body.journalpage .journal-timeline .journal-card>img{display:block;object-fit:cover}
body.journalpage .journal-timeline .journal-card__placeholder{display:grid;place-items:center}
body.journalpage .journal-timeline .journal-card__body{min-width:0;padding:13px 43px 13px 14px}
body.journalpage .journal-timeline .journal-card h2{font-size:16px;line-height:1.16}
body.journalpage .journal-timeline .journal-card p{margin:5px 0;font-size:12px;line-height:1.28}
body.journalpage .journal-timeline .journal-card time{font-size:11px;line-height:1.2}
body.journalpage .journal-timeline .journal-card__category{top:auto;left:auto;right:8px;bottom:8px}
body.journalpage .journal-event-progress{display:flex;flex-wrap:wrap;gap:5px;margin-top:8px}
body.journalpage .journal-event-progress__marker{
  display:inline-flex;align-items:center;gap:3px;min-height:20px;padding:2px 5px 2px 3px;
  border:1px solid color-mix(in srgb,var(--journal-badge) 70%,#fff);border-radius:999px;
  background:color-mix(in srgb,var(--journal-badge) 24%,#063e73);color:#fff;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.22);font:700 8.5px/1 'Quicksand',sans-serif;
}
body.journalpage .journal-event-progress__marker.is-earned{border-color:#e7c465;box-shadow:0 2px 7px color-mix(in srgb,var(--journal-badge) 45%,transparent),inset 0 1px 0 rgba(255,255,255,.3)}
body.journalpage .journal-event-progress__icon{display:grid;place-items:center;width:13px;height:13px}
body.journalpage .journal-event-progress__icon svg{width:13px;height:13px;fill:none;stroke:currentColor;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round}
body.journalpage .journal-event-progress__marker b{font:700 8.5px/1 'Quicksand',sans-serif}
@media(max-width:620px), (orientation: landscape) and (max-height:620px) and (pointer:coarse){
  body.journalpage .journal-timeline{gap:20px}
  body.journalpage .journal-timeline .journal-grid{gap:8px}
  body.journalpage .journal-timeline .journal-card{min-height:104px;border-radius:12px}
  body.journalpage .journal-timeline .journal-card>img,
  body.journalpage .journal-timeline .journal-card__placeholder{flex-basis:104px;width:104px;height:104px;min-height:104px;aspect-ratio:1 / 1}
  body.journalpage .journal-timeline .journal-card__body{padding:10px 37px 10px 10px}
  body.journalpage .journal-timeline .journal-card h2{font-size:13px;line-height:1.16}
  body.journalpage .journal-timeline .journal-card p{margin:4px 0;font-size:10px;line-height:1.22}
  body.journalpage .journal-timeline .journal-card time{font-size:10px;line-height:1.15}
  body.journalpage .journal-timeline .journal-card__category{right:5px;bottom:5px}
  body.journalpage .journal-event-progress{gap:4px;margin-top:6px}
  body.journalpage .journal-event-progress__marker{min-height:17px;padding:2px 4px 2px 2px;font-size:7px}
  body.journalpage .journal-event-progress__icon,body.journalpage .journal-event-progress__icon svg{width:11px;height:11px}
  body.journalpage .journal-event-progress__marker b{font-size:7px}
}


/* Journal progress markers read as discrete badges, not colored bars. */
body.journalpage .journal-event-progress{align-items:center;gap:6px}
body.journalpage .journal-event-progress__label{
  color:rgba(255,255,255,.7);font:700 8.5px/1 'Quicksand',sans-serif;letter-spacing:.08em;text-transform:uppercase;
}
body.journalpage .journal-event-progress__marker{
  min-height:20px;padding:0;border:0;border-radius:0;background:transparent;color:rgba(255,255,255,.92);box-shadow:none;gap:4px;
}
body.journalpage .journal-event-progress__icon{
  width:20px;height:20px;border:1.5px solid color-mix(in srgb,var(--journal-badge) 74%,#fff);border-radius:50%;
  background:color-mix(in srgb,var(--journal-badge) 76%,#063e73);box-shadow:inset 0 1px 0 rgba(255,255,255,.3);
}
body.journalpage .journal-event-progress__icon svg{width:12px;height:12px}
body.journalpage .journal-event-progress__marker b{color:rgba(255,255,255,.92);font:700 8.5px/1 'Quicksand',sans-serif}
body.journalpage .journal-event-progress__marker.is-earned .journal-event-progress__icon{border-color:#e7c465;box-shadow:0 2px 7px color-mix(in srgb,var(--journal-badge) 45%,transparent),inset 0 1px 0 rgba(255,255,255,.38)}
@media(max-width:620px), (orientation: landscape) and (max-height:620px) and (pointer:coarse){
  body.journalpage .journal-event-progress{gap:5px}
  body.journalpage .journal-event-progress__label{font-size:7px}
  body.journalpage .journal-event-progress__marker{min-height:18px;gap:3px}
  body.journalpage .journal-event-progress__icon{width:18px;height:18px}
  body.journalpage .journal-event-progress__icon svg{width:11px;height:11px}
  body.journalpage .journal-event-progress__marker b{font-size:7px}
}


/* Badge circles visualize their own progress, slice by slice. */
body.journalpage .journal-progress-badges h2{color:var(--ink-strong)}
body.journalpage .journal-progress-badge{cursor:help}
body.journalpage .journal-progress-badge.is-earned{cursor:pointer}
body.journalpage .journal-progress-badge__mark{
  color:#fff;
  border-color:rgba(255,255,255,.82);
  background:
    repeating-conic-gradient(from -90deg,transparent 0 calc(var(--journal-slice) - 1deg),rgba(255,255,255,.72) calc(var(--journal-slice) - 1deg) var(--journal-slice)),
    conic-gradient(from -90deg,var(--journal-badge) 0deg var(--journal-fill),#b4bdc3 var(--journal-fill) 360deg);
  box-shadow:inset 0 1px 1px rgba(255,255,255,.5),0 6px 13px rgba(37,47,57,.15);
}
body.journalpage .journal-progress-badge.is-progress .journal-progress-badge__mark{border-color:#99a4ab}
body.journalpage .journal-progress-badge.is-earned .journal-progress-badge__mark{border-color:#d5a11e;box-shadow:0 6px 14px color-mix(in srgb,var(--journal-badge) 44%,transparent),inset 0 1px 1px rgba(255,255,255,.58)}
body.journalpage .journal-progress-badge.is-progress .journal-progress-badge__label{color:#53616b}
body.journalpage .journal-progress-badge.is-progress .journal-progress-badge__date{color:#697780;font-weight:700}
body.journalpage .journal-progress-badge.is-progress:focus-visible .journal-progress-badge__mark{box-shadow:0 0 0 3px #fff,0 0 0 5px #87939a,0 6px 13px rgba(37,47,57,.16)}


/* Locked progress stays clean; earned badges join the Journal's existing calm badge wave. */
body.journalpage .journal-progress-badge.is-progress .journal-progress-badge__mark{
  background:conic-gradient(from -90deg,var(--journal-badge) 0deg var(--journal-fill),#b4bdc3 var(--journal-fill) 360deg);
}
body.journalpage .journal-progress-badge.is-earned .journal-progress-badge__mark{
  animation:journal-empty-badge-wave 6.6s ease-in-out var(--journal-badge-wave-delay,0s) infinite;
  will-change:transform,box-shadow;
}
body.journalpage .journal-progress-badge:nth-child(5){--journal-badge-wave-delay:0s}
body.journalpage .journal-progress-badge:nth-child(8){--journal-badge-wave-delay:-.55s}
body.journalpage .journal-progress-badge:nth-child(2){--journal-badge-wave-delay:-1.1s}
body.journalpage .journal-progress-badge:nth-child(4){--journal-badge-wave-delay:-1.65s}
body.journalpage .journal-progress-badge:nth-child(6){--journal-badge-wave-delay:-2.2s}
body.journalpage .journal-progress-badge:nth-child(7){--journal-badge-wave-delay:-2.75s}
body.journalpage .journal-progress-badge:nth-child(9){--journal-badge-wave-delay:-3.3s}
body.journalpage .journal-progress-badge:nth-child(11){--journal-badge-wave-delay:-3.85s}
body.journalpage .journal-progress-badge:nth-child(1){--journal-badge-wave-delay:-4.4s}
body.journalpage .journal-progress-badge:nth-child(3){--journal-badge-wave-delay:-4.95s}
body.journalpage .journal-progress-badge:nth-child(10){--journal-badge-wave-delay:-5.5s}
body.journalpage .journal-progress-badge:nth-child(12){--journal-badge-wave-delay:-6.05s}


/* Restore the intentional long-name Journal title layout. */
/* A long owner name is never ellipsized or auto-shrunk: it owns line one,
   while “Sees Journal” takes the centered second line. */
body.journalpage .journal-identity.has-long-title .journal-identity__title{
  overflow:visible!important;
  text-overflow:clip!important;
  -webkit-line-clamp:unset!important;
}
body.journalpage .journal-identity.has-long-title .journal-owner-name{
  overflow:visible!important;
  text-overflow:clip!important;
  white-space:nowrap!important;
}
body.journalpage .journal-identity.has-long-title .journal-title-suffix{
  display:block!important;
  white-space:nowrap!important;
}
@media(max-width:620px), (orientation: landscape) and (max-height:620px) and (pointer:coarse){
  body.journalpage .journal-identity.has-long-title{left:104px;right:6px}
}


/* Keep a Journal header's long-name control clear of the badge field. */
body.journalpage .journal-title-first-word{display:inline}
@media(max-width:620px), (orientation: landscape) and (max-height:620px) and (pointer:coarse){
  body.journalpage.journal-owner-title-wrapped .journal-wrap{padding-top:62px}
}


/* Theater Journal entries use the exact square media dimensions of art entries. */
body.journalpage .journal-timeline .journal-card.journal-card--theater > img,
body.journalpage .journal-timeline .journal-card.journal-card--theater > .journal-card__placeholder{
  flex:0 0 150px;
  width:150px;
  height:150px;
  min-height:150px;
  aspect-ratio:1 / 1;
  object-fit:cover;
}
@media(max-width:620px), (orientation: landscape) and (max-height:620px) and (pointer:coarse){
  body.journalpage .journal-timeline .journal-card.journal-card--theater > img,
  body.journalpage .journal-timeline .journal-card.journal-card--theater > .journal-card__placeholder{
    flex-basis:104px;
    width:104px;
    height:104px;
    min-height:104px;
  }
}


/* Populated Journal badges use a borderless, quieter glass surface. */
body.journalpage .journal-progress-badges{
  border:0;
  background:
    linear-gradient(135deg,rgba(255,255,255,.34),rgba(214,236,249,.18) 52%,rgba(168,211,236,.14)),
    rgba(230,242,250,.16);
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.54),
    inset 0 -1px 0 rgba(74,143,186,.10),
    0 14px 34px rgba(7,42,80,.15);
  backdrop-filter:blur(20px) saturate(1.16);
  -webkit-backdrop-filter:blur(20px) saturate(1.16);
}
body.journalpage .journal-progress-badges::before{
  inset:0;
  background:
    radial-gradient(74% 76% at 5% 0%,rgba(255,255,255,.38),transparent 68%),
    radial-gradient(68% 88% at 100% 100%,rgba(123,187,222,.17),transparent 70%);
}
body.journalpage .journal-progress-badges::after{
  inset:0;
  background:linear-gradient(112deg,rgba(255,255,255,.12),transparent 38%,rgba(255,255,255,.04) 64%,transparent);
}


/* Journal name threshold and action placement: stable across app and mobile. */
/* The invitation stays centered below the title; only the post-name Edit action moves right. */
body.journalpage .journal-identity:not(.has-owner-name) .journal-name-control{
  left:50%!important;
  right:auto!important;
  bottom:0;
  transform:translateX(-50%)!important;
}
body.journalpage .journal-identity:not(.has-owner-name) .journal-name-edit{
  min-width:105px!important;
  min-height:24px!important;
  padding:0 10px!important;
  font-size:10px!important;
}
body.journalpage .journal-identity.has-owner-name .journal-name-control{
  left:auto!important;
  right:2px!important;
  bottom:0;
  transform:none!important;
}
body.journalpage .journal-identity.has-owner-name .journal-name-edit{
  min-width:78px!important;
  min-height:22px!important;
  padding:0 9px!important;
  font-size:9px!important;
}
body.journalpage .journal-identity.has-long-title .journal-owner-name,
body.journalpage .journal-identity.has-long-title .journal-title-suffix{
  display:block!important;
}
body.journalpage .journal-identity.has-long-title .journal-title-suffix{
  margin-top:2px;
}
@media(min-width:621px){
  body.journalpage .journal-identity:not(.has-owner-name) .journal-name-edit{
    min-width:120px!important;
    min-height:27px!important;
    padding:0 13px!important;
    font-size:11px!important;
  }
  body.journalpage .journal-identity.has-owner-name .journal-name-edit{
    min-width:86px!important;
    min-height:24px!important;
    padding:0 10px!important;
    font-size:10px!important;
  }
  body.journalpage.journal-owner-title-wrapped .site-header{margin-bottom:130px;}
}
@media(max-width:620px), (orientation: landscape) and (max-height:620px) and (pointer:coarse){
  body.journalpage .journal-identity.has-long-title{height:108px;}
  body.journalpage.journal-owner-title-wrapped .site-header{margin-bottom:104px;}
  body.journalpage.journal-owner-title-wrapped .journal-wrap{padding-top:18px;}
}


/* Populated Journal badge labels use the shared dark-blue ink. */
body.journalpage .journal-progress-badges .journal-progress-badge__label{
  color:#005a9a;
}


/* Earned Journal badge text carries a soft white lift. */
body.journalpage .journal-progress-badge.is-earned .journal-progress-badge__label,
body.journalpage .journal-progress-badge.is-earned .journal-progress-badge__date{
  text-shadow:
    0 1px 2px rgba(255,255,255,.92),
    0 0 8px rgba(255,255,255,.48);
}

/* Earned badge rail: compact glyphs sit just right of the floating logo.
   31px is 75% of the homepage's 41.14px search pill; no badge circle is used. */
@media(max-width:620px), (orientation: landscape) and (max-height:620px) and (pointer:coarse){
  body.has-mobile-masthead .mast-earned-badges{
    position:fixed;
    top:calc(14px + env(safe-area-inset-top));
    left:109.28px;
    z-index:1152;
    display:flex;
    align-items:center;
    gap:2px;
    width:auto;
    max-width:calc(100vw - 200px);
    height:31px;
    overflow:hidden;
    pointer-events:none;
  }
  body.has-mobile-masthead .mast-earned-badges[hidden]{display:none!important}
  body.has-mobile-masthead .mast-earned-badge{
    display:grid;
    place-items:center;
    flex:0 0 31px;
    width:31px;
    height:31px;
    color:var(--mast-earned-badge,#d5a11e);
    filter:drop-shadow(0 1px 3px rgba(3,58,108,.38));
  }
  body.has-mobile-masthead .mast-earned-badge svg{
    display:block;
    width:31px;
    height:31px;
    fill:none;
    stroke:currentColor;
    stroke-width:1.7;
    stroke-linecap:round;
    stroke-linejoin:round;
  }
  body.has-mobile-masthead .mast-earned-badge__glyph{
    display:block;
    width:28px;
    height:28px;
    background:currentColor;
    background-color:currentColor;
    -webkit-mask-repeat:no-repeat;
    mask-repeat:no-repeat;
    -webkit-mask-position:center;
    mask-position:center;
    -webkit-mask-size:contain;
    mask-size:contain;
  }
  body.has-mobile-masthead .mast-earned-badge__glyph--image{
    background:currentColor;
    background-color:currentColor;
    -webkit-mask-image:var(--mast-earned-badge-image);
    mask-image:var(--mast-earned-badge-image);
  }
  body.has-mobile-masthead .mast-earned-badge__glyph--drag{
    -webkit-mask-image:url("/assets/images/badges/first-drag-show-clipart-compact-clean.png");
    mask-image:url("/assets/images/badges/first-drag-show-clipart-compact-clean.png");
  }
  body.has-mobile-masthead .mast-earned-badge__glyph--drag-supporter{
    -webkit-mask-image:url("/assets/images/badges/drag-supporter-clipart-compact.png");
    mask-image:url("/assets/images/badges/drag-supporter-clipart-compact.png");
  }
}

/* Neighborhood mobile masthead: keep the stats line close to the city control,
   and move the content start up with it while preserving the rail clearance. */
@media(max-width:620px), (orientation: landscape) and (max-height:620px) and (pointer:coarse){
  body.nbpage.cityswitch-ready .site-header{
    margin-bottom:calc(82px + env(safe-area-inset-top))!important;
  }
  body.opennow.nbpage .mastright > .guide-homestats{
    top:calc(190px + env(safe-area-inset-top));
  }
}

/* Align the top masthead controls with the floating logo's top edge.
   Only Saved, Weather, and the live stats block move; Search, Map, and badges stay put. */
@media(max-width:620px), (orientation: landscape) and (max-height:620px) and (pointer:coarse){
  body.has-mobile-masthead .home-mast-tools > .saved-masthead,
  body.has-mobile-masthead .home-mast-tools > .weather-masthead,
  body.has-mobile-masthead .home-mast-tools > .homestats{
    transform:translateY(-22.14px);
  }
  body:is(.home,.eventpage) .home-mast-tools > .saved-masthead,
  body:is(.home,.eventpage) .home-mast-tools > .weather-masthead,
  body:is(.home,.eventpage) .home-mast-tools > .homestats,
  body.opennow .home-mast-tools > .saved-masthead,
  body.opennow .home-mast-tools > .weather-masthead,
  body.opennow .home-mast-tools > .homestats,
  body.journalpage .home-mast-tools > .saved-masthead,
  body.journalpage .home-mast-tools > .weather-masthead,
  body.journalpage .home-mast-tools > .homestats,
  body.savedpage .home-mast-tools > .saved-masthead,
  body.savedpage .home-mast-tools > .weather-masthead,
  body.savedpage .home-mast-tools > .homestats,
  body.eventpage .home-mast-tools > .saved-masthead,
  body.eventpage .home-mast-tools > .weather-masthead,
  body.eventpage .home-mast-tools > .homestats{
    transform:translateY(-24.14px);
  }
}

/* Normalize earned glyph presentation without changing the rail's 31px footprint. */
@media(max-width:620px), (orientation: landscape) and (max-height:620px) and (pointer:coarse){
  body.has-mobile-masthead .mast-earned-badge svg{
    width:28px;
    height:28px;
    filter:
      drop-shadow(0 0 1.5px rgba(0,0,0,.95))
      drop-shadow(0 0 3px rgba(0,0,0,.62))
      drop-shadow(0 1px 3px rgba(3,58,108,.28));
  }
}

/* Tighten and baseline-align the earned glyph rail. */
@media(max-width:620px), (orientation: landscape) and (max-height:620px) and (pointer:coarse){
  body.has-mobile-masthead .mast-earned-badges{
    align-items:flex-end;
    gap:0;
  }
  body.has-mobile-masthead .mast-earned-badge{
    align-items:end;
    justify-items:center;
  }
  body.has-mobile-masthead .mast-earned-badge svg{
    align-self:end;
    filter:
      drop-shadow(0 0 1px rgba(0,0,0,.66))
      drop-shadow(0 0 2px rgba(0,0,0,.28))
      drop-shadow(0 1px 2px rgba(3,58,108,.24));
    transform:translateY(1px);
  }
  body.has-mobile-masthead .mast-earned-badge svg.mast-earned-badge__trifecta-glyph{
    width:28px;
    height:28px;
  }
  body.has-mobile-masthead .mast-earned-badge__glyph{
    align-self:end;
    width:28px;
    height:28px;
    filter:
      drop-shadow(0 0 1px rgba(0,0,0,.66))
      drop-shadow(0 0 2px rgba(0,0,0,.28))
      drop-shadow(0 1px 2px rgba(3,58,108,.24));
    transform:translateY(1px);
  }
}

/* Keep the earned glyph rail complete: it may use a second line without moving
   Saved, Weather, or the live stats row. The first ten glyphs remain visible;
   additional glyphs lift this rail by one glyph line on its own. */
@media(max-width:620px), (orientation: landscape) and (max-height:620px) and (pointer:coarse){
  body.has-mobile-masthead .mast-earned-badges{
    width:calc(100vw - 110px);
    max-width:none;
    height:auto;
    min-height:31px;
    overflow:visible;
    flex-wrap:wrap;
    align-content:flex-start;
    align-items:flex-end;
    gap:0;
  }
  body.has-mobile-masthead .mast-earned-badge{
    flex:0 0 28px;
    width:28px;
    height:31px;
  }
  body.has-mobile-masthead .mast-earned-badges:has(.mast-earned-badge:nth-child(11)){
    transform:translateY(-31px);
  }
}

/* Stack the shared masthead bands within the logo's vertical footprint:
   earned glyphs at the top, Saved/Weather/stats at the bottom. */
@media(max-width:620px), (orientation: landscape) and (max-height:620px) and (pointer:coarse){
  body.has-mobile-masthead .mast-earned-badges{
    top:calc(14px + env(safe-area-inset-top));
    align-content:flex-start;
    row-gap:0;
  }
  body.has-mobile-masthead .mast-earned-badge{
    height:28px;
  }
  body.has-mobile-masthead .home-mast-tools > .saved-masthead,
  body.has-mobile-masthead .home-mast-tools > .weather-masthead,
  body.has-mobile-masthead .home-mast-tools > .homestats{
    transform:translateY(20.5px);
  }
}


/* See Now clock line: never clip the complete day/time/city context on first paint. */
@media(max-width:620px), (orientation: landscape) and (max-height:620px) and (pointer:coarse){
  body.opennow #on-clock{
    display:block !important;
    position:relative;
    z-index:1;
    width:100%;
    max-width:100%;
    min-width:0;
    height:auto !important;
    max-height:none !important;
    overflow:visible !important;
    white-space:normal !important;
    text-overflow:clip !important;
    overflow-wrap:normal;
  }
}


/* Journal badge ledger: earned milestones lead in a gold glass group;
   each path's next milestone remains below with a clear visual separation. */
body.journalpage .journal-progress-badges{
  display:grid;
  gap:0;
}
body.journalpage .journal-progress-badges__group{
  min-width:0;
}
body.journalpage .journal-progress-badges__group--earned{
  padding:16px 12px 18px;
  border:1px solid rgba(232,190,66,.58);
  border-radius:20px;
  background:
    linear-gradient(135deg,rgba(255,229,132,.34),rgba(213,166,42,.22) 52%,rgba(116,82,8,.18)),
    rgba(255,218,102,.16);
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.56),
    inset 0 -1px 0 rgba(120,83,6,.16),
    0 12px 28px rgba(72,49,5,.16);
  backdrop-filter:blur(18px) saturate(1.14);
  -webkit-backdrop-filter:blur(18px) saturate(1.14);
}
body.journalpage .journal-progress-badges__group--earned h2{
  color:#76520a;
  text-shadow:0 1px 2px rgba(255,255,255,.56);
}
body.journalpage .journal-progress-badges__group--earned + .journal-progress-badges__group--next{
  margin-top:24px;
  padding-top:22px;
  border-top:1px solid rgba(255,255,255,.36);
}
body.journalpage .journal-progress-badges__group--next{
  padding-inline:4px;
}
@media(max-width:620px), (orientation: landscape) and (max-height:620px) and (pointer:coarse){
  body.journalpage .journal-progress-badges__group--earned{
    padding:14px 8px 16px;
    border-radius:17px;
  }
  body.journalpage .journal-progress-badges__group--earned + .journal-progress-badges__group--next{
    margin-top:19px;
    padding-top:18px;
  }
  body.journalpage .journal-progress-badges__group--next{padding-inline:2px}
}


/* Give the earned and next-goal badge groups independent surfaces. */
body.journalpage .journal-progress-badges{
  background:transparent;
  border:0;
  box-shadow:none;
  backdrop-filter:none;
  -webkit-backdrop-filter:none;
}
body.journalpage .journal-progress-badges__group--next{
  padding:16px 12px 18px;
  border:1px solid rgba(255,255,255,.34);
  border-radius:20px;
  background:
    linear-gradient(135deg,rgba(235,245,252,.24),rgba(175,204,222,.16) 52%,rgba(77,126,161,.14)),
    rgba(224,239,248,.12);
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.42),
    inset 0 -1px 0 rgba(31,81,116,.12),
    0 12px 28px rgba(7,42,80,.13);
  backdrop-filter:blur(18px) saturate(1.1);
  -webkit-backdrop-filter:blur(18px) saturate(1.1);
}
@media(max-width:620px), (orientation: landscape) and (max-height:620px) and (pointer:coarse){
  body.journalpage .journal-progress-badges__group--next{
    padding:14px 8px 16px;
    border-radius:17px;
  }
}


/* Remove the outer badge-ledger panel entirely; the two inner groups keep their own surfaces. */
body.journalpage .journal-progress-badges::before,
body.journalpage .journal-progress-badges::after{
  content:none!important;
  display:none!important;
}


/* Match badge section width to the Journal event timeline. */
body.journalpage .journal-progress-badges{
  width:100%;
  max-width:none;
  margin:24px 0 34px;
  padding:0;
}
body.journalpage .journal-progress-badges__group--earned{
  background:
    linear-gradient(135deg,rgba(255,229,132,.80),rgba(213,166,42,.80) 52%,rgba(116,82,8,.80)),
    rgba(255,218,102,.80);
}


/* Swipeable earned badge rail cue for more than ten glyphs. */
@media(max-width:620px), (orientation: landscape) and (max-height:620px) and (pointer:coarse){
  body.has-mobile-masthead .mast-earned-badges{
    width:calc(100vw - 110px)!important;
    max-width:none!important;
    height:28px!important;
    min-height:28px!important;
    box-sizing:border-box;
    flex-wrap:nowrap!important;
    align-items:flex-end!important;
    align-content:normal!important;
    gap:3px!important;
    overflow-x:auto!important;
    overflow-y:hidden!important;
    transform:none!important;
    pointer-events:auto!important;
    scrollbar-width:none;
    -webkit-overflow-scrolling:touch;
    scroll-snap-type:x proximity;
  }
  body.has-mobile-masthead .mast-earned-badges::-webkit-scrollbar{display:none}
  body.has-mobile-masthead .mast-earned-badges .mast-earned-badge{
    flex:0 0 28px!important;
    width:28px!important;
    height:28px!important;
    scroll-snap-align:start;
  }
  body.has-mobile-masthead .mast-earned-badges.has-overflow::before{
    content:"";
    position:absolute;
    top:0;
    right:0;
    width:30px;
    height:100%;
    pointer-events:none;
    background:linear-gradient(90deg,rgba(0,112,192,0),rgba(0,70,130,.74));
    z-index:2;
  }
  body.has-mobile-masthead .mast-earned-badges.has-overflow:not(.is-scrolled)::after{
    content:"›";
    position:absolute;
    top:50%;
    right:4px;
    z-index:3;
    transform:translateY(-55%);
    color:rgba(255,255,255,.94);
    text-shadow:0 1px 3px rgba(0,0,0,.38);
    font:700 20px/1 'Quicksand',sans-serif;
    pointer-events:none;
  }
  body.has-mobile-masthead .mast-earned-badges.has-overflow.is-scrolled::before{
    opacity:.34;
  }
}


/* Make earned badge rail gestures explicitly horizontal. */
@media(max-width:620px), (orientation: landscape) and (max-height:620px) and (pointer:coarse){
  body.has-mobile-masthead .mast-earned-badges{
    touch-action:pan-x;
    overscroll-behavior-x:contain;
  }
}


/* Keep one earned glyph per badge type. Milestone counts sit as a small gold
   exponent so later achievements stay legible without duplicating glyphs. */
@media(max-width:620px), (orientation: landscape) and (max-height:620px) and (pointer:coarse){
  body.has-mobile-masthead .mast-earned-badge{
    position:relative;
  }
  body.has-mobile-masthead .mast-earned-badge__milestones{
    position:absolute;
    top:-1px;
    right:0;
    min-width:10px;
    color:#f2c84b;
    font:700 10px/1 'Quicksand',sans-serif;
    text-align:center;
    text-shadow:0 1px 2px rgba(0,40,82,.72),0 0 2px rgba(255,255,255,.42);
    pointer-events:none;
  }
}

/* Hard logo-rail glyph contract. Every glyph uses the First Museum reference
   height and the same shadow thickness. Source-specific mask percentages below
   only compensate for transparent padding in the artwork files. */
@media(max-width:620px), (orientation: landscape) and (max-height:620px) and (pointer:coarse){
  body.has-mobile-masthead .mast-earned-badge{
    --mast-earned-glyph-height:28px;
    --mast-earned-glyph-shadow:
      drop-shadow(0 0 1.5px rgba(0,0,0,.95))
      drop-shadow(0 0 3px rgba(0,0,0,.62))
      drop-shadow(0 1px 3px rgba(3,58,108,.28));
    --mast-earned-glyph-scale:1;
    --mast-earned-mask-width:auto;
    --mast-earned-mask-size:110%;
  }
  body.has-mobile-masthead .mast-earned-badge>.mast-earned-badge__art{
    display:grid;
    place-items:center;
    width:var(--mast-earned-glyph-height)!important;
    height:var(--mast-earned-glyph-height)!important;
    transform:translateY(1px) scale(var(--mast-earned-glyph-scale))!important;
    -webkit-filter:var(--mast-earned-glyph-shadow)!important;
    filter:var(--mast-earned-glyph-shadow)!important;
  }
  body.has-mobile-masthead .mast-earned-badge>.mast-earned-badge__art>svg,
  body.has-mobile-masthead .mast-earned-badge>.mast-earned-badge__art>.mast-earned-badge__glyph{
    width:var(--mast-earned-glyph-height)!important;
    height:var(--mast-earned-glyph-height)!important;
    transform:none!important;
    -webkit-filter:none!important;
    filter:none!important;
  }
  body.has-mobile-masthead .mast-earned-badge>.mast-earned-badge__art>.mast-earned-badge__glyph{
    -webkit-mask-size:var(--mast-earned-mask-width) var(--mast-earned-mask-size)!important;
    mask-size:var(--mast-earned-mask-width) var(--mast-earned-mask-size)!important;
  }
  /* SVG-only rail marks calibrated to the First Museum mark's visible height. */
  body.has-mobile-masthead .mast-earned-badge[data-badge-key="first_reception"]{
    --mast-earned-glyph-scale:1;
  }
  body.has-mobile-masthead .mast-earned-badge[data-badge-key="shares"]{
    --mast-earned-glyph-scale:.82;
  }
  /* Raster artwork calibrated to the same visible height, by source family. */
  body.has-mobile-masthead .mast-earned-badge[data-badge-key="gallery"][data-badge-target="1"]{--mast-earned-mask-size:116%}
  body.has-mobile-masthead .mast-earned-badge[data-badge-key="gallery"][data-badge-target="2"]{--mast-earned-mask-size:129%}
  body.has-mobile-masthead .mast-earned-badge[data-badge-key="gallery"][data-badge-target="3"]{--mast-earned-mask-size:103%}
  body.has-mobile-masthead .mast-earned-badge[data-badge-key="theater"][data-badge-target="1"]{--mast-earned-mask-size:105%}
  body.has-mobile-masthead .mast-earned-badge[data-badge-key="theater"][data-badge-target="2"]{--mast-earned-mask-size:128%}
  body.has-mobile-masthead .mast-earned-badge[data-badge-key="theater"][data-badge-target="3"]{--mast-earned-mask-size:98%}
  body.has-mobile-masthead .mast-earned-badge[data-badge-key="receptions"]{--mast-earned-mask-size:118%}
  body.has-mobile-masthead .mast-earned-badge[data-badge-key="neighborhood"]{--mast-earned-mask-size:106%}
  body.has-mobile-masthead .mast-earned-badge[data-badge-key="museum"]{--mast-earned-mask-size:104%}
  body.has-mobile-masthead .mast-earned-badge[data-badge-key="art"]{--mast-earned-mask-size:112%}
  body.has-mobile-masthead .mast-earned-badge[data-badge-key="venues"]{--mast-earned-mask-size:110%}
  body.has-mobile-masthead .mast-earned-badge[data-badge-key="season"]{--mast-earned-mask-size:106%}
  body.has-mobile-masthead .mast-earned-badge[data-badge-key="cities"]{--mast-earned-mask-size:112%}
  body.has-mobile-masthead .mast-earned-badge[data-badge-key="plays"]{--mast-earned-mask-size:126%}
  body.has-mobile-masthead .mast-earned-badge[data-badge-key="talks"]{--mast-earned-mask-size:120%}
  body.has-mobile-masthead .mast-earned-badge[data-badge-key="independent"]{--mast-earned-mask-size:94%}
  /* Normalize all raster/clipart rail marks together. Their source files
     contain transparent canvas, so the shared 150% mask scale gives them the
     same visible footprint while the outer frame, spacing, and shadow remain
     identical to every other earned glyph. */
  body.has-mobile-masthead .mast-earned-badge__glyph--image,
  body.has-mobile-masthead .mast-earned-badge__glyph--drag,
  body.has-mobile-masthead .mast-earned-badge__glyph--drag-supporter{
    --mast-earned-mask-width:auto;
    --mast-earned-mask-size:150%;
  }
}

/* Final spacing contract: every rail glyph occupies one identical column,
   so visible artwork cannot change the distance to its neighbor. */
@media(max-width:620px), (orientation: landscape) and (max-height:620px) and (pointer:coarse){
  body.has-mobile-masthead .mast-earned-badges{
    display:grid!important;
    grid-auto-flow:column;
    grid-auto-columns:28px;
    column-gap:3px!important;
    row-gap:0!important;
    justify-content:start;
    align-items:end!important;
  }
  body.has-mobile-masthead .mast-earned-badges>.mast-earned-badge{
    box-sizing:border-box;
    width:28px!important;
    min-width:28px!important;
    max-width:28px!important;
    height:28px!important;
    margin:0!important;
    padding:0!important;
  }
  body.has-mobile-masthead .mast-earned-badges>.mast-earned-badge>.mast-earned-badge__art{
    margin:0!important;
  }
}
/* Homepage large-tile actions: Share sits directly left of Save, matching the
   floating event detail action group. Scoped to home pages only. */
body.home .card__panel>.tshare{right:52px}
body.home .cover__slide>.tshare{right:52px}

/* Homepage rail tiles use mini__media as their action host. Keep Share beside
   Save there too, so every homepage tile uses the same action order. */
body.home .card--mini .mini__media>.tshare{left:auto;right:52px;top:8px;bottom:auto}

/* One homepage action rule for every tile family: Share is the left neighbor
   of the Save control, including the smaller rails. */
body.home .home-tile-share{left:auto;right:52px;top:8px;bottom:auto}

/* ---------- FULL-SCREEN MAP CONTROL REFINEMENT (v345) ----------------------
   The map stays visually unchanged; this final mobile layer gives every lower
   overlay the same safe-area clearance so the route card, itinerary sheet, and
   floating navigation never compete for the same touch space. */
@media(max-width:620px), (orientation: landscape) and (max-height:620px) and (pointer:coarse){
  body.mappage{
    --sees-map-bottom-clearance:calc(104px + env(safe-area-inset-bottom));
    --sees-map-panel-side:clamp(12px,4vw,18px)}

  /* Keep the map's lower blue fade behind the controls while making its edge
     read as a single intentional control zone. */
  body.mappage::after{height:clamp(140px,18dvh,176px)}

  /* Saved route: a compact, scrollable card with extra right padding so its
     close control never competes with the heading or route actions. */
  body.mappage .saveroute{
    left:var(--sees-map-panel-side);
    right:var(--sees-map-panel-side);
    bottom:var(--sees-map-bottom-clearance);
    max-height:min(42dvh,360px);
    padding:15px 48px 14px 16px;
    border:1px solid rgba(255,255,255,.24);
    border-radius:18px;
    box-shadow:0 12px 30px rgba(7,42,80,.38);
    overscroll-behavior:contain}
  body.mappage .saveroute__head{font-size:15px;line-height:1.25}
  body.mappage .saveroute__est{display:block;margin:3px 0 0;font-size:12px;line-height:1.25}
  body.mappage .saveroute__list{margin:10px 0 8px;padding-left:20px}
  body.mappage .saveroute__list li{margin:4px 0}
  body.mappage .saveroute__close{top:12px;right:12px;width:32px;height:32px}
  body.mappage .saveroute__go,
  body.mappage .saveroute__timed,
  body.mappage .saveroute__share{display:inline-flex;align-items:center;min-height:34px}
  body.mappage .saveroute__timed,
  body.mappage .saveroute__share{margin-left:10px}

  /* The saved itinerary is the larger sheet state. Keep it above the map nav,
     preserve its existing actions, and give it a quiet visual grab cue without
     implying a new gesture or changing how it opens and closes. */
  body.mappage #savedpanel{
    left:var(--sees-map-panel-side);
    right:var(--sees-map-panel-side);
    bottom:var(--sees-map-bottom-clearance);
    width:auto;
    transform:none;
    max-height:min(58dvh,560px);
    padding:18px 16px 18px;
    border-radius:18px;
    box-shadow:0 12px 30px rgba(7,42,80,.4)}
  body.mappage #savedpanel::before{
    content:"";
    display:block;
    width:34px;
    height:4px;
    margin:-8px auto 12px;
    border-radius:999px;
    background:rgba(255,255,255,.48)}
  body.mappage #savedpanel.has-time-route{max-height:calc(100dvh - 138px)}
  body.mappage #savedpanel .sp-head{gap:10px}
  body.mappage #savedpanel .sp-close{width:32px;height:32px}
  body.mappage #savedpanel .sp-actions{gap:8px}
  body.mappage #savedpanel .sp-action{min-height:38px}

  /* Keep a map detail sheet from growing into the bottom navigation on short
     phones; its body remains the only scrollable region. */
  body.mappage .evsheet{
    width:min(92vw,430px);
    max-height:min(86dvh,720px)}
  body.mappage .evsheet__body{padding-bottom:calc(20px + env(safe-area-inset-bottom))}
}

/* Today mobile masthead: keep Save + Search beside the logo and pair Map +
   Weather in the city row. Other mobile/app surfaces retain their layout. */
@media(max-width:620px), (orientation: landscape) and (max-height:620px) and (pointer:coarse){
  body:is(.home,.eventpage) .home-mast-tools > .mast-inline-actions{
    grid-column:2;
    grid-row:1;
    justify-self:start;
  }
  body:is(.home,.eventpage) .cityswitch,
  body:is(.home,.eventpage) .cityswitch--floating{gap:6px}
  body:is(.home,.eventpage) .cityswitch > .map-masthead{
    min-width:64px;
    height:33px;
    padding:0 8px;
    gap:4px;
    font-size:13px;
  }
  body:is(.home,.eventpage) .cityswitch > .weather-masthead{
    display:flex;
    position:static;
    flex:0 0 auto;
    align-items:center;
    justify-content:center;
    min-width:56px;
    height:33px !important;
    min-height:0;
    box-sizing:border-box;
    padding:0 7px;
    gap:4px;
    grid-column:auto;
    grid-row:auto;
    transform:translateY(8px);
  }
  body:is(.home,.eventpage) .cityswitch > .weather-masthead[hidden]{display:none}

  /* Keep Today’s live counts attached to the Art/Theater switch. The node is
     moved beside the switch by main.js so category repainting remains intact. */
  body:is(.home,.eventpage) .mastright{
    display:block;
    position:static;
    margin:17px -4px 0;
    order:-3;
    z-index:auto;
    text-align:center;
  }
  body:is(.home,.eventpage) .mastright > .catswitch.is-ready{
    position:static;
    left:auto;
    right:auto;
    width:auto;
    transform:none;
  }
  body:is(.home,.eventpage) .mastright > .homestats.has-mobile-lines{
    display:block;
    position:static;
    width:auto;
    height:auto;
    min-width:0;
    margin:12px 0 0;
    transform:none;
    overflow:visible;
    color:#fff;
    font:700 12px/1.15 'Quicksand',sans-serif;
    letter-spacing:-.01em;
    text-align:left;
    white-space:nowrap;
    overflow-x:auto;
    overflow-y:hidden;
    scrollbar-width:none;
    -ms-overflow-style:none;
  }
  body:is(.home,.eventpage) .mastright > .homestats.has-mobile-lines::-webkit-scrollbar{display:none}
  body:is(.home,.eventpage) .mastright > .homestats.has-mobile-lines > .hs-main{
    display:none !important;
  }
  body:is(.home,.eventpage) .mastright > .homestats.has-mobile-lines > .hs-mobile{
    display:flex !important;
    flex-direction:row;
    align-items:center;
    justify-content:flex-start;
    width:max-content;
    max-width:none;
    margin:0;
    height:auto;
    overflow:visible;
    white-space:nowrap;
  }
  body:is(.home,.eventpage) .mastright > .homestats.has-mobile-lines .hs-mobile__line{
    display:inline;
    overflow:visible;
    text-overflow:clip;
    white-space:nowrap;
  }
  body:is(.home,.eventpage) .mastright > .homestats.has-mobile-lines .hs-mobile__line + .hs-mobile__line::before{
    content:" · ";
    padding:0 2px;
  }
  /* Homepage Saved sits beside the floating logo. Its bottom edge tracks the
     logo's bottom edge while Search remains in the right-side action rail. */
  body:is(.home,.eventpage) .home-mast-tools > .saved-masthead{
    position:fixed;
    top:calc(67.28px + env(safe-area-inset-top));
    left:calc(111.28px + env(safe-area-inset-left));
    z-index:1152;
    transform:none;
  }
  /* Drop Search to the same baseline as Saved without changing its size or
     right-side placement. The container height keeps the baseline stable
     across the responsive pill sizes. */
  body:is(.home,.eventpage) .home-mast-tools{
    height:65.14px;
    align-items:flex-end;
  }
  body:is(.home,.eventpage) .home-mast-tools > .mast-inline-actions{
    transform:none;
  }
  body.home .page-hero{margin-bottom:0}
}

/* Extend the homepage masthead treatment across See Now, See Later, and
   neighborhood guides on mobile/app. Their page-specific category counts stay
   below the shared Art/Theater switch, while Save + Search remain by the logo
   and Map + Weather share the city row. */
@media(max-width:620px), (orientation: landscape) and (max-height:620px) and (pointer:coarse){
  body.opennow .home-mast-tools{
    display:flex;
    height:65.14px;
    align-items:flex-end;
    justify-content:flex-end;
    gap:5px;
  }
  body.opennow .home-mast-tools > .saved-masthead{
    position:fixed;
    top:calc(67.28px + env(safe-area-inset-top));
    left:calc(111.28px + env(safe-area-inset-left));
    z-index:1152;
    transform:none;
  }
  body.opennow .home-mast-tools > .mast-inline-actions{
    transform:none;
  }
  body.opennow .cityswitch > .map-masthead{
    min-width:64px;
    height:33px;
    padding:0 8px;
    gap:4px;
    font-size:13px;
  }
  body.opennow .cityswitch > .weather-masthead{
    display:flex;
    position:static;
    flex:0 0 auto;
    align-items:center;
    justify-content:center;
    min-width:56px;
    height:33px !important;
    min-height:0;
    box-sizing:border-box;
    padding:0 7px;
    gap:4px;
    grid-column:auto;
    grid-row:auto;
    transform:none;
  }
  body.opennow .cityswitch > .weather-masthead[hidden]{display:none}
  body.opennow .mastright > .guide-homestats{
    display:block !important;
    position:absolute;
    top:calc(220.24px + env(safe-area-inset-top));
    left:14px;
    right:14px;
    width:auto;
    height:auto;
    min-width:0;
    margin:0;
    transform:none;
    overflow-x:auto;
    overflow-y:hidden;
    scrollbar-width:none;
    -ms-overflow-style:none;
    color:#fff;
    font:700 12px/1.15 'Quicksand',sans-serif;
    letter-spacing:-.01em;
    text-align:left;
    white-space:nowrap;
  }
  body.opennow .mastright > .guide-homestats[hidden]{display:none}
  body.opennow .mastright > .guide-homestats::-webkit-scrollbar{display:none}
  body.opennow .mastright > .guide-homestats > .hs-main{display:none !important}
  body.opennow .mastright > .guide-homestats > .hs-mobile{
    display:flex !important;
    flex-direction:row;
    align-items:center;
    justify-content:flex-start;
    width:max-content;
    max-width:none;
    height:auto;
    margin:0;
    overflow:visible;
    white-space:nowrap;
  }
  body.opennow .mastright > .guide-homestats .hs-mobile__line{
    display:inline;
    overflow:visible;
    text-overflow:clip;
    white-space:nowrap;
  }
  body.opennow .mastright > .guide-homestats .hs-mobile__line + .hs-mobile__line::before{
    content:" · ";
    padding:0 2px;
  }
}

/* Site-wide Saved control: centered bookmark/sparkle glyph using the welcome
   screen's purple CTA color, with a filled purple selected state. */
.saved-masthead__icon,
.hbtn,
.evsheet__heart,
.saved-title-heart,
.saved-empty__icon,
.journal-card__star{
  color:#7654cf !important;
}
.saved-masthead__icon svg,
.hbtn svg,
.evsheet__heart svg,
.saved-title-heart svg,
.saved-empty__icon svg,
.journal-card__star svg{
  display:block;
  width:26px;
  height:26px;
  fill:none;
  stroke:currentColor;
  stroke-width:3.2;
  stroke-linecap:round;
  stroke-linejoin:round;
}
.saved-masthead__icon .sees-save-bookmark,
.hbtn .sees-save-bookmark,
.evsheet__heart .sees-save-bookmark,
.saved-title-heart .sees-save-bookmark,
.saved-empty__icon .sees-save-bookmark,
.journal-card__star .sees-save-bookmark{
  fill:none;
  stroke:currentColor;
}
.saved-masthead__icon .sees-save-sparkle,
.hbtn .sees-save-sparkle,
.evsheet__heart .sees-save-sparkle,
.saved-title-heart .sees-save-sparkle,
.saved-empty__icon .sees-save-sparkle,
.journal-card__star .sees-save-sparkle{
  fill:none;
  stroke:#d5a11e;
  stroke-width:2.7;
}
.saved-masthead__icon.is-filled .sees-save-bookmark,
.hbtn.is-saved .sees-save-bookmark,
.evsheet__heart.is-saved .sees-save-bookmark,
.saved-title-heart.is-filled .sees-save-bookmark,
.journal-card__star.is-filled .sees-save-bookmark{
  fill:currentColor;
  stroke:currentColor;
}
.saved-masthead__icon.is-filled .sees-save-sparkle,
.hbtn.is-saved .sees-save-sparkle,
.evsheet__heart.is-saved .sees-save-sparkle,
.saved-title-heart.is-filled .sees-save-sparkle,
.journal-card__star.is-filled .sees-save-sparkle{
  stroke:#d5a11e;
  fill:none;
}
.saved-masthead__icon svg{width:26px;height:26px}
.hbtn svg,.evsheet__heart svg{width:26px;height:26px}
.saved-title-heart svg{width:100%;height:100%}
.saved-empty__icon svg{width:100%;height:100%}
.journal-card__star svg{width:26px;height:26px}
/* Center the bookmark itself in event-tile save circles; the sparkle remains an
   intentionally offset accent and must not pull the bookmark's center of gravity. */
.hbtn .sees-save-bookmark,
.evsheet__heart .sees-save-bookmark,
.saved-empty__icon .sees-save-bookmark{transform:translateX(1.5px)}
/* Journal entries use the four-point Journal marker, not the site-wide save pin. */
body.journalpage .journal-card__star svg{fill:none;stroke-width:1.7}
body.journalpage .journal-card__star.is-filled svg{fill:currentColor;stroke:currentColor}
body.journalpage .journal-card__star{color:#d5a11e !important}
@media(max-width:620px), (orientation: landscape) and (max-height:620px) and (pointer:coarse){
  .saved-masthead__icon svg,.hbtn svg,.evsheet__heart svg{width:24px;height:24px}
  .journal-card__star svg{width:24px;height:24px}
}

/* Badge rail: a quiet 16-slot progress row beside the logo. The rail uses no
   artwork; locked slots stay white and earned slots inherit the badge color. */
@media(max-width:620px), (orientation: landscape) and (max-height:620px) and (pointer:coarse){
  body.has-mobile-masthead .mast-earned-badges{
    position:fixed!important;
    top:calc(14px + env(safe-area-inset-top))!important;
    left:calc(111.28px + env(safe-area-inset-left))!important;
    z-index:1152;
    display:flex!important;
    align-items:flex-start!important;
    flex-wrap:nowrap!important;
    gap:3px!important;
    width:auto!important;
    max-width:none!important;
    height:12px!important;
    min-height:12px!important;
    overflow:visible!important;
    pointer-events:none;
    transform:none!important;
  }
  body.has-mobile-masthead .mast-earned-badges>.mast-earned-badge{
    display:block!important;
    flex:0 0 11px!important;
    width:11px!important;
    min-width:11px!important;
    max-width:11px!important;
    height:11px!important;
    margin:0!important;
    padding:0!important;
    border:1px solid rgba(255,255,255,.98)!important;
    border-radius:50%!important;
    box-sizing:border-box!important;
    background:transparent!important;
    box-shadow:0 0 2px rgba(255,255,255,.95),0 1px 2px rgba(0,0,0,.24)!important;
    filter:none!important;
    transform:none!important;
  }
  body.has-mobile-masthead .mast-earned-badges>.mast-earned-badge.is-earned{
    background:var(--mast-earned-badge)!important;
  }
  body.has-mobile-masthead .mast-earned-badge__art,
  body.has-mobile-masthead .mast-earned-badge__glyph,
  body.has-mobile-masthead .mast-earned-badge__milestones{
    display:none!important;
  }
}

/* Event popup actions (Option A): one balanced, non-wrapping row. Keep venue/place
   sheets on their existing action treatment; this applies only to event details. */
.evsheet:not(.evsheet--place) .es2-actions{display:flex;align-items:center;flex-wrap:nowrap;gap:6px;margin:18px 0 2px;width:100%}
.evsheet:not(.evsheet--place) .es2-actions .es2-more,
.evsheet:not(.evsheet--place) .es2-actions .es2-dir{display:inline-flex;align-items:center;justify-content:center;flex:1 1 0;min-width:0;padding:9px 7px;border-radius:999px;text-align:center;white-space:nowrap;font-size:11.5px;line-height:1;overflow:hidden}
.evsheet:not(.evsheet--place) .es2-actions .es2-more{border-color:#075f9f;background:#075f9f;color:#fff}
.evsheet:not(.evsheet--place) .es2-actions .es2-dir{border-color:rgba(255,255,255,.68);background:rgba(255,255,255,.96);color:#21617c}
.evsheet:not(.evsheet--place) .es2-actions .es2-dir.es2-cal{border-color:#8b5fbf;background:#8b5fbf;color:#fff}
.evsheet:not(.evsheet--place) .es2-actions .es2-more:hover{background:#075f9f}
.evsheet:not(.evsheet--place) .es2-actions .es2-dir:hover{background:rgba(255,255,255,.82)}
.evsheet:not(.evsheet--place) .es2-actions .es2-dir.es2-cal:hover{background:#7046a1}
.event-detail-actions .es2-action-arrow,
.evsheet:not(.evsheet--place) .es2-action-arrow{display:inline-block;width:13px;height:13px;flex:0 0 13px;fill:none;stroke:currentColor;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round}
@media(max-width:360px){
  .evsheet:not(.evsheet--place) .es2-actions{gap:4px}
  .evsheet:not(.evsheet--place) .es2-actions .es2-more,
  .evsheet:not(.evsheet--place) .es2-actions .es2-dir{padding-left:4px;padding-right:4px;font-size:10.5px}
}

/* See Now/See Later Theater and Drag large cards keep Share upper-right,
   directly left of Save, across every date section. Small tiles stay lower-left. */
@media(max-width:620px), (orientation: landscape) and (max-height:620px) and (pointer:coarse){
  body.opennow .on-theater .grid > .card .card__panel > .tshare,
  body.opennow .on-theater .grid > .card .cover__slide > .tshare,
  body.planpage .plan-section--theater .grid > .card .card__panel > .tshare,
  body.planpage .plan-section--theater .grid > .card .cover__slide > .tshare{
    left:auto!important;
    right:52px!important;
    top:8px!important;
    bottom:auto!important;
  }
}

/* Final large-card action rail: Theater and Drag cards use the same upper-right
   Share → Save order in every page section. The small two-up cards keep their
   established lower-left Share control. Keep this rule after the homepage
   All To See/Art Walks placement rules so those broad selectors cannot move a
   large Theater or Drag share back down. */
@media(max-width:620px), (orientation: landscape) and (max-height:620px) and (pointer:coarse){
  body.home #home-onview .card.card--theater:not(.card--mini) .card__panel > .tshare,
  body.home #home-onview .card[data-drag="1"]:not(.card--mini) .card__panel > .tshare,
  body.opennow .on-theater .card.card--theater:not(.card--mini) .card__panel > .tshare,
  body.opennow .on-drag .card[data-drag="1"]:not(.card--mini) .card__panel > .tshare,
  body.planpage .plan-section--theater:not(.plan-section--drag):not(.plan-section--comedy) .card.card--theater:not(.card--mini) .card__panel > .tshare,
  body.planpage .plan-section--drag .card[data-drag="1"]:not(.card--mini) .card__panel > .tshare,
  body.home #home-onview .cover__slide[data-th="1"] > .tshare,
  body.home #home-onview .cover__slide[data-drag="1"] > .tshare,
  body.opennow .on-theater .cover__slide[data-th="1"] > .tshare,
  body.opennow .on-drag .cover__slide[data-drag="1"] > .tshare,
  body.planpage .plan-section--theater:not(.plan-section--drag):not(.plan-section--comedy) .cover__slide[data-th="1"] > .tshare,
  body.planpage .plan-section--drag .cover__slide[data-drag="1"] > .tshare{
    left:auto!important;
    right:52px!important;
    top:8px!important;
    bottom:auto!important;
  }
  body.home #home-onview .card[data-comedy="1"]:not(.card--mini) .card__panel > .tshare,
  body.opennow .on-comedy .card[data-comedy="1"]:not(.card--mini) .card__panel > .tshare,
  body.planpage .plan-section--comedy .card[data-comedy="1"]:not(.card--mini) .card__panel > .tshare,
  body.home #home-onview .cover__slide[data-comedy="1"] > .tshare,
  body.opennow .on-comedy .cover__slide[data-comedy="1"] > .tshare,
  body.planpage .plan-section--comedy .cover__slide[data-comedy="1"] > .tshare{
    left:auto!important;
    right:52px!important;
    top:8px!important;
    bottom:auto!important;
  }
}

/* Saved page city focus: the weather pill identifies the location whose saves are
   currently shown, while the city switch stays at the end of the page so it does
   not compete with the primary Saved header. */
@media(max-width:620px), (orientation: landscape) and (max-height:620px) and (pointer:coarse){
  body.savedpage .weather-masthead{
    min-width:126px!important;
    max-width:156px!important;
    padding:0 8px!important;
    gap:4px!important;
    justify-content:center!important;
    overflow:hidden;
  }
  body.savedpage .weather-masthead__city{
    min-width:0;
    overflow:hidden;
    text-overflow:ellipsis;
    white-space:nowrap;
    font-size:10px;
    line-height:1;
  }
  /* Saved is the one weather pill with a visible city label. Keep all three
     values on one horizontal line after the shared compact-pill rules. */
  body.savedpage .weather-masthead{
    display:flex!important;
    flex-direction:row!important;
    align-items:center!important;
    justify-content:center!important;
    gap:4px!important;
    width:auto!important;
    min-width:126px!important;
    max-width:156px!important;
    padding:0 8px!important;
  }
  body.savedpage .weather-masthead__city{flex:0 1 auto;max-width:76px}
  body.savedpage .weather-masthead__icon{flex:0 0 22px;display:inline-block!important;width:22px!important;height:22px!important}
  body.savedpage .weather-masthead__temp{flex:0 0 auto;min-width:28px!important;width:auto!important;text-align:left!important}
  body.savedpage .saved-city-switch{
    display:grid;
    gap:9px;
    margin:18px 0 4px;
    padding:13px;
    border:1px solid rgba(255,255,255,.44);
    border-radius:17px;
    background:rgba(255,255,255,.12);
    box-shadow:0 8px 22px rgba(7,42,80,.18);
    backdrop-filter:blur(14px);
    -webkit-backdrop-filter:blur(14px);
  }
  body.savedpage .saved-city-switch p{margin:0;color:rgba(255,255,255,.82);font-size:11px;line-height:1.35}
  body.savedpage .saved-city-switch p strong,
  body.savedpage .saved-city-switch p span{display:block}
  body.savedpage .saved-city-switch p strong{color:#fff;font:700 13px/1.2 'Quicksand',sans-serif}
  body.savedpage .saved-city-switch p span{margin-top:3px}
  body.savedpage .saved-city-switch__buttons{display:flex;flex-wrap:wrap;gap:6px}
  body.savedpage .saved-city-switch__button{
    border:1px solid rgba(255,255,255,.7);
    border-radius:999px;
    background:rgba(255,255,255,.1);
    color:#fff;
    padding:8px 10px;
    font:700 10.5px/1 'Quicksand',sans-serif;
    cursor:pointer;
  }
  body.savedpage .saved-city-switch__button span{opacity:.76;margin-left:2px}
  body.savedpage .saved-city-switch__button.is-on{background:#fff;border-color:#fff;color:#075e9f}
}

body.savedpage .saved-route-card{
  margin:0 0 18px;
  padding:16px;
  border:1px solid rgba(255,255,255,.48);
  border-radius:20px;
  background:linear-gradient(135deg,rgba(255,255,255,.18),rgba(255,255,255,.08));
  box-shadow:0 10px 26px rgba(7,42,80,.18);
  color:#fff;
  backdrop-filter:blur(14px);
  -webkit-backdrop-filter:blur(14px);
}
body.savedpage .saved-route-card__head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}
body.savedpage .saved-route-card__head strong{display:block;color:#fff;font:700 16px/1.2 'Quicksand',sans-serif}
body.savedpage .saved-route-card__head span{display:block;margin-top:4px;color:rgba(255,255,255,.82);font:500 11px/1.35 'Quicksand',sans-serif}
body.savedpage .saved-route-card__check{display:grid!important;place-items:center;width:25px;height:25px;margin:0!important;border:1px solid rgba(255,255,255,.72);border-radius:50%;color:#fff!important;font-size:14px!important}
body.savedpage .saved-route-card ol{display:grid;gap:7px;margin:14px 0;padding:0;list-style:none}
body.savedpage .saved-route-card li{display:grid;gap:1px;padding:8px 10px;border-radius:11px;background:rgba(0,47,89,.22)}
body.savedpage .saved-route-card li strong{color:#fff;font:600 12px/1.25 'Quicksand',sans-serif}
body.savedpage .saved-route-card li span{color:rgba(255,255,255,.76);font:500 10px/1.3 'Quicksand',sans-serif}
body.savedpage .saved-route-card li.saved-route-card__more{display:block;padding:0;background:none;color:rgba(255,255,255,.78);font:600 11px/1.3 'Quicksand',sans-serif}
body.savedpage .saved-route-card__actions{display:flex;gap:8px}
body.savedpage .saved-route-card__actions button{border:1px solid rgba(255,255,255,.8);border-radius:999px;padding:8px 12px;background:#fff;color:#075e9f;font:700 11px/1 'Quicksand',sans-serif;cursor:pointer}
body.savedpage .saved-route-card__actions button+button{background:rgba(255,255,255,.1);color:#fff}

/* Saved has no search task; keep this omission scoped to Saved so the shared
   masthead search remains unchanged everywhere else. */
body.savedpage .mast-inline-actions .srch-btn{display:none!important}

/* Saved page visual parity (Aug 2026): give the personal saved space the same
   calm Journal rhythm—white type on the azure canvas, a soft glass title row,
   and warm, readable cards—without changing its planner or saved-item logic. */
body.savedpage .saved-wrap{max-width:900px;margin:0 auto;padding:32px 22px 110px;color:#fff}
body.savedpage .saved-head{margin:0 0 22px}
body.savedpage .saved-headline{align-items:center;gap:20px;margin:0;padding:18px 20px 18px 16px;border:1px solid rgba(255,255,255,.32);border-radius:24px;background:linear-gradient(135deg,rgba(255,255,255,.16),rgba(255,255,255,.06));box-shadow:0 12px 28px rgba(7,42,80,.2),inset 0 1px 0 rgba(255,255,255,.18);backdrop-filter:blur(18px) saturate(1.25);-webkit-backdrop-filter:blur(18px) saturate(1.25)}
body.savedpage .saved-titleline{gap:10px}
body.savedpage .saved-titleline h1{color:#fff;font:600 clamp(30px,4.4vw,42px)/1.04 'DM Sans',serif;text-shadow:0 2px 10px rgba(7,42,80,.38)}
body.savedpage .saved-title-heart{display:inline-grid;place-items:center;width:42px;height:42px;border:1px solid rgba(255,255,255,.65);border-radius:50%;background:rgba(118,84,207,.34);color:#fff;box-shadow:0 5px 15px rgba(7,42,80,.2),inset 0 1px 0 rgba(255,255,255,.28)}
body.savedpage .saved-title-heart svg{width:27px;height:27px}
body.savedpage .saved-sub{margin:7px 0 0;color:rgba(255,255,255,.8);font:500 13px/1.35 'Quicksand',sans-serif}
body.savedpage .saved-share{border-color:rgba(255,255,255,.76);background:rgba(255,255,255,.14);color:#fff;box-shadow:0 5px 15px rgba(7,42,80,.16),inset 0 1px 0 rgba(255,255,255,.18)}
body.savedpage .saved-empty{margin:0 0 24px;padding:42px 24px;border:1px solid rgba(255,255,255,.68);border-radius:24px;background:rgba(255,255,255,.94);box-shadow:0 12px 28px rgba(7,42,80,.22);text-align:center}
body.savedpage .saved-empty__icon{width:52px;height:52px;border:1px solid rgba(118,84,207,.36);border-radius:50%;background:rgba(118,84,207,.1);color:#7654cf;box-shadow:0 5px 15px rgba(118,84,207,.18)}
body.savedpage .saved-empty__icon svg{width:32px;height:32px}
body.savedpage .saved-empty h2{margin:12px 0 5px;color:var(--ink-strong)!important;font:700 22px/1.2 'Quicksand',sans-serif}
body.savedpage .saved-empty p{max-width:430px;margin:0 auto;color:#70695f;font:500 14px/1.45 'Quicksand',sans-serif}
body.savedpage .saved-card{border-color:rgba(226,199,109,.82);border-radius:18px;background:linear-gradient(145deg,rgba(255,255,255,.98),rgba(255,247,223,.94));box-shadow:0 10px 24px rgba(7,42,80,.2)}
body.savedpage .saved-card__body h2{color:var(--ink-strong);font:600 18px/1.16 'DM Sans',serif}
body.savedpage .saved-card__body p{color:#70695f;font:500 12.5px/1.35 'Quicksand',sans-serif}
body.savedpage .saved-card__body time{color:#0070c0;font:700 12px/1.35 'Quicksand',sans-serif}
body.savedpage .saved-nearby{border-color:rgba(255,255,255,.44);background:rgba(255,255,255,.14);box-shadow:0 10px 24px rgba(7,42,80,.18);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px)}
body.savedpage .saved-nearby>div:first-child strong{color:#fff}
body.savedpage .saved-nearby>div:first-child span{color:rgba(255,255,255,.8)}

/* Saved-page event tiles use the same selected bookmark/sparkle pill as homepage tiles.
   It remains the removal affordance, but no longer falls back to the old heart glyph. */
body.savedpage #savedpanel.is-inline .sp-list-item .sp-x.hbtn.is-saved{
  display:grid;
  position:absolute;
  top:8px;
  right:8px;
  z-index:3;
  place-items:center;
  width:36px;
  height:36px;
  margin:0;
  padding:0;
  border:1.5px solid rgba(255,255,255,.92);
  border-radius:50%;
  background:rgba(255,255,255,.5)!important;
  color:#7654cf!important;
  box-shadow:none;
  line-height:1;
}
body.savedpage #savedpanel.is-inline .sp-list-item .sp-x.hbtn svg{
  display:block;
  width:24px;
  height:24px;
}
body.savedpage #savedpanel.is-inline .sp-list-item .sp-x.hbtn .sees-save-bookmark,
body.savedpage #savedpanel.is-inline .sp-list-item .sp-x.hbtn .sees-save-sparkle{
  filter:drop-shadow(0 1px 2px rgba(255,255,255,.9));
}
body.savedpage .saved-title-heart .sees-save-bookmark,
body.savedpage .saved-title-heart .sees-save-sparkle{
  filter:drop-shadow(0 1px 2px rgba(255,255,255,.9));
}
body.savedpage .saved-title-heart svg{
  filter:drop-shadow(0 1px 2px rgba(255,255,255,.9));
}
body.savedpage #savedpanel.is-inline .sp-list-item .sp-list-copy{padding-right:38px}
/* Give route selection its own lower-right control so it cannot visually merge
   with the saved pin/check pill above it. */
body.savedpage #savedpanel.is-inline .sp-list-item .sp-list-select{
  position:absolute;
  right:8px;
  bottom:8px;
  z-index:3;
  width:38px;
  height:24px;
  border-radius:999px;
  border:0;
  background:transparent;
  }
body.savedpage #savedpanel.is-inline .sp-list-item .sp-list-select.is-on{
  background:transparent;
  border-color:transparent;
}
body.savedpage #savedpanel.is-inline .sp-list-item .sp-list-select .sp-list-toggle-bar{
  width:32px;
  height:14px;
}

/* Saved action refresh (Option B): keep filters light and outlined, then stack
   the purple route action, quiet share action, and nearby confirmation in one
   clear vertical hierarchy. */
body.savedpage #savedpanel.is-inline .sp-list-filters{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:6px;
  padding:0;
  border:0;
  background:transparent;
}
body.savedpage #savedpanel.is-inline .sp-list-filters button{
  min-height:38px;
  border:1px solid rgba(255,255,255,.52);
  border-radius:999px;
  background:rgba(255,255,255,.09);
  color:rgba(255,255,255,.9);
  box-shadow:none;
}
body.savedpage #savedpanel.is-inline .sp-list-filters button.is-on{
  border-color:#7654cf;
  background:#7654cf;
  color:#fff;
  box-shadow:0 4px 12px rgba(59,35,132,.24),inset 0 1px 0 rgba(255,255,255,.2);
}
body.savedpage #savedpanel.is-inline .sp-list-footer{
  grid-template-columns:1fr;
  gap:7px;
}
body.savedpage #savedpanel.is-inline .sp-list-footer .sp-action{
  width:100%;
  min-height:44px;
  border-radius:999px;
}
body.savedpage #savedpanel.is-inline .sp-list-footer .sp-action--timed{
  background:#7654cf!important;
  border-color:#7654cf!important;
  color:#fff!important;
  box-shadow:0 5px 14px rgba(59,35,132,.22),inset 0 1px 0 rgba(255,255,255,.18);
}
body.savedpage #savedpanel.is-inline .sp-list-footer #sp-share{
  background:rgba(255,255,255,.1)!important;
  border-color:rgba(255,255,255,.58)!important;
  color:#fff!important;
}
body.savedpage .saved-nearby{
  grid-template-columns:1fr;
  gap:10px;
}
body.savedpage .saved-nearby-check{
  width:100%;
  min-height:44px;
  border:1px solid rgba(255,255,255,.58);
  background:rgba(255,255,255,.1);
  color:#fff;
  box-shadow:none;
}
/* Match the compact Saved tiles to Journal's event cards: warm badge-gold
   surfaces, white editorial titles, and the same quiet shadow treatment. */
body.savedpage #savedpanel.is-inline .sp-list-item{
  border-color:rgba(255,255,255,.58);
  background:rgba(118,84,207,.6);
  color:#fff;
  box-shadow:0 10px 24px rgba(7,42,80,.2),inset 0 1px 0 rgba(255,255,255,.2);
  backdrop-filter:blur(12px) saturate(1.15);
  -webkit-backdrop-filter:blur(12px) saturate(1.15);
}
body.savedpage #savedpanel.is-inline .sp-list-item .sp-item-open{color:#fff}
body.savedpage #savedpanel.is-inline .sp-list-copy b{
  color:#fff;
  text-shadow:0 1px 3px rgba(7,42,80,.22);
}
body.savedpage #savedpanel.is-inline .sp-list-copy span{color:rgba(255,255,255,.88)}
body.savedpage #savedpanel.is-inline .sp-list-copy small{color:rgba(255,255,255,.82)}
body.savedpage #savedpanel.is-inline .sp-list-copy .sp-list-duration{color:#fff}
body.savedpage #savedpanel.is-inline .sp-list-copy .sp-list-availability{color:#e5f4e8}
body.savedpage #savedpanel.is-inline .sp-list-copy .sp-list-availability.is-closed{color:#f3ddfa}
/* Availability is communicated literally, not through a dimmed tile. */
body.savedpage #savedpanel.is-inline .sp-list-item.is-closed .sp-item-open{
  opacity:1!important;
  filter:none!important;
}
body.savedpage #savedpanel.is-inline .sp-list-copy .sp-list-availability.is-closed{
  width:max-content;
  max-width:100%;
  box-sizing:border-box;
  padding:3px 7px;
  border:1px solid rgba(255,255,255,.62);
  border-radius:999px;
  background:rgba(118,84,207,.42);
  color:#fff!important;
  font-weight:700;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}

/* Saved uses the homepage's city/map/weather row directly below the logo. The
   category toggle and seven-day stats remain intentionally absent on this
   personal surface; the saved list begins below the row with clear breathing
   room. */
@media(max-width:620px), (orientation: landscape) and (max-height:620px) and (pointer:coarse){
  body.savedpage .cityswitch,
  body.savedpage .cityswitch--floating{
    position:absolute;
    top:calc(115px + env(safe-area-inset-top));
    left:14px;
    right:14px;
    z-index:1149;
    display:flex!important;
    gap:6px;
    align-items:flex-start;
    height:49px;
    justify-content:flex-start;
  }
  body.savedpage .cityswitch__context{display:none}
  body.savedpage .cityswitch__btn{
    width:auto;
    flex:1 1 auto;
    align-self:flex-start!important;
    min-width:0;
    max-width:100%;
    min-height:39px;
    height:auto;
    gap:9px;
    padding:3px 0 5px;
    overflow:visible;
    font:700 clamp(19px,6vw,23px)/1.24 'Quicksand',sans-serif;
  }
  body.savedpage .cityswitch__btn::before{
    width:21px;
    height:27px;
    flex-basis:21px;
  }
  body.savedpage .cityswitch__label{
    display:block;
    min-width:0;
    padding-bottom:1px;
    overflow:visible;
    text-overflow:clip;
    white-space:nowrap;
  }
  body.savedpage .cityswitch__caret{
    width:9px;
    height:9px;
    flex-basis:9px;
    margin:0 0 5px 2px;
    border:0 solid currentColor;
    border-width:0 2.5px 2.5px 0;
    font-size:0;
    line-height:0;
    transform:rotate(45deg);
  }
  body.savedpage .cityswitch__menu{
    top:calc(100% + 7px);
    width:min(230px,100%);
    min-width:190px;
  }
  body.savedpage .map-masthead{
    display:flex;
    flex:0 0 74px;
    min-width:74px!important;
    width:74px!important;
    height:33px;
    margin-top:8px;
    align-self:flex-start!important;
    padding:0 8px;
    gap:5px;
    align-items:center;
    justify-content:center;
    border:1px solid rgba(255,255,255,.8);
    border-radius:999px;
    background:rgb(104,124,132);
    color:#fff;
    font:700 12px/1 'Quicksand',sans-serif;
  }
  /* The row is absolute like the homepage row. Keep the Saved title in its
     original logo-aligned slot, and move only the flowing Saved content below it. */
  body.savedpage.cityswitch-ready .site-header{margin-bottom:0!important}
  body.savedpage .weather-masthead,
  body.savedpage .map-masthead{
    grid-column:auto!important;
    grid-row:auto!important;
    justify-self:auto!important;
  }
  body.savedpage .weather-masthead{
    flex:0 0 56px;
    min-width:56px!important;
    width:56px!important;
    height:33px!important;
    margin-top:8px;
    align-self:flex-start;
    padding:0!important;
    display:grid!important;
    grid-template-columns:22px 28px!important;
    column-gap:0!important;
    align-items:center!important;
    justify-content:center!important;
  }
  body.savedpage .weather-masthead__city{display:none!important}
  /* Saved uses the homepage city control verbatim: transparent pin row, with
     the city menu remaining the only visible surface around it. */
  body.savedpage .cityswitch__btn{
    width:auto;
    min-width:0;
    height:auto;
    justify-content:flex-start!important;
    padding:3px 0 5px;
    border:0!important;
    border-radius:0;
    background:none!important;
    color:#fff;
    box-shadow:none!important;
    text-shadow:0 1px 3px rgba(7,42,80,.65),0 3px 12px rgba(7,42,80,.5);
  }
  body.savedpage .cityswitch__btn:hover,
  body.savedpage .cityswitch__btn:focus-visible{background:none}
  body.savedpage .cityswitch,
  body.savedpage .cityswitch--floating,
  body.savedpage .sees-native-city-column{
    background:transparent!important;
    border:0!important;
    box-shadow:none!important;
  }
  body.savedpage .cityswitch__menu{
    top:calc(100% + 7px);
    left:0;
    right:auto;
    transform:none;
    width:min(230px,100%);
    min-width:190px;
    z-index:2;
  }
  body.savedpage .cityswitch__btn::before{
    content:"";
    width:21px;
    height:27px;
    flex:0 0 21px;
    background:currentColor;
    -webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='black' fill-rule='evenodd' d='M12 1a8 8 0 0 0-8 8c0 6 8 14 8 14s8-8 8-14a8 8 0 0 0-8-8Zm0 11a3 3 0 1 1 0-6 3 3 0 0 1 0 6Z'/%3E%3C/svg%3E") center/contain no-repeat;
    mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='black' fill-rule='evenodd' d='M12 1a8 8 0 0 0-8 8c0 6 8 14 8 14s8-8 8-14a8 8 0 0 0-8-8Zm0 11a3 3 0 1 1 0-6 3 3 0 0 1 0 6Z'/%3E%3C/svg%3E") center/contain no-repeat;
  }
  body.savedpage .map-masthead{
    gap:4px;
    background:rgb(104,124,132);
    font:700 13px/1 'Quicksand',sans-serif;
  }
  body.savedpage .map-masthead svg{color:#0070c0!important}
  body.savedpage .saved-head{padding-top:114px!important}
}

/* Saved city row parity: use the same transparent city/map/weather row as Home,
   See Now, and See Later. This is a shared treatment, not a Saved-only surface. */
@media(max-width:620px), (orientation: landscape) and (max-height:620px) and (pointer:coarse){
  body.savedpage .cityswitch,
  body.savedpage .cityswitch--floating{
    position:absolute;
    top:calc(115px + env(safe-area-inset-top));
    left:14px;
    right:14px;
    z-index:1149;
    display:flex!important;
    align-items:center;
    justify-content:flex-start;
    gap:9px;
    padding:0!important;
    background:none!important;
    border:0!important;
    box-shadow:none!important;
    backdrop-filter:none!important;
    -webkit-backdrop-filter:none!important;
  }
  body.savedpage .cityswitch__context{display:none}
  body.savedpage .cityswitch__btn{
    flex:1 1 auto;
    width:auto;
    min-width:0;
    max-width:100%;
    min-height:39px;
    height:auto;
    align-self:center;
    gap:9px;
    padding:3px 0 5px;
    overflow:visible;
    border:0!important;
    border-radius:0;
    background:none!important;
    box-shadow:none!important;
    backdrop-filter:none!important;
    -webkit-backdrop-filter:none!important;
    font:700 clamp(19px,6vw,23px)/1.24 'Quicksand',sans-serif;
  }
  body.savedpage .cityswitch__btn:hover,
  body.savedpage .cityswitch__btn:focus-visible{background:none!important}
  body.savedpage .cityswitch__menu{
    top:calc(100% + 7px);
    left:0;
    right:auto;
    transform:none;
    width:min(230px,100%);
    min-width:190px;
  }
  body.savedpage .cityswitch > .map-masthead{
    display:flex;
    position:static;
    flex:0 0 64px;
    align-self:center;
    min-width:64px!important;
    width:64px!important;
    height:33px!important;
    margin-top:0!important;
    padding:0 8px;
    gap:4px;
    font:700 13px/1 'Quicksand',sans-serif;
    border:1px solid rgba(255,255,255,.8);
    border-radius:999px;
    background:rgba(0,112,192,.18);
    box-shadow:none;
  }
  body.savedpage .cityswitch > .map-masthead svg{
    width:26px;
    height:26px;
  }
  body.savedpage .cityswitch > .weather-masthead{
    display:flex!important;
    position:static;
    flex:0 0 auto;
    align-items:center;
    justify-content:center;
    min-width:56px;
    width:56px!important;
    height:33px!important;
    min-height:0;
    margin-top:0!important;
    box-sizing:border-box;
    padding:0 7px;
    gap:4px;
    transform:none!important;
  }
  body.savedpage .cityswitch > .weather-masthead[hidden]{display:none!important}
}

/* Portrait lock: phones and coarse-pointer app webviews should not expose the
   desktop/mobile-landscape composition. The prompt is outside body content so
   it remains visible while every page surface is temporarily hidden. */
@media (orientation: landscape) and (max-height:620px) and (pointer:coarse){
  html{overflow:hidden!important}
  html::before{
    content:"Please rotate your phone to portrait\A\ASees Journal is designed for portrait view";
    position:fixed;
    inset:0;
    z-index:2147483647;
    display:grid;
    place-items:center;
    padding:32px;
    background:linear-gradient(160deg,#0877c9 0%,#075e9f 100%);
    color:#fff;
    font:600 clamp(22px,5vw,34px)/1.18 'DM Sans',Georgia,serif;
    text-align:center;
    white-space:pre-line;
    text-shadow:0 2px 10px rgba(7,42,80,.38);
    pointer-events:all;
  }
  html body > *{visibility:hidden!important}
  html body{overflow:hidden!important}
}

@media(max-width:620px), (orientation: landscape) and (max-height:620px) and (pointer:coarse){
  body.savedpage .saved-wrap{padding:calc(72px + env(safe-area-inset-top)) 16px 112px}
  body.savedpage .saved-headline{align-items:flex-start;gap:10px;padding:14px 12px 15px;border-radius:20px}
  body.savedpage .saved-titleline{gap:6px}
  body.savedpage .saved-titleline h1{font:600 26px/1.2 'DM Sans',serif}
  body.savedpage .saved-title-heart{width:32px;height:32px}
  body.savedpage .saved-title-heart svg{width:22px;height:22px}
  body.savedpage .saved-sub{font-size:12px}
  body.savedpage .saved-empty{margin-top:0;padding:34px 18px 36px;border-radius:20px}
  body.savedpage .saved-empty__icon{width:48px;height:48px}
  body.savedpage .saved-empty h2{font-size:20px}
  body.savedpage .saved-empty p{font-size:12.5px}
  body.savedpage .saved-card{border-radius:14px}
  body.savedpage .saved-card__body h2{font-size:15px}
}

/* Saved identity parity: on the mobile/app shell, keep the personal title in
   the logo's top-right identity slot, with the bookmark immediately before it
   like Journal's four-star title marker. */
@media(max-width:620px), (orientation: landscape) and (max-height:620px) and (pointer:coarse){
  body.savedpage .saved-wrap{padding:calc(14px + env(safe-area-inset-top)) 16px 112px}
  body.savedpage .saved-head{position:relative;padding-top:96px;margin:0}
  body.savedpage .saved-headline{
    position:absolute;top:0;left:96px;right:0;z-index:1151;
    display:flex;align-items:flex-start;gap:7px;margin:0;padding:0;
    border:0;border-radius:0;background:transparent;box-shadow:none;
    backdrop-filter:none;-webkit-backdrop-filter:none;
  }
  body.savedpage .saved-titleblock{flex:1 1 auto;min-width:0;text-align:right}
  body.savedpage .saved-titleline{justify-content:flex-end;align-items:center;gap:6px}
  body.savedpage .saved-titleline h1{font:600 24px/1.12 'DM Sans',serif;white-space:nowrap;text-shadow:0 2px 10px rgba(7,42,80,.38)}
  body.savedpage .saved-title-heart{display:inline-grid;place-items:center;width:30px;height:30px;flex:0 0 30px;border:0;border-radius:0;background:transparent;color:#7654cf !important;box-shadow:none}
  body.savedpage .saved-title-heart svg{width:30px;height:30px}
  body.savedpage .saved-sub{margin:3px 0 0;text-align:right;font-size:12px}
  body.savedpage .saved-share{align-self:flex-start;margin-top:3px;padding:6px 8px;font-size:10.5px}
}

/* Saved footer signature parity: these are the same two quiet lines used by
   Journal, with no changes to the footer links or page behavior. */
@media(max-width:620px), (orientation: landscape) and (max-height:620px) and (pointer:coarse){
  body.savedpage .site-footer .copy{
    color:#fff;
    font-family:'DM Sans',serif;
    font-size:clamp(9px,2.9vw,11.5px);
    font-weight:400;
    line-height:1.62;
    letter-spacing:.01em;
    opacity:.75;
  }
  body.savedpage .site-footer .footlinks a[href*="contact"],
  body.savedpage .site-footer .footlinks a[href*="privacy"],
  body.savedpage .site-footer .footlinks a[href*="terms"]{
    display:inline-block !important;
    font-family:'Quicksand',sans-serif;
    font-size:clamp(9px,2.9vw,11.5px);
    font-weight:600;
    line-height:1.4;
    color:rgba(255,255,255,.92);
    text-decoration:none;
    padding:0;
  }
  body.savedpage .site-footer .footlinks a[href*="contact"]::before,
  body.savedpage .site-footer .footlinks a[href*="privacy"]::before,
  body.savedpage .site-footer .footlinks a[href*="terms"]::before{
    content:"\00b7";
    margin:0 7px;
    color:rgba(255,255,255,.55);
    font-weight:500;
  }
  body.savedpage .site-footer .dev-disclaimer{
    color:#fff;
    font-family:'Quicksand',sans-serif;
    font-size:clamp(9px,2.9vw,11.5px);
    font-weight:400;
    line-height:1.5;
    opacity:.75;
  }
}

/* Saved header refinement: center the title on the logo's visual midpoint and
   stack the share action beneath it at the same compact footprint used by
   Journal's small identity control. */
@media(max-width:620px), (orientation: landscape) and (max-height:620px) and (pointer:coarse){
  body.savedpage .saved-headline{
    /* Match Journal's mobile titleline: 16px below the logo's top edge. */
    top:-30px;
    display:block;
    height:auto;
  }
  body.savedpage .saved-titleblock{
    display:flex;
    flex-direction:column;
    align-items:center;
    gap:5px;
    width:100%;
    text-align:center;
  }
  body.savedpage .saved-titleline{
    justify-content:center;
    width:100%;
  }
  body.savedpage .saved-share{
    align-self:center;
    width:76px;
    min-width:76px;
    height:27px;
    margin:0;
    box-sizing:border-box;
    padding:7px 8px;
    font-size:10px;
  }
}

/* Badge rail Option C: a slim glass progress ribbon with 16 equal slots. The
   slots keep their existing earning order and badge colors; locked slots stay
   hollow so progress reads without adding glyph clutter beside the logo. */
@media(max-width:620px), (orientation: landscape) and (max-height:620px) and (pointer:coarse){
  body.has-mobile-masthead .mast-earned-badges{
    position:fixed!important;
    top:calc(14px + env(safe-area-inset-top))!important;
    left:calc(111.28px + env(safe-area-inset-left))!important;
    z-index:1152;
    display:grid!important;
    grid-template-columns:repeat(16,minmax(0,1fr))!important;
    grid-auto-flow:initial!important;
    column-gap:3px!important;
    row-gap:0!important;
    align-items:center!important;
    justify-items:center!important;
    width:calc(100vw - 124px)!important;
    min-width:0!important;
    max-width:250px!important;
    height:18px!important;
    min-height:18px!important;
    padding:3px 5px!important;
    box-sizing:border-box!important;
    overflow:hidden!important;
    pointer-events:none;
    transform:none!important;
    border:.75px solid rgba(255,255,255,.58)!important;
    border-radius:999px!important;
    background:var(--blue)!important;
    box-shadow:inset 0 1px 0 rgba(255,255,255,.32),0 2px 8px rgba(0,36,82,.28)!important;
  }
  body.has-mobile-masthead .mast-earned-badges>.mast-earned-badge{
    display:block!important;
    position:static!important;
    flex:none!important;
    width:9px!important;
    min-width:9px!important;
    max-width:9px!important;
    height:9px!important;
    min-height:9px!important;
    max-height:9px!important;
    margin:0!important;
    padding:0!important;
    border:1px solid rgba(255,255,255,.98)!important;
    border-radius:50%!important;
    box-sizing:border-box!important;
    background:transparent!important;
    box-shadow:0 0 2px rgba(255,255,255,.92)!important;
    filter:none!important;
    transform:none!important;
    transition:background .2s ease,box-shadow .2s ease!important;
  }
  body.has-mobile-masthead .mast-earned-badges>.mast-earned-badge.is-earned{
    background:var(--mast-earned-badge)!important;
    box-shadow:0 0 4px color-mix(in srgb,var(--mast-earned-badge) 74%,white),0 0 2px rgba(255,255,255,.9)!important;
  }
  body.has-mobile-masthead .mast-earned-badge__art,
  body.has-mobile-masthead .mast-earned-badge__glyph,
  body.has-mobile-masthead .mast-earned-badge__milestones{
    display:none!important;
  }
}

/* Saved weather parity: use the homepage city-row weather control verbatim.
   The city name belongs to the picker, not a second weather-pill variant. */
@media(max-width:620px), (orientation: landscape) and (max-height:620px) and (pointer:coarse){
  body.savedpage .cityswitch > .weather-masthead{
    display:flex!important;
    position:static!important;
    flex:0 0 auto!important;
    align-items:center!important;
    justify-content:center!important;
    min-width:56px!important;
    width:56px!important;
    height:33px!important;
    min-height:0!important;
    margin-top:0!important;
    box-sizing:border-box!important;
    padding:0 7px!important;
    gap:4px!important;
    grid-template-columns:none!important;
    column-gap:normal!important;
    transform:translateY(8px)!important;
  }
body.savedpage .cityswitch > .weather-masthead__city{display:none!important}
}

/* Saved masthead parity: keep the city label at its content width and reuse
   the same compact Map + Weather controls as the Home/See Now/See Later row.
   The saved page must not grow a second city/weather treatment. */
@media(max-width:620px), (orientation: landscape) and (max-height:620px) and (pointer:coarse){
  body.savedpage .cityswitch,
  body.savedpage .cityswitch--floating{
    gap:6px!important;
  }
  body.savedpage .cityswitch__btn{
    flex:0 1 auto!important;
    width:max-content!important;
    min-width:0!important;
    max-width:calc(100% - 132px)!important;
    flex-shrink:1!important;
    box-sizing:border-box!important;
    background:transparent!important;
  }
  body.savedpage .cityswitch > .map-masthead{
    flex:0 0 64px!important;
    width:64px!important;
    min-width:64px!important;
    height:33px!important;
    min-height:33px!important;
    margin:0!important;
    padding:0 8px!important;
    gap:4px!important;
    box-sizing:border-box!important;
  }
  body.savedpage .cityswitch > .weather-masthead{
    flex:0 0 56px!important;
    width:56px!important;
    min-width:56px!important;
    height:33px!important;
    min-height:33px!important;
    margin:0!important;
    padding:0 7px!important;
    gap:4px!important;
    transform:none!important;
    box-sizing:border-box!important;
  }
}

/* Saved empty state parity: use Journal's calm glass/gray surface and its
   long, soft fade into the page instead of a hard white rectangle. */
body.savedpage .saved-empty{
  position:relative;
  overflow:hidden;
  background:linear-gradient(145deg,#eef1f3 0%,#e2e7ea 48%,#d7dfe4 100%)!important;
  border:0!important;
  border-color:rgba(255,255,255,.78)!important;
  box-shadow:0 10px 28px rgba(7,42,80,.16),inset 0 1px 0 rgba(255,255,255,.75)!important;
}
body.savedpage .saved-empty::before,
body.savedpage .saved-empty::after{
  content:"";
  position:absolute;
  pointer-events:none;
  z-index:0;
}
body.savedpage .saved-empty::before{
  inset:0;
  background:
    radial-gradient(110% 54% at -8% -12%,transparent 0 49%,rgba(255,255,255,.42) 50% 59%,transparent 60%),
    radial-gradient(104% 52% at 106% 112%,transparent 0 44%,rgba(184,198,208,.34) 45% 55%,transparent 56%);
}
body.savedpage .saved-empty::after{
  inset:0;
  background:radial-gradient(92% 42% at 52% 108%,transparent 0 56%,rgba(255,255,255,.22) 57% 68%,transparent 69%);
}
body.savedpage .saved-empty>*{position:relative;z-index:2}
@media(max-width:620px), (orientation: landscape) and (max-height:620px) and (pointer:coarse){
  body.savedpage .saved-empty{
    background:linear-gradient(180deg,#eef1f3 0%,#e2e7ea calc(100% - 112px),
      rgba(225,230,233,.99) calc(100% - 104px),
      rgba(222,228,231,.96) calc(100% - 96px),
      rgba(219,226,229,.90) calc(100% - 84px),
      rgba(215,223,228,.78) calc(100% - 64px),
      rgba(215,223,228,.42) calc(100% - 32px),
      rgba(215,223,228,0) 100%)!important;
    border-bottom-color:transparent!important;
  }
  body.savedpage .saved-empty::after{
    background:
      radial-gradient(140% 38% at 50% 8%,rgba(255,255,255,.30) 0%,rgba(255,255,255,.12) 30%,rgba(255,255,255,0) 70%),
      linear-gradient(180deg,rgba(255,255,255,0) 0%,rgba(255,255,255,.05) 18%,rgba(255,255,255,.12) 46%,rgba(255,255,255,0) 100%);
  }
}

/* Empty Saved handoff: use the same soft lower dissolve as the empty Journal
   panel, rather than ending the waiting surface on a hard lower edge. */
@media(max-width:620px), (orientation: landscape) and (max-height:620px) and (pointer:coarse){
  body.savedpage .saved-empty{
    margin-bottom:0;padding-bottom:112px;border-top:0!important;border-right:1px solid rgba(255,255,255,.55)!important;border-bottom:0!important;border-left:1px solid rgba(255,255,255,.55)!important;border-radius:18px 18px 0 0;overflow:visible;
    box-shadow:0 8px 22px rgba(7,42,80,.12);
  }
  body.savedpage .saved-empty h2,
  body.savedpage .saved-empty p{position:relative;z-index:2}
  body.savedpage .saved-empty::before{inset:0}
  body.savedpage .saved-empty::after{
    inset:auto -1px -168px;height:280px;z-index:0;box-sizing:border-box;
    background:
      radial-gradient(140% 38% at 50% 8%,rgba(255,255,255,.30) 0%,rgba(255,255,255,.12) 30%,rgba(255,255,255,0) 70%),
      linear-gradient(180deg,rgba(255,255,255,0) 0%,rgba(255,255,255,.05) 18%,rgba(255,255,255,.12) 46%,rgba(255,255,255,.06) 72%,rgba(255,255,255,0) 100%);
    -webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);
  }
}

/* Saved masthead final parity: copy the Homepage's actual mobile row geometry.
   The city column fills the protected left area; Map and Weather keep the same
   intrinsic widths, 33px height, offsets, and internal centering. */
body.savedpage .cityswitch,
body.savedpage .cityswitch--floating{
  display:flex!important;
  align-items:flex-start!important;
  justify-content:flex-start!important;
  gap:9px!important;
}
body.savedpage .cityswitch__btn{
  flex:1 1 auto!important;
  width:auto!important;
  min-width:0!important;
  max-width:100%!important;
  letter-spacing:normal!important;
  min-height:39px!important;
  height:auto!important;
  gap:9px!important;
  padding:3px 0 5px!important;
  box-sizing:border-box!important;
}
body.savedpage .cityswitch__label,
body.savedpage .cityswitch__caret{
  letter-spacing:normal!important;
}
body.has-mobile-masthead .cityswitch > .map-masthead,
body.has-mobile-masthead .cityswitch > .weather-masthead{
  position:static!important;
  align-self:center!important;
  flex:0 0 auto!important;
  box-sizing:border-box!important;
  margin:0!important;
  border:1px solid rgba(255,255,255,.8)!important;
  border-radius:999px!important;
  background:rgba(0,112,192,.18)!important;
  color:#fff!important;
}
body.has-mobile-masthead .cityswitch > .map-masthead{
  display:flex!important;
  background:rgb(104,124,132)!important;
  width:auto!important;
  min-width:73px!important;
  height:36px!important;
  min-height:36px!important;
  padding:0 11px!important;
  gap:6px!important;
  align-items:center!important;
  justify-content:center!important;
  font:700 15px/1 'Quicksand',sans-serif!important;
}
body.has-mobile-masthead .cityswitch > .map-masthead svg{width:26px!important;height:26px!important}
body.has-mobile-masthead .cityswitch > .weather-masthead{
  display:flex!important;
  align-self:center!important;
  width:auto!important;
  min-width:56px!important;
  height:36px!important;
  min-height:36px!important;
  padding:0 0 0 7px!important;
  gap:4px!important;
  align-items:center!important;
  justify-content:center!important;
  font:700 13px/1 'Quicksand',sans-serif!important;
  transform:none!important;
}
body.has-mobile-masthead .cityswitch > .weather-masthead > .weather-masthead__icon{font-size:19px!important;line-height:1!important}
body.has-mobile-masthead .cityswitch > .weather-masthead > .weather-masthead__temp{min-width:28px!important;text-align:left!important}
body.savedpage.has-mobile-masthead .cityswitch > .map-masthead{transform:translateX(3px)!important}
/* Earned-badge pearl: enlarge each progress circle without moving the centered rail. */
@media(max-width:620px), (orientation:landscape) and (max-height:620px) and (pointer:coarse){
  body.has-mobile-masthead .mast-earned-badges{
    background:transparent!important;
    background-color:transparent!important;
  }
  body.has-mobile-masthead .mast-earned-badges::before{
    content:"";
    position:absolute;
    inset:0;
    border-radius:999px;
    background:var(--blue);
    -webkit-mask-image:url("./badge-rail-mask.svg");
    mask-image:url("./badge-rail-mask.svg");
    -webkit-mask-size:100% 100%;
    mask-size:100% 100%;
    -webkit-mask-repeat:no-repeat;
    mask-repeat:no-repeat;
    pointer-events:none;
  }
  body.has-mobile-masthead .mast-earned-badges>.mast-earned-badge{
    position:relative!important;
    z-index:1!important;
    width:11px!important;
    min-width:11px!important;
    max-width:11px!important;
    height:11px!important;
    min-height:11px!important;
    max-height:11px!important;
  }
  body.has-mobile-masthead .mast-earned-badges>.mast-earned-badge:not(.is-earned){
    background:transparent!important;
    background-color:transparent!important;
  }
}
@media(max-width:620px), (orientation:landscape) and (max-height:620px) and (pointer:coarse){
  body.opennow .cityswitch > .map-masthead{transform:translateX(2px)!important}
}
@media(max-width:620px), (orientation:landscape) and (max-height:620px) and (pointer:coarse){
  body.has-mobile-masthead .mast-earned-badges{top:calc(41.14px + env(safe-area-inset-top))!important}
}
/* Homepage Search stays in its existing right-side masthead slot, but uses the
   weather pill's horizontal shape so the label is discoverable at a glance. */
.srch-btn__label{display:none}
.mobile-app-store{display:none}
html.sees-native-ios .mobile-app-store{display:none!important}
/* A quiet label makes the progress pearls legible at a glance without adding another control. */
@media(max-width:620px), (orientation:landscape) and (max-height:620px) and (pointer:coarse){
  body.has-mobile-masthead .mast-earned-badges::after{
    content:"Earned badges:";
    position:fixed;
    top:calc(25px + env(safe-area-inset-top));
    left:calc(111.28px + env(safe-area-inset-left));
    z-index:2;
    color:rgba(255,255,255,.92);
    font:700 8.5px/1 'Quicksand',sans-serif;
    letter-spacing:.08em;
    text-transform:uppercase;
    white-space:nowrap;
    text-shadow:0 1px 3px rgba(0,35,75,.5);
    pointer-events:none;
  }
}
/* App Store calls-to-action use the Sees Journal logo blue. */
body.desktop-command-ready .desktop-command__actions .desktop-home__app-store,
body.desktop-home .site-header .topnav .desktop-home__app-store{
  background:#0870b8!important;
  border-color:rgba(255,255,255,.58)!important;
  box-shadow:0 8px 20px rgba(0,42,82,.3),inset 0 1px 0 rgba(255,255,255,.22)!important;
}
body.desktop-command-ready .desktop-command__actions .desktop-home__app-store:hover,
body.desktop-command-ready .desktop-command__actions .desktop-home__app-store:focus-visible,
body.desktop-home .site-header .topnav .desktop-home__app-store:hover,
body.desktop-home .site-header .topnav .desktop-home__app-store:focus-visible{
  background:#0b82cf!important;
}
@media(max-width:620px), (orientation: landscape) and (max-height:620px) and (pointer:coarse){
  body:is(.home,.eventpage) .mast-inline-actions .srch-btn{
    width:68px!important;
    height:24px!important;
    min-width:68px!important;
    padding:0 8px!important;
    gap:5px!important;
    border-radius:999px!important;
    transform:translateX(-5px)!important;
  }
  body:is(.home,.eventpage) .mast-inline-actions .srch-btn svg{
    width:18px!important;
    height:18px!important;
    flex:0 0 18px;
  }
  body:is(.home,.eventpage) .mast-inline-actions .srch-btn__label{
    display:inline-block;
    font:700 11px/1 'Quicksand',sans-serif;
    white-space:nowrap;
    transform:translateX(-2px);
  }
  body:is(.home,.eventpage) .mast-inline-actions .help-btn,
  body.opennow .mast-inline-actions .help-btn{
    display:flex!important;
    width:43px!important;
    height:24px!important;
    min-width:43px!important;
    align-items:center;
    justify-content:center;
    gap:4px;
    padding:0 7px!important;
    border:1px solid rgba(255,255,255,.72);
    border-radius:999px;
    color:#fff;
    background:rgba(118,84,207,.78);
    box-shadow:0 2px 8px rgba(47,20,111,.2);
    font:700 11px/1 'Quicksand',sans-serif;
    cursor:pointer;
    white-space:nowrap;
  }
  body:is(.home,.eventpage) .mast-inline-actions .help-btn__mark,
  body.opennow .mast-inline-actions .help-btn__mark{
    display:inline-grid;
    place-items:center;
    width:14px;
    height:14px;
    border:1px solid rgba(255,255,255,.9);
    border-radius:50%;
    font:700 10px/1 Arial,sans-serif;
  }
  body:is(.home,.eventpage) .mast-inline-actions .help-btn__label,
  body.opennow .mast-inline-actions .help-btn__label{display:inline-block}
  body:is(.home,.eventpage) .mast-inline-actions .help-btn{background:transparent}
  body:is(.home,.eventpage) .mast-inline-actions .mobile-app-store,
  body.opennow .mast-inline-actions .mobile-app-store{
    display:flex;
    height:24px;
    min-height:24px;
    align-items:center;
    justify-content:center;
    gap:4px;
    padding:0 8px;
    border:1px solid rgba(255,255,255,.72);
    border-radius:999px;
    color:#fff;
    background:#0870b8;
    box-shadow:0 2px 8px rgba(0,42,82,.3);
    backdrop-filter:blur(14px) saturate(1.35);
    -webkit-backdrop-filter:blur(14px) saturate(1.35);
    font:700 10px/1 'Quicksand',sans-serif;
    text-decoration:none;
    white-space:nowrap;
  }
  body:is(.home,.eventpage) .mast-inline-actions .mobile-app-store__mark,
  body.opennow .mast-inline-actions .mobile-app-store__mark{
    font:800 12px/1 Arial,sans-serif;
    transform:translateY(-1px);
  }
  body:is(.home,.eventpage) .home-mast-tools > .mast-inline-actions{
    position:fixed!important;
    top:calc(79.28px + env(safe-area-inset-top))!important;
    left:calc(116.28px + env(safe-area-inset-left))!important;
    right:auto!important;
    z-index:1152!important;
    transform:none!important;
  }
}

/* Keep See Now, See Later, and neighborhood search controls consistent with
   the homepage search-pill treatment. */
@media(max-width:620px), (orientation: landscape) and (max-height:620px) and (pointer:coarse){
  body.opennow .mast-inline-actions .srch-btn{
    width:68px!important;
    height:24px!important;
    min-width:68px!important;
    padding:0 8px!important;
    gap:5px!important;
    border-radius:999px!important;
    transform:translateX(-5px)!important;
  }
  body.opennow .mast-inline-actions .srch-btn svg{
    width:18px!important;
    height:18px!important;
    flex:0 0 18px;
  }
  body.opennow .mast-inline-actions .srch-btn__label{
    display:inline-block;
    font:700 11px/1 'Quicksand',sans-serif;
    white-space:nowrap;
    transform:translateX(-2px);
  }
  body:is(.home,.eventpage) .mast-inline-actions .help-btn,
  body.opennow .mast-inline-actions .help-btn{width:40px!important;min-width:40px!important;padding:0 5px!important}
  body:is(.home,.eventpage) .mast-inline-actions .help-btn__label,
  body.opennow .mast-inline-actions .help-btn__label{display:inline-block}
  body:is(.home,.eventpage) .mast-inline-actions .help-btn__mark,
  body.opennow .mast-inline-actions .help-btn__mark{display:none}
  body.opennow .home-mast-tools > .mast-inline-actions{
    position:fixed!important;
    top:calc(79.28px + env(safe-area-inset-top))!important;
    left:calc(116.28px + env(safe-area-inset-left))!important;
    right:auto!important;
    z-index:1152!important;
    transform:none!important;
  }
}
body.mappage .site-header .topnav .desktop-command__link[aria-current="page"]{display:none!important}

/* Option D typography: DM Sans carries the readable content system while
   Quicksand stays on controls and compact labels. Sizes, weights, spacing,
   and colors remain inherited. */
h1,h2,h3,h4,h5,h6,
[class*="title"],
.topnav a,
.bn-l{
  font-family:"DM Sans",serif!important;
}
.page-hero p,
.page-hero .updated,
.home-updated,
.guide-updated,
.updated,
[class*="__desc"],[class*="-desc"],
[class*="__description"],[class*="-description"],
[class*="__sub"],[class*="-sub"],
.card__addr,.card__venue,.card__hours,.card__why,.card__hook,.card__who,
.mcard__venue,.row__venue,.ep-venue,.ep-addr,.ep-hours,.es2-venue,.es2-addr,.es2-hours,
.evsheet__addr,.journal-card p,.journal-venue-card p,.saved-card__body p,
.saved-empty p,.journal-empty p,.saved-route-card p,.saved-nearby-message,
.hero-note p,.detail__body,.post__body,.wintro{
  font-family:'DM Sans','DM Sans',cursive!important;
}
body.savedpage .saved-empty p,
body.journalpage .journal-empty p{
  font-size:16px!important;
  line-height:1.35!important;
}
body.journalpage .journal-empty .journal-empty__benefit{
  font-size:14px!important;
  line-height:1.3!important;
}
@media(max-width:620px), (orientation: landscape) and (max-height:620px) and (pointer:coarse){
  body.savedpage .saved-empty p,
  body.journalpage .journal-empty p{font-size:15px!important}
  body.journalpage .journal-empty .journal-empty__benefit{font-size:13.5px!important}
}

/* Saved title parity: use Journal's mobile identity slot and titleline geometry. */
@media(max-width:620px), (orientation: landscape) and (max-height:620px) and (pointer:coarse){
  body.savedpage .saved-headline{
    top:-26px!important;
    left:102px!important;
    right:-6px!important;
  }
  body.savedpage .saved-titleline{
    position:relative!important;
    display:grid!important;
    grid-template-columns:minmax(0,1fr) auto minmax(0,1fr)!important;
    align-items:center!important;
    gap:0!important;
    width:100%!important;
    height:29px!important;
  }
  body.savedpage .saved-titleline h1{
    grid-column:2!important;
    grid-row:1!important;
    font:600 23px/27.6px 'DM Sans',serif!important;
    transform:none!important;
  }
  body.savedpage .saved-title-heart{
    position:static!important;
    grid-column:1!important;
    grid-row:1!important;
    justify-self:end!important;
    margin-right:8px!important;
    left:auto!important;
    top:auto!important;
    width:24px!important;
    height:24px!important;
    flex:0 0 24px!important;
  }
  body.savedpage .saved-title-heart svg{width:24px!important;height:24px!important}
}

/* Final option-D guard: later page-specific rules must not reintroduce the
   former decorative body font or let a title inherit a control face. */
body.savedpage .saved-titleline h1,
.site-footer .copy,
.site-footer .dev-disclaimer{
  font-family:"DM Sans",sans-serif!important;
}

/* Keep the same typography contract on generated pages and the app shell. */
h1,h2,h3,h4,h5,h6,
[class*="title"],[class*="heading"],[class*="name"]{
  font-family:"DM Sans",sans-serif!important;
}
button,input,select,textarea,label,
.topnav a,.cityswitch,.bottom-nav,
[class*="pill"],[class*="badge"],[class*="tag"],[class*="label"]{
  font-family:"Quicksand",sans-serif!important;
}

/* Automatically preserve extreme portrait/landscape event artwork. */
.card__photo[data-image-fit="contain"],
.mcard__img[data-image-fit="contain"],
.row__img[data-image-fit="contain"] {
  object-fit: contain;
  background: linear-gradient(150deg, var(--blue), #03426f);
}

/* Map category control: bring the Art/Theater/Drag labels another 3px closer together
   without removing the small visual separation between their active chips. */
@media(max-width:620px), (orientation: landscape) and (max-height:620px) and (pointer:coarse){
  html:root body.mappage .mapcat__opt{
    height:28px !important;
    min-height:28px !important;
    padding-left:3.5px !important;
    padding-right:3.5px !important;
    padding-top:0 !important;
    padding-bottom:0 !important;
    display:flex !important;
    align-items:center !important;
    justify-content:center !important;
    line-height:1 !important;
  }
  html:root body.mappage .mapcat{
    top:calc(11px + env(safe-area-inset-top)) !important;
    height:30px !important;
    min-height:30px !important;
    padding-top:0 !important;
    padding-bottom:0 !important;
    padding-left:1px !important;
    padding-right:0 !important;
    display:flex !important;
    align-items:center !important;
    box-sizing:border-box !important;
  }
  html:root body.mappage .mapcat,
  html:root body.mappage .cityswitch__btn{
    border-width:1px !important;
    border-style:solid !important;
    box-sizing:border-box !important;
  }
  html:root body.mappage .cityswitch__btn{
    height:30px !important;
    min-height:30px !important;
    padding-left:9px !important;
    padding-right:4px !important;
  }
  html:root body.mappage .mapfilter__btn{
    height:30px !important;
    min-height:30px !important;
    padding-top:0 !important;
    padding-bottom:0 !important;
    padding-right:6px !important;
    display:flex !important;
    align-items:center !important;
    line-height:1 !important;
    box-sizing:border-box !important;
  }
  html:root body.mappage .mapfilter__caret{
    position:static !important;
    align-self:center !important;
    display:inline-flex !important;
    align-items:center !important;
    justify-content:center !important;
    width:14px !important;
    height:14px !important;
    line-height:1 !important;
    position:relative !important;
    top:-4px !important;
    transform:none !important;
  }
  html:root body.mappage .mapfilter.is-open .mapfilter__caret{
    top:4px !important;
    transform:rotate(180deg) !important;
  }
  html:root body.mappage .cityswitch__menu .cityswitch__opt{
    height:30px !important;
    min-height:30px !important;
    padding-top:0 !important;
    padding-bottom:0 !important;
    display:flex !important;
    align-items:center !important;
    justify-content:flex-start !important;
    box-sizing:border-box !important;
  }
  html:root body.mappage .mapfilter__menu .mapmode{
    height:30px !important;
    min-height:30px !important;
    padding-top:0 !important;
    padding-bottom:0 !important;
    display:flex !important;
    align-items:center !important;
    box-sizing:border-box !important;
  }
  html:root body.mappage .cityswitch__caret{
    transform:translateY(-4px) !important;
  }
  html:root body.mappage .cityswitch__btn[aria-expanded="true"] .cityswitch__caret{
    position:relative !important;
    top:8px !important;
    transform:translateY(-4px) rotate(180deg) !important;
  }
}
/* ---------- SUPPORT ---------- */
body.legal .support-callout{
  max-width:760px;
  margin:26px auto 0;
  padding:24px 30px;
  border:1px solid rgba(255,255,255,.45);
  border-radius:22px;
  color:rgba(255,255,255,.94);
  background:rgba(255,255,255,.13);
  box-shadow:0 14px 32px rgba(7,42,80,.18),inset 0 1px 0 rgba(255,255,255,.12);
  backdrop-filter:blur(16px) saturate(1.2);
  -webkit-backdrop-filter:blur(16px) saturate(1.2)}
body.legal .support-callout h2{margin:0 0 7px;color:#fff;font-size:24px;line-height:1.2}
body.legal .support-callout p{margin:0 0 14px;font-size:16px;line-height:1.55}
body.legal .support-callout .btn{display:inline-block;background:#fff;color:#056caf;padding:11px 24px;text-decoration:none}
body.legal .support-callout .btn:hover{background:#edf8ff;color:#056caf}
body.legal .support-prose h3{margin:22px 0 8px;color:#fff;font-size:20px;line-height:1.25}
@media(max-width:620px){
  body.legal .support-callout{margin:18px 14px 0;padding:20px 18px}
  body.legal .support-callout h2{font-size:21px}
  body.legal .support-callout p{font-size:14px}
  body.legal .support-prose h3{font-size:18px}
}

/* Mobile/app-only spoken brief. It is inserted at the top of the Art Today rail by main.js;
   keeping it inside the mobile media query prevents the desktop homepage from changing. */
.art-daily-brief{display:none}
.art-daily-brief__audio{display:none}
@media(max-width:620px){
  body.home .art-daily-brief{
    display:block;
    margin:0 0 18px;
    padding:16px 16px 14px;
    border:1px solid rgba(255,255,255,.66);
    border-radius:18px;
    background:linear-gradient(145deg,rgba(255,255,255,.92),rgba(235,244,249,.8));
    box-shadow:0 10px 24px rgba(7,42,80,.16),0 2px 7px rgba(7,42,80,.08),inset 0 1px 0 rgba(255,255,255,.72);
    color:var(--ink-strong);
  }
  body.home .art-daily-brief[hidden]{display:none!important}
  body.home .art-daily-brief__top{display:flex;align-items:center;justify-content:space-between;gap:12px}
  body.home .art-daily-brief__eyebrow{margin:0 0 4px;color:var(--blue-dark);font:700 10px/1 'Quicksand',sans-serif;letter-spacing:.16em;text-transform:uppercase}
  body.home .art-daily-brief h3{margin:0;color:var(--ink-strong);font:700 21px/1.08 Georgia,'Times New Roman',serif;text-shadow:0 1px 1px rgba(7,42,80,.1)}
  body.home .art-daily-brief__headphones{display:grid;place-items:center;width:38px;height:38px;border-radius:50%;background:rgba(0,112,192,.1);color:var(--blue-dark);font:700 20px/1 'DM Sans',sans-serif;letter-spacing:-.22em;padding-right:4px}
  body.home .art-daily-brief__intro{margin:9px 0 12px;color:#536875;font:500 13px/1.35 'DM Sans',sans-serif}
  body.home .art-daily-brief__controls{display:flex;align-items:center;gap:8px}
  body.home .art-daily-brief__play,
  body.home .art-daily-brief__restart{border:1px solid rgba(0,87,145,.2);font:700 12px/1 'Quicksand',sans-serif;cursor:pointer;-webkit-tap-highlight-color:transparent}
  body.home .art-daily-brief__play{display:inline-flex;align-items:center;gap:8px;padding:10px 13px;border-radius:999px;background:var(--blue);color:#fff;box-shadow:0 5px 12px rgba(0,72,126,.2)}
  body.home .art-daily-brief__play:active{transform:translateY(1px)}
  body.home .art-daily-brief__play-icon{font-size:10px}
  body.home .art-daily-brief__restart{width:32px;height:32px;padding:0;border-radius:50%;background:rgba(255,255,255,.74);color:var(--blue-dark);font-size:18px}
  body.home .art-daily-brief__meta{margin:10px 0 0;color:#71808b;font:700 10px/1 'Quicksand',sans-serif;letter-spacing:.04em;text-transform:uppercase}
}
/* The spoken Art Brief was removed from the art pages. Keep old cached markup inert. */
body.home .art-daily-brief{display:none!important}

/* Essay reading pages borrow the Journal surface: city identity in the header,
   an image-first card, then a calm reading panel and gallery. */
body.essay-journalpage{--essay-glass:linear-gradient(180deg,rgba(255,255,255,.12) 0%,rgba(224,244,255,.82) 27%,rgba(249,252,253,.98) 67%);--essay-glass-line:rgba(255,255,255,.88);--essay-glass-shadow:0 18px 34px rgba(4,48,84,.16);background:var(--bg);color:var(--ink)}
body.essay-journalpage .site-header{margin-bottom:104px}
body.essay-journalpage .site-header__in{position:relative}
body.essay-journalpage .essay-journal-brand{position:absolute;top:46px;left:150px;right:170px;height:120px;z-index:6;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;pointer-events:none}
body.essay-journalpage .essay-journal-brand h1{margin:0;color:#fff;font:600 clamp(24px,4vw,38px)/1.05 'DM Sans',serif;text-align:center;text-shadow:0 2px 10px rgba(0,0,0,.52),0 1px 2px rgba(0,0,0,.3)}
body.essay-journalpage .essay-journal-brand p{margin:0;color:rgba(255,255,255,.82);font:500 13px/1.25 'Quicksand',sans-serif;text-align:center}
body.essay-journalpage .essay-journal-wrap{max-width:900px;padding-bottom:72px}
body.essay-journalpage .essay-journal-head{align-items:flex-end;margin-bottom:20px}
body.essay-journalpage .essay-journal-heading{min-width:0}
body.essay-journalpage .essay-journal-head .journal-eyebrow{color:#7b4fb0;text-transform:uppercase}
body.essay-journalpage .essay-journal-head h1{color:var(--ink-strong)}
body.essay-journalpage .essay-journal-head .journal-sub{white-space:normal}
body.essay-journalpage .essay-journal-back{flex:0 0 auto}
body.essay-journalpage .essay-journal-section{max-width:760px;margin:0 auto 18px;overflow:hidden;border:1px solid var(--rule-soft);border-radius:18px;background:#fff;color:var(--ink);box-shadow:0 4px 15px rgba(43,38,31,.08)}
body.essay-journalpage .essay-journal-section>img{display:block;width:100%;height:auto;aspect-ratio:4/3;object-fit:cover;border-radius:18px}
body.essay-journalpage .essay-journal-lead-credit{margin:0;padding:9px 20px 0;color:#8a8278;font:12px/1.4 'Quicksand',sans-serif}
body.essay-journalpage .essay-journal-section__content{padding:18px 20px 22px}
body.essay-journalpage .essay-journal-section .journal-city-label{color:#0070c0;font-size:15px;font-weight:800}
body.essay-journalpage .essay-journal-title{margin:5px 0 0;color:var(--ink-strong);font:700 30px/1.08 'DM Sans',serif;letter-spacing:-.025em}
body.essay-journalpage .essay-journal-section__content>p{margin:6px 0;color:#70695f;font-size:14px;line-height:1.35}
body.essay-journalpage .essay-journal-summary{margin:13px 0 0!important;padding:12px 14px;border-left:3px solid #0070c0;border-radius:0 11px 11px 0;background:linear-gradient(105deg,#eef8fe 0%,#f8fbfd 100%);color:#2d536d!important;font-size:15px!important;font-weight:600;line-height:1.5!important;box-shadow:0 3px 10px rgba(0,112,192,.08)}
body.essay-journalpage .essay-journal-byline{display:flex;flex-wrap:wrap;align-items:center;gap:5px 10px;margin-top:8px;color:#0070c0;font-size:13px;font-weight:700}
body.essay-journalpage .essay-journal-byline>span:first-child{font-size:15px;font-weight:800}
body.essay-journalpage .essay-journal-byline time,body.essay-journalpage .essay-journal-byline>span:last-child{color:#111}
body.essay-journalpage .essay-journal-byline time{font:inherit}
body.essay-journalpage .essay-journal-byline time::before,
body.essay-journalpage .essay-journal-byline>span:last-child::before{content:'·';margin-right:10px;color:#8a8278}
body.essay-journalpage .essay-read-row{display:flex;align-items:center;gap:8px;margin-top:14px;flex-wrap:nowrap}
body.essay-journalpage .essay-audio{display:none}
body.essay-journalpage .essay-read-controls{display:flex;align-items:center;gap:1px;padding:3px 4px;border:1px solid rgba(137,148,158,.68);border-radius:14px;background:linear-gradient(135deg,rgba(239,242,244,.94),rgba(197,204,210,.84));-webkit-backdrop-filter:blur(14px) saturate(120%);backdrop-filter:blur(14px) saturate(120%);box-shadow:0 6px 15px rgba(48,59,68,.16),inset 0 1px 0 rgba(255,255,255,.98)}
body.essay-journalpage .essay-read-control,body.essay-journalpage .essay-read-aloud{display:inline-flex;align-items:center;justify-content:center;gap:6px;min-height:32px;border:0;border-radius:9px;background:transparent;color:#075e9f;padding:7px 8px;font:700 12px/1 'Quicksand',sans-serif;cursor:pointer;transition:background .16s,color .16s,box-shadow .16s,transform .16s}
body.essay-journalpage .essay-read-control{width:30px;min-width:30px;padding-inline:0;font-size:18px;line-height:.8}
body.essay-journalpage .essay-read-control[data-read-action="previous"],body.essay-journalpage .essay-read-control[data-read-action="next"]{font-size:0;line-height:1}
body.essay-journalpage .essay-read-control[data-read-action="previous"]::before{content:'−15';font:800 10px/1 'DM Sans',sans-serif;letter-spacing:-.04em}
body.essay-journalpage .essay-read-control[data-read-action="next"]::before{content:'+15';font:800 10px/1 'DM Sans',sans-serif;letter-spacing:-.04em}
body.essay-journalpage .essay-read-control[data-read-action="restart"]{font-size:20px}
body.essay-journalpage .essay-read-aloud{background:rgba(255,255,255,.86);color:#075e9f;padding-inline:11px;box-shadow:0 3px 8px rgba(7,42,80,.12),inset 0 1px 0 rgba(255,255,255,.92)}
body.essay-journalpage .essay-read-aloud:hover,body.essay-journalpage .essay-read-aloud:focus-visible{background:rgba(255,255,255,.98);color:#005a9a;box-shadow:0 5px 12px rgba(7,42,80,.16),inset 0 1px 0 rgba(255,255,255,1);transform:translateY(-1px)}
body.essay-journalpage .essay-read-control:hover,body.essay-journalpage .essay-read-control:focus-visible{background:rgba(0,112,192,.1);color:#005a9a;box-shadow:0 3px 8px rgba(7,42,80,.1);transform:translateY(-1px)}
body.essay-journalpage .essay-read-aloud.is-active{background:rgba(208,239,250,.9);color:#075e9f}
body.essay-journalpage .essay-read-aloud__icon{display:inline-flex;align-items:center;justify-content:center;width:15px;height:15px;line-height:1}
body.essay-journalpage .essay-read-aloud__icon svg{display:block;width:15px;height:15px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
body.essay-journalpage .essay-share{min-height:34px;margin-left:auto;border-color:#b9d9eb;background:#fff;color:#075e9f;padding:8px 13px;box-shadow:0 2px 7px rgba(7,42,80,.08)}
body.essay-journalpage .essay-share:hover,body.essay-journalpage .essay-share:focus-visible{background:#eaf5fc;border-color:#0070c0;color:#005a9a;box-shadow:0 4px 10px rgba(0,112,192,.14);transform:translateY(-1px)}
body.essay-journalpage .essay-journal-body{margin:24px 0 0;padding:0;border:0;border-radius:0;background:transparent;color:var(--ink);font-size:18px;line-height:1.72}
body.essay-journalpage .essay-journal-body p{margin:0 0 23px}
body.essay-journalpage .essay-journal-body p:last-child{margin-bottom:0}
body.essay-journalpage .essay-journal-gallery{margin:22px 0 0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
body.essay-journalpage .essay-journal-photo{margin:0;overflow:hidden;border:0;border-radius:16px;background:transparent}
body.essay-journalpage .essay-journal-photo img{display:block;width:100%;height:auto;aspect-ratio:4/3;object-fit:cover;border-radius:16px}
body.essay-journalpage .essay-journal-photo figcaption{padding:8px 10px 10px;color:#8a8278;font:11px/1.4 'Quicksand',sans-serif}
body.essay-journalpage .essay-journal-footer{margin:30px 0 0;padding:15px 17px 16px;border:1px solid #d9e7ed;border-radius:15px;background:linear-gradient(135deg,rgba(241,248,251,.9),rgba(250,249,246,.92));box-shadow:0 5px 14px rgba(7,42,80,.08),inset 0 1px 0 rgba(255,255,255,.96)}
body.essay-journalpage .essay-journal-footer__label{display:block;color:#0070c0;font:800 10px/1.1 'Quicksand',sans-serif;letter-spacing:.12em;text-transform:uppercase}
body.essay-journalpage .essay-journal-footer__label::before{content:'';display:inline-block;width:6px;height:6px;margin:0 7px 1px 0;border-radius:50%;background:#d5a11e}
body.essay-journalpage .essay-journal-footer p{margin:7px 0 0;color:#53636d;font:14px/1.5 'Quicksand',sans-serif}

/* Desktop essay index parity: use the homepage's blue masthead geometry for the
   review index only. Individual essay reading pages keep their existing header. */
@media(min-width:621px){
  body.desktop-essay-index{
    background-color:#fff;
    background-image:
      var(--sj-stats-star-bg),
      var(--sj-stats-star-bg),
      radial-gradient(760px 180px at 82% 0%,rgba(255,255,255,.14),transparent 70%),
      linear-gradient(112deg,#087fca 0%,#0070c0 54%,#075e9e 100%);
    background-position:4% 50%,78% 8%,82% 0%,0 0;
    background-size:180px 180px,220px 220px,760px 180px,100% 184px;
    background-repeat:no-repeat;
  }
  body.desktop-essay-index .site-header{
    margin-bottom:30px!important;
    background:transparent!important;
    border-bottom:0!important;
    box-shadow:none!important;
  }
  body.desktop-essay-index .site-header__in{
    display:grid;
    grid-template-columns:110px 170px minmax(0,1fr) auto;
    grid-template-rows:minmax(104px,auto);
    align-items:center;
    column-gap:10px;
    row-gap:0;
    height:auto;
    min-height:138px;
    padding-top:14px;
    padding-bottom:12px;
  }
  body.desktop-essay-index .site-header .logo{
    position:relative;
    top:0;
    grid-column:1;
    grid-row:1;
    width:110px;
    height:110px;
    align-self:center;
  }
  body.desktop-essay-index .site-header .logo img{
    border:1px solid rgba(255,255,255,.34);
    border-radius:18px;
    box-shadow:0 12px 28px rgba(7,42,80,.32),inset 0 1px 0 rgba(255,255,255,.14);
  }
  body.desktop-essay-index .site-header .cityswitch{
    grid-column:2;
    grid-row:1;
    justify-self:start;
    display:grid;
    grid-template-columns:auto auto;
    align-items:center;
    gap:5px 10px;
    min-width:0;
    padding:0;
    border:0;
    border-radius:0;
    background:none;
    box-shadow:none;
    backdrop-filter:none;
    -webkit-backdrop-filter:none;
  }
  body.desktop-essay-index .site-header .cityswitch__context{display:none}
  body.desktop-essay-index .site-header .cityswitch__btn{
    grid-column:1 / -1;
    min-width:165px;
    min-height:36px;
    justify-content:flex-start;
    gap:9px;
    padding:7px 10px 8px;
    font-size:15.75px;
    line-height:1.2;
  }
  body.desktop-essay-index .site-header .cityswitch__btn::before{
    width:13px;
    height:17px;
    flex-basis:13px;
  }
  body.desktop-essay-index .site-header .cityswitch__caret{font-size:13.5px}
  body.desktop-essay-index .site-header .cityswitch__menu{
    top:calc(100% + 9px);
    left:0;
    right:auto;
    min-width:230px;
  }
  body.desktop-essay-index .desktop-guide-switch{display:none!important}
  body.desktop-essay-index .site-header .topnav{
    grid-column:3;
    grid-row:1;
    align-self:center;
    display:flex;
    flex-wrap:wrap;
    align-content:center;
    justify-content:flex-end;
    gap:3px;
    row-gap:2px;
    min-width:0;
    padding-top:0;
    border-top:0;
  }
  body.desktop-essay-index .site-header .topnav .desktop-command__link{
    padding:9px 8px;
    font-size:13.75px;
    text-shadow:0 1px 2px rgba(0,0,0,.22);
  }
  body.desktop-essay-index .site-header .topnav a:not(.desktop-command__link){
    padding:9px 8px;
    font-size:13.75px;
    text-shadow:0 1px 2px rgba(0,0,0,.22);
  }
}

/* All city Atlas templates share San Diego's three-card desktop venue grid.
   SF currently emits .area__grid; Boston retains the legacy .atlaspage class. */
@media(min-width:901px){
  body.atlas-page .vgrid,
  body.atlas-page .area__grid,
  body.atlaspage .vgrid,
  body.atlaspage .area__grid{
    display:grid!important;
    grid-template-columns:repeat(3,minmax(0,1fr))!important;
    gap:22px!important;
  }
  /* Keep the mapped-space number distinct while leaving its label unchanged. */
  body.atlas-page .atlas-stat,
  body.atlaspage .atlas-stat{
    white-space:nowrap!important;
  }
  body.atlas-page .atlas-stat strong,
  body.atlaspage .atlas-stat strong{
    color:#d5a11e!important;
  }
}

/* Desktop Atlas parity: every city uses the San Diego Atlas's visible system.
   Page-specific venue data and mobile layouts remain untouched. */
@media(min-width:621px){
  /* Leaflet panes carry their own high z-indexes. Keep Atlas maps contained in
     the document flow so they can never paint over the shared desktop header. */
  body.desktop-atlas .site-header,
  body.atlaspage .site-header{
    position:relative!important;
    z-index:1000!important;
  }
  body.desktop-atlas #map-section,
  body.atlaspage #map-section{
    position:relative!important;
    z-index:0!important;
    isolation:isolate;
  }
  body.desktop-atlas #placesmap,
  body.atlaspage #placesmap{
    position:relative!important;
    z-index:0!important;
  }
  body.desktop-atlas .page-hero{text-align:left!important}
  body.atlaspage .lp-title{text-align:left!important}
  body.desktop-atlas .atlas-lede{
    max-width:680px!important;
    margin:10px auto 0!important;
    color:#fff!important;
    font-family:'DM Sans',serif!important;
    font-size:18px!important;
    font-style:italic!important;
    line-height:1.7!important;
    text-align:center!important;
  }
  body.desktop-atlas .atlas-stat{
    display:flex!important;
    align-items:center!important;
    gap:14px!important;
    max-width:420px!important;
    margin:20px auto 0!important;
    color:#fff!important;
    font:700 12px/1.4 'Quicksand',sans-serif!important;
    letter-spacing:.16em!important;
    text-transform:uppercase!important;
  }
  body.desktop-atlas .atlas-stat::before,
  body.desktop-atlas .atlas-stat::after{content:""!important;flex:1!important;height:1px!important}
  body.desktop-atlas .atlas-stat::before{background:linear-gradient(90deg,transparent,rgba(191,138,52,.45))!important}
  body.desktop-atlas .atlas-stat::after{background:linear-gradient(90deg,rgba(191,138,52,.45),transparent)!important}
  body.desktop-atlas .atlas-stat strong{
    color:#d5a11e!important;
    font-size:16px!important;
    font-weight:700!important;
  }
  body.desktop-atlas .atlas-tools{margin:26px auto 10px!important}
  body.desktop-atlas .atlas-tools label{display:none!important}
  body.desktop-atlas .atlas-search,
  body.desktop-atlas #atlas-q{
    width:100%!important;
    box-sizing:border-box!important;
    padding:12px 16px!important;
    border:1px solid rgba(255,255,255,.58)!important;
    border-radius:8px!important;
    background:rgba(255,255,255,.97)!important;
    color:var(--ink)!important;
    font:500 16px/normal 'Quicksand',sans-serif!important;
  }
  body.desktop-atlas #atlas-q:focus{outline:none!important;border-color:#fff!important}
  body.desktop-atlas .atlas-chips{
    display:flex!important;
    flex-wrap:wrap!important;
    align-items:center!important;
    gap:8px!important;
    margin:14px 0 0!important;
  }
  body.desktop-atlas .atlas-chips .chip{
    padding:6px 14px!important;
    border:1px solid rgba(255,255,255,.54)!important;
    border-radius:999px!important;
    background:rgba(255,255,255,.12)!important;
    color:#fff!important;
    font:600 13px/normal 'Quicksand',sans-serif!important;
    letter-spacing:.02em!important;
    cursor:pointer!important;
  }
  body.desktop-atlas .atlas-chips .chip:hover{border-color:#fff!important;background:rgba(255,255,255,.2)!important}
  body.desktop-atlas .atlas-chips .chip.is-on{border-color:#fff!important;background:#075f9f!important;color:#fff!important}
  body.desktop-atlas .atlas-count{
    margin-left:auto!important;
    color:rgba(255,255,255,.78)!important;
    font:500 13px/normal 'Quicksand',sans-serif!important;
  }
  body.desktop-atlas #map-section{margin:26px 0 44px!important}
  body.desktop-atlas #map-section > .shead{margin:0 0 22px!important}
  body.desktop-atlas #placesmap{
    width:100%!important;
    height:540px!important;
    min-height:0!important;
    margin:0!important;
    overflow:hidden!important;
    border:1px solid rgba(255,255,255,.56)!important;
    border-radius:12px!important;
    background:#e9e6df!important;
  }
  body.desktop-atlas #placesmap .leaflet-tile-pane{filter:grayscale(1)!important}
  body.desktop-atlas .map-note{
    margin:12px 0 0!important;
    color:#fff!important;
    font-size:14px!important;
    font-style:italic!important;
    text-align:center!important;
  }
  body.desktop-atlas .area{margin:52px 0 0!important}
  body.desktop-atlas .area__head{
    display:flex!important;
    align-items:baseline!important;
    gap:10px!important;
    margin:0 0 22px!important;
    padding:0 0 8px!important;
    border:0!important;
    border-bottom:2px solid rgba(255,255,255,.52)!important;
    color:#fff!important;
    font:600 26px/normal 'DM Sans',serif!important;
  }
  body.desktop-atlas .area__count{
    padding:2px 9px!important;
    border:1px solid rgba(255,255,255,.55)!important;
    border-radius:999px!important;
    background:#075f9f!important;
    color:#fff!important;
    font:600 13px/1.4 'Quicksand',sans-serif!important;
  }
  body.desktop-atlas .vgrid,
  body.desktop-atlas .area__grid{
    display:grid!important;
    grid-template-columns:repeat(3,minmax(0,1fr))!important;
    gap:22px!important;
  }
  body.desktop-atlas .vcard{
    display:flex!important;
    flex-direction:column!important;
    overflow:visible!important;
    border:1px solid rgba(255,255,255,.58)!important;
    border-radius:0!important;
    background:rgba(0,91,162,.78)!important;
  }
  body.desktop-atlas .vcard[style*="display: none"]{display:none!important}
  body.desktop-atlas .vcard__media{
    position:relative!important;
    display:flex!important;
    align-items:center!important;
    justify-content:center!important;
    width:100%!important;
    aspect-ratio:16/10!important;
    overflow:hidden!important;
  }
  body.desktop-atlas .vcard__mono{
    position:relative!important;
    z-index:0!important;
    color:rgba(255,255,255,.92)!important;
    font:700 46px/normal 'Quicksand',sans-serif!important;
    letter-spacing:.04em!important;
    text-shadow:0 1px 2px rgba(0,0,0,.18)!important;
  }
  body.desktop-atlas .vcard__photo{position:absolute!important;inset:0!important;z-index:2!important;width:100%!important;height:100%!important;object-fit:cover!important}
  body.desktop-atlas .vcard__sat{position:absolute!important;inset:0!important;z-index:1!important;width:100%!important;height:100%!important}
  body.desktop-atlas .vcard__sat .leaflet-container{width:100%!important;height:100%!important;background:transparent!important}
  body.desktop-atlas .vcard__sat .leaflet-tile-pane{pointer-events:none!important;filter:grayscale(1)!important}
  body.desktop-atlas .vcard__body{
    display:flex!important;
    flex:1 1 auto!important;
    flex-direction:column!important;
    gap:6px!important;
    padding:15px 17px 16px!important;
    background:rgba(0,91,162,.78)!important;
  }
  body.desktop-atlas .vcard__name{color:#fff!important;font:600 18.5px/1.22 'DM Sans',serif!important}
  body.desktop-atlas .vcard__addr{color:#fff!important;font-size:14.5px!important;line-height:1.4!important;opacity:.86!important}
  body.desktop-atlas .vcard__desc{display:none!important}
  body.desktop-atlas .vcard__foot{display:flex!important;align-items:center!important;flex-wrap:wrap!important;gap:6px 16px!important;margin-top:auto!important;padding-top:10px!important}
  body.desktop-atlas .vcard__detail,
  body.desktop-atlas .vcard__link{color:#fff!important;font:600 13.5px/normal 'Quicksand',sans-serif!important;letter-spacing:.02em!important}
  body.desktop-atlas .vcard__map{padding:0!important;border:0!important;border-bottom:1px solid rgba(255,255,255,.6)!important;background:none!important;color:#fff!important;font:600 12.5px/normal 'Quicksand',sans-serif!important;letter-spacing:.02em!important}
  body.desktop-atlas .atlas-empty{color:#fff!important;text-align:center!important}
}

/* Mobile homepage section rhythm: keep every transition between populated rails
   equally breathable. This is deliberately scoped to the mobile/app surface so
   desktop homepage spacing remains unchanged. */
@media(max-width:620px), (orientation: landscape) and (max-height:620px) and (pointer:coarse){
  body.home{--secgap:32px}
  body.home #home-featured{margin-top:var(--secgap)!important}
  body.home #home-solo{margin-top:var(--secgap)!important}
  body.home #home-onview .openings-sec{margin-top:var(--secgap)!important}
  body.home .week-cols{margin-top:var(--secgap)!important;gap:var(--secgap)!important}
  body.home .bday-sec{margin-top:var(--secgap)!important}
}

/* Desktop See Now / See Later header parity: use the same city control, category
   switch, five-item primary menu, and centered grid as the desktop Calendar. */
@media(min-width:621px){
  /* See Now and See Later use the same continuous Calendar masthead field. Keep
     the header itself transparent so the gradient and stars begin at the very
     top and remain one uninterrupted surface behind the controls. */
  body.opennow:not(.nbpage),
  body.planpage{
    background-position:0 0;
    background-size:cover;
    background-repeat:no-repeat;
  }
  body.opennow:not(.nbpage) .site-header,
  body.planpage .site-header{
    margin-bottom:30px!important;
    background:transparent!important;
    border-bottom:0!important;
    box-shadow:none!important;
  }

  body.opennow:not(.nbpage) .site-header__in,
  body.planpage .site-header__in{
    grid-template-columns:110px 170px 204px minmax(0,1fr);
    grid-template-rows:minmax(104px,auto);
    column-gap:10px;
    row-gap:0;
    min-height:138px;
  }
  body.opennow:not(.nbpage) .site-header .cityswitch,
  body.planpage .site-header .cityswitch{
    grid-column:2;
    grid-row:1;
  }
  body.opennow:not(.nbpage) .site-header .cityswitch__context,
  body.planpage .site-header .cityswitch__context{display:none}
  body.opennow:not(.nbpage) .site-header .cityswitch__btn,
  body.planpage .site-header .cityswitch__btn{
    min-width:165px;
    min-height:36px;
    gap:9px;
    padding:7px 10px 8px;
    font-size:15.75px;
    line-height:1.2;
  }
  body.opennow:not(.nbpage) .site-header .cityswitch__btn::before,
  body.planpage .site-header .cityswitch__btn::before{
    width:13px;
    height:17px;
    flex-basis:13px;
  }
  body.opennow:not(.nbpage) .site-header .cityswitch__caret,
  body.planpage .site-header .cityswitch__caret{font-size:13.5px}
  body.opennow:not(.nbpage) .desktop-guide-switch,
  body.planpage .desktop-guide-switch{
    display:inline-flex;
    grid-column:3;
    grid-row:1;
    align-self:center;
    justify-self:start;
    margin-left:0;
    height:36px;
    padding:3px 4px;
  }
  body.opennow:not(.nbpage) .desktop-guide-switch__opt,
  body.planpage .desktop-guide-switch__opt{
    min-width:62px;
    height:28px;
    padding:0 10px;
    font-size:12.5px;
    line-height:28px;
  }
  body.opennow:not(.nbpage) .site-header .topnav,
  body.planpage .site-header .topnav{
    grid-column:4;
    grid-row:1;
    align-self:center;
    flex-wrap:wrap;
    align-content:center;
    justify-content:flex-end;
    row-gap:2px;
    padding-top:0;
    border-top:none;
  }
  body.opennow:not(.nbpage) .site-header .topnav .desktop-command__link,
  body.planpage .site-header .topnav .desktop-command__link{
    padding:9px 8px;
    font-size:13.75px;
    text-shadow:0 1px 2px rgba(0,0,0,.22);
  }
}

@media (min-width:621px) and (max-width:900px) and (orientation:landscape) and (max-height:620px) and (pointer:coarse){
  body.desktop-essay-index .site-header__in{
    grid-template-columns:102px 170px minmax(0,1fr) auto;
    column-gap:8px;
    padding-left:20px;
    padding-right:20px;
  }
}
@media (min-width:621px) and (max-width:900px) and (orientation:landscape) and (max-height:620px) and (pointer:coarse){
  body.desktop-essay-index .site-header .logo{width:94px;height:94px}
}
@media (min-width:621px) and (max-width:900px) and (orientation:landscape) and (max-height:620px) and (pointer:coarse){
  body.desktop-essay-index .site-header .topnav .desktop-command__link,
  body.desktop-essay-index .site-header .topnav a:not(.desktop-command__link){
    padding-inline:7px;
    font-size:12.5px;
  }
}

@media(max-width:620px), (orientation: landscape) and (max-height:620px) and (pointer:coarse){
  body.essay-journalpage{background:linear-gradient(rgba(3,110,202,.8),rgba(3,110,202,.8)),#fff;color:#fff}
  body.essay-journalpage .site-header{background:transparent;border-bottom:none;margin-bottom:0}
  body.essay-journalpage .site-header__in{height:46px}
  body.essay-journalpage .logo{position:fixed;top:calc(14px + env(safe-area-inset-top));left:14px;width:89.28px;height:89.28px;z-index:1150}
  body.essay-journalpage .logo img{box-shadow:var(--mobile-raised-shadow)}
  body.essay-journalpage .essay-journal-brand{position:fixed;top:calc(14px + env(safe-area-inset-top));left:113.28px;right:14px;height:89.28px;z-index:1149}
  body.essay-journalpage .essay-journal-brand h1{font-size:clamp(21px,6.2vw,28px);line-height:1.05;text-shadow:0 2px 10px rgba(0,0,0,.52),0 1px 2px rgba(0,0,0,.3)}
  body.essay-journalpage .essay-journal-brand p{font-size:11px;line-height:1.2;text-shadow:0 1px 6px rgba(7,42,80,.32)}
  /* The floating masthead already establishes the city/page identity. Start the
     reading card just below the logo instead of leaving a second city eyebrow above it. */
  body.essay-journalpage .journal-wrap{padding:calc(72px + env(safe-area-inset-top)) 16px 40px}
  body.essay-journalpage .essay-journal-back{display:inline-block;margin-top:12px;color:#fff;border-color:rgba(255,255,255,.78);background:rgba(255,255,255,.12)}
  body.essay-journalpage .essay-journal-section{margin:0 0 14px;border-radius:14px}
  body.essay-journalpage .essay-journal-section>img{border-radius:14px}
  body.essay-journalpage .essay-journal-lead-credit{padding:8px 16px 0;font-size:11px}
  body.essay-journalpage .essay-journal-section__content{padding:16px 16px 18px}
  body.essay-journalpage .essay-journal-title{font-size:29px;line-height:1.06}
  body.essay-journalpage .essay-journal-section__content>p{font-size:12px}
  body.essay-journalpage .essay-journal-summary{margin-top:11px!important;padding:11px 12px;font-size:13px!important;line-height:1.45!important}
  body.essay-journalpage .essay-journal-section .journal-city-label{font-size:14px}
  body.essay-journalpage .essay-journal-byline{font-size:12px;gap:4px 8px}
  body.essay-journalpage .essay-journal-byline>span:first-child{font-size:14px}
  body.essay-journalpage .essay-journal-byline time::before,
  body.essay-journalpage .essay-journal-byline>span:last-child::before{margin-right:8px}
  body.essay-journalpage .essay-read-row{gap:8px;margin-top:12px}
  body.essay-journalpage .essay-read-controls{gap:1px;padding:3px}
  body.essay-journalpage .essay-read-control{width:28px;min-width:28px;padding-inline:0}
  body.essay-journalpage .essay-read-control[data-read-action="previous"]::before,body.essay-journalpage .essay-read-control[data-read-action="next"]::before{font-size:9px}
  body.essay-journalpage .essay-read-aloud{padding:7px 9px;font-size:11px}
  body.essay-journalpage .essay-share{padding:8px 10px;font-size:12px}
  body.essay-journalpage .essay-journal-body{margin-top:20px;font-size:17px;line-height:1.7}
  body.essay-journalpage .essay-journal-body p{margin-bottom:20px}
  body.essay-journalpage .essay-journal-gallery{grid-template-columns:1fr;gap:12px;margin-top:20px}
  body.essay-journalpage .essay-journal-photo{border-radius:14px}
  body.essay-journalpage .essay-journal-photo img{border-radius:14px}
  body.essay-journalpage .essay-journal-photo figcaption{padding:7px 9px 9px;font-size:10px}
  body.essay-journalpage .essay-journal-footer{margin-top:24px;padding:13px 14px 14px;background:linear-gradient(135deg,rgba(241,248,251,.96),rgba(250,249,246,.96));border-color:#d9e7ed}
  body.essay-journalpage .essay-journal-footer p{font-size:13px;color:#53636d}
  body.essay-journalpage .essay-related-event{
    display:none;
    margin:20px 0 10px;
    padding:16px 14px 18px;
    border:1px solid rgba(255,255,255,.72);
    border-radius:16px;
    background:var(--essay-glass);
    box-shadow:var(--essay-glass-shadow),0 2px 8px rgba(0,0,0,.08);
    -webkit-backdrop-filter:blur(16px) saturate(1.08);
    backdrop-filter:blur(16px) saturate(1.08);
    color:var(--ink-strong,#183746);
  }
  body.essay-journalpage .essay-related-event.is-ready{display:block}
  body.essay-journalpage .essay-related-event__label{
    margin:0 0 10px;
    color:#0876bf;
    font:700 11px/1.1 "DM Sans",sans-serif;
    letter-spacing:.13em;
    text-transform:uppercase;
  }
  body.essay-journalpage .essay-related-event .card--mini{display:block;margin:0;color:inherit}
  body.essay-journalpage .essay-related-event .mini__media{aspect-ratio:16/10;border-radius:12px;background:#0876bf;box-shadow:0 5px 14px rgba(0,0,0,.12)}
  body.essay-journalpage .essay-related-event .mini__media img{display:block;width:100%;height:100%;object-fit:cover;border-radius:inherit}
  body.essay-journalpage .essay-related-event .mini__txt{padding:10px 2px 0}
  body.essay-journalpage .essay-related-event .card__date{display:block;margin:0 0 4px;color:#53636d;font:600 11px/1.3 "DM Sans",sans-serif}
  body.essay-journalpage .essay-related-event .card__title{margin:0;color:#123b50;font:700 18px/1.15 "DM Sans",sans-serif}
  body.essay-journalpage .essay-related-event .card__venue{margin-top:5px;color:#53636d;font:500 12px/1.35 "DM Sans",sans-serif}
  body.essay-journalpage .essay-related-event .card__addr,
  body.essay-journalpage .essay-related-event .card__hours{margin-top:3px;color:#6c7b83;font:400 11px/1.35 "DM Sans",sans-serif}
  body.essay-journalpage .essay-related-event .card__kicks{top:9px;left:9px;right:auto}
  body.essay-journalpage .essay-related-event .card__kick{box-shadow:0 2px 6px rgba(0,0,0,.16)}
  body.essay-journalpage .essay-more-essays{
    display:none;
    margin:20px 0 10px;
    padding:16px 14px 18px;
    border:1px solid rgba(255,255,255,.72);
    border-radius:16px;
    background:var(--essay-glass);
    box-shadow:var(--essay-glass-shadow),0 2px 8px rgba(0,0,0,.08);
    -webkit-backdrop-filter:blur(16px) saturate(1.08);
    backdrop-filter:blur(16px) saturate(1.08);
  }
  body.essay-journalpage .essay-more-essays.is-ready{display:block}
  body.essay-journalpage .essay-more-essays__all{
    display:block;
    color:#075e9f;
    font:800 13px/1.2 "Quicksand",sans-serif;
    letter-spacing:.02em;
    text-align:right;
    text-decoration:none;
  }
  body.essay-journalpage .essay-more-essays__all span{margin-left:3px;font-size:16px;vertical-align:-1px}
  body.essay-journalpage .essay-more-essays__list{display:grid;gap:10px;margin-top:13px}
  body.essay-journalpage .essay-more-essays__tile{
    display:grid;
    grid-template-columns:88px minmax(0,1fr);
    gap:11px;
    align-items:center;
    min-height:66px;
    overflow:hidden;
    border:1px solid #d9e7ed;
    border-radius:12px;
    background:linear-gradient(135deg,rgba(241,248,251,.96),rgba(250,249,246,.98));
    box-shadow:0 4px 11px rgba(7,42,80,.07),inset 0 1px 0 rgba(255,255,255,.94);
    color:inherit;
    text-decoration:none;
  }
  body.essay-journalpage .essay-more-essays__tile:active{transform:translateY(1px)}
  body.essay-journalpage .essay-more-essays__tile img{display:block;width:88px;height:66px;object-fit:cover}
  body.essay-journalpage .essay-more-essays__tile-copy{min-width:0;padding:8px 11px 8px 0}
  body.essay-journalpage .essay-more-essays__tile-meta{display:block;margin:0 0 3px;color:#0876bf;font:800 9px/1.2 "Quicksand",sans-serif;letter-spacing:.1em;text-transform:uppercase}
  body.essay-journalpage .essay-more-essays__tile-title{display:block;color:#123b50;font:700 15px/1.15 "DM Sans",sans-serif}
  body.essay-journalpage .essay-more-essays__tile-show{display:block;margin-top:3px;overflow:hidden;color:#53636d;font:500 11px/1.3 "Quicksand",sans-serif;text-overflow:ellipsis;white-space:nowrap}
}

@media(min-width:621px){
  /* Related reviews use a compact desktop shelf rather than their mobile feed layout. */
  body.essay-journalpage .essay-more-essays{
    display:none;
    max-width:760px;
    margin:18px auto 50px;
    padding:18px;
    border:1px solid rgba(255,255,255,.7);
    border-radius:18px;
    background:var(--essay-glass);
    box-shadow:var(--essay-glass-shadow),0 3px 10px rgba(0,0,0,.07);
    -webkit-backdrop-filter:blur(16px) saturate(1.08);
    backdrop-filter:blur(16px) saturate(1.08);
  }
  body.essay-journalpage .essay-more-essays.is-ready{display:block}
  body.essay-journalpage .essay-more-essays__all{
    display:block;
    margin:0 0 14px;
    color:#075e9f;
    font:800 14px/1.2 "Quicksand",sans-serif;
    letter-spacing:.02em;
    text-align:right;
    text-decoration:none;
  }
  body.essay-journalpage .essay-more-essays__all span{margin-left:4px;font-size:17px;vertical-align:-1px}
  body.essay-journalpage .essay-more-essays__list{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
  body.essay-journalpage .essay-more-essays__tile{
    display:block;
    min-width:0;
    overflow:hidden;
    border:1px solid rgba(217,231,237,.96);
    border-radius:13px;
    background:linear-gradient(135deg,rgba(241,248,251,.96),rgba(250,249,246,.98));
    box-shadow:0 4px 11px rgba(7,42,80,.07),inset 0 1px 0 rgba(255,255,255,.94);
    color:inherit;
    text-decoration:none;
    transition:transform .16s ease,box-shadow .16s ease;
  }
  body.essay-journalpage .essay-more-essays__tile:hover{transform:translateY(-2px);box-shadow:0 9px 18px rgba(7,42,80,.13),inset 0 1px 0 rgba(255,255,255,.94)}
  body.essay-journalpage .essay-more-essays__tile img{display:block;width:100%;height:112px;object-fit:cover}
  body.essay-journalpage .essay-more-essays__tile-copy{display:block;min-width:0;padding:10px 11px 12px}
  body.essay-journalpage .essay-more-essays__tile-meta{display:block;margin:0 0 4px;color:#0876bf;font:800 9px/1.2 "Quicksand",sans-serif;letter-spacing:.1em;text-transform:uppercase}
  body.essay-journalpage .essay-more-essays__tile-title{display:block;color:#123b50;font:700 16px/1.12 "DM Sans",sans-serif}
  body.essay-journalpage .essay-more-essays__tile-show{display:block;margin-top:4px;overflow:hidden;color:#53636d;font:500 11px/1.32 "Quicksand",sans-serif;text-overflow:ellipsis;white-space:nowrap}
  body.essay-journalpage .essay-related-event{
    display:none;
    max-width:760px;
    margin:30px auto 12px;
    padding:18px;
    border:1px solid rgba(255,255,255,.68);
    border-radius:18px;
    background:var(--essay-glass);
    box-shadow:var(--essay-glass-shadow),0 3px 10px rgba(0,0,0,.07);
    -webkit-backdrop-filter:blur(16px) saturate(1.08);
    backdrop-filter:blur(16px) saturate(1.08);
    color:var(--ink-strong,#183746);
  }
  body.essay-journalpage .essay-related-event.is-ready{display:block}
  body.essay-journalpage .essay-related-event__label{
    margin:0 0 12px;
    color:#0876bf;
    font:700 11px/1.1 "DM Sans",sans-serif;
    letter-spacing:.13em;
    text-transform:uppercase;
  }
  body.essay-journalpage .essay-related-event .card--mini{
    display:grid;
    grid-template-columns:minmax(260px,38%) minmax(0,1fr);
    gap:18px;
    align-items:center;
    margin:0;
    color:inherit;
  }
  body.essay-journalpage .essay-related-event .mini__media{
    aspect-ratio:16/10;
    overflow:hidden;
    border-radius:14px;
    background:#0876bf;
    box-shadow:0 6px 16px rgba(0,0,0,.12);
  }
  body.essay-journalpage .essay-related-event .mini__media img{display:block;width:100%;height:100%;object-fit:cover}
  body.essay-journalpage .essay-related-event .mini__txt{padding:4px 4px 4px 0}
  body.essay-journalpage .essay-related-event .card__date{display:block;margin:0 0 6px;color:#53636d;font:600 12px/1.3 "DM Sans",sans-serif}
  body.essay-journalpage .essay-related-event .card__title{margin:0;color:#123b50;font:700 23px/1.14 "DM Sans",sans-serif}
  body.essay-journalpage .essay-related-event .card__venue{margin-top:7px;color:#53636d;font:500 14px/1.35 "DM Sans",sans-serif}
  body.essay-journalpage .essay-related-event .card__addr,
  body.essay-journalpage .essay-related-event .card__hours{margin-top:4px;color:#6c7b83;font:400 12px/1.4 "DM Sans",sans-serif}
  body.essay-journalpage .essay-related-event .card__kicks{top:10px;left:10px;right:auto}
  body.essay-journalpage .essay-related-event .card__kick{box-shadow:0 2px 6px rgba(0,0,0,.16)}
}

/* Keep desktop essay masthead positioning after the base essay rules. */
@media(min-width:621px){
  body.essay-journalpage.cityswitch-ready .site-header{margin-bottom:98px!important;border-bottom:none;background:transparent;box-shadow:none}
  body.essay-journalpage .essay-journal-brand{display:flex;top:116px;height:110px}
  body.essay-journalpage .site-header .cityswitch__context{display:none}
  body.essay-journalpage .desktop-guide-switch{display:none!important}
}

/* Desktop review shelf: a full-width latest review, then three equal reads. */
.essay-feature__lead-copy{display:none}
@media (min-width:901px), (min-width:621px) and (min-height:621px), (min-width:621px) and (pointer:fine), (min-width:621px) and (orientation:portrait){
  body.desktop-home[data-cat="art"] #home-editorial-top #home-essay .essay-feature__grid{
    grid-template-columns:repeat(3,minmax(0,1fr));
    grid-template-rows:auto auto;
    gap:24px!important;
    align-items:stretch;
  }
}
@media (min-width:901px), (min-width:621px) and (min-height:621px), (min-width:621px) and (pointer:fine), (min-width:621px) and (orientation:portrait){
  body.desktop-home[data-cat="art"] #home-editorial-top #home-essay .essay-feature__story--lead{
    display:grid;
    grid-column:1 / -1;
    grid-template-columns:minmax(0,1.27fr) minmax(0,1fr);
    gap:28px;
    margin:0;
    align-items:stretch;
  }
}
@media (min-width:901px), (min-width:621px) and (min-height:621px), (min-width:621px) and (pointer:fine), (min-width:621px) and (orientation:portrait){
  body.desktop-home[data-cat="art"] #home-editorial-top #home-essay .essay-feature__story--lead .essay-tile{
    grid-column:1;
    min-height:424px;
    height:100%;
    aspect-ratio:4/3!important;
  }
}
@media (min-width:901px), (min-width:621px) and (min-height:621px), (min-width:621px) and (pointer:fine), (min-width:621px) and (orientation:portrait){
  body.desktop-home[data-cat="art"] #home-editorial-top #home-essay .essay-feature__story--lead .essay-tile__copy strong,
  body.desktop-home[data-cat="art"] #home-editorial-top #home-essay .essay-feature__story--lead .essay-tile__by,
  body.desktop-home[data-cat="art"] #home-editorial-top #home-essay .essay-feature__story--lead .essay-tile__show,
  body.desktop-home[data-cat="art"] #home-editorial-top #home-essay .essay-feature__story--lead > .essay-feature__meta,
  body.desktop-home[data-cat="art"] #home-editorial-top #home-essay .essay-feature__story--lead > .essay-feature__summary{display:none!important}
}
@media (min-width:901px), (min-width:621px) and (min-height:621px), (min-width:621px) and (pointer:fine), (min-width:621px) and (orientation:portrait){
  body.desktop-home[data-cat="art"] #home-editorial-top #home-essay .essay-feature__lead-copy{
    display:flex;
    grid-column:2;
    flex-direction:column;
    justify-content:center;
    align-items:flex-start;
    min-width:0;
    padding:24px 12px 24px 4px;
  }
}
@media (min-width:901px), (min-width:621px) and (min-height:621px), (min-width:621px) and (pointer:fine), (min-width:621px) and (orientation:portrait){
  body.desktop-home[data-cat="art"] #home-editorial-top #home-essay .essay-feature__lead-kicker{
    color:#0877c0;
    font:800 11px/1 'Quicksand',sans-serif;
    letter-spacing:.13em;
    text-transform:uppercase;
  }
}
@media (min-width:901px), (min-width:621px) and (min-height:621px), (min-width:621px) and (pointer:fine), (min-width:621px) and (orientation:portrait){
  body.desktop-home[data-cat="art"] #home-editorial-top #home-essay .essay-feature__lead-copy h3{
    margin:12px 0 11px;
    color:#17384d;
    font:700 clamp(34px,3.2vw,50px)/.99 'DM Sans',sans-serif;
    letter-spacing:-.045em;
  }
}
@media (min-width:901px), (min-width:621px) and (min-height:621px), (min-width:621px) and (pointer:fine), (min-width:621px) and (orientation:portrait){
  body.desktop-home[data-cat="art"] #home-editorial-top #home-essay .essay-feature__lead-by{
    color:#0877c0;
    font:800 14px/1.25 'Quicksand',sans-serif;
  }
}
@media (min-width:901px), (min-width:621px) and (min-height:621px), (min-width:621px) and (pointer:fine), (min-width:621px) and (orientation:portrait){
  body.desktop-home[data-cat="art"] #home-editorial-top #home-essay .essay-feature__lead-show{
    margin-top:5px;
    color:#647887;
    font:600 13px/1.35 'Quicksand',sans-serif;
  }
}
@media (min-width:901px), (min-width:621px) and (min-height:621px), (min-width:621px) and (pointer:fine), (min-width:621px) and (orientation:portrait){
  body.desktop-home[data-cat="art"] #home-editorial-top #home-essay .essay-feature__lead-copy p{
    margin:20px 0 0;
    color:#0e1720;
    font:500 22px/1.32 'DM Sans',sans-serif;
    letter-spacing:-.018em;
  }
}
@media (min-width:901px), (min-width:621px) and (min-height:621px), (min-width:621px) and (pointer:fine), (min-width:621px) and (orientation:portrait){
  body.desktop-home[data-cat="art"] #home-editorial-top #home-essay .essay-feature__lead-copy a{
    margin-top:20px;
    color:#0877c0;
    font:800 12px/1.2 'Quicksand',sans-serif;
    letter-spacing:.04em;
    text-decoration:none;
  }
}
@media (min-width:901px), (min-width:621px) and (min-height:621px), (min-width:621px) and (pointer:fine), (min-width:621px) and (orientation:portrait){
  body.desktop-home[data-cat="art"] #home-editorial-top #home-essay .essay-feature__lead-copy a:hover{color:#005f9f}
}
@media (min-width:901px), (min-width:621px) and (min-height:621px), (min-width:621px) and (pointer:fine), (min-width:621px) and (orientation:portrait){
  body.desktop-home[data-cat="art"] #home-editorial-top #home-essay .essay-feature__story--lead .essay-tile__copy{left:18px;bottom:18px}
}
@media (min-width:901px), (min-width:621px) and (min-height:621px), (min-width:621px) and (pointer:fine), (min-width:621px) and (orientation:portrait){
  body.desktop-home[data-cat="art"] #home-editorial-top #home-essay .essay-feature__story--lead .essay-tile__kicker{margin:0}
}
@media (min-width:901px), (min-width:621px) and (min-height:621px), (min-width:621px) and (pointer:fine), (min-width:621px) and (orientation:portrait){
  body.desktop-home[data-cat="art"] #home-editorial-top #home-essay .essay-feature__story--supporting{
    grid-column:auto;
    grid-row:auto;
    min-height:0;
    margin:0;
    align-self:stretch!important;
  }
}
@media (min-width:901px), (min-width:621px) and (min-height:621px), (min-width:621px) and (pointer:fine), (min-width:621px) and (orientation:portrait){
  body.desktop-home[data-cat="art"] #home-editorial-top #home-essay .essay-feature__story--supporting .essay-tile{
    height:auto;
    min-height:0;
    aspect-ratio:4/3!important;
  }
}
@media (min-width:901px), (min-width:621px) and (min-height:621px), (min-width:621px) and (pointer:fine), (min-width:621px) and (orientation:portrait){
  body.desktop-home[data-cat="art"] #home-editorial-top #home-essay .essay-feature__story--supporting .essay-tile__copy{
    left:15px;
    bottom:14px;
    max-width:90%;
  }
}
@media (min-width:901px), (min-width:621px) and (min-height:621px), (min-width:621px) and (pointer:fine), (min-width:621px) and (orientation:portrait){
  body.desktop-home[data-cat="art"] #home-editorial-top #home-essay .essay-feature__story--supporting .essay-tile__copy strong{
    font-size:clamp(19px,1.7vw,25px);
    line-height:1.04;
  }
}
@media (min-width:901px), (min-width:621px) and (min-height:621px), (min-width:621px) and (pointer:fine), (min-width:621px) and (orientation:portrait){
  body.desktop-home[data-cat="art"] #home-editorial-top #home-essay .essay-feature__story--supporting .essay-tile__kicker{margin-bottom:4px}
}
@media (min-width:901px), (min-width:621px) and (min-height:621px), (min-width:621px) and (pointer:fine), (min-width:621px) and (orientation:portrait){
  body.desktop-home[data-cat="art"] #home-editorial-top #home-essay .essay-feature__story--supporting .essay-tile__by{margin-top:5px;font-size:11px}
}
@media (min-width:901px), (min-width:621px) and (min-height:621px), (min-width:621px) and (pointer:fine), (min-width:621px) and (orientation:portrait){
  body.desktop-home[data-cat="art"] #home-editorial-top #home-essay .essay-feature__story--supporting .essay-tile__show,
  body.desktop-home[data-cat="art"] #home-editorial-top #home-essay .essay-feature__story--supporting .essay-feature__meta,
  body.desktop-home[data-cat="art"] #home-editorial-top #home-essay .essay-feature__story--supporting .essay-feature__summary{display:none!important}
}


/* Essays index: a clear desktop reading shelf for the original reviews. */
.essays-index{padding-bottom:110px}
.essays-index__hero{max-width:760px;margin:68px auto 46px;text-align:center}
.essays-index__eyebrow{margin:0 0 12px;color:#0070c0;font:800 12px/1.2 'Quicksand',sans-serif;letter-spacing:.12em;text-transform:uppercase}
.essays-index__hero h1{margin:0;color:#fff;font:700 clamp(38px,5vw,58px)/1.02 'DM Sans',sans-serif;letter-spacing:-.045em;text-shadow:0 2px 12px rgba(7,42,80,.3)}
.essays-index__subtitle{margin:14px 0 0;color:#fff;font:500 17px/1.45 'Quicksand',sans-serif}
.essays-index__credits{color:inherit;font:inherit;letter-spacing:inherit;text-shadow:inherit}
.essays-index-page .essay-journal-brand{display:none}
.essays-index__grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:28px;max-width:1180px;margin:0 auto}
.essay-index-card{min-width:0;overflow:hidden;border:1px solid rgba(0,112,192,.12);border-radius:18px;background:#fff;box-shadow:0 8px 22px rgba(22,47,64,.1),0 2px 5px rgba(22,47,64,.06);transition:transform .18s ease,box-shadow .18s ease}
.essay-index-card:hover{transform:translateY(-3px);box-shadow:0 14px 30px rgba(22,47,64,.14),0 3px 7px rgba(22,47,64,.07)}
.essay-index-card__image{position:relative;display:block;aspect-ratio:4/3;overflow:hidden;background:#dcecf5;color:#fff}
.essay-index-card__image img{display:block;width:100%;height:100%;object-fit:cover;transition:transform .35s ease}
.essay-index-card:hover .essay-index-card__image img{transform:scale(1.025)}
.essay-index-card__overlay{position:absolute;inset:0;background:linear-gradient(180deg,rgba(0,0,0,.03),rgba(0,0,0,.38))}
.essay-index-card__label{position:absolute;top:16px;left:16px;bottom:auto;padding:7px 10px;border-radius:999px;background:rgba(0,75,126,.88);color:#fff;font:800 10px/1 'Quicksand',sans-serif;letter-spacing:.1em;text-transform:uppercase}
.essay-index-card__body{padding:17px 18px 19px}
.essay-index-card__meta{margin:0 0 10px;color:#76838b;font:700 11px/1.25 'Quicksand',sans-serif;letter-spacing:.02em}
.essay-index-card h2{margin:0;color:var(--ink-strong);font:700 clamp(23px,2.1vw,31px)/1.04 'DM Sans',sans-serif;letter-spacing:-.03em}
.essay-index-card h2 a{color:inherit;text-decoration:none}
.essay-index-card h2 a:hover{color:#0070c0}

/* ── Desktop homepage clarity pass (Sep 12) ─────────────────────────────────
   Keep the desktop guide easy to scan without changing its data source or the
   mobile/app stream. Reviews lead, Today stays full width, and the four dated
   rails share a compact planning grid instead of forming one long stack. */
@media (min-width:901px), (min-width:621px) and (min-height:621px), (min-width:621px) and (pointer:fine), (min-width:621px) and (orientation:portrait){
  body.desktop-home .desktop-home__wrap{max-width:1280px;padding-left:40px;padding-right:40px}
}
@media (min-width:901px), (min-width:621px) and (min-height:621px), (min-width:621px) and (pointer:fine), (min-width:621px) and (orientation:portrait){
  body.desktop-home[data-cat="art"] .home-editorial-top{
    grid-template-columns:minmax(0,1fr) minmax(0,1fr);
    grid-template-areas:
      "editorial editorial"
      "reviews reviews"
      "today today"
      "upcoming upcoming"
      "this-week this-weekend"
      "next-week in-two-weeks";
    column-gap:30px;
    row-gap:28px;
    /* Align the review rail with the Journal content panel below the shared masthead. */
    margin-top:-74px!important;
  }
}
@media (min-width:901px), (min-width:621px) and (min-height:621px), (min-width:621px) and (pointer:fine), (min-width:621px) and (orientation:portrait){
  body.desktop-home[data-cat="art"] .home-editorial-top > #home-weekcols > .week-col--art-time:not(.week-col--art-today){
    grid-column:auto!important;
    margin-top:0!important;
    min-width:0;
  }
}
@media (min-width:901px), (min-width:621px) and (min-height:621px), (min-width:621px) and (pointer:fine), (min-width:621px) and (orientation:portrait){
  body.desktop-home[data-cat="art"] .home-editorial-top > #home-weekcols > .week-col--art-time:not(.week-col--art-today) .week-col__cards{
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:16px;
  }
}
@media (min-width:901px), (min-width:621px) and (min-height:621px), (min-width:621px) and (pointer:fine), (min-width:621px) and (orientation:portrait){
  body.desktop-home[data-cat="art"] .home-editorial-top > #home-weekcols > .week-col__head,
  body.desktop-home[data-cat="art"] .home-editorial-top > #home-weekcols > .week-col--art-time .week-col__head{
    margin-bottom:14px;
    padding-bottom:10px;
    border-bottom:1px solid rgba(7,42,80,.16);
    text-align:left;
  }
}
@media (min-width:901px), (min-width:621px) and (min-height:621px), (min-width:621px) and (pointer:fine), (min-width:621px) and (orientation:portrait){
  body.desktop-home[data-cat="art"] .home-editorial-top > #home-weekcols > .week-col--art-time .week-col__head h2{
    color:#17384d;
    text-shadow:none;
    font-size:22px;
  }
}
@media (min-width:901px), (min-width:621px) and (min-height:621px), (min-width:621px) and (pointer:fine), (min-width:621px) and (orientation:portrait){
  body.desktop-home[data-cat="art"] .home-editorial-top > .home-upcoming-heading{
    margin-top:0;
    padding:0 0 11px;
    border-bottom:1px solid rgba(7,42,80,.2);
  }
}
@media (min-width:901px), (min-width:621px) and (min-height:621px), (min-width:621px) and (pointer:fine), (min-width:621px) and (orientation:portrait){
  body.desktop-home[data-cat="art"] .home-upcoming-heading strong{color:#17384d;text-shadow:none;font-size:24px}
}
@media (min-width:901px), (min-width:621px) and (min-height:621px), (min-width:621px) and (pointer:fine), (min-width:621px) and (orientation:portrait){
  body.desktop-home[data-cat="art"] .home-upcoming-heading span{color:#68808e}
}
@media (min-width:901px), (min-width:621px) and (min-height:621px), (min-width:621px) and (pointer:fine), (min-width:621px) and (orientation:portrait){
  body.desktop-home[data-cat="art"] #home-editorial-top #home-essay .essay-feature__head{margin-bottom:20px}
}
@media (min-width:901px), (min-width:621px) and (min-height:621px), (min-width:621px) and (pointer:fine), (min-width:621px) and (orientation:portrait){
  body.desktop-home[data-cat="art"] #home-editorial-top #home-essay .essay-feature__grid{gap:24px}
}
@media (min-width:901px), (min-width:621px) and (min-height:621px), (min-width:621px) and (pointer:fine), (min-width:621px) and (orientation:portrait){
  body.desktop-home[data-cat="art"] #home-editorial-top #home-essay .essay-feature__story:not(.essay-feature__story--lead) .essay-tile{aspect-ratio:5/4}
}
@media (min-width:901px), (min-width:621px) and (min-height:621px), (min-width:621px) and (pointer:fine), (min-width:621px) and (orientation:portrait){

  body.desktop-home #home-featured,
  body.desktop-home #home-solo,
  body.desktop-home #home-areas,
  body.desktop-home #home-onview,
  body.desktop-home .desktop-home__map{margin-top:48px}
}
@media (min-width:901px), (min-width:621px) and (min-height:621px), (min-width:621px) and (pointer:fine), (min-width:621px) and (orientation:portrait){
  body.desktop-home #home-featured .shead,
  body.desktop-home #home-solo .shead,
  body.desktop-home #home-onview .shead,
  body.desktop-home .desktop-home__map > .shead{
    display:flex;
    align-items:baseline;
    justify-content:space-between;
    gap:20px;
    margin:0 0 18px;
    padding:0 0 12px;
    border-bottom:1px solid rgba(7,42,80,.16);
    text-align:left;
  }
}
@media (min-width:901px), (min-width:621px) and (min-height:621px), (min-width:621px) and (pointer:fine), (min-width:621px) and (orientation:portrait){
  body.desktop-home #home-featured .shead h2,
  body.desktop-home #home-solo .shead h2,
  body.desktop-home #home-onview .shead h2,
  body.desktop-home .desktop-home__map > .shead h2{
    color:#17384d;
    text-shadow:none;
    font-size:28px;
  }
}
@media (min-width:901px), (min-width:621px) and (min-height:621px), (min-width:621px) and (pointer:fine), (min-width:621px) and (orientation:portrait){
  body.desktop-home #home-featured .shead p,
  body.desktop-home #home-solo .shead p,
  body.desktop-home #home-onview .shead p,
  body.desktop-home .desktop-home__map > .shead p{color:#68808e;font-size:15px}
}
@media (min-width:901px), (min-width:621px) and (min-height:621px), (min-width:621px) and (pointer:fine), (min-width:621px) and (orientation:portrait){
  body.desktop-home #home-featured .grid,
  body.desktop-home #home-solo .grid,
  body.desktop-home #home-onview .grid{gap:24px}
}
@media (min-width:901px), (min-width:621px) and (min-height:621px), (min-width:621px) and (pointer:fine), (min-width:621px) and (orientation:portrait){
  body.desktop-home #home-featured .card,
  body.desktop-home #home-solo .card,
  body.desktop-home #home-onview .card{border-radius:18px}
}
@media (min-width:901px), (min-width:621px) and (min-height:621px), (min-width:621px) and (pointer:fine), (min-width:621px) and (orientation:portrait){
  body.desktop-home #home-featured .card:focus-visible,
  body.desktop-home #home-solo .card:focus-visible,
  body.desktop-home #home-onview .card:focus-visible,
  body.desktop-home #home-weekcols .card:focus-visible{outline:3px solid rgba(0,112,192,.55);outline-offset:4px}
}
@media (min-width:901px), (min-width:621px) and (min-height:621px), (min-width:621px) and (pointer:fine), (min-width:621px) and (orientation:portrait){
  body.desktop-home[data-cat="art"] #home-editorial-top #home-essay .essay-feature__head > #home-homestats{
    display:flex;
    position:static;
    width:100%;
    box-sizing:border-box;
    margin:10px auto 0;
    color:#68808e;
  }
}
@media (min-width:901px), (min-width:621px) and (min-height:621px), (min-width:621px) and (pointer:fine), (min-width:621px) and (orientation:portrait){
  body.desktop-home[data-cat="art"] #home-editorial-top #home-essay .essay-feature__head > #home-homestats .desktop-home__stat-line strong{
    color:#17384d;
  }
}
@media (min-width:901px), (min-width:621px) and (min-height:621px), (min-width:621px) and (pointer:fine), (min-width:621px) and (orientation:portrait){
  body.desktop-home .homestats{
    display:flex;
    flex-direction:column;
    align-items:center;
    justify-content:center;
    gap:4px;
    margin:0;
    color:rgba(255,255,255,.88);
    font:700 12px/1.25 'Quicksand',sans-serif;
    letter-spacing:.035em;
    text-align:center;
  }
}
@media (min-width:901px), (min-width:621px) and (min-height:621px), (min-width:621px) and (pointer:fine), (min-width:621px) and (orientation:portrait){
  body.desktop-home #home-homestats[hidden]{display:none!important}
}
@media (min-width:901px), (min-width:621px) and (min-height:621px), (min-width:621px) and (pointer:fine), (min-width:621px) and (orientation:portrait){
  body.desktop-home .desktop-home__stat-line{display:inline-flex;align-items:center;white-space:nowrap}
}
@media (min-width:901px), (min-width:621px) and (min-height:621px), (min-width:621px) and (pointer:fine), (min-width:621px) and (orientation:portrait){
  body.desktop-home .desktop-home__stat-line strong{color:#fff;font-weight:800}
}
@media (min-width:901px), (min-width:621px) and (min-height:621px), (min-width:621px) and (pointer:fine), (min-width:621px) and (orientation:portrait){
  body.desktop-home .desktop-home__stat-line--title{
    margin-left:auto;
    color:rgba(255,255,255,.78);
    font-size:11px;
    letter-spacing:.025em;
    display:inline-flex!important;
    visibility:visible!important;
    opacity:1!important;
  }
}
@media (min-width:901px), (min-width:621px) and (min-height:621px), (min-width:621px) and (pointer:fine), (min-width:621px) and (orientation:portrait){
  body.desktop-home .week-col__head,
  body.desktop-home #home-featured .shead,
  body.desktop-home #home-onview .shead{
    display:flex;
    align-items:baseline;
    justify-content:space-between;
    gap:14px;
  }
}
@media (min-width:901px), (min-width:621px) and (min-height:621px), (min-width:621px) and (pointer:fine), (min-width:621px) and (orientation:portrait){
  body.desktop-home .week-col__head .desktop-home__stat-line--title,
  body.desktop-home #home-featured .shead .desktop-home__stat-line--title,
  body.desktop-home #home-onview .shead .desktop-home__stat-line--title{
    color:#526b79;
  }
}
@media (min-width:901px), (min-width:621px) and (min-height:621px), (min-width:621px) and (pointer:fine), (min-width:621px) and (orientation:portrait){
  body.desktop-home .home-upcoming-heading .desktop-home__stat-line--title{
    margin-left:18px;
    color:rgba(255,255,255,.78);
  }
}
@media (min-width:901px), (min-width:621px) and (min-height:621px), (min-width:621px) and (pointer:fine), (min-width:621px) and (orientation:portrait){
  /* Desktop section-heading treatment: make Today the visual anchor while
     keeping the rest of the guide calm, consistent, and label-free. */
  body.desktop-home .week-col__head,
  body.desktop-home #home-featured .shead,
  body.desktop-home #home-solo .shead,
  body.desktop-home #home-onview .shead,
  body.desktop-home .home-upcoming-heading{
    border-bottom:1px solid rgba(8,119,192,.24);
    box-shadow:0 1px 0 rgba(255,255,255,.5);
  }
}
@media (min-width:901px), (min-width:621px) and (min-height:621px), (min-width:621px) and (pointer:fine), (min-width:621px) and (orientation:portrait){
  body.desktop-home .week-col__head h2,
  body.desktop-home #home-featured .shead h2,
  body.desktop-home #home-solo .shead h2,
  body.desktop-home #home-onview .shead h2{
    color:#68808e;
    text-shadow:0 1px 4px rgba(7,42,80,.1);
  }
}
@media (min-width:901px), (min-width:621px) and (min-height:621px), (min-width:621px) and (pointer:fine), (min-width:621px) and (orientation:portrait){
  body.desktop-home #home-weekcols .week-col--art-today .week-col__head h2,
  body.desktop-home #home-featured .openings-sec[aria-labelledby="theater-today"] .shead h2,
  body.desktop-home #home-featured .openings-sec[aria-labelledby="drag-tonight"] .shead h2{
    color:#0877c0;
    font-weight:800;
    text-shadow:0 1px 0 rgba(255,255,255,.8),0 2px 7px rgba(8,119,192,.2);
  }
  body.desktop-home #home-featured .openings-sec[aria-labelledby="comedy-tonight"] .shead h2{
    color:#0877c0;
    font-weight:800;
    text-shadow:0 1px 0 rgba(255,255,255,.8),0 2px 7px rgba(8,119,192,.2);
  }
}
@media (min-width:901px), (min-width:621px) and (min-height:621px), (min-width:621px) and (pointer:fine), (min-width:621px) and (orientation:portrait){
  body.desktop-home .week-col__head .desktop-home__stat-line--title,
  body.desktop-home #home-featured .shead .desktop-home__stat-line--title{
    color:rgba(23,56,77,.72);
  }
}
@media (min-width:901px), (min-width:621px) and (min-height:621px), (min-width:621px) and (pointer:fine), (min-width:621px) and (orientation:portrait){
  body.desktop-home #home-weekcols .week-col--art-today .desktop-home__stat-line--title,
  body.desktop-home #home-featured .openings-sec[aria-labelledby="theater-today"] .desktop-home__stat-line--title,
  body.desktop-home #home-featured .openings-sec[aria-labelledby="drag-tonight"] .desktop-home__stat-line--title{
    color:rgba(8,119,192,.84);
  }
  body.desktop-home #home-featured .openings-sec[aria-labelledby="comedy-tonight"] .desktop-home__stat-line--title{
    color:rgba(8,119,192,.84);
  }
}
@media (min-width:901px), (min-width:621px) and (min-height:621px), (min-width:621px) and (pointer:fine), (min-width:621px) and (orientation:portrait){
  body.desktop-home .home-upcoming-heading{
    border-bottom-color:rgba(23,56,77,.22);
  }
}
@media (min-width:901px), (min-width:621px) and (min-height:621px), (min-width:621px) and (pointer:fine), (min-width:621px) and (orientation:portrait){
  body.desktop-home .home-upcoming-heading strong{
    color:#17384d;
    text-shadow:0 1px 5px rgba(7,42,80,.16);
  }
}
@media (min-width:901px), (min-width:621px) and (min-height:621px), (min-width:621px) and (pointer:fine), (min-width:621px) and (orientation:portrait){
  /* Final desktop cascade: these selectors intentionally outrank the older
     homepage heading rules so the new treatment is actually visible. */
  body.desktop-home .week-col__head,
  body.desktop-home #home-featured .shead,
  body.desktop-home #home-solo .shead,
  body.desktop-home #home-onview .shead,
  body.desktop-home .home-upcoming-heading{
    border-bottom-color:rgba(8,119,192,.42)!important;
    box-shadow:0 1px 0 rgba(255,255,255,.68)!important;
  }
}
@media (min-width:901px), (min-width:621px) and (min-height:621px), (min-width:621px) and (pointer:fine), (min-width:621px) and (orientation:portrait){
  body.desktop-home .week-col__head h2,
  body.desktop-home #home-featured .shead h2,
  body.desktop-home #home-solo .shead h2,
  body.desktop-home #home-onview .shead h2{
    color:#526b79!important;
    text-shadow:0 1px 4px rgba(7,42,80,.12)!important;
  }
}
@media (min-width:901px), (min-width:621px) and (min-height:621px), (min-width:621px) and (pointer:fine), (min-width:621px) and (orientation:portrait){
  body.desktop-home #home-weekcols .week-col--art-today .week-col__head h2,
  body.desktop-home #home-featured .openings-sec[aria-labelledby="theater-today"] .shead h2,
  body.desktop-home #home-featured .openings-sec[aria-labelledby="drag-tonight"] .shead h2{
    color:#0877c0!important;
    font-weight:800!important;
    text-shadow:0 1px 0 rgba(255,255,255,.88),0 2px 7px rgba(8,119,192,.24)!important;
  }
  body.desktop-home #home-featured .openings-sec[aria-labelledby="comedy-tonight"] .shead h2{
    color:#0877c0!important;
    font-weight:800!important;
    text-shadow:0 1px 0 rgba(255,255,255,.88),0 2px 7px rgba(8,119,192,.24)!important;
  }
}
@media (min-width:901px), (min-width:621px) and (min-height:621px), (min-width:621px) and (pointer:fine), (min-width:621px) and (orientation:portrait){
  body.desktop-home .desktop-home__stat-line--title,
  body.desktop-home .week-col__head .desktop-home__stat-line--title,
  body.desktop-home #home-featured .shead .desktop-home__stat-line--title,
  body.desktop-home #home-onview .shead .desktop-home__stat-line--title{
    color:#526b79!important;
    display:inline-flex!important;
    visibility:visible!important;
    opacity:1!important;
  }
}
@media (min-width:901px), (min-width:621px) and (min-height:621px), (min-width:621px) and (pointer:fine), (min-width:621px) and (orientation:portrait){
  body.desktop-home #home-weekcols .week-col--art-today .desktop-home__stat-line--title,
  body.desktop-home #home-featured .openings-sec[aria-labelledby="theater-today"] .desktop-home__stat-line--title,
  body.desktop-home #home-featured .openings-sec[aria-labelledby="drag-tonight"] .desktop-home__stat-line--title{
    color:#0877c0!important;
  }
  body.desktop-home #home-featured .openings-sec[aria-labelledby="comedy-tonight"] .desktop-home__stat-line--title{
    color:#0877c0!important;
  }
}
@media (min-width:901px), (min-width:621px) and (min-height:621px), (min-width:621px) and (pointer:fine), (min-width:621px) and (orientation:portrait){
  body.desktop-home .home-upcoming-heading .desktop-home__stat-line--title{
    color:#526b79!important;
  }
}

.essay-index-card__show{margin:10px 0 0;color:#5f6c73;font:700 12px/1.4 'Quicksand',sans-serif}
.essay-index-card__summary{margin:12px 0 0;color:#3f4d55;font-size:15px;line-height:1.5}
.essay-index-card__by{margin:16px 0 0;color:#0070c0;font:800 13px/1.25 'Quicksand',sans-serif}
@media (max-width:760px){
  .essays-index{padding:0 16px 80px}
  .essays-index__hero{margin:42px auto 30px}
  .essays-index__hero h1{font-size:38px}
  .essays-index__subtitle{font-size:15px}
  .essays-index__grid{grid-template-columns:1fr;gap:18px}
  .essay-index-card h2{font-size:28px}
}

/* The combined reviews index uses the exact mobile identity treatment from the
   individual essay readers. Its footer uses Journal's blended blue treatment.
   Individual essay pages and desktop remain unchanged. */
@media(max-width:620px), (orientation:landscape) and (max-height:620px) and (pointer:coarse){
  body.essays-index-page .site-header{margin-bottom:0;background:transparent;border-bottom:none}
  body.essays-index-page .site-header__in{height:46px}
  body.essays-index-page .logo{position:fixed;top:calc(14px + env(safe-area-inset-top));left:14px;width:89.28px;height:89.28px;z-index:1150}
  body.essays-index-page .logo img{box-shadow:var(--mobile-raised-shadow)}
  body.essays-index-page .essay-journal-brand{position:fixed;top:calc(14px + env(safe-area-inset-top));left:113.28px;right:14px;height:89.28px;z-index:1149;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;pointer-events:none}
  body.essays-index-page .essay-journal-brand h1{margin:0;color:#fff;font:600 clamp(21px,6.2vw,28px)/1.05 'DM Sans',serif;text-align:center;text-shadow:0 2px 10px rgba(0,0,0,.52),0 1px 2px rgba(0,0,0,.3)}
  body.essays-index-page .essay-journal-brand p{margin:0;color:#fff;font:500 11px/1.2 'Quicksand',sans-serif;text-align:center;text-shadow:0 1px 6px rgba(7,42,80,.32)}
  body.essays-index-page .essay-journal-brand .essays-index__credits{color:inherit;font:inherit;letter-spacing:inherit;text-shadow:inherit}
  body.essays-index-page .essays-index-desktop-nav{display:none}
  body.essays-index-page .essays-index{padding:calc(62px + env(safe-area-inset-top)) 16px 34px}
  body.essays-index-page .essays-index__hero{display:none}
  body.essays-index-page .site-footer{margin-top:16px;background:transparent;border-top-color:rgba(255,255,255,.2)}
  body.essays-index-page .site-footer .wrap{display:flex;flex-flow:row wrap;justify-content:center;gap:4px 0;padding:20px 16px calc(104px + env(safe-area-inset-bottom));text-align:center}
  body.essays-index-page .site-footer .footlinks{display:flex;order:3;align-items:center;justify-content:center;gap:0;flex-basis:auto;margin:0}
  body.essays-index-page .site-footer .footlinks a{display:none !important}
  body.essays-index-page .site-footer .footlinks a[href*="contact"],
  body.essays-index-page .site-footer .footlinks a[href*="privacy"],
  body.essays-index-page .site-footer .footlinks a[href*="terms"]{display:inline-block !important;color:rgba(255,255,255,.92);padding:0 7px;font:600 clamp(9px,2.9vw,11.5px)/1.4 'Quicksand',sans-serif;text-decoration:none}
  body.essays-index-page .site-footer .copy{order:2;margin:0;color:#fff;font:400 clamp(9px,2.9vw,11.5px)/1.62 'DM Sans',serif;letter-spacing:.01em;opacity:.75;text-align:center}
}

/* Combined desktop essay index: pull the identity block toward the masthead so
   it reads as part of the homepage-like header, while leaving mobile and the
   individual essay reading pages unchanged. */
@media(min-width:621px){
  body.desktop-essay-index{
    background-size:180px 180px,220px 220px,760px 180px,100% 300px;
  }
  body.desktop-essay-index .essays-index__hero{
    margin-top:24px;
    margin-bottom:42px;
  }
  body.desktop-essay-index .essays-index__eyebrow{
    color:rgba(255,255,255,.76);
    text-shadow:0 1px 6px rgba(7,42,80,.24);
  }
  body.desktop-essay-index .essays-index__hero h1{
    color:#fff;
    text-shadow:0 2px 12px rgba(7,42,80,.3);
  }
  body.desktop-essay-index .essays-index__subtitle{
    color:#cbd4da;
    text-shadow:0 1px 6px rgba(7,42,80,.2);
  }
}

/* Desktop guide-family system ------------------------------------------------
   The homepage is the visual source of truth. These rules carry its broad
   editorial grid, quiet section dividers, and glass controls onto the utility
   pages without changing their distinct functions or the mobile/app surface. */
@media(min-width:621px){
  :is(body.opennow:not(.nbpage),body.planpage,body.calendar-page,body.atlas-page,body.journalpage) .site-footer{
    background:transparent!important;
    border-top:1px solid rgba(255,255,255,.2);
  }

  /* Every desktop guide uses the homepage's 1280px editorial measure. */
  body.opennow:not(.nbpage) .on-wrap,
  body.planpage .plan-wrap,
  body.calendar-page > .wrap,
  body.atlas-page > main.wrap,
  body.journalpage .journal-wrap{
    width:min(1280px,calc(100% - 80px));
    max-width:1280px;
    margin-left:auto;
    margin-right:auto;
    box-sizing:border-box;
  }
  body.opennow:not(.nbpage) .on-wrap,
  body.planpage .plan-wrap,
  body.calendar-page > .wrap,
  body.atlas-page > main.wrap{padding-left:0;padding-right:0}

  /* A consistent page-level heading: title left, context beneath, and a
     restrained underline that mirrors the homepage's content rails. */
  body.opennow:not(.nbpage) .on-titlerow,
  body.planpage .plan-titlerow,
  body.journalpage .journal-head,
  body.atlas-page .page-hero,
  body.calendar-page #days .shead{
    position:relative;
    display:flex;
    align-items:baseline;
    justify-content:space-between;
    gap:18px;
    max-width:none;
    margin:0 0 12px;
    padding:0 0 13px;
    border-bottom:1px solid rgba(255,255,255,.38);
    text-align:left;
  }
  /* See Later uses the full homepage rail: keep its live count beside the
     title instead of leaving it as a detached body-level line. */
  body.planpage .plan-title{width:100%;max-width:none}
  body.planpage .plan-titlerow{justify-content:flex-start}
  body.planpage .plan-titlerow > .guide-homestats{
    flex:0 1 auto;
    min-width:0;
    margin:0;
    white-space:nowrap;
  }
  body.planpage .plan-titlerow > .plan-near{margin-left:auto}
  body.planpage .plan-titlerow > .guide-homestats,
  body.opennow:not(.planpage):not(.nbpage) .on-titlerow > .guide-homestats{
    color:#fff;
    text-shadow:0 1px 5px rgba(7,42,80,.3);
  }
  body.planpage .plan-titlerow > .guide-homestats strong,
  body.opennow:not(.planpage):not(.nbpage) .on-titlerow > .guide-homestats strong{color:#fff}
  body.opennow:not(.planpage):not(.nbpage) .on-titlerow > .guide-homestats{
    flex:0 1 auto;
    min-width:0;
    margin:0;
    white-space:nowrap;
  }
  body.opennow:not(.nbpage) .lp-title,
  body.planpage .lp-title,
  body.journalpage .journal-head h1,
  body.atlas-page .page-hero h1,
  body.calendar-page #days .shead h2{
    margin:0;
    color:#fff;
    font:700 clamp(29px,3.1vw,42px)/1.04 'DM Sans',serif;
    letter-spacing:-.035em;
    text-shadow:0 2px 12px rgba(7,42,80,.26);
  }
  body.opennow:not(.nbpage) #on-clock,
  body.planpage .plan-title > .lp-sub,
  body.journalpage .journal-sub,
  body.atlas-page .atlas-lede,
  body.calendar-page #days .shead > p{
    color:rgba(255,255,255,.8);
    font:600 14px/1.45 'Quicksand',sans-serif;
    text-shadow:0 1px 5px rgba(7,42,80,.18);
  }
  body.opennow:not(.nbpage) #on-clock,
  body.planpage .plan-title > .lp-sub{max-width:740px;margin:0 0 22px}
  body.atlas-page .page-hero{
    display:grid;
    grid-template-columns:230px minmax(0,1fr) 170px;
    align-items:end;
    padding-top:0;
  }
  body.atlas-page .page-hero .atlas-lede{max-width:620px;margin:0;text-align:right}
  body.atlas-page .atlas-stat{margin:0 0 2px;min-width:160px;justify-content:flex-end}

  /* See Now and See Later filters become compact glass controls instead of
     detached form panels, keeping the content board visually continuous. */
  body.opennow:not(.nbpage) .on-filter-form,
  body.planpage #plan-form.plan-form{
    display:block;
    width:100%;
    max-width:none;
    margin:0 0 28px;
    padding:0!important;
    border:0!important;
    background:transparent!important;
    box-shadow:none!important;
  }
  body.opennow:not(.nbpage) .on-filter-form .plan-fields,
  body.planpage .plan-fields{gap:12px}
  body.opennow:not(.nbpage) .plan-field span,
  body.planpage .plan-field span{color:rgba(255,255,255,.86)}
  body.opennow:not(.nbpage) .plan-control,
  body.planpage .plan-control{
    border:1px solid rgba(255,255,255,.38);
    border-radius:13px;
    background:rgba(255,255,255,.16);
    box-shadow:inset 0 1px 0 rgba(255,255,255,.2),0 6px 16px rgba(3,66,111,.16);
    backdrop-filter:blur(12px) saturate(1.2);
    -webkit-backdrop-filter:blur(12px) saturate(1.2);
  }
  body.opennow:not(.nbpage) .plan-field select,
  body.planpage .plan-field input,
  body.planpage .plan-field select,
  body.planpage .plan-temporal-value{
    border-color:transparent!important;
    background:rgba(255,255,255,.96)!important;
    box-shadow:none!important;
  }
  body.opennow:not(.nbpage) .on-near,
  body.planpage .plan-near{
    border-color:rgba(255,255,255,.54);
    background:rgba(255,255,255,.14);
    color:#fff;
    box-shadow:0 5px 14px rgba(3,66,111,.16);
  }

  /* Content rails use the same simple title-and-rule pattern as Today,
     Must Sees, and Coming Up on the homepage. */
  body.opennow:not(.nbpage) .on-area,
  body.planpage .plan-section{margin:42px 0 0}
  body.planpage .plan-summary{color:#fff;text-shadow:0 1px 5px rgba(7,42,80,.24)}
  body.planpage .plan-note{color:rgba(255,255,255,.76)}
  body.opennow:not(.nbpage) .on-area > h2,
  body.planpage .plan-shead{
    display:flex;
    align-items:baseline;
    gap:12px;
    margin:0 0 17px;
    padding:0 0 11px;
    border-bottom:1px solid rgba(255,255,255,.32);
    color:#fff;
    font:700 24px/1.1 'DM Sans',serif;
    letter-spacing:-.02em;
    text-shadow:0 2px 10px rgba(7,42,80,.2);
  }
  body.planpage .plan-shead h2{color:inherit;font:inherit}
  body.opennow:not(.nbpage) .on-area .grid,
  body.planpage .plan-section .grid{gap:24px}
  body.opennow:not(.nbpage) .on-area .card,
  body.planpage .plan-section .card{border-radius:18px}

  /* See Now and See Later use the calendar's readable image-first card
     treatment on desktop: blue glass caption panels with white metadata. */
  body.opennow:not(.nbpage) .on-area .grid > .card.card--mini,
  body.opennow:not(.nbpage) .on-theater .grid > .card.card--mini,
  body.opennow:not(.nbpage) .on-drag .grid > .card.card--mini,
  body.planpage .plan-section .grid > .card.card--mini{
    overflow:hidden;
    border:1px solid rgba(255,255,255,.22);
    border-radius:18px;
    background:linear-gradient(145deg,rgba(9,127,199,.94),rgba(5,77,135,.94));
    box-shadow:0 10px 24px rgba(3,54,94,.24);
  }
  body.opennow:not(.nbpage) .on-comedy .grid > .card.card--mini{
    overflow:hidden;
    border:1px solid rgba(255,255,255,.22);
    border-radius:18px;
    background:linear-gradient(145deg,rgba(9,127,199,.94),rgba(5,77,135,.94));
    box-shadow:0 10px 24px rgba(3,54,94,.24);
  }
  body.opennow:not(.nbpage) .on-area .grid > .card.card--mini:hover,
  body.opennow:not(.nbpage) .on-theater .grid > .card.card--mini:hover,
  body.opennow:not(.nbpage) .on-drag .grid > .card.card--mini:hover,
  body.planpage .plan-section .grid > .card.card--mini:hover{
    background:#075f9f;
    box-shadow:0 14px 28px rgba(3,54,94,.3);
  }
  body.opennow:not(.nbpage) .on-comedy .grid > .card.card--mini:hover{
    background:#075f9f;
    box-shadow:0 14px 28px rgba(3,54,94,.3);
  }
  body.opennow:not(.nbpage) .on-area .grid > .card.card--mini .mini__media,
  body.opennow:not(.nbpage) .on-theater .grid > .card.card--mini .mini__media,
  body.opennow:not(.nbpage) .on-drag .grid > .card.card--mini .mini__media,
  body.planpage .plan-section .grid > .card.card--mini .mini__media{
    border-radius:0;
    box-shadow:none;
    filter:none;
  }
  body.opennow:not(.nbpage) .on-comedy .grid > .card.card--mini .mini__media{
    border-radius:0;
    box-shadow:none;
    filter:none;
  }
  body.opennow:not(.nbpage) .on-area .grid > .card.card--mini .mini__txt,
  body.opennow:not(.nbpage) .on-theater .grid > .card.card--mini .mini__txt,
  body.opennow:not(.nbpage) .on-drag .grid > .card.card--mini .mini__txt,
  body.planpage .plan-section .grid > .card.card--mini .mini__txt{
    flex:1 1 auto;
    padding:12px 14px 14px;
    background:rgba(3,66,111,.22);
  }
  body.opennow:not(.nbpage) .on-comedy .grid > .card.card--mini .mini__txt{
    flex:1 1 auto;
    padding:12px 14px 14px;
    background:rgba(3,66,111,.22);
  }
  body.opennow:not(.nbpage) .on-area .grid > .card.card--mini .mini__txt :is(.card__title,.card__date,.card__venue,.card__addr,.card__hours),
  body.opennow:not(.nbpage) .on-theater .grid > .card.card--mini .mini__txt :is(.card__title,.card__date,.card__venue,.card__addr,.card__hours),
  body.opennow:not(.nbpage) .on-drag .grid > .card.card--mini .mini__txt :is(.card__title,.card__date,.card__venue,.card__addr,.card__hours),
  body.planpage .plan-section .grid > .card.card--mini .mini__txt :is(.card__title,.card__date,.card__venue,.card__addr,.card__hours){
    color:rgba(255,255,255,.94);
    text-shadow:0 1px 4px rgba(3,28,48,.42);
  }
  body.opennow:not(.nbpage) .on-comedy .grid > .card.card--mini .mini__txt :is(.card__title,.card__date,.card__venue,.card__addr,.card__hours){
    color:rgba(255,255,255,.94);
    text-shadow:0 1px 4px rgba(3,28,48,.42);
  }

  /* Calendar already has a purpose-built 14-day navigator. Give its Day by
     Day heading the same visual priority as the homepage's main rails. */
  body.calendar-page #days{margin-top:0}
  body.calendar-page #days .shead{align-items:flex-end;margin-bottom:18px}
  body.calendar-page #days .shead .tag-blue{display:none}
  body.calendar-page #days .shead h2{font-size:clamp(29px,3.1vw,42px)}
  body.calendar-page #days .shead > p.calendar-window-note{margin:0 0 3px;text-align:right}
  body.calendar-page .calendar-date-strip,
  body.calendar-page #days .fbar,
  body.atlas-page .atlas-tools{
    border-color:rgba(255,255,255,.42);
    background:rgba(255,255,255,.13);
    box-shadow:0 12px 30px rgba(7,42,80,.2),inset 0 1px 0 rgba(255,255,255,.12);
  }

  /* Journal retains its personal content, but on desktop it sits in the same
     open, generous field rather than a narrower separate product surface. */
  body.journalpage .journal-wrap{padding:0 0 52px}
  body.journalpage .journal-head{margin-bottom:22px}
  body.journalpage .journal-summary,
  body.journalpage .journal-empty,
  body.journalpage .journal-milestone{
    border-color:rgba(255,255,255,.38);
    box-shadow:0 12px 30px rgba(7,42,80,.2);
  }
}

/* Final desktop calendar rail. It comes after the legacy calendar rules so
   the four city pages share this editorial treatment without changing their
   data, filtering, or category behavior. */
@media(min-width:621px){
  body.calendar-page #days{margin:0 auto;padding:12px 0 56px}
  body.calendar-page #days .shead{
    display:grid;
    grid-template-columns:minmax(0,1fr) max-content;
    grid-template-rows:auto auto auto;
    column-gap:34px;
    align-items:end;
    margin:0 0 24px;
    padding:0 0 14px;
    border-bottom:1px solid rgba(255,255,255,.42);
  }
  body.calendar-page #days .shead h2{
    grid-row:1 / span 3;
    align-self:end;
    padding-top:18px;
    font-size:clamp(32px,3.25vw,45px);
    line-height:.98;
    letter-spacing:-.045em;
  }
  body.calendar-page #days .shead h2::before{
    content:"YOUR NEXT 14 DAYS";
    display:block;
    margin:0 0 8px;
    color:rgba(255,255,255,.72);
    font:700 10px/1 'Quicksand',sans-serif;
    letter-spacing:.13em;
    text-shadow:none;
  }
  body.calendar-page #days .shead > p{grid-column:2;max-width:430px;text-align:right}
  body.calendar-page #days .shead > p.calendar-window-note{
    margin:0 0 5px;
    color:#fff;
    font-weight:700;
    letter-spacing:.01em;
  }
  body.calendar-page #days .shead > p.calendar-stats{
    margin:0;
    color:rgba(255,255,255,.82);
    font-size:13px;
    line-height:1.35;
  }
  body.calendar-page #days .shead > p.calendar-updated{
    margin:3px 0 0;
    color:rgba(255,255,255,.62);
    font-size:11px;
  }

  body.calendar-page .calendar-date-strip{
    gap:5px;
    margin:0 0 12px;
    padding:7px 0;
    border-width:1px 0;
    border-radius:0;
    background:transparent;
    box-shadow:none;
    backdrop-filter:none;
    -webkit-backdrop-filter:none;
  }
  body.calendar-page .calendar-date-strip button{
    min-height:58px;
    padding:8px 4px;
    border-color:transparent;
    border-radius:10px;
    background:rgba(255,255,255,.08);
    box-shadow:inset 0 1px 0 rgba(255,255,255,.12);
  }
  body.calendar-page .calendar-date-strip button:hover:not(:disabled),
  body.calendar-page .calendar-date-strip button:focus-visible{background:rgba(255,255,255,.22)}
  body.calendar-page .calendar-date-strip button.is-on{
    color:#075f9f;
    background:#fff;
    border-color:#fff;
    box-shadow:0 6px 16px rgba(4,48,83,.24);
  }
  body.calendar-page .calendar-date-strip__day{font-size:10px;letter-spacing:.025em}
  body.calendar-page .calendar-date-strip__date{margin-top:5px;font-size:13px}

  body.calendar-page #days .daygrid > .fbar{
    position:relative;
    top:auto;
    gap:7px;
    margin:0 0 24px;
    padding:0;
    border:0;
    border-radius:0;
    background:transparent;
    box-shadow:none;
    backdrop-filter:none;
    -webkit-backdrop-filter:none;
  }
  body.calendar-page #days .fchip{
    padding:7px 11px;
    border-color:rgba(255,255,255,.36);
    background:rgba(255,255,255,.1);
    color:rgba(255,255,255,.92);
    box-shadow:inset 0 1px 0 rgba(255,255,255,.1);
  }
  body.calendar-page #days .fchip:hover,
  body.calendar-page #days .fchip:focus-visible{background:rgba(255,255,255,.22)}
  body.calendar-page #days .fchip.is-on{border-color:#fff;background:#fff;color:#075f9f}

  body.calendar-page #days .dayblock{
    overflow:visible;
    margin:0 0 14px;
    border:1px solid rgba(255,255,255,.5);
    border-radius:18px;
    background:rgba(255,255,255,.96);
    box-shadow:0 12px 26px rgba(3,57,96,.14),inset 0 1px 0 rgba(255,255,255,.72);
  }
  body.calendar-page #days .dayblock__date{
    position:relative;
    min-height:116px;
    justify-content:center;
    padding:22px;
    border-right-color:rgba(7,95,159,.16);
    border-radius:17px 0 0 17px;
    background:linear-gradient(145deg,rgba(225,241,251,.98),rgba(244,249,252,.9));
  }
  body.calendar-page #days .dayblock__date .dd{color:#17384d;font-size:32px;line-height:.9;letter-spacing:-.05em}
  body.calendar-page #days .dayblock__date .dn{color:#0877c0;font-size:16px}
  body.calendar-page #days .dayblock.is-today{
    border-color:rgba(255,255,255,.74);
    box-shadow:0 16px 34px rgba(3,54,94,.22);
  }
  body.calendar-page #days .dayblock.is-today .dayblock__date{
    background:linear-gradient(152deg,#0d8bd5 0%,#075f9f 100%);
    border-right-color:rgba(255,255,255,.3);
  }
  body.calendar-page #days .dayblock.is-today .dayblock__date::before{
    content:"TODAY";
    color:rgba(255,255,255,.75);
    font:700 10px/1 'Quicksand',sans-serif;
    letter-spacing:.14em;
  }
  body.calendar-page #days .dayblock.is-today .dayblock__date .dn{color:rgba(255,255,255,.82)}
  body.calendar-page #days .dayblock__items > .row,
  body.calendar-page #days .dayblock__items > .mcard{padding:15px 20px}
  body.calendar-page #days .dayblock__items > .row:hover{background:rgba(229,243,252,.58)}
  body.calendar-page #days .dayblock__items > .row .row__sq{
    width:88px;
    height:88px;
    border-radius:10px;
    box-shadow:0 3px 10px rgba(3,57,96,.12);
  }
  body.calendar-page #days .calendar-row__main{gap:5px}
  body.calendar-page #days .calendar-row__main .row__title{color:#17384d;font-size:18px;line-height:1.2}
  body.calendar-page #days .calendar-row__main .row__venue{font-size:13px}
  body.calendar-page #days .calendar-row__label{box-shadow:none}

  /* Every dated listing uses the homepage's full horizontal card language.
     Previously only openings and receptions were promoted; routine listings
     stayed as compact rows with smaller thumbnails. */
  body.calendar-page #days .dayblock__items{
    display:grid;
    gap:10px;
    padding:10px;
  }
  body.calendar-page #days .dayblock__items > :is(.row,.mcard){
    min-height:120px;
    margin:0;
    padding:12px;
    border:1px solid rgba(7,95,159,.16);
    border-radius:14px;
    background:linear-gradient(145deg,#fff 0%,#f4f9fc 100%);
    box-shadow:0 5px 14px rgba(3,57,96,.08);
    transition:transform .16s ease,box-shadow .16s ease,background .16s ease;
  }
  body.calendar-page #days .dayblock__items > :is(.row,.mcard):hover{
    transform:translateY(-1px);
    background:#fff;
    box-shadow:0 9px 20px rgba(3,57,96,.13);
  }
  body.calendar-page #days .dayblock__items > :is(.row,.mcard) :is(.row__sq,.mcard__thumb){
    flex:0 0 132px;
    width:132px;
    height:94px;
    border-radius:10px;
    box-shadow:0 3px 10px rgba(3,57,96,.12);
  }
  body.calendar-page #days .dayblock__items > .row{
    display:flex;
    flex-wrap:nowrap;
    align-items:center;
    gap:16px;
  }
  body.calendar-page #days .dayblock__items > .mcard{gap:16px}
  body.calendar-page #days .dayblock__items > .row .calendar-row__main,
  body.calendar-page #days .dayblock__items > .mcard .mcard__main{
    min-width:0;
    gap:5px;
  }
  body.calendar-page #days .dayblock__items > .row .row__title,
  body.calendar-page #days .dayblock__items > .mcard .mcard__title{
    color:#17384d;
    font-size:20px;
    line-height:1.18;
  }
  body.calendar-page #days .dayblock__items > .row > .row__title{flex:1 1 240px}
  body.calendar-page #days .dayblock__items > .row .row__venue,
  body.calendar-page #days .dayblock__items > .mcard .mcard__venue{
    color:#526b79;
    font-size:14px;
    line-height:1.35;
  }
  body.calendar-page #days .dayblock__items > .row > .row__venue{flex:0 1 220px}
  body.calendar-page #days .dayblock__items > .row .row__time,
  body.calendar-page #days .dayblock__items > .mcard .mcard__when{
    margin-left:auto;
    color:#526b79;
    font-size:13px;
    font-weight:600;
  }
}

/* Desktop calendar board: the 14-day rail selects a single day, then presents
   its events as the same image-led cards used for the homepage's day views. */
@media(min-width:621px){
  body.calendar-page .calendar-date-strip{
    grid-template-columns:repeat(7,minmax(0,1fr));
    gap:12px;
    margin-bottom:22px;
    padding:0;
    border:0;
  }
  body.calendar-page .calendar-date-strip button{
    min-height:112px;
    padding:14px 10px 12px;
    border:2px solid rgba(255,255,255,.3);
    border-radius:20px;
    background:rgba(3,91,154,.45);
    box-shadow:inset 0 1px 0 rgba(255,255,255,.1);
  }
  body.calendar-page .calendar-date-strip button.is-on{
    color:#0877c0;
    background:rgba(255,255,255,.95);
    border-color:rgba(255,255,255,.96);
    box-shadow:0 10px 22px rgba(3,54,94,.2);
  }
  body.calendar-page .calendar-date-strip__day{
    font-size:12px;
    letter-spacing:.11em;
  }
  body.calendar-page .calendar-date-strip__date{
    margin-top:8px;
    font-size:34px;
    font-weight:700;
    letter-spacing:-.06em;
  }
  body.calendar-page .calendar-date-strip__count{
    display:block;
    margin-top:5px;
    font:600 12px/1 'DM Sans',sans-serif;
    opacity:.68;
  }
  body.calendar-page #days .dayblock.calendar-day-not-selected{display:none}
  body.calendar-page #days .dayblock{
    display:block;
    overflow:visible;
    margin:0;
    border:0;
    border-radius:0;
    background:transparent;
    box-shadow:none;
  }
  body.calendar-page #days .dayblock.is-today{box-shadow:none;}
  body.calendar-page #days .dayblock__date{display:none}
  body.calendar-page #days .dayblock__items{
    display:grid;
    grid-template-columns:repeat(4,minmax(0,1fr));
    gap:24px;
    padding:0;
  }
  body.calendar-page #days .dayblock__items > :is(.row,.mcard){
    position:relative;
    display:block;
    min-height:0;
    aspect-ratio:4 / 3;
    margin:0;
    padding:0;
    overflow:hidden;
    isolation:isolate;
    border:0;
    border-radius:22px;
    background:linear-gradient(145deg,#097fc7,#054d87);
    box-shadow:0 14px 28px rgba(3,54,94,.25);
    text-decoration:none;
  }
  body.calendar-page #days .dayblock__items > :is(.row,.mcard):hover{
    transform:translateY(-3px);
    background:#075f9f;
    box-shadow:0 20px 34px rgba(3,54,94,.32);
  }
  body.calendar-page #days .dayblock__items > :is(.row,.mcard)::after{
    content:"";
    position:absolute;
    inset:0;
    z-index:1;
    background:linear-gradient(180deg,rgba(2,19,33,.04) 18%,rgba(2,19,33,.24) 42%,rgba(2,19,33,.94) 100%);
    pointer-events:none;
  }
  body.calendar-page #days .dayblock__items > :is(.row,.mcard) :is(.row__sq,.mcard__thumb){
    position:absolute;
    inset:0;
    width:100%;
    height:100%;
    border-radius:0;
    background:transparent;
    box-shadow:none;
  }
  body.calendar-page #days .dayblock__items > :is(.row,.mcard) :is(.row__img,.mcard__img){
    position:absolute;
    inset:0;
    width:100%;
    height:100%;
    object-fit:cover;
  }
  body.calendar-page #days .dayblock__items > .row .calendar-row__main,
  body.calendar-page #days .dayblock__items > .mcard .mcard__main{display:contents}
  body.calendar-page #days .dayblock__items > :is(.row,.mcard) :is(.card__kick,.calendar-row__label){
    position:absolute;
    z-index:2;
    top:16px;
    left:16px;
    margin:0;
    padding:6px 11px;
    border-radius:999px;
    color:#fff;
    font-size:11px;
    letter-spacing:.055em;
    box-shadow:0 3px 9px rgba(0,0,0,.18);
  }
  body.calendar-page #days .dayblock__items > :is(.row,.mcard) .calendar-card__copy{
    position:absolute;
    z-index:2;
    right:16px;
    bottom:15px;
    left:16px;
    display:flex;
    min-width:0;
    flex-direction:column;
    gap:2px;
    color:#fff;
  }
  body.calendar-page #days .calendar-card__copy > :is(.card__date,.row__title,.mcard__title,.row__venue,.mcard__venue,.card__addr,.card__hours){
    position:static!important;
    inset:auto!important;
    flex:none!important;
    width:auto;
    margin:0;
    overflow:hidden;
    color:inherit;
    text-overflow:ellipsis;
    white-space:nowrap;
  }
  body.calendar-page #days .calendar-card__copy > .card__date{
    order:1;
    margin-bottom:2px;
    color:rgba(255,255,255,.84);
    font-size:12px;
    font-weight:600;
    line-height:1.2;
  }
  body.calendar-page #days .calendar-card__copy > :is(.row__title,.mcard__title){
    order:2;
    display:-webkit-box;
    color:#fff!important;
    font-size:21px;
    line-height:1.12;
    white-space:normal;
    -webkit-box-orient:vertical;
    -webkit-line-clamp:2;
    text-shadow:0 2px 8px rgba(0,0,0,.55);
  }
  body.calendar-page #days .calendar-card__copy > :is(.row__venue,.mcard__venue){
    order:3;
    color:rgba(255,255,255,.94)!important;
    font-size:14px;
    line-height:1.2;
    text-shadow:0 1px 5px rgba(0,0,0,.48);
  }
  body.calendar-page #days .calendar-card__copy > :is(.card__addr,.card__hours){
    color:rgba(255,255,255,.84);
    font-size:12px;
    line-height:1.24;
    text-shadow:0 1px 4px rgba(0,0,0,.5);
  }
  body.calendar-page #days .calendar-card__copy > .card__addr{order:4}
  body.calendar-page #days .calendar-card__copy > .card__hours{order:5}
  body.calendar-page #days .dayblock__items > .mcard .card__rate{display:none}
  body.calendar-page #days .dayblock__items > :is(.row,.mcard) :is(.row__time,.mcard__when){display:none}
  body.calendar-page #days .dayblock__items > .calendar-empty{
    display:flex;
    align-items:center;
    justify-content:center;
    aspect-ratio:auto;
    min-height:180px;
    color:rgba(255,255,255,.8);
    font:600 18px/1.35 'DM Sans',sans-serif;
  }
  body.calendar-page #days .dayblock__items > .calendar-empty::after{display:none}
  body.calendar-page #days .dayblock__items > .calendar-filter-empty{
    grid-column:1 / -1;
    justify-content:flex-start;
    min-height:0;
    margin:2px 0 0;
    padding:16px 2px 8px;
    border:0;
    border-radius:0;
    background:none;
    box-shadow:none;
    color:#075f9f;
    font:600 15px/1.4 'DM Sans',sans-serif;
    letter-spacing:.01em;
    text-align:left;
  }
  body.calendar-page #days .dayblock__items > .calendar-filter-empty::before{
    content:"✦";
    margin-right:9px;
    color:#f5d66c;
    font-size:13px;
  }
}
@media(min-width:621px) and (max-width:1180px){
  body.calendar-page #days .dayblock__items{grid-template-columns:repeat(3,minmax(0,1fr))}
}
@media(min-width:621px) and (max-width:840px){
  body.calendar-page .calendar-date-strip{gap:8px}
  body.calendar-page .calendar-date-strip button{min-height:94px;padding:10px 6px}
  body.calendar-page .calendar-date-strip__date{font-size:28px}
  body.calendar-page .calendar-date-strip__count{font-size:11px}
  body.calendar-page #days .dayblock__items{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}
}
@media(min-width:621px) and (max-width:840px){
  body.calendar-page #days .shead{column-gap:22px}
  body.calendar-page #days .shead h2{font-size:34px}
  body.calendar-page #days .shead > p{max-width:300px}
  body.calendar-page #days .dayblock{grid-template-columns:126px minmax(0,1fr)}
  body.calendar-page #days .dayblock__date{padding:18px}
}

/* Homepage-inspired calendar shelf: one glass editorial surface contains the
   section title, the full 14-day chooser, filters, and the selected day's
   image-led cards. Mobile/app keeps its established calendar layout. */
@media(min-width:621px){
  body.calendar-page #days{
    overflow:hidden;
    margin:4px auto 58px;
    padding:0 20px 24px;
    border:0;
    border-radius:26px;
    background:linear-gradient(180deg,rgba(255,255,255,.12) 0%,rgba(222,242,253,.9) 28%,rgba(250,252,253,.98) 68%);
    box-shadow:0 22px 44px rgba(3,44,77,.2);
    backdrop-filter:blur(16px) saturate(1.16);
    -webkit-backdrop-filter:blur(16px) saturate(1.16);
  }
  body.calendar-page #days .shead{
    display:grid;
    grid-template-columns:auto minmax(220px,1fr) auto;
    grid-template-rows:auto auto;
    column-gap:18px;
    row-gap:3px;
    align-items:center;
    margin:0 -20px 16px;
    padding:18px 20px 15px;
    border-bottom:1px solid rgba(7,95,159,.22);
  }
  body.calendar-page #days .shead h2{
    grid-column:1;
    grid-row:1 / span 2;
    align-self:center;
    padding:0;
    font-size:clamp(30px,3vw,42px);
    white-space:nowrap;
  }
  body.calendar-page #days .shead h2::before{display:none}
  body.calendar-page #days .shead > p{max-width:none;text-align:left}
  body.calendar-page #days .shead > p.calendar-window-note{
    display:none!important;
    grid-column:2;
    grid-row:1;
    margin:0;
    color:#17384d;
    font-size:14px;
    font-weight:700;
    line-height:1.25;
    text-shadow:none;
  }
  body.calendar-page #days .shead > p.calendar-window-note::after{display:none}
  body.calendar-page #days .shead > p.calendar-stats{
    grid-column:2;
    grid-row:2;
    margin:0;
    color:#526b79;
    font-size:12px;
    line-height:1.25;
    text-shadow:none;
  }
  body.calendar-page #days .shead > p.calendar-updated{display:none}
  body.calendar-page .calendar-jump-today{
    grid-column:3;
    grid-row:1 / span 2;
    align-self:center;
    min-height:36px;
    padding:8px 13px;
    border:1px solid rgba(7,95,159,.2);
    border-radius:11px;
    color:#075f9f;
    background:rgba(255,255,255,.7);
    font:700 11px/1 'Quicksand',sans-serif;
    letter-spacing:.045em;
    text-transform:uppercase;
    box-shadow:0 4px 12px rgba(3,57,96,.1),inset 0 1px 0 rgba(255,255,255,.75);
    cursor:pointer;
  }
  body.calendar-page .calendar-jump-today:hover,
  body.calendar-page .calendar-jump-today:focus-visible{background:#fff;box-shadow:0 7px 16px rgba(3,57,96,.15)}
  body.calendar-page .calendar-jump-today:disabled{opacity:.46;cursor:default;box-shadow:none}
  body.calendar-page .calendar-date-strip{margin:0 0 14px}
  body.calendar-page .calendar-date-strip button{
    border-color:rgba(255,255,255,.34);
    background:linear-gradient(150deg,rgba(12,116,179,.96),rgba(5,82,137,.98));
    box-shadow:0 5px 13px rgba(3,57,96,.13),inset 0 1px 0 rgba(255,255,255,.12);
  }
  body.calendar-page .calendar-date-strip button:hover:not(:disabled),
  body.calendar-page .calendar-date-strip button:focus-visible{background:linear-gradient(150deg,#1388cd,#08619d)}
  body.calendar-page .calendar-date-strip button.is-on{
    color:#075f9f;
    background:rgba(255,255,255,.97);
    box-shadow:0 9px 20px rgba(3,54,94,.17),inset 0 1px 0 #fff;
  }
  body.calendar-page #days .daygrid > .fbar{
    margin:0 0 18px;
    padding:10px 12px;
    border:1px solid rgba(7,95,159,.14);
    border-radius:14px;
    background:rgba(255,255,255,.44);
  }
  body.calendar-page #days .fchip{
    border-color:rgba(7,95,159,.2);
    background:rgba(255,255,255,.72);
    color:#315367;
    box-shadow:none;
  }
  body.calendar-page #days .fchip:hover,
  body.calendar-page #days .fchip:focus-visible{background:#fff;color:#075f9f}
  body.calendar-page #days .fchip.is-on{border-color:#075f9f;background:#075f9f;color:#fff}
  body.calendar-page #days .fbar{overflow:visible;flex-wrap:wrap;align-items:center}
  body.calendar-page #days .farea{display:inline-flex;flex:0 0 auto}
  body.calendar-page #days .farea select{
    min-height:34px;
    padding:7px 34px 7px 13px;
    border:1px solid rgba(7,95,159,.2);
    border-radius:999px;
    color:#315367;
    background-color:rgba(255,255,255,.72);
    font:700 13px/1 'Quicksand',sans-serif;
    cursor:pointer;
  }
  body.calendar-page #days .farea select:hover,
  body.calendar-page #days .farea select:focus-visible{border-color:#075f9f;background-color:#fff;color:#075f9f}
  body.calendar-page #days .fchip--more::after{content:" +"}
  body.calendar-page #days .fchip--more[aria-expanded="true"]::after{content:" −"}
  body.calendar-page #days .calendar-more-filters{display:inline-flex;flex-wrap:wrap;gap:7px}
  body.calendar-page #days .calendar-more-filters[hidden]{display:none!important}
  body.calendar-page #days .fradii[hidden]{display:none!important}
}
@media(min-width:621px) and (max-width:940px){
  body.calendar-page #days .shead{grid-template-columns:minmax(0,1fr) auto}
  body.calendar-page #days .shead h2{grid-column:1;grid-row:1;font-size:32px}
  body.calendar-page #days .shead > p.calendar-window-note{grid-column:1;grid-row:2}
  body.calendar-page #days .shead > p.calendar-stats{grid-column:1;grid-row:3}
  body.calendar-page .calendar-jump-today{grid-column:2;grid-row:1 / span 3}
}

/* Calendar cards stay image-first and readable on the mobile/app surface too.
   The shared mini-card defaults use ink text for cream pages; calendar lives on
   the site's blue canvas, so its event metadata must remain white. */
@media(max-width:620px), (orientation:landscape) and (max-height:620px) and (pointer:coarse){
  body.calendar-page #days .dayblock__items > :is(.row,.mcard){
    color:#fff;
    background:linear-gradient(145deg,#097fc7,#054d87);
    border:1px solid rgba(255,255,255,.22);
    border-radius:16px;
    box-shadow:0 8px 18px rgba(3,54,94,.22);
  }
  body.calendar-page #days .dayblock__items > :is(.row,.mcard):hover{
    background:#075f9f;
    box-shadow:0 11px 22px rgba(3,54,94,.28);
  }
  body.calendar-page #days .dayblock__items > :is(.row,.mcard)
    :is(.row__title,.mcard__title){color:#fff;text-shadow:0 1px 4px rgba(3,28,48,.42)}
  body.calendar-page #days .dayblock__items > :is(.row,.mcard)
    :is(.row__venue,.mcard__venue,.row__time,.mcard__when){color:rgba(255,255,255,.9);text-shadow:0 1px 3px rgba(3,28,48,.4)}
  body.calendar-page #also .card--mini .mini__txt
    :is(.card__title,.card__date,.card__venue,.card__addr,.card__hours){
    color:rgba(255,255,255,.94);
    text-shadow:0 1px 4px rgba(3,28,48,.42);
  }
}

/* ---------- DESKTOP INFORMATION PAGES ----------
   About, Press, and Contact are content pages, but should still feel like
   the rest of the desktop product: azure canvas, white type, and raised glass
   surfaces. The scope is deliberately limited to these three body classes so
   their established mobile layouts and all other pages remain unchanged. */
@media(min-width:621px){
  body.info-page{
    background:
      radial-gradient(1050px 570px at 50% 0%,rgba(255,255,255,.16),transparent 70%),
      linear-gradient(135deg,#087fca 0%,#0877c0 46%,#056caf 100%);
    color:#fff}
  body.info-page .site-header{margin-bottom:44px}
  body.info-page > .wrap{
    width:min(1280px,calc(100% - 80px));
    max-width:1280px;
    margin:0 auto;
    box-sizing:border-box}
  body.info-page .page-hero{
    max-width:980px;
    margin:0;
    padding:24px 0 18px;
    text-align:left}
  body.info-page .page-hero h1{
    color:#fff;
    font-size:clamp(36px,4vw,54px);
    line-height:1.04;
    letter-spacing:-.035em;
    text-shadow:0 2px 12px rgba(7,42,80,.28)}
  body.info-page .page-hero p{color:rgba(255,255,255,.84)}
  body.info-page .page-hero .updated{color:rgba(255,255,255,.7)}

  body.about-page .prose,
  body.press-page .wintro,
  body.contact-page .newsletter,
  body.contact-page .form{
    border:1px solid rgba(255,255,255,.42);
    border-radius:22px;
    background:rgba(255,255,255,.13);
    box-shadow:0 14px 34px rgba(7,42,80,.22),inset 0 1px 0 rgba(255,255,255,.18);
    backdrop-filter:blur(16px) saturate(1.15);
    -webkit-backdrop-filter:blur(16px) saturate(1.15)}

  body.about-page .prose{
    max-width:860px;
    margin:28px 0 0;
    padding:30px 34px;
    color:rgba(255,255,255,.92)}
  body.about-page .prose h2{color:#fff}
  body.about-page .prose a{color:#fff}
  body.about-page .prose .role{color:rgba(255,255,255,.78)}

  body.press-page .wintro{
    max-width:860px;
    margin:28px 0 0;
    padding:18px 22px;
    color:rgba(255,255,255,.9)}
  body.press-page .wintro a,
  body.press-page .wlist__title a,
  body.press-page .wlist__outlet{color:#fff}
  body.press-page .wmonth{max-width:980px}
  body.press-page .wmonth > h2{
    color:#fff;
    border-bottom-color:rgba(255,255,255,.48)}
  body.press-page .wlist__item{border-bottom-color:rgba(255,255,255,.26)}
  body.press-page .wlist__meta,
  body.press-page .wlist__by,
  body.press-page .wlist__venue{color:rgba(255,255,255,.72)}
  body.press-page .wlist__sum{color:rgba(255,255,255,.9)}

  body.contact-page .newsletter,
  body.contact-page .form{
    color:#fff}
  body.contact-page .contact-eyebrow,
  body.contact-page .contact-newsletter__eyebrow,
  body.contact-page .contact-info__eyebrow,
  body.contact-page .contact-form__eyebrow{
    margin:0;
    color:#d9f1ff;
    font:800 11px/1.15 'Quicksand',sans-serif;
    letter-spacing:.14em;
    text-transform:uppercase;
    text-shadow:0 1px 4px rgba(3,46,78,.25)}
  body.contact-page .page-hero{max-width:880px;padding:24px 0 24px}
  body.contact-page .page-hero h1{margin:8px 0 0}
  body.contact-page .page-hero p:last-child{max-width:760px;margin:15px 0 0;font-size:17px;line-height:1.56}
  body.contact-page .newsletter{max-width:none;margin:0;padding:25px 30px}
  body.contact-page .contact-newsletter{
    display:grid;
    grid-template-columns:minmax(0,.95fr) minmax(420px,1.05fr);
    align-items:center;
    gap:34px}
  body.contact-page .contact-newsletter h3{margin:7px 0 5px;font-size:24px}
  body.contact-page .contact-newsletter p:last-child{margin:0;line-height:1.5}
  body.contact-page .contact-newsletter form{min-width:0}
  body.contact-page .contact-newsletter .row2{margin-top:0;flex-wrap:nowrap}
  body.contact-page .contact-newsletter input{min-width:0;height:48px;box-sizing:border-box}
  body.contact-page .contact-newsletter .btn{min-height:48px;padding-inline:28px;white-space:nowrap}
  body.contact-page .contact-grid{
    max-width:none;
    margin:18px 0 0;
    grid-template-columns:minmax(280px,.72fr) minmax(460px,1.28fr);
    gap:18px;
    align-items:start}
  body.contact-page .contact-info{
    padding:30px;
    border:1px solid rgba(255,255,255,.42);
    border-radius:22px;
    background:rgba(3,81,142,.22);
    box-shadow:0 14px 34px rgba(7,42,80,.18),inset 0 1px 0 rgba(255,255,255,.16);
    backdrop-filter:blur(16px) saturate(1.15);
    -webkit-backdrop-filter:blur(16px) saturate(1.15)}
  body.contact-page .contact-info h2{margin:8px 0 13px;font:700 clamp(25px,2.5vw,34px)/1.08 'DM Sans',sans-serif;letter-spacing:-.035em}
  body.contact-page .contact-info>p:not(.contact-info__eyebrow){margin:0;font-size:16px;line-height:1.58}
  body.contact-page .contact-info__notes{display:grid;gap:14px;margin-top:25px;padding-top:20px;border-top:1px solid rgba(255,255,255,.26)}
  body.contact-page .contact-info__notes p{display:grid;gap:4px;margin:0}
  body.contact-page .contact-info__notes strong{font:700 13px/1.2 'Quicksand',sans-serif;letter-spacing:.03em}
  body.contact-page .contact-info__notes span{font-size:14px;line-height:1.48;color:rgba(255,255,255,.83)}
  body.contact-page .contact-form{padding:30px;gap:15px}
  body.contact-page .contact-form h3{margin:7px 0 0;font-size:25px;line-height:1.08}
  body.contact-page .contact-form__intro{margin:-4px 0 3px;color:rgba(255,255,255,.8);font-size:14px;line-height:1.45}
  body.contact-page .contact-form .field{gap:7px}
  body.contact-page .contact-form .field label{font-size:13px}
  body.contact-page .contact-form .field input,
  body.contact-page .contact-form .field select{min-height:44px;box-sizing:border-box}
  body.contact-page .contact-form textarea{min-height:114px;resize:vertical}
  body.contact-page .contact-form .btn{margin-top:3px;min-height:46px;padding-inline:26px}
  body.contact-page .newsletter h3,
  body.contact-page .form h3,
  body.contact-page .contact-info h2,
  body.contact-page .field label{color:#fff}
  body.contact-page .newsletter p,
  body.contact-page .contact-info p,
  body.contact-page .field .opt{color:rgba(255,255,255,.82)}
  body.contact-page .contact-info a{color:#fff}
  body.contact-page .newsletter input,
  body.contact-page .field input,
  body.contact-page .field textarea,
  body.contact-page .field select{
    background:rgba(255,255,255,.94);
    border-color:rgba(255,255,255,.72);
    color:var(--ink)}
  body.contact-page .btn{background:#fff;color:#075e9f;box-shadow:0 6px 16px rgba(7,42,80,.22)}
}

/* About uses the same blue editorial canvas and glass hierarchy as the desktop
   guide, while its content remains readable as a straightforward document on mobile. */
.about-page__main{padding-bottom:72px}
.about-page__eyebrow,.about-page__kicker{margin:0;color:#0877c0;font:800 11px/1.15 'Quicksand',sans-serif;letter-spacing:.14em;text-transform:uppercase}
.about-page__lede{max-width:720px;margin:14px 0 0;font:500 clamp(18px,2vw,23px)/1.42 'DM Sans',sans-serif}
.about-page__mission,.about-page__pillars,.about-page__details,.about-page__contribute{margin-top:24px}
.about-page__mission h2,.about-page__panel h2,.about-page__team dt,.about-page__contribute h2{color:var(--ink-strong)}
.about-page__mission h2,.about-page__contribute h2{margin:10px 0 0;font:700 clamp(28px,3vw,42px)/1.08 'DM Sans',sans-serif;letter-spacing:-.035em}
.about-page__mission p:not(.about-page__kicker),.about-page__panel p:not(.about-page__kicker),.about-page__contribute>p{font-size:16px;line-height:1.58}
.about-page__panel h2{margin:8px 0 0;font:700 22px/1.12 'DM Sans',sans-serif;letter-spacing:-.025em}
.about-page__team dl{margin:13px 0 0}
.about-page__team dt{font:700 21px/1.15 'DM Sans',sans-serif;letter-spacing:-.02em}
.about-page__team dd{margin:3px 0 16px;font:700 11px/1.25 'Quicksand',sans-serif;letter-spacing:.09em;text-transform:uppercase}
.about-page__cta{display:inline-flex;align-items:center;gap:9px;text-decoration:none}

@media(min-width:621px){
  body.about-page .about-page__main{width:min(1280px,calc(100% - 80px));max-width:1280px;margin:0 auto;padding-bottom:76px}
  body.about-page .about-page__hero{max-width:900px;margin:0;padding:24px 0 18px;text-align:left}
  body.about-page .about-page__hero h1{margin:8px 0 0;color:#fff;font:700 clamp(42px,5vw,64px)/1.02 'DM Sans',sans-serif;letter-spacing:-.055em;text-shadow:0 3px 14px rgba(7,42,80,.27)}
  body.about-page .about-page__eyebrow,body.about-page .about-page__kicker{color:#d9f1ff;text-shadow:0 1px 4px rgba(3,46,78,.25)}
  body.about-page .about-page__lede{color:rgba(255,255,255,.9);text-shadow:0 1px 4px rgba(3,46,78,.22)}
  body.about-page .about-page__mission,body.about-page .about-page__panel,body.about-page .about-page__team,body.about-page .about-page__contribute{
    border:1px solid rgba(255,255,255,.42);background:rgba(255,255,255,.13);box-shadow:0 14px 34px rgba(7,42,80,.22),inset 0 1px 0 rgba(255,255,255,.18);backdrop-filter:blur(16px) saturate(1.15);-webkit-backdrop-filter:blur(16px) saturate(1.15)}
  body.about-page .about-page__mission{display:grid;grid-template-columns:minmax(0,1.48fr) minmax(260px,.52fr);gap:42px;align-items:stretch;margin-top:28px;padding:36px;border-radius:22px;color:rgba(255,255,255,.92)}
  body.about-page .about-page__mission h2,body.about-page .about-page__panel h2,body.about-page .about-page__team dt,body.about-page .about-page__contribute h2{color:#fff}
  body.about-page .about-page__mission-copy p:not(.about-page__kicker){max-width:720px;margin:16px 0 0;font-size:17px;line-height:1.58}
  body.about-page .about-page__mission-context{grid-column:1;margin:0;font-size:17px;line-height:1.58}
  body.about-page .about-page__cities{padding:19px 0 0 34px;border-left:1px solid rgba(255,255,255,.28)}
  body.about-page .about-page__cities ul{display:grid;gap:8px;margin:15px 0 14px;padding:0;list-style:none;color:#fff;font:700 clamp(20px,2vw,27px)/1.15 'DM Sans',sans-serif;letter-spacing:-.03em}
  body.about-page .about-page__cities li::before{content:'✦';display:inline-block;margin-right:9px;color:#f4c35f;font-size:12px;vertical-align:3px}
  body.about-page .about-page__cities>p:last-child{margin:0;color:rgba(255,255,255,.76);font:600 12px/1.3 'Quicksand',sans-serif;letter-spacing:.05em}
  body.about-page .about-page__pillars{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}
  body.about-page .about-page__panel{min-height:220px;padding:24px;border-radius:18px;color:rgba(255,255,255,.9)}
  body.about-page .about-page__panel p:not(.about-page__kicker){margin:13px 0 0}
  body.about-page .about-page__details{display:grid;grid-template-columns:minmax(0,1.45fr) minmax(280px,.55fr);gap:18px}
  body.about-page .about-page__panel--wide{min-height:0}
  body.about-page .about-page__team{padding:24px;border-radius:18px;color:rgba(255,255,255,.92)}
  body.about-page .about-page__team dd{color:#d9f1ff}
  body.about-page .about-page__contribute{display:grid;grid-template-columns:minmax(260px,.82fr) minmax(0,1.18fr) auto;gap:24px;align-items:center;padding:26px 30px;border-radius:18px;color:rgba(255,255,255,.92)}
  body.about-page .about-page__contribute h2{font-size:29px}
  body.about-page .about-page__contribute>p{margin:0;font-size:15px;line-height:1.5}
  body.about-page .about-page__contribute a:not(.about-page__cta){color:#fff;font-weight:700}
  body.about-page .about-page__cta{justify-content:center;min-height:42px;padding:0 16px;border:1px solid rgba(255,255,255,.76);border-radius:999px;background:#fff;color:#075e9f;font:800 12px/1 'Quicksand',sans-serif;letter-spacing:.04em;white-space:nowrap;box-shadow:0 7px 16px rgba(7,42,80,.2)}
  body.about-page .about-page__cta:hover{transform:translateY(-1px);box-shadow:0 10px 20px rgba(7,42,80,.27)}
}
@media(min-width:621px) and (max-width:900px){
  body.about-page .about-page__mission,body.about-page .about-page__details{grid-template-columns:1fr}
  body.about-page .about-page__cities{padding:24px 0 0;border-top:1px solid rgba(255,255,255,.28);border-left:0}
  body.about-page .about-page__cities ul{grid-template-columns:repeat(2,minmax(0,1fr))}
  body.about-page .about-page__pillars{grid-template-columns:1fr}
  body.about-page .about-page__panel{min-height:0}
  body.about-page .about-page__contribute{grid-template-columns:1fr}
  body.about-page .about-page__cta{justify-self:start}
}

/* ---------- SHARED DESKTOP HOMEPAGE HEADER ----------
   The command-bar enhancer now marks every desktop surface with
   .desktop-command-ready. Match the homepage's logo/city/category/menu row
   from that shared class so page-specific content cannot create a second
   header language. Mobile/app remains governed by the existing mobile rules. */
@media(min-width:621px){
  body.desktop-command-ready .site-header{
    margin-bottom:34px!important;
    overflow:visible;
    border-bottom:0!important;
    box-shadow:none!important;
    background:transparent!important}
  body.desktop-command-ready .site-header__in{
    width:min(1280px,calc(100% - 80px));
    max-width:1280px;
    grid-template-columns:110px 170px 204px minmax(0,1fr);
    grid-template-rows:minmax(104px,auto);
    column-gap:10px;
    row-gap:0;
    min-height:138px;
    padding-left:0;
    padding-right:0;
    padding-top:14px;
    padding-bottom:12px}
  body.desktop-command-ready .site-header .logo{
    position:relative;
    top:0;
    grid-column:1;
    grid-row:1;
    width:110px;
    height:110px;
    align-self:center}
  body.desktop-command-ready .site-header .logo img{
    border:1px solid rgba(255,255,255,.34);
    border-radius:18px;
    box-shadow:0 12px 28px rgba(7,42,80,.32),0 0 22px 7px rgba(255,255,255,.52),inset 0 1px 0 rgba(255,255,255,.14)}
  body.desktop-command-ready .site-header .cityswitch{
    grid-column:2;
    grid-row:1;
    justify-self:start}
  body.desktop-command-ready .site-header .cityswitch__context{display:none}
  body.desktop-command-ready .site-header .cityswitch__btn{
    min-width:165px;
    min-height:36px;
    gap:9px;
    padding:7px 10px 8px;
    font-size:15.75px;
    line-height:1.2}
  body.desktop-command-ready .site-header .cityswitch__btn::before{
    width:13px;
    height:17px;
    flex-basis:13px}
  body.desktop-command-ready .site-header .cityswitch__caret{font-size:13.5px}
  body.desktop-command-ready .site-header .topnav{
    grid-column:4;
    grid-row:1;
    align-self:center;
    display:flex;
    flex-wrap:wrap;
    align-content:center;
    justify-content:flex-end;
    gap:3px;
    row-gap:2px;
    min-width:0;
    padding-top:0;
    border-top:0}
  body.desktop-command-ready .site-header .topnav .desktop-command__link{
    padding:9px 8px;
    font-size:13.75px;
    text-shadow:0 1px 2px rgba(0,0,0,.22)}
  body.desktop-command-ready .site-header .topnav .desktop-home__app-store{
    display:inline-flex;
    align-items:center;
    gap:8px;
    min-width:132px;
    height:38px;
    margin-left:8px;
    padding:5px 12px 6px 10px;
    border:1px solid rgba(255,255,255,.62);
    border-radius:11px;
    color:#fff;
    background:linear-gradient(180deg,rgba(5,57,99,.78),rgba(4,44,79,.9));
    box-shadow:0 7px 18px rgba(5,42,76,.27),inset 0 1px 0 rgba(255,255,255,.2);
    text-transform:none;
    text-shadow:0 1px 2px rgba(0,0,0,.24);
    transition:transform .16s ease,box-shadow .16s ease,background .16s ease}
  body.desktop-command-ready .site-header .topnav .desktop-home__app-store:hover,
  body.desktop-command-ready .site-header .topnav .desktop-home__app-store:focus-visible{
    opacity:1;
    color:#fff;
    background:linear-gradient(180deg,rgba(5,64,110,.86),rgba(3,38,69,.96));
    box-shadow:0 9px 22px rgba(5,42,76,.34),inset 0 1px 0 rgba(255,255,255,.25);
    transform:translateY(-1px)}
  body.desktop-command-ready .desktop-home__app-store-mark{
    display:grid;
    place-items:center;
    width:22px;
    height:22px;
    flex:0 0 22px;
    border:1px solid rgba(255,255,255,.46);
    border-radius:50%;
    font:800 15px/1 'Quicksand',sans-serif}
  body.desktop-command-ready .desktop-home__app-store-copy{
    display:flex;
    flex-direction:column;
    align-items:flex-start;
    gap:1px;
    white-space:nowrap}
  body.desktop-command-ready .desktop-home__app-store-copy small{font:600 8px/1 'DM Sans',sans-serif;letter-spacing:.02em}
  body.desktop-command-ready .desktop-home__app-store-copy strong{font:700 13px/1 'DM Sans',sans-serif;letter-spacing:.01em}
  body.desktop-command-ready .desktop-guide-switch{
    display:inline-flex;
    grid-column:3;
    grid-row:1;
    align-self:center;
    justify-self:start;
    margin-left:0;
    height:36px;
    padding:3px 4px}
  body.desktop-command-ready .desktop-guide-switch__opt{
    min-width:62px;
    height:28px;
    padding:0 10px;
    font-size:12.5px;
    line-height:28px}
  body.desktop-command-ready .desktop-command__utilities{display:none}
}

/* Wide desktop Atlas workspace: keep the three-card rhythm, but give the
   map, filters, and venue grid the same generous canvas as the homepage. */
@media (min-width:901px){
  body.atlas-page > .wrap,
  body.atlaspage > .wrap{
    width:calc(100% - 72px)!important;
    max-width:1440px!important;
    margin-left:auto!important;
    margin-right:auto!important;
    padding-left:0!important;
    padding-right:0!important;
  }

  body.atlas-page .page-hero,
  body.atlaspage .page-hero{
    max-width:none;
    width:100%;
    margin-left:auto!important;
    margin-right:auto!important;
    padding-top:8px;
  }
  body.atlas-page .page-hero h1,
  body.atlaspage .page-hero h1{
    letter-spacing:-.025em;
    text-shadow:0 3px 14px rgba(7,42,80,.28);
  }
  body.atlas-page .atlas-lede,
  body.atlaspage .atlas-lede{
    width:100%!important;
    max-width:none!important;
  }

  body.atlas-page .atlas-tools,
  body.atlaspage .atlas-tools{
    margin:30px 0 18px!important;
    padding:18px 20px 16px;
    border:1px solid rgba(255,255,255,.34);
    border-radius:18px;
    background:linear-gradient(135deg,rgba(255,255,255,.19),rgba(4,62,108,.18));
    box-shadow:0 18px 38px rgba(7,42,80,.15),inset 0 1px 0 rgba(255,255,255,.16);
    -webkit-backdrop-filter:blur(12px);
    backdrop-filter:blur(12px);
  }
  body.atlas-page .atlas-search,
  body.atlas-page #atlas-q,
  body.atlaspage .atlas-search,
  body.atlaspage #atlas-q{
    min-height:48px!important;
    border-radius:12px!important;
    box-shadow:0 8px 18px rgba(7,42,80,.12),inset 0 1px 0 rgba(255,255,255,.85);
  }
  body.atlas-page .atlas-chips,
  body.atlaspage .atlas-chips{gap:9px!important;margin-top:14px!important}
  body.atlas-page .atlas-chips .chip,
  body.atlaspage .atlas-chips .chip{
    min-height:32px;
    padding:7px 14px!important;
    transition:transform .16s ease,background .16s ease,border-color .16s ease,box-shadow .16s ease;
  }
  body.atlas-page .atlas-chips .chip:hover,
  body.atlaspage .atlas-chips .chip:hover{transform:translateY(-1px);box-shadow:0 5px 12px rgba(7,42,80,.16)}

  body.atlas-page #map-section,
  body.atlaspage #map-section{
    margin:22px 0 58px!important;
    padding:20px 20px 16px;
    border:1px solid rgba(255,255,255,.34);
    border-radius:20px;
    background:linear-gradient(135deg,rgba(255,255,255,.16),rgba(3,66,111,.2));
    box-shadow:0 20px 44px rgba(7,42,80,.18),inset 0 1px 0 rgba(255,255,255,.15);
    -webkit-backdrop-filter:blur(12px);
    backdrop-filter:blur(12px);
  }
  body.atlas-page #map-section > .shead,
  body.atlaspage #map-section > .shead{
    margin:0 0 16px!important;
    padding:0 2px;
  }
  body.atlas-page #placesmap,
  body.atlaspage #placesmap{
    height:500px!important;
    border-radius:14px!important;
    border-color:rgba(255,255,255,.68)!important;
    box-shadow:0 10px 26px rgba(7,42,80,.2),inset 0 1px 0 rgba(255,255,255,.35);
  }
  body.atlas-page .map-note,
  body.atlaspage .map-note{margin-bottom:0!important;opacity:.82}

  body.atlas-page .area,
  body.atlaspage .area{margin-top:58px!important}
  body.atlas-page .area__head,
  body.atlaspage .area__head{
    margin-bottom:24px!important;
    padding:0 4px 10px!important;
    font-size:28px!important;
    letter-spacing:-.015em;
  }
  body.atlas-page .vgrid,
  body.atlas-page .area__grid,
  body.atlaspage .vgrid,
  body.atlaspage .area__grid{gap:24px!important}
  body.atlas-page .vcard,
  body.atlaspage .vcard{
    min-width:0;
    border-radius:18px!important;
    overflow:hidden!important;
    box-shadow:0 12px 24px rgba(7,42,80,.18),inset 0 1px 0 rgba(255,255,255,.16);
    transition:transform .18s ease,box-shadow .18s ease;
  }
  body.atlas-page .vcard:hover,
  body.atlaspage .vcard:hover{
    transform:translateY(-4px);
    box-shadow:0 20px 36px rgba(7,42,80,.28),inset 0 1px 0 rgba(255,255,255,.2)!important;
  }
  body.atlas-page .vcard__media,
  body.atlaspage .vcard__media{aspect-ratio:16/9!important}
  body.atlas-page .vcard__body,
  body.atlaspage .vcard__body{padding:17px 18px 18px!important}
  body.atlas-page .vcard__name,
  body.atlaspage .vcard__name{font-size:19px!important}
  body.atlas-page .vcard__foot,
  body.atlaspage .vcard__foot{padding-top:13px!important}
}

/* Desktop guide chooser: the visible control is injected into the shared
   command bar as .desktop-guide-switch. Present the three guides as distinct
   editorial entry points instead of a generic segmented pill. */
@media (min-width:901px), (min-width:621px) and (min-height:621px), (min-width:621px) and (pointer:fine), (min-width:621px) and (orientation:portrait){
  body.desktop-command-ready .desktop-guide-switch{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;align-items:stretch;width:354px;height:auto;margin-left:0;padding:0;border:0;border-radius:0;background:none;box-shadow:none;backdrop-filter:none;-webkit-backdrop-filter:none}
}
@media (min-width:901px), (min-width:621px) and (min-height:621px), (min-width:621px) and (pointer:fine), (min-width:621px) and (orientation:portrait){
  body.desktop-command-ready .desktop-guide-switch__opt{display:grid;align-content:center;justify-items:start;min-width:0;height:62px;padding:10px 11px 9px;border:1px solid rgba(255,255,255,.28);border-top:3px solid rgba(255,255,255,.48);border-radius:13px;background:rgba(3,67,115,.42);box-shadow:0 8px 20px rgba(7,42,80,.2),inset 0 1px 0 rgba(255,255,255,.14);backdrop-filter:blur(16px) saturate(1.35);-webkit-backdrop-filter:blur(16px) saturate(1.35);font-size:0;line-height:normal;text-align:left;transition:transform .16s ease,background .16s ease,box-shadow .16s ease}
}
@media (min-width:901px), (min-width:621px) and (min-height:621px), (min-width:621px) and (pointer:fine), (min-width:621px) and (orientation:portrait){
  body.desktop-command-ready .desktop-guide-switch__opt::before{display:block;font:700 13px/1.1 'Quicksand',sans-serif;letter-spacing:.02em;color:#fff}
}
@media (min-width:901px), (min-width:621px) and (min-height:621px), (min-width:621px) and (pointer:fine), (min-width:621px) and (orientation:portrait){
  body.desktop-command-ready .desktop-guide-switch__opt::after{display:block;margin-top:5px;font:500 8px/1.15 'Quicksand',sans-serif;color:rgba(255,255,255,.7);white-space:normal}
}
@media (min-width:901px), (min-width:621px) and (min-height:621px), (min-width:621px) and (pointer:fine), (min-width:621px) and (orientation:portrait){
  body.desktop-command-ready .desktop-guide-switch__opt[data-desktop-cat="art"]{border-top-color:#f4c35f}
}
@media (min-width:901px), (min-width:621px) and (min-height:621px), (min-width:621px) and (pointer:fine), (min-width:621px) and (orientation:portrait){
  body.desktop-command-ready .desktop-guide-switch__opt[data-desktop-cat="art"]::before{content:"Art"}
}
@media (min-width:901px), (min-width:621px) and (min-height:621px), (min-width:621px) and (pointer:fine), (min-width:621px) and (orientation:portrait){
  body.desktop-command-ready .desktop-guide-switch__opt[data-desktop-cat="art"]::after{content:"Exhibitions, openings, talks"}
}
@media (min-width:901px), (min-width:621px) and (min-height:621px), (min-width:621px) and (pointer:fine), (min-width:621px) and (orientation:portrait){
  body.desktop-command-ready .desktop-guide-switch__opt[data-desktop-cat="theater"]{border-top-color:#ff9b35}
}
@media (min-width:901px), (min-width:621px) and (min-height:621px), (min-width:621px) and (pointer:fine), (min-width:621px) and (orientation:portrait){
  body.desktop-command-ready .desktop-guide-switch__opt[data-desktop-cat="theater"]::before{content:"Theater"}
}
@media (min-width:901px), (min-width:621px) and (min-height:621px), (min-width:621px) and (pointer:fine), (min-width:621px) and (orientation:portrait){
  body.desktop-command-ready .desktop-guide-switch__opt[data-desktop-cat="theater"]::after{content:"Plays and performances"}
}
@media (min-width:901px), (min-width:621px) and (min-height:621px), (min-width:621px) and (pointer:fine), (min-width:621px) and (orientation:portrait){
  body.desktop-command-ready .desktop-guide-switch__opt[data-desktop-cat="drag"]{border-top-color:#f28abc}
  body.desktop-command-ready .desktop-guide-switch__opt[data-desktop-cat="comedy"]{border-top-color:#5eead4}
}
@media (min-width:901px), (min-width:621px) and (min-height:621px), (min-width:621px) and (pointer:fine), (min-width:621px) and (orientation:portrait){
  body.desktop-command-ready .desktop-guide-switch__opt[data-desktop-cat="drag"]::before{content:"Drag"}
  body.desktop-command-ready .desktop-guide-switch__opt[data-desktop-cat="comedy"]::before{content:"Comedy"}
}
@media (min-width:901px), (min-width:621px) and (min-height:621px), (min-width:621px) and (pointer:fine), (min-width:621px) and (orientation:portrait){
  body.desktop-command-ready .desktop-guide-switch__opt[data-desktop-cat="drag"]::after{content:"Shows and nightlife"}
  body.desktop-command-ready .desktop-guide-switch__opt[data-desktop-cat="comedy"]::after{content:"Stand-up and open mics"}
}
@media (min-width:901px), (min-width:621px) and (min-height:621px), (min-width:621px) and (pointer:fine), (min-width:621px) and (orientation:portrait){
  body.desktop-command-ready .desktop-guide-switch__opt:hover,
  body.desktop-command-ready .desktop-guide-switch__opt:focus-visible{transform:translateY(-1px);background:rgba(11,104,164,.7)}
}
@media (min-width:901px), (min-width:621px) and (min-height:621px), (min-width:621px) and (pointer:fine), (min-width:621px) and (orientation:portrait){
  body.desktop-command-ready .desktop-guide-switch__opt.is-on{color:#fff;background:linear-gradient(135deg,rgba(255,255,255,.34),rgba(255,255,255,.13));border-color:rgba(255,255,255,.62);box-shadow:0 10px 24px rgba(7,42,80,.27),inset 0 1px 0 rgba(255,255,255,.32);backdrop-filter:blur(18px) saturate(1.5);-webkit-backdrop-filter:blur(18px) saturate(1.5)}
}
@media (min-width:901px), (min-width:621px) and (min-height:621px), (min-width:621px) and (pointer:fine), (min-width:621px) and (orientation:portrait){
  body.desktop-command-ready .desktop-guide-switch__opt.is-on[data-desktop-cat="art"]{border-top-color:#f4c35f}
}
@media (min-width:901px), (min-width:621px) and (min-height:621px), (min-width:621px) and (pointer:fine), (min-width:621px) and (orientation:portrait){
  body.desktop-command-ready .desktop-guide-switch__opt.is-on[data-desktop-cat="theater"]{border-top-color:#ff9b35}
}
@media (min-width:901px), (min-width:621px) and (min-height:621px), (min-width:621px) and (pointer:fine), (min-width:621px) and (orientation:portrait){
  body.desktop-command-ready .desktop-guide-switch__opt.is-on[data-desktop-cat="drag"]{border-top-color:#f28abc}
  body.desktop-command-ready .desktop-guide-switch__opt.is-on[data-desktop-cat="comedy"]{border-top-color:#5eead4}
}
@media (min-width:901px), (min-width:621px) and (min-height:621px), (min-width:621px) and (pointer:fine), (min-width:621px) and (orientation:portrait){
  body.desktop-command-ready .desktop-guide-switch__opt.is-on::before{color:#fff}
}
@media (min-width:901px), (min-width:621px) and (min-height:621px), (min-width:621px) and (pointer:fine), (min-width:621px) and (orientation:portrait){
  body.desktop-command-ready .desktop-guide-switch__opt.is-on::after{color:rgba(255,255,255,.82)}
}

/* Desktop city selector: a compact glass control with clear city context and
   a matching glass menu when opened. */
@media (min-width:901px), (min-width:621px) and (min-height:621px), (min-width:621px) and (pointer:fine), (min-width:621px) and (orientation:portrait){
  body.desktop-command-ready .site-header .cityswitch{padding-left:0;align-self:center}
}
@media (min-width:901px), (min-width:621px) and (min-height:621px), (min-width:621px) and (pointer:fine), (min-width:621px) and (orientation:portrait){
  body.desktop-command-ready .site-header .cityswitch__btn{
    display:flex;
    align-items:center;
    gap:8px;
    width:max-content;
    min-width:0;
    min-height:36px;
    padding:8px 11px;
    border:1px solid rgba(255,255,255,.32);
    border-radius:999px;
    background:rgba(1,34,65,.62);
    box-shadow:0 7px 17px rgba(0,22,42,.34),inset 0 1px 0 rgba(255,255,255,.12);
    backdrop-filter:blur(14px);
    -webkit-backdrop-filter:blur(14px);
    text-align:left;
  }
}
@media (min-width:901px), (min-width:621px) and (min-height:621px), (min-width:621px) and (pointer:fine), (min-width:621px) and (orientation:portrait){
  body.desktop-command-ready .site-header .cityswitch__btn::before{
    content:"⌖";
    display:grid;
    place-items:center;
    flex:0 0 16px;
    width:16px;
    height:16px;
    color:#f4c35f;
    font:700 14px/1 Georgia,serif;
  }
}
@media (min-width:901px), (min-width:621px) and (min-height:621px), (min-width:621px) and (pointer:fine), (min-width:621px) and (orientation:portrait){
  body.desktop-command-ready .site-header .cityswitch__btn::after{
    content:none;
    display:none;
  }
}
@media (min-width:901px), (min-width:621px) and (min-height:621px), (min-width:621px) and (pointer:fine), (min-width:621px) and (orientation:portrait){
  body.desktop-command-ready .site-header .cityswitch__label{
    flex:0 0 auto;
    color:#fff;
    font:700 13px/1 'Quicksand',sans-serif;
  }
}
@media (min-width:901px), (min-width:621px) and (min-height:621px), (min-width:621px) and (pointer:fine), (min-width:621px) and (orientation:portrait){
  body.desktop-command-ready .site-header .cityswitch__caret{
    flex:0 0 auto;
    color:rgba(255,255,255,.66);
    font-size:12px;
  }
}
@media (min-width:901px), (min-width:621px) and (min-height:621px), (min-width:621px) and (pointer:fine), (min-width:621px) and (orientation:portrait){
  body.desktop-command-ready .site-header .cityswitch__btn:hover,
  body.desktop-command-ready .site-header .cityswitch__btn:focus-visible{
    background:rgba(1,34,65,.78);
    border-color:rgba(255,255,255,.48);
    box-shadow:0 9px 20px rgba(0,22,42,.42),inset 0 1px 0 rgba(255,255,255,.16);
  }
}
@media (min-width:901px), (min-width:621px) and (min-height:621px), (min-width:621px) and (pointer:fine), (min-width:621px) and (orientation:portrait){
  body.desktop-command-ready .site-header .cityswitch__menu{
    top:calc(100% + 8px);
    left:0;
    transform:none;
    min-width:180px;
    padding:8px;
    gap:3px;
    border:1px solid rgba(255,255,255,.44);
    border-radius:14px;
    background:rgba(3,59,104,.82);
    box-shadow:0 14px 28px rgba(0,29,56,.3),inset 0 1px 0 rgba(255,255,255,.16);
    backdrop-filter:blur(18px) saturate(1.35);
    -webkit-backdrop-filter:blur(18px) saturate(1.35);
  }
}
@media (min-width:901px), (min-width:621px) and (min-height:621px), (min-width:621px) and (pointer:fine), (min-width:621px) and (orientation:portrait){
  body.desktop-command-ready .site-header .cityswitch__opt{
    padding:10px 10px 10px 12px;
    border:0;
    border-left:3px solid transparent;
    border-radius:8px;
    color:rgba(255,255,255,.9);
    background:transparent;
    box-shadow:none;
    text-align:left;
  }
}
@media (min-width:901px), (min-width:621px) and (min-height:621px), (min-width:621px) and (pointer:fine), (min-width:621px) and (orientation:portrait){
  body.desktop-command-ready .site-header .cityswitch__opt:hover,
  body.desktop-command-ready .site-header .cityswitch__opt:focus-visible,
  body.desktop-command-ready .site-header .cityswitch__opt.is-on{
    color:#fff;
    background:rgba(255,255,255,.16);
    border-left-color:#f4c35f;
    border-top-color:transparent;
  }
}

/* Scalable desktop route header: persistent routes, compact categories, and a searchable city command. */
@media (min-width:621px) and (max-width:900px) and (orientation:landscape) and (max-height:620px) and (pointer:coarse){
  body.desktop-command-ready .desktop-command__intro{display:none}
}
@media (min-width:621px) and (max-width:900px) and (orientation:landscape) and (max-height:620px) and (pointer:coarse){
  body.desktop-command-ready .desktop-command__actions{display:contents}
}
@media (min-width:621px) and (max-width:900px) and (orientation:landscape) and (max-height:620px) and (pointer:coarse){
  body.desktop-command-ready .desktop-command__actions .desktop-home__app-store{display:none!important}
}

@media (min-width:901px), (min-width:621px) and (min-height:621px), (min-width:621px) and (pointer:fine), (min-width:621px) and (orientation:portrait){
  body.desktop-command-ready .site-header__in{
    width:min(1280px,calc(100% - 80px));
    max-width:1280px;
    min-height:154px;
    margin:0 auto;
    padding:18px 0 17px;
    display:grid;
    grid-template-columns:76px 220px minmax(500px,1fr);
    grid-template-rows:74px 48px;
    column-gap:22px;
    row-gap:4px;
    align-items:center;
  }
}
@media (min-width:901px), (min-width:621px) and (min-height:621px), (min-width:621px) and (pointer:fine), (min-width:621px) and (orientation:portrait){
  body.desktop-command-ready .site-header .logo{
    grid-column:1;
    grid-row:1 / 3;
    align-self:start;
    width:72px;
    height:72px;
    margin:0;
  }
}
@media (min-width:901px), (min-width:621px) and (min-height:621px), (min-width:621px) and (pointer:fine), (min-width:621px) and (orientation:portrait){
  body.desktop-command-ready .site-header .logo img{border-radius:15px}
}
@media (min-width:901px), (min-width:621px) and (min-height:621px), (min-width:621px) and (pointer:fine), (min-width:621px) and (orientation:portrait){
  body.desktop-command-ready .desktop-command__intro{
    grid-column:2;
    grid-row:1;
    min-width:0;
    padding-left:14px;
    border-left:2px solid #f4c35f;
  }
}
@media (min-width:901px), (min-width:621px) and (min-height:621px), (min-width:621px) and (pointer:fine), (min-width:621px) and (orientation:portrait){
  body.desktop-command-ready .desktop-command__intro>strong{
    display:block;
    color:#fff;
    font:500 19px/1.08 'DM Sans',sans-serif;
    letter-spacing:-.025em;
    text-shadow:0 2px 9px rgba(3,33,61,.25);
  }
}
@media (min-width:901px), (min-width:621px) and (min-height:621px), (min-width:621px) and (pointer:fine), (min-width:621px) and (orientation:portrait){
  body.desktop-command-ready .desktop-command__intro>span{
    display:block;
    margin-top:6px;
    color:rgba(255,255,255,.68);
    font:600 10px/1.25 'Quicksand',sans-serif;
  }
}
@media (min-width:901px), (min-width:621px) and (min-height:621px), (min-width:621px) and (pointer:fine), (min-width:621px) and (orientation:portrait){
  body.desktop-command-ready .desktop-command__intro b,
  body.desktop-command-ready .desktop-command__intro i{font:inherit}
}
@media (min-width:901px), (min-width:621px) and (min-height:621px), (min-width:621px) and (pointer:fine), (min-width:621px) and (orientation:portrait){
  body.desktop-command-ready .site-header .topnav{
    position:relative;
    grid-column:3;
    grid-row:1;
    align-self:center;
    display:grid;
    grid-template-columns:repeat(6,minmax(0,1fr));
    gap:0;
    width:100%;
    min-width:0;
    margin:0;
    padding:16px 0 0;
    border:0;
    background:transparent;
  }
}
@media (min-width:901px), (min-width:621px) and (min-height:621px), (min-width:621px) and (pointer:fine), (min-width:621px) and (orientation:portrait){
  body.desktop-command-ready .site-header .topnav::before{
    content:"";
    position:absolute;
    z-index:0;
    left:10%;
    right:10%;
    top:21px;
    height:1px;
    background:rgba(255,255,255,.31);
  }
}
@media (min-width:901px), (min-width:621px) and (min-height:621px), (min-width:621px) and (pointer:fine), (min-width:621px) and (orientation:portrait){
  body.desktop-command-ready .site-header .topnav .desktop-command__link{
    position:relative;
    z-index:1;
    display:block;
    min-width:0;
    padding:20px 5px 5px;
    border:0;
    border-radius:0;
    color:rgba(255,255,255,.66);
    background:transparent;
    box-shadow:none;
    font:700 13px/1.15 'Quicksand',sans-serif;
    text-align:center;
    text-shadow:none;
  }
}
@media (min-width:901px), (min-width:621px) and (min-height:621px), (min-width:621px) and (pointer:fine), (min-width:621px) and (orientation:portrait){
  body.desktop-command-ready .site-header .topnav .desktop-command__link::before{
    content:"";
    position:absolute;
    top:0;
    left:50%;
    width:10px;
    height:10px;
    margin-left:-5px;
    border:2px solid rgba(255,255,255,.67);
    border-radius:50%;
    background:#07588f;
    box-sizing:border-box;
  }
}
@media (min-width:901px), (min-width:621px) and (min-height:621px), (min-width:621px) and (pointer:fine), (min-width:621px) and (orientation:portrait){
  body.desktop-command-ready .site-header .topnav .desktop-command__link:hover,
  body.desktop-command-ready .site-header .topnav .desktop-command__link:focus-visible{color:#fff;background:transparent}
}
@media (min-width:901px), (min-width:621px) and (min-height:621px), (min-width:621px) and (pointer:fine), (min-width:621px) and (orientation:portrait){
  body.desktop-command-ready .site-header .topnav .desktop-command__link[aria-current="page"]{
    color:#fff;
    background:transparent;
    border:0;
    box-shadow:none;
  }
}
@media (min-width:901px), (min-width:621px) and (min-height:621px), (min-width:621px) and (pointer:fine), (min-width:621px) and (orientation:portrait){
  body.desktop-command-ready .site-header .topnav .desktop-command__link[aria-current="page"]::before{
    border-color:#f4c35f;
    background:#f4c35f;
    box-shadow:0 0 13px rgba(244,195,95,.82);
  }
}
@media (min-width:901px), (min-width:621px) and (min-height:621px), (min-width:621px) and (pointer:fine), (min-width:621px) and (orientation:portrait){
  body.desktop-command-ready .desktop-guide-switch{
    grid-column:2;
    grid-row:2;
    justify-self:start;
    display:flex;
    align-items:center;
    gap:16px;
    width:auto;
    height:auto;
    margin:0;
    padding:0;
    border:0;
    border-radius:0;
    background:transparent;
    box-shadow:none;
    backdrop-filter:none;
    -webkit-backdrop-filter:none;
  }
}
@media (min-width:901px), (min-width:621px) and (min-height:621px), (min-width:621px) and (pointer:fine), (min-width:621px) and (orientation:portrait){
  body.desktop-command-ready .desktop-guide-switch__opt{
    position:relative;
    display:block;
    width:auto;
    min-width:0;
    height:auto;
    padding:7px 0;
    border:0;
    border-radius:0;
    color:rgba(255,255,255,.64);
    background:transparent;
    box-shadow:none;
    font:700 10px/1 'Quicksand',sans-serif;
  }
}
@media (min-width:901px), (min-width:621px) and (min-height:621px), (min-width:621px) and (pointer:fine), (min-width:621px) and (orientation:portrait){
  body.desktop-command-ready .desktop-guide-switch__opt::before,
  body.desktop-command-ready .desktop-guide-switch__opt::after{content:none!important;display:none!important}
}
@media (min-width:901px), (min-width:621px) and (min-height:621px), (min-width:621px) and (pointer:fine), (min-width:621px) and (orientation:portrait){
  body.desktop-command-ready .desktop-guide-switch__opt:hover,
  body.desktop-command-ready .desktop-guide-switch__opt:focus-visible{transform:none;color:#fff;background:transparent}
}
@media (min-width:901px), (min-width:621px) and (min-height:621px), (min-width:621px) and (pointer:fine), (min-width:621px) and (orientation:portrait){
  body.desktop-command-ready .desktop-guide-switch__opt.is-on{color:#fff;background:transparent;border:0;box-shadow:none}
}
@media (min-width:901px), (min-width:621px) and (min-height:621px), (min-width:621px) and (pointer:fine), (min-width:621px) and (orientation:portrait){
  body.desktop-command-ready .desktop-guide-switch__opt.is-on::after{
    content:""!important;
    display:block!important;
    position:absolute;
    left:0;
    right:0;
    bottom:0;
    height:2px;
    background:#f4c35f;
    box-shadow:0 0 8px rgba(244,195,95,.74);
  }
}
@media (min-width:901px), (min-width:621px) and (min-height:621px), (min-width:621px) and (pointer:fine), (min-width:621px) and (orientation:portrait){
  body.desktop-command-ready .desktop-command__actions{
    position:relative;
    grid-column:3;
    grid-row:2;
    display:flex;
    align-items:center;
    justify-content:flex-end;
    gap:10px;
    min-width:0;
  }
}
@media (min-width:901px), (min-width:621px) and (min-height:621px), (min-width:621px) and (pointer:fine), (min-width:621px) and (orientation:portrait){
  body.desktop-command-ready .desktop-command__actions .cityswitch{
    position:relative;
    display:block;
    grid-column:auto;
    grid-row:auto;
    justify-self:auto;
    align-self:auto;
    min-width:0;
    padding:0;
  }
}
@media (min-width:901px), (min-width:621px) and (min-height:621px), (min-width:621px) and (pointer:fine), (min-width:621px) and (orientation:portrait){
  body.desktop-command-ready .desktop-command__actions .cityswitch__context{display:none}
}
@media (min-width:901px), (min-width:621px) and (min-height:621px), (min-width:621px) and (pointer:fine), (min-width:621px) and (orientation:portrait){
  body.desktop-command-ready .desktop-command__actions .cityswitch__btn{
    width:auto;
    min-width:185px;
    min-height:40px;
    gap:9px;
    padding:7px 11px;
    border:1px solid rgba(255,255,255,.28);
    border-radius:12px;
    background:rgba(1,34,65,.57);
  }
}
@media (min-width:901px), (min-width:621px) and (min-height:621px), (min-width:621px) and (pointer:fine), (min-width:621px) and (orientation:portrait){
  body.desktop-command-ready .cityswitch__copy{
    display:flex;
    flex:1 1 auto;
    min-width:0;
    flex-direction:column;
    align-items:flex-start;
    gap:2px;
  }
}
@media (min-width:901px), (min-width:621px) and (min-height:621px), (min-width:621px) and (pointer:fine), (min-width:621px) and (orientation:portrait){
  body.desktop-command-ready .cityswitch__copy small{
    color:rgba(255,255,255,.56);
    font:700 8px/1 'Quicksand',sans-serif;
    letter-spacing:.08em;
    text-transform:uppercase;
  }
}
@media (min-width:901px), (min-width:621px) and (min-height:621px), (min-width:621px) and (pointer:fine), (min-width:621px) and (orientation:portrait){
  body.desktop-command-ready .cityswitch__copy .cityswitch__label{
    color:#fff;
    font:700 11px/1.05 'Quicksand',sans-serif;
  }
}
@media (min-width:901px), (min-width:621px) and (min-height:621px), (min-width:621px) and (pointer:fine), (min-width:621px) and (orientation:portrait){
  body.desktop-command-ready .site-header .cityswitch__menu{
    top:calc(100% + 9px);
    left:auto;
    right:0;
    display:grid;
    grid-template-columns:repeat(4,minmax(112px,1fr));
    width:min(600px,calc(100vw - 80px));
    min-width:520px;
    max-height:360px;
    overflow:auto;
    padding:10px;
    gap:5px;
    border:1px solid rgba(255,255,255,.62);
    border-radius:15px;
    background:rgba(244,249,252,.98);
    color:#082f54;
    box-shadow:0 18px 34px rgba(0,24,49,.33),inset 0 1px 0 rgba(255,255,255,.82);
    backdrop-filter:blur(20px) saturate(1.2);
    -webkit-backdrop-filter:blur(20px) saturate(1.2);
  }
}
@media (min-width:901px), (min-width:621px) and (min-height:621px), (min-width:621px) and (pointer:fine), (min-width:621px) and (orientation:portrait){
  body.desktop-command-ready .site-header .cityswitch__menu[hidden]{display:none}
}
@media (min-width:901px), (min-width:621px) and (min-height:621px), (min-width:621px) and (pointer:fine), (min-width:621px) and (orientation:portrait){
  body.desktop-command-ready .desktop-city-search{
    grid-column:1 / -1;
    display:flex;
    align-items:center;
    gap:9px;
    margin:-2px -2px 4px;
    padding:9px 10px;
    border-bottom:1px solid rgba(8,47,84,.14);
    color:#0870b8;
  }
}
@media (min-width:901px), (min-width:621px) and (min-height:621px), (min-width:621px) and (pointer:fine), (min-width:621px) and (orientation:portrait){
  body.desktop-command-ready .desktop-city-search input{
    width:100%;
    min-width:0;
    border:0;
    outline:0;
    color:#082f54;
    background:transparent;
    font:600 11px/1.2 'Quicksand',sans-serif;
  }
}
@media (min-width:901px), (min-width:621px) and (min-height:621px), (min-width:621px) and (pointer:fine), (min-width:621px) and (orientation:portrait){
  body.desktop-command-ready .desktop-city-search input::placeholder{color:rgba(8,47,84,.52)}
}
@media (min-width:901px), (min-width:621px) and (min-height:621px), (min-width:621px) and (pointer:fine), (min-width:621px) and (orientation:portrait){
  body.desktop-command-ready .site-header .cityswitch__opt{
    min-height:34px;
    padding:8px 9px;
    border:0;
    border-radius:8px;
    color:#082f54;
    background:rgba(8,47,84,.055);
    box-shadow:none;
    font-size:10px;
    text-align:left;
  }
}
@media (min-width:901px), (min-width:621px) and (min-height:621px), (min-width:621px) and (pointer:fine), (min-width:621px) and (orientation:portrait){
  body.desktop-command-ready .site-header .cityswitch__opt:hover,
  body.desktop-command-ready .site-header .cityswitch__opt:focus-visible{color:#082f54;background:rgba(8,112,184,.14);border:0}
}
@media (min-width:901px), (min-width:621px) and (min-height:621px), (min-width:621px) and (pointer:fine), (min-width:621px) and (orientation:portrait){
  body.desktop-command-ready .site-header .cityswitch__opt.is-on{color:#fff;background:#0870b8;border:0;box-shadow:0 5px 12px rgba(8,74,116,.2)}
}
@media (min-width:901px), (min-width:621px) and (min-height:621px), (min-width:621px) and (pointer:fine), (min-width:621px) and (orientation:portrait){
  body.desktop-command-ready .desktop-command__actions .desktop-home__app-store{
    display:inline-flex;
    align-items:center;
    gap:7px;
    min-width:124px;
    min-height:40px;
    padding:6px 10px;
    border:1px solid rgba(255,255,255,.38);
    border-radius:11px;
    color:#fff;
    background:rgba(2,40,74,.5);
    box-shadow:0 7px 17px rgba(0,22,42,.25),inset 0 1px 0 rgba(255,255,255,.13);
  }
}
@media (min-width:901px), (min-width:621px) and (min-height:621px), (min-width:621px) and (pointer:fine), (min-width:621px) and (orientation:portrait){
  body.desktop-command-ready .desktop-command__actions .desktop-home__app-store-mark{
    display:grid;
    place-items:center;
    width:21px;
    height:21px;
    flex:0 0 21px;
    border:1px solid rgba(255,255,255,.42);
    border-radius:50%;
    font-size:13px;
  }
}
@media (min-width:901px), (min-width:621px) and (min-height:621px), (min-width:621px) and (pointer:fine), (min-width:621px) and (orientation:portrait){
  body.desktop-command-ready .desktop-command__actions .desktop-home__app-store-copy{
    display:flex;
    flex-direction:column;
    align-items:flex-start;
    gap:1px;
    white-space:nowrap;
  }
}
@media (min-width:901px), (min-width:621px) and (min-height:621px), (min-width:621px) and (pointer:fine), (min-width:621px) and (orientation:portrait){
  body.desktop-command-ready .desktop-command__actions .desktop-home__app-store-copy small{font:600 7px/1 'DM Sans',sans-serif}
}
@media (min-width:901px), (min-width:621px) and (min-height:621px), (min-width:621px) and (pointer:fine), (min-width:621px) and (orientation:portrait){
  body.desktop-command-ready .desktop-command__actions .desktop-home__app-store-copy strong{font:700 11px/1 'DM Sans',sans-serif}
}

/* Page-specific legacy header rules carry extra selector weight. Repeat the
   command class here so every desktop surface resolves to the same D layout. */
@media (min-width:901px), (min-width:621px) and (min-height:621px), (min-width:621px) and (pointer:fine), (min-width:621px) and (orientation:portrait){
  body.desktop-command-ready.desktop-command-ready .site-header__in{
    width:min(1200px,calc(100% - 80px));
    max-width:1200px;
    grid-template-columns:76px 220px minmax(500px,1fr);
    grid-template-rows:74px 48px;
    column-gap:22px;
    row-gap:4px;
    min-height:154px;
  }
}
@media (min-width:901px), (min-width:621px) and (min-height:621px), (min-width:621px) and (pointer:fine), (min-width:621px) and (orientation:portrait){
  body.desktop-command-ready.desktop-command-ready .desktop-guide-switch{
    position:relative;
    display:grid;
    grid-column:2;
    grid-row:2;
    grid-template-columns:repeat(3,minmax(0,1fr));
    align-self:center;
    justify-self:stretch;
    gap:0;
    width:100%;
    height:32px;
    margin:0;
    padding:0;
  }
}
@media (min-width:901px), (min-width:621px) and (min-height:621px), (min-width:621px) and (pointer:fine), (min-width:621px) and (orientation:portrait){
  body.desktop-command-ready.desktop-command-ready .desktop-guide-switch::before{
    content:"";
    position:absolute;
    z-index:0;
    left:16.666%;
    right:16.666%;
    top:5px;
    height:1px;
    background:rgba(255,255,255,.31);
  }
}
@media (min-width:901px), (min-width:621px) and (min-height:621px), (min-width:621px) and (pointer:fine), (min-width:621px) and (orientation:portrait){
  body.desktop-command-ready.desktop-command-ready .desktop-guide-switch__opt{
    position:relative;
    z-index:1;
    display:block;
    width:100%;
    min-width:0;
    height:auto;
    padding:17px 3px 2px;
    color:rgba(255,255,255,.66);
    border:0;
    border-radius:0;
    background:transparent!important;
    box-shadow:none!important;
    filter:none!important;
    backdrop-filter:none!important;
    -webkit-backdrop-filter:none!important;
    appearance:none;
    -webkit-appearance:none;
    font:700 13px/1.15 'Quicksand',sans-serif;
    text-align:center;
    text-shadow:none;
  }
}
@media (min-width:901px), (min-width:621px) and (min-height:621px), (min-width:621px) and (pointer:fine), (min-width:621px) and (orientation:portrait){
  body.desktop-command-ready.desktop-command-ready .desktop-guide-switch__opt::before{
    content:""!important;
    display:block!important;
    position:absolute;
    top:0;
    left:50%;
    width:10px;
    height:10px;
    margin-left:-5px;
    border:2px solid rgba(255,255,255,.67);
    border-radius:50%;
    background:#07588f;
    box-sizing:border-box;
  }
}
@media (min-width:901px), (min-width:621px) and (min-height:621px), (min-width:621px) and (pointer:fine), (min-width:621px) and (orientation:portrait){
  body.desktop-command-ready.desktop-command-ready .desktop-guide-switch__opt::after{display:none!important}
}
@media (min-width:901px), (min-width:621px) and (min-height:621px), (min-width:621px) and (pointer:fine), (min-width:621px) and (orientation:portrait){
  body.desktop-command-ready.desktop-command-ready .desktop-guide-switch__opt:hover::before,
  body.desktop-command-ready.desktop-command-ready .desktop-guide-switch__opt:focus-visible::before{
    border-color:#fff;
    box-shadow:0 0 9px rgba(255,255,255,.48);
  }
}
@media (min-width:901px), (min-width:621px) and (min-height:621px), (min-width:621px) and (pointer:fine), (min-width:621px) and (orientation:portrait){
  body.desktop-command-ready.desktop-command-ready .desktop-guide-switch__opt.is-on::before{
    border-color:#f4c35f;
    background:#f4c35f;
    box-shadow:0 0 13px rgba(244,195,95,.82);
  }
}
@media (min-width:901px), (min-width:621px) and (min-height:621px), (min-width:621px) and (pointer:fine), (min-width:621px) and (orientation:portrait){
  body.desktop-command-ready.desktop-command-ready .site-header .topnav{
    grid-column:3;
    grid-row:1;
    align-self:center;
    display:grid;
    grid-template-columns:repeat(6,minmax(0,1fr));
    flex-wrap:nowrap;
    align-content:normal;
    justify-content:normal;
    gap:0;
    row-gap:0;
    padding:16px 0 0;
  }
}
@media (min-width:901px), (min-width:621px) and (min-height:621px), (min-width:621px) and (pointer:fine), (min-width:621px) and (orientation:portrait){
  body.desktop-command-ready.desktop-command-ready .site-header .topnav .desktop-command__link{
    padding:20px 5px 5px;
    font:700 13px/1.15 'Quicksand',sans-serif;
    text-shadow:none;
  }
}
@media (min-width:901px), (min-width:621px) and (min-height:621px), (min-width:621px) and (pointer:fine), (min-width:621px) and (orientation:portrait){
  body.desktop-command-ready.desktop-command-ready .site-header .cityswitch__menu{
    left:50%;
    right:auto;
    transform:translateX(calc(-50% - 6px));
  }
}
@media (min-width:901px), (min-width:621px) and (min-height:621px), (min-width:621px) and (pointer:fine), (min-width:621px) and (orientation:portrait){
  body.desktop-command-ready.desktop-command-ready .desktop-command__actions .cityswitch__btn{
    border-color:rgba(255,255,255,.5);
    background:rgba(130,196,230,.42);
    box-shadow:0 8px 20px rgba(0,62,108,.18),inset 0 1px 0 rgba(255,255,255,.34);
    backdrop-filter:blur(16px) saturate(1.2);
    -webkit-backdrop-filter:blur(16px) saturate(1.2);
  }
}
@media (min-width:901px), (min-width:621px) and (min-height:621px), (min-width:621px) and (pointer:fine), (min-width:621px) and (orientation:portrait){
  body.desktop-command-ready.desktop-command-ready .desktop-command__actions .cityswitch__btn:hover,
  body.desktop-command-ready.desktop-command-ready .desktop-command__actions .cityswitch__btn:focus-visible{
    border-color:rgba(255,255,255,.68);
    background:rgba(142,205,237,.52);
    box-shadow:0 10px 24px rgba(0,62,108,.22),inset 0 1px 0 rgba(255,255,255,.42);
  }
}
@media (min-width:901px), (min-width:621px) and (min-height:621px), (min-width:621px) and (pointer:fine), (min-width:621px) and (orientation:portrait){
  body.desktop-command-ready.desktop-command-ready .desktop-command__actions .desktop-home__app-store{
    border-color:rgba(255,255,255,.5);
    background:rgba(130,196,230,.42);
    box-shadow:0 8px 20px rgba(0,62,108,.18),inset 0 1px 0 rgba(255,255,255,.34);
    backdrop-filter:blur(16px) saturate(1.2);
    -webkit-backdrop-filter:blur(16px) saturate(1.2);
  }
}
@media (min-width:901px), (min-width:621px) and (min-height:621px), (min-width:621px) and (pointer:fine), (min-width:621px) and (orientation:portrait){
  body.desktop-command-ready.desktop-command-ready .desktop-command__actions .desktop-home__app-store:hover,
  body.desktop-command-ready.desktop-command-ready .desktop-command__actions .desktop-home__app-store:focus-visible{
    border-color:rgba(255,255,255,.68);
    background:rgba(142,205,237,.52);
    box-shadow:0 10px 24px rgba(0,62,108,.22),inset 0 1px 0 rgba(255,255,255,.42);
  }
}

/* Keep the dedicated desktop homepage on its own surface when a desktop
   browser is resized below the wide layout breakpoint. Reflow the command bar
   and editorial rails; never hand the page off to the mobile homepage. */
@media (max-width:620px), (max-width:900px) and (orientation:landscape) and (max-height:620px) and (pointer:coarse){
  body.desktop-home .desktop-home__hero .h1-home,
  body.desktop-home .desktop-home__hero .page-hero__dates{
    display:none!important;
  }
}
@media (max-width:620px), (max-width:900px) and (orientation:landscape) and (max-height:620px) and (pointer:coarse){
  body.desktop-home[data-cat="art"] #home-essay .tag--essay{
    display:none!important;
  }
}
@media (max-width:620px), (max-width:900px) and (orientation:landscape) and (max-height:620px) and (pointer:coarse){
  body.desktop-home .site-header{
    margin-bottom:24px!important;
    height:auto!important;
    overflow:visible;
  }
}
@media (max-width:620px), (max-width:900px) and (orientation:landscape) and (max-height:620px) and (pointer:coarse){
  body.desktop-home .site-header__in{
    width:calc(100% - 32px)!important;
    max-width:none!important;
    min-height:0!important;
    height:auto!important;
    margin:0 auto!important;
    padding:12px 0 14px!important;
    display:grid!important;
    grid-template-columns:60px minmax(0,1fr)!important;
    grid-template-rows:auto auto auto auto!important;
    column-gap:14px!important;
    row-gap:10px!important;
    align-items:center!important;
  }
}
@media (max-width:620px), (max-width:900px) and (orientation:landscape) and (max-height:620px) and (pointer:coarse){
  body.desktop-home .site-header .logo{
    position:relative!important;
    grid-column:1!important;
    grid-row:1 / 5!important;
    align-self:start!important;
    width:60px!important;
    height:60px!important;
    margin:0!important;
  }
}
@media (max-width:620px), (max-width:900px) and (orientation:landscape) and (max-height:620px) and (pointer:coarse){
  body.desktop-home .desktop-command__intro{
    display:block!important;
    grid-column:2!important;
    grid-row:1!important;
    min-width:0!important;
    padding-left:11px!important;
    border-left:2px solid #f4c35f!important;
  }
}
@media (max-width:620px), (max-width:900px) and (orientation:landscape) and (max-height:620px) and (pointer:coarse){
  body.desktop-home .desktop-command__intro>strong{
    display:block!important;
    font-size:18px!important;
    line-height:1.08!important;
  }
}
@media (max-width:620px), (max-width:900px) and (orientation:landscape) and (max-height:620px) and (pointer:coarse){
  body.desktop-home .desktop-command__intro>span{
    display:block!important;
    margin-top:5px!important;
    font-size:9px!important;
  }
}
@media (max-width:620px), (max-width:900px) and (orientation:landscape) and (max-height:620px) and (pointer:coarse){
  body.desktop-home .site-header .topnav{
    position:relative!important;
    grid-column:2!important;
    grid-row:2!important;
    display:grid!important;
    grid-template-columns:repeat(6,minmax(0,1fr))!important;
    gap:0!important;
    width:100%!important;
    min-width:0!important;
    margin:0!important;
    top:0!important;
    padding:14px 0 0!important;
    border:0!important;
  }
}
@media (max-width:620px), (max-width:900px) and (orientation:landscape) and (max-height:620px) and (pointer:coarse){
  body.desktop-home .site-header .topnav::before{
    left:10%!important;
    right:10%!important;
    top:19px!important;
  }
}
@media (max-width:620px), (max-width:900px) and (orientation:landscape) and (max-height:620px) and (pointer:coarse){
  body.desktop-home .site-header .topnav .desktop-command__link{
    min-width:0!important;
    padding:17px 2px 3px!important;
    font-size:11px!important;
    line-height:1.1!important;
    white-space:nowrap!important;
  }
}
@media (max-width:620px), (max-width:900px) and (orientation:landscape) and (max-height:620px) and (pointer:coarse){
  body.desktop-home .site-header .topnav .desktop-command__link::before{
    width:9px!important;
    height:9px!important;
    margin-left:-4.5px!important;
  }
}
@media (max-width:620px), (max-width:900px) and (orientation:landscape) and (max-height:620px) and (pointer:coarse){
  body.desktop-home .desktop-guide-switch{
    grid-column:2!important;
    grid-row:3!important;
    display:grid!important;
    grid-template-columns:repeat(3,minmax(0,1fr))!important;
    gap:0!important;
    width:100%!important;
    height:27px!important;
    margin:0!important;
    padding:0!important;
  }
}
@media (max-width:620px), (max-width:900px) and (orientation:landscape) and (max-height:620px) and (pointer:coarse){
  body.desktop-home .desktop-guide-switch::before{
    left:16.666%!important;
    right:16.666%!important;
    top:5px!important;
  }
}
@media (max-width:620px), (max-width:900px) and (orientation:landscape) and (max-height:620px) and (pointer:coarse){
  body.desktop-home .desktop-guide-switch__opt{
    min-width:0!important;
    height:auto!important;
    padding:15px 2px 1px!important;
    font-size:11px!important;
    line-height:1.1!important;
    white-space:nowrap!important;
  }
}
@media (max-width:620px), (max-width:900px) and (orientation:landscape) and (max-height:620px) and (pointer:coarse){
  body.desktop-home .desktop-guide-switch__opt::before{
    width:9px!important;
    height:9px!important;
    margin-left:-4.5px!important;
  }
}
@media (max-width:620px), (max-width:900px) and (orientation:landscape) and (max-height:620px) and (pointer:coarse){
  body.desktop-home .desktop-command__actions{
    grid-column:2!important;
    grid-row:4!important;
    display:flex!important;
    align-items:center!important;
    justify-content:flex-start!important;
    flex-wrap:wrap!important;
    gap:7px!important;
    min-width:0!important;
  }
}
@media (max-width:620px), (max-width:900px) and (orientation:landscape) and (max-height:620px) and (pointer:coarse){
  body.desktop-home .desktop-command__actions .cityswitch{
    position:relative!important;
    top:auto!important;
    right:auto!important;
    bottom:auto!important;
    left:auto!important;
    display:block!important;
    width:auto!important;
    flex:0 1 auto!important;
  }
}
@media (max-width:620px), (max-width:900px) and (orientation:landscape) and (max-height:620px) and (pointer:coarse){
  body.desktop-home .desktop-command__actions .cityswitch__btn,
  body.desktop-home .desktop-command__actions .desktop-home__app-store{
    min-width:0!important;
    min-height:36px!important;
    height:36px!important;
  }
}
@media (max-width:620px), (max-width:900px) and (orientation:landscape) and (max-height:620px) and (pointer:coarse){
  body.desktop-home .desktop-command__actions .cityswitch__btn{
    max-width:100%!important;
    padding:6px 9px!important;
    font:700 11px/1.05 'Quicksand',sans-serif!important;
    overflow:visible!important;
  }
}
@media (max-width:620px), (max-width:900px) and (orientation:landscape) and (max-height:620px) and (pointer:coarse){
  body.desktop-home .desktop-command__actions .cityswitch__copy{
    display:flex!important;
    flex:1 1 auto!important;
    min-width:0!important;
    flex-direction:column!important;
    align-items:flex-start!important;
    gap:2px!important;
  }
}
@media (max-width:620px), (max-width:900px) and (orientation:landscape) and (max-height:620px) and (pointer:coarse){
  body.desktop-home .desktop-command__actions .cityswitch__copy small{
    color:rgba(255,255,255,.56)!important;
    font:700 7px/1 'Quicksand',sans-serif!important;
    letter-spacing:.08em!important;
    text-transform:uppercase!important;
  }
}
@media (max-width:620px), (max-width:900px) and (orientation:landscape) and (max-height:620px) and (pointer:coarse){
  body.desktop-home .desktop-command__actions .cityswitch__copy .cityswitch__label{
    color:#fff!important;
    font:700 11px/1.05 'Quicksand',sans-serif!important;
  }
}
@media (max-width:620px), (max-width:900px) and (orientation:landscape) and (max-height:620px) and (pointer:coarse){
  body.desktop-home .desktop-command__actions .cityswitch__caret{
    flex:0 0 auto!important;
    color:rgba(255,255,255,.66)!important;
    font-size:12px!important;
  }
}
@media (max-width:620px), (max-width:900px) and (orientation:landscape) and (max-height:620px) and (pointer:coarse){
  body.desktop-home .desktop-command__actions .desktop-home__app-store{
    display:inline-flex!important;
    min-width:112px!important;
    padding:5px 8px!important;
  }
}
@media (max-width:620px), (max-width:900px) and (orientation:landscape) and (max-height:620px) and (pointer:coarse){
  body.desktop-home .desktop-command__actions .cityswitch__menu{
    left:0!important;
    right:auto!important;
    transform:none!important;
    width:min(560px,calc(100vw - 32px))!important;
    min-width:0!important;
    grid-template-columns:repeat(3,minmax(0,1fr))!important;
  }
}
@media (max-width:620px), (max-width:900px) and (orientation:landscape) and (max-height:620px) and (pointer:coarse){
  body.desktop-home .desktop-home__wrap{
    width:calc(100% - 32px)!important;
    max-width:none!important;
    margin-left:auto!important;
    margin-right:auto!important;
    padding-left:0!important;
    padding-right:0!important;
  }
}
@media (max-width:620px), (max-width:900px) and (orientation:landscape) and (max-height:620px) and (pointer:coarse){
  body.desktop-home .desktop-home__mast{
    margin-top:16px!important;
  }
}
@media (max-width:620px), (max-width:900px) and (orientation:landscape) and (max-height:620px) and (pointer:coarse){
  body.desktop-home .desktop-home__mast .catswitch{
    display:none!important;
  }
}
@media (max-width:620px), (max-width:900px) and (orientation:landscape) and (max-height:620px) and (pointer:coarse){
  body.desktop-home .desktop-guide-switch{
    border:0!important;
    border-radius:0!important;
    background:transparent!important;
    box-shadow:none!important;
    backdrop-filter:none!important;
    -webkit-backdrop-filter:none!important;
  }
}
@media (max-width:620px), (max-width:900px) and (orientation:landscape) and (max-height:620px) and (pointer:coarse){
  body.desktop-home .desktop-guide-switch__opt{
    border:0!important;
    border-radius:0!important;
    background:transparent!important;
    box-shadow:none!important;
    backdrop-filter:none!important;
    -webkit-backdrop-filter:none!important;
  }
}
@media (max-width:620px), (max-width:900px) and (orientation:landscape) and (max-height:620px) and (pointer:coarse){
  body.desktop-home .home-editorial-top{
    display:grid!important;
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
    gap:24px 18px!important;
    margin-top:24px!important;
  }
}
@media (max-width:620px), (max-width:900px) and (orientation:landscape) and (max-height:620px) and (pointer:coarse){
  body.desktop-home[data-cat="art"] .home-editorial-top{margin-top:24px!important}
}
@media (max-width:620px), (max-width:900px) and (orientation:landscape) and (max-height:620px) and (pointer:coarse){
  body.desktop-home .home-editorial-top > #home-essay,
  body.desktop-home .home-editorial-top > #home-weekcols,
  body.desktop-home .home-editorial-top > .home-upcoming-heading{
    grid-column:1 / -1!important;
    min-width:0!important;
  }
}
@media (max-width:620px), (max-width:900px) and (orientation:landscape) and (max-height:620px) and (pointer:coarse){
  body.desktop-home #home-weekcols .week-col__cards,
  body.desktop-home #home-featured .grid,
  body.desktop-home #home-solo .grid,
  body.desktop-home #home-onview .grid{
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
    gap:16px!important;
  }
}
@media (max-width:620px), (max-width:900px) and (orientation:landscape) and (max-height:620px) and (pointer:coarse){
  body.desktop-home #home-essay .essay-feature__grid{
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
    gap:16px!important;
  }
}
@media (max-width:620px), (max-width:900px) and (orientation:landscape) and (max-height:620px) and (pointer:coarse){
  body.desktop-home #home-essay .essay-feature__story--lead{
    grid-column:1 / -1!important;
  }
}

@media (max-width:620px), (max-width:760px) and (orientation:landscape) and (max-height:620px) and (pointer:coarse){
  body.desktop-home[data-cat="art"] #home-essay .essay-feature__story--lead{
    grid-template-columns:1fr!important;
  }
}
@media (max-width:620px), (max-width:760px) and (orientation:landscape) and (max-height:620px) and (pointer:coarse){
  body.desktop-home[data-cat="art"] #home-essay .essay-feature__story--lead .essay-tile{
    min-height:0!important;
    height:auto!important;
  }
}

@media (max-width:620px){
  body.desktop-home .site-header__in{
    grid-template-columns:52px minmax(0,1fr)!important;
    column-gap:11px!important;
    row-gap:9px!important;
  }
  body.desktop-home .site-header .logo{
    width:52px!important;
    height:52px!important;
  }
  body.desktop-home .desktop-command__intro>strong{font-size:16px!important}
  body.desktop-home .desktop-command__intro>span{font-size:8px!important}
  body.desktop-home .site-header .topnav{
    grid-template-columns:repeat(3,minmax(0,1fr))!important;
    row-gap:5px!important;
  }
  body.desktop-home .site-header .topnav .desktop-command__link{
    padding-top:16px!important;
    font-size:10px!important;
  }
  body.desktop-home .site-header .topnav .desktop-command__link:nth-child(4),
  body.desktop-home .site-header .topnav .desktop-command__link:nth-child(5){
    grid-row:2;
  }
  body.desktop-home .site-header .topnav::before{top:19px!important}
  body.desktop-home .desktop-guide-switch__opt{font-size:10px!important}
  body.desktop-home .desktop-command__actions .cityswitch__btn{max-width:calc(100% - 6px)!important}
  body.desktop-home .desktop-command__actions .desktop-home__app-store{min-width:106px!important}
  body.desktop-home .desktop-command__actions .desktop-home__app-store-copy strong{font-size:10px!important}
  body.desktop-home .desktop-command__actions .desktop-home__app-store-copy small{font-size:6px!important}
  body.desktop-home .desktop-command__actions .cityswitch__menu{grid-template-columns:repeat(2,minmax(0,1fr))!important}
  body.desktop-home .home-editorial-top{display:block!important}
  body.desktop-home .home-editorial-top > #home-essay,
  body.desktop-home .home-editorial-top > #home-weekcols,
  body.desktop-home .home-editorial-top > .home-upcoming-heading{margin-top:24px!important}
  body.desktop-home #home-weekcols .week-col__cards,
  body.desktop-home #home-featured .grid,
  body.desktop-home #home-solo .grid,
  body.desktop-home #home-onview .grid,
  body.desktop-home #home-essay .essay-feature__grid{
    grid-template-columns:1fr!important;
  }
  body.desktop-home #home-weekcols .week-col__cards{
    display:grid!important;
    width:100%!important;
    min-width:0!important;
    margin:0!important;
    padding:0!important;
    overflow:visible!important;
  }
  body.desktop-home #home-weekcols .week-col__cards > .card{
    width:auto!important;
    min-width:0!important;
    max-width:none!important;
  }
  body.desktop-home #home-featured .grid,
  body.desktop-home #home-solo .grid,
  body.desktop-home #home-onview .grid,
  body.desktop-home #home-areas .grid{
    margin:0!important;
    padding:0!important;
  }
}

/* Responsive desktop identity lock. Narrow desktop windows may rearrange the
   grid, but they retain the full desktop colors, typography, glass controls,
   card silhouettes, heading treatments, and footer styling. */
@media (max-width:620px), (max-width:900px) and (orientation:landscape) and (max-height:620px) and (pointer:coarse){
  body.desktop-home #home-homestats[hidden]{
    display:none!important;
  }
}
@media (max-width:620px), (max-width:900px) and (orientation:landscape) and (max-height:620px) and (pointer:coarse){
  body.desktop-home.desktop-command-ready .site-header .topnav{
    background:transparent!important;
    border:0!important;
    border-radius:0!important;
    box-shadow:none!important;
  }
}
@media (max-width:620px), (max-width:900px) and (orientation:landscape) and (max-height:620px) and (pointer:coarse){
  body.desktop-home.desktop-command-ready .site-header .topnav::before{
    background:rgba(255,255,255,.31)!important;
  }
}
@media (max-width:620px), (max-width:900px) and (orientation:landscape) and (max-height:620px) and (pointer:coarse){
  body.desktop-home.desktop-command-ready .site-header .topnav .desktop-command__link{
    color:rgba(255,255,255,.66)!important;
    background:transparent!important;
    border:0!important;
    border-radius:0!important;
    box-shadow:none!important;
    font:700 13px/1.15 'Quicksand',sans-serif!important;
    text-shadow:none!important;
  }
}
@media (max-width:620px), (max-width:900px) and (orientation:landscape) and (max-height:620px) and (pointer:coarse){
  body.desktop-home.desktop-command-ready .site-header .topnav .desktop-command__link:hover,
  body.desktop-home.desktop-command-ready .site-header .topnav .desktop-command__link:focus-visible,
  body.desktop-home.desktop-command-ready .site-header .topnav .desktop-command__link[aria-current="page"]{
    color:#fff!important;
    background:transparent!important;
  }
}
@media (max-width:620px), (max-width:900px) and (orientation:landscape) and (max-height:620px) and (pointer:coarse){
  body.desktop-home.desktop-command-ready .site-header .topnav .desktop-command__link::before,
  body.desktop-home.desktop-command-ready .desktop-guide-switch__opt::before{
    border:2px solid rgba(255,255,255,.67)!important;
    border-radius:50%!important;
    background:#07588f!important;
    box-sizing:border-box!important;
  }
}
@media (max-width:620px), (max-width:900px) and (orientation:landscape) and (max-height:620px) and (pointer:coarse){
  body.desktop-home.desktop-command-ready .site-header .topnav .desktop-command__link[aria-current="page"]::before,
  body.desktop-home.desktop-command-ready .desktop-guide-switch__opt.is-on::before{
    border-color:#f4c35f!important;
    background:#f4c35f!important;
    box-shadow:0 0 13px rgba(244,195,95,.82)!important;
  }
}
@media (max-width:620px), (max-width:900px) and (orientation:landscape) and (max-height:620px) and (pointer:coarse){
  body.desktop-home.desktop-command-ready .desktop-guide-switch__opt{
    color:rgba(255,255,255,.66)!important;
    font:700 13px/1.15 'Quicksand',sans-serif!important;
    text-shadow:none!important;
  }
}
@media (max-width:620px), (max-width:900px) and (orientation:landscape) and (max-height:620px) and (pointer:coarse){
  body.desktop-home.desktop-command-ready .desktop-guide-switch__opt:hover,
  body.desktop-home.desktop-command-ready .desktop-guide-switch__opt:focus-visible,
  body.desktop-home.desktop-command-ready .desktop-guide-switch__opt.is-on{color:#fff!important}
}
@media (max-width:620px), (max-width:900px) and (orientation:landscape) and (max-height:620px) and (pointer:coarse){

  body.desktop-home.desktop-command-ready .desktop-command__actions .cityswitch__btn{
    min-width:185px!important;
    min-height:40px!important;
    height:40px!important;
    gap:9px!important;
    padding:7px 11px!important;
    border:1px solid rgba(255,255,255,.5)!important;
    border-radius:12px!important;
    color:#fff!important;
    background:rgba(130,196,230,.42)!important;
    box-shadow:0 8px 20px rgba(0,62,108,.18),inset 0 1px 0 rgba(255,255,255,.34)!important;
    backdrop-filter:blur(16px) saturate(1.2)!important;
    -webkit-backdrop-filter:blur(16px) saturate(1.2)!important;
  }
}
@media (max-width:620px), (max-width:900px) and (orientation:landscape) and (max-height:620px) and (pointer:coarse){
  body.desktop-home.desktop-command-ready .desktop-command__actions .desktop-home__app-store{
    display:inline-flex!important;
    min-width:124px!important;
    min-height:40px!important;
    height:40px!important;
    gap:7px!important;
    padding:6px 10px!important;
    border:1px solid rgba(255,255,255,.5)!important;
    border-radius:11px!important;
    color:#fff!important;
    background:rgba(130,196,230,.42)!important;
    box-shadow:0 8px 20px rgba(0,62,108,.18),inset 0 1px 0 rgba(255,255,255,.34)!important;
    backdrop-filter:blur(16px) saturate(1.2)!important;
    -webkit-backdrop-filter:blur(16px) saturate(1.2)!important;
  }
}
@media (max-width:620px), (max-width:900px) and (orientation:landscape) and (max-height:620px) and (pointer:coarse){
  body.desktop-home.desktop-command-ready .desktop-command__actions .cityswitch__btn:hover,
  body.desktop-home.desktop-command-ready .desktop-command__actions .cityswitch__btn:focus-visible,
  body.desktop-home.desktop-command-ready .desktop-command__actions .desktop-home__app-store:hover,
  body.desktop-home.desktop-command-ready .desktop-command__actions .desktop-home__app-store:focus-visible{
    border-color:rgba(255,255,255,.68)!important;
    background:rgba(142,205,237,.52)!important;
    box-shadow:0 10px 24px rgba(0,62,108,.22),inset 0 1px 0 rgba(255,255,255,.42)!important;
  }
}
@media (max-width:620px), (max-width:900px) and (orientation:landscape) and (max-height:620px) and (pointer:coarse){
  body.desktop-home.desktop-command-ready .desktop-command__actions .cityswitch__copy small{
    font:700 8px/1 'Quicksand',sans-serif!important;
  }
}
@media (max-width:620px), (max-width:900px) and (orientation:landscape) and (max-height:620px) and (pointer:coarse){
  body.desktop-home.desktop-command-ready .desktop-command__actions .cityswitch__copy .cityswitch__label{
    font:700 11px/1.05 'Quicksand',sans-serif!important;
  }
}
@media (max-width:620px), (max-width:900px) and (orientation:landscape) and (max-height:620px) and (pointer:coarse){
  body.desktop-home.desktop-command-ready .desktop-command__actions .desktop-home__app-store-copy small{
    font:600 7px/1 'DM Sans',sans-serif!important;
  }
}
@media (max-width:620px), (max-width:900px) and (orientation:landscape) and (max-height:620px) and (pointer:coarse){
  body.desktop-home.desktop-command-ready .desktop-command__actions .desktop-home__app-store-copy strong{
    font:700 11px/1 'DM Sans',sans-serif!important;
  }
}
@media (max-width:620px), (max-width:900px) and (orientation:landscape) and (max-height:620px) and (pointer:coarse){

  body.desktop-home[data-cat="art"] #home-essay .essay-feature{
    margin-top:0!important;
    padding:20px!important;
    border:1px solid rgba(255,255,255,.68)!important;
    border-radius:20px!important;
    color:#fff!important;
    background:linear-gradient(180deg,rgba(227,246,255,.92) 0%,rgba(198,230,244,.78) 48%,rgba(169,215,237,.66) 100%)!important;
    box-shadow:0 14px 30px rgba(7,42,80,.18),0 3px 9px rgba(7,42,80,.09),inset 0 1px 0 rgba(255,255,255,.96),inset 0 -1px 0 rgba(255,255,255,.28)!important;
  }
}
@media (max-width:620px), (max-width:900px) and (orientation:landscape) and (max-height:620px) and (pointer:coarse){
  body.desktop-home[data-cat="art"] #home-essay .essay-feature__head{
    position:relative!important;
    display:block!important;
    margin:0 0 20px!important;
    padding:0!important;
    color:#fff!important;
  }
}
@media (max-width:620px), (max-width:900px) and (orientation:landscape) and (max-height:620px) and (pointer:coarse){
  body.desktop-home[data-cat="art"] #home-essay .essay-feature__kicker,
  body.desktop-home[data-cat="art"] #home-essay .essay-feature__read{display:none!important}
}
@media (max-width:620px), (max-width:900px) and (orientation:landscape) and (max-height:620px) and (pointer:coarse){
  body.desktop-home[data-cat="art"] #home-essay .essay-feature__heading{
    display:block!important;
    padding:4px 92px 0!important;
    color:#fff!important;
    text-align:center!important;
  }
}
@media (max-width:620px), (max-width:900px) and (orientation:landscape) and (max-height:620px) and (pointer:coarse){
  body.desktop-home[data-cat="art"] #home-essay .essay-feature__heading h2{
    display:table!important;
    margin:0 auto!important;
    color:#0876b8!important;
    font:800 36px/1.02 'DM Sans',sans-serif!important;
    letter-spacing:-.035em!important;
  }
}
@media (max-width:620px), (max-width:900px) and (orientation:landscape) and (max-height:620px) and (pointer:coarse){
  body.desktop-home[data-cat="art"] #home-essay .essay-feature__heading p{
    display:block!important;
    margin:7px auto 0!important;
    color:#687987!important;
    font:italic 500 15px/1.4 Georgia,'Times New Roman',serif!important;
  }
}
@media (max-width:620px), (max-width:900px) and (orientation:landscape) and (max-height:620px) and (pointer:coarse){
  body.desktop-home[data-cat="art"] #home-essay .essay-feature__all{
    position:absolute!important;
    top:50%!important;
    right:0!important;
    display:flex!important;
    transform:translateY(-50%)!important;
    color:#005a9a!important;
    font:700 11px/1 'Quicksand',sans-serif!important;
  }
}
@media (max-width:620px), (max-width:900px) and (orientation:landscape) and (max-height:620px) and (pointer:coarse){
  body.desktop-home[data-cat="art"] #home-essay .essay-feature__story--lead{
    display:grid!important;
    grid-template-columns:minmax(0,1.27fr) minmax(0,1fr)!important;
    gap:22px!important;
    align-items:stretch!important;
  }
}
@media (max-width:620px), (max-width:900px) and (orientation:landscape) and (max-height:620px) and (pointer:coarse){
  body.desktop-home[data-cat="art"] #home-essay .essay-feature__story--lead .essay-tile{
    min-height:360px!important;
    height:100%!important;
    aspect-ratio:4/3!important;
    border-radius:14px!important;
  }
}
@media (max-width:620px), (max-width:900px) and (orientation:landscape) and (max-height:620px) and (pointer:coarse){
  body.desktop-home[data-cat="art"] #home-essay .essay-feature__story--lead .essay-tile__copy strong,
  body.desktop-home[data-cat="art"] #home-essay .essay-feature__story--lead .essay-tile__by,
  body.desktop-home[data-cat="art"] #home-essay .essay-feature__story--lead .essay-tile__show,
  body.desktop-home[data-cat="art"] #home-essay .essay-feature__story--lead > .essay-feature__meta,
  body.desktop-home[data-cat="art"] #home-essay .essay-feature__story--lead > .essay-feature__summary{display:none!important}
}
@media (max-width:620px), (max-width:900px) and (orientation:landscape) and (max-height:620px) and (pointer:coarse){
  body.desktop-home[data-cat="art"] #home-essay .essay-feature__lead-copy{
    display:flex!important;
    flex-direction:column!important;
    justify-content:center!important;
    align-items:flex-start!important;
    min-width:0!important;
    padding:20px 8px 20px 2px!important;
  }
}
@media (max-width:620px), (max-width:900px) and (orientation:landscape) and (max-height:620px) and (pointer:coarse){
  body.desktop-home[data-cat="art"] #home-essay .essay-feature__lead-kicker{
    color:#0877c0!important;
    font:800 11px/1 'Quicksand',sans-serif!important;
    letter-spacing:.13em!important;
    text-transform:uppercase!important;
  }
}
@media (max-width:620px), (max-width:900px) and (orientation:landscape) and (max-height:620px) and (pointer:coarse){
  body.desktop-home[data-cat="art"] #home-essay .essay-feature__lead-copy h3{
    margin:12px 0 11px!important;
    color:#17384d!important;
    font:700 clamp(30px,4vw,46px)/.99 'DM Sans',sans-serif!important;
    letter-spacing:-.045em!important;
  }
}
@media (max-width:620px), (max-width:900px) and (orientation:landscape) and (max-height:620px) and (pointer:coarse){
  body.desktop-home[data-cat="art"] #home-essay .essay-feature__lead-by{
    color:#0877c0!important;
    font:800 14px/1.25 'Quicksand',sans-serif!important;
  }
}
@media (max-width:620px), (max-width:900px) and (orientation:landscape) and (max-height:620px) and (pointer:coarse){
  body.desktop-home[data-cat="art"] #home-essay .essay-feature__lead-show{
    margin-top:5px!important;
    color:#647887!important;
    font:600 13px/1.35 'Quicksand',sans-serif!important;
  }
}
@media (max-width:620px), (max-width:900px) and (orientation:landscape) and (max-height:620px) and (pointer:coarse){
  body.desktop-home[data-cat="art"] #home-essay .essay-feature__lead-copy p{
    margin:20px 0 0!important;
    color:#0e1720!important;
    font:500 19px/1.32 'DM Sans',sans-serif!important;
  }
}
@media (max-width:620px), (max-width:900px) and (orientation:landscape) and (max-height:620px) and (pointer:coarse){
  body.desktop-home[data-cat="art"] #home-essay .essay-feature__lead-copy a{
    margin-top:20px!important;
    color:#0877c0!important;
    font:800 12px/1.2 'Quicksand',sans-serif!important;
  }
}
@media (max-width:620px), (max-width:900px) and (orientation:landscape) and (max-height:620px) and (pointer:coarse){
  body.desktop-home[data-cat="art"] #home-essay .essay-feature__story--supporting .essay-tile{
    border-radius:14px!important;
    aspect-ratio:4/3!important;
  }
}
@media (max-width:620px), (max-width:900px) and (orientation:landscape) and (max-height:620px) and (pointer:coarse){

  body.desktop-home.desktop-editorial-discovery .week-col__head,
  body.desktop-home.desktop-editorial-discovery #home-featured .shead,
  body.desktop-home.desktop-editorial-discovery #home-solo .shead,
  body.desktop-home.desktop-editorial-discovery #home-onview .shead,
  body.desktop-home.desktop-editorial-discovery .home-upcoming-heading{
    border-bottom:1px solid rgba(8,119,192,.42)!important;
    box-shadow:0 1px 0 rgba(255,255,255,.68)!important;
  }
}
@media (max-width:620px), (max-width:900px) and (orientation:landscape) and (max-height:620px) and (pointer:coarse){
  body.desktop-home.desktop-editorial-discovery .desktop-editorial-today .week-col__head,
  body.desktop-home.desktop-editorial-discovery .desktop-editorial-today .shead{
    display:flex!important;
    align-items:center!important;
    justify-content:flex-start!important;
    min-height:52px!important;
    margin:0 0 18px!important;
    padding:0 0 14px!important;
  }
}
@media (max-width:620px), (max-width:900px) and (orientation:landscape) and (max-height:620px) and (pointer:coarse){
  body.desktop-home.desktop-editorial-discovery .desktop-editorial-today .week-col__head h2,
  body.desktop-home.desktop-editorial-discovery .desktop-editorial-today .shead h2{
    display:table!important;
    margin:0!important;
    padding:0!important;
    border-radius:0!important;
    color:#edf9ff!important;
    background:transparent!important;
    font:800 clamp(30px,5vw,40px)/1.02 'DM Sans',sans-serif!important;
    letter-spacing:-.04em!important;
    text-transform:none!important;
    text-shadow:0 1px 0 rgba(255,255,255,.92),0 2px 0 rgba(9,72,112,.28),0 5px 12px rgba(4,35,62,.32)!important;
  }
}
@media (max-width:620px), (max-width:900px) and (orientation:landscape) and (max-height:620px) and (pointer:coarse){
  body.desktop-home.desktop-editorial-discovery .desktop-home__stat-line--title{
    color:rgba(255,255,255,.78)!important;
    font:700 11px/1 'DM Sans',sans-serif!important;
    text-shadow:0 1px 5px rgba(4,35,62,.2)!important;
  }
}
@media (max-width:620px), (max-width:900px) and (orientation:landscape) and (max-height:620px) and (pointer:coarse){
  body.desktop-home.desktop-editorial-discovery .desktop-editorial-today .card,
  body.desktop-home.desktop-editorial-discovery .desktop-editorial-today .card--mini,
  body.desktop-home.desktop-editorial-discovery .desktop-home-upcoming__cards .card{
    position:relative!important;
    min-width:0!important;
    min-height:178px!important;
    overflow:hidden!important;
    border-radius:18px!important;
    background:linear-gradient(150deg,#0070c0,#03426f)!important;
    box-shadow:0 12px 28px rgba(7,42,80,.22),0 2px 7px rgba(7,42,80,.13)!important;
    filter:none!important;
  }
}
@media (max-width:620px), (max-width:900px) and (orientation:landscape) and (max-height:620px) and (pointer:coarse){
  body.desktop-home.desktop-editorial-discovery .desktop-editorial-today .mini__media,
  body.desktop-home.desktop-editorial-discovery .desktop-editorial-today .card__panel,
  body.desktop-home.desktop-editorial-discovery .desktop-home-upcoming__cards .card__panel{
    position:absolute!important;
    inset:0!important;
    width:100%!important;
    height:100%!important;
    border-radius:0!important;
  }
}
@media (max-width:620px), (max-width:900px) and (orientation:landscape) and (max-height:620px) and (pointer:coarse){
  body.desktop-home.desktop-editorial-discovery .desktop-editorial-today .mini__media::after,
  body.desktop-home.desktop-editorial-discovery .desktop-editorial-today .card__panel::after,
  body.desktop-home.desktop-editorial-discovery .desktop-home-upcoming__cards .card__panel::after{
    content:""!important;
    position:absolute!important;
    inset:0!important;
    z-index:1!important;
    background:linear-gradient(180deg,rgba(6,21,34,.04) 22%,rgba(6,21,34,.22) 51%,rgba(3,18,32,.9) 100%)!important;
  }
}
@media (max-width:620px), (max-width:900px) and (orientation:landscape) and (max-height:620px) and (pointer:coarse){
  body.desktop-home.desktop-editorial-discovery .desktop-editorial-today .mini__txt,
  body.desktop-home.desktop-editorial-discovery .desktop-editorial-today .card__cap,
  body.desktop-home.desktop-editorial-discovery .desktop-home-upcoming__cards .card__cap{
    position:absolute!important;
    right:0!important;
    bottom:0!important;
    left:0!important;
    z-index:2!important;
    padding:46px 15px 15px!important;
    background:linear-gradient(180deg,transparent,rgba(3,18,32,.18))!important;
  }
}
@media (max-width:620px), (max-width:900px) and (orientation:landscape) and (max-height:620px) and (pointer:coarse){
  body.desktop-home.desktop-editorial-discovery .desktop-editorial-today .card__title,
  body.desktop-home.desktop-editorial-discovery .desktop-home-upcoming__cards .card__title{
    color:#fff!important;
    font-size:17px!important;
    line-height:1.16!important;
    text-shadow:0 2px 8px rgba(0,0,0,.52)!important;
  }
}
@media (max-width:620px), (max-width:900px) and (orientation:landscape) and (max-height:620px) and (pointer:coarse){
  body.desktop-home.desktop-editorial-discovery .desktop-editorial-today .card__date,
  body.desktop-home.desktop-editorial-discovery .desktop-editorial-today .card__venue,
  body.desktop-home.desktop-editorial-discovery .desktop-editorial-today .card__addr,
  body.desktop-home.desktop-editorial-discovery .desktop-editorial-today .card__hours,
  body.desktop-home.desktop-editorial-discovery .desktop-home-upcoming__cards .card__date,
  body.desktop-home.desktop-editorial-discovery .desktop-home-upcoming__cards .card__venue,
  body.desktop-home.desktop-editorial-discovery .desktop-home-upcoming__cards .card__addr{
    color:rgba(255,255,255,.86)!important;
    text-shadow:0 1px 5px rgba(0,0,0,.55)!important;
  }
}
@media (max-width:620px), (max-width:900px) and (orientation:landscape) and (max-height:620px) and (pointer:coarse){
  body.desktop-home.desktop-editorial-discovery .desktop-today__lead{min-height:372px!important}
}
@media (max-width:620px), (max-width:900px) and (orientation:landscape) and (max-height:620px) and (pointer:coarse){
  body.desktop-home.desktop-editorial-discovery .desktop-today__lead .card__title{
    font-size:clamp(25px,4vw,34px)!important;
    line-height:1.08!important;
  }
}
@media (max-width:620px), (max-width:900px) and (orientation:landscape) and (max-height:620px) and (pointer:coarse){
  body.desktop-home.desktop-editorial-discovery .desktop-today__lead .mini__txt,
  body.desktop-home.desktop-editorial-discovery .desktop-today__lead .card__cap{padding:76px 23px 22px!important}
}
@media (max-width:620px), (max-width:900px) and (orientation:landscape) and (max-height:620px) and (pointer:coarse){

  body.desktop-home.desktop-editorial-discovery .desktop-home__curated{
    display:grid!important;
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
    gap:20px!important;
  }
}
@media (max-width:620px), (max-width:900px) and (orientation:landscape) and (max-height:620px) and (pointer:coarse){
  body.desktop-home.desktop-editorial-discovery .desktop-home__curated > div{
    min-width:0!important;
    margin:0!important;
    padding:18px!important;
    border:1px solid rgba(255,255,255,.18)!important;
    border-radius:20px!important;
    background:linear-gradient(155deg,rgba(6,77,132,.52),rgba(4,49,91,.38))!important;
    box-shadow:0 14px 30px rgba(7,42,80,.17),inset 0 1px 0 rgba(255,255,255,.15)!important;
    backdrop-filter:blur(12px) saturate(1.15)!important;
    -webkit-backdrop-filter:blur(12px) saturate(1.15)!important;
  }
}
@media (max-width:620px), (max-width:900px) and (orientation:landscape) and (max-height:620px) and (pointer:coarse){
  body.desktop-home.desktop-editorial-discovery .desktop-home__curated .shead{
    display:grid!important;
    grid-template-columns:1fr auto!important;
    grid-template-areas:"title link" "subtitle link"!important;
    align-items:center!important;
    margin:0 0 15px!important;
    padding:0 0 12px!important;
    border-bottom:1px solid rgba(255,255,255,.22)!important;
    box-shadow:none!important;
  }
}
@media (max-width:620px), (max-width:900px) and (orientation:landscape) and (max-height:620px) and (pointer:coarse){
  body.desktop-home.desktop-editorial-discovery #desktop-home-curated #home-featured .shead h2{
    grid-area:title!important;
    color:#fff1ad!important;
    font:800 30px/1.04 'DM Sans',sans-serif!important;
    letter-spacing:-.04em!important;
    text-shadow:0 1px 0 rgba(255,255,255,.46),0 2px 0 rgba(83,57,8,.34),0 6px 14px rgba(2,27,50,.5)!important;
  }
}
@media (max-width:620px), (max-width:900px) and (orientation:landscape) and (max-height:620px) and (pointer:coarse){
  body.desktop-home.desktop-editorial-discovery #desktop-home-curated #home-solo .shead h2{
    grid-area:title!important;
    color:#ffb3d8!important;
    font:800 30px/1.04 'DM Sans',sans-serif!important;
    letter-spacing:-.04em!important;
    text-shadow:0 1px 0 rgba(255,255,255,.4),0 2px 0 rgba(116,24,71,.36),0 6px 14px rgba(2,27,50,.5)!important;
  }
}
@media (max-width:620px), (max-width:900px) and (orientation:landscape) and (max-height:620px) and (pointer:coarse){
  body.desktop-home.desktop-editorial-discovery .desktop-home__curated .shead p{
    grid-area:subtitle!important;
    margin:3px 0 0!important;
    color:rgba(255,255,255,.7)!important;
    font-size:12px!important;
  }
}
@media (max-width:620px), (max-width:900px) and (orientation:landscape) and (max-height:620px) and (pointer:coarse){
  body.desktop-home.desktop-editorial-discovery .desktop-home__curated .desktop-home__viewall{
    grid-area:link!important;
    color:rgba(255,255,255,.88)!important;
  }
}
@media (max-width:620px), (max-width:900px) and (orientation:landscape) and (max-height:620px) and (pointer:coarse){
  body.desktop-home.desktop-editorial-discovery .desktop-home__curated .grid{
    display:grid!important;
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
    gap:13px!important;
    margin:0!important;
    padding:0!important;
  }
}
@media (max-width:620px), (max-width:900px) and (orientation:landscape) and (max-height:620px) and (pointer:coarse){
  body.desktop-home.desktop-editorial-discovery .desktop-home__curated .card{
    border-radius:14px!important;
    box-shadow:none!important;
  }
}
@media (max-width:620px), (max-width:900px) and (orientation:landscape) and (max-height:620px) and (pointer:coarse){

  body.desktop-home.desktop-editorial-discovery .home-upcoming-heading{
    display:flex!important;
    align-items:baseline!important;
    margin:2px 0 -18px!important;
    padding:0!important;
    border:0!important;
    box-shadow:none!important;
  }
}
@media (max-width:620px), (max-width:900px) and (orientation:landscape) and (max-height:620px) and (pointer:coarse){
  body.desktop-home.desktop-editorial-discovery .home-upcoming-heading strong{
    color:#fff!important;
    font-size:30px!important;
    letter-spacing:-.035em!important;
    text-shadow:0 2px 8px rgba(4,35,62,.24)!important;
  }
}
@media (max-width:620px), (max-width:900px) and (orientation:landscape) and (max-height:620px) and (pointer:coarse){
  body.desktop-home.desktop-editorial-discovery #home-onview .shead h2{
    margin:0!important;
    color:#fff!important;
    font:700 30px/33px Georgia,'Times New Roman',serif!important;
    letter-spacing:-1.05px!important;
    text-shadow:0 2px 8px rgba(4,35,62,.24)!important;
  }
}
@media (max-width:620px), (max-width:900px) and (orientation:landscape) and (max-height:620px) and (pointer:coarse){
  body.desktop-home #home-featured .card,
  body.desktop-home #home-solo .card,
  body.desktop-home #home-onview .card{
    border-radius:14px!important;
    box-shadow:none!important;
  }
}
@media (max-width:620px), (max-width:900px) and (orientation:landscape) and (max-height:620px) and (pointer:coarse){
  body.desktop-home .homestats{
    flex-flow:row wrap!important;
    align-items:center!important;
    justify-content:flex-start!important;
    gap:4px 14px!important;
    color:rgba(255,255,255,.88)!important;
    font:700 12px/1.25 'Quicksand',sans-serif!important;
    text-align:left!important;
  }
}
@media (max-width:620px), (max-width:900px) and (orientation:landscape) and (max-height:620px) and (pointer:coarse){
  body.desktop-home .site-footer{
    margin-top:76px!important;
    padding:26px 0 30px!important;
    border-top:1px solid rgba(255,255,255,.22)!important;
    color:#fff!important;
    background:transparent!important;
    box-shadow:none!important;
  }
}

@media (max-width:620px), (max-width:760px) and (orientation:landscape) and (max-height:620px) and (pointer:coarse){
  body.desktop-home[data-cat="art"] #home-essay .essay-feature__heading{
    padding-right:0!important;
    padding-left:0!important;
  }
}
@media (max-width:620px), (max-width:760px) and (orientation:landscape) and (max-height:620px) and (pointer:coarse){
  body.desktop-home[data-cat="art"] #home-essay .essay-feature__heading h2{
    font-size:clamp(30px,8vw,36px)!important;
  }
}
@media (max-width:620px), (max-width:760px) and (orientation:landscape) and (max-height:620px) and (pointer:coarse){
  body.desktop-home[data-cat="art"] #home-essay .essay-feature__all{
    position:static!important;
    justify-content:center!important;
    margin-top:11px!important;
    transform:none!important;
  }
}
@media (max-width:620px), (max-width:760px) and (orientation:landscape) and (max-height:620px) and (pointer:coarse){
  body.desktop-home[data-cat="art"] #home-essay .essay-feature__story--lead{
    grid-template-columns:1fr!important;
  }
}
@media (max-width:620px), (max-width:760px) and (orientation:landscape) and (max-height:620px) and (pointer:coarse){
  body.desktop-home[data-cat="art"] #home-essay .essay-feature__story--lead .essay-tile{
    min-height:0!important;
    height:auto!important;
  }
}
@media (max-width:620px), (max-width:760px) and (orientation:landscape) and (max-height:620px) and (pointer:coarse){
  body.desktop-home.desktop-editorial-discovery .desktop-home__curated{
    grid-template-columns:1fr!important;
  }
}
@media (max-width:620px), (max-width:760px) and (orientation:landscape) and (max-height:620px) and (pointer:coarse){
  body.desktop-home.desktop-editorial-discovery .desktop-home__curated .grid{
    grid-template-columns:1fr!important;
  }
}

/* Keep the desktop command header visually identical while it reflows.
   At medium widths the original two-row geometry is preserved; only very
   narrow desktop windows stack those same unmodified components. */
@media (max-width:620px), (max-width:900px) and (orientation:landscape) and (max-height:620px) and (pointer:coarse){
  body.desktop-home.desktop-command-ready .site-header{
    height:auto!important;
    margin-bottom:24px!important;
    overflow:visible!important;
  }
}
@media (max-width:620px), (max-width:900px) and (orientation:landscape) and (max-height:620px) and (pointer:coarse){
  body.desktop-home.desktop-command-ready .site-header__in{
    width:calc(100% - 32px)!important;
    max-width:1200px!important;
    min-height:154px!important;
    height:auto!important;
    margin:0 auto!important;
    padding:18px 0 17px!important;
    grid-template-columns:76px 220px minmax(0,1fr)!important;
    grid-template-rows:74px 48px!important;
    column-gap:22px!important;
    row-gap:4px!important;
    align-items:center!important;
  }
}
@media (max-width:620px), (max-width:900px) and (orientation:landscape) and (max-height:620px) and (pointer:coarse){
  body.desktop-home.desktop-command-ready .site-header .logo{
    position:relative!important;
    grid-column:1!important;
    grid-row:1 / 3!important;
    align-self:start!important;
    width:72px!important;
    height:72px!important;
    margin:0!important;
    border-radius:0!important;
    top:0!important;
    right:auto!important;
    bottom:auto!important;
    left:0!important;
    justify-self:start!important;
  }
}
@media (max-width:620px), (max-width:900px) and (orientation:landscape) and (max-height:620px) and (pointer:coarse){
  body.desktop-home.desktop-command-ready .site-header .logo img{border-radius:15px!important}
}
@media (max-width:620px), (max-width:900px) and (orientation:landscape) and (max-height:620px) and (pointer:coarse){
  body.desktop-home.desktop-command-ready .desktop-command__intro{
    display:block!important;
    grid-column:2!important;
    grid-row:1!important;
    width:220px!important;
    min-width:0!important;
    padding-left:14px!important;
    border-left:2px solid #f4c35f!important;
  }
}
@media (max-width:620px), (max-width:900px) and (orientation:landscape) and (max-height:620px) and (pointer:coarse){
  body.desktop-home.desktop-command-ready .desktop-command__intro>strong{
    color:#fff!important;
    font:500 19px/1.08 'DM Sans',sans-serif!important;
    letter-spacing:-.025em!important;
  }
}
@media (max-width:620px), (max-width:900px) and (orientation:landscape) and (max-height:620px) and (pointer:coarse){
  body.desktop-home.desktop-command-ready .desktop-command__intro>span{
    margin-top:6px!important;
    color:rgba(255,255,255,.68)!important;
    font:600 10px/1.25 'Quicksand',sans-serif!important;
  }
}
@media (max-width:620px), (max-width:900px) and (orientation:landscape) and (max-height:620px) and (pointer:coarse){
  body.desktop-home.desktop-command-ready .site-header .topnav{
    position:relative!important;
    grid-column:3!important;
    grid-row:1!important;
    align-self:center!important;
    display:grid!important;
    grid-template-columns:repeat(6,minmax(0,1fr))!important;
    gap:0!important;
    width:100%!important;
    min-width:0!important;
    margin:0!important;
    padding:16px 0 0!important;
  }
}
@media (max-width:620px), (max-width:900px) and (orientation:landscape) and (max-height:620px) and (pointer:coarse){
  body.desktop-home.desktop-command-ready .site-header .topnav::before{
    content:""!important;
    display:block!important;
    left:10%!important;
    right:10%!important;
    top:21px!important;
    height:1px!important;
    background:rgba(255,255,255,.31)!important;
    position:absolute!important;
    z-index:0!important;
  }
}
@media (max-width:620px), (max-width:900px) and (orientation:landscape) and (max-height:620px) and (pointer:coarse){
  body.desktop-home.desktop-command-ready .site-header .topnav .desktop-command__link{
    grid-row:1!important;
    min-width:0!important;
    padding:20px 2px 5px!important;
    color:rgba(255,255,255,.66)!important;
    font:700 13px/1.15 'Quicksand',sans-serif!important;
    text-align:center!important;
    text-transform:none!important;
    white-space:nowrap!important;
  }
}
@media (max-width:620px), (max-width:900px) and (orientation:landscape) and (max-height:620px) and (pointer:coarse){
  body.desktop-home.desktop-command-ready .site-header .topnav .desktop-command__link::before{
    content:""!important;
    display:block!important;
    top:0!important;
    width:10px!important;
    height:10px!important;
    margin-left:-5px!important;
  }
}
@media (max-width:620px), (max-width:900px) and (orientation:landscape) and (max-height:620px) and (pointer:coarse){
  body.desktop-home.desktop-command-ready .desktop-guide-switch{
    position:relative!important;
    grid-column:2!important;
    grid-row:2!important;
    align-self:center!important;
    justify-self:stretch!important;
    display:grid!important;
    grid-template-columns:repeat(3,minmax(0,1fr))!important;
    gap:0!important;
    width:220px!important;
    height:32px!important;
    margin:0!important;
    padding:0!important;
  }
}
@media (max-width:620px), (max-width:900px) and (orientation:landscape) and (max-height:620px) and (pointer:coarse){
  body.desktop-home.desktop-command-ready .desktop-guide-switch::before{
    content:""!important;
    display:block!important;
    left:16.666%!important;
    right:16.666%!important;
    top:5px!important;
    height:1px!important;
    background:rgba(255,255,255,.31)!important;
    position:absolute!important;
    z-index:0!important;
  }
}
@media (max-width:620px), (max-width:900px) and (orientation:landscape) and (max-height:620px) and (pointer:coarse){
  body.desktop-home.desktop-command-ready .desktop-guide-switch__opt{
    position:relative!important;
    z-index:1!important;
    display:block!important;
    width:100%!important;
    min-width:0!important;
    height:auto!important;
    padding:17px 3px 2px!important;
    color:rgba(255,255,255,.66)!important;
    font:700 13px/1.15 'Quicksand',sans-serif!important;
    text-align:center!important;
    text-transform:none!important;
    white-space:nowrap!important;
  }
}
@media (max-width:620px), (max-width:900px) and (orientation:landscape) and (max-height:620px) and (pointer:coarse){
  body.desktop-home.desktop-command-ready .desktop-guide-switch__opt::before{
    content:""!important;
    display:block!important;
    top:0!important;
    width:10px!important;
    height:10px!important;
    margin-left:-5px!important;
  }
}
@media (max-width:620px), (max-width:900px) and (orientation:landscape) and (max-height:620px) and (pointer:coarse){
  body.desktop-home.desktop-command-ready .desktop-guide-switch__opt::after{display:none!important}
}
@media (max-width:620px), (max-width:900px) and (orientation:landscape) and (max-height:620px) and (pointer:coarse){
  body.desktop-home.desktop-command-ready .desktop-command__actions{
    position:relative!important;
    grid-column:3!important;
    grid-row:2!important;
    display:flex!important;
    align-items:center!important;
    justify-content:flex-end!important;
    flex-wrap:nowrap!important;
    gap:10px!important;
    min-width:0!important;
  }
}
@media (max-width:620px), (max-width:900px) and (orientation:landscape) and (max-height:620px) and (pointer:coarse){
  body.desktop-home.desktop-command-ready .desktop-command__actions .cityswitch{
    flex:0 0 185px!important;
    width:185px!important;
  }
}
@media (max-width:620px), (max-width:900px) and (orientation:landscape) and (max-height:620px) and (pointer:coarse){
  body.desktop-home.desktop-command-ready .desktop-command__actions .cityswitch__btn{
    width:185px!important;
    min-width:185px!important;
    max-width:185px!important;
    height:40px!important;
  }
}
@media (max-width:620px), (max-width:900px) and (orientation:landscape) and (max-height:620px) and (pointer:coarse){
  body.desktop-home.desktop-command-ready .desktop-command__actions .desktop-home__app-store{
    flex:0 0 124px!important;
    width:124px!important;
    min-width:124px!important;
    max-width:124px!important;
    height:40px!important;
  }
}
@media (max-width:620px), (max-width:900px) and (orientation:landscape) and (max-height:620px) and (pointer:coarse){
  body.desktop-home.desktop-command-ready .desktop-command__actions .desktop-home__app-store-mark{
    display:grid!important;
    place-items:center!important;
    width:21px!important;
    height:21px!important;
    flex:0 0 21px!important;
    border:1px solid rgba(255,255,255,.42)!important;
    border-radius:50%!important;
    font-size:13px!important;
  }
}
@media (max-width:620px), (max-width:900px) and (orientation:landscape) and (max-height:620px) and (pointer:coarse){
  body.desktop-home.desktop-command-ready .desktop-command__actions .desktop-home__app-store-copy{
    display:flex!important;
    flex-direction:column!important;
    align-items:flex-start!important;
    gap:1px!important;
    white-space:nowrap!important;
  }
}
@media (max-width:620px), (max-width:900px) and (orientation:landscape) and (max-height:620px) and (pointer:coarse){
  body.desktop-home.desktop-command-ready .desktop-command__actions .desktop-home__app-store-copy small{
    display:block!important;
    font:600 7px/1 'DM Sans',sans-serif!important;
    white-space:nowrap!important;
  }
}
@media (max-width:620px), (max-width:900px) and (orientation:landscape) and (max-height:620px) and (pointer:coarse){
  body.desktop-home.desktop-command-ready .desktop-command__actions .desktop-home__app-store-copy strong{
    display:block!important;
    font:700 11px/1 'DM Sans',sans-serif!important;
    white-space:nowrap!important;
  }
}
@media (max-width:620px), (max-width:900px) and (orientation:landscape) and (max-height:620px) and (pointer:coarse){
  body.desktop-home.desktop-command-ready #home-updated{display:none!important}
}

@media (max-width:620px), (max-width:779px) and (orientation:landscape) and (max-height:620px) and (pointer:coarse){
  body.desktop-home.desktop-command-ready .site-header__in{
    min-height:0!important;
    grid-template-columns:76px minmax(0,1fr)!important;
    grid-template-rows:74px 48px 32px 40px!important;
    column-gap:22px!important;
    row-gap:10px!important;
  }
}
@media (max-width:620px), (max-width:779px) and (orientation:landscape) and (max-height:620px) and (pointer:coarse){
  body.desktop-home.desktop-command-ready .site-header .logo{
    grid-column:1!important;
    grid-row:1!important;
  }
}
@media (max-width:620px), (max-width:779px) and (orientation:landscape) and (max-height:620px) and (pointer:coarse){
  body.desktop-home.desktop-command-ready .desktop-command__intro{
    grid-column:2!important;
    grid-row:1!important;
    width:auto!important;
    max-width:220px!important;
  }
}
@media (max-width:620px), (max-width:779px) and (orientation:landscape) and (max-height:620px) and (pointer:coarse){
  body.desktop-home.desktop-command-ready .site-header .topnav{
    grid-column:1 / -1!important;
    grid-row:2!important;
  }
}
@media (max-width:620px), (max-width:779px) and (orientation:landscape) and (max-height:620px) and (pointer:coarse){
  body.desktop-home.desktop-command-ready .desktop-guide-switch{
    grid-column:1 / -1!important;
    grid-row:3!important;
    justify-self:center!important;
    width:min(320px,100%)!important;
  }
}
@media (max-width:620px), (max-width:779px) and (orientation:landscape) and (max-height:620px) and (pointer:coarse){
  body.desktop-home.desktop-command-ready .desktop-command__actions{
    grid-column:1 / -1!important;
    grid-row:4!important;
    justify-content:center!important;
  }
}

/* Keep the route rule at its original width: the endpoint dots remain part of
   the first and last navigation links, never decorative standalone controls. */
@media (min-width:621px){
  /* Reviews is the sixth stop on the fixed-width desktop route rail. Keep the
     rail itself unchanged and distribute all six labels inside its endpoints. */
  body.desktop-command-ready .site-header .topnav{
    grid-template-columns:repeat(6,minmax(0,1fr))!important;
    box-sizing:border-box!important;
    padding-left:18%!important;
    padding-right:2%!important;
  }
  body.desktop-command-ready .site-header .topnav .desktop-command__link{
    transform:none!important;
  }
  body.desktop-command-ready .site-header .topnav::before{
    top:19px!important;
    left:18%!important;
    right:calc(2% + 6.125px)!important;
    height:1px!important;
    background:rgba(255,255,255,.31)!important;
  }
  /* Six equal stops span the original rule. Each stop remains its own link. */
  body.desktop-command-ready .site-header .topnav .desktop-command__link:nth-child(1){transform:translateX(-50%)!important}
  body.desktop-command-ready .site-header .topnav .desktop-command__link:nth-child(2){transform:translateX(-30%)!important}
  body.desktop-command-ready .site-header .topnav .desktop-command__link:nth-child(3){transform:translateX(-10%)!important}
  body.desktop-command-ready .site-header .topnav .desktop-command__link:nth-child(4){transform:translateX(10%)!important}
  body.desktop-command-ready .site-header .topnav .desktop-command__link:nth-child(5){transform:translateX(30%)!important}
  body.desktop-command-ready .site-header .topnav .desktop-command__link:nth-child(6){
    transform:translateX(50%)!important;
  }
  body.desktop-command-ready .site-header .topnav .desktop-command__link:last-child .desktop-command__label{
    position:relative;
    left:-6.125px;
  }
  body.desktop-command-ready .site-header .topnav .desktop-command__link:last-child::before{
    left:calc(50% - 6.125px)!important;
  }
}

/* Art Reviews option 2: a light editorial veil that begins in the page's
   blue atmosphere, then resolves into a clean reading surface. */
@media (min-width:621px){
  body.desktop-home[data-cat="art"] #home-essay .essay-feature{
    border:0!important;
    background:linear-gradient(
      180deg,
      rgba(255,255,255,.12) 0%,
      rgba(224,244,255,.82) 27%,
      rgba(249,252,253,.98) 67%
    )!important;
    box-shadow:0 24px 46px rgba(4,48,84,.16)!important;
    backdrop-filter:blur(16px) saturate(1.08)!important;
    -webkit-backdrop-filter:blur(16px) saturate(1.08)!important;
  }
  body.desktop-home[data-cat="art"] #home-essay .essay-feature::before{
    background:radial-gradient(circle at 50% -18%,rgba(255,255,255,.3),transparent 48%)!important;
  }
}

/* Compact desktop command header — selected header option 1.
   Keep the existing two-row information architecture while reducing the
   logo block, track widths, vertical air, and action-pill footprint. */
@media (min-width:780px), (min-width:621px) and (min-height:621px), (min-width:621px) and (pointer:fine), (min-width:621px) and (orientation:portrait){
  body.desktop-command-ready .site-header{
    margin-bottom:22px!important;
  }
}
@media (min-width:780px), (min-width:621px) and (min-height:621px), (min-width:621px) and (pointer:fine), (min-width:621px) and (orientation:portrait){
  body.desktop-command-ready.desktop-command-ready .site-header__in{
    width:min(1200px,calc(100% - 80px))!important;
    max-width:1200px!important;
    min-height:132px!important;
    height:auto!important;
    padding:16px 0!important;
    grid-template-columns:72px 205px minmax(460px,1fr)!important;
    grid-template-rows:48px 42px!important;
    column-gap:19px!important;
    row-gap:10px!important;
    align-content:center!important;
    align-items:center!important;
  }
}
@media (min-width:780px), (min-width:621px) and (min-height:621px), (min-width:621px) and (pointer:fine), (min-width:621px) and (orientation:portrait){
  body.desktop-command-ready.desktop-command-ready .site-header .logo{
    grid-column:1!important;
    grid-row:1 / 3!important;
    align-self:center!important;
    width:72px!important;
    height:72px!important;
  }
}
@media (min-width:780px), (min-width:621px) and (min-height:621px), (min-width:621px) and (pointer:fine), (min-width:621px) and (orientation:portrait){
  body.desktop-command-ready.desktop-command-ready .site-header .logo img{
    border-radius:14px!important;
  }
}
@media (min-width:780px), (min-width:621px) and (min-height:621px), (min-width:621px) and (pointer:fine), (min-width:621px) and (orientation:portrait){
  body.desktop-command-ready.desktop-command-ready .desktop-command__intro{
    grid-column:2!important;
    grid-row:1!important;
    width:205px!important;
    padding-left:12px!important;
  }
}
@media (min-width:780px), (min-width:621px) and (min-height:621px), (min-width:621px) and (pointer:fine), (min-width:621px) and (orientation:portrait){
  body.desktop-command-ready.desktop-command-ready .desktop-command__intro>strong{
    font-size:15px!important;
    letter-spacing:-.02em!important;
    white-space:nowrap!important;
  }
}
@media (min-width:780px), (min-width:621px) and (min-height:621px), (min-width:621px) and (pointer:fine), (min-width:621px) and (orientation:portrait){
  body.desktop-command-ready.desktop-command-ready .desktop-command__intro>span{
    margin-top:5px!important;
    font-size:10px!important;
  }
}
@media (min-width:780px), (min-width:621px) and (min-height:621px), (min-width:621px) and (pointer:fine), (min-width:621px) and (orientation:portrait){
  body.desktop-command-ready.desktop-command-ready .site-header .topnav{
    grid-column:3!important;
    grid-row:1!important;
    align-self:end!important;
    padding-top:14px!important;
  }
}
@media (min-width:780px), (min-width:621px) and (min-height:621px), (min-width:621px) and (pointer:fine), (min-width:621px) and (orientation:portrait){
  body.desktop-command-ready.desktop-command-ready .site-header .topnav::before{
    top:19px!important;
  }
}
@media (min-width:780px), (min-width:621px) and (min-height:621px), (min-width:621px) and (pointer:fine), (min-width:621px) and (orientation:portrait){
  body.desktop-command-ready.desktop-command-ready .site-header .topnav .desktop-command__link{
    padding:20px 4px 3px!important;
    font-size:12px!important;
  }
}
@media (min-width:780px), (min-width:621px) and (min-height:621px), (min-width:621px) and (pointer:fine), (min-width:621px) and (orientation:portrait){
  body.desktop-command-ready.desktop-command-ready .desktop-guide-switch{
    grid-column:2!important;
    grid-row:2!important;
    width:205px!important;
    height:32px!important;
  }
}
@media (min-width:780px), (min-width:621px) and (min-height:621px), (min-width:621px) and (pointer:fine), (min-width:621px) and (orientation:portrait){
  body.desktop-command-ready.desktop-command-ready .desktop-guide-switch__opt{
    padding:17px 2px 2px!important;
    font-size:12px!important;
  }
}
@media (min-width:780px), (min-width:621px) and (min-height:621px), (min-width:621px) and (pointer:fine), (min-width:621px) and (orientation:portrait){
  body.desktop-command-ready.desktop-command-ready .desktop-command__actions{
    grid-column:3!important;
    grid-row:2!important;
    gap:10px!important;
  }
}
@media (min-width:780px), (min-width:621px) and (min-height:621px), (min-width:621px) and (pointer:fine), (min-width:621px) and (orientation:portrait){
  body.desktop-command-ready.desktop-command-ready .desktop-command__actions .cityswitch{
    flex:0 0 168px!important;
    width:168px!important;
  }
}
@media (min-width:780px), (min-width:621px) and (min-height:621px), (min-width:621px) and (pointer:fine), (min-width:621px) and (orientation:portrait){
  body.desktop-command-ready.desktop-command-ready .desktop-command__actions .cityswitch__btn{
    width:168px!important;
    min-width:168px!important;
    max-width:168px!important;
    min-height:38px!important;
    height:38px!important;
    padding:6px 11px!important;
    border-radius:12px!important;
  }
}
@media (min-width:780px), (min-width:621px) and (min-height:621px), (min-width:621px) and (pointer:fine), (min-width:621px) and (orientation:portrait){
  body.desktop-command-ready.desktop-command-ready .desktop-command__actions .desktop-home__app-store{
    flex:0 0 118px!important;
    width:118px!important;
    min-width:118px!important;
    max-width:118px!important;
    min-height:38px!important;
    height:38px!important;
    padding:6px 9px!important;
  }
}
@media (min-width:780px), (min-width:621px) and (min-height:621px), (min-width:621px) and (pointer:fine), (min-width:621px) and (orientation:portrait){
  body.desktop-command-ready.desktop-command-ready .desktop-command__actions .desktop-home__app-store-mark{
    width:19px!important;
    height:19px!important;
    flex-basis:19px!important;
    font-size:12px!important;
  }
}
@media (min-width:780px), (min-width:621px) and (min-height:621px), (min-width:621px) and (pointer:fine), (min-width:621px) and (orientation:portrait){
  body.desktop-command-ready.desktop-command-ready .desktop-command__actions .desktop-home__app-store-copy strong{
    font-size:10px!important;
  }
}

/* The city picker shares the translucent midnight-blue surface used by the
   desktop Privacy and Terms reading card. */
@media (min-width:621px){
  body.desktop-command-ready .desktop-command__actions .cityswitch__btn{
    background:rgba(0,82,149,.45)!important;
  }
  body.desktop-command-ready .desktop-command__actions .cityswitch__btn:hover,
  body.desktop-command-ready .desktop-command__actions .cityswitch__btn:focus-visible{
    background:rgba(0,82,149,.63)!important;
  }
}

/* Today in Art — option 2 glass shelf using the same editorial veil as Art
   Reviews. The event cards and their existing interaction remain unchanged. */
@media (min-width:901px), (min-width:621px) and (min-height:621px), (min-width:621px) and (pointer:fine), (min-width:621px) and (orientation:portrait){
  body.desktop-home.desktop-editorial-discovery[data-cat="art"] #home-weekcols .week-col--art-today{
    position:relative!important;
    isolation:isolate!important;
    overflow:hidden!important;
    padding:24px!important;
    border:0!important;
    border-radius:20px!important;
    background:linear-gradient(
      180deg,
      rgba(255,255,255,.12) 0%,
      rgba(224,244,255,.82) 27%,
      rgba(249,252,253,.98) 67%
    )!important;
    box-shadow:0 24px 46px rgba(4,48,84,.16)!important;
    backdrop-filter:blur(16px) saturate(1.08)!important;
    -webkit-backdrop-filter:blur(16px) saturate(1.08)!important;
  }
}
@media (min-width:901px), (min-width:621px) and (min-height:621px), (min-width:621px) and (pointer:fine), (min-width:621px) and (orientation:portrait){
  body.desktop-home.desktop-editorial-discovery[data-cat="art"] #home-weekcols .week-col--art-today::before{
    content:"";
    position:absolute;
    z-index:-1;
    inset:0;
    pointer-events:none;
    background:radial-gradient(circle at 50% -18%,rgba(255,255,255,.3),transparent 48%);
  }
}
@media (min-width:901px), (min-width:621px) and (min-height:621px), (min-width:621px) and (pointer:fine), (min-width:621px) and (orientation:portrait){
  body.desktop-home.desktop-editorial-discovery[data-cat="art"] #home-weekcols .week-col--art-today .week-col__head{
    margin:0 0 20px!important;
    padding:0 0 13px!important;
    border-bottom:1px solid rgba(8,119,192,.28)!important;
    box-shadow:0 1px 0 rgba(255,255,255,.58)!important;
  }
}
@media (min-width:901px), (min-width:621px) and (min-height:621px), (min-width:621px) and (pointer:fine), (min-width:621px) and (orientation:portrait){
  body.desktop-home.desktop-editorial-discovery[data-cat="art"] #home-weekcols .week-col--art-today .desktop-today__more{
    display:flex!important;
    justify-content:flex-end!important;
    flex:0 0 auto!important;
    margin:0 0 0 auto!important;
  }
}
@media (min-width:901px), (min-width:621px) and (min-height:621px), (min-width:621px) and (pointer:fine), (min-width:621px) and (orientation:portrait){
  body.desktop-home.desktop-editorial-discovery[data-cat="art"] #home-weekcols .week-col--art-today .desktop-today__more a{
    display:inline-flex!important;
    align-items:center!important;
    min-height:34px!important;
    padding:7px 12px!important;
    border:1px solid rgba(8,119,192,.18)!important;
    border-radius:11px!important;
    color:#0877c0!important;
    background:rgba(255,255,255,.5)!important;
    box-shadow:inset 0 1px 0 rgba(255,255,255,.78)!important;
    font-weight:700!important;
    text-shadow:none!important;
  }
}
@media (min-width:901px), (min-width:621px) and (min-height:621px), (min-width:621px) and (pointer:fine), (min-width:621px) and (orientation:portrait){

  body.desktop-home.desktop-editorial-discovery[data-cat="art"] #desktop-home-curated #home-featured .shead h2,
  body.desktop-home.desktop-editorial-discovery[data-cat="art"] #desktop-home-curated #home-solo .shead h2{
    color:#edf9ff!important;
    font:800 clamp(30px,2.5vw,40px)/1.02 'DM Sans',sans-serif!important;
    letter-spacing:-.04em!important;
    text-shadow:0 1px 0 rgba(255,255,255,.92),0 2px 0 rgba(9,72,112,.28),0 5px 12px rgba(4,35,62,.32)!important;
  }
}
@media (min-width:901px), (min-width:621px) and (min-height:621px), (min-width:621px) and (pointer:fine), (min-width:621px) and (orientation:portrait){

  body.desktop-home.desktop-editorial-discovery[data-cat="art"] #home-essay .essay-feature__all,
  body.desktop-home.desktop-editorial-discovery[data-cat="art"] .desktop-home__curated .desktop-home__viewall{
    box-sizing:border-box!important;
    display:inline-flex!important;
    align-items:center!important;
    min-height:34px!important;
    padding:7px 12px!important;
    border:1px solid rgba(8,119,192,.18)!important;
    border-radius:11px!important;
    color:#0877c0!important;
    background:rgba(255,255,255,.5)!important;
    box-shadow:inset 0 1px 0 rgba(255,255,255,.78)!important;
    font:700 11px/1 'Quicksand',sans-serif!important;
    letter-spacing:.06em!important;
    text-transform:uppercase!important;
    text-decoration:none!important;
    text-shadow:none!important;
    white-space:nowrap!important;
  }
}

/* Art Reviews — use the same heading rail and glass language as Today in Art
   while preserving the established one-lead / three-supporting review layout. */
@media (min-width:901px), (min-width:621px) and (min-height:621px), (min-width:621px) and (pointer:fine), (min-width:621px) and (orientation:portrait){
  body.desktop-home.desktop-editorial-discovery[data-cat="art"] #home-essay .essay-feature{
    padding:24px!important;
  }
}
@media (min-width:901px), (min-width:621px) and (min-height:621px), (min-width:621px) and (pointer:fine), (min-width:621px) and (orientation:portrait){
  body.desktop-home.desktop-editorial-discovery[data-cat="art"] #home-essay .essay-feature__head{
    position:relative!important;
    display:flex!important;
    align-items:center!important;
    justify-content:flex-start!important;
    gap:16px!important;
    min-height:52px!important;
    margin:0 0 20px!important;
    padding:0 0 13px!important;
    border-bottom:1px solid rgba(8,119,192,.28)!important;
    box-shadow:0 1px 0 rgba(255,255,255,.58)!important;
    text-align:left!important;
  }
}
@media (min-width:901px), (min-width:621px) and (min-height:621px), (min-width:621px) and (pointer:fine), (min-width:621px) and (orientation:portrait){
  body.desktop-home.desktop-editorial-discovery[data-cat="art"] #home-essay .essay-feature__heading{
    display:flex!important;
    align-items:baseline!important;
    gap:16px!important;
    width:auto!important;
    min-width:0!important;
    padding:0!important;
    text-align:left!important;
  }
}
@media (min-width:901px), (min-width:621px) and (min-height:621px), (min-width:621px) and (pointer:fine), (min-width:621px) and (orientation:portrait){
  body.desktop-home.desktop-editorial-discovery[data-cat="art"] #home-essay .essay-feature__heading h2{
    display:table!important;
    flex:0 0 auto!important;
    margin:0!important;
    padding:0!important;
    border:0!important;
    border-radius:0!important;
    color:#edf9ff!important;
    background:transparent!important;
    font:800 clamp(30px,2.5vw,40px)/1.02 'DM Sans',sans-serif!important;
    letter-spacing:-.04em!important;
    text-align:left!important;
    text-shadow:0 1px 0 rgba(255,255,255,.92),0 2px 0 rgba(9,72,112,.28),0 5px 12px rgba(4,35,62,.32)!important;
  }
}
@media (min-width:901px), (min-width:621px) and (min-height:621px), (min-width:621px) and (pointer:fine), (min-width:621px) and (orientation:portrait){
  body.desktop-home.desktop-editorial-discovery[data-cat="art"] #home-essay .essay-feature__heading p{
    display:block!important;
    margin:0!important;
    color:rgba(255,255,255,.78)!important;
    font:700 11px/1.25 'DM Sans',sans-serif!important;
    letter-spacing:.01em!important;
    text-align:left!important;
    text-shadow:0 1px 5px rgba(4,35,62,.2)!important;
  }
}
@media (min-width:901px), (min-width:621px) and (min-height:621px), (min-width:621px) and (pointer:fine), (min-width:621px) and (orientation:portrait){
  body.desktop-home.desktop-editorial-discovery[data-cat="art"] #home-essay .essay-feature__all{
    position:static!important;
    display:inline-flex!important;
    align-items:center!important;
    min-height:34px!important;
    margin-left:auto!important;
    padding:7px 12px!important;
    transform:none!important;
    border:1px solid rgba(8,119,192,.18)!important;
    border-radius:11px!important;
    color:#0877c0!important;
    background:rgba(255,255,255,.5)!important;
    box-shadow:inset 0 1px 0 rgba(255,255,255,.78)!important;
    font:700 11px/1 'Quicksand',sans-serif!important;
    text-decoration:none!important;
    text-shadow:none!important;
    white-space:nowrap!important;
  }
}

/* Must Sees and Solo Shows — share Today in Art's light glass shelf while
   preserving their gold/pink editorial identities and existing card grids. */
@media (min-width:901px), (min-width:621px) and (min-height:621px), (min-width:621px) and (pointer:fine), (min-width:621px) and (orientation:portrait){
  body.desktop-home.desktop-editorial-discovery[data-cat="art"] .desktop-home__curated > div{
    position:relative!important;
    isolation:isolate!important;
    overflow:hidden!important;
    padding:24px!important;
    border:0!important;
    border-radius:20px!important;
    background:linear-gradient(180deg,rgba(255,255,255,.12) 0%,rgba(224,244,255,.82) 27%,rgba(249,252,253,.98) 67%)!important;
    box-shadow:0 24px 46px rgba(4,48,84,.16)!important;
    backdrop-filter:blur(16px) saturate(1.08)!important;
    -webkit-backdrop-filter:blur(16px) saturate(1.08)!important;
  }
}
@media (min-width:901px), (min-width:621px) and (min-height:621px), (min-width:621px) and (pointer:fine), (min-width:621px) and (orientation:portrait){
  body.desktop-home.desktop-editorial-discovery[data-cat="art"] .desktop-home__curated > div::before{
    content:"";
    position:absolute;
    z-index:-1;
    inset:0;
    pointer-events:none;
    background:radial-gradient(circle at 50% -18%,rgba(255,255,255,.3),transparent 48%);
  }
}
@media (min-width:901px), (min-width:621px) and (min-height:621px), (min-width:621px) and (pointer:fine), (min-width:621px) and (orientation:portrait){
  body.desktop-home.desktop-editorial-discovery[data-cat="art"] .desktop-home__curated .shead{
    box-sizing:border-box!important;
    height:84px!important;
    min-height:84px!important;
    align-content:start!important;
    grid-template-columns:minmax(0,1fr) auto!important;
    grid-template-areas:"title link" "subtitle subtitle"!important;
    margin:0 0 20px!important;
    padding:0 0 13px!important;
    border-bottom:1px solid rgba(8,119,192,.28)!important;
    box-shadow:0 1px 0 rgba(255,255,255,.58)!important;
  }
}
@media (min-width:901px), (min-width:621px) and (min-height:621px), (min-width:621px) and (pointer:fine), (min-width:621px) and (orientation:portrait){
  body.desktop-home.desktop-editorial-discovery[data-cat="art"] .desktop-home__curated .shead p{
    color:#17384d!important;
    text-shadow:none!important;
    white-space:nowrap!important;
  }
}
@media (min-width:901px), (min-width:621px) and (min-height:621px), (min-width:621px) and (pointer:fine), (min-width:621px) and (orientation:portrait){
  body.desktop-home.desktop-editorial-discovery[data-cat="art"] .desktop-home__curated .desktop-home__viewall{
    display:inline-flex!important;
    align-items:center!important;
    min-height:34px!important;
    padding:7px 12px!important;
    border:1px solid rgba(8,119,192,.18)!important;
    border-radius:11px!important;
    color:#0877c0!important;
    background:rgba(255,255,255,.5)!important;
    box-shadow:inset 0 1px 0 rgba(255,255,255,.78)!important;
    font-weight:700!important;
    text-shadow:none!important;
  }
}

/* One responsive header geometry for both curated sections. Keep this outside
   a viewport query so desktop-window resizing cannot give the two panels
   different subtitle or rule spacing. */
body.desktop-home.desktop-editorial-discovery[data-cat="art"] #desktop-home-curated #home-featured .shead,
body.desktop-home.desktop-editorial-discovery[data-cat="art"] #desktop-home-curated #home-solo .shead{
  box-sizing:border-box!important;
  display:grid!important;
  height:84px!important;
  min-height:84px!important;
  grid-template-columns:minmax(0,1fr) auto!important;
  grid-template-rows:42px 17px!important;
  grid-template-areas:"title link" "subtitle subtitle"!important;
  align-content:start!important;
  align-items:start!important;
  margin:0 0 20px!important;
  padding:0 0 13px!important;
}
body.desktop-home.desktop-editorial-discovery[data-cat="art"] #desktop-home-curated #home-featured .shead p,
body.desktop-home.desktop-editorial-discovery[data-cat="art"] #desktop-home-curated #home-solo .shead p{
  align-self:start!important;
  margin:0!important;
  line-height:17px!important;
  transform:none!important;
}
body.desktop-home.desktop-editorial-discovery[data-cat="art"] #desktop-home-curated #home-featured .desktop-home__viewall,
body.desktop-home.desktop-editorial-discovery[data-cat="art"] #desktop-home-curated #home-solo .desktop-home__viewall{
  align-self:start!important;
}

/* Coming Up option 1 — one light-glass shelf for the heading, date chooser,
   and event cards, matching the editorial sections above it. */
body.desktop-home.desktop-editorial-discovery[data-cat="art"] .home-editorial-top{
  grid-template-areas:
    "editorial editorial"
    "today today"
    "reviews reviews"
    "curated curated"
    "coming coming"!important;
}
body.desktop-home.desktop-editorial-discovery[data-cat="art"] #desktop-coming-shelf{
  grid-area:coming!important;
  position:relative!important;
  isolation:isolate!important;
  min-width:0!important;
  overflow:hidden!important;
  padding:24px!important;
  border-radius:20px!important;
  background:linear-gradient(180deg,rgba(255,255,255,.12) 0%,rgba(224,244,255,.82) 27%,rgba(249,252,253,.98) 67%)!important;
  box-shadow:0 24px 46px rgba(4,48,84,.16)!important;
  backdrop-filter:blur(16px) saturate(1.08)!important;
  -webkit-backdrop-filter:blur(16px) saturate(1.08)!important;
}
body.desktop-home.desktop-editorial-discovery[data-cat="art"] #desktop-coming-shelf::before{
  content:"";
  position:absolute;
  z-index:-1;
  inset:0;
  pointer-events:none;
  background:radial-gradient(circle at 50% -18%,rgba(255,255,255,.3),transparent 48%);
}
body.desktop-home.desktop-editorial-discovery[data-cat="art"] #desktop-coming-shelf .home-upcoming-heading{
  display:flex!important;
  align-items:center!important;
  gap:16px!important;
  min-height:52px!important;
  margin:0 0 20px!important;
  padding:0 0 13px!important;
  border-bottom:1px solid rgba(8,119,192,.28)!important;
  box-shadow:0 1px 0 rgba(255,255,255,.58)!important;
}
body.desktop-home.desktop-editorial-discovery[data-cat="art"] #desktop-coming-shelf .home-upcoming-heading strong{
  color:#edf9ff!important;
  font:800 clamp(30px,2.5vw,40px)/1.02 'DM Sans',sans-serif!important;
  letter-spacing:-.04em!important;
  text-shadow:0 1px 0 rgba(255,255,255,.92),0 2px 0 rgba(9,72,112,.28),0 5px 12px rgba(4,35,62,.32)!important;
}
body.desktop-home.desktop-editorial-discovery[data-cat="art"] #desktop-coming-shelf .desktop-home__stat-line--title{
  margin-left:0!important;
  color:#fff!important;
  text-shadow:0 1px 5px rgba(4,35,62,.24)!important;
}
body.desktop-home.desktop-editorial-discovery[data-cat="art"] #desktop-coming-shelf .desktop-home__viewall{
  box-sizing:border-box!important;
  display:inline-flex!important;
  align-items:center!important;
  min-height:34px!important;
  margin-left:auto!important;
  padding:7px 12px!important;
  border:1px solid rgba(8,119,192,.18)!important;
  border-radius:11px!important;
  color:#0877c0!important;
  background:rgba(255,255,255,.5)!important;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.78)!important;
  font:700 11px/1 'Quicksand',sans-serif!important;
  letter-spacing:.06em!important;
  text-transform:uppercase!important;
  text-decoration:none!important;
  text-shadow:none!important;
  white-space:nowrap!important;
}
body.desktop-home.desktop-editorial-discovery[data-cat="art"] #desktop-coming-shelf .desktop-coming-dates__tab{
  color:rgba(255,255,255,.88)!important;
  background:linear-gradient(150deg,#116da8,#07588f)!important;
  border-color:rgba(255,255,255,.22)!important;
}
body.desktop-home.desktop-editorial-discovery[data-cat="art"] #desktop-coming-shelf .desktop-coming-dates__tab:hover{
  background:linear-gradient(150deg,#0e78bc,#07588f)!important;
}
body.desktop-home.desktop-editorial-discovery[data-cat="art"] #desktop-coming-shelf .desktop-coming-dates__tab.is-selected{
  color:#0b609a!important;
  background:rgba(255,255,255,.94)!important;
  border-color:rgba(255,255,255,.82)!important;
}
@media(max-width:1100px){
  body.desktop-home.desktop-editorial-discovery[data-cat="art"] #desktop-coming-shelf .desktop-coming-dates__tabs{
    grid-template-columns:repeat(4,minmax(0,1fr))!important;
  }
  body.desktop-home.desktop-editorial-discovery[data-cat="art"] #desktop-coming-shelf .desktop-coming-dates__cards{
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
  }
}
@media(max-width:700px){
  body.desktop-home.desktop-editorial-discovery[data-cat="art"] #desktop-coming-shelf .home-upcoming-heading{
    flex-wrap:wrap!important;
  }
  body.desktop-home.desktop-editorial-discovery[data-cat="art"] #desktop-coming-shelf .desktop-home__viewall{
    margin-left:0!important;
  }
}
@media(max-width:620px){
  body.desktop-home.desktop-editorial-discovery[data-cat="art"] #desktop-coming-shelf .desktop-coming-dates__tabs,
  body.desktop-home.desktop-editorial-discovery[data-cat="art"] #desktop-coming-shelf .desktop-coming-dates__cards{
    grid-template-columns:1fr!important;
  }
}

/* Keep the secondary line optically centered with the title in the three
   full-width editorial section headers. */
body.desktop-home.desktop-editorial-discovery[data-cat="art"] #home-weekcols .week-col--art-today .week-col__head,
body.desktop-home.desktop-editorial-discovery[data-cat="art"] #home-essay .essay-feature__heading,
body.desktop-home.desktop-editorial-discovery[data-cat="art"] #desktop-coming-shelf .home-upcoming-heading{
  align-items:center!important;
}
body.desktop-home.desktop-editorial-discovery[data-cat="art"] #home-weekcols .week-col--art-today .desktop-home__stat-line--title,
body.desktop-home.desktop-editorial-discovery[data-cat="art"] #home-essay .essay-feature__heading p,
body.desktop-home.desktop-editorial-discovery[data-cat="art"] #desktop-coming-shelf .desktop-home__stat-line--title{
  align-self:center!important;
  margin-top:0!important;
  margin-bottom:0!important;
  line-height:1.2!important;
  transform:none!important;
}

/* Reuse the combined-essays Art Review label, but keep the homepage placement
   at the requested upper-left corner of each image. */
body.desktop-home[data-cat="art"] #home-essay .essay-tile > .essay-index-card__label{
  top:16px!important;
  bottom:auto!important;
}

/* Desktop homepage All To See — use the same light-glass palette and image-led
   cards as Coming Up. desktop-home.js caps this homepage section at eight. */
@media (min-width:901px), (min-width:621px) and (min-height:621px), (min-width:621px) and (pointer:fine), (min-width:621px) and (orientation:portrait){
  body.desktop-home.desktop-editorial-discovery[data-cat="art"] #home-onview{
    position:relative!important;
    isolation:isolate!important;
    min-width:0!important;
    overflow:hidden!important;
    margin-top:24px!important;
    padding:24px!important;
    border-radius:20px!important;
    background:linear-gradient(180deg,rgba(255,255,255,.12) 0%,rgba(224,244,255,.82) 27%,rgba(249,252,253,.98) 67%)!important;
    box-shadow:0 24px 46px rgba(4,48,84,.16)!important;
    backdrop-filter:blur(16px) saturate(1.08)!important;
    -webkit-backdrop-filter:blur(16px) saturate(1.08)!important;
  }
}
@media (min-width:901px), (min-width:621px) and (min-height:621px), (min-width:621px) and (pointer:fine), (min-width:621px) and (orientation:portrait){
  body.desktop-home.desktop-editorial-discovery[data-cat="art"] #home-onview::before{
    content:"";
    position:absolute;
    z-index:-1;
    inset:0;
    pointer-events:none;
    background:radial-gradient(circle at 50% -18%,rgba(255,255,255,.3),transparent 48%);
  }
}
@media (min-width:901px), (min-width:621px) and (min-height:621px), (min-width:621px) and (pointer:fine), (min-width:621px) and (orientation:portrait){
  body.desktop-home.desktop-editorial-discovery[data-cat="art"] #home-onview .openings-sec{
    margin:0!important;
  }
}
@media (min-width:901px), (min-width:621px) and (min-height:621px), (min-width:621px) and (pointer:fine), (min-width:621px) and (orientation:portrait){
  body.desktop-home.desktop-editorial-discovery[data-cat="art"] #home-onview .shead{
    display:flex!important;
    align-items:center!important;
    gap:16px!important;
    min-height:52px!important;
    margin:0 0 20px!important;
    padding:0 0 13px!important;
    border-bottom:1px solid rgba(8,119,192,.28)!important;
    box-shadow:0 1px 0 rgba(255,255,255,.58)!important;
  }
}
@media (min-width:901px), (min-width:621px) and (min-height:621px), (min-width:621px) and (pointer:fine), (min-width:621px) and (orientation:portrait){
  body.desktop-home.desktop-editorial-discovery[data-cat="art"] #home-onview .shead .tag-blue{
    display:none!important;
  }
}
@media (min-width:901px), (min-width:621px) and (min-height:621px), (min-width:621px) and (pointer:fine), (min-width:621px) and (orientation:portrait){
  body.desktop-home.desktop-editorial-discovery[data-cat="art"] #home-onview .shead h2{
    color:#edf9ff!important;
    font:800 clamp(30px,2.5vw,40px)/1.02 'DM Sans',sans-serif!important;
    letter-spacing:-.04em!important;
    text-shadow:0 1px 0 rgba(255,255,255,.92),0 2px 0 rgba(9,72,112,.28),0 5px 12px rgba(4,35,62,.32)!important;
  }
}
@media (min-width:901px), (min-width:621px) and (min-height:621px), (min-width:621px) and (pointer:fine), (min-width:621px) and (orientation:portrait){
  body.desktop-home.desktop-editorial-discovery[data-cat="art"] #home-onview .shead .desktop-home__stat-line--onview{
    margin-left:0!important;
    color:#fff!important;
    text-shadow:0 1px 5px rgba(4,35,62,.24)!important;
  }
}
@media (min-width:901px), (min-width:621px) and (min-height:621px), (min-width:621px) and (pointer:fine), (min-width:621px) and (orientation:portrait){
  body.desktop-home.desktop-editorial-discovery[data-cat="art"] #home-onview .shead .col-more{
    box-sizing:border-box!important;
    display:inline-flex!important;
    align-items:center!important;
    min-height:34px!important;
    margin-left:auto!important;
    padding:7px 12px!important;
    border:1px solid rgba(8,119,192,.18)!important;
    border-radius:11px!important;
    color:#0877c0!important;
    background:rgba(255,255,255,.5)!important;
    box-shadow:inset 0 1px 0 rgba(255,255,255,.78)!important;
    font:700 11px/1 'Quicksand',sans-serif!important;
    letter-spacing:.06em!important;
    text-transform:uppercase!important;
    text-decoration:none!important;
    white-space:nowrap!important;
  }
}
@media (min-width:901px), (min-width:621px) and (min-height:621px), (min-width:621px) and (pointer:fine), (min-width:621px) and (orientation:portrait){
  body.desktop-home.desktop-editorial-discovery[data-cat="art"] #home-onview .grid{
    display:grid!important;
    grid-template-columns:repeat(4,minmax(0,1fr))!important;
    gap:16px!important;
    margin:0!important;
    padding:0!important;
  }
}
@media (min-width:901px), (min-width:621px) and (min-height:621px), (min-width:621px) and (pointer:fine), (min-width:621px) and (orientation:portrait){
  body.desktop-home.desktop-editorial-discovery[data-cat="art"] #home-onview .grid > .card:nth-child(n+9){
    display:none!important;
  }
}
@media (min-width:901px), (min-width:621px) and (min-height:621px), (min-width:621px) and (pointer:fine), (min-width:621px) and (orientation:portrait){
  body.desktop-home.desktop-editorial-discovery[data-cat="art"] #home-onview .card--mini{
    position:relative!important;
    min-width:0!important;
    min-height:210px!important;
    overflow:hidden!important;
    border-radius:16px!important;
    background:linear-gradient(150deg,var(--blue),#03426f)!important;
    box-shadow:0 10px 24px rgba(7,42,80,.2)!important;
    filter:none!important;
  }
}
@media (min-width:901px), (min-width:621px) and (min-height:621px), (min-width:621px) and (pointer:fine), (min-width:621px) and (orientation:portrait){
  body.desktop-home.desktop-editorial-discovery[data-cat="art"] #home-onview .card--mini .mini__media{
    position:absolute!important;
    inset:0!important;
    width:100%!important;
    height:100%!important;
    aspect-ratio:auto!important;
    border-radius:0!important;
    filter:none!important;
  }
}
@media (min-width:901px), (min-width:621px) and (min-height:621px), (min-width:621px) and (pointer:fine), (min-width:621px) and (orientation:portrait){
  body.desktop-home.desktop-editorial-discovery[data-cat="art"] #home-onview .card--mini .mini__media::after{
    content:""!important;
    position:absolute!important;
    inset:0!important;
    z-index:1!important;
    background:linear-gradient(180deg,rgba(4,18,31,.02) 25%,rgba(3,18,32,.88) 100%)!important;
  }
}
@media (min-width:901px), (min-width:621px) and (min-height:621px), (min-width:621px) and (pointer:fine), (min-width:621px) and (orientation:portrait){
  body.desktop-home.desktop-editorial-discovery[data-cat="art"] #home-onview .card--mini .mini__txt{
    position:absolute!important;
    right:0!important;
    bottom:0!important;
    left:0!important;
    z-index:2!important;
    padding:42px 13px 13px!important;
  }
}
@media (min-width:901px), (min-width:621px) and (min-height:621px), (min-width:621px) and (pointer:fine), (min-width:621px) and (orientation:portrait){
  body.desktop-home.desktop-editorial-discovery[data-cat="art"] #home-onview .card--mini .card__title{
    color:#fff!important;
    font-size:16px!important;
    text-shadow:0 2px 7px rgba(0,0,0,.52)!important;
  }
}
@media (min-width:901px), (min-width:621px) and (min-height:621px), (min-width:621px) and (pointer:fine), (min-width:621px) and (orientation:portrait){
  body.desktop-home.desktop-editorial-discovery[data-cat="art"] #home-onview .card--mini .card__date,
  body.desktop-home.desktop-editorial-discovery[data-cat="art"] #home-onview .card--mini .card__venue,
  body.desktop-home.desktop-editorial-discovery[data-cat="art"] #home-onview .card--mini .card__addr,
  body.desktop-home.desktop-editorial-discovery[data-cat="art"] #home-onview .card--mini .card__hours{
    color:rgba(255,255,255,.84)!important;
    text-shadow:0 1px 4px rgba(0,0,0,.52)!important;
  }
}
@media (min-width:901px), (min-width:621px) and (min-height:621px), (min-width:621px) and (pointer:fine), (min-width:621px) and (orientation:portrait){
  body.desktop-home.desktop-editorial-discovery[data-cat="art"] #home-onview > .desktop-home__viewall--bottom{
    display:none!important;
  }
}

/* Desktop city chooser: use a compact vertical list instead of the former
   multi-column horizontal tray. Mobile already uses a vertical menu. */
@media (min-width:780px), (min-width:621px) and (min-height:621px), (min-width:621px) and (pointer:fine), (min-width:621px) and (orientation:portrait){
  body.desktop-command-ready .site-header .cityswitch__menu{
    right:0!important;
    left:auto!important;
    display:flex!important;
    width:240px!important;
    min-width:240px!important;
    max-width:calc(100vw - 40px)!important;
    flex-direction:column!important;
    align-items:stretch!important;
    grid-template-columns:none!important;
    transform:none!important;
  }
}
@media (min-width:780px), (min-width:621px) and (min-height:621px), (min-width:621px) and (pointer:fine), (min-width:621px) and (orientation:portrait){
  body.desktop-command-ready .site-header .cityswitch__menu[hidden]{
    display:none!important;
  }
}
@media (min-width:780px), (min-width:621px) and (min-height:621px), (min-width:621px) and (pointer:fine), (min-width:621px) and (orientation:portrait){
  body.desktop-command-ready .site-header .desktop-city-search,
  body.desktop-command-ready .site-header .cityswitch__opt{
    width:100%!important;
  }
}

/* Combined essays option 2 — a homepage-like light-glass shelf containing a
   vertical editorial stream. Individual essay pages and mobile remain intact. */
@media(min-width:761px){
  body.desktop-essay-index{
    min-height:100vh!important;
    /* Match the shared desktop-home canvas. The previous fixed-width radial
       layer ended before the viewport's right edge, creating a dark block
       behind the last route. */
    background-color:#056caf!important;
    background-image:linear-gradient(135deg,#087fca 0%,#0877c0 46%,#056caf 100%)!important;
    background-position:0 0!important;
    background-size:cover!important;
    background-repeat:no-repeat!important;
  }
  body.desktop-essay-index.desktop-command-ready .site-header{
    margin-bottom:4px!important;
  }
  body.desktop-essay-index .essays-index{
    position:relative!important;
    isolation:isolate!important;
    width:min(1200px,calc(100% - 80px))!important;
    max-width:1200px!important;
    margin:2px auto 76px!important;
    padding:24px!important;
    overflow:hidden!important;
    border-radius:20px!important;
    background:linear-gradient(180deg,rgba(255,255,255,.12) 0%,rgba(224,244,255,.88) 18%,rgba(249,252,253,.98) 48%)!important;
    box-shadow:0 24px 46px rgba(4,48,84,.18)!important;
    backdrop-filter:blur(16px) saturate(1.08)!important;
    -webkit-backdrop-filter:blur(16px) saturate(1.08)!important;
  }
  body.desktop-essay-index .essays-index::before{
    content:"";
    position:absolute;
    z-index:-1;
    inset:0;
    pointer-events:none;
    background:radial-gradient(circle at 50% -18%,rgba(255,255,255,.3),transparent 48%);
  }
  body.desktop-essay-index .essays-index__hero{
    display:grid!important;
    grid-template-columns:auto minmax(0,1fr) auto!important;
    grid-template-areas:"title subtitle eyebrow"!important;
    align-items:center!important;
    gap:16px!important;
    width:100%!important;
    max-width:none!important;
    min-height:52px!important;
    margin:0 0 20px!important;
    padding:0 0 13px!important;
    border-bottom:1px solid rgba(8,119,192,.28)!important;
    box-shadow:0 1px 0 rgba(255,255,255,.58)!important;
    text-align:left!important;
  }
  body.desktop-essay-index .essays-index__hero h1{
    grid-area:title!important;
    margin:0!important;
    color:#edf9ff!important;
    font:800 clamp(30px,3.2vw,40px)/1.02 'DM Sans',sans-serif!important;
    letter-spacing:-.04em!important;
    text-shadow:0 1px 0 rgba(255,255,255,.92),0 2px 0 rgba(9,72,112,.28),0 5px 12px rgba(4,35,62,.32)!important;
  }
  body.desktop-essay-index .essays-index__subtitle{
    grid-area:subtitle!important;
    margin:0!important;
    color:#fff!important;
    font:700 11px/1.2 'DM Sans',sans-serif!important;
    text-shadow:none!important;
  }
  body.desktop-essay-index .essays-index__credits{
    color:inherit!important;
    font:inherit!important;
    letter-spacing:inherit!important;
    text-shadow:inherit!important;
  }
  body.desktop-essay-index .essays-index__eyebrow{
    grid-area:eyebrow!important;
    margin:0!important;
    color:#0877c0!important;
    font:800 10px/1.2 'Quicksand',sans-serif!important;
    letter-spacing:.09em!important;
    text-shadow:none!important;
    white-space:nowrap!important;
  }
  body.desktop-essay-index .essays-index__grid{
    display:grid!important;
    grid-template-columns:1fr!important;
    gap:14px!important;
    width:100%!important;
    max-width:none!important;
    margin:0!important;
  }
  body.desktop-essay-index .essay-index-card{
    display:grid!important;
    grid-template-columns:minmax(280px,.82fr) minmax(0,1.35fr)!important;
    min-height:220px!important;
    overflow:hidden!important;
    border:0!important;
    border-radius:16px!important;
    background:rgba(255,255,255,.82)!important;
    box-shadow:0 10px 24px rgba(8,58,88,.1),inset 0 1px 0 rgba(255,255,255,.72)!important;
  }
  body.desktop-essay-index .essay-index-card:hover{
    transform:translateY(-2px)!important;
    box-shadow:0 16px 30px rgba(8,58,88,.15),inset 0 1px 0 rgba(255,255,255,.78)!important;
  }
  body.desktop-essay-index .essay-index-card__image{
    min-height:220px!important;
    height:100%!important;
    aspect-ratio:auto!important;
  }
  body.desktop-essay-index .essay-index-card__body{
    display:flex!important;
    min-width:0!important;
    flex-direction:column!important;
    justify-content:center!important;
    padding:24px 30px!important;
  }
  body.desktop-essay-index .essay-index-card:nth-child(even) .essay-index-card__image{order:2!important}
  body.desktop-essay-index .essay-index-card:nth-child(even) .essay-index-card__body{order:1!important}
  body.desktop-essay-index .essay-index-card h2{
    color:#17384d!important;
    font:700 clamp(27px,3vw,36px)/1.02 'DM Sans',sans-serif!important;
    letter-spacing:-.035em!important;
  }
  body.desktop-essay-index .essay-index-card__meta{
    margin:0 0 9px!important;
    color:#0877c0!important;
  }
  body.desktop-essay-index .essay-index-card__show{
    color:#526b79!important;
  }
  body.desktop-essay-index .essay-index-card__summary{
    max-width:68ch!important;
    margin-top:10px!important;
    color:#324b5a!important;
    font-size:14px!important;
    line-height:1.45!important;
  }
  body.desktop-essay-index .essay-index-card__by{
    margin-top:12px!important;
  }
  body.desktop-essay-index .site-footer{
    margin-top:0!important;
    border-top:1px solid rgba(255,255,255,.2)!important;
    background:transparent!important;
  }
}

@media(min-width:761px) and (max-width:920px){
  body.desktop-essay-index .essays-index{
    width:calc(100% - 40px)!important;
  }
  body.desktop-essay-index .essays-index__hero{
    grid-template-columns:auto minmax(0,1fr)!important;
    grid-template-areas:"title eyebrow" "subtitle subtitle"!important;
  }
  body.desktop-essay-index .essay-index-card{
    grid-template-columns:minmax(230px,.8fr) minmax(0,1.2fr)!important;
  }
  body.desktop-essay-index .essay-index-card__body{
    padding:20px 22px!important;
  }
}

/* The calendar title has no separator above the 14-day tile rail. */
@media(min-width:621px){
  body.calendar-page #days .shead{
    border-bottom:0!important;
    box-shadow:none!important;
  }
  body.calendar-page #days .shead::before,
  body.calendar-page #days .shead::after{display:none!important;}
  /* The visible rule is the date rail's inherited top border. */
  body.calendar-page .calendar-date-strip{border-top:0!important;}

}

/* Align the dedicated desktop guide pages with the Art Reviews masthead:
   their first content rail begins 34px below the logo, without changing the
   header's controls or the mobile/app layout. */
@media(min-width:621px){
  body.opennow:not(.nbpage) .site-header{
    margin-bottom:4px!important;
  }
  body.calendar-page .site-header{
    margin-bottom:4px!important;
  }
}

/* Keep every review image at the stream's smaller size. Even rows still place
   the image on the right, but swap the column proportions with it. */
@media(min-width:921px){
  body.desktop-essay-index .essay-index-card:nth-child(even){
    grid-template-columns:minmax(0,1.35fr) minmax(280px,.82fr)!important;
  }
}
@media(min-width:761px) and (max-width:920px){
  body.desktop-essay-index .essay-index-card:nth-child(even){
    grid-template-columns:minmax(0,1.2fr) minmax(230px,.8fr)!important;
  }
}
@media(min-width:761px){
  body.desktop-essay-index .essay-index-card__image{
    align-self:center!important;
    width:100%!important;
    height:auto!important;
    min-height:0!important;
    aspect-ratio:4/3!important;
  }
}

/* The header CTA is intentionally the same blue as the Sees Journal logo. */
body.desktop-command-ready.desktop-command-ready .desktop-command__actions .desktop-home__app-store,
body.desktop-home.desktop-command-ready .desktop-command__actions .desktop-home__app-store{
  background:#0870b8!important;
  border-color:rgba(255,255,255,.58)!important;
  box-shadow:0 8px 20px rgba(0,42,82,.3),inset 0 1px 0 rgba(255,255,255,.22)!important;
}
body.desktop-command-ready.desktop-command-ready .desktop-command__actions .desktop-home__app-store:hover,
body.desktop-command-ready.desktop-command-ready .desktop-command__actions .desktop-home__app-store:focus-visible,
body.desktop-home.desktop-command-ready .desktop-command__actions .desktop-home__app-store:hover,
body.desktop-home.desktop-command-ready .desktop-command__actions .desktop-home__app-store:focus-visible{
  background:#0b82cf!important;
}

/* Every desktop header uses the supplied App Store badge at the existing CTA size. */
@media (min-width:901px), (min-width:621px) and (min-height:621px), (min-width:621px) and (pointer:fine), (min-width:621px) and (orientation:portrait){
  body.desktop-command-ready.desktop-command-ready .desktop-command__actions .desktop-home__app-store{
    display:block!important;
    width:124px!important;
    min-width:124px!important;
    max-width:124px!important;
    height:40px!important;
    min-height:40px!important;
    padding:0!important;
    overflow:visible!important;
    border:0!important;
    border-radius:0!important;
    background:transparent!important;
    box-shadow:none!important;
  }
}
@media (min-width:901px), (min-width:621px) and (min-height:621px), (min-width:621px) and (pointer:fine), (min-width:621px) and (orientation:portrait){
  body.desktop-command-ready.desktop-command-ready .desktop-command__actions .desktop-home__app-store:hover,
  body.desktop-command-ready.desktop-command-ready .desktop-command__actions .desktop-home__app-store:focus-visible{
    background:transparent!important;
    box-shadow:none!important;
    transform:translateY(-1px);
  }
}
@media (min-width:901px), (min-width:621px) and (min-height:621px), (min-width:621px) and (pointer:fine), (min-width:621px) and (orientation:portrait){
  body.desktop-command-ready.desktop-command-ready .desktop-command__actions .desktop-home__app-store-badge{
    display:block!important;
    width:124px!important;
    height:40px!important;
    max-width:none!important;
    object-fit:contain!important;
  }
}

/* Keep the mobile/app category bar at the same placement and make it 20% slimmer
   without changing its horizontal footprint or the surrounding city/stats rhythm. */
@media(max-width:620px), (orientation: landscape) and (max-height:620px) and (pointer:coarse){
  body .mastright > .catswitch.is-ready .catswitch__opt{
    padding:2px 2px!important;
    font-size:12.5px!important;
    line-height:1!important;
  }
}

/* Compact mobile/app map pill: 30% smaller with a proportionally scaled
   icon, label, padding, and spacing. Desktop map controls are unchanged. */
@media(max-width:620px), (orientation: landscape) and (max-height:620px) and (pointer:coarse){
  body .map-masthead{
    min-width:58px!important;
    width:58px!important;
    height:25px!important;
    padding:0 8px!important;
    gap:4px!important;
    font-size:10.5px!important;
    line-height:1!important;
    box-sizing:border-box!important;
  }
  body .map-masthead svg{
    width:18px!important;
    height:18px!important;
  }

  /* City pages re-home both controls inside .cityswitch, where the shared
     command-deck rule is intentionally more specific. Override that final
     rule here so the compact dimensions apply to the controls users see. */
  body.has-mobile-masthead .cityswitch > .map-masthead{
    width:58px!important;
    min-width:58px!important;
    height:25px!important;
    min-height:25px!important;
    padding:0 8px!important;
    gap:4px!important;
    font:700 10.5px/1 'Quicksand',sans-serif!important;
  }
  body.has-mobile-masthead .cityswitch > .map-masthead svg{
    width:18px!important;
    height:18px!important;
  }
  body.has-mobile-masthead .cityswitch > .weather-masthead{
    display:grid!important;
    grid-template-columns:15px 20px!important;
    width:39px!important;
    min-width:39px!important;
    height:25px!important;
    min-height:25px!important;
    padding:0!important;
    gap:0!important;
    align-items:center!important;
    justify-content:center!important;
    font:700 9px/1 'Quicksand',sans-serif!important;
  }
  body.has-mobile-masthead .cityswitch > .weather-masthead > .weather-masthead__icon{
    width:13px!important;
    height:13px!important;
    font-size:13px!important;
    line-height:1!important;
    text-align:center!important;
    transform:translateX(2px)!important;
  }
  body.has-mobile-masthead .cityswitch > .weather-masthead > .weather-masthead__temp{
    width:20px!important;
    min-width:20px!important;
    text-align:center!important;
    line-height:1!important;
    transform:translateX(2px)!important;
  }
  /* Search is an icon-only half-width companion immediately left of Map. */
  body.has-mobile-masthead .cityswitch > .srch-btn{
    display:flex!important;
    flex:0 0 34px!important;
    width:34px!important;
    min-width:34px!important;
    height:25px!important;
    min-height:25px!important;
    align-self:center!important;
    margin:0!important;
    box-sizing:border-box!important;
    padding:0!important;
    align-items:center!important;
    justify-content:center!important;
    border:1px solid rgba(255,255,255,.8)!important;
    border-radius:999px!important;
    color:#fff!important;
    background:rgba(0,112,192,.18)!important;
    box-shadow:none!important;
    cursor:pointer!important;
    transform:none!important;
  }
  body.has-mobile-masthead .cityswitch > .srch-btn svg{
    width:16px!important;
    height:16px!important;
    fill:none!important;
    stroke:currentColor!important;
    stroke-width:1.8!important;
    stroke-linecap:round!important;
    stroke-linejoin:round!important;
  }
  body.has-mobile-masthead .cityswitch > .srch-btn__label{display:none!important}

  /* Keep the walkthrough control compact and directly beside the badge rail.
     Reserve its column in the rail so it never overlaps a progress dot. */
  body.has-mobile-masthead .mast-earned-badges{
    width:calc(100vw - 145px)!important;
  }
  body.has-mobile-masthead .mast-inline-actions .help-btn{
    display:flex!important;
    position:fixed!important;
    top:calc(41.14px + env(safe-area-inset-top))!important;
    right:calc(7px + env(safe-area-inset-right))!important;
    left:auto!important;
    z-index:1153!important;
    width:13px!important;
    min-width:13px!important;
    height:18px!important;
    min-height:18px!important;
    margin:0!important;
    padding:0!important;
    align-items:center!important;
    justify-content:center!important;
    gap:0!important;
    border:1px solid rgba(255,255,255,.8)!important;
    border-radius:999px!important;
    color:#fff!important;
    background:rgba(118,84,207,.78)!important;
    box-shadow:0 2px 8px rgba(47,20,111,.2)!important;
    font:700 11px/1 Arial,sans-serif!important;
    transform:none!important;
  }
  body.has-mobile-masthead .mast-inline-actions .help-btn__mark{
    display:block!important;
    width:auto!important;
    height:auto!important;
    border:0!important;
    border-radius:0!important;
    font:700 11px/1 Arial,sans-serif!important;
  }
  body.has-mobile-masthead .mast-inline-actions .help-btn__label{display:none!important}

  /* Bring the first dated rail (Today) and the page stream that follows it
     15px closer to the header without moving the fixed masthead controls. */
  body.home .week-cols{margin-top:calc(var(--secgap) - 15px)!important}

  /* Mobile Art Reviews follows the Today section grammar: one familiar pill
     label, the two newest reviews, and a direct route to the full mobile
     review index. The blue is the established combined-essay label color. */
  body.home[data-cat="art"] #home-essay .essay-feature__head{
    position:absolute!important;
    top:0!important;
    right:0!important;
    left:0!important;
    min-height:26px!important;
    justify-content:center!important;
    margin:0 5px 11px!important;
  }
  body.home[data-cat="art"] #home-essay{
    position:relative!important;
    padding-top:37px!important;
  }
  /* The review label sits on the blue canvas; only the two-card shelf gets
     the glossy Today-in-Art veil. */
  body.home[data-cat="art"] #home-essay .essay-feature{
    padding:0!important;
    overflow:visible!important;
    border:0!important;
    border-radius:0!important;
    background:transparent!important;
    box-shadow:none!important;
  }
  body.home[data-cat="art"] #home-essay .essay-feature__grid{
    position:relative!important;
    isolation:isolate!important;
    overflow:hidden!important;
    padding:18px 14px 17px!important;
    border:0!important;
    border-radius:20px!important;
    background:linear-gradient(180deg,rgba(255,255,255,.12) 0%,rgba(224,244,255,.82) 27%,rgba(249,252,253,.98) 67%)!important;
    box-shadow:0 18px 34px rgba(4,48,84,.16)!important;
    backdrop-filter:blur(16px) saturate(1.08)!important;
    -webkit-backdrop-filter:blur(16px) saturate(1.08)!important;
  }
  body.home[data-cat="art"] #home-essay .essay-feature__grid::before{
    content:"";
    position:absolute;
    z-index:-1;
    inset:0;
    pointer-events:none;
    background:radial-gradient(circle at 50% -18%,rgba(255,255,255,.34),transparent 48%);
  }
  body.home[data-cat="art"] #home-essay .tag--essay{
    display:inline-flex!important;
    align-items:center!important;
    justify-content:center!important;
    padding:7px 12px!important;
    border:0!important;
    border-radius:999px!important;
    background:rgba(0,75,126,.88)!important;
    color:#fff!important;
    font:700 12.5px/1 'Quicksand',sans-serif!important;
    letter-spacing:.02em!important;
    text-transform:uppercase!important;
  }
  body.home[data-cat="art"] #home-essay .essay-feature__kicker,
  body.home[data-cat="art"] #home-essay .essay-feature__heading,
  body.home[data-cat="art"] #home-essay .essay-feature__read{display:none!important}
  body.home[data-cat="art"] #home-essay .essay-feature__all{
    position:static!important;
    display:inline-flex!important;
    align-items:center!important;
    color:#fff!important;
    font:700 14px/1 'Quicksand',sans-serif!important;
    text-decoration:none!important;
  }
  body.home[data-cat="art"] #home-essay .essay-feature__more-wrap{
    display:flex!important;
    justify-content:flex-end!important;
    margin:11px 4px 0!important;
  }
  body.home[data-cat="art"] #home-essay .essay-feature__all{font-size:0!important}
  body.home[data-cat="art"] #home-essay .essay-feature__all::before{
    content:"More reviews  →";
    font:700 14px/1 'Quicksand',sans-serif!important;
  }
  body.home[data-cat="art"] #home-essay .essay-feature__story:nth-child(n+3){display:none!important}
}

/* Mobile information pages: About, Contact, Privacy, and Terms use the same
   blue canvas, high-contrast editorial hierarchy, and raised glass surfaces
   as the app's current guide pages. Their source content and interactions are
   deliberately untouched; this is a shared reading treatment, not a rewrite. */
@media(max-width:620px), (orientation:landscape) and (max-height:620px) and (pointer:coarse){
  :is(body.about-page,body.contact-page,body.legal){
    min-height:100vh;
    color:#fff;
    background:
      radial-gradient(92% 44% at 50% 2%,rgba(255,255,255,.15),transparent 69%),
      linear-gradient(145deg,#087fc8 0%,#0876bb 49%,#0568a9 100%);
  }
  :is(body.about-page,body.contact-page,body.legal) :is(.site-header,.page-hero,.about-page__main,body > .wrap,.site-footer){position:relative;z-index:1}
  body.about-page .site-header,
  body.contact-page .site-header,
  body.legal .site-header{background:transparent!important;border:0!important}

  /* Shared mobile editorial title block. */
  body.about-page .about-page__main,
  body.contact-page > .wrap{padding:0 16px 26px!important;box-sizing:border-box}
  body.about-page .about-page__hero,
  body.contact-page .page-hero,
  body.legal .page-hero{margin:0!important;padding:0 2px 18px!important;text-align:left!important}
  body.about-page .about-page__eyebrow,
  body.contact-page .contact-eyebrow{
    color:#d9f1ff!important;
    font:800 10px/1.1 'Quicksand',sans-serif!important;
    letter-spacing:.14em!important;
    text-transform:uppercase!important;
    text-shadow:0 1px 4px rgba(3,46,78,.25)!important;
  }
  body.about-page .about-page__hero h1,
  body.contact-page .page-hero h1,
  body.legal .page-hero h1{
    margin:8px 0 0!important;
    color:#fff!important;
    font:700 clamp(30px,8.4vw,38px)/1.05 'DM Sans',sans-serif!important;
    letter-spacing:-.045em!important;
    text-align:left!important;
    text-shadow:0 2px 11px rgba(3,46,78,.3)!important;
  }
  body.about-page .about-page__lede,
  body.contact-page .page-hero p:last-child{
    max-width:34rem!important;
    margin:13px 0 0!important;
    color:rgba(255,255,255,.9)!important;
    font:500 16px/1.52 'DM Sans',sans-serif!important;
    text-align:left!important;
    text-shadow:0 1px 5px rgba(3,46,78,.2)!important;
  }
  body.legal .page-hero{padding-bottom:14px!important}

  /* One calm glass language across informational content. */
  body.about-page :is(.about-page__mission,.about-page__panel,.about-page__team,.about-page__contribute),
  body.contact-page :is(.contact-newsletter,.contact-info,.contact-form),
  body.legal .prose,
  body.legal .support-callout{
    box-sizing:border-box!important;
    border:1px solid rgba(255,255,255,.38)!important;
    border-radius:18px!important;
    background:rgba(255,255,255,.12)!important;
    box-shadow:0 12px 28px rgba(4,43,75,.2),inset 0 1px 0 rgba(255,255,255,.18)!important;
    backdrop-filter:blur(16px) saturate(1.12)!important;
    -webkit-backdrop-filter:blur(16px) saturate(1.12)!important;
  }

  /* About mirrors the desktop sections in a single readable mobile column. */
  body.about-page :is(.about-page__mission,.about-page__pillars,.about-page__details,.about-page__contribute){margin-top:16px!important}
  body.about-page .about-page__mission{display:block!important;padding:21px 19px!important;color:rgba(255,255,255,.92)!important}
  body.about-page :is(.about-page__mission h2,.about-page__panel h2,.about-page__team dt,.about-page__contribute h2){color:#fff!important}
  body.about-page .about-page__mission h2,
  body.about-page .about-page__contribute h2{margin:7px 0 0!important;font-size:27px!important;line-height:1.1!important}
  body.about-page .about-page__mission-copy p:not(.about-page__kicker),
  body.about-page .about-page__panel p:not(.about-page__kicker),
  body.about-page .about-page__contribute>p{font-size:15px!important;line-height:1.55!important}
  body.about-page .about-page__mission-copy p:not(.about-page__kicker){margin:13px 0 0!important}
  body.about-page .about-page__cities{margin-top:20px!important;padding:18px 0 0!important;border-top:1px solid rgba(255,255,255,.27)!important;border-left:0!important}
  body.about-page .about-page__cities ul{grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:8px!important;margin:13px 0!important;color:#fff!important;font-size:18px!important}
  body.about-page .about-page__cities li::before{color:#f4c35f!important}
  body.about-page .about-page__cities>p:last-child{color:rgba(255,255,255,.76)!important}
  body.about-page .about-page__pillars,
  body.about-page .about-page__details{display:grid!important;grid-template-columns:1fr!important;gap:12px!important}
  body.about-page .about-page__panel,
  body.about-page .about-page__team{min-height:0!important;padding:20px 19px!important;color:rgba(255,255,255,.91)!important}
  body.about-page .about-page__panel h2{font-size:22px!important}
  body.about-page .about-page__panel p:not(.about-page__kicker){margin:11px 0 0!important}
  body.about-page .about-page__team dl{margin:12px 0 0!important}
  body.about-page .about-page__team dt{font-size:20px!important}
  body.about-page .about-page__team dd{margin:3px 0 14px!important;color:#d9f1ff!important}
  body.about-page .about-page__contribute{display:block!important;padding:21px 19px!important;color:rgba(255,255,255,.92)!important}
  body.about-page .about-page__contribute>p{margin:12px 0 0!important}
  body.about-page .about-page__contribute a:not(.about-page__cta){color:#fff!important;font-weight:700!important}
  body.about-page .about-page__cta{margin-top:17px!important;min-height:42px!important;padding:0 17px!important;border-color:rgba(255,255,255,.8)!important;background:#fff!important;color:#075e9f!important}

  /* Contact uses the same grouped desk layout as desktop, stacked for touch. */
  body.contact-page .page-hero{padding-bottom:17px!important}
  body.contact-page .contact-newsletter{display:block!important;margin:0!important;padding:20px 19px!important;color:#fff!important}
  body.contact-page .contact-newsletter__eyebrow,
  body.contact-page .contact-info__eyebrow,
  body.contact-page .contact-form__eyebrow{margin:0!important;color:#d9f1ff!important;font:800 10px/1.1 'Quicksand',sans-serif!important;letter-spacing:.14em!important;text-transform:uppercase!important}
  body.contact-page .contact-newsletter h3,
  body.contact-page .contact-form h3{margin:7px 0 5px!important;color:#fff!important;font-size:23px!important;line-height:1.1!important}
  body.contact-page .contact-newsletter p:last-child{margin:0!important;color:rgba(255,255,255,.87)!important;font-size:15px!important;line-height:1.5!important}
  body.contact-page .contact-newsletter .row2{display:flex!important;flex-wrap:wrap!important;gap:10px!important;margin-top:16px!important}
  body.contact-page .contact-newsletter input{min-width:0!important;flex:1 1 210px!important;min-height:46px!important;box-sizing:border-box!important}
  body.contact-page .contact-newsletter .btn,
  body.contact-page .contact-form .btn{min-height:45px!important;padding:11px 22px!important;background:#fff!important;color:#075e9f!important;box-shadow:0 6px 16px rgba(7,42,80,.22)!important}
  body.contact-page .contact-grid{display:grid!important;grid-template-columns:1fr!important;gap:12px!important;max-width:none!important;margin:12px 0 0!important}
  body.contact-page .contact-info,
  body.contact-page .contact-form{padding:21px 19px!important;color:#fff!important}
  body.contact-page .contact-info h2{margin:7px 0 12px!important;color:#fff!important;font:700 26px/1.1 'DM Sans',sans-serif!important;letter-spacing:-.035em!important}
  body.contact-page .contact-info>p:not(.contact-info__eyebrow){margin:0!important;color:rgba(255,255,255,.9)!important;font-size:15px!important;line-height:1.55!important}
  body.contact-page .contact-info__notes{gap:12px!important;margin-top:18px!important;padding-top:16px!important;border-top-color:rgba(255,255,255,.25)!important}
  body.contact-page .contact-info__notes span{color:rgba(255,255,255,.82)!important}
  body.contact-page .contact-form{gap:14px!important}
  body.contact-page .contact-form__intro{margin:-2px 0 2px!important;color:rgba(255,255,255,.8)!important;font-size:14px!important;line-height:1.45!important}
  body.contact-page .contact-form .field{gap:6px!important}
  body.contact-page .contact-form .field label{color:#fff!important;font-size:13px!important}
  body.contact-page .contact-form :is(input,textarea,select){border:1px solid rgba(255,255,255,.76)!important;border-radius:11px!important;background:rgba(255,255,255,.96)!important;color:var(--ink)!important}
  body.contact-page .contact-form textarea{min-height:112px!important}

  /* Legal pages retain every paragraph but receive the same mobile reading card. */
  body.legal .prose{max-width:none!important;margin:0 16px!important;padding:21px 19px!important;color:rgba(255,255,255,.92)!important;font-size:15.5px!important;line-height:1.6!important}
  body.legal .prose p{margin:0 0 16px!important}
  body.legal .prose h2{margin:28px 0 11px!important;color:#fff!important;font:700 23px/1.16 'DM Sans',sans-serif!important;letter-spacing:-.025em!important;text-shadow:none!important}
  body.legal .prose h2:first-child{margin-top:2px!important}
  body.legal .prose a{color:#fff!important;text-decoration-thickness:1px!important;text-underline-offset:3px!important}
  body.legal .support-callout{margin:14px 16px 0!important;padding:20px 19px!important;color:#fff!important}
  body.legal .support-callout h2{font-size:22px!important}
  body.legal .support-callout p{font-size:15px!important}
}

/* Mobile About, option 1 — editorial brief. Keep every desktop section, but
   make the mission the clear first read and coverage the compact proof point. */
@media(max-width:620px), (orientation:landscape) and (max-height:620px) and (pointer:coarse){
  body.about-page .about-page__hero{
    padding-bottom:22px!important;
  }
  body.about-page .about-page__hero h1{
    max-width:320px!important;
    font-size:clamp(32px,9vw,39px)!important;
    line-height:1.02!important;
  }
  body.about-page .about-page__lede{
    max-width:33rem!important;
    margin-top:15px!important;
    color:#fff!important;
    font-size:16px!important;
    line-height:1.5!important;
  }
  body.about-page .about-page__mission{
    position:relative!important;
    overflow:hidden!important;
    margin-top:2px!important;
    padding:23px 20px!important;
    border-color:rgba(255,255,255,.46)!important;
    background:linear-gradient(145deg,rgba(255,255,255,.19),rgba(255,255,255,.11))!important;
    box-shadow:0 16px 30px rgba(4,43,75,.22),inset 0 1px 0 rgba(255,255,255,.23)!important;
  }
  body.about-page .about-page__mission::before{
    content:"";
    position:absolute;
    width:190px;
    height:190px;
    top:-128px;
    right:-80px;
    border-radius:50%;
    background:radial-gradient(circle,rgba(255,255,255,.18),rgba(255,255,255,0) 68%);
    pointer-events:none;
  }
  body.about-page .about-page__mission-copy,
  body.about-page .about-page__cities{position:relative!important;z-index:1!important}
  body.about-page .about-page__mission h2{
    max-width:20ch!important;
    margin-top:8px!important;
    font-size:28px!important;
    line-height:1.08!important;
  }
  body.about-page .about-page__mission-copy p:not(.about-page__kicker){
    color:rgba(255,255,255,.96)!important;
    font-size:15.5px!important;
    line-height:1.56!important;
  }
  body.about-page .about-page__mission-context{
    position:relative!important;
    z-index:1!important;
    margin:17px 0 0!important;
    color:rgba(255,255,255,.96)!important;
    font-size:15.5px!important;
    line-height:1.56!important;
  }
  body.about-page .about-page__cities{
    margin-top:20px!important;
    padding-top:17px!important;
    border-top-color:rgba(255,255,255,.34)!important;
  }
  body.about-page .about-page__cities ul{
    gap:9px!important;
    margin:12px 0 11px!important;
    padding:0!important;
    list-style:none!important;
    font-size:18px!important;
    line-height:1.2!important;
  }
  body.about-page .about-page__cities li::before{
    content:"✦"!important;
    display:inline-block!important;
    margin-right:8px!important;
    color:#f4c35f!important;
    font-size:11px!important;
    vertical-align:2px!important;
  }
  body.about-page .about-page__cities>p:last-child{color:rgba(255,255,255,.84)!important}

  /* About moves its editorial identity into the open space beside the mark.
     The lead remains below, so the header carries the name without repeating it. */
  body.about-page .page-mobile-identity.about-mobile-identity{
    top:calc(29px + env(safe-area-inset-top))!important;
    height:60px!important;
    display:flex!important;
    flex-direction:column!important;
    align-items:flex-start!important;
    justify-content:center!important;
    gap:4px!important;
    white-space:normal!important;
    overflow:visible!important;
  }
  body.about-page .about-mobile-identity__eyebrow{
    color:#d9f1ff!important;
    font:800 10px/1.1 'Quicksand',sans-serif!important;
    letter-spacing:.14em!important;
    text-transform:uppercase!important;
  }
  body.about-page .about-mobile-identity strong{
    color:#fff!important;
    font:700 clamp(18px,5.8vw,22px)/1.05 'DM Sans',sans-serif!important;
    letter-spacing:-.035em!important;
    text-shadow:0 2px 10px rgba(7,42,80,.38)!important;
  }
  body.about-page .about-page__hero :is(.about-page__eyebrow,h1){display:none!important}
  body.about-page .about-page__hero{padding-top:0!important}

  /* Contact follows the same logo-side identity pattern as About. */
  body.contact-page .page-mobile-identity.contact-mobile-identity{
    top:calc(29px + env(safe-area-inset-top))!important;
    height:60px!important;
    display:flex!important;
    flex-direction:column!important;
    align-items:flex-start!important;
    justify-content:center!important;
    gap:4px!important;
    white-space:normal!important;
    overflow:visible!important;
  }
  body.contact-page .contact-mobile-identity__eyebrow{
    color:#d9f1ff!important;
    font:800 10px/1.1 'Quicksand',sans-serif!important;
    letter-spacing:.14em!important;
    text-transform:uppercase!important;
  }
  body.contact-page .contact-mobile-identity strong{
    color:#fff!important;
    font:700 clamp(18px,5.8vw,22px)/1.05 'DM Sans',sans-serif!important;
    letter-spacing:-.035em!important;
    text-shadow:0 2px 10px rgba(7,42,80,.38)!important;
  }
  body.contact-page .page-hero :is(.contact-eyebrow,h1){display:none!important}
  body.contact-page .page-hero{padding-top:0!important}
  html:root body.contact-page .site-header{margin-bottom:0!important}
  body.contact-page > .wrap{padding:14px 16px 26px!important}
  body.contact-page .page-hero p:last-child{margin-top:0!important}

  /* Legal pages carry their own page identity beside the mark, without a
     redundant title block between the header and the reading card. */
  body.legal .page-mobile-identity.legal-mobile-identity{
    top:calc(29px + env(safe-area-inset-top))!important;
    height:60px!important;
    display:flex!important;
    flex-direction:column!important;
    align-items:flex-start!important;
    justify-content:center!important;
    gap:4px!important;
    white-space:normal!important;
    overflow:visible!important;
  }
  body.legal .legal-mobile-identity__eyebrow{
    color:#d9f1ff!important;
    font:800 10px/1.1 'Quicksand',sans-serif!important;
    letter-spacing:.14em!important;
    text-transform:uppercase!important;
  }
  body.legal .legal-mobile-identity strong{
    color:#fff!important;
    font:700 clamp(18px,5.8vw,22px)/1.05 'DM Sans',sans-serif!important;
    letter-spacing:-.035em!important;
    text-shadow:0 2px 10px rgba(7,42,80,.38)!important;
  }
  body.legal .page-hero{display:none!important}
  body.legal > .wrap{padding-top:14px!important}

  /* The companion information pages use the same focused lead and luminous
     first reading surface as the mobile About brief. */
  body.contact-page .page-hero,
  body.legal .page-hero{padding-bottom:22px!important}
  body.contact-page .page-hero h1,
  body.legal .page-hero h1{
    max-width:320px!important;
    font-size:clamp(32px,9vw,39px)!important;
    line-height:1.02!important;
  }
  body.contact-page .page-hero p:last-child{
    margin-top:15px!important;
    color:#fff!important;
    font-size:16px!important;
    line-height:1.5!important;
  }
  body.contact-page .contact-newsletter,
  body.legal .prose{
    position:relative!important;
    overflow:hidden!important;
    border-color:rgba(255,255,255,.46)!important;
    background:linear-gradient(145deg,rgba(255,255,255,.19),rgba(255,255,255,.11))!important;
    box-shadow:0 16px 30px rgba(4,43,75,.22),inset 0 1px 0 rgba(255,255,255,.23)!important;
  }
  body.contact-page .contact-newsletter::before,
  body.legal .prose::before{
    content:"";
    position:absolute;
    width:190px;
    height:190px;
    top:-128px;
    right:-80px;
    border-radius:50%;
    background:radial-gradient(circle,rgba(255,255,255,.18),rgba(255,255,255,0) 68%);
    pointer-events:none;
  }
  body.contact-page .contact-newsletter > *,
  body.legal .prose > *{position:relative!important;z-index:1!important}
  body.contact-page .contact-newsletter{margin-top:2px!important;padding:23px 20px!important}
  body.contact-page .contact-newsletter h3{font-size:26px!important;line-height:1.08!important}
  body.contact-page .contact-info,
  body.contact-page .contact-form{border-color:rgba(255,255,255,.34)!important}
  body.legal > .wrap{padding:0 16px 26px!important;box-sizing:border-box!important}
  body.legal .page-hero{margin:0!important;padding-left:2px!important;padding-right:2px!important}
  body.legal .prose{margin:2px 0 0!important;padding:23px 20px!important}
  body.legal .prose > p:first-child{
    margin:0 0 17px!important;
    color:#d9f1ff!important;
    font:800 10px/1.1 'Quicksand',sans-serif!important;
    letter-spacing:.14em!important;
    text-transform:uppercase!important;
  }
  body.legal .prose h2:first-of-type{margin-top:5px!important}
}

/* Final legal mobile baseline: follows the legacy app header spacing rules. */
@media(max-width:620px), (orientation:landscape) and (max-height:620px) and (pointer:coarse){
  html:root body.legal .site-header{margin-bottom:0!important}
  body.legal > .wrap{padding-top:14px!important}
}

/* Final mobile Contact baseline override: this must follow the inherited
   contact rules that otherwise reintroduce the former header gap. */
@media(max-width:620px), (orientation:landscape) and (max-height:620px) and (pointer:coarse){
  html:root body.contact-page .site-header{margin-bottom:0!important}
  body.contact-page > .wrap{padding:14px 16px 26px!important}
  body.contact-page .page-hero p:last-child{margin-top:0!important}
}

/* Use the homepage Art Reviews title scale for primary desktop page titles. */
@media (min-width:901px), (min-width:621px) and (min-height:621px), (min-width:621px) and (pointer:fine), (min-width:621px) and (orientation:portrait){
  body:not(.eventpage):not(.essay-journalpage):not(.desktop-home) .page-hero h1,
  body.listpage .lp-title,
  body.desktop-essay-index .essays-index__hero h1,
  body.calendar-page #days .shead h2,
  body.all-to-see-page .all-to-see-shelf__head h1,
  body.journalpage .journal-identity__title,
  body.savedpage .saved-titleline h1,
  body.mappage main > section > .shead h2{
    font-size:clamp(30px,2.5vw,40px)!important;
  }
}

/* See Now and See Later share the calendar's single glass editorial shelf. */
@media(min-width:621px){
  body.opennow:not(.planpage):not(.nbpage) .on-wrap,
  body.planpage .plan-wrap{
    width:min(1280px,calc(100% - 80px));
    max-width:1280px;
    margin:0 auto 58px;
    padding:18px 20px 28px;
    border:0;
    border-radius:26px;
    background:linear-gradient(180deg,rgba(255,255,255,.12) 0%,rgba(222,242,253,.9) 28%,rgba(250,252,253,.98) 68%);
    box-shadow:0 22px 44px rgba(3,44,77,.2);
    backdrop-filter:blur(16px) saturate(1.16);
    -webkit-backdrop-filter:blur(16px) saturate(1.16);
  }
  body.opennow.planpage:not(.nbpage) .plan-wrap{
    padding-left:20px;
    padding-right:20px;
  }
  body.opennow:not(.planpage):not(.nbpage) .on-titlerow,
  body.planpage .plan-titlerow{
    border-bottom-color:rgba(7,95,159,.22);
  }
  body.opennow:not(.planpage):not(.nbpage) :is(#on-clock,.on-empty,.on-area > h2,.plan-field span),
  body.planpage :is(.plan-title > .lp-sub,.plan-summary,.plan-note,.plan-shead,.plan-field span){
    color:#17384d;
    text-shadow:none;
  }
  body.opennow:not(.planpage):not(.nbpage) .on-area > h2,
  body.planpage .plan-shead{
    border-bottom-color:rgba(7,95,159,.24);
  }
}

/* Editorial Desk feature: seven review leads as a compact visual index. */
.editorial-feature{
  display:grid;
  grid-template-columns:minmax(0,1.05fr) minmax(280px,.95fr);
  align-items:center;
  gap:clamp(20px,3vw,42px);
  margin:26px 0 34px;
  padding:clamp(16px,2vw,24px);
  border:1px solid rgba(255,255,255,.4);
  border-radius:22px;
  background:linear-gradient(135deg,rgba(226,245,255,.2),rgba(8,87,143,.28));
  box-shadow:0 16px 34px rgba(3,39,72,.2),inset 0 1px 0 rgba(255,255,255,.24);
  backdrop-filter:blur(14px) saturate(1.12);
  -webkit-backdrop-filter:blur(14px) saturate(1.12);
}
.editorial-feature__mosaic,
.editorial-story__mosaic{
  display:grid;
  grid-template-columns:repeat(7,minmax(0,1fr));
  grid-auto-rows:clamp(80px,10vw,132px);
  gap:5px;
  overflow:hidden;
  border:1px solid rgba(255,255,255,.5);
  border-radius:15px;
  background:rgba(2,34,61,.3);
  box-shadow:0 9px 22px rgba(2,34,61,.22);
}
.editorial-feature__mosaic img,
.editorial-story__mosaic img{
  display:block;
  width:100%;
  height:100%;
  min-width:0;
  object-fit:cover;
  object-position:center;
}
.editorial-feature__copy{min-width:0;color:#fff}
.editorial-feature__eyebrow{margin:0 0 10px;color:#ffd15b;font:700 11px/1.2 'Quicksand',sans-serif;letter-spacing:.16em;text-transform:uppercase}
.editorial-feature__copy h2{margin:0;color:#fff;font:700 clamp(28px,3.1vw,42px)/1.02 'DM Sans',sans-serif;letter-spacing:-.04em;text-shadow:0 2px 10px rgba(2,34,61,.36)}
.editorial-feature__copy h2 a{color:inherit;text-decoration:none}
.editorial-feature__dek{margin:12px 0 0;color:rgba(255,255,255,.94);font:500 clamp(15px,1.35vw,18px)/1.5 'Quicksand',sans-serif}
.editorial-feature__byline{margin:12px 0 0;color:rgba(255,255,255,.76);font:600 12px/1.4 'Quicksand',sans-serif;letter-spacing:.03em}
.editorial-feature__link{display:inline-flex;align-items:center;gap:9px;margin-top:18px;color:#fff;font:700 13px/1.3 'Quicksand',sans-serif;letter-spacing:.06em;text-decoration:none;text-transform:uppercase}
.editorial-feature__link span{color:#ffd15b;font-size:19px;transition:transform .18s ease}
.editorial-feature__link:hover span{transform:translateX(4px)}
.editorial-feature__link:focus-visible,
.editorial-feature__copy h2 a:focus-visible{outline:2px solid #ffd15b;outline-offset:4px;border-radius:3px}
.editorial-feature--index{
  max-width:1180px;
  margin:0 auto 30px;
  background:#0070c0;
  border-color:rgba(255,255,255,.5);
  box-shadow:0 8px 20px rgba(0,62,108,.18),inset 0 1px 0 rgba(255,255,255,.34);
  backdrop-filter:blur(16px) saturate(1.2);
  -webkit-backdrop-filter:blur(16px) saturate(1.2);
}
@media(min-width:701px){
  .editorial-feature--index{grid-template-columns:minmax(280px,.82fr) minmax(0,1.35fr)}
  .editorial-feature--index .editorial-feature__mosaic,
  .home-editorial-feature .editorial-feature__mosaic{
    aspect-ratio:2/1;
    grid-template-columns:repeat(7,minmax(0,1fr));
    grid-template-rows:minmax(0,1fr);
    grid-auto-rows:unset;
    gap:0;
  }
}
@media(max-width:700px){
  .editorial-feature--index .editorial-feature__mosaic,
  .home-editorial-feature .editorial-feature__mosaic{
    aspect-ratio:4/3;
    grid-template-columns:repeat(7,minmax(0,1fr));
    grid-template-rows:minmax(0,1fr);
    grid-auto-rows:unset;
    gap:0;
  }
}
.home-editorial-feature{margin:24px 0 30px}
.home-editorial-feature .editorial-feature__eyebrow{
  display:inline-flex;
  align-items:center;
  margin:0 0 12px;
  padding:6px 11px;
  border-radius:999px;
  background:#ffd15b;
  color:#07395e;
  font:800 11px/1 'Quicksand',sans-serif;
  letter-spacing:.1em;
  text-transform:uppercase;
}
body.home:not([data-cat="art"]) .home-editorial-feature,
body.desktop-home:not([data-cat="art"]) .home-editorial-feature{display:none}
.editorial-story .essay-journal-section__content{max-width:940px}
.editorial-story .essay-journal-title{margin-bottom:2px}
.editorial-story .essay-journal-summary{max-width:760px}
.editorial-story__mosaic{margin:26px 0 30px;grid-auto-rows:clamp(90px,12vw,158px)}
.editorial-story__body{max-width:760px;margin-left:auto!important;margin-right:auto!important}
.editorial-story__note{font-size:.88em;line-height:1.55}
.editorial-story__note a,
.editorial-story .essay-journal-footer a{color:#076da9;text-decoration:underline;text-underline-offset:3px}
.editorial-story__back{display:inline-flex;gap:9px;margin-top:23px;color:#076da9;font:700 13px/1.3 'Quicksand',sans-serif;letter-spacing:.06em;text-decoration:none;text-transform:uppercase}
.editorial-story__back span{color:#bf8a34}
@media(max-width:700px){
  .editorial-feature{grid-template-columns:1fr;gap:17px;margin:20px 0 25px;padding:14px;border-radius:17px}
  body.home:not(.desktop-home) .home-editorial-feature{margin-top:56px}
  .editorial-feature__mosaic{grid-template-columns:repeat(4,minmax(0,1fr));grid-auto-rows:clamp(62px,18vw,94px);gap:4px}
  .editorial-feature__copy h2{font-size:clamp(27px,8vw,36px)}
  .editorial-feature__dek{font-size:15px}
  .editorial-feature__link{margin-top:13px}
  .editorial-feature--index{margin-bottom:20px}
  .editorial-story__mosaic{aspect-ratio:4/3;grid-template-columns:repeat(7,minmax(0,1fr));grid-template-rows:minmax(0,1fr);grid-auto-rows:unset;gap:0;margin:20px 0 24px}
  .editorial-story__mosaic img:last-child{grid-column:auto}
}

/* One desktop page frame. The header's inner row, every page's content column and the footer share
   one width at every desktop window size: 1200px, or the window minus 40px per side when
   narrower. The homepage defines the frame; every desktop page resizes with it in lockstep.
   (:not(#sj-frame) matches every page; it only lifts this rule above page-specific widths.) */
@media (min-width:621px) and (min-height:621px), (min-width:621px) and (pointer:fine), (min-width:621px) and (orientation:portrait){
  :root{--sj-frame:min(1200px,calc(100% - 80px))}
  html body:not(#sj-frame) .site-header .site-header__in{width:var(--sj-frame)!important;max-width:1200px!important;
    margin-left:auto!important;margin-right:auto!important;padding-left:0!important;padding-right:0!important}
  html body:not(#sj-frame) > main,
  html body:not(#sj-frame) > .wrap,
  html body:not(#sj-frame) > .desktop-home__wrap,
  html body:not(#sj-frame) .site-footer > .wrap{width:var(--sj-frame)!important;max-width:1200px!important;
    margin-left:auto!important;margin-right:auto!important;padding-left:0!important;padding-right:0!important;
    box-sizing:border-box}
}
@media(min-width:761px){
  /* The Reviews index is itself a glass panel on the frame; its cards stay inset inside it. */
  html body.desktop-essay-index:not(#sj-frame) > main.essays-index{padding:24px!important}
}

/* Narrow desktop windows keep the same header components as the homepage at full
   width; only the grid gives way. 780-859px: a narrower tagline column so the six
   routes fit. 621-779px: the routes take their own full-width row under the logo,
   tagline and city picker (the App Store badge stays in the footer). */
@media (min-width:780px) and (max-width:859px) and (min-height:621px),
       (min-width:780px) and (max-width:859px) and (pointer:fine),
       (min-width:780px) and (max-width:859px) and (orientation:portrait){
  html body.desktop-command-ready.desktop-command-ready:not(#sj-frame) .site-header__in{
    grid-template-columns:72px 170px minmax(0,1fr)!important;column-gap:16px!important}
  html body.desktop-command-ready:not(#sj-frame) .desktop-command__intro strong{font-size:14px}
}
@media (min-width:621px) and (max-width:779px) and (min-height:621px),
       (min-width:621px) and (max-width:779px) and (pointer:fine),
       (min-width:621px) and (max-width:779px) and (orientation:portrait){
  html body.desktop-command-ready.desktop-command-ready:not(#sj-frame) .site-header__in{
    grid-template-columns:72px minmax(0,1fr) auto!important;grid-template-rows:auto auto auto!important;
    column-gap:16px!important;row-gap:10px!important}
  html body.desktop-command-ready:not(#sj-frame) .site-header__in > .logo{grid-column:1!important;grid-row:1 / 3!important}
  html body.desktop-command-ready:not(#sj-frame) .site-header__in > .desktop-command__intro{grid-column:2!important;grid-row:1!important}
  html body.desktop-command-ready:not(#sj-frame) .site-header__in > .desktop-guide-switch{grid-column:2!important;grid-row:2!important;justify-self:start!important;width:205px!important;max-width:100%!important}
  html body.desktop-command-ready:not(#sj-frame) .site-header__in > .desktop-command__actions{grid-column:3!important;grid-row:1 / 3!important;align-self:start!important}
  html body.desktop-command-ready:not(#sj-frame) .site-header__in > .topnav{grid-column:1 / -1!important;grid-row:3!important;width:100%!important}
  html body.desktop-command-ready:not(#sj-frame) .site-header__in .desktop-home__app-store{display:none!important}
}

/* Desktop Saved keeps the shared desktop header: the phone masthead's Map and weather
   pills stay on phones instead of covering the App Store badge. The planner panel is
   hidden until it is opened (or embedded inline on the Saved page), so its unstyled
   markup never trails the footer. */
@media (min-width:621px) and (min-height:621px), (min-width:621px) and (pointer:fine), (min-width:621px) and (orientation:portrait){
  html body.has-mobile-masthead:not(#sj-frame) .site-header .cityswitch > .map-masthead,
  html body.has-mobile-masthead:not(#sj-frame) .site-header .cityswitch > .weather-masthead{display:none!important}
  #savedpanel.savedpanel:not(.is-open){display:none}
}
/* Must Sees and Solo Shows sit side by side on wide desktop windows; below 860px
   each takes the full frame width instead of squeezing its cards. */
@media (min-width:621px) and (max-width:859px) and (min-height:621px),
       (min-width:621px) and (max-width:859px) and (pointer:fine),
       (min-width:621px) and (max-width:859px) and (orientation:portrait){
  html body.desktop-home:not(#sj-frame) #desktop-home-curated{grid-template-columns:minmax(0,1fr)!important}
}

/* ---- Desktop See Now / See Later: the homepage's glass panels, headings and image tiles.
   Same markup as the homepage cards (card--mini), so this is presentation only; phones keep
   their own layout. Scoped to the two list pages (body.listpage.opennow covers See Later). */
@media (min-width:621px) and (min-height:621px), (min-width:621px) and (pointer:fine), (min-width:621px) and (orientation:portrait){
  html body.listpage.opennow:not(#sj-frame) > main.on-wrap{
    background:none!important;border:0!important;box-shadow:none!important;
    backdrop-filter:none!important;-webkit-backdrop-filter:none!important;padding-top:18px!important;
  }
  body.listpage.opennow .on-titlerow,body.listpage.opennow .plan-title{
    display:flex!important;align-items:center;gap:16px;flex-wrap:wrap;margin:0 0 6px!important;
    padding:0!important;border:0!important;
  }
  body.listpage.opennow .lp-title{
    margin:0!important;color:#edf9ff!important;font-family:'DM Sans',sans-serif!important;
    font-size:clamp(30px,2.5vw,40px)!important;font-weight:800!important;line-height:1.02!important;
    letter-spacing:-.04em;
    text-shadow:0 1px 0 rgba(255,255,255,.92),0 2px 0 rgba(9,72,112,.28),0 5px 12px rgba(4,35,62,.32)!important;
  }
  body.listpage.opennow .lp-sub,body.listpage.opennow .plan-summary,body.listpage.opennow .plan-note{
    color:rgba(255,255,255,.86)!important;text-shadow:0 1px 5px rgba(4,35,62,.2);
  }
  /* filters sit in one glass panel, like the homepage command panels */
  body.listpage.opennow .plan-form,
  body.listpage.opennow:not(.nbpage) .on-filter-form,
  body.listpage.planpage #plan-form.plan-form{
    margin:14px 0 22px!important;padding:18px 20px!important;border-radius:20px;
    background:linear-gradient(180deg,rgba(255,255,255,.18),rgba(224,244,255,.86) 60%,rgba(249,252,253,.98))!important;
    box-shadow:0 24px 46px rgba(4,48,84,.16)!important;
    backdrop-filter:blur(16px) saturate(1.08);-webkit-backdrop-filter:blur(16px) saturate(1.08);
  }
  body.listpage.opennow .plan-form .plan-field > span:first-child,
  body.listpage.planpage #plan-form.plan-form .plan-field > span:first-child{color:#0b4f80!important;opacity:1!important;text-shadow:none!important}
  /* Like the homepage, show only informative badges (Opening, Reception, Closing, Talk...);
     the page-level "See Now" / "To See" label stays hidden on every tile. */
  body.listpage.opennow :is(.on-area,.plan-section) .card--mini .card__kick:not(.kick--exhibition):not(.kick--featured){
    display:inline-flex!important;
  }
  /* each neighborhood / See Later section is a homepage glass panel */
  body.listpage.opennow .on-area,body.listpage.opennow .plan-section{
    margin:0 0 22px!important;padding:24px!important;border:0!important;border-radius:20px!important;
    background:linear-gradient(rgba(255,255,255,.12) 0%,rgba(224,244,255,.82) 27%,rgba(249,252,253,.98) 67%)!important;
    box-shadow:0 24px 46px rgba(4,48,84,.16)!important;
    backdrop-filter:blur(16px) saturate(1.08);-webkit-backdrop-filter:blur(16px) saturate(1.08);
  }
  body.listpage.opennow .on-area > h2,body.listpage.opennow .plan-shead{
    margin:0 0 20px!important;padding:0 0 13px!important;border-bottom:1px solid rgba(8,119,192,.28)!important;
  }
  body.listpage.opennow .on-area > h2,body.listpage.opennow .plan-shead h2{
    color:#edf9ff!important;font-family:'DM Sans',sans-serif!important;font-size:clamp(26px,2.2vw,36px)!important;
    font-weight:800!important;line-height:1.02!important;letter-spacing:-.04em;
    text-shadow:0 1px 0 rgba(255,255,255,.92),0 2px 0 rgba(9,72,112,.28),0 5px 12px rgba(4,35,62,.32)!important;
  }
  body.listpage.opennow .on-area .grid,body.listpage.opennow .plan-section .grid{
    display:grid!important;grid-template-columns:repeat(4,minmax(0,1fr))!important;gap:16px!important;
  }
  /* homepage image tiles: artwork fills the card, text over a dark fade, badges top-left */
  body.listpage.opennow :is(.on-area,.plan-section) .card--mini{
    position:relative!important;display:block;min-width:0;min-height:236px!important;height:auto!important;
    overflow:hidden;border-radius:18px!important;padding:0!important;
    background:linear-gradient(150deg,var(--blue),#03426f)!important;
    box-shadow:0 12px 28px rgba(7,42,80,.22),0 2px 7px rgba(7,42,80,.13)!important;
    transition:transform .18s ease,box-shadow .18s ease;
  }
  body.listpage.opennow :is(.on-area,.plan-section) .card--mini:hover{
    transform:translateY(-3px);box-shadow:0 17px 34px rgba(7,42,80,.28),0 3px 9px rgba(7,42,80,.16)!important;
  }
  body.listpage.opennow :is(.on-area,.plan-section) .card--mini .mini__media{
    position:absolute!important;inset:0;width:100%;height:100%!important;aspect-ratio:auto!important;
    border-radius:0!important;margin:0!important;
  }
  body.listpage.opennow :is(.on-area,.plan-section) .card--mini .mini__media img,
  body.listpage.opennow :is(.on-area,.plan-section) .card--mini .mini__media picture{
    width:100%;height:100%;object-fit:cover;
  }
  body.listpage.opennow :is(.on-area,.plan-section) .card--mini .mini__media::after{
    content:"";position:absolute;inset:0;z-index:1;pointer-events:none;
    background:linear-gradient(180deg,rgba(6,21,34,.02) 18%,rgba(6,21,34,.42) 44%,rgba(3,18,32,.94) 100%);
  }
  body.listpage.opennow :is(.on-area,.plan-section) .card--mini .card__kicks{
    position:absolute!important;top:11px;left:14px;z-index:3;display:flex;gap:5px;
  }
  body.listpage.opennow :is(.on-area,.plan-section) .card--mini .mini__txt{
    position:absolute!important;left:0;right:0;bottom:0;z-index:2;
    padding:46px 15px 15px!important;background:linear-gradient(180deg,transparent,rgba(3,18,32,.18))!important;
  }
  body.listpage.opennow :is(.on-area,.plan-section) .card--mini .card__title{
    color:#fff!important;font-size:16px!important;line-height:1.16!important;
    text-shadow:0 2px 8px rgba(0,0,0,.52)!important;
  }
  body.listpage.opennow :is(.on-area,.plan-section) .card--mini :is(.card__date,.card__venue,.card__addr,.card__hours){
    color:rgba(255,255,255,.86)!important;text-shadow:0 1px 5px rgba(0,0,0,.55)!important;
  }
}
/* One title row on both pages: title, Near me right beside it, live stats at the right edge. */
@media (min-width:621px) and (min-height:621px), (min-width:621px) and (pointer:fine), (min-width:621px) and (orientation:portrait){
  body.listpage.opennow :is(.on-titlerow,.plan-titlerow){
    display:flex!important;align-items:center!important;justify-content:flex-start!important;gap:16px!important;
    flex-wrap:wrap;width:100%;margin:0!important;
  }
  body.listpage.opennow :is(.on-titlerow,.plan-titlerow) > .lp-title{flex:0 0 auto;margin:0!important;min-width:4.4em}
  body.listpage.opennow :is(.on-titlerow,.plan-titlerow) > .on-near{
    position:static!important;flex:0 0 auto;margin:0!important;transform:none!important;align-self:center;
  }
  body.listpage.opennow :is(.on-titlerow,.plan-titlerow) > .homestats{margin:0 0 0 auto!important;align-self:center}
}
/* Narrow desktop windows keep the homepage's column count steps. */
@media (min-width:621px) and (max-width:1099px) and (min-height:621px), (min-width:621px) and (max-width:1099px) and (pointer:fine){
  body.listpage.opennow .on-area .grid,body.listpage.opennow .plan-section .grid{grid-template-columns:repeat(3,minmax(0,1fr))!important}
}
@media (min-width:621px) and (max-width:859px) and (min-height:621px), (min-width:621px) and (max-width:859px) and (pointer:fine){
  body.listpage.opennow .on-area .grid,body.listpage.opennow .plan-section .grid{grid-template-columns:repeat(2,minmax(0,1fr))!important}
}

/* ---- Desktop Atlas: the homepage's glass panels, headings and image tiles (presentation only;
   phones keep their own layout). The venue photo, or its colour monogram, fills the tile. */
@media (min-width:621px) and (min-height:621px), (min-width:621px) and (pointer:fine), (min-width:621px) and (orientation:portrait){
  body.atlas-page .area{
    margin:0 0 22px!important;padding:24px!important;border:0!important;border-radius:20px!important;
    background:linear-gradient(rgba(255,255,255,.12) 0%,rgba(224,244,255,.82) 27%,rgba(249,252,253,.98) 67%)!important;
    box-shadow:0 24px 46px rgba(4,48,84,.16)!important;
    backdrop-filter:blur(16px) saturate(1.08);-webkit-backdrop-filter:blur(16px) saturate(1.08);
  }
  body.atlas-page .area__head{
    display:flex!important;align-items:center;gap:12px;
    margin:0 0 20px!important;padding:0 0 13px!important;border-bottom:1px solid rgba(8,119,192,.28)!important;
    color:#edf9ff!important;font-family:'DM Sans',sans-serif!important;font-size:clamp(26px,2.2vw,36px)!important;
    font-weight:800!important;line-height:1.02!important;letter-spacing:-.04em;
    text-shadow:0 1px 0 rgba(255,255,255,.92),0 2px 0 rgba(9,72,112,.28),0 5px 12px rgba(4,35,62,.32)!important;
  }
  body.atlas-page .area__count{
    color:rgba(255,255,255,.86)!important;border-color:rgba(255,255,255,.55)!important;
    font:700 11px/1 'DM Sans',sans-serif!important;letter-spacing:0;text-shadow:0 1px 5px rgba(4,35,62,.2)!important;
  }
  body.atlas-page .vgrid{display:grid!important;grid-template-columns:repeat(4,minmax(0,1fr))!important;gap:16px!important}
  body.atlas-page .vcard{
    position:relative!important;display:block!important;min-width:0;min-height:236px!important;
    overflow:hidden;border:0!important;border-radius:18px!important;padding:0!important;
    background:linear-gradient(150deg,var(--blue),#03426f)!important;
    box-shadow:0 12px 28px rgba(7,42,80,.22),0 2px 7px rgba(7,42,80,.13)!important;
    transition:transform .18s ease,box-shadow .18s ease;
  }
  body.atlas-page .vcard:hover{transform:translateY(-3px);box-shadow:0 17px 34px rgba(7,42,80,.28),0 3px 9px rgba(7,42,80,.16)!important}
  body.atlas-page .vcard__media{
    position:absolute!important;inset:0;width:100%;height:100%!important;aspect-ratio:auto!important;
    margin:0!important;border-radius:0!important;
  }
  body.atlas-page .vcard__photo{width:100%;height:100%;object-fit:cover}
  body.atlas-page .vcard__mono{top:38%!important;transform:translate(-50%,-50%)}
  body.atlas-page .vcard__media::after{
    content:"";position:absolute;inset:0;z-index:1;pointer-events:none;
    background:linear-gradient(180deg,rgba(6,21,34,.02) 18%,rgba(6,21,34,.42) 44%,rgba(3,18,32,.94) 100%);
  }
  body.atlas-page .vcard__body{
    position:absolute!important;left:0;right:0;bottom:0;z-index:2;
    padding:46px 15px 14px!important;background:linear-gradient(180deg,transparent,rgba(3,18,32,.18))!important;
  }
  body.atlas-page .vcard__name,body.atlas-page .vcard__name a{
    color:#fff!important;font-size:16px!important;line-height:1.16!important;border:0!important;padding:0!important;
    margin:0 0 4px!important;text-shadow:0 2px 8px rgba(0,0,0,.52)!important;
  }
  body.atlas-page .vcard__addr{margin:0 0 8px!important;font-size:12.5px!important;line-height:1.3!important;color:rgba(255,255,255,.86)!important;text-shadow:0 1px 5px rgba(0,0,0,.55)!important}
  body.atlas-page .vcard__foot{margin:0!important;padding:0!important;border:0!important}
  body.atlas-page .vcard__foot a,body.atlas-page .vcard__foot button{color:#fff!important;text-shadow:0 1px 5px rgba(0,0,0,.55)!important}
}
@media (min-width:621px) and (max-width:1099px) and (min-height:621px), (min-width:621px) and (max-width:1099px) and (pointer:fine){
  body.atlas-page .vgrid{grid-template-columns:repeat(3,minmax(0,1fr))!important}
}
@media (min-width:621px) and (max-width:859px) and (min-height:621px), (min-width:621px) and (max-width:859px) and (pointer:fine){
  body.atlas-page .vgrid{grid-template-columns:repeat(2,minmax(0,1fr))!important}
}

/* Atlas aerial thumbnails drawn as four plain tiles (window.seesAerialThumb): same frame and
   greyscale treatment the per-card Leaflet maps had, on every device. */
.vcard__sat--tiles{position:absolute;inset:0;z-index:1;width:100%;height:100%;overflow:hidden;pointer-events:none}
.vcard__sat--tiles img{filter:grayscale(1)}

/* Mapillary requires a visible credit on street-level photos served from our own server. */
.vcard__credit{position:absolute;top:10px;right:10px;z-index:4;padding:3px 8px;border-radius:999px;
  background:rgba(3,18,32,.62);color:#fff!important;font:700 10px/1.2 'DM Sans',sans-serif;letter-spacing:.02em;
  text-decoration:none!important;text-shadow:none!important}
.vcard__credit:hover{background:rgba(3,18,32,.82)}

/* Venue detail pages (venues/<slug>.html, every city) share the homepage's desktop
   surface: azure canvas, transparent command-bar header, white type, glass sections
   and raised media. Mobile/app keeps its own venue layout. */
@media(min-width:621px){
  body.venuepage{
    background:
      radial-gradient(1050px 570px at 50% 0%,rgba(255,255,255,.16),transparent 70%),
      linear-gradient(135deg,#087fca 0%,#0877c0 46%,#056caf 100%)!important;
    color:#fff}
  body.venuepage .site-header{background:transparent!important;border-bottom:none!important;box-shadow:none!important}
  body.venuepage .site-footer{background:transparent!important;border-top:1px solid rgba(255,255,255,.2)}
  body.venuepage > .wrap:not(.site-header__in),
  body.venuepage > main.wrap{padding-top:18px!important;padding-bottom:56px!important}
  body.venuepage{min-height:100vh}
  body.venuepage > main.lp-wrap{min-height:calc(100vh - 360px)}
  body.venuepage .vp-back,
  body.venuepage .ep-back{
    color:rgba(255,255,255,.86)!important;text-decoration:none;
    font:600 13px/1.3 'Quicksand',sans-serif!important;letter-spacing:.04em;text-transform:uppercase}
  body.venuepage .vp-back:hover,
  body.venuepage .ep-back:hover{color:#fff!important;text-decoration:underline}
  body.venuepage .vp-area,
  body.venuepage .vp-area a{color:#ffd15b!important;text-decoration:none}
  body.venuepage .vp-name,
  body.venuepage .ep-title{
    color:#fff!important;font:700 clamp(38px,4vw,54px)/1.04 'DM Sans',sans-serif!important;
    letter-spacing:-.04em;text-shadow:0 2px 10px rgba(2,34,61,.36)}
  body.venuepage .ep-title{margin-top:20px}
  body.venuepage .vp-addr,
  body.venuepage .ep-hours,
  body.venuepage .ep-when{color:rgba(255,255,255,.92)!important;font-size:17px}
  body.venuepage .ep-when a,
  body.venuepage .vp-dir{color:#fff!important;font-weight:700;text-decoration:underline;text-underline-offset:3px}
  body.venuepage .vp-visit{
    color:#07395e!important;background:#ffd15b!important;border-radius:999px!important;
    padding:10px 18px!important;box-shadow:0 8px 18px rgba(2,34,61,.22)}
  body.venuepage .vp-visit:hover{background:#ffe08a!important}
  body.venuepage .vp-photo img,
  body.venuepage .vp-map{
    border:1px solid rgba(255,255,255,.5)!important;border-radius:18px!important;
    box-shadow:0 16px 36px rgba(7,42,80,.28)}
  body.venuepage .vp-photo img{display:block;width:100%;height:auto;max-height:520px;object-fit:cover}
  body.venuepage .vp-note{color:rgba(255,255,255,.72)!important}
  body.venuepage .vp-hours{color:#fff!important;opacity:.9;font-weight:600}
  body.venuepage .vp-sec{
    margin:28px 0 0!important;padding:22px 26px 24px;
    border:1px solid rgba(255,255,255,.4);border-radius:22px;
    background:rgba(255,255,255,.13);
    box-shadow:0 12px 30px rgba(7,42,80,.2);
    backdrop-filter:blur(14px) saturate(1.12);-webkit-backdrop-filter:blur(14px) saturate(1.12)}
  body.venuepage .vp-sec h2{
    color:#fff!important;font:700 26px/1.1 'DM Sans',sans-serif!important;letter-spacing:-.03em;
    border-bottom:1px solid rgba(255,255,255,.35)!important}
  body.venuepage .vp-sec p,
  body.venuepage .vp-sec li{color:rgba(255,255,255,.92)!important}
  body.venuepage .vp-sec a,
  body.venuepage .vp-nearby a{color:#fff!important}
  body.venuepage .vp-nearby a{
    display:inline-block;padding:7px 14px;border:1px solid rgba(255,255,255,.55);border-radius:999px;
    background:rgba(255,255,255,.12);font-size:14px;text-decoration:none}
  body.venuepage .vp-nearby a:hover{background:rgba(255,255,255,.22);border-color:#fff}
}

/* San Diego adds Comedy as a fourth guide: keep Art · Theater · Drag · Comedy on one
   timeline row (Comedy right of Drag) at the existing ~68px per stop. The switch may
   extend into the header's right column, whose controls are right-aligned. */
@media (min-width:621px){
  html body.desktop-command-ready.desktop-command-ready .desktop-guide-switch:has(> [data-desktop-cat="comedy"]){
    grid-template-columns:repeat(4,minmax(0,1fr))!important;
    width:274px!important;
    max-width:none!important;
    position:relative;
    z-index:3;
  }
  html body.desktop-command-ready.desktop-command-ready .desktop-guide-switch:has(> [data-desktop-cat="comedy"])::before{
    left:12.5%!important;
    right:12.5%!important;
  }
}


/* Share row (essays and the Reviews list page): brand-colored circles, then copy link, email and print. */
:is(body.essay-journalpage,body.essays-index-page) .essay-share-row{margin:30px 0 0;text-align:center}
body.essays-index-page .essay-share-row{margin:36px auto 12px;max-width:760px;padding:18px 16px 20px;border-radius:18px;background:#fff;box-shadow:0 6px 18px rgba(7,42,80,.12)}
:is(body.essay-journalpage,body.essays-index-page) .essay-share-row__label{margin:0 0 12px;color:#0070c0;font:800 10px/1.1 'Quicksand',sans-serif;letter-spacing:.12em;text-transform:uppercase}
:is(body.essay-journalpage,body.essays-index-page) .essay-share-row__list{display:flex;flex-wrap:wrap;justify-content:center;gap:10px}
:is(body.essay-journalpage,body.essays-index-page) .essay-share-row__btn{display:inline-flex;align-items:center;justify-content:center;width:44px;height:44px;padding:0;border:0;border-radius:50%;background:#e9edf0;color:#26313a;cursor:pointer;text-decoration:none;transition:transform .15s ease,box-shadow .15s ease,filter .15s ease}
:is(body.essay-journalpage,body.essays-index-page) .essay-share-row__btn svg{width:21px;height:21px;fill:currentColor}
:is(body.essay-journalpage,body.essays-index-page) .essay-share-row__btn:hover,:is(body.essay-journalpage,body.essays-index-page) .essay-share-row__btn:focus-visible{transform:translateY(-2px);box-shadow:0 5px 12px rgba(7,42,80,.18);filter:brightness(1.06)}
:is(body.essay-journalpage,body.essays-index-page) .essay-share-row__btn:focus-visible{outline:2px solid #0070c0;outline-offset:3px}
/* Facebook's and Reddit's marks are themselves circles: drawn full size in brand color. */
:is(body.essay-journalpage,body.essays-index-page) .essay-share-row__btn--facebook,:is(body.essay-journalpage,body.essays-index-page) .essay-share-row__btn--reddit{background:#fff}
:is(body.essay-journalpage,body.essays-index-page) .essay-share-row__btn--facebook{color:#0866ff}
:is(body.essay-journalpage,body.essays-index-page) .essay-share-row__btn--reddit{color:#ff4500}
:is(body.essay-journalpage,body.essays-index-page) .essay-share-row__btn--facebook svg,:is(body.essay-journalpage,body.essays-index-page) .essay-share-row__btn--reddit svg{width:44px;height:44px}
:is(body.essay-journalpage,body.essays-index-page) .essay-share-row__btn--bluesky{background:#1185fe;color:#fff}
:is(body.essay-journalpage,body.essays-index-page) .essay-share-row__btn--threads,:is(body.essay-journalpage,body.essays-index-page) .essay-share-row__btn--x{background:#000;color:#fff}
:is(body.essay-journalpage,body.essays-index-page) .essay-share-row__btn--x svg{width:18px;height:18px}
:is(body.essay-journalpage,body.essays-index-page) .essay-share-row__btn--nextdoor{background:#8ed500;color:#fff}
:is(body.essay-journalpage,body.essays-index-page) .essay-share-row__btn--linkedin{background:#0a66c2;color:#fff}
:is(body.essay-journalpage,body.essays-index-page) .essay-share-row__btn--link.is-copied{background:#0070c0;color:#fff}
@media (max-width:520px){
  :is(body.essay-journalpage,body.essays-index-page) .essay-share-row__list{gap:10px;max-width:260px;margin:0 auto}
}
@media (max-width:340px){
  :is(body.essay-journalpage,body.essays-index-page) .essay-share-row__list{gap:8px;max-width:232px}
  :is(body.essay-journalpage,body.essays-index-page) .essay-share-row__btn,:is(body.essay-journalpage,body.essays-index-page) .essay-share-row__btn--facebook svg,:is(body.essay-journalpage,body.essays-index-page) .essay-share-row__btn--reddit svg{width:40px;height:40px}
}

/* Printed essays: title, byline, text, images and the critic's note only. */
@media print{
  body.essay-journalpage .site-header,body.essay-journalpage .essay-read-row,body.essay-journalpage .essay-audio,
  body.essay-journalpage .essay-share-row,body.essay-journalpage .essay-related-event,body.essay-journalpage .essay-more-essays,
  body.essay-journalpage .editorial-story__back,body.essay-journalpage .totop,body.essay-journalpage .site-footer,
  body.essay-journalpage .bottomnav,body.essay-journalpage nav{display:none!important}
  html,body.essay-journalpage{background:#fff!important;color:#000}
  body.essay-journalpage::before,body.essay-journalpage::after,body.essay-journalpage .journal-wrap::before,body.essay-journalpage .journal-wrap::after{display:none!important}
  body.essay-journalpage .journal-wrap,body.essay-journalpage .essay-journal-section,body.essay-journalpage .essay-journal-section__content{box-shadow:none!important;border:0!important;background:#fff!important;padding:0!important;margin:0!important;max-width:none!important}
  body.essay-journalpage .essay-journal-body p{color:#000;font-size:11.5pt;line-height:1.55}
  body.essay-journalpage img,body.essay-journalpage figure{break-inside:avoid;max-width:100%}
  body.essay-journalpage .essay-journal-footer{box-shadow:none!important;background:none!important;border:1px solid #bbb!important}
}

/* See Now / See Later: the page title, its context line and the filters share one glass
   shelf on desktop, the same panel and embossed-title treatment as the section shelves below
   and the homepage's Today in Art / Must Sees / Coming up. Phones/app keep their own layout. */
@media (min-width:621px) and (min-height:621px), (min-width:621px) and (pointer:fine), (min-width:621px) and (orientation:portrait){
  html body.listpage.opennow:not(#sj-frame) .lp-shelf{
    position:relative;isolation:isolate;overflow:hidden;
    margin:0 0 22px;padding:24px;border:0;border-radius:20px;
    background:linear-gradient(rgba(255,255,255,.12) 0%,rgba(224,244,255,.82) 27%,rgba(249,252,253,.98) 67%);
    box-shadow:0 24px 46px rgba(4,48,84,.16);
    backdrop-filter:blur(16px) saturate(1.08);-webkit-backdrop-filter:blur(16px) saturate(1.08);
  }
  html body.listpage.opennow:not(#sj-frame) .lp-shelf :is(.on-titlerow,.plan-titlerow){
    margin:0 0 14px!important;padding:0 0 13px!important;
    border-bottom:1px solid rgba(8,119,192,.28)!important;
  }
  html body.listpage.opennow:not(#sj-frame) .lp-shelf .plan-title{display:block!important;margin:0!important}
  html body.listpage.opennow:not(#sj-frame) .lp-shelf .guide-homestats,
  html body.listpage.opennow:not(#sj-frame) .lp-shelf .guide-homestats strong{color:#0b4f80!important;text-shadow:none!important}
  html body.listpage.opennow:not(#sj-frame) .lp-shelf .lp-sub{
    max-width:760px;margin:0 0 16px!important;color:#0b4f80!important;text-shadow:none!important;
  }
  html body.listpage.opennow:not(#sj-frame) .lp-shelf :is(.plan-form,.on-filter-form,#plan-form.plan-form){
    margin:0!important;padding:0!important;border:0!important;border-radius:0;
    background:transparent!important;box-shadow:none!important;
    backdrop-filter:none!important;-webkit-backdrop-filter:none!important;
  }
}
/* Near me sits on the pale glass, so it takes the solid site blue (desktop only). */
@media (min-width:621px) and (min-height:621px), (min-width:621px) and (pointer:fine), (min-width:621px) and (orientation:portrait){
  html body.listpage.opennow:not(.nbpage):not(#sj-frame) .lp-shelf :is(.on-near,.plan-near){
    border:1px solid #0070c0!important;background:#0070c0!important;color:#fff!important;
    text-shadow:none!important;box-shadow:0 5px 14px rgba(3,66,111,.18)!important;
  }
  html body.listpage.opennow:not(.nbpage):not(#sj-frame) .lp-shelf :is(.on-near,.plan-near):hover{background:#005a9a!important;border-color:#005a9a!important}
}

/* Desktop Atlas: the title, its count and the search/chips share one glass shelf (built by
   main.js), the same panel and embossed title as the neighborhood shelves below and the
   desktop See Now / See Later heading. Phones/app keep their own layout. */
@media (min-width:621px) and (min-height:621px), (min-width:621px) and (pointer:fine), (min-width:621px) and (orientation:portrait){
  html body.atlas-page:not(#sj-frame) .atlas-shelf{
    position:relative;isolation:isolate;overflow:hidden;
    margin:0 0 22px;padding:24px;border:0;border-radius:20px;
    background:linear-gradient(rgba(255,255,255,.12) 0%,rgba(224,244,255,.82) 27%,rgba(249,252,253,.98) 67%);
    box-shadow:0 24px 46px rgba(4,48,84,.16);
    backdrop-filter:blur(16px) saturate(1.08);-webkit-backdrop-filter:blur(16px) saturate(1.08);
  }
  html body.atlas-page:not(#sj-frame) .atlas-shelf .page-hero{
    margin:0 0 16px!important;padding:0 0 13px!important;
    border-bottom:1px solid rgba(8,119,192,.28)!important;
  }
  html body.atlas-page:not(#sj-frame) .atlas-shelf .page-hero h1{
    color:#edf9ff!important;font-family:'DM Sans',sans-serif!important;
    font-size:clamp(30px,2.5vw,40px)!important;font-weight:800!important;line-height:1.02!important;letter-spacing:-.04em;
    text-shadow:0 1px 0 rgba(255,255,255,.92),0 2px 0 rgba(9,72,112,.28),0 5px 12px rgba(4,35,62,.32)!important;
  }
  html body.atlas-page:not(#sj-frame) .atlas-shelf .atlas-stat,
  html body.atlas-page:not(#sj-frame) .atlas-shelf .atlas-stat strong,
  html body.atlas-page:not(#sj-frame) .atlas-shelf #atlas-total{color:#0b4f80!important;text-shadow:none!important}
  html body.atlas-page:not(#sj-frame) .atlas-shelf .atlas-tools{
    margin:0!important;padding:0!important;border:0!important;border-radius:0!important;
    background:transparent!important;box-shadow:none!important;
    backdrop-filter:none!important;-webkit-backdrop-filter:none!important;
  }
  html body.atlas-page:not(#sj-frame) .atlas-shelf .atlas-search{border-color:rgba(8,119,192,.22)!important}
  html body.atlas-page:not(#sj-frame) .atlas-shelf .chip{
    color:#0b4f80!important;background:rgba(255,255,255,.78)!important;border-color:rgba(8,119,192,.32)!important;
  }
  html body.atlas-page:not(#sj-frame) .atlas-shelf .chip:hover{background:#fff!important;border-color:#0070c0!important}
  html body.atlas-page:not(#sj-frame) .atlas-shelf .chip.is-on{color:#fff!important;background:#0070c0!important;border-color:#0070c0!important}
  html body.atlas-page:not(#sj-frame) .atlas-shelf .atlas-count{color:#0b4f80!important;text-shadow:none!important}
}

/* Desktop shelf headings, readable on the pale glass: dark navy title and metadata, one
   heading line (title | Near me centered | date and live counts), no separate clock line. */
@media (min-width:621px) and (min-height:621px), (min-width:621px) and (pointer:fine), (min-width:621px) and (orientation:portrait){
  html body.listpage.opennow:not(#sj-frame) .lp-shelf :is(.on-titlerow,.plan-titlerow){
    display:grid!important;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);
    align-items:center;gap:18px;
  }
  html body.listpage.opennow:not(#sj-frame) .lp-shelf :is(.on-titlerow,.plan-titlerow) > .lp-title{grid-column:1;justify-self:start}
  html body.listpage.opennow:not(#sj-frame) .lp-shelf :is(.on-titlerow,.plan-titlerow) > :is(.on-near,.plan-near){grid-column:2;justify-self:center;margin:0!important}
  html body.listpage.opennow:not(#sj-frame) .lp-shelf .lp-shelf__meta{
    grid-column:3;justify-self:end;display:flex;flex-direction:column;align-items:flex-end;gap:4px;min-width:0;text-align:right;
  }
  html body.listpage.opennow:not(#sj-frame) .lp-shelf .lp-shelf__when{
    color:#0a3d66;font:700 15px/1.3 'DM Sans',sans-serif;letter-spacing:-.005em;
  }
  html body.listpage.opennow:not(#sj-frame) .lp-shelf .lp-shelf__meta .guide-homestats{
    margin:0!important;white-space:normal!important;font-size:14px!important;
  }
  html body.listpage.opennow:not(#sj-frame) .lp-shelf #on-clock{display:none!important}
  html body.listpage.opennow:not(#sj-frame) .lp-shelf .lp-title,
  html body.atlas-page:not(#sj-frame) .atlas-shelf .page-hero h1{
    color:#0a3d66!important;text-shadow:0 1px 0 rgba(255,255,255,.75)!important;
  }
  html body.listpage.opennow:not(#sj-frame) .lp-shelf .guide-homestats,
  html body.listpage.opennow:not(#sj-frame) .lp-shelf .guide-homestats strong,
  html body.listpage.opennow:not(#sj-frame) .lp-shelf .lp-sub,
  html body.listpage.opennow:not(#sj-frame) .lp-shelf .plan-field > span:first-child,
  html body.atlas-page:not(#sj-frame) .atlas-shelf .atlas-stat,
  html body.atlas-page:not(#sj-frame) .atlas-shelf .atlas-stat strong,
  html body.atlas-page:not(#sj-frame) .atlas-shelf .atlas-count{color:#0a3d66!important;text-shadow:none!important}
  html body.listpage.opennow:not(#sj-frame) .lp-shelf .lp-sub{font-weight:600!important}
}

/* Desktop See Now / See Later shelf: glassier than the white content shelves, so the azure
   canvas shows through behind the heading and filters. */
@media (min-width:621px) and (min-height:621px), (min-width:621px) and (pointer:fine), (min-width:621px) and (orientation:portrait){
  html body.listpage.opennow:not(#sj-frame) .lp-shelf{
    background:linear-gradient(180deg,rgba(255,255,255,.34) 0%,rgba(226,244,255,.5) 45%,rgba(234,247,254,.6) 100%);
  }
}
/* On the glassier shelf the See Now / See Later title returns to the white embossed type. */
@media (min-width:621px) and (min-height:621px), (min-width:621px) and (pointer:fine), (min-width:621px) and (orientation:portrait){
  html body.listpage.opennow:not(#sj-frame) .lp-shelf .lp-title{
    color:#fff!important;
    text-shadow:0 1px 0 rgba(255,255,255,.35),0 2px 0 rgba(9,72,112,.28),0 5px 12px rgba(4,35,62,.32)!important;
  }
}
/* Desktop See Later: prompt left, chosen date/time right on one line; the results sentence
   below the shelf is replaced by that line (the withheld-hours note stays when present). */
@media (min-width:621px) and (min-height:621px), (min-width:621px) and (pointer:fine), (min-width:621px) and (orientation:portrait){
  html body.listpage.planpage:not(#sj-frame) .lp-shelf .lp-shelf__subrow{
    display:flex;align-items:baseline;justify-content:space-between;gap:18px;margin:0 0 16px;
  }
  html body.listpage.planpage:not(#sj-frame) .lp-shelf .lp-shelf__subrow > .lp-sub{margin:0!important;max-width:none}
  html body.listpage.planpage:not(#sj-frame) .lp-shelf .lp-shelf__subrow > .lp-shelf__when{
    flex:0 0 auto;text-align:right;color:#0a3d66;font:700 15px/1.3 'DM Sans',sans-serif;
  }
  html body.listpage.planpage.lp-shelf-summary:not(#sj-frame) #plan-summary{display:none!important}
}
/* Desktop See Now: date/time right-aligned on the Neighborhood / radius row. */
@media (min-width:621px) and (min-height:621px), (min-width:621px) and (pointer:fine), (min-width:621px) and (orientation:portrait){
  html body.listpage.opennow:not(.planpage):not(#sj-frame) .lp-shelf .on-filter-form{
    display:flex!important;align-items:flex-end;justify-content:space-between;gap:18px;
  }
  html body.listpage.opennow:not(.planpage):not(#sj-frame) .lp-shelf .on-filter-form[hidden]{display:none!important}
  html body.listpage.opennow:not(.planpage):not(#sj-frame) .lp-shelf .on-filter-form > .on-filter-fields{
    flex:0 1 582px;width:582px;max-width:62%;display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr))!important;
  }
  html body.listpage.opennow:not(.planpage):not(#sj-frame) .lp-shelf .lp-shelf__when--filters{
    flex:0 0 auto;margin-left:auto;display:flex;align-items:center;min-height:42px;text-align:right;
  }
  html body.listpage.opennow:not(.planpage):not(#sj-frame) .lp-shelf .lp-shelf__when--filters[hidden]{display:none}
}
@media (min-width:621px) and (min-height:621px), (min-width:621px) and (pointer:fine), (min-width:621px) and (orientation:portrait){
  html body.listpage.opennow:not(.planpage):not(#sj-frame) .lp-shelf:has(.on-filter-form[hidden]) .on-titlerow{
    margin-bottom:0!important;padding-bottom:0!important;border-bottom:0!important;
  }
}

/* Mobile and app homepage section titles: 25% larger text and pill padding. */
@media (max-width:620px), (orientation:landscape) and (max-height:620px) and (pointer:coarse){
  body.home:not(.desktop-home) #home-featured .shead::before,
  body.home:not(.desktop-home) #home-solo .shead::before,
  body.home:not(.desktop-home) #home-weekcols .week-col__head::before,
  body.home:not(.desktop-home) #home-weekcols .week-col--art-time .week-col__head h2,
  body.home:not(.desktop-home) .shead--th > h2,
  body.home:not(.desktop-home)[data-cat="art"] #home-essay .tag--essay{
    font-size:15.625px!important;
    padding:8.75px 15px!important;
  }
  body.home:not(.desktop-home)[data-cat="art"] #home-essay .essay-feature__head{
    min-height:33.125px!important;
  }
  body.home:not(.desktop-home)[data-cat="art"] #home-essay{
    padding-top:44.125px!important;
  }
  body.home:not(.desktop-home) #home-areas .arearail__h{font-size:22.5px}
  body.home:not(.desktop-home) #onview-h,
  body.home:not(.desktop-home) #bday-h{font-size:32.5px}
}

/* Put the mobile/app Editorial label above the card, like the dated rails. */
.home-editorial-feature__body{display:contents}
@media (max-width:620px), (orientation:landscape) and (max-height:620px) and (pointer:coarse){
  body.home:not(.desktop-home) #home-editorial-feature{
    display:block;
    padding:0;
    border:0;
    border-radius:0;
    background:transparent;
    box-shadow:none;
    backdrop-filter:none;
    -webkit-backdrop-filter:none;
  }
  body.home:not(.desktop-home) .home-editorial-feature__head{
    display:flex;
    justify-content:center;
    margin:0 14px 12px;
  }
  body.home:not(.desktop-home) .home-editorial-feature__head .editorial-feature__eyebrow{
    margin:0;
    padding:8.75px 15px;
    font:700 15.625px/1 'Quicksand',sans-serif;
    letter-spacing:.02em;
  }
  body.home:not(.desktop-home) .home-editorial-feature__body{
    display:grid;
    grid-template-columns:1fr;
    gap:17px;
    padding:14px;
    border:1px solid rgba(255,255,255,.4);
    border-radius:17px;
    background:linear-gradient(135deg,rgba(226,245,255,.2),rgba(8,87,143,.28));
    box-shadow:0 16px 34px rgba(3,39,72,.2),inset 0 1px 0 rgba(255,255,255,.24);
    backdrop-filter:blur(14px) saturate(1.12);
    -webkit-backdrop-filter:blur(14px) saturate(1.12);
  }
  body.home:not([data-cat="art"]):not(.desktop-home) #home-editorial-feature{display:none}
}

/* Mobile/app Editorial shares the Art Reviews image and pale glass treatment. */
@media (max-width:620px), (orientation:landscape) and (max-height:620px) and (pointer:coarse){
  body.home:not(.desktop-home) .home-editorial-feature__body{
    position:relative;
    isolation:isolate;
    overflow:hidden;
    gap:11px;
    padding:18px 14px 17px;
    border:0;
    border-radius:20px;
    background:linear-gradient(180deg,rgba(255,255,255,.12) 0%,rgba(224,244,255,.82) 27%,rgba(249,252,253,.98) 67%);
    box-shadow:0 18px 34px rgba(4,48,84,.16);
    backdrop-filter:blur(16px) saturate(1.08);
    -webkit-backdrop-filter:blur(16px) saturate(1.08);
  }
  body.home:not(.desktop-home) .home-editorial-feature__body::before{
    content:"";
    position:absolute;
    z-index:-1;
    inset:0;
    pointer-events:none;
    background:radial-gradient(circle at 50% -18%,rgba(255,255,255,.34),transparent 48%);
  }
  body.home:not(.desktop-home) #home-editorial-feature .editorial-feature__mosaic{
    position:relative;
    width:100%;
    aspect-ratio:5/4;
    border:0;
    border-radius:18px;
    box-shadow:0 10px 25px rgba(7,42,80,.18);
    color:#fff;
    text-decoration:none;
  }
  body.home:not(.desktop-home) #home-editorial-feature .editorial-feature__shade{
    position:absolute;
    inset:0;
    background:linear-gradient(90deg,rgba(20,10,35,.78) 0%,rgba(20,10,35,.35) 52%,rgba(20,10,35,.08) 100%);
  }
  body.home:not(.desktop-home) #home-editorial-feature .editorial-feature__image-copy{
    position:absolute;
    left:20px;
    bottom:20px;
    display:flex;
    flex-direction:column;
    align-items:flex-start;
    max-width:82%;
    text-shadow:0 2px 12px rgba(0,0,0,.38);
  }
  body.home:not(.desktop-home) #home-editorial-title{
    margin:0;
    color:#fff;
    font:700 31px/1.05 Georgia,'Times New Roman',serif;
    font-family:Georgia,'Times New Roman',serif!important;
    letter-spacing:-.03em;
  }
  body.home:not(.desktop-home) #home-editorial-feature .editorial-feature__byline{
    margin-top:9px;
    color:#fff;
    font:600 14px/1.62 'Quicksand',sans-serif;
    letter-spacing:normal;
  }
  body.home:not(.desktop-home) #home-editorial-feature .editorial-feature__dek{
    margin:0 3px;
    color:#6d7d8c;
    font:600 14px/1.5 'Quicksand',sans-serif;
  }
  body.home:not(.desktop-home) #home-editorial-feature .editorial-feature__link{
    display:flex;
    justify-content:flex-end;
    margin:11px 3px 0;
    color:#0a5e9d;
    font:700 11px/1.62 'Quicksand',sans-serif;
    letter-spacing:normal;
    text-transform:none;
  }
  body.home:not(.desktop-home) #home-editorial-feature .editorial-feature__link span{color:inherit;font-size:14px}
}

/* One spacing rule for every mobile/app homepage section transition. */
@media (max-width:620px), (orientation:landscape) and (max-height:620px) and (pointer:coarse){
  body.home:not(.desktop-home){--secgap:32px}
  body.home:not(.desktop-home) :is(#home-weekcols .week-col,#home-essay,#home-editorial-feature,#home-featured,#home-solo,#home-areas,.bday-sec){
    margin:var(--secgap) 0 0!important;
  }
  /* This container carries separate dated sections in performance categories;
     each child owns its gap, so the wrapper contributes no extra spacing. */
  body.home:not(.desktop-home) #home-onview{margin:0!important}
  body.home:not(.desktop-home) #home-onview > .openings-sec{margin:var(--secgap) 0 0!important}
}

/* Mobile/app All To See uses the shared title pill and review glass shelf. */
@media (max-width:620px), (orientation:landscape) and (max-height:620px) and (pointer:coarse){
  body.home:not(.desktop-home)[data-cat="art"] #home-onview > .openings-sec{
    display:flex;
    flex-direction:column;
    padding-bottom:0;
  }
  body.home:not(.desktop-home)[data-cat="art"] #home-onview .shead{display:contents}
  body.home:not(.desktop-home)[data-cat="art"] #onview-h{
    order:0;
    align-self:center;
    display:inline-flex;
    align-items:center;
    margin:0 0 12px;
    padding:8.75px 15px;
    border-radius:999px;
    background:#fff;
    color:#07395e;
    font:700 15.625px/1 'Quicksand',sans-serif;
    font-family:'Quicksand',sans-serif!important;
    letter-spacing:.02em;
    text-transform:uppercase;
    text-shadow:none;
  }
  body.home:not(.desktop-home)[data-cat="art"] #home-onview .grid{
    order:1;
    position:relative;
    isolation:isolate;
    overflow:hidden;
    margin:0;
    padding:18px 14px 17px;
    border:0;
    border-radius:20px;
    background:linear-gradient(180deg,rgba(255,255,255,.12) 0%,rgba(224,244,255,.82) 27%,rgba(249,252,253,.98) 67%);
    box-shadow:0 18px 34px rgba(4,48,84,.16);
    backdrop-filter:blur(16px) saturate(1.08);
    -webkit-backdrop-filter:blur(16px) saturate(1.08);
  }
  body.home:not(.desktop-home)[data-cat="art"] #home-onview .grid::before{
    content:"";
    position:absolute;
    z-index:-1;
    inset:0;
    pointer-events:none;
    background:radial-gradient(circle at 50% -18%,rgba(255,255,255,.34),transparent 48%);
  }
  body.home:not(.desktop-home)[data-cat="art"] #home-onview .col-more{
    order:2;
    position:static;
    align-self:flex-end;
    margin:11px 4px 0;
  }
  body.home:not(.desktop-home)[data-cat="art"] #home-onview .mini__txt,
  body.home:not(.desktop-home)[data-cat="art"] #home-onview .mini__txt :is(.card__date,.card__title,.card__venue,.card__addr,.card__hours){
    color:#17384d!important;
    text-shadow:none!important;
  }
  /* 11px text and 4px/9px padding, each enlarged by exactly 25%. */
  body.home:not(.desktop-home) .bday-status{
    font-size:13.75px;
    padding:5px 11.25px;
  }
}

/* Keep All To See thumbnails landscape regardless of intrinsic image dimensions. */
@media (max-width:620px), (orientation:landscape) and (max-height:620px) and (pointer:coarse){
  body.home:not(.desktop-home)[data-cat="art"] #home-onview .card--mini .mini__media{
    /* Match the two-column thumbnails, with a hard cap on wider phones. */
    width:100%;
    aspect-ratio:16/10;
    height:clamp(64px,calc(31.25vw - 23.75px),100px);
    max-height:100px;
    min-height:0;
    flex:0 0 auto;
  }
  body.home:not(.desktop-home)[data-cat="art"] #home-onview .mini__media > picture{
    position:absolute;
    inset:0;
    display:block;
    width:100%;
    height:100%;
    overflow:hidden;
  }
  body.home:not(.desktop-home)[data-cat="art"] #home-onview .mini__media .card__photo{
    display:block;
    position:absolute;
    inset:0;
    width:100%;
    height:100%;
    object-fit:cover;
    object-position:center;
  }
}

/* Shared category routes and date controls for the full desktop directory. */
body.all-to-see-page .all-to-see-categories{display:flex;flex-wrap:wrap;gap:9px;margin:0 0 20px}
body.all-to-see-page .all-to-see-categories a{padding:9px 16px;border-radius:999px;background:rgba(255,255,255,.2);color:#fff;text-decoration:none;font:700 13px/1 'Quicksand',sans-serif}
body.all-to-see-page .all-to-see-categories a.is-on{background:#fff;color:#07395e}
body.all-to-see-page .all-to-see-tools label[hidden]{display:none!important}
body.all-to-see-page .all-to-see-grid .card--mini .mini__media picture{display:block;width:100%;height:100%}

/* Shared phone/app Calendar and Atlas. Desktop rules remain above their own breakpoint. */
@media (max-width:620px), (orientation:landscape) and (max-height:620px) and (pointer:coarse){
  body:is(.calendar-page,.atlas-page,.atlaspage) > :is(.wrap,main.wrap){
    width:auto!important;max-width:none!important;margin:0 16px!important;padding:0 0 100px!important;min-width:0;
  }
  body:is(.calendar-page,.atlas-page,.atlaspage) .desktop-app-banner{display:none!important}
  body:is(.calendar-page,.atlas-page,.atlaspage) .page-hero{margin:22px 0 18px!important;padding:0!important}
  body:is(.atlas-page,.atlaspage) .page-hero h1{margin:0!important;color:#fff!important;font:700 28px/1.15 'DM Sans',sans-serif!important;text-align:left!important;text-shadow:none!important}
  body:is(.atlas-page,.atlaspage) .atlas-stat{justify-content:flex-start;gap:6px;margin:8px 0 0!important;max-width:none;font:600 12px/1.4 'Quicksand',sans-serif!important;letter-spacing:.04em;color:#eaf6ff!important}
  body:is(.atlas-page,.atlaspage) .atlas-stat::before,body:is(.atlas-page,.atlaspage) .atlas-stat::after{display:none!important}
  body:is(.atlas-page,.atlaspage) #atlas-total{color:#fff!important;font-size:14px!important}
  body:is(.atlas-page,.atlaspage) .atlas-shelf{display:block!important;min-width:0;max-width:100%;margin:0 0 20px;padding:0;background:none;box-shadow:none}
  body:is(.atlas-page,.atlaspage) .atlas-tools{margin:0 0 18px!important;padding:0!important;min-width:0;background:none!important;border:0!important;box-shadow:none!important}
  body:is(.atlas-page,.atlaspage) .atlas-search{width:100%!important;min-width:0;min-height:46px!important;padding:12px 14px!important;font-size:16px!important;border-radius:14px!important;background:rgba(255,255,255,.94)!important;color:#0a3d66!important;border:1px solid rgba(255,255,255,.55)!important;box-shadow:0 5px 16px rgba(7,42,80,.12)}
  body:is(.atlas-page,.atlaspage) .atlas-search::placeholder{color:#496a80;opacity:1}
  body:is(.atlas-page,.atlaspage) .atlas-chips{display:flex!important;flex-wrap:nowrap!important;gap:8px!important;overflow-x:auto;max-width:100%;margin:10px 0 0!important;padding:0 0 7px;scrollbar-width:thin;-webkit-overflow-scrolling:touch}
  body:is(.atlas-page,.atlaspage) .atlas-chips button{flex:0 0 auto;max-width:270px;min-height:44px;padding:8px 14px!important;font:600 12px/1.25 'Quicksand',sans-serif!important;border-radius:999px!important;background:rgba(255,255,255,.17)!important;border:1px solid rgba(255,255,255,.48)!important;color:#fff!important;white-space:normal}
  body:is(.atlas-page,.atlaspage) .atlas-chips button.is-on{background:#fff!important;color:#0a5685!important}
  body:is(.atlas-page,.atlaspage) .atlas-count{flex:0 0 auto;align-self:center;white-space:nowrap;font-size:12px;color:#eaf6ff!important;margin:0 4px!important}
  body:is(.atlas-page,.atlaspage) :is(.atlas-category-switch,.mobile-calendar-categories){margin:16px 0!important}
  body:is(.atlas-page,.atlaspage) #map-section{margin:18px 0 24px!important}
  body:is(.atlas-page,.atlaspage) #map-section .shead{margin:0 0 12px!important;display:flex;align-items:center;gap:10px}
  body:is(.atlas-page,.atlaspage) #map-section .shead p{margin:0;font-size:12px!important;line-height:1.4;color:#fff!important}
  body:is(.atlas-page,.atlaspage) #placesmap{position:relative!important;overflow:hidden!important;height:280px!important;width:100%!important;margin:0 0 12px!important;border-radius:16px!important;border:1px solid rgba(255,255,255,.45)!important}
  body:is(.atlas-page,.atlaspage) .leaflet-control-zoom a{width:44px;height:44px;line-height:44px}
  body:is(.atlas-page,.atlaspage) .map-note{font-size:11px!important;line-height:1.55!important;color:#eaf6ff!important;text-align:left!important}
  body:is(.atlas-page,.atlaspage) .area{margin:24px 0 0!important;padding:0!important;background:none!important;box-shadow:none!important;border:0!important}
  body:is(.atlas-page,.atlaspage) .area__head{display:flex!important;flex-wrap:wrap;align-items:center;gap:8px;margin:0 0 12px!important;padding:0!important;border:0!important;color:#fff!important;font:700 21px/1.2 'DM Sans',sans-serif!important}
  body:is(.atlas-page,.atlaspage) .area__count{font-size:12px!important;color:#fff!important;background:rgba(255,255,255,.16)!important}
  body:is(.atlas-page,.atlaspage) :is(.vgrid,.area__grid){display:grid!important;grid-template-columns:minmax(0,1fr)!important;gap:14px!important}
  body:is(.atlas-page,.atlaspage) .vcard{min-width:0;border:1px solid rgba(255,255,255,.38)!important;border-radius:16px!important;background:linear-gradient(145deg,rgba(243,250,255,.22),rgba(196,229,250,.13))!important;overflow:hidden!important;box-shadow:0 8px 18px rgba(7,42,80,.16)!important}
  body:is(.atlas-page,.atlaspage) .vcard__media{height:150px!important;aspect-ratio:auto!important;min-width:0}
  body:is(.atlas-page,.atlaspage) .vcard__body{position:static!important;display:flex!important;flex-direction:column!important;padding:14px!important;gap:6px!important;background:transparent!important}
  body:is(.atlas-page,.atlaspage) :is(.vcard__name,.vcard__name a){margin:0!important;font-size:18px!important;line-height:1.3!important;color:#fff!important;overflow-wrap:anywhere;text-shadow:none!important}
  body:is(.atlas-page,.atlaspage) :is(.vcard__addr,.vcard__desc){margin:0!important;font-size:13px!important;line-height:1.45!important;color:#eaf6ff!important;overflow-wrap:anywhere;text-shadow:none!important}
  body:is(.atlas-page,.atlaspage) .vcard__foot{display:flex!important;flex-wrap:wrap;gap:4px 12px!important;margin:4px 0 0!important;padding:0!important;border:0!important}
  body:is(.atlas-page,.atlaspage) .vcard__foot :is(a,button){display:inline-flex;align-items:center;min-height:44px;font:600 12px/1.3 'Quicksand',sans-serif!important;color:#fff!important;text-shadow:none!important}
  body.calendar-page :is(#grid,#also,.page-hero,.notes){display:none!important}
  body.calendar-page #days{margin:20px 0 0!important;padding:0!important;border:0!important;background:none!important;box-shadow:none!important;min-width:0}
  body.calendar-page #days .shead{display:grid!important;grid-template-columns:minmax(0,1fr) auto;gap:8px;margin:0 0 14px!important;padding:0!important;border:0!important;text-align:left!important}
  body.calendar-page #days .shead > .tag-blue{display:none!important}
  body.calendar-page #days .shead h2{grid-column:1;grid-row:1;margin:0!important;font:700 27px/1.15 'DM Sans',sans-serif!important;color:#fff!important;text-shadow:none!important}
  body.calendar-page #days .shead h2::before{display:none!important}
  body.calendar-page #days .shead > .calendar-stats{grid-column:1 / -1;grid-row:2;margin:0!important;font-size:12px!important;line-height:1.5!important;color:#eaf6ff!important;text-align:left!important}
  body.calendar-page #days .shead > :is(.calendar-window-note,.calendar-updated){display:none!important}
  body.calendar-page .calendar-jump-today{grid-column:2;grid-row:1;min-height:44px;padding:8px 12px;border:1px solid rgba(255,255,255,.45);border-radius:999px;background:rgba(255,255,255,.16);color:#fff;font:600 12px/1.2 'Quicksand',sans-serif}
  body.calendar-page .calendar-jump-today:disabled{opacity:.55}
  body.calendar-page .mobile-calendar-categories{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:5px;margin:18px 0 0;padding:4px;border:1px solid rgba(255,255,255,.4);border-radius:999px;background:rgba(255,255,255,.14)}
  body.calendar-page .mobile-calendar-categories button{min-width:0;min-height:44px;padding:7px 3px;border:0;border-radius:999px;background:none;color:#fff;font:700 12px/1.2 'Quicksand',sans-serif}
  body.calendar-page .mobile-calendar-categories button[aria-pressed="true"]{background:rgba(255,255,255,.9);color:#075f9f}
  body.calendar-page .calendar-date-strip{display:flex!important;gap:8px;overflow-x:auto;max-width:100%;margin:0 0 14px!important;padding:0 0 9px!important;border:0!important;scroll-snap-type:x proximity;-webkit-overflow-scrolling:touch;scrollbar-width:thin;background:none!important;box-shadow:none!important}
  body.calendar-page .calendar-date-strip button{flex:0 0 66px;min-height:82px;padding:9px 5px;border:1px solid rgba(255,255,255,.4);border-radius:14px;background:rgba(255,255,255,.16);color:#fff;font-family:'Quicksand',sans-serif;scroll-snap-align:start}
  body.calendar-page .calendar-date-strip button.is-on{background:#fff;color:#075f9f;box-shadow:0 5px 12px rgba(7,42,80,.15)}
  body.calendar-page .calendar-date-strip__day{display:block;font-size:12px;line-height:1.2}
  body.calendar-page .calendar-date-strip__date{display:block;margin:4px 0;font-size:22px;line-height:1.1;font-weight:700}
  body.calendar-page .calendar-date-strip__count{display:block;font-size:10px;line-height:1.3}
  body.calendar-page #days .daygrid{display:block!important;margin:0!important;min-width:0}
  body.calendar-page #days .fbar{position:static!important;display:flex!important;flex-wrap:wrap!important;gap:7px!important;overflow:visible!important;margin:0 0 16px!important;padding:0!important;background:none!important;box-shadow:none!important}
  body.calendar-page #days :is(.fchip,.farea select){max-width:100%;min-height:44px;padding:8px 12px!important;border:1px solid rgba(255,255,255,.45)!important;border-radius:999px!important;background:rgba(255,255,255,.16)!important;color:#fff!important;font:600 12px/1.3 'Quicksand',sans-serif!important;white-space:normal!important}
  body.calendar-page #days .fchip.is-on{background:#fff!important;color:#075f9f!important}
  body.calendar-page #days .farea{display:flex;min-width:0;max-width:100%}
  body.calendar-page #days .farea select{font-size:16px!important;width:120px}
  body.calendar-page #days .farea option{background:#fff;color:#075f9f}
  body.calendar-page .calendar-more-filters{display:flex;flex-wrap:wrap;gap:7px}
  body.calendar-page :is(.calendar-more-filters,.fradii)[hidden]{display:none!important}
  body.calendar-page #days .dayblock{display:flex!important;flex-direction:column!important;margin:0!important;border:0!important;border-radius:0!important;background:none!important;box-shadow:none!important}
  body.calendar-page #days .dayblock:is(.calendar-day-not-selected,.desktop-calendar-before-window,.desktop-calendar-beyond-window){display:none!important}
  body.calendar-page #days .dayblock__date{display:flex!important;flex-direction:row!important;align-items:baseline;gap:8px;padding:0 2px 12px!important;border:0!important;background:none!important;color:#fff!important}
  body.calendar-page #days .dayblock__date :is(.dd,.dw){color:#fff!important;font-size:16px!important}
  body.calendar-page #days .dayblock__items{display:flex;flex-direction:column;gap:12px;min-width:0}
  body.calendar-page #days .dayblock__items > :is(.row,.mcard){display:grid;grid-template-columns:76px minmax(0,1fr);align-items:start;gap:4px 12px;margin:0;padding:12px!important;border:1px solid rgba(255,255,255,.38)!important;border-radius:16px!important;background:linear-gradient(145deg,rgba(243,250,255,.23),rgba(196,229,250,.13))!important;box-shadow:0 7px 18px rgba(7,42,80,.13);color:#fff!important;min-width:0}
  body.calendar-page #days .row__sq{grid-column:1;grid-row:1 / span 4;width:76px!important;height:76px!important;border-radius:10px!important;overflow:hidden}
  body.calendar-page #days :is(.row__img,.mcard__img){width:100%;height:100%;object-fit:cover}
  body.calendar-page #days :is(.calendar-row__main,.mcard__txt){grid-column:2;min-width:0;display:flex;flex-direction:column;align-items:flex-start;gap:4px}
  body.calendar-page #days :is(.row__title,.mcard__title){margin:0!important;width:auto!important;font:700 16px/1.3 'DM Sans',sans-serif!important;color:#fff!important;white-space:normal!important;overflow-wrap:anywhere;text-shadow:none!important}
  body.calendar-page #days :is(.row__venue,.mcard__venue,.row__date,.row__hours,.row__time){grid-column:2;margin:0!important;width:auto!important;font-size:12px!important;line-height:1.45!important;color:#eaf6ff!important;white-space:normal!important;overflow-wrap:anywhere;text-shadow:none!important}
  body.calendar-page .calendar-row__label{padding:3px 7px;border-radius:999px;background:rgba(0,49,83,.42);font:700 9px/1.2 'Quicksand',sans-serif;text-transform:uppercase;color:#fff}
  body.calendar-page #days .calendar-empty{display:block!important;padding:18px!important;border:1px solid rgba(255,255,255,.35);border-radius:14px;background:rgba(255,255,255,.14);color:#fff;line-height:1.5;font-size:14px}
  body.calendar-page #days .calendar-card__copy{grid-column:2;min-width:0;display:flex;flex-direction:column;gap:4px}
  body.calendar-page #days .calendar-card__copy > span{display:block;white-space:normal!important;overflow-wrap:anywhere}
  body.calendar-page #days .calendar-card__copy :is(.card__date,.card__addr,.card__hours){font-size:12px;line-height:1.45;color:#eaf6ff}
  body.calendar-page #days .row__time:empty{display:none}

}

/* Optional event artwork: factual cards remain readable without a photograph. */
.card.card--text-only{height:auto!important;min-height:0!important;aspect-ratio:auto!important}
.card--text-only .mini__txt{grid-column:1 / -1!important;width:100%!important}
.card--text-only :is(.mini__media,.mcard__thumb,.row__sq){display:none!important}
.card--text-only .card__panel{position:relative!important;inset:auto!important;height:auto!important;
 min-height:0!important;aspect-ratio:auto!important;padding:18px!important;background:rgba(255,255,255,.16)!important;
 border:1px solid rgba(255,255,255,.28);backdrop-filter:blur(12px)}
.card--text-only .card__cap{position:static!important;inset:auto!important;padding:0!important;
 background:none!important;transform:none!important}
.card--text-only :is(.card__kicks,.card__kick){position:static!important;inset:auto!important;transform:none!important}
.card--text-only .card__kicks{margin:0 0 10px!important;display:flex!important;gap:6px}
.card--text-only .card__panel::after{display:none!important}
.card--text-only.row{grid-template-columns:minmax(0,1.4fr) minmax(0,1fr) auto!important}
:is(.card__photo,.mcard__img,.row__img,.ep-photo img,.evsheet__img,.es2-slide img)[data-image-fit="natural"]{
 object-fit:scale-down!important;object-position:center!important}

/* Keep action controls when a mobile event sheet has no photo; omit the empty hero. */
.evsheet__hero.noimg{aspect-ratio:auto!important;height:64px!important;min-height:64px!important;
 max-height:64px!important;background:rgba(255,255,255,.12)!important}
.evsheet__hero.noimg::after{display:none!important}

.card--text-only :is(.mini__txt,.card__panel){background:rgba(255,255,255,.85)!important;
 border-radius:14px;padding:16px!important;backdrop-filter:blur(12px)}
.card--text-only :is(.card__title,.card__venue,.card__date,.card__addr,.card__hours,.card__showtimes){
 color:#183f5a!important;text-shadow:none!important}
.card--text-only .calendar-card__copy{grid-column:1 / -1!important}
/* Text-only event sheets retain a compact control row without hiding the label. */
.evsheet__hero.noimg .evsheet__kick{left:66px!important;max-width:calc(100% - 180px);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
/* Intrinsic-width event figures must not collapse around a percentage-width image. */
.ep-photo img{display:block;width:auto!important;max-width:100%!important;height:auto!important;margin-inline:auto}
.ep-photo{width:max-content;max-width:100%;margin-inline:auto}

/* Direct event links use the same desktop canvas as the calendar and venues.
   Keep this on the shared body class so regenerated pages in every city inherit it. */
@media (min-width:621px) and (min-height:621px), (min-width:621px) and (pointer:fine), (min-width:621px) and (orientation:portrait){
  body.eventpage{
    min-height:100vh;color:#fff;
    background:radial-gradient(1050px 570px at 50% 0%,rgba(255,255,255,.16),transparent 70%),linear-gradient(135deg,#087fca 0%,#0877c0 46%,#056caf 100%);
  }
  body.eventpage > .wrap{
    box-sizing:border-box;width:min(1200px,calc(100% - 80px));max-width:1200px!important;
    margin:0 auto 40px!important;padding:28px!important;
    display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:24px 36px;align-items:start;
    border:1px solid rgba(255,255,255,.4);border-radius:22px;
    background:linear-gradient(145deg,rgba(255,255,255,.18),rgba(255,255,255,.08));
    box-shadow:0 18px 36px rgba(4,48,84,.18);
  }
  body.eventpage > .wrap > :is(p:first-child,.ep-map,.ep-more){grid-column:1/-1;margin:0}
  body.eventpage .ep-head{grid-column:1;margin:0;min-width:0;padding-bottom:58px}
  body.eventpage .ep-title{font-size:clamp(30px,3vw,42px);line-height:1.08;overflow-wrap:anywhere;color:#fff}
  body.eventpage :is(.ep-back,.ep-when,.ep-hours,.ep-recep,.ep-recep a,.ep-venue,.ep-venue a,.ep-addr,.ep-desc p,.ep-more,.ep-more a){color:#fff}
  body.eventpage .ep-when{font-size:16px}
  body.eventpage :is(.ep-hours,.ep-addr){color:rgba(255,255,255,.86)}
  body.eventpage .ep-photo{grid-column:2;grid-row:1/3;align-self:start;margin:0!important;max-width:100%;justify-self:center}
  body.eventpage .ep-photo img{--event-image-max-height:520px;max-height:520px;object-fit:contain;border-color:rgba(255,255,255,.5);box-shadow:0 12px 28px rgba(4,35,62,.2)}
  body.eventpage .ep-desc{grid-column:1;margin:0}
  body.eventpage .ep-desc p{font-size:17px;line-height:1.6}
  body.eventpage > .wrap:not(:has(.ep-photo)) :is(.ep-head,.ep-desc){grid-column:1/-1}
  body.eventpage .ep-head :is(.hbtn,.mapbtn,.jbtn,.tshare){
    position:absolute;top:auto;bottom:0;left:0;right:auto;display:grid;place-items:center;
    width:40px;height:40px;padding:0;border:1px solid rgba(255,255,255,.7);border-radius:50%;
    background:rgba(255,255,255,.14);color:#fff;cursor:pointer;box-sizing:border-box;
  }
  body.eventpage .ep-head .hbtn{color:#ffd15b}
  body.eventpage .ep-head .tshare{left:50px}
  body.eventpage .ep-head .jbtn{left:100px;color:#ffd15b}
  body.eventpage .ep-head .mapbtn{left:150px}
  body.eventpage .ep-head :is(.hbtn,.mapbtn,.jbtn,.tshare) svg{width:21px;height:21px}
  body.eventpage .ep-map{height:300px;border-color:rgba(255,255,255,.4)}
  body.eventpage .ep-more{display:flex;flex-wrap:wrap;gap:12px 24px}
  body.eventpage .site-footer{background:transparent;border-top:1px solid rgba(255,255,255,.2)}
  html body.eventpage > .desktop-app-banner{width:fit-content;max-width:calc(100% - 80px);margin-left:max(40px,calc((100% - 1200px)/2));margin-right:auto}
}
@media (min-width:621px) and (max-width:859px) and (min-height:621px), (min-width:621px) and (max-width:859px) and (pointer:fine), (min-width:621px) and (max-width:859px) and (orientation:portrait){
  body.eventpage > .wrap{width:calc(100% - 40px);padding:22px!important;grid-template-columns:minmax(0,1fr)}
  body.eventpage .ep-photo{grid-column:1;grid-row:auto}
}

@media (min-width:621px) and (min-height:621px), (min-width:621px) and (pointer:fine), (min-width:621px) and (orientation:portrait){
  html body.eventpage.eventpage.desktop-command-ready.desktop-command-ready:not(#sj-frame):has(> .desktop-app-banner) > .wrap{
    padding:28px!important;
  }
}
@media (min-width:621px) and (max-width:859px) and (min-height:621px), (min-width:621px) and (max-width:859px) and (pointer:fine), (min-width:621px) and (max-width:859px) and (orientation:portrait){
  html body.eventpage.eventpage.desktop-command-ready.desktop-command-ready:not(#sj-frame):has(> .desktop-app-banner) > .wrap{
    padding:22px!important;
  }
}

/* Direct event pages: a compact mobile reading flow, with action buttons in
   their own grid row rather than positioned over the title/status label. */
@media(max-width:620px), (orientation:landscape) and (max-height:620px) and (pointer:coarse){
  body.eventpage .site-header,
  body.eventpage .site-header__in{height:calc(112px + env(safe-area-inset-top));min-height:0;margin:0!important}
  body.eventpage > .wrap{
    box-sizing:border-box;width:100%;max-width:100%!important;
    padding:14px 18px calc(28px + env(safe-area-inset-bottom))!important;
  }
  body.eventpage > .wrap > p:first-child{margin:0!important}
  body.eventpage .ep-back{display:inline-flex;align-items:center;min-height:36px}
  body.eventpage .ep-head{
    display:grid;grid-template-columns:repeat(3,44px) minmax(0,1fr);
    gap:12px 10px;margin:14px 0 0;min-width:0;padding:0;
  }
  body.eventpage .ep-head > :not(:is(.hbtn,.mapbtn,.jbtn,.tshare)){grid-column:1/-1;min-width:0;margin:0}
  body.eventpage .ep-head .card__kicks{grid-row:1;max-width:100%!important;padding:0!important}
  body.eventpage .ep-title{grid-row:2;font-size:28px;line-height:1.14;overflow-wrap:anywhere}
  body.eventpage .ep-head :is(.hbtn,.mapbtn,.jbtn,.tshare){
    position:static!important;inset:auto!important;grid-row:3;display:grid;place-items:center;
    width:44px;height:44px;min-width:44px;padding:0;margin:0;
    border:1px solid rgba(255,255,255,.7);border-radius:50%;
    background:rgba(255,255,255,.12);color:#fff;line-height:1;transform:none;
  }
  body.eventpage .ep-head .hbtn{grid-column:1;color:#ffd15b}
  body.eventpage .ep-head .tshare{grid-column:2}
  body.eventpage .ep-head .jbtn{grid-column:3;color:#ffd15b}
  body.eventpage .ep-head .mapbtn{grid-column:4}
  body.eventpage .ep-head :is(.hbtn,.mapbtn,.jbtn,.tshare) svg{width:23px;height:23px}
  body.eventpage .ep-when{font-size:16px;line-height:1.4}
  body.eventpage :is(.ep-hours,.ep-recep){font-size:14px;line-height:1.5;overflow-wrap:anywhere}
  body.eventpage .ep-venue{font-size:17px;line-height:1.45}
  body.eventpage .ep-addr{font-size:14px;line-height:1.5;overflow-wrap:anywhere}
  body.eventpage .ep-calendar{min-height:44px;box-sizing:border-box;max-width:100%;white-space:normal;text-align:center}
  body.eventpage .ep-photo{margin-top:22px!important}
  body.eventpage .ep-photo img{--event-image-max-height:440px;object-fit:contain}
  body.eventpage .ep-desc{margin-top:22px}
  body.eventpage .ep-desc p{font-size:16px;line-height:1.6;overflow-wrap:anywhere}
  body.eventpage .ep-map{height:240px;margin-top:22px}
  body.eventpage .ep-more{display:flex;flex-direction:column;gap:12px;margin-top:22px;font-size:14px}
  body.eventpage .ep-more a{display:inline-flex;align-items:center;min-height:44px}
  body.eventpage .site-footer{padding-bottom:calc(100px + env(safe-area-inset-bottom))!important}
}

/* Reuse the homepage identity/category header above the event reading flow. */
@media(max-width:620px), (orientation:landscape) and (max-height:620px) and (pointer:coarse){
  body.eventpage .site-header,body.eventpage .site-header__in{height:46px}
  body.eventpage .site-header{margin-bottom:calc(115px + env(safe-area-inset-top))!important}
  body.eventpage > .wrap{padding-top:17px!important}
  body.eventpage .mastright{margin-top:0!important}
  body.eventpage .mastright + p{margin-top:22px!important}
}

@media(max-width:620px), (orientation:landscape) and (max-height:620px) and (pointer:coarse){
  body.eventpage.mobile-event-header{
    position:relative;isolation:isolate;
    background-color:var(--sj-azure-deep)!important;
    background-image:linear-gradient(135deg,var(--sj-azure-top) 0%,var(--sj-azure-mid) 46%,var(--sj-azure-deep) 100%)!important;
    background-position:0 0;background-repeat:no-repeat;background-size:cover;
  }
}

/* Retire the former Calendar back link on already-generated event pages too. */
body.eventpage > .wrap > p:has(> .ep-back){display:none!important}

/* To See is navigation context, not an event-detail badge. */
body.eventpage .ep-head .kick--exhibition,
body.eventpage .ep-head .card__kicks:has(> .kick--exhibition):not(:has(> .card__kick:not(.kick--exhibition))){display:none!important}
@media(max-width:620px), (orientation:landscape) and (max-height:620px) and (pointer:coarse){
  body.eventpage .ep-head:not(:has(.card__kick:not(.kick--exhibition))) .ep-title{grid-row:1}
  body.eventpage .ep-head:not(:has(.card__kick:not(.kick--exhibition))) :is(.hbtn,.mapbtn,.jbtn,.tshare){grid-row:2}
}

/* Mobile event pages use the popup's blue card, image-first hierarchy and pills. */
@media(max-width:620px), (orientation:landscape) and (max-height:620px) and (pointer:coarse){
  body.eventpage.event-popup-layout .event-detail-card{
    --event-hero-height:clamp(190px,62vw,260px);
    position:relative;isolation:isolate;margin-top:20px;overflow:hidden;
    border-radius:20px;background:#0f6cb5;color:#fff;
    box-shadow:0 18px 42px rgba(3,32,57,.28),0 2px 8px rgba(3,32,57,.15);
  }
  body.eventpage.event-popup-layout .ep-photo{
    display:grid;place-items:center;box-sizing:border-box;
    width:100%!important;max-width:100%;height:var(--event-hero-height);margin:0!important;
    background:linear-gradient(150deg,#0878bc,#03426f);overflow:hidden;
  }
  body.eventpage.event-popup-layout .ep-photo img{
    --event-image-max-height:var(--event-hero-height);
    max-height:var(--event-hero-height);object-fit:contain;border:0;border-radius:0;box-shadow:none;
  }
  body.eventpage.event-popup-layout .ep-head{
    position:static;display:flex;flex-direction:column;gap:7px;margin:0;padding:18px;
  }
  body.eventpage.event-popup-layout .ep-head > *{margin:0}
  body.eventpage.event-popup-layout .ep-when{order:0;font-size:12.5px;line-height:1.5;font-weight:700;letter-spacing:.03em}
  body.eventpage.event-popup-layout .ep-title{order:1;font-size:23px;line-height:1.18;font-weight:600;text-shadow:none}
  body.eventpage.event-popup-layout .ep-venue{order:2;font-size:15px;line-height:1.45}
  body.eventpage.event-popup-layout .ep-addr{order:3;font-size:13px;line-height:1.6;color:rgba(255,255,255,.78)!important}
  body.eventpage.event-popup-layout .ep-hours{order:4;font-size:13px;line-height:1.5;color:rgba(255,255,255,.86)!important}
  body.eventpage.event-popup-layout .ep-recep{order:5;font-size:13px;line-height:1.5}
  body.eventpage.event-popup-layout .event-detail-actions{order:6;display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin-top:10px}
  body.eventpage.event-popup-layout .event-detail-actions .ep-actions{display:contents}
  body.eventpage.event-popup-layout .event-detail-actions .ep-calendar{
    display:inline-flex;flex:1 1 auto;align-items:center;justify-content:center;
    min-height:44px;padding:10px 12px;border-radius:999px;border:1px solid rgba(255,255,255,.68);
    color:#21617c!important;background:rgba(255,255,255,.96);font:700 12px/1.2 'Quicksand',sans-serif;
  }
  body.eventpage.event-popup-layout .event-detail-actions .ep-source{background:#075f9f;border-color:#075f9f;color:#fff!important}
  body.eventpage.event-popup-layout .event-detail-actions a[download]{background:#8b5fbf;border-color:#8b5fbf;color:#fff!important}
  body.eventpage.event-popup-layout .ep-head :is(.hbtn,.tshare,.jbtn,.mapbtn){
    position:absolute!important;inset:auto!important;top:12px!important;right:12px!important;
    width:44px;height:44px;z-index:3;margin:0;padding:0;
    background:rgba(245,247,250,.64);border:1.5px solid rgba(255,255,255,.85);
    box-shadow:0 2px 7px rgba(0,0,0,.18);color:#202b36;
  }
  body.eventpage.event-popup-layout .ep-head .hbtn{color:#6b4bb5}
  body.eventpage.event-popup-layout .ep-head .tshare{right:64px!important}
  body.eventpage.event-popup-layout .ep-head .jbtn{top:calc(var(--event-hero-height) - 56px)!important;color:#d5a11e}
  body.eventpage.event-popup-layout .ep-head .mapbtn{right:116px!important}
  body.eventpage.event-popup-layout .card__kicks{position:absolute!important;left:14px;top:calc(var(--event-hero-height) - 42px);z-index:2}
  body.eventpage.event-popup-layout .ep-desc{margin:0;padding:0 18px 20px}
  body.eventpage.event-popup-layout .ep-desc p{font-size:14px;line-height:1.6;color:rgba(255,255,255,.88)!important}
  body.eventpage.event-popup-layout .event-detail-card:not(:has(.ep-photo)) .ep-head{padding-top:72px}
  body.eventpage.event-popup-layout .event-detail-card:not(:has(.ep-photo)) .ep-head .jbtn{top:12px!important;right:116px!important}
  body.eventpage.event-popup-layout .event-detail-card:not(:has(.ep-photo)) .card__kicks{position:static!important;order:-1}
}

body.eventpage .event-detail-actions .ep-calendar{column-gap:4px}

/* A considered ending: venue/map card, compact onward links, quiet legal footer. */
@media(max-width:620px), (orientation:landscape) and (max-height:620px) and (pointer:coarse){
  body.eventpage.event-popup-layout .event-detail-visit{
    margin-top:20px;overflow:hidden;border:1px solid rgba(255,255,255,.24);border-radius:18px;
    background:rgba(255,255,255,.1);box-shadow:0 8px 22px rgba(3,32,57,.12);
  }
  body.eventpage.event-popup-layout :is(.event-detail-visit,.event-detail-explore) h2{
    margin:0;color:#fff;font:700 16px/1.35 'DM Sans',sans-serif;letter-spacing:-.01em;
  }
  body.eventpage.event-popup-layout .event-detail-visit h2{padding:16px 16px 0}
  body.eventpage.event-popup-layout .event-detail-visit > p{
    margin:5px 0 14px;padding:0 16px;color:rgba(255,255,255,.8);font:400 13px/1.5 'DM Sans',sans-serif;
  }
  body.eventpage.event-popup-layout .event-detail-visit .ep-map{
    margin:0;height:210px;border:0;border-top:1px solid rgba(255,255,255,.2);border-radius:0;
  }
  body.eventpage.event-popup-layout .event-detail-explore{margin-top:24px}
  body.eventpage.event-popup-layout .event-detail-explore h2{margin-bottom:12px}
  body.eventpage.event-popup-layout .event-detail-explore .ep-more{display:grid;gap:10px;margin:0}
  body.eventpage.event-popup-layout .event-detail-explore .ep-more a{
    display:flex;align-items:center;justify-content:space-between;gap:16px;min-height:72px;
    padding:14px 16px;box-sizing:border-box;border:1px solid rgba(255,255,255,.26);border-radius:15px;
    background:linear-gradient(130deg,rgba(255,255,255,.14),rgba(255,255,255,.06));
    color:#fff!important;text-decoration:none;box-shadow:0 5px 15px rgba(3,32,57,.08);
  }
  body.eventpage.event-popup-layout .event-detail-explore a strong{display:block;font:600 15px/1.3 'DM Sans',sans-serif}
  body.eventpage.event-popup-layout .event-detail-explore a > span > span{display:block;margin-top:4px;font:400 12px/1.4 'DM Sans',sans-serif;color:rgba(255,255,255,.74)}
  body.eventpage.event-popup-layout .event-detail-explore .es2-action-arrow{
    width:18px;height:18px;flex:0 0 18px;fill:none;stroke:currentColor;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round;
  }
  body.eventpage.event-popup-layout .event-detail-explore a:active{background:rgba(255,255,255,.22)}
  body.eventpage.event-popup-layout .event-detail-explore a:focus-visible{outline:2px solid #fff;outline-offset:3px}
  body.eventpage.event-popup-layout > .wrap{padding-bottom:20px!important}
  body.eventpage.event-popup-layout .site-footer{margin-top:8px;padding:18px 14px calc(100px + env(safe-area-inset-bottom))!important;border-top:1px solid rgba(255,255,255,.17)}
  body.eventpage.event-popup-layout .site-footer .dev-disclaimer{display:none!important}
  body.eventpage.event-popup-layout .site-footer .wrap{gap:7px 0}
  body.eventpage.event-popup-layout .site-footer :is(.copy,.footlinks a){font-size:11px;line-height:1.7;color:rgba(255,255,255,.78);opacity:1}
}
@media(max-width:620px), (orientation:landscape) and (max-height:620px) and (pointer:coarse){
  html.sees-shared-mobile-footer body.eventpage.event-popup-layout .site-footer--shared{
    margin-top:4px!important;padding:0!important;border-top:1px solid rgba(255,255,255,.17)!important;
  }
  html.sees-shared-mobile-footer body.eventpage.event-popup-layout .site-footer--shared .wrap{
    padding:18px 16px calc(100px + env(safe-area-inset-bottom))!important;gap:7px 0!important;
  }
}
