@import url('https://fonts.googleapis.com/css2?family=Source+Serif+4:opsz,wght@8..60,400;8..60,600;8..60,700&family=DM+Sans:wght@400;500;600;700&display=swap');

:root {
  --bg:#FAFAF7;--surface:#FFF;--text:#1A1A1A;--text2:#5A5A5A;
  --accent:#0057B8;--accent-h:#003D82;--accent-l:#E8F0FE;
  --ok:#0A8754;--ok-l:#E6F5ED;--warn:#D97706;--warn-l:#FEF3C7;
  --border:#E5E5E0;--serif:'Source Serif 4',Georgia,serif;--sans:'DM Sans',-apple-system,sans-serif;
  --max:1200px;--content:760px;--r:6px;
}
*,*::before,*::after{margin:0;padding:0;box-sizing:border-box;}
html{font-size:17px;scroll-behavior:smooth;}
body{font-family:var(--sans);color:var(--text);background:var(--bg);line-height:1.7;-webkit-font-smoothing:antialiased;}

.hdr{background:var(--surface);border-bottom:1px solid var(--border);position:sticky;top:0;z-index:50;}
.hdr-in{max-width:var(--max);margin:0 auto;padding:0 2rem;display:flex;align-items:center;justify-content:space-between;height:60px;}
.logo{font-family:var(--serif);font-size:1.2rem;font-weight:700;color:var(--text);text-decoration:none;display:flex;align-items:center;gap:8px;}
.logo i{width:28px;height:28px;background:var(--accent);color:#fff;border-radius:5px;display:flex;align-items:center;justify-content:center;font-size:11px;font-weight:800;font-style:normal;}
.nav{display:flex;gap:0;} .nav a{color:var(--text2);text-decoration:none;font-size:.85rem;font-weight:500;padding:1.1rem .8rem;border-bottom:2px solid transparent;}
.nav a:hover,.nav a.on{color:var(--accent);border-color:var(--accent);}
@media(max-width:900px){.nav{display:none;}}

.layout{max-width:var(--max);margin:0 auto;padding:2.5rem 2rem;display:grid;grid-template-columns:var(--content) 1fr;gap:4rem;}
@media(max-width:1100px){.layout{grid-template-columns:1fr;}.sidebar{display:none;}}

.bc{font-size:.82rem;color:var(--text2);margin-bottom:1.5rem;} .bc a{color:var(--accent);text-decoration:none;}
.art h1{font-family:var(--serif);font-size:2.1rem;font-weight:700;line-height:1.15;margin-bottom:.6rem;letter-spacing:-.02em;}
.meta{display:flex;flex-wrap:wrap;gap:1rem;color:var(--text2);font-size:.82rem;margin-bottom:1.5rem;padding-bottom:1.5rem;border-bottom:1px solid var(--border);}
.art h2{font-family:var(--serif);font-size:1.4rem;font-weight:700;margin:2.5rem 0 .8rem;padding-top:1.5rem;border-top:1px solid var(--border);}
.art h2:first-of-type{border-top:none;padding-top:0;}
.art h3{font-family:var(--serif);font-size:1.1rem;font-weight:600;margin:1.8rem 0 .6rem;}
.art p{margin-bottom:1rem;}
.box{border-left:4px solid var(--accent);background:var(--accent-l);padding:1rem 1.2rem;border-radius:0 var(--r) var(--r) 0;margin:1.2rem 0;font-size:.9rem;line-height:1.6;}
.box b{display:block;margin-bottom:.3rem;} .box.ok{border-color:var(--ok);background:var(--ok-l);} .box.warn{border-color:var(--warn);background:var(--warn-l);}
table{width:100%;border-collapse:collapse;margin:1rem 0 1.5rem;font-size:.88rem;}
th{background:var(--bg);text-align:left;padding:.7rem .8rem;font-weight:600;border-bottom:2px solid #C8C8C0;font-size:.78rem;text-transform:uppercase;letter-spacing:.03em;color:var(--text2);}
td{padding:.6rem .8rem;border-bottom:1px solid var(--border);} tr:hover td{background:var(--bg);} .m{font-weight:700;color:var(--ok);font-family:var(--serif);}
.faq-q{background:var(--surface);border:1px solid var(--border);border-radius:var(--r);padding:1rem 1.2rem;margin-bottom:.6rem;cursor:pointer;}
.faq-q h4{font-size:.95rem;font-weight:600;} .faq-q p{font-size:.88rem;color:var(--text2);margin:.5rem 0 0;display:none;line-height:1.6;} .faq-q.open p{display:block;}
.links{display:flex;flex-direction:column;gap:.6rem;margin:1rem 0;}
.links a{background:var(--surface);border:1px solid var(--border);border-radius:var(--r);padding:1rem 1.2rem;text-decoration:none;color:inherit;transition:border-color .15s;}
.links a:hover{border-color:var(--accent);} .links a h5{font-size:.92rem;font-weight:600;margin-bottom:.2rem;} .links a p{font-size:.8rem;color:var(--text2);}

.sidebar{position:sticky;top:80px;align-self:start;}
.toc{border-left:2px solid var(--border);padding-left:1rem;}
.toc-t{font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:var(--text2);margin-bottom:.6rem;}
.toc a{display:block;font-size:.82rem;color:var(--text2);text-decoration:none;padding:.25rem 0;} .toc a:hover{color:var(--accent);}

footer{background:#1A1A1A;color:#A0A0A0;padding:3rem 2rem 1.5rem;margin-top:3rem;}
.ft-in{max-width:var(--max);margin:0 auto;display:grid;grid-template-columns:2fr 1fr 1fr 1fr;gap:2rem;}
.ft-in h4{color:#fff;font-size:.78rem;text-transform:uppercase;letter-spacing:.06em;margin-bottom:.8rem;}
.ft-in a{display:block;color:#A0A0A0;text-decoration:none;font-size:.85rem;padding:.2rem 0;}
.ft-b{max-width:var(--max);margin:2rem auto 0;padding-top:1rem;border-top:1px solid #333;font-size:.75rem;display:flex;justify-content:space-between;}
@media(max-width:800px){.ft-in{grid-template-columns:1fr 1fr;}}

/* ARTICLE HERO IMAGE */
.art-hero{margin:0 0 1.5rem;border-radius:var(--r);overflow:hidden;}
.art-hero img{width:100%;height:auto;display:block;aspect-ratio:760/400;object-fit:cover;background:var(--border);}
.art-hero figcaption{font-size:.75rem;color:var(--text2);padding:.5rem 0;font-style:italic;}

/* LLM-friendly summary block */
.tldr{background:var(--surface);border:1px solid var(--border);border-radius:var(--r);padding:1rem 1.2rem;margin:0 0 1.5rem;font-size:.85rem;line-height:1.7;}
.tldr p{margin-bottom:.3rem;}
.tldr strong{color:var(--text);min-width:140px;display:inline-block;}

/* PAYWALL (gate applied via JS only — no CSS hiding) */
.paywall-bg{display:none;position:fixed;inset:0;z-index:199;background:rgba(0,0,0,.35);backdrop-filter:blur(2px);}
.paywall-bg.show{display:block;}
.paywall{display:none;position:fixed;bottom:0;left:0;right:0;z-index:200;background:var(--surface);border-top:3px solid var(--accent);box-shadow:0 -8px 40px rgba(0,0,0,.18);max-height:85vh;overflow-y:auto;animation:slideUp .4s ease;}
.paywall.show{display:block;}
@keyframes slideUp{from{transform:translateY(100%)}to{transform:translateY(0)}}

.pw-inner{max-width:540px;margin:0 auto;padding:2.5rem 2rem 3rem;text-align:center;}
.pw-badge{display:inline-flex;align-items:center;gap:6px;background:var(--accent-l);color:var(--accent);padding:6px 14px;border-radius:99px;font-size:.78rem;font-weight:700;margin-bottom:1rem;}
.pw-badge .dot{width:6px;height:6px;background:var(--ok);border-radius:50%;animation:pulse 2s infinite;}
@keyframes pulse{0%,100%{opacity:1}50%{opacity:.3}}
.pw-title{font-family:var(--serif);font-size:1.6rem;font-weight:700;line-height:1.2;margin-bottom:.5rem;letter-spacing:-.02em;}
.pw-sub{font-size:.92rem;color:var(--text2);margin-bottom:1.8rem;line-height:1.5;}
.pw-steps{display:flex;justify-content:center;gap:6px;margin-bottom:1.5rem;} .pw-steps span{width:40px;height:4px;border-radius:4px;background:var(--border);} .pw-steps span.on{background:var(--accent);}
.pw-label{display:block;font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--text2);margin-bottom:8px;text-align:left;}
.pw-chips{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:18px;justify-content:center;}
.pw-chip{padding:9px 18px;border-radius:99px;border:2px solid var(--border);background:#fff;font-size:.84rem;font-weight:600;cursor:pointer;transition:all .12s;font-family:var(--sans);color:var(--text);}
.pw-chip:hover{border-color:#ccc;} .pw-chip.on{border-color:var(--accent);background:var(--accent-l);color:var(--accent);}
.pw-input{width:100%;padding:11px 14px;border-radius:8px;border:2px solid var(--border);font-size:.92rem;font-family:var(--sans);margin-bottom:12px;outline:none;transition:border-color .15s;background:#fff;} .pw-input:focus{border-color:var(--accent);}
.pw-row{display:grid;grid-template-columns:1fr 1fr;gap:10px;}
.pw-nav{display:flex;gap:10px;margin-top:20px;}
.pw-back{padding:11px 20px;border-radius:8px;border:1px solid var(--border);background:#fff;font-size:.88rem;font-weight:600;cursor:pointer;font-family:var(--sans);color:var(--text2);}
.pw-next{flex:1;padding:13px;border-radius:8px;border:none;background:var(--accent);color:#fff;font-size:.95rem;font-weight:700;cursor:pointer;font-family:var(--sans);transition:background .15s;} .pw-next:hover{background:var(--accent-h);} .pw-next:disabled{opacity:.35;cursor:default;}
.pw-consent{font-size:.7rem;color:#aaa;margin-top:6px;text-align:left;line-height:1.4;}
.pw-results{text-align:left;max-width:540px;margin:0 auto;padding:0 2rem 3rem;}
.pw-big{font-size:3.2rem;font-weight:800;color:var(--accent);text-align:center;line-height:1;margin:8px 0 4px;letter-spacing:-.04em;}
.pw-big-sub{text-align:center;font-size:.92rem;color:var(--text2);margin-bottom:24px;}
.pw-type-head{display:flex;align-items:center;gap:8px;margin:18px 0 10px;}
.pw-type-badge{padding:4px 12px;border-radius:99px;font-size:.72rem;font-weight:700;}
.pw-card{background:#fff;border:1px solid var(--border);border-radius:10px;padding:14px 16px;margin-bottom:8px;cursor:pointer;transition:border-color .12s;} .pw-card:hover{border-color:var(--accent);}
.pw-card-top{display:flex;justify-content:space-between;align-items:flex-start;gap:10px;}
.pw-card-name{font-size:.9rem;font-weight:700;line-height:1.3;} .pw-card-org{font-size:.72rem;color:var(--text2);margin-top:2px;}
.pw-card-amount{font-size:.85rem;font-weight:800;color:var(--ok);white-space:nowrap;text-align:right;}
.pw-card-body{margin-top:12px;padding-top:10px;border-top:1px solid #f0f0f0;font-size:.82rem;color:#444;line-height:1.65;}
.pw-card-cond{font-size:.78rem;padding:2px 0;display:flex;gap:5px;}
.pw-card-expand{text-align:center;font-size:.7rem;color:#bbb;margin-top:8px;font-weight:600;}
.pw-unlock-msg{text-align:center;padding:20px 2rem;border-top:1px solid var(--border);margin-top:20px;}
.pw-restart{padding:12px 28px;border-radius:8px;border:none;background:var(--ok);color:#fff;font-size:.92rem;font-weight:700;cursor:pointer;font-family:var(--sans);margin-top:8px;}
