/* Skin "newyork" (setting skin = newyork): the editorial nightlife look of NY Prediction Markets: ink black, fog-white
   text, champagne and Manhattan rose, a neon skyline band with the moon above the hero. Loaded after site.css on every
   page of a site that names this skin. Tokens, fonts and site-wide pieces first; the home page
   (templates/partials/home/showcase-newyork.php, newyork-section.php, classes .ny-*) below. Colours, fonts, measures
   and motion are those of the original site (manhattan-futures-predict: src/styles.css, NeonNYHero, Navbar). */

/* Fonts of the original design, self-hosted (SIL Open Font License 1.1, licence texts in public/assets/fonts/):
   Fraunces (headings, quotes, names; roman and italic, variable 300-600), Inter (text), JetBrains Mono (labels,
   buttons, prices). Latin ranges only. */
@font-face { font-family: "Fraunces"; font-style: normal; font-weight: 300 600; font-display: swap; src: url("../../fonts/fraunces-latin.woff2") format("woff2"); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
@font-face { font-family: "Fraunces"; font-style: italic; font-weight: 300 600; font-display: swap; src: url("../../fonts/fraunces-italic-latin.woff2") format("woff2"); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
@font-face { font-family: "Inter"; font-style: normal; font-weight: 400 700; font-display: swap; src: url("../../fonts/inter-latin.woff2") format("woff2"); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
@font-face { font-family: "JetBrains Mono"; font-style: normal; font-weight: 400 700; font-display: swap; src: url("../../fonts/jetbrains-mono-latin.woff2") format("woff2"); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }

/* Tokens (the old hsl tokens: background 240 13% 5%, card 240 13% 7%, foreground 40 22% 88%, champagne 38 50% 82%,
   smoke 240 10% 11%, muted 240 5% 65%, rose 345 75% 62%, olive 70 50% 62%, border 240 8% 15%) */
body.skin-newyork {
  --wrap: 1280px; --gutter: 20px; --radius: 4px;
  --sans: "Inter", system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
  --display: "Fraunces", Georgia, "Times New Roman", serif;
  --mono: "JetBrains Mono", ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
  --serif: var(--display); --serif-text: var(--sans); --serif-display: var(--display);
  --ny-bg: #0b0b0e; --ny-card: #111115; --ny-smoke: #1a1a1f; --ny-fog: #e5dfd3; --ny-champagne: #e6d4b1; --ny-muted: #a1a1aa;
  --ny-rose: #e65b7f; --ny-rose-2: #f08a6e; --ny-olive: #c3d16b; --ny-line: #232329; --ny-line-2: #2e2e36;
  --ny-ease: cubic-bezier(.16, 1, .3, 1);
  --ny-label: .75rem; --ny-track: .18em; --ny-tap: 44px; /* round 2: 12px minimum for labels, tracking .18em at most, 44px targets */
  --ny-lift: 0 30px 60px -30px rgb(230 91 127 / .25);
  font-family: var(--sans); font-size: 16px; line-height: 1.55; font-feature-settings: "ss01", "cv11"; -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale;
}
@media (min-width: 640px) { body.skin-newyork { --gutter: 32px; } }
@media (min-width: 1024px) { body.skin-newyork { --gutter: 48px; } }
body.skin-newyork.theme-dark {
  --paper: #0b0b0e; --paper-2: #111115; --sc-card: #111115; --ink: #e5dfd3; --ink-2: rgba(229, 223, 211, .9); --muted: #a1a1aa; --line: #232329;
  --accent: #e65b7f; --accent-text: #ee7d9a; --on-accent: #0b0b0e; --focus: #e6d4b1; --brand: #0b0b0e;
  background: #0b0b0e; color: var(--ny-fog);
}
/* page_layout = editorial: its labels in Inter, its text in Inter (the old articles), accents in rose, hairlines in smoke */
body.skin-newyork.pages-editorial { --ed-ui: var(--sans); --ed-gold: #ee7d9a; --ed-hair: var(--ny-line); --ed-card: var(--ny-card); --ed-ink-85: rgba(229, 223, 211, .86); --ed-ink-70: #a1a1aa; --ed-mono: var(--mono); --serif: var(--sans); --serif-text: var(--sans); }
body.skin-newyork.pages-editorial :is(.breadcrumbs, .toc-title, .toc h2, .article-meta) { font-family: var(--mono); }
body.skin-newyork .sc-btn, body.skin-newyork .prose a.sc-btn { --op: #e65b7f; --op-ink: #0b0b0e; height: 52px; border-radius: 999px; font-family: var(--mono); font-size: .75rem; font-weight: 500; letter-spacing: .18em; text-transform: uppercase; box-shadow: none; }
body.skin-newyork .promo-button[href*="/go/"], body.skin-newyork.pages-editorial .prose a.button[href*="/go/"], body.skin-newyork.pages-editorial .cta-partners a.button[href*="/go/"] { background: var(--ny-rose); border-color: var(--ny-rose); color: #0b0b0e; }
body.skin-newyork :focus-visible { outline: 2px solid var(--ny-champagne); outline-offset: 2px; border-radius: 4px; }
body.skin-newyork ::selection { background: var(--ny-rose); color: #0b0b0e; }

/* Type: Fraunces for headings, Inter for text, JetBrains Mono for small capitals */
body.skin-newyork h1, body.skin-newyork h2, body.skin-newyork h3, body.skin-newyork h4, body.skin-newyork .article-title, body.skin-newyork .card-title, body.skin-newyork .section-title, body.skin-newyork .brand-name {
  font-family: var(--display); font-weight: 500; letter-spacing: -.02em; font-feature-settings: "ss01"; color: var(--ny-fog); }
body.skin-newyork .prose, body.skin-newyork .standfirst, body.skin-newyork .card-excerpt { font-family: var(--sans); }
body.skin-newyork .article-title { font-size: clamp(2rem, 5vw, 3.5rem); line-height: 1.05; text-wrap: balance; }
body.skin-newyork .prose { font-size: 1.0625rem; line-height: 1.7; color: rgba(229, 223, 211, .86); }
body.skin-newyork .prose h2 { font-size: clamp(1.75rem, 3.2vw, 2.25rem); line-height: 1.1; text-wrap: balance; }
body.skin-newyork .prose h3 { font-size: 1.375rem; line-height: 1.25; }
body.skin-newyork .prose strong { color: var(--ny-fog); }
body.skin-newyork .prose a:not(.button) { color: var(--ny-fog); text-decoration: underline; text-decoration-color: var(--ny-line-2); text-underline-offset: 4px; transition: text-decoration-color .2s ease, color .2s ease; }
body.skin-newyork .prose a:not(.button):hover { text-decoration-color: var(--ny-rose); }
body.skin-newyork .standfirst { color: var(--ny-muted); }
body.skin-newyork .kicker, body.skin-newyork .prose .label, body.skin-newyork .meta, body.skin-newyork .breadcrumbs, body.skin-newyork .byline {
  font-family: var(--mono); font-size: var(--ny-label); font-weight: 400; letter-spacing: var(--ny-track); text-transform: uppercase; color: var(--ny-muted); }
body.skin-newyork .kicker { color: var(--ny-rose); text-decoration: none; }
body.skin-newyork .meta time, body.skin-newyork .meta span { letter-spacing: .14em; }
body.skin-newyork .breadcrumbs a:hover, body.skin-newyork .byline a:hover { color: var(--ny-champagne); }

/* Boxes, tables, quotes and codes in text */
body.skin-newyork .prose .box, body.skin-newyork .side-box, body.skin-newyork .prose .toc, body.skin-newyork .prose .takeaways, body.skin-newyork .prose .verdict, body.skin-newyork .prose .pros, body.skin-newyork .prose .cons, body.skin-newyork .prose .note, body.skin-newyork .prose .stat, body.skin-newyork .prose .market-box {
  border: 1px solid var(--ny-line); border-radius: 8px; background: var(--ny-card); }
body.skin-newyork .prose blockquote { border-inline-start: 2px solid rgb(230 91 127 / .7); font-family: var(--display); font-style: italic; color: var(--ny-fog); }
body.skin-newyork .prose table { border: 1px solid var(--ny-line); border-radius: 8px; border-collapse: separate; border-spacing: 0; overflow: hidden; font-size: .875rem; }
body.skin-newyork .prose th, body.skin-newyork .prose td { border-color: var(--ny-line); padding: 12px; }
body.skin-newyork .prose thead th { background: rgb(26 26 31 / .4); font-family: var(--mono); font-size: var(--ny-label); font-weight: 400; letter-spacing: .18em; text-transform: uppercase; color: var(--ny-muted); }
body.skin-newyork .prose tbody th { font-family: var(--display); font-weight: 500; color: var(--ny-fog); }
body.skin-newyork .prose td { color: var(--ny-muted); }
body.skin-newyork .prose tbody tr { transition: background-color .2s ease; }
body.skin-newyork .prose tbody tr:hover { background: rgb(26 26 31 / .2); }
body.skin-newyork .prose code.promo-code, body.skin-newyork .code-chip { border: 1px solid rgb(230 91 127 / .35); border-radius: 999px; background: rgb(230 91 127 / .1); color: var(--ny-rose); font-family: var(--mono); font-weight: 400; letter-spacing: .14em; text-transform: uppercase; }
body.skin-newyork .copy-code { border-color: rgb(230 91 127 / .45); color: var(--ny-rose); border-radius: 999px; font-family: var(--mono); font-size: var(--ny-label); letter-spacing: .14em; text-transform: uppercase; }
body.skin-newyork .copy-code.is-copied { background: var(--ny-rose); color: #0b0b0e; }
body.skin-newyork .faq details { border-color: var(--ny-line); }
body.skin-newyork .faq summary { font-family: var(--display); font-weight: 500; font-size: 1.0625rem; color: var(--ny-fog); }
body.skin-newyork .faq summary:hover { color: var(--ny-champagne); }
body.skin-newyork .faq-answer { color: var(--ny-muted); }
body.skin-newyork .prose .disclosure, body.skin-newyork .disclosure { border-inline-start: 2px solid var(--ny-rose); border-radius: 0 6px 6px 0; background: var(--ny-card); color: var(--ny-muted); }
body.skin-newyork .prose ul:not([class]) > li::marker { color: var(--ny-rose); }
body.skin-newyork .prose ol:not([class]) > li::marker { color: var(--ny-champagne); font-family: var(--mono); font-size: .85em; }
body.skin-newyork .prose > p > img, body.skin-newyork .prose > figure img, body.skin-newyork .article-figure img { border: 1px solid var(--ny-line); border-radius: 8px; }

/* Buttons: the old rose pill in mono capitals for tracked links, the rose outline for the rest */
:where(body.skin-newyork) :is(.prose a.button, .promo-button, .lo-book, .button-primary, .newsletter-row button, .search-big button, .sticky-cta .button), body.skin-newyork .sc-prose a.button[href*="/go/"], .ny-btn {
  display: inline-flex; align-items: center; justify-content: center; gap: 8px; min-height: 44px; padding: 0 22px; border: 1px solid var(--ny-rose); border-radius: 999px;
  background: var(--ny-rose); color: #0b0b0e; font-family: var(--mono); font-size: var(--ny-label); font-weight: 500; letter-spacing: .18em; line-height: 1.2; text-transform: uppercase; text-decoration: none;
  transition: transform 280ms var(--ny-ease), background-color .2s ease, box-shadow .2s ease; }
@media (hover: hover) and (pointer: fine) {
  :where(body.skin-newyork) :is(.prose a.button, .promo-button, .button-primary, .newsletter-row button, .sticky-cta .button):hover, body.skin-newyork .sc-prose a.button[href*="/go/"]:hover, .ny-btn:hover {
    background: #ea7090; border-color: #ea7090; color: #0b0b0e; transform: translateY(-1px); filter: none; }
}
:where(body.skin-newyork) :is(.prose a.button, .promo-button, .button-primary):active, .ny-btn:active { transform: scale(.98); transition-duration: 90ms; }
:where(body.skin-newyork) .prose a.button:not([href*="/go/"]), :where(body.skin-newyork) .prose a.button-alt, .ny-btn--line { background: transparent; color: var(--ny-fog); border-color: var(--ny-rose); }
:where(body.skin-newyork) .prose a.button:not([href*="/go/"]):hover, .ny-btn--line:hover { background: rgb(230 91 127 / .1); color: var(--ny-fog); }

/* Header: sticky smoked glass, the two-line wordmark (mono capitals over Fraunces italic with a rose dash), mono nav */
body.skin-newyork.theme-dark .site-header { position: sticky; top: 0; z-index: 40; background: rgb(11 11 14 / .75); border-bottom: 1px solid var(--ny-line); -webkit-backdrop-filter: blur(12px); backdrop-filter: blur(12px); }
html:has(body.skin-newyork) { scroll-padding-top: 80px; scroll-behavior: smooth; }
body.skin-newyork .header-top { min-height: 64px; }
body.skin-newyork .brand--wordmark { text-decoration: none; }
body.skin-newyork .brand--wordmark .brand-top { font-family: var(--mono); font-size: var(--ny-label); letter-spacing: .32em; color: rgb(230 212 177 / .9); opacity: 1; }
body.skin-newyork .brand--wordmark .brand-bottom { display: inline-flex; align-items: center; gap: 8px; margin-top: 2px; font-family: var(--display); font-style: italic; font-weight: 500; font-size: 1.125rem; line-height: 1.2; letter-spacing: -.01em; color: var(--ny-fog); }
body.skin-newyork .brand--wordmark .brand-bottom::after { content: ""; width: 24px; height: 1px; background: rgb(230 91 127 / .7); }
body.skin-newyork .brand-tagline { display: none; }
body.skin-newyork .nav-list a { font-family: var(--mono); font-size: var(--ny-label); font-weight: 400; letter-spacing: var(--ny-track); text-transform: uppercase; color: var(--ny-muted); padding: 8px 10px; transition: color .2s ease; }
body.skin-newyork .nav-list a:hover, body.skin-newyork .nav-list a:focus-visible, body.skin-newyork .nav-list a[aria-current] { color: var(--ny-fog); }
body.skin-newyork .sub-nav { border: 1px solid var(--ny-line); border-radius: 8px; background: var(--ny-card); box-shadow: 0 24px 48px -12px rgb(0 0 0 / .6); }
body.skin-newyork .sub-nav a { font-family: var(--sans); font-size: .875rem; letter-spacing: 0; text-transform: none; color: rgb(229 223 211 / .85); }
body.skin-newyork .sub-nav a:hover { color: var(--ny-champagne); }
body.skin-newyork .search-form input { height: 36px; padding: 0 14px; border: 1px solid var(--ny-line); border-radius: 999px; background: var(--ny-card); color: var(--ny-fog); font-size: .8125rem; }
body.skin-newyork .search-form input::placeholder { color: var(--ny-muted); }
body.skin-newyork .search-form button, body.skin-newyork .menu-toggle { min-height: 36px; min-width: 36px; border: 1px solid var(--ny-line); border-radius: 999px; color: var(--ny-fog); background: transparent; transition: border-color .2s ease; }
body.skin-newyork .search-form button:hover, body.skin-newyork .menu-toggle:hover { border-color: var(--ny-rose); }
body.skin-newyork .header-langs a { min-height: 32px; padding: 0 12px; border: 1px solid var(--ny-line); border-radius: 999px; font-family: var(--mono); font-size: var(--ny-label); letter-spacing: .18em; color: var(--ny-muted); }
body.skin-newyork .header-langs a:hover { color: var(--ny-fog); border-color: var(--ny-line-2); }
@media (max-width: 1023px) { body.skin-newyork .primary-nav { border-top: 1px solid var(--ny-line); background: rgb(11 11 14 / .95); } }

/* Floating bar on phones: smoked glass, rose button, the partner name in champagne */
@media (max-width: 767px) {
  body.skin-newyork.theme-dark .sticky-cta:not([hidden]) { left: 12px; right: 12px; bottom: 12px; gap: 0 8px; padding: 8px 6px 4px 14px; border: 1px solid rgb(230 91 127 / .45); border-radius: 12px; background: rgb(11 11 14 / .95); -webkit-backdrop-filter: blur(12px); backdrop-filter: blur(12px); color: var(--ny-fog); box-shadow: 0 12px 32px rgb(0 0 0 / .6); font-size: .8125rem; }
  body.skin-newyork .sticky-cta strong { color: var(--ny-champagne); }
  body.skin-newyork .sticky-cta .button { min-height: 44px; padding: 0 18px; }
  body.skin-newyork .sticky-cta .sticky-close { min-width: 44px; min-height: 44px; color: var(--ny-muted); }
  body.skin-newyork .sticky-terms { color: var(--ny-muted); }
}
@media (max-width: 380px) { body.skin-newyork .brand--wordmark .brand-bottom::after { display: none; } body.skin-newyork .brand--wordmark .brand-bottom { font-size: 1rem; } }

/* Footer: smoke band, the wordmark, titled columns in mono capitals */
body.skin-newyork.theme-dark .site-footer { margin-top: 0; background: var(--ny-bg); border-top: 1px solid var(--ny-line); color: var(--ny-muted); font-size: .875rem; }
body.skin-newyork .site-footer a { color: rgb(229 223 211 / .85); text-decoration: none; }
body.skin-newyork .site-footer a:hover { color: var(--ny-champagne); }
body.skin-newyork .footer-grid { padding-block: 64px 40px; }
@media (min-width: 768px) { body.skin-newyork .footer-grid { grid-template-columns: minmax(220px, 1fr) 3fr; gap: 48px; } }
body.skin-newyork .footer-brand .brand--wordmark { display: inline-flex; flex-direction: column; }
body.skin-newyork .footer-brand .brand--wordmark .brand-bottom { font-size: 1.75rem; }
body.skin-newyork .footer-brand .muted { max-width: 30ch; margin-top: 12px; color: var(--ny-muted); }
body.skin-newyork .footer-cols { gap: 24px 32px; }
@media (min-width: 1024px) { body.skin-newyork .footer-cols { grid-template-columns: repeat(5, minmax(0, 1fr)); } }
body.skin-newyork .language-switcher { padding-block: 0 20px; }
body.skin-newyork .language-switcher a { min-height: 32px; padding: 0 14px; border: 1px solid var(--ny-line); border-radius: 999px; background: none; font-family: var(--mono); font-size: var(--ny-label); letter-spacing: .18em; text-transform: uppercase; color: var(--ny-muted); }
body.skin-newyork .language-switcher a[aria-current] { border-color: rgb(230 91 127 / .5); background: rgb(230 91 127 / .1); color: var(--ny-fog); }
body.skin-newyork .rg-notice { margin: 0 auto; padding-block: 16px; border-top: 1px solid var(--ny-line); font-size: .75rem; color: var(--ny-muted); }
body.skin-newyork .footer-bottom { border-top: 1px solid var(--ny-line); font-size: .75rem; color: var(--ny-muted); }
body.skin-newyork :is(.footer-title, .footer-head) { margin: 0 0 12px; font-family: var(--mono); font-size: var(--ny-label); font-weight: 400; letter-spacing: var(--ny-track); text-transform: uppercase; color: var(--ny-muted); }
body.skin-newyork .footer-cols a { min-height: 30px; font-size: .8125rem; line-height: 1.35; }
body.skin-newyork .site-footer :is(.footer-bottom, .footer-legal, .footer-text) { border-color: var(--ny-line); font-size: .75rem; color: var(--ny-muted); }

/* Article lists (home page and archives): the old editorial cards: picture with a soft fade, mono label, Fraunces title */
body.skin-newyork .card { gap: 0; border: 0; background: none; transition: transform 450ms var(--ny-ease); }
body.skin-newyork .card-media { overflow: hidden; margin-bottom: 16px; border: 1px solid var(--ny-line); border-radius: 6px; background: var(--ny-card); position: relative; }
body.skin-newyork .card-media::after { content: ""; position: absolute; inset: 0; background: linear-gradient(0deg, rgb(11 11 14 / .7), rgb(11 11 14 / .05) 45%, transparent); pointer-events: none; }
body.skin-newyork .card-media img { transition: transform .7s ease-out; }
body.skin-newyork .card:hover .card-media img { transform: scale(1.03); }
body.skin-newyork .card-body { padding: 0; }
body.skin-newyork .card-title { margin: 8px 0 0; font-size: 1.375rem; line-height: 1.1; text-wrap: balance; }
body.skin-newyork .card-title a { color: var(--ny-fog); text-decoration: none; transition: color .2s ease; }
body.skin-newyork .card:hover .card-title a { color: var(--ny-champagne); }
body.skin-newyork .card-excerpt { margin-top: 10px; color: var(--ny-muted); font-size: .9375rem; text-wrap: pretty; }
body.skin-newyork .card .meta { margin-top: 10px; font-size: var(--ny-label); }
body.skin-newyork .card--lead .card-title { font-size: clamp(1.875rem, 4vw, 3rem); line-height: 1.05; }
body.skin-newyork .card--lead .card-media { border-radius: 8px; margin-bottom: 24px; }
body.skin-newyork .section-title { display: block; border-top: 0; padding-top: 0; font-size: clamp(1.75rem, 3vw, 2.25rem); line-height: 1.1; }
body.skin-newyork .section-title::before { content: ""; display: block; width: 48px; height: 1px; margin-bottom: 18px; background: var(--ny-rose); }

/* Article and page layout: the hairline above each main heading of a text */
body.skin-newyork .prose:not(.sc-prose) > h2 { margin-top: 2.2em; padding-top: 1.1em; border-top: 1px solid var(--ny-line); }
body.skin-newyork .prose:not(.sc-prose) > h2:first-child { margin-top: 0; padding-top: 0; border-top: 0; }
body.skin-newyork .prose .cards > .box { transition: transform 450ms var(--ny-ease), border-color 450ms var(--ny-ease), box-shadow 450ms var(--ny-ease); }
@media (hover: hover) and (pointer: fine) {
  body.skin-newyork .prose .cards > .box:has(a):hover { transform: translateY(-4px); border-color: rgb(230 91 127 / .4); box-shadow: var(--ny-lift); }
}

/* page_layout = editorial draws cards and section titles its own way; this skin keeps the old editorial cards */
body.skin-newyork.pages-editorial .card { padding: 0; border: 0; border-radius: 0; background: none; box-shadow: none; }
body.skin-newyork.pages-editorial .card:hover { border: 0; box-shadow: none; }
body.skin-newyork.pages-editorial .card-media { order: -1; aspect-ratio: 4 / 3; border-radius: 6px; }
body.skin-newyork.pages-editorial .card--lead .card-media { aspect-ratio: 16 / 10; border-radius: 8px; }
body.skin-newyork.pages-editorial .card .kicker { order: 0; margin: 0 0 8px; font-family: var(--mono); font-size: var(--ny-label); letter-spacing: var(--ny-track); color: var(--ny-rose); }
body.skin-newyork.pages-editorial .card-title { order: 1; margin: 0; font-family: var(--display); font-weight: 500; font-size: 1.375rem; line-height: 1.12; letter-spacing: -.015em; }
body.skin-newyork.pages-editorial .card--lead .card-title { font-size: clamp(1.875rem, 4vw, 3rem); line-height: 1.05; }
body.skin-newyork.pages-editorial .card-excerpt { order: 2; margin-top: 10px; font-family: var(--sans); color: var(--ny-muted); }
body.skin-newyork.pages-editorial .card .meta { order: 3; margin-top: 12px; font-family: var(--mono); font-size: var(--ny-label); letter-spacing: .16em; }
body.skin-newyork.pages-editorial .card:hover .card-title a { color: var(--ny-champagne); }
body.skin-newyork.pages-editorial .section-title { font-family: var(--display); font-weight: 500; font-size: clamp(1.75rem, 3vw, 2.25rem); letter-spacing: -.02em; text-transform: none; color: var(--ny-fog); }
/* tables, quotes and boxes of the home text: no article accents */
body.skin-newyork .ny-text .box { border-inline-start-width: 1px; }
body.skin-newyork .ny-band--table .box, body.skin-newyork.pages-editorial .ny-text.prose > .box:first-of-type:not(.code-box):not(.cta-partners) { border: 0; padding: 0; background: none; }
body.skin-newyork.pages-editorial .ny-text.prose thead th { background: rgb(26 26 31 / .4); color: var(--ny-muted); font-family: var(--mono); font-size: var(--ny-label); font-weight: 400; letter-spacing: .18em; text-transform: uppercase; }
body.skin-newyork .ny-text tbody th, body.skin-newyork .ny-text tbody th a { font-family: var(--display); font-size: .9375rem; font-weight: 500; letter-spacing: 0; text-transform: none; color: var(--ny-fog); }
body.skin-newyork .ny-text td { font-family: var(--sans); color: var(--ny-muted); }
body.skin-newyork .ny-band--quotes blockquote { margin: 0; padding: 0; border: 0; background: none; }
body.skin-newyork .ny-band--quotes blockquote::before, body.skin-newyork .ny-band--quotes blockquote::after { content: none; }

/* ===================================================================================================================
   Home page (.ny-*)
   =================================================================================================================== */
body.skin-newyork.t-home main { padding-top: 0; }
body.skin-newyork.home-showcase .site-header { border-bottom-color: var(--ny-line); }
.ny-ico { flex: none; transition: transform .25s ease; }
a:hover > .ny-ico { transform: translateX(2px); }
.ny-rule { display: inline-block; flex: none; width: 48px; height: 1px; vertical-align: middle; background: linear-gradient(90deg, #e65b7f 0%, #f4a08a 50%, #e65b7f 100%) 0 50% / 220% 100%; animation: ny-rule 7s ease-in-out infinite; }
body.skin-newyork .ny-label { display: flex; align-items: center; gap: 16px; margin: 0 0 16px; font-family: var(--mono); font-size: var(--ny-label); font-weight: 400; letter-spacing: var(--ny-track); line-height: 1.6; text-transform: uppercase; color: var(--ny-muted); }
body.skin-newyork h2.ny-label { font-family: var(--mono); font-size: var(--ny-label); font-weight: 400; letter-spacing: var(--ny-track); line-height: 1.6; color: var(--ny-muted); }
.ny-shimmer { font-style: italic; background: linear-gradient(110deg, #e65b7f 0%, #f08a6e 35%, #f491b1 50%, #f08a6e 65%, #e65b7f 100%) 0% 50% / 220% 100%; -webkit-background-clip: text; background-clip: text; color: transparent; -webkit-text-fill-color: transparent; animation: ny-shimmer 9s ease-in-out infinite; padding-inline-end: .06em; }

/* 1. Neon band: night sky, star dust, the moon rising and floating, the skyline rising, the grid drifting toward the
      horizon, "New York" switching on word by word and flickering, the "Prediction Markets" pill fading in. */
.ny-neon { position: relative; overflow: hidden; height: clamp(190px, 34vw, 380px); background:
  radial-gradient(ellipse 90% 70% at 50% 95%, rgb(230 91 127 / .18) 0%, transparent 55%),
  linear-gradient(180deg, #08080d 0%, #0e0d17 55%, #0b0b0e 100%); }
.ny-stars { position: absolute; inset: 0; opacity: .4; background-image:
  radial-gradient(1px 1px at 12% 18%, rgb(230 212 177 / .7), transparent 50%), radial-gradient(1px 1px at 28% 30%, rgb(230 212 177 / .5), transparent 50%),
  radial-gradient(1px 1px at 44% 12%, rgb(230 212 177 / .6), transparent 50%), radial-gradient(1px 1px at 67% 24%, rgb(230 212 177 / .5), transparent 50%),
  radial-gradient(1px 1px at 82% 16%, rgb(230 212 177 / .7), transparent 50%), radial-gradient(1px 1px at 92% 32%, rgb(230 212 177 / .4), transparent 50%); }
.ny-moon { position: absolute; top: 5%; left: 50%; width: clamp(96px, 16vw, 184px); aspect-ratio: 1; margin-left: calc(clamp(96px, 16vw, 184px) / -2);
  filter: drop-shadow(0 0 40px rgb(240 225 200 / .45)) drop-shadow(0 0 90px rgb(230 91 127 / .35)); animation: ny-moon-in 1.6s cubic-bezier(.22, 1, .36, 1) .1s both, ny-moon-float 9s ease-in-out 1.7s infinite; }
.ny-moon::before { content: ""; position: absolute; inset: 0; border-radius: 50%; transform: scale(1.6); background: radial-gradient(circle, rgb(245 232 210 / .25) 0%, transparent 65%); }
.ny-moon img { position: relative; display: block; width: 100%; height: 100%; animation: ny-moon-turn 26s ease-in-out 1.6s infinite both; } /* both: holds -8deg during the delay, no jump (motion audit) */
.ny-skyline { position: absolute; left: 0; right: 0; bottom: 32%; width: 100%; height: clamp(84px, 15.5vw, 248px); object-fit: cover; object-position: 50% 100%; animation: ny-rise 1.2s cubic-bezier(.22, 1, .36, 1) .5s both; }
.ny-grid { position: absolute; left: 0; right: 0; bottom: 0; height: 38%; overflow: hidden; background: linear-gradient(180deg, transparent 0%, rgb(230 91 127 / .06) 30%, rgb(230 91 127 / .1) 100%); }
.ny-grid > span { position: absolute; top: 0; left: 50%; width: 260%; height: 100%; transform: translateX(-50%) perspective(420px) rotateX(62deg); transform-origin: 50% 0;
  background-image: linear-gradient(rgb(230 91 127 / .55) 1px, transparent 1px), linear-gradient(90deg, rgb(230 91 127 / .45) 1px, transparent 1px); background-size: 60px 60px;
  -webkit-mask-image: linear-gradient(180deg, transparent 0%, #000 25%, #000 100%); mask-image: linear-gradient(180deg, transparent 0%, #000 25%, #000 100%); animation: ny-grid 6s linear infinite; }
.ny-grid::before { content: ""; position: absolute; top: 0; left: 0; right: 0; z-index: 1; height: 2px; background: linear-gradient(90deg, transparent 0%, #e65b7f 30%, #f6e6c8 50%, #e65b7f 70%, transparent 100%); box-shadow: 0 0 18px rgb(230 91 127 / .7), 0 0 38px rgb(230 91 127 / .4); }
.ny-neon::after { content: ""; position: absolute; left: 0; right: 0; bottom: 0; height: 30%; background: linear-gradient(180deg, transparent 0%, #0b0b0e 100%); pointer-events: none; }
.ny-neon-mark { position: absolute; inset: 0; z-index: 2; display: flex; flex-direction: column; align-items: center; justify-content: center; padding: 0 24px; text-align: center; pointer-events: none; }
.ny-neon-word { margin: 0; font-family: var(--display); font-style: italic; font-weight: 500; font-size: clamp(40px, 7.6vw, 100px); line-height: .9; letter-spacing: -.02em; color: #f6eedf; }
.ny-neon-w { display: inline-block; text-shadow: 0 0 6px rgb(245 232 210 / .7), 0 0 18px rgb(240 222 190 / .45), 0 0 38px rgb(230 91 127 / .35);
  animation: ny-switch .5s ease-out 1.5s both, ny-flicker 5.5s ease-in-out 2.6s infinite; }
.ny-neon-w2 { animation-delay: 1.95s, 2.6s; }
.ny-neon-sub { margin: clamp(10px, 1.3vw, 18px) 0 0; animation: ny-fade .8s ease 2.4s both; }
.ny-neon-sub span { display: inline-block; padding: 6px 16px; border-top: 1px solid rgb(230 91 127 / .6); border-radius: 999px; background: rgb(11 11 18 / .55); -webkit-backdrop-filter: blur(2px); backdrop-filter: blur(2px);
  font-family: var(--mono); font-size: clamp(12px, 1.25vw, 16px); letter-spacing: .28em; text-transform: uppercase; color: #f6eedf; text-shadow: 0 0 6px rgb(240 225 200 / .7), 0 0 18px rgb(230 91 127 / .45); }

/* round 2: the band stops at 270px on wide screens (300 before the three-line h1) so the offer cards start on the first screen at 1440x900; its parts scale with it */
@media (min-width: 1024px) {
  .ny-neon { height: 270px; }
  .ny-moon { top: 6%; width: 136px; margin-left: -68px; }
  /* a shorter band would crop the tower tops off a full-width skyline (cover); the skyline is drawn at its own 5:1 shape instead,
     centred and repeated sideways as the img's background (its own content moved out of view; it stays aria-hidden) */
  .ny-skyline { height: 158px; bottom: 30%; object-fit: none; object-position: -9999px -9999px; background: url("../../img/skins/newyork/skyline.svg") 50% 100% / auto 100% repeat-x; }
  .ny-neon-word { font-size: 76px; }
  .ny-neon-sub span { font-size: 13px; }
}

/* 2. Hero: the city photo drifting behind a dark wash, mono label, the large Fraunces title with the shimmering italic,
      the text, the rose buttons (the first one with the passing shine), the quiet link and the dated line. */
.ny-hero { position: relative; overflow: hidden; }
.ny-hero-photo { position: absolute; inset: 0; background: url("../../img/skins/newyork/skyline-photo.jpg") center / cover no-repeat; opacity: .28; transform: scale(1.04); animation: ny-drift 40s ease-in-out infinite alternate; }
.ny-hero::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, rgb(11 11 14 / .7) 0%, rgb(11 11 14 / .85) 50%, #0b0b0e 100%); }
.ny-hero-in { position: relative; z-index: 1; padding-block: 32px 40px; }
@media (min-width: 1024px) { .ny-hero-in { padding-block: 32px 24px; } }
.ny-hero-in > * { max-width: 56rem; }
.ny-hero-in > .ny-title { max-width: 64rem; }
.ny-kicker { margin: 0 0 10px; font-family: var(--mono); font-size: var(--ny-label); letter-spacing: var(--ny-track); text-transform: uppercase; color: var(--ny-muted); }
.ny-title { margin: 0; max-width: 62rem; font-family: var(--display); font-weight: 500; font-size: clamp(2.5rem, 4.6vw, 4rem); line-height: .95; letter-spacing: -.02em; text-wrap: balance; color: var(--ny-fog); }
.ny-title em { display: inline; }
/* the headline on three lines from 768px (Catie, 15 Oct): before the colon / the accent / place and year, which never split */
.ny-title .ny-nowrap { white-space: nowrap; }
.ny-title-br { display: none; }
@media (min-width: 768px) { .ny-title em { display: block; } .ny-title-br { display: inline; } }
.ny-dek { margin: 16px 0 0; max-width: 46rem; font-size: clamp(1.0625rem, 1.5vw, 1.25rem); line-height: 1.55; color: var(--ny-muted); text-wrap: pretty; }
.ny-cta { display: flex; flex-wrap: wrap; align-items: center; gap: 12px 16px; margin: 24px 0 0; }
@media (min-width: 1024px) { .ny-hero-in > .ny-dek { max-width: 70rem; } .ny-offers { padding-top: 24px; } }
.ny-cta .ny-btn { min-height: 48px; padding: 0 28px; }
@media (max-width: 767px) { .ny-btn, :where(body.skin-newyork) :is(.prose a.button, .promo-button, .button-primary, .sticky-cta .button) { font-size: .75rem; } }
.ny-quiet { display: inline-flex; align-items: center; gap: 6px; font-family: var(--mono); font-size: var(--ny-label); letter-spacing: var(--ny-track); text-transform: uppercase; color: var(--ny-muted); text-decoration: none; transition: color .2s ease; }
.ny-quiet:hover { color: var(--ny-rose); }
.ny-filed { display: flex; align-items: center; gap: 16px; margin: 24px 0 0; font-family: var(--mono); font-size: var(--ny-label); letter-spacing: var(--ny-track); text-transform: uppercase; color: var(--ny-muted); }
.ny-btn--shine { position: relative; overflow: hidden; isolation: isolate; }
.ny-btn--shine::after { content: ""; position: absolute; inset: 0; z-index: 1; background: linear-gradient(115deg, transparent 30%, rgb(247 244 238 / .28) 50%, transparent 70%); transform: translateX(-120%); mix-blend-mode: overlay; pointer-events: none; animation: ny-shine 5.5s ease-in-out infinite; }
.ny-btn--shine:hover::after { animation-play-state: paused; }
.ny-rise { animation: ny-hero-up .35s cubic-bezier(.16, 1, .3, 1) both; } /* motion audit: from 55% and 3px, never a blank first screen */
@keyframes ny-hero-up { from { opacity: .55; transform: translateY(3px); } to { opacity: 1; transform: none; } }
.ny-hero-in > .ny-rise:nth-child(2) { animation-delay: .09s; }
.ny-hero-in > .ny-rise:nth-child(3) { animation-delay: .18s; }
.ny-hero-in > .ny-rise:nth-child(4) { animation-delay: .27s; }
.ny-hero-in > .ny-rise:nth-child(5) { animation-delay: .36s; }

/* 3. Reader offers: one card per partner (name, code chip, the offer, where it is valid, the rose button, terms) */
.ny-offers { padding-block: 48px 40px; border-top: 1px solid var(--ny-line); }
.ny-ocards { display: grid; grid-template-columns: minmax(0, 1fr); gap: 16px; margin: 0; padding: 0; list-style: none; }
@media (min-width: 640px) { .ny-ocards { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (min-width: 1100px) { .ny-ocards-3 { grid-template-columns: repeat(3, minmax(0, 1fr)); } .ny-ocards-4 { grid-template-columns: repeat(4, minmax(0, 1fr)); } }
.ny-ocard { display: flex; flex-direction: column; padding: 20px 20px 16px; border: 1px solid var(--ny-line); border-radius: 6px; background: var(--ny-card);
  transition: transform 450ms var(--ny-ease), border-color 450ms var(--ny-ease), box-shadow 450ms var(--ny-ease); }
@media (hover: hover) and (pointer: fine) { .ny-ocard:hover { transform: translateY(-4px); border-color: rgb(230 91 127 / .4); box-shadow: var(--ny-lift); } }
.ny-ocard-top { display: flex; align-items: center; justify-content: space-between; gap: 12px; flex-wrap: wrap; }
.ny-ocard-name { margin: 0; font-family: var(--display); font-weight: 500; font-size: 1.375rem; line-height: 1.2; color: var(--ny-fog); }
.ny-chip { display: inline-flex; align-items: center; gap: 6px; min-height: 26px; padding: 2px 10px; border: 1px solid rgb(230 91 127 / .35); border-radius: 999px; background: rgb(230 91 127 / .08);
  font-family: var(--mono); font-size: var(--ny-label); letter-spacing: .16em; text-transform: uppercase; color: var(--ny-rose); cursor: pointer; transition: background-color .2s ease, border-color .2s ease; }
.ny-chip:hover { background: rgb(230 91 127 / .15); border-color: rgb(230 91 127 / .6); }
.ny-chip code.promo-code { padding: 0; border: 0; background: none; color: inherit; font: inherit; letter-spacing: inherit; }
.ny-chip.is-copied { background: var(--ny-rose); color: #0b0b0e; }
.ny-ocard-offer { margin: 14px 0 0; font-size: .9375rem; line-height: 1.45; color: var(--ny-fog); }
.ny-ocard-valid { margin: 6px 0 0; font-size: .8125rem; color: var(--ny-muted); }
.ny-btn--card { justify-content: space-between; width: 100%; margin-top: auto; min-height: 40px; font-size: var(--ny-label); }
.ny-ocard .ny-btn--card { margin-top: 18px; }
.ny-terms { margin-top: 10px; font-size: .75rem; color: var(--ny-muted); }
.ny-terms summary { display: inline-flex; align-items: center; min-height: 32px; cursor: pointer; font-family: var(--mono); font-size: var(--ny-label); letter-spacing: .18em; text-transform: uppercase; list-style: none; }
.ny-terms summary::-webkit-details-marker { display: none; }
.ny-terms summary::after { content: "+"; margin-inline-start: 6px; color: var(--ny-rose); }
.ny-terms[open] summary::after { content: "−"; }
.ny-terms summary:hover { color: var(--ny-fog); }
.ny-terms p { margin: 6px 0 0; line-height: 1.5; }
.ny-disclosure { margin: 20px 0 0; font-family: var(--mono); font-size: var(--ny-label); letter-spacing: var(--ny-track); line-height: 1.7; text-transform: uppercase; color: var(--ny-muted); }

/* 4. Trust line */
.ny-trust { border-block: 1px solid var(--ny-line); background: rgb(26 26 31 / .3); }
.ny-trust ul { display: flex; flex-wrap: wrap; justify-content: center; gap: 6px 20px; margin: 0 auto; padding-block: 14px; list-style: none; font-family: var(--mono); font-size: var(--ny-label); letter-spacing: var(--ny-track); text-transform: uppercase; color: var(--ny-muted); text-align: center; }
@media (min-width: 640px) { .ny-trust ul { font-size: var(--ny-label); } }
.ny-trust li + li::before { content: "·"; margin-inline-end: 20px; color: var(--ny-line-2); }
.ny-trust .ny-trust-first { color: var(--ny-fog); }
.ny-trust .ny-trust-last { color: var(--ny-rose); }

/* 5. Sections of the text: label, Fraunces heading, muted text; the reading column of the original (48rem) */
.ny-band { padding-block: 64px 0; }
@media (min-width: 640px) { .ny-band { padding-block: 80px 0; } }
.ny-band--plain + .ny-band--plain { padding-top: 40px; }
.ny-text { color: var(--ny-muted); }
/* the home text is .prose: undo the article look of page_layout = editorial (rule under h2, serif text) */
body.skin-newyork .ny-text.prose { font-family: var(--sans); font-size: 1rem; line-height: 1.625; color: var(--ny-muted); }
body.skin-newyork .ny-text h2 { position: static; margin: 0 0 16px; padding: 0; border: 0; font-family: var(--display); font-weight: 500; font-size: clamp(1.875rem, 3.4vw, 2.25rem); line-height: 1.1; letter-spacing: -.02em; color: var(--ny-fog); }
body.skin-newyork .ny-text h2::after { content: none; }
body.skin-newyork .ny-text h3 { margin: 0 0 8px; font-family: var(--display); font-weight: 500; letter-spacing: -.01em; color: var(--ny-fog); }
body.skin-newyork .ny-text .label, body.skin-newyork .ny-label { color: var(--ny-muted); }
.ny-text.sc-prose { max-width: var(--wrap); }
.ny-text > :not(.cards, .box, table, ul, div, figure) { max-width: 48rem; }
.ny-text h2 { margin: 0 0 16px; font-size: clamp(1.875rem, 3.4vw, 2.25rem); line-height: 1.1; }
.ny-text h2 + p { margin-top: 0; }
.ny-text p { color: var(--ny-muted); text-wrap: pretty; }
.ny-text p strong { color: var(--ny-fog); }
.ny-updated { margin: -4px 0 16px; font-family: var(--mono); font-size: var(--ny-label); letter-spacing: var(--ny-track); text-transform: uppercase; color: var(--ny-muted); }
.ny-band--text .ny-text > p:last-child { margin-bottom: 0; }
/* the table of platforms */
.ny-band--table .box { padding: 0; border: 0; background: none; max-width: 56rem; overflow-x: auto; }
.ny-band--table table { width: 100%; margin: 0; }
.ny-band--table .box + p { margin-top: 12px; font-family: var(--mono); font-size: .75rem; }
/* plain-link lists (promo-code guides): cards */
.ny-band--links ul { display: grid; gap: 16px; margin: 24px 0 0; padding: 0; list-style: none; }
@media (min-width: 640px) { .ny-band--links ul { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (min-width: 1024px) { .ny-band--links ul { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
.ny-band--links li { margin: 0; }
.ny-band--links li a { display: block; height: 100%; padding: 20px; border: 1px solid var(--ny-line); border-radius: 6px; background: var(--ny-card); color: var(--ny-muted); font-size: .875rem; text-decoration: none;
  transition: transform 450ms var(--ny-ease), border-color 450ms var(--ny-ease), box-shadow 450ms var(--ny-ease); }
.ny-band--links li a strong { display: block; margin-bottom: 4px; font-family: var(--display); font-weight: 500; font-size: 1.125rem; color: var(--ny-fog); }
@media (hover: hover) and (pointer: fine) { .ny-band--links li a:hover { transform: translateY(-4px); border-color: rgb(230 91 127 / .4); box-shadow: var(--ny-lift); } }
/* quotes ("What we're watching"): one card with three columns of italic notes */
.ny-band--quotes .ny-text { padding: 24px; border: 1px solid var(--ny-line); border-radius: 12px; background: var(--ny-card); }
@media (min-width: 640px) { .ny-band--quotes .ny-text { padding: 32px; } }
.ny-band--quotes .ny-text { display: grid; grid-template-columns: minmax(0, 1fr); gap: 24px; }
@media (min-width: 768px) { .ny-band--quotes .ny-text { grid-template-columns: repeat(2, minmax(0, 1fr)); } .ny-band--quotes .ny-text > :not(figure) { grid-column: 1 / -1; } }
.ny-band--quotes .ny-label { color: var(--ny-rose); margin: 0; }
.ny-band--quotes h2 { margin: 0; font-size: 1.5rem; }
.ny-band--quotes figure { margin: 0; padding-inline-start: 16px; border-inline-start: 2px solid rgb(230 91 127 / .7); }
.ny-band--quotes figure > p { margin: 0 0 8px; font-family: var(--mono); font-size: var(--ny-label); letter-spacing: var(--ny-track); text-transform: uppercase; color: var(--ny-muted); }
.ny-band--quotes blockquote { margin: 0; padding: 0; border: 0; font-family: var(--display); font-style: italic; font-size: 1.125rem; line-height: 1.35; color: var(--ny-fog); text-wrap: pretty; }
/* tiles (categories, boroughs): link cards with a chip, a Fraunces name and a line */
.ny-band--tiles { border-top: 1px solid var(--ny-line); margin-top: 80px; background: rgb(26 26 31 / .2); padding-bottom: 80px; }
.ny-band--tiles + .ny-band--tiles { margin-top: 0; background: none; }
.ny-band--tiles .ny-text > h2 + p { margin-bottom: 32px; }
.ny-band--tiles .ny-text { display: grid; grid-template-columns: minmax(0, 1fr); gap: 20px; }
@media (min-width: 640px) { .ny-band--tiles .ny-text { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (min-width: 1024px) { .ny-band--tiles .ny-text { grid-template-columns: repeat(4, minmax(0, 1fr)); } }
.ny-band--tiles .ny-text > :not(.ny-tile) { grid-column: 1 / -1; margin-block: 0; }
.ny-band--tiles .ny-text > h2 { margin-bottom: -4px; }
.ny-band--tiles a.ny-tile { position: relative; display: flex; flex-direction: column; height: 100%; padding: 24px; border: 1px solid var(--ny-line); border-radius: 6px; background: var(--ny-card); text-decoration: none; color: var(--ny-muted);
  transition: transform 450ms var(--ny-ease), border-color 450ms var(--ny-ease), box-shadow 450ms var(--ny-ease); }
@media (hover: hover) and (pointer: fine) { .ny-band--tiles a.ny-tile:hover { transform: translateY(-4px); border-color: rgb(230 91 127 / .4); box-shadow: var(--ny-lift); } }
.ny-band--tiles a.ny-tile::after { content: ""; position: absolute; top: 24px; right: 22px; width: 14px; height: 14px; background: currentColor; opacity: .6;
  -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M7 7h10v10M7 17 17 7'/%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' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M7 7h10v10M7 17 17 7'/%3E%3C/svg%3E") center / contain no-repeat; transition: color .2s ease, opacity .2s ease; }
.ny-band--tiles a.ny-tile:hover::after { color: var(--ny-rose); opacity: 1; }
.ny-band--tiles a.ny-tile > p:first-child { align-self: flex-start; margin: 0 0 16px; padding: 4px 10px; border: 1px solid rgb(230 91 127 / .3); border-radius: 999px; background: rgb(230 91 127 / .15);
  font-family: var(--mono); font-size: var(--ny-label); letter-spacing: .16em; text-transform: uppercase; color: var(--ny-rose); }
.ny-band--tiles a.ny-tile > h3 { margin: 0 0 8px; font-size: 1.5rem; color: var(--ny-fog); }
.ny-band--tiles a.ny-tile > p { margin: 0; font-size: .875rem; color: var(--ny-muted); }
.ny-band--tiles a.ny-tile > p + p { margin-top: 14px; font-family: var(--mono); font-size: var(--ny-label); letter-spacing: .14em; text-transform: uppercase; color: rgb(161 161 170 / .8); }
body.skin-newyork .ny-text a.ny-tile, body.skin-newyork .ny-text a.ny-tile * { text-decoration: none; }
.ny-band--tiles a.ny-tile > img { display: block; width: 100%; height: auto; aspect-ratio: 16 / 10; object-fit: cover; margin: 0 0 16px; border-radius: 4px; }
.ny-band--tiles a.ny-tile:has(> img) > p:first-of-type { padding: 0; border: 0; background: none; }
/* borough cards: plain label, the line in rose Fraunces italic, the neighbourhoods in mono capitals */
.ny-band--tiles a.ny-tile:not(:has(> img)):has(> p + h3 + p + p) > p:first-child { padding: 0; border: 0; background: none; color: var(--ny-muted); }
.ny-band--tiles a.ny-tile:not(:has(> img)):has(> p + h3 + p + p) > h3 + p { font-family: var(--display); font-style: italic; font-size: .9375rem; color: rgb(230 91 127 / .9); }
@media (min-width: 1024px) { .ny-band--tiles:has(.ny-tile > p + h3 + p + p) .ny-text { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
/* boxes and steps (tonight's picks, the basics, closing boxes) */
.ny-text .cards { display: grid; gap: 20px; margin: 32px 0 0; max-width: none; }
@media (min-width: 768px) { .ny-text .cards { grid-template-columns: repeat(3, minmax(0, 1fr)); } .ny-text .cards:has(> .box:nth-child(2):last-child) { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
.ny-text .cards > .box { margin: 0; padding: 28px; border: 1px solid var(--ny-line); border-radius: 6px; background: var(--ny-card); }
.ny-text .cards > .box > p:first-child { margin: 0 0 12px; font-family: var(--mono); font-size: var(--ny-label); letter-spacing: var(--ny-track); text-transform: uppercase; color: var(--ny-rose); }
.ny-text .cards > .box h3 { margin: 0 0 12px; font-size: 1.25rem; line-height: 1.3; }
.ny-text .cards > .box p { font-size: .875rem; }
.ny-band--steps { border-block: 1px solid var(--ny-line); margin-top: 80px; padding-bottom: 80px; background: rgb(26 26 31 / .2); }
@media (min-width: 1024px) {
  .ny-band--steps .ny-text { display: grid; grid-template-columns: 5fr 7fr; column-gap: 40px; align-items: start; }
  .ny-band--steps .ny-text > :not(.cards) { grid-column: 1; }
  .ny-band--steps .ny-text > .cards { grid-column: 2; grid-row: 1 / span 6; margin: 0; }
}
.ny-band--steps h2 { font-size: clamp(2.25rem, 4.4vw, 3rem); line-height: 1.05; }
.ny-band--steps .cards > .box { padding: 24px; }
.ny-band--steps .cards > .box > p:first-child { font-size: .75rem; letter-spacing: 0; }
.ny-band--steps .cards > .box strong { display: block; font-family: var(--display); font-weight: 500; font-size: 1.125rem; color: var(--ny-fog); }
.ny-text a.button:not([href*="/go/"]) { min-height: 40px; margin-top: 8px; border-color: var(--ny-line-2); font-size: var(--ny-label); letter-spacing: .18em; }
.ny-text a.button:not([href*="/go/"])::after { content: " →"; }

/* 6. Price ticker and board (feed only) */
.ny-ticker { position: relative; overflow: hidden; margin-top: 64px; border-block: 1px solid var(--ny-line); background: rgb(26 26 31 / .3); }
.ny-ticker::before, .ny-ticker::after { content: ""; position: absolute; top: 0; bottom: 0; z-index: 1; width: 64px; pointer-events: none; }
.ny-ticker::before { left: 0; background: linear-gradient(90deg, #0b0b0e, transparent); }
.ny-ticker::after { right: 0; background: linear-gradient(270deg, #0b0b0e, transparent); }
.ny-ticker-run { display: flex; width: max-content; animation: ny-ticker 60s linear infinite; }
.ny-ticker:hover .ny-ticker-run, .ny-ticker:focus-within .ny-ticker-run { animation-play-state: paused; }
.ny-ticker ul { display: flex; margin: 0; padding: 0; list-style: none; white-space: nowrap; }
.ny-ticker li a { display: flex; align-items: center; gap: 12px; padding: 12px 24px; border-inline-end: 1px solid rgb(35 35 41 / .6); color: var(--ny-fog); font-size: .875rem; text-decoration: none; transition: opacity .2s ease; }
.ny-ticker li a:hover { opacity: .8; }
.ny-ticker-venue { font-family: var(--mono); font-size: var(--ny-label); letter-spacing: var(--ny-track); text-transform: uppercase; color: var(--ny-muted); }
.ny-ticker strong { font-family: var(--mono); font-weight: 400; color: var(--ny-champagne); }
.ny-head-row { display: flex; flex-wrap: wrap; align-items: flex-end; justify-content: space-between; gap: 8px 24px; }
.ny-head-row > .ny-text { flex: 1 1 32rem; }
.ny-all, .ny-live { margin: 0 0 18px; }
.ny-all a { display: inline-flex; align-items: center; gap: 6px; font-size: .875rem; font-weight: 500; color: var(--ny-champagne); text-decoration: none; transition: gap .2s ease; }
.ny-all a:hover { gap: 10px; }
.ny-all a::after { content: "↗"; }
.ny-live { display: inline-flex; align-items: center; gap: 8px; font-family: var(--mono); font-size: var(--ny-label); letter-spacing: var(--ny-track); text-transform: uppercase; color: var(--ny-muted); }
.ny-pulse { position: relative; width: 8px; height: 8px; border-radius: 50%; background: var(--ny-olive); }
.ny-pulse::after { content: none; } /* motion audit 20 Oct: daily prices, so a still dot, no live ping */
.ny-markets { display: grid; grid-template-columns: minmax(0, 1fr); gap: 16px; margin: 24px 0 0; padding: 0; list-style: none; }
@media (min-width: 640px) { .ny-markets { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (min-width: 1024px) { .ny-markets { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
.ny-market { display: flex; flex-direction: column; padding: 20px; border: 1px solid var(--ny-line); border-radius: 6px; background: var(--ny-card); transition: border-color 450ms var(--ny-ease), transform 450ms var(--ny-ease), box-shadow 450ms var(--ny-ease); }
@media (hover: hover) and (pointer: fine) { .ny-market:hover { transform: translateY(-4px); border-color: rgb(230 91 127 / .4); box-shadow: var(--ny-lift); } }
.ny-market-title { margin: 0; font-family: var(--display); font-weight: 500; font-size: 1.125rem; line-height: 1.25; }
.ny-market-title a { color: var(--ny-fog); text-decoration: none; }
.ny-market-title a:hover { color: var(--ny-champagne); }
.ny-market-label { margin: 10px 0 0; font-family: var(--mono); font-size: var(--ny-label); letter-spacing: .12em; text-transform: uppercase; color: var(--ny-muted); }
.ny-market-label small { margin-inline-start: 6px; letter-spacing: .04em; }
.ny-market-label .is-up { color: var(--ny-olive); }
.ny-market-label .is-down { color: var(--ny-rose); }
.ny-bar { display: block; height: 2px; margin: 12px 0 14px; background: var(--ny-line); border-radius: 2px; overflow: hidden; }
.ny-bar > span { display: block; height: 100%; background: linear-gradient(90deg, #e65b7f, #f08a6e); transform-origin: 0 50%; }
.ny-markets.is-in .ny-bar > span { animation: ny-bar 1s var(--ny-ease) .2s both; }
.ny-market-venues { display: flex; flex-wrap: wrap; gap: 8px; margin: auto 0 0; }
.ny-price { display: inline-flex; flex: 1 1 0; align-items: center; justify-content: space-between; gap: 8px; min-height: 40px; padding: 0 12px; border: 1px solid var(--ny-line-2); border-radius: 999px;
  font-family: var(--mono); font-size: var(--ny-label); letter-spacing: .14em; text-transform: uppercase; color: var(--ny-muted); text-decoration: none; transition: border-color .2s ease, color .2s ease, background-color .2s ease; }
.ny-price strong { font-weight: 500; font-size: .8125rem; letter-spacing: 0; color: var(--ny-champagne); }
.ny-price:hover { border-color: var(--ny-rose); color: var(--ny-fog); background: rgb(230 91 127 / .08); }
.ny-source { margin: 14px 0 0; font-size: .75rem; color: var(--ny-muted); }
.ny-tail { margin-top: 24px; }

/* 7. News heading above the article lists, and the lists themselves */
.ny-news-head { padding-top: 96px; }
body.skin-newyork.home-showcase .home-top { padding-block: 24px 0; gap: 40px; }
@media (min-width: 1024px) { body.skin-newyork.home-showcase .home-top { grid-template-columns: minmax(0, 1.6fr) minmax(0, 1fr); gap: 56px; } }
body.skin-newyork.home-showcase .home-featured { gap: 32px; }
body.skin-newyork.home-showcase .home-featured .card { flex-direction: column; gap: 0; }
body.skin-newyork.home-showcase .home-featured .card-media { flex: none; aspect-ratio: 4 / 3; }
body.skin-newyork.home-showcase .home-featured .card-excerpt { display: none; }
body.skin-newyork.home-showcase .wrap.section { padding-top: 56px; }
body.skin-newyork.home-showcase .grid-4 { gap: 32px 24px; }
body.skin-newyork.home-showcase .page-updated { display: none; }

/* 8. Platform cards ("Best for…") */
.ny-apps { margin-top: 80px; padding-bottom: 80px; border-block: 1px solid var(--ny-line); background: rgb(26 26 31 / .2); }
.ny-pcards { display: grid; grid-template-columns: minmax(0, 1fr); gap: 20px; margin: 24px 0 0; padding: 0; list-style: none; }
@media (min-width: 640px) { .ny-pcards { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (min-width: 1100px) { .ny-pcards-3 { grid-template-columns: repeat(3, minmax(0, 1fr)); } .ny-pcards-4 { grid-template-columns: repeat(4, minmax(0, 1fr)); } }
.ny-pcard { display: flex; flex-direction: column; padding: 24px; border: 1px solid var(--ny-line); border-radius: 6px; background: var(--ny-card); transition: transform 450ms var(--ny-ease), border-color 450ms var(--ny-ease), box-shadow 450ms var(--ny-ease); }
@media (hover: hover) and (pointer: fine) { .ny-pcard:hover { transform: translateY(-4px); border-color: rgb(230 91 127 / .4); box-shadow: var(--ny-lift); } }
.ny-pcard-kicker { margin: 0 0 8px; font-family: var(--mono); font-size: var(--ny-label); letter-spacing: var(--ny-track); text-transform: uppercase; color: var(--ny-muted); }
.ny-pcard-name { margin: 0 0 16px; font-family: var(--display); font-weight: 500; font-size: 1.5rem; color: var(--ny-fog); }
.ny-pcard-points { display: grid; gap: 8px; margin: 0 0 24px; padding: 0; list-style: none; font-size: .875rem; color: var(--ny-muted); }
.ny-pcard-points li { position: relative; padding-inline-start: 18px; }
.ny-pcard-points li::before { content: ""; position: absolute; left: 0; top: .6em; width: 8px; height: 1px; background: var(--ny-rose); }
.ny-pcard-points li:last-child { font-family: var(--mono); font-size: var(--ny-label); letter-spacing: .14em; text-transform: uppercase; color: var(--ny-olive); }
.ny-pcard-points li:last-child::before { top: .45em; width: 6px; height: 6px; border-radius: 50%; background: var(--ny-olive); }
.ny-pcard-act { display: flex; flex-direction: column; align-items: stretch; gap: 8px; margin-top: auto; padding-top: 16px; border-top: 1px solid var(--ny-line); }
.ny-pcard-act .ny-btn { order: -1; justify-content: space-between; }
.ny-pcard-act .ny-review { align-self: flex-start; }
.ny-review { display: inline-flex; align-items: center; gap: 4px; min-height: 36px; font-size: .875rem; font-weight: 500; color: var(--ny-champagne); text-decoration: none; transition: gap .2s ease; }
.ny-review:hover { gap: 8px; }
.ny-btn--sm { min-height: 36px; padding: 0 14px; font-size: var(--ny-label); }

/* 9. Masthead (author card) and the questions */
.ny-masthead { padding-block: 80px 0; }
.ny-author { display: grid; grid-template-columns: minmax(0, 1fr); border: 1px solid var(--ny-line); border-radius: 6px; background: var(--ny-card); overflow: hidden; }
@media (min-width: 768px) { .ny-author:not(.ny-author--plain) { grid-template-columns: 240px 1fr; } }
.ny-author-photo img { display: block; width: 100%; height: 100%; object-fit: cover; filter: grayscale(1); }
.ny-author-text { padding: 28px; }
@media (min-width: 768px) { .ny-author-text { padding: 32px 40px; } }
.ny-author-text h2 { margin: 0; font-size: 1.75rem; }
.ny-author-text h2 + * { margin-top: 0; }
.ny-author-role { margin: 6px 0 16px; font-family: var(--mono); font-size: var(--ny-label); letter-spacing: var(--ny-track); text-transform: uppercase; color: var(--ny-muted); }
.ny-author-bio { max-width: 52rem; font-size: .875rem; line-height: 1.7; color: var(--ny-muted); }
.ny-faq { padding-block: 80px 48px; }
.ny-faq .ny-text h2 { margin-bottom: 24px; }
.ny-faq-list, .ny-faq .faq { max-width: 48rem; }
.ny-faq .faq > h2 { font-size: clamp(1.875rem, 3.4vw, 2.25rem); }
.ny-faq .faq details { border-top: 1px solid var(--ny-line); border-bottom: 0; }
.ny-faq .faq details:last-child { border-bottom: 1px solid var(--ny-line); }
.ny-faq .faq summary { min-height: 56px; padding-block: 14px; }
.ny-faq .faq summary::after { color: var(--ny-muted); }
.ny-faq-after .cards { margin-top: 48px; }
.ny-faq-after .cards > .box { padding: 20px; border-radius: 4px; background: rgb(26 26 31 / .3); font-size: .875rem; }
.ny-faq-after .cards > .box > p:first-child { color: rgb(230 212 177 / .8); font-size: var(--ny-label); letter-spacing: .18em; }
.ny-offer-terms { padding-block: 24px 48px; font-size: .75rem; color: var(--ny-muted); }

/* ===================================================================================================================
   Round 2 (Brand & Design spec, 15 Oct 2026, hub/handoffs/cms/2026-10-15-ny-improvement-spec.md, BD-021..BD-031):
   a partner button on the first screen, 12px labels, 44px targets, aligned offer buttons, a shorter phone page, price
   pills that carry their own fill, a phone table that keeps the platform column, the lead picture, the masthead disc.
   Layout and type only: links, partner order and every word of the offers are as before.
   =================================================================================================================== */
/* BD-022: sentences in Inter, labels in mono at 12px */
body.skin-newyork .ny-disclosure { max-width: 72ch; font-family: var(--sans); font-size: .8125rem; line-height: 1.6; letter-spacing: 0; text-transform: none; color: var(--ny-muted); }
.ny-pcard-points li:last-child { font-family: var(--sans); font-size: .8125rem; letter-spacing: 0; text-transform: none; color: var(--ny-muted); }
.ny-pcard-points li:last-child::before { top: .55em; }
body.skin-newyork.pages-editorial .ny-text .cards > .box p + p:last-child:not(:has(a)) { font-family: var(--sans); font-size: .875rem; line-height: 1.55; color: var(--ny-muted); }
body.skin-newyork.pages-editorial .ny-band--steps .cards > .box p:not(:first-child) { font-size: .9375rem; }
body.skin-newyork .ny-author-bio { max-width: 65ch; font-size: 1rem; line-height: 1.7; }
body.skin-newyork .brand--wordmark .brand-top { font-size: var(--ny-label); }
body.skin-newyork .card .meta, body.skin-newyork.pages-editorial .card .meta { font-size: var(--ny-label); letter-spacing: .12em; }
body.skin-newyork .footer-title, body.skin-newyork .footer-head { font-size: var(--ny-label); }

/* BD-023: 44px targets (text links keep their look; the box grows, or a hit area is added) */
.ny-quiet, .ny-all a, .ny-review, .ny-btn--card, .ny-btn--sm, .ny-chip, .ny-price, .ny-terms summary, body.skin-newyork .ny-text a.button:not([href*="/go/"]) { min-height: var(--ny-tap); }
body.skin-newyork .header-langs a, body.skin-newyork .language-switcher a { display: inline-flex; align-items: center; min-height: var(--ny-tap); }
body.skin-newyork .search-form input { height: var(--ny-tap); }
body.skin-newyork .search-form button, body.skin-newyork .menu-toggle { min-height: var(--ny-tap); min-width: var(--ny-tap); }
body.skin-newyork .footer-cols a { display: inline-flex; align-items: center; min-height: var(--ny-tap); padding-block: 7px; }
body.skin-newyork .nav-list a { display: flex; align-items: center; min-height: var(--ny-tap); }
body.skin-newyork .footer-bottom a { min-height: var(--ny-tap); }
body.skin-newyork .ny-chip { min-height: var(--ny-tap); }
body.skin-newyork .ny-text tbody th a { display: inline-flex; align-items: center; min-height: var(--ny-tap); }
body.skin-newyork :is(.footer-cols a, .ny-text tbody th a, .article .prose li > a:only-child, .article .prose li > strong:only-child > a) { min-width: var(--ny-tap); min-height: var(--ny-tap); } /* short list links (OG) get a 44px square at least */
body.skin-newyork.pages-editorial .card .kicker { display: inline-flex; align-items: center; align-self: flex-start; min-height: var(--ny-tap); margin: -12px 0 -8px; }
.ny-market-title a, body.skin-newyork .card-title a { position: relative; }
.ny-market-title a::after, body.skin-newyork .card-title a::after { content: ""; position: absolute; left: 0; right: 0; top: 50%; height: max(100%, var(--ny-tap)); transform: translateY(-50%); }
body.skin-newyork .brand--wordmark { display: inline-flex; flex-direction: column; justify-content: center; min-height: var(--ny-tap); }
body.skin-newyork .byline a[rel="author"] { position: relative; }
body.skin-newyork .byline a[rel="author"]::after { content: ""; position: absolute; left: -4px; right: -4px; top: 50%; height: var(--ny-tap); transform: translateY(-50%); }

/* BD-024: offer cards: name, code chip on its own row, offer, where valid, the button on one baseline, terms */
.ny-ocard { padding: 18px 18px 10px; }
.ny-ocard-code { margin: 10px 0 0; }
.ny-chip { gap: 12px; padding: 0 16px; font-size: var(--ny-label); letter-spacing: .14em; }
.ny-chip .copy-label { padding-inline-start: 12px; border-inline-start: 1px solid rgb(230 91 127 / .35); letter-spacing: .14em; color: var(--ny-fog); transition: opacity var(--ny-fast, 200ms) ease; }
.ny-chip.is-copied .copy-label { color: #0b0b0e; border-color: rgb(11 11 14 / .35); }
.ny-ocard-offer { margin-top: 12px; }
.ny-ocard-valid { margin-bottom: 0; }
.ny-ocard .ny-btn--card { margin-top: auto; }
.ny-ocard > :is(.ny-ocard-offer, .ny-ocard-valid, .ny-ocard-code):nth-last-child(3), .ny-ocard > :is(.ny-ocard-offer, .ny-ocard-valid, .ny-ocard-code):nth-last-child(2) { margin-bottom: 16px; }
.ny-terms { margin-top: 2px; }
.ny-btn--card, .ny-pcard-act .ny-btn { padding-inline: 14px; letter-spacing: .06em; white-space: nowrap; }
@media (max-width: 359px) { .ny-btn--card, .ny-pcard-act .ny-btn { white-space: normal; text-align: center; } } /* BD-056: 2 lines on small phones instead of a wide card */
.ny-terms summary { display: flex; }

/* BD-026: price pills: two columns, venue left, price right, the fill is the price; one-venue markets keep a plain cell */
.ny-bar { display: none; }
.ny-market-label { margin-bottom: 14px; }
.ny-market-venues { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; }
.ny-price { position: relative; isolation: isolate; overflow: hidden; flex: none; justify-content: flex-start; gap: 6px; min-width: 0; padding: 0 10px; font-size: var(--ny-label); letter-spacing: .04em; }
@media (min-width: 1024px) { .ny-market { padding: 16px; } }
.ny-price > span { flex: 1 1 auto; min-width: 0; }
.ny-price strong { font-size: .9375rem; font-variant-numeric: tabular-nums; }
/* the fill is a background on the pill's border box, so its width is exactly the price; it grows once when the board shows */
.ny-price:not(.ny-price--none), .ny-price:not(.ny-price--none):hover { background-image: linear-gradient(90deg, rgb(230 91 127 / .14) var(--fill, 0%), transparent var(--fill, 0%)); background-origin: border-box; background-clip: border-box; background-repeat: no-repeat; background-position: 0 0; background-size: 100% 100%; }
.ny-markets.is-in .ny-price { animation: ny-fill 600ms var(--ny-ease) .15s both; }
@keyframes ny-fill { from { background-size: 0% 100%; } to { background-size: 100% 100%; } }
.ny-price--none { order: 2; justify-content: center; border-style: dashed; font-family: var(--sans); font-size: var(--ny-label); letter-spacing: 0; text-transform: none; color: var(--ny-muted); }
.ny-price--none:hover { border-color: var(--ny-line-2); color: var(--ny-muted); background: none; }

/* BD-027: the platform table fills the column on wide screens; on phones the first column stays while the rest scrolls */
@media (min-width: 1024px) { .ny-band--table .box { max-width: none; } }
body.skin-newyork .ny-text th[scope="colgroup"] { padding-block: 14px 10px; background: rgb(26 26 31 / .5); font-family: var(--mono); font-size: var(--ny-label); font-weight: 400; letter-spacing: .14em; text-align: start; text-transform: uppercase; color: var(--ny-champagne); }
@property --ny-fade { syntax: "<length>"; inherits: false; initial-value: 40px; }
@media (max-width: 639px) {
  /* the table itself is the scroller (site.css: display block, overflow-x auto); the hint sits above it and does not scroll */
  body.skin-newyork .ny-band--table .box { overflow: visible; }
  body.skin-newyork .ny-band--table .box::before { content: "Swipe for more →"; content: "Swipe for more →" / ""; display: block; margin: 0 0 8px; font-family: var(--mono); font-size: var(--ny-label); letter-spacing: .14em; text-transform: uppercase; color: var(--ny-muted); }
  body.skin-newyork .ny-band--table .box:lang(es)::before { content: "Desliza para ver más →"; content: "Desliza para ver más →" / ""; }
  body.skin-newyork .ny-band--table table { display: block; width: 100%; max-width: 100%; overflow-x: auto; overscroll-behavior-x: contain;
    -webkit-mask-image: linear-gradient(90deg, #000 calc(100% - var(--ny-fade)), transparent); mask-image: linear-gradient(90deg, #000 calc(100% - var(--ny-fade)), transparent);
    animation: ny-fade-end linear both; animation-timeline: scroll(self inline); }
  body.skin-newyork .ny-band--table :is(th, td) { min-width: 150px; }
  body.skin-newyork .ny-band--table td { min-width: 200px; }
  body.skin-newyork .ny-band--table tr > :first-child:not([colspan]) { position: sticky; left: 0; z-index: 1; min-width: 120px; max-width: 120px; background: var(--ny-card); box-shadow: inset -1px 0 0 var(--ny-line-2); }
  body.skin-newyork .ny-band--table thead tr > :first-child { background: #141418; }
}
@keyframes ny-fade-end { 0%, 92% { --ny-fade: 40px; } 100% { --ny-fade: 0px; } }

/* BD-028: the lead story with its picture (right on wide screens, on top on phones) */
@media (min-width: 1024px) {
  body.skin-newyork.home-showcase .home-top { grid-template-columns: 1fr; }
  /* the card's text parts are its grid items (.card-body is display: contents): text in the 7 column, picture in the 5 */
  body.skin-newyork.home-showcase .card--lead { display: grid; grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); grid-template-rows: 1fr repeat(4, auto) 1fr; gap: 0 48px; }
  body.skin-newyork.home-showcase .card--lead .card-media { grid-column: 2; grid-row: 1 / -1; align-self: center; aspect-ratio: 16 / 9; margin: 0; }
  body.skin-newyork.home-showcase .card--lead .card-body > * { grid-column: 1; }
  body.skin-newyork.home-showcase .card--lead .kicker { grid-row: 2; }
  body.skin-newyork.home-showcase .card--lead .card-title { grid-row: 3; }
  body.skin-newyork.home-showcase .card--lead .card-excerpt { grid-row: 4; }
  body.skin-newyork.home-showcase .card--lead .meta { grid-row: 5; }
}
body.skin-newyork.home-showcase .card--lead .card-media { aspect-ratio: 16 / 9; }

/* BD-029: trust line: three centred lines below 1024px (the middle item is long, so a row of three would wrap at 768 and leave a dot at a line start); one row with dots between items above */
@media (max-width: 1023px) { .ny-trust ul { flex-direction: column; align-items: center; gap: 4px; } .ny-trust li + li::before { content: none; } }

/* BD-030: masthead: a 120px disc (photo, or the monogram) with name and role, the bio beside it */
.ny-author { gap: 20px; padding: 28px; }
.ny-author-text { padding: 0; }
@media (min-width: 768px) { .ny-author, .ny-author:not(.ny-author--plain) { grid-template-columns: 1fr; } }
@media (min-width: 1024px) { .ny-author, .ny-author:not(.ny-author--plain) { grid-template-columns: minmax(0, 4fr) minmax(0, 7fr); gap: 48px; padding: 40px; align-items: start; } }
.ny-author-disc { display: grid; place-items: center; width: 88px; height: 88px; margin: 0 0 16px; overflow: hidden; border-radius: 50%; background: var(--ny-smoke); box-shadow: 0 0 0 1px var(--ny-rose); }
@media (min-width: 1024px) { .ny-author-disc { width: 120px; height: 120px; margin-bottom: 20px; } }
.ny-author-mono { font-family: var(--display); font-style: italic; font-weight: 500; font-size: 2.125rem; line-height: 1; letter-spacing: -.02em; color: var(--ny-champagne); }
@media (min-width: 1024px) { .ny-author-mono { font-size: 2.75rem; } }
.ny-author-disc img { display: block; width: 100%; height: 100%; object-fit: cover; }
body.skin-newyork .ny-author-id h2 { font-size: 2rem; }
.ny-author-role { margin-bottom: 0; }
.ny-author-bio { margin-top: 0; }
.ny-author-link { margin: 16px 0 0; }

/* BD-031: article details: the contents list with its chevron and count, a back link on phones, the byline at 12px */
body.skin-newyork .ed-toc-count { display: inline; letter-spacing: .14em; }
body.skin-newyork.pages-editorial .ed-toc--inline summary { display: flex; align-items: center; gap: 0; min-height: var(--ny-tap); list-style: none; font-family: var(--mono); font-size: var(--ny-label); font-weight: 400; letter-spacing: var(--ny-track); }
body.skin-newyork .ed-toc--inline summary::-webkit-details-marker { display: none; }
body.skin-newyork .ed-toc--inline summary::after { content: ""; flex: none; width: 8px; height: 8px; margin: -4px 4px 0 auto; border-right: 1.5px solid currentColor; border-bottom: 1.5px solid currentColor; transform: rotate(45deg); transition: transform var(--ny-fast, 200ms) var(--ny-ease); }
body.skin-newyork .ed-toc--inline[open] summary::after { transform: translateY(4px) rotate(225deg); }
body.skin-newyork .ed-toc-title { font-family: var(--mono); font-size: var(--ny-label); font-weight: 400; letter-spacing: var(--ny-track); }
body.skin-newyork .ed-toc a::before { font-size: var(--ny-label); }
body.skin-newyork.pages-editorial .byline { font-family: var(--mono); font-size: var(--ny-label); letter-spacing: .06em; }
body.skin-newyork.pages-editorial .breadcrumbs ol { font-size: var(--ny-label); }
@media (max-width: 639px) {
  body.skin-newyork .breadcrumbs li { display: none; }
  body.skin-newyork .breadcrumbs li:nth-last-child(2) { display: flex; }
  body.skin-newyork .breadcrumbs li:nth-last-child(2)::before { content: none; }
  body.skin-newyork .breadcrumbs li:nth-last-child(2) a { display: inline-flex; align-items: center; min-height: var(--ny-tap); }
  body.skin-newyork .breadcrumbs li:nth-last-child(2) a::before { content: "← "; white-space: pre; }
  body.skin-newyork.pages-editorial .breadcrumbs ol { margin-bottom: 16px; }
}

/* BD-022/023 on article pages: labels, terms and small print at 12px; list links, crumbs and side links get a 44px target */
body.skin-newyork.pages-editorial :is(.article-header .kicker, .ed-read, .prose thead th, .code-box small, .offer-terms p, .offer-terms, .prose small) { font-size: var(--ny-label); }
body.skin-newyork :is(.breadcrumbs a, .author-name a, .article .prose li > a:only-child, .article .prose li > strong:only-child > a, .article-header .kicker) { display: inline-block; padding-block: max(0px, calc((var(--ny-tap) - 1lh) / 2)); margin-block: min(0px, calc((1lh - var(--ny-tap)) / 2)); }
body.skin-newyork .ed-toc a { min-height: var(--ny-tap); align-items: center; }
body.skin-newyork .side-list a { display: flex; align-items: center; min-height: var(--ny-tap); }
body.skin-newyork.pages-editorial .copy-code { min-height: var(--ny-tap); }
body.skin-newyork .sticky-cta summary { display: inline-block; padding-block: max(0px, calc((var(--ny-tap) - 1lh) / 2)); margin-block: min(0px, calc((1lh - var(--ny-tap)) / 2)); } /* floating bar terms: 44px target, same bar height */

/* BD-025: the phone page, denser (nothing is removed; desktop unchanged) */
.ny-news-all { display: none; }
@media (max-width: 639px) {
  /* news: compact rows (96x64 picture, kicker, title, date), six under "Latest", then "All news" */
  body.skin-newyork.home-showcase main .section .grid-4 { grid-template-columns: 1fr; gap: 0; }
  body.skin-newyork.home-showcase main .section .card { display: grid; grid-template-columns: 96px minmax(0, 1fr); column-gap: 14px; align-items: start; padding-block: 14px; border-top: 1px solid var(--ny-line); }
  body.skin-newyork.home-showcase main .section .card-media { grid-column: 1; grid-row: 1; width: 96px; aspect-ratio: 3 / 2; margin: 0; border-radius: 4px; }
  body.skin-newyork.home-showcase main .section .card-media img { width: 100%; height: 100%; object-fit: cover; }
  body.skin-newyork.home-showcase main .section .card-body { grid-column: 2; grid-row: 1; display: flex; flex-direction: column; }
  body.skin-newyork.home-showcase main .section .card-title { font-size: 1.125rem; line-height: 1.2; }
  body.skin-newyork.home-showcase main .section .card-excerpt { display: none; }
  body.skin-newyork.home-showcase main .section .card .meta { margin-top: 6px; }
  body.skin-newyork.home-showcase main [aria-labelledby="latest-title"] .card:nth-child(n+7) { display: none; }
  body.skin-newyork.home-showcase .wrap.section { padding-top: 40px; }
  body.skin-newyork.home-showcase .card--lead .card-excerpt { display: block; }
  .ny-news-all { display: block; margin: 20px auto 0; }
  .ny-news-all .ny-btn { width: 100%; justify-content: space-between; }
  .ny-news-head { padding-top: 64px; }
  /* sections: tighter rhythm */
  .ny-band { padding-top: 48px; }
  .ny-band--tiles, .ny-band--steps, .ny-apps { margin-top: 48px; padding-bottom: 48px; }
  .ny-masthead { padding-top: 48px; }
  .ny-faq { padding-block: 48px 32px; }
  .ny-ticker { margin-top: 48px; }
  /* categories and boroughs: two columns, tag and title, the line wraps */
  .ny-band--tiles .ny-text { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
  .ny-band--tiles .ny-text > h2 + p { margin-bottom: 12px; }
  .ny-band--tiles a.ny-tile { padding: 14px 12px; }
  .ny-band--tiles a.ny-tile::after { top: 14px; right: 10px; width: 12px; height: 12px; }
  .ny-band--tiles a.ny-tile > p:first-child { margin-bottom: 10px; padding: 2px 8px; letter-spacing: .1em; }
  .ny-band--tiles a.ny-tile > h3 { margin-bottom: 6px; font-size: 1.125rem; }
  .ny-band--tiles a.ny-tile > p { font-size: .8125rem; line-height: 1.45; }
  .ny-band--tiles a.ny-tile > p + p { margin-top: 8px; letter-spacing: .06em; }
  .ny-band--tiles a.ny-tile:last-of-type:nth-of-type(odd) { grid-column: 1 / -1; }
  /* price board: compact cards */
  .ny-markets { gap: 10px; margin-top: 16px; }
  .ny-market { padding: 14px; }
  .ny-market-title { font-size: 1rem; }
  .ny-market-label { margin: 6px 0 10px; }
  .ny-board .ny-head-row { flex-direction: column; flex-wrap: nowrap; align-items: stretch; gap: 0; }
  .ny-board .ny-head-row > .ny-text { display: contents; }
  .ny-board .ny-head-row > .ny-text > * { order: 3; }
  .ny-board .ny-head-row > .ny-text > .ny-label { order: 0; }
  .ny-board .ny-head-row > .ny-text > h2 { order: 1; }
  .ny-board .ny-live { order: 2; margin: 0 0 12px; }
  /* promo-code guides: one row each, name left, offer and code right */
  .ny-band--links ul { gap: 0; margin-top: 12px; border-top: 1px solid var(--ny-line); }
  .ny-band--links li a { display: flex; align-items: center; justify-content: space-between; gap: 12px; min-height: 56px; padding: 8px 0; border: 0; border-bottom: 1px solid var(--ny-line); border-radius: 0; background: none; font-family: var(--mono); font-size: var(--ny-label); line-height: 1.4; text-align: end; }
  .ny-band--links li a strong { flex: 0 1 auto; margin: 0; font-size: 1rem; text-align: start; }
  .ny-band--links li a br { display: none; }
  /* boxes, steps, platform cards and offers: less padding */
  .ny-text .cards { gap: 12px; margin-top: 20px; }
  .ny-text .cards > .box { padding: 18px; }
  .ny-pcards { gap: 12px; }
  .ny-pcard { padding: 18px; }
  .ny-pcard-points { margin-bottom: 16px; }
  .ny-ocards { gap: 12px; }
  .ny-offers { padding-block: 32px 28px; }
  .ny-band--quotes .ny-text { padding: 18px; gap: 16px; }
  .ny-faq-after .cards { margin-top: 24px; }
  body.skin-newyork .footer-grid { padding-block: 40px 24px; gap: 28px; }
  body.skin-newyork .footer-cols { gap: 20px 16px; }
  body.skin-newyork .footer-cols ul { margin: 0; }
  body.skin-newyork .footer-cols li { margin: 0; }
  body.skin-newyork .footer-cols a { padding-block: 4px; line-height: 1.3; }
  /* rhythm: 40px between sections */
  .ny-band, .ny-masthead { padding-top: 40px; }
  .ny-band--tiles, .ny-band--steps, .ny-apps { margin-top: 40px; padding-bottom: 40px; }
  .ny-news-head { padding-top: 48px; }
  .ny-faq { padding-block: 40px 24px; }
  body.skin-newyork.home-showcase main .section .card { padding-block: 10px; }
  body.skin-newyork.home-showcase .wrap.section { padding-top: 32px; }
  /* platform cards: the button and "Review" share a row */
  .ny-pcard-act { flex-direction: row; align-items: center; gap: 16px; padding-top: 14px; }
  .ny-pcard-act .ny-btn { flex: 1 1 auto; }
  .ny-pcard-act .ny-review { order: 2; align-self: center; }
  .ny-pcard-name { margin-bottom: 10px; }
  .ny-pcard-kicker { margin-bottom: 4px; }
  .ny-pcard-points { gap: 6px; }
  /* questions: tighter rows */
  .ny-faq .faq summary { min-height: var(--ny-tap); padding-block: 10px; font-size: 1rem; }
  .ny-faq-after .cards > .box { padding: 16px; }
  /* masthead */
  .ny-author { padding: 22px; }
  /* offer cards: 280px at most */
  .ny-ocard { padding: 16px 16px 6px; }
  .ny-ocard-name { font-size: 1.25rem; }
  .ny-ocard-offer { margin-top: 10px; font-size: .875rem; line-height: 1.4; }
  .ny-ocard-valid { margin-top: 4px; font-size: .75rem; line-height: 1.4; }
  .ny-ocard > :is(.ny-ocard-offer, .ny-ocard-valid, .ny-ocard-code):nth-last-child(3), .ny-ocard > :is(.ny-ocard-offer, .ny-ocard-valid, .ny-ocard-code):nth-last-child(2) { margin-bottom: 12px; }
}
@media (max-width: 419px) {
  /* price pills: venue and price side by side without the arrow (the whole pill is the link) */
  .ny-price { letter-spacing: .02em; }
  .ny-price > .ny-ico { display: none; }
  .ny-price strong { font-size: .875rem; }
}
@media (max-width: 359px) {
  /* the narrowest phones: venue over price inside the 44px pill */
  .ny-price:not(.ny-price--none) { flex-wrap: wrap; align-content: center; row-gap: 0; padding-block: 4px; line-height: 1.2; }
  .ny-price:not(.ny-price--none) > span { flex-basis: 100%; }
}

/* Motion: rise-in of blocks when they scroll into view (site.js [data-reveal]; content shows without script) */
.will-reveal > * { opacity: 0; transform: translateY(12px); }
.will-reveal.is-in > * { opacity: 1; transform: none; animation: ny-up .7s var(--ny-ease) both; }
.will-reveal.is-in > :nth-child(2) { animation-delay: .07s; } .will-reveal.is-in > :nth-child(3) { animation-delay: .14s; } .will-reveal.is-in > :nth-child(4) { animation-delay: .21s; }
.will-reveal.is-in > :nth-child(5) { animation-delay: .28s; } .will-reveal.is-in > :nth-child(6) { animation-delay: .35s; } .will-reveal.is-in > :nth-child(n+7) { animation-delay: .42s; }
/* endless animations rest while their block is off screen (site.js [data-motion]) */
.is-offscreen .ny-moon, .is-offscreen .ny-moon img, .is-offscreen .ny-grid > span, .is-offscreen .ny-neon-w, .is-offscreen.ny-ticker .ny-ticker-run, .is-offscreen .ny-pulse::after { animation-play-state: paused; }

@keyframes ny-up { from { opacity: 0; transform: translateY(12px); } to { opacity: 1; transform: none; } }
@keyframes ny-fade { from { opacity: 0; } to { opacity: 1; } }
@keyframes ny-rise { from { opacity: 0; transform: translateY(30px); } to { opacity: 1; transform: none; } }
@keyframes ny-moon-in { from { opacity: 0; translate: 0 60px; } to { opacity: 1; translate: 0 0; } }
@keyframes ny-moon-float { 0%, 100% { transform: translateY(0); } 50% { transform: translateY(-6px); } }
@keyframes ny-moon-turn { 0%, 100% { transform: rotate(-8deg); } 50% { transform: rotate(8deg); } }
@keyframes ny-grid { from { background-position: 0 0, 0 0; } to { background-position: 0 60px, 0 0; } }
@keyframes ny-switch { from { opacity: 0; filter: blur(8px); } to { opacity: 1; filter: blur(0); } }
@keyframes ny-flicker { 0%, 92%, 100% { opacity: 1; } 93% { opacity: .78; } 94% { opacity: 1; } 95% { opacity: .85; } 96% { opacity: 1; } }
@keyframes ny-shimmer { 0%, 100% { background-position: 0% 50%; } 50% { background-position: 100% 50%; } }
@keyframes ny-rule { 0%, 100% { background-position: 0% 50%; } 50% { background-position: 100% 50%; } }
@keyframes ny-shine { 0% { transform: translateX(-120%); } 55%, 100% { transform: translateX(120%); } }
@keyframes ny-drift { from { transform: scale(1.04) translate3d(0, 0, 0); opacity: .26; } to { transform: scale(1.05) translate3d(-.8%, -.5%, 0); opacity: .3; } }
@keyframes ny-ticker { from { transform: translateX(0); } to { transform: translateX(-50%); } }
@keyframes ny-ping { 75%, 100% { transform: scale(2.2); opacity: 0; } }
@keyframes ny-bar { from { transform: scaleX(0); } to { transform: scaleX(1); } }

@media (prefers-reduced-motion: reduce) {
  body.skin-newyork *, body.skin-newyork *::before, body.skin-newyork *::after { animation: none !important; transition-duration: .001ms !important; scroll-behavior: auto !important; }
  html:has(body.skin-newyork) { scroll-behavior: auto; }
  .ny-shimmer { background: none; color: #e65b7f; -webkit-text-fill-color: #e65b7f; }
  .ny-rule { background: #e65b7f; }
  .ny-hero-photo { transform: scale(1.04); opacity: .28; }
  .will-reveal > * { opacity: 1; transform: none; }
  body.skin-newyork .ny-band--table table { -webkit-mask-image: none; mask-image: none; } /* the edge fade follows the scroll; without motion it is left out (the hint stays) */
}

/* C19 (Brand 24 Oct): on phones the see-through header keeps its blur at 90% opacity at least */
@media (max-width: 767px) {
  body.skin-newyork.theme-dark .site-header { background: rgb(11 11 14 / .9); }
}
