:root{--background:#FFFFFF;--surface:#F4F4F6;--foreground:#2A2A2A;--accent-base:#75AADB;--primary:#1a3a5c;--secondary:#2a5a8c;--accent:#c0392b;--tertiary:#ffffff;--color-bg:var(--background);--color-text:var(--foreground);--color-text-light:#555555;--color-primary:var(--primary);--color-accent:var(--accent);--color-border:#e0e0e0;--color-bg-alt:var(--surface);--font-body:-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen,
    Ubuntu, Cantarell, sans-serif;--font-heading:var(--font-body);--font-size-base:1rem;--line-height:1.6;--space-xs:0.25rem;--space-sm:0.5rem;--space-md:1rem;--space-lg:2rem;--space-xl:3rem;--max-width:1100px;--border-radius:6px;--color-warning-bg:#fff8e1;--color-warning-border:#f0c54a;--badge-active-bg:#d4edda;--badge-active-fg:#155724;--badge-past-bg:#e2e3e5;--badge-past-fg:#383d41;--badge-school-bg:#d1ecf1;--badge-school-fg:#0c5460;--badge-workshop-bg:#fff3cd;--badge-workshop-fg:#856404;--badge-conference-bg:#cce5ff;--badge-conference-fg:#004085;--badge-colloquium-bg:#e2d4f0;--badge-colloquium-fg:#4a235a;--badge-undergraduate-bg:#e0e7ff;--badge-undergraduate-fg:#1e3a8a;--badge-graduate-bg:#fce7f3;--badge-graduate-fg:#831843}[data-theme=original]{--primary:#1a3a5c;--secondary:#2a5a8c;--accent:#c0392b;--tertiary:#ffffff}[data-theme=base]{--primary:#75AADB;--secondary:#F4F4F6;--accent:#2A2A2A;--tertiary:#FFFFFF}[data-theme=mathematical]{--primary:#004A82;--secondary:#5B92E5;--accent:#F2A900;--tertiary:#1E2022}[data-theme=uruguay]{--primary:#001489;--secondary:#55B5E5;--accent:#FFCD00;--tertiary:#7B3F00}[data-theme=cmat]{--primary:#1A5C8A;--secondary:#2172AB;--accent:#4BAABE;--tertiary:#87CEEB}[data-theme=auf]{--primary:#004D75;--secondary:#006EA9;--accent:#0095D4;--tertiary:#2172AB}[data-theme=laten]{--primary:#558855;--secondary:#668866;--accent:#88CC88;--tertiary:#004A82}[data-color-mode=dark]{--background:#14171c;--surface:#1d2127;--foreground:#e8eaed;--color-text-light:#9aa3ad;--color-border:#2c3138;--color-primary:color-mix(in srgb, var(--primary) 35%, #ffffff);--color-accent:color-mix(in srgb, var(--accent) 45%, #ffffff);--color-warning-bg:#3a2e0a;--color-warning-border:#b88a1a;--badge-active-bg:#14532d;--badge-active-fg:#bbf7d0;--badge-past-bg:#2d3138;--badge-past-fg:#cbd5e1;--badge-school-bg:#0e3a4a;--badge-school-fg:#a5d8e8;--badge-workshop-bg:#4a3a0a;--badge-workshop-fg:#f7d978;--badge-conference-bg:#0a2a4a;--badge-conference-fg:#a8c5e8;--badge-colloquium-bg:#2e1f4a;--badge-colloquium-fg:#d3bff5;--badge-undergraduate-bg:#1e2c5a;--badge-undergraduate-fg:#c5d0fa;--badge-graduate-bg:#4a1d34;--badge-graduate-fg:#f5c8de}[data-color-mode=dark]{color-scheme:dark}*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}img{max-width:100%;height:auto;display:block}body{font-family:var(--font-body);font-size:var(--font-size-base);line-height:var(--line-height);color:var(--color-text);background-color:var(--color-bg);min-height:100vh;display:flex;flex-direction:column}main.container{flex:1}h1,h2,h3,h4{font-family:var(--font-heading);line-height:1.2;margin-bottom:var(--space-sm)}h1{font-size:2rem}h2{font-size:1.5rem}h3{font-size:1.25rem}p{margin-bottom:var(--space-md)}a{color:var(--color-primary);text-decoration:none}a:hover{text-decoration:underline}.container{width:100%;max-width:var(--max-width);margin:0 auto;padding:0 var(--space-md)}main.container{padding-top:var(--space-lg);padding-bottom:var(--space-xl)}.site-header{background-color:var(--primary);color:#fff;padding:var(--space-md)0;position:sticky;top:0;z-index:100;border-bottom:3px solid var(--accent)}.header-inner{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:var(--space-sm)}.site-title{color:#fff;font-size:1.25rem;font-weight:700;text-decoration:none;padding:var(--space-xs)var(--space-sm);border-radius:var(--border-radius);transition:background-color .15s ease}.site-title:hover,.site-title:focus-visible{text-decoration:none;background-color:rgba(255,255,255,.15)}.nav-toggle{display:flex;flex-direction:column;gap:4px;background:0 0;border:none;cursor:pointer;padding:var(--space-xs)}.nav-toggle span{display:block;width:24px;height:3px;background:#fff;border-radius:2px;transition:transform .2s}.site-nav ul{list-style:none;display:flex;flex-direction:column;gap:var(--space-xs)}.site-nav ul a{color:rgba(255,255,255,.85);text-decoration:none;padding:var(--space-xs)var(--space-sm);border-radius:var(--border-radius);display:block}.site-nav ul a:hover,.site-nav ul a.active{color:#fff;background-color:rgba(255,255,255,.15);text-decoration:none}.site-nav{display:none;width:100%}.site-nav.open{display:flex;flex-direction:column;gap:var(--space-sm)}.site-nav .lang-switcher{padding:var(--space-xs)var(--space-sm)}.lang-switcher{display:inline-flex;align-items:center;gap:var(--space-xs);color:rgba(255,255,255,.85)}.lang-switcher-icon{width:18px;height:18px;flex-shrink:0;opacity:.85}.lang-switcher-options{display:inline-flex;align-items:stretch;background-color:rgba(255,255,255,.12);border-radius:999px;padding:3px}.lang-option{display:inline-flex;align-items:center;justify-content:center;min-width:2.25rem;padding:.2rem .625rem;border-radius:999px;font-size:.75rem;font-weight:600;letter-spacing:.05em;text-transform:uppercase;color:rgba(255,255,255,.75);text-decoration:none;transition:color .15s ease,background-color .15s ease,box-shadow .15s ease}.lang-option:hover{color:#fff;text-decoration:none}.lang-option.active{background-color:#fff;color:var(--primary);box-shadow:0 1px 2px rgba(0,0,0,.15);pointer-events:none}.lang-option:focus-visible{outline:2px solid #fff;outline-offset:2px}.footer-controls{display:flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:var(--space-sm)var(--space-md);margin-top:var(--space-md)}.color-mode-toggle{display:inline-flex;align-items:center;justify-content:center;width:1.75rem;height:1.75rem;padding:0;background-color:var(--color-bg);color:var(--color-text-light);border:1px solid var(--color-border);border-radius:999px;cursor:pointer;transition:background-color .15s ease,color .15s ease,border-color .15s ease,box-shadow .15s ease,transform .15s ease}.color-mode-toggle:hover,.color-mode-toggle:focus-visible{color:var(--color-primary);border-color:var(--color-primary);outline:none;transform:translateY(-1px);box-shadow:0 4px 10px color-mix(in srgb,var(--primary) 10%,transparent)}.color-mode-toggle-icon{display:inline-flex;align-items:center;justify-content:center;line-height:0}.color-mode-toggle-icon--dark{display:none}[data-color-mode=dark] .color-mode-toggle-icon--light{display:none}[data-color-mode=dark] .color-mode-toggle-icon--dark{display:inline-flex}.untranslated-notice{background:var(--color-warning-bg);border-left:4px solid var(--color-warning-border);padding:var(--space-sm)var(--space-md);margin:var(--space-md)0;border-radius:var(--border-radius);font-size:.95rem}.site-footer{background-color:var(--color-bg-alt);border-top:3px solid var(--primary);padding:var(--space-lg)0;margin-top:var(--space-xl);text-align:center;color:var(--color-text-light);font-size:.875rem}.card-grid{display:grid;grid-template-columns:1fr;gap:var(--space-lg)}.card{border:1px solid var(--color-border);border-radius:var(--border-radius);overflow:hidden;background:var(--color-bg)}.card img{width:100%;aspect-ratio:16/10;object-fit:cover}.card-image-placeholder{width:100%;aspect-ratio:16/10;display:flex;align-items:center;justify-content:center;color:var(--color-primary);background:linear-gradient(135deg,color-mix(in srgb,var(--primary) 6%,transparent),color-mix(in srgb,var(--secondary) 18%,transparent))}.card-body{padding:var(--space-md)}.card-body h3{margin-bottom:var(--space-xs)}.card-body p{color:var(--color-text-light);font-size:.9rem;margin-bottom:var(--space-sm)}.member-card{display:flex;flex-direction:column;align-items:center;text-align:center;padding:var(--space-lg)var(--space-md);border:1px solid var(--color-border);border-radius:var(--border-radius);background-color:var(--color-bg);color:var(--color-text);text-decoration:none;transition:transform .18s ease,border-color .18s ease,box-shadow .18s ease}.member-card:hover,.member-card:focus-visible{transform:translateY(-3px);border-color:var(--color-primary);box-shadow:0 10px 24px color-mix(in srgb,var(--primary) 10%,transparent);text-decoration:none}.member-card-photo{width:110px;height:110px;border-radius:50%;object-fit:cover;margin-bottom:var(--space-md);background-color:var(--color-bg-alt);aspect-ratio:auto}.member-card-placeholder{display:flex;align-items:center;justify-content:center;font-size:2.5rem;font-weight:600;color:var(--color-primary);text-transform:uppercase;background:linear-gradient(135deg,color-mix(in srgb,var(--primary) 6%,transparent),color-mix(in srgb,var(--secondary) 18%,transparent))}.member-card-name{margin-bottom:var(--space-sm);font-size:1.05rem;color:var(--color-primary)}.member-card:hover .member-card-name,.member-card:focus-visible .member-card-name{text-decoration:underline}.member-card-role{display:inline-block;padding:.15rem .6rem;background-color:color-mix(in srgb,var(--primary) 8%,transparent);color:var(--color-primary);border-radius:999px;font-size:.7rem;font-weight:600;letter-spacing:.04em;text-transform:uppercase}.projects-section{margin-bottom:var(--space-xl)}.projects-section>h2{margin-bottom:var(--space-md);padding-bottom:var(--space-xs);border-bottom:1px solid var(--color-border)}.project-grid{display:grid;grid-template-columns:1fr;gap:var(--space-md)}.project-card{position:relative;display:flex;flex-direction:column;border:1px solid var(--color-border);border-radius:var(--border-radius);background:var(--color-bg);color:var(--color-text);text-decoration:none;overflow:hidden;transition:transform .18s ease,border-color .18s ease,box-shadow .18s ease}.project-card::before{content:"";position:absolute;inset:0 auto 0 0;width:4px;background:var(--accent);opacity:.85;transition:opacity .18s ease,width .18s ease}.projects-section-past .project-card::before{background:color-mix(in srgb,var(--color-text-light) 60%,transparent)}.project-card:hover,.project-card:focus-visible{transform:translateY(-3px);border-color:var(--color-primary);box-shadow:0 10px 24px color-mix(in srgb,var(--primary) 12%,transparent);text-decoration:none}.project-card:hover::before,.project-card:focus-visible::before{width:6px;opacity:1}.project-card-media{aspect-ratio:16/9;overflow:hidden;background-color:var(--color-bg-alt)}.project-card-media img{width:100%;height:100%;object-fit:cover;transition:transform .4s ease}.project-card:hover .project-card-media img{transform:scale(1.04)}.project-card-body{padding:var(--space-md)var(--space-md)var(--space-md)calc(var(--space-md) + 4px);display:flex;flex-direction:column;gap:var(--space-sm);flex:1}.project-card-title{margin:0;font-size:1.1rem;line-height:1.3;color:var(--color-primary)}.project-card:hover .project-card-title,.project-card:focus-visible .project-card-title{text-decoration:underline}.project-card-tags{display:flex;flex-wrap:wrap;gap:.4rem}.project-card-program,.project-card-lead-badge{display:inline-block;padding:.15rem .6rem;border-radius:999px;font-size:.7rem;font-weight:600;letter-spacing:.04em;text-transform:uppercase}.project-card-program{background-color:color-mix(in srgb,var(--primary) 8%,transparent);color:var(--color-primary)}.project-card-lead-badge{background-color:color-mix(in srgb,var(--accent) 12%,transparent);color:var(--color-accent)}.project-card-meta{display:flex;flex-wrap:wrap;gap:var(--space-sm)var(--space-md);font-size:.825rem;color:var(--color-text-light)}.project-card-meta-item{display:inline-flex;align-items:center;gap:.35rem}.project-card-meta-item svg{flex-shrink:0;opacity:.75}.project-card-desc{margin:0;font-size:.9rem;color:var(--color-text);line-height:1.5;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}.project-card-badge{align-self:flex-start}.projects-section-past .project-card{background:color-mix(in srgb,var(--color-bg-alt) 60%,var(--color-bg))}.projects-section-past .project-card-title{color:var(--color-text)}.project-card-more{display:flex;align-items:center;justify-content:center;text-align:center;padding:var(--space-lg)var(--space-md);min-height:100%;border:2px dashed var(--color-border);border-radius:var(--border-radius);background:0 0;color:var(--color-primary);text-decoration:none;transition:border-color .18s ease,background-color .18s ease,transform .18s ease,box-shadow .18s ease}.project-card-more:hover,.project-card-more:focus-visible{border-style:solid;border-color:var(--color-primary);background:color-mix(in srgb,var(--primary) 5%,transparent);transform:translateY(-3px);box-shadow:0 10px 24px color-mix(in srgb,var(--primary) 10%,transparent);text-decoration:none;outline:none}.project-card-more-inner{display:inline-flex;flex-direction:column;align-items:center;gap:var(--space-sm)}.project-card-more-label{font-size:1rem;font-weight:500}.project-card-more-arrow{width:28px;height:28px;padding:6px;box-sizing:border-box;border-radius:999px;background:color-mix(in srgb,var(--primary) 8%,transparent);transition:transform .18s ease,background-color .18s ease}.project-card-more:hover .project-card-more-arrow,.project-card-more:focus-visible .project-card-more-arrow{transform:translateX(4px);background:color-mix(in srgb,var(--primary) 16%,transparent)}button.project-card-more{font:inherit;cursor:pointer;width:100%}.project-toggle-collapsed .project-card-extra{display:none}.project-card-wrap{display:contents}.section-header{margin-bottom:var(--space-lg)}.section-header h1{margin-bottom:var(--space-sm);padding-bottom:var(--space-sm);border-bottom:3px solid var(--accent)}.pub-filters{display:flex;flex-direction:column;gap:var(--space-sm);margin-bottom:var(--space-lg);padding:var(--space-md);background-color:var(--color-bg-alt);border-radius:var(--border-radius);border:1px solid var(--color-border)}.pub-filters-row{display:flex;flex-wrap:wrap;align-items:end;gap:var(--space-sm)var(--space-md)}.pub-filter{display:flex;flex-direction:column;gap:var(--space-xs);min-width:0;flex:1 1}.pub-filter>label{font-size:.8rem;font-weight:600;letter-spacing:.02em;text-transform:uppercase;color:var(--color-text-light)}.pub-filter select,.pub-search-wrap input{width:100%;padding:.55rem .75rem;font-size:.95rem;font-family:inherit;color:var(--foreground);background-color:var(--background);border:1px solid var(--color-border);border-radius:var(--border-radius);transition:border-color 120ms ease,box-shadow 120ms ease}.pub-filter select:focus,.pub-search-wrap input:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px color-mix(in srgb,var(--accent) 20%,transparent)}.pub-search-wrap{position:relative;display:flex;align-items:center}.pub-search-icon{position:absolute;left:.75rem;color:var(--color-text-light);pointer-events:none}.pub-search-wrap input{padding-left:2.25rem}.pub-search-wrap input::-webkit-search-cancel-button{cursor:pointer}.pub-filter-clear{flex:none;align-self:end;margin-left:auto;padding:.55rem .9rem;font:inherit;font-size:.9rem;color:var(--color-text-light);background:0 0;border:1px solid var(--color-border);border-radius:var(--border-radius);cursor:pointer;transition:color 120ms ease,border-color 120ms ease,background-color 120ms ease}.pub-filter-clear:hover{color:var(--accent);border-color:var(--accent)}.pub-filter-clear[hidden]{display:none}.pub-no-results{padding:var(--space-lg)var(--space-md);text-align:center;color:var(--color-text-light);background-color:var(--color-bg-alt);border-radius:var(--border-radius)}.pub-authors{color:var(--color-text-light);font-size:.9rem;margin-bottom:var(--space-xs)}.pub-journal{font-style:italic;color:var(--color-text-light);font-size:.9rem}.pub-toggle-collapsed .pub-item-extra{display:none}.pub-line-list{list-style:none;padding:0;margin:0}.pub-line-list .pub-item-line{margin:0;padding:var(--space-sm)0;border-bottom:1px solid var(--color-border)}.pub-line-list .pub-item-line:last-child{border-bottom:none}.pub-item-title{font-weight:600}.pub-item-line .pub-item-journal{font-style:italic;color:var(--color-text-light);font-size:.95rem}.pub-item-line .pub-item-year,.pub-item-line .pub-item-sep{color:var(--color-text-light);font-size:.95rem}.pub-item-subline{display:flex;align-items:center;gap:.5rem;margin-top:2px;min-width:0}.pub-item-authors{flex:auto;min-width:0;font-size:.8rem;line-height:1.3;color:var(--color-text-light);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.pub-item-authors a{color:inherit;text-decoration:none}.pub-item-authors a:hover{text-decoration:underline}.pub-item-tutors{flex-shrink:0;font-size:.8rem;line-height:1.3;color:var(--color-text-light);white-space:nowrap}.pub-item-tutors strong{font-weight:600;margin-right:.25rem}.pub-item-tutors a{color:inherit;text-decoration:none}.pub-item-tutors a:hover{text-decoration:underline}.pub-item-subline .pub-item-type{margin-right:0;flex-shrink:0}.pub-item-type{display:inline-block;padding:.1rem .55rem;margin-right:.4rem;border-radius:999px;font-size:.7rem;font-weight:600;letter-spacing:.04em;text-transform:uppercase;background-color:color-mix(in srgb,var(--primary) 8%,transparent);color:var(--color-primary);vertical-align:1px;white-space:nowrap}.pub-item-type-phd_thesis,.pub-item-type-master_thesis,.pub-item-type-bachelor_monograph{background-color:color-mix(in srgb,var(--accent) 10%,transparent);color:var(--color-accent)}.pub-item-type-software{background-color:var(--color-bg-alt);color:var(--color-text-light)}.pub-item-type-lead{background-color:color-mix(in srgb,var(--accent) 10%,transparent);color:var(--color-accent)}.pub-item-type-speaker{background-color:color-mix(in srgb,var(--primary) 8%,transparent);color:var(--color-primary)}.pub-toggle-btn{margin-top:var(--space-sm);padding:.4rem 0;font:inherit;font-size:.95rem;color:var(--accent);background:0 0;border:none;cursor:pointer}.pub-toggle-btn:hover{text-decoration:underline}.pub-toggle-btn:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:2px}.pub-links{display:flex;gap:var(--space-sm);margin-top:var(--space-lg);flex-wrap:wrap}.pub-section{margin-top:var(--space-xl);margin-bottom:var(--space-lg)}.pub-section>h2{margin-bottom:var(--space-md);padding-bottom:var(--space-xs);border-bottom:1px solid var(--color-border)}.events-section{margin-bottom:var(--space-xl)}.event-item{padding:var(--space-md);border-left:4px solid var(--accent);margin-bottom:var(--space-md);background-color:var(--color-bg-alt);border-radius:0 var(--border-radius)var(--border-radius)0}.event-item h3{margin-bottom:var(--space-xs)}.event-meta{color:var(--color-text-light);font-size:.875rem;margin-bottom:var(--space-sm)}.event-people{list-style:none;padding:0;margin:0;display:flex;flex-wrap:wrap;gap:var(--space-xs)var(--space-sm)}.event-people li{padding:var(--space-xs)var(--space-sm);border:1px solid var(--color-border);border-radius:999px;font-size:.9rem;color:var(--color-text);background-color:var(--color-bg)}.btn{display:inline-block;padding:var(--space-xs)var(--space-md);border-radius:var(--border-radius);font-size:.875rem;text-decoration:none;border:1px solid var(--color-primary);color:var(--color-primary);transition:background-color .2s,color .2s}.btn:hover,.btn:focus-visible{background-color:var(--primary);color:#fff;text-decoration:none;outline:none;box-shadow:0 0 0 3px color-mix(in srgb,var(--accent) 30%,transparent)}.badge{display:inline-block;padding:var(--space-xs)var(--space-sm);border-radius:var(--border-radius);font-size:.75rem;font-weight:600;text-transform:uppercase;background-color:var(--color-bg-alt);color:var(--color-text-light)}.badge-active{background-color:var(--badge-active-bg);color:var(--badge-active-fg)}.badge-past{background-color:var(--badge-past-bg);color:var(--badge-past-fg)}.badge-school{background-color:var(--badge-school-bg);color:var(--badge-school-fg)}.badge-workshop{background-color:var(--badge-workshop-bg);color:var(--badge-workshop-fg)}.badge-conference{background-color:var(--badge-conference-bg);color:var(--badge-conference-fg)}.badge-colloquium{background-color:var(--badge-colloquium-bg);color:var(--badge-colloquium-fg)}.badge-undergraduate{background-color:var(--badge-undergraduate-bg);color:var(--badge-undergraduate-fg)}.badge-graduate{background-color:var(--badge-graduate-bg);color:var(--badge-graduate-fg)}.course-card{display:block;color:inherit;text-decoration:none;transition:transform .15s ease,border-color .15s ease,box-shadow .15s ease}.course-card:hover,.course-card:focus-visible{transform:translateY(-2px);border-color:var(--primary);box-shadow:0 6px 16px color-mix(in srgb,var(--primary) 12%,transparent);outline:none;text-decoration:none}.course-card .card-body{display:flex;flex-direction:column;gap:var(--space-sm)}.course-card .card-body h3{color:var(--color-primary);margin:0;font-size:1.05rem;line-height:1.35}.course-card .badge{align-self:flex-start}.course-card-teachers{display:flex;align-items:flex-start;gap:.35rem;color:var(--color-text-light);font-size:.9rem;margin:0;line-height:1.45}.course-card-teachers>svg{flex-shrink:0;opacity:.75;margin-top:.2em}.course-card-year{font-variant-numeric:tabular-nums;color:var(--color-text-light);margin-left:var(--space-xs)}.course-card-years{list-style:none;padding:0;margin:0;display:flex;flex-wrap:wrap;gap:var(--space-xs);margin-top:var(--space-xs)}.course-card-year-chip{display:inline-block;padding:2px var(--space-sm);border-radius:999px;font-size:.75rem;font-weight:500;font-variant-numeric:tabular-nums;border:1px solid var(--color-border);color:var(--color-text-light);background:var(--color-bg);line-height:1.4}.member-courses-list{list-style:none;padding:0;margin:0;display:flex;flex-direction:column}.member-course-line{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-sm);padding:var(--space-sm)0;border-bottom:1px solid var(--color-border)}.member-course-line:last-child{border-bottom:none}.member-course-title{flex:1 1 220px;font-weight:500;color:var(--color-primary);text-decoration:none}.member-course-title:hover,.member-course-title:focus-visible{text-decoration:underline}.member-course-years{margin-top:0}@media(min-width:768px){.card-grid-courses{grid-template-columns:1fr 1fr}}@media(min-width:1024px){.card-grid-courses{grid-template-columns:1fr 1fr 1fr}}.course-instances{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:var(--space-sm)}.course-instance{display:grid;grid-template-columns:auto 1fr auto;gap:var(--space-md);align-items:center;padding:var(--space-sm)var(--space-md);border:1px solid var(--color-border);border-radius:var(--border-radius);background:var(--color-bg)}.course-instance-year{font-weight:600;font-variant-numeric:tabular-nums;color:var(--color-primary);font-size:1.1rem}.course-instance-teachers{list-style:none;padding:0;margin:0;display:flex;flex-wrap:wrap;gap:0 var(--space-xs);color:var(--color-text)}.course-instance-teachers li:not(:last-child)::after{content:","}.course-instance-link{display:inline-flex;align-items:center;gap:var(--space-xs);font-size:.9rem;white-space:nowrap}@media(max-width:600px){.course-instance{grid-template-columns:1fr;gap:var(--space-xs)}}.gallery{margin:var(--space-lg)0}.gallery-main{margin:0;display:flex;flex-direction:column;gap:var(--space-xs)}.gallery-main img{width:100%;max-height:70vh;object-fit:contain;background:color-mix(in srgb,var(--color-text) 4%,transparent);border-radius:var(--border-radius);display:block;transition:opacity .2s ease}.gallery-main figcaption{text-align:center;font-size:.9rem;color:var(--color-text-light)}.gallery-thumbs{display:flex;gap:var(--space-sm);margin-top:var(--space-sm);overflow-x:auto;padding-bottom:var(--space-xs);scrollbar-color:color-mix(in srgb,var(--primary) 30%,transparent)transparent}.gallery-thumbs::-webkit-scrollbar{height:6px}.gallery-thumbs::-webkit-scrollbar-thumb{background:color-mix(in srgb,var(--primary) 30%,transparent);border-radius:999px}.gallery-thumb{flex:none;width:88px;height:64px;padding:0;border:2px solid transparent;border-radius:calc(var(--border-radius) - 4px);background:0 0;cursor:pointer;overflow:hidden;opacity:.65;transition:opacity .15s ease,border-color .15s ease,transform .15s ease}.gallery-thumb img{width:100%;height:100%;object-fit:cover;display:block}.gallery-thumb:hover,.gallery-thumb:focus-visible{opacity:1;outline:none}.gallery-thumb.is-active{opacity:1;border-color:var(--primary)}.carousel{position:relative;margin:var(--space-lg)0}.carousel-viewport{overflow:hidden;border-radius:var(--border-radius);background:color-mix(in srgb,var(--color-text) 4%,transparent)}.carousel-track{display:flex;transition:transform .4s ease;will-change:transform}.carousel-slide{flex:0 0 100%;min-width:0;margin:0;display:flex;flex-direction:column;align-items:center;gap:var(--space-xs);padding:var(--space-sm)}.carousel-slide img{width:100%;max-height:70vh;object-fit:contain;border-radius:calc(var(--border-radius) - 4px);display:block}.carousel-slide figcaption{text-align:center;font-size:.9rem;color:var(--color-text-light)}.carousel-btn{position:absolute;top:50%;transform:translateY(-50%);width:40px;height:40px;display:inline-flex;align-items:center;justify-content:center;padding:0;border:1px solid color-mix(in srgb,var(--color-text) 12%,transparent);border-radius:999px;background:var(--color-bg);color:var(--color-text);cursor:pointer;box-shadow:0 2px 8px color-mix(in srgb,var(--color-text) 14%,transparent);transition:background .15s ease,color .15s ease,transform .15s ease,opacity .15s ease;z-index:1}.carousel-btn:hover,.carousel-btn:focus-visible{background:var(--primary);color:var(--color-bg);outline:none}.carousel-btn:active{transform:translateY(-50%)scale(.96)}.carousel-btn[disabled]{opacity:.35;cursor:not-allowed}.carousel-btn-prev{left:var(--space-lg)}.carousel-btn-next{right:var(--space-lg)}.carousel-dots{display:flex;justify-content:center;gap:var(--space-xs);margin-top:var(--space-sm)}.carousel-dot{width:8px;height:8px;padding:0;border:none;border-radius:999px;background:color-mix(in srgb,var(--color-text) 25%,transparent);cursor:pointer;transition:background .15s ease,transform .15s ease}.carousel-dot:hover,.carousel-dot:focus-visible{background:color-mix(in srgb,var(--primary) 60%,transparent);outline:none}.carousel-dot.is-active{background:var(--primary);transform:scale(1.3)}.single-header{margin-bottom:var(--space-lg)}.single-header h1{margin-bottom:var(--space-sm);padding-bottom:var(--space-sm);border-bottom:3px solid var(--accent)}.single-meta{color:var(--color-text-light);font-size:.9rem}.content{max-width:none}.content h2{margin-top:var(--space-lg)}.content h3{margin-top:var(--space-md)}.content ul,.content ol{margin-left:var(--space-lg);margin-bottom:var(--space-md)}.profile-hero{display:flex;flex-direction:column;align-items:center;text-align:center;gap:var(--space-md);padding:var(--space-md)0 var(--space-lg);margin-bottom:var(--space-lg)}.profile-photo{width:180px;height:180px;border-radius:50%;object-fit:cover;flex-shrink:0;background-color:var(--color-bg-alt);box-shadow:0 0 0 4px var(--color-bg),0 0 0 5px var(--color-border),0 8px 20px color-mix(in srgb,var(--primary) 8%,transparent)}.profile-photo-placeholder{display:flex;align-items:center;justify-content:center;font-size:4rem;font-weight:600;color:var(--color-primary);text-transform:uppercase}.profile-hero-text{display:flex;flex-direction:column;align-items:center;gap:var(--space-sm);min-width:0}.profile-hero-text h1{margin-bottom:0;padding-bottom:var(--space-sm);border-bottom:3px solid var(--accent)}.profile-role{display:inline-block;padding:.2rem .85rem;background-color:color-mix(in srgb,var(--primary) 8%,transparent);color:var(--color-primary);border-radius:999px;font-size:.8rem;font-weight:600;letter-spacing:.04em;text-transform:uppercase}.profile-years{margin:.5rem 0 0;color:var(--color-text-light);font-size:.95rem;font-variant-numeric:tabular-nums}.profile-tags{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:.4rem}.profile-lead-badge{display:inline-block;padding:.2rem .85rem;background-color:color-mix(in srgb,var(--accent) 12%,transparent);color:var(--color-accent);border-radius:999px;font-size:.8rem;font-weight:600;letter-spacing:.04em;text-transform:uppercase}.member-card-lead-badge{display:inline-block;margin-top:.3rem;padding:.15rem .6rem;background-color:color-mix(in srgb,var(--accent) 12%,transparent);color:var(--color-accent);border-radius:999px;font-size:.7rem;font-weight:600;letter-spacing:.04em;text-transform:uppercase}.profile-edu{display:flex;align-items:flex-start;justify-content:center;gap:.6rem;color:var(--color-text-light);font-size:.95rem;margin:0;max-width:52ch;line-height:1.5}.profile-edu svg{flex-shrink:0;margin-top:.15rem;color:var(--color-primary)}.profile-contact{list-style:none;display:flex;flex-wrap:wrap;justify-content:center;gap:var(--space-sm);margin:var(--space-xs)0 0;padding:0}.profile-contact a{display:inline-flex;align-items:center;gap:.4rem;padding:.4rem .85rem;border:1px solid var(--color-border);border-radius:999px;font-size:.875rem;color:var(--color-text);background-color:var(--color-bg);transition:border-color .15s ease,color .15s ease,background-color .15s ease,transform .15s ease;word-break:break-all}.profile-contact a:hover,.profile-contact a:focus-visible{border-color:var(--color-primary);color:var(--color-primary);background-color:color-mix(in srgb,var(--primary) 4%,transparent);text-decoration:none;transform:translateY(-1px)}.profile-contact svg{flex-shrink:0;color:var(--color-primary)}.profile-bio-line{display:flex;align-items:flex-start;justify-content:center;gap:.6rem;color:var(--color-text-light);font-size:.95rem;margin:0;max-width:52ch;line-height:1.5}.profile-bio-line svg{flex-shrink:0;margin-top:.15rem;color:var(--color-primary)}.profile-content{margin-bottom:var(--space-lg)}.project-hero{margin-bottom:var(--space-lg)}.project-hero h1{margin-bottom:var(--space-md);padding-bottom:var(--space-sm);border-bottom:3px solid var(--accent)}.project-meta-bar{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-sm)var(--space-lg);color:var(--color-text-light);font-size:.95rem;font-variant-numeric:tabular-nums}.project-meta-item{display:inline-flex;align-items:center;gap:.4rem}.project-meta-item svg{color:var(--color-primary);flex-shrink:0}.project-meta-bar .badge{padding:.2rem .6rem}.project-lead{margin-bottom:var(--space-lg);padding:var(--space-sm)var(--space-md);border-left:4px solid var(--accent);background-color:color-mix(in srgb,var(--accent) 4%,transparent);font-size:1.1rem;line-height:1.65;color:var(--color-text);border-radius:0 var(--border-radius)var(--border-radius)0}.project-cta{margin-bottom:var(--space-lg)}.btn-primary{display:inline-flex;align-items:center;gap:.5rem;padding:var(--space-sm)var(--space-md);background-color:var(--primary);color:#fff;border:1px solid var(--primary);border-radius:var(--border-radius);font-size:.95rem;font-weight:500;text-decoration:none;transition:background-color .15s ease,transform .15s ease,box-shadow .15s ease}.btn-primary:hover,.btn-primary:focus-visible{background-color:var(--secondary);color:#fff;text-decoration:none;transform:translateY(-1px);box-shadow:0 6px 16px color-mix(in srgb,var(--primary) 20%,transparent)}.project-section{margin-top:var(--space-xl);margin-bottom:var(--space-lg)}.project-section>h2{margin-bottom:var(--space-md);padding-bottom:var(--space-xs);border-bottom:1px solid var(--color-border)}.project-members-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:var(--space-sm)}.project-member{display:flex;align-items:center;gap:var(--space-sm);padding:var(--space-sm);border:1px solid var(--color-border);border-radius:var(--border-radius);background-color:var(--color-bg);color:var(--color-text);text-decoration:none;transition:border-color .15s ease,transform .15s ease,box-shadow .15s ease}a.project-member:hover,a.project-member:focus-visible{border-color:var(--color-primary);text-decoration:none;transform:translateY(-2px);box-shadow:0 6px 16px color-mix(in srgb,var(--primary) 10%,transparent)}.project-member-missing{opacity:.7;cursor:default}.project-member-photo{width:44px;height:44px;border-radius:50%;object-fit:cover;flex-shrink:0;background-color:var(--color-bg-alt);aspect-ratio:auto}.project-member-photo-placeholder{display:flex;align-items:center;justify-content:center;font-size:1.1rem;font-weight:600;color:var(--color-primary);text-transform:uppercase;background:linear-gradient(135deg,color-mix(in srgb,var(--primary) 8%,transparent),color-mix(in srgb,var(--secondary) 22%,transparent))}.project-member-text{display:flex;flex-direction:column;gap:.15rem;min-width:0}.project-member-name{font-size:.95rem;font-weight:600;color:var(--color-primary);line-height:1.3;min-width:0}.project-member-lead-badge{align-self:flex-start;padding:.1rem .5rem;background-color:color-mix(in srgb,var(--accent) 12%,transparent);color:var(--color-accent);border-radius:999px;font-size:.65rem;font-weight:600;letter-spacing:.04em;text-transform:uppercase}.project-content{max-width:none;margin-top:var(--space-lg)}.content form{max-width:600px}.content form label{display:block;margin-bottom:var(--space-xs);font-weight:600}.content form input,.content form textarea{width:100%;padding:var(--space-sm);border:1px solid var(--color-border);border-radius:var(--border-radius);font-family:var(--font-body);font-size:var(--font-size-base);margin-bottom:var(--space-md);transition:border-color .15s ease,box-shadow .15s ease}.content form input:focus,.content form input:focus-visible,.content form textarea:focus,.content form textarea:focus-visible{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px color-mix(in srgb,var(--accent) 20%,transparent)}.content form textarea{min-height:150px;resize:vertical}.content form button{background-color:var(--primary);color:#fff;border:none;padding:var(--space-sm)var(--space-lg);border-radius:var(--border-radius);font-size:var(--font-size-base);cursor:pointer;transition:opacity .15s ease,box-shadow .15s ease}.content form button:hover,.content form button:focus-visible{opacity:.85;outline:none;box-shadow:0 0 0 3px color-mix(in srgb,var(--accent) 30%,transparent)}.hero{text-align:center;padding:var(--space-xl)0}.hero h1{font-size:2.25rem;margin-bottom:var(--space-md);padding-bottom:var(--space-sm);border-bottom:3px solid var(--accent);display:inline-block}.hero p{font-size:1.1rem;color:var(--color-text-light);max-width:60ch;margin:0 auto var(--space-md)}.hero-image{margin:var(--space-lg)0 0}.hero-image img{display:block;width:100%;height:auto;aspect-ratio:2/1;object-fit:cover;border-radius:var(--border-radius);border:1px solid var(--color-border);box-shadow:0 6px 20px color-mix(in srgb,var(--primary) 10%,transparent)}.home-section{margin-top:var(--space-xl)}.home-section h2{margin-bottom:var(--space-md)}.home-section-more{margin-top:var(--space-md);text-align:right;font-size:.95rem}.news-featured-image{margin-bottom:var(--space-lg);border-radius:var(--border-radius)}.image-cap{position:relative;max-height:520px;overflow:hidden;border-radius:var(--border-radius);margin:0 0 var(--space-lg)}.image-cap>img{display:block}.image-cap img{width:100%;height:auto;max-width:100%;border-radius:0;margin:0}.image-cap.is-truncated{cursor:zoom-in}.image-cap.is-truncated::after{content:"";position:absolute;left:0;right:0;bottom:0;height:96px;background:linear-gradient(to bottom,transparent 0%,var(--color-bg) 100%);pointer-events:none}@media(min-width:768px){h1{font-size:2.5rem}.hero h1{font-size:2.75rem}.card-grid{grid-template-columns:repeat(2,1fr)}.project-grid{grid-template-columns:repeat(2,1fr)}.gallery-thumb{width:104px;height:76px}.profile-hero{flex-direction:row;align-items:center;text-align:left;gap:var(--space-xl);padding:var(--space-lg)0 var(--space-xl)}.profile-hero-text{align-items:flex-start;flex:1}.profile-edu,.profile-bio-line{justify-content:flex-start}}@media(min-width:1024px){.nav-toggle{display:none}.site-nav{display:flex;flex-direction:row;align-items:center;gap:var(--space-md);width:auto}.site-nav ul{flex-direction:row;gap:var(--space-xs)}.site-nav .lang-switcher{padding:0}.card-grid{grid-template-columns:repeat(3,1fr)}.gallery-thumb{width:120px;height:84px}}.lightbox-trigger{display:contents;background:0 0;border:0;padding:0;margin:0;cursor:zoom-in;font:inherit;color:inherit}.lightbox-trigger>img{cursor:zoom-in;transition:filter .2s ease}.lightbox-trigger:hover>img,.lightbox-trigger:focus-visible>img{filter:brightness(.92)}.lightbox-trigger:focus-visible>img{outline:2px solid var(--color-primary);outline-offset:2px}.lightbox{position:fixed;inset:0;z-index:1000;display:flex;align-items:center;justify-content:center;padding:var(--space-md);background:rgba(0,0,0,.88);cursor:zoom-out;animation:lightbox-fade .18s ease-out}.lightbox[hidden]{display:none}@keyframes lightbox-fade{from{opacity:0}to{opacity:1}}.lightbox img{max-width:100%;max-height:100%;width:auto;height:auto;object-fit:contain;cursor:default;box-shadow:0 12px 40px rgba(0,0,0,.5);border-radius:var(--border-radius);background:var(--color-bg-alt)}.lightbox-close{position:absolute;top:var(--space-md);right:var(--space-md);width:44px;height:44px;display:inline-flex;align-items:center;justify-content:center;background:rgba(255,255,255,.12);color:#fff;border:0;border-radius:999px;cursor:pointer;transition:background .15s ease,transform .15s ease}.lightbox-close:hover,.lightbox-close:focus-visible{background:rgba(255,255,255,.22);transform:scale(1.05);outline:none}.lightbox-close:focus-visible{outline:2px solid #fff;outline-offset:2px}body.lightbox-open{overflow:hidden}@media print{.site-header,.site-footer,.nav-toggle{display:none}main.container{padding:0}a{color:var(--color-text)}}.theme-switcher{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-xs);color:var(--color-text-light);font-size:.75rem}.theme-switcher-label{text-transform:uppercase;letter-spacing:.05em;font-weight:600}.theme-switcher-select{background-color:var(--color-bg);color:var(--color-text);border:1px solid var(--color-border);border-radius:999px;padding:.2rem .5rem;font-size:.75rem;font-family:inherit;cursor:pointer}.theme-switcher-select:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}