:root {
  --paper-blue: #1f4e79;
  --paper-green: #3d7f5c;
  --paper-ink: #17202a;
  --paper-muted: #64748b;
  --paper-line: rgba(31, 78, 121, 0.14);
  --paper-shadow: rgba(27, 42, 73, 0.10);
}

.slidev-layout {
  background: linear-gradient(135deg, #fffdf8 0%, #f8fbff 62%, #f7fff9 100%);
  color: var(--paper-ink);
  display: flex;
  flex-direction: column;
  font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  height: 100%;
  justify-content: center;
  min-height: 100%;
  overflow: hidden;
  padding: 58px 52px 26px;
}

.deck-page-number {
  background: rgba(255, 255, 255, 0.72);
  border: 1px solid rgba(31, 78, 121, 0.12);
  border-radius: 999px;
  bottom: 18px;
  color: var(--paper-muted);
  font-size: 13px;
  font-weight: 700;
  line-height: 1;
  padding: 6px 10px;
  position: absolute;
  right: 30px;
  z-index: 50;
}

.slidev-layout h1,
.slidev-layout h2,
.slidev-layout h3 {
  color: #102033;
  letter-spacing: 0;
}

.slidev-layout h1 {
  font-size: 46px;
  line-height: 1.08;
  margin-bottom: 16px;
}

.slidev-layout h2 {
  font-size: 36px;
  line-height: 1.12;
  margin-bottom: 22px;
}

.slidev-layout h3 {
  font-size: 22px;
  line-height: 1.18;
}

.slidev-layout p,
.slidev-layout li {
  font-size: 20px;
  line-height: 1.38;
}

.slidev-layout strong {
  color: var(--paper-blue);
}

.cover-meta {
  align-items: center;
  display: flex;
  gap: 18px;
  justify-content: center;
  margin-bottom: 12px;
}

.venue-banner {
  border: 1px solid var(--paper-line);
  border-radius: 8px;
  box-shadow: 0 10px 24px rgba(27, 42, 73, 0.10);
  height: 66px;
  object-fit: cover;
  width: 168px;
}

.venue-copy {
  text-align: left;
}

.venue-line {
  color: var(--paper-muted);
  font-size: 16px;
  font-weight: 700;
  line-height: 1.2;
}

.small {
  font-size: 16px;
  color: var(--paper-muted);
}

.authors-line sup,
.affiliation-line sup {
  color: var(--paper-blue);
  font-size: 0.68em;
  font-weight: 700;
  line-height: 0;
}

.affiliation-line {
  margin-top: 8px;
}

.institution-logo-row {
  align-items: center;
  display: flex;
  gap: 14px;
  justify-content: center;
  margin: 12px auto 0;
}

.institution-logo-row img {
  background: rgba(255, 255, 255, 0.92);
  border: 1px solid var(--paper-line);
  border-radius: 8px;
  box-shadow: 0 8px 20px rgba(27, 42, 73, 0.07);
  height: 42px;
  max-width: 176px;
  object-fit: contain;
  padding: 8px 12px;
}

.kicker {
  color: var(--paper-green);
  font-size: 15px;
  font-weight: 700;
  letter-spacing: 0.08em;
  margin-bottom: 8px;
  text-transform: uppercase;
}

.statement {
  font-size: 24px;
  line-height: 1.35;
  max-width: 820px;
}

.figure-frame {
  align-items: center;
  background: rgba(255, 255, 255, 0.9);
  border: 1px solid var(--paper-line);
  border-radius: 8px;
  box-shadow: 0 14px 34px var(--paper-shadow);
  display: flex;
  justify-content: center;
  max-width: 100%;
  overflow: hidden;
  padding: 10px;
}

.paper-figure {
  display: block;
  height: 100%;
  max-height: 100%;
  max-width: 100%;
  object-fit: contain;
  width: 100%;
}

.figure-caption {
  color: var(--paper-muted);
  font-size: 15px;
  line-height: 1.25;
  margin-top: 10px;
}

.overview-build {
  align-items: center;
  background: rgba(255, 255, 255, 0.9);
  border: 1px solid var(--paper-line);
  border-radius: 8px;
  box-shadow: 0 14px 34px var(--paper-shadow);
  display: grid;
  gap: 10px;
  grid-template-columns: 1.02fr 34px 1fr 34px 1.22fr 34px 1.02fr;
  height: 385px;
  overflow: hidden;
  padding: 42px 22px;
  position: relative;
}

.overview-node,
.overview-arrow,
.loss-loop {
  position: relative;
  z-index: 2;
}

.overview-node {
  align-items: center;
  background: #fffaf0;
  border: 1px solid rgba(31, 78, 121, 0.18);
  border-radius: 8px;
  box-shadow: 0 10px 24px rgba(27, 42, 73, 0.08);
  color: #102033;
  display: flex;
  flex-direction: column;
  justify-content: center;
  min-height: 245px;
  padding: 14px;
  text-align: center;
}

.input-node {
  background: #f2e8ff;
}

.encode-node {
  background: #fff4c6;
}

.fusion-node {
  background: #fff8de;
  min-height: 285px;
}

.output-node {
  background: #eaf8df;
}

.node-label {
  color: var(--paper-green);
  font-size: 13px;
  font-weight: 900;
  letter-spacing: 0.08em;
  margin-bottom: 8px;
  text-transform: uppercase;
}

.node-title {
  color: #102033;
  font-size: 19px;
  font-weight: 900;
  line-height: 1.12;
}

.node-subtitle {
  color: var(--paper-muted);
  font-size: 14px;
  font-weight: 700;
  line-height: 1.2;
  margin-top: 6px;
}

.overview-arrow {
  color: var(--paper-blue);
  font-size: 44px;
  font-weight: 900;
  text-align: center;
}

.video-stack {
  height: 98px;
  margin: 2px auto 10px;
  position: relative;
  width: 118px;
}

.video-stack span {
  background: linear-gradient(135deg, #7c3aed, #111827);
  border: 2px solid white;
  border-radius: 7px;
  box-shadow: 0 8px 18px rgba(15, 23, 42, 0.18);
  height: 76px;
  left: 16px;
  position: absolute;
  top: 10px;
  width: 76px;
}

.video-stack span:nth-child(2) {
  left: 28px;
  top: 18px;
}

.video-stack span:nth-child(3) {
  left: 40px;
  top: 26px;
}

.output-stack span {
  background: linear-gradient(135deg, #74c69d, #1f4e79);
}

.wave-line {
  background:
    radial-gradient(circle at 8px 13px, transparent 8px, #335cce 9px, transparent 10px) 0 0 / 24px 24px repeat-x;
  height: 30px;
  margin: 0 auto 10px;
  width: 118px;
}

.output-wave {
  background:
    radial-gradient(circle at 8px 13px, transparent 8px, #df2f45 9px, transparent 10px) 0 0 / 18px 24px repeat-x;
}

.prompt-chip {
  background: rgba(255, 255, 255, 0.88);
  border: 1px solid rgba(31, 78, 121, 0.20);
  border-radius: 7px;
  color: #102033;
  font-size: 14px;
  font-weight: 800;
  padding: 7px 9px;
}

.fusion-layers {
  display: grid;
  gap: 8px;
  width: 100%;
}

.fusion-layers span {
  background: linear-gradient(90deg, #ffe6a7, #ffd166);
  border: 1px solid rgba(31, 78, 121, 0.12);
  border-radius: 7px;
  color: #463200;
  font-size: 15px;
  font-weight: 900;
  line-height: 1.15;
  padding: 10px 8px;
}

.loss-loop {
  background: rgba(255, 255, 255, 0.92);
  border: 1px dashed rgba(31, 78, 121, 0.42);
  border-radius: 999px;
  color: var(--paper-blue);
  font-size: 14px;
  font-weight: 900;
  left: 272px;
  letter-spacing: 0.02em;
  padding: 7px 16px;
  position: absolute;
  right: 224px;
  text-align: center;
  z-index: 1;
}

.visual-loss {
  top: 12px;
}

.physio-loss {
  bottom: 12px;
}

.method-overview-frame {
  height: 385px;
  position: relative;
}

.method-overview-frame .paper-figure {
  position: relative;
  z-index: 1;
}

.overview-highlight {
  background: rgba(31, 78, 121, 0.92);
  border: 2px solid rgba(255, 255, 255, 0.84);
  border-radius: 8px;
  box-shadow: 0 10px 22px rgba(15, 23, 42, 0.18);
  color: white;
  font-size: 15px;
  font-weight: 800;
  line-height: 1.15;
  padding: 8px 10px;
  position: absolute;
  text-align: center;
  z-index: 4;
}

.overview-input {
  left: 5%;
  top: 36%;
}

.overview-encoder {
  left: 24%;
  top: 50%;
}

.overview-fusion {
  left: 46%;
  top: 43%;
}

.overview-decoder {
  right: 7%;
  top: 37%;
}

.method-step-row {
  display: grid;
  gap: 10px;
  grid-template-columns: repeat(4, 1fr);
  margin-top: 10px;
}

.method-step-row span {
  background: rgba(255, 255, 255, 0.92);
  border: 1px solid var(--paper-line);
  border-radius: 8px;
  color: var(--paper-blue);
  font-size: 15px;
  font-weight: 800;
  line-height: 1.18;
  padding: 9px 10px;
  text-align: center;
}

.two-col,
.two-col-wide,
.two-figs {
  align-items: center;
  display: grid;
  min-height: 0;
}

.two-col {
  gap: 28px;
  grid-template-columns: 0.95fr 1.05fr;
}

.two-col-wide {
  gap: 28px;
  grid-template-columns: 0.78fr 1.22fr;
}

.two-figs {
  gap: 24px;
  grid-template-columns: 1fr 1fr;
}

.metric-row {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
  margin-top: 18px;
}

.metric {
  background: white;
  border: 1px solid var(--paper-line);
  border-radius: 8px;
  box-shadow: 0 8px 20px rgba(27, 42, 73, 0.07);
  min-width: 190px;
  padding: 12px 14px;
}

.metric .num {
  color: var(--paper-blue);
  font-size: 24px;
  font-weight: 800;
  line-height: 1.08;
}

.metric .label {
  color: var(--paper-muted);
  font-size: 14px;
  line-height: 1.18;
  margin-top: 4px;
}

.callout {
  background: rgba(255, 255, 255, 0.9);
  border-left: 5px solid var(--paper-blue);
  border-radius: 8px;
  box-shadow: 0 10px 24px rgba(27, 42, 73, 0.07);
  padding: 16px 18px;
}

.compact-list {
  padding-left: 22px;
}

.compact-list li {
  margin: 8px 0;
}

.equation-box {
  background: white;
  border: 1px solid var(--paper-line);
  border-radius: 8px;
  box-shadow: 0 10px 26px rgba(27, 42, 73, 0.08);
  padding: 20px 22px;
}

.table-card {
  align-items: center;
  background: rgba(255, 255, 255, 0.94);
  border: 1px solid var(--paper-line);
  border-radius: 8px;
  box-shadow: 0 14px 34px var(--paper-shadow);
  display: flex;
  overflow: hidden;
  padding: 12px 14px;
}

.removal-table-card {
  height: 210px;
}

.mini-results-table {
  border-collapse: collapse;
  color: #111827;
  font-family: "Times New Roman", Georgia, serif;
  width: 100%;
}

.mini-results-table th,
.mini-results-table td {
  border-bottom: 1px solid rgba(15, 23, 42, 0.18);
  font-size: 17px;
  line-height: 1.15;
  padding: 8px 9px;
  text-align: center;
  white-space: nowrap;
}

.mini-results-table th:first-child,
.mini-results-table td:first-child {
  text-align: left;
}

.mini-results-table thead th {
  border-top: 2px solid #111827;
  border-bottom: 1.5px solid #111827;
  font-weight: 700;
}

.mini-results-table tbody tr:last-child td {
  border-bottom: 2px solid #111827;
}

.mini-results-table strong {
  color: #111827;
  font-weight: 800;
}

.formula-card p {
  margin: 0 0 10px;
}

.math-line {
  background: #f8fbff;
  border: 1px solid rgba(31, 78, 121, 0.10);
  border-radius: 8px;
  color: #102033;
  font-family: "Cambria Math", Cambria, "Times New Roman", serif;
  font-size: 25px;
  line-height: 1.3;
  margin-bottom: 18px;
  overflow-wrap: anywhere;
  padding: 12px 14px;
  text-align: center;
}

.formula-card .math-line:last-child {
  margin-bottom: 0;
}

.full-figure {
  height: 455px;
}

.full-table {
  height: 360px;
}

.title-figure {
  height: 250px;
  margin: 16px auto 0;
  max-width: 760px;
}

.centered {
  text-align: center;
}

.takeaway-statement {
  margin-left: 0;
  margin-right: 0;
  text-align: left;
}

.contact-slide {
  align-items: center;
  display: grid;
  gap: 32px;
  grid-template-columns: 0.78fr 1.22fr;
  margin-top: 14px;
}

.photo-column {
  min-width: 0;
}

.photo-panel {
  background: white;
  border: 1px solid var(--paper-line);
  border-radius: 8px;
  box-shadow: 0 14px 34px var(--paper-shadow);
  height: 385px;
  overflow: hidden;
}

.author-photo {
  display: block;
  height: 100%;
  object-fit: cover;
  object-position: center;
  width: 100%;
}

.placeholder-photo {
  display: none;
  object-fit: cover;
}

.photo-name {
  color: #102033;
  font-size: 38px;
  font-weight: 900;
  line-height: 1.08;
  margin-top: 16px;
  text-align: center;
}

.photo-affiliation {
  color: var(--paper-muted);
  font-size: 17px;
  font-weight: 800;
  line-height: 1.18;
  margin-top: 7px;
  text-align: center;
}

.lead-author {
  color: #102033;
  font-size: 54px;
  font-weight: 900;
  line-height: 1.04;
}

.lead-author strong {
  color: #102033;
}

.contact-section-title {
  color: var(--paper-green);
  font-size: 15px;
  font-weight: 900;
  letter-spacing: 0.08em;
  line-height: 1.15;
  text-transform: uppercase;
}

.contact-affiliation {
  color: var(--paper-muted);
  font-size: 18px;
  font-weight: 700;
  line-height: 1.25;
  margin-top: 7px;
}

.author-roster {
  color: var(--paper-ink);
  font-size: 20px;
  line-height: 1.35;
  margin-top: 28px;
}

.author-roster sup,
.contact-affiliation sup {
  color: var(--paper-blue);
  font-size: 0.68em;
  font-weight: 800;
  line-height: 0;
}

.contact-grid {
  display: grid;
  gap: 14px;
  grid-template-columns: 1fr 1fr;
  margin-top: 26px;
}

.contact-card {
  align-items: center;
  background: rgba(255, 255, 255, 0.94);
  border: 1px solid var(--paper-line);
  border-radius: 8px;
  box-shadow: 0 10px 24px rgba(27, 42, 73, 0.07);
  display: flex;
  gap: 14px;
  min-height: 112px;
  padding: 14px 16px;
}

.contact-label {
  color: var(--paper-green);
  font-size: 13px;
  font-weight: 800;
  letter-spacing: 0.08em;
  line-height: 1.15;
  margin-bottom: 6px;
  text-transform: uppercase;
}

.contact-link {
  color: #102033;
  font-size: 17px;
  font-weight: 800;
  line-height: 1.25;
  overflow-wrap: normal;
}

.email-card .contact-link {
  font-size: 16px;
  white-space: nowrap;
}

.qr-code {
  border: 1px solid var(--paper-line);
  border-radius: 8px;
  height: 92px;
  width: 92px;
}
