/* ─── TOKENS (mirrors naomi-nlp.github.io) ─── */
  :root{
    --bg:#0b0f0d; --bg-2:#0f1512; --surface:#14201b; --surface-2:#1c2b24;
    --blue:#34b17e; --blue-light:#63d4a4; --blue-dim:#1f8a5f;
    --cream:#eaf6ef; --cream-dim:#a9c9ba;
    --text:#ffffff; --text-muted:#c6dcd0; --text-dim:#7c9c8a;
    --border:rgba(52,177,126,0.08); --border-2:rgba(52,177,126,0.04);
    --sidebar-w:280px; --radius:6px; --ease:cubic-bezier(0.16,1,0.3,1);
  }
  *,*::before,*::after{box-sizing:border-box;margin:0;padding:0;}
  html{scroll-behavior:smooth;font-size:16px;}
  @media (prefers-reduced-motion:reduce){html{scroll-behavior:auto;}}
  body{background:var(--bg);color:var(--text);font-family:'DM Sans',sans-serif;font-weight:400;line-height:1.75;-webkit-font-smoothing:antialiased;overflow-x:hidden;transition:background .3s ease,color .3s ease;}
  ::selection{background:var(--blue-dim);color:var(--cream);}
  a{color:inherit;text-decoration:none;}
  ul{list-style:none;}
  :focus-visible{outline:2px solid var(--blue);outline-offset:3px;border-radius:2px;}

  /* ─── MOBILE BAR ─── */
  .mobile-bar{display:none;position:fixed;top:0;left:0;right:0;height:56px;background:rgba(11,15,13,.94);backdrop-filter:blur(16px);border-bottom:1px solid var(--border);align-items:center;justify-content:space-between;padding:0 20px;z-index:200;}
  .mobile-logo{font-family:'Cormorant Garamond',serif;font-size:1.15rem;font-weight:600;color:var(--blue-light);}
  .mobile-controls{display:flex;align-items:center;gap:14px;}
  .icon-btn{background:none;border:none;color:var(--text-muted);cursor:pointer;font-size:1.2rem;line-height:1;display:flex;}

  .layout{display:flex;min-height:100vh;position:relative;z-index:1;}

  /* ─── SIDEBAR ─── */
  .sidebar{width:var(--sidebar-w);flex-shrink:0;position:fixed;top:0;left:0;bottom:0;overflow-y:auto;background:var(--bg);border-right:1px solid var(--blue-dim);z-index:100;transition:transform .35s var(--ease),background .3s ease;}
  .sidebar-inner{display:flex;flex-direction:column;padding:40px 28px 32px;min-height:100%;}
  .sb-photo-wrap{width:fit-content;margin:0 auto 22px;}
  .sb-photo-ring{width:126px;height:126px;border-radius:50%;padding:3px;background:linear-gradient(135deg,var(--blue-dim),var(--blue),var(--blue-light));box-shadow:0 6px 24px rgba(52,177,126,.2);transition:transform .4s var(--ease),box-shadow .4s ease;}
  .sb-photo-ring:hover{transform:scale(1.04);box-shadow:0 10px 32px rgba(52,177,126,.35);}
  .sb-photo{width:100%;height:100%;border-radius:50%;object-fit:cover;object-position:center top;display:flex;align-items:center;justify-content:center;border:3px solid var(--bg-2);background:radial-gradient(120% 120% at 30% 20%,var(--surface-2),var(--bg));font-family:'Cormorant Garamond',serif;font-size:2.6rem;font-weight:600;color:var(--blue-light);letter-spacing:.02em;}

  .sb-identity{text-align:center;margin-bottom:24px;}
  .sb-name{font-family:'Cormorant Garamond',serif;font-size:2rem;font-weight:700;line-height:1.05;letter-spacing:-.02em;color:var(--cream);margin-bottom:8px;}
  .sb-name em{font-style:normal;font-weight:700;color:var(--cream);}
  .sb-title{font-size:.85rem;font-weight:500;color:var(--cream-dim);line-height:1.4;margin-bottom:4px;}
  .sb-affil{font-size:.72rem;color:var(--text-muted);letter-spacing:.08em;text-transform:uppercase;}

  .sb-links{display:flex;flex-direction:column;gap:2px;margin-bottom:26px;padding-bottom:22px;border-bottom:1px solid var(--border-2);}
  .sb-link{display:flex;align-items:center;gap:10px;padding:6px 10px;border-radius:var(--radius);font-size:.85rem;color:var(--text-muted);transition:background .2s ease,color .2s ease;}
  .sb-link:hover{background:rgba(52,177,126,.08);color:var(--blue-light);}
  .sb-link-icon{width:18px;height:18px;color:var(--blue);flex-shrink:0;display:flex;align-items:center;justify-content:center;}
  .sb-link-icon svg{width:16px;height:16px;}
  .lbl-short{display:none;}

  .sb-nav{display:flex;flex-direction:column;gap:2px;flex:1;}
  .sb-nav-link{display:block;padding:7px 10px;border-radius:var(--radius);font-size:.9rem;color:var(--text-muted);transition:background .2s ease,color .2s ease,padding .2s ease;position:relative;}
  .sb-nav-link::before{content:'';position:absolute;left:0;top:50%;transform:translateY(-50%);width:2px;height:0;background:var(--blue);border-radius:1px;transition:height .25s ease;}
  .sb-nav-link:hover,.sb-nav-link.active{background:rgba(52,177,126,.09);color:var(--cream);padding-left:16px;}
  .sb-nav-link:hover::before,.sb-nav-link.active::before{height:60%;}
  .sb-nav-link.active{color:var(--blue-light);font-weight:500;}

  .sb-bottom{margin-top:28px;padding-top:20px;border-top:1px solid var(--border-2);}
  .sb-theme{display:flex;align-items:center;gap:10px;width:100%;padding:9px 12px;background:none;border:1px solid var(--border);border-radius:var(--radius);color:var(--text-muted);font-family:'DM Sans',sans-serif;font-size:.82rem;cursor:pointer;transition:border-color .2s ease,color .2s ease;}
  .sb-theme:hover{border-color:var(--blue);color:var(--blue-light);}

  /* ─── MAIN ─── */
  .main-content{margin-left:var(--sidebar-w);flex:1;max-width:860px;padding:60px 64px 40px;}
  .content-section{padding:56px 0;border-bottom:1px solid var(--border-2);scroll-margin-top:20px;}
  .content-section:first-of-type{padding-top:8px;}
  .content-section:last-of-type{border-bottom:none;}
  .cs-heading{font-family:'Cormorant Garamond',serif;font-size:1.9rem;font-weight:600;color:var(--cream);letter-spacing:-.01em;margin-bottom:6px;}
  .cs-divider{width:40px;height:2px;background:var(--blue);border-radius:1px;margin-bottom:26px;}
  .cs-subheading{font-family:'Cormorant Garamond',serif;font-size:1.15rem;font-weight:600;color:var(--cream);margin:34px 0 14px;}
  .content-section p{color:var(--text-muted);font-size:1rem;line-height:1.8;margin-bottom:16px;}
  .content-section p strong{color:var(--cream);font-weight:500;}
  .text-link{color:var(--blue);border-bottom:1px solid rgba(52,177,126,.3);transition:color .2s ease,border-color .2s ease;}
  .text-link:hover{color:var(--blue-light);border-color:var(--blue-light);}

  .intro-meta{display:flex;flex-direction:column;gap:12px;margin:26px 0;padding:20px 24px;background:var(--surface);border:1px solid var(--border-2);border-radius:var(--radius);border-left:3px solid var(--blue);}
  .intro-meta-item{display:flex;gap:16px;font-size:.95rem;}
  .intro-meta-label{font-weight:600;color:var(--blue);width:96px;flex-shrink:0;font-size:.72rem;text-transform:uppercase;letter-spacing:.06em;padding-top:3px;}
  .intro-meta-item span:last-child{color:var(--text-muted);}

  .intro-awards{display:flex;flex-direction:column;gap:10px;margin-top:6px;}
  .award-item{display:flex;align-items:baseline;gap:12px;font-size:.95rem;color:var(--text-muted);}
  .award-year{font-size:.78rem;font-weight:600;color:var(--blue);width:36px;flex-shrink:0;letter-spacing:.04em;}
  .award-item strong{color:var(--cream);font-weight:500;}

  /* research interests */
  .ri-list{display:flex;flex-direction:column;margin-top:4px;}
  .ri-item{padding:22px 0;border-bottom:1px solid var(--border-2);display:grid;grid-template-columns:150px 1fr;gap:28px;align-items:start;transition:padding-left .25s ease;}
  .ri-item:last-child{border-bottom:none;}
  .ri-item:hover{padding-left:6px;}
  .ri-number{font-size:.68rem;font-weight:600;color:var(--blue);letter-spacing:.1em;opacity:.7;margin-bottom:4px;}
  .ri-item h3{font-family:'Cormorant Garamond',serif;font-size:1.15rem;font-weight:600;color:var(--cream);line-height:1.25;transition:color .2s ease;}
  .ri-item:hover h3{color:var(--blue-light);}
  .ri-list.simple .ri-item{grid-template-columns:1fr;}
  .ri-list.simple .ri-item-header{display:flex;align-items:baseline;gap:14px;}
  .ri-list.simple .ri-number{margin-bottom:0;}
  .ri-item p{font-size:.97rem;color:var(--text-muted);line-height:1.7;margin:0;}

  /* featured project */
  .project-card{display:block;padding:24px 26px;background:var(--surface);border:1px solid var(--border);border-left:3px solid var(--blue);border-radius:var(--radius);transition:border-color .2s ease,transform .25s var(--ease);}
  .project-card:hover{border-color:var(--blue);transform:translateY(-2px);}
  .project-top{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:10px;}
  .project-tag{font-size:.68rem;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--blue);}
  .project-arrow{color:var(--blue-light);font-size:1.1rem;}
  .project-title{font-family:'Cormorant Garamond',serif;font-size:1.35rem;font-weight:600;color:var(--cream);line-height:1.25;margin-bottom:10px;}
  .project-card:hover .project-title{color:var(--blue-light);}
  .content-section .project-card p{font-size:.96rem;margin-bottom:14px;}
  .project-chips{display:flex;flex-wrap:wrap;gap:6px;}
  .project-chips span{font-size:.76rem;color:var(--text-muted);background:var(--bg-2);border:1px solid var(--border);padding:2px 10px;border-radius:100px;}

  /* experience */
  .exp-list{display:flex;flex-direction:column;}
  .exp-list>li{padding:22px 0;border-bottom:1px solid var(--border-2);}
  .exp-list>li:last-child{border-bottom:none;}
  .exp-header{display:flex;justify-content:space-between;align-items:baseline;gap:16px;flex-wrap:wrap;margin-bottom:4px;}
  .exp-role{font-weight:600;color:var(--cream);font-size:1.02rem;}
  .exp-date{font-size:.72rem;color:var(--text-dim);white-space:nowrap;}
  .exp-org{display:block;font-size:.9rem;color:var(--blue);margin-bottom:10px;}
  .exp-bullets{display:flex;flex-direction:column;gap:4px;padding-left:2px;}
  .exp-bullets li{font-size:.96rem;color:var(--text-muted);line-height:1.7;padding-left:16px;position:relative;}
  .exp-bullets li::before{content:'—';position:absolute;left:0;color:var(--blue-dim);font-size:.7rem;top:2px;}

  /* publications */
  .pub-list{display:flex;flex-direction:column;}
  .pub-list li{padding:20px 0;border-bottom:1px solid var(--border-2);font-size:1rem;color:var(--text-muted);line-height:1.7;}
  .pub-list li:last-child{border-bottom:none;}
  .pub-num{font-size:.68rem;font-weight:600;color:var(--blue);letter-spacing:.08em;opacity:.7;margin-right:2px;}
  .pub-title{font-weight:500;color:var(--cream);}
  .pub-title-link{font-weight:500;color:var(--cream);border-bottom:1px solid rgba(52,177,126,.25);transition:color .2s ease,border-color .2s ease;}
  .pub-title-link:hover{color:var(--blue-light);border-color:var(--blue-light);}
  .pub-authors b{color:var(--cream);font-weight:600;}
  .pub-venue-inline{font-style:italic;color:var(--blue);font-size:.86rem;}
  .pub-badge{display:inline-block;font-size:.62rem;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--blue);border:1px solid rgba(52,177,126,.3);border-radius:100px;padding:1px 8px;margin-left:6px;vertical-align:middle;}
  .pub-note{font-size:.78rem;color:var(--text-dim);margin-top:18px;font-style:italic;}

  /* teaching / service simple lists */
  .simple-list{display:flex;flex-direction:column;}
  .simple-list li{padding:12px 0;border-bottom:1px solid var(--border-2);font-size:.98rem;color:var(--text-muted);display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap;}
  .simple-list li:last-child{border-bottom:none;}
  .simple-list .k strong{color:var(--cream);font-weight:500;}
  .simple-list .k small{color:var(--text-dim);font-style:italic;}
  .simple-list .v{font-size:.74rem;color:var(--text-dim);white-space:nowrap;}

  .skills-inline{display:flex;flex-wrap:wrap;gap:8px;margin-top:6px;}
  .skill-chip{font-size:.83rem;color:var(--text-muted);background:var(--surface);border:1px solid var(--border-2);padding:4px 12px;border-radius:100px;transition:all .2s ease;}
  .skill-chip:hover{background:rgba(52,177,126,.1);border-color:rgba(52,177,126,.3);color:var(--blue-light);}

  .footer{margin-top:8px;padding-top:24px;font-size:.82rem;color:var(--text-dim);}

  /* reveal */
  .reveal{opacity:0;transform:translateY(14px);transition:opacity .6s ease,transform .6s ease;}
  .reveal.in{opacity:1;transform:none;}
  @media (prefers-reduced-motion:reduce){.reveal{opacity:1;transform:none;transition:none;}}

  /* ─── LIGHT MODE ─── */
  body.light-mode{--bg:#ffffff;--bg-2:#f5f5f5;--surface:#f0f0f0;--surface-2:#e0e0e0;--blue:#1f8a5f;--blue-light:#23a06f;--blue-dim:#0c6444;--cream:#000000;--cream-dim:#1a1a1a;--text:#000000;--text-muted:#2a2a2a;--text-dim:#555555;--border:rgba(0,0,0,.12);--border-2:rgba(0,0,0,.07);}
  body.light-mode .sidebar{background:rgba(245,245,245,.95);border-right-color:var(--blue-dim);}
  body.light-mode .mobile-bar{background:rgba(255,255,255,.96);border-bottom-color:rgba(0,0,0,.1);}
  body.light-mode .sb-photo{border-color:var(--bg);}
  body.light-mode .skill-chip{background:#e8e8e8;color:#2a2a2a;border-color:rgba(0,0,0,.1);}
  body.light-mode .skill-chip:hover{background:rgba(18,128,90,.1);color:var(--blue);border-color:var(--blue);}
  body.light-mode .intro-meta{background:#f0f0f0;}

  /* ─── RESPONSIVE ─── */
  @media (max-width:900px){
    .mobile-bar{display:none;}                 /* no hamburger — show everything */
    .layout{flex-direction:column;}
    .sidebar{position:static;width:100%;height:auto;transform:none;overflow:visible;border-right:none;border-bottom:1px solid var(--border);}
    .sidebar-inner{padding:32px 16px 22px;}
    .sb-photo-ring{width:112px;height:112px;}
    .sb-links{flex-direction:row;flex-wrap:nowrap;justify-content:center;align-items:center;gap:4px;border-bottom:none;margin-bottom:14px;padding-bottom:6px;}
    .sb-link{width:auto;padding:6px 8px;gap:7px;font-size:.82rem;}
    .lbl-full{display:none;} .lbl-short{display:inline;}
    .sb-nav{flex-direction:row;flex-wrap:wrap;justify-content:center;gap:4px;flex:none;padding-top:14px;border-top:1px solid var(--border-2);}
    .sb-nav-link{padding:6px 12px;}
    .sb-nav-link::before{display:none;}
    .sb-nav-link:hover,.sb-nav-link.active{padding-left:12px;}
    .sb-bottom{margin-top:16px;display:flex;justify-content:center;}
    .sb-theme{width:auto;}
    .main-content{margin-left:0;padding:12px 28px 40px;max-width:100%;}
  }
  @media (max-width:600px){
    .ri-item{grid-template-columns:1fr;gap:6px;}
    .main-content{padding:8px 20px 32px;}
    .exp-header{gap:2px;}
  }
