/* Shared typography roles across the independent islands and Framer content. */
@font-face{font-family:"Manrope";src:url("../mors/assets/manrope-variable.ttf") format("truetype");font-weight:200 800;font-style:normal;font-display:swap}
:root{--portfolio-font-body:"Manrope",sans-serif;--portfolio-font-heading:"Space Grotesk",sans-serif}
body{font-family:var(--portfolio-font-body)}

/* Nebula on the hero typewriter and explicit SVG monospace remain independent. */
#mors-hero,#portfolio-content{font-family:var(--portfolio-font-body)}
#mors-hero .mors-greeting{font-family:var(--portfolio-font-heading)}
#portfolio-content :is(h2,h3,h4,h5){font-family:var(--portfolio-font-heading)}
#portfolio-content :is(.cv-about-copy .cv-lead,.cv-school-mark,.cv-education-gpa,.cv-portfolio-cover-intro){font-family:var(--portfolio-font-heading)}
#portfolio-content :is(.cv-experience-period,.cv-project-date,.cv-certificate-meta,.cv-status,.cv-small-label,.cv-achievement-meta>time){font-family:var(--portfolio-font-heading);font-variant-numeric:tabular-nums}
#portfolio-content :is(.cv-tags>li,.cv-text-link,.cv-project-github,.cv-certificate-file){font-family:var(--portfolio-font-heading)}

/* Framer owns its markup and inline presets. Override only typography, including
 * inline animated-link text, without rewriting forms, handlers or source styles. */
#main .framer-text,
#main [data-framer-component-type="Text"],
#main :is(input,textarea,select,button),
#main [data-code-component-plugin-id="84d4c1"] [style*="font-family"]{font-family:var(--portfolio-font-body)!important}
#main :is(h1,h2,h3,h4,h5,h6),
#main :is(h1,h2,h3,h4,h5,h6).framer-text,
#main :is(h1,h2,h3,h4,h5,h6) .framer-text,
#main nav .framer-text,
#main :is(button,[role="button"]) .framer-text,
#main :is(nav,footer) [data-code-component-plugin-id="84d4c1"] [style*="font-family"],
#main :is(button,input[type="submit"],input[type="button"]){font-family:var(--portfolio-font-heading)!important}
