/* ============ Shaylen — shaylen.fm ============
   Palette lifted from the existing artist site:
   #3E453B dark sage · #9DB2C0 dusty blue · #E2E2DC bone · #AA2330 red · #DD9D3E gold overlay
   ============================================== */
:root{
  --sage:#3E453B;
  --blue:#9DB2C0;
  --bone:#E2E2DC;
  --red:#AA2330;
  --gold:#DD9D3E;
  --white:#fff;
  --header-h:72px;
  --serif:'Cormorant Garamond',Georgia,'Times New Roman',serif;
  --sans:'Roboto',-apple-system,BlinkMacSystemFont,'Segoe UI',Helvetica,Arial,sans-serif;
}
*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:var(--header-h)}
body{margin:0;font-family:var(--sans);font-weight:300;color:var(--sage);background:var(--bone);-webkit-font-smoothing:antialiased}
img{max-width:100%;height:auto;display:block}
a{color:inherit}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}
.skip{position:absolute;left:-9999px;top:0;background:var(--sage);color:var(--bone);padding:.75rem 1rem;z-index:200}
.skip:focus{left:0}

/* ---------- Header ---------- */
.site-header{
  position:fixed;inset:0 0 auto 0;height:var(--header-h);z-index:100;
  display:grid;grid-template-columns:1fr auto 1fr;align-items:center;
  gap:1rem;padding:0 1.75rem;background:var(--bone);
  border-bottom:1px solid rgba(62,69,59,.12);
}
.nav-left{display:flex;gap:1.75rem}
.nav-left a{
  font-size:.8rem;letter-spacing:.14em;text-transform:uppercase;font-weight:400;
  text-decoration:none;padding:.25rem 0;border-bottom:1px solid transparent;transition:border-color .2s,color .2s;
}
.nav-left a:hover{border-bottom-color:var(--sage)}
.wordmark{
  font-family:var(--serif);font-weight:400;font-size:2rem;line-height:1;
  letter-spacing:.22em;text-transform:uppercase;text-decoration:none;
  text-indent:.22em;white-space:nowrap;
}
.social{display:flex;justify-content:flex-end;gap:.9rem;list-style:none;margin:0;padding:0}
.social a{display:block;opacity:.85;transition:opacity .2s,transform .2s}
.social a:hover{opacity:1;transform:translateY(-2px)}
.social svg{width:19px;height:19px;fill:var(--sage)}
.menu-toggle{display:none;background:none;border:0;cursor:pointer;padding:.5rem;flex-direction:column;gap:5px}
.menu-toggle span{display:block;width:24px;height:2px;background:var(--sage);transition:transform .25s,opacity .25s}
.menu-toggle[aria-expanded="true"] span:nth-child(1){transform:translateY(7px) rotate(45deg)}
.menu-toggle[aria-expanded="true"] span:nth-child(2){opacity:0}
.menu-toggle[aria-expanded="true"] span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}
.mobile-menu{display:none;position:fixed;top:var(--header-h);left:0;right:0;z-index:99;background:var(--bone);border-bottom:1px solid rgba(62,69,59,.15);flex-direction:column}
.mobile-menu.open{display:flex}
.mobile-menu a{padding:1rem 1.75rem;text-decoration:none;font-size:.85rem;letter-spacing:.14em;text-transform:uppercase;border-top:1px solid rgba(62,69,59,.08)}

/* ---------- Hero slider ---------- */
.hero{position:relative;margin-top:var(--header-h);overflow:hidden;background:var(--sage)}
.hero-track{position:relative;aspect-ratio:16/9}
/* Mobile hero: the banner is a true 9:16 plate, so give the track exactly that
   ratio at full width and no height cap. Pairing aspect-ratio with max-height
   makes the browser shrink the WIDTH to preserve the ratio (not full-bleed),
   and capping the height crops her head and the wordmark. */
@media (max-width:767px){.hero-track{aspect-ratio:9/16;width:100%}}
.slide{position:absolute;inset:0;opacity:0;transition:opacity .9s ease;pointer-events:none}
.slide.is-active{opacity:1;pointer-events:auto}
.slide img{width:100%;height:100%;object-fit:cover}
.slide-link{position:absolute;inset:0}
.hero-arrow{
  position:absolute;top:50%;transform:translateY(-50%);z-index:5;
  background:none;border:0;color:var(--white);font-size:3rem;line-height:1;
  padding:.5rem 1rem;cursor:pointer;opacity:.75;transition:opacity .2s;
  text-shadow:0 1px 6px rgba(0,0,0,.5);
}
.hero-arrow:hover{opacity:1}
.hero-arrow.prev{left:.25rem}
.hero-arrow.next{right:.25rem}
.hero-dots{position:absolute;bottom:1.1rem;left:50%;transform:translateX(-50%);display:flex;gap:.55rem;z-index:5}
.hero-dots button{width:9px;height:9px;border-radius:50%;border:1px solid var(--white);background:transparent;padding:0;cursor:pointer;opacity:.8}
.hero-dots button[aria-selected="true"]{background:var(--white)}

/* ---------- Sections ---------- */
.section{padding:4.5rem 1.75rem}
.section--light{background:var(--bone);color:var(--sage)}
.section--dark{background:var(--sage);color:var(--bone)}
.section--signup{background:var(--blue);color:var(--sage)}
.section-header{max-width:1180px;margin:0 auto 2.25rem;display:flex;align-items:baseline;justify-content:space-between;gap:1rem;flex-wrap:wrap}
.section-header h2{
  margin:0;font-family:var(--serif);font-weight:400;font-size:clamp(1.9rem,4vw,2.9rem);
  letter-spacing:.18em;text-transform:uppercase;text-indent:.18em;
}
.track-btn{
  font-size:.72rem;letter-spacing:.14em;text-transform:uppercase;text-decoration:none;
  border:1px solid currentColor;padding:.6rem 1.1rem;transition:background .2s,color .2s;
}
.track-btn:hover{background:var(--sage);color:var(--bone)}

/* ---------- Music tiles ---------- */
.tile-grid{max-width:1180px;margin:0 auto;display:grid;grid-template-columns:repeat(3,1fr);gap:1.5rem}
.tile{position:relative;display:block;text-decoration:none;overflow:hidden;background:var(--sage)}
.tile img{aspect-ratio:1;object-fit:cover;transition:transform .5s ease}
.tile:hover img{transform:scale(1.04)}
.tile-overlay{
  position:absolute;inset:0;display:flex;align-items:center;justify-content:center;
  background:var(--gold);opacity:0;transition:opacity .3s ease;
}
.tile:hover .tile-overlay,.tile:focus-visible .tile-overlay{opacity:.92}
.tile-overlay svg{width:34px;height:34px}
.tile-overlay path{fill:none;stroke:var(--white);stroke-width:2}
.tile-caption{
  display:block;margin-top:.85rem;font-size:.78rem;letter-spacing:.13em;
  text-transform:uppercase;text-align:center;
}

/* ---------- Videos ---------- */
.video-grid{max-width:1180px;margin:0 auto;display:grid;grid-template-columns:repeat(4,1fr);gap:1.35rem}
.video{position:relative;background:none;border:0;padding:0;cursor:pointer;text-align:left;color:inherit;font:inherit}
.video img{aspect-ratio:16/9;object-fit:cover;width:100%;transition:opacity .3s}
.video:hover img{opacity:.75}
.play{
  position:absolute;top:0;left:0;right:0;bottom:2.7rem;
  display:flex;align-items:center;justify-content:center;pointer-events:none;
}
.play::after{
  content:"";border-style:solid;border-width:11px 0 11px 19px;
  border-color:transparent transparent transparent var(--bone);
  filter:drop-shadow(0 1px 4px rgba(0,0,0,.6));transition:transform .25s;
}
.video:hover .play::after{transform:scale(1.2)}
.video-title{display:block;margin-top:.7rem;font-size:.74rem;letter-spacing:.1em;text-transform:uppercase;line-height:1.5}
.video-title em{font-style:normal;opacity:.65;text-transform:none;letter-spacing:.04em}

/* ---------- Sign up ---------- */
.signup-inner{max-width:640px;margin:0 auto;text-align:center}
.signup-inner h2{
  margin:0 0 .75rem;font-family:var(--serif);font-weight:400;
  font-size:clamp(1.9rem,4vw,2.9rem);letter-spacing:.16em;text-transform:uppercase;text-indent:.16em;
}
.signup-sub{margin:0 auto 2.25rem;max-width:46ch;line-height:1.65;font-size:.98rem}
.signup-form{display:grid;grid-template-columns:1fr 1fr;gap:1.1rem;text-align:left}
.field{display:flex;flex-direction:column}
.field:nth-child(2){grid-column:1/-1}
.field label{font-size:.68rem;letter-spacing:.16em;text-transform:uppercase;margin-bottom:.5rem;font-weight:500}
.field input,.field select{
  font:inherit;font-size:.95rem;padding:.8rem .9rem;border:1px solid var(--sage);
  background:rgba(255,255,255,.55);color:var(--sage);border-radius:0;
}
.field input:focus,.field select:focus{outline:2px solid var(--sage);outline-offset:1px;background:var(--white)}
.btn-submit{
  grid-column:1/-1;justify-self:center;margin-top:.6rem;
  font:inherit;font-size:.8rem;letter-spacing:.2em;text-transform:uppercase;font-weight:500;
  background:var(--sage);color:var(--bone);border:1px solid var(--sage);
  padding:.95rem 3.5rem;cursor:pointer;transition:background .2s,color .2s;
}
.btn-submit:hover{background:transparent;color:var(--sage)}
.btn-submit[disabled]{opacity:.55;cursor:progress}
.form-status{grid-column:1/-1;text-align:center;margin:.4rem 0 0;font-size:.9rem;min-height:1.2em}
.form-status.ok{color:var(--sage);font-weight:500}
.form-status.err{color:var(--red);font-weight:500}
.consent{grid-column:1/-1;text-align:center;font-size:.72rem;line-height:1.6;opacity:.8;margin:.4rem 0 0}

/* ---------- Shows ---------- */
.shows-list{max-width:900px;margin:0 auto;padding:0;list-style:none}
.show{
  display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:1.75rem;
  padding:1.4rem .25rem;border-bottom:1px solid rgba(62,69,59,.18);
}
.show:first-child{border-top:1px solid rgba(62,69,59,.18)}
.show-date{display:flex;flex-direction:column;align-items:center;min-width:64px}
.show-date .d{font-family:var(--serif);font-size:2rem;line-height:1}
.show-date .m{font-size:.66rem;letter-spacing:.14em;text-transform:uppercase;margin-top:.2rem;opacity:.75}
.show-venue strong{display:block;font-size:1.02rem;font-weight:500;letter-spacing:.04em}
.show-venue span{display:block;font-size:.82rem;opacity:.75;margin-top:.2rem}
.show-cta{
  font-size:.7rem;letter-spacing:.16em;text-transform:uppercase;text-decoration:none;
  border:1px solid var(--sage);padding:.6rem 1.4rem;white-space:nowrap;transition:background .2s,color .2s;
}
.show-cta:hover{background:var(--sage);color:var(--bone)}
.play-my-city{
  display:block;width:max-content;margin:2.5rem auto 0;text-decoration:none;
  font-size:.74rem;letter-spacing:.2em;text-transform:uppercase;
  border:1px solid var(--sage);padding:.9rem 2.6rem;transition:background .2s,color .2s;
}
.play-my-city:hover{background:var(--sage);color:var(--bone)}

/* ---------- About ---------- */
.prose{max-width:70ch;margin:0 auto;line-height:1.8;font-size:1.02rem}
.prose p{margin:0 0 1.3rem}
.prose em{font-style:italic;opacity:.95}
.editme{
  margin-top:2.5rem;padding:1.1rem 1.3rem;font-size:.86rem;line-height:1.65;
  border-left:3px solid var(--gold);background:rgba(226,226,220,.07);opacity:.9;
}

/* ---------- Footer ---------- */
.site-footer{background:var(--sage);color:var(--bone);text-align:center;padding:3.5rem 1.75rem 2.5rem}
.footer-mark{display:inline-block;font-size:1.6rem;margin-bottom:1.6rem}
.social--footer{justify-content:center;flex-wrap:wrap;gap:1.4rem;margin-bottom:1.6rem}
.social--footer a{font-size:.7rem;letter-spacing:.14em;text-transform:uppercase;text-decoration:none;opacity:.85}
.social--footer a:hover{opacity:1;text-decoration:underline}
.copyright{font-size:.72rem;letter-spacing:.06em;opacity:.65;margin:0}
.copyright a{color:inherit}

/* ---------- Lightbox ---------- */
.lightbox{position:fixed;inset:0;z-index:200;background:rgba(0,0,0,.93);display:flex;align-items:center;justify-content:center;padding:1.5rem}
.lightbox[hidden]{display:none}
.lightbox-frame{width:min(100%,1100px);aspect-ratio:16/9}
.lightbox-frame iframe{width:100%;height:100%;border:0}
.lightbox-close{position:absolute;top:1rem;right:1.4rem;background:none;border:0;color:#fff;font-size:2.6rem;line-height:1;cursor:pointer}

/* ---------- Responsive ---------- */
@media (max-width:1024px){
  .video-grid{grid-template-columns:repeat(3,1fr)}
}
@media (max-width:860px){
  :root{--header-h:60px}
  .site-header{grid-template-columns:auto 1fr auto;padding:0 1rem}
  .nav-left,.social{display:none}
  .menu-toggle{display:flex}
  .wordmark{font-size:1.5rem;justify-self:center}
  .section{padding:3.25rem 1.1rem}
  .tile-grid{grid-template-columns:repeat(2,1fr);gap:1rem}
  .video-grid{grid-template-columns:repeat(2,1fr);gap:1rem}
  .signup-form{grid-template-columns:1fr}
  .show{grid-template-columns:auto 1fr;gap:1rem;row-gap:.9rem}
  .show-cta{grid-column:2;justify-self:start}
  .hero-arrow{font-size:2.2rem}
}
@media (max-width:480px){
  .tile-grid{grid-template-columns:1fr}
  .video-grid{grid-template-columns:1fr}
}
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{animation-duration:.01ms!important;transition-duration:.01ms!important}
}

/* ---------- Kit form elements (injected/managed by ck.5.js) ---------- */
.signup-form .formkit-alert{
  grid-column:1/-1;list-style:none;margin:0;padding:.85rem 1rem;
  font-size:.86rem;text-align:center;border:1px solid var(--red);
  background:rgba(170,35,48,.10);color:var(--red);
}
.signup-form .formkit-alert:empty{display:none}
.signup-form .formkit-alert-success{
  border-color:var(--sage);background:rgba(62,69,59,.10);color:var(--sage);
}
/* Kit shows its success message by replacing the fields; keep it on-brand */
.signup-form [data-element="success"],
.signup-form .formkit-success{
  grid-column:1/-1;text-align:center;font-size:1.02rem;line-height:1.6;
  padding:1.2rem 0;color:var(--sage);
}
.signup-form .formkit-spinner{display:none}
