:root{--ink:#f0f0f0;--paper:#080808;--gold:#080808;--red:#888888}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:90px}body{margin:0;background:var(--paper);color:var(--ink);font:17px/1.65 Arial,sans-serif}a{color:inherit;text-underline-offset:5px}button,select{font:inherit}button,a,select{-webkit-tap-highlight-color:transparent}button{cursor:pointer}a:focus-visible,button:focus-visible,select:focus-visible{outline:3px solid var(--red);outline-offset:5px}.skip{position:absolute;top:-80px;z-index:10;background:white;padding:12px}.skip:focus{top:0}header{padding:20px 5%;display:flex;justify-content:space-between;align-items:center;gap:24px}.brand{font:bold 23px Georgia,serif;text-decoration:none}.brand span{display:block;font:11px/1.8 Arial,sans-serif;letter-spacing:2px}nav{display:flex;gap:30px}nav a{text-decoration:none;font-size:15px;font-weight:bold}.hero{display:grid;grid-template-columns:1fr 1fr;min-height:620px}.poster{padding:60px 10% 35px;background:var(--paper);display:flex;flex-direction:column;align-items:flex-start}.eyebrow{font-size:12px;letter-spacing:2px;font-weight:bold;margin:0 0 24px}h1{font:900 clamp(56px,7.3vw,112px)/.92 Georgia,serif;letter-spacing:-5px;margin:20px 0 25px}h1 i{font-size:.34em;letter-spacing:-1px;vertical-align:middle}h2{font:bold clamp(36px,4.3vw,64px)/1.06 Georgia,serif;letter-spacing:-2px;margin:0 0 28px}.strap{font:italic 28px/1.25 Georgia,serif}.hero-actions{display:flex;align-items:center;gap:20px;flex-wrap:wrap;margin:18px 0}.button{display:inline-block;background:var(--ink);color:var(--paper);padding:12px 22px;text-decoration:none;font-weight:bold;font-size:15px;border:1px solid var(--ink)}.text-link{font-size:15px;font-weight:bold}.poster-foot{font-size:12px;letter-spacing:2px;margin-top:auto;padding-top:35px}.hero-photo{margin:0;position:relative;min-height:500px;overflow:hidden;background:#111}.hero-photo img{width:100%;height:100%;object-fit:cover;object-position:center}.hero-photo figcaption{position:absolute;bottom:0;left:0;right:0;padding:14px 20px;background:#111;color:var(--ink);font-size:11px;letter-spacing:1.3px}.ticker{padding:18px 20px;background:#111;color:var(--ink);font-size:15px;font-weight:bold;letter-spacing:3px;text-align:center}.section{padding:90px 7%;border-bottom:0}.music{display:grid;grid-template-columns:1fr 1fr;gap:8%}.music-copy p{font-size:21px;margin-top:35px;max-width:550px}.social-row{display:flex;gap:30px;flex-wrap:wrap;margin:25px 0}.social-row a{font-weight:bold}.section-top{display:flex;justify-content:space-between;gap:35px;align-items:center}.section-top>p{font-size:15px}.photo-section{background:var(--paper);color:var(--ink)}.filter-row{display:flex;gap:10px;margin:20px 0 30px;flex-wrap:wrap}.filter-row button{color:var(--ink);border:1px solid #555;background:transparent;font-size:14px;padding:9px 16px}.filter-row button.selected{background:var(--ink);color:var(--paper);border-color:var(--ink)}.gallery{display:grid;grid-template-columns:repeat(4,1fr);gap:15px}.gallery button{padding:0;border:0;background:none;position:relative;overflow:hidden;aspect-ratio:4/5}.gallery img{width:100%;height:100%;object-fit:cover;transition:transform .3s}.gallery button:hover img{transform:scale(1.04)}.gallery-links{display:flex;gap:30px;flex-wrap:wrap;font-size:14px;margin-top:30px}.shows{background:var(--paper)}.outline{background:transparent;color:var(--ink)}.archive-controls{display:flex;align-items:center;gap:18px;border-bottom:2px solid var(--ink);padding:20px 0;margin-top:20px;flex-wrap:wrap}.archive-controls label{font-weight:bold}.archive-controls select,.archive-controls button{padding:10px;background:#111;color:var(--ink);border:1px solid var(--ink);font-size:14px}.show{display:grid;grid-template-columns:120px 1fr auto;gap:25px;align-items:center;padding:22px 0;border-bottom:1px solid #444}.date{font:bold 25px Georgia,serif}.date small{display:block;font:12px Arial,sans-serif;letter-spacing:2px}.show h3{margin:0;font:700 25px Georgia,serif}.show p{margin:3px 0;font-size:14px}.show a{font-size:14px;font-weight:bold}.archive-note{font-size:14px;margin-top:25px}.month{margin-top:25px}.month h3{font:25px Georgia,serif}.week,.days{display:grid;grid-template-columns:repeat(7,minmax(0,1fr))}.week{font-size:12px;text-align:center}.day{min-height:80px;padding:8px;border:1px solid #333;font-size:13px}.day a{display:block;font-size:12px;line-height:1.3;margin-top:6px;font-weight:bold}.day.event{background:#262626}.about{display:grid;grid-template-columns:1fr 1fr;gap:8%;align-items:center}.about>img{width:100%;aspect-ratio:4/5;object-fit:cover}.about p:not(.eyebrow){max-width:550px}.follow{text-align:center;background:#111;color:var(--ink);padding:90px 7%}.follow h2{font-size:clamp(55px,7vw,100px)}.follow .social-row{justify-content:center}.follow>p:last-child{font-size:14px}footer{padding:25px 5%;display:flex;justify-content:space-between;gap:15px;flex-wrap:wrap;font-size:12px;letter-spacing:1px}dialog{background:#111;color:var(--ink);border:0;width:min(1000px,96vw);padding:50px 20px 15px;text-align:center}dialog::backdrop{background:#000d}dialog img{width:100%;height:70vh;object-fit:contain}.close{position:absolute;right:15px;top:10px}.previous,.next,.close{background:none;border:1px solid #777;color:var(--ink);padding:6px 12px;font-size:14px}.previous,.next{margin:8px}dialog p{font-size:13px}body.modal-open{overflow:hidden}[hidden]{display:none!important}@media(max-width:900px){.gallery{grid-template-columns:repeat(3,1fr)}header{align-items:flex-start}nav{gap:15px}.hero{min-height:auto}.poster{padding:40px 8%}h1{letter-spacing:-3px}.hero-photo{min-height:480px}.section{padding:65px 6%}.section-top{align-items:flex-start}.show{grid-template-columns:90px 1fr auto;gap:15px}}@media(max-width:600px){header{flex-direction:column;padding:18px 6%;gap:12px}nav{gap:24px}nav a{font-size:14px}.hero{grid-template-columns:1fr}.poster{min-height:520px;padding:35px 6%}h1{font-size:clamp(64px,18vw,106px)}.hero-photo{height:420px;min-height:0}.ticker{font-size:12px;letter-spacing:1px}.music,.about{grid-template-columns:1fr;gap:25px}.music-copy p{margin-top:0}.section-top{flex-direction:column;gap:0}.gallery{grid-template-columns:repeat(2,1fr);gap:10px}.show{grid-template-columns:75px 1fr}.show>a{grid-column:2}.show h3{font-size:22px}.date{font-size:22px}.about>img{aspect-ratio:1}.day{min-height:55px;padding:4px}.day a{font-size:12px}.day.event a{overflow-wrap:anywhere}.follow{padding:65px 6%}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.gallery img{transition:none}}

/* Monochrome theme */
:root{color-scheme:dark}.ticker{border-block:1px solid #333}.poster{border-right:1px solid #333}.hero-photo figcaption{color:var(--ink)}.follow{background:#080808;border-top:1px solid #333}.section-heading .eyebrow,.section-top .eyebrow,.poster-foot,footer,.archive-note{color:#aaa}.show p{color:#bbb}.gallery img{filter:none}.button:hover{background:#ccc}.outline:hover{background:#262626;color:var(--ink)}.filter-row button:hover{border-color:#eee}.archive-controls{border-color:#777}.social-row a:hover{color:#bbb}

/* Photo-led layout with readable text overlays */
.hero{position:relative;display:block;min-height:760px;height:min(900px,88vh);isolation:isolate;background:#080808}
.hero-photo{position:absolute;inset:0;height:100%;min-height:0;z-index:-2}
.hero-photo img{object-fit:cover;object-position:center 40%;width:100%;height:100%}
.hero::after{content:"";position:absolute;inset:0;z-index:-1;pointer-events:none;background:linear-gradient(90deg,rgba(0,0,0,.78) 0%,rgba(0,0,0,.45) 38%,rgba(0,0,0,.08) 75%),linear-gradient(0deg,rgba(0,0,0,.65),transparent 35%)}
.poster{background:transparent;border:0;padding:65px 7% 80px;width:min(760px,65%);height:100%;justify-content:center}
.poster h1{font-size:clamp(70px,8.4vw,130px);text-shadow:0 3px 10px rgba(0,0,0,.8),0 12px 35px rgba(0,0,0,.6)}
.poster .eyebrow,.poster .strap,.poster .text-link,.poster-foot{color:#fff;text-shadow:0 2px 5px #000,0 4px 16px rgba(0,0,0,.9)}
.poster .eyebrow{max-width:400px}.poster-foot{margin-top:18px;padding-top:10px}
.hero-photo figcaption{background:transparent;right:4%;left:auto;max-width:300px;text-align:right;text-shadow:0 2px 6px #000;color:#ddd}
.photo-section{padding:80px 3%}.photo-section .section-top,.photo-section .filter-row,.photo-section .gallery-links{margin-left:4%;margin-right:4%}
.gallery{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
.gallery button{aspect-ratio:4/5}.gallery img{object-position:center}
.about{position:relative;display:flex;justify-content:flex-end;min-height:740px;isolation:isolate;overflow:hidden;padding:85px 7%}
.about>img{position:absolute;inset:0;width:100%;height:100%;aspect-ratio:auto;object-fit:cover;object-position:center 40%;z-index:-2}
.about::after{content:"";position:absolute;inset:0;pointer-events:none;z-index:-1;background:linear-gradient(90deg,rgba(0,0,0,.05),rgba(0,0,0,.62) 48%,rgba(0,0,0,.9))}
.about>div{max-width:520px;width:48%;text-shadow:0 2px 6px rgba(0,0,0,.9),0 5px 20px rgba(0,0,0,.6)}
.about h2{text-shadow:0 3px 12px #000}.about p{color:#f0f0f0}.about .eyebrow{color:#ddd}
@media(min-width:1600px){.gallery{grid-template-columns:repeat(4,minmax(0,1fr))}}
@media(max-width:900px){.hero{min-height:690px;height:85vh}.poster{width:80%;padding:55px 6% 75px}.poster h1{font-size:clamp(75px,11vw,115px)}.hero-photo img{object-position:60% center}.gallery{grid-template-columns:repeat(2,minmax(0,1fr))}.about>div{width:60%}.about{min-height:650px}}
@media(max-width:600px){.hero{min-height:660px;height:86svh}.poster{width:100%;padding:45px 6% 75px;justify-content:flex-end}.poster h1{font-size:clamp(64px,19vw,100px);margin:10px 0 18px}.hero::after{background:linear-gradient(0deg,rgba(0,0,0,.88),rgba(0,0,0,.56) 48%,rgba(0,0,0,.08) 100%)}.hero-photo{height:100%}.hero-photo img{object-position:58% center}.hero-photo figcaption{max-width:none;left:6%;right:6%;padding:12px 0;text-align:left;font-size:10px}.poster .eyebrow{font-size:11px;max-width:260px}.strap{font-size:25px}.poster-foot{font-size:10px}.photo-section{padding:55px 3%}.gallery{gap:8px}.gallery button{aspect-ratio:3/4}.about{min-height:780px;padding:45px 7%;align-items:flex-end}.about>div{width:100%;max-width:none}.about::after{background:linear-gradient(0deg,rgba(0,0,0,.96),rgba(0,0,0,.78) 45%,rgba(0,0,0,.1) 100%)}.about>img{aspect-ratio:auto;height:100%;object-position:40% center}}

/* Stacked views: only the active page is visible and interactive. */
html{scroll-behavior:auto;scroll-padding-top:0}header{position:relative;z-index:5;background:#080808}main{position:relative;isolation:isolate;transition:height .4s ease}main>.view{position:absolute;inset:0 0 auto;opacity:0;visibility:hidden;pointer-events:none;transition:opacity .4s ease,visibility 0s linear .4s;width:100%}main>.view.active-view{opacity:1;visibility:visible;pointer-events:auto;transition:opacity .4s ease,visibility 0s linear 0s}nav a{position:relative}nav a[aria-current="page"]{color:#fff;text-decoration:underline;text-underline-offset:8px}nav a:not([aria-current="page"]){color:#aaa}.view h2:focus{outline:none}.follow{display:none}footer{position:relative;border-top:0}nav{flex-wrap:wrap}@media(max-width:600px){nav{gap:16px}nav a{font-size:14px}.hero{height:calc(100svh - 145px);min-height:660px}}@media(prefers-reduced-motion:reduce){main,main>.view{transition:none}}

/* Fade only the top and bottom photo edges over 7px. */
:root{--photo-vignette:7px}
.hero-photo::after,.gallery button::after{content:"";position:absolute;inset:0;pointer-events:none;background:linear-gradient(to bottom,#000,transparent var(--photo-vignette),transparent calc(100% - var(--photo-vignette)),#000);z-index:1}
.about::before{content:"";position:absolute;inset:0;pointer-events:none;background:linear-gradient(to bottom,#000,transparent var(--photo-vignette),transparent calc(100% - var(--photo-vignette)),#000);z-index:-1}
#large-photo{padding:0;background:#000;-webkit-mask-image:linear-gradient(to bottom,transparent,#000 var(--photo-vignette),#000 calc(100% - var(--photo-vignette)),transparent);mask-image:linear-gradient(to bottom,transparent,#000 var(--photo-vignette),#000 calc(100% - var(--photo-vignette)),transparent)}
.hero-photo figcaption{z-index:2}

.bookings{max-width:1100px;margin:auto}.bookings>p{color:#bbb}.bookings form{max-width:800px}.booking-fields{display:grid;grid-template-columns:1fr 1fr;gap:20px}.bookings label{display:block;font-size:15px;font-weight:bold;margin-bottom:20px}.bookings input,.bookings textarea{display:block;width:100%;margin-top:8px;padding:12px;color:var(--ink);background:#111;border:1px solid #555;border-radius:3px;font:inherit}.bookings textarea{resize:vertical}.bookings input:focus-visible,.bookings textarea:focus-visible{outline:2px solid #eee;outline-offset:3px}.booking-note,#booking-status{font-size:14px;color:#bbb}.bookings .button{cursor:pointer}@media(max-width:600px){.booking-fields{grid-template-columns:1fr;gap:0}}

.booking-trap{position:absolute;left:-10000px;width:1px;height:1px;overflow:hidden}.bookings button:disabled{opacity:.6;cursor:wait}
