@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;450;500;600;700&family=Playfair+Display:ital,wght@0,400;0,500;1,400;1,500&display=swap');
:root{--bg:#101017;--surface:#171720;--text:#f5f3f0;--muted:#aaa9b3;--gold:#c8a17f;--line:#ffffff20}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:30px}body{margin:0;background:var(--bg);color:var(--text);font-family:'DM Sans',sans-serif;font-size:16px;line-height:1.65}a{color:inherit;text-decoration:none}a:focus-visible{outline:2px solid var(--gold);outline-offset:7px}button,a{-webkit-tap-highlight-color:transparent}header{max-width:1600px;margin:auto;padding:28px 5%;display:flex;align-items:center;justify-content:space-between;gap:24px;border-bottom:1px solid var(--line)}.brand{font-family:'Playfair Display',Georgia,serif;font-size:34px;line-height:1;letter-spacing:-1.7px}.brand span{color:var(--gold)}.brand i{display:block;font-family:'DM Sans',sans-serif;font-style:normal;font-size:10px;letter-spacing:3.4px;line-height:1;margin:12px 0 0 4px}nav{display:flex;gap:34px;font-size:14px;color:#c4c2cc}nav a:hover,.text-link:hover{color:var(--gold)}.nav-contact{font-size:14px;border:1px solid #8e7664;padding:12px 18px}.nav-contact span{margin-left:16px}.hero{max-width:1600px;margin:auto;display:grid;grid-template-columns:1.05fr 1fr;min-height:760px}.hero-copy{padding:78px 6% 28px 9.5%;background:radial-gradient(ellipse at 0% 65%,#27213f66,transparent 70%)}.eyebrow{font-size:12px;font-weight:500;letter-spacing:2.4px;color:var(--gold);margin:0 0 24px;display:flex;align-items:center;gap:12px}.eyebrow>span{width:23px;height:1px;background:var(--gold)}h1,h2,h3,p{margin-top:0}h1,h2,h3{font-family:'Playfair Display',Georgia,serif;font-weight:400}h1{font-size:clamp(48px,5.1vw,82px);line-height:1.1;letter-spacing:-2px;margin-bottom:30px}em{font-weight:400;color:var(--gold)}.intro{font-size:17px;color:#b7b5c2;margin-bottom:32px}.hero-actions{display:flex;gap:26px;align-items:center;flex-wrap:wrap}.button{display:inline-flex;gap:13px;align-items:center;padding:16px 22px;background:var(--gold);color:#151319;font-size:14px;font-weight:600;transition:background .2s}.button:hover{background:#dfb995}.play{font-size:12px}.text-link{font-size:14px;display:inline-flex;gap:20px;align-items:center}.hero-bottom{border-top:1px solid var(--line);margin-top:75px;padding-top:24px;display:flex;justify-content:space-between;align-items:center}.hero-bottom span{font-size:10px;letter-spacing:2.8px;color:var(--muted)}.hero-bottom a{font-size:25px}.hero-visual{position:relative;overflow:hidden;min-height:760px}.hero-visual>img{width:100%;height:100%;position:absolute;object-fit:cover;object-position:50% 40%;filter:brightness(.78) saturate(.6)}.hero-visual:after{content:'';position:absolute;inset:0;background:linear-gradient(0deg,#101017e6,transparent 40%),linear-gradient(90deg,#10101735,transparent 35%)}.photo-label{position:absolute;bottom:34px;left:38px;right:35px;display:flex;justify-content:space-between;align-items:end;z-index:1}.photo-label span{font-family:'Playfair Display',Georgia,serif;font-size:25px;line-height:1.35}.photo-label small{font-size:10px;letter-spacing:2px;writing-mode:vertical-rl}.context-strip{border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:27px 5%;display:flex;justify-content:center;gap:65px;align-items:center}.context-strip>span{font-size:10px;letter-spacing:2px;color:var(--muted)}.context-strip p{font-family:'Playfair Display',Georgia,serif;font-size:22px;margin:0}.context-strip b{font-weight:400;color:var(--gold);padding:0 22px}.section{max-width:1440px;padding:108px 6%;margin:auto}h2{font-size:clamp(34px,3.6vw,54px);line-height:1.2;letter-spacing:-1px;margin-bottom:26px}.about{display:grid;grid-template-columns:1fr 1fr;gap:70px}.about-text{padding-top:38px;color:var(--muted)}.about-text .large{font-size:23px;color:var(--text);line-height:1.6}.about-text .text-link{margin-top:12px;color:var(--gold)}.music{background:linear-gradient(120deg,#1b192b,#141725);max-width:none;padding-left:max(6%,calc((100vw - 1268px)/2));padding-right:max(6%,calc((100vw - 1268px)/2))}.music-heading,.section-heading{display:flex;justify-content:space-between;align-items:end;gap:40px;margin-bottom:35px}.music-heading p:last-child,.section-heading>p{color:var(--muted);font-size:15px}.music-panel{display:grid;grid-template-columns:1fr 1fr;min-height:390px;border:1px solid #ffffff20;background:#11121b;overflow:hidden}.music-image{position:relative;overflow:hidden;min-height:390px}.music-image img{width:100%;height:100%;position:absolute;object-fit:cover;object-position:45% 67%;filter:brightness(.65) saturate(.65);transition:transform .6s}.music-panel:hover img{transform:scale(1.035)}.music-info{padding:48px;display:flex;flex-direction:column;justify-content:center}.music-info h3{font-size:46px;line-height:1.15;margin-bottom:30px}.music-info .eyebrow{font-size:10px}.music-cta{display:flex;align-items:center;gap:20px;font-size:14px}.circle{display:grid;place-items:center;width:44px;height:44px;flex-shrink:0;border:1px solid #b99778;border-radius:50%;font-size:22px;color:var(--gold)}.occasion-grid{display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid var(--line)}.occasion-grid article{padding:34px 30px 0 0}.occasion-grid article+article{border-left:1px solid var(--line);padding-left:30px}.number{font-size:12px;color:var(--gold)}.occasion-grid h3{font-size:29px;margin:24px 0 16px}.occasion-grid p{color:var(--muted);font-size:15px}.tag{display:block;font-size:10px;letter-spacing:1.6px;color:var(--gold);margin-top:33px}.contact{text-align:center;border-top:1px solid var(--line);background:radial-gradient(ellipse at center bottom,#32254770,transparent 70%);max-width:none;padding-bottom:105px}.contact .eyebrow{justify-content:center}.contact h2{font-size:clamp(46px,5vw,72px)}.contact>p:not(.eyebrow){color:var(--muted)}.email{display:block;width:fit-content;margin:30px auto 25px;font-size:clamp(18px,2.4vw,34px);border-bottom:1px solid var(--gold);padding-bottom:10px}.email span{color:var(--gold);margin-left:20px}footer{padding:35px 5%;border-top:1px solid var(--line);display:flex;justify-content:space-between;align-items:center;gap:20px}footer .brand{font-size:26px}footer>span{font-size:10px;letter-spacing:2px;color:var(--muted)}footer small{font-size:12px;color:var(--muted)}.skip{position:absolute;left:20px;top:-70px;z-index:10;background:var(--gold);color:#111;padding:12px}.skip:focus{top:10px}@media(min-width:1600px){.hero-copy{padding-top:100px}}@media(max-width:1000px){nav{gap:18px}.hero{min-height:650px}.hero-visual{min-height:650px}.hero-copy{padding-top:56px}.hero-bottom{margin-top:45px}.hero-actions{gap:20px}.music-info{padding:30px}.music-info h3{font-size:38px}.about{gap:35px}.context-strip{gap:30px}.context-strip b{padding:0 12px}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{transition:none!important}}
.video-shell{aspect-ratio:16/9;width:100%;background:#08080d;border:1px solid var(--line);position:relative;overflow:hidden}.video-cover{display:block;width:100%;height:100%;padding:0;border:0;cursor:pointer;color:white;background:#15121f;font:inherit;position:relative}.video-cover>img{width:100%;height:100%;object-fit:cover;filter:brightness(.62);transition:transform .6s}.video-cover:hover>img{transform:scale(1.025)}.video-shade{position:absolute;inset:0;background:linear-gradient(0deg,#11101aaa,transparent 70%)}.video-center{position:absolute;inset:0;display:flex;flex-direction:column;justify-content:center;align-items:center;gap:20px;font-family:'Playfair Display',Georgia,serif;font-size:30px}.video-play{width:84px;height:84px;display:grid;place-items:center;padding-left:5px;border:1px solid #e6c6a9;border-radius:50%;background:#16132088;color:#eed4ba;font:22px sans-serif;backdrop-filter:blur(8px)}.video-center small{font:10px 'DM Sans',sans-serif;letter-spacing:2px}.video-caption{display:flex;justify-content:space-between;gap:20px;margin-top:18px;font-size:12px;color:var(--muted)}.video-caption>span{letter-spacing:1.4px;font-size:10px}.video-shell iframe{position:absolute;inset:0;width:100%;height:100%;border:0}.video-cover:focus-visible{outline:3px solid var(--gold);outline-offset:-6px}

/* A shared content grid keeps every mobile section on the same rails. */
.email .email-address { color: inherit; margin: 0; }
@media (max-width: 900px) {
  :root { --gutter: clamp(20px, 5vw, 40px); --section-space: clamp(56px, 9vw, 80px); }
  header, footer, .section, .context-strip { padding-inline: var(--gutter); }
  header { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 16px; padding-block: 24px; }
  nav { display: none; }
  header .brand { font-size: 30px; }
  .brand i { font-size: 12px; letter-spacing: 1.5px; margin-left: 0; }
  .nav-contact { display: flex; align-items: center; justify-content: center; min-height: 48px; max-width: 180px; font-size: 14px; padding: 10px 14px; line-height: 1.4; }
  .nav-contact span { margin-left: 10px; }
  .hero { display: grid; grid-template-columns: minmax(0, 1fr); min-height: 0; }
  .hero-copy { min-width: 0; padding: 48px var(--gutter) 24px; }
  h1 { font-size: clamp(42px, 8vw, 68px); line-height: 1.12; letter-spacing: -1.4px; margin-bottom: 24px; }
  h2, .contact h2 { font-size: clamp(32px, 6vw, 48px); line-height: 1.2; letter-spacing: -.7px; overflow-wrap: anywhere; text-wrap: balance; }
  .intro { font-size: 16px; max-width: 40ch; margin-bottom: 28px; }
  .desktop { display: none; }
  .hero-actions { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
  .hero-actions > a { min-width: 0; min-height: 52px; justify-content: center; text-align: center; padding: 14px 12px; gap: 10px; font-size: 14px; }
  .hero-actions > .text-link { border: 1px solid var(--line); }
  .hero-bottom { margin-top: 28px; padding-top: 16px; gap: 16px; }
  .hero-bottom span { font-size: 12px; letter-spacing: 1.5px; }
  .hero-bottom a { display: grid; place-items: center; min-width: 44px; min-height: 44px; }
  .hero-visual { min-height: 0; aspect-ratio: 3 / 4; max-height: 720px; margin: 0 var(--gutter) 32px; }
  .hero-visual > img { object-position: center; }
  .photo-label { left: 20px; right: 20px; bottom: 24px; gap: 16px; }
  .photo-label span { font-size: clamp(22px, 4vw, 28px); }
  .photo-label small { font-size: 12px; letter-spacing: 1.4px; }
  .context-strip { display: grid; gap: 16px; padding-block: 28px; text-align: left; }
  .context-strip > span { font-size: 12px; letter-spacing: 1.6px; }
  .context-strip p { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px 24px; font-size: 22px; }
  .context-strip p b { display: none; }
  .context-strip p span { min-width: 0; padding-bottom: 8px; border-bottom: 1px solid var(--line); }
  .section { padding-block: var(--section-space); }
  .eyebrow { font-size: 12px; letter-spacing: 1.7px; margin-bottom: 20px; }
  .about { display: grid; grid-template-columns: minmax(0, 1fr); gap: 24px; }
  .about h2 { margin-bottom: 0; }
  .about-text { min-width: 0; padding-top: 0; }
  .about-text .large { font-size: 21px; }
  .text-link { min-height: 44px; }
  .music-heading, .section-heading { display: grid; grid-template-columns: minmax(0, 1fr); gap: 16px; margin-bottom: 28px; }
  .music-heading h2, .section-heading h2 { margin-bottom: 0; }
  .music-heading > p, .section-heading > p { font-size: 16px; margin-bottom: 0; }
  .music-heading br, .section-heading br, .contact > p br { display: none; }
  .video-shell { min-width: 0; aspect-ratio: 16 / 9; }
  .video-center { padding: 12px; font-size: clamp(20px, 4vw, 28px); gap: 10px; line-height: 1.25; text-align: center; }
  .video-play { width: 52px; height: 52px; font-size: 16px; flex-shrink: 0; }
  .video-center small { font-size: 12px; letter-spacing: 1px; }
  .video-caption { display: grid; grid-template-columns: minmax(0, 1fr); gap: 4px; margin-top: 16px; }
  .video-caption > span { font-size: 12px; letter-spacing: 1px; }
  .video-caption > a { display: flex; align-items: center; min-height: 44px; font-size: 14px; }
  .occasion-grid { display: grid; grid-template-columns: minmax(0, 1fr); }
  .occasion-grid article, .occasion-grid article + article { display: grid; grid-template-columns: 28px minmax(0, 1fr); gap: 12px 16px; min-width: 0; padding: 28px 0; border-left: 0; }
  .occasion-grid article + article { border-top: 1px solid var(--line); }
  .occasion-grid .number { grid-column: 1; align-self: center; font-size: 12px; }
  .occasion-grid h3 { grid-column: 2; font-size: clamp(25px, 4vw, 30px); margin: 0; line-height: 1.3; }
  .occasion-grid p, .occasion-grid .tag { grid-column: 2; margin: 0; }
  .occasion-grid p { font-size: 16px; }
  .occasion-grid .tag { font-size: 12px; letter-spacing: 1px; padding-top: 8px; }
  .contact { display: grid; grid-template-columns: minmax(0, 1fr); justify-items: start; text-align: left; }
  .contact .eyebrow { justify-content: flex-start; }
  .contact h2 { margin-bottom: 24px; }
  .contact > p:not(.eyebrow) { margin-bottom: 0; }
  .email { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center; gap: 12px; width: 100%; max-width: 100%; font-size: clamp(16px, 3.6vw, 26px); margin: 28px 0 16px; padding-bottom: 16px; }
  .email-address { min-width: 0; overflow-wrap: anywhere; }
  .email > span:last-child { margin-left: 0; }
  .contact > .text-link { font-size: 14px; flex-wrap: wrap; gap: 12px; }
  footer { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center; gap: 20px 16px; padding-block: 28px; }
  footer > span { grid-column: 1 / -1; grid-row: 2; font-size: 12px; letter-spacing: 1.2px; }
  footer small { font-size: 12px; }
}
@media (max-width: 380px) {
  header { grid-template-columns: minmax(0, 1fr); gap: 20px; }
  .nav-contact { max-width: none; width: 100%; justify-content: space-between; }
  .hero-actions { grid-template-columns: minmax(0, 1fr); }
  h1 { font-size: 2.625rem; }
  .occasion-grid article, .occasion-grid article + article { column-gap: 12px; grid-template-columns: 24px minmax(0, 1fr); }
}

/* Hero motion follows scroll position in both directions, without pinning. */
.hero-visual > img { transform: translateY(var(--photo-shift, 0px)) scale(var(--photo-scale, 1.04)); }
.hero h1 em { background: linear-gradient(var(--gold), var(--gold)) no-repeat left bottom / var(--hero-line, 0%) 1px; padding-bottom: 5px; }
@media (max-width: 900px) {
}
@media (prefers-reduced-motion: reduce) {
  .hero h1 em { background: none; }
}

/* Vector controls render consistently on iOS, Android and desktop. */
.icon { display: inline-block; width: 1.25rem; height: 1.25rem; flex: 0 0 auto; vertical-align: middle; }
.icon-play { width: 1.1rem; height: 1.1rem; }
.video-play { padding-left: 0; }
.video-play .icon { width: 1.7rem; height: 1.7rem; }
.play { display: inline-flex; align-items: center; }
.hero-bottom .icon { width: 1.5rem; height: 1.5rem; }
.video-caption a { display: inline-flex; align-items: center; gap: 10px; }
h1 > em, h2 > em { display: block; margin-top: .12em; }
@media (max-width: 900px) {
  h1 > em, h2 > em { display: block; width: 100%; margin-top: .18em; }
  h1, h2, .contact h2 { text-align: left; text-wrap: initial; }
  .hero h1 em { background-size: var(--hero-line, 0%) 1px; }
  .nav-contact .icon, .text-link .icon { width: 1.125rem; height: 1.125rem; }
  .video-play .icon { width: 1.4rem; height: 1.4rem; }
}
