:root{--paper:#fff;--surface:#f4f5f6;--ink:#25282c;--ink-2:#515961;--ink-3:#66717a;--rule:#dde1e5;--rail:var(--paper);--rail-ink:var(--ink);--rail-ink-dim:var(--ink-2);--link:#a82c50;--link-hover:#7e1e3a;--ramp:linear-gradient(90deg,#a82c50,#a82c50);--pad:clamp(1.25rem,6vw,6rem);--f-body:"Archivo",Arial,sans-serif}
[data-theme="dark"]{--paper:#1c1725;--surface:#292135;--ink:#f4effb;--ink-2:#d0c5df;--ink-3:#bdafcf;--rule:#493b59;--rail:var(--paper);--link:#d0b5f5;--link-hover:#e8d7ff;--ramp:linear-gradient(90deg,#d0b5f5,#d0b5f5);color-scheme:dark}
body{font-size:1rem;line-height:1.8}main{margin:0}h1,h2,h3{letter-spacing:-.025em}.rail{position:relative;inset:auto;width:100%;background:var(--paper);color:var(--ink);display:flex;flex-direction:row;align-items:center;gap:2rem;padding:1.1rem var(--pad);overflow:visible;border-bottom:1px solid var(--rule);z-index:40}.rail__head{display:flex;gap:.8rem;align-items:center;padding:0;border:0}.avatar{display:block;width:44px;height:44px;flex:0 0 44px;margin:0;border-radius:50%;border:1px solid var(--rule)}.rail__name{font-size:.85rem;color:var(--ink);margin:0;line-height:1.2}.rail__role,.rail__copy{display:none}.menu{display:flex;align-items:center;gap:.35rem;margin:0 0 0 auto;padding:0;font-size:.95rem}.menu a{color:var(--ink);padding:.5rem .65rem}.menu a:hover,.menu a.is-current{background:transparent;color:var(--link)}.menu a.is-current::before{display:none}.menu summary{font-size:.9rem;color:var(--ink);padding:.5rem .65rem}.menu__group{position:relative}.menu__group details[open] ul{position:absolute;right:0;min-width:230px;background:var(--paper);border:1px solid var(--rule);padding:.6rem;box-shadow:0 12px 30px #0002}.rail__foot{border:0;padding:0}.theme{color:var(--ink);border-color:var(--rule);font-size:.8rem}.theme:hover{color:var(--link);border-color:var(--link)}.theme__dot{background:var(--link)}
.showcase-hero{position:relative;min-height:540px;display:grid;place-items:center;background:#26313c;text-align:center;color:#fff;overflow:hidden}.showcase-hero__photo{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center 45%;filter:brightness(.45)}.showcase-hero__content{position:relative;padding:4rem 1.5rem;max-width:1000px}.showcase-hero__content>p{font-size:1.15rem;font-weight:600;margin:0 0 1.5rem}.showcase-hero h1{font-size:clamp(2.8rem,5vw,5rem);letter-spacing:-.035em;line-height:1.15;margin:0 0 1.5rem}.showcase-hero__content>span{font-size:1rem;color:#eff0f3}.hero-actions{display:flex;justify-content:center;flex-wrap:wrap;gap:1rem;margin-top:2rem}.btn{border-radius:3px;font-size:.88rem;padding:.75rem 1.3rem;text-decoration:none}.btn--solid{background:var(--link);border-color:var(--link);color:#fff}.showcase-hero .btn{color:#fff}.showcase-hero .btn--solid{background:#a82c50;border-color:#a82c50}.showcase-hero .btn:hover{background:#fff;color:#25282c}.wrap .btn--solid,.section-actions .btn--solid,.contact-band .btn--solid{background:var(--link);border-color:var(--link);color:var(--paper)}.section-actions .btn{color:var(--ink);border-color:var(--rule)}.section-actions .btn--solid{color:var(--paper)}.btn:hover{opacity:.9}
.intro-section,.journey-section,.selected-section{padding:4rem var(--pad)}.intro-section{background:var(--surface);text-align:center}.intro-section h2,.journey-section>h2,.selected-section>h2{font-size:clamp(2rem,3.5vw,3rem);text-align:center;font-weight:600;margin-bottom:1rem}.intro-section>p{max-width:920px;margin:0 auto 3rem;color:var(--ink-2)}.intro-facts{display:grid;grid-template-columns:repeat(3,1fr);gap:2.5rem;max-width:1150px;margin:auto;text-align:left}.intro-facts>div{border-top:3px solid var(--link);padding-top:1.25rem}.intro-facts span{font-size:.7rem;letter-spacing:.1em;color:var(--link)}.intro-facts h3{font-size:1.15rem;margin:.5rem 0 .8rem}.intro-facts p{font-size:.9rem;color:var(--ink-2);margin:0}.section-subtitle{text-align:center;color:var(--ink-2);font-size:.95rem;margin:0 0 3rem}.journey{max-width:1050px;margin:auto}.journey article{display:grid;grid-template-columns:50px 240px 1fr;gap:2rem;position:relative;padding:1rem 0 3rem}.journey article:not(:last-child)::before{content:'';position:absolute;left:24px;top:40px;bottom:0;width:2px;background:var(--rule)}.journey-marker{width:50px;height:50px;border-radius:50%;display:grid;place-items:center;background:var(--link);color:var(--paper);font-size:.8rem;z-index:1}.journey-meta{font-size:.7rem;letter-spacing:.03em;color:var(--link);padding-top:.5rem}.journey-meta span{color:var(--ink-3);font-size:.78rem;letter-spacing:0}.journey-body{padding-top:.25rem}.journey-body h3{font-size:1.4rem;margin:0 0 .75rem}.journey-body p{font-size:.9rem;color:var(--ink-2);margin:0 0 .75rem}.journey-body a{font-size:.8rem;text-decoration:none}.selected-section{background:var(--surface)}.showcase-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1.75rem;max-width:1200px;margin:auto}.showcase-tile{display:block;text-decoration:none;color:var(--ink);background:var(--paper);border:1px solid var(--rule);transition:transform .2s,box-shadow .2s}.showcase-tile:hover{color:var(--link);transform:translateY(-4px);box-shadow:0 12px 30px #0001}.showcase-tile__image{height:280px;padding:1.5rem;background:#fff;overflow:hidden}.showcase-tile__image img{height:100%;width:100%;object-fit:contain}.showcase-tile--photo .showcase-tile__image{padding:0}.showcase-tile--photo img{object-fit:cover}.showcase-tile__body{padding:1.5rem 3rem 1.5rem 1.5rem;position:relative}.showcase-tile__body span{color:var(--ink-3);font-size:.75rem}.showcase-tile h3{font-size:1.25rem;margin:.3rem 0 0}.showcase-tile b{position:absolute;right:1.25rem;top:2rem;color:var(--link)}.section-actions{display:flex;justify-content:center;flex-wrap:wrap;gap:1rem;margin-top:2.5rem}.wrap{max-width:1400px;width:100%;padding:4rem var(--pad);margin:auto}.about{margin:0;align-items:center;gap:3rem}.portrait img{filter:none;border-radius:5px}.prose h2{font-size:2rem}.prose p{font-size:.95rem}.contact-band{padding:4rem 1.5rem;text-align:center;background:var(--surface)}.contact-band h2{font-size:2.3rem}.contact-band p{color:var(--ink-2);margin:1rem 0 1.5rem}.banner{background:var(--surface);color:var(--ink);text-align:center}.banner h1{color:var(--ink);font-size:clamp(2rem,4vw,3.5rem)}.banner .scale{margin:auto;height:3px;width:45px}.work{border-left:3px solid var(--link);padding:1.5rem;background:var(--surface)}.work h2{font-size:1.5rem;max-width:45ch}.work p,.ticks{font-size:.9rem}.foot{text-align:center;font-size:.8rem}.software-icons{list-style:none;padding:0;margin:1.25rem 0 1.5rem;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.6rem}.software-tile{display:flex;align-items:center;gap:.7rem;min-width:0;padding:.7rem;border:1px solid var(--rule);background:var(--paper);font-size:.73rem;line-height:1.4}.software-tile__icon{display:grid;place-items:center;flex:0 0 42px;width:42px;height:42px;background:#fff;border:1px solid #e2e6ea;border-radius:8px}.software-tile img{width:28px;height:28px;object-fit:contain}.software-tile>span:last-child{overflow-wrap:anywhere}#skills .skills{grid-template-columns:repeat(2,minmax(0,1fr));gap:2rem}#skills .skill{padding:1.5rem;border:1px solid var(--rule);background:var(--surface)}
@media(max-width:1100px) and (min-width:961px){.rail{gap:1rem;padding:1rem 2rem}.menu{font-size:.83rem}.menu a{padding:.5rem}.menu summary{font-size:.8rem}}
@media(max-width:960px){.topbar{display:flex;background:var(--paper);color:var(--ink);border-bottom:1px solid var(--rule)}.topbar__name{display:flex;align-items:center;gap:.6rem}.topbar__name::before{content:'';width:36px;height:36px;border-radius:50%;background:url('../img/opi1.png') center/cover}.burger span{background:var(--ink)}.rail{position:fixed;inset:68px auto 0 0;width:min(88vw,330px);flex-direction:column;align-items:stretch;padding:2rem;overflow:auto;gap:1.5rem}.menu{display:block;margin:0}.menu a{padding:.6rem 0}.menu summary{padding:.6rem 0}.menu__group details[open] ul{position:static;box-shadow:none;border:0;background:transparent}.rail__foot{margin-top:auto}.journey article{grid-template-columns:45px 1fr;gap:1.25rem}.journey-marker{width:45px;height:45px;grid-row:span 2}.journey article:not(:last-child)::before{left:22px}.journey-body{grid-column:2}.journey-meta{padding-top:0}.showcase-hero{min-height:460px}.intro-facts{gap:1.5rem}}
@media(max-width:650px){.intro-facts,.showcase-grid,#skills .skills{grid-template-columns:1fr}.intro-section,.journey-section,.selected-section{padding-top:3rem;padding-bottom:3rem}.showcase-hero{min-height:440px}.showcase-hero__content>p{font-size:.95rem}.showcase-hero__content>span{font-size:.8rem}.showcase-hero h1{font-size:2.8rem}.showcase-tile__image{height:230px}.about{gap:2rem}.portrait{max-width:200px}.journey article{gap:.75rem}.facts{grid-template-columns:1fr}.facts dd{margin-bottom:.8rem}.films,.gallery{grid-template-columns:1fr}.software-icons{grid-template-columns:1fr}.wrap{padding-top:3rem;padding-bottom:3rem}}
@media(prefers-reduced-motion:reduce){*{transition:none!important}}

/* Ordered header navigation with a separate utility group. */
@media(min-width:961px){.rail{gap:1.5rem}.menu{gap:.2rem}.menu>li>a{padding:.65rem .85rem;white-space:nowrap}.menu>.menu__group{margin-left:.75rem;padding-left:1rem;border-left:1px solid var(--rule)}.menu summary{padding:.65rem .5rem;list-style:none;display:flex;align-items:center;gap:.55rem;cursor:pointer}.menu summary::-webkit-details-marker{display:none}.menu summary::after{content:'⌄';font-size:1rem;line-height:1}.menu details[open]>summary::after{transform:rotate(180deg)}.rail__foot{padding-left:1.25rem;border-left:1px solid var(--rule)}.theme{min-height:38px;padding:.4rem .85rem}.menu a.is-current{font-weight:600;text-decoration:underline;text-underline-offset:7px;text-decoration-thickness:2px}}
@media(min-width:961px) and (max-width:1200px){.rail{gap:.75rem;padding-left:1.5rem;padding-right:1.5rem}.menu>li>a{padding:.65rem .5rem}.menu>.menu__group{margin-left:.25rem;padding-left:.6rem}.rail__foot{padding-left:.75rem}}

/* Dedicated resume page with a full document preview. */
.resume-header{text-align:center;padding:3rem 1.5rem 2rem}
.resume-header h1{font-size:clamp(2rem,4vw,3rem);margin:0 0 .5rem}
.resume-header p{color:var(--ink-2);font-size:.9rem;margin:0 0 1.75rem}
.resume-download{display:inline-flex;align-items:center;justify-content:center;gap:1rem;padding:.85rem 2rem;min-height:48px;border-radius:999px;background:#171717;color:#fff;font-family:var(--f-head);font-weight:600;font-size:.8rem;text-transform:uppercase;text-decoration:none}
.resume-download:hover{background:var(--link);color:var(--paper)}
.resume-open{display:block;width:fit-content;margin:1rem auto 0;font-size:.78rem}
.resume-preview{width:calc(100% - 3rem);max-width:1120px;margin:0 auto 4rem;background:#fff;border:1px solid var(--rule);box-shadow:0 12px 40px #0000000a}
.resume-preview object{display:block;width:100%;height:1250px;height:clamp(700px,145vh,1500px);border:0;background:#fff;color:#25282c}
.resume-fallback{padding:3rem;text-align:center}.resume-fallback h2{font-size:1.5rem;margin-bottom:1rem}.resume-fallback p{max-width:50ch;margin:0 auto 1.25rem}
[data-theme="dark"] .resume-download{background:var(--link);color:var(--paper)}
@media(max-width:650px){.resume-header{padding-top:2rem}.resume-preview{width:calc(100% - 1.5rem)}.resume-preview object{height:80vh;min-height:550px}.resume-fallback{padding:2rem 1rem}}
