/* ===== Emi Hall — shared styles ===== */
*{box-sizing:border-box;margin:0;padding:0;}
:root{
  /* new palette */
  --purple:#40207B;--purple-deep:#2E1659;--charcoal:#2B2320;
  --brick:#90241C;--brick-dark:#7A1D16;
  --pink:#F4C9E0;--pink-soft:#FBEAF3;
  --cream:#EDE9DD;--card:#FBF7EE;--border:#DDD4C4;--muted:#726A62;
  --tag-bg:#F9DCEC;--tag-text:#7A1D16;
}
html,body{margin:0;background:var(--cream);}
body::after{content:"";position:fixed;inset:0;pointer-events:none;z-index:5;opacity:.04;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='140' height='140'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='140' height='140' filter='url(%23n)'/%3E%3C/svg%3E");}
.site{font-family:'DM Sans',system-ui,sans-serif;background:var(--cream);color:var(--charcoal);}

/* nav */
.nav{background:var(--purple);padding:0 2rem;height:54px;display:flex;align-items:center;justify-content:space-between;position:sticky;top:0;z-index:10;}
.nav-logo{font-family:'Fraunces',serif;font-size:1.32rem;font-weight:600;color:#F3EFE6;letter-spacing:.01em;text-decoration:none;}
.nav-logo em{color:var(--pink);font-style:italic;}
.nav-links{display:flex;gap:1.5rem;}
.nav-link{font-size:.72rem;font-weight:400;color:#B9A9D6;letter-spacing:.07em;text-transform:uppercase;text-decoration:none;transition:color .15s;}
.nav-link:hover,.nav-link.active{color:#F3EFE6;}

/* type */
.eyebrow,.section-eyebrow{font-size:.62rem;font-weight:500;text-transform:uppercase;letter-spacing:.13em;color:var(--brick);}
.section-eyebrow{margin:0 0 .4rem;}
.hero-h1{font-family:'Fraunces',serif;font-weight:700;color:var(--purple);line-height:1.08;}
.hero-h1 em{color:var(--brick);font-style:italic;}
.section-h2{font-family:'Fraunces',serif;font-size:1.6rem;font-weight:600;color:var(--purple);margin:0 0 1.25rem;line-height:1.15;}
.section-h2 em{color:var(--brick);font-style:italic;}
.signature{font-family:'Caveat',cursive;font-size:2.3rem;font-weight:600;color:var(--brick);line-height:1;margin:1rem 0 0;}

/* buttons */
.cta-prim{display:inline-block;background:var(--brick);color:#fff;font-size:.72rem;font-weight:500;letter-spacing:.06em;text-transform:uppercase;padding:.65rem 1.4rem;border:none;border-radius:8px;cursor:pointer;text-decoration:none;transition:background .15s;}
.cta-prim:hover{background:var(--brick-dark);}
.cta-ghost{display:inline-block;border:1.5px solid var(--brick);color:var(--brick);font-size:.72rem;font-weight:500;letter-spacing:.06em;text-transform:uppercase;padding:.65rem 1.4rem;border-radius:8px;margin-left:.75rem;cursor:pointer;background:none;text-decoration:none;transition:background .15s,color .15s;}
.cta-ghost:hover{background:var(--brick);color:#fff;}
.cta-onpurple{background:var(--pink);color:var(--purple-deep);}
.cta-onpurple:hover{background:#EFB6D5;}

/* home hero */
.home-hero{position:relative;overflow:hidden;background:var(--purple);display:grid;grid-template-columns:1fr 1fr;}
.home-hero-text{padding:3.75rem 2.5rem;display:flex;flex-direction:column;justify-content:center;}
.home-hero-photo{position:relative;overflow:hidden;min-height:460px;background:var(--purple);}
.home-hero-photo img{width:100%;height:100%;object-fit:cover;object-position:center 35%;display:block;}
.home-hero-text-box{max-width:560px;border-left:4px solid var(--pink);padding-left:1.5rem;}
.home-hero-h1{font-family:'Fraunces',serif;font-size:clamp(1.9rem,3.8vw,2.9rem);font-weight:700;color:#F5F1EA;line-height:1.06;margin:0 0 1rem;}
.home-hero-h1 em{color:var(--pink);font-style:italic;background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='120' height='12'%3E%3Cpath d='M3 7 Q 30 2 60 7 T 117 6' stroke='%23F4C9E0' stroke-width='2.5' fill='none' stroke-linecap='round'/%3E%3C/svg%3E") bottom left/100% 7px no-repeat;padding-bottom:9px;}
.home-hero-sub{font-size:.92rem;color:#D9CBE8;line-height:1.7;margin:0 0 1.5rem;max-width:600px;}
.home-hero-eyebrow{color:var(--pink);}

/* home work cards */
.work-cards-section{padding:3rem 2.5rem 1rem;max-width:960px;margin:0 auto;}
.work-cards{display:grid;grid-template-columns:repeat(2,1fr);gap:1.4rem;margin:1.5rem 0 0;}
.flip{height:370px;perspective:1200px;cursor:pointer;}
.flip-inner{position:relative;width:100%;height:100%;transition:transform .55s;transform-style:preserve-3d;}
.flip.flipped .flip-inner{transform:rotateY(180deg);}
.flip-front,.flip-back{position:absolute;inset:0;backface-visibility:hidden;-webkit-backface-visibility:hidden;border-radius:18px;overflow:hidden;border:1px solid var(--border);}
.flip-front{background:var(--card);display:flex;flex-direction:column;}
.flip-front-img{height:290px;overflow:hidden;background:var(--purple);}
.flip-front-img img{width:100%;height:100%;object-fit:cover;display:block;}
.flip-front-body{padding:.7rem 1.15rem;display:flex;align-items:flex-start;justify-content:space-between;gap:.5rem;flex:1;}
.flip-front-title{font-family:'Fraunces',serif;font-size:1.02rem;font-weight:600;color:var(--purple);line-height:1.3;margin:0;}
.flip-hint{font-size:.58rem;color:var(--brick);letter-spacing:.08em;text-transform:uppercase;flex-shrink:0;margin-top:.2rem;}
.flip-back{background:var(--purple);transform:rotateY(180deg);padding:1.4rem;display:flex;flex-direction:column;justify-content:center;}
.flip-back .eyebrow{color:var(--pink);margin:0 0 .5rem;}
.flip-back-title{font-family:'Fraunces',serif;font-size:1.02rem;font-weight:600;color:#F5F1EA;margin:0 0 .55rem;line-height:1.25;}
.flip-back p{font-size:.8rem;line-height:1.6;color:#D9CBE8;margin:0;}
.flip-back .back-hint{font-size:.58rem;color:var(--pink);letter-spacing:.08em;text-transform:uppercase;margin-top:.75rem;}

/* mini about */
.mini-about{background:var(--pink-soft);padding:3rem 2.5rem;margin-top:2.5rem;}
.mini-about-inner{max-width:840px;margin:0 auto;display:grid;grid-template-columns:210px 1fr;gap:2.25rem;align-items:center;}
.mini-about-photo img{width:100%;border-radius:18px;display:block;}
.mini-about-text p{font-size:.95rem;color:var(--charcoal);line-height:1.75;margin:.5rem 0 1.1rem;}

/* home closing cta */
.home-cta{background:var(--purple);padding:3.25rem 2.5rem;text-align:center;}
.home-cta h2{font-family:'Fraunces',serif;font-size:clamp(1.5rem,3vw,2rem);font-weight:600;color:#F5F1EA;margin:0 0 1.25rem;line-height:1.2;}
.home-cta h2 em{color:var(--pink);font-style:italic;}

/* generic section helpers reused across pages */
.section{padding:2.75rem 2.5rem;max-width:760px;margin:0 auto;}
.band-pink{background:var(--pink-soft);}
.pull-quote{border-left:4px solid var(--brick);padding:.9rem 1.25rem;background:transparent;}
.pull-quote p{font-family:'Fraunces',serif;font-size:1.25rem;font-weight:400;font-style:italic;color:var(--purple);margin:0;line-height:1.5;}
.role-link{color:var(--brick);text-decoration:underline;text-underline-offset:2px;}
.role-link:hover{color:var(--brick-dark);}

/* footer */
.footer{background:var(--purple);padding:1.4rem 2.5rem;text-align:center;}
.footer p{font-size:.72rem;color:#9E8FC0;margin:0;}
.footer a{color:var(--pink);text-decoration:none;}

/* about page */
.about-intro{max-width:920px;margin:0 auto;padding:3rem 2.5rem 1rem;display:grid;grid-template-columns:290px 1fr;gap:2.75rem;align-items:start;}
.about-intro-photo img{width:100%;border-radius:18px;display:block;position:sticky;top:74px;}
.about-bio p{font-size:.95rem;color:var(--charcoal);line-height:1.8;margin:0 0 1.15rem;}
.about-bio a{color:var(--brick);text-decoration:underline;text-underline-offset:2px;}
.about-bio a:hover{color:var(--brick-dark);}
.ms-statement{border-top:1px solid var(--border);padding:1.75rem 0 .5rem;margin:0 0 2rem;}
.ms-statement p{font-size:.93rem;color:var(--charcoal);line-height:1.85;margin:0 0 1.15rem;}
.ms-punch{font-family:'Fraunces',serif;font-style:italic;font-size:1.28rem;color:var(--brick);line-height:1.45;margin:1.5rem 0;}
.ms-close{font-family:'Fraunces',serif;font-style:italic;font-size:1.28rem;color:var(--purple);line-height:1.5;margin:1.75rem 0 0;border-left:4px solid var(--brick);padding-left:1.1rem;}
.values-grid{display:grid;grid-template-columns:1fr 1fr;gap:1.1rem;margin:1.25rem 0;}
.value-card{background:var(--card);border:1px solid var(--border);border-radius:14px;padding:1.2rem;}
.value-card h3{font-family:'Fraunces',serif;font-size:1.1rem;font-weight:600;color:var(--purple);margin:0 0 .35rem;}
.value-card p{font-size:.82rem;color:var(--muted);line-height:1.6;margin:0;}
.photo-gallery{display:grid;grid-template-columns:repeat(4,1fr);grid-auto-rows:155px;gap:12px;margin:1.25rem 0;}
.photo-gallery .tile{overflow:hidden;border-radius:16px;position:relative;}
.photo-gallery .tile img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .55s ease;}
.photo-gallery .tile:hover img{transform:scale(1.07);}
.photo-gallery .g-a{grid-column:span 2;grid-row:span 2;}
.photo-gallery .g-wide{grid-column:span 2;}

/* impact page */
.impact-wrap{max-width:920px;margin:0 auto;padding:1rem 2.5rem 2.5rem;}
.impact-group{margin:0 0 2.75rem;}
.impact-group-head{display:flex;align-items:baseline;gap:.6rem;border-bottom:2px solid var(--pink);padding-bottom:.5rem;margin-bottom:1.25rem;}
.impact-group-title{font-family:'Fraunces',serif;font-size:1.3rem;font-weight:600;color:var(--purple);margin:0;}
.impact-group-note{font-size:.72rem;color:var(--muted);font-style:italic;margin-left:auto;}
.impact-intro-line{font-size:.86rem;color:var(--muted);line-height:1.65;margin:0 0 1.25rem;}
.role-cards{display:grid;grid-template-columns:repeat(3,1fr);gap:1.2rem;}
.role-cards.two{grid-template-columns:1fr 1fr;}
.role-card{background:var(--card);border:1px solid var(--border);border-radius:16px;overflow:hidden;display:flex;flex-direction:column;}
.role-card-img{aspect-ratio:16/10;overflow:hidden;background:var(--purple);}
.role-card-img img{width:100%;height:100%;object-fit:cover;display:block;}
.role-card-body{padding:1rem 1.15rem 1.2rem;display:flex;flex-direction:column;flex:1;}
.role-card-org{font-size:.68rem;text-transform:uppercase;letter-spacing:.08em;color:var(--brick);font-weight:500;margin:0 0 .3rem;}
.role-card-title{font-family:'Fraunces',serif;font-size:1.05rem;font-weight:600;color:var(--purple);margin:0 0 .4rem;line-height:1.25;}
.role-card-desc{font-size:.79rem;color:var(--muted);line-height:1.55;margin:0 0 .6rem;}
.role-card-link{font-size:.71rem;font-weight:500;color:var(--brick);text-decoration:none;margin-top:auto;}
.role-card-link:hover{text-decoration:underline;}
.prev-card{background:var(--card);border:1px solid var(--border);border-radius:14px;padding:1rem 1.25rem;margin:0 0 .7rem;}
.prev-card h3{font-family:'Fraunces',serif;font-size:1rem;font-weight:600;color:var(--purple);margin:0 0 .2rem;}
.prev-org{font-size:.72rem;color:var(--brick);margin:0 0 .4rem;}
.prev-desc{font-size:.8rem;color:var(--muted);line-height:1.55;margin:0;}
.feature{display:grid;grid-template-columns:1fr 1fr;gap:0;background:var(--card);border:1px solid var(--border);border-radius:18px;overflow:hidden;margin:0 0 1.2rem;}
.feature-img{min-height:300px;overflow:hidden;background:var(--purple);}
.feature-img img{width:100%;height:100%;object-fit:cover;display:block;}
.feature-body{padding:1.6rem 1.7rem;}
.feature-body h3{font-family:'Fraunces',serif;font-size:1.2rem;font-weight:600;color:var(--purple);margin:0 0 .5rem;line-height:1.25;}
.feature-body p{font-size:.82rem;color:var(--muted);line-height:1.6;margin:0 0 .8rem;}

/* research page */
.research-cards{display:grid;grid-template-columns:1fr 1fr;gap:1.5rem;margin:1.5rem 0 0;}
.rcard{background:var(--card);border:1px solid var(--border);border-radius:16px;overflow:hidden;display:flex;flex-direction:column;}
.rcard-cover{aspect-ratio:16/9;overflow:hidden;background:var(--purple);}
.rcard-cover img{width:100%;height:100%;object-fit:cover;display:block;}
.rcard-body{padding:1.15rem 1.35rem 1.35rem;display:flex;flex-direction:column;flex:1;}
.rtag{display:inline-block;align-self:flex-start;font-size:.58rem;font-weight:500;letter-spacing:.1em;text-transform:uppercase;color:var(--tag-text);background:var(--tag-bg);padding:.22rem .7rem;border-radius:20px;margin:0 0 .55rem;}
.rcard-title{font-family:'Fraunces',serif;font-size:1.12rem;font-weight:600;color:var(--purple);margin:0 0 .3rem;line-height:1.3;}
.rcard-meta{font-size:.72rem;color:var(--muted);margin:0 0 .55rem;}
.rcard-sowhat{font-size:.8rem;color:var(--charcoal);line-height:1.6;margin:0 0 1rem;}
.rcard-btn{align-self:flex-start;margin-top:auto;font-size:.68rem;padding:.55rem 1.1rem;}

/* connect page */
.connect-intro{max-width:920px;margin:0 auto;padding:2.75rem 2.5rem 1rem;display:grid;grid-template-columns:1fr 280px;gap:2.5rem;align-items:center;}
.connect-intro-photo img{width:100%;max-width:280px;border-radius:18px;display:block;margin-left:auto;}
.connect-cards{display:grid;grid-template-columns:1fr 1fr;gap:1.1rem;margin:1.25rem 0;}
.connect-callout{background:var(--pink-soft);border-left:4px solid var(--brick);border-radius:10px;padding:1.1rem 1.25rem;margin:1.5rem 0 0;}
.connect-callout p{font-size:.8rem;color:var(--purple);margin:0;line-height:1.7;}

/* stub placeholder */
.stub{padding:5rem 2.5rem;max-width:720px;margin:0 auto;text-align:center;}
.stub h1{font-family:'Fraunces',serif;font-size:2rem;font-weight:700;color:var(--purple);margin:.4rem 0 .6rem;}
.stub p{color:var(--muted);line-height:1.7;font-size:.9rem;}

@media(max-width:760px){
  .nav{padding:.6rem 1rem;height:auto;flex-direction:column;gap:.5rem;}
  .nav-links{gap:1rem;flex-wrap:wrap;justify-content:center;}
  .home-hero{grid-template-columns:1fr;}
  .home-hero-text{padding:2.25rem 1.25rem;}
  .home-hero-photo{min-height:300px;order:-1;}
  .work-cards-section{padding:1.75rem 1.25rem 0;}
  .work-cards{grid-template-columns:1fr;}
  .flip{height:350px;}
  .mini-about,.home-cta{padding:2rem 1.25rem;}
  .mini-about-inner{grid-template-columns:1fr;}
  .mini-about-photo{max-width:240px;}
  .section{padding:1.75rem 1.25rem;}
  .about-intro{grid-template-columns:1fr;padding:2rem 1.25rem 0;gap:1.5rem;}
  .about-intro-photo{max-width:260px;}
  .about-intro-photo img{position:static;}
  .values-grid{grid-template-columns:1fr;}
  .photo-gallery{grid-template-columns:repeat(2,1fr);grid-auto-rows:125px;}
  .impact-wrap{padding:1rem 1.25rem 1.75rem;}
  .role-cards,.role-cards.two{grid-template-columns:1fr;}
  .feature{grid-template-columns:1fr;}
  .feature-img{min-height:220px;}
  .research-cards{grid-template-columns:1fr;}
  .connect-intro{grid-template-columns:1fr;padding:2rem 1.25rem 0;gap:1.5rem;}
  .connect-intro-photo{max-width:240px;}
  .connect-intro-photo img{margin:0 auto;}
  .connect-cards{grid-template-columns:1fr;}
}
