/* Estilos propios de cada sección de la página */

/* HERO */
.hero{position:relative;scroll-margin-top:90px;min-height:100vh;padding-top:96px;padding-bottom:180px;display:grid;grid-template-columns:1.15fr .85fr;gap:48px;align-items:center}
.status-pill{display:inline-flex;align-items:center;gap:9px;padding:7px 14px;border:1px solid var(--line);border-radius:999px;background:var(--panel);font-family:var(--font-mono);font-size:11.5px;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);margin-bottom:26px}
.glow-pulse{width:8px;height:8px;border-radius:50%;background:var(--accent);box-shadow:0 0 10px var(--glow);animation:glowpulse 2.4s ease-in-out infinite}
.hero-hello{font-family:var(--font-mono);font-size:15px;letter-spacing:.04em;color:var(--accent);margin:0 0 8px}
.hero-name{font-family:var(--font-display);font-weight:700;font-size:clamp(38px,6.6vw,76px);line-height:1.02;letter-spacing:-.02em;margin:0}
.hero-type{font-family:var(--font-mono);font-size:clamp(12px,1.5vw,14.5px);letter-spacing:.02em;color:var(--muted);margin:18px 0 0;min-height:1.4em}
.hero-type .prompt{color:var(--accent)}
.term-cursor{color:var(--accent);font-weight:700;animation:blink 1.1s step-end infinite}
.hero-ctas{display:flex;flex-wrap:wrap;gap:14px;margin-top:34px}
.hero-photo{position:relative;justify-self:center}
.accent-frame{position:absolute;inset:-14px -14px 14px 14px;border:1.5px solid var(--accent);border-radius:18px;opacity:.55}
.deco-float{position:absolute;animation:floaty 5s ease-in-out infinite}
.deco-float--a{top:-26px;right:-22px;width:46px;height:46px;border-radius:10px;background:var(--accent2);opacity:.85}
.deco-float--b{bottom:24px;left:-30px;width:30px;height:30px;border-radius:7px;background:var(--accent);opacity:.7;animation-duration:4s;animation-delay:.6s}
.hero-photo-frame{position:relative;width:clamp(240px,32vw,360px);height:clamp(300px,40vw,440px);border-radius:18px;overflow:hidden;border:1px solid var(--line);box-shadow:0 30px 70px rgba(0,0,0,.35)}
.cover-img{width:100%;height:100%;object-fit:cover;object-position:center;display:block}
/* trenes en Virtual Coupling (assets/js/rail.js) */
.rail-canvas{position:absolute;left:50%;bottom:10px;width:100vw;height:156px;transform:translateX(-50%);pointer-events:none;background:linear-gradient(180deg,transparent 0,var(--bg) 16%,var(--bg) 88%,transparent 100%)}

/* ABOUT */
.about-grid{display:grid;grid-template-columns:.85fr 1.15fr;gap:48px;align-items:start}
.about-photo{position:relative}
.about-photo-frame{width:100%;height:360px;border-radius:16px;overflow:hidden;border:1px solid var(--line)}
.about-photo-frame .cover-img{object-position:center 28%}
.location-badge{position:absolute;bottom:-1px;left:16px;right:16px;transform:translateY(50%);background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:14px 18px;font-family:var(--font-mono);font-size:12.5px;color:var(--muted);box-shadow:0 16px 40px rgba(0,0,0,.25)}
.about-text{font-size:18px;line-height:1.75;margin:0 0 18px}
.about-text--muted{color:var(--muted);margin-bottom:24px}
.kicker{font-family:var(--font-mono);font-size:13.5px;line-height:1.7;color:var(--accent);border-left:2px solid var(--accent);padding-left:16px;margin:0 0 28px}

/* PORTFOLIO */
.portfolio-head{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:24px;margin-bottom:40px}
.projects-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:22px}
.github-banner{display:flex;align-items:center;justify-content:center;gap:11px;margin-top:22px;padding:20px;border-radius:16px;border:1px dashed var(--line);background:var(--panel);font-family:var(--font-mono);font-size:14px;color:var(--muted)}
.github-banner:hover{border-color:var(--accent);color:var(--text)}

/* RESUME */
.exp-list{display:flex;flex-direction:column;gap:18px;margin-bottom:64px}
.exp-item{display:grid;grid-template-columns:200px 1fr;gap:24px;padding:22px;border:1px solid var(--line);border-radius:14px;background:var(--panel)}
.exp-period{font-family:var(--font-mono);font-size:12.5px;color:var(--accent);padding-top:3px}
.exp-role{font-family:var(--font-display);font-weight:600;font-size:18px;margin:0 0 3px}
.exp-org{font-size:13px;font-weight:600;color:var(--muted);margin:0 0 10px}
.exp-desc{font-size:14.5px;line-height:1.65;color:var(--muted);margin:0 0 12px}
.exp-block{margin:0 0 12px}
.exp-block-title{font-size:13px;font-weight:600;color:var(--text);margin:0 0 4px}
.exp-block-list{margin:0;padding-left:18px;font-size:14.5px;line-height:1.6;color:var(--muted)}
.resume-cols{display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:48px}
.stack{display:flex;flex-direction:column;gap:16px}

/* CONTACT */
.section--contact{padding-bottom:64px}
.contact-grid{display:grid;grid-template-columns:1.1fr .9fr;gap:48px;align-items:start}
.contact-form{display:flex;flex-direction:column;gap:16px}
.contact-form .btn{display:block;align-self:flex-start;padding:14px 26px;border-radius:11px}
.contact-form .btn[disabled]{opacity:.7;cursor:not-allowed;transform:none}
.socials{display:flex;flex-direction:column;gap:14px}
.socials-label{font-family:var(--font-mono);font-size:12px;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);margin:0 0 2px}
.social-link{display:flex;align-items:center;gap:14px;padding:16px 18px;border-radius:13px;border:1px solid var(--line);background:var(--panel)}
.social-link:hover{border-color:var(--accent);transform:translateX(4px)}
.social-link svg{color:var(--accent)}
.social-name{display:block;font-weight:600;font-size:14.5px}
.social-handle{font-family:var(--font-mono);font-size:12px;color:var(--muted)}

/* FOOTER */
.footer{position:relative;z-index:1;border-top:1px solid var(--line);background:var(--panel);margin-top:40px}
.footer-inner{max-width:1140px;margin:0 auto;padding:30px clamp(20px,5vw,40px);display:flex;flex-wrap:wrap;gap:16px;justify-content:space-between;align-items:center}
.footer-text{font-size:13.5px;color:var(--muted)}
.konami-hint{font-family:var(--font-mono);font-size:11.5px;color:var(--muted);opacity:.7}
