/* --------------------------------------------- Laura Comini — minimal academic site Palette: off-white paper, near-black ink, one muted slate-blue accent for links. --------------------------------------------- */ 
:root{ --paper: #ffffff; 
--ink: #1c1b19; 
--ink-soft: #514f4a; 
--line: #e3e0da; 
--accent: #3c5a72; 
--accent-soft: #6d8598; 
--serif: "Cormorant Garamond", Georgia, "Times New Roman", serif; 
--sans: "DM Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif; 
--max: 800px; }

 *{ box-sizing: border-box; } 

html{ -webkit-font-smoothing: antialiased; 
text-rendering: optimizeLegibility; 
} 

body{ 
margin: 0; 
background: var(--paper); 
color: var(--ink); 
font-family: var(--serif); 
font-size: 21px; 
font-weight: 400; 
line-height: 1.7; 
}a{ 
color: var(--accent); 
text-decoration-thickness: 1px; 
text-underline-offset: 3px; } 
a:hover{ color: var(--ink); } 
a:focus-visible, button:focus-visible{ 
outline: 2px solid var(--accent); 
outline-offset: 3px; 
} 

/* -------- Header / nav -------- */ 

.site-header{ 
max-width: 1100px; 
margin: 0 auto; 
padding: 56px 24px 0; 
display: flex; 
align-items: center; 
justify-content: space-between; 
position: relative; 
font-family: var(--sans); 
} 

.site-name{ 
font-family: var(--serif); 
font-size: 38px; 
font-weight: 500; 
line-height: 1; 
letter-spacing: 0; 
color: var(--ink); 
text-decoration: none; 
margin-right: auto; 
} 

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

.nav{ 
display: flex; 
gap: 22px; 
} 

.nav a{ 
font-size: 14px; 
letter-spacing: 0.03em; 
color: var(--ink-soft); 
text-decoration: none; 
padding-bottom: 3px; 
border-bottom: 1px solid transparent; 
} 
.nav a:hover, 
.nav a[aria-current="page"]{ 
color: var(--ink); 
border-bottom-color: var(--accent); 
} 

.menu-toggle{ 
display: none; 
font-family: var(--sans); 
font-size: 14px; 
background: none; 
border: 1px solid var(--line); 
border-radius: 4px; 
padding: 6px 12px; 
color: var(--ink); 
cursor: pointer; 
} 

@media (max-width: 520px){ 
.menu-toggle{ display: block; } 
.nav{ 
display: none; 
position: absolute; 
right: 24px; 
left: auto; 
top: 92px; 
background: var(--paper); 
border: 1px solid var(--line); 
border-radius: 6px; padding: 10px 16px; 
flex-direction: column; 
align-items: flex-end; 
gap: 10px; 
z-index: 5; 
} 
.nav.open{ display: flex; } 
} 

/* -------- Main content -------- */ 

main{ 
max-width: var(--max); 
margin: 0 auto; 
padding: 64px 24px 120px; 
} 

/* -------- Homepage two-column layout -------- */ 

/* -------- Homepage two-column layout -------- */

main.home {
  max-width: 1100px;
  display: grid;
  grid-template-columns: minmax(0, 1fr) 340px;
  gap: 64px;
  align-items: start;
}

.home-text {
  min-width: 0;
}

.portrait {
  width: 100%;
  height: auto;
  border-radius: 4px;
  display: block;
}

@media (max-width: 700px) {
  main.home {
    grid-template-columns: 1fr;
    gap: 32px;
  }

  main.home .portrait {
    grid-row: 1;
    width: 240px;
    aspect-ratio: 1 / 1.15;
    margin-bottom: 8px;
  }

  main.home .home-text {
    grid-row: 2;
  }
}
h1{ 
font-family: var(--serif); 
font-size: 42px; 
font-weight: 600; 
line-height: 1.1; 
margin: 0 0 10px; 
} 

@media (max-width: 640px){ 
h1{ font-size: 34px; } 
} 

.role{ 
font-family: var(--sans); 
font-size: 14px; 
color: var(--ink-soft); 
letter-spacing: 0.03em; 
margin: 0 0 36px; 
} 

p{ margin: 0 0 20px; } 

.contact-line{ 
margin-top: 44px; 
padding-top: 28px; 
border-top: 1px solid var(--line); 
font-family: var(--sans); 
font-size: 15px; 
color: var(--ink-soft); 
} 

/* -------- Research page -------- */ 

h2.section-title{ 
font-family: var(--sans); 
font-size: 13px; 
text-transform: uppercase; 
letter-spacing: 0.08em; 
color: var(--ink-soft); 
margin: 48px 0 18px; 
} 
h2.section-title:first-of-type{ margin-top: 0; } 

.pub{ 
margin-bottom: 30px; 
} 
.pub .venue{ 
font-family: var(--sans); 
font-size: 13px; 
color: var(--accent-soft); 
letter-spacing: 0.02em; 
margin-bottom: 4px; 
} 
.pub h3{ 
font-family: var(--serif); 
font-weight: 600; 
font-size: 19px; 
margin: 0 0 4px; 
line-height: 1.4; 
} 
.pub .authors{ 
font-family: var(--sans); 
font-size: 14px; 
color: var(--ink-soft); 
margin: 0 0 10px; 
} 
.pub p{ margin: 0 0 10px; font-size: 17px; } 
.pub .links a{ font-family: var(--sans); font-size: 14px; 
margin-right: 16px; } 

.muted{ color: var(--ink-soft); font-size: 16px; } 

/* -------- CV page -------- */ 

.cv-download{ 
display: inline-block; 
font-family: var(--sans); 
font-size: 15px; 
color: var(--ink); 
border: 1px solid var(--ink); 
padding: 10px 20px; 
border-radius: 4px; 
text-decoration: none; 
margin: 8px 0 40px; } 
.cv-download:hover{ 
background: var(--ink); 
color: var(--paper); 
} 

.cv-block{ margin-bottom: 34px; } 
.cv-block h2{ 
font-family: var(--sans); 
font-size: 13px; 
text-transform: uppercase; 
letter-spacing: 0.08em; 
color: var(--ink-soft); 
margin: 0 0 14px; 
} 
.cv-row{ 
display: flex; 
gap: 18px; 
margin-bottom: 10px; 
font-size: 17px; 
} 
.cv-row .year{ 
font-family: var(--sans); 
font-size: 14px; 
color: var(--accent-soft); 
min-width: 44px; 
flex-shrink: 0; 
padding-top: 3px; 
} 

/* -------- Conferences page -------- */

.conference-block{
  margin-bottom: 34px;
}

.conference-block h2{
  font-family: var(--sans);
  font-size: 13px;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  color: var(--ink-soft);
  margin: 0 0 14px;
}

.conference{
  margin-bottom: 28px;
}

.conference .date{
  font-family: var(--sans);
  font-size: 13px;
  color: var(--accent-soft);
  letter-spacing: 0.02em;
  margin-bottom: 4px;
}

.conference h3{
  font-family: var(--serif);
  font-weight: 600;
  font-size: 19px;
  line-height: 1.4;
  margin: 0 0 4px;
}

.conference .location{
  font-family: var(--sans);
  font-size: 14px;
  color: var(--ink-soft);
  margin: 0 0 8px;
}

.conference .details{
  font-size: 17px;
  margin: 0 0 8px;
}

.conference .links a{
  font-family: var(--sans);
  font-size: 14px;
  margin-right: 16px;
}

/* -------- Footer -------- */ 

footer{ 
max-width: 920px; 
margin: 0 auto; 
padding: 0 24px 56px; 
font-family: var(--sans); 
font-size: 13px; 
color: var(--ink-soft); 
}