/* Impeccable + Awesome UX: authored motion, useful hierarchy, local typography. */
@font-face { font-family: 'Sora'; src: url('../assets/fonts/sora-latin.woff2') format('woff2'); font-weight: 400 700; font-style: normal; font-display: swap; }
@font-face { font-family: 'Instrument Serif'; src: url('../assets/fonts/instrument-serif-latin-italic.woff2') format('woff2'); font-weight: 400; font-style: italic; font-display: swap; }
:root { --font-body: 'Sora',sans-serif; --font-signature: 'Instrument Serif',Georgia,serif; --motion-arrive: cubic-bezier(.16,1,.3,1); }
body { font-family: var(--font-body); }
button, input, select, textarea { font-family: inherit; }
h1, h2, h3 { letter-spacing: -.04em; }
p { line-height: 1.75; }
::selection { background: #d5ef8b; color: #19372e; }
input, textarea { caret-color: var(--blue); }
a { text-underline-offset: .25em; text-decoration-thickness: 1px; }
* { scrollbar-color: var(--line) var(--bg); scrollbar-width: thin; }
button:focus-visible, .capture-button:focus-visible { outline: 3px solid var(--blue); outline-offset: 4px; }
.personal-hero { border-radius: 16px; box-shadow: none; }
.personal-hero::after { display: none; }
.personal-hero .eyebrow { font-size: 11px; letter-spacing: .03em; }
.personal-hero h1 { font-size: clamp(72px,7vw,104px); font-weight: 600; letter-spacing: -.04em; line-height: 1.02; }
.personal-hero h1 > span { font-family: var(--font-signature); font-size: 1.2em; letter-spacing: -.025em; }
.personal-hero .identity-statement { font-size: clamp(20px,1.8vw,26px); line-height: 1.5; }
.personal-hero .intro { font-size: 15px; line-height: 1.85; max-width: 55ch; }
.personal-hero .button:hover { box-shadow: none; }
.personal-hero .identity-meta { font-size: 11px; }
.identity-portrait img { border-radius: 12px; }
.portrait-orbit { opacity: .36; transition: transform 180ms ease-out; transform: translate(var(--studio-align-x,0px),var(--studio-align-y,0px)); }
.portrait-orbit .orbit-trace { animation: none!important; }
.showcase-ready .showcase-reveal { opacity: 1; transform: none; transition: none; }
.showcase-ready .identity-copy { animation: calibration-copy 720ms var(--motion-arrive) both; }
.showcase-ready .identity-portrait { animation: calibration-portrait 640ms var(--motion-arrive) 80ms both; }
.showcase-ready .identity-portrait .orbit-trace { animation: calibration-trace 720ms var(--motion-arrive) both!important; }
@keyframes calibration-copy { from { clip-path: inset(0 0 100% 0); opacity: .6; } to { clip-path: inset(0); opacity: 1; } }
@keyframes calibration-portrait { from { opacity: .4; transform: translateX(12px); } to { opacity: 1; transform: none; } }
@keyframes calibration-trace { from { stroke-dashoffset: 350; } to { stroke-dashoffset: 0; } }
#proyectos .heading h2 { font-size: clamp(36px,4.5vw,58px); font-weight: 500; }
#proyectos .feature { border-radius: 12px; box-shadow: none; }
#proyectos .feature h3 { font-size: clamp(32px,3.4vw,44px); font-weight: 600; }
#proyectos .project h3, #proyectos .project.editorial h3 { font-size: 29px; font-weight: 500; line-height: 1.25; }
#proyectos .feature > .feature-capture, #proyectos .project > .capture-button { box-shadow: none; }
#proyectos .project.editorial { border-radius: 10px; }
#proyectos .project.editorial .editorial-intro > span:first-child { font-family: var(--font-signature); }
.capture-button { perspective: 900px; }
.capture-button img { transform-origin: center; transition: transform 220ms var(--motion-arrive); }
.capture-button.preview-pointer-active img { transform: rotateX(var(--preview-rotate-x,0deg)) rotateY(var(--preview-rotate-y,0deg)) scale(1.015); }
.project-filters { position: relative; isolation: isolate; }
.filter-indicator { position: absolute; inset: 0 auto auto 0; z-index: -1; width: 1px; background: var(--ink); transform-origin: left center; pointer-events: none; transition: transform 220ms var(--motion-arrive); }
.filter-motion-ready button, .filter-motion-ready button[aria-pressed=true] { background: transparent; }
.filter-motion-ready button[aria-pressed=true] { border-color: transparent; }
.filter-motion-ready button:hover:not([aria-pressed=true]) { background: transparent; border-color: var(--blue); }
.project-filters button { border-radius: 6px; font-size: 13px; }
.tool { border-radius: 8px; box-shadow: none; }
.tool { display: grid; grid-template-columns: 32px minmax(0,1fr); align-content: start; column-gap: 12px; }
.tool::after { display: none; }
.tool-icon { grid-column: 1; grid-row: 1; width: 28px; height: 28px; margin: 0; border: 0; background: transparent; padding: 0; justify-content: start; }
.tool h3 { grid-column: 2; grid-row: 1; font-size: 20px; font-weight: 500; align-self: center; }
.tool > p, .tool > ul, .tool > a { grid-column: 1/-1; }
.tool .tool-purpose { font-size: 14px; }
.tool-evidence { display: inline-flex; align-items: center; gap: 8px; min-height: 44px; font-size: 12px; margin-top: 16px; width: fit-content; }
.tool-evidence svg { width: 13px; height: 13px; flex: none; }
#tecnologias .stack-carousel { opacity: .75; margin-top: 40px; }
.academic, .contact-form { border-left-width: 1px; border-top-width: 1px; box-shadow: none; }
.about .personal-note { border-left-width: 1px; }
.about .personal-note p { font-family: var(--font-signature); font-size: 30px; line-height: 1.4; }
.contact-intro h2 { font-size: clamp(38px,4vw,54px); font-weight: 500; }
.preview-dialog.shared-preview[open]:not(.closing) { animation: none; }
.preview-dialog { font-family: var(--font-body); }
@media (max-width:1100px) {
  .nav { gap: 14px; }
  .nav #primary-nav { gap: 18px; }
  .personal-hero h1 { font-size: clamp(60px,7.8vw,88px); }
}
@media (max-width:900px) {
  .personal-hero h1 { font-size: clamp(54px,7.4vw,72px); }
  .personal-hero .identity-statement { font-size: 20px; }
  .personal-hero .intro { font-size: 14px; }
}
@media (max-width:640px) {
  .personal-hero h1 { font-size: clamp(44px,13vw,72px); }
  .personal-hero h1 > span { font-size: 1.25em; }
  .personal-hero .eyebrow { font-size: 11px; }
  .identity-portrait img { border-radius: 8px; }
  .personal-hero .identity-meta { font-size: 11px; }
  .personal-hero .intro { font-size: 14px; }
  .tool .tool-purpose { font-size: 14px; }
  .project-filters button { font-size: 12px; padding-inline: 12px; }
  .personal-hero .actions { gap: 12px 16px; }
}
.featured-label, #proyectos .feature .eyebrow { font-size: 11px; }
:root[data-theme=dark] .personal-hero { box-shadow: none; }
@media (prefers-reduced-motion:reduce) {
  .showcase-ready .identity-copy, .showcase-ready .identity-portrait, .showcase-ready .identity-portrait .orbit-trace { animation: none!important; }
  .portrait-orbit, .filter-indicator { transition: none; }
  .capture-button.preview-pointer-active img { transform: none; }
}
