/* ---------------------------------------------------------------------------
 * Site-local design overrides, loaded after the theme's main.css.
 * Palette: navy blue accent + burnt orange highlight.
 * Type: Fraunces (display serif) for headings, Inter for body.
 * ------------------------------------------------------------------------- */

:root {
  --global-theme-color: #1e3a8a;
  --global-hover-color: #16295f;
  --global-highlight-color: #c2562b;
}

html[data-theme="dark"] {
  --global-theme-color: #8aa9e8;
  --global-hover-color: #aec5f2;
  --global-highlight-color: #e8835a;
}

body {
  font-family: "Inter", "Helvetica Neue", Helvetica, Arial, sans-serif;
  font-feature-settings: "cv05", "cv11"; /* Inter: open digits and curved l */
}

h1,
h2,
h3,
h4,
.post-title {
  font-family: "Fraunces", Georgia, "Times New Roman", serif;
}

h1,
.post-title {
  font-weight: 600;
  letter-spacing: 0;
}

h2,
h3 {
  font-weight: 600;
  letter-spacing: 0;
}

.post strong,
.post b,
article strong,
article b {
  color: var(--global-text-color);
  font-weight: 900;
}

/* Links: colored with a subtle underline that fills in on hover */
.post a,
.news a,
article a {
  text-decoration: underline;
  text-decoration-color: color-mix(in srgb, var(--global-theme-color) 35%, transparent);
  text-underline-offset: 3px;
  transition: text-decoration-color 0.15s ease-in-out;
}

.post a:hover,
.news a:hover,
article a:hover {
  text-decoration-color: var(--global-hover-color);
}

/* Navbar: small-caps-style tracking to set the wordmark apart */

/* Selected papers / cards pick up the accent on hover */
.card:hover {
  border-color: var(--global-theme-color);
}

/* ---------------------------------------------------------------------------
 * CV page cleanup. The cv layout emits Bootstrap grid classes (.row,
 * .col-md-*, .list-group) that this Tailwind-first theme doesn't ship, so the
 * date column collapses and list bullets leak through. Rebuild each entry as a
 * simple two-column row and flatten the date pill + location into plain text.
 * ------------------------------------------------------------------------- */

/* Date: plain accent-colored text instead of a pill badge */

/* Location: small muted line under the date, no pin icon */

/* ---------------------------------------------------------------------------
 * Generated one-page profile from _irina/*.json.
 * ------------------------------------------------------------------------- */

body:has(.irina-home) {
  background: linear-gradient(180deg, color-mix(in srgb, var(--global-theme-color) 7%, var(--global-bg-color)) 0, var(--global-bg-color) 34rem);
}

body:has(.irina-home) > header {
  display: none;
}

body:has(.irina-home) .container.mt-5 {
  max-width: 1180px;
  padding-top: 5.2rem;
  margin-top: 0 !important;
}

body:has(.irina-home) .post-header {
  display: none;
}

body:has(.irina-home) .post {
  margin-bottom: 0;
}

.irina-topbar {
  position: fixed;
  top: 0;
  right: 0;
  left: 0;
  z-index: 1020;
  background: color-mix(in srgb, var(--global-bg-color) 90%, transparent);
  border-bottom: 1px solid color-mix(in srgb, var(--global-text-color-light) 16%, transparent);
  backdrop-filter: blur(18px);
}

.irina-topbar-inner {
  display: flex;
  min-height: 4rem;
  max-width: 1180px;
  align-items: center;
  justify-content: flex-end;
  gap: 1rem;
  margin: 0 auto;
  padding: 0 1.25rem;
}

article a.irina-topbar-link,
article a.irina-topbar-button {
  text-decoration: none;
}

.irina-topbar-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.45rem;
  align-items: center;
  justify-content: flex-end;
}

.irina-topbar-link,
.irina-topbar-button,
.irina-theme-button {
  display: inline-flex;
  min-height: 2.3rem;
  align-items: center;
  justify-content: center;
  gap: 0.42rem;
  padding: 0.42rem 0.72rem;
  border-radius: 6px;
  font: inherit;
  font-size: 0.9rem;
  font-weight: 650;
  line-height: 1.1;
}

.irina-topbar-link {
  color: var(--global-text-color);
}

.irina-topbar-button,
.irina-theme-button {
  border: 1px solid color-mix(in srgb, var(--global-theme-color) 45%, transparent);
  background: color-mix(in srgb, var(--global-theme-color) 8%, transparent);
  color: var(--global-theme-color);
}

.irina-theme-button {
  cursor: pointer;
}

.irina-theme-label {
  display: none;
}

.irina-topbar-link:hover,
.irina-topbar-button:hover,
.irina-theme-button:hover {
  color: var(--global-hover-color);
  text-decoration: none;
}

.irina-topbar-button:hover,
.irina-theme-button:hover {
  border-color: var(--global-hover-color);
  background: color-mix(in srgb, var(--global-hover-color) 11%, transparent);
}

.irina-topbar-button:disabled {
  cursor: not-allowed;
  opacity: 0.48;
}

.irina-theme-icon-light {
  display: none;
}

html[data-theme="dark"] .irina-theme-icon-dark {
  display: none;
}

html[data-theme="dark"] .irina-theme-icon-light {
  display: inline-block;
}

.irina-eyebrow {
  display: flex;
  flex-wrap: wrap;
  gap: 0.55rem;
  align-items: center;
  margin: 0 0 1rem;
  color: var(--global-theme-color);
  font-size: 0.9rem;
  font-weight: 750;
  letter-spacing: 0;
  line-height: 1.2;
}

.irina-eyebrow span {
  display: inline-flex;
  align-items: center;
  gap: 0.55rem;
}

.irina-eyebrow span + span::before {
  display: inline-block;
  width: 0.35rem;
  height: 0.35rem;
  border-radius: 50%;
  background: var(--global-highlight-color);
  content: "";
}

.irina-hero-role {
  max-width: 42rem;
  margin: 1.15rem 0 0;
  color: var(--global-text-color-light);
  font-size: 1.2rem;
  font-weight: 650;
  line-height: 1.45;
}

.irina-profile-figure {
  display: grid;
  justify-items: center;
  margin: 0;
}

.irina-profile-photo {
  width: min(100%, 17rem);
  aspect-ratio: 1;
  object-fit: cover;
  border: 4px solid color-mix(in srgb, var(--global-bg-color) 92%, white);
  border-radius: 50%;
  box-shadow: 0 0.65rem 1.6rem color-mix(in srgb, black 12%, transparent);
}

.irina-social-icons {
  display: flex;
  flex-wrap: wrap;
  gap: 0.6rem;
  align-items: center;
  justify-content: center;
}

.irina-social-icons a {
  display: inline-flex;
  color: var(--global-text-color);
  text-decoration: none;
}

.irina-social-icon {
  display: inline-flex;
  width: 2.45rem;
  height: 2.45rem;
  align-items: center;
  justify-content: center;
  border: 1px solid color-mix(in srgb, var(--global-theme-color) 38%, transparent);
  border-radius: 50%;
  color: var(--global-theme-color);
  transition:
    border-color 0.15s ease-in-out,
    color 0.15s ease-in-out,
    transform 0.15s ease-in-out;
}

.irina-social-icons a:hover {
  color: var(--global-hover-color);
  text-decoration: none;
}

.irina-social-icons a:hover .irina-social-icon {
  border-color: var(--global-hover-color);
  color: var(--global-hover-color);
  transform: translateY(-1px);
}

.irina-social-icon i {
  font-size: 1.08rem;
  line-height: 1;
}

.irina-social-icon-cv {
  font-size: 0.78rem;
  font-weight: 750;
  letter-spacing: 0;
  line-height: 1;
}

.irina-contact-details {
  display: grid;
  gap: 0.55rem;
}

.irina-contact-detail {
  display: grid;
  grid-template-columns: 1.1rem minmax(0, 1fr);
  gap: 0.58rem;
  align-items: baseline;
  min-width: 0;
  color: var(--global-text-color);
  font-size: 0.92rem;
  line-height: 1.35;
  overflow-wrap: anywhere;
  text-decoration: none;
}

.irina-contact-detail i {
  color: var(--global-theme-color);
  font-size: 0.88rem;
  line-height: 1;
  text-align: center;
}

a.irina-contact-detail:hover {
  color: var(--global-hover-color);
  text-decoration: underline;
  text-underline-offset: 3px;
}

.irina-section {
  display: grid;
  gap: 1.3rem;
  padding-top: 3rem;
  border-top: 1px solid color-mix(in srgb, var(--global-text-color-light) 16%, transparent);
  scroll-margin-top: 6rem;
}

.irina-section h2 {
  max-width: 48rem;
  margin: 0;
  color: var(--global-theme-color);
  font-size: 2rem;
  font-weight: 650;
  letter-spacing: 0;
  line-height: 1.18;
}

.irina-about-body {
  display: grid;
  gap: 1.05rem;
  max-width: 56rem;
}

.irina-about-body ul,
.irina-about-body ol {
  margin: 0;
  padding-left: 1.4rem;
  font-size: 1.05rem;
  line-height: 1.78;
}

.irina-about-body p {
  margin: 0;
  font-size: 1.05rem;
  line-height: 1.78;
}

.irina-updates {
  display: grid;
  gap: 0.9rem;
  margin: 0;
  padding: 0;
  list-style: none;
}

.irina-updates li {
  display: grid;
  grid-template-columns: minmax(7.5rem, 9rem) minmax(0, 1fr);
  gap: 1.1rem;
  align-items: start;
  padding: 1rem;
  border: 1px solid color-mix(in srgb, var(--global-text-color-light) 15%, transparent);
  border-radius: 8px;
  background: color-mix(in srgb, var(--global-bg-color) 92%, white 8%);
}

html[data-theme="dark"] .irina-updates li {
  background: color-mix(in srgb, var(--global-bg-color) 90%, white 3%);
}

.irina-update-date time {
  color: var(--global-theme-color);
  font-size: 0.9rem;
  font-weight: 750;
  line-height: 1.35;
}

.irina-update-content {
  min-width: 0;
}

.irina-update-description p {
  margin: 0;
  font-size: 0.97rem;
  line-height: 1.62;
}

.irina-update-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.35rem 1rem;
  margin-top: 0.55rem;
}

article a.irina-update-link {
  color: var(--global-theme-color);
  font-size: 0.92rem;
  font-weight: 800;
  line-height: 1.35;
  text-decoration: underline;
  text-decoration-color: color-mix(in srgb, var(--global-theme-color) 55%, transparent);
  text-underline-offset: 3px;
}

article a.irina-update-link:hover {
  color: var(--global-hover-color);
  text-decoration-color: var(--global-hover-color);
}

.irina-publications {
  display: grid;
  gap: 0.9rem;
  margin: 0;
  padding: 0;
  list-style: none;
}

.irina-publications li {
  display: grid;
  gap: 0.35rem;
  padding: 1rem;
  border: 1px solid color-mix(in srgb, var(--global-text-color-light) 15%, transparent);
  border-radius: 8px;
  background: color-mix(in srgb, var(--global-bg-color) 92%, white 8%);
}

html[data-theme="dark"] .irina-publications li {
  background: color-mix(in srgb, var(--global-bg-color) 90%, white 3%);
}

.irina-publication-title {
  margin: 0;
  font-size: 1.02rem;
  font-weight: 700;
  line-height: 1.4;
}

article .irina-publication-title a {
  color: var(--global-text-color);
  text-decoration: none;
}

article .irina-publication-title a:hover {
  color: var(--global-hover-color);
}

.irina-publication-authors p {
  margin: 0;
  color: var(--global-text-color-light);
  font-size: 0.94rem;
  line-height: 1.55;
}

.irina-publication-venue {
  margin: 0;
  color: var(--global-theme-color);
  font-size: 0.9rem;
  font-weight: 650;
  line-height: 1.4;
}

.irina-publications-legend {
  margin: 0;
  color: var(--global-text-color-light);
  font-size: 0.88rem;
  line-height: 1.4;
}

.irina-tags {
  display: flex;
  flex-wrap: wrap;
  gap: 0.4rem;
  margin-top: 0.55rem;
}

.irina-tag {
  --irina-tag-color: var(--global-theme-color);
  padding: 0.12rem 0.6rem;
  border: 1px solid color-mix(in srgb, var(--irina-tag-color) 35%, transparent);
  border-radius: 999px;
  background: color-mix(in srgb, var(--irina-tag-color) 12%, transparent);
  color: var(--irina-tag-color);
  font-size: 0.78rem;
  font-weight: 700;
  line-height: 1.4;
}

.irina-tag-chemistry {
  --irina-tag-color: #c2410c;
}

.irina-tag-biology {
  --irina-tag-color: #15803d;
}

.irina-tag-physics {
  --irina-tag-color: #1d4ed8;
}

.irina-tag-ml {
  --irina-tag-color: #7e22ce;
}

html[data-theme="dark"] .irina-tag-chemistry {
  --irina-tag-color: #fb923c;
}

html[data-theme="dark"] .irina-tag-biology {
  --irina-tag-color: #4ade80;
}

html[data-theme="dark"] .irina-tag-physics {
  --irina-tag-color: #60a5fa;
}

html[data-theme="dark"] .irina-tag-ml {
  --irina-tag-color: #c084fc;
}

@media (max-width: 960px) {
  body:has(.irina-home) .container.mt-5 {
    padding-top: 5rem;
  }
}

@media (max-width: 640px) {
  body:has(.irina-home) .container.mt-5 {
    padding-top: 8.8rem;
  }

  .irina-topbar-inner {
    min-height: auto;
    flex-wrap: wrap;
    gap: 0.65rem;
    padding: 0.75rem 1rem;
  }

  .irina-topbar-actions {
    width: 100%;
    justify-content: center;
  }

  .irina-topbar-link,
  .irina-topbar-button,
  .irina-theme-button {
    min-height: 2.15rem;
    padding: 0.38rem 0.58rem;
    font-size: 0.85rem;
  }

  .irina-hero-role {
    font-size: 1.05rem;
  }

  
  .irina-about-body p {
    font-size: 1rem;
    line-height: 1.7;
  }

  .irina-section {
    padding-top: 2.35rem;
  }

  .irina-section h2 {
    font-size: 1.55rem;
  }

  .irina-updates li {
    grid-template-columns: 1fr;
    gap: 0.35rem;
  }
}

/* Two-column homepage layout: previous structure with the updated visual style. */

body:has(.irina-shell) {
  background: linear-gradient(180deg, color-mix(in srgb, var(--global-theme-color) 7%, var(--global-bg-color)) 0, var(--global-bg-color) 34rem);
}

body:has(.irina-shell) > header {
  display: none;
}

body:has(.irina-shell) .container.mt-5 {
  max-width: 1180px;
  padding-top: 5.2rem;
  margin-top: 0 !important;
}

body:has(.irina-shell) .post-header {
  display: none;
}

body:has(.irina-shell) .post {
  margin-bottom: 0;
}

.irina-shell {
  display: grid;
  grid-template-columns: minmax(14rem, 18.5rem) minmax(0, 1fr);
  gap: 4.5rem;
  align-items: start;
  padding: 3.5rem 0 5rem;
  scroll-margin-top: 6rem;
}

.irina-sidebar {
  position: sticky;
  top: 5.5rem;
  display: grid;
  gap: 1.25rem;
  align-self: start;
  padding: 1.35rem;
  border: 1px solid color-mix(in srgb, var(--global-theme-color) 22%, transparent);
  border-radius: 8px;
  background: color-mix(in srgb, var(--global-bg-color) 88%, white 12%);
  box-shadow: 0 1rem 2.6rem color-mix(in srgb, black 10%, transparent);
}

html[data-theme="dark"] .irina-sidebar {
  background: color-mix(in srgb, var(--global-bg-color) 88%, white 4%);
  box-shadow: 0 1rem 2.6rem color-mix(in srgb, black 24%, transparent);
}

.irina-contact-card {
  display: grid;
  gap: 1rem;
}

.irina-contact-card h2 {
  margin: 0;
  color: var(--global-theme-color);
  font-family: "Inter", "Helvetica Neue", Helvetica, Arial, sans-serif;
  font-size: 0.78rem;
  font-weight: 750;
  letter-spacing: 0;
  line-height: 1.15;
  text-transform: uppercase;
}

.irina-main {
  min-width: 0;
}

.irina-identity {
  max-width: 56rem;
  margin: 0 0 3rem;
}

.irina-identity h1 {
  max-width: none;
  margin: 0;
  color: var(--global-text-color);
  font-size: 3.35rem;
  font-weight: 650;
  letter-spacing: 0;
  line-height: 0.98;
  white-space: nowrap;
}

.irina-identity .irina-hero-role {
  margin-top: 0.95rem;
}

.irina-main .irina-section {
  max-width: 58rem;
  margin-top: 3.35rem;
}

.irina-main .irina-about-section {
  margin-top: 0;
  padding-top: 0;
  border-top: 0;
}

.irina-main .irina-section h2 {
  font-size: 1.65rem;
}

@media (max-width: 960px) {
  body:has(.irina-shell) .container.mt-5 {
    padding-top: 5rem;
  }

  .irina-shell {
    grid-template-columns: 1fr;
    gap: 2.5rem;
    padding-top: 2.4rem;
  }

  .irina-sidebar {
    position: static;
    max-width: 24rem;
  }

  .irina-identity h1 {
    font-size: 2.85rem;
  }
}

@media (max-width: 640px) {
  body:has(.irina-shell) .container.mt-5 {
    padding-top: 8.8rem;
  }

  .irina-shell {
    gap: 2.25rem;
    padding: 1.7rem 0 3.5rem;
  }

  .irina-sidebar {
    padding: 1.15rem;
  }

  .irina-identity {
    margin-bottom: 2.35rem;
  }

  .irina-identity h1 {
    font-size: 1.9rem;
  }
}

@media (max-width: 380px) {
  .irina-identity h1 {
    font-size: 1.58rem;
  }
}
