/* ============================================================
   NoKYC Reviews — privacy-web3 / cypherpunk-brutalist (light)
   ============================================================ */

:root {
    /* Surface */
    --bg:          #FAF9F5;
    --bg-2:        #F2F0E8;
    --surface:     #FFFFFF;
    --surface-2:   #F6F5EF;

    /* Ink */
    --ink:         #0B0B0D;
    --ink-2:       #1B1B22;
    --ink-muted:   #5B5B63;
    --ink-faint:   #9A9A9F;
    --rule:        #0B0B0D;
    --rule-soft:   #D9D6CA;
    --rule-dotted: rgba(11,11,13,.14);

    /* Accents */
    --orange:      #D14A1F;
    --orange-2:    #E66337;
    --orange-ink:  #8A2F12;
    --orange-soft: #F4E5DA;
    --lime:        #C4F542;
    --lime-deep:   #8FBD1E;
    --green:       #0FBF5C;    /* "live" indicator */
    --violet:      #6E56CF;    /* rare accent */
    --red:         #E63946;

    /* Chain palette */
    --c-btc:       #F7931A;
    --c-xmr:       #FF6600;
    --c-eth:       #627EEA;
    --c-ln:        #F5BB31;
    --c-sol:       #14F195;
    --c-tor:       #7E4798;

    /* Type */
    --sans:     'Geist', 'Söhne', 'Inter Tight', -apple-system, 'Segoe UI', sans-serif;
    --display:  'Syne', 'Geist', -apple-system, sans-serif;
    --mono:     'JetBrains Mono', 'IBM Plex Mono', 'SF Mono', ui-monospace, monospace;

    /* Spacing */
    --col:       88rem;
    --col-text:  68rem;
    --gutter:    clamp(1rem, 3vw, 2.25rem);
}

@import url('https://fonts.bunny.net/css?family=syne:500,600,700,800|geist:400,500,600,700|jetbrains-mono:400,500,600&display=swap');

* { box-sizing: border-box; }

html {
    font-size: 16px;
    -webkit-text-size-adjust: 100%;
}

body {
    margin: 0;
    background: var(--bg);
    color: var(--ink);
    font-family: var(--sans);
    font-size: 0.9375rem;
    line-height: 1.55;
    font-feature-settings: "ss01", "cv11", "kern";
    text-rendering: optimizeLegibility;
    -webkit-font-smoothing: antialiased;
    position: relative;
    overflow-x: hidden;
    /* Dotted grid — web3 dashboard signal */
    background-image:
        radial-gradient(circle, var(--rule-dotted) 1px, transparent 1px);
    background-size: 22px 22px;
    background-position: 0 0;
}

/* Selection */
::selection { background: var(--orange); color: #fff; }
::-moz-selection { background: var(--orange); color: #fff; }

/* Links */
a { color: inherit; text-decoration: none; transition: color .15s ease; }
a:hover { color: var(--orange); }

/* Layout */
.wrap {
    max-width: var(--col);
    margin-inline: auto;
    padding-inline: var(--gutter);
    position: relative;
}

/* ============================================================
   LIVE INDEX BAR (terminal-flavored ticker)
   ============================================================ */
.ribbon {
    background: var(--ink);
    color: var(--bg);
    font-family: var(--mono);
    font-size: 0.72rem;
    letter-spacing: 0.02em;
    overflow: hidden;
    position: relative;
    white-space: nowrap;
    border-bottom: 1px solid var(--ink);
}
.ribbon__inner {
    display: inline-flex;
    gap: 3rem;
    padding: 0.5rem 0;
    animation: ribbon 48s linear infinite;
    will-change: transform;
}
.ribbon__item { display: inline-flex; align-items: center; gap: .6rem; }
.ribbon__item b { color: var(--bg); font-weight: 500; }
.ribbon__item .k { color: var(--ink-faint); font-weight: 400; }
.ribbon__item .v { color: var(--lime); font-weight: 500; }
.ribbon__item .orange { color: var(--orange-2); font-weight: 500; }
.ribbon__dot {
    width: 6px; height: 6px; border-radius: 50%;
    background: var(--lime);
    box-shadow: 0 0 0 0 var(--lime);
    animation: pulse 1.6s ease-out infinite;
    display: inline-block;
}
@keyframes ribbon {
    from { transform: translateX(0); }
    to   { transform: translateX(-50%); }
}
@keyframes pulse {
    0%   { box-shadow: 0 0 0 0   rgba(196,245,66,.6); }
    70%  { box-shadow: 0 0 0 7px rgba(196,245,66,0); }
    100% { box-shadow: 0 0 0 0   rgba(196,245,66,0); }
}

/* ============================================================
   HEADER / MASTHEAD
   ============================================================ */
/* ============================================================
   MASTHEAD — sticky top bar, logo | nav | tools | hamburger
   ============================================================ */
.masthead {
    position: sticky; top: 0;
    z-index: 60;
    background: var(--bg);
    background-image: linear-gradient(180deg, rgba(250, 249, 245, .94), rgba(250, 249, 245, .94)),
                      radial-gradient(circle, var(--rule-dotted) 1px, transparent 1px);
    background-size: auto, 22px 22px;
    border-bottom: 1px solid var(--rule);
    backdrop-filter: saturate(140%) blur(6px);
    -webkit-backdrop-filter: saturate(140%) blur(6px);
}
.mast-inner {
    max-width: var(--col);
    margin-inline: auto;
    padding: .85rem var(--gutter);
    display: grid;
    grid-template-columns: auto 1fr auto;
    align-items: center;
    gap: 2rem;
    min-height: 3.75rem;
}

/* ---- Logo — unchanged, brand signature ------------------------------- */
.logo {
    display: inline-flex;
    align-items: center;
    gap: .65rem;
    font-family: var(--display);
    font-weight: 700;
    font-size: 1.22rem;
    letter-spacing: -0.02em;
    color: var(--ink);
    line-height: 1;
}
.logo__mark {
    width: 28px; height: 28px;
    background: var(--ink);
    color: var(--orange);
    font-family: var(--mono);
    font-weight: 600;
    font-size: .82rem;
    display: inline-grid;
    place-items: center;
    position: relative;
    border-radius: 2px;
    transform: rotate(-1.5deg);
}
.logo__mark::after {
    content: '';
    position: absolute;
    inset: 2px;
    border: 1px solid var(--orange);
    border-radius: 1px;
}
.logo__slash { color: var(--orange); font-weight: 800; }
.logo__mute  { color: var(--ink-muted); font-weight: 500; }

/* ---- Desktop nav --------------------------------------------------- */
.mast-nav {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: .2rem;
    font-family: var(--sans);
}
.mast-nav__link {
    display: inline-flex;
    align-items: center;
    gap: .45rem;
    padding: .6rem .85rem;
    font-size: .82rem;
    font-weight: 500;
    letter-spacing: .01em;
    color: var(--ink);
    border-radius: 2px;
    position: relative;
    transition: color .15s ease-out, background .15s ease-out;
}
.mast-nav__dot {
    width: 6px; height: 6px;
    border-radius: 50%;
    background: transparent;
    border: 1px solid var(--rule);
    transition: background .15s, border-color .15s, transform .2s;
}
.mast-nav__link:hover {
    color: var(--orange);
    background: var(--bg-2);
}
.mast-nav__link:hover .mast-nav__dot { border-color: var(--orange); }
.mast-nav__link.is-active {
    color: var(--ink);
    font-weight: 600;
}
.mast-nav__link.is-active .mast-nav__dot {
    background: var(--orange);
    border-color: var(--orange);
    transform: scale(1.1);
}

/* ---- Tools (desktop): lang picker + subscribe CTA ------------------ */
.mast-tools {
    display: inline-flex;
    align-items: center;
    gap: .55rem;
}

.mast-cta {
    display: inline-flex;
    align-items: center;
    gap: .6rem;
    padding: .58rem .95rem;
    background: var(--ink);
    color: var(--bg);
    font-family: var(--mono);
    font-size: .76rem;
    font-weight: 500;
    letter-spacing: .06em;
    text-transform: uppercase;
    border: 1px solid var(--ink);
    border-radius: 2px;
    transition: background .18s, color .18s, transform .18s, box-shadow .18s;
}
.mast-cta:hover {
    background: var(--orange);
    border-color: var(--orange);
    color: #fff;
    transform: translate(-1px, -1px);
    box-shadow: 3px 3px 0 0 var(--ink);
}
.mast-cta:active { transform: translate(0, 0); box-shadow: 1px 1px 0 0 var(--ink); }
.mast-cta__arrow { color: var(--orange); transition: color .18s; }
.mast-cta:hover .mast-cta__arrow { color: #fff; }

/* ============================================================
   LANGUAGE PICKER — desktop dropdown
   ============================================================ */
.lang-pick {
    position: relative;
    font-family: var(--mono);
    font-size: .72rem;
    letter-spacing: .12em;
    text-transform: uppercase;
}
.lang-pick__btn {
    display: inline-flex;
    align-items: center;
    gap: .5rem;
    padding: .5rem .6rem;
    color: var(--ink);
    background: var(--surface);
    border: 1px solid var(--rule-soft);
    border-radius: 2px;
    cursor: pointer;
    list-style: none;
    user-select: none;
    transition: border-color .16s ease-out, background .16s ease-out, color .16s ease-out;
}
.lang-pick__btn::-webkit-details-marker { display: none; }
.lang-pick__btn::marker { display: none; }
.lang-pick__btn:hover { border-color: var(--ink); color: var(--orange); }
.lang-pick[open] > .lang-pick__btn {
    border-color: var(--ink);
    background: var(--bg-2);
}
.lang-pick__code { font-weight: 600; letter-spacing: .16em; }
.lang-pick__caret { color: var(--ink-muted); transition: transform .2s; flex-shrink: 0; }
.lang-pick[open] .lang-pick__caret { transform: rotate(180deg); color: var(--ink); }
.lang-pick__flag {
    display: inline-block;
    object-fit: cover;
    border: 1px solid var(--rule-soft);
    border-radius: 1px;
    vertical-align: middle;
    flex-shrink: 0;
}

.lang-pick__menu {
    position: absolute;
    right: 0;
    top: calc(100% + 8px);
    min-width: 13rem;
    background: var(--surface);
    border: 1.5px solid var(--ink);
    border-radius: 2px;
    box-shadow: 4px 4px 0 0 var(--ink);
    padding: .35rem;
    z-index: 80;
    display: flex;
    flex-direction: column;
    gap: 1px;
    animation: lang-pick-open .16s ease-out;
}
@keyframes lang-pick-open {
    from { opacity: 0; transform: translateY(-6px); }
    to   { opacity: 1; transform: translateY(0); }
}
.lang-pick__opt {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 1rem;
    padding: .55rem .7rem;
    text-transform: none;
    letter-spacing: .01em;
    font-size: .85rem;
    font-family: var(--sans);
    color: var(--ink);
    border-radius: 1px;
    transition: background .14s, color .14s;
}
.lang-pick__opt .lang-pick__flag { width: 20px; height: 15px; }
.lang-pick__opt:hover { background: var(--bg-2); color: var(--orange); }
.lang-pick__opt.is-active {
    background: var(--ink);
    color: var(--bg);
}
.lang-pick__opt.is-active:hover { color: var(--orange); }
.lang-pick__opt.is-active .lang-pick__flag { border-color: var(--bg); }
.lang-pick__name { font-weight: 500; }
.lang-pick__iso {
    font-family: var(--mono);
    font-size: .7rem;
    letter-spacing: .16em;
    color: var(--ink-muted);
    font-weight: 500;
}
.lang-pick__opt.is-active .lang-pick__iso { color: var(--bg); opacity: .62; }

/* ============================================================
   HAMBURGER — mobile only; surfaces via media query
   ============================================================ */
.nav-cb {
    position: absolute;
    width: 1px; height: 1px;
    padding: 0; margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border: 0;
}

.hamburger {
    display: none;
    width: 44px; height: 44px;
    position: relative;
    cursor: pointer;
    background: var(--surface);
    border: 1.5px solid var(--ink);
    border-radius: 2px;
    box-shadow: 2px 2px 0 0 var(--ink);
    transition: background .15s, transform .12s, box-shadow .12s, border-color .15s;
    -webkit-tap-highlight-color: transparent;
    user-select: none;
    flex: 0 0 auto;
}
.hamburger:hover  { background: var(--bg-2); }
.hamburger:active { transform: translate(1px, 1px); box-shadow: 1px 1px 0 0 var(--ink); }
.nav-cb:focus-visible ~ .masthead .hamburger {
    outline: 2px solid var(--orange);
    outline-offset: 3px;
}

.hamburger__box {
    position: absolute;
    inset: 0;
    pointer-events: none;
}
.hamburger__line {
    position: absolute;
    left: 50%;
    width: 22px;
    height: 2px;
    background: var(--ink);
    border-radius: 1px;
    transform: translateX(-50%);
    transform-origin: center center;
    transition:
        top        .28s cubic-bezier(.34, 1.26, .64, 1),
        transform  .32s cubic-bezier(.34, 1.26, .64, 1),
        background .16s ease-out,
        opacity    .14s ease-out;
}
.hamburger__line:nth-child(1) { top: 13px; }
.hamburger__line:nth-child(2) { top: 21px; }
.hamburger__line:nth-child(3) { top: 29px; }

/* ============================================================
   NAV SHEET — mobile full-screen overlay
   ============================================================ */
.sheet {
    position: fixed;
    inset: 0;
    z-index: 90;
    display: flex;
    flex-direction: column;
    background: var(--bg);
    background-image: radial-gradient(circle, var(--rule-dotted) 1px, transparent 1px);
    background-size: 22px 22px;
    transform: translateY(-100%);
    opacity: 0;
    visibility: hidden;
    transition:
        transform .3s cubic-bezier(.4, 0, .2, 1),
        opacity   .2s ease-out,
        visibility 0s linear .3s;
    overflow-y: auto;
    overscroll-behavior: contain;
}
.sheet__inner {
    max-width: 34rem;
    width: 100%;
    margin: 0 auto;
    padding: 1rem var(--gutter) 2rem;
    display: flex;
    flex-direction: column;
    flex: 1 1 auto;
    gap: 1.5rem;
}

.sheet__head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: .5rem 0 .25rem;
    border-bottom: 1px solid var(--rule-soft);
    margin-bottom: .5rem;
}
.sheet__tag {
    font-family: var(--mono);
    font-size: .72rem;
    letter-spacing: .22em;
    text-transform: uppercase;
    color: var(--ink-muted);
}
.sheet__tag-slash { color: var(--orange); margin-right: .15em; }
.sheet__close {
    width: 44px; height: 44px;
    display: inline-grid;
    place-items: center;
    color: var(--ink);
    background: var(--surface);
    border: 1.5px solid var(--ink);
    border-radius: 2px;
    box-shadow: 2px 2px 0 0 var(--ink);
    cursor: pointer;
    -webkit-tap-highlight-color: transparent;
    transition: background .15s, color .15s, transform .12s, box-shadow .12s;
}
.sheet__close:hover  { background: var(--bg-2); color: var(--orange); }
.sheet__close:active { transform: translate(1px, 1px); box-shadow: 1px 1px 0 0 var(--ink); }

.sheet__nav {
    display: flex;
    flex-direction: column;
    border-top: 1px solid var(--rule-soft);
}
.sheet__navlink {
    display: grid;
    grid-template-columns: 2.5rem 1fr auto;
    align-items: center;
    gap: 1rem;
    padding: 1.05rem .25rem;
    border-bottom: 1px solid var(--rule-soft);
    color: var(--ink);
    transition: background .15s, color .15s, padding-left .15s;
    -webkit-tap-highlight-color: transparent;
}
.sheet__navlink:active { background: var(--bg-2); padding-left: .5rem; }
.sheet__navlink.is-active { color: var(--orange); }
.sheet__navlink.is-active .sheet__navnum { color: var(--orange); }
.sheet__navlink.is-active .sheet__navarrow { color: var(--orange); transform: translateX(2px); }
.sheet__navnum {
    font-family: var(--mono);
    font-size: .78rem;
    letter-spacing: .18em;
    color: var(--ink-muted);
    font-weight: 500;
}
.sheet__navlabel {
    font-family: var(--display);
    font-size: 1.35rem;
    font-weight: 600;
    letter-spacing: -0.01em;
    line-height: 1.1;
}
.sheet__navarrow {
    color: var(--ink-muted);
    font-size: 1rem;
    transition: color .15s, transform .2s;
}

.sheet__cta {
    display: grid;
    grid-template-columns: auto 1fr auto;
    align-items: center;
    gap: .75rem;
    margin-top: .25rem;
    padding: 1.05rem 1.1rem;
    background: var(--orange);
    color: #fff;
    border: 1.5px solid var(--ink);
    border-radius: 2px;
    box-shadow: 4px 4px 0 0 var(--ink);
    font-family: var(--mono);
    font-size: .85rem;
    font-weight: 600;
    letter-spacing: .12em;
    text-transform: uppercase;
    transition: transform .14s, box-shadow .14s, background .14s;
    -webkit-tap-highlight-color: transparent;
}
.sheet__cta:hover  { background: #bf4019; }
.sheet__cta:active { transform: translate(2px, 2px); box-shadow: 2px 2px 0 0 var(--ink); }
.sheet__cta-prompt { color: rgba(255,255,255,.85); font-weight: 700; }
.sheet__cta-label  { letter-spacing: .14em; }
.sheet__cta-arrow  { font-size: 1.1rem; line-height: 1; }

.sheet__lang {
    margin-top: auto;
    padding-top: 1.75rem;
    border-top: 2px solid var(--ink);
}
.sheet__lang > .sheet__tag { display: block; padding-bottom: .95rem; }
.sheet__langgrid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: .6rem;
}
.sheet__langopt {
    display: grid;
    grid-template-columns: auto 1fr auto;
    align-items: center;
    gap: .65rem;
    padding: .85rem .85rem;
    background: var(--surface);
    border: 1.5px solid var(--rule-soft);
    border-radius: 2px;
    color: var(--ink);
    transition: transform .12s, border-color .15s, background .15s, color .15s, box-shadow .15s;
    -webkit-tap-highlight-color: transparent;
    min-height: 52px;
}
.sheet__langopt:active {
    transform: translate(1px, 1px);
    box-shadow: 1px 1px 0 0 var(--ink);
}
.sheet__langopt.is-active {
    background: var(--ink);
    color: var(--bg);
    border-color: var(--ink);
    box-shadow: 2px 2px 0 0 var(--orange);
}
.sheet__langopt.is-active .sheet__langopt-iso { color: var(--bg); opacity: .65; }
.sheet__langopt .lang-pick__flag {
    width: 28px; height: 21px;
    border: 1px solid var(--rule);
}
.sheet__langopt.is-active .lang-pick__flag { border-color: var(--bg); }
.sheet__langopt-name {
    font-family: var(--sans);
    font-size: .95rem;
    font-weight: 500;
    letter-spacing: 0;
    line-height: 1.1;
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.sheet__langopt-iso {
    font-family: var(--mono);
    font-size: .7rem;
    letter-spacing: .16em;
    color: var(--ink-muted);
    font-weight: 500;
}

.sheet__foot {
    margin-top: 1.25rem;
    padding-top: 1rem;
    border-top: 1px solid var(--rule-soft);
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: 1rem;
    font-size: .72rem;
    color: var(--ink-muted);
    font-family: var(--mono);
    letter-spacing: .06em;
}
.sheet__foot-mark { font-weight: 500; color: var(--ink); }
.sheet__foot-meta { letter-spacing: .14em; text-transform: uppercase; }

/* ============================================================
   HERO / LEAD
   ============================================================ */
.hero {
    padding: clamp(2rem, 4.5vw, 3.8rem) 0 clamp(1.5rem, 3vw, 2.5rem);
    position: relative;
}

.hero__top {
    display: grid;
    grid-template-columns: 1fr;
    gap: 1.2rem;
    align-items: end;
    margin-bottom: 1.8rem;
}
@media (min-width: 860px) {
    .hero__top { grid-template-columns: 1fr auto; gap: 2rem; }
}
.hero__annot {
    font-family: var(--mono);
    font-size: .78rem;
    color: var(--ink-muted);
    letter-spacing: -.005em;
    line-height: 1.5;
    max-width: 28ch;
    padding-left: 1rem;
    border-left: 2px solid var(--orange);
}
.hero__annot b { color: var(--ink); font-weight: 600; }
.hero__badge {
    display: inline-flex;
    align-items: center;
    gap: .5rem;
    padding: .32rem .65rem .32rem .5rem;
    border: 1px solid var(--rule);
    background: var(--surface);
    font-family: var(--mono);
    font-size: .72rem;
    font-weight: 500;
    letter-spacing: .02em;
    color: var(--ink);
    border-radius: 99px;
    margin-bottom: 1.6rem;
}
.hero__badge .dot {
    width: 7px; height: 7px; border-radius: 50%;
    background: var(--lime);
    box-shadow: 0 0 0 3px rgba(196,245,66,.3);
    animation: pulse 1.6s ease-out infinite;
}
.hero__badge b { color: var(--orange); font-weight: 600; }

.hero__h1 {
    font-family: var(--display);
    font-weight: 700;
    font-size: clamp(2.3rem, 6.2vw, 5.2rem);
    line-height: 0.96;
    letter-spacing: -0.032em;
    color: var(--ink);
    margin: 0;
    max-width: 16ch;
    text-wrap: balance;
}
.hero__h1 .slash { color: var(--orange); font-weight: 800; }
.hero__h1 .mono  {
    font-family: var(--mono);
    font-weight: 500;
    font-size: 0.82em;
    color: var(--ink-muted);
    letter-spacing: -.01em;
}
.hero__h1 em {
    font-style: italic;
    color: var(--ink);
    position: relative;
    white-space: nowrap;
}
.hero__h1 em::after {
    content: '';
    position: absolute;
    left: -.04em; right: -.04em; bottom: .08em;
    height: .32em;
    background: var(--lime);
    z-index: -1;
}

.hero__deck {
    font-size: clamp(1.02rem, 1.4vw, 1.18rem);
    line-height: 1.55;
    color: var(--ink-2);
    max-width: 58ch;
    margin: 0 0 2rem;
}

/* Terminal-style CTA block */
.terminal {
    background: var(--ink);
    color: var(--bg);
    border-radius: 4px;
    padding: 1rem 1.1rem;
    font-family: var(--mono);
    font-size: .86rem;
    max-width: 44rem;
    border: 1px solid var(--ink);
    box-shadow: 6px 6px 0 0 var(--orange);
    position: relative;
    overflow: hidden;
}
.terminal::before {
    content: '';
    position: absolute;
    top: 0; left: 0; right: 0;
    height: 26px;
    background: var(--ink-2);
    border-bottom: 1px solid #2a2a32;
}
.terminal__dots {
    position: absolute; top: 9px; left: 12px;
    display: inline-flex; gap: 6px;
}
.terminal__dots span { width: 9px; height: 9px; border-radius: 50%; background: #39393f; }
.terminal__dots span:nth-child(1) { background: #ff5c5c; }
.terminal__dots span:nth-child(2) { background: #ffbd44; }
.terminal__dots span:nth-child(3) { background: #28ca42; }
.terminal__label {
    position: absolute; top: 6px; left: 0; right: 0;
    text-align: center;
    font-size: .68rem;
    color: var(--ink-faint);
    letter-spacing: .1em;
}
.terminal__body {
    padding-top: 2.2rem;
}
.terminal__line { display: block; }
.terminal__line .prompt { color: var(--lime); margin-right: .6rem; }
.terminal__line .cmd    { color: var(--bg); }
.terminal__line .out    { color: var(--ink-faint); }
.terminal__line .orange { color: var(--orange-2); }
.terminal__cta {
    display: inline-flex;
    align-items: center;
    gap: .6rem;
    margin-top: .9rem;
    color: var(--lime);
    font-weight: 500;
    font-family: var(--mono);
    font-size: .88rem;
    border-bottom: 1px dashed rgba(196,245,66,.5);
    padding-bottom: 2px;
    transition: color .15s;
}
.terminal__cta:hover { color: var(--orange-2); border-bottom-color: var(--orange-2); }
.terminal__cursor {
    display: inline-block;
    width: 8px; height: 1.1em;
    background: var(--lime);
    vertical-align: -2px;
    margin-left: 4px;
    animation: blink 1.1s steps(2) infinite;
}
@keyframes blink { 50% { opacity: 0; } }

/* ============================================================
   STATS STRIP
   ============================================================ */
.stats {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 0;
    border: 1px solid var(--rule);
    background: var(--surface);
    margin: 0;
}
@media (min-width: 760px) { .stats { grid-template-columns: repeat(4, 1fr); } }

.stat {
    padding: 1rem 1.1rem;
    border-right: 1px solid var(--rule);
    border-bottom: 1px solid var(--rule);
    position: relative;
    overflow: hidden;
}
.stat:nth-child(2n)   { border-right: none; }
@media (min-width: 760px) {
    .stat:nth-child(2n)   { border-right: 1px solid var(--rule); }
    .stat:last-child,
    .stat:nth-child(4n)   { border-right: none; }
    .stat:nth-child(n+1)  { border-bottom: none; }
}
.stat::before {
    content: '';
    position: absolute;
    top: 0; left: 0;
    width: 10px; height: 10px;
    border-top: 1px solid var(--orange);
    border-left: 1px solid var(--orange);
}
.stat::after {
    content: '';
    position: absolute;
    bottom: 0; right: 0;
    width: 10px; height: 10px;
    border-bottom: 1px solid var(--rule-soft);
    border-right: 1px solid var(--rule-soft);
}
.stat .k {
    font-family: var(--mono);
    font-size: .68rem;
    font-weight: 500;
    letter-spacing: .12em;
    text-transform: uppercase;
    color: var(--ink-muted);
    margin-bottom: .35rem;
    display: flex;
    align-items: center;
    gap: .4rem;
}
.stat .k .badge {
    display: inline-block;
    background: var(--orange);
    color: #fff;
    font-size: .56rem;
    padding: 1px 5px;
    border-radius: 99px;
    letter-spacing: .08em;
}
.stat .v {
    font-family: var(--display);
    font-weight: 700;
    font-size: 2rem;
    line-height: 1;
    color: var(--ink);
    letter-spacing: -.025em;
    font-feature-settings: "ss01";
}
.stat .v .sub {
    font-family: var(--mono);
    font-weight: 400;
    font-size: .58em;
    color: var(--ink-muted);
    letter-spacing: .06em;
    margin-left: .25rem;
}
.stat .hint {
    margin-top: .35rem;
    font-family: var(--mono);
    font-size: .68rem;
    color: var(--ink-muted);
    letter-spacing: .02em;
}
.stat .hint .up   { color: var(--green); }
.stat .hint .down { color: var(--red); }

/* ============================================================
   SECTION HEADING
   ============================================================ */
.section {
    padding: clamp(3rem, 6vw, 5rem) 0;
}
.sec-head {
    display: grid;
    grid-template-columns: auto 1fr auto;
    align-items: end;
    gap: 1.2rem;
    margin-bottom: 1.8rem;
    padding-bottom: .75rem;
    border-bottom: 1px solid var(--rule);
}
.sec-head__tag {
    display: inline-flex;
    align-items: center;
    gap: .5rem;
    font-family: var(--mono);
    font-size: .72rem;
    letter-spacing: .1em;
    font-weight: 500;
    color: var(--ink);
    text-transform: uppercase;
}
.sec-head__tag .hash { color: var(--orange); }
.sec-head__title {
    grid-column: 1 / -1;
    font-family: var(--display);
    font-weight: 700;
    font-size: clamp(1.7rem, 3.4vw, 2.7rem);
    line-height: 1.05;
    letter-spacing: -.025em;
    margin: 0;
    color: var(--ink);
}
.sec-head__title em { font-style: italic; color: var(--orange); font-weight: 600; }
.sec-head__title .mono {
    font-family: var(--mono);
    font-weight: 500;
    font-size: .55em;
    color: var(--ink-muted);
    letter-spacing: -.005em;
    vertical-align: middle;
    margin-left: .4rem;
}
.sec-head__meta {
    font-family: var(--mono);
    font-size: .72rem;
    color: var(--ink-muted);
    letter-spacing: .06em;
    justify-self: end;
}

.sec-link {
    font-family: var(--mono);
    font-size: .76rem;
    font-weight: 500;
    color: var(--ink);
    border-bottom: 1px solid var(--ink);
    padding-bottom: 1px;
    transition: color .15s, border-color .15s;
    letter-spacing: .01em;
}
.sec-link:hover { color: var(--orange); border-bottom-color: var(--orange); }

/* ============================================================
   SHORTLIST — leaderboard table-style
   ============================================================ */
.board {
    border: 1px solid var(--rule);
    background: var(--surface);
    overflow: hidden;
}
.board__head, .board__row {
    display: grid;
    grid-template-columns: 3.2rem 1fr auto 5.5rem 6rem;
    align-items: center;
    gap: 1.2rem;
    padding: .9rem 1.2rem;
}
.board__head {
    background: var(--ink);
    color: var(--bg);
    font-family: var(--mono);
    font-size: .68rem;
    font-weight: 500;
    letter-spacing: .14em;
    text-transform: uppercase;
    padding-block: .6rem;
}
.board__head span { color: var(--ink-faint); }
.board__head span:first-child { color: var(--orange); }

.board__row {
    border-top: 1px solid var(--rule-soft);
    transition: background .15s;
    position: relative;
}
.board__row:hover { background: var(--bg-2); }
.board__row:hover .board__name { color: var(--orange); }

.board__rank {
    font-family: var(--mono);
    font-size: .9rem;
    font-weight: 600;
    color: var(--ink-muted);
    letter-spacing: .03em;
}
.board__rank b { color: var(--ink); }

.board__svc { display: flex; align-items: center; gap: .9rem; min-width: 0; }
.board__avatar {
    flex: none;
    width: 36px; height: 36px;
    background: var(--ink);
    color: var(--orange);
    font-family: var(--mono);
    font-weight: 600;
    font-size: .88rem;
    display: inline-grid;
    place-items: center;
    border-radius: 3px;
    border: 1px solid var(--ink);
}
.board__avatar.is-orange { background: var(--orange); color: var(--bg); border-color: var(--orange); }
.board__avatar.is-lime { background: var(--lime); color: var(--ink); border-color: var(--ink); }
.board__avatar.is-ghost { background: var(--bg); color: var(--ink); border-color: var(--ink); }

.board__body { min-width: 0; }
.board__name {
    font-family: var(--display);
    font-weight: 700;
    font-size: 1.08rem;
    letter-spacing: -.015em;
    color: var(--ink);
    line-height: 1.15;
    transition: color .15s;
}
.board__meta {
    margin-top: 2px;
    font-family: var(--mono);
    font-size: .7rem;
    color: var(--ink-muted);
    letter-spacing: .02em;
    display: flex;
    gap: .55rem;
    flex-wrap: wrap;
}
.board__meta .sep { color: var(--ink-faint); }
.board__meta .addr { color: var(--orange-ink); }

.board__chains { display: flex; gap: .4rem; flex-wrap: wrap; }
.chain {
    display: inline-flex;
    align-items: center;
    gap: .32rem;
    font-family: var(--mono);
    font-size: .68rem;
    font-weight: 500;
    letter-spacing: .04em;
    padding: .16rem .5rem .16rem .4rem;
    border: 1px solid var(--rule-soft);
    border-radius: 99px;
    background: var(--bg);
    color: var(--ink);
}
.chain::before {
    content: '';
    width: 7px; height: 7px; border-radius: 50%;
    background: currentColor;
}
.chain.btc  { color: var(--c-btc); }
.chain.xmr  { color: var(--c-xmr); }
.chain.eth  { color: var(--c-eth); }
.chain.ln   { color: var(--c-ln); }
.chain.sol  { color: var(--c-sol); }
.chain.tor  { color: var(--c-tor); }
.chain.cash { color: var(--ink); }
.chain.btc, .chain.xmr, .chain.eth, .chain.ln, .chain.sol, .chain.tor, .chain.cash {
    /* keep label ink */
}
.chain span { color: var(--ink); }

.board__kyc {
    font-family: var(--mono);
    font-size: .72rem;
    font-weight: 500;
    letter-spacing: .04em;
    padding: .22rem .5rem;
    background: var(--bg-2);
    color: var(--ink);
    border: 1px solid var(--rule-soft);
    border-radius: 2px;
    justify-self: start;
    display: inline-block;
    white-space: nowrap;
}
.board__kyc.l0, .board__kyc.l1 { background: var(--lime); border-color: var(--ink); }
.board__kyc.l2 { background: var(--surface); border-color: var(--ink); }
.board__kyc.l3 { background: #FFE8C2; border-color: var(--ink); }
.board__kyc.l4 { background: #FFCCA3; border-color: var(--ink); }
.board__kyc.l5 { background: #FFB3B3; border-color: var(--ink); }

/* Grade tile — web3-ish, heavy mono */
.gr {
    font-family: var(--mono);
    font-weight: 600;
    font-size: 1.4rem;
    line-height: 1;
    padding: .5rem .65rem;
    color: var(--ink);
    border: 1px solid var(--ink);
    border-radius: 3px;
    background: var(--surface);
    box-shadow: 3px 3px 0 0 var(--ink);
    display: inline-flex;
    align-items: baseline;
    gap: .15rem;
    letter-spacing: -.02em;
    justify-self: end;
    min-width: 4.2rem;
    justify-content: center;
}
.gr small { font-size: .55em; color: var(--ink-muted); font-weight: 500; letter-spacing: .02em; }
.gr.aplus { background: var(--lime); color: var(--ink); }
.gr.a     { background: var(--lime); color: var(--ink); }
.gr.aminus{ background: #E7F5B9; color: var(--ink); }
.gr.bplus { background: var(--surface); color: var(--ink); }
.gr.b     { background: var(--surface); color: var(--ink); }
.gr.c     { background: #FFE8C2; color: var(--ink); }
.gr.d     { background: #FFCCA3; color: var(--ink); }
.gr.f     { background: #FFB3B3; color: var(--ink); }

/* ============================================================
   FEATURED REVIEW card (the old lead, re-skinned)
   ============================================================ */
.feature {
    display: grid;
    grid-template-columns: 1fr;
    border: 1px solid var(--rule);
    background: var(--surface);
    box-shadow: 8px 8px 0 0 var(--ink);
    margin-top: 1.5rem;
    position: relative;
}
@media (min-width: 900px) { .feature { grid-template-columns: 1.45fr 1fr; } }

.feature__body { padding: clamp(1.6rem, 3vw, 2.4rem); border-right: 1px solid var(--rule-soft); }
@media (max-width: 899px) { .feature__body { border-right: none; border-bottom: 1px solid var(--rule-soft); } }

.feature__meta {
    font-family: var(--mono);
    font-size: .7rem;
    letter-spacing: .12em;
    text-transform: uppercase;
    color: var(--orange);
    display: flex;
    align-items: center;
    gap: .7rem;
    margin-bottom: .9rem;
}
.feature__meta .dot  { color: var(--ink-faint); }
.feature__meta .muted { color: var(--ink-muted); }

.feature__title {
    font-family: var(--display);
    font-weight: 700;
    font-size: clamp(1.8rem, 3.4vw, 2.8rem);
    line-height: 1;
    letter-spacing: -.025em;
    color: var(--ink);
    margin: 0 0 .9rem;
    text-wrap: balance;
}
.feature__title em { font-style: italic; color: var(--orange); font-weight: 600; }

.feature__deck {
    font-size: 1.02rem;
    line-height: 1.55;
    color: var(--ink-2);
    margin: 0 0 1.2rem;
    max-width: 52ch;
}

.feature__tags { display: flex; flex-wrap: wrap; gap: .35rem; margin-bottom: 1.2rem; }
.feature__cta {
    display: inline-flex;
    align-items: center;
    gap: .55rem;
    padding: .72rem 1rem;
    background: var(--ink);
    color: var(--bg);
    font-family: var(--mono);
    font-weight: 500;
    font-size: .82rem;
    border-radius: 2px;
    border: 1px solid var(--ink);
    transition: background .15s, color .15s;
}
.feature__cta:hover { background: var(--orange); border-color: var(--orange); color: #fff; }
.feature__cta::before { content: '$'; color: var(--orange); margin-right: .1rem; }
.feature__cta:hover::before { color: #fff; }

.feature__stats { padding: clamp(1.6rem, 3vw, 2.4rem); background: var(--surface-2); }
.feature__plate-title {
    font-family: var(--mono);
    font-size: .68rem;
    letter-spacing: .2em;
    text-transform: uppercase;
    color: var(--ink-muted);
    margin-bottom: 1rem;
    display: flex;
    justify-content: space-between;
    align-items: center;
}
.feature__plate-title .live { color: var(--green); display: inline-flex; align-items: center; gap: .35rem; }
.feature__plate-title .live::before {
    content: ''; width: 6px; height: 6px; border-radius: 50%;
    background: var(--green);
    box-shadow: 0 0 0 3px rgba(15,191,92,.25);
    animation: pulse 1.6s ease-out infinite;
}

.feature__grade {
    display: flex;
    align-items: center;
    gap: 1.1rem;
    padding-bottom: 1rem;
    border-bottom: 1px dashed var(--rule-soft);
    margin-bottom: 1rem;
}
.feature__grade-tile {
    width: 5.5rem; height: 5.5rem;
    background: var(--lime);
    color: var(--ink);
    border: 1px solid var(--ink);
    border-radius: 4px;
    box-shadow: 4px 4px 0 0 var(--ink);
    display: grid; place-items: center;
    font-family: var(--display);
    font-weight: 800;
    font-size: 3rem;
    line-height: 1;
    letter-spacing: -.02em;
    padding: 0 .25rem;
}
.feature__grade-tile.aplus,
.feature__grade-tile.aminus,
.feature__grade-tile.bplus {
    font-size: 2.2rem;
    letter-spacing: -.04em;
}
.feature__grade-meta .label {
    font-family: var(--mono);
    font-size: .68rem;
    letter-spacing: .14em;
    text-transform: uppercase;
    color: var(--ink-muted);
    margin-bottom: .25rem;
}
.feature__grade-meta .headline {
    font-family: var(--display);
    font-weight: 700;
    font-size: 1.3rem;
    line-height: 1.1;
    color: var(--ink);
    letter-spacing: -.015em;
}
.feature__grade-meta .sub {
    font-family: var(--mono);
    font-size: .72rem;
    color: var(--ink-muted);
    margin-top: .2rem;
}

.bars { display: grid; gap: .6rem; }
.bar {
    display: grid;
    grid-template-columns: 1fr auto;
    align-items: center;
    gap: .9rem;
    padding: .35rem 0;
}
.bar .k {
    font-family: var(--mono);
    font-size: .72rem;
    color: var(--ink);
    letter-spacing: .04em;
    text-transform: uppercase;
}
.bar .v {
    font-family: var(--mono);
    font-size: .75rem;
    font-weight: 500;
    color: var(--ink);
}
.bar .v b { color: var(--orange); font-weight: 600; }
.bar .g {
    grid-column: 1 / -1;
    height: 6px;
    background: var(--bg-2);
    border: 1px solid var(--rule-soft);
    border-radius: 2px;
    overflow: hidden;
}
.bar .g > span {
    display: block;
    height: 100%;
    background: var(--ink);
    position: relative;
}
.bar .g > span::after {
    content: '';
    position: absolute;
    inset: 0;
    background-image: repeating-linear-gradient(90deg, transparent 0, transparent 5px, rgba(255,255,255,.2) 5px, rgba(255,255,255,.2) 6px);
}
.bar.privacy .g > span { background: var(--lime-deep); }
.bar.custody .g > span { background: var(--ink); }
.bar.track   .g > span { background: var(--orange); }

/* ============================================================
   REVIEWS INDEX — page header + filter toolbar
   ============================================================ */
.page-head {
    padding: clamp(2rem, 4vw, 3.4rem) 0 clamp(1.2rem, 2vw, 1.8rem);
    border-bottom: 1px solid var(--rule-soft);
}
.page-head__inner {
    display: grid;
    grid-template-columns: 1fr;
    gap: 1rem;
    align-items: end;
}
@media (min-width: 860px) {
    .page-head__inner { grid-template-columns: 1fr auto; gap: 2rem; }
}
.page-head__tag {
    font-family: var(--mono);
    font-size: .72rem;
    letter-spacing: .14em;
    text-transform: uppercase;
    color: var(--orange);
    font-weight: 500;
    margin-bottom: .55rem;
    display: inline-flex;
    align-items: center;
    gap: .4rem;
}
.page-head__tag::before { content: '§'; color: var(--ink); }
.page-head h1 {
    font-family: var(--display);
    font-weight: 700;
    font-size: clamp(2.2rem, 5vw, 3.8rem);
    line-height: 0.98;
    letter-spacing: -.03em;
    color: var(--ink);
    margin: 0;
    text-wrap: balance;
}
.page-head h1 em { font-style: italic; color: var(--orange); font-weight: 600; }

/* ============================================================
   Toolbar v3 — unified light filter bar (clean, mobile-first)
   ============================================================ */
.toolbar {
    position: sticky;
    top: 57px;
    z-index: 40;
    background: rgba(250, 249, 245, .94);
    backdrop-filter: saturate(160%) blur(8px);
    border-bottom: 1px solid var(--rule-soft);
    padding: .9rem 0 .7rem;
}
.toolbar__inner {
    display: flex;
    flex-direction: column;
    gap: .7rem;
}

/* --- Top bar: search stretches, sort + filters on the right --- */
.tb-top {
    display: flex;
    gap: .5rem;
    align-items: stretch;
    flex-wrap: wrap;       /* wraps at any width when children or drawer body need it */
    row-gap: .5rem;
}

/* --- Search --- */
.tb-search {
    flex: 1 1 14rem;
    min-width: 0;
    position: relative;
    display: flex;
    align-items: center;
}
.tb-search__icon {
    position: absolute;
    left: .9rem;
    top: 50%;
    transform: translateY(-50%);
    width: 16px; height: 16px;
    color: var(--ink-muted);
    pointer-events: none;
    z-index: 1;
}
.tb-search input {
    width: 100%;
    height: 44px;
    padding: 0 3.4rem 0 2.6rem;
    background: var(--surface);
    border: 1px solid var(--rule-soft);
    border-radius: 6px;
    font-family: var(--sans);
    font-size: .92rem;
    color: var(--ink);
    outline: none;
    transition: border-color .15s, box-shadow .15s;
    -webkit-appearance: none;
}
.tb-search input::placeholder { color: var(--ink-faint); }
.tb-search input:focus {
    border-color: var(--ink);
    box-shadow: 0 0 0 3px rgba(209,74,31,.12);
}
.tb-search__kbd {
    position: absolute;
    right: .7rem;
    top: 50%;
    transform: translateY(-50%);
    display: inline-flex;
    align-items: center;
    gap: .35rem;
    padding: .22rem .45rem;
    font-family: var(--mono);
    font-size: .66rem;
    color: var(--ink-muted);
    background: var(--bg-2);
    border: 1px solid var(--rule-soft);
    border-radius: 3px;
    pointer-events: none;
    line-height: 1;
}

/* --- Sort + Filter buttons share styling --- */
.tb-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: .45rem;
    height: 44px;
    padding: 0 1rem;
    background: var(--surface);
    border: 1px solid var(--rule-soft);
    border-radius: 6px;
    font-family: var(--sans);
    font-size: .86rem;
    font-weight: 500;
    color: var(--ink);
    cursor: pointer;
    white-space: nowrap;
    transition: border-color .15s, background .15s;
    outline: none;
}
.tb-btn:hover, .tb-btn:focus-visible {
    border-color: var(--ink);
    background: var(--bg-2);
}
.tb-btn .label { color: var(--ink-muted); font-size: .8rem; font-weight: 400; margin-right: .15rem; }
.tb-btn .caret { color: var(--ink-muted); font-size: .7rem; transition: transform .15s; }
.tb-btn .count {
    display: inline-grid;
    place-items: center;
    background: var(--orange);
    color: #fff;
    padding: 0 .4rem;
    height: 18px;
    min-width: 18px;
    border-radius: 99px;
    font-size: .66rem;
    font-weight: 600;
    font-family: var(--mono);
    line-height: 1;
}

/* Native select becomes our styled pill */
.tb-sort {
    position: relative;
    display: inline-flex;
}
.tb-sort select {
    -webkit-appearance: none;
    -moz-appearance: none;
    appearance: none;
    height: 44px;
    padding: 0 2.2rem 0 1rem;
    background: var(--surface);
    border: 1px solid var(--rule-soft);
    border-radius: 6px;
    font-family: var(--sans);
    font-size: .86rem;
    font-weight: 500;
    color: var(--ink);
    cursor: pointer;
    outline: none;
    transition: border-color .15s, background .15s;
}
.tb-sort select:hover, .tb-sort select:focus-visible {
    border-color: var(--ink);
    background: var(--bg-2);
}
.tb-sort::after {
    content: '▾';
    position: absolute;
    right: .85rem;
    top: 50%;
    transform: translateY(-50%);
    color: var(--ink-muted);
    font-size: .7rem;
    pointer-events: none;
}

/* --- Filter drawer ------------------------------------------------ */
.tb-drawer { display: contents; }            /* let summary + body flow in parent layout */
.tb-drawer > summary {
    /* sits in top bar as a tb-btn */
    list-style: none;
}
.tb-drawer > summary::-webkit-details-marker { display: none; }
.tb-drawer[open] > summary.tb-btn {
    background: var(--ink);
    color: var(--bg);
    border-color: var(--ink);
}
.tb-drawer[open] > summary.tb-btn .label,
.tb-drawer[open] > summary.tb-btn .caret { color: rgba(250,249,245,.55); }
.tb-drawer[open] > summary.tb-btn .caret { transform: rotate(180deg); color: var(--lime); }

.tb-drawer__body {
    grid-column: 1 / -1;
    order: 99;
    width: 100%;
    padding: 1rem 1.1rem 1.1rem;
    background: var(--surface);
    border: 1px solid var(--rule);
    border-radius: 6px;
    box-shadow: 4px 4px 0 0 var(--ink);
    display: grid;
    gap: 1rem;
    animation: tb-drawer-in .18s ease-out;
}
@keyframes tb-drawer-in {
    from { opacity: 0; transform: translateY(-4px); }
    to   { opacity: 1; transform: none; }
}
.tb-group { display: flex; flex-direction: column; gap: .5rem; }
.tb-group__label {
    font-family: var(--mono);
    font-size: .64rem;
    letter-spacing: .2em;
    text-transform: uppercase;
    color: var(--ink-muted);
    font-weight: 600;
    display: flex;
    align-items: center;
    gap: .4rem;
}
.tb-group__label::before {
    content: '//';
    color: var(--orange);
}
.tb-group__chips { display: flex; flex-wrap: wrap; gap: .35rem; }

/* --- Category rail (row 2) --- */
.tb-cats-wrap { position: relative; margin: 0 calc(-1 * var(--gutter)); padding: 0 var(--gutter); }
.tb-cats {
    display: flex;
    gap: .35rem;
    overflow-x: auto;
    overflow-y: hidden;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: none;
    scroll-snap-type: x proximity;
    padding: .15rem 0 .45rem;
}
.tb-cats::-webkit-scrollbar { display: none; }
.tb-cats > a { scroll-snap-align: start; }

.tb-cat {
    flex: none;
    display: inline-flex;
    align-items: center;
    gap: .35rem;
    height: 32px;
    padding: 0 .8rem;
    background: transparent;
    border: 1px solid var(--rule-soft);
    border-radius: 99px;
    font-family: var(--sans);
    font-size: .82rem;
    font-weight: 500;
    color: var(--ink-2);
    transition: border-color .15s, background .15s, color .15s;
    white-space: nowrap;
    user-select: none;
}
.tb-cat .n {
    font-size: .66rem;
    color: var(--ink-muted);
    font-family: var(--mono);
    font-weight: 400;
}
.tb-cat:hover {
    border-color: var(--ink);
    color: var(--ink);
}
.tb-cat--on {
    background: var(--ink);
    border-color: var(--ink);
    color: var(--bg);
}
.tb-cat--on .n { color: var(--orange-2); }

/* --- Applied filter pills — inline, minimal --- */
.applied-strip {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: .35rem;
    font-family: var(--sans);
    font-size: .82rem;
    padding-top: .2rem;
}
.applied-strip .label {
    font-family: var(--mono);
    font-size: .66rem;
    letter-spacing: .14em;
    text-transform: uppercase;
    color: var(--ink-muted);
    margin-right: .25rem;
}
.applied-chip {
    display: inline-flex;
    align-items: center;
    gap: .4rem;
    padding: .2rem .35rem .2rem .6rem;
    background: var(--surface);
    border: 1px solid var(--rule-soft);
    border-radius: 99px;
    font-size: .76rem;
    color: var(--ink);
    transition: border-color .15s;
}
.applied-chip:hover { border-color: var(--ink); }
.applied-chip b { font-weight: 600; }
.applied-chip .k { color: var(--ink-muted); font-family: var(--mono); font-size: .68rem; }
.applied-chip .x {
    display: inline-grid;
    place-items: center;
    width: 16px; height: 16px;
    background: var(--bg-2);
    color: var(--ink);
    border-radius: 99px;
    font-weight: 700;
    font-size: .7rem;
    line-height: 1;
    transition: background .15s, color .15s;
}
.applied-chip:hover .x { background: var(--ink); color: var(--bg); }
.applied-clear {
    font-family: var(--mono);
    font-size: .7rem;
    letter-spacing: .1em;
    color: var(--orange-ink);
    text-transform: uppercase;
    border-bottom: 1px solid transparent;
    transition: color .12s, border-color .12s;
    padding: .2rem .2rem;
}
.applied-clear:hover { color: var(--orange); border-color: var(--orange); }

/* Tablet / mobile */
@media (max-width: 760px) {
    .tb-top { flex-wrap: wrap; }
    .tb-search { flex: 1 1 100%; order: 1; }
    .tb-sort { flex: 1 1 auto; order: 2; }
    .tb-sort select { width: 100%; }
    .tb-drawer > summary.tb-btn { flex: 1 1 auto; order: 3; min-width: 7rem; }
}
@media (max-width: 420px) {
    .tb-search__kbd { display: none; }
    .tb-search input { padding-right: 1rem; }
}
.chip {
    display: inline-flex;
    align-items: center;
    gap: .4rem;
    padding: .3rem .7rem;
    font-family: var(--mono);
    font-size: .74rem;
    font-weight: 500;
    letter-spacing: .01em;
    color: var(--ink);
    background: var(--surface);
    border: 1px solid var(--rule-soft);
    border-radius: 99px;
    transition: background .14s, color .14s, border-color .14s, transform .14s;
    white-space: nowrap;
}
.chip:hover { background: var(--ink); color: var(--bg); border-color: var(--ink); }
.chip .n {
    font-size: .66rem;
    color: var(--ink-muted);
    padding: 1px 5px;
    background: var(--bg-2);
    border-radius: 99px;
    font-weight: 500;
}
.chip:hover .n { background: #2a2a32; color: var(--ink-faint); }

.chip--on {
    background: var(--ink);
    color: var(--bg);
    border-color: var(--ink);
}
.chip--on .n { background: var(--orange); color: #fff; }
.chip--on:hover { background: var(--orange); border-color: var(--orange); color: #fff; }

.chip--kyc { position: relative; padding-left: 1.6rem; }
.chip--kyc::before {
    content: '';
    position: absolute;
    left: .55rem;
    top: 50%;
    transform: translateY(-50%);
    width: 8px; height: 8px;
    border-radius: 50%;
}
.chip--kyc.l0::before, .chip--kyc.l1::before { background: var(--lime-deep); }
.chip--kyc.l2::before { background: var(--ink); }
.chip--kyc.l3::before { background: var(--orange); }
.chip--kyc.l4::before { background: #FF9545; }
.chip--kyc.l5::before { background: #E63946; }

/* Results meta bar */
.res-meta {
    display: flex;
    justify-content: space-between;
    align-items: center;
    flex-wrap: wrap;
    gap: 1rem;
    padding: 1.1rem 0 1rem;
    font-family: var(--mono);
    font-size: .74rem;
    color: var(--ink-muted);
    letter-spacing: .02em;
}
.res-meta .count b { color: var(--orange); font-weight: 600; }
.res-meta .applied {
    display: inline-flex;
    align-items: center;
    gap: .35rem;
    flex-wrap: wrap;
}
.res-meta .applied .k { color: var(--ink-muted); }
.res-meta .applied b { color: var(--ink); background: var(--surface); border: 1px solid var(--rule-soft); padding: 1px 6px; border-radius: 99px; font-weight: 500; }

/* Listing wraps the board with extra padding fit */
.listing {
    padding-bottom: clamp(2rem, 4vw, 3.5rem);
}

/* Pager */
.pager {
    margin-top: 1.8rem;
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: .35rem;
    justify-content: center;
    font-family: var(--mono);
}
.pager .sep { color: var(--ink-faint); padding: 0 .3rem; }
.pager .chip { min-width: 2.2rem; justify-content: center; }

/* ============================================================
   SERVICE ICON — brutalist frame wrapping the real site favicon
   ============================================================ */
.ico {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: var(--surface);
    border: 1px solid var(--ink);
    border-radius: 3px;
    flex: none;
    overflow: hidden;
    position: relative;
}
.ico img {
    max-width: 66%;
    max-height: 66%;
    object-fit: contain;
    image-rendering: -webkit-optimize-contrast;
    display: block;
}

/* Sizes */
.ico--sm { width: 36px;  height: 36px;  box-shadow: 2px 2px 0 0 var(--ink); }
.ico--md { width: 48px;  height: 48px;  box-shadow: 3px 3px 0 0 var(--ink); }
.ico--lg { width: 80px;  height: 80px;  box-shadow: 4px 4px 0 0 var(--ink); }
.ico--xl { width: 104px; height: 104px; box-shadow: 5px 5px 0 0 var(--ink); }

/* Fallback text-tile (when no logo_url) */
.ico--tile {
    font-family: var(--mono);
    font-weight: 700;
    color: var(--orange);
    background: var(--ink);
}
.ico--tile.is-orange { background: var(--orange); color: #fff; }
.ico--tile.is-lime   { background: var(--lime);   color: var(--ink); }
.ico--tile.is-ghost  { background: var(--bg);     color: var(--ink); }
.ico--sm.ico--tile { font-size: 1rem; }
.ico--md.ico--tile { font-size: 1.3rem; }
.ico--lg.ico--tile { font-size: 2.2rem; }
.ico--xl.ico--tile { font-size: 2.8rem; }

/* ============================================================
   TRUST BADGES — legitimacy verdict
   ============================================================ */
.trust {
    display: inline-flex;
    align-items: center;
    gap: .4rem;
    padding: .22rem .55rem .22rem .45rem;
    font-family: var(--mono);
    font-size: .72rem;
    font-weight: 600;
    letter-spacing: .14em;
    text-transform: uppercase;
    border-radius: 2px;
    border: 1px solid var(--ink);
    line-height: 1;
    white-space: nowrap;
    vertical-align: middle;
}
.trust::before {
    content: '';
    width: 7px; height: 7px;
    border-radius: 50%;
    background: currentColor;
    box-shadow: 0 0 0 2px rgba(255,255,255,.35);
}

.trust.legit   { background: #0E8A4F; color: #fff; border-color: #0B6A3B; }
.trust.legit::before   { background: var(--lime); }
.trust.trusted { background: var(--lime); color: var(--ink); border-color: var(--ink); }
.trust.trusted::before { background: var(--forest, #14553A); }
.trust.caution { background: #F0C04B; color: var(--ink); border-color: var(--ink); }
.trust.caution::before { background: #B47306; }
.trust.risky   { background: var(--orange); color: #fff; border-color: var(--orange-ink); }
.trust.risky::before   { background: #FFEBDD; }
.trust.scam    { background: #C42333; color: #fff; border-color: #8A1420; }
.trust.scam::before    { background: #FFC9CF; }

/* Oversize variant for the detail-page hero */
.trust--xl {
    font-size: .86rem;
    padding: .52rem 1rem .52rem .85rem;
    letter-spacing: .2em;
    border-width: 2px;
    box-shadow: 4px 4px 0 0 var(--ink);
}
.trust--xl::before { width: 9px; height: 9px; }

/* Compact inline variant used inside listing rows / cards */
.trust--mini {
    font-size: .62rem;
    padding: .12rem .4rem .12rem .35rem;
    letter-spacing: .12em;
    border-width: 1px;
}
.trust--mini::before { width: 5px; height: 5px; }

/* ============================================================
   REVIEW DETAIL PAGE
   ============================================================ */

/* Breadcrumb strip */
.crumb {
    padding: 1rem 0;
    font-family: var(--mono);
    font-size: .74rem;
    color: var(--ink-muted);
    letter-spacing: .02em;
    border-bottom: 1px solid var(--rule-soft);
}
.crumb a { color: var(--ink); border-bottom: 1px solid transparent; }
.crumb a:hover { color: var(--orange); border-bottom-color: var(--orange); }
.crumb .sep { color: var(--ink-faint); margin: 0 .4rem; }
.crumb strong { color: var(--ink); font-weight: 500; }

/* Warning banner (risky / scam) */
.warn-banner {
    background: #C42333;
    color: #fff;
    border-block: 2px solid var(--ink);
    padding: 1rem var(--gutter);
    font-family: var(--mono);
    font-size: .86rem;
    letter-spacing: .01em;
    line-height: 1.5;
}
.warn-banner--risky { background: var(--orange); }
.warn-banner__inner {
    max-width: var(--col);
    margin-inline: auto;
    display: flex;
    align-items: center;
    gap: 1rem;
    flex-wrap: wrap;
}
.warn-banner__tag {
    display: inline-flex;
    align-items: center;
    gap: .4rem;
    background: #fff;
    color: #C42333;
    padding: .3rem .65rem;
    font-weight: 700;
    letter-spacing: .2em;
    border-radius: 2px;
    font-size: .74rem;
}
.warn-banner--risky .warn-banner__tag { color: var(--orange-ink); }

/* Review hero */
.review-hero {
    padding: clamp(2rem, 4.5vw, 3.5rem) 0 clamp(1.5rem, 3vw, 2.5rem);
    border-bottom: 1px solid var(--rule-soft);
}
.rh-grid {
    display: grid;
    grid-template-columns: 1fr;
    gap: 2rem;
    align-items: start;
}
@media (min-width: 900px) {
    .rh-grid { grid-template-columns: 1fr 20rem; }
}

.rh-head {
    display: flex;
    align-items: center;
    gap: 1.2rem;
    flex-wrap: wrap;
    margin-bottom: 1rem;
}
.rh-head .trust { font-size: .78rem; padding: .3rem .7rem .3rem .55rem; }

.rh-avatar {
    width: 5rem; height: 5rem;
    flex: none;
    background: var(--ink);
    color: var(--orange);
    border-radius: 3px;
    display: grid;
    place-items: center;
    font-family: var(--mono);
    font-weight: 700;
    font-size: 2rem;
    border: 1px solid var(--ink);
    box-shadow: 4px 4px 0 0 var(--orange);
    transform: rotate(-1.5deg);
}
.rh-avatar.is-orange { background: var(--orange); color: #fff; box-shadow: 4px 4px 0 0 var(--ink); }
.rh-avatar.is-lime   { background: var(--lime); color: var(--ink); box-shadow: 4px 4px 0 0 var(--ink); }
.rh-avatar.is-ghost  { background: var(--bg); color: var(--ink); box-shadow: 4px 4px 0 0 var(--ink); }

.rh-id { display: flex; gap: 1.2rem; align-items: flex-start; margin-bottom: 1.2rem; }
.rh-name {
    font-family: var(--display);
    font-weight: 700;
    font-size: clamp(2.2rem, 4.8vw, 3.4rem);
    line-height: 1;
    letter-spacing: -.03em;
    color: var(--ink);
    margin: 0 0 .35rem;
    text-wrap: balance;
}
.rh-sub {
    font-family: var(--body);
    font-size: 1.02rem;
    color: var(--ink-muted);
    margin: 0;
}

.rh-title {
    font-family: var(--display);
    font-weight: 600;
    font-style: italic;
    font-size: clamp(1.35rem, 2.1vw, 1.8rem);
    line-height: 1.25;
    color: var(--ink-2);
    margin: 0 0 1rem;
    max-width: 58ch;
    text-wrap: balance;
}

.rh-deck {
    font-size: clamp(1.05rem, 1.4vw, 1.18rem);
    line-height: 1.55;
    color: var(--ink-2);
    margin: 0 0 1.4rem;
    max-width: 62ch;
}

.rh-facts {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(10rem, 1fr));
    gap: 0;
    border: 1px solid var(--rule);
    background: var(--surface);
    margin-bottom: 1.2rem;
}
.rh-facts .f {
    padding: .85rem 1rem;
    border-right: 1px solid var(--rule-soft);
    border-bottom: 1px solid var(--rule-soft);
    position: relative;
}
.rh-facts .f:last-child { border-right: none; }
.rh-facts .f .k {
    font-family: var(--mono);
    font-size: .66rem;
    letter-spacing: .18em;
    text-transform: uppercase;
    color: var(--ink-muted);
    margin-bottom: .3rem;
    display: block;
}
.rh-facts .f .v {
    font-family: var(--display);
    font-weight: 700;
    font-size: 1.15rem;
    line-height: 1.1;
    color: var(--ink);
    letter-spacing: -.015em;
}
.rh-facts .f .v small {
    font-family: var(--mono);
    font-weight: 500;
    font-size: .72rem;
    color: var(--ink-muted);
    letter-spacing: .04em;
    margin-left: .15rem;
}

.rh-cta {
    display: flex;
    gap: .7rem;
    flex-wrap: wrap;
    align-items: center;
}
.rh-cta a {
    display: inline-flex;
    align-items: center;
    gap: .55rem;
    padding: .7rem 1.05rem;
    font-family: var(--mono);
    font-weight: 500;
    font-size: .82rem;
    border-radius: 2px;
    border: 1px solid var(--ink);
    transition: background .15s, color .15s, transform .15s, box-shadow .15s;
}
.rh-cta a.visit   { background: var(--ink); color: var(--bg); }
.rh-cta a.visit:hover { background: var(--orange); border-color: var(--orange); color: #fff; transform: translate(-1px,-1px); box-shadow: 3px 3px 0 0 var(--ink); }
.rh-cta a.onion   { background: var(--surface); color: var(--c-tor); border-color: var(--c-tor); }
.rh-cta a.onion:hover { background: var(--c-tor); color: #fff; }
.rh-cta a.ghost   { background: var(--surface); color: var(--ink); }
.rh-cta a.ghost:hover { background: var(--ink); color: var(--bg); }
.rh-cta a .prefix { color: var(--orange); margin-right: .05rem; }
.rh-cta a.visit:hover .prefix { color: #fff; }

/* Right column plate */
.rh-plate {
    background: var(--surface);
    border: 1px solid var(--rule);
    padding: 1.4rem 1.4rem 1.2rem;
    box-shadow: 6px 6px 0 0 var(--ink);
    position: relative;
}
.rh-plate::before {
    content: "Rubric Output";
    position: absolute;
    top: -.6rem;
    left: 1.1rem;
    background: var(--bg);
    padding: 0 .55rem;
    font-family: var(--mono);
    font-size: .7rem;
    letter-spacing: .22em;
    text-transform: uppercase;
    color: var(--orange);
    font-weight: 600;
}
.rh-plate .grade-hero-row {
    display: flex;
    align-items: center;
    gap: 1.1rem;
    margin-bottom: 1rem;
    padding-bottom: 1rem;
    border-bottom: 1px dashed var(--rule-soft);
}
.rh-plate .g-tile {
    width: 4.8rem; height: 4.8rem;
    flex: none;
    border: 1px solid var(--ink);
    border-radius: 3px;
    box-shadow: 3px 3px 0 0 var(--ink);
    display: grid;
    place-items: center;
    font-family: var(--display);
    font-weight: 800;
    font-size: 2.4rem;
    line-height: 1;
    color: var(--ink);
    background: var(--surface);
    letter-spacing: -.02em;
    padding: 0 .25rem;
}
/* Two-char grades (A+, A-, B+) — shrink so they don't crowd the tile */
.rh-plate .g-tile.aplus,
.rh-plate .g-tile.aminus,
.rh-plate .g-tile.bplus {
    font-size: 1.85rem;
    letter-spacing: -.04em;
}
.rh-plate .g-tile.aplus,
.rh-plate .g-tile.a     { background: var(--lime); }
.rh-plate .g-tile.aminus{ background: #E7F5B9; }
.rh-plate .g-tile.bplus,
.rh-plate .g-tile.b     { background: var(--surface); }
.rh-plate .g-tile.c     { background: #FFE8C2; }
.rh-plate .g-tile.d     { background: #FFCCA3; }
.rh-plate .g-tile.f     { background: #FFB3B3; }
.rh-plate .g-copy .k {
    font-family: var(--mono);
    font-size: .68rem;
    letter-spacing: .18em;
    text-transform: uppercase;
    color: var(--ink-muted);
    margin-bottom: .2rem;
}
.rh-plate .g-copy .v {
    font-family: var(--display);
    font-weight: 600;
    font-size: 1.05rem;
    line-height: 1.15;
    color: var(--ink);
}
.rh-plate .g-copy .sub {
    font-family: var(--mono);
    font-size: .7rem;
    color: var(--ink-muted);
    margin-top: .15rem;
    letter-spacing: .03em;
}

/* Trust summary blurb under the badge */
.trust-blurb {
    font-family: var(--body);
    font-size: .95rem;
    line-height: 1.5;
    color: var(--ink-2);
    margin: .9rem 0 0;
    padding-left: .75rem;
    border-left: 2px solid var(--orange);
}

/* Chains chips in hero */
.rh-chains { display: flex; flex-wrap: wrap; gap: .4rem; margin-bottom: 1rem; }

/* ==================================
   REVIEW BODY
   ================================== */
.review-body {
    padding: clamp(2rem, 4vw, 3.5rem) 0;
    border-bottom: 1px solid var(--rule-soft);
}
.rb-grid {
    display: grid;
    grid-template-columns: 1fr;
    gap: 2.5rem;
    align-items: start;
}
@media (min-width: 960px) {
    .rb-grid { grid-template-columns: minmax(0, 1fr) 20rem; gap: 3rem; }
}

.prose {
    font-family: var(--body);
    font-size: 1.08rem;
    line-height: 1.65;
    color: var(--ink);
    max-width: 66ch;
}
.prose > * + * { margin-top: 1em; }
.prose h1, .prose h2, .prose h3 {
    font-family: var(--display);
    letter-spacing: -.02em;
    color: var(--ink);
    line-height: 1.15;
    margin-top: 2.2rem;
    margin-bottom: .6rem;
}
.prose h1 { font-size: 2.1rem; font-weight: 700; }
.prose h2 {
    font-size: 1.55rem;
    font-weight: 700;
    padding-bottom: .3rem;
    border-bottom: 1px solid var(--rule-soft);
    display: flex;
    align-items: baseline;
    gap: .55rem;
}
.prose h2::before {
    content: counter(h2, decimal-leading-zero);
    counter-increment: h2;
    font-family: var(--mono);
    font-size: .7rem;
    font-weight: 500;
    color: var(--orange);
    letter-spacing: .1em;
    padding: .1rem .35rem;
    background: var(--orange-soft);
    border-radius: 2px;
    flex: none;
}
.prose h3 { font-size: 1.2rem; font-weight: 600; }
.prose p { margin: 0; }
.prose p + p { margin-top: 1em; }
.prose p strong { font-weight: 700; color: var(--ink); }
.prose em, .prose i { font-style: italic; color: var(--ink); }
.prose code {
    font-family: var(--mono);
    font-size: .86em;
    background: var(--bg-2);
    color: var(--orange-ink);
    padding: 2px 5px;
    border-radius: 2px;
    border: 1px solid var(--rule-soft);
}
.prose ul { list-style: none; padding-left: 0; }
.prose ul li {
    position: relative;
    padding-left: 1.6rem;
    margin: .4rem 0;
}
.prose ul li::before {
    content: '→';
    position: absolute;
    left: 0;
    color: var(--orange);
    font-family: var(--mono);
    font-weight: 500;
}
.prose blockquote {
    border-left: 3px solid var(--orange);
    padding: .25rem 0 .25rem 1.15rem;
    margin: 1.4rem 0;
    font-family: var(--display);
    font-style: italic;
    font-size: 1.18rem;
    line-height: 1.4;
    color: var(--ink-2);
}
.prose blockquote p { margin: 0; }
.prose a {
    color: var(--ink);
    background-image: linear-gradient(var(--orange), var(--orange));
    background-size: 100% 2px;
    background-position: 0 100%;
    background-repeat: no-repeat;
    padding-bottom: 1px;
}
.prose a:hover { color: var(--orange); background-size: 100% 100%; background-image: linear-gradient(var(--orange-soft), var(--orange-soft)); }

.prose { counter-reset: h2; }

/* ============================================================
   VERDICT.DIFF panel — unified pros/cons as a code-diff view
   ============================================================ */
.diff {
    margin: 2.5rem 0 1rem;
    border: 1px solid var(--rule);
    background: var(--surface);
    font-family: var(--mono);
    font-size: .88rem;
    line-height: 1.55;
    position: relative;
    overflow: hidden;
}
.diff__head {
    display: flex;
    align-items: center;
    gap: .9rem;
    flex-wrap: wrap;
    padding: .7rem 1rem;
    background: var(--ink);
    color: var(--bg);
    border-bottom: 1px solid var(--ink);
    font-size: .76rem;
    letter-spacing: .06em;
}
.diff__dots {
    display: inline-flex; gap: 5px;
}
.diff__dots span { width: 9px; height: 9px; border-radius: 50%; background: #4a4a52; }
.diff__dots span:nth-child(1) { background: #ff5c5c; }
.diff__dots span:nth-child(2) { background: #ffbd44; }
.diff__dots span:nth-child(3) { background: #28ca42; }
.diff__file { color: var(--bg); }
.diff__file b { color: var(--orange-2); font-weight: 500; }
.diff__count {
    margin-left: auto;
    display: inline-flex;
    gap: .55rem;
    font-size: .72rem;
    color: var(--ink-faint);
}
.diff__count .plus  { color: #9DE053; }
.diff__count .minus { color: #FF8A65; }

.diff__body { padding: .2rem 0; }

.diff__hunk {
    font-family: var(--mono);
    font-size: .72rem;
    letter-spacing: .04em;
    color: var(--ink-muted);
    padding: .55rem 1rem .35rem;
    background: var(--bg-2);
    border-top: 1px dashed var(--rule-soft);
    border-bottom: 1px dashed var(--rule-soft);
    text-transform: lowercase;
}
.diff__hunk::before, .diff__hunk::after { content: '@@'; color: var(--orange); margin: 0 .35rem; font-weight: 600; }
.diff__body > .diff__hunk:first-child { border-top: none; }

.diff__row {
    display: grid;
    grid-template-columns: 2.2rem 2.2rem 1fr;
    align-items: flex-start;
    gap: .3rem;
    padding: .45rem 1rem;
    border-bottom: 1px solid var(--rule-soft);
    transition: background .12s;
}
.diff__row:last-child { border-bottom: none; }
.diff__row:hover { background: var(--bg-2); }

.diff__sign {
    font-family: var(--mono);
    font-weight: 700;
    font-size: 1rem;
    line-height: 1.4;
    text-align: center;
}
.diff__row.plus  { background: linear-gradient(90deg, rgba(196,245,66,.18) 0%, transparent 40%); }
.diff__row.plus:hover { background: linear-gradient(90deg, rgba(196,245,66,.28) 0%, rgba(196,245,66,.08) 100%); }
.diff__row.plus  .diff__sign { color: var(--forest, #175A34); }

.diff__row.minus { background: linear-gradient(90deg, rgba(209,74,31,.12) 0%, transparent 40%); }
.diff__row.minus:hover { background: linear-gradient(90deg, rgba(209,74,31,.20) 0%, rgba(209,74,31,.05) 100%); }
.diff__row.minus .diff__sign { color: var(--orange-ink); }

.diff__num {
    font-family: var(--mono);
    font-size: .72rem;
    color: var(--ink-faint);
    padding-top: .15rem;
    letter-spacing: .02em;
}
.diff__txt {
    font-family: var(--body);
    font-size: .98rem;
    line-height: 1.5;
    color: var(--ink);
    word-wrap: break-word;
}
.diff__txt strong { color: var(--ink); font-weight: 700; }

@media (max-width: 640px) {
    .diff__row { grid-template-columns: 1.7rem 1.7rem 1fr; gap: .2rem; padding: .45rem .7rem; }
    .diff__head { padding: .6rem .8rem; }
    .diff__hunk { padding: .5rem .8rem .35rem; }
}

/* Verdict panel */
.verdict-panel {
    margin: 2rem 0 0;
    padding: 1.4rem 1.4rem;
    background: var(--ink);
    color: var(--bg);
    border: 1px solid var(--ink);
    box-shadow: 6px 6px 0 0 var(--orange);
    position: relative;
}
.verdict-panel::before {
    content: "Verdict";
    position: absolute;
    top: -.55rem;
    left: 1rem;
    background: var(--orange);
    color: #fff;
    padding: .15rem .55rem;
    font-family: var(--mono);
    font-size: .7rem;
    font-weight: 600;
    letter-spacing: .2em;
    text-transform: uppercase;
}
.verdict-panel p {
    font-family: var(--body);
    font-size: 1.05rem;
    line-height: 1.55;
    margin: 0;
    color: var(--bg);
}
.verdict-panel strong { color: var(--lime); font-weight: 700; }

/* =============================
   Sidebar (rubric + attrs + meta)
   ============================= */
.rb-side {
    position: sticky;
    top: 74px;
    display: grid;
    gap: 1.2rem;
}

.side-card {
    background: var(--surface);
    border: 1px solid var(--rule);
    padding: 1.2rem 1.15rem 1rem;
    position: relative;
}
.side-card > h3 {
    font-family: var(--mono);
    font-size: .7rem;
    letter-spacing: .2em;
    text-transform: uppercase;
    color: var(--orange);
    font-weight: 600;
    margin: 0 0 .9rem;
}
.side-card > h3::before { content: '// '; color: var(--ink); }

.rubric-list { display: grid; gap: .7rem; }
.rubric-row { display: grid; grid-template-columns: 1fr auto; align-items: baseline; gap: .5rem; }
.rubric-row .k {
    font-family: var(--mono);
    font-size: .74rem;
    letter-spacing: .04em;
    color: var(--ink);
    text-transform: uppercase;
}
.rubric-row .v {
    font-family: var(--display);
    font-weight: 700;
    font-size: 1rem;
    color: var(--ink);
    letter-spacing: -.02em;
    line-height: 1;
}
.rubric-row .v small {
    font-family: var(--mono);
    font-weight: 500;
    font-size: .65rem;
    color: var(--ink-muted);
    letter-spacing: .06em;
}
.rubric-row .g {
    grid-column: 1 / -1;
    height: 5px;
    background: var(--bg-2);
    border: 1px solid var(--rule-soft);
    border-radius: 2px;
    overflow: hidden;
    margin-top: 3px;
}
.rubric-row .g > span { display: block; height: 100%; position: relative; }
.rubric-row.privacy .g > span { background: var(--lime-deep); }
.rubric-row.custody .g > span { background: var(--ink); }
.rubric-row.transparency .g > span { background: var(--orange); }
.rubric-row.track .g > span { background: #6B8E3D; }
.rubric-row.ops .g > span { background: var(--c-eth); }

.attr-list {
    display: grid;
    gap: .35rem;
}
.attr-row {
    display: grid;
    grid-template-columns: 1.4rem 1fr auto;
    align-items: start;
    gap: .5rem;
    font-family: var(--body);
    font-size: .88rem;
    line-height: 1.35;
    padding: .3rem 0;
    border-bottom: 1px dashed var(--rule-soft);
}
.attr-row:last-child { border-bottom: none; }
.attr-row .mark {
    font-family: var(--mono);
    font-weight: 700;
    text-align: center;
    line-height: 1.2;
}
.attr-row.pos .mark { color: var(--forest, #14553A); }
.attr-row.neu .mark { color: var(--ink-muted); }
.attr-row.neg .mark { color: var(--orange-ink); }
.attr-row .note {
    font-family: var(--mono);
    font-size: .66rem;
    color: var(--ink-muted);
    letter-spacing: .04em;
}

.meta-list {
    font-family: var(--mono);
    font-size: .74rem;
    display: grid;
    gap: .4rem;
}
.meta-list .row { display: flex; justify-content: space-between; gap: .5rem; align-items: baseline; }
.meta-list .row .k { color: var(--ink-muted); text-transform: uppercase; letter-spacing: .08em; font-size: .65rem; }
.meta-list .row .v { color: var(--ink); text-align: right; }

.corrections-list { list-style: none; padding: 0; margin: 0; font-family: var(--mono); font-size: .76rem; display: grid; gap: .5rem; }
.corrections-list li {
    padding: .5rem .6rem;
    background: var(--bg-2);
    border-left: 2px solid var(--orange);
    border-radius: 0 2px 2px 0;
    color: var(--ink-2);
    line-height: 1.4;
}
.corrections-list li .d { color: var(--ink-muted); font-size: .7rem; display: block; margin-top: .2rem; }
.corrections-list.empty { font-style: italic; color: var(--ink-muted); }
.corrections-list.empty li { background: transparent; border-left: none; padding: 0; }

/* Related reviews (bottom of detail page) */
.related { padding: clamp(2rem, 4vw, 3rem) 0; }

/* 404 block */
.not-found {
    padding: clamp(3rem, 8vw, 6rem) var(--gutter);
    text-align: center;
    font-family: var(--mono);
}
.not-found h1 {
    font-family: var(--display);
    font-weight: 700;
    font-size: clamp(2.4rem, 5vw, 4rem);
    letter-spacing: -.03em;
    margin: 0 0 1rem;
    color: var(--ink);
}
.not-found h1 em { color: var(--orange); font-style: italic; }
.not-found p { max-width: 50ch; margin: 0 auto 1.5rem; color: var(--ink-muted); font-size: 1rem; line-height: 1.55; }
.not-found .code { color: var(--orange-ink); background: var(--bg-2); padding: 2px 6px; border: 1px solid var(--rule-soft); border-radius: 2px; }

/* ============================================================
   DISPATCHES — card grid
   ============================================================ */
.cards {
    display: grid;
    grid-template-columns: 1fr;
    gap: 1rem;
}
@media (min-width: 680px) { .cards { grid-template-columns: 1fr 1fr; } }
@media (min-width: 1040px) { .cards { grid-template-columns: repeat(3, 1fr); } }

.card {
    background: var(--surface);
    border: 1px solid var(--rule);
    padding: 0;
    display: flex;
    flex-direction: column;
    transition: transform .18s, box-shadow .18s;
    position: relative;
    overflow: hidden;
}
.card:hover { transform: translate(-2px, -2px); box-shadow: 6px 6px 0 0 var(--ink); }
.card:hover .card__title { color: var(--orange); }
.card:hover .card__read  { color: var(--orange); gap: .7rem; }

/* Top strip: icon + service + verdict stamp */
.card__top {
    display: grid;
    grid-template-columns: auto 1fr auto;
    align-items: center;
    gap: .9rem;
    padding: 1rem 1.2rem .7rem;
    border-bottom: 1px solid var(--rule-soft);
}
.card__svc { min-width: 0; }
.card__name {
    font-family: var(--display);
    font-weight: 700;
    font-size: 1.05rem;
    letter-spacing: -.015em;
    color: var(--ink);
    line-height: 1.1;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}
.card__sub {
    font-family: var(--mono);
    font-size: .68rem;
    color: var(--ink-muted);
    letter-spacing: .06em;
    margin-top: .2rem;
    text-transform: uppercase;
}
.card__sub .dot { color: var(--ink-faint); margin: 0 .35rem; }

/* Stamp combines grade + trust into a unified "verdict" block */
.card__stamp {
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    gap: .3rem;
    flex: none;
}

/* Middle: title + deck */
.card__mid { padding: 1rem 1.2rem 1.1rem; display: flex; flex-direction: column; gap: .55rem; flex: 1; }
.card__title {
    font-family: var(--display);
    font-weight: 700;
    font-size: 1.18rem;
    line-height: 1.18;
    letter-spacing: -.018em;
    margin: 0;
    color: var(--ink);
    text-wrap: balance;
    transition: color .15s;
    display: -webkit-box;
    -webkit-line-clamp: 3;
    -webkit-box-orient: vertical;
    overflow: hidden;
}
.card__deck {
    font-family: var(--body);
    font-size: .94rem;
    line-height: 1.5;
    color: var(--ink-muted);
    margin: 0;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

/* Foot: svc:// address + read CTA */
.card__foot {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 1rem;
    padding: .75rem 1.2rem;
    border-top: 1px dashed var(--rule-soft);
    background: var(--bg);
}
.card__foot .addr {
    font-family: var(--mono);
    font-size: .7rem;
    color: var(--ink-muted);
    letter-spacing: .01em;
    min-width: 0;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}
.card__foot .addr b { color: var(--orange-ink); font-weight: 500; }
.card__read {
    font-family: var(--mono);
    font-size: .74rem;
    font-weight: 600;
    letter-spacing: .08em;
    color: var(--ink);
    text-transform: uppercase;
    display: inline-flex;
    align-items: center;
    gap: .4rem;
    transition: color .15s, gap .15s;
    white-space: nowrap;
}

.gr-mini {
    font-family: var(--mono);
    font-weight: 700;
    font-size: 1rem;
    padding: .25rem .55rem;
    border: 1px solid var(--ink);
    border-radius: 2px;
    background: var(--surface);
    color: var(--ink);
    letter-spacing: -.02em;
    line-height: 1;
    box-shadow: 2px 2px 0 0 var(--ink);
    min-width: 2.6rem;
    text-align: center;
    display: inline-block;
}
.gr-mini.aplus, .gr-mini.a { background: var(--lime); }
.gr-mini.aminus { background: #E7F5B9; }
.gr-mini.bplus, .gr-mini.b { background: var(--surface); }
.gr-mini.c { background: #FFE8C2; }
.gr-mini.d { background: #FFCCA3; }
.gr-mini.f { background: #FFB3B3; }

/* ============================================================
   DEPARTMENTS — clickable category tiles
   ============================================================ */
.depts {
    display: grid;
    grid-template-columns: 1fr;
    gap: 0;
    border: 1px solid var(--rule);
    background: var(--surface);
}
@media (min-width: 640px)  { .depts { grid-template-columns: 1fr 1fr; } }
@media (min-width: 1040px) { .depts { grid-template-columns: repeat(4, 1fr); } }

.dept {
    padding: 1.4rem;
    border-right: 1px solid var(--rule-soft);
    border-bottom: 1px solid var(--rule-soft);
    transition: background .15s;
    position: relative;
    display: flex;
    flex-direction: column;
    gap: .4rem;
    min-height: 11rem;
}
.dept:hover { background: var(--bg-2); }
.dept:hover h3 { color: var(--orange); }
.dept:hover .arr { transform: translateX(4px); color: var(--orange); }

.dept__hash {
    font-family: var(--mono);
    font-size: .7rem;
    letter-spacing: .1em;
    color: var(--orange);
    font-weight: 500;
}
.dept h3 {
    font-family: var(--display);
    font-weight: 700;
    font-size: 1.25rem;
    letter-spacing: -.02em;
    color: var(--ink);
    margin: 0;
    transition: color .15s;
}
.dept p {
    margin: 0;
    font-size: .88rem;
    line-height: 1.45;
    color: var(--ink-muted);
}
.dept__foot {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-top: auto;
    padding-top: .6rem;
    font-family: var(--mono);
    font-size: .72rem;
    color: var(--ink);
    letter-spacing: .05em;
}
.dept__foot .arr { transition: transform .15s, color .15s; }

/* ============================================================
   MANIFESTO — compact boxed card (ink on paper, brutalist shadow)
   ============================================================ */
.manifesto {
    padding: clamp(1.5rem, 3vw, 2.5rem) 0;
    position: relative;
}

.mf-card {
    position: relative;
    background: var(--ink);
    color: var(--bg);
    padding: clamp(1.5rem, 3vw, 2.2rem) clamp(1.5rem, 3vw, 2.4rem);
    border-radius: 4px;
    border: 1px solid var(--ink);
    box-shadow: 6px 6px 0 0 var(--orange);
    overflow: hidden;
    isolation: isolate;
}

/* Subtle dots texture inside the card */
.mf-card::before {
    content: '';
    position: absolute;
    inset: 0;
    background-image: radial-gradient(circle, rgba(255,255,255,.07) 1px, transparent 1px);
    background-size: 22px 22px;
    pointer-events: none;
    z-index: 0;
}

/* Subtle orange glow in one corner */
.mf-card::after {
    content: '';
    position: absolute;
    top: -30%; right: -20%;
    width: 60%; height: 160%;
    background: radial-gradient(circle, rgba(209,74,31,.22) 0, transparent 60%);
    pointer-events: none;
    z-index: 0;
}

.mf-card > * { position: relative; z-index: 1; }

/* Card top row: tag + verified pill */
.mf-card__top {
    display: flex;
    justify-content: space-between;
    align-items: center;
    flex-wrap: wrap;
    gap: .7rem 1rem;
    margin-bottom: 1rem;
    padding-bottom: .85rem;
    border-bottom: 1px dashed rgba(255,255,255,.16);
}

.mf-tag {
    font-family: var(--mono);
    font-size: .7rem;
    letter-spacing: .2em;
    text-transform: uppercase;
    color: var(--lime);
    font-weight: 600;
    display: inline-flex;
    align-items: center;
    gap: .5rem;
}
.mf-tag .dot {
    width: 7px; height: 7px; border-radius: 50%;
    background: var(--lime);
    box-shadow: 0 0 0 3px rgba(196,245,66,.25);
    animation: pulse 1.6s ease-out infinite;
}
.mf-tag::before { content: '['; color: var(--orange-2); }
.mf-tag::after  { content: ']'; color: var(--orange-2); }

.mf-verify {
    display: inline-flex;
    align-items: center;
    gap: .4rem;
    padding: .25rem .6rem .25rem .45rem;
    background: rgba(196,245,66,.1);
    border: 1px solid rgba(196,245,66,.35);
    border-radius: 99px;
    color: var(--lime);
    font-family: var(--mono);
    font-size: .66rem;
    font-weight: 600;
    letter-spacing: .16em;
    text-transform: uppercase;
    white-space: nowrap;
}
.mf-verify::before {
    content: '✓';
    display: inline-grid;
    place-items: center;
    width: 15px; height: 15px;
    background: var(--lime);
    color: var(--ink);
    border-radius: 50%;
    font-size: .68rem;
    font-weight: 700;
    line-height: 1;
}

/* Headline + paragraph */
.mf-card h2 {
    font-family: var(--display);
    font-weight: 700;
    font-size: clamp(1.35rem, 2.4vw, 1.85rem);
    line-height: 1.1;
    letter-spacing: -.02em;
    margin: 0 0 .75rem;
    color: var(--bg);
    max-width: 32ch;
    text-wrap: balance;
}
.mf-card h2 em {
    font-style: italic;
    color: var(--orange-2);
    font-weight: 700;
}

.mf-card p {
    font-family: var(--body);
    font-size: 1rem;
    line-height: 1.55;
    color: rgba(250,249,245,.78);
    margin: 0 0 1rem;
    max-width: 72ch;
}
.mf-card p strong {
    color: var(--bg);
    font-weight: 500;
    background: linear-gradient(transparent 62%, rgba(209,74,31,.45) 62%, rgba(209,74,31,.45) 92%, transparent 92%);
    padding: 0 .08em;
}

/* One-line signature */
.mf-sign {
    padding-top: .85rem;
    border-top: 1px dashed rgba(255,255,255,.16);
    font-family: var(--mono);
    font-size: .7rem;
    color: rgba(250,249,245,.55);
    line-height: 1.5;
    letter-spacing: .02em;
    word-break: break-word;
}
.mf-sign .name { color: var(--bg); font-weight: 500; }
.mf-sign .sep  { color: var(--orange-2); margin: 0 .2em; }
.mf-sign b     { color: var(--lime); font-weight: 400; letter-spacing: .04em; }

@media (prefers-reduced-motion: reduce) {
    .mf-tag .dot { animation: none !important; }
}

/* ============================================================
   SUBSCRIBE strip
   ============================================================ */
.subscribe {
    padding: clamp(3rem, 6vw, 5rem) 0;
    border-top: 1px solid var(--rule);
}
.subscribe__inner {
    background: var(--surface);
    border: 1px solid var(--rule);
    padding: clamp(2rem, 4vw, 3rem);
    box-shadow: 8px 8px 0 0 var(--ink);
    display: grid;
    grid-template-columns: 1fr;
    gap: 2rem;
}
@media (min-width: 860px) { .subscribe__inner { grid-template-columns: 1.1fr 1fr; align-items: center; } }

.subscribe h2 {
    font-family: var(--display);
    font-weight: 700;
    font-size: clamp(1.7rem, 3.2vw, 2.4rem);
    line-height: 1.05;
    letter-spacing: -.02em;
    margin: 0 0 .6rem;
    text-wrap: balance;
}
.subscribe h2 em { color: var(--orange); font-style: italic; font-weight: 600; }
.subscribe p { margin: 0; color: var(--ink-muted); max-width: 44ch; line-height: 1.55; }

.prompt-form {
    background: var(--ink);
    padding: .9rem 1rem;
    border-radius: 3px;
    font-family: var(--mono);
    display: flex;
    align-items: center;
    gap: .6rem;
    color: var(--bg);
    font-size: .88rem;
    border: 1px solid var(--ink);
    box-shadow: 4px 4px 0 0 var(--orange);
    flex-wrap: wrap;
}
.prompt-form .pr { color: var(--lime); font-weight: 600; white-space: nowrap; }
.prompt-form .cmd { color: var(--ink-faint); white-space: nowrap; }
.prompt-form input {
    flex: 1;
    min-width: 10rem;
    background: transparent;
    border: none;
    outline: none;
    color: var(--bg);
    font-family: var(--mono);
    font-size: .88rem;
    padding: 0;
    caret-color: var(--lime);
}
.prompt-form input::placeholder { color: rgba(250,249,245,.4); }
.prompt-form button {
    background: var(--orange);
    color: #fff;
    border: none;
    padding: .55rem 1rem;
    font-family: var(--mono);
    font-weight: 600;
    font-size: .8rem;
    letter-spacing: .03em;
    cursor: pointer;
    border-radius: 2px;
    transition: background .15s;
}
.prompt-form button:hover { background: var(--lime); color: var(--ink); }
.prompt-form small {
    flex-basis: 100%;
    color: var(--ink-faint);
    font-size: .7rem;
    letter-spacing: .01em;
    margin-top: .4rem;
}

/* ============================================================
   FOOTER
   ============================================================ */
.footer {
    padding: clamp(3rem, 5vw, 4rem) 0 1.6rem;
    border-top: 1px solid var(--rule);
    font-family: var(--sans);
    font-size: .88rem;
    color: var(--ink-muted);
    background: var(--bg-2);
}
.footer__grid {
    display: grid;
    grid-template-columns: 1fr;
    gap: 2.2rem;
    padding-block-end: 2rem;
    border-bottom: 1px solid var(--rule-soft);
}
@media (min-width: 760px) { .footer__grid { grid-template-columns: 1.5fr 1fr 1fr 1fr; gap: 3rem; } }

.footer__brand .mark {
    display: inline-flex;
    align-items: center;
    gap: .55rem;
    font-family: var(--display);
    font-weight: 700;
    font-size: 1.3rem;
    letter-spacing: -.02em;
    color: var(--ink);
}
.footer__brand .mark .slash { color: var(--orange); }
.footer__brand p { margin: .8rem 0 0; line-height: 1.55; max-width: 38ch; }

.footer h4 {
    font-family: var(--mono);
    font-size: .7rem;
    letter-spacing: .14em;
    text-transform: uppercase;
    color: var(--ink);
    font-weight: 600;
    margin: 0 0 .9rem;
}
.footer h4::before { content: '// '; color: var(--orange); }
.footer ul { list-style: none; padding: 0; margin: 0; display: grid; gap: .45rem; }
.footer ul a { color: var(--ink-2); transition: color .15s; }
.footer ul a:hover { color: var(--orange); }

.colophon {
    padding-top: 1.2rem;
    display: flex;
    justify-content: space-between;
    align-items: center;
    flex-wrap: wrap;
    gap: 1rem;
    font-family: var(--mono);
    font-size: .7rem;
    color: var(--ink-muted);
    letter-spacing: .02em;
}
.colophon code { color: var(--orange-ink); background: var(--surface); padding: 2px 6px; border: 1px solid var(--rule-soft); border-radius: 2px; }

/* ============================================================
   Page-load reveal
   ============================================================ */
@keyframes rise { from { opacity: 0; transform: translateY(14px); } to { opacity: 1; transform: none; } }
.hero__badge, .hero__h1, .hero__annot, .stats, .feature {
    opacity: 0;
    animation: rise .7s cubic-bezier(.2,.7,.2,1) forwards;
}
.hero__badge { animation-delay: .04s; }
.hero__h1    { animation-delay: .1s; }
.hero__annot { animation-delay: .22s; }
.stats       { animation-delay: .3s;  }
.feature     { animation-delay: .42s; }

@media (prefers-reduced-motion: reduce) {
    *, *::before, *::after { animation: none !important; transition: none !important; }
    .ribbon__inner { animation: none; }
}

/* ============================================================
   Small screens — mobile nav sheet + hamburger
   ============================================================ */
@media (max-width: 920px) {
    /* Masthead compacts to logo + hamburger on mobile. */
    .mast-inner {
        grid-template-columns: auto auto;
        justify-content: space-between;
        gap: 1rem;
        padding: .7rem var(--gutter);
        min-height: 3.5rem;
    }
    .logo { font-size: 1.1rem; }
    .mast-nav   { display: none; }
    .mast-tools { display: none; }
    .hamburger  { display: inline-block; }

    /* Single-column lang grid on narrow devices */
    @media (max-width: 380px) {
        .sheet__langgrid { grid-template-columns: 1fr; }
    }

    /* Open state — hamburger → X, sheet slides in, body scroll locks. */
    .nav-cb:checked ~ .masthead .hamburger {
        background: var(--ink);
        border-color: var(--ink);
        box-shadow: 2px 2px 0 0 var(--orange);
    }
    .nav-cb:checked ~ .masthead .hamburger:active {
        box-shadow: 1px 1px 0 0 var(--orange);
    }
    .nav-cb:checked ~ .masthead .hamburger__line { background: var(--bg); }
    .nav-cb:checked ~ .masthead .hamburger__line:nth-child(1) {
        top: 21px;
        transform: translateX(-50%) rotate(45deg);
    }
    .nav-cb:checked ~ .masthead .hamburger__line:nth-child(2) {
        opacity: 0;
        transform: translateX(-50%) scaleX(0);
    }
    .nav-cb:checked ~ .masthead .hamburger__line:nth-child(3) {
        top: 21px;
        transform: translateX(-50%) rotate(-45deg);
    }
    .nav-cb:checked ~ .sheet {
        transform: translateY(0);
        opacity: 1;
        visibility: visible;
        transition:
            transform .3s cubic-bezier(.4, 0, .2, 1),
            opacity   .2s ease-out,
            visibility 0s linear 0s;
    }
}

/* Hamburger is mobile-only; hide the sheet on desktop entirely. */
@media (min-width: 921px) {
    .sheet { display: none !important; }
}

/* Lock scroll while the sheet is open. Pure-CSS (no JS). */
html:has(.nav-cb:checked),
body:has(.nav-cb:checked) {
    overflow: hidden;
}

/* Honour reduced-motion */
@media (prefers-reduced-motion: reduce) {
    .sheet, .hamburger__line { transition: none !important; }
}

@media (max-width: 720px) {
    :root { --gutter: clamp(.8rem, 4vw, 1.4rem); }

    /* Board → card stack on mobile */
    .board {
        display: grid;
        gap: .55rem;
        border: none;
        background: transparent;
        overflow: visible;
    }
    .board__head { display: none; }
    .board__row {
        position: relative;
        display: grid;
        grid-template-columns: 1fr auto;
        grid-template-areas:
            "svc    stamp"
            "chains chains"
            "kyc    rank"
        ;
        gap: .6rem .9rem;
        padding: .95rem 1rem;
        background: var(--surface);
        border: 1px solid var(--rule-soft);
        border-radius: 6px;
        align-items: start;
        transition: border-color .15s, transform .15s;
    }
    .board__row:hover {
        background: var(--surface);
        border-color: var(--ink);
        transform: none;
    }
    .board__row:active { transform: translateY(1px); }

    .board__rank {
        grid-area: rank;
        font-size: .64rem;
        font-family: var(--mono);
        color: var(--ink-faint);
        letter-spacing: .08em;
        justify-self: end;
        align-self: end;
    }
    .board__rank b { color: var(--ink-muted); }
    .board__svc  { grid-area: svc; display: flex; align-items: flex-start; gap: .7rem; min-width: 0; }
    .board__body { flex: 1; min-width: 0; }

    /* Stack grade + trust into one right-side stamp column */
    .gr {
        grid-area: stamp;
        min-width: 2.9rem;
        font-size: 1.25rem;
        padding: .35rem .55rem;
        justify-self: end;
        align-self: start;
    }
    .board__kyc {
        grid-area: kyc;
        justify-self: start;
        font-size: .66rem;
        padding: .2rem .5rem;
    }
    .board__chains {
        grid-area: chains;
        gap: .3rem;
        flex-wrap: wrap;
    }

    .board__name { font-size: 1rem; line-height: 1.2; }
    .board__name > span:first-child > span { display: none; }  /* hide long "— sub" */
    .board__meta { font-size: .66rem; margin-top: 3px; }
    .board__meta .addr,
    .board__meta .sep:nth-of-type(1) { display: none; }

    /* Chains on mobile: smaller chips */
    .board__chains .chain { font-size: .64rem; padding: .12rem .4rem .12rem .35rem; }
    .board__chains .chain::before { width: 5px; height: 5px; }

    /* Feature/lead responsiveness */
    .feature__grade { flex-direction: row; align-items: center; gap: .9rem; }
    .feature__grade-tile { width: 4.2rem; height: 4.2rem; font-size: 2.2rem; }
    .feature__grade-tile.aplus,
    .feature__grade-tile.aminus,
    .feature__grade-tile.bplus { font-size: 1.55rem; }

    /* Review hero */
    .rh-head { gap: .55rem; }
    .rh-head .trust--xl { font-size: .72rem; padding: .4rem .7rem .4rem .6rem; box-shadow: 3px 3px 0 0 var(--ink); }
    .rh-head .gr { min-width: 2.8rem; font-size: 1.15rem; }
    .rh-head .board__kyc { font-size: .66rem; padding: .25rem .5rem; }
    .rh-id { gap: .8rem; }
    .rh-name { font-size: clamp(1.7rem, 6.5vw, 2.4rem); }
    .rh-facts { grid-template-columns: 1fr 1fr; }
    .rh-cta { gap: .45rem; }
    .rh-cta a { padding: .65rem .8rem; font-size: .74rem; flex: 1 0 auto; justify-content: center; }
    .rh-cta a.ghost { display: none; }

    .ico--xl { width: 72px; height: 72px; box-shadow: 3px 3px 0 0 var(--ink); }

    /* Sidebar becomes inline below on mobile (grid already handles this) */
    .rb-side { position: static; }

    /* Cards tighter */
    .card__top { padding: .8rem .9rem .55rem; gap: .65rem; }
    .card__mid { padding: .85rem .9rem 1rem; }
    .card__foot { padding: .65rem .9rem; }
    .card__name { font-size: .98rem; }
    .card__sub  { font-size: .62rem; }
    .card__title { font-size: 1.05rem; }
    .card__deck  { font-size: .88rem; -webkit-line-clamp: 3; }

    /* Trust XL spacing */
    .warn-banner__inner { font-size: .78rem; }
    .warn-banner__tag { font-size: .7rem; }

    /* Subscribe form stacked */
    .prompt-form { flex-direction: column; align-items: stretch; }
    .prompt-form input { width: 100%; }
    .prompt-form button { margin-top: .4rem; }

    /* Hero H1 scales */
    .hero__h1 { max-width: 100%; }
    .hero__annot { max-width: 100%; }

    /* Manifesto */
    .manifesto p { font-size: .95rem; }

    /* Page head title stacks */
    .page-head__inner { grid-template-columns: 1fr; gap: .8rem; }

    /* Res-meta wrap */
    .res-meta { flex-direction: column; align-items: flex-start; gap: .5rem; padding: .9rem 0 .8rem; }

    /* Diff panel padding */
    .diff__head { padding: .55rem .75rem; gap: .5rem; font-size: .7rem; }
    .diff__file { font-size: .72rem; }
    .diff__count { gap: .4rem; flex-basis: 100%; justify-content: flex-end; }

    /* Prose heading icons */
    .prose h2 { font-size: 1.35rem; gap: .4rem; flex-wrap: wrap; }
    .prose { font-size: 1rem; }
}

@media (max-width: 420px) {
    .hero__h1 { font-size: clamp(1.9rem, 11vw, 2.6rem); }
    .rh-name  { font-size: 1.65rem; }
    .mast-strip,
    .mast-plate { display: none; }  /* Drop legacy editorial blocks if present */
    .ico--xl { width: 64px; height: 64px; }
    .ico--xl.ico--tile { font-size: 2.1rem; }
    .trust--xl { font-size: .7rem; padding: .35rem .6rem .35rem .5rem; letter-spacing: .16em; }
    .logo { font-size: 1rem; }
    .logo__mark { width: 24px; height: 24px; font-size: .74rem; }
}
