:root{
  --bg:#0a0a0c;
  --panel:#101014;
  --panel-2:#15151a;
  --line:#232329;
  --line-soft:#1b1b20;
  --text:#f4f4f6;
  --muted:#96969f;
  --dim:#61616a;
  --good:#34d399;
  --mid:#fbbf24;
  --bad:#f87171;
  --info:#60a5fa;
  --radius:14px;
  --radius-sm:9px;
  --font:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;
  --mono:ui-monospace,SFMono-Regular,Menlo,Consolas,"Liberation Mono",monospace;
  --maxw:1180px;
  --header-h:64px;
}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{background:var(--bg);color:var(--text);font-family:var(--font);font-size:16px;line-height:1.55;-webkit-font-smoothing:antialiased}
a{color:inherit;text-decoration:none}
img,svg{display:block}
button{font-family:inherit;cursor:pointer}
::selection{background:#f4f4f6;color:#0a0a0c}

.container{width:100%;max-width:var(--maxw);margin:0 auto;padding:0 24px}

/* ---------- demo banner ---------- */
.demo-banner{display:flex;align-items:center;justify-content:center;gap:16px;padding:9px 24px;background:#14141a;border-bottom:1px solid var(--line);font-size:13px;color:var(--muted);text-align:center}
.demo-banner strong{color:var(--mid);font-weight:600}
.demo-banner-x{background:none;border:0;color:var(--dim);font-size:20px;line-height:1}
.demo-banner-x:hover{color:var(--text)}
.demo-banner.hidden{display:none}

/* ---------- header ---------- */
.site-header{position:sticky;top:0;z-index:50;background:rgba(10,10,12,.82);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);border-bottom:1px solid var(--line-soft)}
.header-inner{display:flex;align-items:center;gap:24px;height:var(--header-h)}
.brand{display:inline-flex;align-items:center;gap:10px}
.brand-name{font-size:19px;font-weight:700;letter-spacing:-.02em}
.brand-name span{color:var(--muted);font-weight:400}
.logo{flex:none}
.site-nav{display:flex;align-items:center;gap:4px;margin-left:8px}
.site-nav a{padding:8px 14px;border-radius:8px;color:var(--muted);font-size:14.5px;font-weight:500}
.site-nav a:hover{color:var(--text);background:var(--panel-2)}
.site-nav a.active{color:var(--text);background:var(--panel-2)}
.nav-actions{margin-left:auto;display:flex;align-items:center;gap:10px}
.menu-btn{display:none}

/* ---------- buttons ---------- */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;border:1px solid var(--line);background:var(--panel-2);color:var(--text);border-radius:9px;padding:9px 16px;font-size:14px;font-weight:500;transition:border-color .15s,background .15s,transform .05s}
.btn:hover{border-color:#3a3a42;background:#1c1c22}
.btn:active{transform:translateY(1px)}
.btn-primary{background:#f4f4f6;border-color:#f4f4f6;color:#0a0a0c;font-weight:600}
.btn-primary:hover{background:#fff;border-color:#fff}
.btn-ghost{background:transparent;border-color:var(--line)}
.btn-ghost:hover{background:var(--panel-2);border-color:#33333b}
.btn-block{width:100%}
.btn-sm{padding:6px 12px;font-size:13px}
.icon-btn{background:none;border:1px solid transparent;color:var(--muted);border-radius:8px;padding:7px}
.icon-btn:hover{color:var(--text);background:var(--panel-2)}

/* ---------- hero ---------- */
.hero{padding:56px 0 34px;text-align:center}
.hero .kicker{display:inline-block;font-size:12.5px;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);border:1px solid var(--line);padding:6px 14px;border-radius:999px;margin-bottom:22px;background:var(--panel)}
.hero h1{font-size:clamp(30px,5vw,46px);line-height:1.12;letter-spacing:-.03em;font-weight:750;max-width:760px;margin:0 auto 18px}
.hero h1 em{font-style:normal;color:var(--muted)}
.hero p.sub{color:var(--muted);font-size:17px;max-width:640px;margin:0 auto 30px}

.search-wrap{max-width:680px;margin:0 auto;position:relative}
.search-wrap svg{position:absolute;left:16px;top:50%;transform:translateY(-50%);color:var(--dim)}
.search-input{width:100%;background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:15px 18px 15px 46px;font-size:16px;color:var(--text);outline:none;transition:border-color .15s}
.search-input::placeholder{color:var(--dim)}
.search-input:focus{border-color:#3d3d46}

.hero-stats{display:flex;justify-content:center;gap:0;margin-top:34px;flex-wrap:wrap}
.hero-stats .stat{padding:0 34px;text-align:center;position:relative}
.hero-stats .stat + .stat::before{content:"";position:absolute;left:0;top:12%;height:76%;width:1px;background:var(--line-soft)}
.hero-stats .num{font-size:22px;font-weight:700;letter-spacing:-.02em}
.hero-stats .lbl{font-size:12.5px;color:var(--dim);margin-top:2px}

/* ---------- toolbar / filters ---------- */
.toolbar{display:flex;align-items:center;gap:10px;flex-wrap:wrap;background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);padding:14px 16px;margin:10px 0 22px}
.toolbar .grow{flex:1}
.select{appearance:none;-webkit-appearance:none;background:var(--panel-2) url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%23888892' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'><polyline points='6 9 12 15 18 9'/></svg>") no-repeat right 12px center;border:1px solid var(--line);color:var(--text);border-radius:9px;padding:9px 34px 9px 12px;font-size:13.5px;outline:none;cursor:pointer}
.select:hover{border-color:#33333b}
.chip{display:inline-flex;align-items:center;gap:8px;border:1px solid var(--line);background:var(--panel-2);color:var(--muted);border-radius:999px;padding:7px 14px;font-size:13px;cursor:pointer;transition:all .15s;white-space:nowrap}
.chip:hover{color:var(--text);border-color:#3a3a42}
.chip.on{background:#f4f4f6;border-color:#f4f4f6;color:#0a0a0c;font-weight:600}
.result-count{font-size:13.5px;color:var(--dim);padding:0 4px}

/* ---------- project rows ---------- */
.proj-list{display:flex;flex-direction:column;gap:12px}
.proj-row{display:grid;grid-template-columns:92px 1fr auto;gap:20px;align-items:center;background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);padding:18px 20px;cursor:pointer;transition:border-color .15s,background .15s,transform .1s}
.proj-row:hover{border-color:#34343c;background:var(--panel-2)}
.proj-row:active{transform:scale(.997)}
.score-badge{display:flex;flex-direction:column;align-items:center;gap:2px;justify-self:center}
.score-ring{--p:0;--c:var(--dim);width:62px;height:62px;border-radius:50%;background:conic-gradient(var(--c) calc(var(--p)*1%),#202027 0);display:grid;place-items:center}
.score-ring .inner{width:50px;height:50px;border-radius:50%;background:var(--panel);display:flex;flex-direction:column;align-items:center;justify-content:center}
.score-ring .val{font-size:17px;font-weight:750;letter-spacing:-.02em;line-height:1}
.score-ring .of{font-size:8.5px;color:var(--dim);margin-top:1px}
.score-label{font-size:11px;font-weight:600;letter-spacing:.02em}
.lv-good{color:var(--good)} .lv-mid{color:var(--mid)} .lv-bad{color:var(--bad)}
.proj-main{min-width:0}
.proj-title{display:flex;align-items:baseline;gap:10px;flex-wrap:wrap}
.proj-name{font-size:17.5px;font-weight:650;letter-spacing:-.01em}
.proj-ticker{font-family:var(--mono);font-size:11.5px;color:var(--dim);border:1px solid var(--line);padding:1px 7px;border-radius:6px}
.proj-tagline{color:var(--muted);font-size:14px;margin-top:5px;overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}
.proj-meta{display:flex;gap:8px;margin-top:10px;flex-wrap:wrap}
.tag{font-size:11.5px;font-weight:500;color:var(--muted);background:var(--panel-2);border:1px solid var(--line);padding:3px 9px;border-radius:999px;white-space:nowrap}
.tag.chain{color:var(--info)}
.proj-facts{display:flex;flex-direction:column;gap:6px;text-align:right;font-size:12.5px;color:var(--muted);white-space:nowrap}
.proj-facts b{display:block;font-weight:600;color:var(--text);font-size:13px}
.proj-facts .fcap{max-width:220px}

/* ---------- empty state ---------- */
.empty{padding:70px 20px;text-align:center;color:var(--muted);background:var(--panel);border:1px dashed var(--line);border-radius:var(--radius)}
.empty .big{font-size:34px;margin-bottom:12px}
.empty h3{color:var(--text);margin-bottom:8px;font-size:18px}

/* ---------- page head (generic) ---------- */
.page-head{padding:40px 0 8px}
.page-head h1{font-size:clamp(24px,3.6vw,34px);letter-spacing:-.025em;font-weight:750}
.page-head .lede{color:var(--muted);max-width:680px;margin-top:10px;font-size:15.5px}
.crumb{font-size:13px;color:var(--dim);margin-bottom:14px}
.crumb a:hover{color:var(--text)}
.crumb .sep{margin:0 8px;color:var(--dim)}

/* ---------- project detail ---------- */
.detail-head{background:linear-gradient(180deg,var(--panel-2),var(--panel));border:1px solid var(--line);border-radius:var(--radius);padding:26px;margin-top:10px}
.detail-top{display:flex;gap:26px;align-items:flex-start;flex-wrap:wrap}
.detail-score{flex:none;display:flex;flex-direction:column;align-items:center;gap:8px;padding-top:4px}
.score-ring.lg{width:96px;height:96px}
.score-ring.lg .inner{width:78px;height:78px}
.score-ring.lg .val{font-size:25px}
.score-ring.lg .of{font-size:9.5px}
.detail-titles{flex:1;min-width:240px}
.detail-titles h1{font-size:clamp(26px,4vw,36px);letter-spacing:-.03em;font-weight:750;display:flex;align-items:baseline;gap:12px;flex-wrap:wrap}
.detail-titles h1 .tkr{font-family:var(--mono);font-size:14px;color:var(--muted);font-weight:400}
.detail-tagline{color:var(--muted);font-size:16px;margin-top:8px}
.detail-tags{display:flex;gap:8px;margin-top:14px;flex-wrap:wrap}
.detail-actions{flex:none;display:flex;gap:10px;flex-wrap:wrap;justify-content:flex-end;align-items:flex-start}

.layout{display:grid;grid-template-columns:1fr 340px;gap:22px;margin:22px 0 40px;align-items:start}
.card{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);padding:22px}
.card + .card{margin-top:16px}
.card h2{font-size:15px;font-weight:650;letter-spacing:-.01em;padding-bottom:14px;border-bottom:1px solid var(--line-soft);margin-bottom:16px;display:flex;align-items:center;gap:8px}
.card h2 .h2-note{font-size:12px;color:var(--dim);font-weight:400;margin-left:auto}
.overview p{color:#c9c9cf;font-size:15px}
.overview p + p{margin-top:12px}

.kv{display:grid;grid-template-columns:170px 1fr;gap:0;font-size:14px}
.kv .k{color:var(--dim);padding:9px 12px 9px 0;border-bottom:1px solid var(--line-soft);font-size:13px}
.kv .v{padding:9px 0;border-bottom:1px solid var(--line-soft);min-width:0;word-break:break-word}
.kv .v.mono{font-family:var(--mono);font-size:12.5px}
.kv .row:last-child .k,.kv .row:last-child .v{border-bottom:0}
.team-badge{display:inline-block;font-size:11.5px;font-weight:600;padding:2px 9px;border-radius:6px;letter-spacing:.02em}
.team-doxxed{color:var(--good);background:rgba(52,211,153,.1);border:1px solid rgba(52,211,153,.25)}
.team-partial{color:var(--mid);background:rgba(251,191,36,.08);border:1px solid rgba(251,191,36,.25)}
.team-anon{color:var(--bad);background:rgba(248,113,113,.08);border:1px solid rgba(248,113,113,.25)}
.status-active{color:var(--good)} .status-inactive{color:var(--bad)}

.dim{display:grid;grid-template-columns:130px 1fr 34px;align-items:center;gap:14px;padding:9px 0}
.dim .dname{font-size:13px;color:var(--muted)}
.dim .dname small{display:block;color:var(--dim);font-size:11.5px}
.bar{height:6px;border-radius:999px;background:#202027;overflow:hidden}
.bar i{display:block;height:100%;border-radius:999px;background:var(--dim);width:0}
.bar i.lv-good{background:var(--good)} .bar i.lv-mid{background:var(--mid)} .bar i.lv-bad{background:var(--bad)}
.dim .dval{font-size:12.5px;font-weight:600;text-align:right;font-family:var(--mono)}
.dim-note{font-size:12px;color:var(--dim);margin-top:6px;line-height:1.6}

.signal{display:flex;gap:12px;padding:11px 0;border-bottom:1px solid var(--line-soft);font-size:14px;align-items:flex-start}
.signal:last-child{border-bottom:0}
.signal .ic{flex:none;width:22px;height:22px;border-radius:50%;display:grid;place-items:center;font-size:12px;font-weight:700;margin-top:1px}
.signal.t-info .ic{color:var(--info);background:rgba(96,165,250,.12)}
.signal.t-warn .ic{color:var(--mid);background:rgba(251,191,36,.1)}
.signal.t-alert .ic{color:var(--bad);background:rgba(248,113,113,.1)}
.signal .stxt{color:#c9c9cf}
.signal.t-alert .stxt{color:#e8b4b4}

.side-card{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);padding:20px}
.side-card + .side-card{margin-top:16px}
.side-card h3{font-size:13px;letter-spacing:.06em;text-transform:uppercase;color:var(--dim);margin-bottom:14px;font-weight:600}
.side-summary{display:flex;align-items:center;gap:16px}
.side-summary .txt b{font-size:15px}
.side-summary .txt p{color:var(--muted);font-size:13px;margin-top:2px}
.socials{display:flex;flex-direction:column;gap:2px}
.socials a{display:flex;align-items:center;gap:10px;padding:7px 6px;border-radius:7px;font-size:13.5px;color:var(--muted)}
.socials a:hover{color:var(--text);background:var(--panel-2)}
.socials .dot{width:6px;height:6px;border-radius:50%;background:var(--dim);flex:none}
.socials a:hover .dot{background:var(--text)}
.disclaimer-box{font-size:12.5px;color:var(--dim);line-height:1.7;border:1px dashed #2c2c33;border-radius:9px;padding:12px 14px}
.quote-block{border-left:2px solid var(--line);padding:2px 0 2px 16px;margin-top:14px}
.quote-block p{color:#b9b9c0;font-size:14.5px}

/* ---------- submit ---------- */
.submit-grid{display:grid;grid-template-columns:1fr 380px;gap:22px;margin:22px 0 40px;align-items:start}
.form-card{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);padding:24px}
.form-card h2{font-size:17px;font-weight:650;margin-bottom:4px}
.form-card .fc-sub{color:var(--muted);font-size:13.5px;margin-bottom:20px}
.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.field{display:flex;flex-direction:column;gap:7px;font-size:13px;color:var(--muted)}
.field.full{grid-column:1/-1}
.field .req{color:var(--bad)}
.field input,.field select,.field textarea{background:var(--panel-2);border:1px solid var(--line);border-radius:9px;padding:11px 13px;color:var(--text);font-size:14px;font-family:inherit;outline:none;transition:border-color .15s;width:100%}
.field textarea{resize:vertical;min-height:96px}
.field input:focus,.field select:focus,.field textarea:focus{border-color:#3d3d46}
.field .hint{font-size:11.5px;color:var(--dim)}
.check{display:flex;gap:10px;align-items:flex-start;font-size:13px;color:var(--muted);margin-top:4px;cursor:pointer}
.check input{margin-top:3px;accent-color:#f4f4f6}
.form-foot{margin-top:20px;display:flex;flex-direction:column;gap:14px}
.steps{display:flex;flex-direction:column;gap:14px;counter-reset:step}
.step{display:flex;gap:14px}
.step .n{flex:none;width:26px;height:26px;border-radius:50%;border:1px solid var(--line);display:grid;place-items:center;font-size:13px;font-weight:600;color:var(--muted);background:var(--panel-2);counter-increment:step}
.step b{font-size:14px;display:block;margin-bottom:2px}
.step p{font-size:13px;color:var(--muted)}

/* ---------- discussions ---------- */
.discuss-head{display:flex;align-items:flex-end;gap:16px;flex-wrap:wrap;padding:40px 0 6px}
.discuss-head h1{font-size:clamp(24px,3.6vw,32px);letter-spacing:-.025em;font-weight:750}
.discuss-head .lede{color:var(--muted);font-size:15px;margin-top:8px;max-width:640px}
.discuss-head .btn{margin-left:auto}
.discuss-layout{display:grid;grid-template-columns:1fr 340px;gap:22px;margin:22px 0 40px;align-items:start}
.thread{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);padding:18px 20px;cursor:pointer;transition:border-color .15s,background .15s}
.thread + .thread{margin-top:10px}
.thread:hover{border-color:#34343c}
.thread.open{background:var(--panel-2)}
.thread-top{display:flex;gap:10px;align-items:center;flex-wrap:wrap}
.thread-tags{display:flex;gap:6px;flex-wrap:wrap}
.pill{font-size:10.5px;font-weight:600;letter-spacing:.04em;text-transform:uppercase;padding:2px 8px;border-radius:5px;border:1px solid var(--line);color:var(--muted)}
.pill.hot{color:var(--bad);border-color:rgba(248,113,113,.3);background:rgba(248,113,113,.06)}
.pill.pinned{color:var(--info);border-color:rgba(96,165,250,.3);background:rgba(96,165,250,.06)}
.thread h3{font-size:15.5px;font-weight:600;margin-top:8px;letter-spacing:-.01em}
.thread .snip{color:var(--muted);font-size:13.5px;margin-top:6px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.thread-meta{display:flex;gap:18px;color:var(--dim);font-size:12.5px;margin-top:12px;flex-wrap:wrap}
.thread-meta .who{font-family:var(--mono);font-size:12px;color:var(--muted)}
.thread-replies{margin-top:14px;border-top:1px solid var(--line-soft);padding-top:12px;display:none}
.thread.open .thread-replies{display:block}
.reply{display:flex;gap:12px;padding:10px 0}
.reply .av{flex:none;width:30px;height:30px;border-radius:50%;background:var(--panel-2);border:1px solid var(--line);display:grid;place-items:center;font-size:12px;font-weight:600}
.reply .rb{min-width:0}
.reply .rmeta{font-size:12px;color:var(--dim)}
.reply .rmeta .who{font-family:var(--mono);color:var(--muted)}
.reply p{font-size:13.5px;color:#c9c9cf;margin-top:4px}
.vote{display:inline-flex;align-items:center;gap:6px;font-size:12.5px;color:var(--dim);margin-left:auto}
.vote button{background:var(--panel-2);border:1px solid var(--line);color:var(--muted);border-radius:7px;padding:3px 9px;font-size:13px;line-height:1}
.vote button:hover{color:var(--text)}
.vote.on{color:var(--good)}

.pick{display:flex;gap:14px;align-items:flex-start;padding:12px 0;border-bottom:1px solid var(--line-soft)}
.pick:last-child{border-bottom:0}
.pick .pv{flex:none;display:flex;flex-direction:column;align-items:center;gap:2px;width:44px;padding:7px 0;border-radius:9px;background:var(--panel-2);border:1px solid var(--line);cursor:pointer;transition:all .12s}
.pick .pv:hover{border-color:#3a3a42}
.pick .pv.up{background:rgba(52,211,153,.1);border-color:rgba(52,211,153,.35)}
.pick .pv .n{font-size:14px;font-weight:700}
.pick .pv .up-ic{color:var(--dim);font-size:11px;line-height:1}
.pick .pv.up .up-ic,.pick .pv.up .n{color:var(--good)}
.pick b{font-size:14px}
.pick .pn{color:var(--dim);font-family:var(--mono);font-size:11.5px;margin-left:6px}
.pick p{color:var(--muted);font-size:13px;margin-top:3px}
.pick .pm{font-size:12px;color:var(--dim);margin-top:6px}
.pick .pm .who{font-family:var(--mono);color:var(--muted)}
.pick-link{color:var(--info);font-size:12.5px;margin-top:6px;display:inline-block}
.pick-link:hover{text-decoration:underline}

/* ---------- about ---------- */
.about-hero{padding:46px 0 10px}
.about-hero h1{font-size:clamp(26px,4vw,38px);letter-spacing:-.03em;font-weight:750;max-width:760px}
.about-hero .lede{color:var(--muted);font-size:17px;max-width:680px;margin-top:14px}
.about-grid{display:grid;grid-template-columns:1fr 340px;gap:22px;margin:22px 0 40px;align-items:start}
.about-body h2{font-size:20px;letter-spacing:-.02em;font-weight:700;margin:34px 0 12px}
.about-body h2:first-child{margin-top:0}
.about-body p{color:#c9c9cf;font-size:15px;margin-bottom:12px}
.about-body ul{list-style:none;display:flex;flex-direction:column;gap:10px;margin:0 0 16px}
.about-body ul li{display:flex;gap:12px;color:#c9c9cf;font-size:14.5px}
.about-body ul li .tick{flex:none;color:var(--good);font-weight:700}
.about-body ul li .warn{color:var(--mid)}
.source-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:10px;margin:14px 0 6px}
.source-tile{background:var(--panel-2);border:1px solid var(--line);border-radius:9px;padding:12px 14px}
.source-tile b{display:block;font-size:13.5px}
.source-tile span{font-size:12px;color:var(--dim)}
.method-row{display:grid;grid-template-columns:150px 1fr 44px;gap:14px;align-items:center;padding:10px 0;border-bottom:1px solid var(--line-soft)}
.method-row:last-child{border-bottom:0}
.method-row .mname{font-size:13.5px;font-weight:500}
.method-row .mdesc{color:var(--muted);font-size:12.5px;line-height:1.5}
.method-row .mval{font-family:var(--mono);font-size:12.5px;color:var(--dim);text-align:right}
.note{background:var(--panel-2);border:1px solid var(--line);border-radius:9px;padding:14px 16px;font-size:13.5px;color:var(--muted);margin:14px 0}
.note b{color:var(--text)}

/* ---------- footer ---------- */
.site-footer{border-top:1px solid var(--line-soft);margin-top:40px;background:#0c0c0f}
.footer-grid{display:grid;grid-template-columns:1.6fr 1fr 1fr 1.4fr;gap:34px;padding:44px 24px 30px}
.footer-brand .brand{margin-bottom:14px}
.footer-blurb{color:var(--dim);font-size:13.5px;margin-top:14px;max-width:300px}
.footer-col h4{font-size:12px;letter-spacing:.08em;text-transform:uppercase;color:var(--dim);margin-bottom:14px;font-weight:600}
.footer-col a{display:block;color:var(--muted);font-size:13.5px;padding:4px 0}
.footer-col a:hover{color:var(--text)}
.footer-note p{font-size:12px;color:var(--dim);line-height:1.7}
.footer-sample{margin-top:10px;color:#4c4c55}
.footer-bottom{border-top:1px solid var(--line-soft);padding:18px 24px;color:#4c4c55;font-size:12.5px}

/* ---------- modal ---------- */
.modal-backdrop{position:fixed;inset:0;background:rgba(0,0,0,.66);backdrop-filter:blur(4px);display:flex;align-items:flex-start;justify-content:center;padding:12vh 20px 20px;z-index:100}
.modal-backdrop[hidden]{display:none}
.modal{background:#131318;border:1px solid #2a2a31;border-radius:16px;padding:26px;width:100%;max-width:440px;position:relative;box-shadow:0 24px 70px rgba(0,0,0,.5)}
.modal-x{position:absolute;top:14px;right:16px;background:none;border:0;color:var(--dim);font-size:24px;line-height:1}
.modal-x:hover{color:var(--text)}
.modal h3{font-size:19px;font-weight:700;letter-spacing:-.01em}
.modal-sub{color:var(--muted);font-size:13.5px;margin:8px 0 20px}
.modal .field{margin-bottom:14px}
.modal-hint{font-size:12px;color:var(--dim);margin-top:14px;text-align:center}
.success{text-align:center;padding:18px 6px}
.success .big{width:56px;height:56px;border-radius:50%;background:rgba(52,211,153,.12);color:var(--good);display:grid;place-items:center;font-size:26px;margin:0 auto 18px}
.success h3{font-size:19px;margin-bottom:8px}
.success p{color:var(--muted);font-size:14px;margin-bottom:6px}
.success .ref{font-family:var(--mono);color:var(--good);font-size:13px}
.success .btn{margin-top:18px}

/* ---------- toast ---------- */
.toasts{position:fixed;bottom:22px;left:50%;transform:translateX(-50%);display:flex;flex-direction:column;gap:8px;z-index:200;align-items:center}
.toast{background:#1b1b21;border:1px solid #303038;color:var(--text);font-size:13.5px;padding:11px 18px;border-radius:10px;box-shadow:0 10px 34px rgba(0,0,0,.45);opacity:0;transform:translateY(8px);animation:toastIn .2s forwards}
.toast.out{animation:toastOut .25s forwards}
@keyframes toastIn{to{opacity:1;transform:translateY(0)}}
@keyframes toastOut{to{opacity:0;transform:translateY(6px)}}

/* ---------- responsive ---------- */
@media (max-width:1020px){
  .layout,.about-grid,.discuss-layout{grid-template-columns:1fr}
  .submit-grid{grid-template-columns:1fr}
  .footer-grid{grid-template-columns:1fr 1fr;gap:26px}
  .proj-row{grid-template-columns:80px 1fr}
  .proj-facts{display:none}
}
@media (max-width:860px){
  .menu-btn{display:inline-flex}
  .site-nav{position:absolute;top:var(--header-h);left:0;right:0;background:rgba(10,10,12,.97);border-bottom:1px solid var(--line);flex-direction:column;align-items:stretch;padding:10px 14px 16px;gap:2px;display:none}
  .site-nav.open{display:flex}
  .site-nav a{padding:12px 14px}
  .hero-stats .stat{padding:0 18px}
  .hero-stats .stat + .stat::before{display:none}
  .kv{grid-template-columns:130px 1fr}
  .dim{grid-template-columns:1fr;gap:6px;padding:12px 0}
  .dim .dval{text-align:left}
  .detail-actions{width:100%;justify-content:flex-start}
  .form-grid{grid-template-columns:1fr}
}
@media (max-width:560px){
  .container{padding:0 16px}
  .hero{padding:40px 0 26px}
  .proj-row{grid-template-columns:1fr;gap:14px}
  .score-badge{flex-direction:row;justify-content:flex-start;gap:14px}
  .detail-top{gap:20px}
  .footer-grid{grid-template-columns:1fr}
}

/* ---------- FraudScope additions ---------- */
.domain{font-family:var(--mono);font-weight:600;font-size:16px;letter-spacing:-.01em}
.domain .favicon-dot{display:inline-block;width:8px;height:8px;border-radius:2px;margin-right:8px}
.proj-ticker{text-transform:lowercase}
.chipbar{display:flex;gap:8px;flex-wrap:wrap;margin:14px 0 18px}
.chip .cnt{opacity:.6;font-variant-numeric:tabular-nums}
.verdict{margin-top:5px;font-size:13.5px;color:var(--muted)}
.verdict b{color:var(--bad)}
.verdict b.amber{color:var(--mid)}
.verdict b.green{color:var(--good)}
.flag-date{font-size:11.5px;color:var(--dim);margin-top:6px}
.lookup{border:1px solid var(--line);border-radius:var(--radius);background:var(--panel);padding:24px;margin:10px 0 22px}
.lookup h2{font-size:16px;margin-bottom:6px;display:flex;align-items:center;gap:10px}
.lookup .q{font-family:var(--mono);color:var(--info);font-size:14px;background:var(--panel-2);border:1px solid var(--line);padding:2px 10px;border-radius:6px}
.lookup p{color:var(--muted);font-size:14px;max-width:720px}
.lookup-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:16px}
.evidence{display:flex;flex-direction:column;gap:2px}
.evidence a{display:flex;align-items:center;gap:10px;padding:8px 6px;border-radius:7px;font-size:13.5px;color:var(--muted)}
.evidence a:hover{color:var(--text);background:var(--panel-2)}
.evidence .src-name{color:var(--text);font-weight:500}
.evidence .dot{width:6px;height:6px;border-radius:50%;background:var(--dim);flex:none}
.evidence a:hover .dot{background:var(--text)}
.ext-ic{opacity:.5;font-size:11px;margin-left:auto}
.status-chip{display:inline-block;font-size:11px;font-weight:600;letter-spacing:.03em;padding:3px 9px;border-radius:6px}
.st-flagged{color:var(--bad);background:rgba(248,113,113,.1);border:1px solid rgba(248,113,113,.3)}
.st-review{color:var(--mid);background:rgba(251,191,36,.08);border:1px solid rgba(251,191,36,.3)}
.st-clear{color:var(--good);background:rgba(52,211,153,.1);border:1px solid rgba(52,211,153,.3)}
.who-report{display:flex;gap:14px;align-items:flex-start;padding:11px 0;border-bottom:1px solid var(--line-soft)}
.who-report:last-child{border-bottom:0}
.who-report .av{flex:none;width:30px;height:30px;border-radius:50%;background:var(--panel-2);border:1px solid var(--line);display:grid;place-items:center;font-size:12px;font-weight:600}
.who-report .rb p{font-size:13.5px;color:#c9c9cf;margin-top:2px}
.who-report .rmeta{font-size:12px;color:var(--dim)}
.who-report .rmeta .who{font-family:var(--mono);color:var(--muted)}
.big-alert{display:flex;gap:14px;align-items:center;background:rgba(248,113,113,.06);border:1px solid rgba(248,113,113,.28);border-radius:11px;padding:14px 16px;margin-bottom:16px}
.big-alert.amber{background:rgba(251,191,36,.05);border-color:rgba(251,191,36,.28)}
.big-alert.green{background:rgba(52,211,153,.05);border-color:rgba(52,211,153,.28)}
.big-alert .ba-ic{flex:none;width:34px;height:34px;border-radius:50%;display:grid;place-items:center;font-size:16px}
.big-alert .ba-ic.red{background:rgba(248,113,113,.15);color:var(--bad)}
.big-alert .ba-ic.amber{background:rgba(251,191,36,.12);color:var(--mid)}
.big-alert .ba-ic.green{background:rgba(52,211,153,.12);color:var(--good)}
.big-alert b{font-size:14.5px;display:block}
.big-alert p{font-size:13px;color:var(--muted);margin-top:2px}
/* search with go button */
.search-wrap form#riskForm{position:relative}
#riskForm .search-input{padding-right:104px}
.search-go{position:absolute;right:7px;top:50%;transform:translateY(-50%);padding:9px 16px}
.section-head{display:flex;align-items:baseline;gap:12px;flex-wrap:wrap;margin:26px 0 0}
.section-head h2{font-size:20px;letter-spacing:-.02em;font-weight:700}
.section-head .hint-note{font-size:12.5px;color:var(--dim)}
button.chip{font-family:inherit;line-height:1.4;text-align:left}
button.chip.on{color:#0a0a0c}
.evidence-link{color:var(--info);text-decoration:none;white-space:nowrap}
.evidence-link:hover{text-decoration:underline}
/* ---------- Lumo additions ---------- */
.brand-mark{height:30px;width:auto;flex:none}
.brand-word{height:22px;width:auto}
.brand{line-height:1}
.brand-name{display:none}
.search-go{position:absolute;right:7px;top:50%;transform:translateY(-50%);padding:9px 18px}
.search-wrap .search-input{padding-right:110px}
.section-head{display:flex;align-items:baseline;gap:12px;flex-wrap:wrap;margin:34px 0 16px}
.section-head h2{font-size:20px;letter-spacing:-.02em;font-weight:700}
.section-head .more{margin-left:auto;font-size:13px;color:var(--info)}
.section-head .more:hover{text-decoration:underline}
.cat-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}
.cat-card{display:flex;gap:14px;align-items:flex-start;background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);padding:18px;cursor:pointer;transition:border-color .15s,background .15s,transform .1s}
.cat-card:hover{border-color:#34343c;background:var(--panel-2);transform:translateY(-2px)}
.cat-ic{flex:none;width:44px;height:44px;border-radius:12px;background:var(--panel-2);border:1px solid var(--line);display:grid;place-items:center;font-size:22px}
.cat-card h3{font-size:15.5px;font-weight:650}
.cat-card .cat-en{font-size:11px;color:var(--dim);font-weight:400;margin-left:6px}
.cat-card p{font-size:12.5px;color:var(--muted);margin-top:5px;line-height:1.5}
.cat-card .cat-meta{display:flex;gap:10px;margin-top:9px;font-size:11.5px;color:var(--dim)}
.cat-card .cat-meta b{color:var(--text);font-weight:600}
.row-item{display:grid;grid-template-columns:78px 1fr auto;gap:18px;align-items:center;background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);padding:16px 18px;cursor:pointer;transition:border-color .15s,background .15s}
.row-item:hover{border-color:#34343c;background:var(--panel-2)}
.row-item .score-badge{justify-self:center}
.score-ring.sm{width:52px;height:52px}
.score-ring.sm .inner{width:42px;height:42px}
.score-ring.sm .val{font-size:14px}
.score-ring.sm .of{font-size:8px}
.item-main{min-width:0}
.item-title{display:flex;align-items:baseline;gap:10px;flex-wrap:wrap}
.item-name{font-size:16.5px;font-weight:650}
.item-domain{font-family:var(--mono);font-size:11.5px;color:var(--dim)}
.item-tagline{color:var(--muted);font-size:13.5px;margin-top:4px;overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}
.item-meta{display:flex;gap:8px;margin-top:9px;flex-wrap:wrap}
.user-score{display:flex;flex-direction:column;align-items:flex-end;gap:2px;font-size:12px;color:var(--dim);white-space:nowrap}
.user-score b{font-size:17px;font-weight:700;color:var(--text)}
.user-score .stars{color:#f5c044;letter-spacing:2px;font-size:13px}
.user-score .stars .off{color:#3a3a42}
.badge{display:inline-block;font-size:11px;font-weight:600;padding:2px 9px;border-radius:6px;letter-spacing:.02em}
.bd-ok{color:var(--good);background:rgba(52,211,153,.1);border:1px solid rgba(52,211,153,.28)}
.bd-risk{color:var(--bad);background:rgba(248,113,113,.1);border:1px solid rgba(248,113,113,.28)}
.bd-review{color:var(--mid);background:rgba(251,191,36,.08);border:1px solid rgba(251,191,36,.3)}
.stars-row{color:#f5c044;letter-spacing:3px;font-size:22px;line-height:1}
.rate-widget{display:flex;gap:6px;align-items:center;margin-top:6px}
.rate-btn{background:none;border:0;color:#3a3a42;font-size:26px;line-height:1;padding:2px;transition:color .1s,transform .08s}
.rate-btn:hover{transform:scale(1.15)}
.rate-btn.on{color:#f5c044}
.rate-btn.self{color:#f5c044}
.dist-row{display:grid;grid-template-columns:34px 1fr 42px;align-items:center;gap:12px;padding:4px 0;font-size:12.5px;color:var(--muted)}
.dist-row .bar{height:6px;background:#202027;border-radius:999px;overflow:hidden}
.dist-row .bar i{display:block;height:100%;background:#f5c044;border-radius:999px}
.dist-row .n{text-align:right;font-variant-numeric:tabular-nums}
.big-score{display:flex;gap:18px;align-items:center}
.big-score .txt b{font-size:18px;display:block}
.big-score .txt p{color:var(--muted);font-size:13px;margin-top:3px;max-width:280px}
.item-detail-head{display:flex;gap:24px;align-items:flex-start;flex-wrap:wrap}
.score-ring.lg{width:104px;height:104px}
.score-ring.lg .inner{width:84px;height:84px}
.score-ring.lg .val{font-size:27px}
.score-ring.lg .of{font-size:10px}
.empty-state{padding:60px 20px;text-align:center;color:var(--muted);background:var(--panel);border:1px dashed var(--line);border-radius:var(--radius)}
.empty-state h3{color:var(--text);margin:10px 0 6px;font-size:18px}
@media (max-width:1020px){.cat-grid{grid-template-columns:repeat(2,1fr)}}
@media (max-width:600px){.cat-grid{grid-template-columns:1fr}.row-item{grid-template-columns:1fr;gap:12px}.user-score{align-items:flex-start;flex-direction:row;gap:10px}.score-badge{flex-direction:row;gap:12px}}
/* ---------- Lumo 运营状态 ---------- */
.live-tag{display:inline-flex;align-items:center;gap:6px;font-size:11.5px;font-weight:600;padding:3px 10px;border-radius:999px;border:1px solid var(--line)}
.live-tag .dot{width:7px;height:7px;border-radius:50%;flex:none}
.live-tag.on{color:var(--good);background:rgba(52,211,153,.08);border-color:rgba(52,211,153,.25)}
.live-tag.on .dot{background:var(--good);box-shadow:0 0 0 3px rgba(52,211,153,.15)}
.live-tag.part{color:var(--mid);background:rgba(251,191,36,.07);border-color:rgba(251,191,36,.25)}
.live-tag.part .dot{background:var(--mid)}
.live-tag.off{color:#7c7c86;background:rgba(120,120,130,.07);border-color:#33333b}
.live-tag.off .dot{background:#5b5b64}
.chipbar .chip .cnt{opacity:.6}
.filter-hint{font-size:12px;color:var(--dim);margin:4px 0 10px}
.live-check{display:grid;grid-template-columns:1fr 1fr 1fr;gap:12px;margin-top:14px}
.live-cell{background:var(--panel-2);border:1px solid var(--line);border-radius:10px;padding:14px}
.live-cell .ic{font-size:18px;margin-bottom:8px}
.live-cell b{display:block;font-size:13.5px;margin-bottom:2px}
.live-cell p{font-size:12px;color:var(--dim)}
.live-cell.ok{border-color:rgba(52,211,153,.3)}
.live-cell.ok .ic{color:var(--good)}
.live-cell.no .ic{color:var(--bad)}
.live-cell.no{border-color:rgba(248,113,113,.3)}
@media (max-width:760px){.live-check{grid-template-columns:1fr}}
/* ---------- Lumo v3: slogan / DEAD / link / intro ---------- */
.item-domain{font-family:var(--mono);font-size:12px;color:var(--info)}
.item-domain:hover{text-decoration:underline}
.item-domain.dead-link{color:var(--dim);cursor:not-allowed;text-decoration:none}
.item-domain .ext{font-size:10px;opacity:.7}
.item-intro{color:var(--muted);font-size:13.5px;margin-top:4px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;line-height:1.5}
.badge.dead{color:#fff;background:var(--bad);border:none}
.row-item.dead-row{opacity:.72;border-style:dashed}
.row-item.dead-row .item-name{text-decoration:line-through;text-decoration-color:rgba(248,113,113,.7)}
.dead-head{display:flex;align-items:center;gap:12px;margin:34px 0 4px;flex-wrap:wrap}
.dead-head h2{font-size:18px;font-weight:700;letter-spacing:-.01em}
.dead-head .dead-badge{font-size:11px;font-weight:800;letter-spacing:.08em;color:#fff;background:var(--bad);padding:3px 10px;border-radius:6px}
.dead-head .dead-note{font-size:12.5px;color:var(--dim)}
.live-sec-title{display:flex;align-items:center;gap:10px;margin:0 0 14px;flex-wrap:wrap}
.live-sec-title h2{font-size:19px;font-weight:700}
.live-sec-title .cnt{font-size:12px;color:var(--dim);font-weight:400}
.tag.comb{color:#c9b7ff;border-color:rgba(201,183,255,.28);background:rgba(201,183,255,.07)}
/* ---------- Lumo v4: 极简首页 + 类目重设计 + 提交/审核 ---------- */
.cat-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-top:6px}
.cat-card{display:flex;flex-direction:column;align-items:flex-start;padding:20px 20px 16px;background:linear-gradient(180deg,#141419,#0f0f13);border:1px solid var(--line);border-radius:16px;cursor:pointer;transition:border-color .18s,transform .18s,background .18s;position:relative}
.cat-card:hover{border-color:#34343d;background:linear-gradient(180deg,#17171d,#111116);transform:translateY(-2px)}
.cat-ico{width:46px;height:46px;border-radius:13px;display:grid;place-items:center;color:#d8d8de;background:rgba(255,255,255,.035);border:1px solid #28282f;margin-bottom:16px;transition:color .18s,background .18s,border-color .18s}
.cat-card:hover .cat-ico{color:#7ea2ff;background:rgba(53,104,224,.12);border-color:rgba(53,104,224,.45)}
.cat-ico svg{width:23px;height:23px}
.cat-card h3{font-size:15.5px;font-weight:650;letter-spacing:.01em;line-height:1.3}
.cat-card .cat-en{font-size:10.5px;color:var(--dim);letter-spacing:.06em;text-transform:uppercase;margin-top:4px}
.cat-card .cat-meta{margin-top:16px;width:100%;padding-top:13px;border-top:1px solid var(--line-soft);display:flex;align-items:baseline;gap:16px;font-size:11.5px;color:var(--dim)}
.cat-card .cat-meta .sep{color:#33333c}
.cat-card .cat-meta b{color:var(--text);font-weight:650;font-variant-numeric:tabular-nums}
.cat-card .cat-meta .risk b{color:var(--bad)}
.cat-card .cat-meta .dead b{color:#9a9aa3}
.cat-card .cat-meta .avg b{color:var(--text)}
.hero{padding-bottom:30px}
.hero .sub{display:none}
.hero h1{font-size:clamp(34px,6vw,54px);margin-bottom:26px}
.hero-stats{margin-top:30px}

/* 提交页 & 审核台 */
.queue-note{display:flex;gap:10px;align-items:center;background:rgba(53,104,224,.08);border:1px solid rgba(53,104,224,.3);color:#bcd0ff;border-radius:10px;padding:10px 14px;font-size:13px;margin-bottom:16px}
.admin-row{display:flex;align-items:center;gap:16px;background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:14px 16px;margin-bottom:10px;flex-wrap:wrap}
.admin-row .g{flex:1;min-width:220px}
.admin-row .an{font-weight:650;font-size:15px}
.admin-row .ad{font-family:var(--mono);font-size:12px;color:var(--info)}
.admin-row .ac{font-size:12.5px;color:var(--dim);margin-top:2px}
.admin-row .ab{font-size:12.5px;color:var(--muted)}
@media (max-width:1020px){.cat-grid{grid-template-columns:repeat(2,1fr)}}
@media (max-width:600px){.cat-grid{grid-template-columns:1fr}}
/* ---------- v6: DEAD stamp / masked link / recent / admin gate ---------- */
.dead-stamp{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%) rotate(-16deg);z-index:2;pointer-events:none;font-weight:900;font-size:34px;letter-spacing:.3em;text-indent:.3em;color:rgba(248,113,113,.16);-webkit-text-stroke:2px rgba(248,113,113,.75);border:4px solid rgba(248,113,113,.55);border-radius:14px;padding:6px 22px 6px 26px;white-space:nowrap;user-select:none}
.row-item.dead-row{position:relative;overflow:hidden}
.detail-dead-wrap{position:relative;overflow:hidden}
.detail-dead-wrap .dead-stamp{font-size:64px;top:55%}
.mask-domain{color:var(--dim);cursor:pointer;border-bottom:1px dashed #33333c;font-family:var(--mono);font-size:12px}
.mask-domain:hover{color:var(--text)}
.recent-strip{display:flex;flex-direction:column;gap:8px;margin-top:22px}
.recent-head{display:flex;align-items:baseline;gap:10px;margin-bottom:4px}
.recent-head h2{font-size:15px;font-weight:650}
.recent-head .clear{font-size:12px;color:var(--dim);cursor:pointer;margin-left:auto}
.recent-head .clear:hover{color:var(--text)}
.recent-row{display:flex;align-items:center;gap:12px;background:var(--panel);border:1px solid var(--line);border-radius:10px;padding:10px 14px;cursor:pointer;transition:border-color .15s}
.recent-row:hover{border-color:#34343c}
.recent-row .rn{font-weight:600;font-size:14px}
.recent-row .rd{font-family:var(--mono);font-size:11.5px;color:var(--dim)}
.recent-row .rt{font-size:12px;color:var(--muted);margin-left:auto;font-variant-numeric:tabular-nums}
.deny-box{max-width:560px;margin:30px auto;text-align:center}
.deny-box .lock{font-size:40px;margin-bottom:14px}
.step-note{display:flex;gap:8px;align-items:center;background:rgba(53,104,224,.08);border:1px solid rgba(53,104,224,.3);border-radius:8px;padding:8px 12px;color:#bcd0ff;font-size:12.5px;margin-bottom:12px}

/* ---------- v8: 提交进度 ---------- */
.my-sub{display:flex;flex-direction:column;gap:10px;margin:6px 0 18px}
.sub-row{display:flex;align-items:center;gap:14px;background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:14px 16px;flex-wrap:wrap}
.sub-row .sn{font-weight:650;font-size:15px}
.sub-row .sd{font-family:var(--mono);font-size:12px;color:var(--dim)}
.sub-row .sc{font-size:12.5px;color:var(--dim)}
.st-pill{display:inline-flex;align-items:center;gap:7px;font-size:12px;font-weight:650;padding:5px 12px;border-radius:999px;margin-left:auto}
.st-pill .dot{width:7px;height:7px;border-radius:50%;background:currentColor}
.st-pill.pending{color:var(--mid);background:rgba(251,191,36,.08);border:1px solid rgba(251,191,36,.3)}
.st-pill.pending .dot{animation:blink 1.1s infinite}
.st-pill.done{color:var(--good);background:rgba(52,211,153,.08);border:1px solid rgba(52,211,153,.3)}
.st-pill .subnote{font-weight:400;font-size:11.5px;opacity:.8}
@keyframes blink{50%{opacity:.25}}
.progress-line{display:flex;align-items:center;gap:10px;font-size:12.5px;color:var(--dim);margin:2px 0 0 2px}


/* ---------- 运营名单 vs 死亡名单(区分) ---------- */
.live-sec-title{display:flex;align-items:baseline;gap:12px;margin:26px 0 14px;flex-wrap:wrap}
.live-sec-title h2{font-size:19px;font-weight:750;letter-spacing:-.01em}
.live-sec-title .cnt{font-size:12px;color:var(--dim)}

.dead-panel{margin-top:44px;border:1px dashed rgba(248,113,113,.4);border-radius:16px;background:linear-gradient(180deg,rgba(248,113,113,.055),rgba(10,10,12,0) 60%);padding:20px 20px 8px}
.dead-panel-head{display:flex;align-items:center;gap:12px;flex-wrap:wrap;padding-bottom:12px;border-bottom:1px solid rgba(248,113,113,.22);margin-bottom:4px}
.dead-badge{display:inline-block;font-size:11px;font-weight:800;letter-spacing:.22em;text-indent:.22em;color:#fff;background:var(--bad);padding:4px 10px;border-radius:6px}
.dead-panel-head h2{font-size:16px;font-weight:800;letter-spacing:.08em;color:#fca5a5}
.dead-panel-head .dead-note{font-size:12px;color:var(--dim);margin-left:auto}
.dead-list{display:flex;flex-direction:column}
.dead-line{display:flex;align-items:center;gap:16px;padding:14px 6px;border-bottom:1px dashed rgba(248,113,113,.14);cursor:pointer;transition:background .15s}
.dead-line:last-child{border-bottom:0}
.dead-line:hover{background:rgba(248,113,113,.05)}
.dead-line .dl-main{min-width:0}
.dead-line .dname{font-size:15px;font-weight:650;text-decoration:line-through;text-decoration-color:rgba(248,113,113,.55);text-decoration-thickness:1px}
.dead-line .ddom{font-family:var(--mono);font-size:11.5px;color:var(--dim);margin-top:2px}
.dead-line .dl-meta{display:flex;gap:8px;flex-wrap:wrap;align-items:center}
.dead-line .dl-note{margin-left:auto;font-size:11.5px;color:#8f8f98;white-space:nowrap}
@media (max-width:760px){.dead-line .dl-note{display:none}}


/* ---------- 首页分类:索引列表样式 ---------- */
.cat-index{margin-top:10px}
.index-head{display:flex;align-items:baseline;gap:10px;margin-bottom:2px}
.index-head span{font-size:12px;letter-spacing:.18em;color:var(--dim);text-transform:uppercase}
.index-head em{font-style:normal;font-size:11px;color:#4c4c55;margin-left:auto}
.cat-list{display:flex;flex-direction:column;border-top:1px solid var(--line-soft);margin-top:8px}
.cat-item{display:flex;align-items:center;gap:18px;padding:15px 8px;border-bottom:1px solid var(--line-soft);cursor:pointer;transition:background .15s,transform .15s;position:relative}
.cat-item:hover{background:rgba(255,255,255,.02);transform:translateX(3px)}
.cat-item .idx{font-family:var(--mono);font-size:12px;color:#4c4c55;width:30px;flex:none}
.cat-item .cat-ico{width:42px;height:42px;border-radius:12px;display:grid;place-items:center;color:#d8d8de;background:rgba(255,255,255,.03);border:1px solid #26262c;flex:none;transition:color .15s,background .15s,border-color .15s}
.cat-item:hover .cat-ico{color:#7ea2ff;background:rgba(53,104,224,.12);border-color:rgba(53,104,224,.45)}
.cat-item .cat-ico svg{width:21px;height:21px}
.cat-item .ci-main{min-width:0;flex:1}
.cat-item .ci-main h3{font-size:16px;font-weight:650;letter-spacing:.01em}
.cat-item .cat-en{display:block;font-size:11px;color:var(--dim);margin-top:3px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.cat-item .cat-meta{display:flex;gap:14px;font-size:11.5px;color:var(--dim);white-space:nowrap;flex:none}
.cat-item .cat-meta b{color:var(--text);font-weight:650}
.cat-item .cat-meta .risk b,.cat-item .cat-meta .risk{color:var(--bad)}
.cat-item .cat-meta .dead{color:#9a9aa3}
.cat-item .cat-go{color:#4c4c55;flex:none;font-size:16px;transition:color .15s,transform .15s}
.cat-item:hover .cat-go{color:var(--text);transform:translateX(3px)}
@media (max-width:760px){.cat-item .cat-en{max-width:70vw}.cat-item .cat-meta{display:none}}

/* ---------- DEAD 钢印(mini,斜向,保留) ---------- */
.dead-line{position:relative;overflow:hidden}
.stamp-mini{position:absolute;right:16px;top:50%;transform:translateY(-50%) rotate(-14deg);font-weight:900;font-size:14px;letter-spacing:.26em;text-indent:.26em;color:rgba(248,113,113,.14);-webkit-text-stroke:1.4px rgba(248,113,113,.7);border:2.5px solid rgba(248,113,113,.5);border-radius:8px;padding:3px 11px 3px 13px;pointer-events:none;white-space:nowrap}
.dead-line .dl-note{padding-right:96px}


/* ---------- 死亡名单:卡片 + 大斜钢印(无虚线) ---------- */
.dead-sec{margin-top:44px}
.dead-sec::before{content:"";display:block;height:1px;background:linear-gradient(90deg,rgba(248,113,113,.55),rgba(248,113,113,.05) 55%,transparent)}
.dead-sec-head{display:flex;align-items:center;gap:14px;flex-wrap:wrap;padding:16px 2px 6px}
.dead-sec-head h2{font-size:18px;font-weight:800;letter-spacing:.12em;color:#fca5a5;margin:0}
.dead-sec-head .dead-note{font-size:12px;color:var(--dim)}
.dead-cardlist{display:flex;flex-direction:column;gap:12px;margin-top:14px}
.row-item.dead-row{border-style:solid;border-color:#2b2124;opacity:.94;background:linear-gradient(180deg,#131316,#0f0f12)}
.row-item.dead-row .item-name{text-decoration:line-through;text-decoration-color:rgba(248,113,113,.65)}
.row-item.dead-row .dead-stamp{top:50%;left:50%;transform:translate(-50%,-50%) rotate(-16deg)}


.st-pill.off{color:#a0a0aa;background:rgba(140,140,150,.08);border:1px solid #3a3a42}
.st-pill.off .dot{background:#a0a0aa}


/* ---------- Liquid Glass (Apple-style) ----------
   不改变布局/结构,只增加玻璃质感 */
:root{
  --glass-bg: rgba(255,255,255,.045);
  --glass-bg-strong: rgba(255,255,255,.08);
  --glass-line: rgba(255,255,255,.12);
  --glass-hi: rgba(255,255,255,.18);
}
.site-header{background:rgba(16,16,20,.55);backdrop-filter:blur(24px) saturate(180%);-webkit-backdrop-filter:blur(24px) saturate(180%);border-bottom:1px solid rgba(255,255,255,.08)}
.cat-card,.row-item,.it-row,.adm-sub-row,.dead-sec .row-item,.thread,.side-card,.form-card,.admin-login,.card,.proj-row,.dead-cardlist .row-item{
  background:linear-gradient(180deg,rgba(255,255,255,.07),rgba(255,255,255,.025));
  border:1px solid rgba(255,255,255,.10);
  box-shadow:0 1px 0 rgba(255,255,255,.06) inset, 0 12px 34px rgba(0,0,0,.28);
  backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);
}
.cat-card:hover,.row-item:hover,.it-row:hover,.proj-row:hover{
  background:linear-gradient(180deg,rgba(255,255,255,.10),rgba(255,255,255,.04));
  border-color:rgba(255,255,255,.18)
}
.brand-mark,.cat-ico,.modal,.toast{filter:drop-shadow(0 2px 8px rgba(0,0,0,.35))}
.search-input,.field input,.field select,.field textarea,.select{
  background:rgba(255,255,255,.06);border-color:rgba(255,255,255,.12);backdrop-filter:blur(10px)
}
.btn-primary{background:rgba(255,255,255,.92);color:#0a0a0c;box-shadow:0 6px 18px rgba(0,0,0,.25)}
.btn-ghost,.btn{background:rgba(255,255,255,.05);border-color:rgba(255,255,255,.14);backdrop-filter:blur(10px)}
.dead-panel{background:linear-gradient(180deg,rgba(248,113,113,.06),rgba(255,255,255,.02));border:1px solid rgba(248,113,113,.28)}
.demo-banner{background:rgba(255,255,255,.04);backdrop-filter:blur(10px)}

.check-note{margin-top:12px;font-size:12.5px;line-height:1.55;padding:8px 12px;border-radius:8px;border:1px solid var(--line);background:var(--panel-2)}
.check-note.ok{color:#34d399;border-color:rgba(52,211,153,.35);background:rgba(52,211,153,.06)}
.check-note.bad{color:#f87171;border-color:rgba(248,113,113,.35);background:rgba(248,113,113,.06)}
.check-note.dim{color:var(--dim)}
