/* Ritz Chamber Players | site styles (from Study E, "Expanding, with the Cello") */
  :root {
    --graphite: #1d1e21;
    --graphite-2: #2a2c30;
    --silver: #b9bcc2;
    --mist: #e7e8ea;
    --pewter: #6d7077;
    --garnet: #8a1c2a;
    --garnet-hi: #b02a3c;
    --white: #fff;
    --display: "Bodoni Moda", "Didot", "Bodoni 72", Georgia, serif;
    --sans: "Hanken Grotesk", "Helvetica Neue", Arial, sans-serif;
    --gutter: clamp(20px, 5vw, 80px);
  }
  * { box-sizing: border-box; margin: 0; padding: 0; }
  html { scroll-behavior: smooth; }
  @media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } }
  body { background: var(--graphite); color: var(--white); font-family: var(--sans); font-size: 18px; line-height: 1.6; -webkit-font-smoothing: antialiased; }
  img { display: block; max-width: 100%; }
  a { color: inherit; }
  :focus-visible { outline: 2px solid var(--garnet-hi); outline-offset: 3px; }
  .wrap { width: min(1280px, 100% - 2 * var(--gutter)); margin-inline: auto; }
  /* Bodoni at screen sizes: hold the hairlines with a moderate optical size */
  h1, h2, h3, .bigdate, .bar .n, .figs b, .reach b, .foot .motto, .fal .anchor, .fal .sub, .next .sub, .program li span:last-child {
    font-optical-sizing: none; font-variation-settings: "opsz" 24;
  }
  h2, h3 { font-weight: 500 !important; }
  .steps { font-variation-settings: "opsz" 40 !important; font-weight: 500 !important; }
  .bigdate, .fal h2, .invite h2 { font-variation-settings: "opsz" 48 !important; }

  /* Header */
  .top { display: flex; align-items: center; gap: 36px; padding: 18px var(--gutter); position: relative; z-index: 5; }
  .top .home img { width: 58px; }
  .top nav { display: flex; gap: 26px; font-size: 15px; }
  .top nav a { text-decoration: none; color: var(--silver); }
  .top nav a:hover { color: var(--white); }
  .top .acts { margin-left: auto; display: flex; gap: 10px; }
  .btn { display: inline-block; text-decoration: none; font-family: var(--sans); font-weight: 500; font-size: 15px; padding: 12px 22px; border: 1px solid var(--silver); color: var(--white); transition: background .2s, color .2s, border-color .2s; }
  .btn:hover { background: var(--white); color: var(--graphite); border-color: var(--white); }
  .btn.garnet { background: var(--garnet); border-color: var(--garnet); }
  .btn.garnet:hover { background: var(--garnet-hi); border-color: var(--garnet-hi); color: var(--white); }

  /* The stepped title: every line's rule reaches further than the last */
  .hero { padding: clamp(40px, 7vw, 96px) 0 0; }
  .anniv { color: var(--silver); font-size: 16px; letter-spacing: .04em; margin-bottom: clamp(26px, 4vw, 44px); }
  .anniv b { color: var(--white); font-weight: 600; letter-spacing: .14em; white-space: nowrap; }
  .steps { font-family: var(--display); font-weight: 400; font-size: clamp(40px, 6.6vw, 104px); line-height: 1; }
  .steps .line { display: flex; align-items: flex-end; gap: clamp(14px, 2vw, 28px); padding: .1em 0 .14em; }
  .steps .line::after {
    content: ""; flex: 0 0 auto; height: 1px; background: var(--silver);
    width: var(--reach); margin-bottom: .22em; transform-origin: left center;
    animation: reach 1.1s cubic-bezier(.2,.7,.2,1) both; animation-delay: var(--delay);
  }
  .steps .line:nth-child(1) { --reach: 8vw;  --delay: .15s; }
  .steps .line:nth-child(2) { --reach: 16vw; --delay: .3s; padding-left: 4vw; }
  .steps .line:nth-child(3) { --reach: 6vw;  --delay: .45s; }
  .steps .line:nth-child(4) { --reach: 30vw; --delay: .6s; padding-left: 4vw; }
  .steps .line:nth-child(4)::after { background: var(--garnet-hi); height: 2px; }
  .steps em { font-style: italic; }
  @keyframes reach { from { transform: scaleX(0); } to { transform: scaleX(1); } }
  @media (prefers-reduced-motion: reduce) { .steps .line::after { animation: none; } }
  .hero-foot { display: grid; grid-template-columns: 1fr auto; gap: 40px; align-items: end; margin-top: clamp(30px, 4vw, 54px); }
  .hero-foot p { max-width: 560px; color: #d3d5d9; }
  .hero-foot .ctas { display: flex; gap: 12px; flex-wrap: wrap; justify-content: flex-end; }
  .strip { margin-top: clamp(40px, 6vw, 80px); }
  .strip img { width: 100%; height: clamp(260px, 42vw, 620px); object-fit: cover; object-position: 50% 55%; filter: saturate(.75); }

  /* E: hero pairs the stepped title with the cello 25 cast in silver */
  :root { --ivory: #f6f0e5; --ivory-deep: #ece3d3; --crimson: #a41b22; }
  .hero { overflow-x: clip; }
  .hero-grid { --fs: clamp(36px, min(4.1vw, 7.4vh), 66px); display: grid; grid-template-columns: minmax(0, 1fr) auto; column-gap: clamp(40px, 6vw, 120px); align-items: center; }
  .hero .tagline-art { width: min(360px, 70vw); margin-bottom: clamp(26px, 4vw, 44px); opacity: .92; }
  .hero .steps { font-size: var(--fs); position: relative; z-index: 2; }
  .hero .steps .line { white-space: nowrap; }
  .hero .steps .line:nth-child(1) { --reach: min(6vw, 80px); }
  .hero .steps .line:nth-child(2) { --reach: min(8vw, 104px); padding-left: min(3vw, 44px); }
  .hero .steps .line:nth-child(3) { --reach: min(4vw, 56px); }
  .hero .steps .line:nth-child(4) { --reach: min(13vw, 176px); padding-left: min(3vw, 44px); }
  .cello { justify-self: center; position: relative; height: calc(var(--fs) * 7.4 + 40px); aspect-ratio: 627 / 990; margin-right: clamp(0px, 3vw, 60px); }
  .cello .metal {
    position: absolute; inset: 0;
    background: linear-gradient(115deg, #8d9198 0%, #e9ebee 18%, #a8acb3 34%, #fafbfc 48%, #9ca0a7 62%, #dfe1e5 80%, #7f838a 100%);
    background-size: 260% 100%; background-position: 0% 0;
    -webkit-mask: url(../brand/cello25-emblem.svg) center / contain no-repeat;
            mask: url(../brand/cello25-emblem.svg) center / contain no-repeat;
  }
  @media (prefers-reduced-motion: no-preference) {
    .cello { animation: cello-in 1.6s .5s ease-out both; }
    .cello .metal { animation: shine 2.6s .9s cubic-bezier(.4,0,.2,1) both; }
    @keyframes cello-in { from { opacity: 0; transform: translateY(14px); } to { opacity: 1; transform: none; } }
    @keyframes shine { from { background-position: 100% 0; } to { background-position: 0% 0; } }
  }
  .top .home img.wm { width: 104px; }

  /* B's centered ivory voice for "who we are" */
  .who.ivory { background: var(--ivory); }
  .who.ivory .who-grid { display: block; text-align: center; max-width: 860px; margin-inline: auto; }
  .who.ivory .label { font-family: var(--sans); font-weight: 600; font-size: 12.5px; letter-spacing: .26em; color: var(--crimson); }
  .who.ivory .rule { width: 90px; height: 1px; background: var(--graphite); opacity: .5; margin: 22px auto; }
  .who.ivory p { max-width: 640px; margin: 22px auto 0; }

  /* B's crimson footer, the stationery band */
  footer.crimson { background: var(--crimson); color: #fff; }
  footer.crimson .foot p { opacity: .92; }
  footer.crimson .foot nav a { color: #fff; }

  /* Who */
  .who { background: var(--mist); color: var(--graphite); padding: clamp(80px, 11vw, 150px) 0; }
  .who-grid { display: grid; grid-template-columns: 1.2fr 1fr; gap: clamp(30px, 6vw, 100px); align-items: end; }
  .who h2 { font-family: var(--display); font-weight: 400; font-size: clamp(34px, 4.6vw, 64px); line-height: 1.08; }
  .who p { color: #3d3f44; }
  .text-link { display: inline-block; margin-top: 24px; text-decoration: none; font-weight: 500; border-bottom: 2px solid var(--garnet); padding-bottom: 3px; }

  /* Next performance */
  .next { background: var(--white); color: var(--graphite); padding: clamp(80px, 10vw, 140px) 0; }
  .next-grid { display: grid; grid-template-columns: auto 1fr 1fr; gap: clamp(28px, 4vw, 64px); align-items: start; }
  .bigdate { font-family: var(--display); line-height: .82; text-align: right; }
  .bigdate .d { font-size: clamp(120px, 14vw, 220px); display: block; }
  .bigdate .m { font-size: clamp(26px, 2.6vw, 38px); font-style: italic; color: var(--garnet); }
  .next .eyebrow { color: var(--pewter); font-size: 15px; margin-bottom: 10px; }
  .next h2 { font-family: var(--display); font-weight: 400; font-size: clamp(38px, 4.6vw, 64px); line-height: 1; }
  .next .sub { font-family: var(--display); font-style: italic; font-size: 22px; color: #45474c; margin: 10px 0 20px; }
  .next p { color: #3d3f44; }
  .players { margin: 26px 0; display: grid; grid-template-columns: 1fr 1fr; gap: 4px 22px; font-size: 16.5px; }
  .players span { color: var(--pewter); }
  .details { font-size: 16px; color: #3d3f44; margin-bottom: 22px; }
  .details b { color: var(--graphite); font-weight: 600; }
  .next .btn { color: var(--white); }
  .next .pwyc { font-size: 14.5px; color: var(--pewter); margin-top: 12px; }
  .next figure img { width: 100%; aspect-ratio: 4 / 5; object-fit: cover; object-position: 65% 40%; }
  .program { margin-top: 18px; border-top: 1px solid #d6d7da; font-size: 15.5px; }
  .program li { list-style: none; display: grid; grid-template-columns: 1fr 1.2fr; gap: 14px; padding: 8px 0; border-bottom: 1px solid #e3e4e6; }
  .program li span:last-child { font-family: var(--display); font-style: italic; font-size: 17px; }

  /* Season: the stage widens concert by concert */
  .season { padding: clamp(80px, 11vw, 150px) 0; }
  .season-head { display: grid; grid-template-columns: 1fr 1fr; gap: 40px; align-items: end; margin-bottom: clamp(40px, 6vw, 70px); }
  .season-head h2 { font-family: var(--display); font-weight: 400; font-size: clamp(34px, 4.4vw, 62px); line-height: 1.06; }
  .season-head p { color: #c9cbd0; }
  .bars { display: grid; gap: 10px; }
  .bar {
    display: grid; grid-template-columns: 70px 1fr auto; gap: 22px; align-items: center;
    padding: 20px 26px; background: var(--graphite-2); text-decoration: none;
    border-left: 3px solid var(--silver); transition: background .25s, border-color .25s;
  }
  .bar:hover { background: #34363b; border-left-color: var(--garnet-hi); }
  .bar:nth-child(1) { width: 60%; border-left-color: var(--garnet-hi); }
  .bar:nth-child(2) { width: 70%; }
  .bar:nth-child(3) { width: 80%; }
  .bar:nth-child(4) { width: 90%; }
  .bar:nth-child(5) { width: 100%; }
  .bar .n { font-family: var(--display); font-size: 40px; line-height: 1; color: var(--silver); }
  .bar h3 { font-family: var(--display); font-weight: 400; font-size: clamp(22px, 2.2vw, 30px); line-height: 1.1; }
  .bar p { font-size: 15px; color: #b6b9bf; margin-top: 4px; }
  .bar .dt { font-size: 15px; color: var(--white); white-space: nowrap; text-align: right; }
  .bar .dt small { display: block; color: var(--silver); font-size: 13.5px; }
  .season-foot { margin-top: 34px; display: flex; justify-content: space-between; gap: 20px; align-items: center; flex-wrap: wrap; color: #c9cbd0; font-size: 16px; }

  /* Free At Last? */
  .fal { background: var(--garnet); padding: clamp(90px, 12vw, 160px) 0; }
  .fal-grid { display: grid; grid-template-columns: 1.3fr 1fr; gap: clamp(30px, 6vw, 100px); align-items: end; }
  .fal .eyebrow { color: #f1c8cd; font-size: 15px; }
  .fal h2 { font-family: var(--display); font-style: italic; font-weight: 400; font-size: clamp(56px, 9vw, 150px); line-height: .95; margin: 12px 0 10px; }
  .fal .sub { font-family: var(--display); font-size: clamp(20px, 2.2vw, 30px); color: #f6dfe2; }
  .fal .anchor { font-family: var(--display); font-size: clamp(22px, 2.2vw, 30px); line-height: 1.3; margin-bottom: 20px; }
  .fal p { color: #f3dde0; }
  .fal .tour { margin-top: 22px; padding-top: 16px; border-top: 1px solid rgba(255,255,255,.35); font-size: 16px; }
  .fal .ctas { display: flex; gap: 12px; margin-top: 26px; flex-wrap: wrap; }
  .fal .btn { border-color: rgba(255,255,255,.8); }
  .fal .btn:hover { color: var(--garnet); }

  /* 25 years */
  .years { background: var(--mist); color: var(--graphite); padding: clamp(80px, 11vw, 150px) 0; }
  .years-grid { display: grid; grid-template-columns: 300px 1fr; gap: clamp(30px, 6vw, 100px); align-items: center; }
  .years img { width: 100%; }
  .years h2 { font-family: var(--display); font-weight: 400; font-size: clamp(36px, 4.8vw, 68px); line-height: 1.04; }
  .years p { color: #3d3f44; margin-top: 18px; max-width: 620px; }
  .figs { display: grid; grid-template-columns: repeat(3, auto); justify-content: start; gap: clamp(26px, 5vw, 70px); margin-top: 36px; }
  .figs b { display: block; font-family: var(--display); font-weight: 500; font-size: clamp(44px, 5vw, 72px); line-height: 1; }
  .figs span { font-size: 15px; color: #45474c; }

  /* Artists */
  .artists { background: var(--white); color: var(--graphite); padding: clamp(80px, 11vw, 150px) 0; }
  .artists-head { display: grid; grid-template-columns: 1fr 1fr; gap: 40px; align-items: end; margin-bottom: 44px; }
  .artists h2 { font-family: var(--display); font-weight: 400; font-size: clamp(34px, 4.4vw, 60px); line-height: 1.06; }
  .artists p { color: #3d3f44; }
  .reel { display: grid; grid-template-columns: 2fr 1fr 1fr; grid-auto-rows: clamp(180px, 20vw, 300px); gap: 10px; }
  .reel img { width: 100%; height: 100%; object-fit: cover; filter: grayscale(1) contrast(1.05); transition: filter .4s; }
  .reel img:hover { filter: none; }
  .reel .big { grid-row: span 2; }
  .reel .wide { grid-column: span 2; }
  .artists .links { display: flex; gap: 28px; margin-top: 34px; flex-wrap: wrap; }
  .artists .text-link { margin-top: 0; }

  /* Impact */
  .impact { padding: clamp(80px, 11vw, 150px) 0; }
  .impact-grid { display: grid; grid-template-columns: 1fr 1fr; gap: clamp(30px, 6vw, 100px); align-items: center; }
  .impact h2 { font-family: var(--display); font-weight: 400; font-size: clamp(32px, 4vw, 56px); line-height: 1.08; }
  .impact p { color: #c9cbd0; margin-top: 18px; }
  .impact img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; }
  .reach { display: flex; flex-wrap: wrap; gap: 20px clamp(28px, 4vw, 46px); margin-top: 30px; }
  .reach b { display: block; font-family: var(--display); font-weight: 400; font-size: clamp(40px, 11vw, 52px); line-height: 1; color: var(--silver); }
  .reach span { font-size: 15px; color: #b6b9bf; }
  .impact .text-link { border-color: var(--garnet-hi); }

  /* Invitation */
  .invite { background: var(--ivory); color: var(--graphite); padding: clamp(90px, 12vw, 160px) 0 clamp(60px, 8vw, 100px); text-align: center; }
  .invite h2 { font-family: var(--display); font-weight: 400; font-style: italic; font-size: clamp(60px, 10vw, 160px); line-height: .95; }
  .ways { display: grid; grid-template-columns: repeat(4, 1fr); margin-top: clamp(48px, 6vw, 70px); text-align: left; border-top: 2px solid var(--graphite); }
  .way { padding: 30px 26px 10px 0; }
  .way + .way { padding-left: 26px; border-left: 1px solid #d9d2c5; }
  .way h3 { font-family: var(--display); font-weight: 400; font-size: 26px; line-height: 1.2; }
  .way p { font-size: 15.5px; color: #45474c; margin: 12px 0 18px; }
  .way a { font-size: 15px; font-weight: 500; letter-spacing: .05em; text-decoration: none; border-bottom: 2px solid var(--garnet); padding-bottom: 3px; }

  footer { padding: 54px 0 90px; color: var(--silver); font-size: 15px; }
  .foot { display: grid; grid-template-columns: auto 1fr auto; gap: 40px; align-items: start; }
  .foot img { width: 90px; }
  .foot .motto { font-family: var(--display); font-style: italic; font-size: 28px; color: var(--white); }
  .foot p { margin-top: 6px; max-width: 600px; }
  .foot nav { display: grid; gap: 6px; }
  .foot nav a { text-decoration: none; }

  .study { position: fixed; left: 16px; bottom: 16px; z-index: 30; background: var(--white); color: var(--graphite); font-size: 13px; padding: 8px 14px; border-radius: 999px; box-shadow: 0 6px 20px rgba(0,0,0,.25); }

  @media (max-width: 960px) {
    .top nav { display: none; }
    .hero-foot, .who-grid, .season-head, .fal-grid, .years-grid, .artists-head, .impact-grid { grid-template-columns: 1fr; }
    .hero-foot .ctas { justify-content: flex-start; }
    .next-grid { grid-template-columns: 1fr; }
    .bigdate { text-align: left; display: flex; align-items: baseline; gap: 16px; }
    .bigdate .d { font-size: 110px; }
    .bar, .bar:nth-child(n) { width: 100%; }
    .bar:nth-child(1) { width: 84%; } .bar:nth-child(2) { width: 88%; } .bar:nth-child(3) { width: 92%; } .bar:nth-child(4) { width: 96%; }
    .bar { grid-template-columns: 44px 1fr; padding: 16px 16px; }
    .bar .n { font-size: 30px; }
    .bar .dt { grid-column: 2; text-align: left; }
    .years-grid img { width: 200px; }
    .reel { grid-template-columns: 1fr 1fr; }
    .reel .big { grid-row: auto; grid-column: span 2; }
    .ways { grid-template-columns: 1fr 1fr; }
    .way, .way + .way { padding: 28px 22px 18px 0; border-left: 0; }
    .way:nth-child(even) { padding-left: 22px; border-left: 1px solid #d9d2c5; }
    .way:nth-child(n+3) { border-top: 1px solid #d9d2c5; }
    .foot { grid-template-columns: 1fr; }
  }
  @media (max-width: 960px) {
    .hero-grid { grid-template-columns: 1fr; }
    .cello { order: -1; height: 38vh; margin-bottom: 8px; }
    .hero .steps { font-size: 8.6vw; }
    .hero .tagline-art { margin-inline: auto; display: block; }
  }
  @media (max-width: 560px) {
    .leaf .when-where { grid-template-columns: 1fr; gap: 8px; }
    .leaf .when-where .side:first-child, .leaf .when-where .side:last-child { text-align: center; }
    .leaf .program li { flex-wrap: wrap; }
    .leaf .program .dots { display: none; }
    .leaf .program .what { text-align: left; width: 100%; margin-top: -4px; }

    body { font-size: 17px; }
    .top .acts .btn:not(.garnet) { display: none; }
    .steps { font-size: 9.4vw; }
    .steps .line { padding-left: 0 !important; white-space: nowrap; }
    .steps .line::after { flex: 0 1 var(--reach); min-width: 12px; }
    .steps .line:nth-child(1) { --reach: 14vw; } .steps .line:nth-child(2) { --reach: 22vw; } .steps .line:nth-child(3) { --reach: 10vw; } .steps .line:nth-child(4) { --reach: 18vw; }
    .players { grid-template-columns: 1fr; }
    .program li { grid-template-columns: 1fr; gap: 0; }
    .figs { grid-template-columns: 1fr; }
    .bar:nth-child(n) { width: 100%; }
  }

/* ===================== Site-wide additions ===================== */
.skip { position: absolute; left: -9999px; top: 8px; z-index: 50; background: var(--white); color: var(--graphite); padding: 10px 14px; }
.skip:focus { left: 8px; }
.top nav.primary a[aria-current="page"] { color: var(--white); border-bottom: 1px solid var(--garnet-hi); padding-bottom: 3px; }
.menu { display: none; position: relative; }
.menu summary { list-style: none; cursor: pointer; padding: 11px 16px; border: 1px solid var(--silver); font-weight: 500; font-size: 15px; }
.menu summary::-webkit-details-marker { display: none; }
.menu nav { position: absolute; right: 0; top: calc(100% + 8px); background: var(--graphite-2); min-width: 220px; padding: 10px 0; box-shadow: 0 20px 40px rgba(0,0,0,.45); z-index: 20; }
.menu nav a { display: block; padding: 11px 20px; text-decoration: none; color: var(--white); }
.menu nav a:hover { background: rgba(255,255,255,.06); }
@media (max-width: 960px) {
  .top nav.primary { display: none; }
  .menu { display: block; }
  .top .acts .btn:not(.garnet) { display: none; }
}

/* Interior page opening: the stepped title, shorter */
.page-hero { padding: clamp(48px, 7vw, 100px) 0 clamp(56px, 8vw, 110px); overflow-x: clip; }
.page-hero .eyebrow { color: var(--silver); font-size: 15px; letter-spacing: .04em; margin-bottom: clamp(20px, 3vw, 32px); }
.page-hero .eyebrow b { color: var(--white); font-weight: 600; letter-spacing: .12em; }
.page-hero .steps { font-size: clamp(38px, min(5vw, 9vh), 84px); }
.page-hero .steps .line { white-space: normal; }
.page-hero .steps .line:nth-child(1) { --reach: min(7vw, 96px); }
.page-hero .steps .line:nth-child(2) { --reach: min(12vw, 180px); padding-left: min(3vw, 44px); }
.page-hero .steps .line:nth-child(2)::after { background: var(--garnet-hi); height: 2px; }
.page-hero .steps .line:nth-child(3) { --reach: min(9vw, 140px); }
.page-hero .lede { max-width: 640px; margin-top: clamp(26px, 3vw, 40px); color: #d3d5d9; font-size: clamp(17px, 1.4vw, 20px); }
.page-hero .ctas { display: flex; gap: 12px; flex-wrap: wrap; margin-top: 30px; }
.page-hero .with-mark { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: clamp(30px, 6vw, 110px); align-items: center; }
.page-hero .with-mark .cello { height: min(46vh, 460px); }
.page-hero .with-mark .steps { font-size: clamp(34px, min(4.3vw, 8.4vh), 74px); }
.page-hero .with-mark .steps .line { white-space: nowrap; }
.page-hero .with-mark .steps .line:nth-child(2) { --reach: min(6vw, 96px); }
@media (max-width: 960px) { .page-hero .with-mark { grid-template-columns: 1fr; } .page-hero .with-mark .cello { display: none; } }

/* Bands */
.band { padding: clamp(72px, 10vw, 140px) 0; }
.band.white { background: var(--white); color: var(--graphite); }
.band.ivory { background: var(--ivory); color: var(--graphite); }
.band.mist { background: var(--mist); color: var(--graphite); }
.band.graphite { background: var(--graphite); color: var(--white); }
.band.garnet { background: var(--garnet); color: var(--white); }
.band h2 { font-family: var(--display); font-weight: 500; font-size: clamp(32px, 4vw, 56px); line-height: 1.08; text-wrap: balance; }
.band h3 { font-family: var(--display); font-weight: 500; font-size: clamp(22px, 2.2vw, 30px); line-height: 1.15; }
.band .label { font-family: var(--sans); font-weight: 600; font-size: 12.5px; letter-spacing: .24em; color: var(--garnet); margin-bottom: 16px; }
.band.graphite .label, .band.garnet .label { color: #e7a3ad; }
.split { display: grid; grid-template-columns: 1fr 1.15fr; gap: clamp(30px, 6vw, 100px); align-items: start; }
.split.middle { align-items: center; }
.prose p { max-width: 660px; margin-top: 18px; }
.prose p:first-child { margin-top: 0; }
.band.white .prose p, .band.ivory .prose p, .band.mist .prose p { color: #34363b; }
.band.graphite .prose p { color: #d3d5d9; }
.band.garnet .prose p { color: #f3dde0; }
.anchor-line { font-family: var(--display); font-weight: 500; font-size: clamp(26px, 3vw, 42px); line-height: 1.22; max-width: 900px; padding-left: clamp(18px, 2vw, 28px); border-left: 2px solid var(--garnet-hi); text-wrap: balance; }
.band.garnet .anchor-line { border-color: #fff; }
.figure-photo img { width: 100%; object-fit: cover; }
.btn.dark { border-color: var(--graphite); color: var(--graphite); }
.btn.dark:hover { background: var(--graphite); color: var(--white); }
.links-row { display: flex; gap: 26px; flex-wrap: wrap; margin-top: 28px; }
.links-row .text-link { margin-top: 0; }

/* Concerts */
.concert-full { display: grid; grid-template-columns: 170px 1fr; gap: clamp(24px, 4vw, 64px); padding: clamp(44px, 6vw, 72px) 0; border-top: 1px solid #d6d7da; }
.concert-full:first-of-type { border-top: 2px solid var(--graphite); }
.concert-full .num { font-family: var(--display); font-size: clamp(64px, 7vw, 104px); line-height: .9; color: var(--garnet); font-variation-settings: "opsz" 48; }
.concert-full .when { font-size: 15.5px; color: var(--pewter); margin-top: 10px; line-height: 1.45; }
.concert-full .when b { display: block; color: var(--graphite); font-weight: 600; }
.concert-full h3 { font-family: var(--display); font-weight: 500; font-size: clamp(30px, 3.4vw, 46px); line-height: 1.05; }
.concert-full .sub { font-family: var(--display); font-style: italic; font-size: 20px; color: #45474c; margin-top: 6px; }
.concert-full .desc { max-width: 680px; margin-top: 16px; color: #34363b; }
.concert-full .prog-label { font-weight: 600; font-size: 12.5px; letter-spacing: .24em; color: var(--garnet); margin-top: 26px; }
.prog { list-style: none; margin-top: 10px; max-width: 760px; border-top: 1px solid #e3e4e6; }
.prog li { display: grid; grid-template-columns: minmax(180px, .9fr) 1.4fr; gap: 16px; padding: 9px 0; border-bottom: 1px solid #ececee; font-size: 16px; }
.prog li .c { color: var(--graphite); }
.prog li .c small { color: var(--pewter); font-size: 13.5px; margin-left: 4px; }
.prog li .w { font-family: var(--display); font-style: italic; font-size: 17.5px; }
.prog li .w small { display: block; font-family: var(--sans); font-style: normal; font-size: 13.5px; color: var(--pewter); }
.prog li.break { display: block; text-align: center; font-size: 12.5px; letter-spacing: .24em; color: var(--pewter); padding: 10px 0; }
.prog li.premiere .w { color: var(--garnet); }
.concert-full .acts-row { display: flex; gap: 12px; flex-wrap: wrap; align-items: center; margin-top: 26px; }
.concert-full .acts-row small { color: var(--pewter); font-size: 14px; }
.note { font-size: 14.5px; color: var(--pewter); margin-top: 24px; }
.glance { width: 100%; border-collapse: collapse; margin-top: 30px; }
.glance th, .glance td { text-align: left; padding: 16px 10px; border-bottom: 1px solid rgba(255,255,255,.14); vertical-align: top; }
.glance th { font-weight: 600; font-size: 12.5px; letter-spacing: .2em; color: var(--silver); }
.glance td:first-child { font-family: var(--display); font-size: 22px; }
.glance td:nth-child(2) { white-space: nowrap; color: var(--silver); }

/* Event page */
.event-meta { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1px; background: rgba(255,255,255,.14); margin-top: clamp(30px, 4vw, 48px); }
.event-meta div { background: var(--graphite); padding: 22px 24px; }
.event-meta span { display: block; font-size: 12.5px; letter-spacing: .2em; color: var(--silver); font-weight: 600; }
.event-meta b { display: block; font-family: var(--display); font-weight: 500; font-size: 22px; margin-top: 8px; line-height: 1.25; }
.artist-list { list-style: none; display: grid; grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); gap: 0; border-top: 1px solid #d6d7da; margin-top: 26px; }
.artist-list li { padding: 18px 4px; border-bottom: 1px solid #e3e4e6; }
.artist-list b { display: block; font-family: var(--display); font-weight: 500; font-size: 24px; }
.artist-list span { color: var(--pewter); }

/* Cards */
.cards { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1px; background: #d6d7da; border: 1px solid #d6d7da; margin-top: clamp(30px, 4vw, 50px); }
.cards.two { grid-template-columns: repeat(2, 1fr); }
.cards > div { background: var(--white); padding: clamp(24px, 3vw, 36px); }
.band.ivory .cards > div { background: #fbf8f2; }
.cards h3 { font-size: 26px; }
.cards p { color: #3d3f44; margin-top: 10px; font-size: 16.5px; }
.cards .tag { font-weight: 600; font-size: 12.5px; letter-spacing: .22em; color: var(--garnet); margin-bottom: 10px; display: block; }
.band.graphite .cards { background: rgba(255,255,255,.14); border-color: rgba(255,255,255,.14); }
.band.graphite .cards > div { background: var(--graphite-2); }
.band.graphite .cards p { color: #c9cbd0; }
.tiers { margin-top: 30px; border-top: 2px solid var(--graphite); }
.tier { display: grid; grid-template-columns: 1fr 160px; gap: 20px; padding: 22px 0; border-bottom: 1px solid #d6d7da; align-items: baseline; }
.tier h3 { font-size: 26px; }
.tier p { color: #3d3f44; margin-top: 4px; font-size: 16.5px; }
.tier .amt { font-family: var(--display); font-weight: 500; font-size: 30px; text-align: right; color: var(--garnet); }

.founder-note { max-width: 720px; margin: 0 auto; }
.founder-note p { font-family: var(--display); font-size: clamp(19px, 1.6vw, 22px); line-height: 1.6; color: #2a2c30; margin-top: 20px; font-variation-settings: "opsz" 18; font-optical-sizing: none; }
.founder-note .sig { font-family: var(--sans); font-size: 16px; margin-top: 30px; color: var(--graphite); }
.founder-note .sig b { display: block; font-weight: 600; }

@media (max-width: 960px) {
  .split { grid-template-columns: 1fr; }
  .cards, .cards.two { grid-template-columns: 1fr; }
  .event-meta { grid-template-columns: 1fr; }
  .concert-full { grid-template-columns: 1fr; }
  .concert-full .num { font-size: 60px; }
  .glance td:nth-child(2) { white-space: normal; }
}
@media (max-width: 560px) {
  .prog li { grid-template-columns: 1fr; gap: 2px; }
  .tier { grid-template-columns: 1fr; }
  .tier .amt { text-align: left; }
  .page-hero .steps { font-size: 9vw; }
}

/* Buttons on garnet */
.btn.light { border-color: rgba(255,255,255,.85); color: var(--white); }
.btn.light:hover { background: var(--white); color: var(--garnet); border-color: var(--white); }
.prose .closing { font-family: var(--display); font-style: italic; font-size: clamp(22px, 2vw, 28px); line-height: 1.3; color: var(--graphite) !important; margin-top: 28px; }
.case-title { font-size: clamp(28px, 3vw, 40px) !important; }

/* Free At Last?: the evolution is a true sequence, so it is numbered */
.sequence { list-style: none; display: grid; grid-template-columns: repeat(4, 1fr); gap: clamp(22px, 3vw, 44px); margin-top: clamp(40px, 5vw, 64px); counter-reset: seq; }
.sequence li { counter-increment: seq; border-top: 1px solid rgba(255,255,255,.24); padding-top: 22px; }
.sequence li:last-child { border-top: 2px solid var(--garnet-hi); padding-top: 21px; }
.sequence li::before { content: counter(seq, upper-roman); display: block; font-family: var(--display); font-size: 38px; line-height: 1; color: var(--silver); margin-bottom: 18px; font-variation-settings: "opsz" 40; }
.sequence h3 { font-size: clamp(22px, 1.9vw, 26px); }
.sequence p { color: #c9cbd0; margin-top: 12px; font-size: 16.5px; }
.stops { list-style: none; border-top: 2px solid var(--graphite); }
.stops li { display: grid; grid-template-columns: 200px 1fr; gap: 24px; padding: 24px 0; border-bottom: 1px solid #d6d7da; align-items: baseline; }
.stops .d { font-weight: 600; line-height: 1.4; }
.stops .d small { display: block; font-weight: 400; color: var(--pewter); font-size: 15px; }
.stops h3 { font-size: clamp(22px, 2vw, 27px); }
.stops p { color: #3d3f44; margin-top: 4px; font-size: 16.5px; }
.stops .text-link { margin-top: 12px; font-size: 15.5px; }

/* Our Story */
.beliefs { list-style: none; margin-top: 16px; border-top: 1px solid rgba(255,255,255,.22); }
.beliefs li { font-family: var(--display); font-size: clamp(19px, 1.7vw, 23px); line-height: 1.35; padding: 15px 0; border-bottom: 1px solid rgba(255,255,255,.14); }
.proof { display: grid; grid-template-columns: repeat(3, 1fr); border-top: 2px solid var(--graphite); margin-top: clamp(30px, 4vw, 48px); }
.proof div { padding: 26px 24px 26px 0; border-bottom: 1px solid #c4c6ca; }
.proof div + div { padding-left: 24px; border-left: 1px solid #c4c6ca; }
.proof b { display: block; font-family: var(--display); font-weight: 500; font-size: clamp(46px, 6vw, 88px); line-height: 1; color: var(--garnet); font-variation-settings: "opsz" 60; }
.proof span { display: block; margin-top: 12px; color: #34363b; }

/* Support */
.ways-list { display: grid; grid-template-columns: repeat(2, 1fr); column-gap: clamp(30px, 5vw, 70px); margin-top: clamp(36px, 5vw, 60px); border-top: 2px solid var(--graphite); }
.ways-list div { padding: 20px 0; border-bottom: 1px solid #d6d7da; }
.ways-list dt { font-family: var(--display); font-weight: 500; font-size: 23px; line-height: 1.2; }
.ways-list dd { color: #3d3f44; margin-top: 6px; font-size: 16.5px; }
.tier details { margin-top: 12px; }
.tier summary { cursor: pointer; list-style: none; display: inline-block; color: var(--garnet); font-weight: 600; font-size: 15px; }
.tier summary::-webkit-details-marker { display: none; }
.tier summary::before { content: "+"; display: inline-block; width: 1.1em; font-weight: 400; }
.tier details[open] summary::before { content: "\2013"; }
.tier summary:focus-visible { outline: 2px solid var(--garnet); outline-offset: 3px; }
.tier ul { margin: 12px 0 4px 1.15em; color: #3d3f44; font-size: 16px; max-width: 720px; }
.tier li { margin-top: 6px; }
.contact-list { border-top: 2px solid var(--graphite); }
.contact-list > div { padding: 24px 0; border-bottom: 1px solid #d8d2c6; }
.contact-list h3 { font-size: 26px; }
.contact-list p { color: #34363b; margin-top: 8px; }
.contact-list .text-link { margin-top: 12px; }

@media (max-width: 960px) {
  .sequence { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 560px) {
  .sequence, .ways-list, .proof { grid-template-columns: 1fr; }
  .proof div + div { padding-left: 0; border-left: 0; }
  .stops li { grid-template-columns: 1fr; gap: 6px; }
}

/* Phone menu: override the study's blanket ".top nav" rules */
.top .menu nav { display: none; flex-direction: column; gap: 0; font-size: 17px; }
.top .menu[open] nav { display: flex; }
.top .menu nav a { color: var(--white); }
.top .menu nav a[aria-current="page"] { color: var(--white); box-shadow: inset 3px 0 0 var(--garnet-hi); }

/* Give page: RCP's own gift chooser, with Zeffy checkout in the background */
.sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0; }
.give-grid { display: grid; grid-template-columns: minmax(0, 1fr) minmax(340px, 480px); grid-template-areas: "intro chooser" "notes chooser"; column-gap: clamp(36px, 6vw, 100px); align-items: start; }
.give-intro { grid-area: intro; }
.give-chooser { grid-area: chooser; }
.give-notes { grid-area: notes; }
.give-notes { list-style: none; margin-top: 30px; max-width: 560px; border-top: 1px solid rgba(255,255,255,.18); }
.give-notes li { padding: 13px 0 13px 22px; border-bottom: 1px solid rgba(255,255,255,.1); color: #c9cbd0; font-size: 16px; position: relative; }
.give-notes li::before { content: ""; position: absolute; left: 0; top: 23px; width: 10px; height: 1px; background: var(--garnet-hi); }
.give-chooser { background: var(--graphite-2); border-top: 3px solid var(--garnet-hi); padding: clamp(26px, 3vw, 40px); box-shadow: 0 30px 60px rgba(0,0,0,.35); }
.give-chooser h2 { font-family: var(--display); font-weight: 500; font-size: clamp(28px, 2.6vw, 36px); line-height: 1.1; }
.give-chooser fieldset { border: 0; padding: 0; margin: 22px 0 0; }
.amounts { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.amounts label { position: relative; cursor: pointer; }
.amounts input { position: absolute; opacity: 0; inset: 0; cursor: pointer; }
.amounts span { display: block; text-align: center; padding: 18px 10px 16px; border: 1px solid rgba(255,255,255,.22); font-family: var(--display); font-weight: 500; font-size: clamp(26px, 2.4vw, 32px); line-height: 1; font-variation-settings: "opsz" 40; color: var(--white); transition: background .15s, border-color .15s; }
.amounts label:hover span { border-color: var(--silver); }
.amounts input:checked + span { background: var(--garnet); border-color: var(--garnet-hi); }
.amounts input:focus-visible + span { outline: 2px solid var(--white); outline-offset: 2px; }
.give-chooser .other { display: block; margin-top: 18px; }
.give-chooser .other > span:first-child { display: block; font-size: 14px; color: var(--silver); margin-bottom: 8px; }
.give-chooser .field { display: flex; align-items: center; border: 1px solid rgba(255,255,255,.22); background: rgba(0,0,0,.18); }
.give-chooser .field:focus-within { border-color: var(--silver); }
.give-chooser .field i { font-style: normal; font-family: var(--display); font-size: 24px; color: var(--silver); padding: 0 4px 0 16px; }
.give-chooser .field input { flex: 1; min-width: 0; background: transparent; border: 0; color: var(--white); font: 500 20px var(--sans); padding: 14px 14px 14px 4px; outline: none; }
.give-chooser .field input::placeholder { color: #8d9097; font-weight: 400; font-size: 17px; }
.give-chooser .hint { color: #f0a9b3; font-size: 14.5px; margin-top: 8px; }
.give-go { display: block; width: 100%; margin-top: 22px; padding: 16px 22px; font-size: 17px; font-weight: 600; text-align: center; cursor: pointer; }
.give-secure-note { color: #aeb1b7; font-size: 14px; margin-top: 14px; line-height: 1.5; }

/* The checkout window (Zeffy inside RCP's frame) */
html.giving { overflow: hidden; }
dialog.give-dialog { margin: auto; padding: 0; border: 0; width: min(560px, calc(100vw - 32px)); height: min(880px, calc(100dvh - 32px)); max-height: none; background: #fff0f2; color: var(--graphite); flex-direction: column; box-shadow: 0 40px 90px rgba(0,0,0,.55); }
dialog.give-dialog[open] { display: flex; }
dialog.give-dialog::backdrop { background: rgba(18,19,22,.78); backdrop-filter: blur(3px); }
.give-dialog-head { display: flex; align-items: center; gap: 14px; background: var(--graphite); color: var(--white); padding: 14px 16px 14px 20px; border-bottom: 3px solid var(--garnet-hi); }
.give-dialog-head img { width: 30px; height: auto; flex: none; }
.give-dialog-head div { flex: 1; min-width: 0; }
.give-dialog-head p { font-family: var(--display); font-weight: 500; font-size: 19px; line-height: 1.2; }
.give-dialog-head p.sub { font-family: var(--sans); font-size: 12.5px; color: var(--silver); margin-top: 3px; line-height: 1.35; }
.give-close { flex: none; background: transparent; color: var(--white); border: 1px solid rgba(255,255,255,.4); font: 500 14px var(--sans); padding: 8px 14px; cursor: pointer; }
.give-close:hover { background: var(--white); color: var(--graphite); }
.give-dialog iframe { flex: 1; width: 100%; border: 0; background: #fff0f2; }
@media (max-width: 960px) {
  .give-grid { grid-template-columns: 1fr; grid-template-areas: "intro" "chooser" "notes"; row-gap: 30px; }
  .give-notes { margin-top: 0; }
}
@media (max-width: 600px) {
  dialog.give-dialog { width: 100vw; height: 100dvh; max-width: 100vw; margin: 0; }
}

/* Artists */
.roster-band { padding-top: clamp(56px, 7vw, 96px); }
.roster { list-style: none; display: grid; grid-template-columns: repeat(4, 1fr); gap: clamp(28px, 3.4vw, 52px) clamp(18px, 2.4vw, 34px); }
.roster a, .roster div { display: block; text-decoration: none; color: var(--graphite); }
.roster-photo { display: block; width: 100%; height: auto; aspect-ratio: 4 / 5; object-fit: cover; background: var(--mist); }
.roster-name { display: block; font-family: var(--display); font-weight: 500; font-size: clamp(20px, 1.8vw, 25px); line-height: 1.15; margin-top: 14px; }
.roster-inst { display: block; color: var(--pewter); font-size: 15px; margin-top: 4px; }
.roster a .roster-name { text-decoration: underline 1px transparent; text-underline-offset: 5px; transition: text-decoration-color .2s; }
.roster a:hover .roster-name, .roster a:focus-visible .roster-name { text-decoration-color: var(--garnet); }
.roster a:focus-visible { outline: 2px solid var(--garnet); outline-offset: 4px; }
.artist-hero { padding-bottom: clamp(48px, 6vw, 84px); }
.artist-grid { display: grid; grid-template-columns: minmax(240px, 440px) minmax(0, 1fr); gap: clamp(32px, 6vw, 96px); align-items: end; }
.artist-portrait img { display: block; width: 100%; height: auto; aspect-ratio: 4 / 5; object-fit: cover; box-shadow: 0 30px 60px rgba(0,0,0,.35); }
.artist-hero .eyebrow a { color: var(--silver); text-decoration: none; border-bottom: 1px solid rgba(255,255,255,.3); }
.artist-name { font-family: var(--display); font-weight: 400; font-size: clamp(44px, 6vw, 92px); line-height: 1; letter-spacing: -.01em; text-wrap: balance; }
.artist-role { font-family: var(--display); font-style: italic; font-size: clamp(22px, 2.2vw, 30px); color: var(--silver); margin-top: 18px; }
.artist-role::before { content: ""; display: inline-block; width: 56px; height: 2px; background: var(--garnet-hi); vertical-align: middle; margin-right: 18px; }
.artist-bio { max-width: 720px; margin: 0 auto; }
.artist-bio p { color: #34363b; margin-top: 20px; }
.artist-bio p:first-child { margin-top: 0; }
.artist-bio p.lede { font-family: var(--display); font-size: clamp(21px, 1.9vw, 26px); line-height: 1.5; color: var(--graphite); font-variation-settings: "opsz" 18; }
.artist-bio h3 { font-family: var(--sans); font-weight: 600; font-size: 13px; letter-spacing: .2em; text-transform: uppercase; color: var(--garnet); margin-top: 40px; }
.conversation { max-width: 760px; margin: 0 auto; }
.conversation .intro { color: #34363b; margin-top: 18px; font-style: italic; }
.qa { border-top: 1px solid #d8d2c6; padding-top: 24px; margin-top: 28px; }
.qa .q { font-family: var(--display); font-weight: 500; font-size: clamp(20px, 1.8vw, 24px); line-height: 1.35; color: var(--graphite); }
.qa .a { color: #34363b; margin-top: 12px; }
.artist-more { padding: clamp(36px, 4vw, 56px) 0; }
.artist-pager { display: grid; grid-template-columns: 1fr auto 1fr; gap: 20px; align-items: center; }
.artist-pager a { color: var(--white); text-decoration: none; font-family: var(--display); font-size: clamp(20px, 2vw, 26px); }
.artist-pager a span { display: block; font-family: var(--sans); font-size: 12.5px; letter-spacing: .2em; text-transform: uppercase; color: var(--silver); margin-bottom: 6px; }
.artist-pager a:last-child { text-align: right; }
.artist-pager a.all { font-family: var(--sans); font-size: 15px; border: 1px solid var(--silver); padding: 11px 20px; }
.artist-pager a.all:hover { background: var(--white); color: var(--graphite); }
@media (max-width: 1100px) { .roster { grid-template-columns: repeat(3, 1fr); } }
@media (max-width: 960px) {
  .artist-grid { grid-template-columns: 1fr; align-items: start; }
  .artist-portrait { max-width: 420px; }
}
@media (max-width: 600px) {
  .roster { grid-template-columns: 1fr 1fr; }
  .artist-pager { grid-template-columns: 1fr 1fr; }
  .artist-pager a.all { grid-column: 1 / -1; grid-row: 2; text-align: center; }
}
.nw { white-space: nowrap; }
.glance td a { color: inherit; text-decoration: none; border-bottom: 1px solid rgba(255,255,255,.28); }
.glance td a:hover { border-bottom-color: currentColor; }

/* Impact, signature and visitor pages */
.page-hero .numbers { display: flex; flex-wrap: wrap; gap: 22px clamp(40px, 6vw, 88px); margin-top: clamp(34px, 4vw, 52px); }
.page-hero .numbers b { display: block; font-family: var(--display); font-weight: 400; font-size: clamp(46px, 6vw, 76px); line-height: 1; color: var(--white); }
.page-hero .numbers span { display: block; max-width: 230px; margin-top: 12px; font-size: 15px; line-height: 1.45; color: var(--silver); }
.page-hero .lede a { color: inherit; }
.beliefs.dark { border-top: 2px solid var(--graphite); }
.beliefs.dark li { border-bottom-color: #d6d7da; color: var(--graphite); }
.ways-list.one { grid-template-columns: 1fr; margin-top: 0; }
.ways-list dd a:not(.text-link), .faq dd a, .prose a:not(.btn):not(.text-link) { color: inherit; text-decoration-color: var(--garnet); text-decoration-thickness: 1px; text-underline-offset: 3px; }
.band.graphite .prose a:not(.btn):not(.text-link) { text-decoration-color: var(--garnet-hi); }
.ways-list dd .text-link { margin-top: 10px; font-size: 15.5px; }
.faq { border-top: 2px solid var(--graphite); }
.faq > div { padding: 22px 0; border-bottom: 1px solid #d6d7da; }
.band.mist .faq > div { border-bottom-color: #c9cacd; }
.faq dt { font-family: var(--display); font-weight: 500; font-size: clamp(20px, 1.8vw, 24px); line-height: 1.3; color: var(--graphite); }
.faq dd { color: #34363b; margin-top: 8px; max-width: 640px; }
.contact-list .links-row { margin-top: 12px; gap: 22px; }
.contact-list > div { scroll-margin-top: 90px; }
.foot .navs { display: grid; grid-template-columns: auto auto; gap: 0 44px; }
@media (max-width: 560px) { .foot .navs { grid-template-columns: 1fr 1fr; gap: 0 24px; } }

/* ---------- Look & Listen ---------- */
.listen-hero-grid { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: clamp(40px, 6vw, 110px); align-items: center; }
.sleeve { position: relative; display: block; width: clamp(250px, 27vw, 390px); aspect-ratio: 1; margin-right: clamp(80px, 10vw, 160px); text-decoration: none; color: var(--white); }
.sleeve .face { position: absolute; inset: 0; z-index: 1; display: grid; grid-template-rows: minmax(0, 1fr) auto auto; justify-items: center; padding: 11% 10% 9%;
  background: radial-gradient(120% 90% at 28% 18%, #303237 0%, #17181b 62%, #101113 100%); border: 1px solid #3a3c41; box-shadow: 0 34px 70px rgba(0,0,0,.5); }
.sleeve .emblem { position: relative; height: 100%; aspect-ratio: 627 / 990; }
.sleeve .metal { position: absolute; inset: 0;
  background: linear-gradient(115deg, #8d9198 0%, #e9ebee 18%, #a8acb3 34%, #fafbfc 48%, #9ca0a7 62%, #dfe1e5 80%, #7f838a 100%); background-size: 260% 100%;
  -webkit-mask: url(../brand/cello25-emblem.svg) center / contain no-repeat; mask: url(../brand/cello25-emblem.svg) center / contain no-repeat; }
.sleeve .sleeve-t { font-family: var(--display); font-size: clamp(24px, 2.3vw, 34px); line-height: 1; margin-top: 16px; }
.sleeve .sleeve-b { font-size: 11.5px; letter-spacing: .26em; text-transform: uppercase; color: var(--silver); margin-top: 10px; }
.sleeve .disc { position: absolute; top: 4%; left: 4%; width: 92%; aspect-ratio: 1; border-radius: 50%; z-index: 0;
  background: radial-gradient(circle, #d9dbdf 0 2.2%, var(--garnet) 2.2% 17%, #0d0d0e 17% 18%, transparent 18%),
              repeating-radial-gradient(circle, #121214 0 1.6px, #1d1e21 1.6px 3.2px);
  border: 1px solid #3c3e43; box-shadow: 0 20px 50px rgba(0,0,0,.5), inset 0 0 0 6px #18191c, inset 0 0 0 7px #2c2e32; transform: translateX(38%); transition: transform .7s cubic-bezier(.2,.7,.2,1); }
.sleeve:hover .disc, .sleeve:focus-visible .disc, .listen.is-playing .sleeve .disc { transform: translateX(50%); }
@media (prefers-reduced-motion: no-preference) {
  .listen.is-playing .sleeve .disc { animation: spin 3.2s linear infinite; }
  @keyframes spin { from { transform: translateX(50%) rotate(0); } to { transform: translateX(50%) rotate(360deg); } }
}

.band.room { background: #121315; color: var(--white); }
.band.room .label { color: #e7a3ad; }
.room-grid { display: grid; grid-template-columns: minmax(280px, 390px) minmax(0, 1fr); gap: clamp(40px, 6vw, 110px); align-items: start; }
.deck { position: sticky; top: 28px; }
.deck .meta { color: var(--silver); font-size: 15px; margin-top: 14px; }
.now { margin-top: 38px; padding-top: 22px; border-top: 1px solid #34363b; }
.now-label { font-size: 12px; letter-spacing: .24em; text-transform: uppercase; color: var(--silver); }
.now-c { margin-top: 16px; font-size: 13px; font-weight: 600; letter-spacing: .2em; text-transform: uppercase; color: #e7a3ad; }
.now-w { font-family: var(--display); font-size: clamp(23px, 2.1vw, 29px); line-height: 1.22; margin-top: 6px; min-height: 2.44em; }
.rule { height: 2px; background: #34363b; margin: 22px 0 18px; overflow: hidden; }
.rule span { display: block; height: 100%; background: var(--garnet-hi); transform-origin: left center; transform: scaleX(0); transition: transform .35s linear; }
.ctrl { display: flex; align-items: center; gap: 10px; }
.ctrl button { display: grid; place-items: center; background: none; border: 0; padding: 0; color: var(--white); cursor: pointer; }
.ctrl button svg { fill: currentColor; }
.ctrl .prev, .ctrl .next { width: 44px; height: 44px; color: var(--silver); }
.ctrl .prev:hover, .ctrl .next:hover { color: var(--white); }
.ctrl .prev svg, .ctrl .next svg { width: 22px; height: 22px; }
.ctrl .play { width: 66px; height: 66px; border-radius: 50%; background: var(--garnet); transition: background .2s; }
.ctrl .play:hover { background: var(--garnet-hi); }
.ctrl .play svg { width: 28px; height: 28px; }
.ctrl .i-pause, .is-playing .ctrl .i-play { display: none; }
.is-playing .ctrl .i-pause { display: block; }
.ctrl .time { margin-left: auto; color: var(--silver); font-size: 15px; font-variant-numeric: tabular-nums; }
.now .hint { margin-top: 14px; font-size: 14.5px; color: #e7a3ad; }
iframe.sc { display: block; width: 100%; height: 20px; border: 0; margin-top: 28px; }
.deck .src { margin-top: 8px; font-size: 13.5px; color: var(--silver); }
.deck .src a { color: inherit; }

.tracks { list-style: none; border-top: 1px solid #34363b; }
.tracks li { border-bottom: 1px solid #2a2c30; }
.trk { display: grid; grid-template-columns: 46px minmax(0, 1fr) auto; gap: 16px; align-items: baseline; width: 100%; padding: 24px 0 8px; background: none; border: 0; color: inherit; font: inherit; text-align: left; cursor: pointer; }
.tracks li:not(:has(.nt)) .trk { padding-bottom: 24px; }
.trk .no { font-family: var(--display); font-style: italic; font-size: 22px; color: #8e9198; }
.trk .c { display: block; font-size: 12.5px; font-weight: 600; letter-spacing: .22em; text-transform: uppercase; color: var(--silver); }
.trk .w { display: block; font-family: var(--display); font-size: clamp(21px, 1.9vw, 27px); line-height: 1.2; margin-top: 6px; color: #eceef0; }
.trk .m { display: block; font-style: italic; font-size: 16px; color: #c3c6cb; margin-top: 4px; }
.trk .d { color: #8e9198; font-size: 15px; font-variant-numeric: tabular-nums; }
.trk:hover .w, .trk:hover .no { color: var(--white); }
.tracks .nt { padding: 0 0 24px 62px; max-width: 64ch; color: #a3a6ad; font-size: 15.5px; line-height: 1.55; }
.tracks li.on .no { color: var(--garnet-hi); }
.tracks li.on .c { color: #e7a3ad; }
.tracks li.on .w { color: var(--white); }
.tracks li.on .tx::after { content: ""; display: block; width: 7.5rem; height: 2px; margin-top: 14px; background: var(--garnet-hi); }

.films-head { display: flex; justify-content: space-between; align-items: end; gap: 18px 40px; flex-wrap: wrap; margin-bottom: clamp(34px, 4vw, 56px); }
.films-head .credit { color: #5d6066; font-size: 15px; }
.film .frame { position: relative; aspect-ratio: 16 / 9; background: #000; overflow: hidden; }
.film .frame iframe, .film .yt { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }
.film .yt { padding: 0; margin: 0; background: #000; cursor: pointer; display: block; }
.film .yt img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform .5s ease; }
.film .yt:hover img { transform: scale(1.03); }
.film .yt .pb { position: absolute; left: 16px; bottom: 16px; width: 56px; height: 56px; border-radius: 50%; background: var(--garnet); transition: background .2s; }
.film .yt .pb::after { content: ""; position: absolute; left: 53%; top: 50%; transform: translate(-50%, -50%); border-left: 17px solid #fff; border-top: 10px solid transparent; border-bottom: 10px solid transparent; }
.film .yt:hover .pb { background: var(--garnet-hi); }
.film h3 { font-family: var(--display); font-weight: 500; font-size: 23px; line-height: 1.22; margin-top: 18px; color: var(--graphite); }
.film .when { margin-top: 6px; font-size: 14.5px; color: #5d6066; font-variant-numeric: tabular-nums; }
.film .fnote { margin-top: 8px; font-size: 16px; line-height: 1.5; color: #34363b; }
.film.feature { display: grid; grid-template-columns: minmax(0, 1.7fr) minmax(0, 1fr); gap: clamp(28px, 4vw, 60px); align-items: end; margin-bottom: clamp(56px, 7vw, 96px); }
.film.feature h3 { margin-top: 0; font-size: clamp(32px, 3.4vw, 50px); line-height: 1.05; }
.film.feature .yt .pb { width: 78px; height: 78px; left: 26px; bottom: 26px; }
.film.feature .yt .pb::after { border-left-width: 24px; border-top-width: 14px; border-bottom-width: 14px; }
.film.feature .when { margin-top: 12px; }
.film.feature .fnote { font-size: 17px; margin-top: 14px; }
.film.feature .fnext { margin-top: 18px; font-weight: 600; color: var(--graphite); }
.film-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: clamp(36px, 4vw, 56px) clamp(20px, 2.4vw, 34px); }
.film { scroll-margin-top: 24px; }
.film:target h3 { color: var(--garnet); }

.film-links { list-style: none; border-top: 2px solid var(--graphite); }
.film-links li { border-bottom: 1px solid #c9cacd; }
.film-links a { display: flex; justify-content: space-between; align-items: baseline; gap: 20px; padding: 18px 0; text-decoration: none; color: var(--graphite); }
.film-links .ft { font-family: var(--display); font-size: 21px; line-height: 1.25; }
.film-links .fl { color: #5d6066; font-size: 15px; white-space: nowrap; }
.film-links a:hover .ft { text-decoration: underline; text-decoration-color: var(--garnet); text-decoration-thickness: 1px; text-underline-offset: 4px; }

@media (max-width: 960px) {
  .listen-hero-grid { grid-template-columns: 1fr; }
  .listen-hero .sleeve { width: min(300px, 62vw); margin: 8px 0 0; }
  .room-grid { grid-template-columns: 1fr; }
  .deck { position: static; }
  .film.feature { grid-template-columns: 1fr; }
  .film-grid { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 600px) {
  .film-grid { grid-template-columns: 1fr; }
  .trk { grid-template-columns: 34px minmax(0, 1fr) auto; gap: 12px; }
  .tracks .nt { padding-left: 46px; }
  .film-links a { flex-direction: column; gap: 4px; }
}

/* Seven menu items need more room than a small laptop gives them */
@media (max-width: 1240px) and (min-width: 961px) {
  .top { gap: 26px; }
  .top nav { gap: 18px; font-size: 14.5px; }
}
@media (max-width: 1120px) {
  .top nav.primary { display: none; }
  .menu { display: block; }
}

/* ---------- Press & Presenters ---------- */
.boiler { display: grid; gap: 22px; }
.bp { border-top: 2px solid var(--graphite); padding-top: 18px; }
.bp-head { display: flex; justify-content: space-between; align-items: baseline; gap: 16px; }
.bp-head h3 { font-family: var(--sans); font-weight: 600; font-size: 13px; letter-spacing: .2em; text-transform: uppercase; color: var(--garnet); }
.bp p { margin-top: 12px; font-size: 17px; line-height: 1.65; color: #34363b; }
button.copy { font: 500 14px var(--sans); color: var(--graphite); background: none; border: 1px solid #b9bcc2; padding: 7px 16px; cursor: pointer; }
button.copy:hover { border-color: var(--graphite); }
.band.graphite .ways-list { border-top-color: rgba(255,255,255,.5); }
.band.graphite .ways-list div { border-bottom-color: rgba(255,255,255,.14); }
.band.graphite .ways-list dd { color: #c9cbd0; }
.ways-list.formats { margin-top: 26px; }
.ways-list.formats dt { font-size: 21px; }
.dl-list { list-style: none; border-top: 2px solid var(--graphite); }
.dl-list li { border-bottom: 1px solid #d6d7da; }
.dl-list a { display: grid; grid-template-columns: minmax(180px, .8fr) minmax(0, 1.6fr) auto; gap: 8px 28px; align-items: baseline; padding: 20px 0; text-decoration: none; color: var(--graphite); }
.dl-list .dt { font-family: var(--display); font-size: 22px; line-height: 1.2; }
.dl-list .dd { color: #4a4c52; font-size: 16px; }
.dl-list .ft { font-size: 12.5px; font-weight: 600; letter-spacing: .2em; color: var(--garnet); border: 1px solid currentColor; padding: 4px 10px; }
.dl-list a:hover .dt { text-decoration: underline; text-decoration-color: var(--garnet); text-decoration-thickness: 1px; text-underline-offset: 4px; }
.press-reel { margin-top: clamp(40px, 5vw, 64px); }
.steps-list { list-style: none; counter-reset: st; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: clamp(20px, 3vw, 40px); margin-top: clamp(30px, 4vw, 50px); }
.steps-list li { counter-increment: st; border-top: 2px solid var(--graphite); padding-top: 18px; }
.steps-list li::before { content: counter(st); display: block; font-family: var(--display); font-style: italic; font-size: 44px; line-height: 1; color: var(--garnet); margin-bottom: 14px; }
.steps-list b { display: block; font-family: var(--display); font-weight: 500; font-size: 22px; line-height: 1.2; }
.steps-list span { display: block; margin-top: 8px; color: #3d3f44; font-size: 16.5px; }
.book-cta { display: flex; justify-content: space-between; align-items: center; gap: 24px 48px; flex-wrap: wrap; margin-top: clamp(48px, 6vw, 80px); padding: clamp(28px, 4vw, 44px); background: var(--mist); }
.book-cta h3 { font-family: var(--display); font-weight: 500; font-size: clamp(26px, 2.6vw, 34px); }
.book-cta p { margin-top: 8px; color: #34363b; max-width: 560px; }
.book-cta p a { color: inherit; text-decoration-color: var(--garnet); text-underline-offset: 3px; }
@media (max-width: 960px) {
  .steps-list { grid-template-columns: 1fr 1fr; }
  .dl-list a { grid-template-columns: minmax(0, 1fr) auto; }
  .dl-list .dd { grid-column: 1 / -1; grid-row: 2; }
}
@media (max-width: 560px) { .steps-list { grid-template-columns: 1fr; } }

/* Press quotes */
.praise-band { padding: clamp(64px, 8vw, 120px) 0; }
.praise-lead blockquote p { font-family: var(--display); font-style: italic; font-weight: 400; font-size: clamp(32px, 4.3vw, 62px); line-height: 1.12; max-width: 19em; text-wrap: balance; color: var(--graphite); }
.praise-lead figcaption { display: flex; align-items: center; gap: 16px; margin-top: 26px; font-size: 13px; font-weight: 600; letter-spacing: .24em; text-transform: uppercase; color: var(--garnet); }
.praise-lead figcaption::before { content: ""; width: 56px; height: 2px; background: var(--garnet); }
.praise-more { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 28px clamp(28px, 5vw, 64px); margin-top: clamp(40px, 5vw, 64px); padding-top: 32px; border-top: 1px solid #d9d2c4; }
.praise-more blockquote p { font-family: var(--display); font-style: italic; font-size: clamp(26px, 2.4vw, 34px); line-height: 1.2; color: var(--graphite); }
.praise-more figcaption { margin-top: 10px; font-size: 14.5px; color: #5d6066; }
.praise-miles { margin-top: clamp(40px, 5vw, 64px); }
.band.ivory .praise-miles div { border-bottom-color: #d9d2c4; }
@media (max-width: 600px) { .praise-more { grid-template-columns: 1fr; } }

/* Sponsor an Artist: a sponsored artist appears in full color */
.sponsor-grid { list-style: none; display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: clamp(16px, 2vw, 28px); }
.sponsor-grid .face { display: block; text-decoration: none; color: var(--graphite); }
.sponsor-grid img { display: block; width: 100%; aspect-ratio: 4 / 5; object-fit: cover; filter: grayscale(1) contrast(1.04); transition: filter .5s ease; }
.sponsor-grid li.taken img, .sponsor-grid .face:hover img, .sponsor-grid .face:focus-visible img { filter: none; }
.sponsor-grid .nm { display: block; margin-top: 14px; font-family: var(--display); font-size: 21px; line-height: 1.2; }
.sponsor-grid .inst { display: block; color: var(--pewter); font-size: 15px; }
.sponsor-grid .by { margin-top: 14px; padding-top: 12px; border-top: 2px solid #d6d7da; }
.sponsor-grid .taken .by { border-top-color: var(--garnet); }
.sponsor-grid .by span { display: block; font-size: 12px; font-weight: 600; letter-spacing: .2em; text-transform: uppercase; color: var(--pewter); }
.sponsor-grid .taken .by span { color: var(--garnet); }
.sponsor-grid .by b { display: block; margin-top: 6px; font-family: var(--display); font-weight: 500; font-size: 19px; line-height: 1.25; }
.sponsor-grid .by small { display: block; margin-top: 4px; font-size: 13.5px; line-height: 1.4; color: #5d6066; }
.sponsor-grid .by .btn { margin-top: 10px; padding: 9px 16px; font-size: 14px; }
.sponsor-how { margin-top: clamp(40px, 5vw, 64px); }
.sponsor-lead { font-family: var(--display); font-size: clamp(22px, 2vw, 28px); line-height: 1.35; color: var(--graphite); }
.sponsor-how .prose a { color: inherit; }
.sponsored-by { margin-top: 20px; font-size: 15.5px; color: var(--silver); max-width: 34em; }
.sponsored-by b { display: block; margin-top: 4px; font-family: var(--display); font-weight: 500; font-size: clamp(19px, 1.7vw, 23px); line-height: 1.3; color: var(--white); }
@media (max-width: 1000px) { .sponsor-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
@media (max-width: 600px) { .sponsor-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }

/* Sponsor credits wherever an artist's sponsored performance is listed */
small.sp { display: block; margin-top: 4px; font-size: 13.5px; line-height: 1.4; color: var(--garnet); }
small.sp span { font-weight: 600; }
.sp-note { margin-top: 14px; font-size: 15px; line-height: 1.5; color: #3d3f44; }
.sp-note b { font-weight: 600; color: var(--garnet); }

/* Board history (Governance) */
.board-history .bh-head { margin-top: clamp(56px, 7vw, 96px); font-size: 22px; padding-bottom: 12px; border-bottom: 2px solid var(--graphite); }
.board-history .bh-head:first-of-type { border-bottom: 0; padding-bottom: 0; }
.chairs { list-style: none; display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 30px clamp(18px, 2.4vw, 36px); margin-top: 18px; }
.chairs li { display: flex; flex-direction: column; border-top: 2px solid var(--graphite); padding-top: 16px; }
.chairs li:last-child { border-top-color: var(--garnet); }
.chairs b { font-family: var(--display); font-weight: 500; font-size: clamp(21px, 1.9vw, 26px); line-height: 1.15; font-variation-settings: "opsz" 24; }
.chairs .rl { font-size: 14px; color: #5d6066; margin-top: 6px; }
.dir-list { list-style: none; }
.dir-list li { padding: 9px 0; border-bottom: 1px solid #ddd6c8; font-size: 16px; line-height: 1.4; break-inside: avoid; }
.dir-list .nm { color: var(--graphite); }
.dir-list .rl { display: block; font-size: 13.5px; color: var(--garnet); margin-top: 2px; }
.mem { color: var(--garnet); font-family: var(--display); margin-left: 3px; }
.note .mem { margin: 0 2px 0 0; }
.founding { display: grid; grid-template-columns: 1fr 2.3fr; gap: clamp(24px, 4vw, 64px); margin-top: clamp(56px, 7vw, 96px); padding: clamp(26px, 3.5vw, 46px); background: #fbf8f2; border: 1px solid #e4dccd; }
.board-history .founding h3 { font-size: clamp(24px, 2.4vw, 32px); }
.founding h3 span { display: block; font-style: italic; font-size: 17px; color: var(--garnet); margin-top: 10px; }
.founding .dir-list { columns: 2; column-gap: clamp(24px, 4vw, 56px); }
.all-directors { columns: 4; column-gap: clamp(24px, 3vw, 48px); margin-top: 6px; }
.board-history .note { margin-top: 36px; }
@media (max-width: 960px) {
  .chairs { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .founding { grid-template-columns: 1fr; }
  .all-directors { columns: 3; }
}
@media (max-width: 700px) { .all-directors { columns: 2; column-gap: 24px; } }
@media (max-width: 600px) { .chairs { grid-template-columns: 1fr 1fr; } }
@media (max-width: 430px) { .founding .dir-list { columns: 1; } .dir-list li { font-size: 15px; } }

/* Donor honor roll (Support) */
.inst-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 40px clamp(24px, 3vw, 48px); margin-top: clamp(48px, 6vw, 80px); }
.gratitude .inst-grid h3, .gratitude .roll-head { font-size: 21px; padding-bottom: 12px; border-bottom: 2px solid var(--graphite); }
.inst-grid ul { list-style: none; margin-top: 12px; }
.inst-grid li { font-size: 16px; line-height: 1.4; padding: 6px 0; color: #34363b; }
.gratitude .roll-head { margin-top: clamp(56px, 7vw, 96px); }
.roll { position: relative; overflow: hidden; margin-top: 22px; }
.honor-roll { list-style: none; margin-left: -1.25em; font-family: var(--display); font-size: clamp(17px, 1.45vw, 19.5px); line-height: 2.05; color: var(--graphite); font-variation-settings: "opsz" 18; }
.honor-roll li { display: inline; white-space: nowrap; }
.honor-roll li::before { content: ""; display: inline-block; width: 1.25em; height: .6em; vertical-align: .05em; background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath d='M4 0 8 4 4 8 0 4z' fill='%238a1c2a'/%3E%3C/svg%3E") no-repeat calc(50% - 2px) 50% / 6px 6px; }
.roll.clamped { max-height: 560px; }
.roll.clamped::after { content: ""; position: absolute; left: 0; right: 0; bottom: 0; height: 150px; background: linear-gradient(rgba(255, 255, 255, 0), #fff); }
.roll-more { margin-top: 18px; font: 500 15px var(--sans); padding: 12px 22px; border: 1px solid var(--graphite); background: none; color: var(--graphite); cursor: pointer; }
.roll-more:hover { background: var(--graphite); color: var(--white); }
@media (max-width: 1000px) { .inst-grid { grid-template-columns: 1fr 1fr; } }
@media (max-width: 560px) { .inst-grid { grid-template-columns: 1fr; gap: 32px; } .inst-grid li { padding: 4px 0; } }
.circle { margin-top: clamp(48px, 6vw, 80px); padding: clamp(28px, 4vw, 52px); background: var(--ivory); border-top: 3px solid var(--garnet); }
.gratitude .circle h3 { font-size: clamp(26px, 2.6vw, 34px); }
.circle ul { list-style: none; columns: 3; column-gap: clamp(28px, 4vw, 56px); margin-top: 20px; }
.circle li { font-family: var(--display); font-size: clamp(19px, 1.6vw, 22px); line-height: 1.3; padding: 11px 0; border-bottom: 1px solid #ddd6c8; break-inside: avoid; font-variation-settings: "opsz" 18; }
@media (max-width: 960px) { .circle ul { columns: 2; } }
@media (max-width: 600px) { .circle ul { columns: 1; } }

/* Theme line inside a stepped title: caps set a step smaller so the line holds */
.steps em.caps { font-size: .8em; letter-spacing: .01em; }
@media (max-width: 560px) { .steps em.caps { font-size: .66em; } }

/* Home: the anniversary line, set in capitals */
.hero .tagline { font-family: var(--display); color: var(--white); line-height: 1.2; margin-bottom: clamp(26px, 4vw, 44px); font-variation-settings: "opsz" 24; }
.hero .tagline span { display: block; font-size: clamp(14px, 1.35vw, 18px); letter-spacing: .26em; color: var(--silver); }
.hero .tagline b { display: block; font-weight: 500; font-size: clamp(22px, 2.5vw, 34px); letter-spacing: .07em; margin-top: 6px; }
@media (max-width: 960px) { .hero .tagline { text-align: center; } }

/* Home: Tea at The Terry, the afternoon before Opening Night */
.next .tea-note { margin-top: 30px; padding: 20px 0 0 20px; border-left: 2px solid var(--garnet); max-width: 520px; }
.next .tea-note .t { font-family: var(--sans); font-weight: 600; font-size: 12.5px; letter-spacing: .24em; text-transform: uppercase; color: var(--garnet); margin: 0 0 8px; }
.next .tea-note p { font-size: 16px; line-height: 1.55; color: #34363b; margin-top: 8px; }
.next .tea-note p b { font-family: var(--display); font-weight: 500; font-size: 22px; color: var(--graphite); }
.next .tea-note .text-link { margin-top: 12px; font-size: 15px; }

/* Come closer: one column on phones */
@media (max-width: 560px) {
  .ways { grid-template-columns: 1fr; }
  .way, .way + .way, .way:nth-child(even) { padding: 24px 0 14px; border-left: 0; }
  .way + .way { border-top: 1px solid #d9d2c5; }
}

/* Founder's Note with the tall portrait beside it */
.founder-grid { display: grid; grid-template-columns: minmax(240px, 340px) minmax(0, 720px); gap: clamp(40px, 6vw, 90px); justify-content: center; align-items: start; }
.founder-grid .founder-note { margin: 0; }
.founder-portrait { position: sticky; top: 48px; }
.founder-portrait img { width: 100%; height: auto; aspect-ratio: 3 / 5; object-fit: cover; }
@media (max-width: 900px) {
  .founder-grid { grid-template-columns: 1fr; }
  .founder-portrait { position: static; max-width: 420px; }
  .founder-portrait img { aspect-ratio: 4 / 5; object-position: 50% 0%; }
}
