:root {
  --pink: #F7C5D8; --pink2: #EE9BB8; --pink3: #FDF0F5;
  --green: #B8D99C; --green2: #8DC96E; --green3: #E8F5D9;
  --yellow: #FFE066; --yellow2: #FFCD00; --yellow3: #FFF9D6;
  --ink: #1C1A17; --charcoal: #3B3530; --muted: #7A6E68;
  --white: #FFFFFF; --cream: #FDFAF6; --border: rgba(28,26,23,0.10);
  --shadow: 0 4px 24px rgba(28,26,23,0.07);
  --shadow-md: 0 8px 36px rgba(28,26,23,0.11);
}
*,*::before,*::after{margin:0;padding:0;box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{font-family:'Nunito',sans-serif;background:var(--cream);color:var(--ink);line-height:1.7;overflow-x:hidden;}

/* NAV */
nav{position:fixed;top:0;left:0;right:0;z-index:999;background:rgba(253,250,246,.94);backdrop-filter:blur(18px);border-bottom:1px solid var(--border);display:flex;align-items:center;justify-content:space-between;padding:0 3.5rem;height:66px;}
.nav-logo{font-family:'Playfair Display',serif;font-size:19px;font-weight:600;color:var(--ink);}
.nav-logo span{color:var(--green2);font-style:italic;}
.nav-links{display:flex;gap:2rem;list-style:none;align-items:center;}
.nav-links a{font-size:13px;font-weight:600;color:var(--muted);text-decoration:none;transition:color .2s;}
.nav-links a:hover{color:var(--ink);}
.nav-cta{background:var(--ink)!important;color:var(--cream)!important;padding:8px 20px;border-radius:50px;font-size:12px!important;}

/* HERO */
.hero{min-height:100vh;display:grid;grid-template-columns:1.1fr 1fr;background:linear-gradient(145deg,var(--pink3) 0%,var(--yellow3) 45%,var(--green3) 100%);overflow:hidden;position:relative;}
.hero::before{content:'';position:absolute;width:560px;height:560px;border-radius:50%;background:radial-gradient(circle,rgba(247,197,216,.45),transparent 70%);top:-120px;right:0;pointer-events:none;}
.hero::after{content:'';position:absolute;width:360px;height:360px;border-radius:50%;background:radial-gradient(circle,rgba(184,217,156,.35),transparent 70%);bottom:-60px;left:8%;pointer-events:none;}
.hero-left{padding:9rem 3.5rem 4rem;display:flex;flex-direction:column;justify-content:center;position:relative;z-index:2;}
.hero-tag{display:inline-flex;align-items:center;gap:8px;background:var(--white);border:1.5px solid var(--pink);padding:7px 18px;border-radius:50px;font-size:12px;font-weight:700;color:var(--charcoal);margin-bottom:1.75rem;box-shadow:var(--shadow);width:fit-content;}
.dot{width:8px;height:8px;border-radius:50%;background:var(--green2);animation:pulse 2s infinite;}
@keyframes pulse{0%,100%{opacity:1;transform:scale(1)}50%{opacity:.55;transform:scale(1.4)}}
.hero-h1{font-family:'Playfair Display',serif;font-size:clamp(46px,5.5vw,72px);font-weight:700;line-height:1.06;letter-spacing:-.5px;color:var(--ink);margin-bottom:1rem;}
.hero-h1 em{font-style:italic;color:var(--green2);}
.hero-role{font-size:12px;font-weight:800;letter-spacing:3px;text-transform:uppercase;color:var(--muted);margin-bottom:1.25rem;}
.hero-desc{font-size:15px;line-height:1.85;color:var(--charcoal);max-width:500px;margin-bottom:2.5rem;}
.hero-btns{display:flex;gap:1rem;flex-wrap:wrap;}
.btn-dark{background:var(--ink);color:var(--cream);padding:13px 30px;border-radius:50px;font-size:13px;font-weight:700;text-decoration:none;transition:all .2s;}
.btn-dark:hover{background:var(--charcoal);transform:translateY(-2px);}
.btn-soft{background:var(--white);color:var(--ink);padding:13px 30px;border-radius:50px;font-size:13px;font-weight:700;text-decoration:none;border:2px solid var(--border);transition:all .2s;}
.btn-soft:hover{border-color:var(--green2);color:var(--green2);}
.hero-right{display:flex;align-items:center;justify-content:center;padding:6rem 3rem;position:relative;z-index:2;}
.photo-ring-wrap{position:relative;width:340px;height:340px;}
.photo-ring{position:absolute;inset:-14px;border-radius:50%;background:conic-gradient(var(--pink2),var(--yellow2),var(--green2),var(--pink2));animation:spin 14s linear infinite;z-index:0;}
@keyframes spin{from{transform:rotate(0)}to{transform:rotate(360deg)}}
.photo-circle{width:340px;height:340px;border-radius:50%;overflow:hidden;position:relative;z-index:1;box-shadow:var(--shadow-md);}
.photo-circle img{width:100%;height:100%;object-fit:cover;object-position:top;}
.hero-chip{position:absolute;background:var(--white);border-radius:14px;padding:11px 15px;box-shadow:var(--shadow-md);display:flex;align-items:center;gap:10px;z-index:2;}
.hero-chip.c1{bottom:10px;left:-30px;}
.hero-chip.c2{top:20px;right:-20px;}
.chip-ico{font-size:22px;}
.chip-t strong{display:block;font-size:12px;color:var(--ink);font-weight:800;}
.chip-t span{font-size:10px;color:var(--muted);}

/* SHARED */
section{padding:88px 3.5rem;}
.s-pill{display:inline-flex;align-items:center;gap:8px;font-size:11px;font-weight:800;letter-spacing:2.5px;text-transform:uppercase;color:var(--charcoal);margin-bottom:.9rem;}
.s-pill::before{content:'';width:22px;height:3px;border-radius:2px;background:var(--green2);}
.s-h2{font-family:'Playfair Display',serif;font-size:clamp(32px,3.8vw,50px);font-weight:700;line-height:1.1;color:var(--ink);letter-spacing:-.3px;margin-bottom:1.1rem;}
.s-h2 em{font-style:italic;color:var(--green2);}
.s-body{font-size:14px;line-height:1.85;color:var(--muted);max-width:640px;}
.pinkrule{width:48px;height:3px;background:linear-gradient(90deg,var(--pink2),var(--yellow2));border-radius:2px;margin:.9rem 0 1.5rem;}

/* ABOUT */
.about{background:var(--white);}
.about-grid{display:grid;grid-template-columns:1fr 1.15fr;gap:5rem;align-items:start;max-width:1160px;margin:0 auto;}
.photo-frame{position:relative;}
.about-photo{width:100%;border-radius:22px;display:block;object-fit:cover;object-position:top;max-height:480px;box-shadow:var(--shadow-md);}
.photo-sq{position:absolute;bottom:-14px;right:-14px;width:100px;height:100px;border-radius:14px;background:var(--yellow2);z-index:-1;opacity:.55;}
.photo-circ{position:absolute;top:-10px;left:-10px;width:70px;height:70px;border-radius:50%;background:var(--pink);z-index:-1;opacity:.45;}
.edu-stack{display:flex;flex-direction:column;gap:.8rem;margin-top:1.5rem;}
.edu-card{background:var(--cream);border-radius:12px;padding:1rem 1.25rem;border-left:4px solid var(--green2);}
.edu-deg{font-size:13px;font-weight:800;color:var(--ink);}
.edu-school{font-size:12px;color:var(--muted);}
.stat-row{display:flex;gap:1rem;margin-top:1.5rem;flex-wrap:wrap;}
.stat-b{background:var(--pink3);border-radius:14px;padding:1rem 1.25rem;flex:1;min-width:100px;text-align:center;border:1px solid var(--pink);}
.stat-b.green{background:var(--green3);border-color:var(--green);}
.stat-b.yellow{background:var(--yellow3);border-color:var(--yellow2);}
.stat-n{font-family:'Playfair Display',serif;font-size:34px;font-weight:700;color:var(--ink);line-height:1;}
.stat-l{font-size:10px;font-weight:800;letter-spacing:1px;text-transform:uppercase;color:var(--muted);margin-top:4px;}
.chips{display:flex;flex-wrap:wrap;gap:7px;margin-top:1.25rem;}
.chip-pill{background:var(--cream);color:var(--charcoal);font-size:11px;font-weight:600;padding:5px 13px;border-radius:50px;border:1px solid var(--border);}
.chip-pill.g{background:var(--green3);border-color:var(--green2);}
.chip-pill.p{background:var(--pink3);border-color:var(--pink2);}
.chip-pill.y{background:var(--yellow3);border-color:var(--yellow2);}

/* PASSION STRIP */
.passion{background:var(--ink);padding:56px 3.5rem;color:var(--cream);}
.passion-inner{max-width:1100px;margin:0 auto;}
.passion blockquote{font-family:'Playfair Display',serif;font-size:clamp(20px,2.5vw,30px);font-style:italic;font-weight:400;color:var(--cream);line-height:1.55;max-width:820px;margin:0 auto 1.25rem;text-align:center;}
.passion cite{display:block;text-align:center;font-size:11px;letter-spacing:2.5px;text-transform:uppercase;color:var(--green2);font-style:normal;}
.passion-steps{display:grid;grid-template-columns:repeat(5,1fr);gap:1px;background:rgba(253,250,246,.08);margin-top:3.5rem;border-radius:16px;overflow:hidden;}
.p-step{background:rgba(253,250,246,.03);padding:1.75rem 1.25rem;text-align:center;}
.p-step-n{font-family:'Playfair Display',serif;font-size:38px;font-weight:300;color:var(--green2);line-height:1;margin-bottom:.5rem;opacity:.8;}
.p-step-t{font-size:12px;font-weight:800;color:var(--cream);margin-bottom:.4rem;letter-spacing:.3px;}
.p-step-b{font-size:11px;color:rgba(253,250,246,.5);line-height:1.55;}

/* PROJECTS */
.projects{background:var(--cream);}
.projects-inner{max-width:1160px;margin:0 auto;}

/* featured */
.pf{background:linear-gradient(130deg,var(--pink3),var(--yellow3));border-radius:26px;padding:2.75rem;display:grid;grid-template-columns:1.1fr 1fr;gap:2.75rem;align-items:center;border:1px solid var(--pink);box-shadow:var(--shadow);margin-bottom:1.5rem;position:relative;overflow:hidden;}
.pf::before{content:'01';font-family:'Playfair Display',serif;font-size:160px;font-weight:700;color:rgba(28,26,23,.04);position:absolute;top:-20px;right:30px;line-height:1;pointer-events:none;}
.ptype{font-size:10px;font-weight:800;letter-spacing:2px;text-transform:uppercase;color:var(--green2);margin-bottom:.6rem;}
.ptitle{font-family:'Playfair Display',serif;font-size:26px;font-weight:700;color:var(--ink);line-height:1.25;margin-bottom:1rem;letter-spacing:-.2px;}
.pthink{background:var(--white);border-radius:14px;padding:1.25rem;margin-bottom:1rem;border-left:4px solid var(--green2);}
.pthink-label{font-size:9px;font-weight:800;letter-spacing:2px;text-transform:uppercase;color:var(--green2);margin-bottom:4px;}
.pthink-text{font-size:12px;color:var(--charcoal);line-height:1.65;}
.pdesc{font-size:13px;line-height:1.8;color:var(--charcoal);margin-bottom:1.1rem;}
.ptags{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:1.25rem;}
.ptag{font-size:10px;font-weight:600;padding:4px 10px;border-radius:50px;background:var(--white);color:var(--muted);border:1px solid var(--border);}
.plink{display:inline-flex;align-items:center;gap:7px;background:var(--ink);color:var(--cream);padding:11px 24px;border-radius:50px;font-size:12px;font-weight:700;text-decoration:none;transition:all .2s;}
.plink:hover{background:var(--charcoal);transform:translateY(-1px);}
.plink::after{content:'→';transition:transform .2s;}
.plink:hover::after{transform:translateX(3px);}

/* LEAP visual */
.leap-frame{background:var(--white);border-radius:18px;padding:1.5rem;box-shadow:var(--shadow);}
.leap-hl{font-size:10px;font-weight:800;letter-spacing:2px;text-transform:uppercase;color:var(--muted);margin-bottom:1rem;}
.leap-row{display:flex;gap:.9rem;align-items:flex-start;padding:.8rem;border-radius:11px;margin-bottom:6px;}
.leap-row:nth-child(2){background:var(--pink3);}
.leap-row:nth-child(3){background:var(--yellow3);}
.leap-row:nth-child(4){background:var(--green3);}
.leap-row:nth-child(5){background:var(--pink3);}
.leap-l{font-family:'Playfair Display',serif;font-size:28px;font-weight:700;color:var(--ink);line-height:1;width:32px;flex-shrink:0;}
.leap-w{font-size:12px;font-weight:800;color:var(--ink);margin-bottom:2px;}
.leap-q{font-size:10px;color:var(--muted);line-height:1.45;font-style:italic;}

/* Project grid */
.pgrid{display:grid;grid-template-columns:1fr 1fr;gap:1.25rem;margin-bottom:1.25rem;}
.pc{background:var(--white);border-radius:22px;padding:2.25rem;border:1px solid var(--border);box-shadow:var(--shadow);transition:all .25s;position:relative;overflow:hidden;}
.pc:hover{transform:translateY(-4px);box-shadow:var(--shadow-md);}
.pc::before{content:'';position:absolute;top:0;left:0;right:0;height:4px;border-radius:22px 22px 0 0;}
.pc.pink::before{background:linear-gradient(90deg,var(--pink2),var(--pink));}
.pc.green::before{background:linear-gradient(90deg,var(--green2),var(--green));}
.pc.yellow::before{background:linear-gradient(90deg,var(--yellow2),var(--yellow));}
.pc.dark{background:var(--ink);}
.pc.dark::before{background:linear-gradient(90deg,var(--green2),var(--yellow2));}
.pc-n{font-family:'Playfair Display',serif;font-size:44px;font-weight:300;color:rgba(28,26,23,.06);line-height:1;margin-bottom:.8rem;}
.pc.dark .pc-n{color:rgba(253,250,246,.06);}
.pc-ico{font-size:28px;margin-bottom:.7rem;display:block;}
.pc-type{font-size:9px;font-weight:800;letter-spacing:2px;text-transform:uppercase;color:var(--green2);margin-bottom:.4rem;}
.pc-title{font-family:'Playfair Display',serif;font-size:19px;font-weight:700;color:var(--ink);margin-bottom:.7rem;line-height:1.3;}
.pc.dark .pc-title{color:var(--cream);}
.pc-think{background:var(--cream);border-radius:11px;padding:.85rem 1rem;margin-bottom:.85rem;}
.pc.dark .pc-think{background:rgba(253,250,246,.06);}
.pc-think-l{font-size:9px;font-weight:800;letter-spacing:1.5px;text-transform:uppercase;color:var(--green2);margin-bottom:3px;}
.pc-think-t{font-size:11px;color:var(--charcoal);line-height:1.6;}
.pc.dark .pc-think-t{color:rgba(253,250,246,.65);}
.pc-desc{font-size:12px;color:var(--muted);line-height:1.75;margin-bottom:1rem;}
.pc.dark .pc-desc{color:rgba(253,250,246,.5);}
.pc-tags{display:flex;flex-wrap:wrap;gap:5px;}
.pc-tag{font-size:9px;font-weight:700;padding:3px 9px;border-radius:50px;background:var(--cream);color:var(--muted);border:1px solid var(--border);}
.pc.dark .pc-tag{background:rgba(253,250,246,.07);color:rgba(253,250,246,.45);border-color:rgba(253,250,246,.1);}

/* EFL K12 project card — special inline display */
.efl-card{background:var(--white);border-radius:22px;border:1px solid var(--border);box-shadow:var(--shadow);overflow:hidden;margin-bottom:1.5rem;}
.efl-header{background:linear-gradient(135deg,var(--green3),var(--yellow3));padding:2rem 2.5rem;display:grid;grid-template-columns:1fr auto;gap:2rem;align-items:start;}
.efl-badge{background:var(--green2);color:var(--ink);font-size:10px;font-weight:800;letter-spacing:2px;text-transform:uppercase;padding:5px 14px;border-radius:50px;display:inline-block;margin-bottom:.75rem;}
.efl-body{padding:2rem 2.5rem;}
.efl-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem;margin-top:1.5rem;}
.efl-item{background:var(--cream);border-radius:14px;padding:1.25rem;border:1px solid var(--border);}
.efl-item-ico{font-size:24px;margin-bottom:.5rem;}
.efl-item-title{font-size:12px;font-weight:800;color:var(--ink);margin-bottom:4px;}
.efl-item-desc{font-size:11px;color:var(--muted);line-height:1.55;}

/* RESUME */
.resume-section{background:var(--pink3);padding:88px 3.5rem;}
.resume-inner{max-width:1160px;margin:0 auto;}
.resume-frame{background:var(--white);border-radius:22px;padding:2.5rem;box-shadow:var(--shadow-md);border:1px solid var(--pink);}
.resume-top{display:grid;grid-template-columns:1fr auto;gap:2rem;align-items:start;margin-bottom:2rem;padding-bottom:2rem;border-bottom:1px solid var(--border);}
.resume-name{font-family:'Playfair Display',serif;font-size:30px;font-weight:700;color:var(--ink);margin-bottom:.25rem;}
.resume-title-r{font-size:12px;font-weight:800;letter-spacing:2px;text-transform:uppercase;color:var(--green2);margin-bottom:.5rem;}
.resume-contact{font-size:12px;color:var(--muted);line-height:1.7;}
.resume-contact a{color:var(--ink);text-decoration:none;}
.resume-dl-btn{display:inline-flex;align-items:center;gap:8px;background:var(--ink);color:var(--cream);padding:12px 22px;border-radius:50px;font-size:12px;font-weight:700;text-decoration:none;transition:all .2s;white-space:nowrap;}
.resume-dl-btn:hover{background:var(--charcoal);}
.resume-section-h{font-size:10px;font-weight:800;letter-spacing:3px;text-transform:uppercase;color:var(--green2);margin:1.75rem 0 1rem;padding-bottom:.5rem;border-bottom:2px solid var(--green3);}
.resume-entry{margin-bottom:1.25rem;}
.resume-entry-top{display:flex;justify-content:space-between;align-items:flex-start;gap:1rem;flex-wrap:wrap;}
.resume-entry-title{font-size:14px;font-weight:800;color:var(--ink);}
.resume-entry-date{font-size:11px;color:var(--muted);white-space:nowrap;}
.resume-entry-org{font-size:12px;color:var(--green2);font-weight:700;margin-bottom:.4rem;}
.resume-bullets{list-style:none;display:flex;flex-direction:column;gap:.35rem;margin-top:.5rem;}
.resume-bullets li{font-size:12px;color:var(--muted);line-height:1.6;display:flex;gap:8px;align-items:flex-start;}
.resume-bullets li::before{content:'◆';color:var(--green2);font-size:8px;flex-shrink:0;margin-top:4px;}
.resume-cols{display:grid;grid-template-columns:1fr 1fr;gap:2rem;}
.competency-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:.6rem;margin-top:.75rem;}
.comp-pill{background:var(--cream);border:1px solid var(--border);border-radius:8px;padding:.5rem .75rem;font-size:11px;color:var(--charcoal);font-weight:600;}

/* SKILLS */
.skills{background:var(--white);}
.skills-inner{max-width:1160px;margin:0 auto;}
.skills-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:1.1rem;margin-top:2.5rem;}
.sg{background:var(--cream);border-radius:18px;padding:1.75rem;border:1px solid var(--border);}
.sg:nth-child(1){border-top:4px solid var(--pink2);}
.sg:nth-child(2){border-top:4px solid var(--green2);}
.sg:nth-child(3){border-top:4px solid var(--yellow2);}
.sg:nth-child(4){border-top:4px solid var(--pink2);}
.sg-ico{font-size:26px;margin-bottom:.65rem;}
.sg-title{font-size:10px;font-weight:800;letter-spacing:2px;text-transform:uppercase;color:var(--charcoal);margin-bottom:1rem;padding-bottom:.65rem;border-bottom:1px solid var(--border);}
.sg-list{list-style:none;display:flex;flex-direction:column;gap:.45rem;}
.sg-list li{font-size:12px;color:var(--muted);display:flex;gap:7px;align-items:flex-start;}
.sg-list li::before{content:'✦';color:var(--green2);font-size:9px;flex-shrink:0;margin-top:3px;}

/* CONTACT */
.contact{background:var(--ink);color:var(--cream);padding:88px 3.5rem;}
.contact-inner{max-width:900px;margin:0 auto;text-align:center;}
.contact .s-h2{color:var(--cream);}
.contact-sub{font-size:15px;color:rgba(253,250,246,.6);max-width:520px;margin:0 auto 2.5rem;}
.contact-cards{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem;margin-top:2.5rem;text-align:left;}
.cc{background:rgba(253,250,246,.05);border:1px solid rgba(253,250,246,.1);border-radius:14px;padding:1.5rem;}
.cc-ico{font-size:22px;margin-bottom:.6rem;}
.cc-label{font-size:9px;font-weight:800;letter-spacing:2px;text-transform:uppercase;color:var(--green2);margin-bottom:3px;}
.cc-val{font-size:13px;color:rgba(253,250,246,.8);font-weight:600;}
.cc-val a{color:var(--green2);text-decoration:none;}
.contact-btns{display:flex;gap:1rem;justify-content:center;margin-top:2rem;flex-wrap:wrap;}
.btn-green{background:var(--green2);color:var(--ink);padding:13px 30px;border-radius:50px;font-size:13px;font-weight:800;text-decoration:none;transition:all .2s;}
.btn-green:hover{background:var(--green);transform:translateY(-2px);}

/* FOOTER */
footer{background:#0F0E0C;padding:2rem 3.5rem;display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:1rem;}
.f-brand{font-family:'Playfair Display',serif;font-size:17px;font-style:italic;color:var(--green2);}
.f-copy{font-size:11px;color:rgba(253,250,246,.3);}
.f-links{display:flex;gap:1.5rem;}
.f-links a{font-size:11px;color:rgba(253,250,246,.35);text-decoration:none;}
.f-links a:hover{color:var(--green2);}

/* RESPONSIVE */
@media(max-width:960px){
  nav{padding:0 1.5rem;}
  .nav-links{display:none;}
  section,.passion,.resume-section,.contact{padding:60px 1.5rem;}
  .hero{grid-template-columns:1fr;}
  .hero-right{display:none;}
  .hero-left{padding:7rem 1.5rem 3rem;}
  .about-grid,.pgrid,.pf,.skills-grid{grid-template-columns:1fr;gap:2rem;}
  .passion-steps{grid-template-columns:1fr 1fr;}
  .contact-cards,.resume-cols,.competency-grid,.efl-grid{grid-template-columns:1fr;}
  footer{flex-direction:column;text-align:center;}
}

/* MY STORY */
.story-section { background: var(--cream); padding: 100px 3.5rem; }
.story-inner { max-width: 1100px; margin: 0 auto; }
.story-grid { display: grid; grid-template-columns: 1fr 1.6fr; gap: 5rem; align-items: start; margin-top: 3rem; }

.story-left { position: sticky; top: 90px; }
.story-photo-wrap { position: relative; }
.story-photo {
  width: 100%; border-radius: 22px; display: block;
  object-fit: cover; object-position: top;
  max-height: 520px; box-shadow: 0 12px 48px rgba(28,26,23,.14);
}
.story-photo-caption {
  position: absolute; bottom: 0; left: 0; right: 0;
  background: linear-gradient(transparent, rgba(28,26,23,.75));
  border-radius: 0 0 22px 22px;
  padding: 2.5rem 1.5rem 1.25rem;
}
.story-photo-caption-text {
  font-family: 'Playfair Display', serif;
  font-size: 15px; font-style: italic;
  color: rgba(253,250,246,.85); line-height: 1.5;
}
.story-faith-card {
  background: var(--ink); border-radius: 16px;
  padding: 1.5rem; margin-top: 1.25rem;
  border-top: 3px solid var(--yellow2);
}
.story-faith-verse {
  font-family: 'Playfair Display', serif;
  font-size: 14px; font-style: italic;
  color: rgba(253,250,246,.8); line-height: 1.7;
  margin-bottom: .5rem;
}
.story-faith-ref {
  font-size: 10px; font-weight: 800; letter-spacing: 2px;
  text-transform: uppercase; color: var(--yellow2);
}

.story-right { display: flex; flex-direction: column; gap: 2.25rem; }
.story-block { }
.story-block-label {
  display: inline-flex; align-items: center; gap: 8px;
  font-size: 10px; font-weight: 800; letter-spacing: 2.5px;
  text-transform: uppercase; color: var(--green2);
  margin-bottom: .75rem;
}
.story-block-label::before {
  content: ''; width: 18px; height: 2px;
  border-radius: 2px; background: var(--green2);
}
.story-block-title {
  font-family: 'Playfair Display', serif;
  font-size: 24px; font-weight: 700;
  color: var(--ink); line-height: 1.25;
  margin-bottom: .85rem; letter-spacing: -.2px;
}
.story-block-text {
  font-size: 14px; line-height: 1.95;
  color: var(--charcoal);
}
.story-block-text em {
  font-style: italic; color: var(--green2); font-weight: 600;
}
.story-block-text strong { color: var(--ink); }

.story-pullquote {
  background: linear-gradient(135deg, var(--pink3), var(--yellow3));
  border-radius: 18px; padding: 2rem;
  border-left: 5px solid var(--pink2);
  position: relative; overflow: hidden;
}
.story-pullquote::before {
  content: '\201C';
  font-family: 'Playfair Display', serif;
  font-size: 120px; font-weight: 700;
  color: rgba(28,26,23,.06);
  position: absolute; top: -24px; left: 10px;
  line-height: 1; pointer-events: none;
}
.story-pullquote p {
  font-family: 'Playfair Display', serif;
  font-size: 19px; font-style: italic;
  font-weight: 400; color: var(--ink);
  line-height: 1.6; position: relative; z-index: 1;
}

.story-dei-strip {
  background: var(--ink); border-radius: 18px;
  padding: 2rem; display: grid;
  grid-template-columns: repeat(3, 1fr); gap: 1rem;
}
.dei-item { text-align: center; padding: .75rem; }
.dei-icon { font-size: 28px; margin-bottom: .5rem; display: block; }
.dei-title { font-size: 12px; font-weight: 800; color: var(--cream); margin-bottom: 3px; }
.dei-desc { font-size: 11px; color: rgba(253,250,246,.5); line-height: 1.5; }

.story-divider {
  display: flex; align-items: center; gap: 1rem;
  margin: .25rem 0;
}
.story-divider::before, .story-divider::after {
  content: ''; flex: 1; height: 1px; background: var(--border);
}
.story-divider-ico { font-size: 18px; color: var(--muted); }

@media(max-width:960px) {
  .story-section { padding: 64px 1.5rem; }
  .story-grid { grid-template-columns: 1fr; gap: 3rem; }
  .story-left { position: static; }
  .story-dei-strip { grid-template-columns: 1fr; }
}

.doc-modal-overlay{display:none;position:fixed;inset:0;z-index:9999;background:rgba(28,26,23,.75);backdrop-filter:blur(6px);align-items:center;justify-content:center;}
.doc-modal-overlay.active{display:flex;}
.doc-modal{background:var(--white);border-radius:20px;width:90vw;max-width:900px;height:88vh;display:flex;flex-direction:column;box-shadow:0 24px 80px rgba(28,26,23,.3);overflow:hidden;}
.doc-modal-header{display:flex;align-items:center;justify-content:space-between;padding:1rem 1.5rem;border-bottom:1px solid var(--border);background:var(--ink);flex-shrink:0;}
.doc-modal-title{font-size:13px;font-weight:700;color:var(--cream);letter-spacing:.3px;}
.doc-modal-actions{display:flex;gap:.75rem;align-items:center;}
.doc-modal-dl{background:var(--green2);color:var(--ink);padding:7px 16px;border-radius:50px;font-size:11px;font-weight:800;text-decoration:none;transition:all .2s;display:flex;align-items:center;gap:5px;}
.doc-modal-close{background:rgba(253,250,246,.1);border:none;color:var(--cream);width:32px;height:32px;border-radius:50%;font-size:18px;cursor:pointer;display:flex;align-items:center;justify-content:center;font-family:inherit;}
.doc-modal-body{flex:1;overflow:hidden;position:relative;}
.doc-modal-body iframe{width:100%;height:100%;border:none;display:block;}
.doc-unsupported{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100%;gap:1.25rem;padding:2rem;text-align:center;}
.doc-unsupported-ico{font-size:52px;}
.doc-unsupported h3{font-family:'Playfair Display',serif;font-size:20px;color:var(--ink);margin-bottom:.4rem;}
.doc-unsupported p{font-size:13px;color:var(--muted);max-width:400px;line-height:1.7;}
.doc-btn{display:inline-flex;align-items:center;gap:7px;background:var(--green3);color:var(--charcoal);border:1.5px solid var(--green2);padding:7px 15px;border-radius:50px;font-size:11px;font-weight:800;cursor:pointer;transition:all .2s;font-family:inherit;letter-spacing:.3px;}
.doc-btn:hover{background:var(--green2);color:var(--ink);transform:translateY(-1px);}
.doc-btn.pdf{background:var(--pink3);border-color:var(--pink2);}
.doc-btn.pdf:hover{background:var(--pink2);}

.nav-toggle{display:none;background:none;border:1px solid var(--border);border-radius:10px;width:42px;height:38px;cursor:pointer;color:var(--ink);font-size:20px;line-height:1;}
@media(max-width:960px){
  .nav-toggle{display:block;}
  nav.open .nav-links{display:flex;flex-direction:column;align-items:flex-start;gap:1.1rem;position:absolute;top:66px;left:0;right:0;background:rgba(253,250,246,.98);border-bottom:1px solid var(--border);padding:1.4rem 1.5rem 1.6rem;}
  nav.open .nav-links a{font-size:15px;}
}

/* mobile: inline grid column counts must still collapse on phones */
@media(max-width:720px){.contact-cards{grid-template-columns:1fr !important;}.skills-grid{grid-template-columns:1fr !important;}}
