/* ============================================
   Baby Log — shared blog styles
   Used by blog.html and every post page.
   ============================================ */

@import url('https://fonts.googleapis.com/css2?family=Manrope:wght@500;700;800&family=Inter:wght@400;500;600;700&family=IBM+Plex+Mono:wght@500;600&display=swap');

:root{
  --cream:#F7EFDD;
  --paper-line:#ECDFC2;
  --ink:#332C22;
  --ink-dim:#8C7F65;
  --ink-faint:#B3A688;
  --rule:#E3D5B3;
  --card:#FFFCF4;
  --wee:#B8863A;
  --poo:#7C6449;
  --feed:#4F7A63;
  --feed-deep:#365747;
  --sleep:#5A6B8C;
}

*{box-sizing:border-box;}

body{
  margin:0;
  background:
    radial-gradient(ellipse 900px 500px at 50% -10%, var(--card) 0%, var(--cream) 55%),
    var(--cream);
  background-image:
    radial-gradient(ellipse 900px 500px at 50% -10%, var(--card) 0%, var(--cream) 55%),
    linear-gradient(var(--paper-line) 1px, transparent 1px);
  background-size: 100% 100%, 100% 34px;
  background-attachment:fixed;
  color:var(--ink);
  font-family:'Inter',sans-serif;
  font-size:16px;
  line-height:1.7;
  -webkit-font-smoothing:antialiased;
}

.wrap{max-width:680px;margin:0 auto;padding:0 22px 70px;}

a{ color:var(--feed-deep); font-weight:600; }
a:focus-visible,
button:focus-visible{
  outline:2.5px solid var(--wee);
  outline-offset:3px;
  border-radius:4px;
}

/* ---- Nav (matches index.html) ---- */
nav{
  display:flex;
  align-items:center;
  justify-content:space-between;
  padding:22px 0;
  gap:14px;
}
.brand{
  display:flex;
  align-items:center;
  gap:10px;
  font-family:'Manrope',sans-serif;
  font-weight:800;
  font-size:17px;
  color:var(--ink);
  text-decoration:none;
}
.brandmark{
  width:32px;height:32px;
  border:1.5px solid var(--ink);
  border-radius:50%;
  display:flex;align-items:center;justify-content:center;
  transform:rotate(-4deg);
  position:relative;
  flex-shrink:0;
}
.brandmark::after{
  content:'';
  position:absolute;
  inset:4px;
  border:1px dashed var(--rule);
  border-radius:50%;
}
.brandmark svg{ width:15px;height:15px; stroke:var(--ink); position:relative; }
.nav-cta{
  background:var(--ink);
  color:var(--card);
  text-decoration:none;
  font-family:'Manrope',sans-serif;
  font-weight:700;
  font-size:13px;
  padding:9px 16px;
  border-radius:10px;
  white-space:nowrap;
}

/* ---- Shared bits ---- */
.eyebrow{
  font-family:'IBM Plex Mono',monospace;
  font-size:11px;
  font-weight:600;
  letter-spacing:1.5px;
  text-transform:uppercase;
  color:var(--ink-faint);
  margin:0 0 12px;
}
.back{
  display:inline-block;
  margin-top:36px;
  font-size:12.5px;
  font-weight:700;
  color:var(--ink-dim);
  text-decoration:none;
  font-family:'IBM Plex Mono',monospace;
  border-bottom:1.5px dashed var(--ink-dim);
}
footer{
  text-align:center;
  padding:34px 0 10px;
  font-family:'IBM Plex Mono',monospace;
  font-size:11px;
  color:var(--ink-faint);
  letter-spacing:.5px;
}
footer a{ color:var(--ink-dim); text-decoration:underline; font-weight:500; }
footer .foot-links{ margin-top:8px; }
footer .sep{ margin:0 8px; }

/* ============================================
   Blog index
   ============================================ */
.blog-head{
  text-align:center;
  padding:34px 0 8px;
}
.blog-head h1{
  font-family:'Manrope',sans-serif;
  font-weight:800;
  font-size:32px;
  line-height:1.15;
  letter-spacing:-.5px;
  margin:0 0 12px;
}
.blog-head p{
  color:var(--ink-dim);
  font-size:15.5px;
  max-width:440px;
  margin:0 auto;
}

.post-list{ margin:42px 0 0; }
.post-card{
  display:block;
  background:var(--card);
  border:1.5px solid var(--ink);
  border-radius:16px;
  padding:22px 24px;
  margin-bottom:16px;
  position:relative;
  text-decoration:none;
  color:var(--ink);
  transition:transform .16s ease, box-shadow .16s ease;
}
.post-card::before{
  content:'';
  position:absolute;
  inset:5px;
  border:1px dashed var(--rule);
  border-radius:11px;
  pointer-events:none;
}
.post-card:hover{
  transform:translateY(-2px);
  box-shadow:0 10px 24px -12px rgba(51,44,34,.32);
}
.post-meta{
  font-family:'IBM Plex Mono',monospace;
  font-size:10.5px;
  font-weight:600;
  letter-spacing:1.2px;
  text-transform:uppercase;
  color:var(--ink-faint);
  margin:0 0 9px;
}
.post-card h2{
  font-family:'Manrope',sans-serif;
  font-weight:800;
  font-size:19px;
  line-height:1.3;
  letter-spacing:-.2px;
  margin:0 0 8px;
}
.post-card p{
  font-size:14px;
  color:var(--ink-dim);
  margin:0 0 12px;
}
.post-more{
  font-family:'Manrope',sans-serif;
  font-weight:700;
  font-size:13px;
  color:var(--feed-deep);
}
.list-note{
  text-align:center;
  font-family:'IBM Plex Mono',monospace;
  font-size:11px;
  letter-spacing:1px;
  text-transform:uppercase;
  color:var(--ink-faint);
  margin:30px 0 0;
}

/* ============================================
   Post page
   ============================================ */
.post-header{ padding:26px 0 6px; }
.post-header .eyebrow{ color:var(--wee); }
.post-header h1{
  font-family:'Manrope',sans-serif;
  font-weight:800;
  font-size:33px;
  line-height:1.18;
  letter-spacing:-.6px;
  margin:0 0 14px;
}
.byline{
  font-family:'IBM Plex Mono',monospace;
  font-size:11px;
  font-weight:600;
  letter-spacing:1.1px;
  text-transform:uppercase;
  color:var(--ink-faint);
  padding-bottom:22px;
  border-bottom:1px solid var(--rule);
  margin:0 0 26px;
}

article h2{
  font-family:'Manrope',sans-serif;
  font-weight:800;
  font-size:22px;
  letter-spacing:-.3px;
  line-height:1.25;
  margin:44px 0 12px;
}
article h3{
  font-family:'Manrope',sans-serif;
  font-weight:800;
  font-size:16.5px;
  margin:28px 0 8px;
}
article p{ margin:0 0 16px; }
article ul{ margin:0 0 18px; padding-left:20px; }
article li{ margin-bottom:9px; }
article li::marker{ color:var(--wee); }
.lede{
  font-size:17.5px;
  color:var(--ink-dim);
  line-height:1.65;
}

/* Pull-out answer card */
.answer{
  background:var(--card);
  border:1.5px solid var(--ink);
  border-radius:16px;
  padding:22px 24px;
  margin:26px 0 34px;
  position:relative;
}
.answer::before{
  content:'';
  position:absolute;
  inset:5px;
  border:1px dashed var(--rule);
  border-radius:11px;
  pointer-events:none;
}
.answer .eyebrow{ color:var(--ink-faint); margin-bottom:8px; }
.answer p{ margin:0; font-size:15.5px; }
.answer strong{ color:var(--ink); }

/* ---- Signature: the nappy tally ---- */
.tally{
  background:var(--card);
  border:1.5px solid var(--ink);
  border-radius:16px;
  padding:20px 14px 14px;
  margin:26px 0 12px;
}
.tally-caption{
  font-family:'IBM Plex Mono',monospace;
  font-size:10.5px;
  font-weight:600;
  letter-spacing:1.2px;
  text-transform:uppercase;
  color:var(--ink-faint);
  text-align:center;
  margin:0 0 16px;
}
.tally-row{
  display:flex;
  align-items:center;
  gap:12px;
  padding:9px 8px;
  border-bottom:1px dashed var(--rule);
}
.tally-row:last-of-type{ border-bottom:none; }
.tally-day{
  font-family:'Manrope',sans-serif;
  font-weight:800;
  font-size:13.5px;
  width:64px;
  flex-shrink:0;
}
.tally-dots{
  display:flex;
  gap:7px;
  flex:1;
}
.tally-dots i{
  width:15px;height:15px;
  border-radius:50%;
  border:1.5px dashed var(--rule);
  flex-shrink:0;
}
.tally-dots i.on{
  background:var(--wee);
  border:1.5px solid var(--wee);
}
.tally-count{
  font-family:'IBM Plex Mono',monospace;
  font-size:12px;
  font-weight:600;
  color:var(--ink-dim);
  width:66px;
  text-align:right;
  flex-shrink:0;
}
.tally-row.goal .tally-day,
.tally-row.goal .tally-count{ color:var(--wee); }
.tally-foot{
  font-size:12.5px;
  color:var(--ink-faint);
  text-align:center;
  font-family:'IBM Plex Mono',monospace;
  letter-spacing:.4px;
  margin:14px 4px 0;
  line-height:1.5;
}
@media (max-width:420px){
  .tally{ padding:18px 8px 10px; }
  .tally-row{ gap:8px; padding:9px 4px; }
  .tally-day{ width:52px; font-size:12.5px; }
  .tally-dots{ gap:5px; }
  .tally-dots i{ width:13px;height:13px; }
  .tally-count{ width:56px; font-size:11px; }
}

/* ---- Signature: 24-hour sleep strip ---- */
.clock{
  background:var(--card);
  border:1.5px solid var(--ink);
  border-radius:16px;
  padding:20px 16px 16px;
  margin:26px 0 12px;
}
.clock-caption{
  font-family:'IBM Plex Mono',monospace;
  font-size:10.5px;
  font-weight:600;
  letter-spacing:1.2px;
  text-transform:uppercase;
  color:var(--ink-faint);
  text-align:center;
  margin:0 0 18px;
}
.clock-row{ margin-bottom:16px; }
.clock-row:last-of-type{ margin-bottom:6px; }
.clock-label{
  font-family:'Manrope',sans-serif;
  font-weight:800;
  font-size:13.5px;
  margin:0 0 6px;
  display:flex;
  justify-content:space-between;
  align-items:baseline;
  gap:10px;
}
.clock-label span{
  font-family:'IBM Plex Mono',monospace;
  font-weight:600;
  font-size:11px;
  color:var(--ink-dim);
  letter-spacing:.4px;
}
.clock-bar{
  display:flex;
  height:24px;
  border:1.5px solid var(--ink);
  border-radius:6px;
  overflow:hidden;
}
.clock-bar i{
  flex:1 1 0;
  border-right:1px solid var(--rule);
}
.clock-bar i:last-child{ border-right:none; }
.clock-bar i.s{ background:var(--sleep); border-right-color:rgba(255,255,255,.18); }
.clock-scale{
  display:flex;
  justify-content:space-between;
  font-family:'IBM Plex Mono',monospace;
  font-size:10px;
  font-weight:600;
  letter-spacing:.6px;
  color:var(--ink-faint);
  margin-top:6px;
}
.clock-key{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:8px;
  font-family:'IBM Plex Mono',monospace;
  font-size:10.5px;
  letter-spacing:1px;
  text-transform:uppercase;
  color:var(--ink-faint);
  margin:16px 0 0;
}
.clock-key b{
  width:13px;height:13px;
  border-radius:3px;
  background:var(--sleep);
  display:inline-block;
}
.clock-foot{
  font-size:12.5px;
  color:var(--ink-faint);
  text-align:center;
  font-family:'IBM Plex Mono',monospace;
  letter-spacing:.4px;
  margin:12px 4px 0;
  line-height:1.5;
}
@media (max-width:420px){
  .clock{ padding:18px 10px 12px; }
  .clock-bar{ height:20px; }
  .clock-scale{ font-size:9px; }
}

/* Advice cards */
.note{
  background:var(--card);
  border:1.5px solid var(--ink);
  border-left-width:5px;
  border-radius:14px;
  padding:20px 22px;
  margin:26px 0;
}
.note h3{ margin:0 0 10px; font-size:16px; }
.note p:last-child, .note ul:last-child{ margin-bottom:0; }
.note ul{ padding-left:18px; }
.note li{ font-size:14.5px; }

.note.urgent{
  background:var(--ink);
  border-color:var(--ink);
  color:var(--cream);
}
.note.urgent h3{ color:var(--card); }
.note.urgent li::marker{ color:var(--wee); }
.note.urgent a{ color:var(--cream); }

/* ---- Signature: week-over-week comparison chart ---- */
.chart{
  background:var(--card);
  border:1.5px solid var(--ink);
  border-radius:16px;
  padding:20px 14px 14px;
  margin:26px 0 12px;
}
.chart-caption{
  font-family:'IBM Plex Mono',monospace;
  font-size:10.5px;
  font-weight:600;
  letter-spacing:1.2px;
  text-transform:uppercase;
  color:var(--ink-faint);
  text-align:center;
  margin:0 0 18px;
}
.chart-plot{
  display:flex;
  align-items:flex-end;
  gap:4px;
  height:150px;
  padding:0 2px;
  border-bottom:1.5px solid var(--ink);
}
.chart-slot{
  flex:1 1 0;
  display:flex;
  align-items:flex-end;
  justify-content:center;
  gap:2px;
  height:100%;
}
.chart-slot b{
  display:block;
  width:44%;
  border-radius:2px 2px 0 0;
  min-height:2px;
}
.chart-slot b.a{ background:var(--ink-faint); opacity:.6; }
.chart-slot b.z{ background:var(--sleep); }
.chart-axis{
  display:flex;
  gap:4px;
  padding:6px 2px 0;
}
.chart-axis span{
  flex:1 1 0;
  text-align:center;
  font-family:'IBM Plex Mono',monospace;
  font-size:9px;
  font-weight:600;
  color:var(--ink-faint);
  letter-spacing:0;
}
.chart-key{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:18px;
  flex-wrap:wrap;
  font-family:'IBM Plex Mono',monospace;
  font-size:10.5px;
  letter-spacing:.8px;
  text-transform:uppercase;
  color:var(--ink-dim);
  margin:16px 0 0;
}
.chart-key span{ display:flex; align-items:center; gap:7px; }
.chart-key i{
  width:13px;height:13px;
  border-radius:3px;
  display:inline-block;
}
.chart-key i.a{ background:var(--ink-faint); opacity:.6; }
.chart-key i.z{ background:var(--sleep); }
.chart-foot{
  font-size:12.5px;
  color:var(--ink-faint);
  text-align:center;
  font-family:'IBM Plex Mono',monospace;
  letter-spacing:.4px;
  margin:12px 4px 0;
  line-height:1.5;
}
@media (max-width:420px){
  .chart{ padding:18px 8px 12px; }
  .chart-plot{ height:120px; gap:3px; }
  .chart-axis{ gap:3px; }
  .chart-axis span{ font-size:8px; }
}

/* Author block */
.related{
  font-size:14.5px;
  margin-top:32px;
}

.author-box{
  display:flex;
  align-items:flex-start;
  gap:14px;
  border-top:1px solid var(--rule);
  margin-top:44px;
  padding-top:22px;
}
.author-mark{
  width:42px;height:42px;
  flex-shrink:0;
  border:1.5px solid var(--ink);
  border-radius:50%;
  display:flex;align-items:center;justify-content:center;
  transform:rotate(-4deg);
  position:relative;
  font-family:'Manrope',sans-serif;
  font-weight:800;
  font-size:14px;
  color:var(--ink);
}
.author-mark::after{
  content:'';
  position:absolute;
  inset:4px;
  border:1px dashed var(--rule);
  border-radius:50%;
}
.author-box .name{
  font-family:'Manrope',sans-serif;
  font-weight:800;
  font-size:14.5px;
  margin:0 0 4px;
}
.author-box p{
  font-size:13.5px;
  color:var(--ink-dim);
  margin:0;
  line-height:1.6;
}

/* Sources + disclaimer */
.sources{
  border-top:1px solid var(--rule);
  margin-top:44px;
  padding-top:20px;
  font-size:13px;
  color:var(--ink-faint);
}
.sources strong{ color:var(--ink-dim); }
.disclaimer{
  font-size:13px;
  color:var(--ink-faint);
  font-style:italic;
  margin-top:12px;
}

/* End-of-post CTA */
.post-cta{
  text-align:center;
  background:var(--card);
  border:1.5px solid var(--ink);
  border-radius:18px;
  padding:32px 24px;
  margin:44px 0 0;
  position:relative;
}
.post-cta::before{
  content:'';
  position:absolute;
  inset:6px;
  border:1px dashed var(--rule);
  border-radius:13px;
  pointer-events:none;
}
.post-cta h2{
  font-family:'Manrope',sans-serif;
  font-weight:800;
  font-size:21px;
  margin:0 0 10px;
}
.post-cta p{
  color:var(--ink-dim);
  font-size:14.5px;
  margin:0 0 20px;
}
.btn-primary{
  background:var(--ink);
  color:var(--card);
  text-decoration:none;
  font-family:'Manrope',sans-serif;
  font-weight:700;
  font-size:15px;
  padding:14px 26px;
  border-radius:12px;
  display:inline-flex;
  align-items:center;
  gap:8px;
}

@media (max-width:480px){
  .post-header h1{ font-size:27px; }
  .blog-head h1{ font-size:27px; }
  article h2{ font-size:20px; }
  .lede{ font-size:16.5px; }
}

@media (prefers-reduced-motion: reduce){
  *{ transition:none !important; animation:none !important; }
  .post-card:hover{ transform:none; }
}
