1<!DOCTYPE html> 2<html lang="en-US"> 3<head> 4<meta charset="UTF-8"> 5<meta name="viewport" content="width=device-width, initial-scale=1"> 6<link rel="icon" type="image/png" href="../assets/img/drj-icon.png"> 7<link rel="apple-touch-icon" href="../assets/img/drj-icon.png"> 8<meta name="google-site-verification" content="YjBjJh27-89CMj2XkJ46z15u_yjMvEV9PpyouMEMnEk"> 9<meta name="robots" content="index, follow, max-image-preview:large, max-snippet:-1, max-video-preview:-1"> 10 11<title>Meet Dr. Julia Garcia â Psychologist, Author & Keynote Speaker</title> 12<meta name="description" content="Dr. Julia Garcia is a psychologist, HarperCollins author, TEDx speaker, and spoken word artist who has spent 20+ years facilitating transformation in schools, boardrooms, creative conferences, and stages worldwide."> 13<link rel="canonical" href="https://www.drjuliagarcia.com/meet-julia/"> 14 15<meta property="og:type" content="profile"> 16<meta property="og:title" content="Meet Dr. Julia Garcia â Psychologist, Keynote Speaker & Author"> 17<meta property="og:description" content="From party girl to PhD â the story behind the practice. Dr. Julia Garcia is a psychologist, HarperCollins author, TEDx speaker, and spoken word artist."> 18<meta property="og:url" content="https://www.drjuliagarcia.com/meet-julia/"> 19<meta property="og:site_name" content="Dr. Julia Garcia"> 20<meta property="og:image" content="https://www.drjuliagarcia.com/assets/img/og/og-meet-julia.jpg"> 21<meta property="og:image:width" content="1200"> 22<meta property="og:image:height" content="630"> 23<meta name="twitter:card" content="summary_large_image"> 24
25<script type="application/ld+json"> 26{ 27 "@context": "https://schema.org", 28 "@type": "Person", 29 "name": "Dr. Julia Garcia", 30 "alternateName": "Dr. J", 31 "url": "https://www.drjuliagarcia.com", 32 "image": "https://www.drjuliagarcia.com/assets/img/julia-headshot-stage.webp", 33 "jobTitle": "Psychologist, Keynote Speaker & Author", 34 "description": "Dr. Julia Garcia is a Doctor of Psychology, HarperCollins author, TEDx speaker, spoken-word poet, and keynote speaker whose work has reached 1M+ people across 50+ countries. Creator of the Five Habits of Hope methodology.", 35 "knowsAbout": ["Psychology", "Keynote Speaking", "Hope Science", "Organizational Culture", "Mental Health", "AI and Human Behavior"], 36 "sameAs": [ 37 "https://www.instagram.com/drjuliagarcia/", 38 "https://www.youtube.com/@DrJuliaGarcia", 39 "https://www.linkedin.com/in/drjuliagarcia/", 40 "https://www.amazon.com/Habits-Hope-Stories-Strategies-Help/dp/1400250854", 41 "https://topyouthspeakers.com/speakers-topics/julia-garcia" 42 ] 43} 44</script>
44 45 46<link rel="preconnect" href="https://fonts.googleapis.com"> 47<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin> 48<link href="https://fonts.googleapis.com/css2?family=Cormorant+Garamond:ital,wght@0,300;0,400;0,500;0,600;0,700;1,300;1,400;1,500&family=Inter:wght@300;400;500;600&family=Bebas+Neue&display=swap" rel="stylesheet"> 49
50<script>if(localStorage.getItem('theme')==='dark')document.documentElement.classList.add('dark-mode');</script>
vendor: 1 bytes, line 50
50
51<script src="https://cdn.tailwindcss.com"></script>
vendor: 1 bytes, line 51
51
52<script> 53tailwind.config = { 54 theme: { 55 extend: { 56 colors: { 57 accent: '#C6A75E', 58 'accent-bright': '#C6A75E', 59 cream: '#F4F1EA', 60 deep: '#0A1A2F', 61 night: '#0A1A2F', 62 ink: 'rgb(var(--c-ink) / <alpha-value>)', 63 paper: 'rgb(var(--c-paper) / <alpha-value>)', 64 'paper-dark': 'rgb(var(--c-paper-dark) / <alpha-value>)', 65 stone: 'rgb(var(--c-stone) / <alpha-value>)', 66 rule: 'rgb(var(--c-rule) / <alpha-value>)', 67 }, 68 fontFamily: { 69 serif: ['"Cormorant Garamond"','Georgia','serif'], 70 sans: ['Inter','system-ui','sans-serif'], 71 display: ['"Bebas Neue"','sans-serif'], 72 marker: ['"AtomicMarker"','cursive'], 73 }, 74 }, 75 }, 76}; 77</script>
77 78 79<style> 80@font-face { 81 font-family: 'ImogenAgnes'; 82 src: url('../assets/fonts/ImogenAgnes.ttf') format('truetype'); 83 font-weight: normal; 84 font-style: normal; 85 font-display: swap; 86} 87@font-face { 88 font-family: 'AtomicMarker'; 89 src: url('../assets/fonts/site-fonts/AtomicMarker.otf') format('opentype'); 90 font-weight: normal; 91 font-style: normal; 92 font-display: swap; 93} 94 95:root { 96 --c-ink: 15 15 15; 97 --c-paper: 244 241 234; 98 --c-paper-dark: 231 225 214; 99 --c-stone: 138 134 128; 100 --c-rule: 212 208 204; 101} 102.fill-paper-dark { fill: rgb(var(--c-paper-dark)); } 103 104/* ââ Nav ââ */ 105#site-header { transition:background-color .3s,box-shadow .3s; } 106#site-header.header-scrolled { background-color:rgba(10,26,47,.95); backdrop-filter:blur(12px); box-shadow:0 1px 0 rgba(255,255,255,.06); } 107.nav-logo,.nav-hamburger { color:rgba(255,253,247,.8); transition:color .3s; } 108.nav-logo { font-family: 'ImogenAgnes', cursive; font-size: 24pt; letter-spacing: 0.02em; } 109.nav-link { color:rgba(255,253,247,.8); transition:color .3s; font-size: 13px; text-transform: uppercase; letter-spacing: 0.15em; font-family: 'Inter', system-ui, sans-serif; font-weight: 500; } 110.nav-link:hover { color:#C6A75E; } 111#site-header.header-scrolled .nav-logo { color:#FFFDF7; } 112#site-header.header-scrolled .nav-link { color:rgba(255,253,247,.6); } 113#site-header.header-scrolled .nav-link:hover { color:#C6A75E; } 114#nav-menu { transform:translateX(100%); transition:transform .3s cubic-bezier(.4,0,.2,1); } 115#nav-menu.nav-open { transform:translateX(0); } 116 117.formkit-submit { background: #C6A75E !important; color: #0A1A2F !important; } 118 119/* ââ Editorial section ââ */ 120.editorial-section { 121 background: #F4F1EA; 122 position: relative; 123 overflow: hidden; 124} 125 126/* ââ Splash word animations ââ */ 127.splash-word { 128 font-family: 'AtomicMarker', cursive; 129 opacity: 0; 130 position: absolute; 131 white-space: nowrap; 132 filter: blur(8px);
133 transform: scale(0.3) rotate(var(--rot, 0deg)); 134} 135 136.splash-word.visible { 137 animation: 138 splashIn 0.8s cubic-bezier(0.16, 1, 0.3, 1) forwards, 139 floatDrift var(--float-dur, 4s) ease-in-out var(--float-start, 1.5s) infinite, 140 glowPulse 3s ease-in-out var(--float-start, 1.5s) infinite; 141 animation-delay: var(--delay, 0s), var(--float-start, 1.5s), var(--float-start, 1.5s); 142} 143 144@keyframes splashIn { 145 0% { 146 opacity: 0; 147 filter: blur(8px); 148 transform: scale(0.3) rotate(var(--rot, 0deg)); 149 } 150 50% { 151 opacity: 1; 152 filter: blur(0); 153 transform: scale(1.15) rotate(var(--rot, 0deg)); 154 } 155 100% { 156 opacity: 1; 157 filter: blur(0); 158 transform: scale(1) rotate(var(--rot, 0deg)); 159 } 160} 161 162/* Continuous floating drift after landing */ 163@keyframes floatDrift { 164 0%, 100% { 165 transform: scale(1) rotate(var(--rot, 0deg)) translate(0, 0); 166 } 167 25% { 168 transform: scale(1.03) rotate(var(--rot, 0deg)) translate(4px, -6px); 169 } 170 50% { 171 transform: scale(0.98) rotate(var(--rot, 0deg)) translate(-3px, 4px); 172 } 173 75% {
174 transform: scale(1.02) rotate(var(--rot, 0deg)) translate(5px, 2px); 175 } 176} 177 178/* Persistent glow pulse */ 179@keyframes glowPulse { 180 0%, 100% { 181 text-shadow: 182 0 0 20px rgba(198,167,94,0.5), 183 0 0 40px rgba(198,167,94,0.25), 184 0 0 80px rgba(198,167,94,0.1); 185 } 186 50% { 187 text-shadow: 188 0 0 35px rgba(198,167,94,0.8), 189 0 0 70px rgba(198,167,94,0.45), 190 0 0 120px rgba(198,167,94,0.25); 191 } 192} 193 194/* ââ Bio text reveal ââ */ 195.bio-line { 196 opacity: 0; 197 transform: translateY(20px); 198} 199.bio-line.visible { 200 animation: bioReveal 0.7s ease-out forwards; 201 animation-delay: var(--delay, 0s); 202} 203@keyframes bioReveal { 204 to { 205 opacity: 1; 206 transform: translateY(0); 207 } 208} 209 210/* ââ Photo reveal ââ */ 211.photo-reveal { 212 opacity: 0; 213 transform: translateY(30px); 214} 215.photo-reveal.visible { 216 animation: photoUp 1s cubic-bezier(0.16, 1, 0.3, 1) forwards; 217} 218@keyframes photoUp { 219 to { 220 opacity: 1; 221 transform: translateY(0); 222 } 223} 224 225/* Responsive: stack on mobile */ 226@media (max-width: 1023px) { 227 .editorial-grid { 228 grid-template-columns: 1fr !important; 229 gap: 2rem !important; 230 padding: 2rem 1.5rem !important; 231 } 232 .editorial-grid .bio-col { 233 order: 2; 234 text-align: center; 235 } 236 .editorial-grid .photo-col { 237 order: 1; 238 max-width: 400px; 239 margin: 0 auto; 240 } 241 .editorial-grid .splash-col { 242 order: 3; 243 position: relative; 244 height: 200px; 245 } 246 .splash-word { 247 position: absolute !important; 248 } 249 .now-grid { 250 grid-template-columns: 1fr !important; 251 } 252 .now-mosaic { 253 grid-template-columns: 1fr 1fr !important; 254 } 255 .now-mosaic > div { margin-top: 0 !important; } 256} 257 258/* Slow rock on mosaic images */ 259.now-mosaic img { 260 transition: transform 0.6s ease; 261} 262.now-mosaic > div:nth-child(1) img { animation: slowRock1 6s ease-in-out infinite; } 263.now-mosaic > div:nth-child(2) img { animation: slowRock2 7s ease-in-out infinite; } 264.now-mosaic > div:nth-child(3) img { animation: slowRock3 5.5s ease-in-out infinite; } 265.now-mosaic > div:nth-child(4) img { animation: slowRock4 6.5s ease-in-out infinite; } 266 267@keyframes slowRock1 { 268 0%, 100% { transform: rotate(0deg) translateY(0); } 269 50% { transform: rotate(1.2deg) translateY(-4px); } 270} 271@keyframes slowRock2 { 272 0%, 100% { transform: rotate(0deg) translateY(0); } 273 50% { transform: rotate(-1deg) translateY(5px); } 274} 275@keyframes slowRock3 { 276 0%, 100% { transform: rotate(0deg) translateY(0); } 277 50% { transform: rotate(0.8deg) translateY(-6px); } 278} 279@keyframes slowRock4 { 280 0%, 100% { transform: rotate(0deg) translateY(0); } 281 50% { transform: rotate(-1.3deg) translateY(3px); } 282} 283 284@media (max-width: 1023px) { 285 .anchor-grid { 286 grid-template-columns: 1fr !important; 287 } 288 .identity-grid { 289 grid-template-columns: 1fr !important; 290 text-align: center !important; 291 } 292 .identity-grid > div { text-align: center !important; } 293} 294</style>
vendor: 59 bytes, lines 294-296
294 295 296<script src="https://www.googletagmanager.com/gtag/js?id=
296GT-TWDKGDLB
vendor: 18 bytes, line 296
296" async></script>
297<script>
vendor: 118 bytes, line 297
297window.dataLayer=window.dataLayer||[];function gtag(){dataLayer.push(arguments);}gtag('js',new Date());gtag('config','
297GT-TWDKGDLB
vendor: 3 bytes, line 297
297');
297</script>
297 298</head> 299 300<body style="background:#0a0a0a;color:#FFFDF7;" class="font-sans antialiased"> 301 302<!-- ââââââââââââââââââââââââââââââââ 303 HEADER / NAV 304 ââââââââââââââââââââââââââââââââ --> 305<header id="site-header" class="fixed top-0 left-0 right-0 z-50"> 306 <div class="max-w-7xl mx-auto px-6 py-5 flex items-center justify-between"> 307 <a href="../index.html" class="nav-logo leading-none flex flex-col"> 308 <span>Dr. Julia Garcia</span> 309 <span style="font-family:'Inter',system-ui,sans-serif; font-size:7px; text-transform:uppercase; letter-spacing:0.3em; color:rgba(255,253,247,0.5); margin-top:2px;">Speaker Psychologist Writer</span> 310 </a> 311 312 <!-- Desktop nav --> 313 <nav class="hidden lg:flex items-center gap-8" aria-label="Primary"> 314 <a href="../meet-julia/" class="nav-link">Meet Dr. J</a> 315 <a href="../speaking/" class="nav-link">Speaking</a> 316 <a href="../habitsofhope/" class="nav-link">The Book</a> 317 <a href="../podcast/" class="nav-link">Podcast</a> 318 <a href="../contact/" class="nav-link">Contact</a> 319 </nav> 320 321 <!-- Mobile hamburger --> 322 <button id="nav-toggle" class="lg:hidden nav-hamburger" aria-label="Open menu" aria-expanded="false"> 323 <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5" class="w-7 h-7"> 324 <line x1="3" y1="7" x2="21" y2="7"/><line x1="3" y1="12" x2="21" y2="12"/><line x1="3" y1="17" x2="21" y2="17"/> 325 </svg> 326 </button> 327 </div> 328 329 <!-- Mobile overlay --> 330 <div id="nav-overlay" class="hidden fixed inset-0 bg-night/40 backdrop-blur-sm lg:hidden z-40"></div> 331 332 <!-- Mobile slide-in menu --> 333 <nav id="nav-menu" class="fixed top-0 right-0 bottom-0 w-72 bg-cream shadow-2xl z-50 lg:hidden" aria-label="Mobile"> 334 <button id="nav-close" class="absolute top-5 right-5 text-stone hover:text-ink transition-colors" aria-label="Close menu"> 335 <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.5" class="w-6 h-6"> 336 <line x1="18" y1="6" x2="6" y2="18"/><line x1="6" y1="6" x2="18" y2="18"/> 337 </svg> 338 </button> 339 <div class="flex flex-col gap-6 pt-20 px-8"> 340 <a href="../meet-julia/" class="text-lg font-serif text-ink hover:text-accent transition-colors">Meet Dr. J</a> 341 <a href="../speaking/" class="text-lg font-serif text-ink hover:text-accent transition-colors">Speaking</a> 342 <a href="../habitsofhope/" class="text-lg font-serif text-ink hover:text-accent transition-colors">The Book</a> 343 <a href="../podcast/" class="text-lg font-serif text-ink hover:text-accent transition-colors">Podcast</a> 344 <a href="../contact/" class="text-lg font-serif text-ink hover:text-accent transition-colors">Contact</a> 345 </div> 346 </nav> 347</header> 348 349 350<!-- ââââââââââââââââââââââââââââââââ 351 HERO 352 ââââââââââââââââââââââââââââââââ --> 353<section id="hero" class="relative flex items-center justify-center overflow-hidden pt-[100px] pb-[180px] md:pb-[250px]" style="min-height:75vh"> 354 <!-- Video background --> 355 <video autoplay muted loop playsinline class="absolute inset-0 w-full h-full object-cover"> 356 <source src="../assets/video/meet-dr-julia-garcia.mp4" type="video/mp4"> 357 </video> 358 <!-- Dark gradient overlay --> 359 <div class="absolute inset-0 bg-gradient-to-b from-night/50 via-night/30 to-night/70"></div> 360 <!-- Layered wave shape divider into section below --> 361 <div class="absolute bottom-0 left-0 w-full z-20 pointer-events-none" aria-hidden="true"> 362 <svg viewBox="0 0 1440 150" preserveAspectRatio="none" class="block w-full h-[100px] md:h-[140px] absolute bottom-0"> 363 <path d="M0,150 L0,40 Q300,-15 650,35 Q900,70 1150,20 Q1320,-10 1440,30 L1440,150 Z" fill="#F4F1EA"/> 364 </svg> 365 <svg viewBox="0 0 1440 150" preserveAspectRatio="none" class="block w-full h-[80px] md:h-[110px] absolute bottom-0"> 366 <path d="M0,150 L0,55 Q280,5 600,50 Q850,85 1100,35 Q1300,0 1440,45 L1440,150 Z" fill="#F4F1EA"/> 367 </svg> 368 <svg viewBox="0 0 1440 150" preserveAspectRatio="none" class="block w-full h-[60px] md:h-[80px] relative"> 369 <path d="M0,150 L0,80 Q360,20 720,70 Q1080,120 1440,40 L1440,150 Z" fill="#F4F1EA"/> 370 </svg> 371 </div> 372 <!-- Content --> 373 <div class="relative z-10 text-center px-6 max-w-5xl"> 374 <h1 class="text-white leading-[1.1] text-center">
375 <span class="block font-display uppercase text-[clamp(2.5rem,7vw,5.5rem)] tracking-[0.08em] mb-2">MEET</span> 376 <span class="block" style="font-family:'ImogenAgnes',cursive; font-size:clamp(2.5rem,7vw,5.5rem);">Dr. Julia Garcia</span> 377 </h1> 378 </div> 379</section> 380 381 382<!-- ââââââââââââââââââââââââââââââââ 383 EDITORIAL BIO SECTION 384 ââââââââââââââââââââââââââââââââ --> 385<section class="editorial-section"> 386 <div class="editorial-grid max-w-[1400px] mx-auto" style="display:grid; grid-template-columns:1fr 1fr 1fr; gap:0; padding:2rem 3rem 3rem; align-items:start;"> 387 388 <!-- LEFT: Bio text --> 389 <div class="bio-col pr-8 lg:pr-12" style="padding-top:2rem;"> 390 <h2 class="bio-line font-serif text-[#0A1A2F] leading-[1.15] mb-8" style="font-size:clamp(2rem,3.5vw,3.2rem); font-weight:500; --delay:0.1s;"> 391 Hi. I’m Dr. Julia Garcia. 392 </h2> 393 <p class="bio-line font-serif text-[#0A1A2F] text-[1.35rem] leading-relaxed mb-6" style="font-weight:400; --delay:0.3s;"> 394 Most people call me Dr. J. 395 </p> 396 <p class="bio-line font-serif text-[#0A1A2F] text-[1.35rem] leading-relaxed mb-6" style="font-weight:400; --delay:0.5s;"> 397 I have been doing this since I was a teenager. 398 </p> 399 <p class="bio-line font-sans text-[#2B2F33] text-[0.95rem] leading-[1.85] mb-0" style="font-weight:300; --delay:0.7s;"> 400 “This” has looked like a lot of different things over the years. Driving around in a car with an oil leak to hand out printed flyers and burned DVD’s of my programming to different schools. Prevention programs in high schools where the school to guidance counselor ratio was hundreds to one. A youth movement that somehow reached a quarter million people before I had language for what we were building. An award-winning technology platform for teen girls and their mental health. A crisis helpline I built from scratch during a pandemic, training people who had never done anything like it to respond to real crises on a live line, deployed across 62 countries. 401 </p> 402 </div> 403 404 <!-- CENTER: Dramatic portrait --> 405 <div class="photo-col flex justify-center photo-reveal" style="position:relative;"> 406 <video autoplay muted loop playsinline 407 class="w-full max-w-[480px] rounded-xl" 408 style="box-shadow: 0 0 30px 8px rgba(198,167,94,0.35), 0 0 60px 20px rgba(198,167,94,0.15), 0 0 100px 40px rgba(198,167,94,0.08);"> 409 <source src="../assets/video/dr-julia-garcia-artist-spoken-word-bw.mp4" type="video/mp4"> 410 </video> 411 </div> 412 413 <!-- RIGHT: Splash identity words --> 414 <div class="splash-col relative" style="min-height:500px;" id="splash-container"> 415 <span class="splash-word text-[3.5rem] md:text-[4.5rem] text-[#C6A75E]" 416 style="--rot:-8deg; --delay:0.6s; --float-start:1.4s; --float-dur:5s; top:8%; left:10%;"> 417 ARTIST 418 </span> 419 <span class="splash-word text-[3rem] md:text-[4rem] text-[#0A1A2F]" 420 style="--rot:5deg; --delay:0.9s; --float-start:1.7s; --float-dur:6s; top:30%; left:5%;"> 421 ACADEMIC 422 </span> 423 <span class="splash-word text-[4rem] md:text-[5rem] text-[#C6A75E]" 424 style="--rot:-3deg; --delay:1.2s; --float-start:2.0s; --float-dur:4.5s; top:52%; left:15%;"> 425 POET 426 </span> 427 <span class="splash-word text-[3rem] md:text-[3.8rem] text-[#0A1A2F]" 428 style="--rot:7deg; --delay:1.5s; --float-start:2.3s; --float-dur:5.5s; top:74%; left:0%;"> 429 PSYCHOLOGIST 430 </span> 431 </div> 432 433 </div> 434</section> 435 436 437<!-- ââââââââââââââââââââââââââââââââ 438 NEWS ANCHOR VIDEO 439 ââââââââââââââââââââââââââââââââ --> 440<section style="background:#F4F1EA; padding:2rem 0 3rem;"> 441 <div class="max-w-[1400px] mx-auto px-6 anchor-grid" style="display:grid; grid-template-columns:1fr 1fr 1fr; gap:2.5rem; align-items:start;"> 442 443 <!-- Left: aspiring singer (staggered up) --> 444 <div style="padding-top:2rem;"> 445 <h2 class="font-display text-[clamp(1.2rem,2vw,1.8rem)] text-[#0A1A2F] tracking-wide mb-4" style="font-weight:700;"> 446 ME AS AN ASPIRING SINGER. ALSO MY PARENTS' WEDDING. 447 </h2> 448 <img 449 src="../assets/img/dr-julia-garcia-aspiring-singer-childhood.jpg" 450 alt="Young Dr. Julia Garcia as an aspiring singer" 451 class="w-full object-cover" 452 style="aspect-ratio:3/4; object-position:center; box-shadow: 0 0 30px 8px rgba(198,167,94,0.35), 0 0 60px 20px rgba(198,167,94,0.15);" 453 > 454 </div> 455 456 <!-- Center: news anchor video (staggered down) --> 457 <div style="padding-top:6rem;"> 458 <h2 class="font-display text-[clamp(1.2rem,2vw,1.8rem)] text-[#0A1A2F] tracking-wide mb-4" style="font-weight:700;"> 459 AND THIS WAS ME AS A YOUNG NEWS ANCHOR. 460 </h2> 461 <div style="box-shadow: 0 0 30px 8px rgba(198,167,94,0.25), 0 0 60px 20px rgba(198,167,94,0.1);">
462 <video autoplay muted loop playsinline class="w-full block" style="aspect-ratio:16/9; background:#000;"> 463 <source src="../assets/video/dr-julia-garcia-news-anchor.mp4" type="video/mp4"> 464 </video> 465 </div> 466 </div> 467 468 <!-- Right: field reporter photo (staggered further down) --> 469 <div style="padding-top:12rem;"> 470 <h2 class="font-display text-[clamp(1.2rem,2vw,1.8rem)] text-[#0A1A2F] tracking-wide mb-4" style="font-weight:700;"> 471 THIS WAS ME AS AN INTERN FIELD REPORTER 472 </h2> 473 <img 474 src="../assets/img/dr-julia-garcia-field-reporter-bw.png" 475 alt="Dr. Julia Garcia as a college field reporter" 476 class="w-full object-cover" 477 style="aspect-ratio:4/3; object-position:center;" 478 > 479 </div> 480 481 </div> 482</section> 483 484 485<!-- ââââââââââââââââââââââââââââââââ 486 JOURNEY SECTION â Base Design scroll reveal 487 ââââââââââââââââââââââââââââââââ --> 488<section id="journey-section" style="background:#0A1A2F; padding:4rem 0 5rem;"> 489 <div class="max-w-4xl mx-auto px-6"> 490 <h2 class="font-display tracking-wide mb-16 text-center journey-line" style="font-size:clamp(2rem,5vw,3.5rem); font-weight:700; color:rgba(198,167,94,0.15); transition:color 0.6s cubic-bezier(0.25,0.1,0.25,1);"> 491 MY JOURNEY HAS TAKEN A LOT OF TURNS. 492 </h2> 493 <div id="journey-text" class="space-y-0"> 494 <span class="journey-line font-serif text-[clamp(1.2rem,2.5vw,1.75rem)] leading-[1.9]" style="color:rgba(244,241,234,0.12);">In between it all: I was a scholar college athlete. </span> 495 <span class="journey-line font-serif text-[clamp(1.2rem,2.5vw,1.75rem)] leading-[1.9]" style="color:rgba(244,241,234,0.12);">I spent five years in prevention and Title IX work. </span> 496 <span class="journey-line font-serif text-[clamp(1.2rem,2.5vw,1.75rem)] leading-[1.9]" style="color:rgba(244,241,234,0.12);">I dropped out of graduate school three times and went back three times. </span> 497 <span class="journey-line font-serif text-[clamp(1.2rem,2.5vw,1.75rem)] leading-[1.9]" style="color:rgba(244,241,234,0.12);">I earned a PhD in Psychology, was the first woman in my bloodline to do so. </span> 498 <span class="journey-line font-serif text-[clamp(1.2rem,2.5vw,1.75rem)] leading-[1.9]" style="color:rgba(244,241,234,0.12);">I built a racial equity platform in four days during civil unrest. </span> 499 <span class="journey-line font-serif text-[clamp(1.2rem,2.5vw,1.75rem)] leading-[1.9]" style="color:rgba(244,241,234,0.12);">I helped make history and performed at the first-ever TEDx at a women’s correctional facility. </span> 500 <span class="journey-line font-serif text-[clamp(1.2rem,2.5vw,1.75rem)] leading-[1.9]" style="color:rgba(244,241,234,0.12);">I’ve worked inside school gyms with no sound systems and in corporate settings with companies like Salesforce, Toyota, Verizon Go Wireless, and Typeform, </span> 501 <span class="journey-line font-serif text-[clamp(1.2rem,2.5vw,1.75rem)] leading-[1.9]" style="color:rgba(244,241,234,0.12);">who made a documentary about the work and brought me on as their summit keynote.</span> 502 </div> 503 </div> 504</section> 505 506<style> 507.journey-line { 508 display: inline; 509 transition: color 0.6s cubic-bezier(0.25, 0.1, 0.25, 1); 510} 511.journey-line.lit { 512 color: rgba(244,241,234,0.95) !important; 513} 514h2.journey-line.lit { 515 color: #C6A75E !important; 516} 517</style> 518 519 520<!-- ââââââââââââââââââââââââââââââââ 521 THE WORK NOW â editorial mosaic 522 ââââââââââââââââââââââââââââââââ --> 523<section style="background:#F4F1EA; padding:0; overflow:hidden;"> 524 <!-- Giant display heading --> 525 <div class="max-w-[1400px] mx-auto px-6 pt-10 pb-4"> 526 <h2 class="font-display leading-[0.9] text-[#0A1A2F]" style="font-size:clamp(4rem,12vw,11rem); letter-spacing:-0.02em;"> 527 Now. 528 </h2> 529 </div> 530 531 <!-- Row 1: main photo + text --> 532 <div class="now-grid max-w-[1400px] mx-auto px-6" style="display:grid; grid-template-columns:1fr 1fr; gap:3rem; align-items:start;"> 533 <!-- Left: laughing BW portrait --> 534 <div> 535 <img 536 src="../assets/img/dr-julia-garcia-laughing-bw.jpg" 537 alt="Dr. Julia Garcia" 538 class="w-full block object-cover" 539 style="aspect-ratio:3/4; object-position:center top;" 540 > 541 </div> 542 <!-- Right: text --> 543 <div style="padding-top:2rem;"> 544 <p class="font-serif text-[#0A1A2F] text-[clamp(1.3rem,2.5vw,1.8rem)] leading-[1.7]" style="font-weight:400;"> 545 I deliver keynotes around the country. I recently released the book, <em>The Five Habits of Hope</em>, published by HarperCollins. I am currently building an AI tool called MiniCh
545ats that does not answer for you but challenges you to answer for yourself. I speak at healthcare conferences, technology summits, association events, government agencies, and universities across the country. 546 </p> 547 <p class="font-serif text-[#0A1A2F] text-[clamp(1.3rem,2.5vw,1.8rem)] leading-[1.7] mt-8" style="font-weight:400;"> 548 The framework I teach was not developed in isolation or in a lab. It was built while being in the room with the people where hope was hardest to find, and it was built by someone who had to find it for herself first. 549 </p> 550 <p class="font-serif text-[#0A1A2F] text-[clamp(1.3rem,2.5vw,1.8rem)] leading-[1.7] mt-6" style="font-weight:400;"> 551 I do not do perfection. I deliver passion. Every time. 552 </p> 553 <p class="font-serif text-[#0A1A2F] text-[clamp(1.3rem,2.5vw,1.8rem)] leading-[1.7] mt-6" style="font-weight:400;"> 554 No self-help could have saved a story like mine. But a practice could. And did. And does. Every day. 555 </p> 556 </div> 557 </div> 558 559 <!-- Row 2: editorial photo mosaic â 4 photos staggered --> 560 <div class="max-w-[1400px] mx-auto px-6 pt-8 pb-10 now-mosaic" style="display:grid; grid-template-columns:1fr 1.2fr 0.8fr 1fr; gap:1.5rem; align-items:end;"> 561 <!-- White outfit walking â tall, shifted up --> 562 <div style="margin-top:-6rem;"> 563 <img 564 src="../assets/img/dr-julia-garcia-white-outfit-walking.jpg" 565 alt="Dr. Julia Garcia" 566 class="w-full object-cover" 567 style="aspect-ratio:2/3; object-position:center top;" 568 > 569 </div> 570 <!-- Backstage mirror â square, flush --> 571 <div> 572 <img 573 src="../assets/img/dr-julia-garcia-candid-moment.jpg" 574 alt="Dr. Julia Garcia backstage" 575 class="w-full object-cover" 576 style="aspect-ratio:4/5; object-position:center;" 577 > 578 </div> 579 <!-- Writing in journal â tall, shifted up --> 580 <div style="margin-top:-4rem;"> 581 <img 582 src="../assets/img/dr-julia-garcia-writing-journal-bw.jpg" 583 alt="Dr. Julia Garcia writing" 584 class="w-full object-cover" 585 style="aspect-ratio:2/3; object-position:center top;" 586 > 587 </div> 588 <!-- Dark portrait arms crossed â shorter, flush --> 589 <div> 590 <img 591 src="../assets/img/dr-julia-garcia-dark-portrait-arms.png" 592 alt="Dr. Julia Garcia portrait" 593 class="w-full object-cover" 594 style="aspect-ratio:3/4; object-position:center top;" 595 > 596 </div> 597 </div> 598</section> 599 600 601<!-- ââââââââââââââââââââââââââââââââ
602 IDENTITY â text | photo | text 603 ââââââââââââââââââââââââââââââââ --> 604<section style="background:#0A1A2F; padding:3rem 0; overflow:hidden;"> 605 <div class="max-w-[1400px] mx-auto px-6 identity-grid" style="display:grid; grid-template-columns:1fr auto 1fr; gap:3rem; align-items:center;"> 606 607 <!-- Left text --> 608 <div class="text-right"> 609 <p class="font-serif text-[#F4F1EA] leading-[1.2]" style="font-size:clamp(1.8rem,3.5vw,3.2rem); font-weight:500;"> 610 I am a poet. 611 </p> 612 <p class="font-serif text-[#F4F1EA] leading-[1.2] mt-3" style="font-size:clamp(1.8rem,3.5vw,3.2rem); font-weight:500;"> 613 I am a psychologist. 614 </p> 615 </div> 616 617 <!-- Center photo with glow --> 618 <div class="flex justify-center"> 619 <img 620 src="../assets/img/dr-julia-garcia-on-set-rooftop.jpg" 621 alt="Dr. Julia Garcia on set" 622 class="w-[340px] md:w-[420px] object-cover" 623 style="aspect-ratio:3/4; object-position:center; box-shadow: 0 0 30px 8px rgba(198,167,94,0.35), 0 0 60px 20px rgba(198,167,94,0.15), 0 0 100px 40px rgba(198,167,94,0.08);" 624 > 625 </div> 626 627 <!-- Right text --> 628 <div class="text-left"> 629 <p class="font-serif text-[#F4F1EA] leading-[1.2]" style="font-size:clamp(1.8rem,3.5vw,3.2rem); font-weight:500;"> 630 I am a biracial<br>Mexican-American woman<br>and mother. 631 </p> 632 <p class="font-serif text-[#F4F1EA] leading-[1.2] mt-3" style="font-size:clamp(1.8rem,3.5vw,3.2rem); font-weight:500;"> 633 I am a builder. 634 </p> 635 </div> 636 637 </div> 638</section> 639 640 641<!-- ââââââââââââââââââââââââââââââââ 642 THE STORIES THAT INSPIRE ME 643 ââââââââââââââââââââââââââââââââ --> 644<section id="stories-section" style="background:#F4F1EA; padding:5rem 0 1rem; overflow:hidden;"> 645 <!-- Animated title --> 646 <h2 class="stories-title font-display text-[#0A1A2F] text-center tracking-wide" 647 style="font-size:clamp(2rem,5.5vw,4.2rem); line-height:1.05; margin-bottom:4rem; padding:0 1.5rem; position:relative; z-index:10;"> 648 THE STORIES THAT INSPIRE ME<br>TO KEEP BUILDING 649 </h2> 650 <p class="stories-title font-serif italic text-[#0A1A2F] text-center" style="font-size:clamp(1.4rem,3vw,2.2rem); font-weight:400; margin-top:-2rem; margin-bottom:2.5rem; position:relative; z-index:10;"> 651 <span id="stories-counter">0</span> stories collected and counting 652 </p> 653 654 655 <!-- 3D cascading card gallery â full width --> 656 <div class="stories-gallery" style="perspective:1800px; position:relative; min-height:300px; width:100%; margin-top:1rem;"> 657 <div class="stories-fan" style="position:absolute; inset:0; transform-style:preserve-3d; transform:rotateX(5deg) rotateY(-18deg);"> 658 <img src="../assets/img/notecards/notecard-anxiety-1.jpg" alt="Handwritten notecard" class="fan-card" data-i="0"> 659 <img src="../assets/img/notecards/notecard-anxiety-2.jpg" alt="Handwritten notecard" class="fan-card" data-i="1"> 660 <img src="../assets/img/notecards/notecard-burden-1.jpg" alt="Handwritten notecard" class="fan-card" data-i="2"> 661 <img src="../assets/img/notecards/notecard-burden-2.jpg" alt="Handwritten notecard" class="fan-card" data-i="3"> 662 <img src="../assets/img/notecards/notecard-doubt-1.jpg" alt="Handwritten notecard" class="fan-card" data-i="4"> 663 <img src="../assets/img/notecards/notecard-doubt-2.jpg" alt="Handwritten notecard" class="fan-card" data-i="5"> 664 <img src="../assets/img/notecards/notecard-fear-1.jpg" alt="Handwritten notecard" class="fan-card" data-i="6"> 665 <img src="../assets/img/notecards/notecard-notenough-1.jpg" alt="Handwritten notecard" class="fan-card" data-i="7"> 666 <img src="../assets/img/notecards/notecard-pressure-1.jpg" alt="Handwritten notecard" class="fan-card" data-i="8"> 667 </div> 668 </div> 669 670 <!-- Lightbox overlay for viewing individual notecards --> 671 <div id="notecard-lightbox" class="notecard-lightbox"> 672 <button id="notecard-close" class="notecard-close" aria-label="Close">×</button> 673 <button id="notecard-prev" class="notecard-nav notecard-prev" aria-label="Previous">‹</button> 674 <button id="notecard-next" class="notecard-nav notecard-next" aria-label="Next">›</button> 675 <img id="notecard-lightbox-img" src="" alt="Handwritten notecard"> 676 </div> 677</section> 678 679<style> 680/* ââ Cascade card base ââ */ 681.fan-card { 682 position: absolute; 683 width: 260px; 684 height: auto; 685 max-height: 340px; 686 object-fit: cover; 687 border-radius: 4px; 688 box-shadow: 0 12px 40px rgba(0,0,0,0.3), 0 2px 10px rgba(0,0,0,0.12); 689 transform-origin: center center; 690 opacity: 0; 691 top: 50%; 692 margin-top: -120px; 693 /* start stacked in center */ 694 left: 50%; 695 margin-left: -130px; 696 transform: rotateY(-25deg) translateZ(0); 697 transition: transform 1.1s cubic-bezier(0.16, 1, 0.3, 1), 698 opacity 0.7s ease, 699 left 1.1s cubic-bezier(0.16, 1, 0.3, 1); 700} 701 702/* ââ Spread horizontally across full width, angled in Y ââ */ 703/* Each card is positioned via left % so they span edge to edge */ 704.stories-fan.fanned .fan-card[data-i="0"] { opacity:1; left:1%; margin-left:0; transform: rotateY(-25deg) translateZ(-40px); } 705.stories-fan.fanned .fan-card[data-i="1"] { opacity:1; left:9%; margin-left:0; transform: rotateY(-25deg) translateZ(0px); } 706.stories-fan.fanned .fan-card[data-i="2"] { opacity:1; left:18%; margin-left:0; transform: rotateY(-25deg) translateZ(40px); } 707.stories-fan.fanned .fan-card[data-i="3"] { opacity:1; left:27%; margin-left:0; transform: rotateY(-25deg) translateZ(80px); } 708.stories-fan.fanned .fan-card[data-i="4"] { opacity:1; left:38%; margin-left:0; transform: rotateY(-25deg) translateZ(120px); } 709.stories-fan.fanned .fan-card[data-i="5"] { opacity:1; left:49%; margin-left:0; transform: rotateY(-25deg) translateZ(160px); } 710.stories-fan.fanned .fan-card[data-i="6"] { opacity:1; left:59%; margin-left:0; transform: rotateY(-25deg) translateZ(200px); } 711.stories-fan.fanned .fan-card[data-i="7"] { opacity:1; left:69%; margin-left:0; transform: rotateY(-25deg) translateZ(240px); } 712.stories-fan.fanned .fan-card[data-i="8"] { opacity:1; left:78%; margin-left:0; transform: rotateY(-25deg) translateZ(280px); } 713 714/* stagger reveal left to right */ 715.fan-card[data-i="0"] { transition-delay: 0s; } 716.fan-card[data-i="1"] { transition-delay: 0.06s; } 717.fan-card[data-i="2"] { transition-delay: 0.12s; } 718.fan-card[data-i="3"] { transition-delay: 0.18s; } 719.fan-card[data-i="4"] { transition-delay: 0.24s; } 720.fan-card[data-i="5"] { transition-delay: 0.30s; } 721.fan-card[data-i="6"] { transition-delay: 0.36s; } 722.fan-card[data-i="7"] { transition-delay: 0.42s; } 723.fan-card[data-i="8"] { transition-delay: 0.48s; } 724 725/* z-index: right cards in front */ 726.fan-card[data-i="0"] { z-index:1; } 727.fan-card[data-i="1"] { z-index:2; } 728.fan-card[data-i="2"] { z-index:3; } 729.fan-card[data-i="3"] { z-index:4; } 730.fan-card[data-i="4"] { z-index:5; } 731.fan-card[data-i="5"] { z-index:6; } 732.fan-card[data-i="6"] { z-index:7; } 733.fan-card[data-i="7"] { z-index:8; } 734.fan-card[data-i="8"] { z-index:9; } 735 736/* ââ Card hover: lift & flatten to invite click ââ */ 737.fan-card { 738 cursor: pointer; 739} 740.stories-fan.fanned .fan-card:hover { 741 transform: rotateY(-8deg) translateZ(320px) scale(1.08) !important; 742 box-shadow: 0 20px 60px rgba(0,0,0,0.35), 0 4px 16px rgba(0,0,0,0.2);
743 z-index: 20 !important; 744} 745 746/* ââ Lightbox ââ */ 747.notecard-lightbox { 748 position: fixed; 749 inset: 0; 750 z-index: 9999; 751 background: rgba(10,26,47,0.88); 752 display: flex; 753 align-items: center; 754 justify-content: center; 755 opacity: 0; 756 pointer-events: none; 757 transition: opacity 0.4s ease; 758 backdrop-filter: blur(8px); 759 -webkit-backdrop-filter: blur(8px); 760} 761.notecard-lightbox.open { 762 opacity: 1; 763 pointer-events: auto; 764} 765.notecard-lightbox img { 766 max-width: 85vw; 767 max-height: 80vh; 768 border-radius: 6px; 769 box-shadow: 0 20px 80px rgba(0,0,0,0.5); 770 transform: scale(0.85); 771 transition: transform 0.5s cubic-bezier(0.16, 1, 0.3, 1); 772} 773.notecard-lightbox.open img { 774 transform: scale(1); 775} 776.notecard-close { 777 position: absolute; 778 top: 1.5rem; 779 right: 2rem; 780 background: none; 781 border: none; 782 color: #F4F1EA; 783 font-size: 2.5rem; 784 cursor: pointer; 785 opacity: 0.7; 786 transition: opacity 0.2s; 787 line-height: 1; 788} 789.notecard-close:hover { opacity: 1; } 790.notecard-nav { 791 position: absolute; 792 top: 50%; 793 transform: translateY(-50%); 794 background: none; 795 border: none; 796 color: #F4F1EA; 797 font-size: 3.5rem; 798 cursor: pointer; 799 opacity: 0.6; 800 transition: opacity 0.2s; 801 line-height: 1; 802 padding: 0.5rem; 803} 804.notecard-nav:hover { opacity: 1; } 805.notecard-prev { left: 1.5rem; } 806.notecard-next { right: 1.5rem; } 807 808/* ââ Title animation ââ */ 809.stories-title { 810 opacity: 0; 811 transform: translateY(50px); 812 transition: opacity 0.9s cubic-bezier(0.16, 1, 0.3, 1), 813 transform 0.9s cubic-bezier(0.16, 1, 0.3, 1); 814} 815.stories-title.visible { 816 opacity: 1; 817 transform: translateY(0); 818} 819 820/* ââ Mobile ââ */ 821@media (max-width: 768px) { 822 .stories-gallery { min-height: 360px; } 823 .stories-fan { transform: rotateX(4deg) rotateY(-14deg); } 824 .fan-card { 825 width: 140px; 826 max-height: 190px; 827 margin-top: -95px; 828 margin-left: -70px; 829 } 830 .stories-fan.fanned .fan-card[data-i="0"] { left:0%; margin-left:0; transform: rotateY(-20deg) translateZ(-20px); } 831 .stories-fan.fanned .fan-card[data-i="1"] { left:8%; margin-left:0; transform: rotateY(-20deg) translateZ(0px); } 832 .stories-fan.fanned .fan-card[data-i="2"] { left:16%; margin-left:0; transform: rotateY(-20deg) translateZ(20px); } 833 .stories-fan.fanned .fan-card[data-i="3"] { left:24%; margin-left:0; transform: rotateY(-20deg) translateZ(40px); } 834 .stories-fan.fanned .fan-card[data-i="4"] { left:34%; margin-left:0; transform: rotateY(-20deg) translateZ(60px); } 835 .stories-fan.fanned .fan-card[data-i="5"] { left:44%; margin-left:0; transform: rotateY(-20deg) translateZ(80px); } 836 .stories-fan.fanned .fan-card[data-i="6"] { left:54%; margin-left:0; transform: rotateY(-20deg) translateZ(100px); } 837 .stories-fan.fanned .fan-card[data-i="7"] { left:64%; margin-left:0; transform: rotateY(-20deg) translateZ(120px); } 838 .stories-fan.fanned .fan-card[data-i="8"] { left:74%; margin-left:0; transform: rotateY(-20deg) translateZ(140px); } 839} 840</style> 841
842<script> 843(function() { 844 const section = document.getElementById('stories-section'); 845 if (!section) return; 846 const title = section.querySelector('.stories-title'); 847 const fan = section.querySelector('.stories-fan'); 848 let triggered = false; 849 850 function check() { 851 if (triggered) return; 852 const rect = section.getBoundingClientRect(); 853 if (rect.top < window.innerHeight * 0.8) { 854 triggered = true; 855 section.querySelectorAll('.stories-title').forEach(function(el) { el.classList.add('visible'); }); 856 // animate counter 857 var counter = document.getElementById('stories-counter'); 858 var target = 250000; 859 var duration = 2000; 860 var start = performance.now(); 861 function tick(now) { 862 var elapsed = now - start; 863 var progress = Math.min(elapsed / duration, 1); 864 var ease = 1 - Math.pow(1 - progress, 3); 865 counter.textContent = Math.floor(ease * target).toLocaleString(); 866 if (progress < 1) requestAnimationFrame(tick); 867 } 868 setTimeout(function() { requestAnimationFrame(tick); }, 600); 869 setTimeout(() => fan.classList.add('fanned'), 400); 870 } 871 } 872 window.addEventListener('scroll', check, { passive: true }); 873 check(); 874 875 // ââ Lightbox logic ââ 876 const cards = section.querySelectorAll('.fan-card'); 877 const lightbox = document.getElementById('notecard-lightbox'); 878 const lbImg = document.getElementById('notecard-lightbox-img'); 879 const btnClose = document.getElementById('notecard-close'); 880 const btnPrev = document.getElementById('notecard-prev'); 881 const btnNext = document.getElementById('notecard-next'); 882 let currentIdx = 0; 883 884 function openCard(i) { 885 currentIdx = i; 886 lbImg.src = cards[i].src; 887 lightbox.classList.add('open'); 888 document.body.style.overflow = 'hidden'; 889 } 890 function closeCard() { 891 lightbox.classList.remove('open'); 892 document.body.style.overflow = ''; 893 } 894 function prevCard() { 895 currentIdx = (currentIdx - 1 + cards.length) % cards.length; 896 lbImg.src = cards[currentIdx].src; 897 } 898 function nextCard() { 899 currentIdx = (currentIdx + 1) % cards.length; 900 lbImg.src = cards[currentIdx].src; 901 } 902 903 cards.forEach(function(card, i) { 904 card.addEventListener('click', function() { openCard(i); }); 905 }); 906 btnClose.addEventListener('click', closeCard); 907 btnPrev.addEventListener('click', prevCard); 908 btnNext.addEventListener('click', nextCard); 909 lightbox.addEventListener('click', function(e) { 910 if (e.target === lightbox) closeCard(); 911 }); 912 document.addEventListener('keydown', function(e) { 913 if (!lightbox.classList.contains('open')) return; 914 if (e.key === 'Escape') closeCard(); 915 if (e.key === 'ArrowLeft') prevCard(); 916 if (e.key === 'ArrowRight') nextCard(); 917 }); 918})(); 919</script>
919 920 921 922<!-- ââââââââââââââââââââââââââââââââ 923 I LOVE BUILDING 924 ââââââââââââââââââââââââââââââââ --> 925<section id="build-section" style="background:#F4F1EA; padding:6rem 0; overflow:hidden;"> 926 <div class="max-w-5xl mx-auto px-6 text-center"> 927 <p class="build-line font-serif italic text-[#0A1A2F] leading-[1.3] mb-8" style="font-size:clamp(1.8rem,3.5vw,2.8rem); font-weight:400;"> 928 I love building. 929 </p> 930 <h2 class="build-line font-display text-[#0A1A2F] leading-[0.92] mb-8" style="font-size:clamp(2.8rem,7vw,6rem); letter-spacing:-0.01em; font-weight:700;"> 931 WHETHER IT’S COMMUNITY,<br>TECHNOLOGY OR A STRONG<br>CUP OF ESPRESSO, 932 </h2> 933 <p class="build-line font-serif italic text-[#0A1A2F] leading-[1.3] mb-10" style="font-size:clamp(1.8rem,4vw,3.2rem); font-weight:400;"> 934 I am built to <span class="font-display uppercase not-italic tracking-wide" style="font-weight:700; font-size:1.2em;">BUILD</span> 935 </p> 936 <a href="../contact/" class="build-line inline-block bg-[#C6A75E] text-[#0A1A2F] px-10 py-4 font-sans font-semibold text-sm uppercase tracking-[0.2em] hover:bg-[#b0943f] transition-colors"> 937 Let’s Build Together → 938 </a> 939 </div> 940</section> 941 942<style> 943/* Vercel Ship-style: lines slide up + fade in on scroll */ 944.build-line { 945 opacity: 0; 946 transform: translateY(40px); 947 transition: opacity 0.8s cubic-bezier(0.16, 1, 0.3, 1), 948 transform 0.8s cubic-bezier(0.16, 1, 0.3, 1); 949} 950.build-line.build-visible { 951 opacity: 1; 952 transform: translateY(0); 953} 954</style> 955
956<script> 957(function() { 958 const section = document.getElementById('build-section'); 959 if (!section) return; 960 const lines = section.querySelectorAll('.build-line'); 961 let triggered = false; 962 function check() { 963 if (triggered) return; 964 const rect = section.getBoundingClientRect(); 965 if (rect.top < window.innerHeight * 0.75) { 966 triggered = true; 967 lines.forEach((el, i) => { 968 setTimeout(() => el.classList.add('build-visible'), i * 200); 969 }); 970 } 971 } 972 window.addEventListener('scroll', check, { passive: true }); 973 check(); 974})(); 975</script>
975 976 977 978<!-- ââââââââââââââââââââââââââââââââ 979 SPEAKING REEL â full width 980 ââââââââââââââââââââââââââââââââ --> 981<section class="relative overflow-hidden" style="min-height:60vh;"> 982 <!-- Video background --> 983 <video autoplay muted loop playsinline class="absolute inset-0 w-full h-full object-cover"> 984 <source src="../assets/video/dr-julia-garcia-female-keynote-ai-speaker-health.mp4" type="video/mp4"> 985 </video> 986 <!-- Dark overlay --> 987 <div class="absolute inset-0 bg-night/60"></div> 988 <!-- Content --> 989 <div class="relative z-10 flex flex-col items-center justify-center text-center py-20 md:py-28"> 990 <h2 class="font-display text-white text-center tracking-wide" style="font-size:clamp(2.5rem,7vw,5.5rem); line-height:1; margin-bottom:2rem;"> 991 LET’S BUILD TOGETHER 992 </h2> 993 <a href="../contact/" class="inline-block font-sans text-white font-semibold uppercase tracking-[0.15em] text-sm px-10 py-4 transition-all hover:scale-105" style="background:#C6A75E; letter-spacing:0.15em;"> 994 Get in Touch 995 </a> 996 </div> 997</section> 998 999 1000<!-- ââââââââââââââââââââââââââââââââ 1001 FOOTER 1002 ââââââââââââââââââââââââââââââââ --> 1003<footer class="relative overflow-hidden" style="background: #0A1A2F url('../assets/img/footer-bg.jpg') center center / cover no-repeat;"> 1004 <!-- Curve crops the top of the image, arcing upward --> 1005 <div class="relative z-10" style="margin-top: -1px;" aria-hidden="true"> 1006 <svg viewBox="0 0 1200 120" preserveAspectRatio="none" class="w-full h-[80px] md:h-[100px]" style="display: block;"> 1007 <path d="M0,0 L1200,0 L1200,120 Q600,20 0,120 Z" fill="rgb(var(--c-paper))"/> 1008 </svg> 1009 </div> 1010 <!-- Dark overlay for readability --> 1011 <div class="absolute inset-0 bg-deep/70"></div> 1012 1013 <div class="relative z-10"> 1014 <!-- Name lockup --> 1015 <div class="text-center pt-32 md:pt-40 pb-6"> 1016 <span class="font-marker text-6xl md:text-7xl lg:text-8xl text-cream/80">Dr. Julia Garcia</span> 1017 </div> 1018 1019 <div class="max-w-6xl mx-auto px-6 py-16"> 1020 <div class="grid grid-cols-1 md:grid-cols-3 gap-12"> 1021 <!-- Navigation --> 1022 <div> 1023 <h4 class="text-[13px] uppercase tracking-[0.15em] text-cream font-sans font-medium mb-5">Navigation</h4> 1024 <ul class="space-y-3"> 1025 <li><a href="../meet-julia/" class="text-sm text-cream/60 hover:text-accent transition-colors font-sans">Meet Dr. J</a></li> 1026 <li><a href="../speaking/" class="text-sm text-cream/60 hover:text-accent transition-colors font-sans">Speaking</a></li> 1027 <li class="pl-3"><a href="../speaking/" class="text-xs text-cream/40 hover:text-accent transition-colors font-sans">Educators & Staff</a></li> 1028 <li class="pl-3"><a href="../speaking-college-university/" class="text-xs text-cream/40 hover:text-accent transition-colors font-sans">College & University</a></li> 1029 <li class="pl-3"><a href="../speaking-student/" class="text-xs text-cream/40 hover:text-accent transition-colors font-sans">Grade 6-12 Students</a></li> 1030 <li><a href="../habitsofhope/" class="text-sm text-cream/60 hover:text-accent transition-colors font-sans">The Book</a></li> 1031 <li><a href="../podcast/" class="text-sm text-cream/60 hover:text-accent transition-colors font-sans">Podcast</a></li> 1032 <li><a href="../contact/" class="text-sm text-cream/60 hover:text-accent transition-colors font-sans">Contact</a></li> 1033 </ul> 1034 </div> 1035 <!-- Social --> 1036 <div> 1037 <h4 class="text-[13px] uppercase tracking-[0.15em] text-cream font-sans font-medium mb-5">Social</h4> 1038 <ul class="space-y-3"> 1039 <li><a href="https://www.instagram.com/drjuliagarcia/" target="_blank" rel="noopener" class="inline-flex items-center gap-2 text-sm text-cream/60 hover:text-accent transition-colors font-sans">Instagram</a></li> 1040 <li><a href="https://www.linkedin.com/in/juliagarcianyc" target="_blank" rel="noopener" class="inline-flex items-center gap-2 text-sm text-cream/60 hover:text-accent transition-colors font-sans">LinkedIn</a></li> 1041 </ul> 1042 </div> 1043 <!-- Subscribe --> 1044 <div> 1045 <h4 class="text-[13px] uppercase tracking-[0.15em] text-cream font-sans font-medium mb-5">Stay Connected</h4> 1046
1046<script async data-uid="406ffea2cb" src="https://sincerely-drj.kit.com/406ffea2cb/index.js"></script>
1046 1047 </div> 1048 </div> 1049 1050 <!-- Bottom bar --> 1051 <div class="mt-14 pt-6 border-t border-cream/10 flex flex-col md:flex-row justify-between items-center gap-4"> 1052 <span class="text-sm text-cream/40 font-sans">© Dr Julia Garcia | Represented by <a href="https://topyouthspeakers.com/speakers-topics/julia-garcia" target="_blank" rel="noopener" class="text-accent-bright hover:text-accent transition-colors">TYS Speakers</a></span> 1053 </div> 1054 </div> 1055 </div> 1056</footer> 1057 1058 1059<!-- ââ Scripts ââ -->
1060<script> 1061// Header scroll effect 1062const header = document.getElementById('site-header'); 1063window.addEventListener('scroll', () => { 1064 header.classList.toggle('header-scrolled', window.scrollY > 60); 1065}); 1066 1067// Mobile nav 1068const toggle = document.getElementById('nav-toggle'); 1069const menu = document.getElementById('nav-menu'); 1070const overlay = document.getElementById('nav-overlay'); 1071const close = document.getElementById('nav-close'); 1072function openNav(){ menu.classList.add('nav-open'); overlay.classList.remove('hidden'); document.body.style.overflow='hidden'; } 1073function closeNav(){ menu.classList.remove('nav-open'); overlay.classList.add('hidden'); document.body.style.overflow=''; } 1074toggle.addEventListener('click', openNav); 1075close.addEventListener('click', closeNav); 1076overlay.addEventListener('click', closeNav); 1077 1078// Scroll-triggered animations 1079const observer = new IntersectionObserver((entries) => { 1080 entries.forEach(entry => { 1081 if (entry.isIntersecting) { 1082 // Bio lines 1083 entry.target.querySelectorAll('.bio-line').forEach(el => el.classList.add('visible')); 1084 // Photo 1085 if (entry.target.classList.contains('photo-reveal')) entry.target.classList.add('visible'); 1086 // Splash words â splash in, then continuous float + glow via CSS 1087 entry.target.querySelectorAll('.splash-word').forEach(el => { 1088 el.classList.add('visible'); 1089 }); 1090 observer.unobserve(entry.target); 1091 } 1092 }); 1093}, { threshold: 0.2 }); 1094 1095// Observe the editorial section 1096document.querySelectorAll('.bio-col, .photo-reveal, .splash-col').forEach(el => { 1097 observer.observe(el); 1098}); 1099 1100// ââ Journey scroll-reveal (Base Design style) ââ 1101(function() { 1102 const lines = document.querySelectorAll('#journey-text .journey-line'); 1103 const section = document.getElementById('journey-section'); 1104 if (!section || !lines.length) return; 1105 1106 function updateJourney() { 1107 const rect = section.getBoundingClientRect(); 1108 const vh = window.innerHeight; 1109 // Progress: 0 when section top hits viewport bottom, 1 when section bottom hits viewport top 1110 const totalScroll = rect.height + vh; 1111 const scrolled = vh - rect.top; 1112 const progress = Math.max(0, Math.min(1, scrolled / totalScroll)); 1113 1114 // Map progress to line reveals â each line lights up progressively 1115 const step = 1 / (lines.length + 2); // +2 gives breathing room 1116 lines.forEach((line, i) => { 1117 const threshold = step * (i + 1); 1118 if (progress >= threshold) { 1119 line.classList.add('lit'); 1120 } else { 1121 line.classList.remove('lit'); 1122 } 1123 }); 1124 1125 // Also light up the heading 1126 const heading = section.querySelector('h2.journey-line'); 1127 if (heading) { 1128 if (progress >= step * 0.3) heading.classList.add('lit'); 1129 else heading.classList.remove('lit'); 1130 } 1131 } 1132 1133 window.addEventListener('scroll', updateJourney, { passive: true }); 1134 updateJourney(); 1135})(); 1136</script>
vendor: 1 bytes, line 1136
1136
1137<script type="module" src="https://static.cloudflareinsights.com/beacon.min.js/v4bc70e2c01a94c73b74392e4234840661791215815920" integrity="sha512-L0ha0OXavK/8okipN9F8BtP84dg9DUhPERbBXzwI6dgTA55d2+yweo3pn5CSFYs45/r8md2+xvUPtTdvTNRfjA==" data-cf-beacon='{"version":"2024.11.0","token":"81b48577ad3441e69b7c0e4ad2679678","r":1,"spa":2}' crossorigin="anonymous"></script>
1137 1138</body> 1139</html>
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.