:root{--faint: #99968f;--line-2: rgba(236,232,225,.24)}html.light{--faint: #666158;--line-2: rgba(23,20,15,.24)}[hidden]{display:none!important}html{scrollbar-gutter:stable;scroll-padding-top:6rem}html.fine,html.fine *{cursor:auto!important}a,button{-webkit-tap-highlight-color:transparent}a,button,input,textarea{touch-action:manipulation}button,a.btn{cursor:pointer}:focus-visible{outline:2px solid var(--bone);outline-offset:5px}#loader{display:none!important}html.fx #hero .anim{opacity:1}.hero-kicker{font:500 .74rem/1.6 var(--font-mono);letter-spacing:.06em;text-transform:uppercase;color:var(--ash);margin-bottom:1.5rem}.hero-sub{max-width:43ch;font-size:clamp(1rem,1.5vw,1.2rem)}.hero-actions{gap:.6rem}.hero-contact-link{font:500 .76rem/1.3 var(--font-mono);padding:.9rem .45rem;text-decoration:underline;text-underline-offset:.3em}.btn{min-height:46px}.nav-theme,#nav-burger{min-width:44px;min-height:44px}.nav-cta{display:inline-flex;align-items:center;min-height:44px}#nav .nav-bg{inset:.35rem var(--pad)}.menu-locked,.menu-locked body,.modal-locked,.modal-locked body{overflow:hidden!important}#nav-burger{justify-content:center}#nav.menu-open #nav-burger span:nth-child(1){transform:translateY(6.5px) rotate(45deg)}#nav.menu-open #nav-burger span:nth-child(2){opacity:0}#nav.menu-open #nav-burger span:nth-child(3){transform:translateY(-6.5px) rotate(-45deg)}#nav-overlay{overflow:auto;overscroll-behavior:contain;padding-top:6rem;padding-bottom:3rem}.panel-title{overflow-wrap:anywhere}.panel-title a{color:inherit}.domain-ending{font-size:.6em;letter-spacing:-.035em}.panel-visual{min-width:0}.panel-visual:focus-visible{outline-offset:-8px}.panel-info{min-width:0}.phone-mockup{height:auto}.portrait-img{height:100%;object-fit:cover}#work{padding-top:clamp(3rem,7vw,6rem)}#about,#skills{padding-block:clamp(3rem,7vw,6rem)}.cap-desc,.cap-evidence-list,.about-body{line-height:1.75}.tl-place{max-width:48ch}.tl-tags{display:none}.mono,.tag,.cap-tag,.panel-tag{font-size:max(.75rem,12px)}.grain{animation:none;opacity:.025}.orb-2,.orb-3{display:none}.orb-1{animation:none;opacity:.3}.atmos{animation:none}.now-panel{-webkit-backdrop-filter:none;backdrop-filter:none;box-shadow:none}.now-commit-msg{overflow-wrap:anywhere}.now-title{font-size:clamp(1.1rem,2vw,1.5rem)}.cs-title,.cs-next-title{overflow-wrap:anywhere}.cs-title{font-size:clamp(2.4rem,8vw,6.5rem)}.cs-next-card{width:100%;color:var(--bone);text-align:left;font-family:inherit}.cs-scroller{overscroll-behavior:contain}.cs-gallery-grid{grid-template-columns:1fr}.cs-hero-mockup,.cs-gallery-media img{height:auto;object-fit:contain}.cs-close-btn,.cs-back-btn{min-height:44px}.cs-hero-actions{flex-wrap:wrap}#case-study-modal[inert]{visibility:hidden}.contact-grid>*{min-width:0}.form{min-width:0}.f-input,.f-textarea{border-color:var(--line-2);color:var(--bone);font-size:1rem;width:100%}.f-input::placeholder,.f-textarea::placeholder{color:var(--ash);opacity:1}.f-input[aria-invalid=true],.f-textarea[aria-invalid=true]{border-color:#d07777}.field-error{min-height:1.2em;display:block;font-size:.8rem;color:#ffb0a9;margin-top:.35rem}html.light .field-error{color:#982820}.form-helper{display:flex;justify-content:space-between;gap:1rem;color:var(--ash);font-size:.75rem;margin-top:.5rem}.form-helper span:last-child{white-space:nowrap}.contact-mode,.privacy-note{color:var(--ash);font-size:.8rem;line-height:1.7;margin-top:.9rem}.privacy-note a{text-decoration:underline;text-underline-offset:.25em}.contact-alternatives{display:flex;flex-wrap:wrap;gap:.75rem;align-items:center;margin-top:1rem}.contact-alternatives a,.contact-alternatives button{font:500 .78rem/1.4 var(--font-mono);color:var(--bone);border:1px solid var(--line-2);background:none;border-radius:100px;padding:.75rem 1rem;min-height:44px}#form-ok{margin-top:1rem}#form-ok .ok-t{font-size:1.2rem}#form-ok .ok-s{font-size:.85rem;line-height:1.7}#form-ok[data-error] .ok-t{color:#ffb0a9}html.light #form-ok[data-error] .ok-t{color:#982820}#form-ok:not(.show){display:none}.site-tools{display:flex;flex-wrap:wrap;gap:.25rem 1.2rem;padding-block:1.5rem;border-top:1px solid var(--line)}.site-tools a,.site-tools button{font:400 .75rem/1.5 var(--font-mono);color:var(--ash);border:0;background:none;padding:.55rem 0;min-height:44px}.site-tools a:hover,.site-tools button:hover{color:var(--bone)}.site-tools [href="#hero"]{margin-left:auto}.preferences-dialog{position:fixed;inset:0;margin:auto;width:min(520px,calc(100vw - 2rem));max-height:calc(100dvh - 2rem);overflow:auto;border:1px solid var(--line-2);border-radius:20px;padding:2.5rem 2rem 2rem;background:var(--ink-2);color:var(--bone);box-shadow:0 24px 100px #0005}.preferences-dialog::backdrop{background:#0008;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px)}.preferences-dialog h2{font:700 clamp(1.8rem,5vw,2.5rem)/1.1 var(--font-display);letter-spacing:-.04em;margin:.75rem 0 1rem}.preferences-dialog p{color:var(--ash);font-size:.9rem;line-height:1.7}.dialog-close{position:absolute;top:.5rem;right:.5rem;width:44px;height:44px;background:none;color:var(--bone);border:0;font-size:1.8rem}.preference-option{display:flex;align-items:center;gap:.75rem;padding:1.1rem 0;font-size:.95rem}.preference-option input{width:20px;height:20px;accent-color:var(--bone)}.preferences-dialog .preference-note{font-size:.8rem;margin:0 0 1.5rem}.ui-toast{position:fixed;z-index:100000;bottom:1.5rem;left:50%;transform:translate(-50%,16px);opacity:0;pointer-events:none;background:var(--bone);color:var(--ink);padding:.85rem 1.2rem;border-radius:12px;width:max-content;max-width:calc(100vw - 2rem);font-size:.9rem;transition:opacity .2s,transform .2s}.ui-toast.show{opacity:1;transform:translate(-50%)}@media(max-width:960px){.panel{position:relative;min-height:0}.panel-inner{min-width:0}.panel-info{padding-block:1.5rem}.panel-visual{min-height:300px}.panel-title{font-size:clamp(2.2rem,7vw,4rem)}}@media(max-width:680px){#hero{min-height:min(780px,100svh);padding-top:11rem}.hero-top{top:6rem;gap:1rem}.hero-top .mono{font-size:.62rem}.hero-kicker{font-size:.65rem;margin-bottom:1rem}.hero-name .hero-line>span{font-size:clamp(3rem,18vw,6rem)}.hero-meta{gap:1.25rem;margin-top:1.5rem;padding-top:1.25rem}.hero-actions{width:100%}.hero-actions .btn{font-size:.7rem;padding:.85rem 1rem}.hero-contact-link{padding-left:.4rem}.panel-inner{display:flex;flex-direction:column;gap:1rem;padding-block:1.4rem}.panel-info{order:0;width:100%}.panel-visual{order:1;width:100%;min-height:300px;max-height:420px;border-radius:20px;border:1px solid var(--line);background:var(--ink-2)}.panel-visual img{max-height:345px;width:auto;margin:auto}.panel-links{flex-wrap:wrap;gap:.5rem}.now-panel{padding:1.15rem}.sec-head{margin-bottom:2rem}.site-tools [href="#hero"]{margin-left:0}.cs-title{font-size:clamp(1.6rem,8.3vw,2.6rem)}.cs-hero-actions .btn{padding:.8rem 1rem;font-size:.68rem}.cs-meta-grid,.cs-compare-grid,.f-row{grid-template-columns:1fr}.foot-word{font-size:24vw}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;animation:none!important;transition:none!important}.spot{display:none}}@media(forced-colors:active){.atmos,.grain,.orb,.spot{display:none}button,.btn,.f-input,.f-textarea{border:1px solid ButtonText}}#egg{visibility:hidden;opacity:0}#egg.show{visibility:visible;opacity:1}.panel-grid,.panel-grid>*{min-width:0}@media(max-width:680px){.sec-head{flex-wrap:wrap;gap:.8rem}.sec-head .sec-title{flex-basis:100%;font-size:2rem}.panel-grid{display:flex;flex-direction:column;gap:1rem;padding-block:1.4rem}.panel.flip .panel-visual{order:1}.bento-card-title,.bento-desc,.cs-top-name{overflow-wrap:anywhere}}.cap-grid,.capabilities-grid,.cap-card{min-width:0}.cap-tag,.cap-evidence-list,.cap-desc{overflow-wrap:anywhere}@media(max-width:680px){.cap-grid,.capabilities-grid{grid-template-columns:minmax(0,1fr)}.contact-head{font-size:clamp(2rem,9vw,3rem)}}.field-hints{display:flex;justify-content:space-between;gap:1rem;font-size:.75rem;color:var(--ash);margin-top:.5rem}.field-hints span:last-child{white-space:nowrap}@media(max-width:380px){.nav-cta{display:none}.nav-logo{font-size:.95rem}.hero-top .hero-copyright{max-width:125px}}.cap-head{flex-wrap:wrap}.cap-num-title,.cs-top-title{min-width:0}.cap-badge{max-width:100%;white-space:normal}@media(max-width:680px){.cs-topbar{gap:.5rem;padding:.65rem 1rem}.cs-topbar>button{flex-shrink:0;padding:.55rem .75rem}.cs-top-title{flex:1;justify-content:center}.cs-top-title>span:not(#cs-top-name){display:none}#cs-top-name{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:.65rem}.cs-back-btn span{font-size:0}.cs-back-btn span:after{content:"Volver";font-size:.68rem}}#foot-word{color:var(--faint);opacity:1}html.light{--ash:#59554e}html.light .bento-subtag{color:#075985}html.light .bento-btn-link{color:var(--bone)}html.light .bento-btn-link:hover{color:#075985}html.light .status-active,html.light .status-completed{color:#065f46}html.light .status-maintained{color:#075985}html.light .status-lab{color:#6b21a8}html.light .status-archive{color:#475569}#nav .nav-bg{inset:.35rem max(.5rem,calc(var(--pad) - .8rem));pointer-events:none}.nav-link{display:inline-flex;align-items:center;min-height:44px}.nav-link:focus-visible{border-radius:6px}.form-eyebrow{margin-bottom:1.25rem;color:var(--ash)}.draft-actions{display:flex;flex-wrap:wrap;align-items:center;gap:.65rem;margin-top:1rem}.draft-actions a,.draft-actions button{display:inline-flex;align-items:center;justify-content:center;min-height:44px;max-width:100%;padding:.7rem 1rem;border:1px solid var(--line-2);border-radius:999px;background:transparent;color:var(--bone);font:500 .76rem/1.5 var(--font-mono);text-align:center;overflow-wrap:anywhere;cursor:pointer;transition:color .2s,border-color .2s,background-color .2s}.draft-actions a:focus-visible,.draft-actions button:focus-visible{outline-offset:3px}.contact-privacy{margin-top:1rem;color:var(--ash);font-size:.8rem;line-height:1.75;max-width:62ch}.contact-privacy a{color:inherit;text-decoration:underline;text-underline-offset:.25em}.f-field:focus-within .f-label{color:var(--bone)}.f-label{transition:color .2s}.f-input,.f-textarea{scroll-margin-top:1.5rem}.f-textarea{line-height:1.65}#message-count{font-variant-numeric:tabular-nums}.f-submit:disabled{opacity:.6;cursor:wait}.preferences-dialog{overscroll-behavior:contain}.foot-col a,.site-tools a,.site-tools button{text-underline-offset:.3em;text-decoration-thickness:1px}.foot-col a:focus-visible,.site-tools a:focus-visible,.site-tools button:focus-visible{color:var(--bone);border-radius:3px}@media(hover:hover){.draft-actions a:hover,.draft-actions button:hover{border-color:var(--bone);background:var(--ink-2)}.foot-col a:hover,.site-tools a:hover,.site-tools button:hover{text-decoration:underline}}@media(max-width:680px){.foot-col a{display:flex;align-items:center;min-height:44px;margin-bottom:.1rem}.foot-col a[href^="mailto:"]{overflow-wrap:anywhere}.field-hints{flex-wrap:wrap;gap:.3rem .8rem}.draft-actions{gap:.6rem}.draft-actions a,.draft-actions button{padding-inline:.85rem}}@media(prefers-reduced-motion:reduce){.draft-actions a,.draft-actions button,.f-label{transition:none}}#skills .cap-card{--cap-muted:#bdb8af;--cap-accent:#8fbea5;background:#19191c;border-color:var(--line-2);border-top:2px solid var(--cap-accent);opacity:1;box-shadow:0 8px 24px #0002;transition:border-color .2s,box-shadow .2s}#skills .cap-card:nth-child(2){--cap-accent:#8fb9d2}#skills .cap-card:nth-child(3){--cap-accent:#b5a3d2}#skills .cap-card:nth-child(4){--cap-accent:#d2b28b}#skills .cap-card:hover,#skills .cap-card:focus-within{background:#1d1d21;border-color:var(--cap-accent);transform:none}#skills .cap-lead,#skills .cap-num,#skills .cap-sec-label,#skills .cap-badge,#skills .cap-tag,#skills .cap-stat-desc{color:var(--cap-muted)}#skills .cap-title,#skills .cap-evidence-item,#skills .cap-stat-val{color:var(--bone)}#skills .cap-stat-box{background:#222226;border-color:var(--line-2);flex-wrap:wrap}#skills .cap-badge-dot{background:var(--cap-accent);box-shadow:none}#skills .cap-tag{background:#ffffff06;border-color:var(--line-2)}#skills .cap-evidence-link{text-decoration:underline;text-underline-offset:.2em;border-bottom:0}html.light #skills .cap-card{--cap-muted:#514b43;--cap-accent:#376e53;background:#faf7f1}html.light #skills .cap-card:nth-child(2){--cap-accent:#316886}html.light #skills .cap-card:nth-child(3){--cap-accent:#70568f}html.light #skills .cap-card:nth-child(4){--cap-accent:#896433}html.light #skills .cap-card:hover,html.light #skills .cap-card:focus-within{background:#fffdf9}html.light #skills .cap-stat-box{background:#eee8de}html.light #skills .cap-tag{background:#17140f04}.contact-address{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem .85rem;margin-bottom:.65rem}.contact-address>a{overflow-wrap:anywhere;font-size:clamp(.9rem,1.4vw,1.15rem);color:var(--bone)}.copy-email-inline{display:inline-flex;align-items:center;min-height:44px;padding:.35rem .65rem;color:var(--ash);background:transparent;border:1px solid var(--line-2);border-radius:8px;font:500 .72rem/1.4 var(--font-mono)}.copy-email-inline:hover,.copy-email-inline:focus-visible{color:var(--bone);border-color:var(--bone)}.draft-actions:not(:has(a:not([hidden]))){display:none}.bento-status-badge{flex-shrink:1}.bento-top{flex-wrap:wrap}@media(max-width:680px){#skills .cap-stat-desc{text-align:left}.contact-address{align-items:flex-start}}@media(forced-colors:active){#skills .cap-card{border:1px solid CanvasText}}@media(min-width:981px){#bento-projects-grid>.bento-card.bento-col-2{grid-column:span 1}}.panel-metrics{align-items:stretch;gap:.55rem;margin-block:1.3rem 1.4rem}.panel-metrics .metric-pill{flex:1 1 120px;min-width:0;display:flex;flex-direction:column;align-items:flex-start;justify-content:center;gap:.3rem;padding:.75rem .85rem;border-radius:14px;border-color:var(--line-2);letter-spacing:0;line-height:1.4;transition:background-color .2s,border-color .2s}.panel-metrics .metric-pill:hover{transform:none}.panel-metrics .metric-val{font-size:.75rem}.panel-metrics .metric-lbl{color:var(--ash);font-size:.7rem;overflow-wrap:anywhere}.panel-info .panel-desc{line-height:1.8}.panel-info .panel-tags{gap:.45rem;margin-bottom:1.5rem}.panel-info .panel-tag{border-color:var(--line-2);padding:.35rem .75rem}.panel-info .panel-links{align-items:stretch;gap:.65rem}.panel-links .btn{justify-content:center}#skills .cap-card,#bento-projects-grid .bento-card{border-radius:22px}#skills .cap-stat-box{border-radius:14px;gap:.75rem}#skills .cap-evidence-list{line-height:1.8}#bento-projects-grid .bento-card{will-change:auto}#bento-projects-grid .bento-card:hover{transform:none}#bento-projects-grid .bento-top{gap:.6rem;align-items:flex-start}#bento-projects-grid .bento-meta-left{flex-wrap:wrap;min-width:0}#bento-projects-grid .bento-card-title{font-size:1.3rem;line-height:1.3;text-wrap:balance}#bento-projects-grid .bento-desc{font-size:.9rem;line-height:1.75}#bento-projects-grid .bento-tag{border-radius:8px;padding:.3rem .55rem}#bento-projects-grid .bento-actions a{min-height:44px;display:inline-flex;align-items:center;border-radius:10px}#bento-projects-grid .bento-actions a:focus-visible{outline-offset:3px}.contact-address{padding-block:1rem;margin-bottom:0;border-bottom:1px solid var(--line)}.copy-email-inline{border-radius:999px;padding:.5rem .9rem;justify-content:center}#contact .f-input:focus-visible,#contact .f-textarea:focus-visible{outline:2px solid var(--bone);outline-offset:5px;border-radius:4px}#contact .f-textarea{resize:vertical;min-height:140px}.pp-visual:has(.project-phone),.cs-hero-card:has(.project-phone){border-radius:30px}.pp-card,.pp-next{border-radius:20px}.pp-toc a{display:inline-flex;align-items:center;min-height:44px}@media(max-width:680px){.panel-metrics .metric-pill{flex-basis:110px;padding:.7rem .8rem}.panel-links .btn{flex:1 1 125px;padding-inline:1rem}#bento-projects-grid .bento-card{padding:1.4rem}.contact-address{gap:.65rem}}@media(prefers-reduced-motion:reduce){.panel-metrics .metric-pill{transition:none}}
