/* ═══════════════════════════════════════════════
   $DOGE — Do Only Good Everyday
   Palette: lime · black · white. Nothing else.
   ═══════════════════════════════════════════════ */

:root{
  --lime:      #B4F82C;
  --lime-hot:  #D4FF3F;
  --lime-deep: #7ED000;
  --ink:       #050705;
  --ink-2:     #0B120A;
  --panel:     #0E1A0C;
  --white:     #FFFFFF;
  --mist:      rgba(255,255,255,.62);
  --line:      rgba(180,248,44,.22);
  --glow:      rgba(180,248,44,.45);

  --display: 'Archivo Black', system-ui, sans-serif;
  --body:    'Space Grotesk', system-ui, -apple-system, sans-serif;

  --shell: 1180px;
  --r: 22px;
}

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

html{ scroll-behavior:smooth; scroll-padding-top:120px; }

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

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

.wrap{ width:min(var(--shell), 100% - 40px); margin-inline:auto; }

/* film grain */
.noise{
  position:fixed; inset:0; z-index:9998; pointer-events:none; opacity:.05;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='3'/%3E%3C/filter%3E%3Crect width='160' height='160' filter='url(%23n)'/%3E%3C/svg%3E");
}

/* ─────────── NAV RIBBON ─────────── */
.ribbon{
  position:fixed; top:0; left:0; right:0; z-index:900;
  padding:14px 20px 0;
  transition:transform .35s ease;
}
.ribbon.is-hidden{ transform:translateY(-130%); }

.ribbon__inner{
  width:min(1080px,100%); margin-inline:auto;
  display:flex; align-items:center; gap:14px;
  background:var(--ink-2);
  border:1px solid var(--line);
  border-radius:999px;
  padding:9px 9px 9px 12px;
  box-shadow:0 18px 50px rgba(0,0,0,.6), 0 0 0 1px rgba(0,0,0,.5);
  backdrop-filter:blur(14px);
}

.pill{
  display:inline-flex; align-items:center; gap:9px;
  font-family:var(--display); font-size:12px; letter-spacing:.09em;
  color:var(--ink); background:var(--lime);
  border:0; border-radius:999px; padding:11px 18px;
  cursor:pointer;
  transition:transform .18s cubic-bezier(.34,1.56,.64,1), box-shadow .25s;
}
.pill:hover{ transform:translateY(-2px) scale(1.04); box-shadow:0 0 26px var(--glow); }

.burger{ display:inline-flex; flex-direction:column; gap:3px; }
.burger i{ width:14px; height:2px; background:var(--ink); border-radius:2px; transition:.28s; }
.pill[aria-expanded="true"] .burger i:nth-child(1){ transform:translateY(5px) rotate(45deg); }
.pill[aria-expanded="true"] .burger i:nth-child(2){ opacity:0; }
.pill[aria-expanded="true"] .burger i:nth-child(3){ transform:translateY(-5px) rotate(-45deg); }

.ribbon__logo img{
  border-radius:50%;
  box-shadow:0 0 0 1.5px var(--lime);
  transition:transform .4s cubic-bezier(.34,1.56,.64,1);
}
.ribbon__logo:hover img{ transform:rotate(-8deg) scale(1.12); }

.ribbon__links{ display:flex; gap:26px; margin-left:6px; }
.ribbon__links a{
  position:relative; font-size:13.5px; font-weight:500;
  color:var(--mist); text-decoration:none; padding:4px 0;
  transition:color .22s;
}
.ribbon__links a::after{
  content:''; position:absolute; left:0; bottom:0; height:2px; width:0;
  background:var(--lime); border-radius:2px; transition:width .28s ease;
}
.ribbon__links a:hover{ color:var(--lime); }
.ribbon__links a:hover::after{ width:100%; }

.ribbon__social{ display:flex; gap:8px; margin-left:auto; }
.ico{
  width:38px; height:38px; display:grid; place-items:center;
  border-radius:50%; background:rgba(255,255,255,.06);
  border:1px solid var(--line); color:var(--white);
  transition:.24s cubic-bezier(.34,1.56,.64,1);
}
.ico svg{ width:17px; height:17px; }
.ico:hover{ background:var(--lime); color:var(--ink); transform:translateY(-3px); box-shadow:0 0 22px var(--glow); }

.drawer[hidden]{ display:none; }
.drawer{
  position:fixed; top:82px; left:20px; right:20px; z-index:899;
  background:var(--ink-2); border:1px solid var(--line);
  border-radius:22px; padding:12px; display:grid; gap:2px;
  box-shadow:0 24px 60px rgba(0,0,0,.7);
  animation:drop .28s cubic-bezier(.34,1.4,.64,1);
}
@keyframes drop{ from{ opacity:0; transform:translateY(-14px);} }
.drawer a{
  padding:14px 18px; border-radius:14px; text-decoration:none;
  font-family:var(--display); font-size:14px; letter-spacing:.04em;
}
.drawer a:hover{ background:var(--lime); color:var(--ink); }

/* ─────────── HERO ─────────── */
.hero{
  position:relative; min-height:100svh;
  padding:150px 0 96px;
  display:flex; flex-direction:column; align-items:center;
  overflow:hidden;
  background:
    radial-gradient(120% 80% at 50% -10%, rgba(180,248,44,.20), transparent 62%),
    radial-gradient(90% 60% at 50% 108%, rgba(126,208,0,.16), transparent 70%),
    var(--ink);
}

.hero__grid{
  position:absolute; inset:-20%;
  background-image:
    linear-gradient(var(--line) 1px, transparent 1px),
    linear-gradient(90deg, var(--line) 1px, transparent 1px);
  background-size:74px 74px;
  mask-image:radial-gradient(70% 60% at 50% 42%, #000 20%, transparent 78%);
  animation:pan 26s linear infinite;
  opacity:.75;
}
@keyframes pan{ to{ transform:translate3d(74px,74px,0); } }

.glyphs{ position:absolute; inset:0; pointer-events:none; }
.glyphs span{
  position:absolute; color:var(--lime); opacity:.5;
  animation:bob var(--dur,7s) ease-in-out infinite alternate;
}
.glyphs .g-x{ font-family:var(--display); font-size:14px; }
.glyphs .g-bolt{ width:34px; }
@keyframes bob{ to{ transform:translateY(-26px) rotate(18deg); opacity:.85; } }

.hero__inner{ position:relative; z-index:2; text-align:center; width:min(var(--shell),100% - 40px); }

.eyebrow{
  margin:0 0 6px; font-size:17px; color:var(--mist); letter-spacing:.01em;
}
.eyebrow span{ color:var(--lime); font-weight:700; }

.wordmark{
  margin:0; font-family:var(--display);
  font-size:clamp(72px, 17vw, 200px);
  line-height:.86; letter-spacing:-.035em;
  color:var(--white);
  text-shadow:0 0 60px rgba(180,248,44,.35);
  animation:breathe 5s ease-in-out infinite;
}
.wordmark__dollar{
  color:var(--lime);
  display:inline-block;
  text-shadow:0 0 40px var(--glow);
  animation:kick 3.2s cubic-bezier(.34,1.56,.64,1) infinite;
}
@keyframes breathe{ 50%{ text-shadow:0 0 100px rgba(180,248,44,.55); } }
@keyframes kick{ 0%,72%,100%{ transform:rotate(0) scale(1);} 80%{ transform:rotate(-7deg) scale(1.09);} 88%{ transform:rotate(4deg) scale(1.03);} }

.tagline{
  margin:14px 0 4px; font-family:var(--display);
  font-size:clamp(15px,2.6vw,25px); letter-spacing:.20em;
  color:var(--lime);
}
.subline{ margin:0; color:var(--mist); font-size:14.5px; letter-spacing:.04em; }

/* buttons */
.cta{ display:flex; gap:14px; justify-content:center; flex-wrap:wrap; margin-top:30px; }
.cta--center{ margin-top:44px; }

.btn{
  position:relative;
  display:inline-flex; align-items:center; gap:10px;
  font-family:var(--display); font-size:13px; letter-spacing:.08em;
  padding:15px 26px; border-radius:999px; text-decoration:none;
  color:var(--white); cursor:pointer;
  border:1.5px solid var(--line);
  /* wipe-up fill: painted on the element itself so the label stays on top */
  background-color:var(--ink-2);
  background-image:linear-gradient(var(--lime), var(--lime));
  background-repeat:no-repeat;
  background-position:50% 100%;
  background-size:100% 0%;
  transition:background-size .34s cubic-bezier(.65,0,.35,1),
             transform .2s cubic-bezier(.34,1.56,.64,1),
             box-shadow .28s, color .2s, border-color .2s;
}
.btn svg{ width:17px; height:17px; }
.btn:hover{
  color:var(--ink); border-color:var(--lime);
  background-size:100% 100%;
  transform:translateY(-3px);
  box-shadow:0 12px 34px rgba(180,248,44,.28);
}

.btn--primary{
  background-color:var(--lime); color:var(--ink); border-color:var(--lime);
  background-image:linear-gradient(var(--white), var(--white));
}
.btn--primary:hover{ color:var(--ink); }
.btn--lg{ font-size:16px; padding:20px 44px; }

/* hero doge */
.hero__doge{
  position:relative; margin:44px auto 0; width:min(500px,78vw);
  animation:float 6s ease-in-out infinite;
}
.hero__doge img{
  border-radius:50%;
  box-shadow:0 0 0 6px var(--ink), 0 0 90px rgba(180,248,44,.4);
}
@keyframes float{ 50%{ transform:translateY(-20px); } }

.hero__ring{
  position:absolute; inset:-8%; border-radius:50%;
  border:2px dashed rgba(180,248,44,.45);
  animation:spin 24s linear infinite;
}
@keyframes spin{ to{ transform:rotate(360deg); } }

/* ─────────── MARQUEE ─────────── */
.marquee{
  position:relative; z-index:3; width:100%; margin-top:56px;
  background:var(--lime); color:var(--ink);
  border-block:3px solid var(--ink);
  overflow:hidden; padding:16px 0;
}
.marquee--foot{ margin-top:0; background:var(--white); }
.marquee__track{
  display:flex; gap:44px; width:max-content;
  font-family:var(--display); font-size:clamp(20px,3.4vw,34px); letter-spacing:.03em;
  animation:slide 26s linear infinite;
  white-space:nowrap;
}
.marquee:hover .marquee__track{ animation-play-state:paused; }
@keyframes slide{ to{ transform:translateX(-50%); } }
.marquee__track i{ font-style:normal; color:var(--lime-deep); }
.marquee--foot .marquee__track i{ color:var(--lime-deep); }

/* ─────────── SECTIONS ─────────── */
.section{ padding:110px 0; position:relative; }

.shead{ text-align:center; margin-bottom:56px; }
.kicker{
  display:inline-block; font-family:var(--display); font-size:11px;
  letter-spacing:.22em; color:var(--lime);
  border:1px solid var(--line); border-radius:999px;
  padding:7px 16px; margin-bottom:20px;
  background:rgba(180,248,44,.06);
}
.shead h2{
  margin:0; font-family:var(--display);
  font-size:clamp(34px,6vw,66px); line-height:1.02; letter-spacing:-.03em;
}
.shead h2 em{ font-style:normal; color:var(--lime); }
.shead p{ margin:16px auto 0; max-width:520px; color:var(--mist); }

.finePrint{ text-align:center; color:rgba(255,255,255,.4); font-size:12.5px; margin-top:26px; }
.finePrint code{ color:var(--lime); font-size:12px; }

/* ─────────── REWARDS COUNTER ─────────── */
.rewards{ background:linear-gradient(180deg, transparent, rgba(180,248,44,.05), transparent); }

.counter{
  position:relative; overflow:hidden;
  max-width:820px; margin-inline:auto;
  background:linear-gradient(160deg, var(--panel), var(--ink-2));
  border:1.5px solid var(--line); border-radius:32px;
  padding:44px 28px 34px; text-align:center;
  box-shadow:0 30px 90px rgba(0,0,0,.6), inset 0 1px 0 rgba(180,248,44,.14);
}
.counter::before{
  content:''; position:absolute; inset:0;
  background-image:linear-gradient(90deg, var(--line) 1px, transparent 1px);
  background-size:36px 100%; opacity:.35;
  mask-image:linear-gradient(180deg,#000,transparent);
}
.counter__glow{
  position:absolute; left:50%; top:-40%; width:520px; aspect-ratio:1;
  transform:translateX(-50%); border-radius:50%;
  background:radial-gradient(circle, rgba(180,248,44,.22), transparent 66%);
  animation:pulse 4.2s ease-in-out infinite;
}
@keyframes pulse{ 50%{ opacity:.45; transform:translateX(-50%) scale(1.18); } }

.counter__label{
  position:relative; font-family:var(--display); font-size:11px;
  letter-spacing:.26em; color:var(--lime); margin-bottom:18px;
}

.odo{
  position:relative; display:flex; align-items:flex-start; justify-content:center;
  font-family:var(--display); line-height:1;
  font-size:clamp(38px,8.4vw,86px); letter-spacing:-.02em;
  color:var(--white);
  text-shadow:0 0 44px rgba(180,248,44,.4);
}
.odo__cur{ color:var(--lime); font-size:.55em; margin-top:.16em; margin-right:.06em; }
.odo__digits{ display:flex; }

.dgt{ position:relative; display:inline-block; height:1em; overflow:hidden; width:.62em; }
.dgt__col{
  display:flex; flex-direction:column;
  transition:transform .62s cubic-bezier(.22,1,.36,1);
}
.dgt__col span{ height:1em; display:block; text-align:center; }
.sep{ display:inline-block; width:.3em; text-align:center; color:rgba(255,255,255,.55); }
.sep--dec{ color:var(--lime); }
.dgt.is-hot{ animation:hotflip .5s ease; }
@keyframes hotflip{ 50%{ color:var(--lime); filter:drop-shadow(0 0 12px var(--glow)); } }

.counter__foot{
  position:relative; margin-top:22px; display:inline-flex; align-items:center; gap:9px;
  font-size:12.5px; letter-spacing:.14em; text-transform:uppercase; color:var(--mist);
}
.dot{ width:8px; height:8px; border-radius:50%; background:var(--lime); animation:blip 1.5s ease-in-out infinite; }
@keyframes blip{ 50%{ opacity:.25; box-shadow:0 0 0 7px rgba(180,248,44,.12); } }

.stats{
  display:grid; grid-template-columns:repeat(4,1fr); gap:14px;
  max-width:820px; margin:22px auto 0;
}
.stat{
  background:var(--ink-2); border:1px solid var(--line); border-radius:18px;
  padding:20px 14px; text-align:center;
  transition:transform .25s cubic-bezier(.34,1.56,.64,1), border-color .25s, box-shadow .25s;
}
.stat:hover{ transform:translateY(-5px); border-color:var(--lime); box-shadow:0 14px 34px rgba(180,248,44,.16); }
.stat b{ display:block; font-family:var(--display); font-size:clamp(18px,2.6vw,26px); color:var(--lime); }
.stat span{ font-size:11.5px; letter-spacing:.1em; text-transform:uppercase; color:var(--mist); }

/* ─────────── LORE ─────────── */
.loreGrid{
  display:grid; grid-template-columns:1.05fr .95fr; gap:52px; align-items:center;
}
.loreCopy p{ margin:0 0 18px; font-size:17px; color:rgba(255,255,255,.78); }
.loreCopy b{ color:var(--lime); }
.loreCopy__hit{
  font-family:var(--display); font-size:clamp(22px,3.4vw,34px);
  line-height:1.16; color:var(--white)!important; margin:30px 0!important;
  padding-left:20px; border-left:4px solid var(--lime);
}
.loreCopy__hit span{ color:var(--lime); letter-spacing:.08em; }
.loreCopy__kick{ font-weight:700; color:var(--white)!important; }

.loreShot{ margin:0; position:relative; }
.loreShot img{
  border-radius:var(--r); border:1.5px solid var(--line);
  box-shadow:0 30px 70px rgba(0,0,0,.6);
  transition:transform .5s cubic-bezier(.22,1,.36,1);
}
.loreShot:hover img{ transform:scale(1.02) rotate(-.6deg); }
.loreShot figcaption{
  margin-top:14px; text-align:center; font-size:13px;
  letter-spacing:.08em; text-transform:uppercase; color:var(--mist);
}

.tweetsTitle{
  margin:88px 0 30px; font-family:var(--display);
  font-size:clamp(22px,3.4vw,32px); letter-spacing:-.02em;
}
.tweetsTitle span{ color:var(--mist); font-family:var(--body); font-size:15px; font-weight:400; }

.tweets{ display:grid; grid-template-columns:repeat(auto-fit,minmax(300px,1fr)); gap:18px; }

.tw{
  display:flex; flex-direction:column;
  background:var(--ink-2); border:1.5px solid var(--line);
  border-radius:20px; padding:20px; text-decoration:none;
  transition:transform .3s cubic-bezier(.34,1.4,.64,1), border-color .3s, box-shadow .3s;
}
.tw:hover{ transform:translateY(-7px); border-color:var(--lime); box-shadow:0 22px 50px rgba(180,248,44,.14); }
/* the 2015 office photo is portrait — give it its own column instead of a letterbox */
.tw--pin{
  grid-column:span 2;
  border-color:rgba(180,248,44,.5);
  background:linear-gradient(150deg, var(--panel), var(--ink-2));
  display:grid;
  grid-template-columns:1fr minmax(0,300px);
  grid-template-areas:'top media' 'text media' 'foot media';
  align-content:start; column-gap:20px;
}
.tw--pin .tw__top{ grid-area:top; }
.tw--pin .tw__text{ grid-area:text; font-size:17px; }
.tw--pin .tw__foot{ grid-area:foot; }
.tw--pin .tw__media{ grid-area:media; margin-bottom:0; align-self:stretch; }
.tw--pin .tw__media img{ width:100%; height:100%; max-height:none; object-fit:cover; object-position:center 32%; }

.tw__top{ display:flex; align-items:center; gap:11px; margin-bottom:14px; }
.tw__av{ width:42px; height:42px; border-radius:50%; background:var(--lime); display:grid; place-items:center; font-family:var(--display); color:var(--ink); font-size:15px; flex:none; }
.tw__who b{ display:block; font-size:14.5px; }
.tw__who span{ font-size:12.5px; color:var(--mist); }
.tw__x{ margin-left:auto; width:18px; color:var(--mist); flex:none; }
.tw__badge{
  display:inline-block; font-size:10px; letter-spacing:.14em; text-transform:uppercase;
  background:var(--lime); color:var(--ink); border-radius:5px; padding:2px 6px;
  font-weight:700; margin-left:6px; vertical-align:middle;
}
.tw__text{ margin:0 0 14px; font-size:15.5px; line-height:1.55; color:rgba(255,255,255,.92); }
.tw__text .h{ color:var(--lime); font-weight:700; }
.tw__text .m{ color:var(--lime-deep); }
.tw__media{
  border-radius:14px; overflow:hidden; border:1px solid var(--line);
  margin-bottom:14px; background:#000;
}
/* natural aspect, just capped — the 2015 office photo is portrait and must not be cropped */
.tw__media img{
  width:100%; max-height:420px; object-fit:contain;
  transition:transform .6s cubic-bezier(.22,1,.36,1);
}
.tw:hover .tw__media img{ transform:scale(1.04); }
.tw__foot{
  margin-top:auto; display:flex; align-items:center; gap:14px;
  font-size:12.5px; color:var(--mist); border-top:1px solid var(--line); padding-top:12px;
}
.tw__foot .lk{ display:inline-flex; align-items:center; gap:5px; }
.tw__foot .lk svg{ width:14px; height:14px; }
.tw__foot .go{ margin-left:auto; color:var(--lime); font-weight:700; }

/* ─────────── MEMES ─────────── */
.memeGrid{ display:grid; grid-template-columns:repeat(3,1fr); gap:18px; }
.meme{ margin:0; position:relative; border-radius:var(--r); overflow:hidden; border:1.5px solid var(--line); }
.meme img{ width:100%; aspect-ratio:1; object-fit:cover; transition:transform .7s cubic-bezier(.22,1,.36,1), filter .4s; }
.meme figcaption{
  position:absolute; left:0; right:0; bottom:0; padding:34px 18px 16px;
  font-family:var(--display); font-size:14px; letter-spacing:.12em; text-transform:uppercase;
  background:linear-gradient(transparent, rgba(5,7,5,.92));
  transform:translateY(8px); opacity:0; transition:.35s;
}
.meme:hover img{ transform:scale(1.07); }
.meme:hover figcaption{ transform:none; opacity:1; }
.meme:hover{ border-color:var(--lime); }

.bannerShot{ margin:20px 0 0; border-radius:var(--r); overflow:hidden; border:1.5px solid var(--line); }
.bannerShot img{ width:100%; }

/* ─────────── TOKEN ─────────── */
.cards{ display:grid; grid-template-columns:repeat(4,1fr); gap:16px; }
.card{
  background:var(--ink-2); border:1.5px solid var(--line); border-radius:var(--r);
  padding:32px 20px; text-align:center; position:relative; overflow:hidden;
  transition:transform .3s cubic-bezier(.34,1.5,.64,1), border-color .3s;
}
.card::after{
  content:''; position:absolute; inset:auto 0 0 0; height:3px;
  background:var(--lime); transform:scaleX(0); transform-origin:left;
  transition:transform .4s cubic-bezier(.65,0,.35,1);
}
.card:hover{ transform:translateY(-8px); border-color:var(--lime); }
.card:hover::after{ transform:scaleX(1); }
.card b{ display:block; font-family:var(--display); font-size:clamp(19px,2.5vw,27px); color:var(--lime); line-height:1.1; }
.card span{ display:block; margin-top:10px; font-size:12px; letter-spacing:.14em; text-transform:uppercase; color:var(--mist); }

.ca{
  display:flex; align-items:center; gap:14px; flex-wrap:wrap; justify-content:center;
  margin-top:34px; padding:18px 22px;
  background:var(--ink-2); border:1.5px dashed rgba(180,248,44,.4); border-radius:999px;
}
.ca__label{ font-family:var(--display); font-size:11px; letter-spacing:.2em; color:var(--lime); }
.ca code{
  font-family:ui-monospace,'SF Mono',Menlo,monospace; font-size:13.5px;
  color:var(--white); word-break:break-all;
}
.btn--copy{ padding:11px 20px; font-size:11.5px; }

/* ─────────── STEPS ─────────── */
.steps{ list-style:none; margin:0; padding:0; display:grid; grid-template-columns:repeat(4,1fr); gap:16px; counter-reset:s; }
.step{
  background:var(--ink-2); border:1.5px solid var(--line); border-radius:var(--r);
  padding:28px 22px; position:relative;
  transition:transform .3s cubic-bezier(.34,1.5,.64,1), border-color .3s, background .3s;
}
.step:hover{ transform:translateY(-8px); border-color:var(--lime); background:var(--panel); }
.step b{ font-family:var(--display); font-size:34px; color:rgba(180,248,44,.28); line-height:1; }
.step h4{ margin:12px 0 8px; font-family:var(--display); font-size:16px; letter-spacing:-.01em; }
.step p{ margin:0; font-size:14px; color:var(--mist); }

/* ─────────── FOOTER ─────────── */
.foot{ background:var(--ink-2); border-top:1px solid var(--line); padding:52px 0 46px; }
.foot__inner{ display:flex; gap:26px; align-items:flex-start; flex-wrap:wrap; }
.foot__mark{ border-radius:50%; flex:none; box-shadow:0 0 0 2px var(--lime); }
.foot__word{ margin:0 0 10px; font-family:var(--display); font-size:17px; letter-spacing:.14em; color:var(--lime); }
.foot__note{ margin:0; font-size:12.5px; line-height:1.65; color:rgba(255,255,255,.42); max-width:660px; }
.foot__social{ margin-left:auto; display:flex; gap:10px; }
.foot__social a{
  font-family:var(--display); font-size:11px; letter-spacing:.12em;
  padding:10px 16px; border:1px solid var(--line); border-radius:999px; text-decoration:none;
  transition:.24s;
}
.foot__social a:hover{ background:var(--lime); color:var(--ink); border-color:var(--lime); }

/* ─────────── TOAST ─────────── */
.toast{
  position:fixed; left:50%; bottom:34px; z-index:9999;
  transform:translate(-50%,140%);
  background:var(--lime); color:var(--ink);
  font-family:var(--display); font-size:12.5px; letter-spacing:.09em;
  padding:14px 26px; border-radius:999px;
  box-shadow:0 18px 44px rgba(180,248,44,.32);
  transition:transform .45s cubic-bezier(.34,1.4,.64,1);
}
.toast.is-on{ transform:translate(-50%,0); }

/* ─────────── SCROLL REVEAL ─────────── */
.reveal{ opacity:0; transform:translateY(30px); transition:opacity .75s cubic-bezier(.22,1,.36,1), transform .75s cubic-bezier(.22,1,.36,1); }
.reveal.is-in{ opacity:1; transform:none; }

/* ─────────── RESPONSIVE ─────────── */
@media (max-width:980px){
  .ribbon__links{ display:none; }
  .loreGrid{ grid-template-columns:1fr; gap:34px; }
  .cards,.steps{ grid-template-columns:repeat(2,1fr); }
  .stats{ grid-template-columns:repeat(2,1fr); }
  .tw--pin{
    grid-column:span 1;
    display:flex; flex-direction:column;
  }
  .tw--pin .tw__media{ margin-bottom:14px; }
  .tw--pin .tw__media img{ height:auto; max-height:420px; object-fit:contain; }
}
@media (max-width:640px){
  .section{ padding:76px 0; }
  .memeGrid{ grid-template-columns:1fr; }
  .cards,.steps{ grid-template-columns:1fr; }
  .hero{ padding-top:126px; }
  .foot__social{ margin-left:0; }
  .ca{ border-radius:22px; }
}

@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; }
}
