:root{
    --ash:#151210;
    --ash-soft:#221d19;
    --char:#3a332c;
    --bone:#ece3d4;
    --bone-dim:#c9beac;
    --ember:#e8622c;
    --ember-dim:#a8431d;
    --gold:#d4a44c;
  }
  *{box-sizing:border-box; margin:0; padding:0;}
  html{scroll-behavior:smooth;}
  body{
    background:var(--ash);
    color:var(--bone);
    font-family:'Work Sans', sans-serif;
    overflow-x:hidden;
  }
  ::selection{background:var(--ember); color:var(--ash);}
  a{color:inherit;}
  .wrap{max-width:1120px; margin:0 auto; padding:0 32px;}

  /* subtle ash grain texture */
  body::before{
    content:"";
    position:fixed; inset:0;
    background-image:radial-gradient(circle at 1px 1px, rgba(236,227,212,0.035) 1px, transparent 0);
    background-size:22px 22px;
    pointer-events:none;
    z-index:1;
  }

  header{
    position:fixed; top:0; left:0; right:0;
    z-index:50;
    padding:22px 0;
    background:linear-gradient(to bottom, rgba(21,18,16,0.92), rgba(21,18,16,0));
  }
  header .wrap{display:flex; align-items:center; justify-content:space-between;}
  .mark{
    display:flex; align-items:center; gap:10px;
    font-family:'JetBrains Mono', monospace;
    font-size:13px; letter-spacing:0.14em; text-transform:uppercase;
    color:var(--bone-dim);
  }
  .mark svg{width:22px; height:22px;}
  nav{display:flex; gap:32px; font-size:14px; font-weight:500;}
  nav a{text-decoration:none; color:var(--bone-dim); transition:color .25s;}
  nav a:hover{color:var(--ember);}

  /* HERO */
  .hero{
    position:relative;
    min-height:100vh;
    display:flex; flex-direction:column;
    justify-content:center;
    padding-top:120px;
    overflow:hidden;
  }
  .hero-glow{
    position:absolute;
    bottom:-20%; left:50%;
    transform:translateX(-50%);
    width:1400px; height:900px;
    background:radial-gradient(closest-side, rgba(232,98,44,0.20), rgba(232,98,44,0.06) 45%, transparent 70%);
    z-index:0;
    animation:breathe 8s ease-in-out infinite;
  }
  @keyframes breathe{
    0%,100%{opacity:0.75; transform:translateX(-50%) scale(1);}
    50%{opacity:1; transform:translateX(-50%) scale(1.06);}
  }
  .hero-content{position:relative; z-index:2;}
  .eyebrow{
    font-family:'JetBrains Mono', monospace;
    font-size:13px; letter-spacing:0.18em; text-transform:uppercase;
    color:var(--gold);
    display:flex; align-items:center; gap:12px;
    margin-bottom:28px;
    opacity:0;
    animation:riseIn .9s ease forwards .15s;
  }
  .eyebrow::before{
    content:""; width:28px; height:1px; background:var(--gold);
  }
  h1{
    font-family:'Fraunces', serif;
    font-optical-sizing:auto;
    font-weight:340;
    font-size:clamp(48px, 8vw, 108px);
    line-height:0.98;
    letter-spacing:-0.02em;
    max-width:920px;
    opacity:0;
    animation:riseIn 1s ease forwards .3s;
  }
  h1 em{
    font-style:italic; font-weight:600;
    background:linear-gradient(100deg, var(--gold), var(--ember) 60%);
    -webkit-background-clip:text; background-clip:text; color:transparent;
  }
  .hero-sub{
    margin-top:28px;
    max-width:560px;
    font-size:19px; line-height:1.6;
    color:var(--bone-dim);
    opacity:0;
    animation:riseIn 1s ease forwards .5s;
  }
  .hero-cta{
    margin-top:40px;
    display:flex; gap:16px; flex-wrap:wrap;
    opacity:0;
    animation:riseIn 1s ease forwards .68s;
  }
  @keyframes riseIn{
    from{opacity:0; transform:translateY(18px);}
    to{opacity:1; transform:translateY(0);}
  }
  .btn{
    display:inline-flex; align-items:center; gap:10px;
    padding:15px 26px;
    font-size:14px; font-weight:600;
    text-decoration:none;
    border-radius:2px;
    transition:transform .25s ease, box-shadow .25s ease;
  }
  .btn-primary{
    background:linear-gradient(100deg, var(--ember), var(--ember-dim));
    color:var(--ash);
  }
  .btn-primary:hover{transform:translateY(-2px); box-shadow:0 10px 30px rgba(232,98,44,0.35);}
  .btn-ghost{
    border:1px solid var(--char);
    color:var(--bone);
  }
  .btn-ghost:hover{border-color:var(--gold); color:var(--gold);}

  .hero-foot{
    position:absolute; bottom:36px; left:0; right:0;
    z-index:2;
  }
  .hero-foot .wrap{display:flex; justify-content:space-between; align-items:flex-end;}
  .loc{
    font-family:'JetBrains Mono', monospace; font-size:12px; color:var(--bone-dim);
    letter-spacing:0.05em;
  }
  .scrolldown{
    width:1px; height:44px; background:linear-gradient(var(--bone-dim), transparent);
    position:relative;
  }

  /* SECTION shared */
  section{position:relative; z-index:2; padding:120px 0;}
  .section-label{
    font-family:'JetBrains Mono', monospace;
    font-size:13px; letter-spacing:0.16em; text-transform:uppercase;
    color:var(--gold);
    margin-bottom:18px;
  }
  h2{
    font-family:'Fraunces', serif;
    font-weight:340;
    font-size:clamp(32px, 4.5vw, 52px);
    line-height:1.05;
    letter-spacing:-0.01em;
    max-width:680px;
  }

  /* ABOUT */
  .about{border-top:1px solid var(--ash-soft);}
  .about-grid{
    display:grid; grid-template-columns:1.1fr 0.9fr; gap:64px;
    margin-top:48px;
    align-items:start;
  }
  .about-grid p{
    font-size:17px; line-height:1.75; color:var(--bone-dim);
    margin-bottom:20px;
  }
  .about-grid p:last-child{margin-bottom:0;}
  .stat-card{
    background:var(--ash-soft);
    border:1px solid var(--char);
    border-radius:2px;
    padding:32px;
  }
  .stat-card .num{
    font-family:'Fraunces', serif; font-weight:500; font-style:italic;
    font-size:44px; color:var(--ember);
    display:block;
  }
  .stat-card .lbl{
    font-size:14px; color:var(--bone-dim); margin-top:6px;
  }
  .stat-card + .stat-card{margin-top:20px;}

  /* SEASON */
  .season{border-top:1px solid var(--ash-soft);}
  .season-head{display:flex; justify-content:space-between; align-items:flex-end; gap:24px; flex-wrap:wrap;}
  .season-list{margin-top:56px;}
  .show{
    display:grid;
    grid-template-columns:64px 1.4fr 1fr auto;
    align-items:center;
    gap:28px;
    padding:32px 0;
    border-top:1px solid var(--ash-soft);
    transition:background .3s ease;
  }
  .show:last-child{border-bottom:1px solid var(--ash-soft);}
  .show:hover{background:rgba(232,98,44,0.04);}
  .show-num{
    font-family:'JetBrains Mono', monospace;
    font-size:13px; color:var(--char);
  }
  .show-title{
    font-family:'Fraunces', serif; font-weight:450;
    font-size:26px;
  }
  .show-desc{
    font-size:14.5px; color:var(--bone-dim); line-height:1.6;
  }
  .show-date{
    font-family:'JetBrains Mono', monospace;
    font-size:13px; color:var(--gold);
    text-align:right;
    white-space:nowrap;
  }
  @media (max-width:760px){
    .show{grid-template-columns:1fr; gap:8px; padding:26px 0;}
    .show-num{display:none;}
    .show-date{text-align:left;}
  }

  /* INVOLVE */
  .involve{border-top:1px solid var(--ash-soft);}
  .involve-grid{
    display:grid; grid-template-columns:repeat(3,1fr); gap:1px;
    background:var(--ash-soft);
    margin-top:48px;
    border:1px solid var(--ash-soft);
  }
  .involve-card{
    background:var(--ash);
    padding:36px 32px;
    transition:background .3s ease;
  }
  .involve-card:hover{background:var(--ash-soft);}
  .involve-card h3{
    font-family:'Fraunces', serif; font-weight:500; font-size:22px;
    margin-bottom:12px;
  }
  .involve-card p{
    font-size:14.5px; color:var(--bone-dim); line-height:1.65; margin-bottom:20px;
  }
  .involve-card a{
    font-size:13px; font-weight:600; text-decoration:none;
    color:var(--ember);
    display:inline-flex; align-items:center; gap:6px;
  }
  @media (max-width:760px){
    .involve-grid{grid-template-columns:1fr;}
  }

  /* FOOTER */
  footer{border-top:1px solid var(--ash-soft); padding:64px 0 40px;}
  .foot-grid{
    display:flex; justify-content:space-between; align-items:flex-start; flex-wrap:wrap; gap:32px;
  }
  .foot-mark{
    font-family:'Fraunces', serif; font-style:italic; font-weight:500; font-size:22px;
  }
  .foot-mark span{display:block; font-family:'JetBrains Mono', monospace; font-style:normal; font-size:11px; letter-spacing:0.1em; color:var(--bone-dim); margin-top:6px; text-transform:uppercase;}
  .foot-cols{display:flex; gap:64px; flex-wrap:wrap;}
  .foot-col h4{font-size:12px; letter-spacing:0.1em; text-transform:uppercase; color:var(--gold); margin-bottom:14px; font-weight:600;}
  .foot-col p, .foot-col a{
    display:block; font-size:14px; color:var(--bone-dim); text-decoration:none; line-height:1.9;
  }
  .foot-col a:hover{color:var(--bone);}
  .fine{margin-top:56px; font-size:12px; color:var(--char); font-family:'JetBrains Mono', monospace;}

  @media (prefers-reduced-motion: reduce){
    *{animation:none !important; transition:none !important;}
  }

  a:focus-visible, button:focus-visible{outline:2px solid var(--gold); outline-offset:3px;}

  @media (max-width:760px){
    .about-grid{grid-template-columns:1fr;}
    nav{display:none;}
  }
