:root {
  color-scheme: light;
  --surface: #fcfbfa;
  --ink: #211d29;
  --aubergine: #2a2339;
  --dark-muted: #d4cedb;
  --gutter: 40px;
  --font: -apple-system, BlinkMacSystemFont, "Segoe UI", "Noto Sans", sans-serif;
  font-family: var(--font);
  color: var(--ink);
  background: var(--paper);
  font-synthesis: none;
  text-rendering: optimizeLegibility;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; scroll-padding-top: 80px; }
body { margin: 0; min-width: 320px; font-size: 16px; line-height: 1.65; background: var(--paper); }
body, button, a { font-family: var(--font); }
a { color: inherit; text-decoration-thickness: 1px; text-underline-offset: 4px; }
button { color: inherit; }
button, summary, a { -webkit-tap-highlight-color: transparent; }
button:focus-visible, a:focus-visible, summary:focus-visible { outline: 2px solid var(--violet); outline-offset: 3px; }
img { display: block; max-width: 100%; }
h1, h2, h3, p, figure { margin-top: 0; }
h1, h2, h3 { line-height: 1.2; letter-spacing: -.025em; }
h1 { font-size: 40px; font-weight: 550; }
h2 { font-size: 28px; font-weight: 520; }
h3 { font-size: 18px; font-weight: 560; }
p { color: var(--muted); }
.page-width { width: min(var(--page), calc(100% - 2 * var(--gutter))); margin-inline: auto; }
.narrow-width { width: min(660px, calc(100% - 2 * var(--gutter))); margin-inline: auto; }
.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; }
.skip-link { position: fixed; z-index: 100; top: 8px; left: 8px; transform: translateY(-150%); padding: 10px 14px; background: var(--aubergine); color: #fff; border-radius: 8px; font-size: 14px; }
.skip-link:focus { transform: translateY(0); }
.eyebrow { margin: 0 0 14px; color: var(--violet); font-size: 12px; line-height: 1.5; font-weight: 650; letter-spacing: .11em; text-transform: uppercase; }
.section-head { max-width: 610px; }
.section-head h2 { margin: 0 0 10px; }
.section-head > p:last-child { margin-bottom: 0; font-size: 14px; }

/* Shared header and navigation */
.site-header { position: sticky; z-index: 30; top: 0; height: 56px; background: rgba(247,245,242,.96); border-bottom: 1px solid rgba(222,217,226,.9); backdrop-filter: blur(14px); }
.header-inner { height: 56px; margin-inline: auto; display: flex; align-items: center; justify-content: space-between; gap: 24px; }
.brand { display: inline-flex; gap: 4px; color: var(--ink); text-decoration: none; white-space: nowrap; line-height: 1.2; font-weight: 650; letter-spacing: -.035em; }
.desktop-nav { display: flex; align-items: center; justify-content: center; gap: clamp(16px, 2.2vw, 30px); margin-left: auto; }
.desktop-nav a, .mobile-nav a { color: #4e4855; text-decoration: none; font-size: 14px; line-height: 1.35; transition: color 140ms ease; }
.desktop-nav a:hover, .desktop-nav a[aria-current="page"], .mobile-nav a:hover, .mobile-nav a[aria-current="page"] { color: var(--violet); }
.header-actions { display: flex; align-items: center; gap: 12px; }
.mobile-menu { position: relative; }
.mobile-menu summary { list-style: none; cursor: pointer; place-items: center; }
.mobile-menu summary::-webkit-details-marker { display: none; }
.menu-icon { width: 20px; height: 16px; display: flex; flex-direction: column; justify-content: space-between; }
.menu-icon i { display: block; width: 20px; height: 1.5px; border-radius: 2px; background: var(--ink); transition: transform 160ms ease, width 160ms ease; }
.mobile-menu[open] .menu-icon i:first-child { transform: translateY(7px) rotate(45deg); }
.mobile-menu[open] .menu-icon i:last-child { transform: translateY(-7px) rotate(-45deg); }
.mobile-nav { position: absolute; top: 50px; right: 0; display: grid; gap: 2px; }
.mobile-nav > a { min-height: 44px; display: flex; align-items: center; padding: 0 12px; border-radius: 7px; }
.mobile-nav .mobile-nav-contact { margin-top: 6px; background: var(--lilac); color: var(--aubergine); justify-content: space-between; font-weight: 600; }

/* Home */
.hero { padding-top: 20px; }
.hero-copy .eyebrow { margin-bottom: 16px; }
.hero h1 { max-width: 470px; }
.hero-roles { color: #4e4855; }
.hero-lead { color: var(--muted); }
.hero-actions { display: flex; flex-wrap: wrap; align-items: center; }
.button { min-height: 44px; display: inline-flex; align-items: center; justify-content: center; gap: 16px; padding: 0 16px; border: 1px solid transparent; border-radius: 8px; text-decoration: none; font-size: 14px; font-weight: 580; transition: background 150ms ease, border-color 150ms ease, color 150ms ease; }
.button-primary { background: var(--aubergine); color: #fff; }
.button-primary:hover { background: #3b3150; }
.button-secondary { background: transparent; border-color: var(--line); color: var(--ink); }
.button-secondary:hover { background: #efebf1; border-color: #c9c1d0; }
.hero-photo { position: relative; margin: 0; }
.hero-photo img { background: #eeecea; }
.hero-photo figcaption { position: absolute; }
.home-recording { padding-top: 86px; padding-bottom: 68px; }
.home-recording-heading { display: flex; justify-content: space-between; gap: 20px; margin-bottom: 22px; }
.home-recording-heading .eyebrow { margin-bottom: 7px; }
.home-recording-heading h2 { margin: 0; }
.home-recording .media-card { margin-top: 0; }
.section-more { display: inline-flex; align-items: center; gap: 8px; margin-top: 18px; color: var(--violet); text-decoration: none; font-size: 14px; font-weight: 600; }
.section-more:hover, .text-link:hover { text-decoration: underline; }
.about-inner { display: grid; }
.about-inner h2 { margin: 0; }
.about-copy > p:first-child { margin: 0 0 16px; color: #4e4855; font-size: 16px; line-height: 1.7; }
.credential-line { margin: 0 0 20px; font-size: 13px; }
.credential-line span { color: #a39ba9; padding-inline: 4px; }
.text-link { display: inline-flex; align-items: center; gap: 8px; color: var(--violet); text-decoration: none; font-size: 14px; font-weight: 590; }
.link-arrow { display: inline-block; font-size: 13px; }
.home-projects { padding-top: 58px; padding-bottom: 64px; }
.home-projects .section-head { margin-bottom: 24px; }
.project-preview-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; }
.project-preview { display: flex; flex-direction: column; justify-content: space-between; gap: 18px; text-decoration: none; border: 1px solid transparent; }
.project-number { color: var(--violet); font-size: 12px; font-weight: 650; letter-spacing: .08em; }
.project-preview h3 { margin: 0 0 6px; }
.project-preview p { margin: 0; line-height: 1.5; }
.project-arrow { align-self: end; color: var(--violet); font-size: 16px; }
.section-end { margin-top: 18px; }
.home-concerts { padding: 48px 0 52px; }
.contact-band-inner { grid-template-columns: 1fr 1fr; }
.contact-band-copy .eyebrow { margin-bottom: 10px; }
.contact-band-copy h2 { max-width: 450px; margin: 0 0 12px; }
.contact-band-copy > p:not(.eyebrow) { max-width: 440px; margin: 0; font-size: 14px; }
.button-dark { margin-top: 18px; background: var(--aubergine); color: #fff; }
.button-dark:hover { background: #3b3150; }

/* Compact playable piano */
.piano-wrap { align-items: center; justify-content: flex-end; gap: 18px; }
.piano-board { position: relative; background: #fff; transform-origin: center; }
.piano-key { position: relative; padding: 0; cursor: pointer; border: 0; }
.piano-white { min-width: 0; height: 100%; }
.piano-white:first-child { border-radius: 4px 0 4px 4px; }
.piano-black { position: absolute; z-index: 2; top: 0; border-radius: 0 0 4px 4px; }
.piano-key:hover { background-color: #ede8f2; }
.piano-black:hover { background-color: #4c425d; }
.piano-key.is-playing { background-color: #dcd1e8; }
.piano-black.is-playing { background-color: #77688d; }
.piano-no-js { margin: 4px 0 0; color: #625c69; font-size: 12px; }

/* Inner page openings */
.page-intro .eyebrow { margin-bottom: 10px; }
.page-intro h1 { margin: 0 0 12px; font-size: 36px; font-weight: 530; letter-spacing: -.04em; }
.page-intro > p:not(.eyebrow) { max-width: 650px; margin: 0; font-size: 17px; }
.anchor-nav { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 22px; }
.anchor-nav a { min-height: 36px; display: inline-flex; align-items: center; padding: 0 12px; border: 1px solid var(--line); border-radius: 999px; color: #514a58; text-decoration: none; font-size: 13px; }
.anchor-nav a:hover { border-color: #bdb4c8; color: var(--violet); }

/* Biography */
.bio-opening { display: grid; grid-template-columns: .9fr 1.1fr; gap: 54px; align-items: center; padding-top: 12px; padding-bottom: 48px; }
.bio-photo { margin: 0; }
.bio-photo img { width: 100%; height: auto; aspect-ratio: 4 / 3; object-fit: cover; object-position: 68% 50%; }
.bio-opening-copy .eyebrow { margin-bottom: 10px; }
.bio-short { color: #423c49; font-size: 17px; line-height: 1.65; }
.bio-anchors { display: flex; gap: 20px; flex-wrap: wrap; }
.reading-section { padding-top: 16px; padding-bottom: 62px; }
.reading-column { max-width: 660px; margin-inline: auto; }
.reading-column h2 { margin: 0 0 20px; }
.reading-column p { margin: 0 0 16px; font-size: 16px; line-height: 1.75; color: #504a56; }
.education-section { padding: 52px 0 58px; scroll-margin-top: 80px; }
.education-section .eyebrow { margin-bottom: 8px; }
.education-section h2 { margin: 0 0 18px; }
.education-list { list-style: none; padding: 0; margin: 0; border-top: 1px solid var(--line); }
.education-row { min-height: 76px; display: flex; align-items: center; justify-content: space-between; gap: 20px; padding: 12px 0; border-bottom: 1px solid var(--line); }
.education-row h3 { margin: 0 0 3px; font-size: 16px; letter-spacing: -.015em; }
.education-row p { margin: 0; font-size: 13px; }
.education-row > span { color: #514a58; font-size: 13px; text-align: right; }
.teaching-section { padding-top: 58px; padding-bottom: 62px; scroll-margin-top: 80px; }
.teaching-section .narrow-width > p:not(.eyebrow) { margin-bottom: 18px; }
.teaching-section h2, .press-section h2 { margin: 0 0 12px; }
.editorial-rule { width: 38px; height: 2px; margin-bottom: 20px; background: #9182a0; }
.press-section { padding: 52px 0 58px; scroll-margin-top: 80px; }
.press-section .narrow-width > p { margin-bottom: 18px; }
.press-links { display: flex; flex-wrap: wrap; gap: 10px 24px; margin: 0 0 18px; }

/* Media records and lazy embeds */
.media-page { padding-bottom: 68px; }
.media-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 18px; align-items: start; }
.media-card { min-width: 0; overflow: hidden; border: 1px solid var(--line); border-radius: 11px; background: var(--surface); }
.media-card--featured { grid-column: 1 / -1; display: grid; grid-template-columns: 1.02fr .98fr; }
.media-poster { position: relative; min-height: 0; aspect-ratio: 16 / 9; overflow: hidden; background: #e8e4eb; }
.play-button { position: absolute; z-index: 2; left: 50%; top: 50%; transform: translate(-50%,-50%); min-height: 44px; display: flex; align-items: center; gap: 9px; padding: 0 15px; border: 1px solid rgba(255,255,255,.62); border-radius: 999px; background: rgba(252,251,250,.97); color: var(--ink); cursor: pointer; font-size: 13px; font-weight: 600; box-shadow: 0 4px 14px rgba(0,0,0,.14); }
.play-button:hover { background: #fff; }
.play-glyph { width: 0; height: 0; border-top: 5px solid transparent; border-bottom: 5px solid transparent; border-left: 7px solid var(--violet); }
.media-copy { padding: 18px 20px 20px; }
.media-kicker { display: flex; align-items: center; gap: 7px; margin-bottom: 7px; color: #696270; font-size: 12px; }
.media-copy h3 { margin: 0 0 5px; }
.media-subtitle { margin: 0 0 8px; font-size: 14px; }
.media-credits { margin: 0; color: #4f4956; font-size: 13px; }
.media-actions { display: flex; align-items: center; gap: 18px; flex-wrap: wrap; margin-top: 14px; }
.player-slot[hidden], .media-poster[hidden] { display: none; }
.player-slot { position: relative; grid-column: 1 / -1; padding: 14px; background: #f0edf2; }
.player-slot iframe { width: 100%; aspect-ratio: 16 / 9; display: block; border: 0; background: #211d29; }
.player-status { margin: 0 0 8px; font-size: 13px; }
.player-close { min-height: 40px; margin-top: 10px; padding: 0 12px; display:inline-flex;align-items:center;justify-content:center;gap:8px;border: 1px solid var(--line); border-radius: 7px; background: var(--surface); cursor: pointer; font-size: 13px; }
.player-close-icon{display:block;flex:none;width:16px;height:16px}
.media-attribution { margin: 18px 0 0; font-size: 13px; }

/* Projects */
.project-list { padding-bottom: 66px; }
.project-detail { scroll-margin-top: 80px; display: grid; grid-template-columns: 48px minmax(0, 1fr) minmax(130px, .34fr); gap: 25px; align-items: start; padding: 28px 0 32px; border-top: 1px solid var(--line); }
.project-detail:last-child { border-bottom: 1px solid var(--line); }
.project-detail-index { padding-top: 3px; color: var(--violet); font-size: 13px; font-weight: 650; }
.project-detail-copy .eyebrow { margin-bottom: 7px; }
.project-detail-copy h2 { margin: 0 0 8px; }
.project-summary { margin: 0 0 14px; color: #4e4855; font-size: 15px; }
.project-detail-copy > p:not(.eyebrow):not(.project-summary) { max-width: 670px; margin: 0; font-size: 14px; }
.project-detail-actions { display: flex; flex-wrap: wrap; gap: 10px 22px; margin-top: 16px; }
.project-side-note { min-height: 112px; padding: 14px; display: flex; flex-direction: column; justify-content: space-between; align-items: flex-start; border-radius: 9px; background: #f0edf2; color: #625b6c; }
.project-detail-2 .project-side-note { background: #f2efeb; }
.project-detail-3 .project-side-note { background: #eeeaf2; }
.project-detail-4 .project-side-note { background: #efede9; }
.side-note-mark { color: #746783; font-size: 27px; letter-spacing: -.05em; }
.project-side-note > span:last-child { font-size: 12px; letter-spacing: .1em; text-transform: uppercase; }

/* Concerts */
.upcoming-section { padding: 45px 0 48px; }
.upcoming-section .section-head { margin-bottom: 18px; }
.archive-section { padding-top: 48px; padding-bottom: 70px; }
.archive-heading { display: flex; justify-content: space-between; margin-bottom: 18px; }
.archive-heading .section-head { max-width: 520px; }
.archive-heading .section-head .eyebrow { margin-bottom: 7px; }
.concert-list { border-top: 1px solid var(--line); }
.concert-row { min-height: 110px; padding: 17px 0; display: grid; grid-template-columns: 175px minmax(0,1fr) auto; gap: 22px; align-items: center; border-bottom: 1px solid var(--line); }
.concert-date { display: grid; gap: 8px; color: #4c4653; font-size: 13px; }
.status-pill { justify-self: start; padding: 3px 8px; border: 1px solid #d5cedb; border-radius: 999px; color: #625a6b; font-size: 12px; letter-spacing: .07em; }
.concert-details h3 { margin: 0 0 4px; font-size: 16px; }
.concert-details p { margin: 0; font-size: 13px; }
.concert-details .concert-venue { margin-top: 3px; color: #635c68; }
.concert-source { white-space: nowrap; }

/* Contact, privacy and 404 */
.contact-page { display: grid; grid-template-columns: minmax(0, 1.4fr) minmax(260px, .6fr); gap: 54px; padding-top: 12px; padding-bottom: 72px; }
.contact-main { padding: 28px; border-radius: 11px; }
.contact-main h2 { margin: 0 0 12px; }
.contact-main > p:not(.eyebrow) { max-width: 490px; margin: 0; font-size: 14px; }
.contact-main .button { margin-top: 22px; }
.contact-aside { display: flex; flex-direction: column; justify-content: space-between; gap: 30px; padding: 8px 0; }
.contact-aside .eyebrow { margin-bottom: 7px; }
.contact-aside p:not(.eyebrow) { margin: 0 0 12px; font-size: 14px; }
.contact-social-note { padding-top: 16px; border-top: 1px solid var(--line); }
.privacy-page { padding-top: 8px; padding-bottom: 76px; }
.privacy-page section { padding: 18px 0; border-top: 1px solid var(--line); }
.privacy-page section h2 { margin: 0 0 8px; font-size: 18px; }
.privacy-page section p { margin: 0; font-size: 14px; }
.privacy-provider-links { display: flex; flex-wrap: wrap; gap: 14px 24px; padding-top: 14px; border-top: 1px solid var(--line); }
.privacy-provider-links a { color: var(--violet); font-size: 14px; }
.not-found { min-height: 58vh; display: flex; flex-direction: column; align-items: flex-start; justify-content: center; padding-top: 50px; padding-bottom: 70px; }
.not-found-index { margin-bottom: 12px; color: #7d6a8a; font-size: 14px; letter-spacing: .12em; }
.not-found .eyebrow { margin-bottom: 7px; }
.not-found h1 { margin: 0 0 12px; font-size: 36px; }
.not-found > p:not(.eyebrow) { margin: 0; }
.not-found .hero-actions { margin-top: 20px; }

/* Footer */
.site-footer { color: #f7f3fa; }
.footer-inner { width: min(var(--header), calc(100% - 2 * var(--gutter))); margin-inline: auto; padding: 38px 0 22px; display: grid; grid-template-columns: 1.2fr .8fr .8fr; column-gap: 46px; row-gap: 30px; }
.footer-brand { display: inline-block; margin-bottom: 7px; color: #fff; text-decoration: none; font-size: 17px; font-weight: 580; letter-spacing: -.02em; }
.footer-identity p { margin: 0 0 5px; color: #f5f0f8; font-size: 13px; }
.footer-identity > span { color: var(--dark-muted); font-size: 12px; }
.footer-column h2 { margin: 2px 0 10px; color: #d8cee1; font-size: 12px; line-height: 1.5; font-weight: 650; letter-spacing: .07em; text-transform: uppercase; }
.footer-column .footer-subheading { margin-top: 18px; }
.footer-column nav { display: grid; grid-template-columns: 1fr 1fr; gap: 8px 12px; }
.footer-column a { width: fit-content; color: #f5f0f8; text-decoration: none; font-size: 13px; }
.footer-column a:hover, .footer-colophon a:hover { text-decoration: underline; text-underline-offset: 3px; }
.footer-social { align-items: center; }
.footer-colophon { grid-column: 1 / -1; padding-top: 17px; display: flex; justify-content: space-between; gap: 16px; border-top: 1px solid rgba(230,221,239,.24); color: #cec6d5; font-size: 12px; }
.footer-colophon a { color: #f5f0f8; text-decoration: none; }

@media (max-width: 1024px) {
  :root { --gutter: 28px; }
  .desktop-nav { display: none; }
  .header-actions { margin-left: auto; }
  .mobile-menu { display: block; }
  .hero { grid-template-columns: .92fr 1.08fr; gap: 34px; }
  .about-inner { gap: 44px; }
  .footer-inner { column-gap: 28px; }
}

@media (max-width: 700px) {
  :root { --gutter: 20px; }
  body { font-size: 16px; }
  h2 { font-size: 24px; }
  .hero { display: flex; flex-direction: column; align-items: stretch; gap: 24px; padding-top: 14px; }
  .hero-copy { padding: 10px 0 0; }
  .hero-copy .eyebrow { margin-bottom: 10px; }
  .hero h1 { margin-bottom: 8px; font-size: 32px; }
  .hero-roles { margin-bottom: 14px; font-size: 14px; }
  .hero-lead { max-width: 560px; font-size: 16px; }
  .hero-actions { margin-top: 18px; }
  .hero-photo { width: 100%; }
  .hero-photo img { aspect-ratio: 4 / 3; }
  .hero-photo figcaption { bottom: -21px; font-size: 12px; }
  .home-recording { padding-top: 66px; padding-bottom: 44px; }
  .home-recording-heading { display: block; margin-bottom: 16px; }
  .home-recording-heading h2 { font-size: 24px; }
  .home-about { padding: 40px 0; }
  .about-inner { display: block; }
  .about-inner h2 { margin-bottom: 16px; }
  .about-copy > p:first-child { font-size: 16px; }
  .credential-line { line-height: 1.8; }
  .home-projects { padding-top: 42px; padding-bottom: 44px; }
  .project-preview-grid { grid-template-columns: 1fr; gap: 9px; }
  .project-preview { min-height: 112px; padding: 14px 16px; display: grid; grid-template-columns: 32px 1fr 18px; align-items: center; gap: 10px; }
  .project-preview > div { grid-column: 2; grid-row: 1; }
  .project-preview .project-number { grid-column: 1; grid-row: 1; align-self: start; }
  .project-preview h3 { font-size: 16px; }
  .project-preview p { font-size: 13px; }
  .project-arrow { grid-column: 3; grid-row: 1; align-self: start; }
  .home-concerts { padding: 34px 0 38px; }
  .contact-band { padding: 36px 0 31px; }
  .contact-band-inner { display: block; }
  .contact-band-copy h2 { font-size: 24px; }
  .piano-wrap { justify-content: flex-start; gap: 12px; margin-top: 34px; }
  .mini-piano { max-width: 320px; }
  .piano-board { height: 132px; }
  .page-intro { padding-top: 20px; padding-bottom: 24px; }
  .page-intro h1 { font-size: 30px; }
  .page-intro > p:not(.eyebrow) { font-size: 16px; }
  .anchor-nav { gap: 6px; margin-top: 16px; }
  .anchor-nav a { min-height: 36px; padding-inline: 10px; font-size: 12px; }
  .bio-opening { display: flex; flex-direction: column; align-items: stretch; gap: 21px; padding-top: 4px; padding-bottom: 34px; }
  .bio-photo img { aspect-ratio: 4 / 3; }
  .bio-short { font-size: 16px; }
  .reading-section { padding-top: 8px; padding-bottom: 42px; }
  .reading-column h2 { font-size: 23px; }
  .reading-column p { font-size: 16px; }
  .education-section, .press-section { padding: 38px 0 42px; }
  .education-row { align-items: flex-start; min-height: 82px; gap: 12px; }
  .education-row h3 { max-width: 210px; font-size: 14px; }
  .education-row p, .education-row > span { font-size: 12px; }
  .education-row > span { max-width: 126px; padding-top: 2px; }
  .teaching-section { padding-top: 40px; padding-bottom: 44px; }
  .media-page { padding-bottom: 44px; }
  .media-grid { grid-template-columns: 1fr; gap: 12px; }
  .media-card--featured { display: block; grid-column: auto; }
  .media-copy { padding: 15px 15px 17px; }
  .media-copy h3 { font-size: 17px; }
  .media-actions { gap: 12px; }
  .media-attribution { font-size: 12px; }
  .project-list { padding-bottom: 42px; }
  .project-detail { grid-template-columns: 30px minmax(0, 1fr); gap: 14px; padding: 23px 0 25px; }
  .project-detail-copy h2 { font-size: 22px; }
  .project-side-note { display: none; }
  .project-detail-copy > p:not(.eyebrow):not(.project-summary) { font-size: 14px; }
  .upcoming-section { padding: 35px 0 38px; }
  .archive-section { padding-top: 36px; padding-bottom: 46px; }
  .concert-row { grid-template-columns: 1fr auto; gap: 8px 14px; align-items: start; padding: 15px 0; }
  .concert-date { grid-column: 1; grid-row: 1; display: flex; align-items: center; gap: 10px; flex-wrap: wrap; }
  .concert-details { grid-column: 1; grid-row: 2; }
  .concert-source { grid-column: 2; grid-row: 2; align-self: end; font-size: 12px; }
  .contact-page { display: block; padding-top: 3px; padding-bottom: 48px; }
  .contact-main { padding: 21px 19px; }
  .contact-aside { padding-top: 28px; }
  .privacy-page { padding-bottom: 48px; }
  .not-found { min-height: 52vh; }
  .not-found h1 { font-size: 30px; }
  .footer-inner { grid-template-columns: 1fr 1fr; gap: 24px 18px; padding-top: 30px; }
  .footer-identity { grid-column: 1 / -1; }
  .footer-column nav { grid-template-columns: 1fr; }
  .footer-colophon { padding-top: 14px; }
}

@media (max-width: 380px) {
  :root { --gutter: 16px; }
  .header-inner { gap: 8px; }
  .brand { gap: 3px; font-size: 15px; }
  .header-actions { gap: 6px; }
  .hero h1 { font-size: 30px; }
  .button { gap: 10px; padding-inline: 12px; }
  .education-row { gap: 8px; }
  .education-row h3 { max-width: 176px; }
  .education-row > span { max-width: 112px; }
  .concert-row { grid-template-columns: 1fr; }
  .concert-source { grid-column: 1; grid-row: 3; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { scroll-behavior: auto !important; transition-duration: .01ms !important; animation-duration: .01ms !important; animation-iteration-count: 1 !important; }
}

/* Artist edition: a continuous, full-width composition from the recital site. */
:root { --paper:#f8f6f4; --lilac:#eeebf7; --line:#ddd7e5; }
.site-header, .header-inner { height:64px; }
.header-inner { width:min(var(--header),calc(100% - 60px)); }
.mobile-menu { display:block; }
.brand { font-size:17px; }
.hero { width:100%; max-width:1600px; margin:auto; min-height:550px; padding:0; gap:0; display:grid; grid-template-columns:minmax(0,46%) minmax(0,54%); align-items:stretch; }
.hero-copy { padding:42px 5vw 0 max(30px,calc((100vw - 1320px)/2)); display:flex; flex-direction:column; }
.hero-copy .eyebrow { display:flex; align-items:center; gap:12px; margin:0; font-size:12px; font-weight:550; text-transform:none; }
.hero-copy .eyebrow::before { content:''; width:26px; height:1px; background:var(--violet); }
.hero-roles { margin:36px 0 10px; }
.hero h1 { letter-spacing:-.055em; line-height:1.04; margin:0; font-weight:520; }
.hero h1 span, .hero h1 em { display:block; }
.hero h1 em { color:var(--violet); font-style:normal; margin-top:6px; }
.hero-lead { margin:30px 0 0; font-size:17px; max-width:450px; line-height:1.65; }
.hero-actions { gap:26px; margin-top:28px; }
.hero .button { min-height:46px; padding-inline:20px; }
.hero-foot { display:flex; align-items:center; gap:22px; margin-top:auto; padding:40px 0; }
.hero-foot span { font-size:12px; color:#6e6578; letter-spacing:.08em; font-weight:550; }
.hero-foot i { height:24px; width:1px; background:#d5cedd; }
.hero-photo { min-height:550px; overflow:hidden; background:#e5e3e0; }
.hero-photo img { position:absolute; inset:0; width:100%; height:100%; aspect-ratio:auto; object-fit:cover; object-position:60% center; }
.hero-photo::after { content:''; position:absolute; inset:0; background:linear-gradient(90deg,var(--paper),transparent 16%); pointer-events:none; }
.hero-photo figcaption { right:30px; bottom:26px; z-index:1; color:white; font-size:12px; letter-spacing:.09em; text-shadow:0 1px 8px #000a; }
.hero-photo figcaption span { color:white; opacity:.8; }
.quote-band { background:#eeedf7; border-block:1px solid #ddd8ed; }
.quote-band>.page-width { min-height:118px; display:flex; align-items:center; justify-content:space-between; gap:24px; }
.quote-band p { margin:0; padding-left:22px; border-left:2px solid #c39476; font-size:21px; font-weight:500; line-height:1.5; color:var(--ink); letter-spacing:-.025em; }
.quote-band span { font-size:12px; color:#67578d; letter-spacing:.1em; white-space:nowrap; }
.home-about { position:relative; }
.about-inner h2 { font-size:30px; }
.credential-line { border-top:1px solid #ddd4df; padding-top:18px; }
.home-recording { position:relative; background:linear-gradient(135deg,#ece7f5,#f6f3f8); padding:60px 0; border-block:1px solid #ddd6e9; }
.home-recording .media-card { box-shadow:0 14px 38px #43335409; }
.piano-section { position:relative; background:#e9e1d9; padding:62px 0; overflow:hidden; }
.piano-section::after { content:''; position:absolute; width:600px; height:600px; border:1px solid #ccbba6; border-radius:50%; right:-230px; top:-250px; pointer-events:none; }
.piano-section-inner { display:grid; grid-template-columns:.75fr 1.25fr; gap:72px; align-items:center; position:relative; z-index:1; }
.piano-section-copy h2 { max-width:300px; font-size:30px; margin:0 0 14px; }
.piano-section-copy>p:not(.eyebrow) { font-size:15px; max-width:310px; margin:0; }
.piano-wrap { display:block; margin:0; }
.mini-piano { width:100%; max-width:none; background:#f8f5f0; border:1px solid #d2c3b7; border-radius:13px; padding:18px; box-shadow:0 14px 32px #6d4c3510; }
.piano-toolbar { display:flex; justify-content:space-between; align-items:center; margin-bottom:14px; font-size:12px; color:#776652; letter-spacing:.1em; }
.piano-instrument { font-weight:650; }
.piano-board { width:100%; height:162px; display:flex; transform:none; border:1px solid #b8afa9; border-top:7px solid #332a3c; border-radius:5px; touch-action:none; box-shadow:0 5px 10px #4c392513; }
.piano-white { flex:1; background:linear-gradient(90deg,#f7f5f1,#fff); border-right:1px solid #cfc8c2; border-radius:0 0 3px 3px; box-shadow:inset 0 -5px #e7e0d7; }
.piano-white:nth-child(4) { border-right:1px solid #cfc8c2; border-radius:0 0 3px 3px; }
.piano-white:last-child { border-right:0; }
.piano-black { left:calc(var(--position)*12.5% - 4%); width:8%; height:61%; background:linear-gradient(90deg,#231e29,#43384d,#241f2c); box-shadow:inset 0 -5px #16131c,0 3px 3px #0003; }
.piano-key span { position:absolute; bottom:13px; inset-inline:0; font-size:12px; font-weight:600; color:#887c70; pointer-events:none; }
.piano-black span { bottom:9px; color:#ddd2ec; }
.piano-white.is-playing { background:#e1d5f1; box-shadow:inset 0 -2px #b59dce; }
.piano-black.is-playing { background:#74599b; box-shadow:inset 0 -2px #47335f; }
.piano-key { transition:background-color 70ms,box-shadow 70ms; user-select:none; }
.piano-controls { display:flex; align-items:center; flex-wrap:wrap; gap:10px 16px; margin-top:13px; }
.piano-pedal { border:1px solid #d4c8bd; border-radius:7px; background:transparent; min-height:36px; padding:0 10px; font-size:12px; display:flex; align-items:center; gap:7px; cursor:pointer; }
.pedal-indicator { height:5px; width:5px; border-radius:50%; background:#ad9c8f; }
.piano-pedal[aria-pressed="true"] { background:#e4d9ed; border-color:#bfa9d0; color:#4f386c; }
.piano-pedal[aria-pressed="true"] .pedal-indicator { background:#70519a; }
.piano-volume { display:flex; align-items:center; gap:8px; font-size:12px; color:#6c5d52; }
.piano-volume input { width:75px; accent-color:#806598; min-height:36px; margin:0; }
.piano-status { font-size:12px; color:#765c86; margin-left:auto; }
.home-projects { padding-block:64px; position:relative; }
.project-preview { min-height:204px; border-color:#ddd2e5; padding:22px; border-radius:11px; }
.project-tone-1 { background:#eae2f2; }
.project-tone-2 { background:#ece1d6; border-color:#dfccb9; }
.project-tone-3 { background:#e2e7ed; border-color:#ced8e3; }
.project-preview h3 { font-size:18px; }
.project-preview p { font-size:14px; }
.home-concerts { background:#eeedf7; border-top:1px solid #ded7ed; padding-block:48px; }
.contact-band { background:linear-gradient(110deg,#ddd1e6,#e9e1ef); padding:52px 0; overflow:hidden; }
.contact-band-inner { display:flex; justify-content:space-between; gap:40px; position:relative; }
.contact-band-copy { max-width:550px; }
.contact-band-copy>p:not(.eyebrow) { font-size:15px; }
.contact-band .button { margin:0; flex-shrink:0; position:relative; z-index:1; }
.contact-lines { position:absolute; width:240px; height:220px; right:-180px; top:-65px; transform:rotate(-25deg); pointer-events:none; }
.contact-lines i { display:block; height:100%; border-left:1px solid #bda7cf; position:absolute; left:20px; }
.contact-lines i:nth-child(2) { left:80px; }.contact-lines i:nth-child(3) { left:140px; }
.page-intro { padding-top:38px; padding-bottom:36px; }
main:has(>.page-intro) { background:linear-gradient(155deg,#f8f6f4 20%,#f0ecf5 75%,#ede4dc); }
.section-soft { background:#ebe7f1; }
.contact-main { border-color:#d8cbe3; }
.site-footer { background:#33293f; }
.footer-inner { padding-top:44px; }
.footer-identity>span { font-size:13px; }
.project-detail { padding-inline:18px; border-radius:10px; margin-bottom:14px; border:1px solid #ddd4e5; }.project-detail-2 { background:#f0e5da; }.project-detail-3 { background:#e9edf2; }.project-detail-4 { background:#e8e3ef; }
@media(min-width:701px) and (max-width:1024px) {
 .hero { grid-template-columns:46% 54%; gap:0; }
 .hero-copy { padding-left:28px; padding-right:24px; }.hero h1 { font-size:44px; }.hero-lead { font-size:16px; }
 .piano-section-inner { gap:32px; grid-template-columns:.7fr 1.3fr; }
}
@media(max-width:700px) {
 :root { --gutter:20px; }.header-inner { width:calc(100% - 32px); }
 .hero { display:flex; flex-direction:column; min-height:0; gap:0; padding:0; }
 .hero-copy { padding:26px 20px 0; }.hero-copy .eyebrow { margin:0; }.hero-roles { margin:22px 0 10px; }
 .hero h1 { margin:0; }.hero-lead { font-size:16px; margin-top:20px; max-width:520px; }
 .hero-actions { margin-top:22px; }.hero-foot { padding:26px 0 20px; }
 .hero-photo { width:100%; height:300px; min-height:0; }
 .hero-photo img { position:absolute; height:100%; aspect-ratio:auto; object-position:60% center; }
 .hero-photo::after { background:linear-gradient(180deg,var(--paper),transparent 20%); }
 .hero-photo figcaption { right:20px; bottom:16px; font-size:12px; }
 .quote-band>.page-width { min-height:110px; gap:16px; }.quote-band p { font-size:18px; padding-left:16px; }.quote-band span { display:none; }
 .home-about { padding:40px 0; }.about-inner h2 { margin-bottom:0; }.about-copy { padding:0; }
 .home-recording { padding:40px 0; }.home-recording-heading { display:block; }
 .piano-section { padding:40px 0; }.piano-section-inner { display:block; }.piano-section-copy h2 { max-width:420px; font-size:25px; }
 .piano-section-copy>p:not(.eyebrow) { max-width:460px; }
 .piano-wrap { margin-top:24px; }.mini-piano { padding:12px; }.piano-board { height:142px; }
 .piano-pedal { min-height:44px; }.piano-volume input { min-height:44px; }.piano-status { display:block; flex-basis:100%; margin:0; }
 .home-projects { padding-block:42px; }.project-preview { min-height:122px; padding:16px; }.project-preview p { font-size:14px; }
 .contact-band { padding:38px 0; }.contact-band-inner { flex-direction:column; gap:20px; }
 .page-intro { padding-top:28px; }.project-detail { padding:22px 14px; }
 .footer-column a { display:inline-flex; align-items:center; min-height:34px; }
}
@media(max-width:380px) {.hero-foot span { letter-spacing:.02em; }.hero-photo { height:265px; }.piano-controls { gap:5px 10px; }.piano-volume input { width:64px; } }

/* Final readability and interaction pass. */
.site-header,.header-inner { height:56px; }
.hero-copy { padding-top:24px; }
.hero h1 { font-size:42px; }
.hero-roles { font-size:14px; }
.piano-pedal,.piano-volume { font-size:14px; }
.contact-band-inner { align-items:center; }
.piano-key:focus-visible { outline:2px solid #705bd3; outline-offset:-3px; z-index:4; }
@media(max-width:700px) {
 .site-header,.header-inner { height:60px; }
 .hero-copy { padding-top:24px; }
 .hero h1 { font-size:36px; }
 .hero-actions { gap:16px; }
 .piano-section-copy>p:not(.eyebrow),.contact-band-copy>p:not(.eyebrow) { font-size:16px; }
 .contact-band-inner { align-items:flex-start; }
}
@media(max-width:380px) { .hero h1 { font-size:34px; } }
/* Music-led biography, repertoire and direct-contact edition. */
.about-inner h2 { max-width:430px; }
.bio-piano .mini-piano { padding:14px; background:linear-gradient(145deg,#fcfaf6,#eee8f2); border-color:#d9cde2; box-shadow:0 10px 30px #4f3b6008; }
.bio-piano .piano-board { height:132px; }
.bio-piano .piano-wrap { margin:0; }
.bio-piano .piano-toolbar { justify-content:flex-start; gap:8px; margin-bottom:12px; }
.piano-natural { color:#ad9280; font-size:27px; line-height:1; }
.piano-range { margin-left:auto; }
.bio-piano .piano-controls { gap:8px 12px; }
.about-copy { padding-top:0; }
.repertoire-section .piano-section-inner { grid-template-columns:.8fr 1.2fr; gap:80px; }
.repertoire-section .piano-section-copy h2 { max-width:370px; }
.repertoire-section .piano-section-copy>p { max-width:350px; }
.score-flourish { position:relative; width:170px; height:52px; margin-top:25px; color:#ad9280; }
.score-flourish span { position:absolute; left:20px; top:-10px; font-size:46px; line-height:1.3; }
.score-flourish i { position:absolute; left:0; width:100%; height:1px; background:#bca594; opacity:.4; }
.score-flourish i:nth-of-type(1){top:5px}.score-flourish i:nth-of-type(2){top:13px}.score-flourish i:nth-of-type(3){top:21px}.score-flourish i:nth-of-type(4){top:29px}.score-flourish i:nth-of-type(5){top:37px}
.repertoire-list { border-top:1px solid #ccb9a7; }
.repertoire-row { display:grid; grid-template-columns:32px 1fr 24px; gap:14px; align-items:center; text-decoration:none; padding:24px 12px; border-bottom:1px solid #ccb9a7; transition:background 180ms; }
.repertoire-row:hover { background:#ffffff40; }
.repertoire-index { color:#745a48; font-size:12px; font-weight:600; }
.repertoire-row h3 { margin:0 0 5px; font-size:20px; font-weight:500; }
.repertoire-row p { margin:0; font-size:14px; color:#706152; }
.repertoire-arrow { color:#7a5d8f; font-size:20px; }
.mobile-menu summary { width:auto; min-width:95px; height:42px; gap:10px; padding:0 12px; display:flex; border:0; background:transparent; border-radius:7px; }
.mobile-menu summary:hover { background:#eae4f1; }
.menu-visible { font-size:13px; font-weight:550; }
.music-menu-icon { position:relative; width:24px; height:24px; display:block; color:#63516d; }
.music-menu-icon i { position:absolute; left:0; width:24px; height:1px; background:currentColor; transition:transform 180ms,opacity 180ms,top 180ms; }
.music-menu-icon i:nth-child(1){top:4px}.music-menu-icon i:nth-child(2){top:8px}.music-menu-icon i:nth-child(3){top:12px}.music-menu-icon i:nth-child(4){top:16px}.music-menu-icon i:nth-child(5){top:20px}
.music-menu-icon b { position:absolute; width:6px; height:5px; border-radius:50%; left:13px; top:13px; background:currentColor; transform:rotate(-20deg); transition:opacity 180ms; }
.music-menu-icon b::after { content:''; width:1.5px; height:12px; background:currentColor; position:absolute; right:0; bottom:2px; transform:rotate(20deg); }
.mobile-menu[open] .music-menu-icon i:nth-child(1) { top:12px; transform:rotate(45deg); }
.mobile-menu[open] .music-menu-icon i:nth-child(5) { top:12px; transform:rotate(-45deg); }
.mobile-menu[open] .music-menu-icon i:nth-child(2),.mobile-menu[open] .music-menu-icon i:nth-child(3),.mobile-menu[open] .music-menu-icon i:nth-child(4),.mobile-menu[open] .music-menu-icon b { opacity:0; }
.mobile-nav { padding:12px; background:linear-gradient(140deg,#f5f0fa,#f0e8de); border:1px solid #d5c7df; border-radius:12px; box-shadow:0 16px 40px #30233e1c; }
.mobile-nav>a { min-height:46px; border-bottom:1px solid #d9cede80; border-radius:0; }
.mobile-nav>a:hover { background:#e9dff0; }
.mobile-nav>a:last-child { border-bottom:0; border-radius:6px; }
.contact-main { position:relative; overflow:hidden; background:linear-gradient(145deg,#e8def2,#f2edf6); }
.contact-main>p:not(.eyebrow) { max-width:420px; }
.contact-details { margin-top:28px; position:relative; z-index:1; }
.contact-detail { border-top:1px solid #ccbdd8; padding:18px 0; }
.contact-detail-label { display:block; font-size:12px; text-transform:uppercase; letter-spacing:.1em; font-weight:650; color:#725783; margin-bottom:7px; }
.contact-detail a { min-height:44px; display:inline-flex; align-items:center; gap:14px; font-size:17px; text-decoration:none; word-break:break-word; }
.contact-detail a:hover { color:var(--violet); }
.contact-score { position:absolute; right:-20px; bottom:-8px; width:190px; height:65px; transform:rotate(-12deg); opacity:.26; pointer-events:none; }
.contact-score i { height:1px; background:#987aa8; display:block; margin-top:10px; }
.contact-score b { position:absolute; left:120px; top:-19px; font-size:68px; font-weight:400; }
.contact-social-note h2 { font-size:18px; margin:0 0 8px; }
.social-channels { display:grid; gap:8px; }
.social-channel { min-height:48px; display:flex; align-items:center; justify-content:space-between; gap:12px; padding:12px 14px; border-radius:8px; text-decoration:none; font-size:14px; background:#ebe3f3; border:1px solid #dacee3; }
.social-channel-instagram { background:#eee2ed; border-color:#dfcddc; }
.social-channel-facebook { background:#e3e8f2; border-color:#cfd9e9; }
.social-channel:hover { filter:brightness(.98); }
.footer-social { min-height:38px; display:inline-flex; gap:8px; margin-right:16px; }
@media(max-width:1024px) { .about-inner { gap:32px; }.repertoire-section .piano-section-inner { gap:36px; } }
@media(max-width:700px) {
 .about-inner { display:flex; flex-direction:column; gap:28px; align-items:stretch; }
 .about-inner h2 { font-size:25px; }
 .bio-piano { margin-top:20px; }.bio-piano .piano-board { height:124px; }
 .bio-piano .piano-controls { gap:7px 10px; }.bio-piano .mini-piano { padding:12px; }
 .repertoire-section .piano-section-inner { display:block; }.repertoire-list { margin-top:28px; }
 .repertoire-row { padding:20px 4px; }.repertoire-row h3 { font-size:18px; }
 .score-flourish { display:none; }
 .mobile-menu summary { min-width:90px; min-height:44px; padding-inline:8px; }
 .header-actions { gap:4px; }
 .brand { font-size:14px; }.header-inner { gap:6px; }
 .contact-detail { padding:17px 0; }
 .social-channel { min-height:48px; }
}

/* Biography extensions: compact editorial rhythm */
.appointments-section { padding-top: 66px; padding-bottom: 70px; }
.appointments-intro { max-width: 580px; margin: 0 0 22px; font-size: 15px; }
.appointments-list { margin-top: 20px; }
.appointment-row > span { max-width: 220px; text-align: right; }
.recognition-section { padding: 58px 0 62px; }
.recognition-section p { max-width: 650px; font-size: 15px; line-height: 1.75; }
@media (max-width: 600px) {
  .appointments-section { padding-top: 46px; padding-bottom: 52px; }
  .appointment-row > span { max-width: none; text-align: left; }
  .recognition-section { padding: 44px 0 46px; }
}

/* Artist website refinement: media previews, language switch and piano discovery */
.media-thumbnail{display:block;width:100%;height:100%;object-fit:cover;aspect-ratio:16/9;position:absolute;inset:0;background:#292633}
.media-thumbnail-shade{position:absolute;inset:0;background:linear-gradient(180deg,transparent 55%,rgba(19,16,25,.35));pointer-events:none}
.media-poster .play-button{z-index:2}
.language-toggle{display:flex;align-items:center;gap:7px;border-left:1px solid var(--line);padding-left:13px;font-size:12px;font-weight:650;letter-spacing:.03em;color:#756b7d;white-space:nowrap}
.language-toggle .is-current{color:var(--ink)}
.language-switch{width:29px;border-radius:20px;border:1px solid #d8d0dd;position:relative;flex-shrink:0}
.language-switch-thumb{width:11px;height:11px;border-radius:50%;background:#6b5583;position:absolute;top:2px;left:2px;transition:transform .22s}
html[lang="el"] .language-switch-thumb{transform:translateX(12px)}
.language-switch:focus-visible{outline:2px solid #6b5583;outline-offset:3px}
.home-about{background:#f8f6f3;padding:64px 0}
.about-inner{align-items:center;gap:clamp(28px,6vw,80px);grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr)}
.about-heading h2{font-size:clamp(25px,3vw,38px);line-height:1.17;letter-spacing:-.035em;max-width:440px}
.about-copy .about-intro{font-size:clamp(15px,1.6vw,18px);line-height:1.8;max-width:560px}
.bio-piano{margin-top:25px;max-width:430px}
.piano-disclosure{width:100%}
.piano-reveal{width:100%;display:flex;align-items:center;gap:11px;padding:13px 16px;border:1px solid #ded5e0;border-radius:12px;color:#302b35;cursor:pointer;font:inherit;font-size:13px;font-weight:600;box-shadow:0 5px 18px #32234008;text-align:left;transition:border-color .2s,background .2s}
.piano-reveal:hover{background:#faf8fc;border-color:#c7b8d4}
.piano-reveal-mark{font-size:24px;line-height:1}
.piano-reveal-arrow{margin-left:auto;color:#867391;transition:transform .25s}
.piano-disclosure.is-open .piano-reveal-arrow{transform:rotate(135deg)}
.piano-expand{display:grid;grid-template-rows:0fr;opacity:0;transition:grid-template-rows .36s ease,opacity .25s ease}
.piano-expand>.piano-wrap{min-height:0;overflow:hidden}
.piano-disclosure.is-open .piano-expand{grid-template-rows:1fr;opacity:1}
.piano-disclosure .mini-piano{margin-top:12px;padding:13px;background:#f7f4f8;border-color:#ddd2e2;box-shadow:none}
.piano-disclosure .piano-board{height:152px;border-color:#c9c0d0;border-radius:7px;box-shadow:0 8px 18px rgba(42,35,57,.09)}
.piano-disclosure .piano-white{background:linear-gradient(180deg,#fff 0%,#fcfbfa 78%,#ece7e1 100%);box-shadow:inset 0 -7px 0 #e5dfd8}
.piano-disclosure .piano-black{height:62%;border-radius:0 0 5px 5px;background:linear-gradient(90deg,#211d27,#403748 52%,#201c26);box-shadow:inset 0 -5px #16131c,0 4px 6px #0003}
.piano-disclosure .piano-toolbar{margin-bottom:9px}
.piano-disclosure .piano-controls{margin-top:9px}
@media(max-width:760px){.home-about{padding:42px 0}.about-inner{display:flex;flex-direction:column;align-items:stretch;gap:22px}.about-heading h2{max-width:none;font-size:clamp(25px,6vw,33px)}.bio-piano{max-width:none;margin-top:19px}.about-copy .about-intro{margin-top:0;font-size:15px;line-height:1.7}.piano-disclosure .piano-board{height:150px}.language-toggle{padding-left:10px;gap:5px}}
@media(prefers-reduced-motion:reduce){.piano-expand,.piano-reveal-arrow,.language-switch-thumb{transition:none}}

/* ===== Layout pass v2: one shared container, aligned columns, full-bleed hero, safer mobile ===== */
:root { --page: 1200px; --header: 1200px; --split-a: .85fr; --split-b: 1.15fr; --split-gap: 72px; }
body { overflow-x: clip; }
.header-inner, .footer-inner { width: min(var(--page), calc(100% - 2 * var(--gutter))); }
.language-switch::before { content: ""; position: absolute; inset: -14px -6px; }
.mobile-nav { width: min(320px, calc(100vw - 2 * var(--gutter))); max-height: calc(100dvh - 76px); overflow-y: auto; }

@media (min-width: 701px) {
  /* Hero: text aligns with the site container, photo bleeds to the right edge at any screen width */
  .hero { --hero-h: clamp(540px, 36vw, 660px); width: 100%; max-width: none; margin: 0; min-height: var(--hero-h);
    padding-left: max(var(--gutter), calc((100% - var(--page)) / 2)); grid-template-columns: minmax(0, .8fr) minmax(0, 1.2fr); }
  .hero-copy { padding: clamp(28px, 4vw, 56px) clamp(24px, 4vw, 64px) 0 0; }
  .hero-photo { min-height: var(--hero-h); }
  .hero-photo img { object-position: 72% center; }
  .hero-foot { padding: 32px 0 36px; }

  /* Same left/right split in every two-column section so the columns line up */
  .about-inner,.repertoire-section .piano-section-inner {
    display: grid; grid-template-columns: minmax(0, var(--split-a)) minmax(0, var(--split-b)); column-gap: var(--split-gap); align-items: center; }

  /* Featured recording: copy centred next to the video instead of leaving a blank block */
  .media-card--featured { grid-template-columns: 1.15fr .85fr; }
  .media-card--featured .media-copy { display: flex; flex-direction: column; justify-content: center; padding: 28px 32px; }
  .media-card--featured .media-copy h3 { font-size: 21px; }
}
@media (min-width: 701px) and (max-width: 1024px) {
  :root { --split-gap: 40px; }
  .hero { grid-template-columns: minmax(0, .95fr) minmax(0, 1.05fr); --hero-h: clamp(460px, 56vw, 560px); }
  .hero h1 { font-size: 40px; }
  .media-card--featured .media-copy { padding: 22px 24px; }
}
@media (max-width: 700px) {
  .hero-photo { height: clamp(280px, 80vw, 380px); }
  .hero-photo img { object-position: 85% center; }
  .text-link, .section-more { min-height: 44px; }
}
.media-thumbnail[src$="rami-piano.webp"] { object-position: 72% 38%; }
.media-card--featured .media-thumbnail-shade { background: linear-gradient(180deg, transparent 50%, rgba(19,16,25,.28)); }
.media-thumbnail[src$="barber-athens.webp"] { object-position: 42% center; }

/* Approved RS mark in the site header */
.brand { align-items: center; flex: 0 0 auto; }
.brand-logo { display: block; width: auto; height: 42px; max-width: 96px; object-fit: contain; }
@media (max-width: 700px) { .brand-logo { height: 38px; max-width: 86px; } }
/* Give the home link a reliable touch target without enlarging the visible mark. */
.site-header .brand{display:inline-flex;justify-content:center;align-items:center;width:68px;height:100%;min-width:68px;min-height:56px;padding:4px 8px;margin-left:-8px;border-radius:10px;touch-action:manipulation;-webkit-tap-highlight-color:transparent;transition:background-color .16s ease}
.site-header .brand-logo{pointer-events:none}
.site-header .brand:active{background:#eee9f2}
@media(hover:hover){.site-header .brand:hover{background:#f1edf4}}
.site-header .brand:focus-visible{outline-offset:1px}
/* Release polish: readable text, consistent hit areas and quieter surfaces. */
:root{--violet:#655184;--muted:#5d5665}
input:focus-visible{outline:2px solid var(--violet);outline-offset:3px}
.media-credits,.concert-details p,.footer-identity>span{font-size:14px;line-height:1.6}
.mobile-menu summary,.language-switch{min-height:44px}
.language-switch{align-items:center}
.language-switch-thumb{pointer-events:none}
.project-preview{transition:background .18s,border-color .18s,transform .18s}
.project-preview:hover{transform:translateY(-2px);border-color:#baacc7}
.project-preview:focus-visible{outline-offset:4px}
.repertoire-row:focus-visible{outline-offset:-3px}
.media-thumbnail[src*="barber-athens.webp"]{object-position:42% center}
.media-thumbnail[src*="rami-piano.webp"]{object-position:72% 38%}
.hero-copy .eyebrow{letter-spacing:.08em}
.home-recording-heading{align-items:flex-end}
@media(min-width:961px){.mobile-menu{display:none}.desktop-nav{display:flex}}
@media(max-width:960px){.desktop-nav{display:none}.mobile-menu{display:block}}
@media(max-width:700px){.hero-lead{line-height:1.65}.page-intro h1{font-size:32px}.player-close{min-height:44px}.contact-detail a{font-size:16px}.project-preview:hover{transform:none}.media-credits{font-size:14px}.hero-foot{gap:10px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.project-preview{transition:none}.project-preview:hover{transform:none}}
.language-switch{min-height:0;display:block;height:17px;background:#e5dfe8}

/* Current route and concert programme refinements. */
.desktop-nav a{position:relative;display:inline-flex;align-items:center;min-height:44px;padding:0 2px}.desktop-nav a[aria-current="page"]{color:#563a75;font-weight:700}.desktop-nav a[aria-current="page"]::after{content:"";position:absolute;left:2px;right:2px;bottom:6px;height:2px;border-radius:4px;background:#865db7;box-shadow:0 0 0 3px #865db718}.mobile-nav a[aria-current="page"]{color:#563a75;background:#eee7f6;font-weight:700;box-shadow:inset 3px 0 #8056ad}.desktop-nav a:focus-visible,.mobile-nav a:focus-visible{outline:2px solid #8056ad;outline-offset:3px}.piano-reveal{background:linear-gradient(110deg,#fff,#f7f0fa)}.piano-reveal-mark{color:#7651a4}.concert-page .page-intro{position:relative;isolation:isolate;padding-bottom:42px}.concert-page .page-intro::before{content:"";position:absolute;z-index:-1;right:0;top:16px;width:38%;height:95%;border-radius:40% 60% 70% 30%;background:radial-gradient(circle at 65% 45%,#e8d9f0,#f4eaf0 58%,transparent 72%);opacity:.8}.concert-page .upcoming-section{background:linear-gradient(110deg,#eae4f2,#f3ecf2 58%,#f8f3ef)}.concert-page .archive-section{padding-top:50px}.concert-page .concert-list{display:grid;gap:10px}.concert-page .concert-row{min-height:108px;padding:17px 20px;border:1px solid #ded2e4;border-radius:15px;background:linear-gradient(115deg,#fff 55%,#f9f4fa);box-shadow:0 4px 17px #42304908}.concert-page .concert-row:nth-child(2){background:linear-gradient(115deg,#fff 55%,#f2eef9)}.concert-page .concert-row:nth-child(3){background:linear-gradient(115deg,#fff 55%,#f7f1e9)}.concert-page .status-pill{background:#eee7f7;border-color:#ded0ea;color:#624582}.concert-page .concert-source{color:#69469a}@media(max-width:700px){.concert-page .page-intro::before{width:65%;opacity:.5}.concert-page .concert-row{padding:16px}}

/* Standalone Piano 101 module, separated from the biography. */
.home-piano-101{padding-block:26px 32px}.home-piano-101>.page-width{max-width:620px}.home-piano-101 .bio-piano{max-width:none;margin:0}
/* Keep event tags centered alongside their action links. */
.concert-card-foot .work-tag{align-self:center}

/* V44: a softer primary action in the home hero. */
.hero .hero-actions .button-primary{background:#eee5f1;border-color:#d7c7e3;color:#684e79}
.hero .hero-actions .button-primary:hover{background:#e5d8ec;border-color:#cbb5da;color:#5b406d}
