/* Fanlist articles: public article-only layer.
   This file is loaded after /css/site.css and must not redefine global header/footer/logo/nav styles. */

body.article-index-page,
body.article-detail-page{
  color-scheme:dark;
}

body.article-index-page .content,
body.article-detail-page .content{
  padding-top:28px;
}

body.article-index-page .wrap.article-index-page,
body.article-detail-page .article-shell{
  width:min(1180px, calc(100% - 40px));
  margin:0 auto;
}

body.article-index-page .hero{
  display:grid;
  grid-template-columns:minmax(0,1.08fr) minmax(280px,.92fr);
  gap:18px;
  align-items:stretch;
  margin-bottom:24px;
}

body.article-index-page .hero-card,
body.article-detail-page .article-hero-card,
body.article-detail-page .article-card,
body.article-index-page .article-item__link,
body.article-index-page .featured{
  border:1px solid var(--border);
  border-radius:var(--radius-xl,30px);
  background:linear-gradient(180deg,rgba(14,20,36,.88),rgba(8,12,22,.94));
  box-shadow:var(--shadow-md,0 20px 50px rgba(0,0,0,.32));
}

body.article-index-page .hero-card{
  position:relative;
  overflow:hidden;
  min-height:360px;
  padding:42px;
  display:flex;
  flex-direction:column;
  justify-content:center;
}

body.article-index-page .hero-card::before,
body.article-detail-page .article-hero-card::before{
  content:"";
  position:absolute;
  inset:-1px;
  pointer-events:none;
  background:
    radial-gradient(520px 240px at 12% 0%,rgba(255,77,90,.18),transparent 62%),
    radial-gradient(520px 260px at 95% 10%,rgba(245,196,107,.10),transparent 58%);
}

body.article-index-page .hero-card > *,
body.article-detail-page .article-hero-card > *{
  position:relative;
  z-index:1;
}

body.article-index-page .hero h1,
body.article-detail-page .article-title,
body.article-detail-page .article-hero-copy h1{
  margin:0;
  color:var(--text);
  font-size:clamp(38px,6vw,72px);
  line-height:.96;
  letter-spacing:-.065em;
}

body.article-index-page .hero p,
body.article-detail-page .article-desc,
body.article-detail-page .article-hero-copy p{
  margin:18px 0 0;
  max-width:760px;
  color:#c1ccdf;
  font-size:18px;
  line-height:1.65;
}

body.article-index-page .hero-badges,
body.article-detail-page .hero-badges,
body.article-detail-page .article-meta{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
  margin-bottom:18px;
}

body.article-index-page .hero-badge,
body.article-detail-page .hero-badge,
body.article-detail-page .article-pill,
body.article-detail-page .article-tag{
  display:inline-flex;
  align-items:center;
  min-height:34px;
  padding:0 12px;
  border-radius:999px;
  border:1px solid rgba(255,77,90,.30);
  background:rgba(255,77,90,.12);
  color:#ffd6db;
  font-size:12px;
  font-weight:900;
  text-decoration:none;
}

body.article-index-page .featured{
  position:relative;
  display:block;
  overflow:hidden;
  min-height:360px;
  color:#fff;
  text-decoration:none;
  transition:transform .18s ease,border-color .18s ease,background .18s ease;
}

body.article-index-page .featured:hover,
body.article-index-page .article-item__link:hover{
  transform:translateY(-3px);
  border-color:rgba(255,77,90,.28);
  background:linear-gradient(180deg,rgba(20,28,50,.94),rgba(9,14,26,.98));
}

body.article-index-page .featured img{
  width:100%;
  height:100%;
  min-height:360px;
  object-fit:cover;
  display:block;
  opacity:.86;
}

body.article-index-page .featured::after{
  content:"";
  position:absolute;
  inset:0;
  background:linear-gradient(180deg,transparent 15%,rgba(5,8,17,.92));
}

body.article-index-page .featured__body{
  position:absolute;
  left:0;
  right:0;
  bottom:0;
  z-index:1;
  padding:24px;
}

body.article-index-page .featured__body h2,
body.article-index-page .article-item h2{
  margin:0;
  color:var(--text);
  font-size:clamp(21px,3vw,34px);
  line-height:1.05;
  letter-spacing:-.04em;
}

body.article-index-page .featured__body p,
body.article-index-page .article-item p{
  margin:10px 0 0;
  color:var(--muted);
  line-height:1.55;
}

body.article-index-page .grid{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(280px,1fr));
  gap:16px;
}

body.article-index-page .article-item{
  min-width:0;
}

body.article-index-page .article-item__link{
  display:grid;
  grid-template-columns:118px minmax(0,1fr);
  gap:16px;
  min-height:190px;
  padding:14px;
  color:var(--text);
  text-decoration:none;
  overflow:hidden;
  transition:transform .18s ease,border-color .18s ease,background .18s ease;
}

body.article-index-page .article-item__media{
  overflow:hidden;
  border-radius:20px;
  background:rgba(255,255,255,.055);
}

body.article-index-page .article-item__media img{
  width:100%;
  height:100%;
  min-height:160px;
  object-fit:cover;
  display:block;
}

body.article-index-page .article-item__body{
  display:flex;
  min-width:0;
  flex-direction:column;
  justify-content:center;
}

body.article-index-page .article-item__tags{
  display:flex;
  flex-wrap:wrap;
  gap:6px;
  margin-bottom:10px;
}

body.article-index-page .article-item__tags b{
  display:inline-flex;
  align-items:center;
  min-height:26px;
  padding:0 9px;
  border-radius:999px;
  background:rgba(255,255,255,.055);
  border:1px solid var(--border);
  color:#cbd5e1;
  font-size:11px;
}

body.article-index-page .article-date,
body.article-detail-page .article-date,
body.article-index-page .empty{
  margin-top:12px;
  color:var(--muted);
  font-size:13px;
}

body.article-index-page .empty{
  grid-column:1/-1;
  padding:24px;
  border:1px dashed var(--border);
  border-radius:var(--radius-lg,22px);
  background:rgba(255,255,255,.035);
}

body.article-detail-page .article-shell{
  display:grid;
  gap:22px;
  padding-bottom:72px;
}

body.article-detail-page .article-hero-grid{
  display:grid;
  grid-template-columns:minmax(0,1.1fr) minmax(280px,.9fr);
  gap:18px;
  align-items:stretch;
}

body.article-detail-page .article-hero-card{
  position:relative;
  overflow:hidden;
}

body.article-detail-page .article-hero-copy{
  min-height:360px;
  padding:42px;
  display:flex;
  flex-direction:column;
  justify-content:center;
}

body.article-detail-page .article-hero-media{
  position:relative;
  overflow:hidden;
  min-height:360px;
  margin:0;
  border:1px solid var(--border);
  border-radius:var(--radius-xl,30px);
  background:rgba(12,18,32,.82);
  box-shadow:var(--shadow-md,0 20px 50px rgba(0,0,0,.32));
}

body.article-detail-page .article-hero-media img{
  width:100%;
  height:100%;
  min-height:360px;
  object-fit:cover;
  display:block;
}

body.article-detail-page .article-image-note,
body.article-detail-page .article-caption{
  position:absolute;
  left:14px;
  right:14px;
  bottom:14px;
  padding:9px 12px;
  border-radius:14px;
  color:#d7e1f3;
  background:rgba(5,8,17,.72);
  border:1px solid rgba(255,255,255,.10);
  backdrop-filter:blur(10px);
  font-size:12px;
}

body.article-detail-page .article-content{
  border:1px solid var(--border);
  border-radius:var(--radius-xl,30px);
  background:linear-gradient(180deg,rgba(14,20,36,.86),rgba(8,12,22,.96));
  box-shadow:var(--shadow-md,0 20px 50px rgba(0,0,0,.32));
  padding:clamp(22px,4vw,46px);
  color:#d9e2f2;
  font-size:18px;
  line-height:1.78;
  overflow:hidden;
}

body.article-detail-page .article-content > :first-child{margin-top:0}
body.article-detail-page .article-content > :last-child{margin-bottom:0}

body.article-detail-page .article-content h2,
body.article-detail-page .article-content h3,
body.article-detail-page .article-content h4{
  color:#fff;
  line-height:1.12;
  letter-spacing:-.04em;
}

body.article-detail-page .article-content h2{
  position:relative;
  margin:44px 0 16px;
  padding-top:8px;
  font-size:clamp(30px,4vw,46px);
}

body.article-detail-page .article-content h2::before{
  content:"";
  display:block;
  width:56px;
  height:4px;
  margin-bottom:16px;
  border-radius:999px;
  background:linear-gradient(90deg,var(--accent),var(--accent-2));
}

body.article-detail-page .article-content h3{
  margin:34px 0 12px;
  font-size:clamp(24px,3vw,32px);
}

body.article-detail-page .article-content p{
  margin:0 0 18px;
}

body.article-detail-page .article-content a{
  color:#ffd6db;
  text-decoration-thickness:1px;
  text-underline-offset:4px;
}

body.article-detail-page .article-content ul,
body.article-detail-page .article-content ol{
  margin:16px 0 22px;
  padding-left:1.35em;
}

body.article-detail-page .article-content li{
  margin:8px 0;
}

body.article-detail-page .article-content blockquote{
  margin:28px 0;
  padding:20px 22px;
  border-left:4px solid var(--accent);
  border-radius:20px;
  background:rgba(255,77,90,.08);
  color:#f2d8dd;
}

body.article-detail-page .article-content .article-lead{
  color:#edf3ff;
  font-size:clamp(20px,2.4vw,26px);
  line-height:1.55;
}

body.article-detail-page .article-content blockquote.article-callout,
body.article-detail-page .article-content blockquote.article-duel{
  border:1px solid rgba(255,77,90,.22);
  border-left:4px solid var(--accent);
  box-shadow:0 18px 50px rgba(0,0,0,.18);
}

body.article-detail-page .article-content figure{
  margin:30px 0;
}

body.article-detail-page .article-content figure img,
body.article-detail-page .article-content img{
  max-width:100%;
  height:auto;
  display:block;
  border-radius:22px;
  border:1px solid rgba(255,255,255,.10);
  background:rgba(255,255,255,.04);
}

body.article-detail-page .article-content figcaption{
  margin-top:10px;
  color:var(--muted);
  font-size:13px;
  line-height:1.45;
  text-align:center;
}

body.article-detail-page .article-content figure.article-media--center img{
  margin-left:auto;
  margin-right:auto;
  max-height:720px;
  object-fit:contain;
}

body.article-detail-page .article-content figure.article-media--wide img,
body.article-detail-page .article-content figure.article-media--full img{
  width:100%;
  max-height:680px;
  object-fit:cover;
}

body.article-detail-page .article-content figure.article-media--left,
body.article-detail-page .article-content figure.article-media--right{
  width:min(360px,45%);
  margin-top:8px;
}

body.article-detail-page .article-content figure.article-media--left{float:left;margin-right:24px}
body.article-detail-page .article-content figure.article-media--right{float:right;margin-left:24px}

body.article-detail-page .article-content figure.article-media--pair,
body.article-detail-page .article-content figure.article-media--gallery{
  display:grid;
  gap:12px;
}
body.article-detail-page .article-content figure.article-media--pair{grid-template-columns:repeat(2,minmax(0,1fr))}
body.article-detail-page .article-content figure.article-media--gallery{grid-template-columns:repeat(auto-fit,minmax(160px,1fr))}
body.article-detail-page .article-content figure.article-media--pair figcaption,
body.article-detail-page .article-content figure.article-media--gallery figcaption{grid-column:1/-1}
body.article-detail-page .article-content figure.article-media--pair img,
body.article-detail-page .article-content figure.article-media--gallery img{width:100%;height:100%;object-fit:cover}

body.article-detail-page .article-content hr{
  border:0;
  height:1px;
  margin:34px 0;
  background:var(--border);
}

body.article-detail-page .article-content ol.article-rank{
  counter-reset:rank;
  display:grid;
  gap:14px;
  padding:0;
  margin:24px 0;
  list-style:none;
}

body.article-detail-page .article-content ol.article-rank > li{
  counter-increment:rank;
  position:relative;
  display:grid;
  grid-template-columns:156px minmax(0,1fr);
  gap:18px;
  min-height:160px;
  padding:16px 16px 16px 60px;
  border:1px solid var(--border);
  border-radius:26px;
  background:rgba(255,255,255,.045);
}

body.article-detail-page .article-content ol.article-rank > li::before{
  content:counter(rank);
  position:absolute;
  left:16px;
  top:16px;
  width:34px;
  height:34px;
  display:grid;
  place-items:center;
  border-radius:12px;
  background:linear-gradient(135deg,var(--accent),var(--accent-2));
  color:#fff;
  font-size:16px;
  font-weight:900;
}

body.article-detail-page .article-rank__media,
body.article-detail-page .article-rank__img{
  overflow:hidden;
  align-self:stretch;
  min-height:132px;
  border-radius:20px;
  background:rgba(255,255,255,.05);
}

body.article-detail-page .article-rank__media img,
body.article-detail-page .article-rank__img img{
  width:100%;
  height:100%;
  object-fit:cover;
}

body.article-detail-page .article-rank__body strong{
  display:block;
  margin-bottom:8px;
  color:#fff;
  font-size:24px;
  line-height:1.15;
}

body.article-detail-page .article-rank__badge{
  display:inline-flex;
  align-items:center;
  min-height:28px;
  margin-top:8px;
  padding:0 10px;
  border-radius:999px;
  background:rgba(245,196,107,.12);
  border:1px solid rgba(245,196,107,.24);
  color:#ffe4a8;
  font-size:12px;
  font-weight:900;
}

body.article-detail-page .article-foot{
  display:flex;
  justify-content:center;
}

body.article-detail-page .article-foot a{
  display:inline-flex;
  align-items:center;
  min-height:46px;
  padding:0 18px;
  border-radius:16px;
  border:1px solid var(--border);
  background:rgba(255,255,255,.055);
  color:#fff;
  font-weight:900;
  text-decoration:none;
}

body.article-detail-page .article-foot a:hover{
  border-color:rgba(255,77,90,.30);
  background:rgba(255,77,90,.12);
}

body.article-detail-page .article-related,
body.article-detail-page .article-related--items,
body.article-detail-page .article-toc,
body.article-detail-page .article-author,
body.article-detail-page .article-share{
  border:1px solid var(--border);
  border-radius:24px;
  background:rgba(255,255,255,.04);
  padding:18px;
}

@media(max-width:920px){
  body.article-index-page .hero,
  body.article-detail-page .article-hero-grid{
    grid-template-columns:1fr;
  }
  body.article-index-page .hero-card,
  body.article-index-page .featured,
  body.article-detail-page .article-hero-copy,
  body.article-detail-page .article-hero-media{
    min-height:auto;
  }
  body.article-index-page .featured img,
  body.article-detail-page .article-hero-media img{
    min-height:280px;
  }
}

@media(max-width:680px){
  body.article-index-page .wrap.article-index-page,
  body.article-detail-page .article-shell{
    width:min(100% - 24px,1180px);
  }
  body.article-index-page .hero-card,
  body.article-detail-page .article-hero-copy,
  body.article-detail-page .article-content{
    padding:22px;
    border-radius:24px;
  }
  body.article-index-page .article-item__link{
    grid-template-columns:1fr;
  }
  body.article-index-page .article-item__media img{
    height:220px;
  }
  body.article-detail-page .article-content{
    font-size:16px;
    line-height:1.7;
  }
  body.article-detail-page .article-content figure.article-media--left,
  body.article-detail-page .article-content figure.article-media--right{
    float:none;
    width:100%;
    margin-left:0;
    margin-right:0;
  }
  body.article-detail-page .article-content figure.article-media--pair{
    grid-template-columns:1fr;
  }
  body.article-detail-page .article-content ol.article-rank > li{
    grid-template-columns:1fr;
    padding:58px 14px 14px;
  }
}
