/* ============================================================
   Soul Revival — Sept 24, 2026 · Sarasota
   Palette + type lifted from the concert flyer.
   ============================================================ */

:root{
  --ink:        #0B0A14;   /* deep night */
  --ink-2:      #12101F;   /* raised night */
  --ink-3:      #1B1830;   /* card night */
  --gold:       #E2B75C;   /* flyer gold band */
  --gold-lt:    #F0D08C;
  --gold-dk:    #B8873A;
  --cream:      #F4EFE3;   /* flyer info panel */
  --cream-2:    #EAE3D2;
  --muted:      #A9A2B8;
  --muted-2:    #6F6880;
  --red:        #E2452F;

  --shell: min(1180px, 100% - 2.5rem);
  --r: 4px;

  --f-display: "Anton", "Arial Narrow", sans-serif;
  --f-script:  "Playfair Display", Georgia, serif;
  --f-cond:    "Barlow Condensed", "Arial Narrow", sans-serif;
  --f-body:    "Barlow", system-ui, -apple-system, "Segoe UI", sans-serif;
}

*,*::before,*::after{ box-sizing:border-box; }

html{ scroll-behavior:smooth; -webkit-text-size-adjust:100%; }
@media (prefers-reduced-motion: reduce){ html{ scroll-behavior:auto; } }

body{
  margin:0;
  background:var(--ink);
  color:var(--cream);
  font-family:var(--f-body);
  font-size:clamp(1rem, .96rem + .2vw, 1.08rem);
  line-height:1.65;
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
}

img{ max-width:100%; height:auto; display:block; }
a{ color:inherit; }

.wrap{ width:var(--shell); margin-inline:auto; }

.skip{
  position:absolute; left:-9999px; top:0; z-index:200;
  background:var(--gold); color:var(--ink); padding:.7rem 1.1rem; font-weight:600;
}
.skip:focus{ left:1rem; top:1rem; }

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

/* ---------- shared type ---------- */
.kicker{
  font-family:var(--f-cond);
  text-transform:uppercase;
  letter-spacing:.34em;
  font-size:.78rem;
  font-weight:500;
  color:var(--gold);
  margin:0 0 1rem;
}
.kicker--boxed{
  display:inline-block;
  border:1px solid rgba(226,183,92,.55);
  padding:.6rem 1.4rem .55rem;
  letter-spacing:.3em;
  color:var(--gold-lt);
  margin-bottom:1.4rem;
}

.h2{
  font-family:var(--f-display);
  font-weight:400;
  font-size:clamp(2.1rem, 1.4rem + 3.2vw, 3.9rem);
  line-height:.98;
  letter-spacing:.005em;
  text-transform:uppercase;
  margin:0 0 1rem;
}
.h2 em{
  font-family:var(--f-script);
  font-style:italic;
  font-weight:600;
  text-transform:none;
  letter-spacing:-.01em;
  color:var(--gold);
  font-size:.94em;
}

.lede{
  color:var(--muted);
  max-width:56ch;
  font-size:1.06rem;
  margin:0 0 1.6rem;
}

.label{
  font-family:var(--f-cond);
  text-transform:uppercase;
  letter-spacing:.3em;
  font-size:.75rem;
  color:var(--muted-2);
  margin:0 0 .35rem;
}

/* ---------- buttons ---------- */
.btn{
  --btn-bg:transparent; --btn-fg:var(--cream); --btn-bd:currentColor;
  display:inline-flex; align-items:center; justify-content:center; gap:.5rem;
  font-family:var(--f-cond);
  text-transform:uppercase; letter-spacing:.14em; font-weight:600;
  font-size:1rem; line-height:1;
  padding:1.05rem 1.9rem .95rem;
  background:var(--btn-bg); color:var(--btn-fg);
  border:1.5px solid var(--btn-bd);
  border-radius:var(--r);
  text-decoration:none;
  cursor:pointer;
  transition:transform .18s ease, background-color .18s ease, color .18s ease, box-shadow .18s ease;
}
.btn:hover{ transform:translateY(-2px); }
.btn--gold{ --btn-bg:var(--gold); --btn-fg:var(--ink); --btn-bd:var(--gold);
  box-shadow:0 10px 30px -14px rgba(226,183,92,.9); }
.btn--gold:hover{ --btn-bg:var(--gold-lt); --btn-bd:var(--gold-lt); }
.btn--ghost{ --btn-bg:rgba(255,255,255,.05); --btn-bd:rgba(244,239,227,.4); backdrop-filter:blur(6px); }
.btn--ghost:hover{ --btn-bg:rgba(255,255,255,.12); --btn-bd:var(--cream); }
.btn--outline{ --btn-bd:rgba(226,183,92,.5); --btn-fg:var(--gold-lt); }
.btn--outline:hover{ --btn-bg:rgba(226,183,92,.12); --btn-bd:var(--gold); }
.btn--sm{ padding:.72rem 1.15rem .62rem; font-size:.86rem; letter-spacing:.12em; }
.btn--lg{ padding:1.25rem 2.6rem 1.15rem; font-size:1.1rem; }
.btn--block{ width:100%; }

/* ============================================================
   NAV
   ============================================================ */
.nav{
  position:fixed; inset:0 0 auto 0; z-index:100;
  padding:1.1rem 0;
  transition:background-color .3s ease, padding .3s ease, border-color .3s ease;
  border-bottom:1px solid transparent;
}
.nav.is-stuck{
  background:rgba(11,10,20,.9);
  backdrop-filter:blur(14px);
  border-bottom-color:rgba(226,183,92,.2);
  padding:.6rem 0;
}
.nav__inner{ display:flex; align-items:center; justify-content:space-between; gap:1rem; }

.nav__brand{ text-decoration:none; display:flex; align-items:baseline; gap:.4rem; }
.nav__brand-script{
  font-family:var(--f-script); font-style:italic; font-weight:600;
  color:var(--gold); font-size:1.35rem; line-height:1;
}
.nav__brand-block{
  font-family:var(--f-display); text-transform:uppercase;
  letter-spacing:.02em; font-size:1.18rem; line-height:1;
}

.nav__links{ display:flex; align-items:center; gap:1.9rem; }
.nav__links a:not(.btn){
  font-family:var(--f-cond); text-transform:uppercase; letter-spacing:.18em;
  font-size:.86rem; font-weight:500; text-decoration:none; color:var(--cream);
  opacity:.82; transition:opacity .2s ease, color .2s ease;
}
.nav__links a:not(.btn):hover{ opacity:1; color:var(--gold); }
@media (max-width:760px){
  .nav__links a:not(.btn){ display:none; }
}

/* ============================================================
   HERO
   ============================================================ */
.hero{
  position:relative;
  min-height:100svh;
  display:flex; align-items:center;
  padding:9rem 0 7rem;
  overflow:hidden;
  isolation:isolate;
}
.hero__media{ position:absolute; inset:0; z-index:-2; }
.hero__media img{
  width:100%; height:100%; object-fit:cover; object-position:center 22%;
  animation:slowzoom 26s ease-out forwards;
}
@keyframes slowzoom{ from{ transform:scale(1.06); } to{ transform:scale(1); } }
@media (prefers-reduced-motion: reduce){ .hero__media img{ animation:none; } }

.hero__scrim{
  position:absolute; inset:0; z-index:-1;
  background:
    radial-gradient(120% 85% at 50% 0%, rgba(226,183,92,.16), transparent 55%),
    linear-gradient(to right, rgba(11,10,20,.94) 0%, rgba(11,10,20,.86) 34%, rgba(11,10,20,.42) 62%, rgba(11,10,20,.72) 100%),
    linear-gradient(to bottom, rgba(11,10,20,.55) 0%, transparent 26%, rgba(11,10,20,.5) 72%, var(--ink) 100%);
}
@media (max-width:860px){
  .hero__scrim{
    background:
      radial-gradient(120% 60% at 50% 0%, rgba(226,183,92,.16), transparent 55%),
      linear-gradient(to bottom, rgba(11,10,20,.62) 0%, rgba(11,10,20,.55) 30%, rgba(11,10,20,.9) 62%, var(--ink) 100%);
  }
  .hero__media img{ object-position:center 18%; }
}

.hero__inner{ position:relative; max-width:44rem; }

.lockup{ margin:0 0 1.6rem; }
.lockup__script{
  display:block;
  font-family:var(--f-script); font-style:italic; font-weight:600;
  color:var(--gold);
  font-size:clamp(3.2rem, 1.6rem + 7vw, 6.4rem);
  line-height:.85;
  margin-left:.06em;
  text-shadow:0 6px 40px rgba(226,183,92,.35);
}
.lockup__block{
  display:block;
  font-family:var(--f-display); font-weight:400;
  text-transform:uppercase;
  color:#FBF7EC;
  font-size:clamp(3.5rem, 1.2rem + 11vw, 8.6rem);
  line-height:.84;
  letter-spacing:-.005em;
  margin-top:-.06em;
  text-shadow:0 10px 50px rgba(0,0,0,.6);
}

.hero__featuring-label{
  font-family:var(--f-cond); text-transform:uppercase; letter-spacing:.36em;
  font-size:.8rem; color:var(--cream-2); opacity:.75;
  margin:0 0 .6rem;
  position:relative; padding-top:1.2rem;
}
.hero__featuring-label::before{
  content:""; position:absolute; top:0; left:0; width:4.5rem; height:1px;
  background:linear-gradient(to right, var(--gold), transparent);
}
.hero__names{
  font-family:var(--f-display); text-transform:uppercase;
  font-size:clamp(1.6rem, .9rem + 2.6vw, 2.7rem);
  line-height:1.02;
  color:var(--gold-lt);
  margin:0 0 .45rem;
}
.hero__and{
  font-family:var(--f-cond); text-transform:uppercase; letter-spacing:.34em;
  font-size:.8rem; color:var(--muted); margin:0 0 1.3rem;
}
.hero__tag{
  font-family:var(--f-script); font-style:italic; font-weight:500;
  font-size:clamp(1.2rem, .95rem + .9vw, 1.75rem);
  color:#FBF7EC;
  margin:0 0 2.2rem;
}

.hero__cta{ display:flex; flex-wrap:wrap; gap:.9rem; margin-bottom:2.4rem; }

.hero__facts{
  list-style:none; margin:0; padding:1.3rem 0 0;
  border-top:1px solid rgba(244,239,227,.18);
  display:flex; flex-wrap:wrap; gap:.5rem 2rem;
  font-family:var(--f-cond); text-transform:uppercase; letter-spacing:.16em;
  font-size:.92rem; color:var(--cream-2);
}
.hero__facts .is-gold{ color:var(--gold); font-weight:600; }

/* countdown */
.hero__count{
  position:absolute; right:max(2.5vw, 1.25rem); bottom:2.2rem; z-index:2;
}
@media (max-width:1080px){
  .hero__count{ position:static; margin:2.6rem auto 0; width:var(--shell); }
}
.count{ display:flex; gap:.55rem; }
.count__unit{
  min-width:4.2rem; padding:.75rem .5rem .6rem;
  background:rgba(11,10,20,.55);
  border:1px solid rgba(226,183,92,.28);
  backdrop-filter:blur(10px);
  border-radius:var(--r);
  text-align:center;
}
.count__n{
  display:block; font-family:var(--f-display); font-size:1.5rem; line-height:1;
  color:var(--gold-lt); font-variant-numeric:tabular-nums;
}
.count__l{
  display:block; font-family:var(--f-cond); text-transform:uppercase;
  letter-spacing:.2em; font-size:.62rem; color:var(--muted); margin-top:.3rem;
}

/* ============================================================
   TICKER
   ============================================================ */
.ticker{
  background:var(--gold); color:var(--ink);
  overflow:hidden; padding:.85rem 0;
  border-block:1px solid var(--gold-dk);
}
.ticker__track{
  display:flex; align-items:center; gap:1.5rem; width:max-content;
  animation:slide 38s linear infinite;
  font-family:var(--f-cond); text-transform:uppercase; letter-spacing:.28em;
  font-size:.9rem; font-weight:600;
}
.ticker__track .dot{ opacity:.55; letter-spacing:0; }
@keyframes slide{ from{ transform:translateX(0); } to{ transform:translateX(-33.333%); } }
@media (prefers-reduced-motion: reduce){ .ticker__track{ animation:none; } }

/* ============================================================
   DETAILS PANEL (cream, echoes the flyer)
   ============================================================ */
.details{ padding:clamp(3.5rem, 7vw, 6rem) 0 clamp(2rem,4vw,3rem); }

.panel{
  background:var(--cream); color:var(--ink);
  border-radius:var(--r);
  padding:clamp(1.8rem, 4vw, 3.2rem);
  display:grid; grid-template-columns:1fr auto 1fr; gap:clamp(1.5rem,4vw,3.5rem);
  box-shadow:0 40px 80px -50px rgba(0,0,0,.9);
}
@media (max-width:760px){
  .panel{ grid-template-columns:1fr; }
  .panel__rule{ height:1px !important; width:100% !important; }
}
.panel__rule{ width:1px; background:rgba(11,10,20,.16); }

.bigdate{
  font-family:var(--f-display); text-transform:uppercase;
  font-size:clamp(2.4rem, 1.4rem + 3.6vw, 4rem);
  line-height:.86; margin:0 0 .8rem;
}
.bigdate span{ display:block; }

.panel__line{
  font-family:var(--f-cond); text-transform:uppercase; letter-spacing:.14em;
  font-size:1.12rem; font-weight:600; margin:.2rem 0; color:#26222F;
}
.panel__addr{
  font-family:var(--f-display); text-transform:none;
  font-size:clamp(1.5rem, 1rem + 1.6vw, 2.1rem);
  line-height:1.12; margin:0 0 1rem; letter-spacing:.01em;
}
.panel__free{
  font-family:var(--f-cond); text-transform:uppercase; letter-spacing:.14em;
  font-weight:600; font-size:1.25rem; color:var(--gold-dk); margin:0 0 1rem;
}
.panel__link{
  font-family:var(--f-cond); text-transform:uppercase; letter-spacing:.16em;
  font-size:.9rem; font-weight:600; color:var(--ink);
  text-decoration:none; border-bottom:1.5px solid var(--gold); padding-bottom:.15rem;
}
.panel__link:hover{ color:var(--gold-dk); }

.details__actions{
  display:flex; flex-wrap:wrap; gap:.8rem; justify-content:center;
  margin-top:2.2rem;
}

/* ============================================================
   LINEUP
   ============================================================ */
.lineup{ padding:clamp(4rem, 9vw, 7.5rem) 0; }
.lineup .lede{ margin-bottom:3rem; }

.artists{ display:grid; grid-template-columns:repeat(3, 1fr); gap:1.6rem; }
@media (max-width:900px){ .artists{ grid-template-columns:repeat(2,1fr); } }
@media (max-width:620px){ .artists{ grid-template-columns:1fr; } }

.artist{
  background:linear-gradient(180deg, var(--ink-3), var(--ink-2));
  border:1px solid rgba(244,239,227,.09);
  border-radius:var(--r);
  padding:0 0 1.8rem;
  overflow:hidden;
  transition:border-color .25s ease, transform .25s ease;
}
.artist:hover{ border-color:rgba(226,183,92,.4); transform:translateY(-4px); }

.artist__photo{ aspect-ratio:3/4; overflow:hidden; position:relative; }
.artist__photo::after{
  content:""; position:absolute; inset:0;
  background:linear-gradient(to bottom, transparent 55%, rgba(18,16,31,.96));
}
.artist__photo img{ width:100%; height:100%; object-fit:cover; transition:transform .5s ease; }
.artist:hover .artist__photo img{ transform:scale(1.05); }

.artist__name{
  font-family:var(--f-display); text-transform:uppercase; font-weight:400;
  font-size:1.55rem; line-height:1.05;
  color:var(--gold-lt);
  margin:1.3rem 1.6rem .6rem;
}
.artist__bio{ margin:0 1.6rem; color:var(--muted); font-size:.98rem; }

.artist--more{
  display:flex; flex-direction:column; justify-content:center;
  text-align:center; padding:2.4rem 0;
  border-style:dashed; border-color:rgba(226,183,92,.3);
  background:transparent;
}
.artist--more .artist__name,
.artist--more .artist__bio{ margin-inline:1.6rem; }
.artist__plus{
  font-family:var(--f-display); font-size:3.4rem; color:rgba(226,183,92,.4);
  line-height:1; margin-bottom:.4rem;
}
.artist__cta{
  font-family:var(--f-cond); text-transform:uppercase; letter-spacing:.16em;
  font-size:.86rem; font-weight:600; color:var(--gold);
  text-decoration:none; margin-top:1.1rem;
}
.artist__cta:hover{ color:var(--gold-lt); }

/* ============================================================
   SHOWCASE
   ============================================================ */
.showcase{
  padding:clamp(3.5rem, 8vw, 6.5rem) 0;
  background:
    radial-gradient(90% 70% at 15% 10%, rgba(226,183,92,.09), transparent 60%),
    var(--ink-2);
  border-block:1px solid rgba(244,239,227,.07);
}
.showcase__inner{
  display:grid; grid-template-columns:1.15fr .85fr; gap:clamp(2rem,5vw,4.5rem);
  align-items:center;
}
@media (max-width:860px){ .showcase__inner{ grid-template-columns:1fr; } }

.checks{ list-style:none; margin:0 0 2rem; padding:0; }
.checks li{
  position:relative; padding-left:1.7rem; margin-bottom:.6rem; color:var(--cream-2);
}
.checks li::before{
  content:""; position:absolute; left:0; top:.62em;
  width:.55rem; height:.55rem; border-radius:50%;
  background:var(--gold); box-shadow:0 0 12px rgba(226,183,92,.7);
}

.showcase__flyer{ width:100%; max-width:440px; margin-inline:auto; }
.showcase__flyer img{
  border-radius:var(--r);
  border:1px solid rgba(226,183,92,.3);
  box-shadow:0 50px 90px -50px rgba(0,0,0,1);
  transition:transform .3s ease;
}
.showcase__flyer a:hover img{ transform:translateY(-5px) rotate(-.6deg); }
.showcase__cap{
  text-align:center; margin:.9rem 0 0;
  font-family:var(--f-cond); text-transform:uppercase; letter-spacing:.2em;
  font-size:.78rem; color:var(--muted-2);
}

/* ============================================================
   RSVP
   ============================================================ */
.rsvp{ padding:clamp(4rem, 9vw, 7rem) 0; }
.rsvp__head{ text-align:center; }
.rsvp__head .lede{ margin-inline:auto; }

.rsvp__grid{
  display:grid; grid-template-columns:repeat(2,1fr);
  gap:1rem; margin:2.4rem 0 2rem;
}
@media (max-width:620px){ .rsvp__grid{ grid-template-columns:1fr; } }
.contact{
  display:block; text-decoration:none;
  background:var(--ink-3);
  border:1px solid rgba(226,183,92,.22);
  border-radius:var(--r);
  padding:1.5rem 1.7rem;
  transition:border-color .2s ease, background-color .2s ease, transform .2s ease;
}
.contact:hover{ border-color:var(--gold); background:#221E3A; transform:translateY(-3px); }
.contact__label{
  display:block;
  font-family:var(--f-cond); text-transform:uppercase; letter-spacing:.28em;
  font-size:.74rem; color:var(--muted-2); margin-bottom:.4rem;
}
.contact__value{
  display:block;
  font-family:var(--f-display); text-transform:uppercase;
  font-size:clamp(1.15rem, .9rem + .9vw, 1.7rem);
  color:var(--gold-lt); word-break:break-word; letter-spacing:.01em;
}

.form{
  max-width:44rem; margin:0 auto;
  background:var(--ink-2);
  border:1px solid rgba(244,239,227,.1);
  border-radius:var(--r);
  padding:clamp(1.5rem,4vw,2.4rem);
}
.form__intro{
  font-family:var(--f-cond); text-transform:uppercase; letter-spacing:.2em;
  font-size:.82rem; color:var(--muted); margin:0 0 1.4rem;
}
.form__row{ display:grid; grid-template-columns:1fr 1fr; gap:1rem; }
@media (max-width:560px){ .form__row{ grid-template-columns:1fr; } }

.field{ display:block; margin-bottom:1rem; }
.field > span{
  display:block;
  font-family:var(--f-cond); text-transform:uppercase; letter-spacing:.18em;
  font-size:.76rem; color:var(--muted); margin-bottom:.4rem;
}
.field > span small{ text-transform:none; letter-spacing:.02em; opacity:.7; }
.field input, .field select, .field textarea{
  width:100%;
  background:rgba(255,255,255,.04);
  border:1px solid rgba(244,239,227,.18);
  border-radius:var(--r);
  color:var(--cream);
  font-family:var(--f-body); font-size:1rem;
  padding:.85rem 1rem;
  transition:border-color .2s ease, background-color .2s ease;
}
.field textarea{ resize:vertical; }
.field input::placeholder, .field textarea::placeholder{ color:var(--muted-2); }
.field input:focus, .field select:focus, .field textarea:focus{
  outline:none; border-color:var(--gold); background:rgba(255,255,255,.07);
}
.field select{ appearance:none; cursor:pointer; }
.field select option{ background:var(--ink-2); color:var(--cream); }

.hp{ position:absolute !important; left:-9999px !important; width:1px; height:1px; opacity:0; }

.form .btn{ margin-top:.6rem; }
.form__note{
  text-align:center; font-size:.85rem; color:var(--muted-2); margin:.9rem 0 0;
}
.form__note.is-ok{ color:var(--gold); }
.form__note.is-err{ color:var(--red); }

/* ============================================================
   VENUE
   ============================================================ */
.venue{
  padding:clamp(3.5rem,8vw,6.5rem) 0;
  background:var(--ink-2);
  border-block:1px solid rgba(244,239,227,.07);
}
.venue__inner{
  display:grid; grid-template-columns:.9fr 1.1fr; gap:clamp(2rem,5vw,4rem);
  align-items:center;
}
@media (max-width:860px){ .venue__inner{ grid-template-columns:1fr; } }
.venue__addr{
  font-family:var(--f-cond); text-transform:uppercase; letter-spacing:.2em;
  font-size:1.1rem; color:var(--gold); margin:-.4rem 0 1.2rem;
}
.venue__btns{ display:flex; flex-wrap:wrap; gap:.8rem; }
.venue__map{
  border-radius:var(--r); overflow:hidden;
  border:1px solid rgba(226,183,92,.25);
  box-shadow:0 40px 80px -50px #000;
  aspect-ratio:16/11;
}
.venue__map iframe{ width:100%; height:100%; border:0; display:block; filter:grayscale(.35) contrast(1.05); }

/* ============================================================
   CLOSER + FOOTER
   ============================================================ */
.closer{
  position:relative;
  padding:clamp(4.5rem,10vw,8rem) 0;
  text-align:center;
  background:
    radial-gradient(80% 100% at 50% 0%, rgba(226,183,92,.2), transparent 65%),
    var(--ink);
}
.closer__title{
  font-family:var(--f-display); text-transform:uppercase; font-weight:400;
  font-size:clamp(2.8rem, 1.2rem + 8vw, 6.5rem);
  line-height:.9; margin:0 0 1rem; color:#FBF7EC;
}
.closer__title span{
  font-family:var(--f-script); font-style:italic; font-weight:600;
  text-transform:none; color:var(--gold); letter-spacing:-.01em;
}
.closer__meta{
  font-family:var(--f-cond); text-transform:uppercase; letter-spacing:.2em;
  font-size:.95rem; color:var(--cream-2); margin:0 0 2.2rem;
}

.foot{
  background:#07060E;
  border-top:1px solid rgba(244,239,227,.09);
  padding:3rem 0 1.6rem;
}
.foot__inner{
  display:flex; flex-wrap:wrap; justify-content:space-between; gap:2rem;
  padding-bottom:2rem; border-bottom:1px solid rgba(244,239,227,.08);
}
.foot__brand{
  font-family:var(--f-display); text-transform:uppercase;
  font-size:1.5rem; margin:0 0 .6rem; color:#FBF7EC;
}
.foot__brand span{
  font-family:var(--f-script); font-style:italic; text-transform:none; color:var(--gold);
}
.foot__line{ margin:.15rem 0; color:var(--muted); font-size:.95rem; }
.foot__contact{ display:flex; flex-direction:column; gap:.45rem; }
.foot__contact a{
  font-family:var(--f-cond); text-transform:uppercase; letter-spacing:.16em;
  font-size:.92rem; color:var(--gold-lt); text-decoration:none;
}
.foot__contact a:hover{ color:var(--gold); text-decoration:underline; }
.foot__legal{
  text-align:center; color:var(--muted-2); font-size:.8rem;
  margin:1.4rem 0 0;
  font-family:var(--f-cond); letter-spacing:.14em; text-transform:uppercase;
}

/* ============================================================
   REVEAL
   ============================================================ */
.reveal{ opacity:0; transform:translateY(24px); transition:opacity .7s ease, transform .7s ease; }
.reveal.is-in{ opacity:1; transform:none; }
@media (prefers-reduced-motion: reduce){
  .reveal{ opacity:1; transform:none; transition:none; }
}
