/* antonioguimaraes.org — hand-written stylesheet. Light theme by default; dark only via [data-theme=dark]. */
@font-face{font-family:"Inter";font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/inter-latin-400-normal.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:"Inter";font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/inter-latin-ext-400-normal.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}
@font-face{font-family:"Inter";font-style:normal;font-weight:500;font-display:swap;src:url(/fonts/inter-latin-500-normal.woff2) format("woff2")}
@font-face{font-family:"Inter";font-style:normal;font-weight:600;font-display:swap;src:url(/fonts/inter-latin-600-normal.woff2) format("woff2")}
@font-face{font-family:"Source Serif 4";font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/source-serif-4-latin-400-normal.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:"Source Serif 4";font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/source-serif-4-latin-ext-400-normal.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}
@font-face{font-family:"Source Serif 4";font-style:italic;font-weight:400;font-display:swap;src:url(/fonts/source-serif-4-latin-400-italic.woff2) format("woff2")}
@font-face{font-family:"Source Serif 4";font-style:normal;font-weight:500;font-display:swap;src:url(/fonts/source-serif-4-latin-500-normal.woff2) format("woff2")}

:root{
  --bg:#ffffff; --bg-2:#f6f7fb; --bg-3:#eef0f7; --fg:#15171f; --fg-2:#4d5261; --fg-3:#666b7c;
  --line:#e3e6ee; --accent:#2b3a8f; --accent-h:#1f2c75; --accent-2:#e8ebfa; --accent-3:#c9d0f3;
  --gold:#9a6414; --on-accent:#ffffff; --card:#ffffff; --shadow:0 1px 2px rgba(20,24,40,.05),0 6px 20px -8px rgba(20,24,40,.12);
  --serif:"Source Serif 4", Georgia, "Times New Roman", serif;
  --sans:Inter, system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
  --mono:ui-monospace, "SF Mono", Menlo, Consolas, monospace;
  --w:64rem; --w-text:46rem;
  color-scheme:light;
}
:root[data-theme="dark"]{
  --bg:#121319; --bg-2:#181a22; --bg-3:#20232e; --fg:#eceef5; --fg-2:#aab0c2; --fg-3:#9096a8;
  --line:#2a2e3b; --accent:#a3b0ff; --accent-h:#c0c9ff; --accent-2:#222846; --accent-3:#343c66;
  --gold:#e0a84a; --on-accent:#121319; --card:#181a22; --shadow:0 1px 2px rgba(0,0,0,.3),0 8px 24px -8px rgba(0,0,0,.5);
  color-scheme:dark;
}
*{box-sizing:border-box}
html{font-size:17px;-webkit-text-size-adjust:100%;scroll-behavior:smooth;scroll-padding-top:4.5rem}
body{margin:0;background:var(--bg);color:var(--fg);font-family:var(--sans);line-height:1.6;text-rendering:optimizeLegibility}
a{color:var(--accent);text-decoration:none}
code{font-family:var(--mono);font-size:.92em}
a:hover{color:var(--accent-h);text-decoration:underline;text-underline-offset:3px}
/* links inside running text are underlined so they don't rely on colour alone */
.lead a,.bio a,.venue a,.timeline a,.awards a,.small a,.cvl dd a,.role a,.cv p a,.empty a,.area p a,footer.site a{text-decoration:underline;text-decoration-color:var(--accent-3);text-decoration-thickness:1px;text-underline-offset:3px}
.lead a:hover,.bio a:hover,.venue a:hover,.timeline a:hover,.awards a:hover,.small a:hover,.cvl dd a:hover,.role a:hover,footer.site a:hover{text-decoration-color:currentColor}
:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:3px}
h1,h2,h3{font-family:var(--serif);font-weight:500;line-height:1.2;margin:0}
h1{font-size:2.6rem;letter-spacing:-.015em}
h1.page{font-size:2.1rem;margin:.6rem 0}
h2{font-size:1.6rem;margin:0 0 1.2rem}
h3{font-size:1.15rem}
p{margin:0 0 1rem}
b{font-weight:600}
.small{font-size:.88rem;color:var(--fg-2)}
.wrap{max-width:var(--w);margin:0 auto;padding:0 1.25rem}
.narrow{max-width:calc(var(--w-text) + 2.5rem)}
.skip{position:absolute;left:-999px}.skip:focus{left:1rem;top:1rem;background:var(--accent);color:var(--on-accent);padding:.5rem;z-index:9}
section{padding:3rem 0}
section+section{border-top:1px solid var(--line)}
.sec-head{display:flex;align-items:baseline;justify-content:space-between;gap:1rem;margin-bottom:1.2rem;flex-wrap:wrap}
.sec-head h2,.sec-head h1{margin:0}.sec-head>a{font-size:.9rem}
.eyebrow{font-family:var(--mono);font-size:.72rem;letter-spacing:.12em;text-transform:uppercase;color:var(--accent);margin-bottom:.4rem}
.lead{color:var(--fg-2);max-width:46rem}
#research .lead{max-width:none}
.ic{width:1em;height:1em;fill:currentColor;vertical-align:-.15em;flex:none}

/* header */
header.site{position:sticky;top:0;z-index:5;background:color-mix(in srgb,var(--bg) 88%,transparent);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);border-bottom:1px solid var(--line)}
header.site .wrap{display:flex;align-items:center;gap:1.3rem;height:3.6rem}
header.site .brand{font-family:var(--serif);font-size:1.2rem;color:var(--fg);display:flex;align-items:center;gap:.6rem;margin-right:auto}
header.site .brand:hover{text-decoration:none;color:var(--accent)}
header.site .brand i{width:9px;height:9px;border-radius:50%;background:var(--accent);display:inline-block}
header.site nav{display:flex;gap:1.3rem;align-items:center;font-size:.92rem}
header.site nav a{color:var(--fg-2)}
header.site nav a:hover{color:var(--accent);text-decoration:none}
header.site nav a[aria-current]{color:var(--accent);font-weight:500}
.theme{border:1px solid var(--line);background:var(--bg);color:var(--fg-2);cursor:pointer;width:2rem;height:2rem;border-radius:50%;display:grid;place-items:center;padding:0}
.theme:hover{border-color:var(--accent);color:var(--accent)}
.theme .ic{width:15px;height:15px}
.theme .on-dark{display:none}
:root[data-theme="dark"] .theme .on-light{display:none}
:root[data-theme="dark"] .theme .on-dark{display:block}
/* phones: name and theme button on the first row, the links on a second one (fits down to 320px) */
@media (max-width:700px){html{scroll-padding-top:6rem}header.site .wrap{flex-wrap:wrap;height:auto;padding-top:.5rem;padding-bottom:.3rem;gap:.1rem 1rem}header.site .brand{font-size:1.1rem}header.site .theme{width:1.8rem;height:1.8rem}header.site nav{order:3;flex:0 0 100%;font-size:.85rem;gap:clamp(.45rem,calc((100vw - 290px)/4),1.3rem)}header.site nav a{padding:.3rem 0}}

/* hero */
.hero{position:relative;overflow:hidden;background:linear-gradient(180deg,var(--bg-2),var(--bg));border-bottom:1px solid var(--line);padding:3.5rem 0 2.8rem}
.hero::before{content:"";position:absolute;inset:0;background-image:radial-gradient(var(--accent-3) 1px,transparent 1.2px);background-size:22px 22px;opacity:.55;
  -webkit-mask-image:linear-gradient(180deg,#000 0%,transparent 85%);mask-image:linear-gradient(180deg,#000 0%,transparent 85%)}
.hero .wrap{position:relative;display:grid;grid-template-columns:200px 1fr;gap:2.5rem;align-items:center}
.hero img{width:200px;height:200px;border-radius:50%;object-fit:cover;display:block;box-shadow:0 0 0 6px var(--bg),0 0 0 8px var(--accent-3),var(--shadow)}
.hero .role{color:var(--fg-2);font-size:1.08rem;margin:.5rem 0 1rem}
.hero .role a{color:var(--fg)}
.hero .bio{max-width:40rem;font-size:1.02rem;color:var(--fg-2)}
.social{display:flex;flex-wrap:wrap;gap:.5rem;margin:1.1rem 0 .2rem}
.social a{display:inline-flex;align-items:center;gap:.45rem;border:1px solid var(--line);background:var(--card);border-radius:8px;padding:.4rem .75rem;font-size:.88rem;color:var(--fg-2);box-shadow:var(--shadow);transition:transform .12s}
.social a:hover{border-color:var(--accent);color:var(--accent);text-decoration:none;transform:translateY(-1px)}
.kw{display:flex;flex-wrap:wrap;gap:.45rem;margin:1.2rem 0 0;padding:0;list-style:none;font-size:.85rem}
.kw a{border-radius:999px;padding:.18rem .75rem;color:var(--accent);background:var(--accent-2);border:1px solid transparent;display:inline-block}
.kw a:hover{border-color:var(--accent);text-decoration:none}
.kw .lbl{color:var(--fg-3);font-size:.8rem;align-self:center;margin-right:.2rem}
@media (max-width:700px){.hero .wrap{grid-template-columns:1fr;gap:1.4rem}.hero img{width:140px;height:140px}h1{font-size:2rem}}

/* highlights */
.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:1rem;margin-top:-1.4rem;position:relative}
.stat{background:var(--card);border:1px solid var(--line);border-radius:12px;padding:.9rem 1.1rem;box-shadow:var(--shadow);position:relative}
.stat{color:inherit;display:grid;grid-template-columns:auto 1fr;gap:.2rem .7rem;align-items:center;transition:transform .12s}
.stat:hover{border-color:var(--accent-3);transform:translateY(-1px)}
.stat .ic{width:22px;height:22px;grid-row:1/3;color:var(--accent)}
.stat b{font-size:1.02rem;font-weight:600;line-height:1.25;color:var(--fg)}
.stat b a{color:inherit}
.stat b small{font-weight:400;font-size:.68rem;color:var(--fg-3);white-space:nowrap}
.stat b a::after{content:"";position:absolute;inset:0}
.stat span{font-size:.82rem;color:var(--fg-3);line-height:1.3}
.stat span a{position:relative;z-index:1;color:var(--accent)}
@media (max-width:800px){.stats{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:520px){.stats{grid-template-columns:1fr}}

/* research areas, software cards */
.areas{display:grid;grid-template-columns:repeat(3,1fr);gap:1.1rem}
.area{background:var(--card);border:1px solid var(--line);border-radius:14px;padding:1.3rem 1.3rem 1.1rem;box-shadow:var(--shadow);position:relative;overflow:hidden;transition:transform .15s}
.area:hover{transform:translateY(-2px);border-color:var(--accent-3)}
.area::after{content:"";position:absolute;left:0;top:0;bottom:0;width:4px;background:var(--accent)}
.area div.ic{width:38px;height:38px;border-radius:10px;background:var(--accent-2);color:var(--accent);display:grid;place-items:center;margin-bottom:.8rem;fill:none}
.area div.ic .ic{width:20px;height:20px;fill:none;stroke:currentColor}
.area-h{display:flex;align-items:center;gap:.8rem}
.area-h div.ic{flex:none;margin-bottom:0}
.area-h+p{margin-top:.8rem}
.area p{font-size:.92rem;color:var(--fg-2);margin:.4rem 0 .7rem}
.area a.more{font-size:.85rem}
/* authors in alphabetical order (publications.yaml `alphabetical: true`): a small tag before the names */
.az{font-size:.66em;font-weight:600;letter-spacing:.05em;color:var(--fg-3);border:1px solid var(--line);border-radius:4px;padding:.05em .35em;vertical-align:.12em;white-space:nowrap;text-decoration:none;cursor:help}
.nw{white-space:nowrap}
.alpha-note{color:var(--fg-3);font-size:.85em;white-space:nowrap}
/* inline definition, [[term|definition]] in the YAML: a small "?" after the term; the box opens on hover, focus or tap.
   The box is as wide as the paragraph (never wider than the card or the screen) and sits under the term's line:
   no top/bottom is set, so it keeps the vertical position it would have in the text. */
.area p,.lead,.bio{position:relative}
.tip{cursor:help;text-decoration:underline dotted var(--fg-3);text-decoration-thickness:1px;text-underline-offset:3px}
.tip sup{display:inline-grid;place-items:center;width:1.5em;height:1.5em;margin-left:.2em;border:1px solid currentColor;border-radius:50%;font-size:.5em;font-weight:600;line-height:1;color:var(--fg-3);vertical-align:.75em}
.tip:hover sup,.tip:focus sup{color:var(--accent)}
.tip-b{position:absolute;left:0;right:0;margin-top:1.75em;z-index:3;padding:.55rem .75rem;border-radius:8px;background:var(--fg);color:var(--bg);font-size:.85rem;line-height:1.4;box-shadow:var(--shadow);opacity:0;pointer-events:none;transition:opacity .12s}
.tip-b::first-letter{text-transform:uppercase}
.tip:hover .tip-b,.tip:focus .tip-b{opacity:1}
.area .m{margin-bottom:.6rem}
@media (max-width:800px){.areas{grid-template-columns:1fr}}

/* two columns */
.cols{display:grid;grid-template-columns:1.4fr 1fr;gap:3rem}
@media (max-width:800px){.cols{grid-template-columns:1fr;gap:2rem}}
.timeline{list-style:none;margin:0;padding:0;border-left:2px solid var(--line);margin-left:.4rem}
.timeline li{position:relative;padding:0 0 1.1rem 1.4rem;font-size:.95rem}
.timeline li::before{content:"";position:absolute;left:-7px;top:.5rem;width:12px;height:12px;border-radius:50%;background:var(--bg);border:2px solid var(--accent)}
.timeline time{display:block;font-family:var(--mono);font-size:.74rem;color:var(--fg-3);letter-spacing:.04em}
.pcs{display:flex;flex-wrap:wrap;gap:.4rem;margin:.3rem 0 1rem;padding:0;list-style:none}
.pcs li{font-family:var(--mono);font-size:.74rem;border:1px solid var(--line);border-radius:6px;padding:.15rem .5rem;color:var(--fg-2);background:var(--bg-2)}
.pcs li.now{border-color:var(--accent-3);background:var(--accent-2);color:var(--accent)}
.awards{list-style:none;margin:0;padding:0;font-size:.92rem}
.awards li{display:grid;grid-template-columns:3rem 1fr;gap:.6rem;padding:.35rem 0;border-bottom:1px dotted var(--line);color:var(--fg-2)}
.awards time{font-family:var(--mono);font-size:.74rem;color:var(--gold);padding-top:.2rem}
h3.sub{font-family:var(--sans);font-size:.78rem;letter-spacing:.1em;text-transform:uppercase;color:var(--fg-3);margin:1.2rem 0 .5rem}

/* publication cards and rows */
.cards{display:grid;grid-template-columns:repeat(2,1fr);gap:1.1rem}
@media (max-width:800px){.cards{grid-template-columns:1fr}}
.card{background:var(--card);border:1px solid var(--line);border-radius:14px;padding:1.15rem 1.25rem;box-shadow:var(--shadow);display:flex;flex-direction:column;gap:.45rem;transition:transform .15s}
.card:hover{transform:translateY(-2px);border-color:var(--accent-3)}
.card .t{font-family:var(--serif);font-size:1.12rem;line-height:1.3}
.card .t a{color:var(--fg)}.card .t a:hover{color:var(--accent);text-decoration:none}
.card .a{font-size:.88rem;color:var(--fg-2)}.card .a b{font-weight:500;color:var(--fg)}
.m{display:flex;flex-wrap:wrap;gap:.4rem;align-items:center;font-size:.8rem}
.badge{font-family:var(--mono);font-size:.72rem;letter-spacing:.03em;border-radius:6px;padding:.12rem .5rem;background:var(--accent);color:var(--on-accent);text-transform:uppercase;white-space:nowrap}
.badge.pre{background:var(--bg-3);color:var(--fg-2)}
.pill{display:inline-block;border-radius:999px;background:var(--bg-2);border:1px solid var(--line);padding:.14rem .6rem;line-height:1.35;color:var(--fg-2);white-space:nowrap}
.pill:hover{background:var(--accent-2);border-color:var(--accent-3);color:var(--accent);text-decoration:none}
.pubs{list-style:none;margin:0;padding:0}
.pub{padding:1rem 0;border-bottom:1px solid var(--line);display:grid;grid-template-columns:1fr auto;gap:.3rem 1.5rem}
.pub .t{font-family:var(--serif);font-size:1.15rem;line-height:1.3;grid-column:1}
.pub .t a{color:var(--fg)}.pub .t a:hover{color:var(--accent)}
.pub .a{color:var(--fg-2);font-size:.92rem;grid-column:1}.pub .a b{color:var(--fg);font-weight:500}
.pub .m{grid-column:1}
.pub .yr{grid-column:2;grid-row:1/5;font-family:var(--mono);font-size:.8rem;color:var(--fg-3);padding-top:.3rem}
.pub details{grid-column:1;margin-top:.3rem;font-size:.9rem;color:var(--fg-2)}
.pub summary{cursor:pointer;color:var(--accent);font-size:.82rem;list-style:none;width:max-content}
.pub summary::-webkit-details-marker{display:none}
.pub summary::before{content:"▸ ";font-size:.7rem}.pub details[open] summary::before{content:"▾ "}
.pub .abs p{margin:.4rem 0 0;line-height:1.55}
.pub .tg{grid-column:1;display:flex;gap:.5rem;flex-wrap:wrap;font-size:.74rem}
.pub .tg a{color:var(--fg-3)}.pub .tg a:hover{color:var(--accent)}
#publist .pub .yr{display:none}
.pub.hide{display:none}
.pubs.compact .pub{padding:.7rem 0}
.year{font-family:var(--serif);font-size:1.3rem;font-weight:500;color:var(--fg);margin:2.2rem 0 .2rem;display:flex;align-items:center;gap:.8rem}
.year::after{content:"";flex:1;height:1px;background:var(--line)}
.year.hide{display:none}
.empty{color:var(--fg-2);margin:2rem 0}

/* publications toolbar */
.toolbar{position:sticky;top:3.6rem;z-index:4;background:var(--bg);padding:.8rem 0;border-bottom:1px solid var(--line);margin-bottom:.5rem}
.toolbar .row{display:flex;gap:.6rem;flex-wrap:wrap;align-items:center}
.toolbar .row+.row{margin-top:.5rem}
.search{flex:1;min-width:14rem;display:flex;align-items:center;gap:.5rem;border:1px solid var(--line);border-radius:10px;padding:.45rem .8rem;background:var(--bg-2)}
.search input{border:0;background:none;outline:0;font:inherit;color:var(--fg);width:100%}
.search .ic{width:16px;height:16px;color:var(--fg-3);fill:none}
.chips{display:flex;gap:.4rem;flex-wrap:wrap;font-size:.82rem}
.chip{border:1px solid var(--line);border-radius:999px;padding:.12rem .7rem;color:var(--fg-2);cursor:pointer;background:var(--bg);font:inherit;font-size:.82rem}
.chip:hover{border-color:var(--accent)}
.chip[aria-pressed="true"]{border-color:var(--accent);color:var(--accent);background:var(--accent-2)}
.count{font-size:.82rem;color:var(--fg-3);margin-left:auto}

@media (max-width:700px){.toolbar{position:static}}

/* talks */
.talks{display:grid;grid-template-columns:repeat(3,1fr);gap:1.1rem}
.talks.grid-auto{grid-template-columns:repeat(auto-fill,minmax(17rem,1fr))}
@media (max-width:800px){.talks{grid-template-columns:1fr}}
.talk{background:var(--card);border:1px solid var(--line);border-radius:14px;overflow:hidden;box-shadow:var(--shadow)}
.talk .thumb{aspect-ratio:16/9;background:var(--bg-3) center/cover;position:relative;display:block}
.talk .thumb:not(.nothumb)::after{content:"▶";position:absolute;inset:0;display:grid;place-items:center;color:#fff;font-size:1.6rem;background:rgba(0,0,0,.25);padding-left:.2rem}
.talk .thumb.nothumb{display:grid;place-items:center;background:linear-gradient(135deg,var(--accent-2),var(--bg-3));color:var(--accent);font-family:var(--serif);font-size:1.3rem}
.talk .b{padding:.9rem 1rem}
.talk .t{font-family:var(--serif);font-size:1rem;line-height:1.3}
.talk .t a{color:var(--fg)}
.talk .e{font-size:.8rem;color:var(--fg-3);margin:.3rem 0 .5rem}

/* paper page */
.paper{max-width:var(--w-text)}
.paper .top{margin-top:1.2rem}
.paper h1{font-size:2rem;margin:1rem 0 .8rem}
.paper .authors{font-size:1.05rem;color:var(--fg-2)}.paper .authors b{color:var(--fg);font-weight:500}
.paper .venue{margin:.6rem 0 1.2rem;color:var(--fg-2)}
.actions{display:flex;flex-wrap:wrap;gap:.5rem;margin:1rem 0 1.8rem}
.btn{border:1px solid var(--line);border-radius:8px;padding:.4rem .9rem;font-size:.9rem;color:var(--fg);background:var(--card);box-shadow:var(--shadow);display:inline-flex;align-items:center;gap:.45rem;cursor:pointer;font-family:inherit}
.btn:hover{border-color:var(--accent);color:var(--accent);text-decoration:none}
.btn.primary{background:var(--accent);border-color:var(--accent);color:var(--on-accent)}
.btn.primary:hover{background:var(--accent-h);color:var(--on-accent)}
.btn .ic{width:15px;height:15px}
.paper h2{font-size:1.2rem;margin:2rem 0 .7rem}
.paper .abs p{margin:0 0 .8rem}
.video{aspect-ratio:16/9;border-radius:12px;background:var(--bg-3) center/cover;position:relative;display:block;box-shadow:var(--shadow);overflow:hidden}
.video span{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;gap:.5rem;color:#fff;font-size:1.05rem;background:rgba(0,0,0,.35)}
.video:hover span{background:rgba(0,0,0,.45)}
.video iframe{position:absolute;inset:0;width:100%;height:100%;border:0}
pre{background:var(--bg-2);border:1px solid var(--line);border-radius:10px;padding:.9rem 1rem;font-family:var(--mono);font-size:.78rem;line-height:1.5;overflow:auto;color:var(--fg-2);margin:0}
.bibwrap{position:relative}
.copy{position:absolute;top:.5rem;right:.5rem;font:inherit;font-size:.75rem;border:1px solid var(--line);background:var(--card);color:var(--fg-2);border-radius:6px;padding:.15rem .5rem;cursor:pointer}
.copy:hover{border-color:var(--accent);color:var(--accent)}
.crumbs{font-size:.82rem;color:var(--fg-3);margin-top:1.6rem}.crumbs a{color:var(--fg-3)}
.callout{background:var(--accent-2);border:1px solid var(--accent-3);border-radius:10px;padding:.8rem 1rem;font-size:.9rem;color:var(--fg-2);margin-bottom:1rem}

/* cv */
.cv h2{font-size:1.35rem;margin:2.4rem 0 .8rem;padding-bottom:.3rem;border-bottom:1px solid var(--line)}
.cvl{display:grid;grid-template-columns:8.5rem 1fr;gap:.55rem 1rem;margin:0}
.cvl dt{font-family:var(--mono);font-size:.78rem;color:var(--fg-3);padding-top:.25rem}
.cvl dd{margin:0}
@media (max-width:600px){.cvl{grid-template-columns:1fr;gap:.1rem}.cvl dd{margin-bottom:.6rem}}

footer.site{margin:3rem 0 0;padding:2rem 0;border-top:1px solid var(--line);font-size:.82rem;color:var(--fg-3);background:var(--bg-2)}
footer.site .wrap{display:flex;justify-content:space-between;flex-wrap:wrap;gap:.6rem}
footer.site a{color:var(--fg-3)}
@media print{header.site,footer.site,.theme,.toolbar,.actions,.stats,.tip sup,.tip-b{display:none}.hero{background:none}body{font-size:11pt}}
/* Juan de la Cierva page: funder logos */
.funders{margin:1.4rem 0 0}
.funders .logos{display:flex;flex-wrap:wrap;gap:.6rem;align-items:center}
.funders img{height:60px;width:auto;border-radius:4px}
.funders .small{margin:.6rem 0 0}
