/* Barbell · light-editorial design system. Paper, serif display, mono data. */
@import url('https://fonts.googleapis.com/css2?family=Fraunces:ital,opsz,wght@0,9..144,400;0,9..144,500;0,9..144,600;0,9..144,700;0,9..144,800;1,9..144,400;1,9..144,500;1,9..144,600&family=Space+Mono:ital,wght@0,400;0,700;1,400&display=swap');
@import url('https://api.fontshare.com/v2/css?f[]=general-sans@400,500,600,700&display=swap');

:root{
  --maxw:640px; --wide:1200px;
  --paper:#F2F0EA; --paper-2:#EAE7DE; --panel:#E7E2D6;
  --ink:#0C0C0C; --ink-2:#6B675E; --faint:#A8A398;
  --line:rgba(12,12,12,.14); --line-2:rgba(12,12,12,.26); --line-3:rgba(12,12,12,.5);
  --violet:#5B3DF5; --anchor:#5B3DF5; --degen:#FF5A3C; --safe:#1FA463; --like:#E23B6D;
  --radius:14px; --radius-sm:10px; --radius-xs:8px;
  --shadow:0 2px 0 rgba(12,12,12,.04), 0 18px 40px -28px rgba(12,12,12,.5);
  --serif:"Fraunces","Times New Roman",serif;
  --sans:"General Sans",system-ui,-apple-system,"Segoe UI",sans-serif;
  --mono:"Space Mono",ui-monospace,"SFMono-Regular",monospace;
}
@view-transition{navigation:auto}   /* page-to-page continuity (Chromium) */
*{box-sizing:border-box;margin:0}
html{-webkit-text-size-adjust:100%}   /* NOTE: no scroll-behavior:smooth — it fights Lenis */
body{background:var(--paper);color:var(--ink);font:15px/1.6 var(--sans);-webkit-font-smoothing:antialiased;overflow-x:hidden}

/* Lenis required CSS (darkroomengineering/lenis) — without this smooth scroll feels broken */
html.lenis,html.lenis body{height:auto}
.lenis.lenis-smooth{scroll-behavior:auto!important}
.lenis.lenis-smooth [data-lenis-prevent]{overscroll-behavior:contain}
.lenis.lenis-stopped{overflow:hidden}
.lenis.lenis-smooth iframe{pointer-events:none}
a{color:inherit;text-decoration:none}
button{font-family:inherit;cursor:pointer;border:none;background:none;color:inherit}
:focus-visible{outline:2.5px solid var(--violet);outline-offset:3px;border-radius:4px}
img{max-width:100%}
::selection{background:var(--violet);color:#fff}
h1,h2,h3,h4{font-family:var(--serif);font-weight:600;letter-spacing:-.02em;line-height:1.02}

.app{max-width:var(--maxw);margin:0 auto;padding:0 20px 110px}

/* paper grain overlay */
.grain{position:fixed;inset:0;z-index:3;pointer-events:none;opacity:.5;mix-blend-mode:multiply;
  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='0.9' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='0.06'/%3E%3C/svg%3E")}

/* mono label + Nº index */
.eyebrow{display:inline-flex;align-items:center;gap:9px;font:400 11.5px var(--mono);letter-spacing:.16em;
  text-transform:uppercase;color:var(--ink-2)}
.eyebrow::before{content:"";width:22px;height:1px;background:var(--violet)}
.idx{font:400 12px var(--mono);letter-spacing:.14em;text-transform:uppercase;color:var(--violet)}
.idx b{color:var(--ink);font-weight:400}

/* nav */
.appnav{position:sticky;top:0;z-index:60;background:rgba(242,240,234,.78);
  backdrop-filter:blur(14px) saturate(1.1);-webkit-backdrop-filter:blur(14px) saturate(1.1);
  border-bottom:1px solid var(--line)}
.appnav-in{max-width:var(--wide);margin:0 auto;padding:14px 22px;display:flex;align-items:center;gap:10px}
.brand{display:flex;align-items:center;gap:9px;font:600 17px var(--sans);letter-spacing:-.02em;color:var(--ink)}
.brand img{width:26px;height:26px;object-fit:contain;display:block}
.nav-links{display:flex;gap:4px;margin-left:20px}
.nav-links a{font:400 12px var(--mono);letter-spacing:.1em;text-transform:uppercase;color:var(--ink-2);
  padding:8px 12px;border-radius:6px;transition:.18s}
.nav-links a:hover{color:var(--ink);background:var(--paper-2)}
.nav-links a.on{color:var(--violet)}
.nav-right{margin-left:auto;display:flex;align-items:center;gap:8px}
.connect{font:400 12px var(--mono);letter-spacing:.08em;text-transform:uppercase;color:var(--ink);
  padding:9px 15px;border-radius:999px;border:1px solid var(--line-2);background:transparent;transition:.18s}
.connect:hover{border-color:var(--ink);background:var(--ink);color:var(--paper)}
.connect.live{border-color:var(--violet);color:var(--violet)}
@media(max-width:560px){
  .brand .wm{display:none}
  .nav-links{margin-left:6px;gap:0}
  .nav-links a{padding:8px 8px;font-size:11px}
  .connect{padding:8px 11px;font-size:11px}
}

/* buttons */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:9px;font:500 15px var(--sans);
  padding:13px 22px;border-radius:999px;transition:.2s cubic-bezier(.2,.7,.2,1);white-space:nowrap;line-height:1}
.btn.primary{background:var(--ink);color:var(--paper)}
.btn.primary:hover{transform:translateY(-2px)}
.btn.primary:disabled{background:var(--paper-2);color:var(--faint);cursor:not-allowed;transform:none;border:1px solid var(--line)}
.btn.ghost{background:transparent;color:var(--ink);border:1px solid var(--line-2)}
.btn.ghost:hover{border-color:var(--ink)}
.btn.soft{background:var(--paper-2);color:var(--ink);border:1px solid var(--line)}
.btn.soft:hover{background:var(--panel)}
.btn.hot{background:var(--violet);color:#fff}
.btn.hot:hover{transform:translateY(-2px)}
.btn.sm{font-size:12px;padding:9px 15px;font-family:var(--mono);letter-spacing:.06em;text-transform:uppercase}
.btn.block{width:100%}
.btn.lg{font-size:17px;padding:16px 28px}
/* text-arrow link */
.tlink{display:inline-flex;align-items:center;gap:8px;font:500 15px var(--sans);color:var(--ink);border-bottom:1px solid var(--line-2);padding-bottom:3px;transition:.18s}
.tlink:hover{border-color:var(--ink);gap:12px}
.tlink .ar{font-family:var(--mono)}

/* avatar */
.avatar{width:40px;height:40px;border-radius:50%;flex:none;display:grid;place-items:center;
  font:700 15px var(--mono);color:#fff;background:linear-gradient(140deg,#8B7BFF,#FF9C7A);overflow:hidden}
.avatar.sm{width:30px;height:30px;font-size:12px}
.avatar.lg{width:66px;height:66px;font-size:24px;border-radius:16px}

/* cards */
.card{background:var(--paper);border:1px solid var(--line);border-radius:var(--radius)}
.barcard{background:var(--paper);border:1px solid var(--line);border-radius:var(--radius);padding:20px;transition:.22s cubic-bezier(.2,.7,.2,1)}
.barcard:hover{border-color:var(--line-2);transform:translateY(-3px);box-shadow:var(--shadow)}
.barcard+.barcard{margin-top:14px}
.bc-head{display:flex;align-items:center;gap:11px;margin-bottom:13px}
.bc-who{line-height:1.3}
.bc-who .h{font:600 15px var(--sans);color:var(--ink)}
.bc-who .t{font:400 11.5px var(--mono);letter-spacing:.04em;color:var(--faint)}
.bc-thesis{font:400 18px/1.35 var(--serif);color:var(--ink);margin-bottom:15px;letter-spacing:-.01em}
.bc-thesis .cash{color:var(--violet)}

/* token chips (mono ticker pills) */
.chips{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:14px}
.chip{display:inline-flex;align-items:center;gap:8px;font:400 12.5px var(--mono);letter-spacing:.02em;
  padding:7px 12px;border-radius:999px;background:transparent;color:var(--ink);border:1px solid var(--line-2)}
.chip .w{font-weight:700}
.chip.anchor{color:var(--anchor);border-color:rgba(91,61,245,.4)}
.chip.degen{color:var(--degen);border-color:rgba(255,90,60,.4)}
.chip .dot{width:6px;height:6px;border-radius:50%;background:currentColor}
.chip.blocked{color:var(--degen);border-color:rgba(255,90,60,.4);text-decoration:line-through;opacity:.7}

/* meta row */
.bc-meta{display:flex;align-items:center;gap:13px;margin-bottom:15px;flex-wrap:wrap}
.badge{display:inline-flex;align-items:center;gap:6px;font:400 11.5px var(--mono);letter-spacing:.06em;
  text-transform:uppercase;padding:6px 11px;border-radius:999px;border:1px solid transparent}
.badge.safe{color:var(--safe);border-color:rgba(31,164,99,.45)}
.badge.warn{color:#B5761A;border-color:rgba(181,118,26,.45)}
.badge.bad{color:var(--degen);border-color:rgba(255,90,60,.45)}
.loves{display:inline-flex;align-items:center;gap:6px;font:400 12px var(--mono);letter-spacing:.04em;color:var(--ink-2)}
.loves b{color:var(--ink);font-weight:700}

/* actions */
.bc-actions{display:flex;align-items:center;gap:10px}
.bc-actions .btn{flex:1}
.iconbtn{width:46px;height:46px;border-radius:999px;background:transparent;border:1px solid var(--line-2);
  display:grid;place-items:center;font:400 14px var(--mono);flex:none;transition:.18s;color:var(--ink)}
.iconbtn:hover{border-color:var(--ink);background:var(--ink);color:var(--paper)}

/* headings / sections */
h1.big{font:600 clamp(30px,7vw,46px)/1.02 var(--serif);letter-spacing:-.03em;color:var(--ink)}
.lead{color:var(--ink-2);font-size:16px;line-height:1.6}
.section-h{display:flex;align-items:flex-end;justify-content:space-between;gap:14px;margin:30px 2px 16px}
.section-h h2{font:600 26px var(--serif);letter-spacing:-.02em;color:var(--ink)}

/* tabs (mono) */
.tabs{display:flex;gap:6px}
.tab{font:400 12px var(--mono);letter-spacing:.08em;text-transform:uppercase;color:var(--ink-2);
  padding:8px 14px;border-radius:999px;background:transparent;border:1px solid var(--line)}
.tab.on{color:var(--paper);background:var(--ink);border-color:var(--ink)}

/* inputs */
.field{display:flex;align-items:center;gap:10px;background:transparent;border:1px solid var(--line-2);
  border-radius:var(--radius-sm);padding:14px 16px}
.field:focus-within{border-color:var(--ink)}
.field input{flex:1;min-width:0;border:none;background:none;outline:none;font:400 16px var(--sans);color:var(--ink)}
.field input::placeholder{color:var(--faint)}
.field .cur{font:400 12px var(--mono);letter-spacing:.06em;color:var(--ink-2)}

/* marquee */
.marquee{overflow:hidden;border-block:1px solid var(--line);padding:14px 0;white-space:nowrap}
.marquee-in{display:inline-flex;gap:0;will-change:transform;animation:marq 40s linear infinite}
.marquee-in .it{font:400 15px var(--mono);letter-spacing:.02em;color:var(--ink);padding:0 26px;display:inline-flex;align-items:center;gap:14px}
.marquee-in .it .dol{color:var(--violet)}
.marquee-in .it::after{content:"◆";color:var(--faint);font-size:9px;margin-left:26px}
@keyframes marq{to{transform:translateX(-50%)}}
@media(prefers-reduced-motion:reduce){.marquee-in{animation:none}}

/* reveal — CSS hide only in the IO path (mobile / light pages); desktop Home is GSAP-driven */
html.io .reveal{opacity:0;transform:translateY(28px)}
html.io .reveal.in{opacity:1;transform:none;transition:opacity .5s cubic-bezier(.16,1,.3,1),transform .5s cubic-bezier(.16,1,.3,1)}
[data-float],[data-parallax],[data-tilt]{will-change:transform}

/* custom cursor (fine pointer only) */
.cursor,.cursor-dot{position:fixed;top:0;left:0;z-index:9999;pointer-events:none;border-radius:50%;
  transform:translate(-50%,-50%);mix-blend-mode:difference}
.cursor{width:34px;height:34px;border:1px solid #fff;transition:width .2s,height .2s,background .2s}
.cursor.big{width:66px;height:66px;background:rgba(255,255,255,.15)}
.cursor-dot{width:5px;height:5px;background:#fff}
@media(hover:none),(pointer:coarse){.cursor,.cursor-dot{display:none}}

/* misc */
.muted{color:var(--ink-2)} .center{text-align:center}
.status-line{font:400 12.5px var(--mono);letter-spacing:.02em;color:var(--ink-2);text-align:center;min-height:18px;margin-top:12px;line-height:1.6}
.empty{padding:44px 0;text-align:center;color:var(--ink-2);font-size:14px}
.err{color:var(--degen)}
.foot{margin-top:40px;color:var(--faint);font:400 11px var(--mono);letter-spacing:.04em;line-height:1.7;text-align:center}
.divider{height:1px;background:var(--line);margin:8px 0}
