/* ============ QWERTY — the infinite monkey ============ */

:root{
  --ink:#0A0908;
  --ink-2:#110E0C;
  --ink-3:#181310;
  --line:rgba(217,185,138,.14);
  --line-str:rgba(217,185,138,.28);
  --paper:#EDE1C6;
  --paper-2:#CBB48A;
  --paper-dim:#A9946E;
  --tan:#D9B98A;
  --tan-dim:#9C8459;
  --brown:#8A5A33;
  --brown-lt:#B57C4A;
  --gold:#C9A55C;
  --spark:#FF9A1F;
  --green:#5FCB88;
  --font-d:'Special Elite',cursive;
  --font-m:'IBM Plex Mono',ui-monospace,monospace;
  --max:1200px;
  --ease:cubic-bezier(.22,.9,.28,1);
}

*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{
  margin:0;
  background:var(--ink);
  color:var(--paper);
  font-family:var(--font-m);
  font-size:16px;
  line-height:1.7;
  overflow-x:hidden;
}
img{max-width:100%;display:block}
a{color:inherit;text-decoration:none}
code{font-family:var(--font-m)}

/* ---------- background layers ---------- */
#paper-canvas{position:fixed;inset:0;width:100%;height:100%;z-index:0;pointer-events:none;opacity:.55}
.grain{
  position:fixed;inset:-200%;z-index:1;pointer-events:none;opacity:.045;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='300' height='300'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='3'/%3E%3C/filter%3E%3Crect width='300' height='300' filter='url(%23n)'/%3E%3C/svg%3E");
  animation:grainShift 700ms steps(2) infinite;
}
@keyframes grainShift{
  0%{transform:translate(0,0)}25%{transform:translate(-2%,1%)}
  50%{transform:translate(1%,-2%)}75%{transform:translate(-1%,-1%)}100%{transform:translate(0,0)}
}
.vignette{
  position:fixed;inset:0;z-index:1;pointer-events:none;
  background:radial-gradient(ellipse at 50% 40%,transparent 30%,rgba(0,0,0,.55) 100%);
}
body::before{
  content:'';position:fixed;inset:0;z-index:0;pointer-events:none;
  background:
    radial-gradient(900px 500px at 50% -5%,rgba(255,154,31,.10),transparent 70%),
    radial-gradient(700px 400px at 85% 20%,rgba(138,90,51,.14),transparent 70%),
    radial-gradient(600px 500px at 10% 70%,rgba(201,165,92,.07),transparent 70%);
}

.wrap{max-width:var(--max);margin:0 auto;padding:0 24px;position:relative;z-index:2}

/* ---------- nav ---------- */
.nav{
  position:fixed;top:0;left:0;right:0;z-index:50;
  display:flex;align-items:center;gap:24px;
  padding:14px 28px;
  background:rgba(10,9,8,0);
  border-bottom:1px solid transparent;
  transition:background .4s var(--ease),border-color .4s var(--ease),padding .4s var(--ease);
}
.nav.stuck{
  background:rgba(10,9,8,.82);
  backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);
  border-bottom-color:var(--line);
  padding:9px 28px;
}
.brand{display:flex;align-items:center;gap:11px;margin-right:auto}
.brand-mark{
  width:40px;height:40px;border-radius:11px;object-fit:cover;
  border:1px solid var(--line-str);
  box-shadow:0 0 20px rgba(255,154,31,.18);
  transition:transform .5s var(--ease);
}
.brand:hover .brand-mark{transform:rotate(-7deg) scale(1.07)}
.brand-text{font-family:var(--font-d);font-size:1.25rem;letter-spacing:.09em;color:var(--paper)}
.nav-links{display:flex;gap:26px}
.nav-links a{
  font-size:.76rem;letter-spacing:.16em;text-transform:uppercase;
  color:var(--tan);opacity:.75;position:relative;padding:4px 0;transition:opacity .25s,color .25s;
}
.nav-links a::after{
  content:'';position:absolute;left:0;bottom:0;width:0;height:1px;
  background:var(--spark);transition:width .35s var(--ease);
}
.nav-links a:hover{opacity:1;color:var(--paper)}
.nav-links a:hover::after{width:100%}
.nav-right{display:flex;align-items:center;gap:12px}
.nav-toggle{display:none;flex-direction:column;gap:5px;background:none;border:0;cursor:pointer;padding:8px}
.nav-toggle span{display:block;width:22px;height:2px;background:var(--tan);transition:.3s var(--ease)}
.nav-toggle.open span:nth-child(1){transform:translateY(7px) rotate(45deg)}
.nav-toggle.open span:nth-child(2){opacity:0}
.nav-toggle.open span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}

/* ---------- keycap buttons ---------- */
.key-btn{
  display:inline-flex;align-items:center;gap:10px;
  padding:14px 24px;
  font-family:var(--font-m);font-weight:700;font-size:.82rem;
  letter-spacing:.14em;text-transform:uppercase;
  color:var(--paper);
  background:linear-gradient(180deg,#231A14 0%,#150F0B 100%);
  border:1px solid var(--line-str);
  border-radius:12px;
  cursor:pointer;
  box-shadow:0 5px 0 #0B0705,0 8px 18px rgba(0,0,0,.55),inset 0 1px 0 rgba(237,225,198,.10);
  transition:transform .12s var(--ease),box-shadow .12s var(--ease),border-color .3s,background .3s;
}
.key-btn:hover{border-color:var(--gold);background:linear-gradient(180deg,#2C211A 0%,#1B1410 100%)}
.key-btn:active,.key-btn.pressed{
  transform:translateY(5px);
  box-shadow:0 0 0 #0B0705,0 2px 6px rgba(0,0,0,.5),inset 0 1px 0 rgba(237,225,198,.08);
}
.key-btn-primary{
  background:linear-gradient(180deg,var(--spark) 0%,#D9761A 100%);
  color:#150F0B;border-color:#FFC46A;
  box-shadow:0 5px 0 #8A4A10,0 10px 26px rgba(255,154,31,.34),inset 0 1px 0 rgba(255,255,255,.35);
}
.key-btn-primary:hover{background:linear-gradient(180deg,#FFAE45 0%,#E8821F 100%);border-color:#FFD79B}
.key-btn-primary:active{box-shadow:0 0 0 #8A4A10,0 3px 10px rgba(255,154,31,.3)}
.key-btn-sm{padding:10px 17px;font-size:.72rem;border-radius:10px;box-shadow:0 4px 0 #0B0705,0 6px 14px rgba(0,0,0,.5)}
.key-btn-xs{padding:8px 14px;font-size:.66rem;border-radius:9px;box-shadow:0 3px 0 #0B0705}

.ico{width:19px;height:19px;filter:brightness(0) invert(.92) sepia(.35) saturate(1.3) hue-rotate(345deg);flex:none}
.ico-raw{filter:none}
.ico-lg{width:38px;height:38px;opacity:.5}
.key-btn-primary .ico{filter:none}

/* ---------- hero ---------- */
.hero{
  position:relative;z-index:2;
  min-height:100vh;
  display:flex;flex-direction:column;align-items:center;justify-content:center;
  text-align:center;
  padding:130px 24px 70px;
}
.hero-glow{
  position:absolute;top:8%;left:50%;transform:translateX(-50%);
  width:min(760px,92vw);height:min(760px,92vw);
  background:radial-gradient(circle,rgba(255,154,31,.16) 0%,transparent 62%);
  filter:blur(28px);pointer-events:none;
  animation:breathe 7s ease-in-out infinite;
}
@keyframes breathe{0%,100%{opacity:.62;transform:translateX(-50%) scale(1)}50%{opacity:1;transform:translateX(-50%) scale(1.1)}}
.hero-inner{position:relative;z-index:3;width:100%;max-width:940px}

.hero-logo-wrap{position:relative;width:min(280px,62vw);margin:0 auto 30px;animation:floaty 6s ease-in-out infinite}
@keyframes floaty{0%,100%{transform:translateY(0)}50%{transform:translateY(-16px)}}
.hero-logo{
  width:100%;border-radius:28px;
  border:1px solid var(--line-str);
  box-shadow:0 22px 70px rgba(0,0,0,.7),0 0 62px rgba(255,154,31,.20);
  transition:transform .5s var(--ease);
}
.hero-logo:hover{transform:scale(1.04) rotate(1.5deg)}
.logo-ring{
  position:absolute;inset:-16px;border-radius:38px;
  border:1px dashed rgba(201,165,92,.32);
  animation:spin 34s linear infinite;
}
@keyframes spin{to{transform:rotate(360deg)}}

.keycaps{display:flex;gap:clamp(6px,1.5vw,14px);justify-content:center;margin-bottom:26px;flex-wrap:nowrap}
.keycap{
  width:clamp(46px,10vw,80px);height:clamp(52px,11vw,88px);
  display:flex;align-items:center;justify-content:center;
  background:linear-gradient(180deg,#EFE3C7 0%,#C6AF83 100%);
  border-radius:12px;
  border:1px solid #8A6A3E;
  box-shadow:0 7px 0 #6E4A25,0 13px 26px rgba(0,0,0,.6),inset 0 2px 3px rgba(255,255,255,.6);
  cursor:pointer;
  transition:transform .1s var(--ease),box-shadow .1s var(--ease);
}
.keycap b{
  font-family:var(--font-d);
  font-size:clamp(1.5rem,4.4vw,2.6rem);
  color:#231A12;line-height:1;
}
.keycap.press,.keycap:hover{
  transform:translateY(7px);
  box-shadow:0 0 0 #6E4A25,0 3px 8px rgba(0,0,0,.5),inset 0 2px 3px rgba(255,255,255,.5);
}
.keycap.press{background:linear-gradient(180deg,#FFD9A0 0%,#E0B673 100%)}

.hero-type{
  font-family:var(--font-d);
  font-size:clamp(1.05rem,2.7vw,1.7rem);
  color:var(--tan);
  min-height:2.4em;margin:0 auto 30px;max-width:760px;
}
.caret{
  display:inline-block;width:.62ch;height:1.05em;vertical-align:-.16em;
  background:var(--spark);margin-left:3px;animation:blink 1s steps(1) infinite;
}
@keyframes blink{0%,50%{opacity:1}50.01%,100%{opacity:0}}

/* ---------- CA bar ---------- */
.ca-bar{
  display:flex;align-items:center;gap:12px;
  max-width:660px;margin:0 auto 30px;padding:11px 11px 11px 16px;
  background:rgba(24,19,16,.78);
  border:1px dashed var(--line-str);border-radius:13px;
  backdrop-filter:blur(8px);
  transition:border-color .3s,box-shadow .3s;
}
.ca-bar:hover{border-color:var(--gold);box-shadow:0 0 26px rgba(201,165,92,.13)}
.ca-bar-wide{max-width:820px;margin-top:44px}
.ca-label{font-size:.66rem;letter-spacing:.2em;color:var(--spark);font-weight:700;flex:none}
.ca-value{
  flex:1;font-size:.8rem;color:var(--paper);
  overflow:hidden;text-overflow:ellipsis;white-space:nowrap;text-align:left;
}
.ca-value.pending{color:var(--tan);opacity:.6;font-style:italic}
.ca-copy{
  flex:none;padding:8px 14px;font-family:var(--font-m);font-weight:700;
  font-size:.68rem;letter-spacing:.14em;
  background:var(--spark);color:#150F0B;border:0;border-radius:8px;cursor:pointer;
  transition:transform .15s var(--ease),background .25s;
}
.ca-copy:hover{background:#FFB55C;transform:translateY(-2px)}
.ca-copy:active{transform:translateY(1px)}

.cta-row{display:flex;gap:14px;justify-content:center;flex-wrap:wrap;margin-bottom:52px}

/* ---------- stat strip ---------- */
.stat-strip{
  display:grid;grid-template-columns:repeat(4,1fr);gap:1px;
  background:var(--line);border:1px solid var(--line);border-radius:14px;overflow:hidden;
  max-width:740px;margin:0 auto;
}
.stat{background:rgba(17,14,12,.86);padding:18px 10px;transition:background .3s}
.stat:hover{background:rgba(35,26,20,.9)}
.stat b{display:block;font-family:var(--font-d);font-size:clamp(1.3rem,3vw,1.9rem);color:var(--spark);line-height:1.2}
.stat span{font-size:.62rem;letter-spacing:.14em;text-transform:uppercase;color:var(--tan);opacity:.72}

.scroll-hint{
  position:absolute;bottom:26px;left:50%;transform:translateX(-50%);
  font-size:.6rem;letter-spacing:.24em;text-transform:uppercase;color:var(--tan);opacity:.5;
  display:flex;flex-direction:column;align-items:center;gap:7px;z-index:3;
}
.scroll-hint span{width:1px;height:34px;background:linear-gradient(var(--spark),transparent);animation:drop 2s ease-in-out infinite}
@keyframes drop{0%,100%{transform:scaleY(.35);opacity:.4}50%{transform:scaleY(1);opacity:1}}

/* ---------- marquee ---------- */
.marquee{
  position:relative;z-index:2;overflow:hidden;
  border-top:1px solid var(--line);border-bottom:1px solid var(--line);
  background:linear-gradient(90deg,rgba(255,154,31,.09),rgba(138,90,51,.05));
  padding:15px 0;
}
.marquee-track{display:flex;gap:34px;white-space:nowrap;width:max-content;animation:slide 34s linear infinite}
.marquee:hover .marquee-track{animation-play-state:paused}
@keyframes slide{to{transform:translateX(-50%)}}
.marquee-track span{
  font-family:var(--font-d);font-size:1.02rem;letter-spacing:.1em;
  color:var(--tan);opacity:.82;display:flex;align-items:center;gap:34px;
}
.marquee-track span::after{content:'⌨';color:var(--spark);opacity:.75}

/* ---------- sections ---------- */
.section{position:relative;z-index:2;padding:110px 0}
.section-alt{background:linear-gradient(180deg,transparent,rgba(17,14,12,.66) 12%,rgba(17,14,12,.66) 88%,transparent)}
.eyebrow{
  display:block;font-size:.68rem;letter-spacing:.24em;text-transform:uppercase;
  color:var(--spark);margin-bottom:14px;
}
.h2{
  font-family:var(--font-d);
  font-size:clamp(2rem,5.6vw,3.7rem);
  line-height:1.06;margin:0 0 24px;letter-spacing:.01em;
}
.accent{color:var(--spark);text-shadow:0 0 34px rgba(255,154,31,.42)}
.sec-head{text-align:center;max-width:720px;margin:0 auto 56px}
.sec-sub{color:var(--tan);opacity:.78;font-size:.94rem}
.section p{color:#D6C7A8;font-size:.97rem}
.hl{color:var(--paper);border-bottom:2px solid var(--spark);padding-bottom:1px}
.dim{opacity:.6;font-size:.88rem!important}

/* ---------- theorem ---------- */
.theorem-grid{display:grid;grid-template-columns:1.05fr .95fr;gap:64px;align-items:center}
.theorem-copy strong{color:var(--paper)}
.banner-frame{
  position:relative;border-radius:18px;overflow:hidden;
  border:1px solid var(--line-str);
  box-shadow:0 28px 70px rgba(0,0,0,.66);
  transition:transform .6s var(--ease);
}
.banner-frame:hover{transform:translateY(-8px) scale(1.012)}
.banner-img{width:100%;transition:transform 1.1s var(--ease)}
.banner-frame:hover .banner-img{transform:scale(1.06)}
.banner-scan{
  position:absolute;inset:0;pointer-events:none;
  background:repeating-linear-gradient(0deg,rgba(0,0,0,.16) 0 1px,transparent 1px 3px);
  opacity:.4;
}
.banner-frame::after{
  content:'';position:absolute;top:-120%;left:-60%;width:60%;height:340%;
  background:linear-gradient(90deg,transparent,rgba(255,214,150,.13),transparent);
  transform:rotate(22deg);animation:sheen 6s ease-in-out infinite;
}
@keyframes sheen{0%{left:-60%}55%,100%{left:130%}}
.paper-note{
  margin-top:18px;padding:16px 18px;
  background:rgba(237,225,198,.055);
  border-left:3px solid var(--spark);border-radius:0 10px 10px 0;
}
.note-k{font-size:.6rem;letter-spacing:.2em;color:var(--spark);display:block;margin-bottom:5px}
.paper-note p{margin:0;font-size:.83rem!important;color:var(--tan)!important;word-break:break-word}
.paper-note em{color:var(--paper);font-style:italic}

/* ---------- live terminal ---------- */
.live-grid{display:grid;grid-template-columns:1.35fr .65fr;gap:26px}
.terminal{
  background:#0B0907;border:1px solid var(--line-str);border-radius:14px;overflow:hidden;
  box-shadow:0 22px 60px rgba(0,0,0,.6);
}
.term-bar{
  display:flex;align-items:center;gap:8px;padding:11px 15px;
  background:rgba(237,225,198,.045);border-bottom:1px solid var(--line);
}
.term-dot{width:10px;height:10px;border-radius:50%;background:#3B2E24}
.term-dot:nth-child(1){background:#7A4A2A}
.term-title{margin-left:10px;font-size:.68rem;letter-spacing:.12em;color:var(--tan);opacity:.68}
.term-rec{margin-left:auto;font-size:.62rem;letter-spacing:.14em;color:#E05B3A;animation:blink2 1.6s ease-in-out infinite}
@keyframes blink2{0%,100%{opacity:1}50%{opacity:.25}}
.term-body{
  padding:20px;height:330px;overflow:hidden;
  font-size:.82rem;line-height:1.85;color:#8E7A5C;
  word-break:break-all;
}
.term-body .bard{color:var(--spark);font-weight:600;text-shadow:0 0 18px rgba(255,154,31,.5)}
.term-body .cur{color:var(--paper)}

.live-side{display:flex;flex-direction:column;gap:26px}
.live-card{
  background:rgba(17,14,12,.8);border:1px solid var(--line);border-radius:14px;
  padding:22px;flex:1;display:flex;flex-direction:column;justify-content:center;
  transition:transform .4s var(--ease),border-color .4s,box-shadow .4s;
}
.live-card:hover{transform:translateY(-5px);border-color:var(--line-str);box-shadow:0 16px 40px rgba(0,0,0,.5)}
.accent-card{border-color:rgba(255,154,31,.32);background:rgba(255,154,31,.05)}
.live-k{font-size:.6rem;letter-spacing:.2em;color:var(--tan);opacity:.72;text-transform:uppercase}
.live-v{font-family:var(--font-d);font-size:clamp(1.7rem,4vw,2.5rem);color:var(--spark);line-height:1.25;margin:6px 0}
.live-sub{font-size:.72rem;color:var(--tan);opacity:.62}
.progress{height:8px;background:rgba(237,225,198,.08);border-radius:99px;overflow:hidden;margin:14px 0 9px}
.progress-fill{height:100%;width:0;background:linear-gradient(90deg,var(--brown),var(--spark));border-radius:99px;box-shadow:0 0 14px rgba(255,154,31,.55);transition:width 1s var(--ease)}

/* ---------- chart ---------- */
.chart-shell{
  background:rgba(11,9,7,.9);border:1px solid var(--line-str);border-radius:16px;overflow:hidden;
  box-shadow:0 28px 70px rgba(0,0,0,.62);
}
.chart-top{
  display:flex;align-items:center;justify-content:space-between;gap:14px;
  padding:14px 18px;border-bottom:1px solid var(--line);
  background:rgba(237,225,198,.04);
}
.chart-id{display:flex;align-items:center;gap:10px;font-size:.8rem;letter-spacing:.1em;color:var(--paper)}
.chart-frame{position:relative;width:100%;height:min(74vh,620px);background:#0B0907}
.chart-frame iframe{width:100%;height:100%;border:0;display:block}
.chart-placeholder{
  position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;
  gap:13px;text-align:center;padding:30px;
}
.chart-placeholder b{font-family:var(--font-d);font-size:1.15rem;letter-spacing:.09em;color:var(--tan)}
.chart-placeholder span{font-size:.8rem;color:var(--tan);opacity:.6;max-width:430px}
.chart-placeholder code{background:rgba(255,154,31,.13);color:var(--spark);padding:2px 6px;border-radius:4px;font-size:.76rem}

/* ---------- steps ---------- */
.steps{display:grid;grid-template-columns:repeat(4,1fr);gap:20px}
.step{
  position:relative;padding:30px 22px 26px;
  background:rgba(17,14,12,.8);border:1px solid var(--line);border-radius:14px;
  overflow:hidden;transition:transform .45s var(--ease),border-color .45s,box-shadow .45s;
}
.step::before{
  content:'';position:absolute;top:0;left:0;right:0;height:2px;
  background:linear-gradient(90deg,transparent,var(--spark),transparent);
  transform:scaleX(0);transition:transform .5s var(--ease);
}
.step:hover{transform:translateY(-9px);border-color:var(--line-str);box-shadow:0 20px 46px rgba(0,0,0,.55)}
.step:hover::before{transform:scaleX(1)}
.step-n{
  position:absolute;top:16px;right:18px;
  font-family:var(--font-d);font-size:2.1rem;color:rgba(237,225,198,.07);line-height:1;
}
.step-ico{width:34px;height:34px;margin-bottom:16px;filter:brightness(0) invert(.92) sepia(.35) saturate(1.3) hue-rotate(345deg)}
.step-ico.ico-raw{filter:none}
.step h3{font-family:var(--font-d);font-size:1rem;letter-spacing:.08em;margin:0 0 9px;color:var(--paper)}
.step p{font-size:.83rem!important;color:var(--tan)!important;opacity:.82;margin:0}

/* ---------- tokenomics ---------- */
.tokenomics{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}
.tok{
  text-align:center;padding:38px 22px;
  background:rgba(17,14,12,.8);border:1px solid var(--line);border-radius:14px;
  transition:transform .45s var(--ease),border-color .45s,box-shadow .45s;
}
.tok:hover{transform:translateY(-7px);border-color:var(--gold);box-shadow:0 20px 46px rgba(0,0,0,.55)}
.tok b{display:block;font-family:var(--font-d);font-size:clamp(1.9rem,4.6vw,3rem);color:var(--paper);line-height:1.1}
.tok span{display:block;font-size:.63rem;letter-spacing:.2em;color:var(--spark);margin:9px 0 12px}
.tok p{font-size:.82rem!important;color:var(--tan)!important;opacity:.75;margin:0}
.tok-hero{
  background:linear-gradient(180deg,rgba(255,154,31,.11),rgba(17,14,12,.8));
  border-color:rgba(255,154,31,.34);
}
.tok-hero b{color:var(--spark);text-shadow:0 0 34px rgba(255,154,31,.45)}

/* ---------- footer ---------- */
.footer{position:relative;z-index:2;padding:80px 0 44px;border-top:1px solid var(--line);text-align:center}
.footer-inner{display:flex;flex-direction:column;align-items:center}
.footer-logo{
  width:88px;border-radius:20px;border:1px solid var(--line-str);
  box-shadow:0 0 40px rgba(255,154,31,.2);margin-bottom:20px;
  animation:floaty 6s ease-in-out infinite;
}
.footer-tag{font-family:var(--font-d);font-size:1.06rem;color:var(--tan);margin:0 0 28px;line-height:1.65}
.socials{display:flex;gap:14px;margin-bottom:34px;flex-wrap:wrap;justify-content:center}
.social{
  width:48px;height:48px;display:flex;align-items:center;justify-content:center;
  background:rgba(237,225,198,.05);border:1px solid var(--line);border-radius:12px;
  transition:transform .3s var(--ease),background .3s,border-color .3s,box-shadow .3s;
}
.social:hover{
  transform:translateY(-5px) scale(1.07);
  background:rgba(255,154,31,.14);border-color:var(--spark);
  box-shadow:0 10px 24px rgba(255,154,31,.24);
}
.disclaimer{max-width:640px;font-size:.7rem!important;color:var(--tan)!important;opacity:.45;line-height:1.75;margin:0 0 16px}
.copy{font-size:.7rem!important;color:var(--tan)!important;opacity:.4}
.smash{color:var(--spark);opacity:.65}

/* ---------- toast ---------- */
.toast{
  position:fixed;left:50%;bottom:34px;transform:translate(-50%,140%);
  z-index:100;padding:13px 26px;
  background:var(--spark);color:#150F0B;
  font-weight:700;font-size:.76rem;letter-spacing:.16em;
  border-radius:11px;box-shadow:0 12px 34px rgba(255,154,31,.42);
  transition:transform .45s var(--ease);
}
.toast.show{transform:translate(-50%,0)}

/* ---------- reveal ---------- */
[data-reveal]{opacity:0;transform:translateY(26px);transition:opacity .8s var(--ease),transform .8s var(--ease)}
[data-reveal].in{opacity:1;transform:none}

/* ---------- responsive ---------- */
@media(max-width:960px){
  .theorem-grid{grid-template-columns:1fr;gap:44px}
  .live-grid{grid-template-columns:1fr}
  .steps{grid-template-columns:repeat(2,1fr)}
  .term-body{height:250px}
}
@media(max-width:760px){
  .nav-toggle{display:flex}
  .nav-links{
    position:absolute;top:100%;left:0;right:0;
    flex-direction:column;gap:0;
    background:rgba(10,9,8,.97);backdrop-filter:blur(16px);
    border-bottom:1px solid var(--line);
    max-height:0;overflow:hidden;transition:max-height .45s var(--ease);
  }
  .nav-links.open{max-height:320px}
  .nav-links a{padding:15px 28px;border-bottom:1px solid var(--line)}
  .section{padding:78px 0}
  .stat-strip{grid-template-columns:repeat(2,1fr)}
  .tokenomics{grid-template-columns:1fr}
  .cta-row{flex-direction:column;align-items:stretch}
  .cta-row .key-btn{justify-content:center}
  .ca-value{font-size:.66rem}
  .chart-frame{height:66vh}
}
@media(max-width:520px){
  .steps{grid-template-columns:1fr}
  .brand-text{display:none}
  .chart-top{flex-direction:column;align-items:flex-start}
}
@media(prefers-reduced-motion:reduce){
  *{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}
  html{scroll-behavior:auto}
}
