/* ============================================================
   SammyKorean — Newsletter Hub (maily-style) · Wise brand
   Shared stylesheet for the hub (index.html) + article pages.
   Light canvas, lime accent, forest-green emphasis.
   ============================================================ */
@import url('https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700;800;900&family=Manrope:wght@600;700;800;900&family=Noto+Sans+HK:wght@400;500;700;900&family=Noto+Sans+KR:wght@400;500;700;900&family=JetBrains+Mono:wght@500&display=swap');
:root{
  --green:#9fe870; --green-active:#cdffad; --green-neutral:#c5edab; --green-pale:#e2f6d5;
  --ink:#0e0f0c; --ink-deep:#163300; --body:#454745; --muted:#868685;
  --hair:#e6e8e3; --soft:#f3f5f0; --sage:#e8ebe6; --canvas:#fff;
  --display:"Manrope","Inter","Noto Sans HK",sans-serif;
}
*{box-sizing:border-box;margin:0;padding:0;}
html{scroll-behavior:smooth;}
body{font-family:"Inter","Noto Sans HK","Noto Sans KR",sans-serif;font-feature-settings:"calt";
  color:var(--ink);background:var(--canvas);-webkit-font-smoothing:antialiased;line-height:1.6;}
a{color:inherit;text-decoration:none;}
.wrap{max-width:980px;margin:0 auto;padding:0 24px;}

/* ── top bar ── */
.topbar{position:sticky;top:0;z-index:50;background:rgba(255,255,255,.88);backdrop-filter:blur(12px);
  border-bottom:1px solid var(--hair);}
.topbar .row{display:flex;align-items:center;justify-content:space-between;height:64px;max-width:980px;margin:0 auto;padding:0 24px;}
.brandmark{display:flex;align-items:center;gap:10px;font-family:var(--display);font-weight:900;font-size:19px;letter-spacing:-.4px;}
.brandmark .wave{width:30px;height:30px;border-radius:9px;background:var(--ink-deep);color:var(--green);
  display:flex;align-items:center;justify-content:center;font-size:16px;font-weight:900;}
.topbar .mini{font-size:14px;color:var(--muted);}

/* ── profile header ── */
.profile{text-align:center;padding:56px 0 8px;}
.avatar{width:96px;height:96px;border-radius:9999px;margin:0 auto 22px;background:var(--green);
  display:flex;align-items:center;justify-content:center;color:var(--ink-deep);
  font-family:var(--display);font-weight:900;font-size:40px;border:1px solid var(--green-neutral);}
.profile h1{font-family:var(--display);font-size:34px;font-weight:900;letter-spacing:-.8px;}
.profile .mail{font-size:15px;color:var(--muted);margin-top:6px;}
.profile .desc{font-size:18px;color:var(--body);max-width:520px;margin:18px auto 0;line-height:1.6;}

/* stats + subscribe */
.statrow{display:flex;align-items:center;justify-content:center;gap:40px;margin:30px 0 6px;flex-wrap:wrap;}
.stat{text-align:left;}
.stat .lab{font-size:13px;color:var(--muted);letter-spacing:.04em;}
.stat .num{font-family:var(--display);font-size:30px;font-weight:800;letter-spacing:-.5px;line-height:1.1;}
.sub-btn{display:inline-flex;align-items:center;gap:8px;background:var(--green);color:var(--ink);
  font-weight:700;font-size:16px;padding:13px 26px;border-radius:9999px;border:0;cursor:pointer;
  transition:background .15s,transform .15s;}
.sub-btn:hover{background:var(--green-active);transform:translateY(-1px);}

/* ── tabs ── */
.tabs{display:flex;gap:30px;justify-content:center;border-bottom:1px solid var(--hair);margin-top:38px;}
.tab{padding:16px 2px;font-size:16px;font-weight:600;color:var(--muted);border-bottom:2px solid transparent;
  margin-bottom:-1px;cursor:pointer;transition:color .15s;}
.tab.active{color:var(--ink);border-bottom-color:var(--ink-deep);}
.tab:hover{color:var(--ink);}

/* ── filters + search ── */
.controls{padding:30px 0 6px;}
.pills{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:16px;}
.pill{font-size:14px;font-weight:600;color:var(--body);background:var(--soft);border:1px solid var(--hair);
  padding:9px 16px;border-radius:9999px;cursor:pointer;transition:.15s;}
.pill:hover{border-color:var(--green-neutral);}
.pill.active{background:var(--ink-deep);color:#fff;border-color:var(--ink-deep);}
.searchbox{display:flex;align-items:center;gap:10px;background:var(--soft);border:1px solid var(--hair);
  border-radius:14px;padding:14px 18px;}
.searchbox input{flex:1;border:0;background:transparent;font:inherit;font-size:16px;color:var(--ink);outline:none;}
.searchbox input::placeholder{color:var(--muted);}
.searchbox .ic{color:var(--muted);font-size:17px;}
.tagrow{display:flex;gap:8px 14px;flex-wrap:wrap;margin-top:16px;}
.tagrow a{font-size:14px;color:var(--ink-deep);font-style:italic;font-weight:600;cursor:pointer;}
.tagrow a:hover{text-decoration:underline;}
.tagrow a span{color:var(--muted);font-style:normal;font-weight:500;}

/* ── newsletter list ── */
.list{padding:18px 0 40px;}
.nl{display:grid;grid-template-columns:1fr 280px;gap:32px;align-items:center;
  border:1px solid var(--hair);border-radius:20px;padding:28px;margin-bottom:20px;background:var(--canvas);
  transition:border-color .18s,box-shadow .18s,transform .18s;}
.nl:hover{border-color:var(--green-neutral);box-shadow:0 16px 40px rgba(14,15,12,.06);transform:translateY(-2px);}
.nl .cat{font-size:13px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--ink-deep);}
.nl h2{font-family:var(--display);font-size:25px;font-weight:800;letter-spacing:-.5px;line-height:1.25;margin:10px 0 12px;}
.nl .ex{font-size:15.5px;color:var(--body);line-height:1.6;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;}
.nl .vocab{display:flex;gap:8px;flex-wrap:wrap;margin:14px 0 0;}
.nl .vocab b{font-family:"Noto Sans KR",sans-serif;font-size:14px;font-weight:600;color:var(--ink-deep);
  background:var(--green-pale);border-radius:8px;padding:4px 11px;}
.nl .meta{font-size:14px;color:var(--muted);margin-top:14px;}
.nl .meta .new{color:var(--ink-deep);background:var(--green);border-radius:6px;padding:2px 9px;font-weight:700;font-size:12.5px;margin-right:10px;}

/* ── branded thumbnail (no image needed) ── */
.thumb{position:relative;aspect-ratio:4/3;border-radius:14px;overflow:hidden;padding:24px;
  display:flex;flex-direction:column;justify-content:flex-end;color:#fff;}
.thumb.forest{background:linear-gradient(155deg,#1e4700,#163300 60%,#0e2400);}
.thumb.lime{background:linear-gradient(155deg,#b6f08a,#9fe870 55%,#7fd44e);color:var(--ink-deep);}
.thumb.sage{background:linear-gradient(155deg,#eef1ea,#e3e8dd);color:var(--ink-deep);}
.thumb .tbrand{position:absolute;top:16px;left:20px;font-family:var(--display);font-weight:900;font-size:13px;letter-spacing:-.2px;opacity:.9;}
.thumb .than{position:absolute;top:6px;right:14px;font-family:"Noto Sans KR",sans-serif;font-size:128px;font-weight:900;line-height:1;opacity:.12;}
.thumb .ttitle{font-family:var(--display);font-weight:900;font-size:23px;letter-spacing:-.4px;line-height:1.2;position:relative;z-index:1;}
.thumb .tsub{font-size:13px;margin-top:8px;opacity:.85;position:relative;z-index:1;}
.thumb.forest .ttitle b,.thumb.sage .ttitle b{color:var(--green);}
.thumb.forest .ttitle b{color:#9fe870;}

.empty{text-align:center;color:var(--muted);padding:50px 0;font-size:16px;display:none;}

/* ── footer ── */
footer{background:var(--ink);color:var(--sage);padding:40px 0;font-size:14px;margin-top:20px;}
footer .wrap{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:12px;}
footer a:hover{color:var(--green);}

/* ============================================================
   ARTICLE PAGE
   ============================================================ */
.article-mast{padding:36px 0 0;}
.profile-mini{display:flex;align-items:center;gap:16px;border-bottom:1px solid var(--hair);padding-bottom:26px;}
.profile-mini .avatar{width:54px;height:54px;font-size:22px;margin:0;}
.profile-mini .pm-txt{flex:1;}
.profile-mini .pm-txt b{font-family:var(--display);font-size:17px;font-weight:800;display:block;}
.profile-mini .pm-txt span{font-size:14px;color:var(--muted);}
.profile-mini .sub-btn{font-size:14px;padding:10px 20px;}

.article-head{max-width:720px;margin:40px auto 0;}
.article-head .eyebrow{font-size:13px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-deep);
  border-bottom:2px solid var(--ink-deep);display:inline-block;padding-bottom:3px;}
.article-head h1{font-family:var(--display);font-size:clamp(30px,4.4vw,42px);font-weight:900;letter-spacing:-1px;line-height:1.18;margin:20px 0 16px;}
.article-head .sub{font-size:19px;color:var(--body);line-height:1.55;}
.article-head .ameta{display:flex;align-items:center;gap:14px;flex-wrap:wrap;font-size:14px;color:var(--muted);margin:20px 0 6px;}
.article-head .from{font-style:italic;color:var(--body);text-align:right;font-size:15px;margin-top:6px;}
.hero-thumb{max-width:720px;margin:26px auto 0;}
.hero-thumb .thumb{aspect-ratio:16/9;}
.hero-thumb .thumb .ttitle{font-size:30px;}
.hero-thumb .thumb .than{font-size:170px;}

/* layout: TOC + body */
.article-layout{display:grid;grid-template-columns:230px minmax(0,720px);gap:48px;justify-content:center;
  max-width:1040px;margin:40px auto 0;padding:0 24px;align-items:start;}
.toc{position:sticky;top:84px;font-size:14px;border-left:2px solid var(--hair);padding-left:18px;max-height:calc(100vh - 120px);overflow:auto;}
.toc .toc-lab{font-size:12px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);margin-bottom:14px;}
.toc a{display:block;padding:7px 0;color:var(--muted);line-height:1.4;border-left:2px solid transparent;margin-left:-20px;padding-left:18px;transition:.15s;}
.toc a:hover{color:var(--ink);}
.toc a.active{color:var(--ink-deep);font-weight:700;border-left-color:var(--ink-deep);}

/* body typography */
.article-body{font-size:17.5px;color:var(--ink);line-height:1.8;}
.article-body h3{font-family:var(--display);font-size:24px;font-weight:800;letter-spacing:-.4px;margin:42px 0 14px;scroll-margin-top:84px;}
.article-body h3 .ko{font-family:"Noto Sans KR",sans-serif;}
.article-body p{margin:0 0 18px;}
.article-body strong,.article-body b{font-weight:700;color:var(--ink);}
.article-body .ko{font-family:"Noto Sans KR",sans-serif;}
.article-body hr{border:0;border-top:1px solid var(--hair);margin:34px 0;}
.article-body ul{margin:0 0 18px;padding-left:0;list-style:none;}
.article-body ul li{position:relative;padding-left:24px;margin-bottom:9px;}
.article-body ul li::before{content:"";position:absolute;left:4px;top:13px;width:7px;height:7px;border-radius:50%;background:var(--green);}
/* Korean example sentence block */
.article-body blockquote{background:var(--soft);border-left:3px solid var(--green);border-radius:0 12px 12px 0;
  padding:18px 22px;margin:0 0 18px;}
.article-body blockquote .kr{font-family:"Noto Sans KR",sans-serif;font-size:22px;font-weight:600;color:var(--ink-deep);display:block;}
.article-body blockquote .rr{font-family:"JetBrains Mono",monospace;font-size:14px;color:var(--muted);font-style:italic;display:block;margin:5px 0;}
.article-body blockquote .mn{font-size:15.5px;color:var(--body);display:block;}
/* recap table */
.article-body table{width:100%;border-collapse:collapse;margin:22px 0;font-size:15px;}
.article-body th,.article-body td{border:1px solid var(--hair);padding:11px 14px;text-align:left;}
.article-body th{background:var(--sage);font-weight:700;font-size:13.5px;}
.article-body td .ko{font-size:17px;font-weight:600;color:var(--ink-deep);}
/* P.S. / callout */
.article-body .ps{background:var(--ink-deep);color:#fff;border-radius:16px;padding:24px 26px;margin:30px 0;font-size:16px;line-height:1.7;}
.article-body .ps b{color:var(--green);}
.article-body .reply{background:var(--green-pale);border-radius:14px;padding:20px 24px;margin:24px 0;font-size:16px;color:var(--ink-deep);}
/* CTA */
.article-cta{max-width:720px;margin:46px auto 0;background:var(--ink);color:#fff;border-radius:22px;padding:42px 38px;text-align:center;}
.article-cta h3{font-family:var(--display);font-size:27px;font-weight:900;letter-spacing:-.6px;color:var(--green);margin-bottom:10px;}
.article-cta p{color:var(--sage);font-size:16px;margin-bottom:22px;}
.article-cta .sub-btn{font-size:16px;}
.backlink{max-width:720px;margin:30px auto 0;padding:0 24px;}
.backlink a{font-size:15px;color:var(--ink-deep);font-weight:600;}
.backlink a:hover{text-decoration:underline;}

/* full-width body when a newsletter has no section headings to build a TOC from */
.article-layout.no-toc{grid-template-columns:minmax(0,720px);}
/* bold-only paragraphs in Kit emails promoted to section headings */
.article-body p.kit-h{font-family:var(--display);font-size:23px;font-weight:800;letter-spacing:-.4px;
  color:var(--ink);margin:38px 0 12px;scroll-margin-top:84px;}
.article-body p.kit-h strong,.article-body p.kit-h b{font-weight:800;color:var(--ink);}

@media(max-width:860px){
  .article-layout{grid-template-columns:1fr;gap:0;}
  .toc{display:none;}
}
@media(max-width:680px){
  .nl{grid-template-columns:1fr;gap:20px;}
  .nl .thumb-wrap{order:-1;}
  .statrow{gap:26px;}
  .tabs{gap:18px;overflow:auto;}
}
@media(prefers-reduced-motion:reduce){*{transition:none!important;}}
