:root{--background:rgba(24, 24, 24, 1);--main-text:#e4e4e4;--lightgray:#657b83;--gray:#b8c4c8;--darkgray:#e4e4e4;--black:#000;--link:#73abde;--green:#99ffdd;--content-width:860px}body{font-family:helveticaneue-light,helvetica neue light,helvetica neue,Helvetica,Arial,lucida grande,sans-serif;font-weight:400;line-height:1.5em;font-size:1.1em;max-width:var(--content-width);padding:1rem;margin:auto;background:var(--background);color:var(--main-text)}h1{font-size:2.1em;line-height:1.2em;margin-top:.5em;margin-bottom:.5em}h2,h3{margin-top:1.3em;margin-bottom:.2em;color:var(--darkgray)}h2{font-size:1.4em}h3{font-size:1.1em}p{margin-top:.5em;margin-bottom:1em}a{color:var(--link)}strong{color:var(--darkgray)}hr{border:0;border-top:1px solid var(--lightgray);margin:1.5em 0}img{max-width:100%;margin:1rem 0}li{margin-top:.5em;margin-bottom:.66em}.site-nav{width:100%;background-color:var(--background);position:sticky;top:0;z-index:100;margin-bottom:.5rem;padding:.5rem 0;border-bottom:1px solid var(--lightgray)}.nav-container{display:flex;align-items:center;justify-content:space-between;gap:1rem;max-width:var(--content-width);margin:0 auto;padding:0 1rem}.nav-left{flex:none;min-width:-moz-max-content;min-width:max-content}.nav-right{display:flex;align-items:center;margin-left:auto}.site-logo{display:flex;align-items:center;text-decoration:none;color:var(--main-text);white-space:nowrap}.site-logo img{border-radius:50%;margin:0;margin-right:.5rem;transition:transform .3s ease}.site-logo:hover img{transform:scale(1.1)}.nav-links{display:flex;list-style:none;margin:0;padding:0;align-items:center}.nav-links li{margin:0;padding:0}.nav-item{display:block;padding:.5rem .75rem;color:var(--main-text);text-decoration:none;font-size:.95rem;position:relative;transition:all .2s ease}.nav-links .nav-item:hover,.nav-links .nav-item.active{color:var(--link)}.nav-links .nav-item::after{content:"";position:absolute;width:0;height:2px;bottom:0;left:50%;background-color:var(--link);transition:all .3s ease}.nav-links .nav-item:hover::after,.nav-links .nav-item.active::after{width:80%;left:10%}.nav-links .nav-item--has-news::after{width:80%;left:10%;background-color:#f97316;opacity:.9}.nav-links .nav-item--has-news:hover::after,.nav-links .nav-item--has-news.active::after{background-color:#f97316}.nav-toggle{display:none;border:0;padding:.35rem .5rem;background:0 0;color:var(--main-text);cursor:pointer;font-size:1.2rem}.project-navigation{display:flex;justify-content:space-between;margin-top:2rem;padding:1rem;border:1px solid var(--lightgray);border-radius:5px}.nav-link{min-width:0;color:var(--link);text-decoration:none;display:flex;align-items:center;overflow-wrap:anywhere}.nav-link.next{justify-content:flex-end;text-align:right}.nav-link.prev{margin-right:auto}.nav-link.next{margin-left:auto}.back-to-top{position:fixed;bottom:20px;right:20px;width:40px;height:40px;border-radius:50%;background-color:var(--link);color:var(--background);border:none;cursor:pointer;display:flex;align-items:center;justify-content:center;opacity:0;visibility:hidden;pointer-events:none;transition:opacity .3s ease,transform .3s ease,visibility 0s linear .3s;transform:translateY(20px);z-index:1000;box-shadow:0 2px 5px rgba(0,0,0,.4)}.back-to-top.visible{opacity:.8;visibility:visible;pointer-events:auto;transform:translateY(0);transition-delay:0s}.back-to-top:hover{opacity:1}.tag{display:inline-block;background-color:var(--link);color:var(--background);padding:.2rem .5rem;border-radius:3px;margin-right:.5rem;font-size:.8em;text-decoration:none;transition:background-color .2s}.tag:hover{background-color:var(--lightgray);color:var(--background)}.return-link{display:inline-block;margin-bottom:1rem;color:var(--lightgray);text-decoration:none;font-size:.9rem;transition:color .2s ease}.return-link:hover{color:var(--link)}@media(max-width:600px){.tag{margin-right:0}}pre{display:block;padding:.75rem 1rem;line-height:1.5;white-space:pre-wrap;overflow-x:auto;font-size:.875em;-moz-tab-size:2;-o-tab-size:2;tab-size:2;text-align:left;word-spacing:normal;word-break:normal;word-wrap:normal;background-color:#272822;color:#fff}:not(pre)>code{padding:.1em .3em;background-color:rgba(255,255,255,.1);border-radius:3px;font-size:.9em}@media(max-width:768px){.nav-toggle{display:block}.nav-links{position:absolute;top:100%;right:0;left:0;background-color:var(--background);flex-direction:column;align-items:center;padding:.5rem 0;max-height:0;overflow:hidden;visibility:hidden;pointer-events:none;transition:max-height .3s ease-out,visibility 0s linear .3s;box-shadow:0 4px 6px rgba(0,0,0,.1);border-bottom:1px solid var(--lightgray)}.nav-links li{width:100%;text-align:center}.nav-links .nav-item{padding:.7rem 1rem}.nav-links .nav-item::after{left:25%}.nav-links .nav-item:hover::after,.nav-links .nav-item.active::after{width:50%}.nav-container{padding:.5rem 1rem}.nav-left{min-width:0}body{padding:1rem}}@media(max-width:500px){.project-navigation{padding:.75rem}.nav-link{font-size:.9em}ul{padding:0;list-style-position:inside}}.curso-list{margin:2rem 0}.curso-item{padding:1rem 0;border-bottom:1px solid var(--lightgray)}.curso-item:first-child{border-top:1px solid var(--lightgray)}.item-title{margin:0 0 .5rem;font-size:1.3rem;display:flex;align-items:center}.item-title a{color:var(--link);text-decoration:none;transition:all .2s ease;position:relative}.item-title a:hover{text-decoration:underline}.item-title a::after{content:"→";opacity:0;margin-left:.3rem;transition:opacity .2s ease,transform .2s ease;display:inline-block}.item-title a:hover::after{opacity:1;transform:translateX(3px)}.item-summary{margin:.5rem 0 .75rem;font-size:1rem}.item-meta{display:flex;align-items:center;font-size:.9rem}.source-link{color:var(--link);text-decoration:none;display:inline-flex;align-items:center}.source-link:hover{text-decoration:underline}.home-container{max-width:900px;margin:0 auto}.intro-container{display:flex;align-items:flex-start;justify-content:space-between;margin-bottom:1rem;gap:2rem}.intro-content{flex:1}.intro-content h1{font-size:2.5rem;margin-bottom:.5rem;line-height:1.2;position:relative;display:inline-block}.list-content h1:after{content:"";position:absolute;bottom:-8px;left:0;width:60px;height:3px;background:var(--link)}.list-content h1{font-size:2.5rem;margin-bottom:.5rem;line-height:1.2;position:relative;display:inline-block;margin-bottom:1.5rem}.intro-content h1:after{content:"";position:absolute;bottom:-8px;left:0;width:60px;height:3px;background:var(--link)}.about-section{margin:0 0}.about-section p{margin-bottom:1rem;line-height:1.6}.avisos-list{display:grid;gap:1rem}.aviso-card{border:1px solid rgba(101,123,131,.6);border-radius:14px;background:rgba(255,255,255,3%)}.aviso-card{padding:1.1rem 1.2rem}.aviso-card h2{margin-top:.35rem;margin-bottom:.6rem}.aviso-card h2 a{color:var(--darkgray);text-decoration:none}.aviso-card h2 a:hover{color:var(--link)}.aviso-date{margin:0;font-size:.85rem;letter-spacing:.04em;text-transform:uppercase;color:#94a3b8}.aviso-summary{margin-bottom:.9rem;color:rgba(228,228,228,.9)}@media(max-width:768px){.intro-container{flex-direction:column-reverse;align-items:center;text-align:center;gap:1.5rem}.intro-content h1{font-size:2rem}.intro-content h1:after{left:50%;transform:translateX(-50%)}}.version-badge{position:fixed;top:1rem;right:1rem;z-index:1000;pointer-events:none}.version-badge .version-info{font-family:courier new,Courier,monospace;font-size:.75em;color:var(--main-text);background:var(--background);padding:.25rem .5rem;border-radius:4px;border:1px solid var(--lightgray);opacity:.7}@media(max-width:480px){.version-badge{display:none}}main{max-width:var(--content-width);min-height:70vh;margin:0 auto;padding:1rem}.home-container h1,.list-content h1,article h1{overflow-wrap:anywhere}.home-container .main-bio{max-width:50rem}.course-index{list-style:none;margin:1rem 0 2rem;padding:0}.course-index li{margin:0;border-bottom:1px solid var(--lightgray)}.course-index a,.course-entry{display:grid;grid-template-columns:3rem 1fr auto;gap:1rem;align-items:baseline;padding:.8rem 0;text-decoration:none}.course-number{color:var(--lightgray)}.course-status{color:var(--lightgray);font-size:.85em}.is-unavailable{opacity:.65}.tag{display:inline-block;padding:.1rem .4rem;border:1px solid var(--lightgray);font-size:.75em}.back-to-top{position:fixed;right:1rem;bottom:1rem;z-index:10;display:none;padding:.45rem .7rem;color:var(--main-text);background:var(--background);border:1px solid var(--lightgray);cursor:pointer}.back-to-top.visible{display:block}@media(max-width:768px){main{padding:.75rem}.course-index a,.course-entry{grid-template-columns:2.5rem 1fr;gap:.6rem}.course-status{grid-column:2}}details{margin:1rem 0}details summary{cursor:pointer}