/* V34 — Editorial type system. Pure CSS; no layout structure or player changes. */
:root {
 --jr-font-display: "Manrope", "Inter", system-ui, -apple-system, sans-serif;
 --jr-font-body: "Inter", system-ui, -apple-system, sans-serif;
 --jr-font-muted: #b4b4b4;
}
body { font-family:var(--jr-font-body); font-weight:400; font-optical-sizing:auto; letter-spacing:-.008em; }
h1,h2,h3,h4,h5,h6, .logo, .jr28-display-wrap {font-family:var(--jr-font-display);font-optical-sizing:auto;}
/* Hero: cinematic and tightly tracked, preserve V29 size/magnetic-letter structure. */
.jr28-hero h1 {font-family:var(--jr-font-display); font-weight:800; letter-spacing:-.085em; line-height:.92;}
.jr28-hero h2 {font-family:var(--jr-font-display);font-weight:650;letter-spacing:-.035em;line-height:1.2;}
.jr28-overline, .jr28-hero .jr28-scroll, .jr28-hero .jr28-cta {font-family:var(--jr-font-body);font-weight:700;}
.jr28-hero p {line-height:1.82;letter-spacing:-.007em;}
/* Consistent section titles */
#about > .heading, #about .heading, .jr-v18-skills > h3, .jr-v18-tool-panel h3, .work h2, .jr-v18-footer h2 {font-family:var(--jr-font-display);font-weight:800;letter-spacing:-.048em;line-height:1.09;}
#about .aboutcopy h3 {font-family:var(--jr-font-display);font-weight:800;letter-spacing:-.05em;}
/* Body copy optimized for comfortable reading */
#about .aboutcopy p, #about .jr33-exploring p, .work .sub, .jr-v25-contact-copy {font-family:var(--jr-font-body);font-weight:400;line-height:1.82;letter-spacing:-.005em;}
#about .aboutcopy .jr33-bio {font-weight:450;line-height:1.77;}
#about .aboutcopy .jr33-bio-secondary {color:var(--jr-font-muted);}
/* Skill names / app labels */
.jr-v18-skill {font-family:var(--jr-font-body);font-weight:650;letter-spacing:-.012em;line-height:1.48;}
.jr-v18-tool, .joy-ai-tool {font-family:var(--jr-font-body);font-weight:600;letter-spacing:-.006em;}
/* Project identity: bolder titles and refined labels. */
#gallery .card .meta h3 {font-family:var(--jr-font-display);font-weight:750;letter-spacing:-.035em;line-height:1.38;color:#f8f8f8;}
#gallery .card .meta p, #gallery .card .meta .jr-v25-project-number {font-family:var(--jr-font-body);font-weight:700;letter-spacing:.12em;text-transform:uppercase;line-height:1.5;}
#gallery .card .meta p {color:#b2b2b2;}
/* Functional metadata: understated but consistent */
.navlinks a, .filters button, .jr33-intro, .role, .jr33-exploring-label, .jr-v18-footer-label, .jr33-portrait-caption {font-family:var(--jr-font-body);font-weight:700;letter-spacing:.08em;}
.filters button {font-size:12px;}
.jr-v18-footer h2 {letter-spacing:-.065em;line-height:1.07;}
.jr-v18-contact {font-family:var(--jr-font-body);font-weight:700;letter-spacing:.065em;}
/* Mobile: avoid title spill/overtracking */
@media (max-width:700px) {
 .jr28-hero h1 {letter-spacing:-.075em;}
 #about .heading, .work h2 {letter-spacing:-.045em;}
 #gallery .card .meta h3 {font-size:clamp(15px,4vw,19px);}
 #gallery .card .meta p {font-size:10px;letter-spacing:.09em;}
 .filters button {font-size:11px;letter-spacing:.015em;}
 .jr-v18-footer h2 {letter-spacing:-.055em;}
}
@media (max-width:390px) {
 .jr28-hero h1 {letter-spacing:-.068em;}
 .filters button {font-size:10px;}
}
