@import url("https://fonts.googleapis.com/css2?family=Noto+Sans+SC:wght@400;500;600;700&family=Plus+Jakarta+Sans:wght@400;500;600;700&display=swap");

:root {
  --bg: #050505;
  --surface: #0d0d0f;
  --surface-2: #151518;
  --text: #f6f4f7;
  --muted: #9b989f;
  --line: rgba(255, 255, 255, 0.11);
  --violet: #b76cff;
  --blue: #5bb7ff;
  --sans: "Plus Jakarta Sans", "Noto Sans SC", system-ui, sans-serif;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; color: var(--text); background: var(--bg); font-family: var(--sans); line-height: 1.7; }
a { color: inherit; }
button { font: inherit; }
::selection { background: #7c3aed; color: white; }

.site-nav {
  position: fixed; top: 0; left: 0; right: 0; z-index: 1000;
  background: rgba(5,5,5,.84); backdrop-filter: blur(18px);
  border-bottom: 1px solid var(--line);
}
.page-shell { width: min(1160px, calc(100% - 40px)); margin: 0 auto; }
.nav-inner { max-width: 1200px; width: 100%; margin: 0 auto; padding: 0 24px; height: 62px; display: flex; align-items: center; justify-content: space-between; gap: 24px; }
.brand { text-decoration: none; font-weight: 700; letter-spacing: -.02em; }
.brand-dot { color: var(--violet); }
.nav-links { display: flex; align-items: center; gap: 22px; }
.nav-links a { color: var(--muted); text-decoration: none; font-size: 13px; }
.nav-links a:hover, .nav-links a[aria-current="page"] { color: var(--text); }
.nav-links a.resume-btn { background: var(--violet); color: #fff; font-weight: 500; padding: 7px 14px; border-radius: 999px; }
.nav-links a.resume-btn:hover { color: #fff; opacity: .88; }
.lang-toggle { display: flex; align-items: center; gap: 2px; margin-left: 6px; }
.lang-toggle button, .lang-toggle a { background: none; border: none; color: var(--muted); font-size: 13px; padding: 6px 8px; border-radius: 999px; cursor: pointer; transition: color .3s; font-family: var(--sans); text-decoration: none; }
.lang-toggle button:hover, .lang-toggle a:hover { color: var(--text); }
.lang-toggle button.active, .lang-toggle a.active { color: var(--text); font-weight: 600; }
.lang-toggle span { color: #5d5a61; font-size: 12px; }

.publication-hero { padding: 106px 0 72px; border-bottom: 1px solid var(--line); }
.kicker { margin: 0 0 14px; color: var(--violet); font-size: 11px; font-weight: 700; letter-spacing: .16em; text-transform: uppercase; }
.publication-hero h1, .article-header h1 {
  margin: 0; font-family: var(--sans); font-weight: 600; letter-spacing: -.035em; line-height: .97;
}
.publication-hero h1 { max-width: 900px; font-size: clamp(52px, 9vw, 106px); }
.publication-intro { max-width: 650px; margin: 28px 0 0; color: var(--muted); font-size: 17px; }
.topic-line { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 30px; }
.topic-line span { padding: 7px 11px; border: 1px solid var(--line); border-radius: 999px; color: #bbb7bf; font-size: 11px; }

.featured { display: grid; grid-template-columns: 1.15fr .85fr; min-height: 480px; margin: 72px 0 88px; border: 1px solid var(--line); border-radius: 24px; overflow: hidden; text-decoration: none; background: var(--surface); }
.featured-visual { position: relative; min-height: 390px; overflow: hidden; background: #16131a; }
.featured-visual img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; object-position:center; display:block; filter:saturate(.94) contrast(1.04); }
.featured-visual::after { content:""; position:absolute; inset:0; background:linear-gradient(180deg,transparent 55%,rgba(5,5,5,.62)); }
.visual-credit { position:absolute; z-index:1; left:18px; bottom:14px; color:rgba(255,255,255,.55); font-size:9px; letter-spacing:.12em; text-transform:uppercase; }
.featured-copy { padding: clamp(34px, 5vw, 64px); display: flex; flex-direction: column; justify-content: center; }
.featured-copy h2 { margin: 10px 0 18px; font-family: var(--sans); font-size: clamp(38px,5vw,62px); line-height: 1.02; font-weight: 600; }
.featured-copy p { color: var(--muted); }
.story-meta { color: var(--muted); font-size: 12px; }
.read-link { margin-top: 22px; color: var(--violet); font-size: 13px; font-weight: 700; }

.story-list { margin-bottom: 110px; border-top: 1px solid var(--line); }
.story-row { display: grid; grid-template-columns: 50px minmax(180px,260px) 1fr 150px; gap: 28px; padding: 30px 0; border-bottom: 1px solid var(--line); text-decoration: none; align-items: center; }
.story-thumb { aspect-ratio: 16/10; width:100%; object-fit:cover; border-radius:12px; background:var(--surface-2); filter:saturate(.82); transition:transform .25s ease,filter .25s ease; }
.story-row:hover .story-thumb { transform:scale(1.015); filter:saturate(1); }
.story-index { color: #5f5c64; font-family: var(--sans); font-size: 20px; }
.story-row h2 { margin: 0 0 9px; font-family: var(--sans); font-size: clamp(28px,4vw,43px); line-height: 1.06; font-weight: 600; }
.story-row p { margin: 0; color: var(--muted); font-size: 14px; max-width: 670px; }
.story-row:hover h2 { color: var(--violet); }
.story-side { color: var(--muted); font-size: 11px; text-align: right; text-transform: uppercase; letter-spacing: .08em; }

.article-header { padding: 96px 0 62px; border-bottom: 1px solid var(--line); }
.article-header h1 { max-width: 940px; font-size: clamp(48px, 8vw, 92px); }
.article-deck { max-width: 760px; margin: 26px 0 0; color: #b7b3bb; font-size: clamp(17px,2vw,21px); }
.article-meta { display: flex; flex-wrap: wrap; gap: 8px 18px; margin-top: 28px; color: var(--muted); font-size: 12px; }
.article-accent { height: 8px; background: linear-gradient(90deg,var(--violet),var(--blue),transparent 78%); }
.article-layout { display: grid; grid-template-columns: minmax(0,760px) 210px; gap: 90px; padding: 72px 0 110px; justify-content: center; }
.article-body { font-family: "Noto Sans SC", var(--sans); font-size: 17px; line-height: 1.95; }
.article-body h2 { margin: 64px 0 18px; font-family: var(--sans); font-size: 39px; line-height: 1.13; font-weight: 600; }
.article-body h3 { margin: 38px 0 12px; font-size: 19px; }
.article-body p { margin: 0 0 24px; }
.article-body strong { color: #fff; }
.article-body a { color: var(--violet); text-underline-offset: 4px; }
.article-body ul { padding-left: 1.25em; }
.article-body li { margin: 10px 0; }
.article-hero { width:min(1160px,calc(100% - 40px)); margin:0 auto; }
.article-hero img { display:block; width:100%; max-height:720px; object-fit:cover; }
.article-hero--concept img { aspect-ratio:2/1; object-position:center; }
.article-hero figcaption { max-width:760px; margin:12px auto 0; padding:0 18px; color:var(--muted); font-size:12px; }
.article-body figure { margin:44px 0; }
.article-hero:has(img[src*="yiyuduochi"]),
.article-body figure:has(img[src*="yiyuduochi"]) { position:relative; }
.article-hero:has(img[src*="yiyuduochi"])::before,
.article-body figure:has(img[src*="yiyuduochi"])::before {
  content:"Finfold / 一鱼多吃";
  position:absolute;
  top:14px;
  left:14px;
  z-index:2;
  padding:7px 11px;
  border:1px solid rgba(16,185,129,.25);
  border-radius:9px;
  background:rgba(255,255,255,.96);
  box-shadow:0 6px 18px rgba(0,0,0,.14);
  color:#111827;
  font-family:var(--sans);
  font-size:11px;
  font-weight:800;
}
.article-body figure img { display:block; width:100%; height:auto; border-radius:14px; background:var(--surface-2); }
.article-body figcaption { margin-top:11px; color:var(--muted); font-size:12px; line-height:1.65; }
.figure-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; }
.figure-grid figure { margin:0; }
.evidence-note { margin:34px 0; padding:20px 22px; border:1px solid var(--line); border-radius:12px; color:#c8c3cc; background:var(--surface); font-size:14px; }
.evidence-note strong { color:var(--violet); }
.decision-record { margin:36px 0; padding:26px; border:1px solid rgba(183,108,255,.28); border-radius:16px; background:linear-gradient(145deg,rgba(183,108,255,.1),rgba(91,183,255,.03)); }
.decision-record h3 { margin:0 0 14px; }
.decision-record dl { display:grid; grid-template-columns:92px 1fr; gap:8px 16px; margin:0; font-size:14px; }
.decision-record dt { color:var(--muted); }
.decision-record dd { margin:0; }
.reader-tool { margin:50px 0 0; padding:30px; border-radius:16px; background:#f1edf4; color:#171219; }
.reader-tool h2 { margin-top:0; color:#171219; }
.reader-tool strong { color:#171219; }
.source-list li { overflow-wrap:anywhere; }
.takeaway { margin: 42px 0; padding: 28px 30px; border-left: 3px solid var(--violet); background: linear-gradient(90deg,rgba(183,108,255,.12),rgba(183,108,255,.02)); border-radius: 0 14px 14px 0; }
.takeaway .label { color: var(--violet); font-size: 10px; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; }
.takeaway p { margin: 8px 0 0; font-family: var(--sans); font-size: 27px; line-height: 1.25; }
.pullquote { margin: 54px 0; font-family: var(--sans); font-size: clamp(30px,5vw,48px); line-height: 1.12; color: #ddd5e5; }
.article-aside { position: sticky; top: 94px; align-self: start; }
.aside-label { color: #66626b; font-size: 10px; letter-spacing: .14em; text-transform: uppercase; }
.aside-links { display: grid; gap: 9px; margin: 14px 0 28px; }
.aside-links a, .aside-links button { padding: 10px 0; border: 0; border-bottom: 1px solid var(--line); color: var(--muted); background: transparent; text-align: left; text-decoration: none; cursor: pointer; font-size: 12px; }
.aside-links a:hover, .aside-links button:hover { color: var(--text); }
.channel-id { overflow-wrap: anywhere; }

/* share / follow icons */
.aside-links a, .aside-links button { display:flex; align-items:center; gap:11px; }
.aside-links a::before, .aside-links button::before { content:""; width:15px; height:15px; flex:0 0 auto; background-color:currentColor; opacity:.82; -webkit-mask-image:var(--ic); mask-image:var(--ic); -webkit-mask-size:contain; mask-size:contain; -webkit-mask-repeat:no-repeat; mask-repeat:no-repeat; -webkit-mask-position:center; mask-position:center; transition:opacity .2s; }
.aside-links a:hover::before, .aside-links button:hover::before { opacity:1; }
.aside-links [data-share-linkedin]{--ic:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M19 3a2 2 0 012 2v14a2 2 0 01-2 2H5a2 2 0 01-2-2V5a2 2 0 012-2h14m-.5 15.5v-5.3a3.26 3.26 0 00-3.26-3.27c-.85 0-1.84.52-2.32 1.3v-1.11h-2.79v8.38h2.79v-4.93c0-.77.62-1.4 1.39-1.4a1.4 1.4 0 011.4 1.4v4.93h2.79M6.88 8.56a1.68 1.68 0 001.68-1.68 1.69 1.69 0 00-3.37 0c0 .93.76 1.68 1.69 1.68m1.39 9.94v-8.38H5.5v8.38h2.77z'/%3E%3C/svg%3E");}
.aside-links [data-share-x]{--ic:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M18.244 2.25h3.308l-7.227 8.26 8.502 11.24h-6.66l-5.214-6.817L4.99 21.75H1.68l7.73-8.835L1.254 2.25H8.08l4.713 6.231zm-1.161 17.52h1.833L7.084 4.126H5.117z'/%3E%3C/svg%3E");}
.aside-links [data-copy-link]{--ic:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M9.5 14.5a3.5 3.5 0 010-5l3-3a3.5 3.5 0 015 5l-1.5 1.5a.7.7 0 01-1-1l1.5-1.5a2.1 2.1 0 00-3-3l-3 3a2.1 2.1 0 000 3 .7.7 0 01-1 1zm5-5a3.5 3.5 0 010 5l-3 3a3.5 3.5 0 01-5-5l1.5-1.5a.7.7 0 011 1L7 13.5a2.1 2.1 0 003 3l3-3a2.1 2.1 0 000-3 .7.7 0 011-1z'/%3E%3C/svg%3E");}
.aside-links a[href*="JoeyKonad"]{--ic:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 12a4 4 0 100-8 4 4 0 000 8zm0 2c-4 0-8 2-8 4.5V20h16v-1.5C20 16 16 14 12 14z'/%3E%3C/svg%3E");}
.aside-links a[href*="xiaohongshu"]{--ic:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M6 2h12a2 2 0 012 2v17.5a.6.6 0 01-.94.5L12 17l-7.06 5A.6.6 0 014 21.5V4a2 2 0 012-2zm2.5 5a.5.5 0 000 1h7a.5.5 0 000-1h-7zm0 3.5a.5.5 0 000 1h7a.5.5 0 000-1h-7z'/%3E%3C/svg%3E");}
.aside-links .channel-id{--ic:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M8 5.14v13.72a1 1 0 001.53.85l10.5-6.86a1 1 0 000-1.7L9.53 4.29A1 1 0 008 5.14z'/%3E%3C/svg%3E");}
.references { margin-top: 54px; padding-top: 24px; border-top: 1px solid var(--line); color: var(--muted); font-size: 13px; }

.continue { padding: 70px 0 100px; border-top: 1px solid var(--line); }
.continue h2 { margin: 0 0 28px; font-family: var(--sans); font-size: 42px; }
.continue-grid { display: grid; grid-template-columns: repeat(2,1fr); gap: 16px; }
.continue-card { min-height: 190px; padding: 28px; border: 1px solid var(--line); border-radius: 16px; background: var(--surface); text-decoration: none; }
.continue-card small { color: var(--violet); text-transform: uppercase; letter-spacing:.1em; }
.continue-card h3 { margin: 30px 0 0; font-family: var(--sans); font-size: 29px; line-height:1.08; }

.site-footer { padding: 44px 0; border-top: 1px solid var(--line); color: var(--muted); }
.footer-inner { display:flex; justify-content:space-between; align-items:center; gap:24px; }
.socials { display:flex; flex-wrap:wrap; gap:16px; }
.socials a, .socials button { border:0; padding:0; color:var(--muted); background:transparent; text-decoration:none; cursor:pointer; font-size:12px; }
.socials a:hover, .socials button:hover { color:var(--text); }

a:focus-visible, button:focus-visible { outline: 2px solid var(--violet); outline-offset: 4px; }
@media (max-width: 820px) {
  .featured { grid-template-columns: 1fr; }
  .featured-visual { min-height: 280px; }
  .story-row { grid-template-columns: 38px 140px 1fr; }
  .story-side { display:none; }
  .article-layout { grid-template-columns: 1fr; gap: 48px; }
  .article-aside { position: static; border-top:1px solid var(--line); padding-top:28px; }
}
@media (max-width: 560px) {
  .page-shell { width:min(100% - 28px,1160px); }
  .nav-links a:not([aria-current="page"]) { display:none; }
  .publication-hero, .article-header { padding-top:70px; }
  .featured { margin-top:44px; border-radius:16px; }
  .featured-copy { padding:28px; }
  .story-row { grid-template-columns:34px 1fr; gap:12px; align-items:start; }
  .story-thumb { grid-column:2; margin-bottom:4px; }
  .story-main { grid-column:2; }
  .figure-grid { grid-template-columns:1fr; }
  .decision-record dl { grid-template-columns:1fr; gap:2px; }
  .continue-grid { grid-template-columns:1fr; }
  .footer-inner { align-items:flex-start; flex-direction:column; }
}
@media (prefers-reduced-motion: reduce) { html { scroll-behavior:auto; } }
