/* ============================================================
   DANCE FOR PARKINSON'S IDAHO — site styles
   Direction 1 "The Stage" + Direction 2 voice
   ============================================================ */
:root{
  --stage:#101017;
  --paper:#FCFBF8;
  --steel:#5E7FB8;
  --wisteria:#8E85C1;
  --line:rgba(252,251,248,.45);
  --ink-soft:rgba(16,16,23,.66);
}
*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth}
body{font-family:'Inter',sans-serif;background:var(--paper);color:var(--stage);-webkit-font-smoothing:antialiased}

/* the white page frame */
.frame{position:fixed;inset:0;border:16px solid var(--paper);pointer-events:none;z-index:80}

/* scroll-reveal */
.rv{opacity:0;transform:translateY(30px);transition:opacity .9s ease,transform .9s cubic-bezier(.2,.7,.2,1)}
.rv.on{opacity:1;transform:none}

/* ================= CHROME (header) ================= */
.top{position:absolute;top:34px;left:0;right:0;display:flex;justify-content:space-between;align-items:flex-start;padding:0 44px;z-index:20}
.top .navlink{color:var(--paper);text-decoration:none;font-size:12px;letter-spacing:.24em;text-transform:uppercase;font-weight:500;padding-bottom:3px;border-bottom:1px solid transparent;transition:border-color .3s;background:none;cursor:pointer;font-family:'Inter',sans-serif}
.top .navlink:hover{border-color:var(--line)}
button.navlink{border:none}
.wordmark{text-align:center;color:var(--paper);text-decoration:none;display:block}
.wordmark .over{font-size:9.5px;letter-spacing:.5em;text-transform:uppercase;opacity:.75;font-weight:400}
.wordmark .name{font-family:'Cormorant Garamond',serif;font-weight:400;font-size:23px;letter-spacing:.13em;text-transform:uppercase;margin:6px 0 7px}
.wordmark .rule{width:0;height:1px;background:var(--paper);margin:0 auto;animation:rule 1.4s cubic-bezier(.6,0,.2,1) .6s forwards}
.wordmark .under{font-size:9.5px;letter-spacing:.5em;text-transform:uppercase;opacity:.75;margin-top:7px;font-weight:400}

/* ================= MENU OVERLAY ================= */
.menu{position:fixed;inset:0;background:rgba(16,16,23,.97);z-index:90;display:grid;place-items:center;opacity:0;visibility:hidden;transition:opacity .5s ease,visibility .5s}
.menu.open{opacity:1;visibility:visible}
.menu nav{text-align:center}
.menu a{display:block;font-family:'Cormorant Garamond',serif;font-weight:300;font-size:clamp(28px,4.6vw,52px);letter-spacing:.08em;text-transform:uppercase;color:var(--paper);text-decoration:none;padding:10px 0;line-height:1.15;transition:color .3s,letter-spacing .3s}
.menu a:hover{color:#CBD6EF;letter-spacing:.12em}
.menu a em{font-style:italic;text-transform:none;letter-spacing:0}
.menu a .num{font-family:'Inter',sans-serif;font-size:10px;letter-spacing:.3em;color:var(--steel);vertical-align:super;margin-right:14px;font-weight:600}
.menu .menu-close{position:absolute;top:40px;right:44px;background:none;border:none;color:var(--paper);font-size:12px;letter-spacing:.24em;text-transform:uppercase;font-weight:500;cursor:pointer;font-family:'Inter',sans-serif;padding-bottom:3px;border-bottom:1px solid transparent}
.menu .menu-close:hover{border-color:var(--line)}
.menu .menu-foot{position:absolute;bottom:44px;left:0;right:0;text-align:center;font-size:11px;letter-spacing:.28em;text-transform:uppercase;color:rgba(252,251,248,.5)}
body.menu-locked{overflow:hidden}

/* ================= HERO (home) ================= */
.hero{position:relative;min-height:100vh;background:var(--stage);overflow:hidden}
.hero-photo{position:absolute;inset:0}
.hero-photo img{width:100%;height:100%;object-fit:cover;object-position:center 30%;
  filter:grayscale(1) contrast(1.06) brightness(.92)}
.hero-photo::before{content:"";position:absolute;inset:0;background:var(--wisteria);mix-blend-mode:color;opacity:.35;z-index:1}
.hero-photo::after{content:"";position:absolute;inset:0;z-index:2;background:
  linear-gradient(180deg,rgba(16,16,23,.62) 0%,rgba(16,16,23,.18) 34%,rgba(16,16,23,.3) 62%,rgba(16,16,23,.78) 100%)}
.headline{position:absolute;inset:0;z-index:4;font-family:'Cormorant Garamond',serif;font-weight:300;color:var(--paper);text-transform:uppercase}
.headline span{position:absolute;display:block;font-size:clamp(52px,7.6vw,118px);line-height:1;letter-spacing:.06em;opacity:0;animation:rise 1.1s cubic-bezier(.2,.7,.2,1) forwards}
.headline .w1{top:21%;left:44px;animation-delay:.25s}
.headline .w2{top:35%;right:44px;font-style:italic;color:#CBD6EF;animation-delay:.55s}
.headline .w3{top:49%;left:44px;animation-delay:.85s}
.lede{position:absolute;left:50%;transform:translateX(-50%);bottom:11%;z-index:5;max-width:540px;text-align:center;color:rgba(252,251,248,.92)}
.lede p{font-family:'Cormorant Garamond',serif;font-size:20px;line-height:1.55;font-weight:400;opacity:0;animation:fade 1s ease 1.3s forwards}
.cta-row{margin-top:26px;display:flex;gap:10px;justify-content:center;opacity:0;animation:fade 1s ease 1.55s forwards}
.cta{display:inline-flex;align-items:center;background:var(--paper);color:var(--stage);padding:12px 22px;font-size:12.5px;letter-spacing:.18em;text-transform:uppercase;font-weight:600;text-decoration:none;transition:background .3s;border:none;cursor:pointer;font-family:'Inter',sans-serif}
.cta:hover{background:#E4E9F5}
.cta.arrow{padding:12px 16px;background:var(--steel);color:var(--paper)}
.cta.arrow:hover{background:var(--wisteria)}
.cta.dark{background:var(--stage);color:var(--paper)}
.cta.dark:hover{background:var(--steel)}

/* ================= PAGE HERO (subpages) ================= */
.page-hero{position:relative;min-height:64vh;background:var(--stage);overflow:hidden;display:flex;align-items:flex-end}
.page-hero .hero-photo::after{background:linear-gradient(180deg,rgba(16,16,23,.66) 0%,rgba(16,16,23,.3) 45%,rgba(16,16,23,.82) 100%)}
.page-title{position:relative;z-index:5;padding:0 44px 72px;color:var(--paper);max-width:1150px;margin:0 auto;width:100%}
.page-title .kicker{color:#9FB3DC}
.page-title h1{font-family:'Cormorant Garamond',serif;font-weight:300;font-size:clamp(44px,6.4vw,92px);line-height:1.04;letter-spacing:.05em;text-transform:uppercase;margin-top:18px}
.page-title h1 em{font-style:italic;text-transform:none;color:#CBD6EF;letter-spacing:0}
.page-title p.sub{margin-top:20px;font-family:'Cormorant Garamond',serif;font-size:20px;line-height:1.55;color:rgba(252,251,248,.88);max-width:560px}

/* ================= SECTIONS ================= */
.kicker{font-size:11px;letter-spacing:.4em;text-transform:uppercase;color:var(--steel);font-weight:600}
.section{padding:110px 44px;max-width:1150px;margin:0 auto}
.section.center{text-align:center;max-width:800px}
.section h2{font-family:'Cormorant Garamond',serif;font-weight:400;font-size:clamp(30px,3.6vw,46px);line-height:1.2;margin-top:24px}
.section h2 em{font-style:italic;color:var(--wisteria)}
.section .body{margin-top:26px;font-size:15.5px;line-height:1.85;color:var(--ink-soft)}
.section.center .body{max-width:640px;margin-inline:auto}
.section .body p+p{margin-top:16px}

.mission{padding:140px 24px 96px;text-align:center;max-width:800px;margin:0 auto}
.mission h2{font-family:'Cormorant Garamond',serif;font-weight:400;font-size:clamp(34px,4.4vw,58px);line-height:1.18;margin-top:28px}
.mission h2 em{font-style:italic;color:var(--wisteria)}
.mission p{margin-top:28px;font-size:16px;line-height:1.85;color:var(--ink-soft);max-width:640px;margin-inline:auto}

/* photo band */
.band-label{max-width:1240px;margin:0 auto;padding:0 44px;display:flex;align-items:center;gap:20px}
.band-label .n{font-family:'Cormorant Garamond',serif;font-style:italic;font-size:clamp(24px,2.6vw,34px);color:var(--stage);white-space:nowrap}
.band-label::after{content:"";height:1px;background:rgba(16,16,23,.18);flex:1}
.photo-band{max-width:1240px;margin:34px auto 0;padding:0 44px 40px;display:grid;grid-template-columns:1.4fr 1fr;gap:22px;align-items:stretch}
.photo-band figure{overflow:hidden;position:relative;margin:0}
.photo-band img{width:100%;height:100%;object-fit:cover;display:block;
  filter:grayscale(1) contrast(1.05);transition:filter .7s ease,transform .9s ease}
.photo-band figure::after{content:"";position:absolute;inset:0;background:var(--wisteria);mix-blend-mode:color;opacity:.3;transition:opacity .7s ease;pointer-events:none}
.photo-band figure:hover img{filter:grayscale(0);transform:scale(1.025)}
.photo-band figure:hover::after{opacity:0}
.photo-band .tall{grid-row:span 2}
.photo-band .tall img{min-height:520px}
.pb-copy{background:var(--stage);color:var(--paper);padding:44px 40px;display:flex;flex-direction:column;justify-content:center}
.pb-copy h3{font-family:'Cormorant Garamond',serif;font-weight:400;font-style:italic;font-size:27px;line-height:1.3;color:#CBD6EF}
.pb-copy p{margin-top:16px;font-size:14.5px;line-height:1.75;color:rgba(252,251,248,.78)}
.pb-copy a{margin-top:22px;color:var(--paper);font-size:12px;letter-spacing:.2em;text-transform:uppercase;font-weight:600;text-decoration:none;border-bottom:1px solid var(--steel);align-self:flex-start;padding-bottom:4px;transition:border-color .3s}
.pb-copy a:hover{border-color:var(--wisteria)}

/* dark split section (schedule etc.) */
.dark-split{background:var(--stage);color:var(--paper);padding:110px 44px}
.dark-split-inner{max-width:1150px;margin:0 auto;display:grid;grid-template-columns:1fr 1fr;gap:70px;align-items:center}
.dark-split h2{font-family:'Cormorant Garamond',serif;font-weight:300;font-size:clamp(36px,4vw,54px);line-height:1.15;text-transform:uppercase;letter-spacing:.04em}
.dark-split h2 em{font-style:italic;text-transform:none;color:#CBD6EF;letter-spacing:0}
.dark-split .note{margin-top:24px;font-size:15px;line-height:1.8;color:rgba(252,251,248,.72);max-width:420px}
.sched-card{border:1px solid rgba(252,251,248,.25);padding:46px 44px}
.sched-card .row{display:flex;justify-content:space-between;align-items:baseline;gap:20px;padding:16px 0;border-bottom:1px solid rgba(252,251,248,.14)}
.sched-card .row:first-child{padding-top:0}
.sched-card .row:last-of-type{border-bottom:none;padding-bottom:0}
.sched-card .k{font-size:10.5px;letter-spacing:.3em;text-transform:uppercase;color:#9FB3DC;font-weight:600;white-space:nowrap}
.sched-card .v{font-family:'Cormorant Garamond',serif;font-size:19px;text-align:right;line-height:1.4}
.sched-card .v a{color:inherit;text-decoration:none;border-bottom:1px solid rgba(252,251,248,.35)}
.sched-card .cta{margin-top:32px;width:100%;justify-content:center}

/* team grid */
.team-names{margin-top:52px;display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:rgba(16,16,23,.14);border:1px solid rgba(16,16,23,.14)}
.team-names.cols-2{grid-template-columns:repeat(2,1fr)}
.tn{background:var(--paper);padding:36px 18px;transition:background .4s ease;text-align:center}
.tn:hover{background:#F0EDF7}
.tn .nm{font-family:'Cormorant Garamond',serif;font-size:22px;line-height:1.2}
.tn .rl{margin-top:8px;font-size:10.5px;letter-spacing:.26em;text-transform:uppercase;color:var(--steel);font-weight:600}
.tn.has-photo{padding:0 0 30px}
.tn.has-photo .ph{overflow:hidden;position:relative;margin-bottom:24px}
.tn.has-photo .ph img{width:100%;aspect-ratio:1/1;object-fit:cover;object-position:center 20%;display:block;
  filter:grayscale(1) contrast(1.04);transition:filter .6s ease,transform .8s ease}
.tn.has-photo .ph::after{content:"";position:absolute;inset:0;background:var(--wisteria);mix-blend-mode:color;opacity:.28;transition:opacity .6s ease;pointer-events:none}
.tn.has-photo:hover .ph img{filter:grayscale(0);transform:scale(1.03)}
.tn.has-photo:hover .ph::after{opacity:0}
.tn .logo-cell{height:64px;display:flex;align-items:center;justify-content:center;margin-bottom:20px}
.tn .logo-cell img{max-height:64px;max-width:200px;object-fit:contain;filter:grayscale(1);opacity:.75;transition:filter .5s ease,opacity .5s ease}
.tn:hover .logo-cell img{filter:none;opacity:1}

/* pull quote */
.pull{padding:100px 24px;text-align:center}
.pull blockquote{font-family:'Cormorant Garamond',serif;font-style:italic;font-weight:300;font-size:clamp(21px,2.6vw,29px);line-height:1.6;max-width:700px;margin:0 auto;color:rgba(16,16,23,.82)}
.pull cite{display:block;font-style:normal;font-size:10px;letter-spacing:.3em;text-transform:uppercase;margin-top:20px;color:var(--steel);font-weight:600}

/* partners strip */
.partners{border-top:1px solid rgba(16,16,23,.12);border-bottom:1px solid rgba(16,16,23,.12);padding:44px 24px;display:flex;justify-content:center;align-items:center;gap:56px;flex-wrap:wrap}
.partners span{font-family:'Cormorant Garamond',serif;font-size:16px;letter-spacing:.08em;text-transform:uppercase;color:rgba(16,16,23,.5)}
.partners img{height:44px;width:auto;max-width:190px;object-fit:contain;display:block;
  filter:grayscale(1);opacity:.55;transition:filter .5s ease,opacity .5s ease}
.partners img:hover{filter:none;opacity:1}

/* donate band */
.donate{position:relative;background:var(--stage);color:var(--paper);text-align:center;padding:130px 24px;overflow:hidden}
.donate .bg{position:absolute;inset:0;background-position:center 40%;background-size:cover;filter:grayscale(1) brightness(.3);opacity:.5}
.donate::after{content:"";position:absolute;inset:0;background:var(--wisteria);mix-blend-mode:color;opacity:.3}
.donate-inner{position:relative;z-index:2}
.donate h2{font-family:'Cormorant Garamond',serif;font-weight:300;font-size:clamp(34px,4.6vw,60px);line-height:1.15;text-transform:uppercase;letter-spacing:.05em}
.donate h2 em{font-style:italic;text-transform:none;color:#CBD6EF}
.donate p{margin:22px auto 0;max-width:520px;font-family:'Cormorant Garamond',serif;font-size:19px;line-height:1.6;color:rgba(252,251,248,.85)}
.donate .cta-row{opacity:1;animation:none}

/* info cards (contact page) */
.info-grid{display:grid;grid-template-columns:1fr 1fr;gap:22px;margin-top:52px;text-align:left}
.info-card{border:1px solid rgba(16,16,23,.16);padding:40px}
.info-card .k{font-size:10.5px;letter-spacing:.3em;text-transform:uppercase;color:var(--steel);font-weight:600}
.info-card .v{font-family:'Cormorant Garamond',serif;font-size:24px;margin-top:14px;line-height:1.35}
.info-card .v a{color:inherit;text-decoration:none;border-bottom:1px solid rgba(16,16,23,.25);transition:border-color .3s}
.info-card .v a:hover{border-color:var(--wisteria)}
.info-card .d{margin-top:10px;font-size:14px;line-height:1.7;color:var(--ink-soft)}

/* form */
.form{margin-top:52px;text-align:left}
.form .fr{display:grid;grid-template-columns:1fr 1fr;gap:22px}
.form label{display:block;font-size:10.5px;letter-spacing:.3em;text-transform:uppercase;color:var(--steel);font-weight:600;margin:26px 0 10px}
.form input,.form textarea{width:100%;background:transparent;border:none;border-bottom:1px solid rgba(16,16,23,.3);padding:10px 2px;font-family:'Cormorant Garamond',serif;font-size:20px;color:var(--stage);outline:none;transition:border-color .3s;border-radius:0}
.form input:focus,.form textarea:focus{border-color:var(--wisteria)}
.form textarea{resize:vertical;min-height:120px}
.form .cta{margin-top:38px}
.form .fine{margin-top:16px;font-size:12px;color:rgba(16,16,23,.5)}

/* event feature (idaho gives / nwpf) */
.event-card{margin-top:52px;border:1px solid rgba(16,16,23,.16);padding:56px 48px;text-align:center}
.event-card .date{font-family:'Cormorant Garamond',serif;font-weight:300;font-size:clamp(34px,4.4vw,54px);line-height:1.1;text-transform:uppercase;letter-spacing:.04em}
.event-card .date em{font-style:italic;text-transform:none;color:var(--wisteria)}
.event-card .d{margin-top:18px;font-size:15px;line-height:1.8;color:var(--ink-soft);max-width:520px;margin-inline:auto}
.event-card .cta{margin-top:32px}

/* ================= FOOTER ================= */
footer{background:var(--stage);color:var(--paper);border-top:1px solid rgba(252,251,248,.14);padding:70px 44px 110px}
.foot-grid{max-width:1150px;margin:0 auto;display:grid;grid-template-columns:1.4fr 1fr 1fr 1fr;gap:44px}
.foot-grid .wordmark{text-align:left}
.foot-grid .wordmark .rule{margin:0;width:120px;animation:none}
.foot-h{font-size:10.5px;letter-spacing:.3em;text-transform:uppercase;color:#9FB3DC;font-weight:600;margin-bottom:18px}
.foot-grid ul{list-style:none}
.foot-grid li{margin-bottom:10px;font-size:14px;color:rgba(252,251,248,.75);line-height:1.6}
.foot-grid a{color:rgba(252,251,248,.75);text-decoration:none;transition:color .3s}
.foot-grid a:hover{color:var(--paper)}
.legal{max-width:1150px;margin:60px auto 0;padding-top:26px;border-top:1px solid rgba(252,251,248,.12);display:flex;justify-content:space-between;gap:20px;flex-wrap:wrap;font-size:11.5px;letter-spacing:.06em;color:rgba(252,251,248,.45)}

@keyframes rise{from{opacity:0;transform:translateY(38px)}to{opacity:1;transform:none}}
@keyframes fade{to{opacity:1}}
@keyframes rule{to{width:120px}}

@media (prefers-reduced-motion: reduce){
  *{animation-duration:.01ms!important;animation-delay:0s!important;transition-duration:.01ms!important}
  .rv{opacity:1;transform:none}
}
@media (max-width:960px){
  .frame{border-width:8px}
  .top{padding:0 24px}
  .headline .w1,.headline .w3{left:24px}
  .headline .w2{right:24px}
  .headline span{font-size:clamp(40px,10vw,72px)}
  .lede{bottom:13%;padding:0 24px;width:100%}
  .page-title{padding:0 24px 56px}
  .section{padding:80px 24px}
  .mission{padding:110px 24px 80px}
  .photo-band{grid-template-columns:1fr;padding:0 24px 40px}
  .photo-band .tall img{min-height:0}
  .band-label{padding:0 24px}
  .dark-split{padding:80px 24px}
  .dark-split-inner{grid-template-columns:1fr;gap:44px}
  .team-names{grid-template-columns:repeat(2,1fr)}
  .info-grid{grid-template-columns:1fr}
  .form .fr{grid-template-columns:1fr}
  .foot-grid{grid-template-columns:1fr 1fr}
  footer{padding:60px 24px 90px}
  .menu .menu-close{right:24px}
}
