:root{--ink:#10101f;--forest:#171427;--cream:#f3eee7;--blush:#9f6548;--gold:#c99b58;--sage:#252044;--violet:#49307a;--blue:#264a68;--line:rgba(20,18,42,.2)}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--cream);color:var(--ink);font-family:"DM Sans",sans-serif;overflow-x:hidden}.site-header{height:94px;display:flex;align-items:center;justify-content:space-between;padding:0 4.5vw;position:absolute;z-index:10;width:100%;color:white;border-bottom:1px solid rgba(255,255,255,.28)}.wordmark{color:inherit;text-decoration:none;font:400 1.35rem "Italiana",serif;letter-spacing:.06em;line-height:.7;text-align:center}.wordmark>span{display:block;font:500 .48rem "DM Sans";letter-spacing:.35em;margin-bottom:.4rem}.wordmark small{display:block;font:500 .42rem "DM Sans";letter-spacing:.28em;margin-top:.55rem}.site-header nav{display:flex;align-items:center;gap:2rem}.site-header nav a,footer a{color:inherit;text-decoration:none;text-transform:uppercase;font-size:.68rem;letter-spacing:.12em}.nav-cta{border:1px solid;padding:.85rem 1.1rem}.menu-toggle{display:none}.hero{min-height:100vh;background:var(--forest);color:white;display:grid;grid-template-columns:48% 52%;position:relative}.hero-photo{position:relative;overflow:hidden;background:linear-gradient(180deg,rgba(35,53,47,.05),rgba(35,53,47,.6)),radial-gradient(circle at 36% 20%,#fff8dc 0 2%,transparent 10%),linear-gradient(145deg,#b9907e 0 30%,#6b7a6f 30% 54%,#1f302b 54%);isolation:isolate}.hero-photo:before{content:"";position:absolute;inset:0;background:repeating-linear-gradient(90deg,transparent 0 9.5%,rgba(255,255,255,.08) 10%);mix-blend-mode:screen}.light{position:absolute;border-radius:50%;background:#fff0bd;box-shadow:0 0 80px 25px rgba(255,228,165,.55)}.light-one{width:12px;height:12px;top:24%;left:22%}.light-two{width:8px;height:8px;top:38%;right:18%}.couple{position:absolute;width:42%;height:70%;bottom:-12%;left:28%;background:linear-gradient(90deg,#17221f 0 48%,#e4d0c4 49% 70%,#17221f 71%);border-radius:45% 45% 10% 10%;filter:blur(2px);opacity:.85}.hero-photo p{position:absolute;bottom:3rem;left:4vw;font-size:.6rem;letter-spacing:.25em}.hero-copy{display:flex;flex-direction:column;justify-content:center;padding:12vh 7vw 7vh}.eyebrow{text-transform:uppercase;font-size:.65rem;letter-spacing:.2em;font-weight:600}.hero h1,.section h2{font:400 clamp(4.3rem,7.3vw,8.3rem)/.88 "Italiana",serif;letter-spacing:-.035em;margin:3rem 0}.hero h1 em,.section h2 em{color:var(--blush);font-style:italic}.intro{max-width:580px;font-size:1.05rem;line-height:1.75;color:rgba(255,255,255,.78)}.hero-actions{display:flex;align-items:center;gap:2rem;margin-top:2rem}.button{display:inline-flex;justify-content:space-between;gap:3rem;background:var(--blush);color:var(--ink);text-transform:uppercase;text-decoration:none;font-size:.68rem;letter-spacing:.11em;padding:1.1rem 1.2rem}.text-link{color:inherit;text-transform:uppercase;font-size:.67rem;letter-spacing:.12em;text-underline-offset:6px}.scroll-note{position:absolute;right:2rem;bottom:2rem;writing-mode:vertical-rl;text-transform:uppercase;font-size:.52rem;letter-spacing:.18em}.scroll-note span{margin-top:1rem}.section{padding:10vw 8vw}.promise>.eyebrow{color:var(--gold)}.promise-grid{display:grid;grid-template-columns:1.4fr 1fr;gap:8vw;align-items:end}.promise h2{font-size:clamp(3.5rem,5.8vw,6.8rem);margin:2rem 0}.promise h2 em{color:var(--gold)}.promise-grid>div{font-family:"Italiana";font-size:1.35rem;line-height:1.6}.services{display:grid;grid-template-columns:repeat(3,1fr);gap:2rem;margin-top:8vw}.services article{border-top:1px solid var(--line);padding:2rem 0}.services span{font-size:.6rem;color:var(--gold)}.services h3{font:400 2rem "Italiana";margin:2.5rem 0 1rem}.services p{line-height:1.65;font-size:.9rem;max-width:310px}.repertoire{background:var(--blush);display:grid;grid-template-columns:1fr 1.1fr;gap:10vw;align-items:center}.record-card{position:relative;aspect-ratio:1;display:grid;place-items:center}.record{width:78%;height:78%;background:var(--cream);box-shadow:0 20px 60px rgba(35,53,47,.16);position:relative;padding:2rem;z-index:2}.record:before{content:"";position:absolute;inset:10%;border:1px solid var(--gold);border-radius:50%}.record span{font:1.5rem/.8 "Italiana"}.record i{position:absolute;bottom:2rem;right:2rem;text-align:right;font:italic 2.2rem/.82 "Italiana";color:var(--gold)}.vinyl{position:absolute;width:72%;height:72%;border-radius:50%;background:repeating-radial-gradient(circle,#17221f 0 3px,#35443f 4px 5px);right:-5%;box-shadow:0 12px 30px rgba(0,0,0,.25)}.vinyl:after{content:"";position:absolute;inset:39%;border-radius:50%;background:var(--gold);border:8px solid var(--cream)}.setlist h2{font-size:clamp(3.5rem,5.5vw,6.5rem);margin:2rem 0}.setlist h2 em{color:var(--forest)}.setlist>p:not(.eyebrow){font:1.2rem/1.65 "Italiana";max-width:590px}.song-cloud{display:flex;flex-wrap:wrap;gap:.7rem;margin:2.2rem 0}.song-cloud span{border:1px solid rgba(35,53,47,.35);border-radius:3rem;padding:.65rem .9rem;font-size:.67rem}.play-button{border:0;background:none;color:inherit;text-transform:uppercase;font-size:.68rem;letter-spacing:.12em;display:flex;align-items:center;gap:1rem;padding:0;cursor:pointer}.play-button span{width:3rem;height:3rem;border-radius:50%;background:var(--forest);color:white;display:grid;place-items:center}.reviews{text-align:center;background:var(--forest);color:white}.reviews .eyebrow{color:var(--blush)}.quote-mark{font:8rem/.6 "Italiana";color:var(--gold);margin-top:4rem}.reviews blockquote{font:400 clamp(2.2rem,4.4vw,5.2rem)/1.16 "Italiana";max-width:1150px;margin:1rem auto 3rem}.attribution{text-transform:uppercase;font-size:.65rem;letter-spacing:.14em;color:rgba(255,255,255,.65)}.review-dots{margin-top:4rem}.review-dots button{border:0;width:6px;height:6px;border-radius:50%;background:rgba(255,255,255,.3);margin:.3rem;padding:0}.review-dots button.active{background:var(--blush);transform:scale(1.5)}.details{display:grid;grid-template-columns:1fr 1fr;gap:10vw;align-items:center}.details h2{font-size:clamp(3.5rem,6vw,7rem);margin:2rem 0}.details h2 em{color:var(--gold)}.details ul{list-style:none;margin:0;padding:0;border-top:1px solid var(--line)}.details li{border-bottom:1px solid var(--line);padding:1.5rem .5rem;font:1.35rem "Italiana"}.details li span{font:500 .55rem "DM Sans";color:var(--gold);display:inline-block;width:3rem}.contact{text-align:center;background:var(--sage)}.contact h2{font-size:clamp(4rem,7.5vw,9rem);margin:2.5rem 0}.contact h2 em{color:var(--cream)}.contact form{max-width:690px;margin:4rem auto 0;text-align:left}.contact label{text-transform:uppercase;font-size:.6rem;letter-spacing:.15em}.contact form>div{display:flex;border-bottom:1px solid var(--ink);margin-top:.4rem}.contact input{flex:1;background:transparent;border:0;padding:1.2rem 0;font:1rem "DM Sans";outline:0}.contact button{border:0;background:var(--forest);color:white;text-transform:uppercase;font-size:.62rem;letter-spacing:.1em;padding:0 1.2rem;cursor:pointer}.contact button span{margin-left:1rem}.form-note{font-size:.66rem;opacity:.6}footer{padding:4rem 5vw;display:grid;grid-template-columns:1fr 1fr 1fr;align-items:center}footer>.wordmark{justify-self:start}footer p{text-align:center;font:400 .7rem/1.5 "Italiana"}footer div{justify-self:end;display:flex;gap:1.5rem}
@media(max-width:800px){.site-header{height:76px;padding:0 6vw}.menu-toggle{display:block;background:none;border:0;width:34px;height:34px;position:relative;z-index:3}.menu-toggle span{display:block;width:24px;height:1px;background:white;margin:7px}.site-header nav{display:none;position:absolute;inset:0 0 auto;background:var(--forest);padding:100px 7vw 35px;flex-direction:column;align-items:start}.site-header nav.open{display:flex}.hero{grid-template-columns:minmax(0,1fr);padding-top:76px;width:100%;max-width:100%;overflow:hidden}.hero-copy{order:1;padding:8vh 7vw 10vh;min-width:0}.hero-photo{order:2;min-height:62vh;min-width:0}.hero h1{font-size:15.5vw;margin:2rem 0}.intro{font-size:.92rem}.hero-actions{align-items:start;flex-direction:column}.scroll-note{display:none}.promise-grid,.repertoire,.details{grid-template-columns:minmax(0,1fr)}.section{padding:20vw 7vw}.promise h2,.setlist h2,.details h2{font-size:13vw}.promise-grid>div{font-size:1.1rem}.services{grid-template-columns:1fr;margin-top:4rem}.services h3{margin:1.5rem 0 .5rem}.record-card{margin-bottom:2rem}.reviews blockquote{font-size:9vw}.details{gap:2rem}.details li{font-size:1.1rem}.contact h2{font-size:14vw}.contact form>div{display:grid;border:0}.contact input{border-bottom:1px solid}.contact button{padding:1rem;margin-top:1rem}footer{grid-template-columns:1fr;text-align:center;gap:2rem}footer>.wordmark,footer div{justify-self:center}footer p{margin:0}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}

/* Full-bleed wedding performance photography */
.hero{background-color:var(--forest);background-image:linear-gradient(90deg,rgba(13,24,20,.2) 0%,rgba(13,24,20,.18) 42%,rgba(13,24,20,.83) 68%,rgba(13,24,20,.94) 100%),url('assets/wedding-band-hero.png');background-size:cover;background-position:center center}
.hero-photo{background:none;isolation:auto}.hero-photo:before,.hero-photo .light,.hero-photo .couple{display:none}.hero-photo p{z-index:2;text-shadow:0 1px 10px rgba(0,0,0,.8)}.hero-copy{position:relative;z-index:2;text-shadow:0 2px 20px rgba(0,0,0,.18)}
@media(max-width:800px){.hero{background-image:linear-gradient(180deg,rgba(13,24,20,.42),rgba(13,24,20,.9)),url('assets/wedding-band-hero.png');background-position:38% center}.hero-photo{display:none}.hero-copy{min-height:calc(100vh - 76px);justify-content:flex-end;padding-bottom:8vh}.hero h1{font-size:14.5vw}.intro{color:rgba(255,255,255,.9)}}

/* Dark green and antique-gold brand treatment */
.site-header .wordmark{font-size:1.75rem;color:var(--gold)}.site-header .wordmark small,.site-header .wordmark>span{color:var(--cream)}
.hero-logo{color:var(--gold);font-size:clamp(5rem,8.5vw,10rem)!important;line-height:.72!important;text-transform:none;white-space:nowrap}.hero-logo>span{display:block;font-size:.34em;font-style:italic;color:var(--cream);margin:0 0 .18em .12em}.hero-logo small{display:block;font:600 .075em "DM Sans",sans-serif;letter-spacing:.48em;color:var(--cream);margin-top:2.6em;margin-left:.5em}.button{background:var(--gold)}.repertoire{background:var(--gold)}.record i,.setlist h2 em{color:var(--forest)}.contact{background:var(--sage);color:var(--cream)}.contact h2 em{color:var(--gold)}.contact form>div{border-color:var(--cream)}.contact input{color:var(--cream)}.contact input::placeholder{color:rgba(246,240,227,.6)}.contact button{background:var(--gold);color:var(--ink)}
@media(max-width:800px){.site-header .wordmark{font-size:1.35rem}.hero-logo{font-size:17vw!important;white-space:normal}.hero-logo small{font-size:.095em;line-height:1.5;letter-spacing:.28em;margin-top:2em}.contact input{border-color:var(--cream)}}

/* Killeavy Castle film treatment */
.hero{background-image:linear-gradient(90deg,rgba(12,10,28,.2),rgba(12,10,28,.88)),url('assets/media/band-wide.jpg?v=3');background-position:center;background-size:cover;overflow:hidden}.hero:after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(10,8,22,.08) 0%,rgba(10,8,22,.16) 46%,rgba(10,8,22,.8) 67%,rgba(10,8,22,.94) 100%);z-index:1;pointer-events:none}.hero-photo{z-index:2}.hero-copy{z-index:3}.site-header{background:linear-gradient(180deg,rgba(10,8,22,.45),transparent)}
.film-strip{display:grid;grid-template-columns:1.25fr .6fr 1.25fr;min-height:460px;background:var(--forest);color:var(--cream)}.film-strip figure{margin:0;position:relative;overflow:hidden}.film-strip img{width:100%;height:100%;display:block;object-fit:cover;filter:saturate(.8) contrast(1.05)}.film-strip figure:after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 55%,rgba(10,8,22,.75))}.film-strip figcaption{position:absolute;z-index:2;bottom:1.5rem;left:1.5rem;text-transform:uppercase;font-size:.56rem;letter-spacing:.16em}.film-strip>div{display:flex;flex-direction:column;justify-content:center;padding:3vw;text-align:center;background:linear-gradient(145deg,var(--violet),var(--forest))}.film-strip>div>p:last-child{font:italic 2rem/1.15 "Italiana"}
.repertoire{background:var(--cream)}.repertoire-photo{margin:0;position:relative;overflow:hidden;box-shadow:0 25px 70px rgba(16,16,31,.24)}.repertoire-photo:after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 55%,rgba(10,8,22,.78))}.repertoire-photo img{width:100%;min-height:520px;display:block;object-fit:cover;object-position:left center}.repertoire-photo figcaption{position:absolute;z-index:2;left:2rem;bottom:1.6rem;color:white;text-transform:uppercase;font-size:.62rem;letter-spacing:.18em}.repertoire-photo figcaption span{display:block;font:italic 2.2rem "Italiana";text-transform:none;color:var(--gold);letter-spacing:0}.setlist h2 em{color:var(--violet)}.play-button span{background:var(--violet)}
.reviews{background:linear-gradient(rgba(16,12,34,.84),rgba(16,12,34,.92)),url('assets/media/strings.jpg') center/cover}.contact{background:linear-gradient(145deg,var(--forest),var(--sage))}.button,.contact button{background:var(--gold)}
@media(max-width:800px){.hero{background-image:linear-gradient(180deg,rgba(10,8,22,.18),rgba(10,8,22,.9)),url('assets/media/band-wide.jpg?v=3');background-position:center}.hero:after{background:linear-gradient(180deg,rgba(10,8,22,.06),rgba(10,8,22,.88))}.film-strip{grid-template-columns:1fr}.film-strip figure{min-height:56vw}.film-strip>div{min-height:280px;padding:12vw 8vw}.repertoire-photo img{min-height:380px}.hero-photo{display:none}}
.hero{background-image:linear-gradient(90deg,rgba(12,10,28,.2),rgba(12,10,28,.88)),url('assets/media/band-wide.jpg?v=4')}
@media(max-width:800px){.hero{background-image:linear-gradient(180deg,rgba(10,8,22,.18),rgba(10,8,22,.9)),url('assets/media/band-wide.jpg?v=4')}}
.hero{background-color:#100e20;background-image:linear-gradient(90deg,rgba(12,10,28,.14),rgba(12,10,28,.38) 48%,rgba(12,10,28,.92) 76%),url('assets/media/band-home-centered.jpg?v=1');background-size:auto 100%;background-position:left center;background-repeat:no-repeat}.wordmark b{display:block;font:400 2.1rem/.72 "Edwardian Script ITC","Great Vibes",cursive;letter-spacing:.02em}.hero-logo{font-family:"Edwardian Script ITC","Great Vibes",cursive!important;font-weight:400!important;letter-spacing:0!important;line-height:.64!important}.hero-logo b{display:block;font:inherit;color:var(--gold)}.hero-logo>span{font-family:inherit;font-style:normal;font-size:.42em;margin:0 0 .12em .08em}.hero-logo small{font-family:"DM Sans",sans-serif}
@media(max-width:800px){.hero{background-image:linear-gradient(180deg,rgba(10,8,22,.16),rgba(10,8,22,.9)),url('assets/media/band-home-centered.jpg?v=1');background-size:cover;background-position:42% center}.wordmark b{font-size:1.7rem}.hero-logo{font-size:20vw!important;line-height:.66!important}}
.hero{background-image:linear-gradient(90deg,rgba(12,10,28,.06),rgba(12,10,28,.22) 48%,rgba(12,10,28,.78) 82%),url('assets/media/band-home-centered.jpg?v=2');background-size:72% auto;background-position:left center;background-repeat:no-repeat}
.hero:after{background:linear-gradient(90deg,transparent 0 44%,rgba(10,8,22,.18) 64%,rgba(10,8,22,.54) 100%)}
@media(max-width:800px){.hero{background-image:linear-gradient(180deg,rgba(10,8,22,.1),rgba(10,8,22,.92)),url('assets/media/band-home-centered.jpg?v=2');background-size:cover;background-position:48% center}}
.hero{grid-template-columns:1fr}.hero-photo{position:absolute;inset:0}.hero-copy{grid-column:1;grid-row:1;width:52%;padding:14vh 5vw 8vh;align-items:flex-start}.hero:after{background:linear-gradient(90deg,rgba(10,8,22,.82) 0%,rgba(10,8,22,.65) 44%,rgba(10,8,22,.2) 76%,rgba(10,8,22,.12) 100%)}
@media(max-width:800px){.hero-copy{width:100%;min-height:calc(100vh - 76px);padding:16vh 7vw 8vh}.hero:after{background:linear-gradient(180deg,rgba(10,8,22,.3),rgba(10,8,22,.88))}}
.hero{background-image:linear-gradient(90deg,rgba(12,10,28,.22),rgba(12,10,28,.2) 52%,rgba(12,10,28,.48)),url('assets/media/band-home-uncropped.jpg?v=1');background-size:cover;background-position:center;background-repeat:no-repeat}
@media(max-width:800px){.hero{background-image:linear-gradient(180deg,rgba(10,8,22,.22),rgba(10,8,22,.88)),url('assets/media/band-home-uncropped.jpg?v=1');background-size:cover;background-position:center}}
