*,:after,:before{box-sizing:border-box;margin:0;padding:0}:root{--black:#0a0a0a;--white:#fafafa;--gray-100:#f4f4f4;--gray-300:#d4d4d4;--gray-500:#737373;--gray-700:#404040;--accent:#1a1aff;--accent-light:#e8e8ff;--font-sans:"Inter",system-ui,-apple-system,sans-serif;--font-mono:"JetBrains Mono","Fira Code",monospace;--max-w:1100px;--radius:4px}html{scroll-behavior:smooth}body{font-family:var(--font-sans);background:var(--white);color:var(--black);line-height:1.6;-webkit-font-smoothing:antialiased}a{color:inherit;text-decoration:none}img{max-width:100%;display:block}.jf-root{min-height:100vh}.jf-nav{position:-webkit-sticky;position:sticky;top:0;z-index:100;display:flex;align-items:center;justify-content:space-between;padding:1rem 2rem;background:rgba(250,250,250,.92);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-bottom:1px solid var(--gray-300)}.jf-nav-logo{font-weight:800;font-size:1rem;letter-spacing:-.03em}.jf-nav-links{display:flex;gap:2rem;font-size:.875rem;color:var(--gray-700)}.jf-nav-links a:hover{color:var(--black)}.jf-hero{position:relative;overflow:hidden;min-height:88vh;display:flex;align-items:center;padding:6rem 2rem 4rem;background:var(--black);color:var(--white)}.jf-hero-inner{position:relative;z-index:2;max-width:780px}.jf-hero-tag{font-family:var(--font-mono);font-size:.75rem;letter-spacing:.15em;color:var(--gray-500);margin-bottom:2rem;text-transform:uppercase}.jf-hero-h1{font-size:clamp(2.5rem,7vw,5.5rem);font-weight:800;line-height:1.05;letter-spacing:-.03em;margin-bottom:1.5rem;white-space:pre-line}.jf-hero-sub{font-size:clamp(1rem,2vw,1.2rem);color:var(--gray-300);margin-bottom:.75rem;max-width:600px}.jf-hero-desc{font-size:.85rem;color:var(--gray-500);margin-bottom:2.5rem;font-family:var(--font-mono)}.jf-hero-grid-bg{position:absolute;inset:0;background-image:linear-gradient(rgba(255,255,255,.03) 1px,transparent 0),linear-gradient(90deg,rgba(255,255,255,.03) 1px,transparent 0);background-size:60px 60px}.jf-btn-primary{display:inline-block;padding:.875rem 2rem;background:var(--accent);color:var(--white);font-weight:600;font-size:.9rem;border-radius:var(--radius);transition:opacity .15s}.jf-btn-primary:hover{opacity:.85}.jf-btn-secondary{display:inline-block;padding:.75rem 1.5rem;border:2px solid var(--black);color:var(--black);font-weight:600;font-size:.875rem;border-radius:var(--radius);transition:all .15s}.jf-btn-secondary:hover{background:var(--black);color:var(--white)}.jf-btn-white{display:inline-block;padding:.875rem 2rem;background:var(--white);color:var(--black);font-weight:700;font-size:.9rem;border-radius:var(--radius);transition:opacity .15s}.jf-btn-white:hover{opacity:.9}.jf-link-arrow{font-size:.875rem;font-weight:600;color:var(--accent)}.jf-link-arrow:hover{text-decoration:underline}.jf-section-label{font-family:var(--font-mono);font-size:.72rem;letter-spacing:.1em;color:var(--gray-500);text-transform:uppercase;margin-bottom:.75rem}.jf-label-light{color:rgba(255,255,255,.4)}.jf-label-center{text-align:center}.jf-section-header{margin-bottom:3rem}.jf-section-h2{font-size:clamp(1.75rem,4vw,2.75rem);font-weight:800;letter-spacing:-.025em}.jf-mission{padding:5rem 2rem;background:var(--accent-light);text-align:center}.jf-mission-quote{max-width:800px;margin:0 auto 1rem;font-size:clamp(1.25rem,3vw,2rem);font-weight:700;letter-spacing:-.02em;line-height:1.3}.jf-mission-mark{color:var(--accent)}.jf-mission-cite{font-size:.8rem;color:var(--gray-500);font-style:normal;font-family:var(--font-mono)}.jf-about{padding:6rem 2rem}.jf-about-inner{max-width:var(--max-w);margin:0 auto;display:grid;grid-template-columns:1fr 340px;grid-gap:5rem;gap:5rem;align-items:center}.jf-about-h2{font-size:clamp(1.5rem,3.5vw,2.25rem);font-weight:800;letter-spacing:-.025em;margin-bottom:1.25rem}.jf-about-bio{color:var(--gray-700);font-size:1.05rem;line-height:1.75;margin-bottom:2rem}.jf-about-links{display:flex;gap:1.5rem;flex-wrap:wrap}.jf-about-photo-placeholder{width:100%;aspect-ratio:4/5;background:var(--gray-100);border:2px solid var(--gray-300);border-radius:var(--radius);display:flex;align-items:center;justify-content:center;font-size:4rem;font-weight:800;color:var(--gray-300);letter-spacing:-.05em}.jf-projects{padding:6rem 2rem;background:var(--gray-100)}.jf-projects>.jf-section-header{max-width:var(--max-w);margin:0 auto 3rem}.jf-projects-grid{max-width:var(--max-w);margin:0 auto;display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));grid-gap:1.5rem;gap:1.5rem}.jf-project-card{background:var(--white);border:1px solid var(--gray-300);padding:2rem;border-radius:var(--radius);display:flex;flex-direction:column;gap:.75rem}.jf-project-type{font-family:var(--font-mono);font-size:.68rem;letter-spacing:.1em;color:var(--accent);text-transform:uppercase}.jf-project-name{font-size:1.5rem;font-weight:800;letter-spacing:-.02em}.jf-project-summary{font-size:.9rem;font-weight:600;color:var(--gray-700)}.jf-project-desc{font-size:.875rem;color:var(--gray-500);line-height:1.65;flex:1 1}.jf-project-stats{display:flex;gap:1.5rem;padding:1rem 0;border-top:1px solid var(--gray-100)}.jf-stat{display:flex;flex-direction:column}.jf-stat-value{font-size:1.25rem;font-weight:800;letter-spacing:-.02em}.jf-stat-label{font-size:.68rem;color:var(--gray-500);font-family:var(--font-mono)}.jf-talks{padding:6rem 2rem}.jf-talks>.jf-section-header{max-width:var(--max-w);margin:0 auto 3rem}.jf-talks-list{max-width:var(--max-w);margin:0 auto}.jf-talk-row{display:grid;grid-template-columns:110px 1fr;grid-gap:2rem;gap:2rem;align-items:center;padding:1.25rem 0;border-bottom:1px solid var(--gray-300)}.jf-talk-row:first-child{border-top:1px solid var(--gray-300)}.jf-talk-date{font-family:var(--font-mono);font-size:.68rem;letter-spacing:.1em;color:var(--gray-500)}.jf-talk-info{display:flex;flex-direction:column;gap:.2rem}.jf-talk-title{font-weight:700}.jf-talk-event{font-size:.78rem;color:var(--gray-500);font-family:var(--font-mono)}.jf-posts{padding:6rem 2rem}.jf-posts-grid,.jf-posts>.jf-section-header{max-width:var(--max-w);margin:0 auto 3rem}.jf-posts-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));grid-gap:1.5rem;gap:1.5rem}.jf-post-card{padding:1.75rem;border:1px solid var(--gray-300);border-radius:var(--radius);display:flex;flex-direction:column;gap:.6rem}.jf-post-meta{font-family:var(--font-mono);font-size:.68rem;color:var(--gray-500);letter-spacing:.05em}.jf-post-title{font-size:1.1rem;font-weight:700;letter-spacing:-.015em;line-height:1.3}.jf-post-excerpt{font-size:.875rem;color:var(--gray-500);line-height:1.65;flex:1 1}.jf-posts-cta{max-width:var(--max-w);margin:0 auto}.jf-newsletter{padding:7rem 2rem;background:var(--black);color:var(--white);text-align:center}.jf-newsletter-inner{max-width:640px;margin:0 auto}.jf-newsletter-h2{font-size:clamp(2rem,5vw,3.5rem);font-weight:800;letter-spacing:-.03em;margin-bottom:1rem}.jf-newsletter-desc{color:var(--gray-300);font-size:1.05rem;margin-bottom:.75rem}.jf-newsletter-social-proof{font-family:var(--font-mono);font-size:.72rem;color:var(--gray-500);margin-bottom:2rem;letter-spacing:.05em}.jf-newsletter-pending{color:var(--gray-700);font-family:var(--font-mono);font-size:.78rem;margin-top:1rem}.jf-clients{padding:4rem 2rem;background:var(--gray-100);text-align:center}.jf-clients>.jf-section-label{margin-bottom:2rem}.jf-clients-row{display:flex;flex-wrap:wrap;justify-content:center;gap:2rem}.jf-client{font-size:.8rem;font-weight:700;color:var(--gray-500);letter-spacing:.08em;text-transform:uppercase}.jf-footer{padding:2.5rem 2rem;border-top:1px solid var(--gray-300)}.jf-footer-inner{max-width:var(--max-w);margin:0 auto;display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:1rem}.jf-footer-brand{display:flex;flex-direction:column;gap:.2rem}.jf-footer-brand strong{font-size:.9rem}.jf-footer-brand span{font-size:.72rem;color:var(--gray-500);font-family:var(--font-mono)}.jf-footer-links{display:flex;gap:1.5rem;flex-wrap:wrap;font-size:.8rem;color:var(--gray-500)}.jf-footer-links a:hover{color:var(--black)}@media (max-width:768px){.jf-nav-links{display:none}.jf-about-inner{grid-template-columns:1fr}.jf-about-photo-wrap{order:-1;max-width:200px}.jf-talk-row{grid-template-columns:80px 1fr;gap:1rem}.jf-footer-inner{flex-direction:column;align-items:flex-start}}