:root{
  --g900:#0b2e22; --g800:#0f3d2e; --g700:#14532d; --g600:#1b7a45; --g100:#e6f2ea;
  --gold:#f4b942; --gold-d:#d99a1c; --cream:#fbf8f1; --ink:#1c2a24; --muted:#6b7a72;
}
body.pub{font-family:'Poppins',system-ui,sans-serif;background:var(--cream);color:var(--ink);}
.pub a{color:inherit}
.pub-nav{background:var(--g800);padding:.55rem 0;box-shadow:0 2px 14px rgba(0,0,0,.15)}
.pub-nav .navbar-brand{color:#fff;font-weight:700;letter-spacing:.2px}
.pub-nav .nav-link{color:#cfe3d7;font-weight:500;font-size:.93rem;padding:.5rem .9rem}
.pub-nav .nav-link:hover,.pub-nav .nav-link.active{color:var(--gold)}
.brand-mark{width:34px;height:34px;border-radius:9px;background:var(--gold);color:var(--g900);display:grid;place-items:center;font-size:1.1rem}
.btn-gold{background:var(--gold);color:var(--g900);font-weight:600;border:0}
.btn-gold:hover{background:var(--gold-d);color:var(--g900)}
.btn-green{background:var(--g700);color:#fff;font-weight:600;border:0}
.btn-green:hover{background:var(--g600);color:#fff}

/* Hero */
.hero{background:radial-gradient(1000px 400px at 85% -10%,rgba(244,185,66,.25),transparent 60%),linear-gradient(135deg,var(--g900),var(--g700));color:#fff;padding:4.2rem 0 5rem;position:relative;overflow:hidden}
.hero:after{content:"";position:absolute;inset:auto -5% -60px -5%;height:120px;background:var(--cream);border-radius:50% 50% 0 0/100% 100% 0 0}
.hero .eyebrow{display:inline-block;background:rgba(244,185,66,.16);color:var(--gold);padding:.3rem .8rem;border-radius:99px;font-size:.8rem;font-weight:600;letter-spacing:.04em}
.hero h1{font-weight:800;font-size:clamp(2rem,4.6vw,3.3rem);line-height:1.12;margin:.9rem 0}
.hero h1 em{font-style:normal;color:var(--gold)}
.hero p.lead{color:#cfe3d7;font-size:1.05rem;max-width:560px}
.hero-search{background:#fff;border-radius:14px;padding:.35rem;display:flex;max-width:520px;box-shadow:0 10px 30px rgba(0,0,0,.25)}
.hero-search input{border:0;flex:1;padding:.7rem 1rem;border-radius:10px;outline:0;font-size:.95rem}
.today-card{background:#fff;color:var(--ink);border-radius:20px;padding:1.4rem;box-shadow:0 20px 50px rgba(0,0,0,.3);position:relative;z-index:2}
.today-card .pill{background:var(--g100);color:var(--g700);font-weight:600;font-size:.75rem;padding:.25rem .65rem;border-radius:99px}
.stat-strip{margin-top:-2.2rem;position:relative;z-index:3}
.stat-box{background:#fff;border-radius:16px;padding:1.1rem 1rem;text-align:center;box-shadow:0 6px 24px rgba(11,46,34,.08)}
.stat-box b{display:block;font-size:1.7rem;color:var(--g700);font-weight:800}
.stat-box span{font-size:.8rem;color:var(--muted)}

.sec-title{font-weight:700;font-size:1.6rem;margin:0}
.sec-title small{display:block;font-size:.85rem;color:var(--muted);font-weight:400;margin-top:.2rem}
.sec-link{font-weight:600;color:var(--g700);text-decoration:none;font-size:.9rem}

/* cards */
.ca-card{display:block;background:#fff;border-radius:16px;padding:1.2rem;height:100%;text-decoration:none;border:1px solid #ece7d8;transition:.2s}
.ca-card:hover{transform:translateY(-4px);box-shadow:0 14px 30px rgba(11,46,34,.12);border-color:var(--g600)}
.ca-card h3{font-size:1.02rem;font-weight:600;line-height:1.4;margin:0 0 .5rem;color:var(--g900)}
.ca-card p{font-size:.86rem;color:var(--muted);margin-bottom:.8rem}
.ca-card .meta{display:flex;gap:.4rem;align-items:center;font-size:.78rem;color:var(--muted)}
.ca-card .read{color:var(--g700);font-weight:600}
.tag{background:var(--g100);color:var(--g700);font-size:.7rem;font-weight:600;padding:.2rem .6rem;border-radius:99px;text-transform:uppercase;letter-spacing:.03em}
.tag-gold{background:#fff3d6;color:#9a6a00}
.tag-free{background:#e5f6ea;color:#18793a}
.quiz-card{display:flex;gap:.9rem;align-items:center;background:#fff;border-radius:14px;padding:1rem;text-decoration:none;border:1px solid #ece7d8;transition:.2s;margin-bottom:.8rem}
.quiz-card:hover{border-color:var(--g600);box-shadow:0 8px 22px rgba(11,46,34,.1)}
.qc-icon{width:46px;height:46px;border-radius:12px;background:var(--g100);color:var(--g700);display:grid;place-items:center;font-size:1.3rem;flex-shrink:0}
.col-head{font-weight:700;margin-bottom:.9rem;display:flex;align-items:center;gap:.5rem}
.book-card{background:#fff;border-radius:16px;overflow:hidden;border:1px solid #ece7d8;height:100%;display:flex;flex-direction:column}
.book-cover{background:linear-gradient(145deg,var(--g800),var(--g600));color:#fff;padding:1.4rem 1.2rem;min-height:170px;position:relative}
.book-cover:after{content:"";position:absolute;right:-30px;bottom:-30px;width:110px;height:110px;border-radius:50%;background:rgba(244,185,66,.25)}
.book-cover .bk-site{font-size:.7rem;opacity:.8;text-transform:uppercase;letter-spacing:.08em}
.book-cover h4{font-size:1.1rem;font-weight:700;margin:.5rem 0}
.book-body{padding:1rem 1.2rem;display:flex;flex-direction:column;gap:.6rem;flex:1}
.plan-card{background:#fff;border-radius:20px;padding:1.8rem 1.5rem;border:2px solid #ece7d8;height:100%;position:relative;text-align:center}
.plan-card.hot{border-color:var(--gold);box-shadow:0 18px 40px rgba(244,185,66,.25)}
.plan-card .price{font-size:2.4rem;font-weight:800;color:var(--g700)}
.plan-card .badge-top{position:absolute;top:-13px;left:50%;transform:translateX(-50%);background:var(--gold);color:var(--g900);font-size:.72rem;font-weight:700;padding:.25rem .8rem;border-radius:99px}
.feature{background:#fff;border-radius:16px;padding:1.4rem;height:100%;border:1px solid #ece7d8}
.feature i{font-size:1.6rem;color:var(--g600)}
.cta-band{background:linear-gradient(135deg,var(--g800),var(--g600));color:#fff;border-radius:24px;padding:2.6rem 1.5rem;text-align:center}

/* article page */
.art-wrap{max-width:780px;margin:0 auto}
.art-wrap h1{font-weight:700;font-size:clamp(1.5rem,3.4vw,2.1rem);line-height:1.3}
.art-body p{font-family:'Merriweather',Georgia,serif;font-size:1.04rem;line-height:1.85;color:#26332c;margin-bottom:1.2rem}
.hl-box{background:var(--g100);border-left:4px solid var(--g600);border-radius:12px;padding:1rem 1.2rem;margin:1.2rem 0}
.hl-box li{margin-bottom:.35rem;font-size:.95rem}
.art-img{max-width:100%;border-radius:14px}
.lock-fade{position:relative;max-height:140px;overflow:hidden}
.lock-fade:after{content:"";position:absolute;inset:0;background:linear-gradient(transparent,var(--cream) 90%)}
.timer-bar{position:sticky;top:62px;z-index:20;background:#fff3d6;border:1px solid #f1d58a;border-radius:12px;padding:.5rem .9rem;font-size:.85rem;display:flex;gap:.6rem;align-items:center;margin-bottom:1rem}
.paywall-box{background:#fff;border:2px solid var(--gold);border-radius:18px;padding:1.6rem;text-align:center;box-shadow:0 14px 34px rgba(244,185,66,.2)}
.paywall-lock{overflow:hidden}

/* auth */
.auth-card{max-width:440px;margin:3rem auto;background:#fff;border-radius:20px;padding:2rem;box-shadow:0 12px 40px rgba(11,46,34,.1)}

/* dashboard */
.dash-stat{background:#fff;border-radius:16px;padding:1.1rem;border:1px solid #ece7d8}
.dash-stat b{font-size:1.6rem;color:var(--g700)}
.sub-banner{background:linear-gradient(135deg,var(--g800),var(--g600));color:#fff;border-radius:18px;padding:1.3rem 1.5rem}

/* quiz runner */
.qz-top{position:sticky;top:0;z-index:50;background:var(--g800);color:#fff;padding:.6rem 0}
.qz-timer{font-weight:700;font-size:1.15rem;background:rgba(255,255,255,.12);padding:.25rem .8rem;border-radius:10px;font-variant-numeric:tabular-nums}
.qz-timer.low{background:#c62828;animation:pulse 1s infinite}
@keyframes pulse{50%{opacity:.6}}
.q-card{background:#fff;border-radius:18px;padding:1.5rem;border:1px solid #ece7d8}
.q-opt{display:flex;gap:.8rem;align-items:flex-start;border:2px solid #e6e1d2;border-radius:12px;padding:.8rem 1rem;margin-bottom:.7rem;cursor:pointer;transition:.15s;background:#fff;width:100%;text-align:left}
.q-opt:hover{border-color:var(--g600)}
.q-opt.sel{border-color:var(--g700);background:var(--g100)}
.q-opt .k{width:28px;height:28px;border-radius:50%;background:#efeadb;display:grid;place-items:center;font-weight:600;font-size:.82rem;flex-shrink:0}
.q-opt.sel .k{background:var(--g700);color:#fff}
.q-opt.right{border-color:#1b9a4b;background:#e6f7ec}.q-opt.right .k{background:#1b9a4b;color:#fff}
.q-opt.wrong{border-color:#d32f2f;background:#fdeaea}.q-opt.wrong .k{background:#d32f2f;color:#fff}
.palette{display:grid;grid-template-columns:repeat(5,1fr);gap:.45rem}
.palette button{border:1px solid #d9d3bf;background:#fff;border-radius:8px;padding:.35rem 0;font-size:.82rem;font-weight:600}
.palette button.ans{background:var(--g700);color:#fff;border-color:var(--g700)}
.palette button.rev{background:var(--gold);border-color:var(--gold);color:var(--g900)}
.palette button.cur{outline:3px solid #7aa7ff}
.score-ring{width:150px;height:150px;border-radius:50%;display:grid;place-items:center;margin:0 auto;background:conic-gradient(var(--g600) calc(var(--p)*1%),#e8e3d3 0)}
.score-ring div{width:118px;height:118px;border-radius:50%;background:#fff;display:grid;place-items:center;font-weight:800;font-size:1.6rem}

.pub-footer{background:var(--g900);color:#dbe8e0}
.foot-links a{color:#b9cdc1;text-decoration:none;display:inline-block;padding:.15rem 0}
.foot-links a:hover{color:var(--gold)}
.foot-soc{display:inline-grid;place-items:center;width:38px;height:38px;border-radius:50%;background:rgba(255,255,255,.1);color:#fff;margin-right:.4rem;text-decoration:none}
@media(max-width:576px){.hero{padding:2.6rem 0 4rem}.palette{grid-template-columns:repeat(6,1fr)}}
