:root {
  --accent:#bc632c;
  --ink:#292a2b;
  --muted:#6b6c70;
  --line:#ecd8c5;
  --cream:#fff0df
}
* {
  box-sizing:border-box
}
html {
  scroll-behavior:smooth;
  scroll-padding-top:24px
}
body {
  margin:0;
  color:var(--ink);
  background:#fffaf5;
  font:16px/1.85 "Open Sans",Arial,sans-serif
}
a {
  color:#a36535;
  text-underline-offset:4px
}
a:hover {
  color:#704322
}
a:focus-visible,button:focus-visible {
  outline:3px solid #b77a49;
  outline-offset:5px
}
.container {
  width:min(1140px,calc(100% - 64px));
  margin:auto
}
.site-header {
  background:#fff7ed
}
.header-inner {
  min-height:102px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:28px
}
.brand {
  font-size:22px;
  letter-spacing:-.6px;
  font-weight:800;
  color:var(--accent);
  text-decoration:none;
  white-space:nowrap
}
#site-nav {
  display:flex;
  gap:14px;
  align-items:center
}
#site-nav a {
  padding:8px 14px;
  color:#171717;
  text-decoration:none;
  font-size:14px;
  font-weight:600;
  border:1px solid transparent;
  white-space:nowrap
}
#site-nav a:hover {
  color:var(--accent)
}
#site-nav a[aria-current=page] {
  border-color:#536069
}
.menu-toggle {
  display:none
}
.skip-link {
  position:absolute;
  top:-100px;
  left:12px;
  z-index:5;
  background:#fff7ed;
  padding:8px
}
.skip-link:focus {
  top:8px
}
.hero {
  position:relative;
  isolation:isolate;
  background:#7c573d;
  min-height:600px;
  display:flex;
  align-items:center;
  padding:0
}
.hero::before {
  content:"";
  position:absolute;
  inset:0;
  z-index:-1;
  background:url('dublin-city.jpg') center 32%/cover no-repeat;
  filter:saturate(.78) sepia(.15) brightness(1.08)
}
.hero-overlay {
  width:100%;
  min-height:inherit;
  display:grid;
  place-items:center;
  background:linear-gradient(180deg,rgba(80,48,28,.20),rgba(59,35,21,.40));
  padding:60px 24px
}
.hero-copy {
  text-align:center;
  max-width:1080px;
  margin:auto;
  color:#fff;
  text-shadow:0 2px 8px rgba(35,25,17,.40)
}
.eyebrow {
  font-size:12px;
  font-weight:600;
  letter-spacing:1.8px;
  text-transform:uppercase;
  line-height:1.7;
  margin:0 0 20px
}
.hero h1 {
  font:700 clamp(30px,3.5vw,46px)/1.22 Georgia,"Times New Roman",serif;
  letter-spacing:-.4px;
  margin:0
}
.hero h1 span {
  font-size:.78em
}
.hero-acronym {
  font-size:14px;
  font-weight:700;
  letter-spacing:4px;
  margin:16px 0 14px;
  color:#f5d4a2
}
.hero-details {
  display:flex;
  flex-wrap:wrap;
  justify-content:center;
  gap:10px;
  padding:0;
  list-style:none;
  margin:18px 0 14px
}
.hero-details li {
  font-size:13px;
  border:1px solid #ffffff50;
  border-radius:24px;
  padding:4px 14px;
  background:#00000010
}
.hero-deadline {
  font-size:15px;
  margin:16px 0
}
.button {
  display:inline-block;
  text-decoration:none;
  font-weight:700;
  font-size:15px;
  color:#25211b;
  background:#f4ae68;
  padding:12px 24px;
  border-radius:3px;
  line-height:1.6
}
.button:hover {
  background:#ffc78f;
  color:#25211b
}
.hero-button {
  margin-top:2px
}
.page-banner {
  background:var(--cream);
  border-bottom:1px solid var(--line);
  padding:42px 0
}
.page-banner .eyebrow {
  color:var(--accent);
  margin-bottom:8px
}
.page-banner h1 {
  font:700 38px/1.25 Georgia,serif;
  margin:0
}
.page-layout {
  display:grid;
  grid-template-columns:190px minmax(0,1fr);
  gap:56px;
  padding-top:52px;
  padding-bottom:64px
}
.toc nav {
  position:sticky;
  top:28px;
  border-left:1px solid var(--line)
}
.toc p {
  padding-left:16px;
  font-size:10px;
  letter-spacing:1.6px;
  font-weight:700;
  color:#96918b;
  margin:0 0 12px
}
.toc a {
  display:block;
  font-size:12px;
  line-height:1.5;
  text-decoration:none;
  padding:9px 16px;
  color:#767575;
  border-left:2px solid transparent;
  margin-left:-1px
}
.toc a:hover,.toc a[aria-current=location] {
  border-color:var(--accent);
  color:#995e30;
  background:#fff0df
}
.content-section {
  margin-bottom:44px;
  scroll-margin-top:28px
}
.content-section:last-child {
  margin-bottom:0
}
h2 {
  font:700 28px/1.3 Georgia,serif;
  color:#303033;
  margin:0 0 23px
}
h3 {
  font-size:18px;
  line-height:1.5;
  margin:0 0 9px
}
p {
  margin:0 0 18px
}
ul,ol {
  padding-left:22px;
  margin:0 0 20px
}
li {
  padding-left:2px;
  margin-bottom:5px
}
.dates {
  margin:0 0 14px
}
.dates>div {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:16px;
  padding:14px 0;
  border-bottom:1px solid var(--line)
}
.dates>div:first-child {
  border-top:1px solid var(--line)
}
dt {
  font-weight:600;
  position:relative;
  padding-left:19px
}
dt:before {
  content:'·';
  color:var(--accent);
  position:absolute;
  left:0
}
dd {
  margin:0;
  font-weight:600;
  font-size:14px
}
.dates span {
  font-weight:400;
  color:var(--muted);
  font-size:12px
}
.note {
  font-size:13px;
  color:var(--muted);
  font-style:italic
}
.topic {
  margin:24px 0
}
.topic h3 {
  color:#9d653e;
  font-family:Georgia,serif;
  font-size:21px
}
.topic p {
  margin-bottom:8px
}
.topic li {
  font-size:15px
}
.notice {
  border-left:3px solid var(--accent);
  background:var(--cream);
  padding:20px 24px;
  margin:24px 0
}
.notice p {
  margin:6px 0 0;
  font-size:14px
}
.spaced li {
  margin-bottom:12px
}
.people {
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:30px 22px
}
.person {
  text-align:center;
  padding:10px 0
}
.initials {
  width:80px;
  height:80px;
  display:grid;
  place-items:center;
  border-radius:50%;
  background:#f2e9de;
  color:#a26c40;
  font:26px Georgia,serif;
  margin:0 auto 14px
}
.person h3 {
  font-size:16px;
  margin-bottom:6px
}
.person h3 a {
  text-decoration:none;
  color:#353535
}
.person p {
  font-size:12px;
  line-height:1.7;
  color:#5e6063;
  margin:0
}
.person p span {
  font-size:11px;
  color:#888
}
.table-wrap {
  overflow-x:auto
}
table {
  border-collapse:collapse;
  width:100%;
  text-align:left;
  font-size:14px
}
th,td {
  padding:13px 16px;
  border-bottom:1px solid var(--line)
}
thead {
  background:var(--cream)
}
tbody th {
  font-weight:500;
  white-space:nowrap
}
.speaker {
  padding:28px 0;
  border-bottom:1px solid var(--line)
}
.speaker h3 {
  font:700 27px Georgia,serif
}
.affiliation {
  color:var(--accent);
  font-size:14px;
  margin-top:10px
}
.speaker-label {
  letter-spacing:1.5px;
  font-size:10px;
  font-weight:700;
  color:#999;
  margin-bottom:12px
}
.session-list {
  padding-left:26px
}
.session-list li {
  padding-left:14px;
  margin:26px 0
}
.session-list li::marker {
  color:var(--accent);
  font-weight:700
}
.session-list h3 {
  margin-bottom:5px
}
.empty-state {
  background:var(--cream);
  padding:48px 24px;
  text-align:center;
  border:1px solid var(--line)
}
.empty-symbol {
  font:48px Georgia,serif;
  color:var(--accent)
}
.empty-state h2 {
  margin:10px 0
}
.empty-state p {
  color:var(--muted)
}
footer {
  background:#35261e;
  color:#bbb;
  font-size:12px;
  padding:36px 0
}
.footer-inner {
  display:flex;
  justify-content:space-between;
  gap:30px
}
footer p {
  margin:5px 0
}
footer a {
  color:#f4d5ab
}
.footer-brand {
  color:white;
  font-size:17px;
  font-weight:700;
  text-decoration:none
}
@media(min-width:1500px) {
  .hero {
  min-height:650px
}

}
@media(max-width:1000px) {
  .header-inner {
  min-height:86px;
  gap:16px
}
.brand {
  font-size:20px
}
#site-nav {
  gap:0
}
#site-nav a {
  font-size:12px;
  padding:8px 9px
}
.page-layout {
  grid-template-columns:160px minmax(0,1fr);
  gap:30px
}

}
@media(max-width:760px) {
  .container {
  width:calc(100% - 36px)
}
.header-inner {
  min-height:76px;
  flex-wrap:wrap;
  gap:0;
  padding-top:17px;
  padding-bottom:17px
}
.menu-toggle {
  display:block;
  background:#fff7ed;
  border:1px solid #ddd;
  padding:6px 10px;
  font:13px Arial,sans-serif;
  color:#333
}
.menu-toggle span {
  margin-left:5px
}
#site-nav {
  display:none;
  width:100%;
  padding-top:16px;
  flex-direction:column;
  align-items:stretch;
  gap:3px
}
#site-nav.is-open {
  display:flex
}
#site-nav a {
  font-size:14px;
  padding:8px 10px
}
.hero {
  min-height:570px;
  padding:0
}
.hero::before {
  background-position:45% center
}
.hero-overlay {
  padding:42px 18px
}
.hero h1 {
  font-size:31px;
  line-height:1.23
}
.hero h1 span {
  font-size:.72em
}
.eyebrow {
  font-size:10px;
  letter-spacing:1.2px
}
.hero-details {
  gap:7px
}
.hero-details li {
  font-size:11px;
  padding:4px 10px
}
.hero-deadline {
  font-size:13px
}
.page-layout {
  display:block;
  padding-top:28px;
  padding-bottom:42px
}
.toc {
  margin-bottom:34px;
  border-bottom:1px solid var(--line);
  padding-bottom:16px
}
.toc nav {
  position:static;
  border:0;
  display:flex;
  flex-wrap:wrap;
  gap:5px 12px
}
.toc p {
  display:none
}
.toc a {
  padding:4px 0;
  border:0;
  margin:0;
  font-size:12px
}
.toc a:hover,.toc a[aria-current=location] {
  background:none;
  text-decoration:underline
}
.content-section {
  margin-bottom:36px
}
h2 {
  font-size:26px;
  margin-bottom:18px
}
body {
  font-size:15px;
  line-height:1.8
}
.dates>div {
  grid-template-columns:1fr;
  gap:3px
}
.dates dd {
  padding-left:19px
}
.people {
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:20px 14px
}
.footer-inner {
  display:block
}
.footer-inner>div+div {
  margin-top:18px
}
.page-banner {
  padding:32px 0
}
.page-banner h1 {
  font-size:32px
}
.notice {
  padding:17px
}
.speaker h3 {
  font-size:25px
}

}
@media(prefers-reduced-motion:reduce) {
  html {
  scroll-behavior:auto
}

}


.person-photo { display:block; width:128px; height:128px; margin:0 auto 16px; object-fit:cover; object-position:center 25%; border-radius:50%; border:4px solid #fff0df; box-shadow:0 3px 15px #713a1412; }
.person > a { display:block; width:fit-content; margin:auto; }
.person h3 a:hover, .speaker h3 a:hover { color:var(--accent); text-decoration:underline; }
.reviewer-callout { background:var(--cream); border-left:3px solid var(--accent); padding:26px 28px; }
.reviewer-callout h2 { margin-bottom:12px; }
.reviewer-callout p { font-size:14px; }
.keynote-speaker { display:grid; grid-template-columns:160px minmax(0,1fr); gap:28px; align-items:start; }
.speaker-photo { width:160px; height:160px; object-fit:cover; object-position:center 25%; border-radius:50%; border:4px solid #fff0df; }
.speaker h3 a { color:inherit; text-decoration:none; }
.presentation-placeholder { padding:26px; background:var(--cream); border-left:3px solid var(--accent); }
.presentation-placeholder p { margin:0; color:var(--muted); }
@media(max-width:760px) { .keynote-speaker { grid-template-columns:1fr; gap:18px; } .speaker-photo { width:132px; height:132px; } .person-photo { width:110px; height:110px; } .reviewer-callout { padding:22px; } }

/* The homepage is a short introduction; detailed content lives in its own tabs. */
.home-content {
  max-width:900px;
  padding-top:48px;
  padding-bottom:48px;
}
.home-content .reviewer-callout p { margin-bottom:0; }
@media(max-width:760px) {
  .home-content { padding-top:30px; padding-bottom:36px; }
}
