/* Spirit Fingers Trio site styles, release era (2026-10-13).
   Design read: release-era band site for jazz-fusion fans, bookers and press; nocturnal, supernatural Eclipse language.
   Tokens come from /brand/tokens.css (lane A v2.0). Volt = TRIO, links, primary action. Fire = corona only.
   Type: Archivo wide (display), Hanken Grotesk (body), IBM Plex Mono (dates, countdown).
   Shape rule: pills for buttons and tags, --sf-radius-card for photos and cards. Nothing else rounds.
   Signature: the totality clock, a moon disc that slides over the corona as Nov 17 nears. */

*,*::before,*::after{box-sizing:border-box}
[hidden]{display:none!important}
:root{color-scheme:dark;--gut:clamp(16px,4.5vw,64px);--ok:#6fd8a4;--err:#ff8a7a;--scrim:rgba(7,7,11,.72)}
html{-webkit-text-size-adjust:100%;scroll-padding-top:84px;overflow-x:clip}
@media (prefers-reduced-motion:no-preference){html{scroll-behavior:smooth}}
body{margin:0;background:var(--sf-void);color:var(--sf-ink);font:400 var(--sf-step-0)/1.6 var(--sf-font-body);-webkit-font-smoothing:antialiased;overflow-x:clip}
img,video{max-width:100%;height:auto;display:block}
a{color:var(--sf-volt);text-underline-offset:.2em;text-decoration-thickness:1px}
a:hover{color:var(--sf-volt-soft)}
:focus-visible{outline:2px solid var(--sf-volt);outline-offset:3px}
.skip{position:absolute;left:-9999px;top:8px;z-index:60;background:var(--sf-volt);color:var(--sf-void);padding:10px 16px;font-weight:700;border-radius:var(--sf-radius-pill)}
.skip:focus{left:12px}
.wrap{padding-inline:var(--gut);margin-inline:auto;max-width:1440px}
p{margin:0 0 1em}
.measure{max-width:60ch}
.mute{color:var(--sf-mute)}
.volt{color:var(--sf-volt)}
.mono{font-family:var(--sf-font-mono);font-variant-numeric:tabular-nums}
.label{font:500 12px/1.3 var(--sf-font-mono);letter-spacing:var(--sf-track-label);text-transform:uppercase;color:var(--sf-mute)}
h1,h2,h3{font-family:var(--sf-font-display);font-weight:850;line-height:.98;letter-spacing:-.005em;margin:0 0 .4em;text-wrap:balance}
h1{font-size:var(--sf-step-4);font-stretch:var(--sf-stretch-wide)}
h2{font-size:var(--sf-step-3);font-stretch:var(--sf-stretch-display)}
h3{font-size:var(--sf-step-1);font-stretch:var(--sf-stretch-display);line-height:1.1}
.lede{font-size:var(--sf-step-1);line-height:1.4;max-width:34ch}

/* nav */
.top{position:sticky;top:env(safe-area-inset-top,0px);z-index:40;background:rgba(7,7,11,.86);-webkit-backdrop-filter:saturate(140%) blur(10px);backdrop-filter:saturate(140%) blur(10px);border-bottom:1px solid var(--sf-line)}
.top .wrap{display:flex;align-items:center;gap:20px;min-height:64px}
.brand{display:flex;align-items:center;gap:10px;text-decoration:none;color:var(--sf-ink);flex:none}
.brand img{height:26px;width:auto}
.nav{display:flex;gap:4px;margin-left:auto;align-items:center;flex-wrap:wrap}
.nav a{color:var(--sf-ink);text-decoration:none;font:600 15px/1 var(--sf-font-body);padding:12px 12px;border-radius:var(--sf-radius-pill)}
.nav a:hover{color:var(--sf-volt-soft)}
.nav a[aria-current=page]{color:var(--sf-volt)}
.navbtn{display:none;margin-left:auto;background:none;border:1px solid var(--sf-line);color:var(--sf-ink);font:600 15px/1 var(--sf-font-body);padding:12px 18px;border-radius:var(--sf-radius-pill);min-height:44px;cursor:pointer}
@media (max-width:860px){
  .navbtn{display:inline-flex}
  .nav{display:none;position:absolute;left:0;right:0;top:100%;background:var(--sf-night);flex-direction:column;align-items:stretch;padding:8px var(--gut) 16px;border-bottom:1px solid var(--sf-line);overscroll-behavior:contain}
  .nav.open{display:flex}
  .nav a{padding:14px 4px;font-size:18px;border-radius:0}
}

/* buttons */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:48px;padding:0 24px;border-radius:var(--sf-radius-pill);font:700 16px/1 var(--sf-font-body);text-decoration:none;border:1px solid transparent;cursor:pointer;white-space:nowrap;transition:background-color .2s,color .2s,border-color .2s,transform .15s}
.btn:active{transform:translateY(1px)}
.btn-volt{background:var(--sf-volt);color:var(--sf-void)}
.btn-volt:hover{background:var(--sf-volt-soft);color:var(--sf-void)}
.btn-ghost{background:rgba(7,7,11,.5);color:var(--sf-ink);border-color:rgba(234,246,255,.38)}
.btn-ghost:hover{border-color:var(--sf-volt-soft);color:var(--sf-volt-soft)}
.btn-sm{min-height:44px;padding:0 18px;font-size:15px}
.btn[disabled]{opacity:.6;cursor:progress}
.btns{display:flex;flex-wrap:wrap;gap:12px}
.btn small{font:500 12px/1 var(--sf-font-mono);opacity:.8}

/* home hero */
.hero{position:relative;min-height:min(100svh,940px);display:grid;align-items:end;isolation:isolate;overflow:hidden}
.hero-art{position:absolute;inset:0;z-index:-2;background:var(--sf-void)}
.hero-art img{width:100%;height:100%;object-fit:cover;object-position:70% 30%}
.hero::after{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(180deg,rgba(7,7,11,.35) 0%,rgba(7,7,11,0) 28%,rgba(7,7,11,.55) 58%,rgba(7,7,11,.94) 86%,var(--sf-void) 100%),linear-gradient(90deg,rgba(7,7,11,.78) 0%,rgba(7,7,11,.2) 62%,rgba(7,7,11,0) 100%)}
.hero .wrap{width:100%;padding-block:clamp(72px,14vh,160px) clamp(32px,6vh,64px);display:grid;gap:clamp(18px,2.4vh,30px)}
.hero h1{margin:0;max-width:11ch;font-size:clamp(2.6rem,1.2rem + 5.2vw,6.4rem)}
.hero h1 .trio{color:var(--sf-volt)}
.hero .sub{font-size:var(--sf-step-1);line-height:1.35;max-width:30ch;margin:0}
.count{display:flex;align-items:baseline;gap:18px;flex-wrap:wrap;font-family:var(--sf-font-mono);font-variant-numeric:tabular-nums}
.count .n{font:500 clamp(2.4rem,1.6rem + 3.4vw,4.4rem)/1 var(--sf-font-mono);color:var(--sf-hot)}
.count .u{font-size:13px;letter-spacing:var(--sf-track-label);text-transform:uppercase;color:var(--sf-mute);margin-left:4px}
.count .to{font-size:13px;letter-spacing:.08em;color:var(--sf-mute);flex-basis:100%}
.count.out .n{color:var(--sf-volt)}
.hero .when{font:500 13px/1.5 var(--sf-font-mono);letter-spacing:.06em;color:var(--sf-mute);margin:0}
@media (max-width:640px){
  .hero{min-height:calc(100svh - 64px)}
  .hero .wrap{padding-block:clamp(120px,30vh,260px) 28px;gap:16px}
  .hero-art img{object-position:50% 20%}
  .hero .btns{display:grid;grid-template-columns:1fr 1fr;gap:10px}
  .hero .btns .btn:first-child{grid-column:1/-1}
  .hero .btns .btn{padding:0 12px}
}

/* section rhythm */
.sec{padding-block:clamp(64px,10vw,140px)}
.sec + .sec{border-top:1px solid var(--sf-line)}
.sec-tight{padding-block:clamp(48px,7vw,96px)}

/* release */
.release{display:grid;gap:clamp(28px,5vw,72px);grid-template-columns:minmax(0,7fr) minmax(0,5fr);align-items:center}
.release figure{margin:0}
.release figure img{border-radius:var(--sf-radius-card);width:100%;aspect-ratio:3/2;object-fit:cover}
.release figcaption{margin-top:10px;font:500 13px/1.4 var(--sf-font-mono);color:var(--sf-mute)}
.tracks{list-style:none;margin:20px 0 28px;padding:0;counter-reset:t;columns:2;column-gap:32px;max-width:36rem}
.tracks li{counter-increment:t;padding:8px 0;break-inside:avoid;font-weight:600}
.tracks li::before{content:counter(t,decimal-leading-zero);font:500 12px/1 var(--sf-font-mono);color:var(--sf-mute);margin-right:12px}
.billing{font:500 14px/1.5 var(--sf-font-mono);color:var(--sf-mute);max-width:52ch}
@media (max-width:820px){.release{grid-template-columns:1fr}}

/* band duo */
.duo{display:grid;grid-template-columns:7fr 5fr;gap:clamp(12px,2vw,24px);align-items:end}
.duo figure{margin:0;position:relative}
.duo img{width:100%;object-fit:cover;border-radius:var(--sf-radius-card)}
.duo figure:first-child img{aspect-ratio:4/5}
.duo figure:last-child img{aspect-ratio:3/4}
.duo figcaption{padding-top:14px}
.duo figcaption b{display:block;font:850 var(--sf-step-2)/1 var(--sf-font-display);font-stretch:var(--sf-stretch-display)}
.duo figcaption span{color:var(--sf-mute)}
@media (max-width:640px){.duo{grid-template-columns:1fr 1fr}.duo figure:first-child img,.duo figure:last-child img{aspect-ratio:3/4}.duo figcaption b{font-size:var(--sf-step-1)}}
.chairs{margin-top:clamp(28px,4vw,48px);display:grid;grid-template-columns:minmax(0,1fr) auto;gap:20px;align-items:end}
@media (max-width:720px){.chairs{grid-template-columns:1fr}}
.guest{font:500 15px/1.5 var(--sf-font-mono);color:var(--sf-mute)}
.guest b{color:var(--sf-ink);font-weight:500}

/* universe strip */
.strip{display:grid;grid-auto-flow:column;grid-auto-columns:clamp(150px,22vw,240px);gap:12px;overflow-x:auto;scroll-snap-type:x mandatory;scroll-padding-inline:var(--gut);padding:4px var(--gut) 18px;margin-inline:calc(var(--gut) * -1);overscroll-behavior-x:contain;scrollbar-color:var(--sf-dusk) transparent}
.strip a{scroll-snap-align:start;text-decoration:none;color:var(--sf-ink);display:block}
.strip img{aspect-ratio:2/3;object-fit:cover;width:100%;border-radius:var(--sf-radius-card);background:var(--sf-dusk);transition:transform .3s cubic-bezier(.16,1,.3,1)}
.strip a:hover img{transform:translateY(-4px)}
.strip b{display:block;margin-top:10px;font:800 16px/1.15 var(--sf-font-display);font-stretch:var(--sf-stretch-display)}
.strip span{display:block;font-size:14px;color:var(--sf-mute)}

/* nov 17 band: totality clock */
.party{overflow:visible;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:clamp(32px,6vw,96px);align-items:center}
@media (max-width:820px){.party{grid-template-columns:1fr}}
.date-big{font:500 clamp(4rem,2rem + 12vw,11rem)/.85 var(--sf-font-mono);letter-spacing:-.04em;color:var(--sf-ink);margin:0 0 .15em;font-variant-numeric:tabular-nums}
.facts{list-style:none;padding:0;margin:20px 0 28px;display:grid;gap:10px}
.facts li{display:grid;grid-template-columns:7.5rem 1fr;gap:12px;align-items:baseline}
.facts li > span:first-child{font:500 12px/1.4 var(--sf-font-mono);letter-spacing:.14em;text-transform:uppercase;color:var(--sf-mute)}
@media (max-width:420px){.facts li{grid-template-columns:1fr;gap:2px}}
.ecl{position:relative;width:min(78vw,420px);aspect-ratio:1;margin-inline:auto;--off:1}
.ecl .halo{position:absolute;inset:-34%;border-radius:50%;background:radial-gradient(circle,rgba(246,181,62,.0) 0 33%,rgba(246,181,62,.55) 36%,rgba(234,246,255,.5) 38%,rgba(159,214,255,.28) 46%,rgba(70,177,255,.12) 58%,transparent 72%);opacity:calc(1 - var(--off) * .8)}
.ecl .sun{position:absolute;inset:0;border-radius:50%;background:radial-gradient(circle,var(--sf-hot) 0 40%,var(--sf-volt-soft) 78%,var(--sf-volt) 100%)}
.ecl .moon{position:absolute;inset:-1px;border-radius:50%;background:var(--sf-void);transform:translateX(calc(var(--off) * 100%))}
@media (prefers-reduced-motion:no-preference){.ecl .moon{transition:transform 1.8s cubic-bezier(.16,1,.3,1)}.ecl .halo{transition:opacity 1.8s}}
.ecl-cap{text-align:center;margin-top:28px}
.ecl-cap .label{display:block;margin-top:6px}

/* universe gallery */
.cast{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,240px),1fr));gap:clamp(12px,1.6vw,20px);align-items:start}
@media (max-width:520px){.cast{grid-template-columns:1fr 1fr}}
.char{background:var(--sf-night);border-radius:var(--sf-radius-card);overflow:hidden;border:1px solid var(--sf-line)}
.char summary{list-style:none;cursor:pointer;display:block}
.char summary::-webkit-details-marker{display:none}
.char summary img{aspect-ratio:2/3;object-fit:cover;width:100%;background:var(--sf-dusk)}
.char .nm{padding:12px 14px 14px;display:block}
.char .nm b{display:block;font:850 clamp(15px,1.1rem + .2vw,19px)/1.1 var(--sf-font-display);font-stretch:var(--sf-stretch-display)}
.char .nm span{display:block;font-size:14px;color:var(--sf-mute);margin-top:2px}
.char .nm i{font-style:normal;display:inline-block;margin-top:8px;font:500 11px/1 var(--sf-font-mono);letter-spacing:.14em;text-transform:uppercase;color:var(--accent,var(--sf-volt))}
.char .more{padding:0 14px 16px;font-size:15px}
.char .more p{margin:0 0 .7em}
.char .power{font-weight:600}
.char[open]{grid-column:span 2;border-color:var(--accent,var(--sf-volt))}
@media (max-width:520px){.char[open]{grid-column:1/-1}}
.char[open] summary img{aspect-ratio:4/5}
.char:focus-within{border-color:var(--sf-volt)}
.cast-group{margin-top:clamp(40px,6vw,72px)}
.cast-group h2{font-size:var(--sf-step-2)}

/* lists and cards on inner pages */
.page-head{padding-block:clamp(56px,9vw,120px) clamp(28px,4vw,48px)}
.page-head h1{font-size:var(--sf-step-4);max-width:14ch}
.rows{list-style:none;margin:0;padding:0}
.rows li{display:grid;grid-template-columns:9rem minmax(0,1fr) auto;gap:16px;align-items:baseline;padding:16px 0;border-bottom:1px solid var(--sf-line)}
.rows li:first-child{border-top:1px solid var(--sf-line)}
.rows .d{font:500 14px/1.4 var(--sf-font-mono);color:var(--sf-mute);font-variant-numeric:tabular-nums}
@media (max-width:600px){.rows li{grid-template-columns:1fr;gap:4px}}
.split{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:clamp(28px,5vw,80px)}
@media (max-width:820px){.split{grid-template-columns:1fr}}
.photo{margin:0}
.photo img{border-radius:var(--sf-radius-card);width:100%;object-fit:cover}
.tag{display:inline-block;font:500 11px/1 var(--sf-font-mono);letter-spacing:.12em;text-transform:uppercase;padding:6px 10px;border-radius:var(--sf-radius-pill);border:1px solid var(--sf-line);color:var(--sf-mute)}
.note{font-size:14px;color:var(--sf-mute)}

/* signup */
.signup{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,6fr);gap:clamp(24px,5vw,72px);align-items:start}
@media (max-width:820px){.signup{grid-template-columns:1fr}}
.sf{display:grid;gap:16px}
.sf .row2{display:grid;grid-template-columns:1fr 1fr;gap:12px}
@media (max-width:520px){.sf .row2{grid-template-columns:1fr}}
.f{display:grid;gap:6px;min-width:0}
.f label,.f legend{font:600 14px/1.3 var(--sf-font-body);color:var(--sf-ink)}
.f input[type=text],.f input[type=email]{width:100%;min-height:50px;padding:12px 16px;font:400 16px/1.2 var(--sf-font-body);color:var(--sf-ink);background:var(--sf-night);border:1px solid rgba(234,246,255,.28);border-radius:var(--sf-radius-card)}
.f input::placeholder{color:#8d8c96}
.f input:focus-visible{outline:2px solid var(--sf-volt);outline-offset:1px;border-color:var(--sf-volt)}
.f input[aria-invalid=true]{border-color:var(--err)}
.ferr{font-size:14px;color:var(--err);min-height:0}
.ferr:empty{display:none}
.choice{border:0;padding:0;margin:0;display:flex;flex-wrap:wrap;gap:8px}
.choice legend{margin-bottom:8px;padding:0}
.opt{position:relative}
.opt input{position:absolute;opacity:0;inset:0;width:100%;height:100%;margin:0;cursor:pointer}
.opt span{display:inline-flex;align-items:center;min-height:44px;padding:0 16px;border-radius:var(--sf-radius-pill);border:1px solid rgba(234,246,255,.28);font-weight:600;font-size:15px}
.opt input:checked + span{background:var(--sf-volt);color:var(--sf-void);border-color:var(--sf-volt)}
.opt input:focus-visible + span{outline:2px solid var(--sf-volt);outline-offset:3px}
.hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
.formerr{color:var(--err);font-size:15px}
.done{border:1px solid var(--sf-volt);border-radius:var(--sf-radius-card);padding:22px;background:var(--sf-night)}
.done h3{margin-bottom:.4em}
.done:focus{outline:none}
.flash{animation:flash 1.2s ease-out}
@keyframes flash{0%{box-shadow:0 0 0 0 rgba(70,177,255,.0)}20%{box-shadow:0 0 0 3px rgba(70,177,255,.7)}100%{box-shadow:0 0 0 0 rgba(70,177,255,0)}}
@media (prefers-reduced-motion:reduce){.flash{animation:none}}

/* footer */
.foot{border-top:1px solid var(--sf-line);padding-block:48px calc(40px + env(safe-area-inset-bottom,0px));background:var(--sf-night)}
.foot .wrap{display:grid;grid-template-columns:minmax(0,2fr) repeat(3,minmax(0,1fr));gap:28px}
@media (max-width:820px){.foot .wrap{grid-template-columns:1fr 1fr}}
.foot ul{list-style:none;margin:0;padding:0;display:grid;gap:2px}
.foot li a{display:inline-flex;min-height:36px;align-items:center;color:var(--sf-ink);text-decoration:none}
.foot li a:hover{color:var(--sf-volt-soft)}
.foot .small{font-size:14px;color:var(--sf-mute)}
.foot h2{font:500 12px/1.3 var(--sf-font-mono);letter-spacing:var(--sf-track-label);text-transform:uppercase;color:var(--sf-mute);margin:0 0 10px}


/* press photo grid */
.press-grid{columns:3 260px;column-gap:16px}
.pg{display:block;break-inside:avoid;margin-bottom:16px;text-decoration:none;color:var(--sf-ink)}
.pg img{width:100%;border-radius:var(--sf-radius-card);background:var(--sf-dusk)}
.pg span{display:block;font-size:14px;margin-top:6px}
.pg span.mono{font-size:12px;margin-top:0}
.pg:hover img{outline:2px solid var(--sf-volt);outline-offset:2px}
.cast-core{grid-template-columns:repeat(2,minmax(0,1fr));max-width:720px}
.sr-h{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
