/* ── Reset & Variables ── */
*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }

:root {
  --ivory:    #F8F5EF;
  --cream:    #EDE8DF;
  --sand:     #D8CDB8;
  --navy:     #1A2340;
  --navy-mid: #243058;
  --gold:     #B8914A;
  --gold-lt:  #D4A85A;
  --charcoal: #3A3A3A;
  --muted:    #7A7570;
  --white:    #FFFFFF;
  --serif: 'Cormorant Garamond', Georgia, serif;
  --sans:  'DM Sans', system-ui, sans-serif;
  --mono:  'DM Mono', monospace;
  --nav-h: 72px;
}

html { scroll-behavior: smooth; }
body { font-family: var(--sans); background: var(--ivory); color: var(--charcoal); font-size: 16px; line-height: 1.7; overflow-x: hidden; }

/* ── NAV ── */
nav { position:fixed;top:0;left:0;right:0;z-index:100;height:var(--nav-h);background:rgba(248,245,239,0.95);backdrop-filter:blur(10px);border-bottom:1px solid var(--sand);display:flex;align-items:center;justify-content:space-between;padding:0 5%; }
.nav-logo { font-family:var(--serif);font-size:1.35rem;font-weight:600;color:var(--navy);text-decoration:none; }
.nav-links { display:flex;gap:2rem;list-style:none; }
.nav-links a { font-family:var(--sans);font-size:.75rem;font-weight:500;letter-spacing:.1em;text-transform:uppercase;color:var(--charcoal);text-decoration:none;transition:color .2s;position:relative; }
.nav-links a::after { content:'';position:absolute;bottom:-3px;left:0;right:0;height:1.5px;background:var(--gold);transform:scaleX(0);transform-origin:left;transition:transform .25s ease; }
.nav-links a:hover { color:var(--navy); }
.nav-links a:hover::after { transform:scaleX(1); }
.nav-cta { color:var(--white)!important;background:var(--navy);padding:.5rem 1.1rem;border-radius:2px;transition:background .2s!important; }
.nav-cta::after { display:none!important; }
.nav-cta:hover { background:var(--gold)!important; }
.hamburger { display:none;flex-direction:column;gap:5px;cursor:pointer;background:none;border:none; }
.hamburger span { display:block;width:24px;height:2px;background:var(--navy);transition:all .3s; }

/* ── HERO ── */
#home { min-height:100vh;padding-top:var(--nav-h);display:grid;grid-template-columns:1fr 1fr;background:var(--navy);position:relative;overflow:hidden; }
.hero-pattern { position:absolute;inset:0;pointer-events:none;background-image:repeating-linear-gradient(0deg,transparent,transparent 79px,rgba(255,255,255,.025) 79px,rgba(255,255,255,.025) 80px),repeating-linear-gradient(90deg,transparent,transparent 79px,rgba(255,255,255,.025) 79px,rgba(255,255,255,.025) 80px); }
.hero-accent { position:absolute;width:500px;height:500px;border-radius:50%;background:radial-gradient(circle,rgba(184,145,74,.18) 0%,transparent 70%);top:-100px;right:30%;pointer-events:none; }
.hero-content { display:flex;flex-direction:column;justify-content:center;padding:80px 6% 80px 8%;position:relative;z-index:2;animation:fadeUp .9s ease both; }
@keyframes fadeUp { from{opacity:0;transform:translateY(30px)} to{opacity:1;transform:translateY(0)} }
.hero-eyebrow { font-family:var(--mono);font-size:.72rem;letter-spacing:.2em;text-transform:uppercase;color:var(--gold);margin-bottom:1.5rem; }
.hero-name { font-family:var(--serif);font-size:clamp(3rem,5vw,5rem);font-weight:300;line-height:1.05;color:var(--white);margin-bottom:.3rem; }
.hero-name em { font-style:italic;color:var(--gold-lt); }
.hero-title { font-family:var(--serif);font-size:clamp(1rem,1.8vw,1.2rem);font-weight:400;color:rgba(255,255,255,.6);margin-bottom:2rem;font-style:italic; }
.hero-bio { font-size:.92rem;color:rgba(255,255,255,.75);max-width:480px;line-height:1.85;margin-bottom:2.5rem; }
.hero-affiliations { display:flex;flex-wrap:wrap;gap:.6rem;margin-bottom:2.8rem; }
.affil-tag { font-size:.7rem;letter-spacing:.06em;text-transform:uppercase;color:rgba(255,255,255,.5);border:1px solid rgba(255,255,255,.2);padding:.3rem .8rem;border-radius:2px; }
.hero-actions { display:flex;gap:1rem;flex-wrap:wrap; }
.btn-primary { font-size:.78rem;font-weight:500;letter-spacing:.1em;text-transform:uppercase;color:var(--navy);background:var(--gold);padding:.9rem 2rem;border-radius:2px;text-decoration:none;transition:background .2s,transform .2s; }
.btn-primary:hover { background:var(--gold-lt);transform:translateY(-1px); }
.btn-outline { font-size:.78rem;font-weight:500;letter-spacing:.1em;text-transform:uppercase;color:var(--white);background:transparent;padding:.9rem 2rem;border-radius:2px;border:1px solid rgba(255,255,255,.3);text-decoration:none;transition:border-color .2s,color .2s,transform .2s; }
.btn-outline:hover { border-color:var(--gold);color:var(--gold);transform:translateY(-1px); }
.hero-photo-panel { position:relative;z-index:2;display:flex;align-items:flex-end;justify-content:center;animation:fadeUp .9s .2s ease both;overflow:hidden; }
.hero-photo-wrap { position:relative;width:70%;max-width:400px; }
.hero-photo-wrap img { display:block;width:100%;aspect-ratio:4/5;object-fit:cover;object-position:top center; }
.hero-photo-frame { position:absolute;top:20px;left:-20px;right:20px;bottom:-20px;border:1px solid rgba(184,145,74,.35);pointer-events:none; }

/* ── SECTIONS ── */
section { padding:100px 8%; }
.section-header { display:flex;align-items:baseline;gap:1.5rem;margin-bottom:4rem; }
.section-label { font-family:var(--mono);font-size:.68rem;letter-spacing:.2em;text-transform:uppercase;color:var(--gold); }
.section-title { font-family:var(--serif);font-size:clamp(2rem,4vw,3.2rem);font-weight:300;color:var(--navy);line-height:1.1; }
.section-title em { font-style:italic; }
.section-rule { flex:1;height:1px;background:var(--sand); }

/* ── ABOUT ── */
#about { background:var(--ivory); }
.about-grid { display:grid;grid-template-columns:1.4fr 1fr;gap:6rem;align-items:start; }
.about-text p { font-size:1rem;line-height:1.85;color:var(--charcoal);margin-bottom:1.4rem; }
.about-text p:first-child { font-family:var(--serif);font-size:1.3rem;font-weight:400;line-height:1.6;color:var(--navy); }
.credentials-box { background:var(--navy);padding:2.5rem;color:var(--white); }
.credentials-box h3 { font-family:var(--serif);font-size:1.2rem;font-weight:400;color:var(--gold-lt);margin-bottom:1.5rem;font-style:italic; }
.cred-item { padding:1rem 0;border-bottom:1px solid rgba(255,255,255,.1); }
.cred-item:last-child { border-bottom:none; }
.cred-role { font-size:.82rem;font-weight:500;color:var(--white);margin-bottom:.2rem; }
.cred-org { font-size:.75rem;color:rgba(255,255,255,.5);line-height:1.4; }

/* ── RESEARCH ── */
#research { background:var(--cream); }
.research-intro { max-width:760px;font-size:1rem;line-height:1.85;color:var(--charcoal);margin-bottom:3.5rem; }
.dissertation-card { background:var(--navy);padding:3rem;margin-bottom:3.5rem;position:relative;overflow:hidden; }
.dissertation-card::before { content:'"';position:absolute;top:-20px;right:2rem;font-family:var(--serif);font-size:12rem;color:rgba(184,145,74,.08);line-height:1;pointer-events:none; }
.diss-label { font-family:var(--mono);font-size:.65rem;letter-spacing:.2em;text-transform:uppercase;color:var(--gold);margin-bottom:1rem; }
.diss-title { font-family:var(--serif);font-size:clamp(1.2rem,2.5vw,1.7rem);font-weight:400;font-style:italic;color:var(--white);line-height:1.35;margin-bottom:1.2rem; }
.diss-desc { font-size:.88rem;color:rgba(255,255,255,.75);line-height:1.85;max-width:700px; }
.diss-tags { margin-top:1.5rem;display:flex;flex-wrap:wrap;gap:.5rem; }
.tag { font-size:.68rem;letter-spacing:.08em;text-transform:uppercase;color:rgba(255,255,255,.5);border:1px solid rgba(255,255,255,.2);padding:.25rem .7rem; }

/* ── PUB TABS ── */
.pub-tabs { display:flex;gap:0;border-bottom:2px solid var(--sand);margin-bottom:0; }
.pub-tab { font-family:var(--mono);font-size:.68rem;letter-spacing:.12em;text-transform:uppercase;padding:.7rem 1.5rem;cursor:pointer;border:none;background:none;color:var(--muted);transition:color .2s;position:relative;bottom:-2px; }
.pub-tab.active { color:var(--navy);border-bottom:2px solid var(--navy); }
.pub-tab:hover { color:var(--navy); }
.pub-panel { display:none; }
.pub-panel.active { display:block; }
.publications-list { display:flex;flex-direction:column; }
.pub-item { padding:1.8rem 0;border-bottom:1px solid var(--sand);display:grid;grid-template-columns:70px 1fr;gap:1.5rem;align-items:start; }
.pub-item:first-child { border-top:1px solid var(--sand); }
.pub-year { font-family:var(--mono);font-size:.75rem;color:var(--gold);padding-top:.15rem; }
.pub-title { font-family:var(--serif);font-size:1.05rem;font-weight:600;color:var(--navy);margin-bottom:.3rem;line-height:1.4; }
.pub-authors { font-size:.8rem;color:var(--muted);margin-bottom:.25rem; }
.pub-venue { font-size:.82rem;color:var(--charcoal);font-style:italic; }
.pub-link { display:inline-block;margin-top:.5rem;font-family:var(--mono);font-size:.65rem;letter-spacing:.1em;text-transform:uppercase;color:var(--gold);text-decoration:none;border-bottom:1px solid transparent;transition:border-color .2s; }
.pub-link:hover { border-color:var(--gold); }
.no-pubs { font-family:var(--mono);font-size:.75rem;color:var(--muted);padding:2rem 0; }

/* ── CV ── */
#cv { background:var(--ivory); }
.cv-columns { display:grid;grid-template-columns:1fr 1fr;gap:5rem; }
.cv-section-title { font-family:var(--mono);font-size:.68rem;letter-spacing:.2em;text-transform:uppercase;color:var(--gold);margin-bottom:1.5rem;padding-bottom:.75rem;border-bottom:1px solid var(--sand); }
.cv-entry { margin-bottom:1.8rem; }
.cv-period { font-family:var(--mono);font-size:.7rem;color:var(--muted);margin-bottom:.2rem; }
.cv-role { font-family:var(--serif);font-size:1.05rem;font-weight:600;color:var(--navy);line-height:1.3; }
.cv-org { font-size:.82rem;color:var(--charcoal);margin-top:.15rem; }
.cv-detail { font-size:.8rem;color:var(--muted);margin-top:.3rem;line-height:1.5; }
.cv-download { margin-top:3.5rem;padding:2rem;background:var(--cream);border:1px solid var(--sand);display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:1rem; }
.cv-download p { font-family:var(--serif);font-size:1.1rem;font-style:italic;color:var(--navy); }
.cv-hint { font-family:var(--mono);font-size:.72rem;color:var(--muted);line-height:1.6; }

/* ── TEACHING ── */
#teaching { background:var(--cream); }
.teaching-intro { max-width:680px;font-size:1rem;line-height:1.85;color:var(--charcoal);margin-bottom:3rem; }
.courses-grid { display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:1.5rem; }
.course-card { background:var(--white);padding:2rem;border-top:3px solid var(--navy);transition:box-shadow .2s,transform .2s; }
.course-card:hover { box-shadow:0 8px 30px rgba(26,35,64,.1);transform:translateY(-2px); }
.course-code { font-family:var(--mono);font-size:.68rem;letter-spacing:.12em;color:var(--gold);margin-bottom:.5rem; }
.course-name { font-family:var(--serif);font-size:1.1rem;font-weight:600;color:var(--navy);margin-bottom:.5rem;line-height:1.3; }
.course-desc { font-size:.82rem;color:var(--muted);line-height:1.6; }

/* ── AWARDS ── */
#awards { background:var(--ivory); }
.awards-intro { max-width:680px;font-size:1rem;line-height:1.85;color:var(--charcoal);margin-bottom:3rem; }
.awards-grid { display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:1.5rem; }
.award-card { background:var(--white);border:1px solid var(--sand);padding:2rem;border-left:4px solid var(--gold);transition:box-shadow .2s,transform .2s; }
.award-card:hover { box-shadow:0 8px 30px rgba(26,35,64,.1);transform:translateY(-2px); }
.award-year { font-family:var(--mono);font-size:.68rem;letter-spacing:.15em;color:var(--gold);margin-bottom:.5rem; }
.award-title { font-family:var(--serif);font-size:1.05rem;font-weight:600;color:var(--navy);line-height:1.35;margin-bottom:.4rem; }
.award-org { font-size:.8rem;color:var(--muted); }
.award-amount { display:inline-block;margin-top:.6rem;font-family:var(--mono);font-size:.7rem;letter-spacing:.08em;color:var(--white);background:var(--navy);padding:.25rem .7rem; }

/* ── MEDIA ── */
#media { background:var(--cream); }
.media-grid { display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:1.5rem; }
.media-card { background:var(--white);border:1px solid var(--sand);overflow:hidden;transition:box-shadow .2s,transform .2s; }
.media-card:hover { box-shadow:0 8px 30px rgba(26,35,64,.1);transform:translateY(-3px); }
.media-card-header { background:var(--navy);padding:1.5rem;display:flex;align-items:center;justify-content:space-between; }
.media-outlet { font-family:var(--serif);font-size:.9rem;font-style:italic;color:var(--gold-lt); }
.media-type-badge { font-family:var(--mono);font-size:.6rem;letter-spacing:.1em;text-transform:uppercase;color:rgba(255,255,255,.4);border:1px solid rgba(255,255,255,.2);padding:.2rem .5rem; }
.media-card-body { padding:1.5rem; }
.media-title { font-family:var(--serif);font-size:1rem;font-weight:600;color:var(--navy);line-height:1.4;margin-bottom:.4rem; }
.media-date { font-family:var(--mono);font-size:.68rem;color:var(--muted); }
.media-desc { font-size:.82rem;color:var(--charcoal);line-height:1.6;margin-top:.6rem; }
.media-link { display:inline-block;margin-top:.75rem;font-family:var(--mono);font-size:.65rem;letter-spacing:.1em;text-transform:uppercase;color:var(--gold);text-decoration:none;border-bottom:1px solid transparent;transition:border-color .2s; }
.media-link:hover { border-color:var(--gold); }

/* ── CONTACT ── */
#contact { background:var(--navy);padding:100px 8%; }
#contact .section-title { color:var(--white); }
#contact .section-rule { background:rgba(255,255,255,.15); }
.contact-grid { display:grid;grid-template-columns:1fr 1fr;gap:6rem;align-items:start; }
.contact-intro { font-family:var(--serif);font-size:1.3rem;font-style:italic;color:rgba(255,255,255,.85);line-height:1.6;margin-bottom:2rem; }
.contact-detail { display:flex;align-items:flex-start;gap:1rem;margin-bottom:1.3rem; }
.contact-detail-icon { width:36px;height:36px;border:1px solid rgba(255,255,255,.2);display:flex;align-items:center;justify-content:center;flex-shrink:0;color:var(--gold);font-size:.85rem; }
.contact-detail-text { font-size:.85rem;color:rgba(255,255,255,.6);line-height:1.6; }
.contact-detail-text strong { display:block;color:var(--white);font-weight:500;margin-bottom:.15rem; }
.contact-detail-text a { color:rgba(255,255,255,.6);text-decoration:none;transition:color .2s; }
.contact-detail-text a:hover { color:var(--gold); }
.contact-form { display:flex;flex-direction:column;gap:1.2rem; }
.form-row { display:grid;grid-template-columns:1fr 1fr;gap:1rem; }
.form-group { display:flex;flex-direction:column;gap:.4rem; }
.form-group label { font-family:var(--mono);font-size:.65rem;letter-spacing:.15em;text-transform:uppercase;color:rgba(255,255,255,.4); }
.form-group input, .form-group textarea, .form-group select { background:rgba(255,255,255,.05);border:1px solid rgba(255,255,255,.15);color:var(--white);padding:.8rem 1rem;font-family:var(--sans);font-size:.88rem;outline:none;transition:border-color .2s;border-radius:0;-webkit-appearance:none; }
.form-group input:focus, .form-group textarea:focus { border-color:var(--gold); }
.form-group textarea { min-height:130px;resize:vertical; }
.form-group input::placeholder, .form-group textarea::placeholder { color:rgba(255,255,255,.2); }
.form-group select option { background:var(--navy-mid); }
.btn-submit { font-size:.78rem;font-weight:500;letter-spacing:.12em;text-transform:uppercase;color:var(--navy);background:var(--gold);padding:1rem 2.5rem;border:none;cursor:pointer;font-family:var(--sans);transition:background .2s;align-self:flex-start; }
.btn-submit:hover { background:var(--gold-lt); }
#formSuccess { display:none;color:var(--gold);font-size:.85rem;margin-top:.5rem;font-family:var(--mono); }

/* ── FOOTER ── */
footer { background:#111826;padding:2rem 8%;display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:1rem;border-top:1px solid rgba(255,255,255,.06); }
.footer-name { font-family:var(--serif);font-size:1rem;color:rgba(255,255,255,.5); }
.footer-copy { font-family:var(--mono);font-size:.65rem;color:rgba(255,255,255,.25);letter-spacing:.1em; }
.footer-social { display:flex;gap:1rem; }
.footer-social a { font-family:var(--mono);font-size:.65rem;letter-spacing:.1em;text-transform:uppercase;color:rgba(255,255,255,.3);text-decoration:none;transition:color .2s; }
.footer-social a:hover { color:var(--gold); }

/* ── REVEAL ── */
.reveal { opacity:0;transform:translateY(24px);transition:opacity .6s ease,transform .6s ease; }
.reveal.visible { opacity:1;transform:translateY(0); }

/* ── MOBILE ── */
@media(max-width:900px) {
  nav { padding:0 4%; }
  .nav-links { display:none; }
  .nav-links.open { display:flex;flex-direction:column;position:fixed;top:var(--nav-h);left:0;right:0;background:var(--ivory);padding:1.5rem 4% 2rem;border-bottom:1px solid var(--sand);gap:1.2rem; }
  .hamburger { display:flex; }
  #home { grid-template-columns:1fr;min-height:auto; }
  .hero-photo-panel { display:none; }
  .hero-content { padding:60px 4%; }
  .about-grid, .cv-columns, .contact-grid { grid-template-columns:1fr;gap:3rem; }
  section, #contact { padding:70px 4%; }
  footer { padding:1.5rem 4%; }
  .form-row { grid-template-columns:1fr; }
  .section-header { flex-wrap:wrap; }
  .section-rule { display:none; }
  .pub-item { grid-template-columns:50px 1fr; }
  .pub-tabs { flex-wrap:wrap; }
  .pub-tab { font-size:.6rem;padding:.5rem .8rem; }
}
