:root { --ink:#14221d; --paper:#f3f0e8; --white:#fbfaf6; --acid:#c7ff4a; --muted:#78827d; --line:rgba(20,34,29,.16); }
* { box-sizing:border-box; }
html { scroll-behavior:smooth; }
body { margin:0; background:var(--paper); color:var(--ink); font-family:Arial, Helvetica, sans-serif; }
a { color:inherit; text-decoration:none; }
.site-shell { min-height:100vh; }
.sidebar { position:fixed; z-index:20; inset:0 auto 0 0; width:280px; padding:42px 36px 30px; background:var(--white); border-right:1px solid var(--line); display:flex; flex-direction:column; }
.wordmark { display:flex; flex-direction:column; line-height:.85; letter-spacing:-.055em; }
.name-first { font-family:Georgia, 'Times New Roman', serif; font-size:46px; font-style:italic; font-weight:400; }
.name-last { margin-left:18px; font-family:Georgia, 'Times New Roman', serif; font-size:29px; }
.sidebar-role { margin:28px 0 52px; color:var(--muted); font-size:11px; line-height:1.55; letter-spacing:.16em; text-transform:uppercase; }
.sidebar nav { display:flex; flex-direction:column; }
.sidebar nav a { position:relative; padding:12px 0; color:#77807c; font-size:12px; font-weight:700; letter-spacing:.07em; text-transform:uppercase; transition:.2s; }
.sidebar nav a span { display:inline-block; width:28px; color:#afb5b1; font-size:9px; }
.sidebar nav a::after { content:""; position:absolute; left:-36px; top:50%; width:0; height:1px; background:var(--ink); transition:.2s; }
.sidebar nav a:hover,.sidebar nav a.active { color:var(--ink); transform:translateX(8px); }
.sidebar nav a.active::after { width:28px; }
.sidebar-footer { margin-top:auto; display:flex; flex-direction:column; gap:8px; color:var(--muted); font-size:11px; }
.sidebar-footer a { color:var(--ink); font-weight:700; }
.mobile-header { display:none; }
main { margin-left:280px; }
section { scroll-margin-top:0; }
.section-dark { background:var(--ink); color:var(--white); }
.hero { position:relative; min-height:100vh; padding:38px 5.5vw 32px; display:flex; flex-direction:column; overflow:hidden; }
.hero-grid { position:absolute; inset:0; opacity:.12; background-image:linear-gradient(rgba(255,255,255,.18) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.18) 1px,transparent 1px); background-size:72px 72px; mask-image:linear-gradient(to bottom,black,transparent 76%); }
.hero::after { content:""; position:absolute; width:370px; height:370px; border:1px solid rgba(199,255,74,.35); border-radius:50%; right:-100px; top:15%; box-shadow:0 0 0 70px rgba(199,255,74,.025),0 0 0 140px rgba(199,255,74,.018); }
.hero-top { position:relative; z-index:1; display:flex; justify-content:space-between; font-size:10px; letter-spacing:.18em; text-transform:uppercase; }
.hero-top span:last-child::before { content:""; display:inline-block; width:7px; height:7px; margin-right:8px; border-radius:50%; background:var(--acid); }
.hero-content { position:relative; z-index:1; margin:auto 0; max-width:950px; padding:70px 0; }
.kicker,.section-label { color:var(--muted); font-size:10px; font-weight:700; letter-spacing:.2em; text-transform:uppercase; }
.section-dark .kicker,.section-dark .section-label { color:var(--acid); }
.hero h1 { max-width:900px; margin:22px 0 28px; font-family:Georgia, 'Times New Roman', serif; font-size:clamp(58px,7.2vw,112px); font-weight:400; line-height:.9; letter-spacing:-.055em; }
.hero-intro { max-width:610px; color:#c4cbc7; font-size:18px; line-height:1.55; }
.hero-actions { display:flex; align-items:center; gap:30px; margin-top:38px; }
.button { padding:15px 20px; font-size:11px; font-weight:700; letter-spacing:.08em; text-transform:uppercase; }
.button.primary { background:var(--acid); color:var(--ink); }
.button span,.text-link span,.email-link span { display:inline-block; margin-left:12px; }
.text-link { padding-bottom:5px; border-bottom:1px solid rgba(255,255,255,.45); font-size:12px; }
.metric-row { position:relative; z-index:1; display:grid; grid-template-columns:repeat(3,1fr); border-top:1px solid rgba(255,255,255,.18); }
.metric { padding:24px 24px 0 0; border-right:1px solid rgba(255,255,255,.18); display:flex; align-items:flex-end; gap:14px; }
.metric:last-child { border-right:0; padding-left:24px; }
.metric:nth-child(2) { padding-left:24px; }
.metric strong { font-family:Georgia,serif; font-size:36px; font-weight:400; }
.metric span { max-width:115px; padding-bottom:3px; color:#9ea7a2; font-size:10px; line-height:1.4; text-transform:uppercase; }
.statement,.content-section { padding:120px 6vw; }
.statement { display:grid; grid-template-columns:180px 1fr; background:var(--white); }
.statement h2,.section-heading h2,.contact-section h2 { margin:0; font-family:Georgia,serif; font-size:clamp(42px,5vw,72px); font-weight:400; line-height:1.05; letter-spacing:-.045em; }
.statement h2 em { color:#819087; font-weight:400; }
.about-detail { display:grid; grid-template-columns:minmax(0,1fr) 300px; gap:60px; margin-top:55px; align-items:start; }
.two-col-copy { display:grid; grid-template-columns:1fr 1fr; gap:42px; max-width:690px; font-size:16px; line-height:1.7; }
.two-col-copy p { margin-top:0; }
.portrait-frame { position:relative; margin:0; background:var(--ink); }
.portrait-frame::before { content:""; position:absolute; z-index:1; inset:-10px 10px 10px -10px; border:1px solid var(--ink); pointer-events:none; }
.portrait-frame img { display:block; width:100%; aspect-ratio:4/5; object-fit:cover; object-position:center top; filter:saturate(.88) contrast(1.02); }
.portrait-frame figcaption { display:flex; justify-content:space-between; padding:12px 14px; color:#cbd2ce; font-size:8px; letter-spacing:.12em; text-transform:uppercase; }
.section-heading { display:grid; grid-template-columns:180px 1fr; margin-bottom:80px; }
.section-heading h2 { max-width:850px; font-size:58px; }
.experience-section { background:var(--paper); }
.timeline { border-top:1px solid var(--line); }
.job { display:grid; grid-template-columns:180px 1fr; padding:42px 0; border-bottom:1px solid var(--line); }
.job-meta { display:flex; flex-direction:column; gap:6px; color:var(--muted); font-size:10px; letter-spacing:.1em; text-transform:uppercase; }
.job-body { max-width:820px; }
.job h3 { margin:0; font-family:Georgia,serif; font-size:29px; font-weight:400; }
.job .company { margin:5px 0 22px; color:#607068; font-size:12px; font-weight:700; letter-spacing:.12em; text-transform:uppercase; }
.job-body>p:last-of-type { line-height:1.65; }
.job ul { margin:22px 0 0; padding:0; list-style:none; color:#52605a; }
.job li { position:relative; margin:10px 0; padding-left:19px; line-height:1.55; }
.job li::before { content:""; position:absolute; left:0; top:.65em; width:6px; height:6px; background:var(--acid); border:1px solid var(--ink); }
.skills-section { padding-bottom:80px; }
.skill-grid { display:grid; grid-template-columns:repeat(2,1fr); border-top:1px solid rgba(255,255,255,.18); border-left:1px solid rgba(255,255,255,.18); }
.skill-grid article { min-height:270px; padding:32px; border-right:1px solid rgba(255,255,255,.18); border-bottom:1px solid rgba(255,255,255,.18); }
.skill-number { color:var(--acid); font-size:10px; }
.skill-grid h3 { margin:38px 0 22px; font-family:Georgia,serif; font-size:27px; font-weight:400; }
.skill-grid p { display:inline-block; margin:4px 4px 4px 0; padding:7px 10px; border:1px solid rgba(255,255,255,.16); color:#bac2be; font-size:11px; }
.education { display:grid; grid-template-columns:180px 1fr; padding-top:50px; color:#aab3ae; font-size:12px; }
.education>span { color:var(--acid); font-size:10px; letter-spacing:.2em; text-transform:uppercase; }
.education p { margin:0 0 8px; }
.work-section { background:var(--white); }
.section-heading.split { grid-template-columns:2fr 1fr; gap:80px; }
.section-heading.split .section-label { margin-bottom:26px; }
.section-heading.split>p { margin-top:43px; color:#68746e; line-height:1.7; }
.case-grid { display:grid; grid-template-columns:repeat(2,1fr); border-top:1px solid var(--line); border-left:1px solid var(--line); }
.case { position:relative; min-height:310px; padding:34px; border-right:1px solid var(--line); border-bottom:1px solid var(--line); transition:.25s; }
.case:hover { background:var(--paper); }
.case-index { position:absolute; right:28px; top:28px; color:#adb4b0; font-size:10px; }
.case-category { color:#718078; font-size:10px; letter-spacing:.15em; text-transform:uppercase; }
.case h3 { margin:75px 0 18px; font-family:Georgia,serif; font-size:35px; font-weight:400; }
.case>p:last-child { max-width:440px; color:#65716b; line-height:1.6; }
.client-cloud { display:flex; flex-wrap:wrap; gap:9px; margin-top:44px; }
.client-cloud span { padding:9px 13px; background:var(--paper); color:#647068; font-size:10px; font-weight:700; letter-spacing:.06em; text-transform:uppercase; }
.awards-section { background:var(--acid); }
.awards-intro { display:grid; grid-template-columns:180px 1fr; margin-bottom:70px; }
.awards-intro h2 { max-width:900px; margin:0; font-family:Georgia,serif; font-size:clamp(42px,5vw,68px); font-weight:400; line-height:1.05; letter-spacing:-.045em; }
.awards-list { border-top:1px solid rgba(20,34,29,.35); }
.award-row { display:grid; grid-template-columns:90px 1.2fr 1fr; gap:35px; padding:28px 0; border-bottom:1px solid rgba(20,34,29,.28); align-items:start; }
.award-year,.award-org,.award-category { margin:0; font-size:10px; font-weight:700; letter-spacing:.12em; text-transform:uppercase; }
.award-org,.award-category { color:#516138; }
.award-row h3 { margin:8px 0 5px; font-family:Georgia,serif; font-size:28px; font-weight:400; }
.award-row div>p:last-child { margin:0; font-size:13px; }
.award-row strong { display:inline-block; margin-top:13px; padding:6px 9px; background:var(--ink); color:var(--acid); font-size:10px; letter-spacing:.1em; text-transform:uppercase; }
.publications-section { background:var(--paper); }
.publication-list { border-top:1px solid var(--line); }
.publication-list article { display:grid; grid-template-columns:180px 1.2fr 1fr; gap:35px; padding:30px 0; border-bottom:1px solid var(--line); align-items:start; }
.publication-list span { color:#77827c; font-size:10px; letter-spacing:.15em; text-transform:uppercase; }
.publication-list h3 { margin:0; font-family:Georgia,serif; font-size:23px; font-weight:400; }
.publication-list p { margin:0; color:#66716c; line-height:1.6; }
.publication-link { display:inline-block; margin-top:13px; padding-bottom:4px; border-bottom:1px solid var(--ink); color:var(--ink); font-size:11px; font-weight:700; letter-spacing:.07em; text-transform:uppercase; }
.contact-section { padding:110px 6vw 35px; }
.contact-section h2 { margin:30px 0 20px; font-size:80px; }
.contact-section>p:not(.section-label) { max-width:650px; color:#b5beba; font-size:17px; line-height:1.65; }
.email-link { display:inline-block; margin:55px 0 90px; padding-bottom:8px; border-bottom:2px solid var(--acid); font-family:Georgia,serif; font-size:clamp(26px,4vw,50px); }
.contact-links { display:grid; grid-template-columns:1fr 1fr; max-width:780px; margin:-45px 0 75px; border-top:1px solid rgba(255,255,255,.18); }
.contact-links a { padding:22px 20px 22px 0; border-bottom:1px solid rgba(255,255,255,.18); color:var(--white); font-family:Georgia,serif; font-size:23px; }
.contact-links a:first-child { border-right:1px solid rgba(255,255,255,.18); }
.contact-links a:last-child { padding-left:25px; }
.contact-links a>span:first-child { display:block; margin-bottom:9px; color:#9da8a2; font-family:Arial,sans-serif; font-size:9px; font-weight:700; letter-spacing:.15em; text-transform:uppercase; }
.contact-footer { display:flex; justify-content:space-between; padding-top:28px; border-top:1px solid rgba(255,255,255,.18); color:#9da8a2; font-size:10px; letter-spacing:.12em; text-transform:uppercase; }
.contact-footer a { color:var(--white); }

@media (max-width:900px) {
  .mobile-header { position:fixed; z-index:30; inset:0 0 auto; height:64px; padding:0 22px; background:var(--white); border-bottom:1px solid var(--line); display:flex; align-items:center; justify-content:space-between; }
  .mobile-name { font-family:Georgia,serif; font-size:23px; font-style:italic; }.mobile-name span{color:#829087}
  .menu-button { width:36px; height:36px; border:0; background:transparent; display:flex; flex-direction:column; justify-content:center; gap:7px; }
  .menu-button span { display:block; width:100%; height:1px; background:var(--ink); }
  .sidebar { width:100%; padding-top:95px; transform:translateX(-100%); transition:.3s ease; }
  .sidebar.open { transform:translateX(0); }
  main { margin-left:0; padding-top:64px; }
  .hero { min-height:calc(100vh - 64px); }
  .hero h1 { font-size:clamp(51px,12vw,82px); }
  .statement,.section-heading,.job,.education,.awards-intro { grid-template-columns:130px 1fr; }
  .publication-list article { grid-template-columns:100px 1fr; }
  .publication-list p { grid-column:2; }
  .about-detail { grid-template-columns:1fr 250px; gap:35px; }
  .two-col-copy { grid-template-columns:1fr; gap:8px; }
}
@media (max-width:620px) {
  .hero { padding:24px 22px; }
  .hero-top span:first-child { display:none; }
  .hero-top { justify-content:flex-end; }
  .hero-content { padding:58px 0; }
  .hero h1 { font-size:49px; }
  .hero-intro { font-size:15px; }
  .hero-actions { align-items:flex-start; flex-direction:column; gap:20px; }
  .metric-row { grid-template-columns:1fr; }
  .metric,.metric:nth-child(2),.metric:last-child { padding:14px 0; border-right:0; border-bottom:1px solid rgba(255,255,255,.12); }
  .metric strong { min-width:80px; font-size:28px; }
  .statement,.content-section { padding:75px 22px; }
  .statement,.section-heading,.job,.education,.awards-intro { display:block; }
  .statement>.section-label,.section-heading>.section-label { margin-bottom:28px; }
  .statement h2,.section-heading h2 { font-size:39px; }
  .about-detail { grid-template-columns:1fr; gap:35px; margin-top:38px; }
  .two-col-copy { grid-template-columns:1fr; gap:10px; }
  .portrait-frame { max-width:330px; }
  .section-heading { margin-bottom:48px; }
  .job-meta { margin-bottom:18px; flex-direction:row; justify-content:space-between; }
  .job h3 { font-size:25px; }
  .skill-grid,.case-grid { grid-template-columns:1fr; }
  .skill-grid article,.case { min-height:auto; }
  .section-heading.split { grid-template-columns:1fr; gap:10px; }
  .section-heading.split>p { margin-top:0; }
  .awards-intro .section-label { margin-bottom:28px; }
  .awards-intro h2 { font-size:39px; }
  .award-row { grid-template-columns:56px 1fr; gap:15px; }
  .award-row>div:last-child { grid-column:2; }
  .publication-list article { display:block; }
  .publication-list h3 { margin:12px 0; }
  .contact-section { padding:75px 22px 28px; }
  .contact-section h2 { font-size:52px; }
  .email-link { margin:45px 0 70px; font-size:23px; }
  .contact-links { grid-template-columns:1fr; margin-top:-35px; }
  .contact-links a:first-child { border-right:0; }
  .contact-links a:last-child { padding-left:0; }
  .contact-footer { flex-direction:column; gap:12px; }
}
@media (prefers-reduced-motion:reduce) { html{scroll-behavior:auto} *{transition:none!important} }
