/* Biography posts: component styles copied from the Ramanujan post, scoped to .bio-up */
.post-body .bio-up{
    font-family: Georgia, 'Times New Roman', serif;
    font-size: 1.08rem;
    line-height: 1.9;
    color: #2d2d2d;
    max-width: 860px;
    margin: 0 auto;
  }.post-body .bio-up .opening-quote{
    background: linear-gradient(135deg, #1e3c72 0%, #2a5298 50%, #6b21a8 100%);
    border-radius: 18px;
    padding: 38px 40px;
    margin-bottom: 45px;
    text-align: center;
    position: relative;
    overflow: hidden;
  }.post-body .bio-up .opening-quote::before{
    content: "❝";
    position: absolute;
    top: -10px; left: 20px;
    font-size: 8rem;
    color: rgba(255,255,255,0.08);
    font-family: Georgia, serif;
    line-height: 1;
  }.post-body .bio-up .opening-quote p{
    font-size: 1.25rem;
    color: #fff;
    font-style: italic;
    margin: 0 0 12px;
    line-height: 1.8;
    position: relative;
    z-index: 1;
  }.post-body .bio-up .opening-quote .quote-attr{
    font-size: 0.9rem;
    color: #fbbf24;
    font-weight: 600;
    font-style: normal;
  }.post-body .bio-up h2{
    display: flex;
    align-items: center;
    gap: 12px;
    font-size: 1.5rem;
    font-weight: 700;
    color: #1e3c72;
    margin: 50px 0 22px;
    padding-bottom: 12px;
    border-bottom: 3px solid transparent;
    border-image: linear-gradient(to right, #1e3c72, #6b21a8, #ff4b2b, transparent) 1;
  }.post-body .bio-up h2 .sec-icon{
    width: 40px; height: 40px;
    border-radius: 10px;
    display: flex; align-items: center; justify-content: center;
    font-size: 1rem; flex-shrink: 0;
  }.post-body .bio-up h3{
    font-size: 1.15rem;
    font-weight: 700;
    color: #2a5298;
    margin: 30px 0 14px;
    display: flex;
    align-items: center;
    gap: 8px;
  }.post-body .bio-up h3::before{
    content: '';
    width: 4px; height: 20px;
    background: linear-gradient(to bottom, #ff4b2b, #fbbf24);
    border-radius: 2px;
    flex-shrink: 0;
  }.post-body .bio-up .info-card{
    background: white;
    border-radius: 14px;
    padding: 24px 28px;
    margin: 22px 0;
    box-shadow: 0 4px 16px rgba(0,0,0,0.07);
    border-left: 5px solid #1e3c72;
  }.post-body .bio-up .info-card.gold{ border-left-color: #d97706; background: #fffbeb; }.post-body .bio-up .info-card.purple{ border-left-color: #7c3aed; background: #f5f3ff; }.post-body .bio-up .info-card.green{ border-left-color: #059669; background: #ecfdf5; }.post-body .bio-up .info-card.red{ border-left-color: #dc2626; background: #fff5f5; }.post-body .bio-up .info-card.blue{ border-left-color: #1e3c72; background: #eff6ff; }.post-body .bio-up .info-card-header{
    display: flex; align-items: center; gap: 10px;
    font-size: 0.8rem; font-weight: 700;
    text-transform: uppercase; letter-spacing: 0.8px;
    margin-bottom: 10px;
  }.post-body .bio-up .info-card.gold   .info-card-header{ color: #92400e; }.post-body .bio-up .info-card.purple .info-card-header{ color: #5b21b6; }.post-body .bio-up .info-card.green  .info-card-header{ color: #065f46; }.post-body .bio-up .info-card.red    .info-card-header{ color: #991b1b; }.post-body .bio-up .info-card.blue   .info-card-header{ color: #1e3a5f; }.post-body .bio-up .timeline{
    position: relative;
    margin: 25px 0;
    padding-left: 28px;
  }.post-body .bio-up .timeline::before{
    content: '';
    position: absolute;
    left: 8px; top: 0; bottom: 0;
    width: 2px;
    background: linear-gradient(to bottom, #1e3c72, #7c3aed, #ff4b2b);
    border-radius: 2px;
  }.post-body .bio-up .timeline-item{
    position: relative;
    margin-bottom: 22px;
    padding: 16px 18px;
    background: white;
    border-radius: 10px;
    box-shadow: 0 2px 10px rgba(0,0,0,0.06);
  }.post-body .bio-up .timeline-item::before{
    content: '';
    position: absolute;
    left: -24px; top: 18px;
    width: 14px; height: 14px;
    border-radius: 50%;
    border: 3px solid #1e3c72;
    background: white;
  }.post-body .bio-up .timeline-year{
    display: inline-block;
    background: #1e3c72;
    color: white;
    font-size: 0.75rem;
    font-weight: 700;
    padding: 2px 10px;
    border-radius: 20px;
    margin-bottom: 6px;
  }.post-body .bio-up .timeline-item p{ margin: 0; font-size: 0.95rem; color: #444; }.post-body .bio-up .discovery-card{
    background: white;
    border-radius: 16px;
    padding: 26px 28px;
    margin: 24px 0;
    box-shadow: 0 4px 18px rgba(0,0,0,0.08);
    border-top: 5px solid #1e3c72;
    transition: transform 0.2s;
  }.post-body .bio-up .discovery-card:hover{ transform: translateY(-3px); }.post-body .bio-up .discovery-card:nth-child(2){ border-top-color: #7c3aed; }.post-body .bio-up .discovery-card:nth-child(3){ border-top-color: #d97706; }.post-body .bio-up .discovery-card:nth-child(4){ border-top-color: #dc2626; }.post-body .bio-up .discovery-card:nth-child(5){ border-top-color: #059669; }.post-body .bio-up .discovery-card:nth-child(6){ border-top-color: #0891b2; }.post-body .bio-up .discovery-card:nth-child(7){ border-top-color: #9333ea; }.post-body .bio-up .discovery-number{
    display: inline-flex; align-items: center; justify-content: center;
    width: 36px; height: 36px;
    background: linear-gradient(135deg, #1e3c72, #7c3aed);
    color: white; border-radius: 50%;
    font-size: 0.9rem; font-weight: 800;
    margin-bottom: 12px;
  }.post-body .bio-up .discovery-title{ font-size: 1.1rem; font-weight: 700; color: #1e3c72; margin-bottom: 10px; }.post-body .bio-up .app-tags{ display: flex; flex-wrap: wrap; gap: 8px; margin-top: 12px; }.post-body .bio-up .app-tag{
    display: inline-flex; align-items: center; gap: 5px;
    background: #eff6ff; color: #1e3c72;
    border: 1px solid #bfdbfe;
    border-radius: 20px; padding: 4px 12px;
    font-size: 0.78rem; font-weight: 600;
  }.post-body .bio-up .app-tag.purple{ background: #f5f3ff; color: #6d28d9; border-color: #ddd6fe; }.post-body .bio-up .app-tag.green{ background: #ecfdf5; color: #065f46; border-color: #a7f3d0; }.post-body .bio-up .app-tag.orange{ background: #fff7ed; color: #92400e; border-color: #fed7aa; }.post-body .bio-up .highlight-quote{
    background: linear-gradient(135deg, #fef3c7, #fde68a);
    border-left: 5px solid #d97706;
    border-radius: 0 12px 12px 0;
    padding: 18px 22px;
    margin: 20px 0;
    font-style: italic;
    color: #78350f;
    font-size: 1rem;
    line-height: 1.7;
  }.post-body .bio-up .highlight-quote .quote-src{
    display: block; margin-top: 8px;
    font-style: normal; font-weight: 700;
    font-size: 0.85rem; color: #92400e;
  }.post-body .bio-up .contrast-quote{
    background: linear-gradient(135deg, #1e3c72, #2a5298);
    border-radius: 12px;
    padding: 20px 24px;
    margin: 20px 0;
    color: white;
    font-style: italic;
    font-size: 1rem;
    line-height: 1.7;
  }.post-body .bio-up .contrast-quote .quote-src{
    display: block; margin-top: 8px;
    font-style: normal; font-weight: 700;
    font-size: 0.85rem; color: #fbbf24;
  }.post-body .bio-up .compare-grid{ display: grid; grid-template-columns: 1fr 1fr; gap: 16px; margin: 20px 0; }.post-body .bio-up .compare-card{ border-radius: 12px; padding: 18px 20px; }.post-body .bio-up .compare-card.hardy{ background: #eff6ff; border: 2px solid #93c5fd; }.post-body .bio-up .compare-card.ramanu{ background: #fdf4ff; border: 2px solid #e9d5ff; }.post-body .bio-up .compare-card h4{ margin: 0 0 10px; font-size: 1rem; font-weight: 700; }.post-body .bio-up .compare-card.hardy h4{ color: #1e40af; }.post-body .bio-up .compare-card.ramanu h4{ color: #6d28d9; }.post-body .bio-up .compare-card ul{ margin: 0; padding-left: 18px; font-size: 0.9rem; color: #444; }.post-body .bio-up .compare-card ul li{ margin-bottom: 4px; }.post-body .bio-up .taxicab-box{
    background: linear-gradient(135deg, #fef9c3, #fde68a);
    border-radius: 16px;
    padding: 24px 28px;
    margin: 22px 0;
    border: 2px solid #fbbf24;
    text-align: center;
  }.post-body .bio-up .taxicab-number{ font-size: 3.5rem; font-weight: 900; color: #92400e; line-height: 1; margin-bottom: 8px; }.post-body .bio-up .taxicab-proof{ font-size: 1.1rem; color: #78350f; font-weight: 600; }.post-body .bio-up .stats-strip{
    background: linear-gradient(135deg, #1e3c72, #7c3aed);
    border-radius: 16px;
    padding: 28px 30px;
    display: flex;
    flex-wrap: wrap;
    justify-content: space-around;
    gap: 20px;
    margin: 30px 0;
    text-align: center;
    color: white;
  }.post-body .bio-up .stat-item .num{ font-size: 2.2rem; font-weight: 900; display: block; line-height: 1; }.post-body .bio-up .stat-item .lbl{ font-size: 0.78rem; opacity: 0.8; margin-top: 5px; display: block; text-transform: uppercase; letter-spacing: 0.5px; }.post-body .bio-up .syllabus-table{
    width: 100%; border-collapse: collapse; margin: 20px 0;
    border-radius: 12px; overflow: hidden;
    box-shadow: 0 4px 15px rgba(0,0,0,0.07);
  }.post-body .bio-up .syllabus-table th{
    background: linear-gradient(135deg, #1e3c72, #2a5298);
    color: white; padding: 14px 18px;
    text-align: left; font-size: 0.9rem;
  }.post-body .bio-up .syllabus-table td{
    padding: 12px 18px; font-size: 0.9rem; color: #333;
    border-bottom: 1px solid #e5e7eb;
  }.post-body .bio-up .syllabus-table tr:nth-child(even) td{ background: #f8faff; }.post-body .bio-up .syllabus-table tr:last-child td{ border-bottom: none; }.post-body .bio-up .syllabus-table td:first-child{ font-weight: 700; color: #1e3c72; }.post-body .bio-up .lessons-grid{
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
    gap: 14px;
    margin: 20px 0;
  }.post-body .bio-up .lesson-card{
    background: white;
    border-radius: 12px;
    padding: 18px 16px;
    box-shadow: 0 3px 10px rgba(0,0,0,0.06);
    border-top: 4px solid #1e3c72;
    text-align: center;
  }.post-body .bio-up .lesson-card:nth-child(2){ border-top-color: #7c3aed; }.post-body .bio-up .lesson-card:nth-child(3){ border-top-color: #d97706; }.post-body .bio-up .lesson-card:nth-child(4){ border-top-color: #059669; }.post-body .bio-up .lesson-card .lesson-icon{ font-size: 1.8rem; margin-bottom: 8px; }.post-body .bio-up .lesson-card p{ font-size: 0.88rem; color: #555; margin: 0; line-height: 1.5; }.post-body .bio-up .lesson-card strong{ color: #1e3c72; display: block; margin-bottom: 4px; font-size: 0.92rem; }.post-body .bio-up .final-quote{
    background: linear-gradient(135deg, #0f172a, #1e3c72, #6b21a8);
    border-radius: 18px;
    padding: 38px 40px;
    margin: 40px 0 20px;
    text-align: center;
    color: white;
    position: relative;
    overflow: hidden;
  }.post-body .bio-up .final-quote::after{
    content: "∞";
    position: absolute;
    right: 20px; bottom: -20px;
    font-size: 8rem;
    color: rgba(255,255,255,0.05);
    font-family: serif;
  }.post-body .bio-up .final-quote p{
    font-size: 1.15rem; font-style: italic;
    margin: 0 0 12px; line-height: 1.8;
    position: relative; z-index: 1;
  }.post-body .bio-up .final-quote .attr{ color: #fbbf24; font-weight: 700; font-size: 0.9rem; }.post-body .bio-up .film-note{
    background: #f0fdf4;
    border: 2px dashed #86efac;
    border-radius: 12px;
    padding: 18px 22px;
    margin-top: 25px;
    font-size: 0.92rem;
    color: #166534;
  }

  @media (max-width: 640px) {.bio-up .compare-grid{ grid-template-columns: 1fr; }.post-body .bio-up .stats-strip{ flex-direction: column; align-items: center; }.post-body .bio-up .opening-quote{ padding: 28px 20px; }.post-body .bio-up .opening-quote p{ font-size: 1.05rem; }
  }
.post-body .bio-up .toc-box{background:#f8fafc;border:1px solid #e2e8f0;border-radius:14px;padding:18px 22px;margin:22px 0}
.post-body .bio-up .toc-box strong{display:block;color:#1e3c72;margin-bottom:8px;font-size:1.05rem}
.post-body .bio-up .toc-box ol{margin:0;padding-left:22px;columns:2;column-gap:32px}
.post-body .bio-up .toc-box li{margin:4px 0;break-inside:avoid}
.post-body .bio-up .toc-box a{color:#334155;text-decoration:none}.post-body .bio-up .toc-box a:hover{color:#7c3aed;text-decoration:underline}
.post-body .bio-up .dyk-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:16px;margin:16px 0}
.post-body .bio-up .dyk-card{background:linear-gradient(135deg,#fffbeb,#fff);border:1px solid #fde68a;border-radius:14px;padding:18px 20px;position:relative}
.post-body .bio-up .dyk-card i{color:#d97706;font-size:1.3rem;margin-bottom:8px;display:block}
.post-body .bio-up .dyk-card p{margin:0;line-height:1.65}
.post-body .bio-up .faq-list details{background:#fff;border:1px solid #e2e8f0;border-radius:12px;margin:10px 0;padding:0 18px}
.post-body .bio-up .faq-list summary{cursor:pointer;font-weight:700;color:#1e3c72;padding:14px 0;list-style:none;display:flex;justify-content:space-between;gap:12px}
.post-body .bio-up .faq-list summary::-webkit-details-marker{display:none}
.post-body .bio-up .faq-list summary::after{content:"+";font-size:1.3rem;color:#7c3aed}
.post-body .bio-up .faq-list details[open] summary::after{content:"\2212"}
.post-body .bio-up .faq-list details p{margin:0 0 14px;line-height:1.7}
.post-body .bio-up .related-card strong{display:block;color:#1e3c72;margin-bottom:4px}@media(max-width:640px){.bio-up .toc-box ol{columns:1}.post-body .bio-up h2{font-size:1.3rem}}

/* stats strip for the label-over-value markup used by Euler and Archimedes */
.post-body .bio-up .stats-strip{display:flex;flex-wrap:wrap;justify-content:space-around}
.post-body .bio-up .stats-strip > div:not(.stat-item){text-align:center;margin:10px;min-width:120px}
.post-body .bio-up .stats-strip > div:not(.stat-item) span{display:block;font-size:.78rem;text-transform:uppercase;letter-spacing:1px;opacity:.85}
.post-body .bio-up .stats-strip > div:not(.stat-item) strong{display:block;font-size:1.15rem;margin-top:2px}
.post-body .bio-up .formula-box{background:#f8fafc;border:1px solid #e2e8f0;border-left:4px solid #7c3aed;border-radius:10px;padding:14px 18px;margin:18px 0;text-align:center;overflow-x:auto}
.post-body .bio-up .post-figure{margin:26px auto;text-align:center}
.post-body .bio-up .post-figure img{max-width:100%;max-height:420px;border-radius:12px;box-shadow:0 8px 24px rgba(15,23,42,.15)}
.post-body .bio-up .post-figure figcaption{font-size:.85rem;color:#64748b;margin-top:8px;line-height:1.5}

/* icons inside the coloured badge: cancel any older per-post h2 icon styling */
.post-body .bio-up h2 .sec-icon i{background:none!important;padding:0!important;margin:0!important;border-radius:0!important;color:inherit!important;font-size:inherit!important}
.post-body .bio-up h2{font-family:'Helvetica Neue',Arial,sans-serif}

.post-body .bio-up .small-note{font-size:.85rem;color:#64748b;line-height:1.5}
.post-body .bio-up .sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}
