/* Theme matched to mvp18.github.io, whose design credits Jon Barron,
   Deepak Pathak and Saurabh Gupta. Semantic layout adapted for this Hugo site. */
:root {
  color-scheme: light;
  --bg-color: #fff;
  --surface-color: #fff;
  --text-color: #1f1f1f;
  --muted-text-color: #333;
  --link-color: #1772d0;
  --link-hover-color: #f09228;
  --accent-color: #4169e1;
  --highlight-background: #ffffd0;
  --publication-highlight: #ffffd0;
  --border-color: #ddd;
  --prompt-color: #2da44e;
  --red-link-color: #cb2431;
  --venue-background: rgba(45,164,78,.14);
  --venue-text-color: #1a7f37;
  --mono-font: 'JetBrains Mono','Fira Code',Menlo,Consolas,monospace;
}
:root.dark-mode {
  color-scheme: dark;
  --bg-color: #121212;
  --surface-color: #1f1f1f;
  --text-color: #f5f5f5;
  --muted-text-color: #ccc;
  --link-color: #8ab4f8;
  --link-hover-color: #fdd663;
  --accent-color: #a7c5ff;
  --highlight-background: rgba(63,185,80,.09);
  /* Match the reference's two translucent table layers on its dark surface. */
  --publication-highlight: #253a27;
  --border-color: #333;
  --prompt-color: #3fb950;
  --red-link-color: #f47067;
  --venue-background: rgba(63,185,80,.18);
  --venue-text-color: #3fb950;
}
* { box-sizing: border-box; }
[hidden] { display: none !important; }
html,body { margin:0; padding:0; background:var(--bg-color); color:var(--text-color); }
body { font:400 14px/1.6 'Titillium Web',Verdana,Helvetica,sans-serif; }
a { color:var(--link-color); text-decoration:none; }
a:hover,a:focus { color:var(--link-hover-color); }
button { font:inherit; }
a:focus-visible,button:focus-visible,[tabindex]:focus-visible,summary:focus-visible { outline:2px solid var(--link-hover-color); outline-offset:3px; }
p { margin:14px 0; }
strong { font-weight:800; }
img { display:block; max-width:100%; height:auto; }
.header-actions { display:flex; justify-content:flex-end; align-items:center; max-width:940px; padding:0 20px; gap:16px; margin:16px auto 0; height:32px; }
.header-link { font-size:13px; font-weight:600; color:var(--text-color); }
.theme-toggle-button { width:32px; height:32px; display:inline-flex; align-items:center; justify-content:center; background:var(--surface-color); border:1px solid var(--border-color); border-radius:50%; color:var(--text-color); cursor:pointer; font-size:16px; }
.theme-toggle-button:hover, .theme-toggle-button:focus { background:var(--link-color); border-color:var(--link-color); color:#fff; }
.page { width:min(100%,900px); margin:0 auto; background:var(--surface-color); }
.identity { padding:14px 0; text-align:center; }
h1 { font-size:36px; font-weight:400; line-height:1.6; margin:0 0 38.4px; }
.term-line,.email-line { font-family:var(--mono-font); line-height:22.4px; }
.term-prompt { color:var(--prompt-color); font-weight:700; }
.email-line { min-height:22.4px; overflow-wrap:anywhere; }
#email { color:var(--text-color); }
#unscramble-email { margin-left:8px; }
.about { display:grid; grid-template-columns:63% 37%; align-items:center; }
.biography,.portrait { padding:22.5px; min-width:0; }
.portrait img { width:100%; aspect-ratio:1; object-fit:cover; border-radius:50%; }
.terminal-heading { display:block; margin:0 0 12px; font:700 15px/1.6 var(--mono-font); }
.terminal-heading::before { content:'$ '; color:var(--prompt-color); }
.social-links { display:flex; justify-content:center; align-items:center; gap:19px; margin:14px 0; }
.social-links a { display:inline-flex; align-items:center; font-size:1.3rem; }
.brand-icon { width:21px; height:21px; filter:invert(39%) sepia(91%) saturate(1219%) hue-rotate(184deg) brightness(83%) contrast(95%); }
.dark-mode .brand-icon { filter:invert(73%) sepia(21%) saturate(1217%) hue-rotate(186deg) brightness(101%) contrast(95%); }
.text-section { padding:10px; }
.scrollable-list { max-height:120px; overflow:auto; }
.scrollable-list ul { list-style:none; padding-left:1.4em; margin:0; }
.scrollable-list li { display:flex; align-items:baseline; position:relative; gap:1ch; margin-bottom:4px; white-space:nowrap; }
.scrollable-list li::before { content:'•'; position:absolute; left:-1em; }
.scrollable-list strong { flex:0 0 10ch; font:700 12.5px/1.6 var(--mono-font); font-variant-numeric:tabular-nums; }
.highlight { background:var(--highlight-background); }
.publication.featured { background:var(--publication-highlight); }
.publication { display:grid; grid-template-columns:27.2% minmax(0,1fr); }
.paper-visual { align-self:center; margin:0; padding:20px; min-width:0; }
.paper-figure-link { display:block; cursor:zoom-in; }
.paper-figure-link img { width:100%; height:auto; object-fit:contain; background:white; }
.featured .paper-figure-link { border-radius:10px; overflow:hidden; box-shadow:0 8px 18px rgba(0,0,0,.18); }
.publication-content { padding:20px; min-width:0; }
.publication h3,.side-project h3 { font:600 14px/1.6 'Lato',Verdana,Helvetica,sans-serif; margin:0; color:var(--accent-color); }
.publication h3 a { color:inherit; }
.publication h3 a:hover { color:var(--link-hover-color); }
.authors { margin:0; }
.venue-badge { display:inline-block; font:700 12px/1.6 var(--mono-font); color:var(--venue-text-color); background:var(--venue-background); padding:1px 8px; border-radius:4px; }
.publication-actions { line-height:22.4px; }
.publication-actions a,.publication-actions button { color:var(--red-link-color); }
.publication-actions a:hover,.publication-actions button:hover { color:var(--link-hover-color); }
.text-button { display:inline; padding:0; background:none; border:0; color:var(--link-color); cursor:pointer; }
.text-button:hover { color:var(--link-hover-color); }
.paper-tldr { margin:14px 0; }
body.abstract-open .paper-tldr { display:none; }
.paper-abstract p { text-align:justify; }
pre { font:12px/1.6 var(--mono-font); white-space:pre-wrap; overflow-wrap:anywhere; background:var(--surface-color); border:1px solid var(--border-color); border-radius:6px; padding:12px; margin:12px 0; overflow-x:auto; }
.side-project { display:grid; grid-template-columns:27.2% minmax(0,1fr); align-items:center; }
.side-project > div { padding:20px; min-width:0; }
.geometry-frame { color:var(--link-color); }
.geometry-frame svg { display:block; width:100%; height:auto; }
.motion-controls button { border:0; background:none; padding:0; color:var(--red-link-color); cursor:pointer; }
.project-list { margin:0; padding-left:2.5em; }
.project-list li { margin-bottom:5px; }
.term-cursor-line { font:700 15px/1.6 var(--mono-font); padding:10px; margin-top:24px; }
.term-cursor { display:inline-block; width:.55em; height:1.05em; vertical-align:text-bottom; background:var(--text-color); }
.site-footer { text-align:right; padding:32px 10px 14px; font-size:12px; }
.skip-link { position:absolute; top:-80px; left:12px; background:var(--surface-color); padding:8px; z-index:10; }
.skip-link:focus { top:8px; }
@media (prefers-reduced-motion:no-preference) { .term-cursor { animation:term-blink 1.1s steps(1) infinite; } @keyframes term-blink { 50% { opacity:0; } } }
@media (max-width:900px) {
  body { font-size:16px; }
  .terminal-heading,.term-cursor-line { font-size:16px; }
  h1 { font-size:30px; }
  .header-actions { justify-content:center; gap:12px; margin:12px auto 0; padding:0 16px; }
  .header-link { font-size:15px; }
  .identity { padding:14px 18px; }
  .email-line,.term-line { line-height:25.6px; }
  .email-line { font-size:14px; }
  .about,.publication,.side-project { grid-template-columns:minmax(0,1fr); }
  .biography,.portrait,.paper-visual,.publication-content,.side-project > div { padding:16px 18px; }
  .portrait { margin-top:16px; }
  .portrait img { max-width:340px; margin:auto; }
  .text-section { padding:16px 18px; }
  .scrollable-list { max-height:none; }
  .scrollable-list strong { flex:0 0 10ch; font-size:14px; }
  .scrollable-list li { white-space:normal; }
  .scrollable-list li > span { min-width:0; }
  .paper-figure-link { max-width:300px; margin:auto; }
  .publication-content { margin-top:16px; }
  .publication h3,.side-project h3 { font-size:14px; }
  .geometry-frame svg { max-width:300px; margin:auto; }
  .site-footer { padding:24px 18px; text-align:center; }
}
