/* ======================================================================
   vincenzorana.it — Design System
   Indigo/teal palette · clean surfaces · purposeful motion
   ====================================================================== */

/* 0 · Design Tokens --------------------------------------------------- */
:root{
  --bg:#09090b;
  --bg-elevated:rgba(24,24,27,.55);
  --bg-subtle:rgba(39,39,42,.55);
  --text:#fafafa;
  --text-sub:rgba(250,250,250,.70);
  --text-muted:rgba(250,250,250,.45);
  --text-ghost:rgba(250,250,250,.28);
  --primary:#6366f1;
  --primary-rgb:99,102,241;
  --secondary:#14b8a6;
  --secondary-rgb:20,184,166;
  --surface:rgba(24,24,27,.85);
  --surface-border:rgba(250,250,250,.08);
  --grad-accent:linear-gradient(135deg,var(--primary),var(--secondary));
  --shadow-sm:0 1px 2px rgba(0,0,0,.05),0 1px 3px rgba(0,0,0,.1);
  --shadow-md:0 4px 6px -1px rgba(0,0,0,.1),0 2px 4px -2px rgba(0,0,0,.1);
  --shadow-lg:0 10px 15px -3px rgba(0,0,0,.1),0 4px 6px -4px rgba(0,0,0,.1);
  --shadow-card-hover:0 8px 25px -5px rgba(0,0,0,.12),0 0 0 1px rgba(var(--primary-rgb),.18);
  --font-display:'Outfit',system-ui,-apple-system,sans-serif;
  --font-sans:'Plus Jakarta Sans',system-ui,-apple-system,sans-serif;
  --font-mono:'JetBrains Mono',ui-monospace,SFMono-Regular,monospace;
  --fs-hero:clamp(3.2rem,4.6vw,5.6rem);
  --fs-page-title:clamp(2.2rem,2.8vw,3.4rem);
  --fs-section-title:2.5rem;
  --fs-h2:1.55rem;
  --fs-h3:1rem;
  --fs-body:clamp(17px,0.8vw + 14px,20px);
  --fs-sm:.88rem;
  --fs-xs:.82rem;
  --fs-mono-sm:.72rem;
  --fs-mono-xs:.66rem;
  --fs-chip:.58rem;
  --lh-body:1.75;
  --lh-heading:1.15;
  --lh-tight:1.35;
  --lh-card:1.62;
  --ls-tight:.02em;
  --ls-normal:.06em;
  --ls-wide:.12em;
  --sp-1:4px;--sp-2:8px;--sp-3:12px;--sp-4:16px;
  --sp-6:24px;--sp-8:32px;--sp-12:48px;--sp-16:64px;
  --r-xs:8px;--r-sm:12px;--r-md:16px;--r-lg:18px;--r-xl:22px;
  --r-2xl:28px;--r-pill:999px;
  --ease-spring:cubic-bezier(.16,1,.3,1);
  --ease-out:cubic-bezier(.33,1,.68,1);
  --tr-fast:.18s ease;
  --tr-base:.25s ease;
  --tr-slow:.35s ease;
  --tr-spring:.5s var(--ease-spring);
  --hover-lift:translateY(-4px);
  --hover-border:rgba(var(--primary-rgb),.25);
  --hover-shadow:var(--shadow-card-hover);
  --maxw:1200px;
  --pad-x:clamp(18px,2.6vw,44px);
  --nav-h:64px;
  --tap-min:44px;
  --measure:68ch;
}

/* 1 · Base Reset ------------------------------------------------------ */
*{margin:0;padding:0;box-sizing:border-box;cursor:default}
a,button,summary,label,[role="button"],select,input[type="submit"],input[type="checkbox"],input[type="radio"],.btn,.btn-o,.btn-primary,.hamburger,.theme-toggle,.lang,.filter-btn,.back-to-top,.tab-btn{cursor:pointer}
input,textarea{cursor:text}
html{scroll-behavior:smooth;font-size:16px;color-scheme:dark}
body{
  font-family:var(--font-sans);font-size:var(--fs-body);
  line-height:var(--lh-body);background:var(--bg);color:var(--text);
  overflow-x:hidden;overflow-wrap:break-word;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;
}
section[id]{scroll-margin-top:calc(var(--nav-h) + 20px)}
img,svg{display:block;max-width:100%}
a{color:inherit}
a:focus-visible,button:focus-visible{outline:2px solid var(--secondary);outline-offset:3px;border-radius:var(--r-xs)}
.skip-link{
  position:absolute;left:-9999px;top:auto;width:1px;height:1px;
  overflow:hidden;z-index:120;
  padding:.55rem .75rem;border-radius:var(--r-xs);background:rgba(3,7,18,.98);
  border:1px solid var(--surface-border);color:var(--text);
  font-family:var(--font-mono);font-size:var(--fs-mono-sm);text-decoration:none;
  box-shadow:var(--shadow-md);
}
.skip-link:focus-visible{
  position:fixed;left:14px;top:10px;width:auto;height:auto;
  overflow:visible;
}

/* 2 · Typography ------------------------------------------------------ */
h1,h2,h3,h4{font-family:var(--font-display);line-height:var(--lh-tight);letter-spacing:-.015em}
h1{font-size:var(--fs-section-title);line-height:var(--lh-heading)}
h2{font-size:var(--fs-h2);line-height:var(--lh-heading)}
h3{font-size:var(--fs-h3)}
.lbl{
  font-family:var(--font-mono);font-size:var(--fs-mono-xs);
  letter-spacing:var(--ls-wide);text-transform:uppercase;color:var(--primary);
  margin-bottom:.8rem;display:flex;align-items:center;gap:.6rem;
}
.stitle{font-family:var(--font-display);font-size:var(--fs-section-title);line-height:var(--lh-heading);margin-bottom:1.8rem;color:var(--text)}
.section-intro{color:var(--text-sub);max-width:var(--measure);font-size:var(--fs-h3);line-height:var(--lh-body);margin-bottom:1.25rem}
.meta{display:block;color:var(--text-muted);font-size:var(--fs-xs);margin-top:.24rem;line-height:var(--lh-tight)}

/* 3 · Card System ----------------------------------------------------- */
.card,.rc,.role-card,.edu-card,.event-card,.tl-card,
.pub-item,.step-card,.focus-card,.evidence-card,.cta-card,
.highlight-item,.tech-card,.roles-scroll .role-chip{
  border:1px solid var(--surface-border);border-radius:var(--r-md);
  background:var(--bg-elevated);padding:1.25rem 1.5rem;
  transition:transform var(--tr-base),border-color var(--tr-base),box-shadow var(--tr-base);
}
@media(hover:hover){
  .card:hover,.rc:hover,.role-card:hover,.edu-card:hover,.event-card:hover,
  .pub-item:hover,.step-card:hover,.focus-card:hover,.evidence-card:hover,.cta-card:hover,
  .highlight-item:hover,.tech-card:hover,.roles-scroll .role-chip:hover{
    transform:var(--hover-lift) !important;border-color:var(--hover-border);box-shadow:var(--hover-shadow);
    transition:transform var(--tr-base),border-color var(--tr-base),box-shadow var(--tr-base);
  }
  .tl-card:hover{
    transform:translateX(6px);border-color:var(--hover-border);box-shadow:var(--hover-shadow);
    transition:transform var(--tr-base),border-color var(--tr-base),box-shadow var(--tr-base);
  }
}
.tech-card{
  position:relative;overflow:hidden;
}
.card{position:relative;overflow:hidden}
.card h3{margin:.05rem 0 .34rem;font-size:var(--fs-h3);line-height:var(--lh-tight)}
.card h3 svg{vertical-align:-3px;margin-right:.4rem;color:var(--secondary)}
.card p{margin:0;color:var(--text-sub);line-height:var(--lh-card);font-size:var(--fs-sm)}

/* 4 · Buttons --------------------------------------------------------- */
.btn{
  text-decoration:none;border:1px solid var(--surface-border);color:var(--text);
  border-radius:var(--r-pill);padding:.62rem .96rem;background:transparent;
  font-size:var(--fs-sm);font-weight:700;letter-spacing:var(--ls-tight);
  transition:transform var(--tr-fast),border-color var(--tr-fast),box-shadow var(--tr-fast),background var(--tr-fast);
}
.btn:hover{
  transform:translateY(-1px);border-color:var(--hover-border);
  background:rgba(var(--primary-rgb),.08);box-shadow:var(--shadow-sm);
}
.btn-primary{background:var(--primary);color:#fff;border-color:var(--primary)}
.btn-primary:hover{background:rgba(var(--primary-rgb),.9);border-color:rgba(var(--primary-rgb),.9)}
.btn-p{
  display:inline-flex;align-items:center;gap:.5rem;
  font-family:var(--font-mono);font-size:var(--fs-mono-sm);letter-spacing:var(--ls-normal);
  padding:.7rem 1.4rem;border-radius:var(--r-pill);
  background:var(--primary);color:#fff;text-decoration:none;border:none;
  transition:all var(--tr-base);
}
.btn-p:hover{box-shadow:var(--shadow-md);transform:translateY(-1px)}
.btn-o{
  display:inline-flex;align-items:center;gap:.5rem;
  font-family:var(--font-mono);font-size:var(--fs-mono-sm);letter-spacing:var(--ls-normal);
  padding:.65rem 1.2rem;border-radius:var(--r-pill);
  border:1px solid var(--surface-border);background:transparent;
  color:var(--text-sub);text-decoration:none;transition:all var(--tr-base);
}
.btn-o:hover{
  color:var(--primary);border-color:rgba(var(--primary-rgb),.35);
  background:rgba(var(--primary-rgb),.06);
}
.btn-o svg{width:16px;height:16px;stroke:currentColor;fill:none;stroke-width:2}
.btn-dl,.btn-o.btn-dl{color:var(--secondary);border-color:rgba(var(--secondary-rgb),.25)}
.btn-dl:hover{border-color:var(--secondary);background:rgba(var(--secondary-rgb),.06);box-shadow:var(--shadow-sm)}
.actions{display:flex;flex-wrap:wrap;gap:.56rem;margin-top:1.25rem}

/* 5 · Navigation ------------------------------------------------------ */
nav.nav{
  position:fixed;top:0;left:0;right:0;z-index:50;
  height:var(--nav-h);display:flex;align-items:center;justify-content:center;
  background:rgba(9,9,11,.85);
  backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);
  border-bottom:1px solid var(--surface-border);
  transition:background .1s ease;
}
.nav-inner{
  width:100%;max-width:min(var(--maxw),100vw);padding:0 var(--pad-x);
  display:flex;align-items:center;justify-content:space-between;gap:1.2rem;
}
.nav-right{display:flex;align-items:center;gap:1rem}
.nav-brand{
  font-family:var(--font-display);font-size:1.2rem;color:var(--text);
  text-decoration:none;display:flex;align-items:center;gap:.6rem;
  white-space:nowrap;
}
.nav-links{display:flex;gap:1.8rem;list-style:none}
.nav-links a{
  font-family:var(--font-sans);font-size:var(--fs-sm);font-weight:500;
  color:var(--text-muted);text-decoration:none;
  transition:color var(--tr-base);position:relative;
}
.nav-links a:hover{color:var(--text)}
.nav-links a.active,.nav-links a.is-active{color:var(--text)}
.nav-links a.active::after,.nav-links a.is-active::after{
  content:"";position:absolute;left:0;right:0;bottom:-10px;height:2px;
  background:var(--primary);border-radius:1px;
}
.lang-switch{
  display:flex;align-items:center;gap:.35rem;padding:.25rem;
  border:1px solid var(--surface-border);border-radius:var(--r-sm);background:rgba(255,255,255,.02);
}
.lang{
  font-family:var(--font-mono);font-size:var(--fs-mono-sm);line-height:1;text-decoration:none;
  color:var(--text-muted);padding:.5rem .65rem;min-height:var(--tap-min);
  display:inline-flex;align-items:center;justify-content:center;
  border-radius:var(--r-xs);border:1px solid transparent;transition:all var(--tr-fast);
}
.lang:hover{color:var(--primary);background:rgba(var(--primary-rgb),.08)}
.lang.active{color:var(--text);background:rgba(255,255,255,.05);border-color:rgba(255,255,255,.08)}
.hamburger{
  display:none;flex-direction:column;gap:5px;background:none;border:none;
  cursor:pointer;padding:10px;min-width:var(--tap-min);min-height:var(--tap-min);
  align-items:center;justify-content:center;
}
.hamburger span{width:20px;height:1.5px;background:var(--text);transition:var(--tr-slow)}
html.nav-open,html.nav-open body{overflow:hidden}
html.nav-open .hamburger span:nth-child(1){transform:rotate(45deg) translate(4.5px,4.5px)}
html.nav-open .hamburger span:nth-child(2){opacity:0;transform:scaleX(0)}
html.nav-open .hamburger span:nth-child(3){transform:rotate(-45deg) translate(4.5px,-4.5px)}
.theme-toggle{
  display:flex;align-items:center;justify-content:center;
  width:36px;height:36px;border-radius:50%;border:1px solid var(--surface-border);
  background:transparent;color:var(--text-muted);cursor:pointer;transition:all var(--tr-base);
}
.theme-toggle:hover{color:var(--primary);border-color:rgba(var(--primary-rgb),.3)}
.theme-toggle svg{width:18px;height:18px;stroke:currentColor;fill:none;stroke-width:2}
.theme-toggle .icon-moon{display:none}
[data-theme="light"] .theme-toggle .icon-sun{display:none}
[data-theme="light"] .theme-toggle .icon-moon{display:block}
#scrollProgress{
  position:fixed;top:0;left:0;right:0;height:2px;
  background:var(--grad-accent);transform-origin:left center;transform:scaleX(0);
  z-index:101;opacity:.9;
}

/* 6 · Chips & Badges -------------------------------------------------- */
.role-chip{
  display:inline-flex;align-items:center;gap:.34rem;margin:0 0 .48rem;
  padding:.2rem .48rem;border-radius:var(--r-pill);
  border:1px solid rgba(255,255,255,.12);background:rgba(255,255,255,.03);
  font-family:var(--font-mono);font-size:var(--fs-chip);letter-spacing:var(--ls-normal);
  text-transform:uppercase;color:#c8d3f0;
}
.role-chip::before{content:"";width:5px;height:5px;border-radius:50%;background:currentColor;opacity:.9}
.role-chip--academia{color:#9fc0ff;border-color:rgba(99,102,241,.34);background:rgba(99,102,241,.12)}
.role-chip--research{color:#9ff0dd;border-color:rgba(20,184,166,.35);background:rgba(20,184,166,.11)}
.role-chip--industry{color:#9cd7ff;border-color:rgba(95,198,255,.34);background:rgba(60,150,255,.1)}
.role-chip--startup{color:#b7f7a4;border-color:rgba(120,235,110,.33);background:rgba(90,210,90,.1)}
.event-type{
  display:inline-flex;align-items:center;gap:.3rem;font-family:var(--font-mono);
  font-size:var(--fs-chip);letter-spacing:var(--ls-normal);text-transform:uppercase;
  padding:.22rem .55rem;border-radius:var(--r-pill);margin-bottom:.35rem;
}
.event-type--talk{color:#e0e0ff;border:1px solid rgba(200,200,255,.35);background:rgba(200,200,255,.1)}
.event-type--talk::before{content:'\1F399'}
.event-type--panel{color:#c9b8ff;border:1px solid rgba(var(--primary-rgb),.35);background:rgba(var(--primary-rgb),.1)}
.event-type--panel::before{content:'\1F465'}
.event-type--workshop{color:#b8ffd9;border:1px solid rgba(0,228,160,.35);background:rgba(0,228,160,.1)}
.event-type--workshop::before{content:'\1F6E0'}
.event-type--corso{color:#ffd9b8;border:1px solid rgba(255,176,88,.35);background:rgba(255,176,88,.1)}
.event-type--corso::before{content:'\1F393'}
.event-type--webinar{color:#b8d4ff;border:1px solid rgba(var(--primary-rgb),.35);background:rgba(var(--primary-rgb),.1)}
.event-type--webinar::before{content:'\1F4BB'}
.event-type--intervista{color:#ffb8d9;border:1px solid rgba(255,120,180,.35);background:rgba(255,120,180,.1)}
.event-type--intervista::before{content:'\1F3A4'}
.event-type--moderazione{color:#d9ffb8;border:1px solid rgba(160,228,0,.35);background:rgba(160,228,0,.1)}
.event-type--moderazione::before{content:'\1F3AF'}
.event-type--evento{color:#ffe8b8;border:1px solid rgba(255,210,100,.35);background:rgba(255,210,100,.1)}
.event-type--evento::before{content:'\1F4C5'}
.tag-row{display:flex;flex-wrap:wrap;gap:.44rem}
.tag{
  display:inline-flex;align-items:center;border-radius:var(--r-pill);
  border:1px solid var(--surface-border);background:var(--surface);
  color:var(--text-sub);font-family:var(--font-mono);font-size:var(--fs-mono-sm);padding:.34rem .58rem;
}
.tag--accent{border-color:rgba(255,210,100,.3);background:rgba(255,210,100,.10);color:#ffe8b8}

/* 7 · Forms & Filters ------------------------------------------------- */
.filter-bar{display:flex;flex-wrap:wrap;gap:.45rem;margin-bottom:1rem}
.filter-bar--type{margin-bottom:1.2rem}
.filter-btn{
  font-family:var(--font-mono);font-size:var(--fs-mono-xs);letter-spacing:var(--ls-normal);
  padding:.5rem .82rem;min-height:var(--tap-min);border-radius:var(--r-pill);
  border:1px solid var(--surface-border);background:transparent;
  color:var(--text-muted);cursor:pointer;text-transform:uppercase;
  transition:all var(--tr-base);
}
@media(hover:hover){
  .filter-btn:hover{color:var(--text);border-color:rgba(var(--primary-rgb),.3);background:rgba(var(--primary-rgb),.08);transform:translateY(-1px)}
}
.filter-btn.active{
  color:#fff;border-color:transparent;
  background:var(--primary);
  font-weight:600;
}
.event-search-wrap{position:relative;margin-bottom:1rem;max-width:420px}
.event-search{
  width:100%;padding:.7rem 1rem .7rem 2.6rem;
  border:1px solid var(--surface-border);border-radius:var(--r-pill);
  background:var(--bg-elevated);color:var(--text);font-family:var(--font-sans);
  font-size:var(--fs-sm);transition:border-color var(--tr-slow),box-shadow var(--tr-slow);outline:none;
}
.event-search:focus{border-color:var(--primary);box-shadow:0 0 0 3px rgba(var(--primary-rgb),.12)}
.event-search::placeholder{color:var(--text-muted)}
.event-search-wrap::before{
  content:'';position:absolute;left:1rem;top:50%;transform:translateY(-50%);
  width:16px;height:16px;
  background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' stroke='%237a7494' stroke-width='2' viewBox='0 0 24 24'%3E%3Ccircle cx='11' cy='11' r='8'/%3E%3Cline x1='21' y1='21' x2='16.65' y2='16.65'/%3E%3C/svg%3E") center/contain no-repeat;
  pointer-events:none;transition:transform var(--tr-slow);
}
.event-search:focus ~ .event-search-wrap::before,.event-search-wrap:focus-within::before{transform:translateY(-50%) scale(1.1)}
.event-search-count{
  position:absolute;right:1rem;top:50%;transform:translateY(-50%);
  font-family:var(--font-mono);font-size:var(--fs-mono-sm);font-weight:600;
  color:var(--secondary);padding:.15rem .45rem;border-radius:var(--r-pill);
  background:rgba(var(--secondary-rgb),.1);
}
[data-theme="light"] .filter-btn.active{color:#fff}
[data-theme="light"] .year-group-header{background:var(--bg-elevated);border-color:rgba(15,23,42,.06)}
.year-group{margin-bottom:.9rem}
.year-group-header{
  display:flex;align-items:center;gap:.6rem;padding:.55rem .72rem;margin-bottom:.6rem;
  border:1px solid var(--surface-border);border-radius:var(--r-sm);
  background:var(--bg-elevated);
  cursor:pointer;font-family:var(--font-mono);font-size:var(--fs-xs);font-weight:600;
  color:var(--text);letter-spacing:var(--ls-normal);transition:all var(--tr-fast);user-select:none;
}
.year-group-header:hover{border-color:var(--hover-border)}
.year-group-header .count{margin-left:auto;color:var(--text-muted);font-weight:400;font-size:var(--fs-mono-xs)}
.year-group-header .chevron{
  display:inline-block;width:0;height:0;
  border-left:4px solid transparent;border-right:4px solid transparent;
  border-top:5px solid currentColor;transition:transform var(--tr-fast);
}
.year-group.collapsed .chevron{transform:rotate(-90deg)}
.year-group.collapsed .year-group-body{display:none}
.event-card[data-hidden="true"]{display:none}

/* 8 · Hero Homepage --------------------------------------------------- */
#dotGrid{position:fixed;inset:0;z-index:0;pointer-events:none}
.dot-grid-sub{position:absolute;inset:0;z-index:0;pointer-events:none;border-radius:inherit}
main{position:relative;z-index:1;min-width:0}
section{padding:clamp(5rem,5.5vw,8rem) var(--pad-x);max-width:none;margin:0}
section + section{border-top:none}
section > *{max-width:min(var(--maxw),100%);margin-inline:auto}
#hero{padding-top:clamp(7rem,10vh,10.5rem);padding-bottom:clamp(2.5rem,4vh,4rem);position:relative}
.hero-grid{max-width:var(--maxw);margin:0 auto;display:flex;justify-content:center}
.hero-panel{
  width:100%;display:grid;grid-template-columns:minmax(0,1.4fr) minmax(300px,.6fr);
  gap:1.8rem;padding:clamp(1.4rem,3vw,2.2rem);border-radius:var(--r-2xl);
  background:var(--bg-elevated);
  border:1px solid var(--surface-border);
}
.hero-photo-name{display:flex;align-items:center;gap:1.8rem;margin-bottom:1.6rem}
.hero-photo{
  width:150px;height:150px;border-radius:50%;overflow:hidden;
  border:3px solid var(--surface-border);flex-shrink:0;position:relative;
}
.hero-photo img{
  width:100%;height:100%;object-fit:cover;object-position:center 22%;
  transform:scale(1.32);transform-origin:center 28%;display:block;
  filter:contrast(1.05) saturate(.90) brightness(.96);
}
.hero-name{font-family:var(--font-display);font-size:var(--fs-hero);line-height:1.04;color:var(--text)}
.terminal-wrap{height:2.4rem;margin-bottom:1.2rem;overflow:hidden;position:relative}
.terminal-line{
  font-family:var(--font-mono);font-size:var(--fs-mono-sm);
  display:flex;align-items:center;gap:.4rem;flex-wrap:wrap;
}
.typed-prefix{color:var(--secondary);opacity:.7}
#typed{display:contents}
.typed-group{display:inline-flex;align-items:center;white-space:nowrap}
.typed-divider{color:var(--text-muted);margin:0 .3rem;opacity:.4}
.typed-chip{
  display:inline-block;padding:.22rem .48rem;border-radius:var(--r-pill);
  font-size:var(--fs-mono-sm);border:1px solid rgba(var(--primary-rgb),.25);
  background:rgba(var(--primary-rgb),.08);color:rgba(var(--primary-rgb),.9);
  white-space:nowrap;flex-shrink:0;
}
.typed-chip.org{color:rgba(var(--secondary-rgb),.9);border-color:rgba(var(--secondary-rgb),.25);background:rgba(var(--secondary-rgb),.08)}
.typed-chip.area{color:#a78bfa;border-color:rgba(139,92,246,.25);background:rgba(139,92,246,.08)}
.cursor{display:inline-block;width:7px;height:.85em;background:rgba(var(--primary-rgb),.9);
  vertical-align:middle;border-radius:1px;
  animation:blink 1s step-end infinite;transition:background .15s ease}
.cursor--org{background:rgba(var(--secondary-rgb),.9)}
.cursor--area{background:#a78bfa}
.hero-intro{padding-right:clamp(.2rem,1vw,.9rem);overflow:hidden;min-width:0}
.hero-desc{font-size:1.05rem;color:var(--text-sub);max-width:65ch;line-height:var(--lh-body);margin-bottom:2rem}
.hero-links{display:flex;gap:.6rem;flex-wrap:wrap}
.hero-links a{
  font-family:var(--font-mono);font-size:var(--fs-mono-sm);letter-spacing:var(--ls-normal);
  padding:.6rem 1.15rem;border:1px solid var(--surface-border);border-radius:var(--r-xs);
  color:var(--text-sub);text-decoration:none;transition:all var(--tr-base);
  display:flex;align-items:center;gap:.4rem;background:rgba(255,255,255,.02);
}
.hero-links a:hover{border-color:var(--primary);color:var(--primary);background:rgba(var(--primary-rgb),.08);box-shadow:var(--shadow-md)}
.hero-links a.dl{border-color:rgba(var(--secondary-rgb),.2);color:var(--secondary)}
.hero-links a.dl:hover{border-color:var(--secondary);background:rgba(var(--secondary-rgb),.08);box-shadow:var(--shadow-md)}
.hero-links a svg{width:13px;height:13px}
.hero-card{width:100%;max-width:none;padding:1rem 1.1rem}
.hc-head{display:flex;flex-direction:column;gap:.35rem;margin-bottom:.9rem}
.hc-kicker{font-family:var(--font-mono);font-size:var(--fs-mono-xs);letter-spacing:var(--ls-wide);text-transform:uppercase;color:var(--text-muted)}
.hc-sub{margin-top:.15rem;margin-bottom:.6rem;font-family:var(--font-mono);font-size:var(--fs-mono-sm);color:rgba(255,255,255,.45);letter-spacing:var(--ls-tight)}
.hc-sub a{color:rgba(var(--primary-rgb),.85);text-decoration:none}
.hc-sub a:hover{text-decoration:underline}
.stat-group{padding:.55rem .65rem;border:1px solid var(--surface-border);border-radius:var(--r-sm);background:var(--bg-subtle);margin-bottom:.55rem}
.stat-group:last-of-type{margin-bottom:0}
.sg-title{font-family:var(--font-mono);text-transform:uppercase;letter-spacing:var(--ls-wide);font-size:var(--fs-mono-sm);color:rgba(255,255,255,.55);margin-bottom:.55rem}
.stat-row{display:flex;justify-content:space-between;align-items:baseline;padding:.4rem 0;border-bottom:1px solid rgba(255,255,255,.03)}
.stat-row:last-of-type{border-bottom:none}
.stat-key{font-family:var(--font-mono);font-size:var(--fs-mono-sm);color:var(--text-muted)}
.stat-val{font-weight:700;font-size:1rem;font-variant-numeric:tabular-nums}
.stat-val.blue{color:var(--primary)}
.stat-val.green{color:var(--secondary)}
.hero-tags{display:flex;flex-wrap:wrap;gap:.35rem;margin-top:2rem;padding-top:1.2rem;border-top:1px solid rgba(255,255,255,.06)}
.hero-tag{
  font-family:var(--font-mono);font-size:var(--fs-chip);padding:.25rem .55rem;
  background:rgba(var(--primary-rgb),.08);color:var(--primary);
  border-radius:var(--r-xs);border:1px solid rgba(var(--primary-rgb),.12);letter-spacing:var(--ls-tight);
}

/* 10 · Homepage Sections ---------------------------------------------- */
.about-summary{color:var(--text-sub);font-size:var(--fs-h3);line-height:var(--lh-body);margin-bottom:1.4rem;max-width:var(--measure)}
.about-summary--full{max-width:min(var(--maxw),100%)}
.focus-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem;margin-top:.8rem}
.focus-card{padding:1.25rem 1.5rem}
.focus-k{font-family:var(--font-mono);font-size:var(--fs-mono-xs);letter-spacing:var(--ls-wide);text-transform:uppercase;color:var(--secondary);margin-bottom:.55rem}
.focus-card h3{font-size:var(--fs-h3);margin-bottom:.45rem}
.focus-card p{font-size:var(--fs-xs);color:var(--text-sub);line-height:var(--lh-card);margin-bottom:.6rem}
.focus-card ul{list-style:none;display:flex;flex-direction:column;gap:.35rem}
.focus-card li{position:relative;padding-left:1rem;font-size:var(--fs-xs);color:var(--text-sub);line-height:var(--lh-tight)}
.focus-card li::before{
  content:"";position:absolute;left:0;top:.58em;width:5px;height:5px;
  border-radius:50%;background:var(--secondary);
}
#highlights{padding-top:clamp(1.5rem,2vw,2.5rem);padding-bottom:clamp(1.5rem,2vw,2.5rem)}
.highlights-grid{
  display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:clamp(1rem,2vw,2rem);
  max-width:min(var(--maxw),100%);margin:0 auto;text-align:center;
}
.highlight-item{
  padding:clamp(1.2rem,2vw,2rem) 1rem;border-radius:var(--r-lg);
}
.highlight-num{
  display:block;font-family:var(--font-display);font-size:clamp(2.4rem,4vw,3.6rem);
  font-weight:700;line-height:1.1;background:var(--grad-accent);
  -webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;margin-bottom:.4rem;
}
.highlight-num .digit-roll,.highlight-num .digit-suffix{
  background:var(--grad-accent);
  -webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;
}
.highlight-label{font-family:var(--font-sans);font-size:var(--fs-xs);color:var(--text-sub);letter-spacing:var(--ls-tight)}

/* Roles grid */
.roles-scroll{
  display:grid;grid-template-columns:repeat(3,minmax(0,1fr));
  gap:.85rem;margin-top:1.2rem;
}
@media(max-width:900px){.roles-scroll{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:500px){.roles-scroll{grid-template-columns:1fr}}
.roles-scroll .role-chip{
  display:flex;flex-direction:column;align-items:stretch;gap:.35rem;
  padding:1.2rem 1.3rem;
}
.roles-scroll .role-org{
  font-family:var(--font-mono);font-size:var(--fs-mono-sm);color:var(--secondary);
  letter-spacing:var(--ls-normal);text-transform:uppercase;
  position:relative;z-index:1;
}
.role-title{
  font-family:var(--font-display);font-size:var(--fs-h3);font-weight:600;
  color:var(--text);line-height:var(--lh-tight);
  position:relative;z-index:1;
}
.roles-scroll .role-date{
  display:inline-flex;align-items:center;gap:.35rem;
  font-family:var(--font-mono);font-size:var(--fs-mono-sm);color:var(--text-muted);
  letter-spacing:var(--ls-tight);margin-top:.15rem;
  position:relative;z-index:1;
}
.roles-scroll .role-date::before{
  content:'';display:inline-block;width:6px;height:6px;
  border-radius:50%;background:var(--secondary);
}

/* — Education — */
.edu-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem}
.edu-card{padding:1.25rem 1.5rem}
.edu-yr{font-family:var(--font-mono);font-size:var(--fs-mono-sm);color:var(--primary);margin-bottom:.5rem;letter-spacing:var(--ls-tight)}
.edu-card h3{font-size:var(--fs-h3);font-weight:600;margin-bottom:.25rem}
.edu-card p{font-size:var(--fs-xs);color:var(--text-sub);line-height:var(--lh-card)}
.edu-badge{
  display:inline-flex;align-items:center;gap:.35rem;
  font-family:var(--font-mono);font-size:var(--fs-mono-xs);padding:.25rem .6rem;
  background:linear-gradient(135deg,rgba(var(--secondary-rgb),.08),rgba(var(--primary-rgb),.06));
  color:var(--secondary);border-radius:var(--r-pill);margin-top:.6rem;
  border:1px solid rgba(var(--secondary-rgb),.2);
}
.edu-badge::before{
  content:'★';font-size:.65rem;color:var(--primary);
}

.evidence-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem;margin-top:1rem}
#explore .evidence-grid{grid-template-columns:repeat(auto-fill,minmax(clamp(180px,30vw,240px),1fr))}
.evidence-card{padding:1.25rem 1.5rem}
.evidence-card h3{font-size:var(--fs-h3);margin-bottom:.55rem}
.evidence-card p{font-size:var(--fs-xs);color:var(--text-sub);line-height:var(--lh-card);margin-bottom:.65rem}
.explore-card{
  text-decoration:none;color:var(--text);cursor:pointer;
  border:1px solid var(--surface-border);
  background:var(--bg-elevated);
  transition:transform var(--tr-base),border-color var(--tr-base),box-shadow var(--tr-base);
}
.explore-card:hover{
  border-color:var(--hover-border);
  box-shadow:var(--hover-shadow);
  transform:var(--hover-lift);
}
.explore-card:active{transform:translateY(-1px);transition-duration:.1s}
.explore-card:hover .explore-cta{color:var(--primary);gap:.55rem}
.explore-cta{
  display:inline-flex;align-items:center;gap:.35rem;
  font-family:var(--font-mono);font-size:var(--fs-mono-sm);color:var(--secondary);
  margin-top:.7rem;letter-spacing:var(--ls-normal);
  padding:.3rem .7rem;border-radius:999px;
  background:rgba(var(--primary-rgb),.1);border:1px solid rgba(var(--primary-rgb),.2);
  transition:color var(--tr-fast),gap var(--tr-fast),background var(--tr-fast),border-color var(--tr-fast);
}
.explore-card:hover .explore-cta{background:rgba(var(--primary-rgb),.18);border-color:rgba(var(--primary-rgb),.35)}
.explore-cta::after{content:'\2192';font-size:var(--fs-xs);transition:transform var(--tr-fast)}
.explore-card:hover .explore-cta::after{transform:translateX(3px)}
.recent-events-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(1rem,2vw,1.5rem);margin-bottom:1.5rem}
.event-card{border-radius:var(--r-sm);padding:1rem 1.15rem}
.event-card h3{margin:.02rem 0 .2rem;font-size:var(--fs-h3)}
.event-card p{margin:0;color:var(--text-sub);font-size:var(--fs-sm);line-height:var(--lh-card)}
.event-card .meta{margin-top:.22rem}
.section-cta{text-align:center;margin-top:1rem}
.featured-events-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:clamp(1rem,2vw,1.5rem)}
.event-card--featured{border-left:3px solid var(--primary);padding-left:clamp(1rem,2vw,1.4rem)}
.event-card--featured h3{font-size:1.05rem}
.featured-pubs-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(1rem,2vw,1.5rem);margin-bottom:1.5rem}
.featured-pubs-grid .pub-item{display:flex;flex-direction:column;gap:.4rem}
.pub-venue{font-family:var(--font-mono);font-size:var(--fs-mono-sm);color:var(--secondary);letter-spacing:var(--ls-normal);text-transform:uppercase}
.pub-authors{font-size:var(--fs-xs);color:var(--text-muted);line-height:var(--lh-card)}
.pub-award{
  display:inline-block;font-family:var(--font-mono);font-size:var(--fs-mono-xs);
  padding:.2rem .6rem;border-radius:var(--r-pill);
  background:rgba(var(--primary-rgb),.12);border:1px solid rgba(var(--primary-rgb),.22);
  color:var(--primary);font-weight:500;width:fit-content;
}
.pub-doi{
  display:inline-block;font-family:var(--font-mono);font-size:var(--fs-mono-xs);
  padding:.2rem .6rem;border-radius:var(--r-pill);
  background:rgba(var(--secondary-rgb),.10);border:1px solid rgba(var(--secondary-rgb),.22);
  color:var(--secondary);text-decoration:none;width:fit-content;
}
.cta{position:relative;padding:clamp(3.5rem,6vw,6rem) var(--pad-x) clamp(2rem,3vw,3rem);text-align:center;
  border-top:1px solid var(--surface-border);
}
.cta-inner{max-width:min(var(--maxw),100%);margin:0 auto}
.cta-inner .lbl{margin-bottom:.6rem}
.cta-inner h2{font-size:clamp(1.8rem,3vw,2.8rem);margin-bottom:.6rem}
.cta-inner p{color:var(--text-sub);font-size:1rem;margin-bottom:2.5rem;max-width:55ch;margin-inline:auto;line-height:var(--lh-body)}
.cta-cards-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(1rem,2vw,1.5rem);margin-bottom:2.5rem}
.cta-card{
  display:flex;flex-direction:column;align-items:center;text-align:center;
  padding:clamp(1.6rem,2.5vw,2.2rem) clamp(1.2rem,2vw,1.6rem);text-decoration:none;color:var(--text);
  border-color:rgba(var(--primary-rgb),.12);
}
.cta-card h3{font-family:var(--font-display);font-size:var(--fs-h2);margin:.9rem 0 .45rem;color:var(--text)}
.cta-card p{font-size:var(--fs-xs);color:var(--text-sub);line-height:var(--lh-card);margin-bottom:.7rem}
.cta-card::after{content:'\2192';font-family:var(--font-mono);font-size:var(--fs-mono-sm);color:var(--secondary);opacity:.6;
  margin-top:auto;padding-top:.5rem;transition:opacity var(--tr-fast),transform var(--tr-fast)}
.cta-card:hover::after{opacity:1;transform:translateX(3px);color:var(--primary)}
.cta-card-icon{
  width:52px;height:52px;display:flex;align-items:center;justify-content:center;border-radius:var(--r-md);
  background:linear-gradient(135deg,rgba(var(--primary-rgb),.12),rgba(var(--secondary-rgb),.08));color:var(--primary);
  border:1px solid rgba(var(--primary-rgb),.1);
}
.cta-card-icon svg{width:24px;height:24px}
.cta-btns{display:flex;flex-wrap:wrap;gap:.7rem;justify-content:center;
  padding-top:2.5rem;padding-bottom:1rem;border-top:1px solid var(--surface-border);margin-top:1rem}
.cta-secondary{margin-top:0}

/* 11 · Subpage Layout ------------------------------------------------- */
.page-main{
  width:min(1260px,calc(100% - (clamp(.85rem,2.2vw,1.25rem) * 2)));
  max-width:none;margin:0 auto;padding:calc(var(--nav-h) + 2.05rem) 0 3.1rem;position:relative;z-index:1;
}
.page-hero{
  position:relative;
  padding:3rem 1.5rem 2.5rem;
}
.kicker{
  display:inline-block;margin:0 0 .7rem;color:var(--secondary);font-size:var(--fs-mono-sm);
  text-transform:uppercase;letter-spacing:var(--ls-wide);font-family:var(--font-mono);
  padding:.32rem .85rem;background:rgba(var(--secondary-rgb),.06);
  border:1px solid rgba(var(--secondary-rgb),.18);border-radius:var(--r-pill);
}
.page-hero h1,.page-main h1{
  margin:.08rem 0 .78rem;font-family:var(--font-display);font-size:var(--fs-page-title);
  line-height:var(--lh-heading);letter-spacing:-.025em;color:var(--text);
}
.lead{margin:0;color:var(--text-sub);font-size:1.01rem;line-height:var(--lh-body);max-width:var(--measure)}
.breadcrumb{
  display:flex;align-items:center;gap:.4rem;margin-bottom:.75rem;
  font-family:var(--font-mono);font-size:var(--fs-mono-xs);color:var(--text-muted);
}
.breadcrumb a{color:var(--text-muted);text-decoration:none;transition:color var(--tr-fast)}
.breadcrumb a:hover{color:var(--secondary)}
.breadcrumb .sep{opacity:.4;font-size:.55rem}
.section{
  margin-top:1.6rem;position:relative;
  border-top:1px solid var(--surface-border);
  padding:2rem 0 0;
}
.section h2{
  margin:.08rem 0 .86rem;font-family:var(--font-display);font-size:var(--fs-h2);
  line-height:var(--lh-heading);letter-spacing:-.015em;color:var(--text);
}
.section .section-intro{
  margin:0 0 .9rem;color:var(--text-sub);line-height:var(--lh-body);font-size:var(--fs-h3);
}

/* 12 · Subpage Components --------------------------------------------- */
.grid{display:grid;gap:.74rem;grid-template-columns:repeat(2,minmax(0,1fr))}
.grid--2{display:grid;gap:.74rem;grid-template-columns:repeat(2,minmax(0,1fr))}
.grid--3{display:grid;gap:.74rem;grid-template-columns:repeat(3,minmax(0,1fr))}
.list{display:flex;flex-direction:column;gap:.55rem;margin:0;padding:0;list-style:none}
.list li{
  border:1px solid var(--surface-border);background:var(--bg-elevated);border-radius:var(--r-sm);
  padding:.7rem .8rem .72rem;color:var(--text-sub);line-height:var(--lh-card);position:relative;
  transition:border-color var(--tr-base),box-shadow var(--tr-base);
}
@media(hover:hover){.list li:hover{border-color:rgba(var(--primary-rgb),.18);box-shadow:0 4px 16px rgba(var(--primary-rgb),.06)}}
.list li::before{
  content:"";position:absolute;left:.46rem;top:1.04rem;width:5px;height:5px;
  border-radius:50%;background:var(--primary);
}
.list li > strong,.list li > .meta,.list li > span,.list li > a{margin-left:.5rem}
.bio-layout{display:grid;grid-template-columns:1fr 260px;gap:clamp(2rem,4vw,3rem);align-items:start}
.bio-text p{margin-bottom:1rem;line-height:var(--lh-body)}
.pull-quote{
  margin:1.5rem 0;padding:1rem 1.5rem;border-left:3px solid var(--primary);
  font-family:var(--font-display);font-size:1.05rem;font-style:italic;
  color:var(--text-sub);line-height:var(--lh-body);background:rgba(var(--primary-rgb),.04);border-radius:0 var(--r-sm) var(--r-sm) 0;
}
.bio-sidebar{position:sticky;top:6rem}
.sidebar-card{padding:1.4rem 1.2rem}
.sidebar-card h3{font-family:var(--font-display);font-size:var(--fs-h3);margin-bottom:1rem;color:var(--text)}
.sidebar-stats{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:.8rem}
.sidebar-stats li{display:flex;align-items:baseline;gap:.6rem}
.sidebar-stats strong{font-family:var(--font-mono);font-size:1.3rem;color:var(--primary);min-width:3ch}
.sidebar-stats span{font-size:var(--fs-xs);color:var(--text-sub);line-height:var(--lh-tight)}
/* --- Timeline (full) ---------------------------------------------------- */
.timeline{
  margin-top:2.2rem;max-width:min(1100px,96vw);margin-left:auto;margin-right:auto;
  display:flex;flex-direction:column;gap:0;position:relative;
}
.tl-item{
  display:grid;grid-template-columns:40px 1fr;gap:1rem;align-items:center;
  position:relative;
}
.tl-rail{
  position:relative;display:flex;justify-content:center;align-self:stretch;align-items:center;
}
.tl-rail::before{
  content:'';position:absolute;top:0;bottom:0;width:1.5px;
  background:linear-gradient(180deg,rgba(var(--primary-rgb),.30),rgba(var(--secondary-rgb),.20));
  border-radius:1px;
}
.tl-dot{
  width:8px;height:8px;border-radius:50%;position:relative;
  background:var(--primary);z-index:1;flex-shrink:0;
  box-shadow:0 0 0 3px rgba(var(--primary-rgb),.15),0 1px 4px rgba(0,0,0,.3);
  transition:transform var(--tr-slow) var(--ease-spring),box-shadow var(--tr-slow),background var(--tr-slow);
}
@media(hover:hover){
  .tl-item:hover .tl-dot{
    background:var(--secondary);transform:scale(1.5);
    animation:dot-pulse 1.8s ease-in-out infinite;
  }
  .tl-item:hover .tl-dot::before{border-color:rgba(var(--secondary-rgb),.30);transform:scale(1.6);opacity:.6}
}
.tl-dot::before{
  content:'';position:absolute;inset:-5px;border-radius:50%;
  border:1px solid rgba(var(--primary-rgb),.12);
  transition:border-color var(--tr-slow),transform var(--tr-slow),opacity var(--tr-slow);
}
.tl-dot::after{content:none}
.tl-item.in-view .tl-dot{background:var(--secondary);box-shadow:0 0 0 3px rgba(var(--secondary-rgb),.20),0 1px 6px rgba(0,0,0,.25)}
.tl-item.in-view .tl-dot::before{border-color:rgba(var(--secondary-rgb),.18)}
.tl-card{
  padding:1.2rem 1.3rem;margin:.45rem 0;position:relative;overflow:hidden;
  border-left:2px solid rgba(var(--primary-rgb),.12);
  transition:border-color var(--tr-base),box-shadow var(--tr-base),transform var(--tr-base);
}
@media(hover:hover){
  .tl-card:hover{
    transform:translateX(6px);
    border-left-color:rgba(var(--primary-rgb),.45);
    box-shadow:0 4px 18px rgba(var(--primary-rgb),.10);
  }
}
.tl-date{
  font-family:var(--font-mono);font-size:var(--fs-mono-xs);color:var(--bg);letter-spacing:var(--ls-normal);
  display:inline-block;padding:.18rem .55rem;border-radius:var(--r-pill);
  background:var(--grad-accent);margin-bottom:.45rem;font-weight:600;
}
.tl-title{font-size:var(--fs-h3);font-weight:600;margin-bottom:.25rem;line-height:var(--lh-tight)}
.tl-sub{font-size:var(--fs-xs);color:var(--text-sub);margin-bottom:.3rem;line-height:var(--lh-card)}
/* --- Timeline Mini ------------------------------------------------------ */
.timeline-mini{list-style:none;margin:0;padding:0 0 0 28px;display:flex;flex-direction:column;gap:.75rem;position:relative}
.timeline-mini::before{
  content:'';position:absolute;top:0;bottom:0;left:7px;width:1.5px;
  background:linear-gradient(180deg,rgba(var(--primary-rgb),.40),rgba(var(--secondary-rgb),.25));
  border-radius:1px;
}
.timeline-mini li{
  position:relative;padding:1rem 1.15rem 1rem 1.15rem;border-radius:var(--r-sm);
  border:1px solid var(--surface-border);
  background:var(--bg-elevated);
  transition:transform var(--tr-base),box-shadow var(--tr-base),border-color var(--tr-base);
}
@media(hover:hover){
  .timeline-mini li:hover{
    transform:translateX(6px);
    border-color:var(--hover-border);
    box-shadow:var(--hover-shadow);
  }
  .timeline-mini li:hover::after{
    background:var(--secondary);
    transform:translateY(-50%) translateX(-6px) scale(1.5);
    animation:dot-pulse 1.8s ease-in-out infinite;
  }
  .timeline-mini li:hover::before{
    left:-23px;width:23px;
  }
}
.timeline-mini li::after{
  content:"";position:absolute;top:50%;left:-24px;width:7px;height:7px;
  transform:translateY(-50%);z-index:2;
  border-radius:50%;background:var(--primary);
  box-shadow:0 0 0 3px rgba(var(--primary-rgb),.18),0 1px 4px rgba(0,0,0,.35);
  transition:transform var(--tr-slow) var(--ease-spring),background var(--tr-slow),box-shadow var(--tr-slow);
}
.timeline-mini li::before{
  content:'';position:absolute;top:50%;left:-17px;width:17px;height:1px;z-index:1;
  transform:translateY(-50%);
  background:rgba(var(--primary-rgb),.25);
  transition:left var(--tr-base),width var(--tr-base);
}
.timeline-mini .date{
  font-family:var(--font-mono);font-size:var(--fs-mono-xs);color:var(--secondary);letter-spacing:var(--ls-normal);
  text-transform:uppercase;margin-bottom:.35rem;display:inline-block;font-weight:600;
}
.timeline-mini h3{margin:.02rem 0 .25rem;font-size:var(--fs-h3);line-height:var(--lh-tight);color:var(--text)}
.timeline-mini p{margin:0;color:var(--text-sub);font-size:var(--fs-sm);line-height:var(--lh-card)}
.steps-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1rem;counter-reset:step-counter}
.step-card{position:relative;border-radius:var(--r-sm);padding:1rem .92rem .88rem;text-align:center}
.step-card .n{
  display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;
  border-radius:50%;font-family:var(--font-mono);
  font-size:var(--fs-mono-sm);font-weight:600;color:#fff;background:var(--primary);margin-bottom:.5rem;
}
.step-card:not(:last-child)::after{
  content:'\2192';position:absolute;top:1.25rem;right:-.72rem;
  font-size:.9rem;color:var(--text-muted);z-index:2;
  opacity:.5;
}
.step-card h3{margin:.02rem 0 .2rem;font-size:var(--fs-h3)}
.step-card p{margin:0;color:var(--text-sub);font-size:var(--fs-sm);line-height:var(--lh-card)}
@media(max-width:900px){
  .steps-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .step-card:nth-child(2)::after{display:none}
}
@media(max-width:640px){
  .steps-grid{grid-template-columns:1fr}
  .step-card:not(:last-child)::after{
    content:'\2193';top:auto;bottom:-.72rem;right:50%;transform:translateX(50%);
  }
}
/* Contact channel buttons */
.contact-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.75rem}
.contact-grid .contact-btn{
  display:flex;align-items:center;gap:1rem;padding:1.1rem 1.3rem;border-radius:var(--r-md);
  border:1px solid var(--surface-border);background:var(--bg-elevated);
  text-decoration:none;color:var(--text);
  transition:transform var(--tr-base),border-color var(--tr-base),box-shadow var(--tr-base);
}
.contact-icon{
  display:flex;align-items:center;justify-content:center;width:44px;height:44px;
  border-radius:50%;background:rgba(var(--primary-rgb),.1);color:var(--primary);flex-shrink:0;
  border:1px solid rgba(var(--primary-rgb),.15);
  transition:background var(--tr-slow),transform var(--tr-slow) var(--ease-out);
}
.contact-label{font-weight:600;font-size:var(--fs-sm);display:block}
.contact-value{font-family:var(--font-mono);font-size:var(--fs-mono-sm);color:var(--text-sub);display:block;margin-top:.15rem}
@media(hover:hover){
  .contact-grid .contact-btn:hover{
    transform:translateY(-3px);border-color:rgba(var(--primary-rgb),.25);
    box-shadow:0 8px 24px rgba(var(--primary-rgb),.1);
  }
  .contact-grid .contact-btn:hover .contact-icon{background:rgba(var(--primary-rgb),.18);transform:scale(1.08)}
}
@media(max-width:640px){.contact-grid{grid-template-columns:1fr}}
[data-theme="light"] .contact-icon{background:rgba(55,48,163,.08);border-color:rgba(55,48,163,.12);color:#3730a3}
/* Related pages nav */
.related-nav{
  margin-top:2.5rem;padding:1.5rem 0;
  border-top:1px solid var(--surface-border);text-align:center;
}
.related-label{
  font-family:var(--font-mono);font-size:var(--fs-mono-xs);letter-spacing:var(--ls-wide);text-transform:uppercase;
  color:var(--text-muted);display:flex;align-items:center;gap:.75rem;margin-bottom:1rem;justify-content:center;
}
.related-label::before,.related-label::after{
  content:'';flex:1;max-width:120px;height:1px;
  background:var(--surface-border);
}
.related-links{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.75rem}
.related-link{
  display:flex;flex-direction:column;gap:.25rem;padding:1rem;border-radius:var(--r-md);
  border:1px solid var(--surface-border);background:var(--bg-elevated);
  text-decoration:none;text-align:left;
  transition:transform var(--tr-base),border-color var(--tr-base),box-shadow var(--tr-base);
}
.related-link-title{font-weight:600;font-size:var(--fs-sm);color:var(--text)}
.related-link-title::after{content:' \2192';opacity:.4;transition:opacity var(--tr-base),transform var(--tr-base);display:inline-block}
.related-link-desc{font-size:var(--fs-xs);color:var(--text-sub);line-height:var(--lh-card)}
@media(hover:hover){
  .related-link:hover{
    transform:var(--hover-lift);border-color:var(--hover-border);
    box-shadow:var(--hover-shadow);
  }
  .related-link:hover .related-link-title{color:var(--primary)}
  .related-link:hover .related-link-title::after{opacity:.8;transform:translateX(3px)}
}
@media(max-width:640px){.related-links{grid-template-columns:1fr}}
.feature-strip{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:.62rem;margin-top:.2rem}
.feature-item{
  border:1px solid var(--surface-border);border-radius:var(--r-sm);background:var(--bg-elevated);
  padding:.68rem .72rem;
  transition:transform var(--tr-base),border-color var(--tr-base),box-shadow var(--tr-base);
}
@media(hover:hover){
  .feature-item:hover{transform:translateY(-2px);box-shadow:0 4px 16px rgba(var(--primary-rgb),.08),0 0 12px rgba(var(--primary-rgb),.06)}
}
.feature-item .k{display:block;font-size:var(--fs-mono-xs);text-transform:uppercase;letter-spacing:var(--ls-normal);color:var(--text-muted);margin-bottom:.2rem;font-family:var(--font-mono)}
.feature-item .v{font-size:1.02rem;font-weight:800;letter-spacing:-.01em;color:var(--text)}
.metric-bar-group{display:flex;flex-direction:column;gap:.72rem}
.metric-bar{display:grid;grid-template-columns:minmax(80px,auto) 1fr auto;gap:.65rem;align-items:center}
.metric-bar .label{font-family:var(--font-mono);font-size:var(--fs-mono-sm);color:var(--text-muted);text-transform:uppercase;letter-spacing:var(--ls-normal)}
.metric-bar .bar-track{height:8px;border-radius:var(--r-pill);background:rgba(255,255,255,.06);overflow:hidden;position:relative}
.metric-bar .bar-fill{height:100%;border-radius:var(--r-pill);background:var(--grad-accent);width:0;transition:width 1.2s var(--ease-spring)}
.metric-bar .bar-value{font-family:var(--font-mono);font-size:var(--fs-xs);font-weight:700;color:var(--text);min-width:3.5ch;text-align:right}
.metric-bar-group.revealed .bar-fill{width:var(--fill)}
.topic-cloud{display:flex;flex-wrap:wrap;gap:.55rem;margin:1.5rem 0;justify-content:center}
.topic-tag{
  font-family:var(--font-mono);text-transform:uppercase;letter-spacing:var(--ls-normal);
  padding:.4rem .9rem;border-radius:var(--r-pill);border:1px solid var(--surface-border);
  color:var(--text-sub);background:rgba(255,255,255,.03);cursor:default;
  transition:all var(--tr-slow);opacity:0;transform:translateY(10px);
}
.topic-cloud.revealed .topic-tag{opacity:1;transform:translateY(0)}
@media(hover:hover){
  .topic-tag:hover{
    color:var(--primary);border-color:rgba(var(--primary-rgb),.35);
    background:rgba(var(--primary-rgb),.08);transform:translateY(-2px);
  }
}
.topic-tag--lg{font-size:var(--fs-xs);padding:.52rem 1.15rem;color:var(--text);border-color:rgba(var(--primary-rgb),.25);background:rgba(var(--primary-rgb),.08);font-weight:600}
.topic-tag--md{font-size:var(--fs-mono-sm)}
.topic-tag--sm{font-size:var(--fs-mono-xs);color:var(--text-muted)}
.tag-cloud{display:flex;flex-wrap:wrap;gap:.44rem}
.tag-cloud .tag{opacity:0;transform:translateY(8px);transition:opacity .4s ease,transform .4s ease}
.tag-cloud.revealed .tag{opacity:1;transform:translateY(0)}
.section-header{display:flex;align-items:center;gap:.6rem;margin-bottom:.5rem}
.section-icon{flex-shrink:0;color:var(--primary)}
.patent-row{
  display:flex;gap:1rem;align-items:flex-start;
  padding:1.1rem 1.2rem;border-radius:var(--r-sm);
  background:var(--bg-elevated);border:1px solid var(--surface-border);
  margin-bottom:.55rem;
  transition:border-color var(--tr-base),box-shadow var(--tr-base);
}
@media(hover:hover){.patent-row:hover{border-color:var(--hover-border);box-shadow:var(--hover-shadow)}}
.num-badge{
  flex-shrink:0;width:2rem;height:2rem;display:flex;align-items:center;justify-content:center;
  font-family:var(--font-mono);font-size:var(--fs-mono-sm);font-weight:600;
  color:var(--primary);background:rgba(var(--primary-rgb),.08);
  border:1px solid rgba(var(--primary-rgb),.15);border-radius:var(--r-xs);
}
.patent-title{font-size:var(--fs-sm);font-weight:600;margin-bottom:.15rem}
.patent-detail{font-size:var(--fs-xs);color:var(--text-sub);line-height:var(--lh-card)}
.patent-status{
  display:inline-block;font-family:var(--font-mono);font-size:var(--fs-chip);font-weight:600;
  letter-spacing:var(--ls-normal);text-transform:uppercase;padding:.18rem .5rem;
  border-radius:var(--r-pill);margin-top:.35rem;
}
.patent-status--granted{
  color:#34d399;background:rgba(52,211,153,.1);border:1px solid rgba(52,211,153,.2);
}
.patent-status--pending{
  color:#fbbf24;background:rgba(251,191,36,.08);border:1px solid rgba(251,191,36,.18);
}
[data-theme="light"] .patent-status--granted{color:#065f46;background:rgba(5,150,105,.08);border-color:rgba(5,150,105,.18)}
[data-theme="light"] .patent-status--pending{color:#92400e;background:rgba(217,119,6,.08);border-color:rgba(217,119,6,.18)}
/* Company status badges */
.company-status{
  display:inline-block;font-family:var(--font-mono);font-size:var(--fs-chip);font-weight:600;
  letter-spacing:var(--ls-normal);text-transform:uppercase;padding:.15rem .45rem;
  border-radius:var(--r-pill);vertical-align:middle;margin-left:.3rem;
}
.company-status--active{color:#34d399;background:rgba(52,211,153,.1);border:1px solid rgba(52,211,153,.2)}
.company-status--exited{color:var(--text-muted);background:rgba(255,255,255,.04);border:1px solid rgba(255,255,255,.08)}
[data-theme="light"] .company-status--active{color:#065f46;background:rgba(5,150,105,.08);border-color:rgba(5,150,105,.18)}
[data-theme="light"] .company-status--exited{color:rgba(15,23,42,.45);background:rgba(15,23,42,.04);border-color:rgba(15,23,42,.08)}
.pub-list{display:flex;flex-direction:column;gap:.72rem}
.pub-card{
  position:relative;padding-left:1rem;
  border-left:2px solid transparent;
  transition:border-color var(--tr-base),transform var(--tr-base);
}
.pub-card h3{font-size:var(--fs-h3);margin-bottom:.28rem;line-height:var(--lh-tight)}
.pub-card .pub-authors{font-size:var(--fs-xs);color:var(--text-sub);margin-bottom:.18rem;line-height:var(--lh-tight)}
.pub-card .pub-venue{
  font-family:var(--font-mono);font-size:var(--fs-mono-xs);color:var(--bg);letter-spacing:var(--ls-normal);
  display:inline-block;padding:.15rem .5rem;border-radius:var(--r-pill);
  background:rgba(var(--secondary-rgb),.75);margin-bottom:.2rem;font-weight:600;
}
.pub-card .pub-doi{font-family:var(--font-mono);font-size:var(--fs-mono-xs)}
.pub-card .pub-doi a{color:var(--secondary);text-decoration:none;transition:color var(--tr-fast)}
.pub-card .pub-doi a:hover{color:var(--text)}
@media(hover:hover){
  .pub-card:hover{border-left-color:rgba(var(--primary-rgb),.4);transform:translateX(4px);box-shadow:0 4px 16px rgba(var(--primary-rgb),.1)}
}
.pub-card--awarded{border-left-color:rgba(255,210,100,.5)}
.pub-item{border-radius:var(--r-sm);padding:1rem 1.15rem}
.pub-item h3{font-size:var(--fs-sm);margin:0 0 .2rem;line-height:var(--lh-tight)}
.pub-item .pub-venue{font-family:var(--font-mono);font-size:var(--fs-mono-xs);color:var(--text-muted);margin-bottom:.2rem}
.pub-item .pub-doi{font-family:var(--font-mono);font-size:var(--fs-mono-xs);color:var(--secondary);text-decoration:none}
.pub-item .pub-doi:hover{color:var(--text)}
.pub-item .pub-award{
  display:inline-flex;align-items:center;gap:.3rem;margin-top:.3rem;
  padding:.18rem .44rem;border-radius:var(--r-pill);
  border:1px solid rgba(255,210,100,.3);background:rgba(255,210,100,.08);
  font-family:var(--font-mono);font-size:var(--fs-chip);color:#ffe8b8;
}
[data-theme="light"] .pub-card .pub-venue{color:#fff;background:rgba(var(--secondary-rgb),.85)}
/* Collaboration groups */
.collab-groups{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem}
.collab-group{
  padding:1rem 1.1rem;border-radius:var(--r-sm);
  border:1px solid var(--surface-border);background:var(--bg-elevated);
}
.collab-group-label{
  font-family:var(--font-mono);font-size:var(--fs-chip);letter-spacing:var(--ls-normal);text-transform:uppercase;
  color:var(--secondary);display:block;margin-bottom:.6rem;font-weight:600;
}
.collab-group .tag-row{gap:.35rem}
@media(max-width:640px){.collab-groups{grid-template-columns:1fr}}
.course-group{margin-bottom:1.1rem}
.course-group-title{
  font-family:var(--font-mono);font-size:var(--fs-mono-sm);letter-spacing:var(--ls-normal);text-transform:uppercase;
  color:var(--text-muted);padding:.5rem 0 .5rem .8rem;margin-bottom:.6rem;
  border-bottom:none;border-left:3px solid var(--surface-border);
  position:relative;
}
.course-group-title::before{
  content:'';position:absolute;left:-3px;top:0;bottom:0;width:3px;border-radius:2px;
  background:var(--primary);
}
.course-group:nth-child(1) .course-group-title{--cg-color:99,102,241}
.course-group:nth-child(2) .course-group-title{--cg-color:20,184,166}
.course-group:nth-child(3) .course-group-title{--cg-color:139,92,246}
.course-group:nth-child(4) .course-group-title{--cg-color:251,146,60}
.course-group:nth-child(5) .course-group-title{--cg-color:14,165,233}
.course-group:nth-child(6) .course-group-title{--cg-color:236,72,153}
.course-group-title::before{background:rgb(var(--cg-color,99,102,241))}
.role-divider{
  font-family:var(--font-mono);font-size:var(--fs-mono-xs);letter-spacing:var(--ls-wide);text-transform:uppercase;
  color:var(--text-muted);padding:2.2rem 0 .6rem;display:flex;align-items:center;gap:.75rem;
}
.role-divider::after{content:'';flex:1;height:1px;background:linear-gradient(90deg,var(--surface-border),transparent)}
.role-card{
  padding:1.4rem 1.6rem;display:grid;grid-template-columns:auto 1fr auto;  /* spacious */
  gap:1.2rem;align-items:start;margin-bottom:.55rem;position:relative;overflow:hidden;
}
/* Active role distinction */
.role-card--active{border-color:rgba(var(--primary-rgb),.15);box-shadow:var(--shadow-sm)}
.role-card--active::before{display:none}
.role-rank{
  font-family:var(--font-mono);font-size:var(--fs-chip);color:var(--text-muted);
  padding:.2rem .45rem;background:rgba(255,255,255,.03);border-radius:var(--r-xs);
  margin-top:2px;border:1px solid rgba(255,255,255,.04);
}
.role-card--active .role-rank{background:rgba(var(--primary-rgb),.12);color:var(--primary);border-color:rgba(var(--primary-rgb),.18)}
.role-card.primary .role-rank{background:rgba(var(--primary-rgb),.12);color:var(--primary);border-color:rgba(var(--primary-rgb),.15)}
.role-card--active .role-date{color:var(--secondary)}
.role-info h3{font-size:var(--fs-h3);font-weight:600;margin-bottom:.2rem}
.role-org{font-family:var(--font-mono);font-size:var(--fs-mono-sm);color:var(--primary);margin-bottom:.3rem}
.role-desc{font-size:var(--fs-xs);color:var(--text-sub);line-height:var(--lh-card)}
.role-date{font-family:var(--font-mono);font-size:var(--fs-mono-xs);color:var(--text-muted);white-space:nowrap;margin-top:4px}
.rc{padding:1.4rem 1.6rem}
.rc-num{font-family:var(--font-mono);font-size:var(--fs-chip);color:var(--secondary);margin-bottom:.5rem;position:relative;z-index:1}
.rc h3{font-size:var(--fs-sm);font-weight:600;margin-bottom:.3rem;position:relative;z-index:1}
.rc p{font-size:var(--fs-xs);color:var(--text-sub);line-height:var(--lh-card);position:relative;z-index:1}
.dissem-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem}
.dissem-card{padding:1.4rem 1.6rem}
.dissem-cat{font-family:var(--font-mono);font-size:var(--fs-chip);letter-spacing:var(--ls-wide);text-transform:uppercase;color:var(--secondary);margin-bottom:.6rem;position:relative;z-index:1}
.dissem-card h3{font-size:var(--fs-sm);font-weight:600;margin-bottom:.4rem;position:relative;z-index:1}
.dissem-card ul{list-style:none;position:relative;z-index:1}
.dissem-card li{font-size:var(--fs-xs);color:var(--text-sub);line-height:var(--lh-card);padding:.2rem 0 .2rem 1.15rem;position:relative}
.dissem-card li::before{content:'';position:absolute;left:0;top:.62em;width:6px;height:6px;border-radius:50%;background:var(--secondary)}
#about p{color:var(--text-sub);font-size:var(--fs-h3);margin-bottom:.9rem;line-height:var(--lh-body)}
.anchor-nav{display:flex;gap:.6rem;margin-top:1.2rem;flex-wrap:wrap}

/* 13 · Footer --------------------------------------------------------- */
.footer-new{
  padding:clamp(2.5rem,4vw,4rem) var(--pad-x) clamp(1.5rem,2vw,2rem);
  width:100%;border-top:1px solid var(--surface-border);
}
.footer-grid,.footer-bottom{max-width:min(var(--maxw),100%);margin-inline:auto}
.footer-grid{display:grid;grid-template-columns:2fr 1fr 1fr;gap:clamp(2rem,4vw,3rem);margin-bottom:2rem}
.footer-brand{font-family:var(--font-display);font-size:1.2rem;font-weight:600;color:var(--text);text-decoration:none}
.footer-bio{font-size:var(--fs-xs);color:var(--text-muted);line-height:var(--lh-body);margin-top:.6rem}
.footer-social{display:flex;gap:.6rem;margin-top:1rem;justify-content:center}
.footer-social a{
  display:flex;align-items:center;justify-content:center;width:36px;height:36px;
  border-radius:50%;border:1px solid var(--surface-border);color:var(--text-muted);transition:all var(--tr-base);
}
.footer-social a:hover{color:var(--primary);border-color:rgba(var(--primary-rgb),.3);background:rgba(var(--primary-rgb),.06)}
.footer-social svg{width:18px;height:18px}
.footer-col h4{font-family:var(--font-mono);font-size:var(--fs-mono-sm);letter-spacing:var(--ls-wide);text-transform:uppercase;color:var(--primary);margin-bottom:.8rem}
.footer-col ul{list-style:none;padding:0;margin:0}
.footer-col li{margin-bottom:.5rem}
.footer-col a{font-size:var(--fs-xs);color:var(--text-muted);text-decoration:none;transition:color var(--tr-base)}
.footer-col a:hover{color:var(--secondary)}
.footer-bottom{border-top:1px solid rgba(255,255,255,.04);padding-top:1rem;text-align:center}
.footer-bottom p{font-family:var(--font-mono);font-size:var(--fs-mono-xs);color:var(--text-muted);white-space:nowrap}
body > footer{
  width:100%;max-width:100%;margin-top:clamp(2.4rem,4vh,3.2rem);
  padding:2.2rem var(--pad-x) 1.6rem;border-top:1px solid var(--surface-border);
  color:var(--text-muted);font-size:var(--fs-xs);font-family:var(--font-mono);
  display:flex;flex-direction:column;align-items:stretch;gap:.85rem;text-align:center;
}
body > footer p{max-width:min(var(--maxw),calc(100% - 2rem));margin:0 auto;line-height:var(--lh-card);color:rgba(226,232,240,.82)}
.back-to-top{
  position:fixed;bottom:max(2rem,calc(env(safe-area-inset-bottom) + 1rem));
  right:max(2rem,calc(env(safe-area-inset-right) + .5rem));z-index:90;
  width:44px;height:44px;border-radius:50%;border:1px solid var(--surface-border);
  background:var(--bg-elevated);
  color:var(--text);font-size:1.1rem;display:flex;align-items:center;justify-content:center;
  cursor:pointer;opacity:0;transform:translateY(12px);pointer-events:none;
  transition:opacity var(--tr-slow),transform var(--tr-slow),border-color var(--tr-fast),box-shadow var(--tr-fast);
  box-shadow:var(--shadow-md);
}
.back-to-top.visible{opacity:1;transform:translateY(0);pointer-events:auto}
.back-to-top:hover{border-color:rgba(var(--primary-rgb),.4);box-shadow:var(--shadow-md)}

/* 14 · Keyframes ------------------------------------------------------ */
@keyframes dot-pulse{
  0%,100%{box-shadow:0 0 0 4px rgba(var(--secondary-rgb),.25),0 0 12px rgba(var(--secondary-rgb),.35)}
  50%{box-shadow:0 0 0 7px rgba(var(--secondary-rgb),.10),0 0 22px rgba(var(--secondary-rgb),.45)}
}
@keyframes fadeIn{from{opacity:0}to{opacity:1}}
@keyframes blink{50%{opacity:0}}
@keyframes digitRoll{
  0%{transform:translateY(-.6em);opacity:0}
  40%{opacity:1}
  100%{transform:translateY(0);opacity:1}
}
.digit-roll{display:inline-block;animation:digitRoll .5s var(--ease-spring) both;overflow:hidden;vertical-align:baseline}
.digit-suffix{display:inline-block;font-size:1em;font-weight:inherit;vertical-align:top;line-height:inherit}

/* 15 · Reveal & Scroll ------------------------------------------------ */
.reveal{opacity:0;transform:translateY(16px);transition:opacity .6s var(--ease-out),transform .6s var(--ease-out)}
.reveal.visible{opacity:1;transform:translateY(0)}
.reveal :is(.card,.evidence-card,.focus-card,.event-card,.cta-card,.highlight-item,.pub-item){
  opacity:0;transition:opacity .45s var(--ease-out);
}
.reveal.visible :is(.card,.evidence-card,.focus-card,.event-card,.cta-card,.highlight-item,.pub-item){
  opacity:1;
}
/* Staggered reveal delays (replaces inline transition-delay) */
:is(.focus-grid,.recent-events-grid,.featured-pubs-grid,.evidence-grid,.cta-cards-grid,.dissem-grid,.highlights-grid) > :nth-child(1){transition-delay:.04s}
:is(.focus-grid,.recent-events-grid,.featured-pubs-grid,.evidence-grid,.cta-cards-grid,.dissem-grid,.highlights-grid) > :nth-child(2){transition-delay:.08s}
:is(.focus-grid,.recent-events-grid,.featured-pubs-grid,.evidence-grid,.cta-cards-grid,.dissem-grid,.highlights-grid) > :nth-child(3){transition-delay:.12s}
:is(.focus-grid,.recent-events-grid,.featured-pubs-grid,.evidence-grid,.cta-cards-grid,.dissem-grid,.highlights-grid) > :nth-child(4){transition-delay:.16s}
:is(.focus-grid,.recent-events-grid,.featured-pubs-grid,.evidence-grid,.cta-cards-grid,.dissem-grid,.highlights-grid) > :nth-child(5){transition-delay:.20s}
:is(.focus-grid,.recent-events-grid,.featured-pubs-grid,.evidence-grid,.cta-cards-grid,.dissem-grid,.highlights-grid) > :nth-child(n+6){transition-delay:.24s}
.hero-card{transition-delay:.2s}
.reveal-item{opacity:0;transform:translateY(14px);transition:opacity .5s ease,transform .5s ease}
.reveal-item.visible{opacity:1;transform:translateY(0)}
.tl-item{opacity:0;transform:translateY(16px);transition:opacity .55s var(--ease-out),transform .55s var(--ease-out)}
.tl-item.in-view{opacity:1;transform:translateY(0)}

/* 16 · Light Theme ---------------------------------------------------- */
[data-theme="light"]{
  color-scheme:light;
  --bg:#e5e2eb;--bg-elevated:rgba(246,244,252,.55);--bg-subtle:rgba(218,214,228,.48);
  --text:#1e1b2e;
  --text-sub:rgba(30,27,46,.78);--text-muted:rgba(30,27,46,.50);
  --text-ghost:rgba(30,27,46,.30);
  --primary:#4f46e5;--primary-rgb:79,70,229;
  --secondary:#0d9488;--secondary-rgb:13,148,136;
  --surface:rgba(238,235,246,.65);--surface-border:rgba(30,27,46,.11);
  --hover-border:rgba(79,70,229,.30);
  --hover-shadow:0 8px 25px -5px rgba(30,27,46,.10),0 0 0 1px rgba(79,70,229,.18);
  --shadow-sm:0 1px 2px rgba(30,27,46,.05),0 1px 3px rgba(30,27,46,.07);
  --shadow-md:0 4px 6px -1px rgba(30,27,46,.07),0 2px 4px -2px rgba(30,27,46,.05);
  --shadow-lg:0 10px 15px -3px rgba(30,27,46,.09),0 4px 6px -4px rgba(30,27,46,.06);
  --shadow-card-hover:0 8px 25px -5px rgba(30,27,46,.10),0 0 0 1px rgba(79,70,229,.18);
}
[data-theme="light"] nav.nav{
  background:rgba(229,226,235,.88);
  border-bottom-color:rgba(30,27,46,.08);
}
[data-theme="light"] .stat-group{background:rgba(235,232,245,.45);border-color:rgba(79,70,229,.08)}
[data-theme="light"] .stat-row{border-bottom-color:rgba(30,27,46,.06)}
[data-theme="light"] .section{border-top-color:rgba(30,27,46,.08)}
[data-theme="light"] .cta{border-top-color:rgba(30,27,46,.08)}
[data-theme="light"] .event-search{background:rgba(248,245,240,.8);border-color:rgba(79,70,229,.18)}
[data-theme="light"] .event-search:focus{border-color:var(--primary);box-shadow:0 0 0 3px rgba(79,70,229,.14)}
[data-theme="light"] .pull-quote{background:rgba(79,70,229,.06)}
[data-theme="light"] .topic-tag{background:rgba(79,70,229,.06);border-color:rgba(79,70,229,.15)}
[data-theme="light"] .topic-tag--lg{background:rgba(79,70,229,.10);border-color:rgba(79,70,229,.22);color:var(--text)}
[data-theme="light"] .topic-tag:hover{color:var(--primary);border-color:rgba(79,70,229,.35);background:rgba(79,70,229,.12)}
[data-theme="light"] .footer-new{border-top-color:rgba(30,27,46,.06)}
[data-theme="light"] .footer-social a{border-color:rgba(79,70,229,.15)}
[data-theme="light"] .footer-social a:hover{border-color:rgba(79,70,229,.30);background:rgba(79,70,229,.08)}
[data-theme="light"] .footer-bottom{border-top-color:rgba(79,70,229,.10)}
[data-theme="light"] .back-to-top{background:var(--bg-elevated);border-color:rgba(30,27,46,.10)}
[data-theme="light"] .back-to-top:hover{border-color:rgba(79,70,229,.35)}
[data-theme="light"] .hero-links a{background:var(--bg-elevated);border-color:rgba(30,27,46,.10)}
[data-theme="light"] .pub-award{background:rgba(79,70,229,.10);border-color:rgba(79,70,229,.20)}
[data-theme="light"] .pub-doi{background:rgba(13,148,136,.10);border-color:rgba(13,148,136,.20)}
[data-theme="light"] .skip-link{background:var(--surface);border-color:rgba(30,27,46,.10)}
[data-theme="light"] #scrollProgress{box-shadow:none}
[data-theme="light"] .nav-links{color:rgba(30,27,46,.55)}
/* Chips & badges */
[data-theme="light"] .role-chip{color:#3b3561;border-color:rgba(30,27,46,.12);background:rgba(30,27,46,.04)}
[data-theme="light"] .roles-scroll .role-chip{background:var(--bg-elevated);border-color:var(--surface-border);color:var(--text)}
[data-theme="light"] .role-chip--academia{color:#4338ca;border-color:rgba(79,70,229,.28);background:rgba(79,70,229,.10)}
[data-theme="light"] .role-chip--research{color:#0d9488;border-color:rgba(13,148,136,.28);background:rgba(13,148,136,.10)}
[data-theme="light"] .role-chip--industry{color:#0369a1;border-color:rgba(14,165,233,.28);background:rgba(14,165,233,.10)}
[data-theme="light"] .role-chip--startup{color:#15803d;border-color:rgba(22,163,74,.28);background:rgba(22,163,74,.10)}
/* Event types */
[data-theme="light"] .event-type--talk{color:#4338ca;border-color:rgba(79,70,229,.24);background:rgba(79,70,229,.08)}
[data-theme="light"] .event-type--panel{color:#6d28d9;border-color:rgba(139,92,246,.24);background:rgba(139,92,246,.08)}
[data-theme="light"] .event-type--workshop{color:#0d9488;border-color:rgba(5,150,105,.24);background:rgba(5,150,105,.08)}
[data-theme="light"] .event-type--corso{color:#b45309;border-color:rgba(217,119,6,.24);background:rgba(217,119,6,.08)}
[data-theme="light"] .event-type--webinar{color:#2563eb;border-color:rgba(59,130,246,.24);background:rgba(59,130,246,.08)}
[data-theme="light"] .event-type--intervista{color:#be185d;border-color:rgba(236,72,153,.24);background:rgba(236,72,153,.08)}
[data-theme="light"] .event-type--moderazione{color:#4d7c0f;border-color:rgba(101,163,13,.24);background:rgba(101,163,13,.08)}
[data-theme="light"] .event-type--evento{color:#a16207;border-color:rgba(202,138,4,.24);background:rgba(202,138,4,.08)}
/* Accent tag + btn-primary */
[data-theme="light"] .tag--accent{color:#a16207;border-color:rgba(202,138,4,.24);background:rgba(202,138,4,.08)}
[data-theme="light"] .btn-primary{color:#fff;border-color:rgba(13,148,136,.55);background:rgba(13,148,136,.22)}
/* Misc */
[data-theme="light"] .typed-chip{color:var(--primary);border-color:rgba(79,70,229,.22);background:rgba(79,70,229,.08)}
[data-theme="light"] .typed-chip.org{color:var(--secondary);border-color:rgba(13,148,136,.22);background:rgba(13,148,136,.08)}
[data-theme="light"] .typed-chip.area{color:#7c3aed;border-color:rgba(124,58,237,.22);background:rgba(124,58,237,.08)}
[data-theme="light"] .hc-sub{color:var(--text-muted)}
[data-theme="light"] .hc-sub a{color:var(--primary)}
[data-theme="light"] .sg-title{color:var(--text-muted)}
[data-theme="light"] .lang.active{color:var(--text);background:rgba(79,70,229,.08);border-color:rgba(79,70,229,.18)}
[data-theme="light"] .metric-bar .bar-track{background:rgba(30,27,46,.06)}
[data-theme="light"] .tl-rail::before{background:linear-gradient(180deg,rgba(79,70,229,.25),rgba(13,148,136,.18))}
[data-theme="light"] .tl-dot{background:var(--primary);box-shadow:0 0 0 3px rgba(79,70,229,.18),0 1px 4px rgba(0,0,0,.10)}
[data-theme="light"] .tl-dot::before{border-color:rgba(79,70,229,.12)}
[data-theme="light"] .tl-card{border-left-color:rgba(79,70,229,.12)}
[data-theme="light"] .tl-date{color:#fff}
[data-theme="light"] .timeline-mini::before{background:linear-gradient(180deg,rgba(79,70,229,.25),rgba(13,148,136,.18))}
[data-theme="light"] .timeline-mini li{background:var(--bg-elevated);border-color:rgba(30,27,46,.06)}
[data-theme="light"] .timeline-mini li::after{background:var(--primary);box-shadow:0 0 0 3px rgba(79,70,229,.14),0 1px 3px rgba(0,0,0,.08)}
[data-theme="light"] .timeline-mini .date{color:var(--primary)}
[data-theme="light"] .role-card--active{border-color:rgba(79,70,229,.15)}
[data-theme="light"] .step-card .n{border-color:rgba(30,27,46,.10);background:rgba(79,70,229,.08)}
[data-theme="light"] .role-rank{background:rgba(79,70,229,.08);border-color:rgba(79,70,229,.15)}
[data-theme="light"] .course-group-title{border-bottom-color:rgba(30,27,46,.06)}
[data-theme="light"] body > footer{border-top-color:rgba(30,27,46,.06)}
[data-theme="light"] body > footer p{color:var(--text-muted)}
[data-theme="light"] .pub-item .pub-award{color:#a16207}
[data-theme="light"] .patent-row{background:var(--bg-elevated);border-color:rgba(30,27,46,.06)}
[data-theme="light"] .num-badge{background:rgba(79,70,229,.10);border-color:rgba(79,70,229,.20)}
[data-theme="light"] .related-label::before,[data-theme="light"] .related-label::after{background:rgba(30,27,46,.06)}

/* 17 · Responsive ----------------------------------------------------- */
@media(max-width:900px){
  .hero-panel{grid-template-columns:1fr;gap:1.25rem}
  .hero-photo-name{gap:1.2rem}
  .hero-photo{width:120px;height:120px}
  .hero-name{font-size:clamp(2.4rem,6vw,3.2rem)}
  .focus-grid,.evidence-grid,.featured-events-grid,
  .featured-pubs-grid,.cta-cards-grid,.recent-events-grid,
  .dissem-grid,.edu-grid{grid-template-columns:1fr}
  #explore .evidence-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .role-card{grid-template-columns:1fr;gap:.6rem}
  .role-date{margin-top:0}
  .bio-layout{grid-template-columns:1fr}
  .bio-sidebar{position:static}
  .highlights-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .page-main{padding:calc(var(--nav-h) + 1.5rem) 0 2.8rem}
  .page-hero{padding:2.2rem 1.2rem 2rem}
  .nav-links{
    display:none;flex-direction:column;position:absolute;top:var(--nav-h);left:0;right:0;
    background:rgba(9,9,11,.95);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);
    padding:1.5rem var(--pad-x);gap:.8rem;border-bottom:1px solid var(--surface-border);
  }
  .nav-links.open{display:flex}
  .hamburger{display:flex}
  .footer-grid{grid-template-columns:1fr;gap:1.5rem}
  [data-theme="light"] .nav-links{background:rgba(255,255,255,.95)}
}
@media(max-width:640px){
  .terminal-wrap{height:4.5rem}
  .terminal-line{font-size:.62rem;gap:.25rem}
  .typed-chip{font-size:.56rem;padding:.16rem .34rem}
  .typed-divider{margin:0 .15rem}
  .page-main{padding:calc(var(--nav-h) + 1.35rem) 0 2.65rem}
  .page-hero{padding:1.8rem .95rem 1.5rem;border-radius:var(--r-lg)}
  .section{padding:1.5rem 0 0}
  .page-hero h1,.page-main h1{font-size:clamp(1.72rem,8vw,2.18rem)}
  .lead{font-size:.96rem;line-height:1.67}
  .section h2{font-size:1.18rem}
  .section .section-intro{font-size:.9rem;line-height:1.62}
  .card h3,.timeline-mini h3,.step-card h3{font-size:.93rem}
  .card p,.list li,.timeline-mini p,.step-card p{font-size:.87rem}
  .grid,.grid--2,.steps-grid{grid-template-columns:1fr}
  .grid--3{grid-template-columns:repeat(2,minmax(0,1fr))}
  #explore .evidence-grid{grid-template-columns:1fr}
  .highlights-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .actions{margin-top:1.1rem}
  .btn{width:100%;justify-content:center;display:inline-flex}
  .filter-bar{
    gap:.35rem;flex-wrap:nowrap;overflow-x:auto;-webkit-overflow-scrolling:touch;
    scrollbar-width:none;padding-bottom:.3rem;
    mask-image:linear-gradient(to right,black 88%,transparent);
    -webkit-mask-image:linear-gradient(to right,black 88%,transparent);
  }
  .filter-bar::-webkit-scrollbar{display:none}
  .filter-btn{font-size:.62rem;padding:.44rem .62rem;flex-shrink:0}
  .feature-strip{grid-template-columns:repeat(2,minmax(0,1fr))}
  .feature-item:hover{transform:none;box-shadow:none}
  .back-to-top{bottom:max(1.2rem,calc(env(safe-area-inset-bottom) + .8rem));right:1.2rem;width:var(--tap-min);height:var(--tap-min);font-size:1rem}
  .breadcrumb{font-size:.6rem;margin-bottom:.55rem}
  .metric-bar{grid-template-columns:minmax(60px,auto) 1fr auto}
  .metric-bar .label{font-size:.62rem}
  .metric-bar .bar-value{font-size:.74rem}
  .cta-btns{flex-direction:column;align-items:stretch}
  .cta-btns .btn-o{justify-content:center}
  .hero-photo{width:100px;height:100px}
  .hero-photo-name{gap:1rem}
  .stitle{font-size:clamp(1.8rem,5vw,2.2rem)}
  .hero-desc{font-size:.95rem}
  .hero-links{gap:.5rem}
  .hero-links a{padding:.5rem .9rem;font-size:.65rem}
}
@media(max-width:400px){.highlights-grid{grid-template-columns:1fr}.grid--3{grid-template-columns:1fr}}
@media(min-width:1600px){.hero-panel{max-width:1600px}}

/* 18 · Render Performance --------------------------------------------- */
section:not(#hero){content-visibility:auto;contain-intrinsic-size:auto 600px}
.section{content-visibility:auto;contain-intrinsic-size:auto 400px}

/* 19 · Accessibility -------------------------------------------------- */
@media(prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.01ms;animation-iteration-count:1;transition-duration:.01ms;scroll-behavior:auto}
  .reveal,.reveal-item,.tl-item{opacity:1;transform:none}
  .tag-cloud .tag,.topic-cloud .topic-tag{opacity:1;transform:none}
  .digit-roll{animation:none}
  .cursor{animation:none;opacity:.6}
}
.filter-btn:focus-visible,.lang:focus-visible,.back-to-top:focus-visible,.year-group-header:focus-visible{outline:2px solid var(--secondary);outline-offset:3px}

/* 20 · Print ---------------------------------------------------------- */
@media print{
  *{background:transparent;color:#111;box-shadow:none;text-shadow:none}
  body{font-size:12pt;line-height:1.5}
  #scrollProgress,.back-to-top,.section-spy,nav,.skip-link,.breadcrumb,.filter-bar,.filter-bar--type,.section-divider,.theme-toggle,.lang-switch,#dotGrid,.dot-grid-sub,.terminal-wrap{display:none}
  .page-main{padding-top:0;width:100%}
  .page-hero,.section,.card,.event-card,.tl-card,.feature-item,.step-card,.role-card,.rc,.edu-card{border:1px solid #ccc;border-radius:4px;break-inside:avoid}
  .reveal,.reveal.visible,.reveal-item,.reveal-item.visible,.tl-item,.tl-item.in-view{opacity:1;transform:none}
  footer{border-top:1px solid #ccc}
  a[href]::after{content:" (" attr(href) ")";font-size:.8em;color:#666}
  .grid,.grid--2,.steps-grid,.feature-strip{grid-template-columns:1fr}
}
