/* Sentinel by Lucidity v2 · dark premium. Red-to-black gradient, glowing hex mesh, Stoop Hawk, bold Nunito + Inter.
   Dark is the default; [data-theme=light] is the optional light skin. No emoji, no template icon sets. */
@font-face{font-family:"Inter";src:url(fonts/Inter-latin.woff2) format("woff2");font-weight:400 700;font-display:swap}
@font-face{font-family:"Nunito";src:url(fonts/Nunito-latin.woff2) format("woff2");font-weight:600 900;font-display:swap}
[hidden]{display:none!important}
:root{
 --bg0:#0b0406;--bg1:#14060a;--bg2:#3a0a12;--bg3:#7d0d18;
 --card:rgba(26,10,14,.78);--card-2:rgba(38,14,19,.86);--card-solid:#1b0a0e;--line:rgba(255,120,130,.14);--line-2:rgba(255,120,130,.26);
 --ink:#fbf2f3;--ink-2:#e6d3d6;--muted:#b9a0a5;--faint:#8d7277;
 --red:#ff3b4e;--red-2:#ff6b78;--red-d:#b3121f;--glow:0 0 0 1px rgba(255,59,78,.35),0 0 28px -4px rgba(255,59,78,.55);
 --hi:#ff5468;--mid:#ffb547;--lo:#3fdc9a;--hi-bg:rgba(255,84,104,.14);--mid-bg:rgba(255,181,71,.13);--lo-bg:rgba(63,220,154,.12);
 --chip:rgba(255,255,255,.06);--chip-ln:rgba(255,255,255,.12);
 --ic-bg:rgba(255,59,78,.14);--ic-ln:#ffd5d9;--ic-ac:#ff4a5c;--ic-ac2:#7d0d18;--ic-rim:rgba(255,120,130,.25);
 --shadow:0 24px 60px -30px #000,0 2px 0 rgba(255,255,255,.03) inset;--r:20px;
 --font:"Inter",ui-sans-serif,system-ui,-apple-system,"Segoe UI",Roboto,Arial,sans-serif;--head:"Nunito","Inter",ui-rounded,system-ui,sans-serif;
 --mono:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;--measure:68ch;
 color-scheme:dark}
[data-theme=light]{
 --bg0:#fff7f7;--bg1:#fff;--bg2:#fde8ea;--bg3:#f7c9ce;
 --card:rgba(255,255,255,.9);--card-2:#fff;--card-solid:#fff;--line:rgba(125,13,24,.12);--line-2:rgba(125,13,24,.24);
 --ink:#1f0d10;--ink-2:#3d2328;--muted:#6e5257;--faint:#8f7378;
 --red:#c8102e;--red-2:#a50e25;--red-d:#8f0d16;--glow:0 0 0 1px rgba(200,16,46,.25),0 10px 30px -12px rgba(200,16,46,.45);
 --hi:#c4122b;--mid:#a35a00;--lo:#127a4a;--hi-bg:#fdecee;--mid-bg:#fff2dd;--lo-bg:#e6f6ee;
 --chip:#fff;--chip-ln:rgba(125,13,24,.16);
 --ic-bg:#fdeeef;--ic-ln:#5e0b12;--ic-ac:#d41e2c;--ic-ac2:#f7c6c9;--ic-rim:rgba(94,11,18,.14);
 --shadow:0 1px 2px rgba(61,10,16,.06),0 18px 40px -26px rgba(61,10,16,.35);color-scheme:light}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}
body{margin:0;min-height:100vh;background:var(--bg0);color:var(--ink);font:16px/1.6 var(--font);overflow-x:hidden;-webkit-font-smoothing:antialiased}
a{color:inherit}
img{max-width:100%}
.skip{position:absolute;left:-999px;top:8px;z-index:99;background:var(--red);color:#fff;padding:8px 14px;border-radius:10px}.skip:focus{left:8px}
:focus-visible{outline:2px solid var(--red-2);outline-offset:2px;border-radius:8px}
#sprite{position:absolute;width:0;height:0;overflow:hidden}
.mono{font-family:var(--mono)}.break{word-break:break-all}
.muted{color:var(--muted)}.small{font-size:14px}

/* ---------- background: gradient + hex mesh + pulsing glow ---------- */
.bg{position:fixed;inset:0;z-index:-1;pointer-events:none;
 background:radial-gradient(1100px 700px at 8% 105%,rgba(179,18,31,.55),transparent 60%),radial-gradient(900px 600px at 100% -10%,rgba(0,0,0,.6),transparent 60%),linear-gradient(160deg,var(--bg2) 0%,var(--bg1) 45%,var(--bg0) 100%)}
.bg i{position:absolute;inset:0;background-size:58.9px 102px}
.bg-lines{background-image:url(hex-lines.svg);opacity:.75;-webkit-mask-image:radial-gradient(ellipse 90% 80% at 50% 30%,#000 30%,transparent 85%);mask-image:radial-gradient(ellipse 90% 80% at 50% 30%,#000 30%,transparent 85%)}
.bg-glow{background-image:url(hex-glow.svg);opacity:.55;animation:pulse 6s ease-in-out infinite;-webkit-mask-image:radial-gradient(ellipse 70% 60% at 70% 20%,#000 20%,transparent 80%);mask-image:radial-gradient(ellipse 70% 60% at 70% 20%,#000 20%,transparent 80%)}
[data-theme=light] .bg{background:radial-gradient(900px 500px at 0% 0%,#fde3e6,transparent 60%),linear-gradient(180deg,#fff9f9,#fff 40%,#fff6f6)}
[data-theme=light] .bg-lines{opacity:.5}[data-theme=light] .bg-glow{opacity:.18}
@keyframes pulse{0%,100%{opacity:.25}50%{opacity:.7}}

/* ---------- topbar ---------- */
.topbar{position:sticky;top:0;z-index:20;backdrop-filter:blur(14px) saturate(140%);-webkit-backdrop-filter:blur(14px) saturate(140%);background:rgba(12,4,6,.62);border-bottom:1px solid var(--line)}
[data-theme=light] .topbar{background:rgba(255,255,255,.82)}
.topbar-in{max-width:1240px;margin:0 auto;padding:12px 24px;display:flex;align-items:center;justify-content:space-between;gap:16px}
.brand{display:flex;align-items:center;gap:12px;text-decoration:none}
.brand-mark{width:36px;height:36px;display:block;filter:drop-shadow(0 0 10px rgba(255,59,78,.45))}.brand-mark.sm{width:28px;height:28px}
.on-light{display:none!important}[data-theme=light] .on-light{display:block!important}[data-theme=light] .on-dark{display:none!important}
[data-theme=light] .brand-mark{filter:none}
.bn{display:flex;flex-direction:column;line-height:1}.bn b{font:900 21px/1 var(--head);letter-spacing:.2px}.bn small{font:700 11.5px/1.2 var(--font);letter-spacing:2.2px;text-transform:uppercase;color:var(--red-2);margin-top:4px}
.top-actions{display:flex;align-items:center;gap:10px}
.tn{font-weight:600;font-size:14.5px;text-decoration:none;color:var(--ink-2);padding:8px 14px;border-radius:999px;border:1px solid transparent}.tn:hover{border-color:var(--line-2);color:var(--ink)}
.icon-btn{width:42px;height:42px;border-radius:12px;border:1px solid var(--line-2);background:var(--chip);color:var(--ink);display:grid;place-items:center;cursor:pointer;transition:.2s}
.icon-btn:hover{box-shadow:var(--glow)}
.u{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}.u.xs{width:15px;height:15px}.u.sm{width:18px;height:18px}
.ic{width:24px;height:24px;flex:none}.ic.xs{width:16px;height:16px}.ic.sm{width:20px;height:20px}.ic.md{width:30px;height:30px}.ic.lg{width:40px;height:40px}.ic.xl{width:56px;height:56px}
.mk{width:16px;height:16px;flex:none}

main{display:block;min-height:60vh}main:focus{outline:none}
.loading{max-width:1240px;margin:80px auto;padding:0 24px;color:var(--muted)}
.wrap{max-width:1240px;margin:0 auto;padding:0 24px}.wrap.narrow{max-width:860px}

/* ---------- hero ---------- */
.hero{position:relative;max-width:1240px;margin:0 auto;padding:56px 24px 28px;display:grid;grid-template-columns:1.05fr .95fr;align-items:center;gap:24px}
.eyebrow{display:inline-flex;align-items:center;gap:10px;margin:0 0 16px;font:800 12.5px/1 var(--font);letter-spacing:2.4px;text-transform:uppercase;color:var(--red-2)}
.eyebrow i{width:10px;height:10px;background:var(--red);clip-path:polygon(25% 5%,75% 5%,100% 50%,75% 95%,25% 95%,0 50%);box-shadow:0 0 12px var(--red)}
.hero h1{font:900 clamp(40px,6.2vw,76px)/.98 var(--head);letter-spacing:-1.5px;margin:0 0 20px}
.hero h1 em{font-style:normal;background:linear-gradient(92deg,#fff 0%,#ffb3ba 40%,var(--red) 100%);-webkit-background-clip:text;background-clip:text;color:transparent;text-shadow:none}
[data-theme=light] .hero h1 em{background:linear-gradient(92deg,var(--red-d),var(--red));-webkit-background-clip:text;background-clip:text}
.lead{font-size:18.5px;line-height:1.6;color:var(--ink-2);max-width:56ch;margin:0 0 26px}
.stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin:0;max-width:600px}
.stats div{padding:14px 16px;border-radius:16px;background:var(--card);border:1px solid var(--line);box-shadow:var(--shadow)}
.stats dt{font-size:12.5px;font-weight:600;color:var(--muted);letter-spacing:.3px}.stats dd{margin:2px 0 0;font:900 30px/1.1 var(--head)}
.hawk{position:relative;aspect-ratio:5/4;width:100%;max-width:600px;justify-self:end}
.hawk svg{width:100%;height:100%;display:block;overflow:visible}
.hawk::after{content:"";position:absolute;inset:18% 18%;border-radius:50%;background:radial-gradient(closest-side,rgba(255,59,78,.35),transparent);filter:blur(30px);z-index:-1}
.hawk-float{animation:hover 7s ease-in-out infinite}
#sentinel-mesh-glow,#sentinel-mesh-nodes{animation:pulse 5s ease-in-out infinite}
@keyframes hover{0%,100%{transform:translateY(0)}50%{transform:translateY(-16px)}}
[data-theme=light] .hawk #sentinel-hawk path{fill:var(--red-d)}
[data-theme=light] .hawk #sentinel-mesh{opacity:.35}

/* ---------- note ---------- */
.note{display:flex;gap:16px;align-items:flex-start;padding:18px 20px;border-radius:var(--r);background:linear-gradient(135deg,rgba(255,59,78,.13),rgba(255,59,78,.03));border:1px solid var(--line-2);margin:8px 0 22px}
.note p{margin:0 0 4px;color:var(--ink-2);font-size:15.5px}.note p b{color:var(--ink)}.note .muted{font-size:14px;margin:0}
.note.compact{padding:14px 18px}

/* ---------- filters ---------- */
.filters{position:relative;padding:18px;border-radius:var(--r);background:var(--card);border:1px solid var(--line);box-shadow:var(--shadow);backdrop-filter:blur(8px)}
.search{display:flex;align-items:center;gap:10px;height:54px;padding:0 16px;border-radius:14px;background:rgba(0,0,0,.28);border:1px solid var(--line-2);transition:.2s}
[data-theme=light] .search{background:#fff}
.search:focus-within{box-shadow:var(--glow)}
.search input{flex:1;min-width:0;height:100%;border:0;background:transparent;color:var(--ink);font:500 16.5px var(--font);outline:none}
.search input::placeholder{color:var(--faint)}
.f-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px 18px;margin-top:16px}
.f{min-width:0}.f-l{display:flex;justify-content:space-between;font-size:12.5px;font-weight:700;letter-spacing:1px;text-transform:uppercase;color:var(--muted);margin-bottom:8px}
.seg{display:flex;flex-wrap:wrap;gap:6px}
.seg button,.chip,.tgl{display:inline-flex;align-items:center;gap:6px;height:36px;padding:0 13px;border-radius:999px;border:1px solid var(--chip-ln);background:var(--chip);color:var(--ink-2);font:600 14px var(--font);cursor:pointer;transition:.18s;white-space:nowrap}
.seg button:hover,.chip:hover,.tgl:hover{border-color:var(--line-2);color:var(--ink)}
.seg button.on,.tgl[aria-pressed=true]{background:linear-gradient(180deg,var(--red),var(--red-d));border-color:transparent;color:#fff;box-shadow:0 6px 18px -8px var(--red)}
.dates{display:flex;gap:8px}.dates input,.select select{height:36px;border-radius:10px;border:1px solid var(--chip-ln);background:var(--chip);color:var(--ink);font:500 14px var(--font);padding:0 10px;min-width:0;flex:1}
.range{position:relative;height:36px;--a:0%;--b:100%}
.range::before{content:"";position:absolute;left:0;right:0;top:16px;height:4px;border-radius:4px;background:linear-gradient(90deg,var(--chip-ln) var(--a),var(--red) var(--a),var(--red) var(--b),var(--chip-ln) var(--b))}
.range input{position:absolute;inset:0;width:100%;margin:0;background:none;pointer-events:none;-webkit-appearance:none;appearance:none}
.range input::-webkit-slider-thumb{pointer-events:auto;-webkit-appearance:none;width:22px;height:22px;border-radius:50%;background:#fff;border:3px solid var(--red);box-shadow:0 0 12px var(--red);cursor:pointer}
.range input::-moz-range-thumb{pointer-events:auto;width:18px;height:18px;border-radius:50%;background:#fff;border:3px solid var(--red);cursor:pointer}
.more-f{margin-top:14px}.more-f>summary{display:none}
.list-head{display:flex;flex-wrap:wrap;align-items:center;gap:10px 14px;margin:24px 0 14px}
.count{margin:0;font:800 18px var(--head)}.chips{display:flex;flex-wrap:wrap;gap:6px;flex:1}
.chip span{font-size:16px;line-height:1;opacity:.7}.chip.clear{color:var(--red-2)}
.views{display:flex;gap:6px}
.sort{display:flex;align-items:center;gap:8px;font-size:14px;color:var(--muted)}

/* ---------- cards ---------- */
.cards{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(340px,1fr));gap:16px}
.card{position:relative;border-radius:var(--r);background:var(--card);border:1px solid var(--line);box-shadow:var(--shadow);transition:transform .25s,box-shadow .25s,border-color .25s;overflow:hidden}
.card::before{content:"";position:absolute;inset:0;background:radial-gradient(500px 160px at 0% 0%,rgba(255,59,78,.12),transparent 60%);pointer-events:none}
.card:hover{transform:translateY(-3px);border-color:var(--line-2);box-shadow:var(--shadow),var(--glow)}
.card.flagged{border-color:rgba(255,84,104,.45)}
.card-a{position:relative;display:grid;grid-template-columns:auto 1fr;gap:14px 16px;padding:18px;text-decoration:none;height:100%}
.c-top{min-width:0}.c-name{display:flex;align-items:baseline;gap:8px;flex-wrap:wrap}
.c-name b{font:900 20px/1.2 var(--head);letter-spacing:-.2px;overflow-wrap:anywhere}
.tk{font:700 13.5px var(--mono);color:var(--red-2)}.tk.big{font-size:18px}
.c-meta{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}
.c-sum{grid-column:1/-1;margin:0;color:var(--ink-2);font-size:14.5px;line-height:1.55;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
.c-foot{grid-column:1/-1;display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:8px;padding-top:12px;border-top:1px solid var(--line);font-size:13px;color:var(--muted)}
.c-perf{display:flex;gap:12px;flex-wrap:wrap}.c-perf b{color:var(--ink);font-weight:700}
.tag{display:inline-flex;align-items:center;gap:5px;height:26px;padding:0 10px;border-radius:999px;font:700 12px/1 var(--font);letter-spacing:.3px;background:var(--chip);border:1px solid var(--chip-ln);color:var(--ink-2);white-space:nowrap}
.tag.chain-sol{color:#c9b8ff}.tag.chain-rh{color:#b8f5c9}[data-theme=light] .tag.chain-sol{color:#5b3fc4}[data-theme=light] .tag.chain-rh{color:#137a3e}
.tag.src{color:var(--muted)}
.flag-badge{display:inline-flex;align-items:center;gap:6px;height:26px;padding:0 11px;border-radius:7px;font:900 12px/1 var(--head);letter-spacing:1.2px;text-transform:uppercase;color:#fff;background:linear-gradient(180deg,#ff3b4e,#a50e25);box-shadow:0 0 16px -2px rgba(255,59,78,.7)}
.flag-badge.fake{background:repeating-linear-gradient(-45deg,#a50e25 0 8px,#c8102e 8px 16px)}
.band{display:inline-flex;align-items:center;gap:6px;height:26px;padding:0 10px;border-radius:999px;font:800 12.5px/1 var(--font)}
.band i{width:8px;height:8px;border-radius:50%;background:currentColor;box-shadow:0 0 8px currentColor}
.band.tinggi{color:var(--hi);background:var(--hi-bg)}.band.sedang{color:var(--mid);background:var(--mid-bg)}.band.rendah{color:var(--lo);background:var(--lo-bg)}
.prov{font-size:12px;color:var(--faint);font-weight:600}

/* score gauge */
.gauge{position:relative;width:76px;height:76px;flex:none}
.gauge svg{width:100%;height:100%;transform:rotate(-90deg)}
.gauge .trk{fill:none;stroke:var(--chip-ln);stroke-width:7}
.gauge .val{fill:none;stroke-width:7;stroke-linecap:round;transition:stroke-dasharray .8s cubic-bezier(.2,.8,.2,1)}
.gauge::before{content:"";position:absolute;inset:6%;border-radius:50%;box-shadow:0 0 22px -6px currentColor,inset 0 0 18px -10px currentColor;opacity:.8}
.gauge.tinggi{color:var(--hi)}.gauge.sedang{color:var(--mid)}.gauge.rendah{color:var(--lo)}.gauge .val{stroke:currentColor}
.gauge .n{position:absolute;inset:0;display:grid;place-items:center;text-align:center;line-height:1}
.gauge .n b{font:900 24px/1 var(--head);color:var(--ink)}.gauge .n small{display:block;font-size:10.5px;color:var(--muted);font-weight:700;margin-top:2px}
.gauge.xl{width:150px;height:150px}.gauge.xl .n b{font-size:46px}.gauge.xl .n small{font-size:13px}.gauge.xl .trk,.gauge.xl .val{stroke-width:8}

/* table (default list view) */
.tbl-wrap{overflow-x:auto;border-radius:var(--r);border:1px solid var(--line);background:var(--card);box-shadow:var(--shadow);-webkit-overflow-scrolling:touch}
table.tbl{width:100%;border-collapse:separate;border-spacing:0;font-size:14.5px;table-layout:auto}
.tbl th{position:sticky;top:0;z-index:2;text-align:left;font:800 11.5px var(--font);letter-spacing:.8px;text-transform:uppercase;color:var(--muted);padding:0;border-bottom:1px solid var(--line-2);background:var(--card-solid);white-space:nowrap}
.tbl th button,.tbl th .th-l{all:unset;box-sizing:border-box;display:flex;align-items:center;gap:6px;padding:13px 12px;width:100%}
.tbl th button{cursor:pointer}.tbl th button:hover{color:var(--ink)}
.tbl th button:focus-visible{outline:2px solid var(--red-2);outline-offset:-2px}
.tbl th .ar{font-size:10px;opacity:.45;letter-spacing:0}
.tbl th[aria-sort=ascending] button,.tbl th[aria-sort=descending] button{color:var(--ink)}
.tbl th[aria-sort=ascending] .ar,.tbl th[aria-sort=descending] .ar{opacity:1;color:var(--red-2);font-size:11px}
.tbl td{padding:11px 12px;border-bottom:1px solid var(--line);vertical-align:middle;white-space:nowrap}
.tbl tbody tr:last-child td{border-bottom:0}
.trow{cursor:pointer;transition:background .15s}
.trow:hover td{background:rgba(255,59,78,.075)}
[data-theme=light] .trow:hover td{background:#fff3f4}

.tbl td.c-tok{position:sticky;left:0;z-index:1;background:var(--card-solid);min-width:210px;max-width:260px;white-space:normal}
.tbl th.c-tok{position:sticky;left:0;z-index:3}
.trow:hover td.c-tok{background:color-mix(in srgb,var(--card-solid) 88%,var(--red))}
.tok-a{display:flex;align-items:center;gap:11px;text-decoration:none;min-width:0}
.tok-a:hover b{color:var(--red-2)}
.tok-t{display:flex;flex-direction:column;min-width:0;line-height:1.25}
.tok-t b{font:800 15.5px var(--head);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.tok-t small{font:600 12.5px var(--mono);color:var(--red-2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.c-sum2{min-width:240px;max-width:420px;white-space:normal!important}
.sum2{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;color:var(--ink-2);font-size:13.5px;line-height:1.45}
.c-date small{display:block;font-size:11.5px}
.c-ca .copy{height:30px;padding:0 10px}
.dash{color:var(--faint)}
.m-only{display:none}.xs-only{display:none}
.tbl .num{text-align:right;font-variant-numeric:tabular-nums}.tbl th.num button{justify-content:flex-end}
.sc{display:inline-grid;place-items:center;min-width:46px;height:30px;padding:0 6px;border-radius:9px;font:900 15px var(--head)}
.sc.tinggi{color:var(--hi);background:var(--hi-bg);box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--hi) 35%,transparent)}
.sc.sedang{color:var(--mid);background:var(--mid-bg);box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--mid) 35%,transparent)}
.sc.rendah{color:var(--lo);background:var(--lo-bg);box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--lo) 35%,transparent)}
.risk-s{font-size:11px;font-weight:700}.risk-s.tinggi{color:var(--hi)}.risk-s.sedang{color:var(--mid)}.risk-s.rendah{color:var(--lo)}
.up{color:var(--lo)}.dn{color:var(--hi)}
@media (max-width:1180px){.tbl .c-chain{display:none}}
@media (max-width:900px){.tbl .c-risk{display:none}.tbl .m-only{display:inline}.tbl .c-score .m-only{display:block;margin-top:3px}}
@media (max-width:640px){
 .tbl .c-sum2,.tbl .c-chain,.tbl .c-risk,.tbl .c-date{display:none}.tbl .xs-only{display:inline}
 .tok-t small{font-size:11.5px}
 .tbl td{padding:10px 8px}.tbl th button,.tbl th .th-l{padding:12px 8px}
 .tbl td.c-tok{min-width:150px;max-width:190px}.tok-a{gap:8px}
 .tok-t b{font-size:15px}.c-score{text-align:center}.c-ca .copy span{display:none}.c-ca .copy{width:34px;padding:0;justify-content:center}
 .flag-badge{height:22px;padding:0 7px;font-size:10.5px}.flag-badge .ic{display:none}
}
.empty{grid-column:1/-1;display:flex;flex-direction:column;align-items:center;gap:8px;text-align:center;padding:48px 20px;color:var(--muted);list-style:none}
.empty b{color:var(--ink);font:800 19px var(--head)}
.more-btn{display:block;margin:20px auto 0;height:46px;padding:0 26px;border-radius:999px;border:1px solid var(--line-2);background:var(--chip);color:var(--ink);font:700 15px var(--font);cursor:pointer}.more-btn:hover{box-shadow:var(--glow)}

/* ---------- detail ---------- */
.back{display:inline-flex;align-items:center;gap:8px;font-weight:700;font-size:14.5px;text-decoration:none;color:var(--ink-2);margin:28px 0 18px}.back:hover{color:var(--red-2)}
.d-hero{padding-bottom:10px}
.d-grid{display:grid;grid-template-columns:minmax(0,1fr) 330px;gap:22px;align-items:start}
.d-id,.d-score{border-radius:24px;background:var(--card);border:1px solid var(--line);box-shadow:var(--shadow);padding:26px;position:relative;overflow:hidden}
.d-id::before{content:"";position:absolute;right:-60px;top:-60px;width:260px;height:260px;background:url(brand/sentinel-icon-red.svg?v=10181743) center/contain no-repeat;opacity:.08;pointer-events:none}
.d-id h1{font:900 clamp(32px,4.6vw,52px)/1.04 var(--head);letter-spacing:-1px;margin:0 0 10px;display:flex;flex-wrap:wrap;align-items:baseline;gap:4px 14px;overflow-wrap:anywhere}
.d-sum{font-size:17.5px;line-height:1.6;color:var(--ink-2);margin:0 0 18px;max-width:var(--measure)}
.ca-box{display:flex;align-items:center;gap:10px;padding:10px 12px;border-radius:12px;background:rgba(0,0,0,.25);border:1px solid var(--line)}
[data-theme=light] .ca-box{background:#fff7f7}
.ca-box code{flex:1;font-size:13.5px;color:var(--ink-2)}.ca-l{font:800 12px var(--font);letter-spacing:1px;color:var(--muted)}
.copy{display:inline-flex;align-items:center;gap:6px;height:32px;padding:0 12px;border-radius:9px;border:1px solid var(--chip-ln);background:var(--chip);color:var(--ink);font:600 13px var(--font);cursor:pointer}.copy.done{color:var(--lo);border-color:var(--lo)}
.d-score{display:flex;flex-direction:column;align-items:center;text-align:center;gap:12px}
.band-why{margin:0;font-size:14px;color:var(--muted)}.warnline{color:var(--mid)}
.facts{display:grid;grid-template-columns:1fr 1fr;gap:8px;width:100%;margin:6px 0 0;text-align:left}
.facts div{padding:10px 12px;border-radius:12px;background:var(--chip);border:1px solid var(--line)}
.facts dt{font-size:11.5px;font-weight:700;letter-spacing:.6px;text-transform:uppercase;color:var(--muted)}.facts dd{margin:2px 0 0;font-weight:700;font-size:14px}
.flag-banner{display:flex;gap:16px;align-items:flex-start;margin:18px 0 0;padding:18px 20px;border-radius:18px;background:linear-gradient(135deg,rgba(255,59,78,.28),rgba(165,14,37,.12));border:1px solid rgba(255,84,104,.55);box-shadow:0 0 40px -16px rgba(255,59,78,.8)}
.flag-banner h2{margin:0 0 4px;font:900 20px var(--head)}.flag-banner p{margin:0;color:var(--ink-2)}
.d-body{display:grid;grid-template-columns:minmax(0,1fr) 330px;gap:22px;margin-top:22px;align-items:start}
.d-main{display:flex;flex-direction:column;gap:18px;min-width:0}
.blk{border-radius:22px;background:var(--card);border:1px solid var(--line);box-shadow:var(--shadow);padding:22px 24px;min-width:0}
.blk .blk-h{display:flex;align-items:center;gap:12px;margin:0 0 14px;font:900 19px/1.2 var(--head);letter-spacing:-.2px}
.blk h3{font:800 16px var(--head);margin:0 0 8px;display:flex;align-items:center;gap:8px}
.prose{color:var(--ink-2);max-width:var(--measure);margin:0}
.dots{margin:0;padding:0 0 0 20px;color:var(--ink-2)}.dots li{margin:6px 0}.dots li::marker{color:var(--red)}
.flags-blk{border-color:rgba(255,84,104,.4)}
.flag-list{margin:0;padding:0;list-style:none;display:grid;gap:8px}.flag-list li{padding:10px 14px;border-radius:12px;background:var(--hi-bg);color:var(--ink);font-weight:600;border-left:3px solid var(--hi)}
.quick{list-style:none;margin:0;padding:0;display:grid;gap:8px}
.quick li{display:grid;grid-template-columns:auto 150px minmax(0,1fr);gap:10px;align-items:start;padding:10px 12px;border-radius:12px;background:var(--chip);border:1px solid var(--line)}
.quick li b{font-size:14.5px}.quick li span{color:var(--ink-2);font-size:14.5px}
.claims{list-style:none;margin:0;padding:0;display:grid;gap:10px}
.claims li{display:grid;grid-template-columns:150px minmax(0,1fr);gap:14px;padding:12px 14px;border-radius:14px;background:var(--chip);border:1px solid var(--line)}
.pill{display:inline-flex;align-items:center;gap:6px;height:28px;padding:0 10px;border-radius:999px;font:800 12.5px var(--font);align-self:start;white-space:nowrap}
.pill.ok{color:var(--lo);background:var(--lo-bg)}.pill.mid{color:var(--mid);background:var(--mid-bg)}.pill.bad{color:var(--hi);background:var(--hi-bg)}.pill.na{color:var(--muted);background:var(--chip)}
.c-claim{margin:0;font-weight:600;overflow-wrap:anywhere}
.c-proof,.dots li,.prose,.flag-list li,.quick li span,.d-sum,.c-sum,.gal span{overflow-wrap:anywhere}.c-proof{margin:4px 0 0;color:var(--ink-2);font-size:14.5px}
.pm{display:grid;grid-template-columns:1fr 1fr;gap:18px}
.more{border-top:1px solid var(--line)}.more summary{cursor:pointer;padding:12px 0;font-weight:700;display:flex;justify-content:space-between;list-style:none}.more summary::-webkit-details-marker{display:none}
.more summary .n{font-size:12.5px;color:var(--muted);background:var(--chip);border-radius:999px;padding:2px 9px}
.more[open] summary{color:var(--red-2)}
.perf{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}
.perf div{padding:14px;border-radius:14px;background:var(--chip);border:1px solid var(--line)}
.perf dt{font-size:11.5px;font-weight:700;letter-spacing:.6px;text-transform:uppercase;color:var(--muted)}.perf dd{margin:4px 0 0;font:900 22px var(--head)}
.hist{list-style:none;margin:0;padding:0 0 0 18px;border-left:2px solid var(--line-2);display:grid;gap:10px}
.hist li{position:relative;display:flex;flex-wrap:wrap;gap:8px 12px;align-items:center}
.hist li::before{content:"";position:absolute;left:-25px;width:12px;height:12px;border-radius:3px;background:var(--red);clip-path:polygon(25% 5%,75% 5%,100% 50%,75% 95%,25% 95%,0 50%)}
.hist time{font-size:14px;color:var(--muted);min-width:150px}
.gal{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:12px}
.gal button{all:unset;cursor:zoom-in;display:block;border-radius:14px;overflow:hidden;border:1px solid var(--line);background:#000;transition:.2s}
.gal button:hover,.gal button:focus-visible{box-shadow:var(--glow)}
.gal img{display:block;width:100%;height:auto;aspect-ratio:16/10;object-fit:cover;object-position:top}
.gal span{display:block;padding:8px 10px;font-size:13px;color:var(--ink-2);background:var(--card-solid)}
.d-side{display:flex;flex-direction:column;gap:16px;position:sticky;top:84px}
.side-card{border-radius:20px;background:var(--card);border:1px solid var(--line);padding:18px 20px}
.side-card h3{margin:0 0 6px;font:800 16px var(--head)}.side-card p{margin:0;color:var(--ink-2);font-size:14.5px}
.links ul{list-style:none;margin:0;padding:0;display:grid;gap:8px}
.links a{display:flex;align-items:center;gap:10px;padding:10px 12px;border-radius:12px;background:var(--chip);border:1px solid var(--line);text-decoration:none}
.links a:hover{border-color:var(--line-2)}.links a span{flex:1;min-width:0}.links a b{display:block;font-size:14px}.links a small{display:block;font-size:12.5px;color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.lb{position:fixed;inset:0;z-index:50;background:rgba(5,1,2,.92);display:grid;place-items:center;padding:56px 16px 16px;overflow:auto}
.lb figure{margin:0;max-width:1280px}.lb img{display:block;max-width:100%;height:auto;border-radius:10px}.lb figcaption{color:#e6d3d6;margin-top:10px;font-size:14px;text-align:center}
.lb-x{position:fixed;top:12px;right:12px;height:40px;padding:0 16px;border-radius:999px;border:1px solid rgba(255,255,255,.3);background:rgba(0,0,0,.5);color:#fff;font:700 14px var(--font);cursor:pointer}
.about h1{font:900 clamp(34px,5vw,52px)/1.05 var(--head);margin:0 0 18px}.about h2{font:900 22px var(--head);margin:28px 0 10px}
.bands{list-style:none;padding:0;display:grid;gap:10px}.bands li{display:flex;gap:12px;align-items:flex-start;padding:12px 14px;border-radius:14px;background:var(--card);border:1px solid var(--line)}

/* ---------- footer ---------- */
.foot{margin-top:64px;border-top:1px solid var(--line);background:rgba(0,0,0,.25)}[data-theme=light] .foot{background:#fff7f7}
.foot-in{max-width:1240px;margin:0 auto;padding:32px 24px 40px;display:grid;gap:14px}
.foot-brand{display:flex;align-items:center;gap:12px}.foot-brand b{display:block;font:900 16px var(--head)}.foot-brand span{font-size:13px;color:var(--muted)}
.disc{margin:0;color:var(--muted);font-size:14px;max-width:90ch}.disc b{color:var(--ink)}.foot-meta{margin:0;font-size:13px;color:var(--faint)}

/* ---------- responsive ---------- */
@media (max-width:1020px){.hero{grid-template-columns:1fr;padding-top:28px}.hawk{justify-self:center;max-width:480px;order:-1;margin:-10px 0 -20px}
 .d-grid,.d-body{grid-template-columns:1fr}.d-side{position:static}.f-grid{grid-template-columns:1fr 1fr}}
@media (max-width:640px){
 body{font-size:15.5px}.wrap,.topbar-in,.hero,.foot-in{padding-left:16px;padding-right:16px}
 .tn{display:none}.hero{padding-top:12px}.hawk{max-width:320px;margin:0 0 -14px}
 .hero h1{font-size:42px;letter-spacing:-1px}.lead{font-size:16.5px}
 .stats{grid-template-columns:1fr 1fr}.stats dd{font-size:26px}
 .f-grid{grid-template-columns:1fr}
 .more-f>summary{display:flex;align-items:center;justify-content:space-between;cursor:pointer;height:42px;padding:0 14px;border-radius:12px;border:1px solid var(--chip-ln);font-weight:700;list-style:none}
 .more-f>summary::-webkit-details-marker{display:none}
 .cards{grid-template-columns:1fr}.card-a{padding:16px;gap:12px 14px}.gauge{width:66px;height:66px}.gauge .n b{font-size:21px}
 .d-id,.d-score,.blk{padding:18px}.quick li{grid-template-columns:auto 1fr}.quick li span{grid-column:1/-1}
 .claims li{grid-template-columns:minmax(0,1fr);gap:8px}.pm{grid-template-columns:1fr}.perf{grid-template-columns:1fr 1fr}.facts{grid-template-columns:1fr}
 .hist time{min-width:0;width:100%}.list-head .sort{width:100%}.sort .select{flex:1}.sort select{width:100%}
}

/* ================= v3 overhaul: hierarchy, logos, score bar, micro-interactions ================= */
body{font-feature-settings:"cv11","ss01";letter-spacing:-.005em}
.tbl,.perf dd,.stats dd,.facts dd,.sc,.gauge .n b{font-variant-numeric:tabular-nums}
/* token avatar */
.av{position:relative;flex:none;display:inline-grid;place-items:center;width:36px;height:36px;border-radius:50%;
 box-shadow:0 0 0 1px var(--line-2),0 4px 14px -6px rgba(0,0,0,.8);background:var(--card-solid);transition:transform .25s cubic-bezier(.2,.8,.2,1),box-shadow .25s}
.av img{width:100%;height:100%;border-radius:50%;object-fit:cover;display:block}
.av .ini{width:100%;height:100%;border-radius:50%;display:grid;place-items:center;font:900 13px/1 var(--head);letter-spacing:.3px;color:#fff;
 background:radial-gradient(circle at 30% 25%,hsl(var(--h) 70% 62% / .95),hsl(var(--h) 55% 28%) 70%);text-shadow:0 1px 2px rgba(0,0,0,.45)}
.av .cdot{position:absolute;right:-2px;bottom:-2px;width:12px;height:12px;border-radius:50%;border:2px solid var(--card-solid)}
.av.sol .cdot{background:linear-gradient(135deg,#9b6bff,#19d3a2)}.av.rh .cdot{background:#2fbf71}
.av.xl{width:88px;height:88px;box-shadow:0 0 0 1px var(--line-2),0 0 0 6px rgba(255,59,78,.08),0 18px 40px -16px rgba(255,59,78,.55)}
.av.xl .ini{font-size:30px}.av.xl .cdot{width:20px;height:20px;border-width:3px;right:2px;bottom:2px}
.c-name .av{width:30px;height:30px;align-self:center}.c-name .av .ini{font-size:11px}
/* table hierarchy (ref: BTC Markets data table) */
.tbl-wrap{background:linear-gradient(180deg,rgba(255,255,255,.025),transparent 120px),var(--card)}
.tbl th{font:700 11px var(--font);letter-spacing:1.1px;color:var(--faint);background:color-mix(in srgb,var(--card-solid) 94%,#fff)}
[data-theme=light] .tbl th{background:#fffafa}
.tbl td{padding:13px 12px;transition:background .18s}
.tok-t b{font:800 15.5px/1.25 var(--head);letter-spacing:-.1px;color:var(--ink);transition:color .18s}
.tok-t small{font:600 12px var(--mono);color:var(--muted)}
.tok-t small:first-letter{color:var(--red-2)}
.trow td.c-tok{box-shadow:inset 0 0 0 0 transparent;transition:box-shadow .2s,background .18s}
.trow:hover td.c-tok{box-shadow:inset 3px 0 0 var(--red)}
.trow:hover .av{transform:scale(1.08);box-shadow:0 0 0 1px var(--red),0 0 18px -4px var(--red)}
.trow:hover .tok-t b{color:#fff}[data-theme=light] .trow:hover .tok-t b{color:var(--red-d)}
.trow:active td{background:rgba(255,59,78,.12)}
.trow.in{animation:rowIn .42s cubic-bezier(.2,.8,.2,1) both;animation-delay:calc(var(--i) * 14ms)}
@keyframes rowIn{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}
.tbl th .ar{display:inline-block;transition:transform .25s,opacity .2s}
.tbl th[aria-sort=ascending] .ar{transform:translateY(-1px)}
/* score: number + 10-step bar, colour = risk band */
.scr{display:inline-flex;flex-direction:column;align-items:center;gap:5px}
.scr .sc{min-width:48px;height:30px;font-size:15.5px;letter-spacing:-.2px}
.scr .bar{position:relative;display:block;width:48px;height:4px;border-radius:4px;background:var(--chip-ln);overflow:hidden}
.scr .bar i{position:absolute;inset:0 auto 0 0;width:calc(var(--f) * 100%);border-radius:inherit;background:currentColor;box-shadow:0 0 8px currentColor}
.scr.tinggi{color:var(--hi)}.scr.sedang{color:var(--mid)}.scr.rendah{color:var(--lo)}
/* copy toast */
.toast{position:fixed;left:50%;bottom:24px;z-index:60;display:flex;align-items:center;gap:10px;padding:12px 16px 12px 14px;border-radius:14px;
 background:rgba(20,6,10,.92);color:#fbf2f3;border:1px solid rgba(63,220,154,.45);box-shadow:0 18px 40px -16px #000,0 0 24px -8px rgba(63,220,154,.6);
 font-size:14px;transform:translate(-50%,24px);opacity:0;pointer-events:none;transition:transform .32s cubic-bezier(.2,.8,.2,1),opacity .25s;backdrop-filter:blur(10px)}
.toast.show{transform:translate(-50%,0);opacity:1}
.toast .tick{width:18px;height:18px;border-radius:50%;background:#3fdc9a;position:relative;flex:none}
.toast .tick::after{content:"";position:absolute;left:6px;top:3px;width:4px;height:8px;border:solid #0b0406;border-width:0 2px 2px 0;transform:rotate(45deg)}
.toast span{color:#b9a0a5;font-size:13px}
.copy{transition:border-color .18s,color .18s,transform .12s}.copy:active{transform:scale(.94)}
.copy:hover{border-color:var(--line-2)}
/* detail: header */
.d-head{display:flex;align-items:center;gap:20px;margin-bottom:16px}
.d-title{min-width:0}.d-tags{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:10px}
.d-id h1{margin:0}
.d-score .gauge.xl .val{transition:stroke-dasharray 1.1s cubic-bezier(.2,.8,.2,1) .15s}
.d-score .band{height:30px;padding:0 14px;font-size:13.5px}
/* detail: numbered sections + section nav */
.d-nav{position:sticky;top:68px;z-index:5;display:flex;gap:6px;overflow-x:auto;padding:8px;margin:0 0 4px;border-radius:16px;
 background:color-mix(in srgb,var(--card-solid) 86%,transparent);border:1px solid var(--line);backdrop-filter:blur(12px);scrollbar-width:none}
.d-nav::-webkit-scrollbar{display:none}
.d-nav button{all:unset;cursor:pointer;display:inline-flex;align-items:center;gap:8px;height:34px;padding:0 13px;border-radius:999px;font:700 13.5px var(--font);color:var(--ink-2);white-space:nowrap;transition:background .18s,color .18s}
.d-nav button span{font:800 11px var(--mono);color:var(--red-2)}
.d-nav button:hover{background:var(--chip);color:var(--ink)}.d-nav button:focus-visible{outline:2px solid var(--red-2)}
.grp{display:flex;flex-direction:column;gap:14px;scroll-margin-top:136px}
.grp-h{display:flex;align-items:baseline;gap:12px;margin:18px 0 0;font:900 clamp(22px,2.4vw,28px)/1.1 var(--head);letter-spacing:-.6px}
.grp-h .gn{font:800 13px var(--mono);color:var(--red-2);letter-spacing:1px;padding:4px 8px;border-radius:8px;border:1px solid var(--line-2);transform:translateY(-3px)}
.blk{transition:border-color .25s}.blk:hover{border-color:var(--line-2)}
.gal img{background:#000}
@media (max-width:640px){
 .av{width:30px;height:30px}.av .ini{font-size:11px}.av .cdot{width:10px;height:10px}
 .scr .sc{min-width:42px;height:28px;font-size:14.5px}.scr .bar{width:42px}
 .d-head{gap:14px}.av.xl{width:64px;height:64px}.av.xl .ini{font-size:22px}.av.xl .cdot{width:16px;height:16px}
 .d-nav{top:60px;margin:0 -4px}.grp{scroll-margin-top:120px}.toast{bottom:16px;max-width:calc(100vw - 32px)}
}
@media (prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}
.trow.flagged td.c-tok,.trow.flagged:hover td.c-tok{box-shadow:inset 3px 0 0 var(--hi)}
@media (max-width:640px){
 .tbl .tok-t .m-only,.tbl .tok-t .xs-only{display:none}
 .tbl td{padding:10px 6px}.tbl th button,.tbl th .th-l{padding:12px 6px}
 .tbl td.c-tok{min-width:136px;max-width:160px;padding-left:10px}.tbl th.c-tok button{padding-left:10px}
 .tok-t b{font-size:14.5px}.tok-a{gap:9px}
 .flag-badge{height:22px;padding:0 6px;font-size:10px;letter-spacing:.8px;box-shadow:0 0 10px -3px rgba(255,59,78,.7)}
 .c-ca .copy{width:32px;height:32px}
}
.d-id .facts{grid-template-columns:repeat(auto-fit,minmax(140px,1fr));margin-top:16px}
.claims.clip li:nth-child(n+6){display:none}
.more-btn.sm{height:38px;font-size:14px;margin-top:14px}
.d-mscore{display:none}
@media (max-width:1020px){.d-mscore{display:inline-flex}.d-mscore .scr{flex-direction:row;gap:8px}.d-mscore .sc{height:26px;min-width:40px;font-size:14px}.d-mscore .bar{width:36px}}
@media (max-width:640px){.d-id .facts{grid-template-columns:1fr 1fr}.facts div{padding:8px 10px}}
