:root {--accent:#0075de;--accent-ring:#0075de33;--heading:'Playfair Display',Georgia,serif;--body:'Inter',-apple-system,sans-serif;--text:#1a1a2e;--text-light:#5a5a72;--bg:#faf8f5;--card-bg:#ffffff;--border:#e2e8f0;--shadow:0 1px 3px rgba(0,0,0,0.06);--shadow-hover:0 8px 24px rgba(0,0,0,0.10);}
*{box-sizing:border-box}body{font-family:var(--body);color:var(--text);background:var(--bg);line-height:1.7;font-size:16px;-webkit-font-smoothing:antialiased;margin:0}
h1,h2,h3{font-family:var(--heading);line-height:1.3;margin:0 0 16px 0;font-weight:600}
h1{font-size:2.25rem;margin-bottom:24px}h2{font-size:1.625rem;margin-top:48px;margin-bottom:16px}h3{font-size:1.25rem;margin-top:32px;margin-bottom:8px}
p{margin:0 0 16px 0}a{color:var(--accent);text-decoration:none;transition:all .2s ease}a:hover{opacity:.85}a:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:4px}
.container{max-width:1200px;margin:0 auto;padding:0 24px}
/* ---------- Header / Nav ---------- */
.site-header{background:var(--card-bg);border-bottom:1px solid var(--border);padding:12px 0;position:sticky;top:0;z-index:100}
.site-header .container{display:flex;align-items:center;justify-content:space-between;gap:16px}
.site-logo{font-family:var(--heading);font-size:1.25rem;font-weight:700;color:var(--text);white-space:nowrap;transition:transform .2s ease,box-shadow .2s ease;flex-shrink:0}
.site-logo:hover{transform:translateY(-2px);box-shadow:var(--shadow-hover)}
/* Hamburger toggle -- hidden checkbox */
.nav-toggle{position:absolute;opacity:0;pointer-events:none;height:0;width:0}
.hamburger{display:none;flex-direction:column;gap:5px;cursor:pointer;padding:4px;flex-shrink:0;background:none;border:none}
.hamburger span{display:block;width:24px;height:2px;background:var(--text);border-radius:2px;transition:transform .3s ease,opacity .3s ease}
/* Desktop nav */
.site-header nav{display:flex;gap:12px;align-items:center;flex-wrap:nowrap}
.site-header nav a{color:var(--text-light);font-size:.8125rem;font-weight:500;padding:6px 0;border-bottom:2px solid transparent;white-space:nowrap;transition:transform .2s ease,box-shadow .2s ease,color .2s ease}
.site-header nav a:hover{color:var(--accent);border-bottom-color:var(--accent);transform:translateY(-2px);box-shadow:var(--shadow-hover)}
.site-header nav a:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:2px}
/* Mobile nav collapse */
@media(max-width:768px){
  .site-header .container{flex-wrap:wrap}
  .hamburger{display:flex;order:2;z-index:101}
  .site-logo{order:1;font-size:1.125rem;max-width:calc(100% - 50px);overflow:hidden;text-overflow:ellipsis}
  .site-header nav{display:none;order:3;width:100%;flex-direction:column;gap:4px;padding:12px 0 8px;border-top:1px solid var(--border);margin-top:4px}
  .site-header nav a{white-space:normal;font-size:.875rem;padding:8px 0;width:100%;border-bottom:1px solid var(--border)}
  .site-header nav a:last-child{border-bottom:none}
  .nav-toggle:checked ~ .hamburger span:nth-child(1){transform:rotate(45deg) translate(5px,5px)}
  .nav-toggle:checked ~ .hamburger span:nth-child(2){opacity:0}
  .nav-toggle:checked ~ .hamburger span:nth-child(3){transform:rotate(-45deg) translate(5px,-5px)}
  .nav-toggle:checked ~ nav{display:flex}
}
/* ---------- Hero ---------- */
.hero{padding:64px 0 40px;text-align:center}
.hero h1{font-size:2.5rem;margin-bottom:12px}
.hero p{font-size:1.125rem;color:var(--text-light);max-width:42rem;margin:0 auto 24px}
/* ---------- Cards ---------- */
.card-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:24px;padding:24px 0 64px}
.card{background:var(--card-bg);border:1px solid var(--border);border-radius:8px;padding:24px;transition:transform .2s ease,box-shadow .2s ease}
.card:hover{transform:translateY(-2px);box-shadow:var(--shadow-hover)}
.card h2{font-size:1.2rem;margin-top:0;margin-bottom:8px}
.card h2 a{color:var(--text)}.card p{font-size:.9375rem;color:var(--text-light);margin:0}
.card-meta{font-size:.8125rem;color:var(--text-light);margin-top:16px;padding-top:16px;border-top:1px solid var(--border)}
/* ---------- Article ---------- */
.article-content{max-width:42rem;margin:48px auto 80px}
.article-content h1{margin-bottom:8px;font-size:2rem}.article-meta{color:var(--text-light);font-size:.8125rem;margin-bottom:32px;padding-bottom:24px;border-bottom:1px solid var(--border)}
.article-content p{font-size:1.0625rem;line-height:1.8;margin-bottom:24px}
.article-content h2{margin-top:48px;font-size:1.5rem}
.article-content a{font-weight:500;padding:1px 0;transition:transform .2s ease,box-shadow .2s ease;display:inline-block}
.article-content a:hover{transform:translateY(-2px);box-shadow:var(--shadow-hover)}
.article-content a:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:2px}
blockquote{border-left:4px solid var(--accent);margin:32px 0;padding:16px 24px;background:color-mix(in srgb,var(--accent) 8%,transparent);border-radius:4px}
/* ---------- Footer ---------- */
.site-footer{background:var(--card-bg);border-top:1px solid var(--border);padding:32px 0;margin-top:64px;text-align:center;color:var(--text-light);font-size:.8125rem}
.site-footer a{color:var(--text-light)}.site-footer a:hover{color:var(--accent)}
.btn{display:inline-block;background:var(--accent);color:#fff;padding:12px 24px;border-radius:6px;font-weight:600;font-size:.9375rem;transition:transform .2s ease,box-shadow .2s ease}
.btn:hover{transform:translateY(-2px);box-shadow:var(--shadow-hover);color:#fff}
*:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:2px}
@media(max-width:768px){.container{padding:0 16px}.hero{padding:40px 0 32px}.hero h1{font-size:2rem}.card-grid{grid-template-columns:1fr;gap:16px}.card{padding:20px}.article-content{margin:32px auto 64px}.article-content h1{font-size:1.625rem}.article-content h2{font-size:1.25rem}.article-content p{font-size:1rem}}
@media(max-width:480px){.container{padding:0 12px}.hero h1{font-size:1.5rem}.hero p{font-size:1rem}.hero{padding:32px 0 24px}.card{padding:16px}.card-grid{padding:16px 0 48px}}
