/* ==========================================================================
   Banana House, Prishtinë
   Palette taken from the brand: butter yellow + powder blue, warm brown accent
   ========================================================================== */

:root{
  /* brand */
  --butter:        #FCEFB4;
  --butter-deep:   #F8E496;
  --stripe-a:      #FDF5CE;
  --stripe-b:      #F9E7A2;
  --cream:         #FFFAEC;

  --blue-soft:     #B4D3EA;   /* display / decorative only */
  --blue:          #7FAED4;
  --ink:           #27455E;   /* readable deep blue, used for all body copy */
  --ink-soft:      #5E7E96;

  --brown:         #6B4A2F;
  --matcha:        #8FB06B;

  --line:          rgba(39,69,94,.14);

  /* type */
  --serif: "Playfair Display", Georgia, serif;
  --sans:  "DM Sans", system-ui, -apple-system, "Segoe UI", sans-serif;

  /* space */
  --wrap: 1180px;
  --pad:  clamp(20px, 5vw, 48px);
  --sec:  clamp(72px, 11vw, 140px);

  --radius: 20px;
  --ease: cubic-bezier(.22,.61,.36,1);
}

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

html{ scroll-behavior:smooth; scroll-padding-top:84px; -webkit-text-size-adjust:100%; }

body{
  margin:0;
  background:var(--cream);
  color:var(--ink);
  font-family:var(--sans);
  font-size:clamp(15px,1.05vw,17px);
  line-height:1.65;
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
}

img,svg{ max-width:100%; display:block; }
a{ color:inherit; }

.wrap{ width:100%; max-width:var(--wrap); margin-inline:auto; padding-inline:var(--pad); }

.section{ padding-block:var(--sec); }
.section--butter{ background:var(--butter); }

/* ---------- shared type ---------- */
.eyebrow{
  font-size:.72rem; font-weight:700; letter-spacing:.22em; text-transform:uppercase;
  color:var(--blue); margin:0 0 14px;
}
.h2{
  font-family:var(--serif); font-weight:900;
  font-size:clamp(2.1rem,5.4vw,3.6rem);
  line-height:1.06; letter-spacing:-.02em; margin:0 0 20px;
}
.h2 em{ font-style:italic; font-weight:400; color:var(--blue); }
.lede{
  font-size:clamp(1rem,1.35vw,1.16rem); color:var(--ink-soft);
  max-width:58ch; margin:0;
}

/* ---------- buttons ---------- */
.btn{
  display:inline-flex; align-items:center; justify-content:center; gap:.5em;
  padding:15px 30px; border-radius:100px;
  background:var(--ink); color:var(--cream);
  font-family:var(--sans); font-size:.92rem; font-weight:700;
  letter-spacing:.02em; text-decoration:none;
  border:2px solid var(--ink);
  transition:transform .35s var(--ease), background .35s var(--ease), color .35s var(--ease), box-shadow .35s var(--ease);
  box-shadow:0 6px 0 -2px rgba(39,69,94,.18);
}
.btn:hover{ transform:translateY(-3px); box-shadow:0 12px 22px -8px rgba(39,69,94,.45); }
.btn:active{ transform:translateY(0); }
.btn--ghost{ background:transparent; color:var(--ink); box-shadow:none; }
.btn--ghost:hover{ background:var(--ink); color:var(--cream); }
.btn--sm{ padding:10px 20px; font-size:.82rem; box-shadow:none; }

/* ==========================================================================
   NAV
   ========================================================================== */
.nav{
  position:fixed; inset:0 0 auto 0; z-index:100;
  transition:background .4s var(--ease), box-shadow .4s var(--ease), backdrop-filter .4s;
}
.nav.is-stuck{
  background:rgba(255,250,236,.86);
  backdrop-filter:blur(14px) saturate(1.3);
  box-shadow:0 1px 0 var(--line);
}
.nav__inner{
  max-width:var(--wrap); margin-inline:auto; padding:18px var(--pad);
  display:flex; align-items:center; gap:24px;
  transition:padding .4s var(--ease);
}
.nav.is-stuck .nav__inner{ padding-block:12px; }

.nav__logo{
  font-family:var(--serif); font-weight:900; font-size:1.22rem;
  letter-spacing:.01em; text-decoration:none; margin-right:auto;
  transform:scaleY(1.12); transform-origin:left center;
}
.nav__links{ display:flex; gap:30px; }
.nav__links a{
  position:relative; text-decoration:none; font-size:.9rem; font-weight:500;
  padding-block:4px;
}
.nav__links a::after{
  content:""; position:absolute; left:0; bottom:0; width:100%; height:2px;
  background:var(--blue); transform:scaleX(0); transform-origin:right;
  transition:transform .4s var(--ease);
}
.nav__links a:hover::after{ transform:scaleX(1); transform-origin:left; }

.nav__burger{
  display:none; width:42px; height:42px; border:none; background:transparent;
  cursor:pointer; padding:0; place-items:center;
}
.nav__burger span{
  display:block; width:22px; height:2px; background:var(--ink); border-radius:2px;
  transition:transform .35s var(--ease), opacity .3s;
}
.nav__burger span+span{ margin-top:6px; }
.nav__burger[aria-expanded="true"] span:first-child{ transform:translateY(4px) rotate(45deg); }
.nav__burger[aria-expanded="true"] span:last-child{ transform:translateY(-4px) rotate(-45deg); }

/* ==========================================================================
   HERO
   ========================================================================== */
.hero{
  position:relative; min-height:100svh;
  display:grid; place-items:center; text-align:center;
  padding:120px var(--pad) 80px; overflow:hidden;
  background:var(--butter);
}
.hero__stripes{
  position:absolute; inset:0;
  background:repeating-linear-gradient(90deg,
    var(--stripe-a) 0 34px, var(--stripe-b) 34px 68px);
  opacity:.9;
  -webkit-mask-image:radial-gradient(120% 90% at 50% 40%, #000 45%, transparent 100%);
          mask-image:radial-gradient(120% 90% at 50% 40%, #000 45%, transparent 100%);
}
.hero__inner{ position:relative; z-index:2; max-width:900px; }

.hero__eyebrow{
  font-size:.74rem; font-weight:700; letter-spacing:.3em; text-transform:uppercase;
  color:var(--brown); opacity:.65; margin:0 0 clamp(18px,3vw,30px);
}

.hero__title{
  font-family:var(--serif); font-weight:900;
  font-size:clamp(3.4rem,15vw,10rem);
  line-height:.82; letter-spacing:-.015em;
  text-transform:uppercase; color:var(--blue-soft);
  margin:0; display:flex; flex-direction:column;
  text-shadow:0 3px 0 rgba(255,255,255,.4);
}
.hero__title span{ display:block; transform:scaleY(1.22); transform-origin:center; }
.hero__title span:last-child{ margin-top:.16em; }

.hero__tagline{
  font-family:var(--serif); font-style:italic;
  font-size:clamp(1.05rem,2.6vw,1.7rem);
  color:var(--blue); margin:clamp(26px,4vw,42px) 0 0; letter-spacing:.04em;
}

.hero__lede{
  max-width:46ch; margin:22px auto 0;
  color:var(--brown); opacity:.8; font-size:clamp(.98rem,1.3vw,1.1rem);
}

.hero__actions{
  display:flex; flex-wrap:wrap; gap:14px; justify-content:center;
  margin-top:clamp(30px,4.5vw,44px);
}

.hero__scroll{
  position:absolute; bottom:28px; left:50%; translate:-50% 0; z-index:2;
  display:grid; justify-items:center; gap:6px;
  font-size:.66rem; letter-spacing:.24em; text-transform:uppercase;
  color:var(--brown); opacity:.5;
}
.hero__scroll svg{ width:14px; animation:bob 2.4s var(--ease) infinite; }
@keyframes bob{ 0%,100%{ transform:translateY(0) } 50%{ transform:translateY(6px) } }

/* hero entrance */
.hero__eyebrow,.hero__title span,.hero__tagline,.hero__lede,.hero__actions{
  animation:riseIn .95s var(--ease) both;
}
.hero__title span:nth-child(1){ animation-delay:.08s }
.hero__title span:nth-child(2){ animation-delay:.16s }
.hero__tagline{ animation-delay:.26s }
.hero__lede   { animation-delay:.34s }
.hero__actions{ animation-delay:.42s }
@keyframes riseIn{ from{ opacity:0; transform:translateY(26px) } to{ opacity:1; transform:none } }

/* ==========================================================================
   MARQUEE
   ========================================================================== */
.marquee{
  background:var(--ink); color:var(--butter);
  padding:16px 0; overflow:hidden; white-space:nowrap;
}
.marquee__track{
  display:inline-flex; align-items:center; gap:26px;
  animation:slide 34s linear infinite;
}
.marquee span{
  font-family:var(--serif); font-style:italic; font-size:1.15rem; letter-spacing:.02em;
}
.marquee i{ color:var(--blue); font-style:normal; font-size:.8rem; }
@keyframes slide{ to{ transform:translateX(-50%) } }

/* ==========================================================================
   ABOUT
   ========================================================================== */
.about__head{ max-width:720px; margin-bottom:clamp(48px,7vw,76px); }

.cards{
  display:grid; gap:24px;
  grid-template-columns:repeat(auto-fit,minmax(280px,1fr));
}
.card{
  background:var(--butter); border-radius:var(--radius);
  padding:0 0 32px; overflow:hidden;
  border:1px solid rgba(107,74,47,.1);
  transition:transform .5s var(--ease), box-shadow .5s var(--ease);
}
.card:hover{ transform:translateY(-6px); box-shadow:0 24px 46px -22px rgba(39,69,94,.4); }

.card__art{
  height:190px; display:grid; place-items:center;
  background:repeating-linear-gradient(90deg, var(--stripe-a) 0 26px, var(--stripe-b) 26px 52px);
  border-bottom:1px solid rgba(107,74,47,.1);
}
.card__art--matcha{ background:linear-gradient(160deg,#E4EFDA,#CFE2BC); }
.card__art--coffee{ background:linear-gradient(160deg,#F1E3D0,#E0CBB2); }
.ill{ width:130px; filter:drop-shadow(0 8px 12px rgba(39,69,94,.16)); }

.card h3{
  font-family:var(--serif); font-size:1.55rem; font-weight:700;
  margin:26px 28px 10px;
}
.card p{ margin:0 28px; color:var(--ink-soft); font-size:.95rem; }

.stats{
  display:grid; gap:20px; grid-template-columns:repeat(auto-fit,minmax(140px,1fr));
  margin-top:clamp(48px,6vw,72px); padding-top:40px; border-top:1px solid var(--line);
  text-align:center;
}
.stat strong{
  display:block; font-family:var(--serif); font-weight:900;
  font-size:clamp(1.9rem,3.6vw,2.7rem); line-height:1; color:var(--blue);
}
.stat span{
  display:block; margin-top:8px; font-size:.75rem; letter-spacing:.16em;
  text-transform:uppercase; color:var(--ink-soft);
}

/* ==========================================================================
   MENU
   ========================================================================== */
.menu__head{ text-align:center; max-width:620px; margin:0 auto clamp(36px,5vw,52px); }
.menu__head .lede{ margin-inline:auto; }

.tabs{
  display:flex; flex-wrap:wrap; gap:10px; justify-content:center;
  margin-bottom:clamp(36px,5vw,54px);
}
.tab{
  font-family:var(--sans); font-size:.86rem; font-weight:700;
  padding:11px 22px; border-radius:100px; cursor:pointer;
  background:transparent; color:var(--ink);
  border:2px solid rgba(39,69,94,.2);
  transition:all .3s var(--ease);
}
.tab:hover{ border-color:var(--ink); }
.tab.is-active{ background:var(--ink); color:var(--butter); border-color:var(--ink); }

.panel{ display:none; }
.panel.is-active{ display:block; animation:fadeUp .5s var(--ease) both; }
@keyframes fadeUp{ from{ opacity:0; transform:translateY(14px) } to{ opacity:1; transform:none } }

.panel__sub{
  font-family:var(--serif); font-style:italic; font-weight:400;
  font-size:1.3rem; color:var(--brown);
  margin:38px 0 14px; padding-bottom:10px; border-bottom:1px solid rgba(107,74,47,.2);
}
.panel__sub:first-child{ margin-top:0; }
.panel__sub em{ font-size:.72em; opacity:.6; font-style:normal; }

.list{ list-style:none; margin:0; padding:0; }
.list--two{ columns:2; column-gap:56px; }
.list--two li{ break-inside:avoid; }

.list li{
  display:flex; align-items:baseline; gap:8px;
  padding:13px 0; border-bottom:1px dashed rgba(107,74,47,.22);
}
.list--two li{ display:flex; }

.list__name{ font-weight:500; }
.list__name em{
  display:block; font-style:normal; font-size:.8rem;
  color:var(--ink-soft); opacity:.8; margin-top:1px;
}
.dots{ flex:1; border-bottom:1px dotted rgba(39,69,94,.3); transform:translateY(-3px); min-width:16px; }
.list__price{ font-family:var(--serif); font-weight:700; font-size:1.05rem; white-space:nowrap; }
.list__price::after{ content:" €"; font-size:.8em; opacity:.6; }

.tag{
  display:inline-block; margin-left:8px; vertical-align:middle;
  font-size:.6rem; font-weight:700; letter-spacing:.12em; text-transform:uppercase;
  background:var(--blue); color:#fff; padding:3px 9px; border-radius:100px;
}
.panel__note{
  margin-top:22px; font-size:.9rem; color:var(--ink-soft); font-style:italic;
}
.panel__note a{ color:var(--ink); text-underline-offset:3px; }

/* ==========================================================================
   BOXES
   ========================================================================== */
.boxes__grid{
  display:grid; gap:clamp(40px,6vw,72px);
  grid-template-columns:1fr 1fr; align-items:center;
}
.boxes__hint{
  font-size:.85rem; color:var(--brown); opacity:.7;
  margin:22px 0 28px; padding-left:14px; border-left:3px solid var(--blue-soft);
}
.boxes__prices{ display:grid; grid-template-columns:1fr 1fr; gap:16px; }

.pricebox{
  position:relative; background:var(--butter); border-radius:var(--radius);
  padding:30px 22px; text-align:center;
  border:1px solid rgba(107,74,47,.12);
  transition:transform .45s var(--ease), box-shadow .45s var(--ease);
}
.pricebox:hover{ transform:translateY(-5px) rotate(-1deg); box-shadow:0 20px 40px -20px rgba(39,69,94,.45); }
.pricebox--best{ background:var(--ink); color:var(--butter); border-color:var(--ink); }

.pricebox__n{
  display:block; font-family:var(--serif); font-weight:900; line-height:1;
  font-size:clamp(2.4rem,5vw,3.2rem);
}
.pricebox__l{
  display:block; font-size:.7rem; letter-spacing:.2em; text-transform:uppercase;
  opacity:.6; margin-top:6px;
}
.pricebox__p{
  display:block; margin-top:14px; padding-top:14px;
  border-top:1px solid currentColor; opacity:.95;
  font-family:var(--serif); font-size:1.25rem; font-weight:700;
}
.pricebox--best .pricebox__p{ border-color:rgba(252,239,180,.3); }
.pricebox__tag{
  position:absolute; top:-11px; left:50%; translate:-50% 0;
  background:var(--blue); color:#fff; font-size:.6rem; font-weight:700;
  letter-spacing:.12em; text-transform:uppercase; padding:4px 12px; border-radius:100px;
  white-space:nowrap;
}

/* ==========================================================================
   REVIEWS
   ========================================================================== */
.reviews{
  --gap:24px;
  /* One full loop of the card set. Higher = slower drift.
     ~90s reads at a comfortable pace; drop to 60s to speed it up. */
  --revspeed:90s;
  background:var(--ink); color:var(--butter);
  padding-block:clamp(64px,9vw,110px); overflow:hidden;
}
/* trimmed by the 14px the row now pads, so the gap looks unchanged */
.reviews__head{ text-align:center; margin-bottom:clamp(24px,4vw,42px); }
.eyebrow--light{ color:var(--blue-soft); }

.revscore{
  display:flex; align-items:center; justify-content:center;
  flex-wrap:wrap; gap:8px 16px; margin-top:22px;
}
.revscore__num{
  font-family:var(--serif); font-weight:900; font-size:2.6rem; line-height:1;
  color:var(--butter);
}
.revscore__meta{
  font-size:.8rem; letter-spacing:.1em; text-transform:uppercase;
  opacity:.55; width:100%;
}

/* ---- stars ---- */
.stars{ display:inline-flex; gap:3px; }
.stars svg{ width:15px; height:15px; fill:#F2B01E; }
.stars--lg svg{ width:24px; height:24px; }
.stars svg.is-off{ fill:currentColor; opacity:.22; }

/* ---- scrolling row ---- */
.revrow{
  /* The mask clips anything drawn outside this box, so the row needs vertical
     headroom or the hover lift on a card gets its top edge cut off.
     The gradient runs left to right, so this padding does not affect the fade. */
  padding-block:14px;
  -webkit-mask-image:linear-gradient(90deg,transparent,#000 9%,#000 91%,transparent);
          mask-image:linear-gradient(90deg,transparent,#000 9%,#000 91%,transparent);
}
.revrow__track{
  display:flex; width:max-content;
  animation:revscroll var(--revspeed) linear infinite;
}
/* pause while reading: hover on desktop, press and hold on touch */
.revrow:hover .revrow__track,
.revrow:active .revrow__track,
.revrow:focus-within .revrow__track{ animation-play-state:paused; }

.revrow__set{ display:flex; }

@keyframes revscroll{ to{ transform:translateX(-50%) } }

/* ---- card ---- */
.rev{
  flex:0 0 clamp(272px,29vw,346px);
  margin-right:var(--gap);
  background:var(--butter); color:var(--ink);
  border-radius:var(--radius); padding:26px 28px 24px;
  display:flex; flex-direction:column; gap:14px;
  transition:transform .45s var(--ease);
}
.rev:hover{ transform:translateY(-6px); }

.rev__text{
  margin:0; font-size:.95rem; line-height:1.6; flex:1;
}
.rev__text::before{ content:"“"; }
.rev__text::after{ content:"”"; }

.rev__by{
  display:flex; align-items:center; gap:12px;
  padding-top:14px; border-top:1px dashed rgba(107,74,47,.25);
}
.rev__av{
  flex-shrink:0; width:38px; height:38px; border-radius:50%;
  display:grid; place-items:center;
  background:var(--blue); color:#fff;
  font-family:var(--serif); font-weight:700; font-size:1.05rem;
}
.rev__by strong{ display:block; font-size:.9rem; }
.rev__by span{ font-size:.76rem; color:var(--ink-soft); }

.reviews__foot{ text-align:center; margin-top:clamp(38px,5vw,54px); }
.btn--light{
  background:var(--butter); color:var(--ink); border-color:var(--butter);
  box-shadow:none;
}
.btn--light:hover{ background:#fff; border-color:#fff; }

/* Touch devices keep the same auto-scroll, nothing to swipe.
   Slightly quicker there since fewer cards are on screen at once. */
@media (hover:none){
  .reviews{ --revspeed:70s; }
}

/* ==========================================================================
   VISIT
   ========================================================================== */
.visit__head{ text-align:center; margin-bottom:clamp(44px,6vw,68px); }

.visit__grid{
  display:grid; gap:32px;
  grid-template-columns:repeat(auto-fit,minmax(240px,1fr));
}
.info h3{
  font-family:var(--serif); font-size:1.4rem; font-weight:700;
  margin:0 0 16px; padding-bottom:12px; border-bottom:2px solid rgba(39,69,94,.15);
}
.info__big{ font-size:1.02rem; font-weight:500; margin:0 0 6px; line-height:1.5; }
.info__big a{ text-decoration:none; border-bottom:1px solid var(--blue); }
.info__big a:hover{ color:var(--blue); }
.info__sub{ font-size:.86rem; color:var(--ink-soft); margin:12px 0 0; }

.hours{ list-style:none; margin:0; padding:0; }
.hours li{
  display:flex; justify-content:space-between; gap:14px;
  padding:9px 0; border-bottom:1px dashed rgba(107,74,47,.22); font-size:.94rem;
}
.hours li span:last-child{ font-weight:700; }

.socials{ display:flex; flex-wrap:wrap; gap:10px; margin-top:20px; }
.socials a{
  font-size:.78rem; font-weight:700; letter-spacing:.06em;
  padding:8px 16px; border-radius:100px; text-decoration:none;
  border:1.5px solid rgba(39,69,94,.25);
  transition:all .3s var(--ease);
}
.socials a:hover{ background:var(--ink); color:var(--butter); border-color:var(--ink); }

/* ---- embedded map ---- */
.mapwrap{
  margin:clamp(40px,5vw,60px) auto 0;
  max-width:860px;
}
.mapbox{
  height:clamp(300px,48vh,440px);
  border-radius:var(--radius); overflow:hidden;
  border:1px solid rgba(107,74,47,.2);
  background:#E9E2CE;                       /* shown while the iframe loads */
  box-shadow:0 18px 40px -24px rgba(39,69,94,.5);
}
.mapbox iframe{ width:100%; height:100%; border:0; display:block; }

.mapbar{
  display:flex; align-items:center; gap:18px; flex-wrap:wrap;
  margin-top:20px;
}
.mapbar__pin{ color:var(--blue); flex-shrink:0; }
.mapbar__pin svg{ width:38px; }
.mapbar p{ margin:0; margin-right:auto; line-height:1.5; }
.mapbar strong{ font-family:var(--serif); font-size:1.2rem; }
.mapbar__actions{ display:flex; gap:10px; flex-wrap:wrap; }

/* ==========================================================================
   FOOTER
   ========================================================================== */
.footer{ background:var(--ink); color:var(--butter); padding-block:clamp(48px,7vw,72px) 32px; }
.footer__top{
  display:flex; justify-content:space-between; align-items:flex-end;
  flex-wrap:wrap; gap:28px; padding-bottom:32px; border-bottom:1px solid rgba(252,239,180,.2);
}
.footer__logo{
  font-family:var(--serif); font-weight:900; text-transform:uppercase;
  font-size:clamp(1.8rem,4.5vw,2.6rem); line-height:1; margin:0;
  color:var(--blue-soft); transform:scaleY(1.15); transform-origin:left bottom;
}
.footer__tag{
  font-family:var(--serif); font-style:italic; opacity:.65;
  margin:16px 0 0; font-size:.98rem;
}
.footer__nav{ display:flex; flex-wrap:wrap; gap:24px; }
.footer__nav a{ font-size:.88rem; text-decoration:none; opacity:.8; transition:opacity .3s; }
.footer__nav a:hover{ opacity:1; }

.footer__bottom{
  display:flex; justify-content:space-between; flex-wrap:wrap; gap:10px;
  padding-top:24px; font-size:.78rem; opacity:.55;
}
.footer__bottom p{ margin:0; }

/* ==========================================================================
   REVEAL ON SCROLL
   ========================================================================== */
.reveal{ opacity:0; transform:translateY(28px); transition:opacity .8s var(--ease), transform .8s var(--ease); }
.reveal.is-in{ opacity:1; transform:none; }

/* ==========================================================================
   RESPONSIVE
   ========================================================================== */
@media (max-width:900px){
  .boxes__grid{ grid-template-columns:1fr; }
}

@media (max-width:760px){
  .nav__burger{ display:grid; }
  .nav__cta{ display:none; }

  .nav__links{
    position:fixed; inset:0 0 auto 0; top:0;
    flex-direction:column; gap:0; padding:88px var(--pad) 32px;
    background:var(--cream); border-bottom:1px solid var(--line);
    transform:translateY(-100%); transition:transform .45s var(--ease);
    box-shadow:0 20px 40px -24px rgba(39,69,94,.5);
  }
  .nav__links.is-open{ transform:none; }
  .nav__links a{ padding:15px 0; border-bottom:1px solid var(--line); font-size:1.05rem; }
  .nav.is-stuck, .nav:has(.is-open){ background:rgba(255,250,236,.92); }

  .list--two{ columns:1; }
  .footer__top{ align-items:flex-start; }
}

@media (max-width:480px){
  .boxes__prices{ grid-template-columns:1fr 1fr; gap:12px; }
  .pricebox{ padding:22px 14px; }
  .list li{ flex-wrap:wrap; }
  .mapbar{ gap:14px; }
  .mapbar__actions{ width:100%; }
  .mapbar__actions .btn{ flex:1; }
}

@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{ animation-duration:.01ms !important; animation-iteration-count:1 !important; transition-duration:.01ms !important; }
  html{ scroll-behavior:auto; }
  .reveal{ opacity:1; transform:none; }

  /* DELIBERATE OPT-OUT (owner's decision):
     the two scrolling strips keep moving even for visitors who asked their
     device for reduced motion. The blanket rule above would otherwise crush
     them to 0.01ms and freeze them on their last frame, so re-declare both.
     To restore the accessible behaviour, replace this block with:
       .marquee__track,.revrow__track{ animation:none !important; transform:none !important; }
       .revrow{ overflow-x:auto; }
       .revrow__set:last-child{ display:none; } */
  .marquee__track{ animation:slide 34s linear infinite !important; }
  .revrow__track{ animation:revscroll var(--revspeed) linear infinite !important; }
}
