/* Duoprep — shared styles for blog pages.
   Design tokens match the landing page exactly. */
:root {
  --paper:#FAF6EF; --paper-2:#F3EDE2; --card:#FFFDF8; --ink:#1C2433;
  --soft:#5C6470; --faint:#69727D; --line:#E6DFD0;
  --teal:#196B5B; --teal-deep:#125044; --teal-bright:#23907B;
  --gold:#8B5C12; --margin:#A94F45;
  --serif:"Fraunces",Georgia,serif;
  --sans:"Inter",-apple-system,BlinkMacSystemFont,sans-serif;
  --mono:ui-monospace,SFMono-Regular,Menlo,monospace;
}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{background:var(--paper);color:var(--ink);font-family:var(--sans);
  font-size:16px;line-height:1.75;-webkit-font-smoothing:antialiased}
::selection{background:rgba(35,144,123,.18)}
h1,h2,h3{font-family:var(--serif);font-weight:500;line-height:1.25;letter-spacing:-.01em}
a{color:var(--teal)}
.wrap{max-width:1060px;margin:0 auto;padding:0 24px}
.narrow{max-width:720px;margin:0 auto;padding:0 24px}

/* Nav */
nav{position:sticky;top:0;background:rgba(250,246,239,.9);
  backdrop-filter:blur(10px);border-bottom:1px solid var(--line);z-index:50}
.nav-inner{display:flex;align-items:center;justify-content:space-between;padding:14px 0;gap:16px}
.brand{display:flex;align-items:center;gap:10px;text-decoration:none;
  font-weight:600;font-size:1.1rem;color:var(--ink)}
.brand img{height:28px;width:34px;object-fit:contain;
  transition:transform .45s cubic-bezier(.34,1.4,.64,1)}
.brand:hover img{transform:rotate(-10deg) scale(1.08)}
.brand .prep{color:var(--teal-bright);transition:color .3s}
.brand:hover .prep{color:var(--gold)}
.nav-links{display:flex;align-items:center;gap:22px;flex-wrap:wrap}
.nav-links a{color:var(--soft);text-decoration:none;font-size:.9rem;
  position:relative;transition:color .2s}
.nav-links a:hover{color:var(--ink)}
.nav-links a:not(.btn)::after{content:"";position:absolute;left:0;bottom:-4px;
  width:0;height:1.5px;background:var(--teal-bright);transition:width .28s}
.nav-links a:not(.btn):hover::after{width:100%}
.btn{display:inline-block;background:var(--teal);color:#fff;padding:10px 20px;
  border-radius:8px;text-decoration:none;font-size:.9rem;font-weight:500;
  position:relative;overflow:hidden;
  transition:background .25s,transform .2s cubic-bezier(.34,1.4,.64,1),box-shadow .25s}
.btn::after{content:"";position:absolute;inset:0;
  background:linear-gradient(115deg,transparent 35%,rgba(255,255,255,.28) 50%,transparent 65%);
  transform:translateX(-120%);transition:transform .6s;pointer-events:none}
.btn:hover::after{transform:translateX(120%)}
.btn:hover{background:var(--teal-deep);transform:translateY(-2px);
  box-shadow:0 8px 18px -8px rgba(25,107,91,.55);color:#fff}
.btn:active{transform:translateY(0);box-shadow:none}

/* Blog index */
.blog-head{padding:76px 0 20px}
.eyebrow{font-family:var(--mono);font-size:.7rem;letter-spacing:.14em;
  text-transform:uppercase;color:var(--teal-bright);margin-bottom:14px}
.blog-head h1{font-size:clamp(2.1rem,5vw,3.1rem);max-width:16ch;margin-bottom:18px}
.blog-head p{font-size:1.05rem;color:var(--soft);max-width:56ch}
.posts{padding:24px 0 90px}
.post-card{display:block;text-decoration:none;color:inherit;
  border-top:1px solid var(--line);padding:30px 0;transition:padding-left .3s}
.post-card:hover{padding-left:10px}
.post-meta{font-family:var(--mono);font-size:.72rem;letter-spacing:.08em;
  text-transform:uppercase;color:var(--faint);margin-bottom:9px}
.post-card h2{font-size:clamp(1.25rem,2.6vw,1.6rem);margin-bottom:9px;
  transition:color .25s}
.post-card:hover h2{color:var(--teal)}
.post-card p{color:var(--soft);font-size:.96rem;max-width:62ch}
.post-more{display:inline-block;margin-top:11px;color:var(--teal);
  font-size:.88rem;font-weight:500}
.empty-note{border:1px dashed var(--line);border-radius:10px;padding:34px 26px;
  text-align:center;color:var(--faint);font-size:.95rem}

/* Article */
article{padding:66px 0 90px}
.article-meta{font-family:var(--mono);font-size:.73rem;letter-spacing:.08em;
  text-transform:uppercase;color:var(--faint);margin-bottom:16px}
article h1{font-size:clamp(2rem,4.6vw,2.9rem);margin-bottom:20px}
.standfirst{font-size:1.13rem;color:var(--soft);margin-bottom:36px;
  padding-bottom:26px;border-bottom:1px solid var(--line)}
article h2{font-size:clamp(1.3rem,2.8vw,1.75rem);margin:44px 0 14px}
article h3{font-size:1.15rem;margin:30px 0 10px}
article p{margin-bottom:20px}
article ul,article ol{margin:0 0 22px 22px}
article li{margin-bottom:9px}
article blockquote{border-left:3px solid var(--teal-bright);
  padding:4px 0 4px 20px;margin:26px 0;font-family:var(--serif);
  font-style:italic;font-size:1.1rem;color:var(--ink)}
article code{font-family:var(--mono);font-size:.88em;background:var(--paper-2);
  padding:2px 6px;border-radius:4px}
article pre{background:var(--card);border:1px solid var(--line);
  border-radius:8px;padding:18px;overflow-x:auto;margin-bottom:22px}
article pre code{background:none;padding:0}
article img{max-width:100%;height:auto;border-radius:8px;margin:24px 0}
.example{background:var(--card);border:1px solid var(--line);
  border-left:3px solid var(--margin);border-radius:0 8px 8px 0;
  padding:16px 20px;margin:22px 0}
.example .wrong{color:var(--margin)}
.example .right{color:var(--teal)}
.article-cta{background:var(--ink);color:var(--paper);border-radius:12px;
  padding:34px 30px;margin-top:52px}
.article-cta h3{color:var(--paper);font-size:1.4rem;margin-bottom:10px}
.article-cta p{color:#A8B2BF;margin-bottom:20px}
.article-cta .btn{background:#7FD4BE;color:var(--ink);font-weight:600}
.article-cta .btn:hover{background:#6BC4AC;color:var(--ink)}
.back-link{display:inline-block;margin-bottom:26px;font-size:.88rem;
  color:var(--soft);text-decoration:none}
.back-link:hover{color:var(--teal)}

/* Footer */
footer{border-top:1px solid var(--line);padding:38px 0 54px;display:flex;
  justify-content:space-between;align-items:center;gap:18px;flex-wrap:wrap}
footer a{color:var(--soft);text-decoration:none;font-size:.88rem}
footer a:hover{color:var(--teal)}
.foot-mission{font-family:var(--serif);font-style:italic;
  font-size:.95rem;color:var(--soft)}
.footer-links{display:flex;gap:20px;align-items:center;flex-wrap:wrap}

a:focus-visible,.btn:focus-visible{outline:2px solid var(--teal);
  outline-offset:3px;border-radius:4px}
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *{transition:none!important;animation:none!important}
}
@media (max-width:620px){
  .blog-head{padding:48px 0 14px}
  .nav-links{gap:14px}
  .nav-links a:not(.btn){font-size:.84rem}
  article{padding:44px 0 66px}
}
