/* PROPUESTA 2.0 — Capa visual adicional sobre la web original.
   No reemplaza ninguna información curricular. */
:root { --motion-ease: cubic-bezier(.16,1,.3,1); --motion-coral: #e85a3e; }
html { scroll-padding-top: 95px; }
body { background: #0a0a0a; }
.hero { isolation:isolate; --photo-x:0px; --photo-y:0px; }
.hero::before { animation: grid-drift 28s linear infinite; opacity:.74; }
.hero::after { content:"";position:absolute;inset:-10%;pointer-events:none;z-index:0;
 background:radial-gradient(ellipse 38% 38% at 76% 45%,rgba(232,90,62,.17),transparent 85%);
 animation:ambient-light 8s ease-in-out infinite alternate; }
.hero-content {z-index:1}
.hero h1 { line-height: .95; }
.hero h1 .hero-primary {display:block;}
.hero h1 .hero-primary,.hero h1 .line-coral,.hero h1 .line-cream,.hero h1 .line-outline {
 display:block;transform-origin:left center;animation:hero-type 1.05s var(--motion-ease) both;will-change:transform,opacity;
}
.hero h1 .hero-primary {animation-delay:.12s}
.hero h1 .line-coral {animation-delay:.24s}
.hero h1 .line-cream {animation-delay:.36s}
.hero h1 .line-outline:nth-of-type(4) {animation-delay:.48s}
.hero h1 .line-outline:nth-of-type(5) {animation-delay:.60s}
.hero-kicker {display:flex;align-items:center;gap:11px;margin:0 0 25px;
 font:500 .72rem/1.45 'JetBrains Mono',monospace;letter-spacing:.11em;color:rgba(245,240,230,.74);
 text-transform:uppercase;animation:rise-in .9s .06s both var(--motion-ease);}
.hero-kicker-dot {width:9px;height:9px;flex:none;border-radius:100%;background:var(--motion-coral);animation:dot-ring 2.6s ease-out infinite;}
.hero-desc {animation:rise-in .9s .71s both var(--motion-ease)}
.hero-cta {animation:rise-in .9s .83s both var(--motion-ease)}
.hero-bottom {animation:rise-in .9s .95s both var(--motion-ease)}
.hero-photo {animation:portrait-reveal 1.3s .12s both var(--motion-ease);
 box-shadow:0 30px 85px rgba(0,0,0,.48),0 0 0 1px rgba(232,90,62,.16);}
.hero-photo::after {content:"";position:absolute;inset:0;z-index:3;pointer-events:none;
 background:linear-gradient(111deg,transparent 8%,rgba(255,255,255,.1) 40%,transparent 75%);
 animation:portrait-glint 6.8s 1.7s ease-in-out infinite;}
.hero .hero-photo .hero-img {transform:translate3d(var(--photo-x),var(--photo-y),0) scale(1.04);
 transition:transform .28s ease-out,filter .5s ease;}
.hero .hero-photo:hover .hero-img {transform:translate3d(var(--photo-x),var(--photo-y),0) scale(1.09);filter:grayscale(25%) contrast(1.06)}
.hero-scroll {display:flex;align-items:center;gap:12px;margin-left:auto;white-space:nowrap;
 font:500 .66rem/1.5 'JetBrains Mono',monospace;letter-spacing:.09em;text-transform:uppercase;
 color:rgba(245,240,230,.6)}
.hero-scroll span {font-size:1.6rem;color:var(--motion-coral);animation:down-cue 1.7s ease-in-out infinite}
.hero-cta .btn-coral {position:relative;overflow:hidden;isolation:isolate}
.hero-cta .btn-coral::before {content:"";position:absolute;inset:0;width:60%;pointer-events:none;
 background:linear-gradient(90deg,transparent,rgba(255,255,255,.27),transparent);
 animation:button-glint 5.5s 1.9s ease-in-out infinite;}
.motion-ticker {overflow:hidden;width:100%;padding:17px 0;background:var(--motion-coral);color:#0a0a0a;
 border-top:1px solid rgba(0,0,0,.2);border-bottom:1px solid rgba(0,0,0,.2)}
.motion-ticker-track {display:flex;width:max-content;gap:22px;align-items:center;white-space:nowrap;animation:marquee-move 35s linear infinite}
.motion-ticker-track span {font:700 .77rem/1.2 'JetBrains Mono',monospace;letter-spacing:.13em}
.motion-ticker-track i {font-style:normal;opacity:.65}
.motion-ticker:hover .motion-ticker-track {animation-play-state:paused}
/* CSS keyframes take priority over the existing site's inline reveal styles. */
.motion-reveal.motion-visible { animation:section-reveal .95s var(--motion-ease) both;
 animation-delay:var(--reveal-delay,0ms); }
.expertise-card.motion-visible:hover, .edu-card.motion-visible:hover, .achievement.motion-visible:hover,
.blog-card.motion-visible:hover {transform:translateY(-8px)!important;transition:transform .42s var(--motion-ease),background .35s,border-color .35s!important}
.expertise-card {overflow:hidden}
.expertise-card::after {content:"";position:absolute;inset:0;pointer-events:none;
 background:radial-gradient(circle at 87% 16%,rgba(232,90,62,.14),transparent 58%);opacity:0;transition:opacity .5s}
.expertise-card:hover::after {opacity:1}
.timeline-item {position:relative}
.timeline-item::before {content:"";position:absolute;top:0;left:0;width:0;height:2px;background:var(--motion-coral);
 transition:width 1.4s var(--motion-ease)}
.timeline-item.motion-visible::before {width:100%}
a:focus-visible,button:focus-visible,input:focus-visible,textarea:focus-visible {outline:3px solid var(--motion-coral);outline-offset:4px}
@keyframes grid-drift {to{background-position:60px 60px}}
@keyframes ambient-light {from{transform:translateX(-3%) scale(.96);opacity:.45}to{transform:translateX(3%) scale(1.06);opacity:1}}
@keyframes hero-type {from{opacity:0;filter:blur(6px);transform:translate3d(0,46px,0) skewY(2deg)}to{opacity:1;filter:blur(0);transform:translate3d(0,0,0) skewY(0)}}
@keyframes rise-in {from{opacity:0;transform:translate3d(0,27px,0)}to{opacity:1;transform:translate3d(0,0,0)}}
@keyframes portrait-reveal {from{opacity:0;filter:blur(9px);transform:translate3d(-48px,15px,0) scale(.96)}to{opacity:1;filter:blur(0);transform:translate3d(0,0,0) scale(1)}}
@keyframes portrait-glint {0%,53%,100%{opacity:0;transform:translateX(-150%)}67%{opacity:.85}83%{opacity:0;transform:translateX(165%)}}
@keyframes dot-ring {0%{box-shadow:0 0 0 0 rgba(232,90,62,.46)}72%,100%{box-shadow:0 0 0 11px rgba(232,90,62,0)}}
@keyframes down-cue {0%,100%{transform:translateY(-3px)}50%{transform:translateY(7px)}}
@keyframes button-glint {0%,62%,100%{opacity:0;transform:translateX(-150%) skewX(-18deg)}69%{opacity:1}83%{opacity:0;transform:translateX(240%) skewX(-18deg)}}
@keyframes marquee-move {to{transform:translateX(-50%)}}
@keyframes section-reveal {from{opacity:0;filter:blur(3px);transform:translate3d(0,40px,0)}to{opacity:1;filter:blur(0);transform:translate3d(0,0,0)}}
@media(max-width:1024px){.hero-scroll{display:none}}
@media(max-width:768px){.hero-kicker{font-size:.6rem;line-height:1.7;margin-bottom:19px}.hero h1{font-size:clamp(1.55rem,6.7vw,3rem);overflow-wrap:anywhere}.motion-ticker{padding:12px 0}.motion-ticker-track{gap:17px;animation-duration:26s}.motion-ticker-track span{font-size:.67rem}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.hero::before,.hero::after,.hero-kicker,.hero-kicker-dot,.hero h1 .hero-primary,.hero h1 .line-coral,.hero h1 .line-cream,.hero h1 .line-outline,.hero-desc,.hero-cta,.hero-bottom,.hero-photo,.hero-photo::after,.hero-scroll span,.hero-cta .btn-coral::before,.motion-ticker-track,.motion-reveal.motion-visible{animation:none!important}
 .hero .hero-photo .hero-img{transform:none!important;transition:none!important}
 .motion-reveal,.expertise-card,.timeline-item,.achievement,.edu-card,.spec-item,.tool-card,.blog-card{opacity:1!important;transform:none!important;transition:none!important}}
