/* The Ramp — shared styles for home / launch / docs. Neutral, dense, numbers first (ramp-ui-direction). */
:root{--bg:#0a0b0d;--bg2:#0f1114;--panel:#13161a;--panel2:#191d22;--line:#23282e;--line2:#2f353d;--ink:#eef0f3;--muted:#9aa3ad;--faint:#5f6873;--up:#38d996;--down:#ff5a5f;--link:#7fb0ff;--warn:#e8c25a;--r:12px}
*{box-sizing:border-box}html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--bg);color:var(--ink);font:14px/1.5 -apple-system,BlinkMacSystemFont,"Segoe UI",Inter,Roboto,system-ui,sans-serif;-webkit-font-smoothing:antialiased;font-variant-numeric:tabular-nums}
a{color:inherit;text-decoration:none}button{font:inherit;color:inherit;background:none;border:0;padding:0;cursor:pointer}
button:focus-visible,a:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible{outline:2px solid var(--link);outline-offset:2px}
svg.i{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.75;stroke-linecap:round;stroke-linejoin:round;flex:none}
@keyframes in{from{opacity:0;transform:translateY(4px)}to{opacity:1;transform:none}}
@keyframes draw{from{stroke-dashoffset:400}to{stroke-dashoffset:0}}
@keyframes blink{50%{opacity:.35}}
@media (prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important}}
/* nav */
.nav{position:sticky;top:0;z-index:5;display:flex;align-items:center;gap:18px;height:60px;padding:0 24px;background:rgba(10,11,13,.92);backdrop-filter:blur(10px);border-bottom:1px solid var(--line)}
.logo{display:flex;align-items:center;gap:10px;font-weight:800;font-size:17px;letter-spacing:-.01em;white-space:nowrap}.logo i{width:34px;height:34px;border-radius:50%;background:url(/logo-96.png) center/cover;flex:none;box-shadow:0 0 0 1px rgba(46,230,214,.35)}.logo em{font-style:normal;color:var(--up);margin-left:-10px}
.links{display:flex;gap:4px}.links a{padding:7px 12px;border-radius:8px;color:var(--muted);font-weight:500;transition:background .15s,color .15s}.links a:hover{color:var(--ink);background:var(--panel)}.links a.on{color:var(--ink);background:var(--panel2)}
.search{flex:1;max-width:420px;margin-left:auto;display:flex;align-items:center;gap:8px;height:36px;padding:0 12px;background:var(--panel);border:1px solid var(--line);border-radius:10px;color:var(--faint);min-width:0}.search:focus-within{border-color:var(--line2)}.search input{flex:1;min-width:0;background:none;border:0;color:var(--ink);outline:none;font:inherit}.search kbd{font-size:11px;line-height:1;color:var(--faint);border:1px solid var(--line);border-radius:4px;padding:3px 5px}
.nav .sp{flex:1}
.btn{height:36px;padding:0 14px;border-radius:10px;border:1px solid var(--line);background:var(--panel);font-weight:600;display:inline-flex;align-items:center;justify-content:center;gap:6px;white-space:nowrap;transition:background .15s,border-color .15s,transform .1s}.btn:hover{background:var(--panel2);border-color:var(--line2)}.btn:active{transform:scale(.98)}
.btn.primary{background:var(--ink);color:var(--bg);border-color:transparent}.btn.primary:hover{background:#fff}.btn[disabled]{opacity:.45;cursor:not-allowed;transform:none}
.btn.lg{height:44px;padding:0 18px;font-size:15px}
/* page */
.page{max-width:1280px;margin:0 auto;padding:22px 24px 80px}
.sec{display:flex;align-items:center;gap:12px;margin:0 0 12px}.sec h2{margin:0;font-size:15px;font-weight:700}.sec .sub{color:var(--faint);font-size:12px}.sec .sp{flex:1}
.seg{display:inline-flex;gap:2px;background:var(--panel);border:1px solid var(--line);border-radius:8px;padding:2px}.seg button{padding:5px 10px;border-radius:6px;font-size:12px;font-weight:500;color:var(--muted);white-space:nowrap;transition:background .15s,color .15s}.seg button.on{background:var(--panel2);color:var(--ink)}.seg button:hover{color:var(--ink)}
.box{background:var(--panel);border:1px solid var(--line);border-radius:var(--r);overflow:hidden}.box .bh{display:flex;align-items:center;gap:8px;padding:12px 14px;border-bottom:1px solid var(--line)}.box .bh h3{margin:0;font-size:14px;font-weight:700}.box .bh .sp{flex:1}.box .bh a,.box .bh small{color:var(--faint);font-size:12px}.box .bh a:hover{color:var(--ink)}
.pic{width:40px;height:40px;border-radius:10px;background:var(--panel2);display:grid;place-items:center;font-size:11px;font-weight:700;color:var(--faint);overflow:hidden;flex:none}.pic img{width:100%;height:100%;object-fit:cover}
.tag{font-size:10px;font-weight:700;letter-spacing:.03em;padding:2px 6px;border-radius:5px;border:1px solid var(--line2);color:var(--muted);white-space:nowrap}.tag.g{color:var(--up);border-color:rgba(56,217,150,.35)}.tag.w{color:var(--warn);border-color:rgba(232,194,90,.35)}.tag.d{color:var(--down);border-color:rgba(255,90,95,.35)}
.u{color:var(--up)}.d{color:var(--down)}.muted{color:var(--muted)}.faint{color:var(--faint)}
.curve{height:3px;background:var(--line);border-radius:2px;overflow:hidden}.curve i{display:block;height:100%;background:var(--ink);transition:width .5s ease-out}.curve.g i{background:var(--up)}
.grade{width:26px;height:26px;border-radius:7px;display:inline-grid;place-items:center;font-weight:800;font-size:13px;border:1px solid var(--line2);color:var(--muted);flex:none}.grade.A,.grade.B{color:var(--up);border-color:rgba(56,217,150,.4)}.grade.C{color:var(--warn);border-color:rgba(232,194,90,.4)}.grade.D,.grade.F{color:var(--down);border-color:rgba(255,90,95,.4)}
.empty{padding:36px 0;color:var(--faint);text-align:center;font-size:13px}
.toast{position:fixed;left:50%;bottom:24px;transform:translateX(-50%) translateY(8px);background:var(--panel2);border:1px solid var(--line2);border-radius:10px;padding:9px 14px;font-size:13px;opacity:0;transition:opacity .2s,transform .2s;pointer-events:none;z-index:9;max-width:calc(100vw - 32px)}.toast.show{opacity:1;transform:translateX(-50%)}
footer{max-width:1280px;margin:40px auto 0;padding:20px 24px;border-top:1px solid var(--line);color:var(--faint);font-size:12px;display:flex;gap:16px;flex-wrap:wrap}footer a:hover{color:var(--ink)}footer .sp{flex:1}
/* fee table (launch + docs) */
.fees{width:100%;border-collapse:collapse;font-size:13px}.fees th,.fees td{padding:9px 14px;text-align:right;border-bottom:1px solid var(--line);white-space:nowrap}.fees th:first-child,.fees td:first-child{text-align:left;color:var(--muted);font-weight:500}.fees thead th{color:var(--faint);font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.05em}.fees tr:last-child td{border-bottom:0}.fees tr.tot td{font-weight:700;color:var(--ink)}.fees td.z{color:var(--faint)}.fees th.on{color:var(--ink)}
@media (max-width:980px){.links{display:none}}
@media (max-width:640px){.nav{padding:0 14px;gap:10px}.page{padding:16px 14px 60px}.search{display:none}.sec{flex-wrap:wrap;gap:8px}.sec .seg{max-width:100%;overflow-x:auto;scrollbar-width:none}.btn.ghost{display:none}footer{padding:20px 14px}}
