
:root{--night:#070914;--panel:#0c0f1d;--moon:#f0f1f6;--silver:#c7cddd;--mist:#8f98ad;--violet:#9b87bf;--line:rgba(214,222,245,.14);--line2:rgba(214,222,245,.23);--side:248px;--gutter:clamp(1.5rem,5vw,5rem);--max:1180px}*{box-sizing:border-box}html{background:var(--night);scroll-behavior:smooth}body{margin:0;background:radial-gradient(circle at 12% 10%,rgba(91,75,139,.10),transparent 36rem),var(--night);color:var(--moon);font-family:Inter,system-ui,sans-serif;line-height:1.65;-webkit-font-smoothing:antialiased}a{color:inherit}img{max-width:100%;display:block}::selection{background:rgba(155,135,191,.3)}.skip-link{position:fixed;left:.5rem;top:.5rem;transform:translateY(-150%);z-index:999;background:white;color:#000;padding:.5rem}.skip-link:focus{transform:none}.sidebar{position:fixed;inset:0 0 0 auto;width:var(--side);z-index:50;background:#111115;border-left:1px solid rgba(255,255,255,.06);display:flex;flex-direction:column;padding:2.4rem 0}.side-wordmark{font-family:"Cormorant Garamond",serif;text-decoration:none;padding:0 2rem 2.2rem;line-height:1;color:var(--silver)}.side-wordmark span{display:block;font-size:1rem;letter-spacing:.04em}.side-wordmark strong{display:block;margin-top:.18rem;font-size:1.75rem;font-weight:500;letter-spacing:.035em;color:var(--moon)}.side-nav{display:flex;flex-direction:column;margin-top:1.1rem}.side-nav a{text-decoration:none;text-transform:uppercase;letter-spacing:.13em;font-size:.82rem;color:#989aa4;padding:1.08rem 2rem;border-top:1px solid transparent;border-bottom:1px solid transparent;transition:.2s}.side-nav a:hover{color:white}.side-nav a.active{background:#eef0f1;color:#1a1a1d}.side-foot{margin-top:auto;padding:1.5rem 2rem 0;color:#686a74;font-size:.66rem;letter-spacing:.08em;text-transform:uppercase}.mobile-header{display:none}.page-main{margin-right:var(--side);min-height:100vh}.page-shell{width:min(var(--max),100%);margin:0 auto;padding:clamp(6rem,11vw,9rem) var(--gutter)}.page-kicker,.section-label,.kicker{color:var(--violet);font-size:.67rem;letter-spacing:.2em;text-transform:uppercase;font-weight:600;margin-bottom:1.4rem}.page-title{margin:0;font-family:"Cormorant Garamond",serif;font-size:clamp(4rem,8vw,7rem);font-weight:400;letter-spacing:-.04em;line-height:.92}.page-title.large{font-size:clamp(3.1rem,6vw,6.1rem);line-height:1}.lead{color:var(--mist);font-size:1rem;max-width:580px}.prose{color:#aeb5c5;max-width:700px}.prose p{margin:0 0 1.45rem}.prose p:last-child{margin-bottom:0}.large-prose{font-size:1rem;line-height:1.85}.closing-line{font-family:"Cormorant Garamond",serif;color:var(--moon)!important;font-size:1.5rem}.inline-link{text-underline-offset:.2em;text-decoration-color:rgba(155,135,191,.6)}.section-rule{margin-top:clamp(5rem,10vw,9rem);padding-top:clamp(4rem,7vw,6rem);border-top:1px solid var(--line)}
/* home */.home-page{overflow:hidden}.home-hero{min-height:100vh;position:relative;display:flex;align-items:flex-end;padding:7rem var(--gutter) 6rem;overflow:hidden;isolation:isolate}.home-image{position:absolute;inset:0;z-index:-3;background:url('assets/tales-of-elfcore-poster.jpg') center 40%/cover no-repeat;filter:saturate(.75) brightness(.72) contrast(1.05);transform:scale(1.015)}.home-overlay{position:absolute;inset:0;z-index:-2;background:linear-gradient(90deg,rgba(5,7,15,.97) 0%,rgba(5,7,15,.86) 35%,rgba(5,7,15,.35) 70%,rgba(5,7,15,.2)),linear-gradient(0deg,rgba(5,7,15,.97),transparent 45%)}.home-copy{max-width:760px}.home-copy h1{font-family:"Cormorant Garamond",serif;font-weight:400;font-size:clamp(5rem,11vw,10rem);line-height:.7;letter-spacing:-.055em;margin:0}.home-copy h1 span{display:block;color:var(--silver);font-size:.34em;letter-spacing:.02em;margin:0 0 .22em .05em}.home-subtitle{font-family:"Cormorant Garamond",serif;color:var(--silver);font-size:clamp(1.35rem,2.3vw,1.9rem);margin:2rem 0 0}.home-intro{color:#abb3c5;max-width:620px;margin:1.3rem 0 0}.home-actions{display:flex;gap:1rem;margin-top:2rem}.button{display:inline-flex;padding:.8rem 1.15rem;min-height:48px;align-items:center;text-decoration:none;text-transform:uppercase;letter-spacing:.1em;font-size:.68rem;border:1px solid var(--line2)}.button.light{background:#f2f3f6;color:#080a14;border-color:transparent}.button.ghost{color:var(--silver)}
/* story */.story-layout,.origin-grid,.program-heading,.artist-page-grid{display:grid;grid-template-columns:minmax(0,.95fr) minmax(0,1.05fr);gap:clamp(3rem,8vw,8rem);align-items:start}.origin-grid h2,.additional-heading h2{font-family:"Cormorant Garamond",serif;font-weight:400;font-size:clamp(3rem,5vw,5rem);letter-spacing:-.035em;line-height:.95;margin:0}.origin-grid .section-label{margin:0 0 1rem}
/* Lyntharia */.lyn-page-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,.9fr);gap:clamp(3rem,7vw,7rem);align-items:center}.lyn-portrait{margin:0;background:#0b0e1b;border:1px solid var(--line);overflow:hidden}.lyn-portrait img{width:100%;height:auto;object-fit:contain;filter:saturate(.78) brightness(.88) contrast(1.03)}.character-type{margin:0 0 1rem;color:var(--violet);font-family:"Cormorant Garamond",serif;font-size:1.25rem}.lyn-copy .page-title{font-size:clamp(4rem,7vw,6.5rem);margin-bottom:2.2rem}
/* Program */.program-heading{align-items:end}.program-grid{display:grid;grid-template-columns:1fr 1fr;gap:clamp(3rem,7vw,7rem)}.program-grid ol{margin:0;padding-left:2rem}.program-grid li{padding-left:.5rem;margin-bottom:1.4rem;color:var(--violet)}.program-grid li::marker{font-family:"Cormorant Garamond",serif;font-size:1.1rem}.program-grid strong{display:block;color:#e7e9f0;font-family:"Cormorant Garamond",serif;font-size:1.28rem;font-weight:400;line-height:1.15}.program-grid li span{display:block;margin-top:.3rem;color:var(--mist);font-size:.73rem}.additional-heading{display:grid;grid-template-columns:.95fr 1.05fr;gap:clamp(3rem,7vw,7rem);align-items:end}.additional-heading p{margin:0;color:var(--mist);max-width:650px}.rep-grid{display:grid;grid-template-columns:1fr 1fr;gap:clamp(3rem,7vw,7rem);margin-top:3rem}.rep-item{padding:1.05rem 0;border-bottom:1px solid rgba(255,255,255,.075)}.rep-item:first-child{border-top:1px solid rgba(255,255,255,.075)}.rep-item strong{display:block;font-family:"Cormorant Garamond",serif;font-weight:400;color:#e4e7ef;font-size:1.22rem}.rep-item span{display:block;color:var(--mist);font-size:.72rem;margin-top:.25rem}
/* Recordings */.recording-header{display:grid;grid-template-columns:.9fr 1.1fr;align-items:end;gap:4rem}.recording-list{border-top:1px solid var(--line2)}.recording-row{display:grid;grid-template-columns:70px 1fr auto;gap:1.5rem;align-items:center;padding:2rem 0;border-bottom:1px solid var(--line);text-decoration:none}.recording-no{color:var(--violet);font-size:.65rem;letter-spacing:.15em}.recording-title strong{display:block;font-family:"Cormorant Garamond",serif;font-size:clamp(2rem,3.5vw,3.2rem);font-weight:400}.recording-title small{display:block;color:var(--mist);margin-top:.3rem}.recording-link{font-size:.65rem;letter-spacing:.1em;text-transform:uppercase;color:var(--silver)}.recording-row:hover .recording-link{color:white}
/* performances */.performance-body{background:#0a0c17}.performance-page{width:min(1120px,100%);margin:0 auto;padding:clamp(5.5rem,10vw,8rem) var(--gutter)}.performance-top{display:flex;align-items:flex-end;justify-content:space-between;gap:2rem;margin-bottom:3rem}.perf-filter{display:flex;align-items:center;gap:.55rem;color:var(--mist);font-size:.65rem;text-transform:uppercase;letter-spacing:.1em}.filter-btn{border:1px solid var(--line2);background:transparent;color:var(--silver);border-radius:999px;padding:.42rem .72rem;font:inherit;text-transform:uppercase;cursor:pointer}.filter-btn.active{background:#edf0f2;color:#111218;border-color:#edf0f2}.perf-list{border-top:1px solid var(--line2)}.perf-card{display:grid;grid-template-columns:140px 1fr 1.05fr 44px;gap:2rem;padding:2rem 0;border-bottom:1px solid var(--line);align-items:start}.perf-date{color:var(--silver);font-size:.72rem;letter-spacing:.07em}.perf-place h2{margin:0;font-family:"Cormorant Garamond",serif;font-weight:500;font-size:2.15rem;line-height:1;text-transform:none}.perf-place p,.perf-program p{margin:.35rem 0 0;color:var(--silver);font-size:.82rem}.perf-program span{display:block;color:var(--violet);font-size:.61rem;letter-spacing:.14em;font-weight:600}.perf-action{width:34px;height:34px;border-radius:50%;display:grid;place-items:center;background:#ecedf1;color:#11131a;text-decoration:none;font-size:1.1rem;justify-self:end}.perf-tag{justify-self:end;border:1px solid var(--line2);padding:.35rem .48rem;color:var(--mist);font-size:.57rem;letter-spacing:.1em}
/* artist */.artist-page-grid{align-items:start}.artist-page-grid .page-title{font-size:clamp(4.5rem,8vw,7.5rem)}
.reveal{opacity:1}.js .reveal{opacity:0;transform:translateY(12px);transition:.6s ease}.js .reveal.is-visible{opacity:1;transform:none}

/* Story as a single editorial spread on desktop. */
.story-page-shell{
  width:min(1600px,100%);
  padding-left:clamp(2rem,4vw,4.5rem);
  padding-right:clamp(2rem,4vw,4.5rem);
}
.story-spread{
  display:grid;
  grid-template-columns:minmax(0,1.22fr) minmax(0,.96fr) minmax(0,.72fr);
  gap:clamp(2.3rem,3.8vw,4.2rem);
  align-items:start;
}
.story-question-title{
  margin:0;
  max-width:700px;
  font-family:"Cormorant Garamond",serif;
  font-size:clamp(3.35rem,4.15vw,4.7rem);
  font-weight:400;
  letter-spacing:-.045em;
  line-height:.96;
}
.story-summary{
  max-width:none;
  font-size:.91rem;
  line-height:1.72;
  padding-top:3.1rem;
}
.story-summary p{margin-bottom:1.05rem}
.story-summary .closing-line{
  margin-top:1.45rem;
  font-size:1.35rem;
  line-height:1.25;
}
.story-origin{
  padding-top:3.1rem;
  border-left:1px solid var(--line);
  padding-left:clamp(1.7rem,2.7vw,3rem);
}
.story-origin h2{
  margin:0 0 1.6rem;
  font-family:"Cormorant Garamond",serif;
  font-size:clamp(2.5rem,3.3vw,4rem);
  font-weight:400;
  letter-spacing:-.035em;
  line-height:.95;
}
.story-origin .section-label{margin-bottom:.9rem}
.story-origin .prose{
  max-width:none;
  font-size:.82rem;
  line-height:1.68;
}
.story-origin .prose p{margin-bottom:1rem}

@media (min-width:1100px) and (min-height:780px){
  .story-main{height:100vh;min-height:0;overflow:hidden}
  .story-page-shell{
    height:100vh;
    padding-top:clamp(3.4rem,7vh,5.5rem);
    padding-bottom:clamp(2.6rem,5vh,4.5rem);
    display:flex;
    align-items:center;
  }
  .story-spread{width:100%}
}

@media(max-width:980px){:root{--side:0px}.sidebar{display:none}.mobile-header{position:sticky;top:0;z-index:70;height:66px;display:flex;align-items:center;justify-content:space-between;padding:0 1.3rem;background:rgba(7,9,20,.95);border-bottom:1px solid var(--line);backdrop-filter:blur(12px)}.mobile-wordmark{font-family:"Cormorant Garamond",serif;text-decoration:none;font-size:1.2rem}.mobile-wordmark span{color:var(--silver)}.nav-toggle{border:0;background:transparent;color:var(--moon);text-transform:uppercase;letter-spacing:.1em;font-size:.68rem}.side-nav{position:absolute;top:66px;left:0;right:0;background:#0b0d17;display:none;padding:.75rem 1.3rem 1.2rem;border-bottom:1px solid var(--line)}.side-nav.is-open{display:flex}.sidebar.mobile-open{display:block;position:fixed;top:66px;left:0;right:0;bottom:auto;width:auto;background:transparent;border:0;padding:0;z-index:69}.sidebar.mobile-open .side-wordmark,.sidebar.mobile-open .side-foot{display:none}.sidebar.mobile-open .side-nav{display:flex}.page-main{margin-right:0}.home-hero{min-height:calc(100vh - 66px)}.story-layout,.origin-grid,.program-heading,.artist-page-grid,.lyn-page-grid,.additional-heading,.recording-header{grid-template-columns:1fr}.perf-card{grid-template-columns:120px 1fr 1fr 40px}.page-title.large{font-size:clamp(3.2rem,9vw,5.2rem)}}
@media(max-width:650px){.page-shell,.performance-page{padding:4rem 1.25rem}.home-hero{padding:5rem 1.25rem 3rem}.home-copy h1{font-size:clamp(4.4rem,21vw,6.8rem)}.home-actions{flex-direction:column;align-items:flex-start}.program-grid,.rep-grid{grid-template-columns:1fr;gap:0}.recording-row{grid-template-columns:42px 1fr}.recording-link{grid-column:2}.performance-top{align-items:flex-start;flex-direction:column}.perf-card{grid-template-columns:1fr 42px;gap:.8rem 1rem}.perf-date,.perf-place,.perf-program{grid-column:1}.perf-action,.perf-tag{grid-column:2;grid-row:1/4;align-self:center}.page-title{font-size:clamp(3.7rem,16vw,5.4rem)}}


/* Page-to-page transition: keep the navigation anchored while the content
   quietly dissolves out and the destination fades back in. */
.js .page-main {
  opacity: 0;
  transform: translateY(5px);
}
.js.page-loaded .page-main {
  opacity: 1;
  transform: translateY(0);
  transition: opacity 680ms cubic-bezier(.22,.61,.36,1),
              transform 680ms cubic-bezier(.22,.61,.36,1);
}
.js.page-leaving .page-main {
  opacity: 0;
  transform: translateY(-3px);
  transition: opacity 360ms ease, transform 360ms ease;
  pointer-events: none;
}

/* Future/Past panel change gets the same restrained visual language. */
[data-panel] { animation: panel-fade-in 420ms ease both; }
@keyframes panel-fade-in {
  from { opacity: 0; transform: translateY(4px); }
  to { opacity: 1; transform: none; }
}

@media (prefers-reduced-motion: reduce) {
  .js .page-main,
  .js.page-loaded .page-main,
  .js.page-leaving .page-main {
    opacity: 1;
    transform: none;
    transition: none;
  }
  [data-panel] { animation: none; }
}

@media(max-width:1099px){
  .story-page-shell{width:min(var(--max),100%)}
  .story-spread{grid-template-columns:1fr;gap:3.5rem}
  .story-question-title{font-size:clamp(3.2rem,8vw,5.6rem);max-width:900px}
  .story-summary,.story-origin{padding-top:0}
  .story-origin{border-left:0;border-top:1px solid var(--line);padding-left:0;padding-top:3rem}
}


/* Compact single-viewport Program page. */
@media (min-width:981px){
  .program-page-shell{
    width:min(1500px,100%);
    height:100vh;
    min-height:760px;
    padding:clamp(2.2rem,4vh,3.5rem) clamp(2.2rem,4vw,4.5rem) 2rem;
    display:flex;
    flex-direction:column;
    overflow:hidden;
  }
  .program-kicker{margin-bottom:clamp(1.3rem,2.2vh,2rem)}
  .program-grid-viewport{
    flex:1;
    min-height:0;
    grid-template-columns:1fr 1fr;
    gap:clamp(3rem,7vw,7rem);
    align-content:start;
  }
  .program-grid-viewport ol{
    display:grid;
    grid-template-rows:repeat(10,minmax(0,1fr));
    height:100%;
    min-height:0;
    padding-left:1.7rem;
  }
  .program-grid-viewport li{
    margin:0;
    padding:.18rem 0 .35rem .4rem;
    align-self:start;
  }
  .program-grid-viewport strong{
    font-size:clamp(.98rem,1.25vw,1.16rem);
    line-height:1.08;
  }
  .program-grid-viewport li span{
    margin-top:.14rem;
    font-size:clamp(.61rem,.72vw,.69rem);
    line-height:1.25;
  }
  .program-grid-viewport li::marker{font-size:.95rem}
}

.past-program-link{
  display:inline-block;
  margin-top:.45rem;
  color:var(--moon);
  text-decoration:none;
  font-size:.68rem;
  letter-spacing:.08em;
  text-transform:uppercase;
}
.past-program-link:hover,
.past-program-link:focus-visible{
  color:var(--violet);
}


/* Program page: current program / additional repertoire switch */
.program-topbar{
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  gap:2.5rem;
  align-items:end;
  margin-bottom:clamp(1.2rem,2vh,1.8rem);
}
.program-explainer{
  max-width:880px;
  margin:.7rem 0 0;
  color:var(--mist);
  font-size:clamp(.7rem,.78vw,.82rem);
  line-height:1.55;
}
.program-filter{
  display:flex;
  align-items:center;
  gap:.55rem;
  padding-bottom:.1rem;
}
.program-filter-btn{
  border:1px solid var(--line2);
  background:transparent;
  color:var(--silver);
  border-radius:999px;
  padding:.42rem .75rem;
  font:inherit;
  font-size:.62rem;
  letter-spacing:.08em;
  text-transform:uppercase;
  cursor:pointer;
}
.program-filter-btn.active{
  background:#edf0f2;
  color:#111218;
  border-color:#edf0f2;
}
.program-panel{
  flex:1;
  min-height:0;
}
.program-panel[hidden]{display:none}
.additional-program-grid{
  margin-top:0;
  height:100%;
}
.additional-program-grid > div{
  display:grid;
  grid-template-rows:repeat(10,minmax(0,1fr));
  min-height:0;
}
.additional-program-grid .rep-item{
  padding:.22rem 0 .3rem;
  border-bottom:0;
  align-self:start;
}
.additional-program-grid .rep-item:first-child{border-top:0}
.additional-program-grid .rep-item strong{
  font-size:clamp(.96rem,1.18vw,1.12rem);
  line-height:1.08;
}
.additional-program-grid .rep-item span{
  margin-top:.14rem;
  font-size:clamp(.6rem,.7vw,.68rem);
  line-height:1.25;
}
@media(max-width:980px){
  .program-topbar{grid-template-columns:1fr;align-items:start}
}


/* Smooth sidebar active-tab transition */
.side-nav a{
  transition:
    background-color .34s ease,
    color .34s ease,
    opacity .34s ease;
}
.side-nav a.nav-preview-active{
  background:#edf0f2;
  color:#111218;
}

/* Lyntharia page refinement */
.lyn-copy .character-type{
  font-size:1.45rem;
  margin-bottom:1.6rem;
}
.lyn-copy .prose{
  margin-top:0;
}


/* v13 — slower, more organic tab reveals */
[data-panel],
[data-program-panel]{
  animation:none !important;
}
.panel-fading-out{
  opacity:0 !important;
  transform:translateY(-5px) !important;
  transition:
    opacity 420ms ease,
    transform 480ms ease !important;
}
.panel-reveal-start{
  opacity:0 !important;
  transform:translateY(10px) !important;
}
.panel-reveal-in{
  opacity:1 !important;
  transform:none !important;
  transition:
    opacity 900ms ease,
    transform 1100ms cubic-bezier(.16,1,.3,1) !important;
}

/* Past performance links */
.past-links{
  display:flex;
  flex-wrap:wrap;
  gap:1.7rem;
  margin-top:.8rem;
}
.past-links .past-program-link{
  margin-top:0;
}

/* Program page should use the full available canvas, not sit as a small block. */
@media (min-width:981px){
  .program-page-shell{
    width:100%;
    max-width:none;
    box-sizing:border-box;
    height:100vh;
    min-height:720px;
    padding:
      clamp(2.5rem,4.8vh,4.2rem)
      clamp(4rem,7vw,7.5rem)
      clamp(2.2rem,3.5vh,3.2rem);
  }
  .program-topbar{
    grid-template-columns:minmax(0,1fr) auto;
    gap:4rem;
    margin-bottom:clamp(1.4rem,2.8vh,2.3rem);
  }
  .program-explainer{
    max-width:1000px;
    font-size:clamp(.78rem,.84vw,.92rem);
    line-height:1.6;
  }
  .program-panel{
    flex:1;
    min-height:0;
    display:flex;
    flex-direction:column;
  }
  .program-panel[hidden]{
    display:none;
  }
  .program-grid-viewport{
    flex:1;
    width:100%;
    height:100%;
    grid-template-columns:minmax(0,1fr) minmax(0,1fr);
    gap:clamp(5rem,8vw,10rem);
    align-content:stretch;
  }
  .program-grid-viewport ol{
    height:100%;
    grid-template-rows:repeat(10,minmax(0,1fr));
    padding-left:2rem;
  }
  .program-grid-viewport li{
    display:flex;
    flex-direction:column;
    justify-content:center;
    margin:0;
    padding:.1rem 0 .1rem .5rem;
  }
  .program-grid-viewport strong{
    font-size:clamp(1.15rem,1.45vw,1.48rem);
    line-height:1.08;
  }
  .program-grid-viewport li span{
    margin-top:.18rem;
    font-size:clamp(.68rem,.78vw,.82rem);
    line-height:1.3;
  }
  .program-grid-viewport li::marker{
    font-size:1.05rem;
  }

  .additional-program-grid{
    flex:1;
    height:100%;
    margin-top:0;
  }
  .additional-program-grid > div{
    height:100%;
    grid-template-rows:repeat(10,minmax(0,1fr));
  }
  .additional-program-grid .rep-item{
    display:flex;
    flex-direction:column;
    justify-content:center;
    padding:.05rem 0;
  }
  .additional-program-grid .rep-item strong{
    font-size:clamp(1.08rem,1.34vw,1.38rem);
    line-height:1.1;
  }
  .additional-program-grid .rep-item span{
    margin-top:.18rem;
    font-size:clamp(.66rem,.76vw,.8rem);
    line-height:1.3;
  }
}
