/* ============================================================
   CRYPTO LAB — ATLAS · master index of all builds
   3 dossiers · card grid · animated CSS motifs
   ============================================================ */
:root{
  --void:#07070a; --void-2:#0c0c12; --ink:#ecebf1;
  --ink-soft:rgba(236,235,241,.72); --ink-mute:rgba(236,235,241,.44); --ink-faint:rgba(236,235,241,.16);
  --line:rgba(255,255,255,.08); --line-soft:rgba(255,255,255,.045); --line-strong:rgba(255,255,255,.2);
  --glass:rgba(13,13,19,.55);
  --btc:#f7931a; --eth:#627eea;
  --f-display:'Unbounded','Helvetica Neue',sans-serif;
  --f-serif:'Instrument Serif',Georgia,serif;
  --f-body:'Manrope',-apple-system,system-ui,sans-serif;
  --f-mono:'JetBrains Mono','SFMono-Regular',monospace;
}
*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth}
html,body{background:var(--void);color:var(--ink)}
body{font-family:var(--f-body);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;overscroll-behavior-y:none;min-height:100vh;overflow-x:hidden}
body.no-webgl{background:radial-gradient(ellipse at 30% 20%,rgba(40,50,70,.5),transparent 60%),radial-gradient(ellipse at 80% 80%,rgba(70,30,60,.4),transparent 60%),var(--void)}
::selection{background:rgba(122,162,247,.3);color:#fff}
a{color:#8fb4ff;text-decoration:none}
a:hover{color:#bcd2ff}

/* layers */
#bg-shader{position:fixed;inset:0;z-index:0;display:block}
.grain{position:fixed;inset:0;z-index:1;pointer-events:none;opacity:.5;mix-blend-mode:overlay;background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='160' height='160'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2' stitchTiles='stitch'/><feColorMatrix values='0 0 0 0 1  0 0 0 0 1  0 0 0 0 1  0 0 0 0.08 0'/></filter><rect width='100%25' height='100%25' filter='url(%23n)'/></svg>")}
#tint{position:fixed;inset:0;z-index:1;pointer-events:none;opacity:0;transition:opacity .6s ease}
#tint.on{opacity:1}
#cursor{position:fixed;left:0;top:0;z-index:90;width:30px;height:30px;margin:-15px 0 0 -15px;border:1.5px solid rgba(236,235,241,.9);border-radius:50%;pointer-events:none;mix-blend-mode:difference;transition:width .25s,height .25s,margin .25s,opacity .3s;opacity:0}
#cursor.live{opacity:1}
#cursor.big{width:56px;height:56px;margin:-28px 0 0 -28px}
@media (pointer:coarse){#cursor{display:none}}

.progress{position:fixed;top:0;left:0;right:0;height:2px;z-index:80;pointer-events:none}
.progress i{display:block;height:100%;width:0;background:linear-gradient(90deg,#f7931a,#22d3ee 30%,#34e0a1 50%,#ff007a 72%,#ffc94d);box-shadow:0 0 12px rgba(120,180,255,.5);transition:width .12s linear}

main{position:relative;z-index:2;max-width:1360px;margin:0 auto;padding:24px 32px 96px}

/* ─────────── TOP BAR ─────────── */
.topbar{position:sticky;top:0;z-index:50;display:flex;align-items:center;justify-content:space-between;gap:20px;padding:14px 0;margin-bottom:6px}
.topbar::before{content:'';position:absolute;inset:-24px 0 0;z-index:-1;background:linear-gradient(180deg,rgba(7,7,10,.92) 30%,rgba(7,7,10,0));-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);-webkit-mask:linear-gradient(180deg,#000 60%,transparent);mask:linear-gradient(180deg,#000 60%,transparent);pointer-events:none}
.brand{display:flex;align-items:center;gap:12px;font-family:var(--f-mono);font-size:12px;letter-spacing:.2em;text-transform:uppercase;color:var(--ink-soft)}
.brand-dot{width:10px;height:10px;border-radius:50%;background:var(--ink);box-shadow:0 0 0 3px rgba(236,235,241,.06),0 0 14px rgba(236,235,241,.4);animation:pulse 2.4s ease-in-out infinite}
@keyframes pulse{0%,100%{transform:scale(1);opacity:.9}50%{transform:scale(.78);opacity:.6}}
.brand strong{color:var(--ink);font-weight:600}
.switch{display:flex;align-items:center;gap:8px;padding:8px 10px;background:var(--glass);border:1px solid var(--line);border-radius:999px;-webkit-backdrop-filter:blur(14px) saturate(140%);backdrop-filter:blur(14px) saturate(140%)}
.switch-label{font-family:var(--f-mono);font-size:10px;letter-spacing:.18em;text-transform:uppercase;color:var(--ink-mute);padding:0 4px 0 6px}
.swatch{appearance:none;border:0;width:34px;height:22px;border-radius:999px;cursor:pointer;position:relative;overflow:hidden;transition:transform .25s,box-shadow .25s}
.swatch::after{content:'';position:absolute;inset:0;border-radius:inherit;border:1px solid rgba(255,255,255,.12);transition:border-color .25s}
.swatch:hover{transform:translateY(-1px)}
.swatch.is-active::after{border-color:rgba(255,255,255,.7)}
.swatch.is-active{box-shadow:0 0 0 2px rgba(255,255,255,.18),0 6px 24px rgba(0,0,0,.5)}
.swatch[data-shader="plasma"]{background:linear-gradient(135deg,#383846,#1c1c2a 45%,#2a2440 70%,#4a3a5e)}
.swatch[data-shader="voronoi"]{background:radial-gradient(circle at 30% 30%,#5b6478 0%,#1d2030 60%,#0b0c14 100%)}
.swatch[data-shader="nebula"]{background:radial-gradient(circle at 60% 40%,#6a4a96 0%,#2a1448 50%,#07041a 100%)}

/* ─────────── HERO ─────────── */
.hero{padding:84px 0 48px;position:relative}
.hero-eyebrow{font-family:var(--f-mono);font-size:11px;letter-spacing:.32em;text-transform:uppercase;color:var(--ink-mute);margin-bottom:28px;display:flex;align-items:center;gap:12px}
.hero-eyebrow::before{content:'';width:28px;height:1px;background:var(--ink-faint)}
.hero h1{font-family:var(--f-display);font-weight:300;font-size:clamp(42px,7.6vw,116px);line-height:.96;letter-spacing:-.035em;max-width:16ch}
.hero h1 em{font-family:var(--f-serif);font-style:italic;font-weight:400;background:linear-gradient(90deg,#ffd86b,#ff5470 32%,#b347ff 60%,#00f0ff);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}
.hero-row{margin-top:40px;display:flex;align-items:flex-end;justify-content:space-between;gap:32px;flex-wrap:wrap}
.hero-lead{font-size:17px;line-height:1.55;color:var(--ink-soft);max-width:500px;text-wrap:pretty}
.hero-lead em{font-family:var(--f-serif);font-size:1.12em}
.hero-stats{display:flex;gap:34px;flex-wrap:wrap}
.stat .num{font-family:var(--f-display);font-weight:400;font-size:30px;line-height:1}
.stat .lab{font-family:var(--f-mono);font-size:10px;letter-spacing:.18em;text-transform:uppercase;color:var(--ink-mute);margin-top:8px}
.stat .num.live{color:#34e0a1}
#clock{font-variant-numeric:tabular-nums}
@media (prefers-reduced-motion:no-preference){.hero-eyebrow,.hero h1,.hero-row{animation:riseIn .9s cubic-bezier(.2,.7,.2,1) both}.hero h1{animation-delay:.08s}.hero-row{animation-delay:.2s}}
@keyframes riseIn{from{opacity:0;transform:translateY(26px)}to{opacity:1;transform:none}}

/* ─────────── TICKER ─────────── */
.ticker{position:relative;width:100vw;margin-left:calc(50% - 50vw);border-top:1px solid var(--line);border-bottom:1px solid var(--line);background:rgba(9,9,13,.55);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);overflow:hidden;padding:13px 0;-webkit-mask:linear-gradient(90deg,transparent,#000 6%,#000 94%,transparent);mask:linear-gradient(90deg,transparent,#000 6%,#000 94%,transparent)}
.ticker-track{display:flex;width:max-content;animation:marquee var(--dur,46s) linear infinite}
.ticker:hover .ticker-track{animation-play-state:paused}
@keyframes marquee{to{transform:translateX(-50%)}}
.ticker-half{display:flex;align-items:center;gap:30px;padding-right:30px}
.ti{display:inline-flex;align-items:baseline;gap:9px;font-family:var(--f-mono);font-size:12px;white-space:nowrap}
.ti b{color:var(--ink);font-weight:700;letter-spacing:.06em}
.ti .tp{color:var(--ink-soft)}
.ti .tc{font-size:11px;font-weight:700}
.ti .tc.up{color:#0ecb81}.ti .tc.dn{color:#f6465d}
.tsep{color:var(--ink-faint);font-size:10px}

/* ─────────── DOSSIER HEADS ─────────── */
.dossier{margin-top:74px}
.dhead{display:flex;align-items:baseline;justify-content:space-between;gap:18px;flex-wrap:wrap;margin-bottom:26px;padding-bottom:16px;border-bottom:1px solid var(--line)}
.dhead h2{font-family:var(--f-display);font-weight:300;font-size:clamp(26px,3.6vw,46px);letter-spacing:-.03em;display:flex;align-items:baseline;gap:16px}
.dhead h2 .didx{font-family:var(--f-mono);font-size:13px;font-weight:500;letter-spacing:.14em;color:var(--ink-faint)}
.dhead .dmeta{font-family:var(--f-mono);font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:var(--ink-mute);text-align:right}
.dhead .dmeta b{color:var(--ink-soft)}

/* ─────────── CARD GRID ─────────── */
.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(268px,1fr));gap:18px}
.card{position:relative;display:flex;flex-direction:column;border-radius:18px;overflow:hidden;text-decoration:none;color:inherit;background:rgba(11,11,17,.6);border:1px solid var(--line);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);isolation:isolate;transition:transform .4s cubic-bezier(.2,0,.2,1),border-color .4s,box-shadow .4s}
.card::after{content:'';position:absolute;inset:0;z-index:-1;background:radial-gradient(120% 80% at 50% 0%,color-mix(in oklab,var(--a) 16%,transparent),transparent 60%);opacity:0;transition:opacity .4s}
.card:hover{transform:translateY(-6px);border-color:color-mix(in oklab,var(--a) 50%,var(--line));box-shadow:0 36px 70px -30px rgba(0,0,0,.85),0 0 60px -28px color-mix(in oklab,var(--a) 80%,transparent)}
.card:hover::after{opacity:1}
.card.feat{grid-column:span 2}

.viz{position:relative;height:138px;overflow:hidden;border-bottom:1px solid var(--line-soft);background:#08070c}
.card.feat .viz{height:190px}
.viz::before,.viz::after{content:'';position:absolute}
.viz i{position:absolute}
.card:hover .viz{filter:saturate(1.15) brightness(1.06)}

.card-body{padding:18px 20px 20px;display:flex;flex-direction:column;gap:9px;flex:1}
.card-top{display:flex;align-items:center;gap:10px}
.card-idx{font-family:var(--f-mono);font-size:11px;letter-spacing:.12em;color:var(--a);opacity:.85}
.card-tag{margin-left:auto;font-family:var(--f-mono);font-size:9.5px;letter-spacing:.18em;text-transform:uppercase;color:var(--ink-mute);display:inline-flex;align-items:center;gap:7px}
.card-tag::before{content:'';width:5px;height:5px;border-radius:50%;background:var(--a);box-shadow:0 0 8px var(--a)}
.card-title{font-family:var(--f-display);font-weight:400;font-size:19px;letter-spacing:-.02em;line-height:1.1}
.card.feat .card-title{font-size:24px}
.card-desc{font-size:13px;line-height:1.5;color:var(--ink-mute);text-wrap:pretty;transition:color .3s}
.card:hover .card-desc{color:var(--ink-soft)}
.card-go{position:absolute;right:16px;bottom:16px;width:38px;height:38px;border-radius:50%;border:1px solid var(--line);display:flex;align-items:center;justify-content:center;font-size:15px;color:var(--ink-mute);background:rgba(7,7,10,.4);transition:transform .4s cubic-bezier(.2,0,.2,1),border-color .3s,color .3s,background .3s;z-index:3}
.card:hover .card-go{transform:rotate(-45deg);border-color:color-mix(in oklab,var(--a) 55%,var(--line));color:var(--a);background:color-mix(in oklab,var(--a) 12%,transparent)}
.card-body{padding-right:64px}

/* ════════ MOTIFS ════════ */
/* orbit — galaxy / s&p */
.mo-orbit{background:radial-gradient(circle at 50% 62%,color-mix(in oklab,var(--a) 14%,transparent),transparent 62%),#08070c}
.mo-orbit::before{left:50%;top:60%;width:44px;height:44px;margin:-22px 0 0 -22px;border-radius:50%;background:radial-gradient(circle at 35% 35%,#fff5d6,var(--a) 55%,#000);box-shadow:0 0 32px 4px color-mix(in oklab,var(--a) 60%,transparent)}
.mo-orbit::after{left:50%;top:60%;width:150px;height:150px;margin:-75px 0 0 -75px;border-radius:50%;border:1px solid color-mix(in oklab,var(--a) 26%,transparent)}
.mo-orbit i{left:50%;top:60%;width:10px;height:10px;margin:-5px 0 0 -5px;border-radius:50%;background:color-mix(in oklab,var(--a) 60%,#fff);box-shadow:0 0 10px var(--a);transform-origin:0 0;animation:orbit 8s linear infinite}
@keyframes orbit{to{transform:rotate(360deg) translateX(75px) rotate(-360deg)}}

/* bubbles */
.mo-bubbles{background:radial-gradient(circle at 30% 60%,color-mix(in oklab,var(--a) 12%,transparent),transparent 55%),#08090d}
.mo-bubbles::before{left:24%;top:30%;width:54px;height:54px;border-radius:50%;background:radial-gradient(circle at 35% 30%,#fff,var(--a) 62%,#000);box-shadow:0 0 26px color-mix(in oklab,var(--a) 45%,transparent);animation:floaty 6s ease-in-out infinite}
.mo-bubbles::after{left:58%;top:44%;width:74px;height:74px;border-radius:50%;background:radial-gradient(circle at 35% 30%,#ffd1da,#ff5470 62%,#000);box-shadow:0 0 26px rgba(255,84,112,.4);animation:floaty 7s ease-in-out infinite -2s}
.mo-bubbles i{left:78%;top:24%;width:30px;height:30px;border-radius:50%;background:radial-gradient(circle at 35% 30%,#fff,#d4d4dc 70%,#555);animation:floaty 5s ease-in-out infinite -1s}
@keyframes floaty{0%,100%{transform:translateY(0)}50%{transform:translateY(-11px)}}

/* bars — equalizer / painel / sentiment */
.mo-bars{background:linear-gradient(180deg,color-mix(in oklab,var(--a) 8%,transparent),transparent),#07090b}
.mo-bars::before{inset:auto 20px 22px 20px;height:70px;background:repeating-linear-gradient(90deg,var(--a) 0 9px,transparent 9px 22px);-webkit-mask:repeating-linear-gradient(90deg,#000 0 9px,transparent 9px 22px);mask:linear-gradient(180deg,transparent,#000);opacity:.85;filter:drop-shadow(0 0 6px color-mix(in oklab,var(--a) 60%,transparent));animation:eq 1.8s steps(1) infinite}
.mo-bars i{left:20px;right:20px;bottom:22px;height:70px;background:repeating-linear-gradient(90deg,color-mix(in oklab,var(--a) 55%,#fff) 0 9px,transparent 9px 22px);-webkit-mask:conic-gradient(from 0deg,#000,#000);opacity:0;animation:eq2 1.4s ease-in-out infinite alternate}
@keyframes eq{0%{clip-path:polygon(0 40%,9% 40%,9% 100%,22% 100%,22% 20%,35% 20%,35% 100%,48% 100%,48% 60%,61% 60%,61% 100%,74% 100%,74% 30%,87% 30%,87% 100%,100% 100%,100% 55%,100% 100%,0 100%)}50%{clip-path:polygon(0 70%,9% 70%,9% 100%,22% 100%,22% 45%,35% 45%,35% 100%,48% 100%,48% 20%,61% 20%,61% 100%,74% 100%,74% 60%,87% 60%,87% 100%,100% 100%,100% 30%,100% 100%,0 100%)}}
@keyframes eq2{to{opacity:.25}}

/* radar — liquidity scanner */
.mo-radar{background:radial-gradient(circle at 50% 50%,color-mix(in oklab,var(--a) 10%,transparent),transparent 60%),#07090b}
.mo-radar::before{left:50%;top:50%;width:120px;height:120px;margin:-60px 0 0 -60px;border-radius:50%;border:1px solid color-mix(in oklab,var(--a) 28%,transparent);box-shadow:0 0 0 1px color-mix(in oklab,var(--a) 8%,transparent) inset,0 0 40px color-mix(in oklab,var(--a) 20%,transparent) inset}
.mo-radar::after{left:50%;top:50%;width:120px;height:120px;margin:-60px 0 0 -60px;border-radius:50%;background:conic-gradient(from 0deg,color-mix(in oklab,var(--a) 55%,transparent),transparent 55%);-webkit-mask:radial-gradient(circle,transparent 0,#000 6px);mask:radial-gradient(circle,transparent 0,#000 6px);animation:spin 3s linear infinite;opacity:.7}
.mo-radar i{left:50%;top:50%;width:6px;height:6px;margin:-3px 0 0 -3px;border-radius:50%;background:var(--a);box-shadow:0 0 10px var(--a),34px -14px 0 color-mix(in oklab,var(--a) 70%,#fff),-26px 22px 0 color-mix(in oklab,var(--a) 60%,#fff)}
@keyframes spin{to{transform:rotate(360deg)}}

/* heat — liquidation map */
.mo-heat{background:#0a0608}
.mo-heat::before{inset:0;background:repeating-linear-gradient(0deg,rgba(247,147,26,.5) 0 2px,transparent 2px 5px),repeating-linear-gradient(0deg,rgba(239,68,68,.4) 0 1px,transparent 1px 9px);-webkit-mask:linear-gradient(90deg,transparent,#000 20%,#000 80%,transparent);mask:linear-gradient(90deg,transparent,#000 20%,#000 80%,transparent);opacity:.7;animation:heatShift 5s linear infinite}
.mo-heat::after{left:0;right:0;top:50%;height:1px;background:linear-gradient(90deg,transparent,#fff,transparent);opacity:.35;box-shadow:0 0 12px #fff}
@keyframes heatShift{to{background-position:0 -14px,0 -18px}}

/* candles — tradingview / vertice */
.mo-candles{background:linear-gradient(180deg,color-mix(in oklab,var(--a) 7%,transparent),transparent),#07080b}
.mo-candles::before{inset:24px 18px 24px 18px;background:linear-gradient(90deg,transparent 6%,#0ecb81 6% 10%,transparent 10% 20%,#f6465d 20% 24%,transparent 24% 34%,#0ecb81 34% 38%,transparent 38% 48%,#0ecb81 48% 52%,transparent 52% 62%,#f6465d 62% 66%,transparent 66% 76%,#0ecb81 76% 80%,transparent 80% 90%,#0ecb81 90% 94%,transparent 94%);-webkit-mask:linear-gradient(180deg,transparent,#000 20%,#000 80%,transparent);mask:linear-gradient(180deg,transparent,#000 20%,#000 80%,transparent);opacity:.85;clip-path:polygon(0 30%,6% 30%,6% 68%,10% 68%,10% 45%,20% 45%,20% 74%,24% 74%,24% 40%,34% 40%,34% 62%,38% 62%,38% 28%,48% 28%,48% 55%,52% 55%,52% 22%,62% 22%,62% 60%,66% 60%,66% 48%,76% 48%,76% 20%,80% 20%,80% 40%,90% 40%,90% 15%,94% 15%,94% 50%,100% 50%,100% 100%,0 100%)}
.mo-candles i{left:0;right:0;top:34%;height:2px;background:linear-gradient(90deg,transparent,var(--a),transparent);box-shadow:0 0 10px var(--a);animation:scan 3.2s ease-in-out infinite alternate}
@keyframes scan{from{top:26%}to{top:60%}}

/* cloud — ichimoku */
.mo-cloud{background:radial-gradient(circle at 78% 12%,color-mix(in oklab,var(--a) 12%,transparent),transparent 55%),#0a0a0e}
.mo-cloud::before{left:0;right:0;top:44%;height:34px;background:linear-gradient(180deg,color-mix(in oklab,var(--a) 45%,transparent),color-mix(in oklab,#36b285 20%,transparent));transform:skewY(-6deg);opacity:.5;filter:blur(1px)}
.mo-cloud i{left:0;right:0;top:52%;height:2px;background:var(--a);box-shadow:0 0 8px var(--a);clip-path:polygon(0 60%,20% 40%,40% 55%,60% 20%,80% 45%,100% 10%,100% 100%,0 100%);animation:scan 3s ease-in-out infinite alternate}
.mo-cloud::after{top:12px;left:16px;font-family:var(--f-serif);font-size:24px;color:color-mix(in oklab,var(--a) 40%,transparent);content:'一目'}

/* hash — miner */
.mo-hash{background:#080a0c;font-family:var(--f-mono)}
.mo-hash::before{inset:14px;font-family:var(--f-mono);font-size:10px;line-height:1.35;letter-spacing:.06em;color:color-mix(in oklab,var(--a) 55%,transparent);content:'000000a1f9 3b7c e2 ff 0091 4d 88  b2 6e 000000c4 78 2a 815 f 358B 1b4a 9D0 bd2 BF 8eA 1802 c58 d388 00000f7 931a';overflow:hidden;word-break:break-all;opacity:.55;text-shadow:0 0 8px color-mix(in oklab,var(--a) 60%,transparent)}
.mo-hash i{left:0;right:0;top:0;height:24px;background:linear-gradient(180deg,color-mix(in oklab,var(--a) 40%,transparent),transparent);animation:scanY 2.6s linear infinite}
@keyframes scanY{from{transform:translateY(-24px)}to{transform:translateY(138px)}}

/* city — neo crypto city */
.mo-city{background:radial-gradient(ellipse at 50% 74%,#2a0833 0%,#0a0218 72%,#000 100%);perspective:340px}
.mo-city::before{left:-10%;right:-10%;bottom:-14%;height:66%;background:linear-gradient(90deg,transparent 49%,#ff007a 49% 51%,transparent 51%),linear-gradient(180deg,transparent 49%,#00f0ff 49% 51%,transparent 51%);background-size:34px 34px,34px 34px;transform:rotateX(72deg);transform-origin:50% 0;opacity:.5;filter:drop-shadow(0 0 5px #ff007a);animation:cityGrid 4s linear infinite}
@keyframes cityGrid{to{background-position:0 34px,0 34px}}
.mo-city::after{left:0;right:0;top:26%;height:30px;background:linear-gradient(90deg,transparent 0 8%,#12031f 8% 12%,transparent 12% 16%,#12031f 16% 22%,transparent 22% 26%,#12031f 26% 30%,transparent 30% 38%,#12031f 38% 46%,transparent 46% 52%,#12031f 52% 58%,transparent 58% 64%,#12031f 64% 72%,transparent 72% 78%,#12031f 78% 86%,transparent 86% 92%,#12031f 92%)}
.mo-city i{left:50%;top:18%;width:88px;height:88px;margin-left:-44px;border-radius:50%;background:linear-gradient(180deg,#ff007a,#ffb700);box-shadow:0 0 50px rgba(255,0,122,.45);clip-path:polygon(0 0,100% 0,100% 34%,0 34%,0 44%,100% 44%,100% 54%,0 54%,0 64%,100% 64%,100% 100%,0 100%)}

/* matrix */
.mo-matrix{background:linear-gradient(180deg,rgba(0,30,10,.4),#000)}
.mo-matrix .col{position:absolute;top:-120%;font-family:var(--f-mono);font-size:10px;line-height:1.1;color:var(--a);text-shadow:0 0 8px var(--a);white-space:pre;animation:rain linear infinite;opacity:.8}
@keyframes rain{to{transform:translateY(280%)}}
.mo-matrix::after{content:'';inset:0;background:linear-gradient(180deg,rgba(0,0,0,.5),transparent 30%,transparent 70%,rgba(0,0,0,.7)),repeating-linear-gradient(0deg,transparent 0 2px,rgba(0,0,0,.3) 3px 4px);pointer-events:none}

/* kaleidoscope */
.mo-kaleido{background:#0a0512}
.mo-kaleido::before{left:50%;top:50%;width:220px;height:220px;margin:-110px 0 0 -110px;background:conic-gradient(from 0deg,#b347ff,#00f0ff,#ff5470,#ffd86b,#34e0a1,#b347ff);-webkit-mask:repeating-conic-gradient(from 0deg,#000 0 12deg,transparent 12deg 24deg);mask:repeating-conic-gradient(from 0deg,#000 0 12deg,transparent 12deg 24deg);animation:spin 12s linear infinite;opacity:.8;filter:blur(.3px)}
.mo-kaleido::after{left:50%;top:50%;width:60px;height:60px;margin:-30px 0 0 -30px;border-radius:50%;background:radial-gradient(circle,#fff,transparent 70%);opacity:.5}

/* maze — neon pac */
.mo-maze{background:#05060f}
.mo-maze::before{inset:12px;background:linear-gradient(#1030ff 0 0) padding-box;background:repeating-linear-gradient(90deg,transparent 0 20px,color-mix(in oklab,var(--a) 60%,transparent) 20px 22px),repeating-linear-gradient(0deg,transparent 0 20px,color-mix(in oklab,var(--a) 60%,transparent) 20px 22px);opacity:.55;filter:drop-shadow(0 0 4px var(--a))}
.mo-maze i{left:16px;top:50%;width:16px;height:16px;margin-top:-8px;border-radius:50%;background:var(--a);box-shadow:0 0 12px var(--a);clip-path:polygon(100% 25%,45% 50%,100% 75%,50% 100%,0 50%,50% 0);animation:pac 4s linear infinite}
@keyframes pac{0%{left:16px}50%{left:calc(100% - 32px)}100%{left:16px}}

/* rays — abundância 888 */
.mo-rays{background:radial-gradient(circle at 50% 50%,rgba(255,201,77,.14),transparent 60%),#0b0803}
.mo-rays::before{left:50%;top:50%;width:300px;height:300px;margin:-150px 0 0 -150px;background:repeating-conic-gradient(from 0deg,rgba(255,201,77,.16) 0 6deg,transparent 6deg 20deg);-webkit-mask:radial-gradient(circle,#000 0,transparent 62%);mask:radial-gradient(circle,#000 0,transparent 62%);animation:spin 40s linear infinite}
.mo-rays::after{left:50%;top:50%;transform:translate(-50%,-50%);font-family:var(--f-display);font-weight:800;font-size:56px;color:transparent;-webkit-text-stroke:1.4px rgba(255,216,107,.6);content:'888';text-shadow:0 0 40px rgba(255,179,0,.4);animation:floaty 8s ease-in-out infinite}

/* asteroids — vector ship */
.mo-vector{background:radial-gradient(circle at 50% 50%,color-mix(in oklab,var(--a) 8%,transparent),transparent 60%),#04060a}
.mo-vector::before{left:30%;top:36%;width:34px;height:34px;border:1.5px solid color-mix(in oklab,var(--a) 70%,#fff);border-radius:46% 46% 40% 40%/60% 60% 40% 40%;transform:rotate(20deg);opacity:.7;animation:spin 22s linear infinite}
.mo-vector::after{left:64%;top:60%;width:20px;height:20px;border:1.5px solid color-mix(in oklab,var(--a) 60%,#fff);border-radius:44% 56% 50% 40%;opacity:.6;animation:spin 16s linear infinite reverse}
.mo-vector i{left:50%;top:50%;width:0;height:0;margin:-12px 0 0 -10px;border-left:10px solid transparent;border-right:10px solid transparent;border-bottom:22px solid var(--a);filter:drop-shadow(0 0 8px var(--a));animation:drift 6s ease-in-out infinite}
@keyframes drift{0%,100%{transform:translate(0,0) rotate(8deg)}50%{transform:translate(14px,-8px) rotate(-8deg)}}

/* arcade — iso blocks / penguin land */
.mo-arcade{background:linear-gradient(180deg,#081726,#040a12);perspective:300px}
.mo-arcade::before{left:50%;top:52%;width:120px;height:120px;margin:-60px 0 0 -60px;background:repeating-linear-gradient(90deg,color-mix(in oklab,var(--a) 40%,transparent) 0 1px,transparent 1px 30px),repeating-linear-gradient(0deg,color-mix(in oklab,var(--a) 40%,transparent) 0 1px,transparent 1px 30px);transform:rotateX(58deg) rotateZ(45deg);box-shadow:0 0 30px color-mix(in oklab,var(--a) 30%,transparent) inset}
.mo-arcade i{left:50%;top:38%;width:22px;height:26px;margin-left:-11px;border-radius:50% 50% 46% 46%;background:radial-gradient(circle at 50% 30%,#fff 0 30%,var(--a) 32%);box-shadow:0 0 16px var(--a);animation:hop 1.6s ease-in-out infinite}
@keyframes hop{0%,100%{transform:translateY(0)}50%{transform:translateY(-12px)}}

/* ─────────── CV DOSSIER ─────────── */
.cv{margin-top:74px;position:relative;border-radius:24px;overflow:hidden;border:1px solid var(--line);background:rgba(9,10,14,.62);-webkit-backdrop-filter:blur(16px) saturate(140%);backdrop-filter:blur(16px) saturate(140%)}
.cv::before{content:'';position:absolute;inset:0;pointer-events:none;background:radial-gradient(circle at 88% 0%,rgba(52,231,255,.12),transparent 46%),radial-gradient(circle at 6% 100%,rgba(167,139,250,.1),transparent 42%)}
.cv-inner{position:relative;display:grid;grid-template-columns:1.05fr 1fr;gap:52px;align-items:center;padding:44px 48px}
.cv-tag{font-family:var(--f-mono);font-size:10px;letter-spacing:.32em;text-transform:uppercase;color:var(--ink-mute);margin-bottom:16px;display:flex;align-items:center;gap:12px}
.cv-tag::before{content:'';width:26px;height:1px;background:var(--ink-faint)}
.cv h2{font-family:var(--f-display);font-weight:300;font-size:clamp(30px,4vw,54px);line-height:1;letter-spacing:-.03em}
.cv h2 em{font-family:var(--f-serif);font-style:italic;font-weight:400;background:linear-gradient(90deg,#34e7ff,#a78bfa 55%,#ff5470);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}
.cv p{margin-top:18px;color:var(--ink-soft);font-size:15px;line-height:1.65;max-width:460px;text-wrap:pretty}
.cv-card{position:relative;border-radius:18px;overflow:hidden;border:1px solid var(--line);background:rgba(6,7,11,.7);padding:28px 28px 24px;transition:transform .4s cubic-bezier(.2,0,.2,1),border-color .4s,box-shadow .4s;text-decoration:none;color:inherit;display:block}
.cv-card::before{content:'';position:absolute;left:0;right:0;top:0;height:2px;background:linear-gradient(90deg,#34e7ff,#a78bfa 50%,#ff5470)}
.cv-card:hover{transform:translateY(-5px);border-color:rgba(52,231,255,.4);box-shadow:0 36px 70px -30px rgba(0,0,0,.8),0 0 60px -28px rgba(52,231,255,.5)}
.cv-head{display:flex;align-items:center;gap:18px}
.cv-ava{width:66px;height:66px;border-radius:16px;flex:none;display:flex;align-items:center;justify-content:center;font-family:var(--f-serif);font-style:italic;font-size:28px;background:radial-gradient(circle at 30% 25%,rgba(52,231,255,.35),transparent 60%),radial-gradient(circle at 75% 80%,rgba(167,139,250,.3),transparent 60%),#11111a;border:1px solid var(--line-strong)}
.cv-id{display:flex;flex-direction:column;gap:5px}
.cv-name{font-family:var(--f-display);font-weight:400;font-size:20px;letter-spacing:-.01em}
.cv-role{font-family:var(--f-mono);font-size:10px;letter-spacing:.15em;text-transform:uppercase;color:var(--ink-mute)}
.cv-fields{display:flex;flex-wrap:wrap;gap:7px;margin-top:22px}
.cv-fields span{font-family:var(--f-mono);font-size:9.5px;letter-spacing:.13em;text-transform:uppercase;color:var(--ink-soft);padding:6px 12px;border-radius:999px;border:1px solid var(--line);background:rgba(255,255,255,.025)}
.cv-foot{display:flex;align-items:center;justify-content:space-between;gap:14px;flex-wrap:wrap;margin-top:22px;padding-top:20px;border-top:1px dashed var(--line)}
.cv-status{display:inline-flex;align-items:center;gap:9px;font-family:var(--f-mono);font-size:10px;letter-spacing:.15em;text-transform:uppercase;color:var(--ink-mute)}
.cv-status .dot{width:8px;height:8px;border-radius:50%;background:#34e0a1;box-shadow:0 0 10px #34e0a1;animation:pulse 2s ease-in-out infinite}
.cv-open{display:inline-flex;align-items:center;gap:9px;font-family:var(--f-mono);font-size:11px;font-weight:700;letter-spacing:.16em;text-transform:uppercase;color:#07070a;background:linear-gradient(90deg,#7de3ff,#b9a6ff);padding:12px 20px;border-radius:999px;transition:transform .3s,box-shadow .3s}
.cv-card:hover .cv-open{transform:translateY(-2px);box-shadow:0 14px 34px -10px rgba(52,231,255,.5)}

/* ─────────── SUPPORT / ETHER.FI ─────────── */
.support{margin-top:74px;position:relative;border:1px solid var(--line);border-radius:24px;overflow:hidden;background:rgba(10,10,14,.62);-webkit-backdrop-filter:blur(16px) saturate(140%);backdrop-filter:blur(16px) saturate(140%)}
.support::before{content:'';position:absolute;inset:0;pointer-events:none;background:radial-gradient(circle at 12% 0%,rgba(247,147,26,.1),transparent 42%),radial-gradient(circle at 92% 100%,rgba(98,126,234,.1),transparent 46%)}
.support-inner{position:relative;padding:42px 48px;display:grid;grid-template-columns:1fr 1.15fr;gap:46px;align-items:center}
.support-tag{font-family:var(--f-mono);font-size:10px;letter-spacing:.32em;text-transform:uppercase;color:var(--ink-mute);margin-bottom:14px;display:flex;align-items:center;gap:10px}
.support-tag::before{content:'';width:18px;height:1px;background:var(--ink-faint)}
.support h2{font-family:var(--f-display);font-weight:300;font-size:clamp(30px,3.6vw,50px);line-height:1;letter-spacing:-.025em}
.support h2 em{font-family:var(--f-serif);font-style:italic;font-weight:400;background:linear-gradient(90deg,#ffd86b,var(--btc) 60%,#ff6b00);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}
.support p{margin-top:16px;color:var(--ink-soft);font-size:14.5px;line-height:1.6;max-width:440px}
.etherfi{display:inline-flex;align-items:center;gap:10px;margin-top:20px;font-family:var(--f-mono);font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-soft);padding:11px 16px;border-radius:999px;border:1px solid var(--line);background:rgba(98,126,234,.06);transition:border-color .3s,background .3s,color .3s}
.etherfi:hover{border-color:rgba(98,126,234,.5);background:rgba(98,126,234,.12);color:var(--ink)}
.etherfi .dot{width:7px;height:7px;border-radius:50%;background:#8ea2ff;box-shadow:0 0 9px #8ea2ff}
.etherfi b{color:#a9b8ff;font-weight:600}

.addr-list{display:flex;flex-direction:column;gap:12px}
.addr{--chip:#fff;position:relative;background:rgba(255,255,255,.025);border:1px solid var(--line);border-radius:14px;padding:15px 18px;display:grid;grid-template-columns:34px 1fr auto;gap:14px;align-items:center;transition:border-color .3s,background .3s}
.addr:hover{border-color:color-mix(in oklab,var(--chip) 30%,var(--line));background:rgba(255,255,255,.04)}
.addr-icon{width:34px;height:34px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-family:var(--f-mono);font-weight:700;font-size:14px;color:#07070a;background:var(--chip);box-shadow:0 0 16px color-mix(in oklab,var(--chip) 40%,transparent)}
.addr-info{min-width:0}
.addr-label{font-family:var(--f-mono);font-size:9.5px;letter-spacing:.18em;text-transform:uppercase;color:var(--ink-mute);margin-bottom:4px}
.addr-label b{color:var(--chip);font-weight:700}
.addr-value{font-family:var(--f-mono);font-size:12.5px;color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;user-select:all}
.copy-btn{appearance:none;background:rgba(255,255,255,.04);color:var(--ink);border:1px solid var(--line);border-radius:10px;padding:9px 12px;cursor:pointer;display:inline-flex;align-items:center;gap:8px;font-family:var(--f-mono);font-size:10px;letter-spacing:.14em;text-transform:uppercase;transition:background .2s,border-color .2s,color .2s,transform .2s}
.copy-btn:hover{background:rgba(255,255,255,.07);border-color:var(--line-strong)}
.copy-btn:active{transform:scale(.96)}
.copy-btn .icon{width:13px;height:13px}
.copy-btn.copied{color:#34e0a1;border-color:rgba(52,224,161,.35);background:rgba(52,224,161,.08)}

/* ─────────── FOOTER ─────────── */
footer{margin-top:64px;padding-top:22px;border-top:1px solid var(--line);display:flex;justify-content:space-between;align-items:center;font-family:var(--f-mono);font-size:10px;letter-spacing:.2em;text-transform:uppercase;color:var(--ink-mute);gap:16px;flex-wrap:wrap}
footer a{color:var(--ink-soft)}
footer a:hover{color:var(--ink)}

/* reveal */
[data-reveal]{opacity:0;translate:0 22px;transition:opacity .6s ease,translate .6s cubic-bezier(.2,.7,.2,1)}
[data-reveal].in{opacity:1;translate:0 0}

/* ─────────── RESPONSIVE ─────────── */
@media (max-width:1020px){.cv-inner,.support-inner{grid-template-columns:1fr;gap:34px}}
@media (max-width:820px){.card.feat{grid-column:span 1}.cv-inner,.support-inner{padding:32px 26px}}
@media (max-width:720px){main{padding:18px 18px 72px}.hero{padding:52px 0 40px}.switch-label{display:none}.grid{grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:14px}.dossier{margin-top:54px}.addr{grid-template-columns:1fr auto}.addr-icon{display:none}}
@media (prefers-reduced-motion:reduce){*,*::before,*::after{animation-duration:.001ms!important;animation-iteration-count:1!important}[data-reveal]{opacity:1;translate:none}.ticker-track{animation:none}}
