
:root{
 --ink:#0C1530;--ink-2:#111D3D;--ink-3:#1A2B56;--line:#28396A;--navy:#1A2B56;--red:#C8102E;
 --cream:#F7F5F0;--muted:#B7C0D6;--accent:#EF3B52;--accent-2:#FF6F80;--amber:#F7F5F0;--sky:#A9C1F5;
 --fd:"Big Shoulders Display","Arial Narrow","Helvetica Neue Condensed",Impact,sans-serif;
 --fs:"Instrument Serif",Georgia,"Times New Roman",serif;
 --fb:Manrope,system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;
 --fm:"Space Mono",ui-monospace,"SFMono-Regular",Menlo,Consolas,monospace;
 --wrap:1240px;--r:14px;
}
*,*::before,*::after{box-sizing:border-box}
html{overflow-x:clip;-webkit-text-size-adjust:100%;scroll-behavior:smooth;scroll-padding-top:84px}
body{margin:0;background:var(--ink);color:var(--cream);font:400 1.0625rem/1.65 var(--fb);-webkit-font-smoothing:antialiased;overflow-x:hidden}
body::after{content:"";position:fixed;inset:-50%;z-index:100;pointer-events:none;opacity:.07;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='180' height='180'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");animation:grain 1.2s steps(6) infinite}
@keyframes grain{0%{transform:translate(0,0)}20%{transform:translate(-3%,2%)}40%{transform:translate(2%,-3%)}60%{transform:translate(-2%,-1%)}80%{transform:translate(3%,3%)}100%{transform:translate(0,0)}}
img,svg{display:block;max-width:100%}
a{color:inherit}
p{margin:0 0 1em}
h1,h2,h3{margin:0;font-family:var(--fd);font-weight:900;text-transform:uppercase;line-height:.9;letter-spacing:.005em}
h1 em,h2 em,h3 em{font-family:var(--fs);font-weight:400;font-style:italic;text-transform:none;letter-spacing:-.01em;color:var(--accent)}
.wrap{width:min(var(--wrap),100% - 2.5rem);margin-inline:auto}
.skip{position:absolute;left:-999px;top:.5rem;z-index:200;background:var(--red);color:#fff;padding:.7rem 1rem;font-weight:700;border-radius:8px}
.skip:focus{left:.5rem}
:focus-visible{outline:3px solid var(--sky);outline-offset:3px;border-radius:4px}
.eyebrow{display:inline-flex;align-items:center;gap:.6rem;font:700 .74rem/1 var(--fm);letter-spacing:.18em;text-transform:uppercase;color:var(--accent);margin:0 0 1.2rem}
.eyebrow::before{content:"";width:14px;height:14px;border-radius:50%;background:radial-gradient(circle,var(--red) 0 30%,#fff 31% 58%,var(--navy) 59%);box-shadow:0 0 0 1.5px rgba(255,255,255,.9)}
.ph{font-family:var(--fm);font-size:.86em;letter-spacing:.02em;color:var(--sky);background:rgba(169,193,245,.08);border:1px dashed rgba(169,193,245,.5);border-radius:6px;padding:.08em .4em;white-space:nowrap}

/* buttons */
.btn{--bg:var(--red);--fg:#FFFFFF;display:inline-flex;align-items:center;justify-content:center;gap:.6rem;min-height:54px;padding:.9rem 1.6rem;border-radius:999px;background:var(--bg);color:var(--fg);font:800 1rem/1 var(--fb);letter-spacing:.01em;text-decoration:none;border:2px solid var(--bg);cursor:pointer;transition:transform .2s,background-color .2s,color .2s,box-shadow .2s}
.btn:hover{transform:translateY(-2px);box-shadow:0 12px 30px -10px rgba(200,16,46,.55)}
.btn-ghost{--bg:transparent;--fg:var(--cream);border-color:rgba(244,237,225,.4)}
.btn-ghost:hover{border-color:var(--cream);background:var(--cream);color:var(--ink);box-shadow:none}
.btn svg{width:18px;height:18px;flex:none}

/* header */
.head{position:fixed;inset:0 0 auto 0;z-index:50;transition:background-color .3s,border-color .3s,backdrop-filter .3s;border-bottom:1px solid transparent}
.head.solid{background:rgba(12,21,48,.88);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border-bottom-color:var(--line)}
.nav{display:flex;align-items:center;justify-content:space-between;gap:1rem;height:76px}
.logo{display:flex;align-items:center;gap:.65rem;text-decoration:none}
.logo img{width:46px;height:46px;border-radius:50%;background:#fff;box-shadow:0 0 0 2px rgba(255,255,255,.15)}
.logo b{font:900 1.55rem/1 var(--fd);text-transform:uppercase;letter-spacing:.02em}
.logo b span{color:var(--accent)}
.menu{list-style:none;margin:0;padding:0;display:flex;gap:1.8rem}
.menu a{text-decoration:none;font-weight:600;font-size:.96rem;color:var(--muted);transition:color .2s}
.menu a:hover{color:var(--cream)}
.head .btn{min-height:46px;padding:.7rem 1.25rem;font-size:.95rem}
.burger{display:none;width:48px;height:48px;background:none;border:0;color:var(--cream);cursor:pointer}
.burger span{display:block;width:24px;height:2px;margin:6px auto;background:currentColor;transition:transform .3s,opacity .3s}
.burger[aria-expanded="true"] span:nth-child(1){transform:translateY(8px) rotate(45deg)}
.burger[aria-expanded="true"] span:nth-child(2){opacity:0}
.burger[aria-expanded="true"] span:nth-child(3){transform:translateY(-8px) rotate(-45deg)}
@media (max-width:960px){
 .burger{display:block}.head .btn.hide-sm{display:none}
 .menu{position:fixed;inset:76px 0 0 0;flex-direction:column;gap:0;background:var(--ink);padding:1.5rem 1.25rem;opacity:0;visibility:hidden;transform:translateY(-10px);transition:opacity .25s,transform .25s,visibility .25s}
 .menu.open{opacity:1;visibility:visible;transform:none}
 .menu a{display:block;padding:1rem 0;font:900 2.3rem/1 var(--fd);text-transform:uppercase;color:var(--cream);border-bottom:1px solid var(--line)}
 .menu .m-cta{margin-top:1.5rem}.menu .m-cta .btn{width:100%;font-family:var(--fb);font-size:1.05rem;border-bottom:0;padding:1rem}
}
@media (min-width:961px){.menu .m-cta{display:none}}

/* hero */
.hero{position:relative;min-height:100svh;display:flex;align-items:flex-end;padding:120px 0 clamp(2rem,5vw,4rem);overflow:hidden;isolation:isolate}
.lights{position:absolute;inset:0;z-index:-2;background:radial-gradient(60% 55% at 72% 18%,rgba(200,16,46,.30),transparent 70%),radial-gradient(40% 40% at 15% 85%,rgba(90,130,230,.18),transparent 70%),var(--ink)}
.beam{position:absolute;z-index:-1;top:-10%;width:46vw;height:130%;background:linear-gradient(180deg,rgba(235,240,255,.16),rgba(235,240,255,0) 85%);clip-path:polygon(44% 0,56% 0,100% 100%,0 100%);filter:blur(6px);transform-origin:50% 0;mix-blend-mode:screen}
.beam.b1{left:48%;animation:sway 9s ease-in-out infinite}
.beam.b2{left:10%;opacity:.55;animation:sway 12s ease-in-out -4s infinite reverse}
@keyframes sway{0%,100%{transform:rotate(-7deg)}50%{transform:rotate(7deg)}}
.flight{position:absolute;inset:0;z-index:-1;pointer-events:none}
.flight path{stroke:rgba(244,237,225,.22);stroke-width:2;stroke-dasharray:6 10;fill:none}
.plane{position:absolute;top:0;left:0;width:44px;height:44px;color:var(--accent);offset-path:path("M-60 620 C 300 560, 520 180, 900 220 S 1500 60, 1700 -60");offset-rotate:auto;animation:fly 14s linear infinite}
@keyframes fly{from{offset-distance:0%}to{offset-distance:100%}}
.plane{color:#fff}
.hero-grid{display:grid;grid-template-columns:1.35fr .65fr;gap:clamp(2rem,5vw,4rem);align-items:end}
.hero h1{font-size:clamp(4.2rem,14vw,12.5rem);line-height:.82;margin-bottom:1.6rem}
.hero h1 em{display:block;font-size:.78em;line-height:.95;margin-top:.08em}
.hero .lede{font-size:clamp(1.1rem,1.6vw,1.3rem);color:var(--muted);max-width:44ch;margin-bottom:2rem}
.hero .lede strong{color:var(--cream);font-weight:600}
.actions{display:flex;flex-wrap:wrap;gap:.8rem}
.next{position:relative;background:#FFFFFF;color:var(--ink);border-radius:18px;padding:1.5rem 1.5rem 1.3rem;box-shadow:0 30px 60px -25px rgba(0,0,0,.8);transform:rotate(2deg);transition:transform .3s}
.next:hover{transform:rotate(0)}
.next::before,.next::after{content:"";position:absolute;left:-12px;top:62%;width:24px;height:24px;border-radius:50%;background:var(--ink)}
.next::after{left:auto;right:-12px}
.next small{display:block;font:700 .7rem/1 var(--fm);letter-spacing:.18em;text-transform:uppercase;color:#A50D26;margin-bottom:.9rem}
.next h2{font-size:2.3rem;line-height:.95;margin-bottom:1rem;color:var(--ink)}
.next .ph{color:#1A2B56;background:rgba(26,43,86,.07);border-color:rgba(26,43,86,.4)}
.next .pass-logo{position:absolute;top:1rem;right:1rem;width:58px;height:58px}
.next dl{display:grid;grid-template-columns:1fr 1fr;gap:.8rem 1rem;margin:0 0 1.2rem;padding-top:1rem;border-top:2px dashed rgba(15,13,12,.25)}
.next dt{font:700 .66rem/1 var(--fm);letter-spacing:.14em;text-transform:uppercase;color:#4D5A7A;margin-bottom:.35rem}
.next dd{margin:0;font-weight:700;font-size:.95rem}
.next .btn{width:100%;--bg:var(--navy);--fg:#FFFFFF}
.next .btn:hover{box-shadow:none;background:var(--red);border-color:var(--red);color:#FFFFFF}
@media (max-width:900px){.hero-grid{grid-template-columns:1fr}.next{max-width:420px;transform:rotate(1deg)}}

/* ticker */
.ticker{border-block:1px solid var(--line);background:var(--red);color:#FFFFFF;overflow:hidden}
.ticker-track{display:flex;width:max-content;animation:tick 32s linear infinite}
.ticker ul{display:flex;list-style:none;margin:0;padding:0}
.ticker li{font:900 clamp(1.4rem,3vw,2.1rem)/1 var(--fd);text-transform:uppercase;padding:1rem 1.4rem;white-space:nowrap;display:flex;align-items:center;gap:1.4rem}
.ticker li::after{content:"";width:.7em;height:.7em;border-radius:50%;background:radial-gradient(circle,var(--red) 0 30%,#fff 31% 58%,var(--navy) 59%);box-shadow:0 0 0 2px #fff}
@keyframes tick{to{transform:translateX(-50%)}}

/* sections */
.sec{padding:clamp(5rem,11vw,9rem) 0;position:relative}
.sec-head{display:grid;grid-template-columns:1fr 1fr;gap:2rem 4rem;align-items:end;margin-bottom:clamp(2.5rem,5vw,4rem)}
.sec-head h2{font-size:clamp(3rem,7.5vw,6.4rem)}
.sec-head p{color:var(--muted);font-size:1.12rem;margin:0;max-width:52ch}
@media (max-width:800px){.sec-head{grid-template-columns:1fr}}

/* stats */
.stats{display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid var(--line)}
.stat{padding:2.2rem 1.5rem 0 0}
.stat+.stat{padding-left:1.5rem;border-left:1px solid var(--line)}
.stat .n{font:900 clamp(3.6rem,9vw,7.5rem)/.85 var(--fd);color:var(--cream)}
.stat .n i{font-style:normal;color:var(--accent)}
.stat p{margin:.8rem 0 0;color:var(--muted);font-size:.98rem;max-width:22ch}
@media (max-width:640px){.stats{grid-template-columns:1fr}.stat+.stat{border-left:0;padding-left:0;border-top:1px solid var(--line);margin-top:2rem}}

/* departures board */
.board{background:#081026;border:1px solid var(--line);border-radius:var(--r);padding:clamp(1rem,2.5vw,1.8rem);box-shadow:inset 0 0 60px rgba(0,0,0,.6)}
.board-top{display:flex;justify-content:space-between;align-items:center;gap:1rem;flex-wrap:wrap;padding-bottom:1rem;margin-bottom:.5rem;border-bottom:1px solid var(--line);font:700 .8rem/1 var(--fm);letter-spacing:.16em;text-transform:uppercase;color:var(--amber)}
.board-top .clock{font-size:1.1rem;letter-spacing:.08em}
.row{display:grid;grid-template-columns:1.1fr 2.2fr 1.6fr .9fr 1fr;gap:1rem;align-items:center;padding:1rem .2rem;border-bottom:1px solid #1B2A55;font:700 clamp(.85rem,1.3vw,1rem)/1.3 var(--fm);text-transform:uppercase;color:var(--amber)}
.row.hdr{color:var(--muted);font-size:.72rem;letter-spacing:.16em;padding-block:.7rem}
.flap{display:inline-flex;flex-wrap:wrap;gap:2px}
.flap span{display:inline-block;min-width:.85em;text-align:center;background:#13204A;border-radius:2px;padding:.12em .08em;box-shadow:inset 0 -1px 0 rgba(0,0,0,.8),inset 0 1px 0 rgba(255,255,255,.04)}
.status{justify-self:end;padding:.4em .7em;border-radius:4px;background:rgba(239,59,82,.16);color:var(--accent-2);font-size:.8rem;letter-spacing:.08em}
.row a.go{justify-self:end;text-decoration:none;color:#fff;background:var(--red);padding:.65em 1em;border-radius:999px;font-size:.8rem;letter-spacing:.06em;transition:background-color .2s}
.row a.go:hover{background:#fff;color:var(--navy)}
.row.empty{grid-template-columns:1fr;color:var(--muted)}
.row .c-venue small{display:block;color:var(--muted);font-size:.8em;margin-top:.2em}
.board-foot{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;padding-top:1.4rem;color:var(--muted);font-size:.95rem}
.board-foot p{margin:0}
@media (max-width:860px){
 .row.hdr{display:none}
 .row{grid-template-columns:1fr auto;grid-template-areas:"date status" "show show" "venue venue" "time go";gap:.55rem 1rem;padding:1.2rem .2rem}
 .row .c-date{grid-area:date}.row .c-show{grid-area:show;font-size:1.05rem}.row .c-venue{grid-area:venue;color:var(--muted)}.row .c-time{grid-area:time}.row .status{grid-area:status;justify-self:end}.row a.go{grid-area:go}
 .row .c-time,.row .status{display:block}
}

/* about */
.about>*,.book>*,.hero-grid>*,.mic-band>*{min-width:0}
.about{display:grid;grid-template-columns:.95fr 1.05fr;gap:clamp(2.5rem,6vw,6rem);align-items:center}
.poster{position:relative;aspect-ratio:4/5;border-radius:var(--r);overflow:hidden;background:#FFFFFF;color:var(--navy);padding:clamp(1.5rem,3vw,2.4rem);display:flex;flex-direction:column;justify-content:space-between;box-shadow:0 40px 80px -40px rgba(200,16,46,.6)}
.poster::before{content:"";position:absolute;inset:0;background:repeating-linear-gradient(-12deg,transparent 0 22px,rgba(26,43,86,.04) 22px 24px)}
.poster > *{position:relative}
.poster .top{display:flex;justify-content:space-between;font:700 .75rem/1.3 var(--fm);letter-spacing:.14em;text-transform:uppercase}
.poster .big{font:900 clamp(2.6rem,5vw,4rem)/.85 var(--fd);text-transform:uppercase;margin:0 0 1rem}
.poster .big em{font:italic 400 .62em/1 var(--fs);text-transform:none;display:block;margin-top:.1em;color:var(--red)}
.poster img.plogo{width:78%;height:auto;margin:0 auto;flex:1 1 auto;min-height:0;object-fit:contain}
.poster .bottom{display:flex;justify-content:space-between;align-items:flex-end;font:700 .75rem/1.4 var(--fm);letter-spacing:.12em;text-transform:uppercase;border-top:2px solid var(--navy);padding-top:.9rem}
.poster .ph{color:var(--navy);background:rgba(26,43,86,.07);border-color:rgba(26,43,86,.4)}
.about-copy h2{font-size:clamp(3rem,6.5vw,5.6rem);margin-bottom:1.8rem}
.about-copy p{color:var(--muted);font-size:1.12rem;max-width:56ch}
.about-copy p.big{font:italic 400 clamp(1.6rem,2.8vw,2.3rem)/1.2 var(--fs);color:var(--cream)}
.facts{list-style:none;margin:2rem 0 0;padding:0;display:grid;gap:0;border-top:1px solid var(--line)}
.facts li{display:flex;justify-content:space-between;gap:1rem;padding:1rem 0;border-bottom:1px solid var(--line);font-size:1rem}
.facts li span:first-child{font:700 .72rem/1.6 var(--fm);letter-spacing:.14em;text-transform:uppercase;color:var(--muted)}
.facts li span:last-child{text-align:right;font-weight:600}
@media (max-width:860px){.about{grid-template-columns:1fr}.poster{max-width:460px}}

/* lineup */
.acts{display:grid;grid-template-columns:repeat(2,1fr);gap:1rem;max-width:760px}
.act{position:relative;background:var(--ink-2);border:1px solid var(--line);border-radius:var(--r);overflow:hidden;transition:transform .3s,border-color .3s}
.act:hover{transform:translateY(-6px);border-color:rgba(239,59,82,.7)}
.act .pic img,.gal figure img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:1}
.act .pic{position:relative;aspect-ratio:1;display:grid;place-items:center;text-align:center;padding:1rem;background:radial-gradient(70% 60% at 50% 30%,rgba(235,240,255,.1),transparent 70%),var(--ink-3)}
.act .pic svg{width:46%;opacity:.35}
.act .pic .ph{position:absolute;top:1rem;left:1rem}
.act .body{padding:1.2rem 1.3rem 1.4rem}
.act h3{font-size:1.9rem;margin-bottom:.35rem}
.act p{margin:0;color:var(--muted);font-size:.95rem}

@media (max-width:480px){.acts{grid-template-columns:1fr}}

/* open mic */
.mic-band{background:#FFFFFF;color:var(--navy);border-radius:clamp(18px,3vw,32px);padding:clamp(2.5rem,6vw,5rem);display:grid;grid-template-columns:1.2fr .8fr;gap:clamp(2rem,5vw,4rem);align-items:center;position:relative;overflow:hidden}
.mic-band h2{font-size:clamp(3.2rem,8vw,7rem);color:var(--navy)}
.mic-band h2 em{color:var(--red)}
.mic-band p{font-size:1.15rem;color:#3A4668;max-width:48ch}
.mic-band .eyebrow{color:#A50D26}
.mic-band .btn-ghost{--fg:var(--navy);border-color:rgba(26,43,86,.4)}
.mic-band .btn-ghost:hover{background:var(--navy);color:#fff;border-color:var(--navy)}
.mic-band .ph{color:var(--navy);background:rgba(26,43,86,.07);border-color:rgba(26,43,86,.4)}
.steps{list-style:none;margin:0;padding:0;counter-reset:s}
.steps li{counter-increment:s;display:grid;grid-template-columns:auto 1fr;gap:1rem;padding:1.1rem 0;border-bottom:2px solid rgba(26,43,86,.12)}
.steps li::before{content:counter(s,decimal-leading-zero);font:900 2rem/1 var(--fd);color:var(--red)}
.steps b{display:block;font:900 1.5rem/1 var(--fd);text-transform:uppercase;margin-bottom:.3rem}
.steps span{color:#3A4668;font-size:.98rem}
@media (max-width:860px){.mic-band{grid-template-columns:1fr}}

/* reviews */
.rev-grid{display:grid;grid-template-columns:1.1fr 1fr 1fr 1fr;gap:1rem}
.rev-score{background:var(--red);color:#FFFFFF;border-radius:var(--r);padding:2rem;display:flex;flex-direction:column;justify-content:space-between;gap:1.5rem}
.rev-score .n{font:900 clamp(4.5rem,8vw,6.5rem)/.85 var(--fd)}
.rev-score p{margin:0;font-weight:700}
.rev-score a{font-weight:800;text-underline-offset:4px}
.rev{background:var(--ink-2);border:1px solid var(--line);border-radius:var(--r);padding:2rem;display:flex;flex-direction:column;gap:1.4rem}
.rev .q{font:400 4rem/.5 var(--fs);color:var(--accent);height:1.6rem}
.rev blockquote{margin:0;font:italic 400 1.35rem/1.35 var(--fs);flex:1}
.rev footer{display:flex;align-items:center;gap:.7rem;font-size:.9rem;color:var(--muted)}
.stars{color:#FFFFFF;letter-spacing:.15em}
@media (max-width:1000px){.rev-grid{grid-template-columns:1fr 1fr}}
@media (max-width:560px){.rev-grid{grid-template-columns:1fr}}

/* gallery */
.gal{display:grid;grid-template-columns:repeat(6,1fr);grid-auto-rows:clamp(120px,15vw,210px);gap:.8rem}
.gal figure{margin:0;border-radius:var(--r);overflow:hidden;position:relative;background:radial-gradient(80% 70% at 30% 20%,rgba(200,16,46,.2),transparent 70%),var(--ink-3);border:1px solid var(--line);display:grid;place-items:center;text-align:center;padding:1rem}
.gal figure:nth-child(1){grid-column:span 4;grid-row:span 2}
.gal figure:nth-child(2){grid-column:span 2;grid-row:span 2}
.gal figure:nth-child(3){grid-column:span 2;grid-row:span 2}
.gal figure:nth-child(4){grid-column:span 4;grid-row:span 2}
.gal figure{padding:0}
.gal figure img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform .8s cubic-bezier(.2,.7,.2,1)}
.gal figure:nth-child(2) img,.gal figure:nth-child(3) img{object-position:50% 20%}
.gal figure:nth-child(4) img{object-position:35% 30%}
.gal figure:hover img{transform:scale(1.04)}
@media (max-width:700px){.gal{grid-template-columns:1fr 1fr;grid-auto-rows:auto}.gal figure:nth-child(n){grid-column:span 1;grid-row:auto;aspect-ratio:4/5}.gal figure:nth-child(1),.gal figure:nth-child(4){grid-column:span 2;aspect-ratio:4/3}}

/* booking */
.book{display:grid;grid-template-columns:.9fr 1.1fr;gap:clamp(2.5rem,6vw,6rem);align-items:start}
.book h2{font-size:clamp(3rem,7vw,6rem);margin-bottom:1.5rem}
.book .intro p{color:var(--muted);font-size:1.12rem;max-width:48ch}
.uses{list-style:none;margin:2rem 0;padding:0;display:flex;flex-wrap:wrap;gap:.6rem}
.uses li{border:1px solid var(--line);border-radius:999px;padding:.55rem 1rem;font-weight:600;font-size:.92rem}
.contact-line{display:flex;flex-direction:column;gap:.3rem;margin-top:2rem;padding-top:1.5rem;border-top:1px solid var(--line)}
.contact-line small{font:700 .72rem/1 var(--fm);letter-spacing:.16em;text-transform:uppercase;color:var(--muted)}
.contact-line a{font:900 clamp(1.4rem,3vw,2rem)/1.1 var(--fd);text-transform:uppercase;text-decoration:none;word-break:break-all}
.contact-line a:hover{color:var(--accent)}
form{background:var(--ink-2);border:1px solid var(--line);border-radius:clamp(16px,2vw,24px);padding:clamp(1.5rem,4vw,2.8rem)}
.tabs{display:flex;gap:.4rem;background:var(--ink);border:1px solid var(--line);border-radius:999px;padding:.3rem;margin-bottom:1.8rem}
.tabs button{flex:1;min-height:44px;border:0;border-radius:999px;background:transparent;color:var(--muted);font:700 .92rem/1 var(--fb);cursor:pointer;transition:background-color .2s,color .2s}
.tabs button[aria-pressed="true"]{background:#fff;color:var(--navy)}
.field{margin-bottom:1.1rem}
.grid2{display:grid;grid-template-columns:1fr 1fr;gap:1rem}
label{display:block;font-weight:600;font-size:.92rem;margin-bottom:.45rem}
input,textarea,select{width:100%;min-height:52px;font:inherit;color:var(--cream);background:var(--ink);border:1px solid #3A4B7C;border-radius:10px;padding:.85rem 1rem}
textarea{min-height:140px;resize:vertical}
input:focus,textarea:focus,select:focus{outline:2px solid var(--sky);outline-offset:1px;border-color:transparent}
.hint{margin:1rem 0 0;font-size:.88rem;color:var(--muted)}
form .btn{width:100%;margin-top:.4rem}
@media (max-width:860px){.book{grid-template-columns:1fr}}
@media (max-width:520px){.grid2{grid-template-columns:1fr}}

/* follow */
.follow{text-align:center;padding:clamp(5rem,11vw,9rem) 0;background:radial-gradient(50% 70% at 50% 100%,rgba(200,16,46,.28),transparent 70%)}
.follow h2{font-size:clamp(3.4rem,11vw,10rem);margin-bottom:1.5rem}
.follow p{color:var(--muted);font-size:1.15rem;max-width:48ch;margin:0 auto 2rem}
.follow .actions{justify-content:center}

/* footer */
.foot{border-top:1px solid var(--line);padding:3.5rem 0 calc(2rem + env(safe-area-inset-bottom))}
.foot-grid{display:grid;grid-template-columns:1.5fr 1fr 1fr 1fr;gap:2rem}
.foot h3{font:700 .72rem/1 var(--fm);letter-spacing:.16em;color:var(--muted);margin-bottom:1rem}
.foot ul{list-style:none;margin:0;padding:0}
.foot li{margin-bottom:.55rem}
.foot a{text-decoration:none}
.foot a:hover{color:var(--accent);text-decoration:underline}
.foot .blurb{color:var(--muted);max-width:34ch;margin-top:1rem}
.foot-base{display:flex;flex-wrap:wrap;justify-content:space-between;gap:1rem;margin-top:3rem;padding-top:1.5rem;border-top:1px solid var(--line);font-size:.88rem;color:var(--muted)}
@media (max-width:860px){.foot-grid{grid-template-columns:1fr 1fr}}
@media (max-width:520px){.foot-grid{grid-template-columns:1fr}}

/* mobile ticket bar */
.mbar{display:none}
@media (max-width:700px){
 .mbar{display:flex;gap:.5rem;position:fixed;inset:auto 0 0 0;z-index:40;padding:.6rem .75rem calc(.6rem + env(safe-area-inset-bottom));background:rgba(12,21,48,.94);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);border-top:1px solid var(--line);transform:translateY(110%);transition:transform .3s}
 .mbar.show{transform:none}
 .mbar .btn{flex:1;min-height:50px;padding:.7rem}
 .foot{padding-bottom:calc(6rem + env(safe-area-inset-bottom))}
}

/* reveal */
.rv{opacity:0;transform:translateY(28px);transition:opacity .9s cubic-bezier(.2,.7,.2,1),transform .9s cubic-bezier(.2,.7,.2,1)}
.rv.in{opacity:1;transform:none}
.hero .rise{animation:rise 1s cubic-bezier(.2,.7,.2,1) both}
.hero .rise:nth-child(2){animation-delay:.1s}.hero .rise:nth-child(3){animation-delay:.2s}.hero .rise:nth-child(4){animation-delay:.3s}
@keyframes rise{from{opacity:0;transform:translateY(30px)}to{opacity:1;transform:none}}
@media (prefers-reduced-motion:reduce){
 *,*::before,*::after{animation:none!important;transition:none!important}
 html{scroll-behavior:auto}.rv{opacity:1;transform:none}.plane{display:none}
}
.field-err{display:block;color:#FF8A9A;font-weight:600;font-size:.92rem;margin:0 0 .45rem}[aria-invalid="true"]{border-color:#FF8A9A!important;outline:1px solid #FF8A9A}

/* ---- added for the editable site ---- */
.sec[data-tight]{padding-top:0}
.mt{margin-top:1.8rem}
.eyebrow.center{justify-content:center}
.hbtns{display:flex;align-items:center;gap:.4rem}
.hero-grid.solo{grid-template-columns:1fr}
.book.solo{grid-template-columns:1fr}
.annc{background:var(--red);color:#fff;font:600 .92rem/1.35 var(--fb)}
.annc .wrap{display:flex;gap:.4rem 1rem;justify-content:center;align-items:center;flex-wrap:wrap;min-height:40px;padding:.45rem 0;text-align:center}
.annc a{color:#fff;font-weight:800;text-underline-offset:3px}
.has-annc .hero{padding-top:170px}
html.has-annc-root{scroll-padding-top:124px}
@media (max-width:960px){.menu{inset:var(--hh,76px) 0 0 0}}
.soc-row{display:flex;justify-content:center;flex-wrap:wrap;gap:.6rem;margin-top:1.8rem}
.soc-row.left{justify-content:flex-start;margin-top:1.2rem}
.soc{display:grid;place-items:center;width:44px;height:44px;border-radius:50%;border:1px solid var(--line);color:var(--cream);transition:background-color .2s,color .2s,border-color .2s}
.soc:hover{background:var(--cream);color:var(--ink);border-color:var(--cream)}
.soc svg{width:19px;height:19px}
.act .pic>svg{color:var(--cream)}
.act h3 a{color:inherit;text-decoration:none}.act h3 a:hover{text-decoration:underline}
.custom{display:grid;gap:clamp(2rem,5vw,4rem);align-items:center}
.custom.has-img{grid-template-columns:1.1fr .9fr}
.custom h2{font-size:clamp(2.6rem,6vw,5rem);margin-bottom:1.3rem}
.custom p{color:var(--muted);font-size:1.12rem;max-width:60ch}
.custom img{width:100%;border-radius:var(--r);object-fit:cover;aspect-ratio:4/3}
.mic-band.one{display:block}
.mic-band .custom p{color:#3A4668}
.mic-band .custom h2{color:var(--navy)}
@media (max-width:860px){.custom.has-img{grid-template-columns:1fr}}
.preview-flag{position:fixed;left:50%;bottom:14px;transform:translateX(-50%);z-index:300;background:#FFD24D;color:#1A1A1A;font:800 .8rem/1 var(--fb);letter-spacing:.06em;text-transform:uppercase;padding:.6rem 1rem;border-radius:999px;box-shadow:0 8px 24px rgba(0,0,0,.4);pointer-events:none}
