/* ============================================================
   WATCHER — site styles
   Palette is deliberately monochrome + cold. The only "colour"
   in the whole design is white, same as the client's accent.
   ============================================================ */

:root{
  --bg:        #08090b;
  --bg-raise:  #0d0f12;
  --line:      #1b1e23;
  --line-soft: #141619;
  --ink:       #eef1f4;
  --ink-dim:   #949ba4;
  --ink-faint: #5d646d;
  --accent:    #ffffff;

  --f-sans: "Inter Tight", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;
  --f-mono: "JetBrains Mono", ui-monospace, "SF Mono", Consolas, monospace;

  --pad: clamp(20px, 5vw, 80px);
  --max: 1240px;
}

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

html{ scroll-behavior:smooth; -webkit-text-size-adjust:100%; }

body{
  margin:0;
  background:var(--bg);
  color:var(--ink);
  font-family:var(--f-sans);
  font-size:16px;
  line-height:1.6;
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
}

h1,h2,h3{ margin:0; font-weight:600; letter-spacing:-.03em; line-height:1.05; }
p{ margin:0; }
ul,ol,dl{ margin:0; padding:0; list-style:none; }
a{ color:inherit; text-decoration:none; }
strong{ font-weight:600; color:var(--ink); }
em{ font-style:normal; color:var(--ink); }

::selection{ background:#fff; color:#000; }

/* film grain so the flat black doesn't band on cheap monitors */
.grain{
  position:fixed; inset:-50%;
  pointer-events:none; z-index:1; opacity:.028;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='140' height='140'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='3'/%3E%3C/filter%3E%3Crect width='140' height='140' filter='url(%23n)'/%3E%3C/svg%3E");
}

/* ── buttons ──────────────────────────────────────────── */
.btn{
  display:inline-flex; align-items:center; justify-content:center;
  gap:.5em;
  padding:14px 26px;
  background:var(--accent); color:#000;
  font-size:14px; font-weight:600; letter-spacing:-.01em;
  border:1px solid var(--accent); border-radius:2px;
  transition:transform .18s cubic-bezier(.2,.7,.3,1), opacity .18s, background .18s, color .18s;
  white-space:nowrap;
}
.btn:hover{ transform:translateY(-2px); opacity:.88; }
.btn:active{ transform:translateY(0); }
.btn--ghost{
  background:transparent; color:var(--ink);
  border-color:var(--line);
}
.btn--ghost:hover{ background:#fff; color:#000; border-color:#fff; opacity:1; }
.btn--sm{ padding:9px 16px; font-size:13px; }
.btn--full{ width:100%; }

kbd{
  font-family:var(--f-mono); font-size:.82em;
  background:var(--bg-raise); border:1px solid var(--line);
  border-radius:3px; padding:2px 6px; color:var(--ink);
}

/* 20 rather than 18: the branched flake has more going on than the old
   asterisk did, and needs the extra couple of pixels to stay readable. */
.flake{ width:20px; height:20px; }

/* ── nav ──────────────────────────────────────────────── */
.nav{
  position:fixed; top:0; left:0; right:0; z-index:60;
  display:flex; align-items:center; gap:32px;
  padding:16px var(--pad);
  border-bottom:1px solid transparent;
  transition:background .3s, border-color .3s, backdrop-filter .3s;
}
.nav.is-stuck{
  background:rgba(8,9,11,.82);
  backdrop-filter:blur(14px) saturate(1.2);
  border-bottom-color:var(--line-soft);
}
.nav__brand{
  display:flex; align-items:center; gap:9px;
  font-family:var(--f-mono); font-size:13px; font-weight:500;
  letter-spacing:.18em;
}
.nav__links{ display:flex; gap:28px; margin-left:auto; }
.nav__links a{
  font-size:14px; color:var(--ink-dim);
  transition:color .18s;
}
.nav__links a:hover{ color:var(--ink); }
/* icon-only discord link in the top bar, beside the CTA */
.nav__dc{
  display:inline-flex; align-items:center; justify-content:center;
  width:34px; height:34px;
  color:var(--ink-dim);
  border:1px solid var(--line-soft);
  transition:color .18s, border-color .18s, transform .18s;
}
.nav__dc svg{ width:17px; height:17px; }
.nav__dc:hover{ color:var(--ink); border-color:var(--line); transform:translateY(-1px); }

.nav__burger{
  display:none; flex-direction:column; gap:5px;
  background:none; border:0; padding:8px; cursor:pointer; margin-left:auto;
}
.nav__burger span{
  display:block; width:20px; height:1.5px; background:var(--ink);
  transition:transform .25s, opacity .25s;
}
.nav.is-open .nav__burger span:nth-child(1){ transform:translateY(3.25px) rotate(45deg); }
.nav.is-open .nav__burger span:nth-child(2){ transform:translateY(-3.25px) rotate(-45deg); }

.drawer{
  position:fixed; inset:60px 0 auto 0; z-index:55;
  display:none; flex-direction:column;
  padding:16px var(--pad) 28px;
  background:rgba(8,9,11,.97);
  backdrop-filter:blur(14px);
  border-bottom:1px solid var(--line);
}
.drawer.is-open{ display:flex; }
.drawer a{
  padding:14px 0; font-size:19px; letter-spacing:-.02em;
  border-bottom:1px solid var(--line-soft);
}
.drawer__cta{ margin-top:18px; border:0 !important; color:var(--accent); font-weight:600; }

/* ── layout ───────────────────────────────────────────── */
.section{
  position:relative; z-index:2;
  max-width:var(--max); margin:0 auto;
  padding:clamp(72px,10vw,140px) var(--pad);
}
.section__head{ max-width:640px; margin-bottom:clamp(40px,5vw,64px); }
.section__title{
  font-size:clamp(30px,4.6vw,52px);
}
.section__lede{
  margin-top:16px; color:var(--ink-dim);
  font-size:clamp(15px,1.5vw,17px); max-width:52ch;
}
.eyebrow{
  font-family:var(--f-mono); font-size:11px; letter-spacing:.2em;
  text-transform:uppercase; color:var(--ink-faint);
}

/* ── hero ─────────────────────────────────────────────── */
.hero{
  position:relative; z-index:2;
  max-width:var(--max); margin:0 auto;
  padding:clamp(140px,17vw,220px) var(--pad) clamp(60px,7vw,90px);
  display:grid; grid-template-columns:minmax(0,1fr) auto; align-items:center; gap:40px;
}
.hero__inner{ max-width:760px; }
.hero__title{
  margin-top:22px;
  font-size:clamp(64px,15vw,168px);
  font-weight:700; letter-spacing:-.055em; line-height:.86;
}
.hero__title .dot{ color:var(--ink-faint); }
.hero__sub{
  margin-top:30px; max-width:48ch;
  font-size:clamp(16px,1.8vw,19px); color:var(--ink-dim);
  line-height:1.62;
}
/* The price belongs above the fold even though the pricing table is halfway
   down the page — being cheap is the pitch, so hiding the number until
   scroll 5 throws away the strongest thing we've got. */
.hero__price{
  margin-top:24px;
  font-family:var(--f-mono); font-size:13.5px;
  color:var(--ink-dim); line-height:1.7;
}
.hero__price b{ color:var(--ink); font-size:16px; font-weight:600; }
.hero__price span{ color:var(--ink-faint); }

.hero__cta{ display:flex; flex-wrap:wrap; gap:12px; margin-top:30px; }

.hero__mark{
  color:#fff; opacity:.05;
  width:clamp(180px,26vw,340px);
  animation:spin 90s linear infinite;
}
.hero__mark svg{ width:100%; height:100%; stroke-width:.5; fill:none; stroke:currentColor; }
@keyframes spin{ to{ transform:rotate(360deg); } }

/* flex, not grid: a wrapped row must stretch to fill rather than
   leave a dead cell hanging off the end */
.stats{
  display:flex; flex-wrap:wrap;
  gap:1px; margin-top:64px;
  background:var(--line-soft);
  border:1px solid var(--line-soft);
}
.stats > div{ flex:1 1 148px; background:var(--bg); padding:18px 20px; }
.stats dt{
  font-family:var(--f-mono); font-size:10.5px; letter-spacing:.16em;
  text-transform:uppercase; color:var(--ink-faint);
}
.stats dd{ margin:7px 0 0; font-size:15px; font-weight:500; letter-spacing:-.015em; }

/* ── ticker ───────────────────────────────────────────── */
.ticker{
  position:relative; z-index:2;
  overflow:hidden; padding:18px 0;
  border-top:1px solid var(--line-soft);
  border-bottom:1px solid var(--line-soft);
  mask-image:linear-gradient(90deg,transparent,#000 12%,#000 88%,transparent);
  -webkit-mask-image:linear-gradient(90deg,transparent,#000 12%,#000 88%,transparent);
}
.ticker__track{
  display:flex; gap:22px; width:max-content;
  animation:slide 46s linear infinite;
  font-family:var(--f-mono); font-size:12.5px; letter-spacing:.06em;
  color:var(--ink-faint);
}
.ticker__track i{ font-style:normal; opacity:.4; }
@keyframes slide{ to{ transform:translateX(-50%); } }

/* ── pitch ────────────────────────────────────────────── */
.pitch__grid{
  display:flex; flex-wrap:wrap;
  gap:1px; margin-top:56px;
  background:var(--line-soft); border:1px solid var(--line-soft);
}
.pitch__grid article{
  flex:1 1 270px;
  background:var(--bg); padding:clamp(26px,3vw,38px);
  transition:background .25s;
}
.pitch__grid article:hover{ background:var(--bg-raise); }
.pitch__grid .num{
  font-family:var(--f-mono); font-size:11px; letter-spacing:.16em;
  color:var(--ink-faint);
}
.pitch__grid h3{ margin:20px 0 12px; font-size:19px; letter-spacing:-.02em; }
.pitch__grid p{ color:var(--ink-dim); font-size:15px; }

/* ── modules ──────────────────────────────────────────── */
.mods{
  display:grid; grid-template-columns:repeat(auto-fit,minmax(210px,1fr));
  gap:clamp(28px,4vw,52px) clamp(24px,3vw,44px);
}
.mods__cat{
  display:flex; align-items:center; justify-content:space-between; gap:12px;
  font-family:var(--f-mono); font-size:11px; letter-spacing:.2em;
  text-transform:uppercase; color:var(--ink-dim);
  padding-bottom:12px; margin-bottom:6px;
  border-bottom:1px solid var(--line);
}
.mods__count{
  font-size:10.5px; letter-spacing:.1em; color:var(--ink-faint);
  font-weight:400; flex:none;
}
.mods__list li{ border-bottom:1px solid var(--line-soft); }

/* JS turns the <li> text into this button and appends the description */
.mods__btn{
  display:flex; align-items:center; justify-content:space-between; gap:10px;
  width:100%; padding:9px 0; background:none; border:0; cursor:pointer;
  font:inherit; font-size:14.5px; color:var(--ink-dim); text-align:left;
  transition:color .16s, padding-left .16s;
}
.mods__btn:hover{ color:var(--ink); padding-left:6px; }
.mods__btn::after{
  content:"+"; flex:none;
  font-family:var(--f-mono); font-size:13px; color:var(--ink-faint);
  transition:transform .22s, color .16s;
}
.mods__btn[aria-expanded="true"]{ color:#fff; }
.mods__btn[aria-expanded="true"]::after{ content:"−"; color:var(--ink-dim); }

/* 0fr -> 1fr animates a height we don't know in advance */
.mods__desc{
  display:grid; grid-template-rows:0fr;
  transition:grid-template-rows .26s cubic-bezier(.2,.7,.3,1);
}
.mods__desc > span{ overflow:hidden; }
.mods__desc.is-open{ grid-template-rows:1fr; }
.mods__desc > span > em{
  display:block;
  padding:0 8px 13px 10px; margin-top:-2px;
  border-left:1px solid var(--line);
  font-size:13.6px; line-height:1.6; color:var(--ink-dim);
}

/* Watcher's own category, sat above the six inherited ones */
.mods__own{
  margin-bottom:clamp(48px,6vw,72px);
  padding:clamp(24px,3vw,34px) clamp(24px,3vw,36px) clamp(10px,1.5vw,18px);
  border:1px solid var(--line);
  background:
    linear-gradient(180deg, rgba(255,255,255,.028), transparent 62%),
    var(--bg-raise);
}
/* This one is a real heading, not a tiny mono label like the six category
   headers -- at 11px letter-spaced it was unreadable. */
.mods__cat--own{
  font-family:var(--f-sans);
  font-size:clamp(20px,2.4vw,26px);
  font-weight:600; letter-spacing:-.025em; text-transform:none;
  color:#fff;
  padding-bottom:0; margin-bottom:0; border-bottom:0;
}
.mods__ownlede{
  margin:10px 0 22px; padding-bottom:18px;
  border-bottom:1px solid var(--line);
  color:var(--ink-dim); font-size:14.5px; max-width:56ch;
}

.mods__tag{
  font-family:var(--f-mono); font-size:10.5px; letter-spacing:.08em;
  color:var(--ink-faint);
  border:1px solid var(--line); border-radius:2px;
  padding:2px 5px; margin-left:2px;
  white-space:nowrap; vertical-align:1px;
}
.mods__btn:hover .mods__tag,
.mods__btn[aria-expanded="true"] .mods__tag{ color:var(--ink-dim); border-color:#2a2f36; }
.mods__list--own{
  display:grid; grid-template-columns:repeat(auto-fit,minmax(230px,1fr));
  column-gap:clamp(24px,3vw,44px); align-items:start;
}

/* ── how it works ─────────────────────────────────────── */
.section--split{
  display:grid; grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);
  gap:clamp(40px,6vw,90px); align-items:start;
}
.steps{ counter-reset:s; }
.steps li{
  counter-increment:s;
  display:grid; grid-template-columns:auto 1fr; gap:0 22px;
  padding:26px 0; border-top:1px solid var(--line);
}
.steps li:last-child{ border-bottom:1px solid var(--line); }
.steps li::before{
  content:counter(s,decimal-leading-zero);
  grid-row:1/3;
  font-family:var(--f-mono); font-size:12px; color:var(--ink-faint);
  padding-top:4px;
}
.steps h3{ font-size:20px; letter-spacing:-.02em; }
.steps p{ margin-top:9px; color:var(--ink-dim); font-size:15px; }

/* ── pricing ──────────────────────────────────────────── */
.plans{
  display:flex; flex-wrap:wrap;
  gap:1px; background:var(--line-soft); border:1px solid var(--line-soft);
}
.plan{
  flex:1 1 262px;
  position:relative; background:var(--bg);
  padding:clamp(28px,3vw,40px);
  display:flex; flex-direction:column;
}
.plan--feature{ background:var(--bg-raise); }
.plan__tag{
  position:absolute; top:0; right:0;
  font-family:var(--f-mono); font-size:10px; letter-spacing:.16em;
  text-transform:uppercase;
  background:var(--accent); color:#000;
  padding:5px 11px;
}
.plan__name{
  font-family:var(--f-mono); font-size:11.5px; letter-spacing:.2em;
  text-transform:uppercase; color:var(--ink-dim); font-weight:500;
}
.plan__price{
  margin-top:22px;
  font-size:clamp(58px,7vw,76px); font-weight:600; letter-spacing:-.05em;
  line-height:1;
}
.plan__price .cur{ font-size:.45em; vertical-align:.62em; margin-right:2px; color:var(--ink-dim); }
.plan__price .per{
  font-size:.24em; font-weight:400; letter-spacing:0;
  color:var(--ink-faint); margin-left:6px; vertical-align:.35em;
}
/* the old price, struck through, next to a small "launch" chip.
   This is the anchor — it has to read at a glance, so it's set at full
   white and the strike is thick enough to see from across the card. */
.plan__was{
  margin-top:13px;
  display:flex; align-items:center; gap:10px;
}
.plan__was s{
  color:var(--ink);
  font-size:20px; font-weight:600; letter-spacing:-.02em;
  text-decoration-line:line-through;
  text-decoration-thickness:2px;
  text-decoration-color:var(--accent);
  opacity:.72;
}
.plan__was em{
  font-style:normal;
  font-family:var(--f-mono); font-size:10.5px; letter-spacing:.16em;
  text-transform:uppercase;
  background:var(--accent); color:#000; font-weight:500;
  padding:4px 8px; line-height:1;
}

/* pay-in-game alternative */
/* Two fixed lines rather than one that wraps — "4 stacks of gold" is wider
   than "32 gold", and a wrapping row would push the three cards out of line. */
.plan__gold{
  margin-top:16px;
  display:flex; flex-direction:column; gap:5px;
  padding:10px 12px;
  border:1px solid var(--line-soft);
  background:rgba(255,255,255,.025);
}
.plan__gold span{
  font-family:var(--f-mono); font-size:9.5px; letter-spacing:.18em;
  text-transform:uppercase; color:var(--ink-faint);
}
.plan__gold b{
  font-family:var(--f-mono); font-size:13px; font-weight:600;
  color:var(--ink); letter-spacing:-.01em;
}

.plan__note{ margin-top:12px; color:var(--ink-faint); font-size:14px; }
.plan__feat{ margin:28px 0 30px; }
.plan__feat li{
  position:relative; padding:9px 0 9px 20px;
  font-size:14.5px; color:var(--ink-dim);
  border-bottom:1px solid var(--line-soft);
}
.plan__feat li::before{
  content:"";
  position:absolute; left:0; top:17px;
  width:7px; height:1px; background:var(--ink-faint);
}
.plan .btn{ margin-top:auto; }
.plans__fine{
  margin-top:26px; color:var(--ink-faint); font-size:13.5px; max-width:66ch;
}

/* ── faq ──────────────────────────────────────────────── */
.faq{ border-top:1px solid var(--line); max-width:860px; }
.faq details{ border-bottom:1px solid var(--line); }
.faq summary{
  list-style:none; cursor:pointer;
  padding:24px 40px 24px 0; position:relative;
  font-size:clamp(16px,2vw,19px); letter-spacing:-.02em; font-weight:500;
  transition:color .18s;
}
.faq summary::-webkit-details-marker{ display:none; }
.faq summary:hover{ color:#fff; }
.faq summary::after,
.faq summary::before{
  content:""; position:absolute; right:6px; top:50%;
  background:var(--ink-dim); transition:transform .25s, background .18s;
}
.faq summary::before{ width:13px; height:1px; margin-top:-.5px; }
.faq summary::after{ width:1px; height:13px; margin-top:-6.5px; right:12px; }
.faq details[open] summary::after{ transform:rotate(90deg); }
.faq details[open] summary{ color:#fff; }
.faq details p{
  padding:0 60px 26px 0; margin-top:-4px;
  color:var(--ink-dim); font-size:15.5px; max-width:70ch;
}

/* ── updates / changelog ──────────────────────────────── */
.log{ list-style:none; max-width:820px; border-top:1px solid var(--line); }
.log__item{
  display:grid; grid-template-columns:190px 1fr; gap:clamp(12px,3vw,40px);
  padding:26px 0; border-bottom:1px solid var(--line);
}
.log__time{
  font-family:var(--f-mono); font-size:12.5px; letter-spacing:.02em;
  color:var(--ink-faint); padding-top:3px; white-space:nowrap;
}
.log__title{
  font-size:clamp(16px,2vw,19px); font-weight:600; letter-spacing:-.02em;
  color:#fff; margin-bottom:7px;
}
.log__body p{ color:var(--ink-dim); font-size:15px; line-height:1.6; max-width:64ch; }
@media (max-width:640px){
  .log__item{ grid-template-columns:1fr; gap:6px; }
  .log__time{ padding-top:0; }
}

/* ── end cta ──────────────────────────────────────────── */
.endcta{
  position:relative; z-index:2;
  text-align:center;
  padding:clamp(90px,12vw,150px) var(--pad);
  border-top:1px solid var(--line-soft);
  background:
    radial-gradient(60% 120% at 50% 0%, rgba(255,255,255,.045), transparent 70%);
}
.endcta__flake{
  width:34px; height:34px; color:var(--ink-faint);
  fill:none; stroke:currentColor;
}
.endcta h2{ margin-top:26px; font-size:clamp(30px,5vw,54px); }
.endcta p{ margin-top:14px; color:var(--ink-dim); }
.endcta__row{
  margin-top:34px;
  display:flex; justify-content:center; flex-wrap:wrap; gap:12px;
}
/* discord buttons: logo sits inline with the label */
.btn--dc{ display:inline-flex; align-items:center; gap:9px; }
.btn--dc svg{ width:17px; height:17px; flex:none; }

/* ── footer ───────────────────────────────────────────── */
.foot{
  position:relative; z-index:2;
  max-width:var(--max); margin:0 auto;
  padding:56px var(--pad) 64px;
  border-top:1px solid var(--line-soft);
}
.foot__top{
  display:flex; flex-wrap:wrap; gap:24px 40px;
  align-items:center; justify-content:space-between;
}
.foot__brand{
  display:flex; align-items:center; gap:9px;
  font-family:var(--f-mono); font-size:12.5px; letter-spacing:.18em;
}
.foot__links{ display:flex; flex-wrap:wrap; gap:24px; }
.foot__links a{ font-size:14px; color:var(--ink-dim); transition:color .18s; }
.foot__links a:hover{ color:var(--ink); }
.foot__credit{
  margin-top:40px; padding-top:26px;
  border-top:1px solid var(--line-soft);
  color:var(--ink-dim); font-size:13.5px; line-height:1.75; max-width:74ch;
}
.foot__credit strong{ color:var(--ink); font-weight:600; }
.foot__legal{
  margin-top:26px; padding-top:26px;
  border-top:1px solid var(--line-soft);
  color:var(--ink-faint); font-size:12.5px; line-height:1.75; max-width:78ch;
}
.foot__copy{ margin-top:22px; color:var(--ink-faint); font-size:12.5px; }

/* ── reveal on scroll ─────────────────────────────────── */
.reveal{ opacity:0; transform:translateY(14px); }
.reveal.is-in{
  opacity:1; transform:none;
  transition:opacity .6s cubic-bezier(.2,.7,.3,1), transform .6s cubic-bezier(.2,.7,.3,1);
}

/* ── responsive ───────────────────────────────────────── */
@media (max-width:900px){
  .hero{ grid-template-columns:1fr; }
  .hero__mark{ display:none; }
  .section--split{ grid-template-columns:1fr; }
}
@media (max-width:760px){
  .nav__links{ display:none; }
  /* Keep the CTA and the Discord icon in the bar on phones. Pricing is ~5
     screens down, so without these the only way to buy or get help is to open
     the burger menu first. */
  .nav{ gap:10px; }
  .nav__dc{ margin-left:auto; width:32px; height:32px; }
  .nav .btn--sm{ padding:8px 14px; font-size:12.5px; }
  /* display:flex is what reveals the burger on mobile -- the base rule hides it. */
  .nav__burger{ display:flex; margin-left:0; padding:8px 0 8px 8px; position:relative; }
  /* The two bars are only 24px tall together, which is a miss-prone tap target on a
     phone. Grow the touch area to 44px with an invisible overlay rather than padding:
     padding would make the burger the tallest thing in the header and push the whole
     bar down by 6px. */
  .nav__burger::after{
    content:""; position:absolute;
    top:50%; left:50%; transform:translate(-50%,-50%);
    width:44px; height:44px;
  }
  .foot__top{ flex-direction:column; align-items:flex-start; }

  /* 97 modules in one column is ~4000px of thumb-scrolling on a phone.
     Collapse each category so the whole list fits on one screen and you
     open only the one you care about. Desktop keeps everything open. */
  .mods{ gap:0; display:block; }
  .mods__col{ border-bottom:1px solid var(--line-soft); }
  .mods__cat{
    cursor:pointer; user-select:none;
    padding:17px 2px 17px 0; margin:0; border-bottom:0;
    transition:color .16s;
  }
  .mods__cat::after{
    content:"+"; font-size:13px; letter-spacing:0; color:var(--ink-faint);
  }
  .mods__col.is-open .mods__cat{ color:#fff; }
  .mods__col.is-open .mods__cat::after{ content:"−"; }
  .mods__col:not(.is-open) .mods__list{ display:none; }
  .mods__col.is-open .mods__list{ padding-bottom:14px; }
  .mods__count{ margin-left:auto; margin-right:12px; }

  /* The Newly-added block stays open -- it's the point of the section. It is not a
     collapsible category, so it must not inherit the "+" affordance above: a plus that
     does nothing when tapped just reads as broken. */
  .mods__cat--own{ cursor:default; }
  .mods__cat--own::after{ content:none; }
  .mods__own{ padding-left:20px; padding-right:20px; }
  .mods__list--own{ grid-template-columns:1fr; }
}

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