@font-face{font-family:M;src:url(/montserrat.ttf);font-weight:100 900;font-display:swap}
:root{
  --bg:#FAFAFA;--surface:#FFFFFF;--text:#111827;--body:#1F2937;
  --muted:#6B7280;--muted2:#9CA3AF;--border:#E5E7EB;--border2:#D1D5DB;
  --accent:#E8378E;--accent2:#F7577A;--accent3:#FF7A5C;
  --soft:#FFE9F1;--soft2:#FFF5F8;--ink:#111827;--footer-link:#FF9AB5;
  --grad:linear-gradient(135deg,#E8378E 0%,#E8378E 100%);--header-bg:rgba(250,250,250,.92);--mark:#FFE9F1;
  --shadow:rgba(17,24,39,.08);--shadow-md:rgba(17,24,39,.12);--shadow-lg:rgba(17,24,39,.16);
}
*{box-sizing:border-box}html{scroll-behavior:smooth}
body{margin:0;font-family:M,system-ui,-apple-system,sans-serif;background:var(--bg);color:var(--body);line-height:1.7;-webkit-font-smoothing:antialiased}
a{color:var(--accent)}img{max-width:100%;height:auto;display:block}
.w{max-width:1180px;margin:0 auto;padding:0 22px}
.ad-slot{display:none}

/* Sticky header */
.site-header{position:sticky;top:0;z-index:50;background:var(--header-bg);backdrop-filter:saturate(1.4) blur(14px);-webkit-backdrop-filter:saturate(1.4) blur(14px);border-bottom:1px solid var(--border)}
.site-header .inner{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:12px 0;flex-wrap:wrap}
.brand{display:flex;align-items:center;gap:10px;font-weight:800;font-size:18px;color:var(--text);text-decoration:none;margin:0!important;white-space:nowrap}
.brand img{width:38px;height:38px;border-radius:50%;border:2px solid var(--accent)}
.nav-cats{display:flex;flex-wrap:nowrap;gap:6px;overflow-x:auto;scrollbar-width:none;-ms-overflow-style:none;padding:2px 0;flex:1;min-width:0}
.nav-cats::-webkit-scrollbar{display:none}
.nav-cats a{flex:none;min-height:36px;display:inline-flex;align-items:center;color:var(--muted);text-decoration:none;font-weight:700;font-size:13px;padding:7px 13px;border-radius:20px;background:var(--surface);border:1px solid var(--border2);white-space:nowrap;transition:.15s}
.nav-cats a:hover,.nav-cats a.on{background:var(--grad);color:#fff;border-color:transparent}
.nav-right{display:flex;align-items:center;gap:10px;flex:none}
.nav-right a.plain{color:var(--muted);text-decoration:none;font-weight:700;font-size:13px;padding:12px 4px}
.lang{border:2px solid var(--accent);color:var(--accent)!important;border-radius:20px;padding:3px 11px;font-size:12px;font-weight:800;text-decoration:none}

/* Home hero */
.feat{display:grid;grid-template-columns:minmax(0,1.45fr) minmax(0,1fr);gap:0;align-items:center;margin:18px 0 10px;background:var(--surface);border-radius:22px;overflow:hidden;box-shadow:0 10px 36px var(--shadow-md);text-decoration:none;color:inherit;transition:.2s}
.feat:hover{transform:translateY(-3px);box-shadow:0 16px 44px var(--shadow-lg)}
.feat-img{position:relative;aspect-ratio:16/9;background:var(--ink);align-self:stretch;justify-self:stretch;min-width:0}
.feat-img img{width:100%;height:100%;object-fit:contain;position:absolute;inset:0}
.feat-body{padding:32px 36px 36px;display:flex;flex-direction:column;justify-content:center}
.feat-body .tag{align-self:flex-start}
.feat-body h1{font-size:30px;line-height:1.18;font-weight:900;color:var(--text);margin:14px 0 12px;letter-spacing:-.4px}
.feat-body p{margin:0 0 18px;color:var(--muted);font-size:16px;line-height:1.55;display:-webkit-box;-webkit-line-clamp:4;-webkit-box-orient:vertical;overflow:hidden}
.tagline{display:flex;align-items:center;gap:12px;margin:18px 0 0;padding:12px 18px;background:var(--surface);border-radius:14px;border:1px solid var(--border);color:var(--text);font-size:16px;font-weight:600;line-height:1.45}
.tagline::before{content:'';flex:none;width:6px;align-self:stretch;border-radius:4px;background:var(--accent)}
.tagline b{font-weight:900;white-space:nowrap}
.sec-h{display:flex;align-items:center;gap:12px;margin:0 0 16px;font-size:20px;font-weight:900;color:var(--text)}
.sec-h::after{content:'';flex:1;height:2px;background:var(--border)}
.sec-h::before{content:'';width:14px;height:14px;border-radius:4px;background:var(--accent)}
.tiles{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin-top:34px}
.tile{display:block;background:var(--surface);border-radius:16px;overflow:hidden;text-decoration:none;color:var(--text);box-shadow:0 6px 22px var(--shadow);transition:.2s}
.tile:hover{transform:translateY(-3px)}.tile img{aspect-ratio:16/9;width:100%;object-fit:cover}
.tile span{display:flex;justify-content:space-between;gap:8px;padding:10px 14px;font-weight:800;font-size:14px}.tile em{font-style:normal;color:var(--accent);font-size:12px;white-space:nowrap}

/* Cards grid */
.layout>*{min-width:0}
html,body{overflow-x:hidden}img{max-width:100%}
.layout{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:36px;align-items:start;margin:22px 0 40px}
.grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:22px}
.card{display:flex;flex-direction:column;background:var(--surface);border-radius:18px;overflow:hidden;text-decoration:none;color:inherit;box-shadow:0 6px 24px var(--shadow);transition:.2s;height:100%}
.card:hover{transform:translateY(-3px);box-shadow:0 14px 36px var(--shadow-md)}
.card-img{aspect-ratio:16/9;background:var(--soft2);overflow:hidden}
.card-img img{width:100%;height:100%;object-fit:cover}
.card-body{padding:16px 18px 20px;display:flex;flex-direction:column;gap:8px;flex:1}
.card-body h2{margin:0;font-size:18px;line-height:1.35;font-weight:800;color:var(--text)}
.card-body p{margin:0;color:var(--muted);font-size:16px;line-height:1.5;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
.meta{font-size:13px;color:var(--muted2);font-weight:600;display:flex;flex-wrap:wrap;align-items:center;gap:6px}
.tag{display:inline-block;background:var(--accent);color:#fff;font-size:11px;font-weight:800;padding:3px 11px;border-radius:20px;letter-spacing:.2px}
a.tag{text-decoration:none}
.dot{opacity:.5}

/* Sidebar */
.side{position:sticky;top:78px}
.side-box{background:var(--surface);border-radius:18px;padding:20px 22px;box-shadow:0 6px 24px var(--shadow);margin-bottom:18px}
.side-box h3{margin:0 0 14px;font-size:15px;font-weight:900;color:var(--text);letter-spacing:.3px;text-transform:uppercase}
.side-list{list-style:none;margin:0;padding:0}
.side-list li{border-top:1px solid var(--border);padding:12px 0}
.side-list li:first-child{border-top:0;padding-top:0}
.side-list a{color:var(--text);text-decoration:none;font-weight:700;font-size:14.5px;line-height:1.4;display:block}
.side-list a:hover{color:var(--accent)}
.side-list .sm{display:block;margin-top:4px;font-size:12px;color:var(--muted2);font-weight:600}
.side-cats{display:flex;flex-direction:column;gap:8px}
.side-cats a{display:block;padding:10px 14px;border-radius:12px;background:var(--bg);color:var(--text);text-decoration:none;font-weight:700;font-size:14px;border:1px solid var(--border)}
.side-cats a:hover,.side-cats a.on{background:var(--accent);color:#fff;border-color:transparent}

/* Article */
.cover-wrap{max-width:920px;margin:22px auto 6px;border-radius:22px;overflow:hidden;background:var(--ink);box-shadow:0 14px 40px var(--shadow-lg)}
.cover-wrap img{width:100%;aspect-ratio:16/9;object-fit:cover}
.lede{font-size:19px;color:var(--muted);line-height:1.55;margin:0 0 6px;font-weight:500}
.crumb{font-size:14px;line-height:2.4;font-weight:700;color:var(--muted2);margin:14px 0 0}.crumb a{color:var(--muted2);text-decoration:none;display:inline-block;padding:12px 0}.crumb a:hover{color:var(--accent)}
.article-shell{max-width:720px;margin:0 auto;padding:8px 22px 40px}
article.story h1{font-size:38px;line-height:1.18;font-weight:900;color:var(--text);margin:18px 0 10px;letter-spacing:-.4px}
article.story{font-size:18px}
article.story h2{font-size:24px;margin-top:34px;color:var(--text)}
article.story h2::after{content:'';display:block;width:56px;height:4px;border-radius:4px;background:var(--accent);margin-top:8px}
article.story h3{font-size:20px;color:var(--text);margin-top:26px}
blockquote{margin:20px 0;background:var(--surface);border-left:5px solid var(--accent);padding:12px 20px;border-radius:10px}
.toc{background:var(--surface);border-radius:14px;padding:14px 22px;margin:26px 0;box-shadow:0 4px 18px var(--shadow);font-size:16px}
.toc strong{color:var(--text)}.toc ol{margin:8px 0 0;padding-left:20px}
.toc a{color:var(--body);text-decoration:none;display:inline-block;padding:5px 0}
.toc{overflow-wrap:anywhere}article.story{overflow-wrap:break-word}article.story img{max-width:100%;height:auto}.toc a:hover{color:var(--accent)}
sup.cite{font-size:.68em;line-height:0;margin-left:1px}
sup.cite a{text-decoration:none;font-weight:700;padding:6px 3px}sup.cite a:hover{text-decoration:underline}
.tbl{overflow-x:auto;margin:20px 0}
table{border-collapse:collapse;width:100%;font-size:16px;background:var(--surface);border-radius:12px;overflow:hidden}
th,td{text-align:left;padding:10px 12px;border-bottom:1px solid var(--border);vertical-align:top}th{background:var(--ink);color:#fff}
li.check{list-style:none;margin-left:-22px}li.check::before{content:'☐';color:var(--accent);font-weight:900;margin-right:8px}
.refs{margin-top:40px;padding-top:6px;border-top:2px solid var(--border)}.refs h2{font-size:20px}
ol.sources{font-size:14.5px;line-height:1.55;padding-left:24px;color:var(--muted)}
ol.sources li{margin:0 0 9px;word-break:break-word}ol.sources li:target{background:var(--mark);border-radius:6px}
ol.sources a{word-break:break-all}
.updated{display:block;margin-top:4px;font-weight:500}
.share{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin:28px 0 8px}.share.top{margin:16px 0 4px}.share b{font-size:13px;color:var(--muted2);margin-right:2px}
.share a{display:inline-flex;align-items:center;gap:6px;padding:11px 16px;min-height:44px;border-radius:22px;background:var(--surface);border:1px solid var(--border2);color:var(--text);text-decoration:none;font-weight:700;font-size:13px}
.share a:hover{border-color:var(--accent);color:var(--accent)}
.related{margin:48px auto 20px;max-width:1180px;padding:0 22px}
.related>h2{font-size:22px;font-weight:900;color:var(--text);margin:0 0 18px}
.related .grid{grid-template-columns:repeat(3,minmax(0,1fr))}

/* Category / about pages */
.page-head{padding:28px 0 8px}
.page-head h1{font-size:36px;font-weight:900;color:var(--text);margin:0 0 8px;letter-spacing:-.3px}
.lead{color:var(--muted);margin:0 0 18px;font-size:17px;max-width:720px}
.empty{background:var(--surface);border-radius:18px;padding:28px;color:var(--muted2);box-shadow:0 6px 24px var(--shadow)}
.cat-hero{display:grid;grid-template-columns:1fr 1.2fr;gap:24px;align-items:center;background:var(--surface);border-radius:22px;overflow:hidden;box-shadow:0 10px 36px var(--shadow-md);margin:18px 0 28px}
.cat-hero img{width:100%;height:100%;object-fit:cover;aspect-ratio:16/9;min-height:220px}
.cat-hero .t{padding:28px}.cat-hero h1{font-size:34px;line-height:1.15;font-weight:900;color:var(--text);margin:12px 0 10px}.cat-hero .lead{margin:0}

footer{background:var(--ink);color:#fff;padding:34px 0;margin-top:50px;font-size:14.5px}
footer a{color:var(--footer-link);font-weight:700;display:inline-block;padding:10px 0}
footer .w{display:flex;flex-wrap:wrap;gap:12px 28px;justify-content:space-between;align-items:flex-start}
footer .foot-brand{font-weight:800;font-size:16px;margin-bottom:6px}

@media(max-width:980px){
  .layout{grid-template-columns:1fr}
  .side{position:static}
  .feat{grid-template-columns:1fr}
  .feat-body{padding:22px}
  .feat-body h1{font-size:26px}
  .related .grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .cat-hero{grid-template-columns:1fr}
  .cat-hero h1{font-size:26px}.cat-hero .t{padding:20px 22px 24px}
}
@media(max-width:640px){
  .w{padding:0 16px}
  .site-header .inner{padding:10px 0;gap:10px}
  .brand span{font-size:15px}
  .nav-cats{order:3;width:100%;flex-basis:100%}
  .grid{grid-template-columns:1fr}
  .related .grid{grid-template-columns:1fr}
  article.story h1{font-size:28px}
  .page-head h1{font-size:28px}
  .cover-wrap{margin:0 0 4px;border-radius:0 0 18px 18px;box-shadow:none}
  .lede{font-size:17px}
  .tagline{font-size:16px;padding:10px 14px;margin-top:12px}
  .tagline b{display:none}
  .tiles{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none;margin-right:-16px;padding-right:16px}
  .tile{flex:0 0 72%;scroll-snap-align:start}
  .nav-right a.plain{display:none}
  .feat{margin-top:12px}
  .article-shell{padding:4px 16px 32px}
}