/* —————————————————————————————————————————————————
   Soumik Purkayastha — site stylesheet
   Apple system fonts · accessible navy accent · warm cream background
   ————————————————————————————————————————————————— */

:root {
    --bg: #FBFAF6;
    --bg-elev: #FFFFFF;
    --ink: #1D1D1F;
    --ink-soft: #3F3F44;
    --ink-muted: #6E6E73;
    --rule: #D2D2D7;
    --rule-soft: #E8E8ED;
    --accent: #0A4D8C;
    --accent-soft: #2C6FB1;
    --measure: 38rem;

    --sans: -apple-system, BlinkMacSystemFont, "SF Pro Text", "SF Pro Display",
             "Helvetica Neue", system-ui, sans-serif;
    --mono: ui-monospace, "SF Mono", Menlo, "JetBrains Mono", monospace;
  }

* { box-sizing: border-box; margin: 0; padding: 0; }

html { font-size: 17px; }

body {
    background: var(--bg);
    color: var(--ink);
    font-family: var(--sans);
    font-weight: 400;
    line-height: 1.55;
    letter-spacing: -0.005em;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
  }

/* —————— Layout —————— */
  .wrap {
    max-width: 56rem;
    padding: 0 2rem;
    margin: 0 auto;
  }

/* —————— Top nav —————— */
  nav.site-nav {
    padding: 2.25rem 0 0;
    display: flex;
    justify-content: space-between;
    align-items: baseline;
    font-family: var(--sans);
    font-size: 0.82rem;
    font-weight: 500;
    letter-spacing: -0.005em;
    color: var(--ink-soft);
  }

nav.site-nav .brand {
    font-weight: 600;
    font-size: 0.92rem;
    color: var(--ink);
    letter-spacing: -0.01em;
  }

nav.site-nav ul {
    list-style: none;
    display: flex;
    gap: 1.75rem;
  }

nav.site-nav a {
    color: inherit;
    text-decoration: none;
    transition: color 0.15s;
  }

nav.site-nav a:hover { color: var(--accent); }

nav.site-nav a.active { color: var(--accent); }

/* —————— Hero —————— */
  header.hero {
    padding: 5.5rem 0 4.5rem;
  }

.eyebrow {
    font-family: var(--mono);
    font-size: 0.74rem;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    color: var(--accent);
    margin-bottom: 1.5rem;
  }

h1.name {
    font-weight: 600;
    font-size: clamp(2.8rem, 6.5vw, 4.8rem);
    line-height: 1.02;
    letter-spacing: -0.04em;
    color: var(--ink);
    margin-bottom: 1.75rem;
  }

.titles {
    max-width: 36rem;
    margin-bottom: 2.75rem;
  }

.titles p {
    font-size: 1.05rem;
    line-height: 1.55;
    color: var(--ink-soft);
    font-weight: 400;
  }

.titles p + p {
    margin-top: 0.4rem;
  }

.titles .role {
    color: var(--ink);
    font-weight: 500;
  }

.titles .sep {
    color: var(--rule);
    margin: 0 0.5rem;
  }

.program {
    font-size: 1.22rem;
    line-height: 1.55;
    color: var(--ink);
    max-width: var(--measure);
    margin-bottom: 2.5rem;
    font-weight: 400;
    letter-spacing: -0.012em;
  }

.contact-row {
    display: flex;
    gap: 1.5rem;
    flex-wrap: wrap;
    font-family: var(--mono);
    font-size: 0.82rem;
    color: var(--ink-soft);
  }

.contact-row a {
    color: inherit;
    text-decoration: none;
    border-bottom: 1px solid var(--rule);
    padding-bottom: 1px;
    transition: color 0.15s, border-color 0.15s;
  }

.contact-row a:hover {
    color: var(--accent);
    border-color: var(--accent);
  }

/* —————— Sections —————— */
  section {
    padding: 4rem 0;
    border-top: 1px solid var(--rule-soft);
  }

section.compact { padding: 3rem 0; }

.section-label {
    font-family: var(--mono);
    font-size: 0.74rem;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: var(--ink-muted);
    margin-bottom: 2.5rem;
    display: flex;
    align-items: baseline;
    gap: 1rem;
  }

.section-label::after {
    content: "";
    flex: 1;
    height: 1px;
    background: var(--rule-soft);
  }

/* —————— Three thrusts —————— */
  .program-thrusts {
    display: grid;
    gap: 3.5rem;
  }

.program-thrust {
    display: grid;
    grid-template-columns: 4rem 1fr;
    gap: 2rem;
    align-items: start;
  }

.program-thrust .numeral {
    font-family: var(--mono);
    font-size: 0.92rem;
    font-weight: 500;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    color: var(--accent);
    padding-top: 0.5rem;
  }

.program-thrust h3 {
    font-weight: 600;
    font-size: 1.4rem;
    line-height: 1.25;
    letter-spacing: -0.022em;
    color: var(--ink);
    margin-bottom: 0.85rem;
  }

.program-thrust p {
    font-size: 1.04rem;
    line-height: 1.6;
    color: var(--ink-soft);
    max-width: var(--measure);
  }

.program-thrust .keywords {
    margin-top: 1rem;
    font-family: var(--mono);
    font-size: 0.74rem;
    color: var(--ink-muted);
  }

/* —————— Currently —————— */
  .currently {
    font-size: 1.08rem;
    line-height: 1.65;
    max-width: var(--measure);
    color: var(--ink);
  }

.currently .label {
    color: var(--accent);
    font-weight: 500;
  }

/* —————— Recent work —————— */
  .papers {
    display: grid;
    gap: 0;
  }

.paper {
    display: grid;
    grid-template-columns: 5.5rem 1fr;
    gap: 2rem;
    padding: 1.5rem 0;
    border-bottom: 1px solid var(--rule-soft);
    align-items: baseline;
  }

.paper:last-child { border-bottom: none; }

.paper .year {
    font-family: var(--mono);
    font-size: 0.82rem;
    color: var(--ink-muted);
    font-variant-numeric: tabular-nums;
  }

.paper .title {
    font-size: 1.04rem;
    line-height: 1.45;
    color: var(--ink);
    margin-bottom: 0.35rem;
    letter-spacing: -0.01em;
  }

.paper .title a {
    color: inherit;
    text-decoration: none;
    background-image: linear-gradient(var(--rule), var(--rule));
    background-position: 0 100%;
    background-repeat: no-repeat;
    background-size: 100% 1px;
    transition: background-image 0.15s, color 0.15s;
  }

.paper .title a:hover {
    background-image: linear-gradient(var(--accent), var(--accent));
    color: var(--accent);
  }

.paper .venue {
    font-size: 0.92rem;
    color: var(--ink-muted);
  }

/* —————— Software —————— */
  .software-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(15rem, 1fr));
    gap: 1px;
    background: var(--rule-soft);
    border: 1px solid var(--rule-soft);
  }

.pkg {
    background: var(--bg-elev);
    padding: 1.5rem;
    transition: background 0.15s;
  }

.pkg:hover { background: var(--bg); }

.pkg .name {
    font-family: var(--mono);
    font-size: 0.96rem;
    color: var(--accent);
    margin-bottom: 0.4rem;
    font-weight: 500;
  }

.pkg .desc {
    font-size: 0.94rem;
    line-height: 1.5;
    color: var(--ink-soft);
  }

.pkg .status {
    margin-top: 0.55rem;
    font-family: var(--mono);
    font-size: 0.72rem;
    color: var(--ink-muted);
    letter-spacing: 0.04em;
    text-transform: uppercase;
  }

/* —————— News —————— */
  .news {
    display: grid;
    gap: 0;
    max-width: var(--measure);
  }

.news-item {
    display: grid;
    grid-template-columns: 6rem 1fr;
    gap: 1.5rem;
    padding: 1rem 0;
    border-bottom: 1px solid var(--rule-soft);
    align-items: baseline;
  }

.news-item:last-child { border-bottom: none; }

.news-item .when {
    font-family: var(--mono);
    font-size: 0.78rem;
    color: var(--ink-muted);
    text-transform: uppercase;
    letter-spacing: 0.04em;
  }

.news-item .what {
    font-size: 1rem;
    line-height: 1.5;
    color: var(--ink);
  }

.news-item .what a {
    color: var(--accent);
    text-decoration: none;
    border-bottom: 1px dotted var(--accent-soft);
  }

.news-item .what a:hover { border-bottom-style: solid; }

/* —————— Footer —————— */
  footer {
    padding: 4rem 0 5rem;
    border-top: 1px solid var(--rule-soft);
    margin-top: 2rem;
  }

footer .meta {
    display: flex;
    justify-content: space-between;
    align-items: baseline;
    flex-wrap: wrap;
    gap: 1rem;
    font-family: var(--mono);
    font-size: 0.78rem;
    color: var(--ink-muted);
  }

footer .meta a {
    color: inherit;
    text-decoration: none;
    border-bottom: 1px solid var(--rule);
    padding-bottom: 1px;
  }

footer .meta a:hover {
    color: var(--accent);
    border-color: var(--accent);
  }

/* —————— Responsive —————— */
  @media (max-width: 640px) {
    html { font-size: 16px; }
    .wrap { padding: 0 1.25rem; }
    nav.site-nav { flex-direction: column; gap: 1rem; }
    nav.site-nav ul { flex-wrap: wrap; gap: 1rem; }
    header.hero { padding: 3rem 0; }
    h1.name { font-size: 2.5rem; }
    .program { font-size: 1.1rem; }
    .program-thrust { grid-template-columns: 1fr; gap: 0.75rem; }
    .paper { grid-template-columns: 1fr; gap: 0.5rem; }
    .news-item { grid-template-columns: 1fr; gap: 0.25rem; }
    section { padding: 2.75rem 0; }
  }

/* Subtle entrance */
  @media (prefers-reduced-motion: no-preference) {
    header.hero > * {
      animation: rise 0.7s cubic-bezier(0.2, 0.8, 0.2, 1) both;
    }
    header.hero .eyebrow { animation-delay: 0.05s; }
    header.hero .name    { animation-delay: 0.12s; }
    header.hero .titles  { animation-delay: 0.22s; }
    header.hero .program { animation-delay: 0.32s; }
    header.hero .contact-row { animation-delay: 0.42s; }
    @keyframes rise {
      from { opacity: 0; transform: translateY(8px); }
      to   { opacity: 1; transform: translateY(0); }
    }
  }

nav.site-nav .brand a {
    color: inherit;
    text-decoration: none;
  }

/* —————— Page header —————— */
  header.page {
    padding: 5rem 0 3.5rem;
  }

h1.page-title {
    font-weight: 600;
    font-size: clamp(2.5rem, 5vw, 3.6rem);
    line-height: 1.05;
    letter-spacing: -0.035em;
    color: var(--ink);
    margin-bottom: 1.75rem;
  }

.page-intro {
    font-size: 1.18rem;
    line-height: 1.55;
    color: var(--ink);
    max-width: var(--measure);
    font-weight: 400;
    letter-spacing: -0.012em;
  }

/* —————— Thrust sections —————— */
  section.thrust {
    padding: 4.5rem 0;
    border-top: 1px solid var(--rule-soft);
  }

.thrust-header {
    display: grid;
    grid-template-columns: 4rem 1fr;
    gap: 2rem;
    margin-bottom: 2.5rem;
    align-items: baseline;
  }

.thrust-numeral {
    font-family: var(--mono);
    font-size: 0.86rem;
    font-weight: 500;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    color: var(--accent);
  }

h2.thrust-title {
    font-weight: 600;
    font-size: clamp(1.6rem, 3vw, 2.1rem);
    line-height: 1.2;
    letter-spacing: -0.025em;
    color: var(--ink);
  }

.thrust-body {
    display: grid;
    grid-template-columns: 4rem 1fr;
    gap: 2rem;
  }

.thrust-body .col-spacer {}

.thrust-prose p {
    font-size: 1.06rem;
    line-height: 1.65;
    color: var(--ink-soft);
    max-width: var(--measure);
    margin-bottom: 1.4rem;
  }

.thrust-prose p:last-of-type { margin-bottom: 0; }

.thrust-prose strong {
    font-weight: 500;
    color: var(--ink);
  }

/* —————— Sub-blocks within a thrust —————— */
  .sub-block {
    margin-top: 2.75rem;
  }

.sub-block-label {
    font-family: var(--mono);
    font-size: 0.74rem;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: var(--ink-muted);
    margin-bottom: 1.25rem;
    display: flex;
    align-items: baseline;
    gap: 0.85rem;
  }

.sub-block-label::after {
    content: "";
    flex: 1;
    height: 1px;
    background: var(--rule-soft);
  }

/* Selected work list */
  .selected {
    display: grid;
    gap: 0;
  }

.selected-item {
    display: grid;
    grid-template-columns: 5rem 1fr;
    gap: 1.5rem;
    padding: 1rem 0;
    border-bottom: 1px solid var(--rule-soft);
    align-items: baseline;
  }

.selected-item:last-child { border-bottom: none; }

.selected-item .year {
    font-family: var(--mono);
    font-size: 0.8rem;
    color: var(--ink-muted);
    font-variant-numeric: tabular-nums;
  }

.selected-item .title {
    font-size: 1rem;
    line-height: 1.45;
    color: var(--ink);
    margin-bottom: 0.25rem;
    letter-spacing: -0.01em;
  }

.selected-item .title a {
    color: inherit;
    text-decoration: none;
    background-image: linear-gradient(var(--rule), var(--rule));
    background-position: 0 100%;
    background-repeat: no-repeat;
    background-size: 100% 1px;
    transition: background-image 0.15s, color 0.15s;
  }

.selected-item .title a:hover {
    background-image: linear-gradient(var(--accent), var(--accent));
    color: var(--accent);
  }

.selected-item .venue {
    font-size: 0.9rem;
    color: var(--ink-muted);
  }

/* Software in research page (compact list) */
  .pkg-list-mini {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(13rem, 1fr));
    gap: 0.75rem 2rem;
  }

.pkg-line {
    display: flex;
    align-items: baseline;
    gap: 0.6rem;
    padding: 0.4rem 0;
  }

.pkg-line .pkg-name {
    font-family: var(--mono);
    font-size: 0.88rem;
    color: var(--accent);
    font-weight: 500;
    text-decoration: none;
    border-bottom: 1px solid transparent;
    transition: border-color 0.15s;
  }

.pkg-line .pkg-name:hover { border-color: var(--accent); }

.pkg-line .pkg-tag {
    font-family: var(--mono);
    font-size: 0.7rem;
    color: var(--ink-muted);
    text-transform: uppercase;
    letter-spacing: 0.04em;
  }

/* Collaborators block */
  .collaborators {
    font-size: 0.96rem;
    line-height: 1.6;
    color: var(--ink-soft);
    max-width: var(--measure);
  }

.collaborators .name {
    color: var(--ink);
    font-weight: 500;
  }

/* Funding line */
  .funding {
    font-family: var(--mono);
    font-size: 0.78rem;
    color: var(--ink-muted);
    line-height: 1.7;
    max-width: var(--measure);
  }

.funding .src {
    color: var(--ink);
    font-weight: 500;
  }

.funding-group + .funding-group {
    margin-top: 1.4rem;
  }

.funding-status {
    font-family: var(--mono);
    font-size: 0.7rem;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: var(--accent);
    margin-bottom: 0.55rem;
  }

@media (prefers-reduced-motion: no-preference) {
    header.page > * {
      animation: rise 0.6s cubic-bezier(0.2, 0.8, 0.2, 1) both;
    }
    header.page .eyebrow    { animation-delay: 0.05s; }
    header.page .page-title { animation-delay: 0.12s; }
    header.page .page-intro { animation-delay: 0.22s; }
    @keyframes rise {
      from { opacity: 0; transform: translateY(8px); }
      to   { opacity: 1; transform: translateY(0); }
    }
  }

.page-intro a {
    color: var(--accent);
    text-decoration: none;
    border-bottom: 1px dotted var(--accent-soft);
  }

.page-intro a:hover { border-bottom-style: solid; }

/* —————— Sections —————— */
  section.page-section {
    padding: 4rem 0;
    border-top: 1px solid var(--rule-soft);
  }

.section-meta {
    font-family: var(--mono);
    font-size: 0.74rem;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: var(--ink-muted);
    margin-bottom: 2rem;
    display: flex;
    align-items: baseline;
    gap: 0.85rem;
  }

.section-meta::after {
    content: "";
    flex: 1;
    height: 1px;
    background: var(--rule-soft);
  }

/* —————— Package entries —————— */
  .pkg-list {
    display: grid;
    gap: 0;
  }

.pkg-entry {
    display: grid;
    grid-template-columns: 9rem 1fr;
    gap: 2rem;
    padding: 1.75rem 0;
    border-bottom: 1px solid var(--rule-soft);
    align-items: start;
  }

.pkg-entry:last-child { border-bottom: none; }

.pkg-meta {
    padding-top: 0.15rem;
  }

.pkg-name {
    font-family: var(--mono);
    font-size: 1.05rem;
    color: var(--accent);
    font-weight: 500;
    margin-bottom: 0.5rem;
    letter-spacing: -0.005em;
  }

.pkg-tags {
    font-family: var(--mono);
    font-size: 0.7rem;
    color: var(--ink-muted);
    letter-spacing: 0.05em;
    text-transform: uppercase;
    line-height: 1.5;
  }

.pkg-content { max-width: var(--measure); }

.pkg-tagline {
    font-size: 1.06rem;
    line-height: 1.5;
    color: var(--ink);
    margin-bottom: 0.55rem;
    letter-spacing: -0.012em;
  }

.pkg-paper {
    font-size: 0.92rem;
    color: var(--ink-muted);
    margin-bottom: 0.7rem;
    line-height: 1.5;
  }

.pkg-paper em { font-style: italic; }

.pkg-paper a {
    color: inherit;
    text-decoration: none;
    border-bottom: 1px solid var(--rule);
    padding-bottom: 1px;
    transition: color 0.15s, border-color 0.15s;
  }

.pkg-paper a:hover {
    color: var(--accent);
    border-color: var(--accent);
  }

.pkg-links {
    font-family: var(--mono);
    font-size: 0.78rem;
    color: var(--ink-muted);
    letter-spacing: 0.02em;
  }

.pkg-links a {
    color: var(--accent);
    text-decoration: none;
    border-bottom: 1px solid var(--rule);
    padding-bottom: 1px;
    transition: border-color 0.15s;
  }

.pkg-links a:hover { border-color: var(--accent); }

.pkg-links .sep {
    color: var(--rule);
    margin: 0 0.4rem;
  }

.wrap {
    max-width: 56rem;
    padding: 0 2rem;
    margin: 0 auto;
  }

/* Top nav */
  nav.site-nav {
    padding: 2.25rem 0 0;
    display: flex;
    justify-content: space-between;
    align-items: baseline;
    font-size: 0.82rem;
    font-weight: 500;
    color: var(--ink-soft);
  }

/* Page header */
  header.page { padding: 5rem 0 3.5rem; }

/* Sections */
  section.page-section {
    padding: 4rem 0;
    border-top: 1px solid var(--rule-soft);
  }

/* Course cards */
  .course-list {
    display: grid;
    gap: 2.5rem;
  }

.course {
    display: grid;
    gap: 0.85rem;
    max-width: var(--measure);
  }

.course-header {
    display: flex;
    justify-content: space-between;
    align-items: baseline;
    gap: 1rem;
    flex-wrap: wrap;
  }

.course-code {
    font-family: var(--mono);
    font-size: 0.95rem;
    color: var(--accent);
    font-weight: 500;
    letter-spacing: -0.005em;
  }

.course-meta-line {
    font-family: var(--mono);
    font-size: 0.72rem;
    color: var(--ink-muted);
    letter-spacing: 0.04em;
    text-transform: uppercase;
  }

.course-title {
    font-weight: 600;
    font-size: 1.35rem;
    line-height: 1.25;
    letter-spacing: -0.02em;
    color: var(--ink);
  }

.course-desc {
    font-size: 1.02rem;
    line-height: 1.6;
    color: var(--ink-soft);
  }

.course-future {
    font-size: 0.92rem;
    line-height: 1.55;
    color: var(--ink-muted);
    padding: 0.85rem 1rem;
    border-left: 2px solid var(--accent-soft);
    background: var(--bg-elev);
    margin-top: 0.4rem;
  }

.course-future strong {
    font-weight: 500;
    color: var(--ink);
  }

/* Lecture entries */
  .lecture-list { display: grid; gap: 0; }

.lecture-entry {
    display: grid;
    grid-template-columns: 6.5rem 1fr;
    gap: 2rem;
    padding: 1.1rem 0;
    border-bottom: 1px solid var(--rule-soft);
    align-items: baseline;
  }

.lecture-entry:last-child { border-bottom: none; }

.lecture-entry .term {
    font-family: var(--mono);
    font-size: 0.78rem;
    color: var(--ink-muted);
    letter-spacing: 0.04em;
  }

.lecture-entry .title {
    font-size: 1.02rem;
    line-height: 1.45;
    color: var(--ink);
    margin-bottom: 0.25rem;
    letter-spacing: -0.01em;
  }

.lecture-entry .detail {
    font-size: 0.9rem;
    color: var(--ink-muted);
  }

/* Body prose */
  .section-body p {
    font-size: 1.04rem;
    line-height: 1.6;
    color: var(--ink-soft);
    max-width: var(--measure);
    margin-bottom: 1.2rem;
  }

.section-body p:last-child { margin-bottom: 0; }

.section-body strong {
    font-weight: 500;
    color: var(--ink);
  }

/* Footer */
  footer {
    padding: 4rem 0 5rem;
    border-top: 1px solid var(--rule-soft);
    margin-top: 2rem;
  }

/* Responsive */
  @media (max-width: 640px) {
    html { font-size: 16px; }
    .wrap { padding: 0 1.25rem; }
    nav.site-nav { flex-direction: column; gap: 1rem; }
    nav.site-nav ul { flex-wrap: wrap; gap: 1rem; }
    header.page { padding: 3rem 0 2.5rem; }
    h1.page-title { font-size: 2.2rem; }
    .page-intro { font-size: 1.05rem; }
    section.page-section { padding: 3rem 0; }
    .lecture-entry { grid-template-columns: 1fr; gap: 0.4rem; }
  }

/* —————— Page sections —————— */
  section.page-section {
    padding: 4rem 0;
    border-top: 1px solid var(--rule-soft);
  }

h2.section-title {
    font-weight: 600;
    font-size: clamp(1.6rem, 3vw, 2.1rem);
    line-height: 1.2;
    letter-spacing: -0.025em;
    color: var(--ink);
    margin-bottom: 2rem;
    max-width: var(--measure);
  }

.section-body p {
    font-size: 1.06rem;
    line-height: 1.65;
    color: var(--ink-soft);
    max-width: var(--measure);
    margin-bottom: 1.4rem;
  }

.section-body p:last-of-type { margin-bottom: 0; }

.section-body a {
    color: var(--accent);
    text-decoration: none;
    border-bottom: 1px dotted var(--accent-soft);
    transition: border-bottom-style 0.15s;
  }

.section-body a:hover { border-bottom-style: solid; }

/* —————— Contact card (specialized) —————— */
  .contact-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(15rem, 1fr));
    gap: 1px;
    background: var(--rule-soft);
    border: 1px solid var(--rule-soft);
    margin-top: 1.5rem;
    max-width: var(--measure);
  }

.contact-card {
    background: var(--bg-elev);
    padding: 1.4rem 1.5rem;
  }

.contact-card .label {
    font-family: var(--mono);
    font-size: 0.7rem;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    color: var(--ink-muted);
    margin-bottom: 0.5rem;
  }

.contact-card .value {
    font-size: 0.96rem;
    line-height: 1.4;
    color: var(--ink);
  }

.contact-card .value a {
    color: var(--accent);
    text-decoration: none;
    border-bottom: 1px solid var(--rule);
    padding-bottom: 1px;
    transition: border-color 0.15s;
  }

.contact-card .value a:hover { border-color: var(--accent); }

.contact-card .note {
    font-size: 0.86rem;
    color: var(--ink-muted);
    margin-top: 0.4rem;
    line-height: 1.45;
  }