/* Inline stylesheet 1, preserved from approved version */

:root{
    /* Core type system — unified on Roboto (restrained, scientific; hierarchy comes from
       size/weight/line-height/spacing, not from different families). Weights 400/500/600/700. */
    --font-heading: "Roboto", "Helvetica Neue", Arial, sans-serif;
    --font-body: "Roboto", "Helvetica Neue", Arial, sans-serif;
    --font-interface: "Roboto", "Helvetica Neue", Arial, sans-serif;
    --font-mono: ui-monospace, SFMono-Regular, Consolas, monospace;
    --type-page-title: clamp(32px, 3.4vw, 38px);
  --type-hero-name: clamp(42px, 4.4vw, 50px);
    --type-section-title: clamp(25px, 2.6vw, 29px);
    --type-subsection-title: clamp(20px, 1.9vw, 23px);
    --type-component-title: clamp(18px, 1.6vw, 20px);
    --type-lead: clamp(17px, 1.45vw, 19px);
    --type-body: 17px;
    --type-body-sm: 15px;
    --type-meta: 14px;
    --type-caption: 13px;
    --type-label: 12.5px;
    --type-button: 15px;
    --type-nav: 14px;
    --leading-title: 1.15;
    --leading-heading: 1.3;
    --leading-body: 1.65;
    --leading-compact: 1.4;

    /* Four-pixel spacing scale */
    --space-1: 4px;
    --space-2: 8px;
    --space-3: 12px;
    --space-4: 16px;
    --space-5: 20px;
    --space-6: 24px;
    --space-8: 32px;
    --space-10: 40px;
    --space-12: 48px;
    --space-16: 64px;

    --paper: #F5F7F6;
    --paper-line: rgba(29,41,53,0.07);
    --ink: #1D2935;
    --ink-soft: #2A333C; /* v11 readability: primary body text darkened from #5B6773 to a near-black slate */
    --gold: #2F6B57;
    --gold-deep: #234E3F;
    --accent2: #C8A23A;
    --accent2-deep: #A9862B;
    --card: #FFFFFF;
    --rule: rgba(29,41,53,0.14);
    --surface-neutral: #F5F7F6;
    /* Semantic palette aliases. Existing colors are preserved. */
    --color-page: var(--surface-neutral);
    --color-surface: #FFFFFF;
    --color-surface-soft: #F7F9FA;
    --color-text: var(--ink);
    --color-text-soft: var(--ink-soft);
    --color-border: var(--rule);
    --color-blue: #1F5C8C;
    --color-blue-hover: #174C76;
    --color-blue-soft: #EEF4F9;
    --color-green: #2F6B57;
    --color-green-hover: #234E3F;
    --color-green-soft: rgba(31,110,102,.065);
    --color-terra: var(--accent2-deep);
    --color-focus: #9AC6EE;
    --blue: var(--color-blue);

    /* Shared component decisions */
    --container-main: 1180px;
    --container-wide: 1180px;
    --reading-width: 760px;
    --radius-sm: 6px;
    --radius-md: 10px;
    --radius-lg: 14px;
    --radius-pill: 999px;
    --control-height: 44px;
    --icon-control: 40px;
    --border-standard: 1px solid var(--color-border);
    --focus-ring: 3px solid rgba(31,92,140,.42);
    --transition-fast: 180ms ease;
    --shadow-subtle: 0 2px 8px rgba(20,26,20,.06);
    --shadow-dialog: 0 22px 70px rgba(6,20,31,.28);
    --botanical-texture: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='800' height='620' viewBox='0 0 800 620'%3E%3Cg fill='none' stroke='%2368756F' stroke-opacity='.038' stroke-width='1.4' stroke-linecap='round'%3E%3Cpath d='M-32 548C99 518 154 379 238 267C310 171 404 112 485 18'/%3E%3Cpath d='M832 94C711 127 648 238 590 356C548 442 485 520 408 632'/%3E%3C/g%3E%3Cg fill='%23FFFFFF' fill-opacity='.42'%3E%3Cellipse cx='86' cy='492' rx='16' ry='40' transform='rotate(-53 86 492)'/%3E%3Cellipse cx='126' cy='447' rx='15' ry='38' transform='rotate(42 126 447)'/%3E%3Cellipse cx='160' cy='397' rx='15' ry='36' transform='rotate(-48 160 397)'/%3E%3Cellipse cx='198' cy='342' rx='14' ry='34' transform='rotate(41 198 342)'/%3E%3Cellipse cx='240' cy='286' rx='13' ry='31' transform='rotate(-43 240 286)'/%3E%3Cellipse cx='710' cy='153' rx='16' ry='40' transform='rotate(52 710 153)'/%3E%3Cellipse cx='672' cy='202' rx='15' ry='38' transform='rotate(-41 672 202)'/%3E%3Cellipse cx='637' cy='255' rx='15' ry='36' transform='rotate(47 637 255)'/%3E%3Cellipse cx='606' cy='311' rx='14' ry='34' transform='rotate(-40 606 311)'/%3E%3Cellipse cx='570' cy='370' rx='13' ry='31' transform='rotate(43 570 370)'/%3E%3C/g%3E%3Cg fill='%2387938D' fill-opacity='.025'%3E%3Cellipse cx='105' cy='474' rx='13' ry='32' transform='rotate(38 105 474)'/%3E%3Cellipse cx='145' cy='424' rx='12' ry='30' transform='rotate(-45 145 424)'/%3E%3Cellipse cx='692' cy='177' rx='13' ry='32' transform='rotate(-38 692 177)'/%3E%3Cellipse cx='654' cy='229' rx='12' ry='30' transform='rotate(45 654 229)'/%3E%3C/g%3E%3C/svg%3E");
  }

  *{box-sizing:border-box;}
  html{scroll-behavior:smooth;}
  body{
    margin:0;
    min-height:100vh; overflow-x:clip;
    display:grid;
    grid-template-rows:auto 1fr auto;
    background-color:var(--surface-neutral);
    background-image:
      linear-gradient(180deg,rgba(255,255,255,.24),rgba(243,245,244,.06)),
      var(--botanical-texture);
    background-size:100% 100%,800px 620px;
    background-position:center top,center top;
    color:var(--ink);
    font-family:var(--font-body);
    font-size:var(--type-body);
    line-height:var(--leading-body);
  }
  button,input,select,textarea{font:inherit;}
  img,svg{max-width:100%;}
  p{margin-block:0 var(--space-4);}
  h1,h2,h3,h4,h5,h6{font-family:var(--font-heading); text-wrap:balance;}
  a{color:var(--gold-deep);}
  .skip-link{position:absolute; left:8px; top:-52px; z-index:200; background:var(--gold-deep); color:var(--paper); padding:9px 16px; border-radius:0 0 8px 8px; font-family:"Roboto", "Helvetica Neue", Arial, sans-serif; font-size:12.5px; text-decoration:none; transition:top .18s ease;}
  .skip-link:focus{top:0; outline:2px solid var(--accent2); outline-offset:2px;}
  .wrap{max-width:var(--container-main); margin:0 auto; padding:0 28px var(--space-12); width:100%;}

  /* NAV */
  .site-nav{
    position:sticky; top:0; z-index:10;
    background:#132437; backdrop-filter:blur(4px);
    border-bottom:1px solid rgba(255,255,255,0.10);
  }
  .site-nav .inner{
    max-width:1160px; margin:0 auto; padding:9px 28px; position:relative;
    display:flex; flex-wrap:nowrap; gap:12px; align-items:center;
    font-family:"Roboto", "Helvetica Neue", Arial, sans-serif; font-size:12.5px;
  }
  .site-nav .name{font-weight:600; margin-right:auto; letter-spacing:.02em;}
  .site-nav a{text-decoration:none; color:#E6ECF5;}
  .site-nav a:hover{color:#ffffff;}
  .lang-switch{display:flex; gap:4px; margin-left:auto;}
  .lang-btn{
    font-family:"Roboto", "Helvetica Neue", Arial, sans-serif; font-size:11px; cursor:pointer;
    background:none; border:1px solid rgba(255,255,255,0.28); color:#E6ECF5;
    padding:3px 6px; letter-spacing:.04em; display:inline-flex; align-items:center; gap:4px;
  }
  .lang-btn .flag{ width:15px; height:10px; border-radius:1px; flex:0 0 auto; }
  .lang-btn:hover{border-color:#9AC6EE; color:#ffffff;}
  .lang-btn.active{background:#9AC6EE; color:#132437; border-color:#9AC6EE;}
  /* ===== Primary nav v2 (dropdowns + search) ===== */
  .nav-menu{ display:flex; align-items:center; gap:8px; flex:1 1 auto; min-width:0; }
  .nav-links{ display:flex; align-items:center; flex-wrap:wrap; gap:0 2px; }
  .nav-item{ position:relative; display:inline-flex; align-items:center; }
  .nav-links a.nav-link, .nav-links a.nav-flat, .nav-parent{ display:inline-flex; align-items:center; padding:7px 8px; border-radius:6px; white-space:nowrap; }
  .nav-parent{ padding-right:1px; }
  .dd-caret{ display:inline-flex; align-items:center; background:none; border:none; cursor:pointer; color:#E6ECF5; padding:6px 5px; border-radius:6px; }
  .dd-caret:hover{ color:var(--gold-deep); }
  .dd-caret:focus-visible{ outline:2px solid var(--gold-deep); outline-offset:1px; }
  .dd-caret svg{ transition:transform .18s ease; }
  .nav-item.has-dd.open .dd-caret svg, .nav-item.has-dd:focus-within .dd-caret svg{ transform:rotate(180deg); }
  .dropdown{ display:none; position:absolute; top:calc(100% + 7px); left:0; min-width:240px; background:#132437; border:1px solid rgba(255,255,255,0.14); border-radius:10px; padding:7px; z-index:40; }
  .dropdown a{ display:block; padding:8px 11px; border-radius:6px; color:#E6ECF5; font-size:12.5px; white-space:nowrap; }
  .dropdown a:hover{ background:rgba(255,255,255,0.09); color:#fff; }
  .dropdown a:focus-visible{ background:rgba(255,255,255,0.09); color:#fff; outline:2px solid #9AC6EE; outline-offset:-2px; }
  .dropdown::before{ content:""; position:absolute; top:-9px; left:0; right:0; height:9px; }
  .dropdown a.dd-cat{ display:block; padding:9px 11px 4px; font-size:10.5px; text-transform:uppercase; letter-spacing:.07em; color:#9AC6EE; font-weight:700; border-radius:6px; }
  .dropdown a.dd-cat:hover{ background:rgba(154,198,238,0.12); color:#ffffff; }
  .dropdown a.dd-cat:focus-visible{ background:rgba(154,198,238,0.12); color:#ffffff; outline:2px solid #9AC6EE; outline-offset:-2px; }
  .dropdown a.dd-cat:not(:first-child){ margin-top:5px; padding-top:9px; border-top:1px solid rgba(255,255,255,0.10); }
  /* Publications dropdown: sentence-case labels (override the inherited uppercase dd-cat styling),
     with one consistent readable size, spacing and alignment for all six entries. */
  #dd-publications.dd-publications-menu a.dd-cat{ text-transform:none; letter-spacing:normal; font-size:12.5px; line-height:1.3; font-weight:600; padding:8px 12px; }
  #dd-publications.dd-publications-menu a.dd-cat:not(:first-child){ margin-top:4px; padding-top:8px; }
  .dropdown a.dd-sub{ padding-left:24px; }
  /* Flat dropdown hierarchy: every real section title has the same visual level. */
  .dropdown a.dd-link{
    padding:8px 11px;
    margin:0;
    border-top:0;
    color:#E6ECF5;
    font-size:12.5px;
    font-weight:400;
    line-height:1.35;
    letter-spacing:normal;
    text-transform:none;
  }
  @media (hover:hover) and (min-width:901px){ .nav-item.has-dd:hover > .dropdown, .nav-item.has-dd:focus-within > .dropdown{ display:block; } }
  .nav-item.has-dd.open > .dropdown{ display:block; }
  .nav-item.dd-hidden > .dropdown{ display:none !important; }
  .nav-search{ position:relative; display:flex; align-items:center; margin-left:auto; }
  .nav-search-ico{ position:absolute; left:9px; display:flex; color:#B9C6D6; pointer-events:none; }
  .nav-search-input{ font-family:"Roboto", "Helvetica Neue", Arial, sans-serif; font-size:12px; padding:7px 10px 7px 29px; border:1px solid rgba(255,255,255,0.28); border-radius:8px; background:rgba(255,255,255,0.10); color:#E6ECF5; width:148px; transition:width .18s ease; }
  .nav-search-input::placeholder{ color:#9FB0C2; }
  .nav-search-input:focus{ outline:2px solid #9AC6EE; outline-offset:1px; border-color:#9AC6EE; width:196px; }
  .search-results{ position:absolute; top:calc(100% + 7px); right:0; width:min(390px,86vw); max-height:344px; overflow-y:auto; background:#132437; border:1px solid rgba(255,255,255,0.14); border-radius:10px; padding:6px; z-index:60; }
  .sr-item{ display:flex; justify-content:space-between; align-items:flex-start; gap:12px; width:100%; text-align:left; background:none; border:none; cursor:pointer; padding:9px 10px; border-radius:6px; color:#E6ECF5; font-family:"Roboto", "Helvetica Neue", Arial, sans-serif; font-size:12.5px; }
  .sr-item:hover{ background:rgba(255,255,255,0.10); color:#fff; }
  .sr-item:focus-visible{ background:rgba(255,255,255,0.10); color:#fff; outline:2px solid #9AC6EE; outline-offset:2px; }
  .sr-copy{display:block; min-width:0;}
  .sr-t{display:block; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; font-weight:700;}
  .sr-snippet{display:block; margin-top:3px; color:#C7D4E2; font-size:11px; line-height:1.35;}
  .sr-snippet mark{background:#F2D27A; color:#132437; border-radius:2px; padding:0 1px;}
  .sr-p{ flex:0 0 auto; padding-top:1px; color:#9AC6EE; font-size:10px; text-transform:uppercase; letter-spacing:.05em; }
  .sr-none{ padding:10px 12px; color:#9AC6EE; font-size:12px; }
  .search-hit{ animation:searchpulse 1.6s ease; border-radius:6px; }
  @keyframes searchpulse{ 0%,100%{ box-shadow:0 0 0 0 rgba(154,198,238,0); } 30%{ box-shadow:0 0 0 4px rgba(154,198,238,0.35); } }
  .nav-burger{ display:none; background:none; border:1px solid var(--rule); border-radius:8px; padding:6px 8px; cursor:pointer; color:var(--ink-soft); }
  .nav-burger:focus-visible{ outline:2px solid var(--gold-deep); outline-offset:2px; }
  .sr-only{ position:absolute!important; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0; }
  @media (max-width:900px){
    .nav-burger{ display:inline-flex; }
    .nav-menu{ display:none; position:absolute; top:100%; left:0; right:0; flex-direction:column; align-items:stretch; gap:2px; padding:12px 20px 18px; background:rgba(228,224,210,0.985); backdrop-filter:blur(8px); border-bottom:1px solid var(--rule); box-shadow:0 10px 22px rgba(0,0,0,0.14); max-height:82vh; overflow-y:auto; }
    .nav-menu.open{ display:flex; }
    .nav-links{ flex-direction:column; align-items:stretch; gap:1px; }
    .nav-item{ display:flex; flex-wrap:wrap; align-items:center; }
    .nav-parent{ flex:1 1 auto; }
    .dd-caret{ margin-left:auto; padding:10px 8px; }
    .nav-links a.nav-link, .nav-links a.nav-flat, .nav-parent{ padding:11px 8px; font-size:14px; }
    .dropdown{ position:static; width:100%; margin:0 0 6px; border-radius:8px; }
    .dropdown::before{ display:none; }
    .dropdown a{ padding:11px 14px; font-size:13.5px; }
    .nav-search{ margin:8px 0 0; }
    .nav-search-input, .nav-search-input:focus{ width:100%; }
    .search-results{ position:static; width:100%; margin-top:6px; }
  }
  @media (min-width:901px){
    .nav-links{flex-wrap:nowrap; gap:0 4px;}
    .nav-links a.nav-link, .nav-links a.nav-flat, .nav-links .nav-parent{
      font-size:13px;
      font-weight:600;
    }
  }

  /* HERO */
  header.hero{padding:64px 0 44px; border-bottom:1px solid var(--rule);}
  .hero-grid{display:grid; grid-template-columns: 1fr 176px; gap:36px; align-items:start;}
  .photo-frame{
    aspect-ratio:1/1; border:1px solid var(--rule); background:var(--card);
    display:flex; align-items:center; justify-content:center; position:relative; overflow:hidden;
    border-radius:50%;
  }
  .photo-frame svg{width:56%; height:56%; color:var(--ink-soft); opacity:.55;}
  .photo-frame .photo-tag{
    position:absolute; bottom:0; left:0; right:0; padding:6px 0;
    text-align:center; font-family:"Roboto", "Helvetica Neue", Arial, sans-serif; font-size:9.5px;
    letter-spacing:.05em; color:var(--ink-soft); background:rgba(239,236,227,0.85);
    border-top:1px dashed var(--rule);
  }
  .eyebrow{
    font-family:"Roboto", "Helvetica Neue", Arial, sans-serif; font-size:12px; letter-spacing:.14em;
    text-transform:uppercase; color:var(--gold-deep); margin-bottom:18px;
    display:flex; align-items:center; gap:10px;
  }
  .eyebrow::before{content:"§"; font-size:14px;}
  h1{
    font-family:"Roboto", "Helvetica Neue", Arial, sans-serif; font-weight:700;
    font-size:clamp(32px, 5vw, 48px); margin:0 0 10px; letter-spacing:-0.01em;
  }
  .role{font-size:17px; color:var(--ink-soft); max-width:680px; margin:0 0 24px;}
  .hero-meta{
    display:flex; flex-wrap:wrap; gap:10px 22px;
    font-family:"Roboto", "Helvetica Neue", Arial, sans-serif; font-size:13px; color:var(--ink-soft);
  }
  .hero-meta span::before{content:"— "; color:var(--gold-deep);}
  /* ---- Hero v3 + section intro bands: subtle geometric line pattern ---- */
  .hero-v3, .intro-band{
    --profile-line-pattern: url("../media/hero-line-pattern.png");
    width:100vw; position:relative; left:50%; transform:translateX(-50%); color:#33475B;
    background-color:#D6DCDB;
    background-image:var(--profile-line-pattern);
    background-repeat:repeat-x;
  }
  .hero-v3, .intro-band{
    background-size:auto 340px;
    background-position:left center;
  }
  .hero-v3-inner{
    max-width:1180px; margin:0 auto; padding:clamp(16px,2vw,22px) clamp(24px,4vw,48px); display:grid; grid-template-columns:auto minmax(0,1fr); gap:clamp(30px,4vw,60px); align-items:center;
  }
  .hero-v3-left{ grid-column:2; grid-row:1; }
  .hv3-name{ font-family:var(--font-heading); font-weight:700; font-size:var(--type-hero-name); line-height:1.06; letter-spacing:-.015em; color:#132437; margin:0 0 12px; }
  .hv3-title{ font-family:"Roboto", "Helvetica Neue", Arial, sans-serif; font-size:clamp(16px,1.7vw,20px); font-weight:500; color:#33475B; margin:0 0 14px; }
  .hv3-spec{ font-family:"Roboto", "Helvetica Neue", Arial, sans-serif; font-size:clamp(15.5px,1.65vw,18px); line-height:1.6; color:#4A5B6C; max-width:640px; margin:0; }
  .hv3-photo{ grid-column:1; grid-row:1; justify-self:start; }
  .hv3-photo img{ width:clamp(172px,19vw,248px); height:clamp(172px,19vw,248px); object-fit:cover; border-radius:50%; display:block; border:3px solid #E7EEED; }
  @media (max-width:820px){
    .hero-v3-inner{ grid-template-columns:1fr; gap:26px; }
    .hero-v3-left{ grid-column:1; grid-row:2; }
    .hv3-photo{ grid-column:1; grid-row:1; justify-self:center; }
    .hv3-spec{ max-width:none; }
  }
  @media (max-width:600px){
    .hero-v3, .intro-band{
      background-size:auto 280px;
      background-position:left center;
    }
    .hero-v3-inner{ padding:18px 22px; }
    .hv3-photo img{ width:158px; height:158px; }
    .intro-band-inner{ padding:18px 22px; }
  }
  /* Home-only continuation: full-width gray-to-white fade plus the same line geometry. */
  #home{
    --home-pattern-size:340px;
    --home-pattern-y:0px;
    --home-hero-height:300px;
    position:relative;
    isolation:isolate;
    background:transparent;
  }
  #home::before{
    content:"";
    position:absolute;
    z-index:0;
    inset:0 auto 0 50%;
    width:100vw;
    transform:translateX(-50%);
    pointer-events:none;
    background:
      linear-gradient(to bottom,
        #D6DCDB 0,
        #D6DCDB calc(var(--home-hero-height) - 36px),
        rgba(214,220,219,.88) calc(var(--home-hero-height) + 6px),
        rgba(214,220,219,.58) calc(var(--home-hero-height) + 34px),
        rgba(214,220,219,.26) calc(var(--home-hero-height) + 74px),
        rgba(214,220,219,.08) calc(var(--home-hero-height) + 118px),
        #FFFFFF calc(var(--home-hero-height) + 160px),
        #FFFFFF 100%);
  }
  #home::after{
    content:"";
    position:absolute;
    z-index:0;
    inset:0 auto 0 50%;
    width:100vw;
    transform:translateX(-50%);
    pointer-events:none;
    background-image:url("../media/hero-line-pattern-gray.png");
    background-repeat:repeat;
    background-size:auto var(--home-pattern-size);
    background-position:left var(--home-pattern-y);
  }
  #home > *{position:relative; z-index:1;}
  #home .hero-v3{
    background-color:transparent;
    background-size:auto var(--home-pattern-size);
    background-position:left var(--home-pattern-y);
  }
  /* Keep the profile links and expertise keywords visibly white over the soft fade. */
  #home .home-profiles-row .home-profile a,
  #home .expertise-fullwidth .expertise-pills .profile-chip{
    background:#FFFFFF;
  }
  @media (max-width:600px){
    #home{--home-pattern-size:280px;}
  }

  /* Uniform gray-to-white continuation for every main tab.
     White strokes remain over the gray introduction band; the same geometry
     continues as very soft gray strokes over the white page content. */
  #research, #publications, #collaboration, #infrastructure, #contact{
    --section-pattern-size:340px;
    --section-pattern-y:0px;
    --section-band-height:180px;
    position:relative;
    isolation:isolate;
    background:transparent;
  }
  #research::before, #publications::before, #collaboration::before,
  #infrastructure::before, #contact::before{
    content:"";
    position:absolute;
    z-index:0;
    inset:0 auto 0 50%;
    width:100vw;
    transform:translateX(-50%);
    pointer-events:none;
    background:linear-gradient(to bottom,
      #D6DCDB 0,
      #D6DCDB calc(var(--section-band-height) - 36px),
      rgba(214,220,219,.88) calc(var(--section-band-height) + 6px),
      rgba(214,220,219,.58) calc(var(--section-band-height) + 34px),
      rgba(214,220,219,.26) calc(var(--section-band-height) + 74px),
      rgba(214,220,219,.08) calc(var(--section-band-height) + 118px),
      #FFFFFF calc(var(--section-band-height) + 160px),
      #FFFFFF 100%);
  }
  #research::after, #publications::after, #collaboration::after,
  #infrastructure::after, #contact::after{
    content:"";
    position:absolute;
    z-index:0;
    inset:0 auto 0 50%;
    width:100vw;
    transform:translateX(-50%);
    pointer-events:none;
    background-image:url("../media/hero-line-pattern-gray.png");
    background-repeat:repeat;
    background-size:auto var(--section-pattern-size);
    background-position:left var(--section-pattern-y);
  }
  #research > *, #publications > *, #collaboration > *,
  #infrastructure > *, #contact > *{
    position:relative;
    z-index:1;
  }
  #research .intro-band, #publications .intro-band, #collaboration .intro-band,
  #infrastructure .intro-band, #contact .intro-band{
    background-color:transparent;
    background-size:auto var(--section-pattern-size);
    background-position:left var(--section-pattern-y);
  }
  @media (max-width:600px){
    #research, #publications, #collaboration, #infrastructure, #contact{
      --section-pattern-size:280px;
    }
  }

  /* Shared gray patterned introduction band — reuses the Home hero-v3 surface (Part 2). */
  .intro-band{ margin:0 0 clamp(20px,3vw,30px); }
  .intro-band-inner{ max-width:1180px; margin:0 auto; padding:clamp(20px,3vw,32px) clamp(24px,4vw,48px); }
  .intro-band .intro-band-inner > :first-child{ margin-top:0; }
  .intro-band .intro-band-inner > :last-child{ margin-bottom:0; }
  /* ONE shared page-introduction heading class — the validated Collaboration band heading,
     reused identically on Research, Infrastructure, Collaboration and Contact (v10).
     !important defeats the legacy per-section title rules so all four render identically. */
  .section-intro-title{
    display:block !important; width:auto !important; max-width:none !important;
    margin:0 0 12px !important; padding:2px 0 8px !important;
    background:transparent !important; color:var(--ds-navy,#132437) !important;
    border:0 !important; border-bottom:2px solid var(--ds-blue,#1F5C8C) !important;
    border-radius:0 !important; box-shadow:none !important;
    font-family:var(--font-heading,"Roboto","Helvetica Neue",Arial,sans-serif) !important;
    font-size:clamp(24px,3vw,34px) !important; font-weight:700 !important;
    line-height:1.2 !important; letter-spacing:-.012em !important; text-align:left !important;
  }
  .section-intro-title a{ color:inherit !important; text-decoration:none !important; }
  .section-intro-title a:hover{ text-decoration:underline; text-underline-offset:3px; }
  /* ONE shared page-introduction paragraph class — the Home professional-description typography.
     v11: full width of the centered content container (.intro-band-inner, max 1180px), left-aligned;
     the narrow 640px column is removed. Font size/weight/line-height/colour are unchanged. */
  .section-intro-text{
    margin-top:0 !important; margin-bottom:0 !important; margin-left:0 !important; margin-right:0 !important;
    width:100% !important; max-width:none !important; text-align:left !important;
    font-family:"Roboto","Helvetica Neue",Arial,sans-serif !important;
    font-size:clamp(15.5px,1.65vw,18px) !important; font-weight:400 !important;
    line-height:1.6 !important; color:#1D2935 !important;
  }
  /* Ensure the paragraph wrappers never re-impose a narrow column inside the band. */
  .intro-band .rs-intro, .intro-band .collab-domain-heading{ max-width:none !important; width:100% !important; }
  .intro-band .collab-domain-heading{ margin:0; padding:0; border-left:0; }
  .intro-band .rs-intro{ margin:0; }
  /* Intro band sits flush against the sticky nav — no white strip above it (Part 3). */
  #research.page, #infrastructure.page, #collaboration.page, #contact.page, #publications.page{ padding-top:0; }
  #research .intro-band, #infrastructure .intro-band,
  #collaboration .intro-band, #contact .intro-band, #publications .intro-band{ margin-top:0; }

  .fig-label{
    font-family:"Roboto", "Helvetica Neue", Arial, sans-serif; font-size:12px; color:var(--gold-deep);
    letter-spacing:.08em; margin-bottom:6px; text-transform:uppercase;
  }
  /* Only top-level SPA pages receive page spacing. Nested semantic sections
     manage their own rhythm and must not inherit page separators. */
  .page{padding:var(--space-12) 0; border-bottom:var(--border-standard);}
  #home.page{padding-top:0;}
  .page > h2{
    margin:0 0 var(--space-6); font-family:var(--font-heading); font-weight:600;
    font-size:var(--type-page-title); line-height:var(--leading-title); letter-spacing:-.012em;
  }

  /* ABOUT */
  .about-panel{ display:grid; grid-template-columns:1.55fr 1fr; background:var(--card); border:1px solid var(--rule); border-radius:14px; overflow:hidden; margin-top:4px; }
  .about-bio{ padding:26px 30px; }
  .about-bio p{ color:var(--ink-soft); margin:0 0 14px; font-size:15px; line-height:1.72; text-align:justify; hyphens:auto; }
  .about-bio p:last-child{ margin-bottom:0; }
  .about-quals{ padding:26px 28px; border-left:1px solid var(--rule); background:rgba(19,36,55,0.035); display:flex; flex-direction:column; gap:16px; }
  .qual{ display:flex; flex-direction:column; gap:6px; }
  .qual-heading{display:flex; align-items:center; gap:9px;}
  .qual-icon{display:inline-flex; align-items:center; justify-content:center; flex:0 0 28px; width:28px; height:28px; border:0; border-radius:0; background:transparent; color:#1F5C8C;}
  .qual-icon svg{width:24px; height:24px; fill:none; stroke:currentColor; stroke-width:2; stroke-linecap:round; stroke-linejoin:round;}
  .qual-badge{ align-self:flex-start; background:#1F5C8C; color:#ffffff; font-family:"Roboto", "Helvetica Neue", Arial, sans-serif; font-size:11px; font-weight:500; text-transform:uppercase; letter-spacing:.05em; padding:5px 12px; border-radius:7px; }
  .qual-detail{ margin:0; font-size:14px; line-height:1.5; color:var(--ink-soft); }
  @media (max-width:760px){
    .about-panel{ grid-template-columns:1fr; }
    .about-quals{ border-left:none; border-top:1px solid var(--rule); }
    .about-bio p{ text-align:left; }
  }

  /* RESEARCH — two expandable areas */
  .area{border:1px solid var(--rule); background:var(--card); margin-bottom:16px;}
  .area-heading{margin:0; font:inherit;}
  .area-head{
    width:100%; text-align:left; cursor:pointer; background:none; border:none;
    display:flex; align-items:center; gap:16px; padding:18px 20px;
    font-family:"Roboto", "Helvetica Neue", Arial, sans-serif; font-size:19px; color:var(--ink);
  }
  .area-head:hover{color:var(--gold-deep);}
  .area-head .area-num{
    font-family:"Roboto", "Helvetica Neue", Arial, sans-serif; font-size:13px; color:var(--paper);
    background:var(--gold-deep); padding:3px 8px; flex:0 0 auto;
  }
  .area-head .area-toggle{
    margin-left:auto; font-family:"Roboto", "Helvetica Neue", Arial, sans-serif; font-size:22px;
    color:var(--gold-deep); flex:0 0 auto; transition:transform .2s; line-height:1;
  }
  .area.open .area-head .area-toggle{transform:rotate(45deg);}
  .area-body{display:none; padding:0 20px 22px;}
  .area.open .area-body{display:block;}
  .area-intro{color:var(--ink-soft); font-size:14.5px; margin:0 0 18px;}
  /* Research page targeted restyle (scoped, does not affect area2/projects) */
  #research #research-areas{display:inline-block; margin:0 0 14px; padding:7px 16px; background:#1F5C8C; color:#fff; border:0; border-radius:12px; font-size:18px; font-weight:700; line-height:1.25; letter-spacing:normal;}
  #area1{background:transparent; border:0;}
  #area1 .area-head{background:#EEF6FC; color:#17324D; border:1px solid #D7E8F5; border-radius:12px;}
  #area1 .area-head:hover{background:#E2EFFA; color:#17324D;}
  #area1 .area-head > span[data-i18n="area1_title"]{color:#1F5C8C; font-weight:700;}
  #area1 .area-head .area-num{background:#1F5C8C; color:#fff;}
  #area1 .area-head .area-toggle{color:#1F5C8C;}
  #area1 .area-head:focus-visible{outline:2px solid #1F5C8C; outline-offset:2px;}
  #area1 .valo-diagram{background:transparent; border:0; padding:16px 0 8px;}
  #area1 .valo-def{background:#EEF6FC; border:1px solid #D7E8F5; border-left-width:3px;}
  #area1 .valo-def h4{color:#17324D;}
  #area1 .valo-def .def-meta{color:#17324D;}
  .valo-subtitle{margin:0 0 8px; font-family:"Roboto", "Helvetica Neue", Arial, sans-serif; font-size:16px; font-weight:700; color:#1F5C8C; background:none;}
  .sub-item{padding:12px 0; border-top:1px solid var(--rule);}
  .sub-item:first-child{border-top:none;}
  .sub-item h4{margin:0 0 4px; font-size:15px; font-family:"Roboto", "Helvetica Neue", Arial, sans-serif;}
  .sub-item p{margin:0; color:var(--ink-soft); font-size:13.5px;}
  .a2-illus{margin-top:26px;}
  .a2-illus-title{font-family:"Roboto", "Helvetica Neue", Arial, sans-serif; font-size:15px; color:var(--ink); margin:0 0 14px;}
  .a2-fig-grid{display:grid; grid-template-columns:repeat(2, minmax(0,1fr)); gap:16px;}
  .a2-fig{margin:0; border:1px solid var(--rule); border-radius:6px; background:#fff; overflow:hidden;}
  .a2-fig img{display:block; width:100%; height:auto; background:#fff; cursor:zoom-in;}
  .a2-fig figcaption{font-family:"Roboto", "Helvetica Neue", Arial, sans-serif; font-size:11px; line-height:1.5; color:var(--ink-soft); text-align:center; padding:9px 12px 11px; background:#fff; border-top:1px solid var(--rule);}
  @media (max-width:640px){.a2-fig-grid{grid-template-columns:1fr;}}

  /* VALORIZATION DIAGRAM (3-column) */
  .valo-diagram{margin:6px 0 8px; border:1px solid var(--rule); background:var(--paper); padding:20px 12px; overflow-x:auto; -webkit-overflow-scrolling:touch;}
  .valo-diagram svg{display:block; min-width:680px; width:100%; height:auto;}
  .valo-diagram svg .node{cursor:pointer; transition:transform .2s ease, filter .2s ease; transform-box:fill-box; transform-origin:center;}
  .valo-diagram svg .node rect{transition:fill .16s, stroke-width .16s;}
  .valo-diagram svg .node:hover{transform:scale(1.05); filter:drop-shadow(0 3px 5px rgba(23,50,77,0.28));}
  .valo-diagram svg .node:hover rect{stroke-width:2.4;}
  .valo-diagram svg .node:focus-visible{transform:scale(1.05); filter:drop-shadow(0 3px 5px rgba(23,50,77,0.28));}
  .valo-diagram svg .node:focus-visible rect{stroke-width:2.4;}
  .valo-diagram svg .node.active rect{fill:var(--paper);}
  @media (prefers-reduced-motion: reduce){ .valo-diagram svg .node{transition:none;} .valo-diagram svg .node:hover,.valo-diagram svg .node:focus-visible{transform:none;} }
  .valo-scroll-hint{display:none; font-family:"Roboto", "Helvetica Neue", Arial, sans-serif; font-size:10.5px; color:var(--gold-deep); text-align:center; margin:0 0 8px;}
  .valo-caption{margin-top:18px; margin-bottom:4px; font-family:"Roboto", "Helvetica Neue", Arial, sans-serif; font-size:16px; font-weight:700; color:#1F5C8C; text-align:center;}
  .valo-card{margin:16px 0; padding:16px 18px; max-width:700px; background:#EEF6FC; border:1.5px solid #1F5C8C; border-radius:14px; overflow:visible; transition:transform .2s ease, box-shadow .2s ease;}
  .valo-card h4{margin:0 0 6px; font-size:15px; font-weight:700; color:#17324D; font-family:"Roboto", "Helvetica Neue", Arial, sans-serif;}
  .valo-card p{margin:0; font-size:13.5px; line-height:1.55; color:#17324D;}
  .valo-card:hover, .valo-card:focus-within{transform:scale(1.03); box-shadow:0 8px 20px rgba(31,92,140,0.20); position:relative; z-index:3;}
  @media (prefers-reduced-motion: reduce){ .valo-card{transition:none;} .valo-card:hover,.valo-card:focus-within{transform:none;} }
  @media (max-width: 700px){ .valo-scroll-hint{display:block;} }

  /* DEFINITION PANEL */
  .valo-def{
    border:1px solid var(--gold-deep); border-left-width:3px; background:var(--card);
    padding:16px 18px; margin:4px 0 18px; display:none;
  }
  .valo-def.show{display:block;}
  .valo-def h4{
    margin:0 0 8px; font-family:"Roboto", "Helvetica Neue", Arial, sans-serif; font-size:16px; color:var(--gold-deep);
    display:flex; align-items:center; justify-content:space-between; gap:12px;
  }
  .valo-def .def-close{
    cursor:pointer; background:none; border:none; font-family:"Roboto", "Helvetica Neue", Arial, sans-serif;
    font-size:18px; color:var(--ink-soft); line-height:1; flex:0 0 auto;
  }
  .valo-def .def-close:hover{color:var(--accent2-deep);}
  .valo-def p{margin:0 0 8px; font-size:13.8px; color:var(--ink); line-height:1.6;}
  .valo-def p:last-child{margin-bottom:0;}
  .valo-def .def-meta{
    font-family:"Roboto", "Helvetica Neue", Arial, sans-serif; font-size:12px; color:var(--accent2-deep);
    background:var(--paper); padding:6px 10px; border:1px solid var(--rule); margin:8px 0;
  }
  .valo-def .def-hint{font-size:11.5px; color:var(--ink-soft); font-style:italic; margin-top:10px;}

  /* RESEARCH LINES */
  .lines{display:grid; gap:16px;}
  .line-item{display:grid; grid-template-columns: 56px 1fr; gap:20px; padding:16px 0; border-top:1px solid var(--rule);}
  .line-item:first-child{border-top:none;}
  .line-icon{
    width:44px; height:44px; border:1px solid var(--rule); background:var(--card);
    display:flex; align-items:center; justify-content:center; position:relative;
  }
  .line-icon svg{width:24px; height:24px; color:var(--gold-deep);}
  .line-icon .line-num{
    position:absolute; top:-8px; right:-8px; background:var(--ink); color:var(--paper);
    font-family:"Roboto", "Helvetica Neue", Arial, sans-serif; font-size:9px; padding:1px 4px;
  }
  .line-item h3{margin:0 0 6px; font-size:16.5px; font-family:"Roboto", "Helvetica Neue", Arial, sans-serif;}
  .line-item p{margin:0; color:var(--ink-soft); font-size:14px;}

  /* PROCESS FLOW DIAGRAM (signature element) */
  .flow-diagram{margin-top:36px; border:1px solid var(--rule); background:var(--card); padding:24px 20px;}
  .flow-diagram svg{width:100%; height:auto; display:block;}
  .flow-caption{
    margin-top:10px; font-family:"Roboto", "Helvetica Neue", Arial, sans-serif; font-size:11.5px;
    color:var(--ink-soft); text-align:center; letter-spacing:.02em;
  }

  /* TOOLS */
  .tools{display:flex; flex-wrap:wrap; gap:10px;}
  .tool-chip{
    display:inline-flex; align-items:center;
    padding:6px 15px; border-radius:999px;
    border:1px solid rgba(47,122,78,0.34);
    background:rgba(47,122,78,0.10);
    font-family:"Roboto", "Helvetica Neue", Arial, sans-serif; font-size:12.5px; font-weight:500;
    color:var(--ink); text-decoration:none; line-height:1.2; white-space:nowrap;
    transition:background .15s, border-color .15s;
  }
  .tool-chip:hover{ background:rgba(47,122,78,0.18); border-color:var(--gold-deep); }

  /* PUBLICATIONS */
  .publications-accordions{display:grid; row-gap:4px; margin-top:12px;}
  .pub-accordion{
    margin:0; padding:0; min-height:0; border:0; border-radius:12px;
    background:transparent; overflow:visible;
  }
  .pub-accordion-trigger{
    width:100%; border:0; border-radius:12px; background:#1F5C8C; color:#fff;
    display:flex; align-items:center; justify-content:space-between; gap:18px;
    padding:16px clamp(16px,2.2vw,24px); text-align:left; cursor:pointer;
    font-family:"Roboto","Helvetica Neue",Arial,sans-serif; font-size:clamp(15px,1.4vw,17px); font-weight:700;
    transition:background-color .18s ease,border-radius .18s ease;
  }
  .pub-accordion-trigger:hover{background:#174C76;}
  .pub-accordion-trigger:focus-visible{outline:3px solid rgba(31,92,140,.35); outline-offset:3px;}
  .pub-accordion-indicator{
    flex:0 0 28px; width:28px; height:28px; border-radius:50%;
    display:inline-flex; align-items:center; justify-content:center;
    border:1px solid rgba(255,255,255,.72); background:transparent; color:#fff; font-size:20px; line-height:1;
  }
  .pub-accordion-trigger[aria-expanded="true"] .pub-accordion-indicator::before{content:'\2212';}
  .pub-accordion-trigger[aria-expanded="false"] .pub-accordion-indicator::before{content:'+';}
  .pub-accordion-panel{
    padding:0 clamp(4px,1vw,12px); border:0; background:transparent;
    max-height:0; opacity:0; overflow:hidden;
    transition:max-height .32s ease,opacity .22s ease,padding .32s ease;
  }
  .pub-accordion-panel.is-open{padding-top:8px; padding-bottom:8px; opacity:1;}
  .pub-accordion-panel[hidden]{display:none;}
  .pub{padding:18px 0; border-top:1px solid var(--rule); display:block; background:transparent;}
  .pub:first-child{border-top:none;}
  .pub.journal-publication{display:grid; grid-template-columns:clamp(118px,14vw,148px) minmax(0,1fr); gap:clamp(18px,2.5vw,30px); align-items:center;}
  .journal-identity{
    width:clamp(118px,14vw,148px); height:clamp(86px,10vw,108px);
    display:flex; align-items:center; justify-content:center; overflow:hidden;
    color:#1F5C8C; line-height:1.2;
  }
  .journal-identity img{width:100%; height:100%; object-fit:contain; object-position:center; display:block;}
  .journal-identity-placeholder{
    border:1px dashed rgba(31,92,140,.55); border-radius:8px; padding:10px;
    color:#1F5C8C; font-size:12px; font-weight:700; text-align:center;
  }
  .journal-identity-placeholder span{display:block; margin-top:5px; color:var(--ink-soft); font-size:10px; font-weight:500;}
  .publication-reference{
    margin:0; color:var(--ink); font-size:15px; line-height:1.6;
    hyphens:none; word-break:normal; overflow-wrap:break-word;
  }
  /* Publications list: reference at 15px/1.6 (a step below body), the article title one step
     up at Roboto 500 / 16px — restrained NLR style, distinguishable without being bold. */
  #publications .publication-reference{ font-size:15px; line-height:1.6; }
  .pub-ref-title{ font-weight:500; font-size:16px; }
  .publication-author-self{font-weight:700;}
  .publication-reference a{font-weight:600; overflow-wrap:anywhere;}
  .pub-note{margin-top:20px; font-size:13px; color:var(--ink-soft); font-family:"Roboto", "Helvetica Neue", Arial, sans-serif;}
  .pub-accordion-panel .review-list{margin:6px 0 4px; gap:0;}
  .review-list.simple li.peer-review-publication{
    display:grid; grid-template-columns:clamp(118px,14vw,148px) minmax(0,1fr);
    gap:clamp(18px,2.5vw,30px); align-items:center; padding:6px 0;
    border-top:1px solid var(--rule);
  }
  .review-list.simple li.peer-review-publication:first-child{border-top:none;}
  .peer-review-info{min-width:0; display:flex; align-items:baseline; flex-wrap:wrap; gap:6px;}
  .peer-review-info a{flex:0 1 auto; overflow-wrap:break-word;}

  @media (max-width:600px){
    .pub-accordion-trigger{padding:14px 15px; gap:12px;}
    .pub-accordion-panel{padding-left:2px; padding-right:2px;}
    .pub.journal-publication{grid-template-columns:1fr; gap:12px; align-items:start;}
    .review-list.simple li.peer-review-publication{grid-template-columns:1fr; gap:12px; align-items:start; padding:8px 0;}
    .journal-identity{width:clamp(132px,38vw,158px); height:clamp(96px,27vw,116px);}
    .publication-reference{font-size:13.5px; line-height:1.65;}
  }

  /* THESES / STAGES */
  .thesis{padding:13px 0; border-top:1px solid var(--rule); font-size:14px;}
  .thesis:first-child{border-top:none;}
  .thesis b{font-weight:600;}
  .thesis .th-meta{color:var(--ink-soft); font-size:12.5px;}

  /* DISTINCTIONS */
  .dist-list{margin:0; padding-left:0; list-style:none; font-size:14px;}
  .dist-list li{
    padding:10px 0; border-top:1px solid var(--rule); display:flex; gap:14px;
  }
  .dist-list li:first-child{border-top:none;}
  .dist-num{font-family:"Roboto", "Helvetica Neue", Arial, sans-serif; color:var(--accent2-deep); font-weight:600; font-size:12.5px; padding-top:1px;}

  /* PEER REVIEW LIST */
  .review-list{list-style:none; margin:18px 0 0; padding:0;}
  .review-list li{display:flex; align-items:baseline; gap:6px; padding:9px 0; border-top:1px solid var(--rule); font-size:14.5px;}
  .review-list li:first-child{border-top:none;}
  .review-list a{flex:0 0 auto; text-decoration:none; color:var(--ink); border-bottom:1px solid var(--rule);}
  .review-list a:hover{color:var(--gold-deep); border-color:var(--gold-deep);}
  .review-dots{flex:1 1 auto; border-bottom:1px dotted var(--rule); height:0; align-self:center; margin:0 4px;}
  .review-count{font-family:"Roboto", "Helvetica Neue", Arial, sans-serif; color:var(--accent2-deep); font-weight:600; font-size:13.5px; flex:0 0 auto;}

  /* CONTACT */
  .contact-list{list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:13px; font-family:"Roboto", "Helvetica Neue", Arial, sans-serif; font-size:14px;}
  .contact-list li{display:flex; align-items:center; gap:12px;}
  .contact-list a{display:inline-flex; align-items:center; gap:10px; text-decoration:none; color:var(--ink);}
  .affil-logo-link{display:inline-flex; align-items:center; justify-content:center; background:#ffffff; border:1px solid var(--rule); border-radius:6px; padding:6px 11px; line-height:0; transition:box-shadow .15s ease, transform .15s ease;}
  .affil-logo-link:hover{box-shadow:0 2px 10px rgba(20,26,20,0.12); transform:translateY(-1px);}
  .affil-logo-link:focus-visible{outline:2px solid var(--gold-deep); outline-offset:2px;}
  .affil-logo{height:34px; width:auto; display:block;}
  .contact-list a:hover{color:var(--gold-deep);}
  .cico{width:20px; height:20px; flex-shrink:0; display:block;}
  .contact-list .wos-contact-logo{width:23px; height:23px; object-fit:contain;}
  .affil-name{font-weight:600; min-width:120px;}
  .affil-link{color:var(--gold-deep) !important; font-size:13px;}
  .note-box{
    margin-top:22px; font-size:12.5px; color:var(--ink-soft);
    border-left:2px solid var(--gold-deep); padding:8px 14px; background:var(--card);
  }

  footer{padding:34px 0 60px; text-align:center; color:var(--ink-soft); font-size:12.5px;}

  @media (max-width: 700px){
    .about-grid{grid-template-columns:1fr;}
    .line-item{grid-template-columns: 60px 1fr;}
    header.hero{padding:48px 0 32px;}
    .site-nav .inner{gap:14px;}
    .hero-grid{grid-template-columns:1fr; gap:20px;}
    .photo-frame{max-width:150px;}
    .globe-wrap{height:88vw; min-height:300px; max-height:460px;}
  }

  /* ---- Collaboration section — visual test base ---- */
  .collab-intro{color:var(--ink-soft); font-size:14.5px; margin:-6px 0 18px; max-width:760px;}
  .globe-wrap{
    position:relative; width:100%; height:520px;
    border:1px solid var(--rule); border-radius:4px;
    background:var(--card);
    background-image:
      linear-gradient(90deg, var(--paper-line) 1px, transparent 1px) 0 0/28px 100%,
      linear-gradient(var(--paper-line) 1px, transparent 1px) 0 0/100% 28px;
    overflow:hidden;
  }
  #globe{width:100%; height:100%;}
  .globe-loading{
    position:absolute; inset:0; display:flex; align-items:center; justify-content:center;
    text-align:center; padding:0 24px;
    font-family:"Roboto", "Helvetica Neue", Arial, sans-serif; font-size:13px; color:var(--ink-soft);
  }
  .globe-loading.hidden{display:none;}
  .globe-wrap .modebar{display:none !important;}
  .collab-note{
    margin:12px 0 26px; font-size:12.5px; color:var(--ink-soft);
    border-left:2px solid var(--accent2); padding-left:12px; max-width:760px;
  }
  .collab-legend-title{
    font-family:"Roboto", "Helvetica Neue", Arial, sans-serif; font-size:12px; letter-spacing:.08em;
    text-transform:uppercase; color:var(--gold-deep); margin:0 0 12px;
  }
  .collab-summary{display:flex; flex-wrap:wrap; gap:8px;}
  .collab-chip{
    display:inline-flex; align-items:baseline; gap:8px;
    border:1px solid var(--rule); border-radius:999px;
    padding:5px 13px; font-size:13px; color:var(--ink);
    background:rgba(239,235,219,0.6);
  }
  .collab-chip .cc-count{
    font-family:"Roboto", "Helvetica Neue", Arial, sans-serif; font-size:12px; color:var(--gold-deep);
  }
  /* ---- SPA pages ---- */
  .page{ display:none; }
  .page.active{ display:block; animation:pageIn .28s ease; }
  @keyframes pageIn{ from{ opacity:0; transform:translateY(6px);} to{ opacity:1; transform:none;} }
  .site-nav a.nav-link.current{ color:var(--gold-deep); font-weight:600; }

  /* ---- Shared footer ---- */
  /* ---- Premium academic footer ---- */
  .infra-note{ margin-top:12px; font-size:15.5px; line-height:1.6; color:var(--ink-soft); max-width:640px; }
  .site-footer{ --f-bg:#132437; --f-text:#EAF0F8; --f-muted:#AEBBCD; --f-line:rgba(255,255,255,0.13); --f-accent:#9AC6EE; --f-icon:#D2DBEA;
    background:var(--f-bg); color:var(--f-text); border-top:1px solid rgba(255,255,255,0.08);
    padding:clamp(24px,2.5vw,34px) 24px 12px; font-family:"Roboto","Helvetica Neue",Arial,sans-serif; }
  .footer-inner{ width:min(94%, 1480px); margin-inline:auto; }
  .footer-main{ display:grid; grid-template-columns:minmax(0,1.12fr) minmax(0,.78fr) minmax(0,.95fr) minmax(0,1.45fr);
    gap:clamp(22px,2.4vw,36px); align-items:center; }
  .footer-identity{ display:flex; flex-direction:column; align-items:center; justify-content:center; gap:4px; min-width:0; text-align:center; }
  .footer-identity .footer-name{ margin:0 0 2px; font:600 clamp(21px,1.7vw,25px)/1.18 "Roboto","Helvetica Neue",Arial,sans-serif; color:#fff; }
  .footer-identity .footer-role{ margin:0; font-size:14.5px; line-height:1.4; color:var(--f-muted); }
  .footer-identity .footer-affil{ margin:3px 0 0; font-size:13.5px; line-height:1.4; color:var(--f-text); white-space:nowrap; }
  .footer-block-title,.footer-profiles-label{ display:block; margin:0 0 10px; font-size:12px; font-weight:700;
    line-height:1.3; text-transform:uppercase; letter-spacing:.08em; color:var(--f-accent); }
  .footer-logo,.footer-profiles,.footer-connect{ min-width:0; }
  .footer-logo{ display:flex; align-items:center; justify-content:center; }
  .footer-profiles{ display:flex; flex-direction:column; justify-content:center; }
  .footer-connect{ display:flex; flex-direction:column; justify-content:center; }
  .footer-address{ font-style:normal; display:flex; flex-direction:column; gap:5px; font-size:14px; line-height:1.45; }
  .footer-address a{ color:var(--f-text); text-decoration:none; overflow-wrap:anywhere; }
  .footer-address a:hover{ color:#fff; text-decoration:underline; text-underline-offset:3px; }
  .footer-address a:focus-visible{ outline:2px solid var(--f-accent); outline-offset:3px; }
  .footer-collab-note{ max-width:460px; margin:7px 0 0; font-size:13.25px; line-height:1.42; color:var(--f-muted); }
  .footer-logo-card{ display:inline-flex; align-items:center; flex-wrap:nowrap; gap:16px; }
  .footer-logo-card a{ display:inline-flex; align-items:center; border-radius:4px; }
  .footer-logo-card img{ height:52px; width:auto; max-width:100%; object-fit:contain; display:block; transition:opacity .15s ease; }
  .footer-logo-card a:hover img{ opacity:.82; }
  .footer-logo-card a:focus-visible{ outline:2px solid var(--f-accent); outline-offset:4px; }
  .footer-social{ list-style:none; margin:0; padding:0; display:flex; flex-wrap:wrap; gap:8px; }
  .footer-social a{ display:inline-flex; align-items:center; justify-content:center; width:40px; height:40px; border-radius:50%; color:var(--f-icon); transition:color .15s ease, transform .15s ease; }
  .footer-social a svg{ width:23px; height:23px; display:block; }
  .footer-social a .footer-profile-logo{ width:23px; height:23px; display:block; object-fit:contain; }
  .footer-social a .footer-wos-logo{ width:28px; height:28px; filter:brightness(0) invert(1); opacity:.82; transition:opacity .15s ease; }
  .footer-social a:hover .footer-wos-logo,
  .footer-social a:focus-visible .footer-wos-logo{ opacity:1; }
  .footer-social a:hover{ color:#fff; transform:translateY(-1px); }
  .footer-social a:focus-visible{ outline:2px solid var(--f-accent); outline-offset:2px; }
  .footer-bottom{ margin-top:12px; padding-top:10px; border-top:1px solid var(--f-line); font-size:12.5px; color:var(--f-muted); text-align:center; }
  @media (max-width:1180px){
    .footer-main{ grid-template-columns:repeat(2,minmax(0,1fr)); gap:22px 42px; }
    .footer-identity .footer-affil{ white-space:normal; }
  }
  @media (max-width:640px){
    .site-footer{ padding:26px 18px 12px; }
    .footer-inner{ width:100%; }
    .footer-main{ grid-template-columns:1fr; gap:21px; }
    .footer-logo,.footer-profiles,.footer-connect{ align-items:center; text-align:center; }
    .footer-address{ align-items:center; }
    .footer-social,.footer-logo-card{ justify-content:center; }
    .footer-collab-note{ max-width:430px; }
    .footer-logo-card img{ height:46px; }
  }
  .collab-context{ margin-top:28px; }
  .collab-context p{ color:var(--ink-soft); font-size:14px; max-width:780px; margin:0 0 14px; }
  /* Download CV button */
  .cv-btn{display:inline-flex; align-items:center; gap:8px; margin-top:18px; padding:8px 16px;
    font-family:"Roboto", "Helvetica Neue", Arial, sans-serif; font-size:12.5px; letter-spacing:.02em;
    color:var(--paper); background:var(--gold-deep); border:1px solid var(--gold-deep);
    border-radius:4px; text-decoration:none; transition:background .15s;}
  .cv-btn:hover{background:var(--gold);}
  /* Recent updates */
  .updates{margin-top:36px; padding-top:22px; border-top:1px solid var(--rule);}
  .update-list{list-style:none; margin:12px 0 0; padding:0; display:flex; flex-direction:column; gap:0;}
  .update-list li.recent-article{
    display:grid; grid-template-columns:clamp(112px,13vw,140px) minmax(0,1fr);
    gap:clamp(16px,2.3vw,26px); align-items:center; padding:16px 0;
    border-top:1px solid var(--rule); font-family:"Roboto","Helvetica Neue",Arial,sans-serif;
  }
  .update-list li.recent-article:first-child{border-top:none;}
  .update-list li.recent-article.has-biostar{
    grid-template-columns:clamp(112px,13vw,140px) minmax(0,1fr) clamp(132px,16vw,166px);
  }
  .recent-article .journal-identity{width:clamp(112px,13vw,140px); height:clamp(82px,10vw,104px);}
  .recent-reference{min-width:0;}
  .recent-reference .publication-reference{font-size:14px; line-height:1.68;}
  .recent-project{
    min-width:0; align-self:stretch; display:flex; flex-direction:column; align-items:center;
    justify-content:center; gap:5px; padding-left:16px; border-left:1px solid var(--rule); text-align:center;
  }
  .recent-project-logo{display:block; width:100%; max-width:158px; height:auto; object-fit:contain;}
  .recent-project-year{font-size:12px; line-height:1.2; color:var(--ink-soft); font-weight:700;}
  .recent-project-link{font-size:12.5px; line-height:1.25; color:#1F5C8C; font-weight:700; text-decoration:none;}
  .recent-project-link:hover{text-decoration:underline; text-underline-offset:3px;}
  .recent-project-link:focus-visible{outline:3px solid rgba(31,92,140,.35); outline-offset:3px; border-radius:3px;}
  @media (max-width:820px){
    .update-list li.recent-article.has-biostar{grid-template-columns:clamp(104px,16vw,128px) minmax(0,1fr);}
    .recent-article .journal-identity{width:clamp(104px,16vw,128px); height:clamp(78px,12vw,96px);}
    .recent-project{grid-column:2; align-self:auto; flex-direction:row; flex-wrap:wrap; justify-content:flex-start; padding:10px 0 0; border-left:0; border-top:1px solid var(--rule); text-align:left;}
    .recent-project-logo{width:min(150px,44%);}
  }
  @media (max-width:600px){
    .update-list li.recent-article,
    .update-list li.recent-article.has-biostar{grid-template-columns:1fr; gap:12px; padding:15px 0; align-items:start;}
    .recent-article .journal-identity{width:clamp(132px,42vw,164px); height:clamp(96px,30vw,120px);}
    .recent-reference .publication-reference{font-size:13.5px; line-height:1.65;}
    .recent-project{grid-column:1; align-items:flex-start; flex-direction:column; padding-top:12px; text-align:left;}
    .recent-project-logo{width:min(190px,72vw); max-width:100%;}
    .recent-project-link{display:inline-flex; min-height:44px; align-items:center;}
  }
  /* Project cards */
  .project-cards{display:grid; grid-template-columns:repeat(auto-fill, minmax(270px, 1fr)); gap:16px; margin-top:12px;}
  .pcard{border:1px solid var(--rule); border-left:3px solid var(--gold-deep); border-radius:4px; padding:15px 17px; background:var(--card);}
  .pcard h4{margin:0 0 11px; font-family:"Roboto", "Helvetica Neue", Arial, sans-serif; font-size:16px; line-height:1.3; color:var(--ink);}
  .pcard-row{margin:0 0 7px; font-size:13px; color:var(--ink-soft); line-height:1.45;}
  .pcard-k{display:inline-block; font-family:"Roboto", "Helvetica Neue", Arial, sans-serif; font-size:10.5px; text-transform:uppercase; letter-spacing:.06em; color:var(--gold-deep); margin-right:7px;}
  .pcard-status{color:var(--accent2-deep); font-weight:600;}
  /* Selected publications */
  /* Collaborating institutions */
  .inst-section{margin-top:40px; padding-top:26px; border-top:1px solid var(--rule);}
  .inst-grid{display:grid; grid-template-columns:repeat(6,minmax(0,1fr)); gap:10px; margin-top:14px;}
  .inst-card{display:flex; flex-direction:column; align-items:center; justify-content:center; min-width:0; min-height:118px; text-align:center; gap:8px; border:1px solid var(--rule); border-radius:6px; background:var(--card); padding:13px 8px; text-decoration:none; color:inherit; transition:border-color .18s, background .18s, box-shadow .18s, transform .18s;}
  .inst-card:hover{border-color:var(--gold-deep); background:rgba(47,122,78,0.05); box-shadow:0 2px 8px rgba(20,26,20,0.06); transform:translateY(-1px);}
  .inst-logo{height:56px; width:100%; display:flex; align-items:center; justify-content:center;}
  .inst-logo img{display:block; width:auto; height:auto; max-height:56px; max-width:100%; object-fit:contain; filter:none; opacity:1; transition:transform .2s;}
  .inst-card:hover .inst-logo img{transform:scale(1.025);}
  .inst-ph{font-family:"Roboto", "Helvetica Neue", Arial, sans-serif; font-size:12px; font-weight:600; color:var(--ink-soft); border:1px dashed var(--rule); border-radius:4px; padding:9px 10px;}
  .inst-name{font-family:"Roboto", "Helvetica Neue", Arial, sans-serif; font-size:11.5px; font-weight:600; line-height:1.25; color:var(--ink); overflow-wrap:anywhere; hyphens:auto;}
  @media (max-width:1100px){ .inst-grid{grid-template-columns:repeat(4,minmax(0,1fr));} }
  @media (max-width:760px){ .inst-grid{grid-template-columns:repeat(3,minmax(0,1fr)); gap:9px;} }
  @media (max-width:520px){
    .inst-grid{grid-template-columns:repeat(2,minmax(0,1fr)); gap:8px;}
    .inst-card{min-height:108px; padding:11px 6px; gap:7px;}
    .inst-logo{height:50px;}
    .inst-logo img{max-height:50px;}
    .inst-name{font-size:10.75px; line-height:1.22;}
  }
  .sub-h2{border-top:1px solid var(--rule); padding-top:32px; margin-top:40px;}
  .review-list.simple{display:flex; flex-direction:column; gap:2px; margin-top:14px;}
  .review-list.simple li{border-top:none; padding:6px 0;}
  a.update-title{color:var(--ink); text-decoration:none; border-bottom:1px solid var(--rule);}
  a.update-title:hover{color:var(--gold-deep); border-color:var(--gold-deep);}
  .proj-tag{display:inline-block; margin-top:6px; font-family:"Roboto", "Helvetica Neue", Arial, sans-serif; font-size:10.5px; letter-spacing:.04em; color:var(--gold-deep); border:1px solid var(--rule); border-radius:999px; padding:2px 10px; text-decoration:none;}
  .proj-tag:hover{border-color:var(--gold-deep); background:rgba(47,122,78,0.06);}
  .section-pill-title{display:inline-block; background:#1F5C8C; color:#fff; border-radius:999px;
    padding:7px 18px; font-family:"Roboto", "Helvetica Neue", Arial, sans-serif; font-size:18px; font-weight:600;
    letter-spacing:0; text-transform:none; margin:26px 0 16px; line-height:1.25; border:none;}
  .sup-item{margin:0 0 12px; font-size:14px; line-height:1.5;}
  .sup-meta{font-family:"Roboto", "Helvetica Neue", Arial, sans-serif; font-size:12px; color:var(--ink-soft);}
  .rv-count{font-family:"Roboto", "Helvetica Neue", Arial, sans-serif; font-size:12px; color:var(--ink-soft);}
  .research-figs{margin-top:34px;}
  .fig-grid{display:grid; grid-template-columns:repeat(2,1fr); gap:18px; margin-top:14px;}
  .rfig{margin:0; border:1px solid var(--rule); border-radius:6px; background:var(--card); overflow:hidden;}
  .rfig img{display:block; width:100%; height:auto; cursor:zoom-in; background:#fff;}
  .rfig figcaption{font-family:"Roboto", "Helvetica Neue", Arial, sans-serif; font-size:12px; color:var(--ink-soft); padding:10px 14px; border-top:1px solid var(--rule);}
  #fig-lightbox{position:fixed; inset:0; z-index:1000; background:rgba(20,26,20,0.86); display:none; align-items:center; justify-content:center; padding:24px; cursor:zoom-out;}
  #fig-lightbox.show{display:flex;}
  #fig-lightbox img{max-width:96%; max-height:96%; object-fit:contain; box-shadow:0 6px 30px rgba(0,0,0,0.45); background:#fff; border-radius:4px;}
  @media (max-width:700px){ .fig-grid{grid-template-columns:1fr;} }

  /* ===== Modeling & Simulation — article-style figure blocks ===== */
  .a2-theme{ margin:32px 0 6px; }
  .a2-theme:first-of-type{ margin-top:8px; }
  .a2-theme-h{ font-family:"Roboto", "Helvetica Neue", Arial, sans-serif; font-size:18px; color:var(--ink); margin:0; display:flex; align-items:center; gap:10px; line-height:1.3; }
  .a2-theme-h::before{ content:""; width:9px; height:9px; border-radius:50%; background:var(--gold-deep); flex:0 0 auto; }
  .a2-figblock{ margin:14px 0 0; border:1px solid var(--rule); border-radius:16px; background:var(--card); padding:16px 16px 15px; }
  .a2-fignum{ font-family:"Roboto", "Helvetica Neue", Arial, sans-serif; font-size:10.5px; letter-spacing:.09em; text-transform:uppercase; color:var(--gold-deep); margin:0 0 3px; }
  .a2-figttl{ font-family:"Roboto", "Helvetica Neue", Arial, sans-serif; font-size:15px; font-weight:600; color:var(--ink); margin:0 0 12px; line-height:1.35; }
  .a2-figmedia{ border:none; border-radius:12px; background:var(--card); overflow:hidden; max-width:720px; margin-left:auto; margin-right:auto; }
  .a2-figmedia img{ display:block; width:100%; height:auto; background:var(--card); cursor:zoom-in; }
  .a2-figdesc{ margin:12px 2px 0; font-size:13px; line-height:1.58; color:var(--ink-soft); }
  @media (max-width:640px){ .a2-figblock{ padding:13px 13px 12px; border-radius:14px; } }

  /* ===== Rounded-corner refresh (consistent, elegant) ===== */
  .fact-card{ border-radius:16px; }
  .area{ border-radius:16px; overflow:hidden; }
  .valo-diagram{ border-radius:16px; }
  .valo-def{ border-radius:14px; }
  .note-box{ border-radius:12px; }
  .globe-wrap{ border-radius:16px; }
  .collab-note{ border-radius:10px; }
  .pcard{ border-radius:16px; }
  .inst-card{ border-radius:16px; }
  .inst-ph{ border-radius:12px; }
  .affil-logo-link{ border-radius:12px; }
  .cv-btn{ border-radius:10px; }
  .lang-btn{ border-radius:9px; }
  .area-head .area-num{ border-radius:6px; }
  #fig-lightbox img{ border-radius:12px; }

  .cico-img{ height:18px; width:auto; max-width:72px; object-fit:contain; display:block; flex-shrink:0; }
  .a2-figmedia-narrow{ max-width:400px; margin-left:auto; margin-right:auto; }
  .a2-figmedia-sm{ max-width:560px; margin-left:auto; margin-right:auto; }

  /* Section title boxes (blue) + research axis headers (teal) */
  .title-box{ display:inline-block; background:#1F5C8C; color:#fff; border-radius:14px; padding:8px 22px; font-size:23px; line-height:1.2; }
  .area-head{ background:#1F6E66; color:#fff; }
  .area-head:hover{ color:#fff; background:#1B625A; }
  .area-head .area-num{ background:rgba(255,255,255,0.20); color:#fff; }
  .area-head .area-toggle{ color:#fff; }

  /* ===== Home biography, academic qualifications and press/media ===== */
  .about-page-intro{max-width:820px; margin:-6px 0 30px; color:var(--ink-soft); font-size:15px; line-height:1.7;}
  .biography-panel{display:grid; grid-template-columns:minmax(0,1.65fr) minmax(280px,1fr); gap:clamp(24px,3vw,40px); align-items:start;}
  .biography-column,.biography-qualifications-column{min-width:0;}
  .biography-column > .title-box,.biography-qualifications-column > .title-box{margin:0 0 20px;}
  /* Home heading sizes are unified by .title-box.home-section-title (home.css).
     Former per-id font-size overrides removed so all eight Home titles match. */
  .biography-copy{font-size:15.5px; line-height:1.68;}
  .biography-copy p:first-child{margin-top:0;}
  .biography-quals{display:flex; flex-direction:column; gap:12px;}
  .education-list{display:flex; flex-direction:column; gap:14px;}
  .education-entry{padding:0 0 14px; border-bottom:1px solid var(--rule);}
  .education-entry:last-child{padding-bottom:0; border-bottom:0;}
  .education-degree{display:inline-flex; align-items:center; justify-content:flex-start; width:fit-content; max-width:100%; gap:0.55rem; margin:0 0 8px; padding:0.4rem 0.65rem; background:#EEF6FC; color:#17324D; border:1px solid #D7E8F5; border-radius:999px; font-family:"Roboto", "Helvetica Neue", Arial, sans-serif; font-size:15.5px; font-weight:700; line-height:1.32; overflow-wrap:anywhere;}
  .edu-icon{flex:0 0 auto; font-size:18px; line-height:1; font-family:"Segoe UI Emoji","Apple Color Emoji","Noto Color Emoji",sans-serif;}
  .education-institutions{display:grid; gap:5px; margin:0; padding:0; list-style:none;}
  .education-institutions li{position:relative; margin:0; padding-left:14px; color:var(--ink-soft); font-size:12px; font-weight:600; line-height:1.46; overflow-wrap:anywhere;}
  .education-institutions li::before{content:""; position:absolute; left:1px; top:.63em; width:5px; height:5px; border-radius:50%; background:#1F5C8C;}
  .profile-subsection{margin-top:20px; padding-top:17px; border-top:1px solid var(--rule);}
  .profile-subsection-title{display:inline-block; margin:0 0 11px; padding:6px 12px; background:#1F5C8C; color:#fff; border-radius:10px; font-family:"Roboto", "Helvetica Neue", Arial, sans-serif; font-size:13.5px; font-weight:700; line-height:1.3;}
  .profile-chip-list{display:flex; flex-wrap:wrap; gap:7px; margin:0; padding:0; list-style:none;}
  .profile-chip{display:inline-flex; align-items:center; min-width:0; max-width:100%; margin:0; padding:6px 11px; border:1px solid #D7E8F5; border-radius:999px; background:#EEF6FC; color:#17324D; font-size:12.5px; line-height:1.35; overflow-wrap:anywhere;}
  .language-chip{gap:8px; min-height:32px; justify-content:flex-start; border-radius:10px;}
  .language-list{flex-direction:column; align-items:flex-start; gap:7px;}
  .language-flags{flex:0 0 auto; display:inline-flex; align-items:center; gap:3px;}
  .flag-svg{height:15px; width:auto; border-radius:2px; box-shadow:0 0 0 1px rgba(0,0,0,0.10); display:block; flex:0 0 auto;}
  @media(max-width:700px){
    .profile-chip-list{gap:6px;}
    .profile-chip{padding:6px 8px;}
  }
  .press-theme{margin:0 0 18px; font-family:"Roboto", "Helvetica Neue", Arial, sans-serif; font-size:12px; font-weight:600; letter-spacing:.075em; text-transform:uppercase; color:var(--blue);}
  .media-grid{display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:clamp(14px,2vw,24px); align-items:stretch; width:100%;}
  .media-card{position:relative; display:flex; flex-direction:column; min-width:0; height:100%; overflow:hidden; border:1px solid var(--rule); border-radius:14px; background:#fff; transition:border-color .18s ease, transform .18s ease;}
  .media-card:hover{border-color:#9AC6EE; transform:translateY(-2px);}
  .media-card:focus-within{border-color:#1F5C8C; box-shadow:0 0 0 3px rgba(31,92,140,.12);}
  .media-card-wide{grid-column:1/-1; display:grid; grid-template-columns:minmax(260px,.72fr) minmax(0,1.28fr);}
  .media-preview{position:relative; min-height:190px; display:flex; flex-direction:column; justify-content:flex-end; padding:25px; overflow:hidden; background:linear-gradient(145deg,#132437 0%,#1F5C8C 72%,#4B87B4 100%); color:#fff;}
  .media-card-wide .media-preview{min-height:100%;}
  .media-preview::before{content:""; position:absolute; inset:18px; border:1px solid rgba(255,255,255,.22); border-radius:9px; pointer-events:none;}
  .media-preview-mark{position:relative; z-index:1; margin-bottom:auto; font-family:"Roboto", "Helvetica Neue", Arial, sans-serif; font-size:38px; line-height:1; color:#9AC6EE;}
  .media-preview-outlet{position:relative; z-index:1; font-family:"Roboto", "Helvetica Neue", Arial, sans-serif; font-size:23px; font-weight:600; line-height:1.15;}
  .media-preview-kind{position:relative; z-index:1; margin-top:6px; font-family:"Roboto", "Helvetica Neue", Arial, sans-serif; font-size:10.5px; letter-spacing:.08em; text-transform:uppercase; color:#D8E8F7;}
  .media-body{display:flex; flex-direction:column; flex:1 1 auto; padding:clamp(17px,2vw,22px);}
  .media-meta{display:flex; flex-wrap:wrap; gap:7px 13px; margin:0 0 13px; color:var(--ink-soft); font-family:"Roboto", "Helvetica Neue", Arial, sans-serif; font-size:11px;}
  .media-meta > span:not(:last-child)::after{content:"·"; margin-left:13px; color:#9AA9BA;}
  .media-title{margin:0 0 10px; font-family:"Roboto", "Helvetica Neue", Arial, sans-serif; font-size:21px; line-height:1.25; color:var(--ink);}
  .media-original{margin:0 0 12px; color:var(--ink-soft); font-size:12.5px; line-height:1.5;}
  .media-original strong{font-family:"Roboto", "Helvetica Neue", Arial, sans-serif; font-size:10.5px; letter-spacing:.04em; text-transform:uppercase; color:var(--blue);}
  .media-summary{margin:0 0 18px; color:#4A5A6A; font-size:14px; line-height:1.65;}
  .media-note{margin:-5px 0 18px; padding:10px 12px; border-left:3px solid #9AC6EE; background:#F4F8FC; color:#546579; font-size:12.5px; line-height:1.55;}
  .media-action{display:inline-flex; align-items:center; gap:7px; width:max-content; min-height:44px; margin-top:auto; padding:9px 14px; border-radius:8px; background:#1F5C8C; color:#fff; font-family:"Roboto", "Helvetica Neue", Arial, sans-serif; font-size:12px; font-weight:600; text-decoration:none; transition:background .16s ease;}
  .media-action:hover{background:#174C76; color:#fff;}
  .media-action::after{content:"\2197"; font-size:15px;}
  .media-action::before{content:""; position:absolute; inset:0;}
  .media-action:focus-visible{outline:2px solid #1F5C8C; outline-offset:4px; border-radius:2px;}
  .media-brand{display:flex; align-items:center; justify-content:center; min-height:clamp(76px,7vw,88px); padding:clamp(14px,2vw,17px) clamp(18px,3vw,24px); border-bottom:1px solid var(--rule); overflow:hidden;}
  .media-brand img{display:block; max-width:100%; max-height:58px; width:auto; height:auto; object-fit:contain;}
  .media-brand-sol{background:#fff; border-top:5px solid #C41230;}
  .media-brand-amanecer{background:#fff; border-top:5px solid #B51F29;}
  .media-date-strip{padding:7px 20px; border-bottom:1px solid var(--rule); background:#F7F9FB; color:#5D6D7D; font-size:11px; font-weight:600; line-height:1.35;}
  .media-brand-facebook{justify-content:flex-start; gap:13px; background:#1877F2; color:#fff; border:0; font-family:Arial,sans-serif; font-size:24px; font-weight:700;}
  .facebook-mark{display:inline-flex; align-items:flex-end; justify-content:center; width:42px; height:42px; border-radius:50%; background:#fff; color:#1877F2; font-family:Arial,sans-serif; font-size:38px; font-weight:700; line-height:45px; overflow:hidden;}
  .media-feature{display:block; width:100%; height:auto; aspect-ratio:16/9; object-fit:cover; background:#EDF1F5;}
  .media-feature-sol{aspect-ratio:16/9; height:auto; object-fit:cover; object-position:center 43%;}
  .media-feature-placeholder{align-items:center; justify-content:center; background:linear-gradient(135deg,#F4F6F8,#E7EBEF); border-bottom:1px solid var(--rule); color:#718096; font-family:"Roboto", "Helvetica Neue", Arial, sans-serif; font-size:11px; letter-spacing:.06em; text-transform:uppercase;}
  .media-feature-slot{background:#F2F4F6; border-bottom:1px solid var(--rule);}
  .media-meta strong{display:block; margin-bottom:2px; color:#1F5C8C; font-size:9.5px; font-weight:700; letter-spacing:.055em; text-transform:uppercase;}
  .media-credit{display:flex; flex-wrap:wrap; gap:5px 10px; align-items:center; margin:14px 0 0; padding-top:11px; border-top:1px solid var(--rule); color:var(--ink-soft); font-family:"Roboto", "Helvetica Neue", Arial, sans-serif; font-size:10.5px; line-height:1.45;}
  .media-credit strong{color:#33475B; font-weight:600;}
  .media-credit > *:not(:last-child)::after{content:"·"; margin-left:10px; color:#A0ACB8;}
  .media-card-facebook{grid-column:1/-1;}
  @media(max-width:900px){.biography-panel{grid-template-columns:1fr;}.media-card-wide{grid-template-columns:1fr;}.media-card-wide .media-preview{min-height:190px;}}
  @media(max-width:700px){.media-grid{grid-template-columns:1fr;}.media-card-wide,.media-card-facebook{grid-column:auto;}.media-preview{min-height:175px; padding:22px;}.media-title{font-size:20px;}}

  /* Collaboration visual test — presentation layer only; existing data remains unchanged */
  /* overflow left visible so the full-bleed intro band is not clipped; body has overflow-x:clip. */
  #collaboration.collab-visual-test{overflow:visible;}
  #collaboration .collab-component{
    margin:0; padding:0;
  }
  #collaboration .collab-component + .collab-component{
    margin-top:clamp(22px,3vw,30px); padding-top:0;
    border-top:0;
  }
  #collaboration .collab-section-title{
    display:inline-flex; align-items:center; width:max-content; max-width:100%;
    margin:0 0 16px; padding:9px 16px; border-radius:10px;
    background:#1F5C8C; color:#fff; font-family:"Roboto","Helvetica Neue",Arial,sans-serif;
    font-size:clamp(19px,2vw,23px); line-height:1.25; font-weight:700;
  }
  #collaboration .globe-wrap{
    width:100%; height:clamp(390px,47vw,610px); border:0;
    border-radius:0; background:transparent; background-image:none;
    box-shadow:none;
  }
  #collaboration .globe-tooltip{
    position:absolute; z-index:12; display:none;
    width:max-content; max-width:min(400px,calc(100% - 24px));
    max-height:calc(100% - 24px); overflow-y:auto;
    padding:12px 14px; box-sizing:border-box;
    border:1px solid #9AC6EE; border-radius:12px;
    background:#0B3D69; color:#fff;
    box-shadow:0 8px 22px rgba(11,61,105,.28);
    font:12.5px/1.42 "Roboto","Helvetica Neue",Arial,sans-serif;
    text-align:left; overflow-wrap:anywhere; pointer-events:none;
  }
  #collaboration .globe-tooltip.is-visible{display:block;}
  #collaboration .globe-tooltip-place{font-size:13.5px; font-weight:700; line-height:1.3;}
  #collaboration .globe-tooltip-meta{margin-top:3px; color:#D8E8F7; font-size:11.5px;}
  #collaboration .globe-tooltip-group{margin-top:8px; padding-top:8px; border-top:1px solid rgba(255,255,255,.2);}
  #collaboration .globe-tooltip-names{font-weight:700; color:#fff;}
  #collaboration .globe-tooltip-affiliation,
  #collaboration .globe-tooltip-role{margin-top:2px; color:#D8E8F7; font-size:11.5px; line-height:1.4;}
  #collaboration #globe:focus-visible{
    outline:3px solid rgba(31,92,140,.38); outline-offset:-3px; border-radius:0;
  }
  #collaboration .current-network-grid{
    display:grid;
    grid-template-columns:minmax(210px,250px) minmax(0,1fr);
    gap:18px;
    align-items:stretch;
    min-width:0;
  }
  #collaboration .current-network-countries{
    min-width:0;
    padding:16px;
    border:1px solid rgba(31,92,140,.22);
    border-radius:16px;
    background:rgba(255,255,255,.34);
    box-sizing:border-box;
  }
  #collaboration .current-network-country-title{
    margin:0 0 8px;
    color:var(--ds-blue,#1F5C8C);
    font:700 15px/1.3 "Roboto","Helvetica Neue",Arial,sans-serif;
  }
  #collaboration .current-network-countries #collab-summary.country-grid{
    display:grid;
    grid-template-columns:1fr;
    gap:0;
    width:100%;
    margin:0;
    padding:0;
    border:0;
    border-left:0;
    border-radius:0;
    background:transparent;
    box-shadow:none;
  }
  #collaboration .current-network-countries .country-item{
    min-height:31px;
    padding:4px 0;
    gap:9px;
  }
  #collaboration .current-network-countries .country-name{
    display:flex;
    align-items:baseline;
    justify-content:space-between;
    gap:8px;
    width:100%;
    font-size:13.5px;
  }
  #collaboration .current-network-countries .country-count{
    margin-left:auto;
    font-size:12px;
  }
  @media(max-width:860px){
    #collaboration .current-network-grid{grid-template-columns:1fr;}
    #collaboration .current-network-countries{order:1;}
    #collaboration .current-network-grid .globe-wrap{order:2;}
  }
  #collaboration .current-network-grid .globe-wrap{
    display:grid;
    grid-template-rows:minmax(0,1fr) auto;
    height:clamp(430px,52vw,650px);
    overflow:hidden;
    border:1px solid rgba(31,92,140,.22);
    border-radius:18px;
    background:rgba(255,255,255,.34);
  }
  #collaboration .globe-stage{
    position:relative;
    min-width:0;
    min-height:0;
    overflow:hidden;
    background:transparent;
  }
  #collaboration .globe-stage #globe{width:100%;height:100%;}
  #collaboration .globe-control-bar{
    display:flex;
    align-items:center;
    justify-content:center;
    gap:8px;
    min-height:52px;
    padding:7px 12px;
    border-top:1px solid rgba(31,92,140,.16);
    background:rgba(255,255,255,.82);
    box-sizing:border-box;
  }
  #collaboration .globe-control-btn{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    min-width:40px;
    min-height:36px;
    padding:6px 11px;
    border:1px solid var(--ds-blue,#1F5C8C);
    border-radius:9px;
    background:transparent;
    color:var(--ds-blue,#1F5C8C);
    font:700 17px/1 "Roboto","Helvetica Neue",Arial,sans-serif;
    cursor:pointer;
  }
  #collaboration .globe-control-btn:hover,
  #collaboration .globe-control-btn:focus-visible,
  #collaboration .globe-control-btn[aria-pressed="true"]{
    background:var(--ds-blue,#1F5C8C);
    color:#fff;
    outline:none;
  }
  #collaboration .globe-control-btn-wide{font-size:18px;}
  #collaboration .country-item{
    width:100%;
    border:0;
    border-bottom:1px solid var(--rule);
    background:transparent;
    font:inherit;
    text-align:left;
    cursor:pointer;
    border-radius:7px;
    transition:background .18s ease,color .18s ease,opacity .18s ease;
  }
  #collaboration .current-network-countries .country-item:hover,
  #collaboration .current-network-countries .country-item:focus-visible,
  #collaboration .current-network-countries .country-item.is-active{
    background:rgba(31,92,140,.09);
    color:var(--ds-blue,#1F5C8C);
    outline:none;
  }
  #collaboration .current-network-countries .country-item.is-muted{opacity:.34;}
  #collaboration .collab-network-component.is-globe-maximized{
    position:fixed;
    inset:0;
    z-index:1300;
    overflow:auto;
    padding:16px 18px 18px;
    background:#fff;
    box-sizing:border-box;
  }
  #collaboration .collab-network-component.is-globe-maximized .current-network-grid{
    min-height:calc(100vh - 100px);
    grid-template-columns:minmax(210px,250px) minmax(0,1fr);
  }
  #collaboration .collab-network-component.is-globe-maximized .globe-wrap{height:calc(100vh - 100px);}
  body.globe-map-lock{overflow:hidden;}
  @media(max-width:860px){
    #collaboration .current-network-grid .globe-wrap{height:min(92vw,560px);min-height:360px;}
    #collaboration .collab-network-component.is-globe-maximized .current-network-grid{grid-template-columns:1fr;}
    #collaboration .collab-network-component.is-globe-maximized .globe-wrap{height:70vh;min-height:420px;}
  }
  #collaboration .country-grid{
    display:grid; grid-template-columns:repeat(4,minmax(0,1fr));
    gap:0 clamp(20px,3.2vw,46px); margin-top:0;
  }
  #collaboration .country-item{
    display:flex; min-width:0; min-height:52px; align-items:center; gap:10px;
    padding:11px 0; border-bottom:1px solid var(--rule);
  }
  #collaboration .country-flag{
    display:block; flex:0 0 auto; width:24px; height:18px; object-fit:cover;
  }
  #collaboration .country-name{
    min-width:0; color:var(--ink); font-size:15px; line-height:1.4; font-weight:700;
  }
  #collaboration .country-count{
    flex:0 0 auto; margin-left:auto; color:var(--ink-soft); font-size:12px; line-height:1.4;
    text-align:right;
  }
  #collaboration .inst-section{margin-top:clamp(22px,3vw,30px); padding-top:0; border-top:0;}
  #collaboration .inst-heading-row{
    display:block; margin-bottom:clamp(16px,2vw,22px);
  }
  #collaboration .inst-heading-row .collab-section-title{margin:0;}
  #collaboration .inst-grid{
    display:grid; grid-template-columns:repeat(6,minmax(0,1fr));
    grid-auto-flow:row;
    gap:12px 8px; margin:0;
  }
  #collaboration .inst-card{
    display:flex; min-width:0; min-height:138px; flex-direction:column;
    align-items:center; justify-content:flex-start; gap:7px; padding:5px 2px;
    border:0; border-radius:0; background:transparent; box-shadow:none;
    color:inherit; text-align:center; text-decoration:none; transition:none;
  }
  #collaboration .inst-card:hover{border:0; background:transparent; box-shadow:none;}
  #collaboration .inst-logo{
    display:flex; flex:0 0 102px; width:102px; height:102px; align-items:center;
    justify-content:center; box-sizing:border-box; overflow:hidden; padding:13px;
    border:1px solid rgba(31,92,140,.22); border-radius:50%;
    background:rgba(255,255,255,.34);
  }
  #collaboration .inst-logo img{
    display:block; width:auto; height:auto; max-width:100%; max-height:100%;
    object-fit:contain; filter:grayscale(100%); opacity:.82; transform:scale(1);
    transition:transform .22s ease-in-out, filter .22s ease-in-out, opacity .22s ease-in-out;
  }
  #collaboration .inst-card:nth-child(1) .inst-logo,
  #collaboration .inst-card:nth-child(2) .inst-logo{padding:8px;}
  #collaboration .inst-card:hover .inst-logo img,
  #collaboration .inst-card:focus-visible .inst-logo img{
    filter:grayscale(0%); opacity:1; transform:scale(1.1);
  }
  #collaboration .inst-card:focus-visible{
    outline:3px solid rgba(31,92,140,.38); outline-offset:5px; border-radius:7px;
  }
  #collaboration .inst-name{
    width:100%; max-width:160px; color:#33475B; font-size:10.8px; line-height:1.22; font-weight:600;
    overflow-wrap:anywhere; hyphens:auto; transition:color .2s ease-in-out;
  }
  #collaboration .inst-card:hover .inst-name,
  #collaboration .inst-card:focus-visible .inst-name{color:#1F5C8C;}
  #collaboration .inst-ph{
    display:inline-flex; align-items:center; justify-content:center; min-height:54px;
    padding:9px 13px; border:1px dashed var(--rule); border-radius:7px;
    color:var(--ink-soft); font-size:12px;
  }
  #collaboration .collab-page-header{
    max-width:1120px; margin:0 0 clamp(34px,4.5vw,52px);
  }
  #collaboration .collab-page-header h1{
    max-width:900px; margin:0 0 14px; color:var(--ink);
    font-family:"Roboto","Helvetica Neue",Arial,sans-serif; font-size:clamp(29px,3.55vw,43px);
    line-height:1.1; letter-spacing:-.018em; font-weight:700;
  }
  #collaboration .collab-page-header p{
    max-width:1080px; margin:0; color:var(--ink-soft);
    font-size:clamp(16px,1.35vw,17.5px); line-height:1.66;
  }
  #collaboration .collab-domain-heading p{
    max-width:980px; margin:0; color:var(--ink-soft); font-size:15.5px; line-height:1.68;
  }
  #collaboration .collab-domain{
    margin:0; padding:0;
  }
  #collaboration .collab-domain + .collab-domain{
    margin-top:clamp(48px,6vw,70px); padding-top:clamp(34px,4.5vw,50px);
    border-top:1px solid rgba(20,26,20,.2);
  }
  #collaboration .collab-domain-heading{
    max-width:1040px; margin:0 0 clamp(22px,3vw,32px); padding-left:18px;
    border-left:4px solid #1F5C8C;
  }
  #collaboration .collab-domain-heading h2{
    margin:0 0 10px; color:#1F5C8C; font-family:"Roboto","Helvetica Neue",Arial,sans-serif;
    font-size:clamp(24px,2.7vw,32px); line-height:1.2; font-weight:700;
  }
  #collaboration .collab-services-domain .collab-domain-heading{
    border-left-color:#1F6E66;
  }
  #collaboration .collab-services-domain .collab-domain-heading h2{
    color:#1F6E66;
  }
  #collaboration .collab-services-domain .collab-section-title{
    background:#1F6E66;
  }
  #collaboration .collab-scope-list{
    display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:0 clamp(26px,4vw,52px);
    max-width:1100px; margin:0 0 22px; padding:0; list-style:none;
  }
  #collaboration .collab-scope-list li{
    position:relative; min-height:50px; padding:12px 8px 12px 18px;
    border-top:1px solid var(--rule); color:#405367; font-size:14px; line-height:1.5;
  }
  #collaboration .collab-scope-list li::before{
    content:""; position:absolute; left:0; top:20px; width:6px; height:6px;
    border-radius:50%; background:#1F5C8C;
  }
  #collaboration .collab-action{
    display:inline-flex; align-items:center; justify-content:center; min-height:44px;
    padding:10px 15px; border-radius:8px; background:#1F5C8C; color:#fff;
    font-family:"Roboto","Helvetica Neue",Arial,sans-serif; font-size:13px; line-height:1.35;
    font-weight:700; text-decoration:none; transition:background .18s ease;
  }
  #collaboration .collab-action::after{content:"\2192"; margin-left:8px; font-size:16px;}
  #collaboration .collab-action:hover{background:#174C76; color:#fff;}
  #collaboration .collab-action:focus-visible{
    outline:3px solid rgba(31,92,140,.38); outline-offset:4px;
  }
  #collaboration .collab-services-domain .collab-action{
    background:#1F6E66;
  }
  #collaboration .collab-services-domain .collab-action:hover{
    background:#1B625A;
  }
  #collaboration .collab-services-domain .collab-action:focus-visible{
    outline-color:rgba(31,110,102,.4);
  }
  #collaboration .collab-action + .collab-component{
    margin-top:clamp(36px,5vw,56px); padding-top:clamp(25px,3.5vw,38px);
    border-top:1px solid var(--rule);
  }
  #collaboration #collaboration-scientific,
  #collaboration #collaboration-network,
  #collaboration #collaboration-countries,
  #collaboration #collaboration-institutions,
  #collaboration #institutional-services,
  #collaboration #technical-capabilities,
  #collaboration #institutional-framework,
  #collaboration #institutional-services-contact{scroll-margin-top:82px;}
  #collaboration .technical-capabilities{margin:0;}
  #collaboration .service-area-grid{
    display:grid; grid-template-columns:repeat(2,minmax(0,1fr));
    gap:0 clamp(28px,4vw,54px); margin-top:4px;
  }
  #collaboration .service-area{
    min-width:0; padding:clamp(20px,2.6vw,28px) 0;
    border-top:1px solid var(--rule); background:transparent;
  }
  #collaboration .service-area h4{
    margin:0 0 9px; color:#1F6E66; font-size:clamp(17px,1.8vw,20px);
    line-height:1.3; font-weight:700;
  }
  #collaboration .service-area p{
    margin:0 0 12px; color:var(--ink-soft); font-size:14px; line-height:1.62;
  }
  #collaboration .service-area ul{
    display:grid; gap:6px; margin:0; padding:0; list-style:none;
  }
  #collaboration .service-area li{
    position:relative; padding-left:15px; color:#405367; font-size:13px; line-height:1.5;
  }
  #collaboration .service-area li::before{
    content:""; position:absolute; left:0; top:.64em; width:5px; height:5px;
    border-radius:50%; background:#1F6E66;
  }
  #collaboration .services-partners{
    margin-top:clamp(28px,4vw,42px); padding-top:clamp(22px,3vw,30px);
    border-top:1px solid var(--rule);
  }
  #collaboration .services-partners h3,
  #collaboration .institutional-framework h3{
    margin:0 0 8px; color:#1F6E66; font-size:clamp(18px,2vw,22px);
    line-height:1.3; font-weight:700;
  }
  #collaboration .services-partners > p{
    max-width:900px; margin:0 0 15px; color:var(--ink-soft); font-size:14px; line-height:1.6;
  }
  #collaboration .services-partner-list{
    display:flex; flex-wrap:wrap; gap:8px 10px; margin:0; padding:0; list-style:none;
  }
  #collaboration .services-partner-list li{
    padding:7px 10px; border:1px solid rgba(31,110,102,.24); border-radius:7px;
    color:#405367; background:rgba(31,110,102,.055); font-size:12.5px; line-height:1.35;
  }
  #collaboration .institutional-framework{
    margin-top:clamp(28px,4vw,42px); padding:clamp(18px,2.5vw,24px);
    border-left:4px solid #1F6E66; background:rgba(31,110,102,.065);
  }
  #collaboration .institutional-framework p{
    max-width:1080px; margin:0; color:#405367; font-size:14px; line-height:1.65;
  }
  #collaboration .services-contact{
    display:flex; align-items:center; justify-content:space-between; gap:22px;
    margin-top:clamp(22px,3vw,30px);
  }
  #collaboration .services-contact p{
    max-width:760px; margin:0; color:var(--ink-soft); font-size:14px; line-height:1.6;
  }
  @media(max-width:900px){
    #collaboration .country-grid{grid-template-columns:repeat(2,minmax(0,1fr));}
    #collaboration .inst-grid{grid-template-columns:repeat(3,minmax(0,1fr)); gap:14px 10px;}
    #collaboration .inst-card{min-height:148px;}
    #collaboration .inst-logo{flex-basis:112px; width:112px; height:112px; padding:15px;}
    #collaboration .inst-name{max-width:190px; font-size:11.5px;}
    #collaboration .service-area-grid{gap:0 28px;}
  }
  @media(max-width:720px){
    #collaboration .collab-page-header{margin-bottom:32px;}
    #collaboration .collab-domain-heading{padding-left:14px;}
    #collaboration .collab-scope-list,
    #collaboration .service-area-grid{grid-template-columns:1fr;}
    #collaboration .services-contact{display:block;}
    #collaboration .services-contact .collab-action{margin-top:15px;}
  }
  @media(max-width:600px){
    #collaboration .globe-wrap{height:min(96vw,430px); min-height:300px;}
    #collaboration .country-grid{grid-template-columns:1fr; gap:0;}
    #collaboration .inst-grid{grid-template-columns:repeat(2,minmax(0,1fr)); gap:18px 16px;}
    #collaboration .inst-card{min-height:156px; padding-inline:0;}
    #collaboration .inst-logo{flex-basis:116px; width:116px; height:116px; padding:16px;}
    #collaboration .inst-name{font-size:12px;}
  }
  @media(max-width:380px){
    #collaboration .inst-grid{grid-template-columns:1fr;}
  }
  /* Infrastructure — Experimental / Laboratory Scale */
  #infrastructure .experimental-panel{margin:0 0 clamp(28px,4vw,42px);}
  #infrastructure #experimental,
  #infrastructure #laboratory-scale,
  #infrastructure #pilot-platform,
  #infrastructure #modeling-simulation,
  #infrastructure #workstation,
  #infrastructure #software{scroll-margin-top:80px;}
  #infrastructure .experimental-panel > .infra-major-title{margin-top:10px;}
  #infrastructure .infra-section-intro{
    max-width:1040px; margin:0 0 clamp(20px,2.5vw,28px); color:var(--ink-soft);
    font-size:15.5px; line-height:1.68;
  }
  #infrastructure .infra-subsection-title{
    display:inline-flex; align-items:center; min-height:40px; margin:0 0 16px;
    padding:8px 14px; border:1px solid rgba(31,92,140,.28); border-radius:9px;
    color:#1F5C8C; background:#EEF4F9; font-size:clamp(17px,1.8vw,20px);
    line-height:1.25; font-weight:700;
  }
  #infrastructure .analytical-pair-section{
    margin:4px 0 clamp(28px,4vw,42px); padding:clamp(22px,3vw,30px) 0;
    border-top:1px solid var(--rule); border-bottom:1px solid var(--rule);
  }
  #infrastructure .analytical-pair-heading{
    max-width:1040px; margin:0 0 clamp(18px,2.5vw,24px);
  }
  #infrastructure .analytical-pair-heading h5{
    margin:0 0 8px; color:#1F5C8C; font-size:clamp(19px,2vw,23px);
    line-height:1.25; font-weight:700;
  }
  #infrastructure .analytical-pair-heading p{
    max-width:920px; margin:0; color:var(--ink-soft); font-size:14.5px; line-height:1.62;
  }
  #infrastructure .analytical-pair-grid{
    display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); align-items:stretch;
    gap:clamp(24px,4vw,52px);
  }
  #infrastructure .analytical-pair-entry{
    display:flex; min-width:0; flex-direction:column;
  }
  #infrastructure .analytical-pair-photo{
    width:100%; aspect-ratio:4/3; margin:0; overflow:hidden; border-radius:14px;
    border:1px solid rgba(31,92,140,.18); background:#D9DEE2;
  }
  #infrastructure .analytical-pair-photo img{
    display:block; width:100%; height:100%; object-fit:cover; object-position:center;
  }
  #infrastructure .analytical-pair-body{
    display:flex; min-width:0; flex:1 1 auto; flex-direction:column; padding-top:17px;
  }
  #infrastructure .analytical-pair-title-row{
    display:flex; min-width:0; align-items:flex-start; justify-content:space-between;
    gap:12px; margin:0 0 10px;
  }
  #infrastructure .analytical-pair-title-row h5{
    margin:0; color:#1F5C8C; font-size:clamp(18px,1.8vw,21px);
    line-height:1.25; font-weight:700;
  }
  #infrastructure .analytical-pair-model{
    flex:0 1 46%; padding:5px 8px; border-radius:7px; background:#EEF4F9;
    color:#34495E; font-size:11px; line-height:1.3; font-weight:600; text-align:right;
  }
  #infrastructure .analytical-pair-summary{
    margin:0 0 16px; color:var(--ink-soft); font-size:14px; line-height:1.62;
  }
  #infrastructure .analytical-pair-details{
    display:grid; gap:14px; margin-top:auto;
  }
  #infrastructure .analytical-pair-detail{
    min-width:0; padding-top:12px; border-top:1px solid var(--rule);
  }
  #infrastructure .analytical-pair-detail-label{
    margin:0 0 7px; color:#1F5C8C; font-size:12px; line-height:1.35;
    font-weight:700; letter-spacing:.02em; text-transform:uppercase;
  }
  #infrastructure .analytical-pair-list{
    display:grid; gap:6px; margin:0; padding:0; list-style:none;
  }
  #infrastructure .analytical-pair-list li{
    position:relative; padding-left:15px; color:#405367; font-size:13px; line-height:1.48;
  }
  #infrastructure .analytical-pair-list li::before{
    content:""; position:absolute; left:0; top:.64em; width:5px; height:5px;
    border-radius:50%; background:#1F5C8C;
  }
  #infrastructure .equipment-grid{
    display:flex; flex-direction:column; gap:0; margin:0;
  }
  #infrastructure .equipment-card{
    min-width:0; display:grid; grid-template-columns:minmax(0,.94fr) minmax(0,1.06fr);
    align-items:center; gap:clamp(24px,4vw,54px); padding:clamp(22px,3vw,34px) 0;
    border:0; border-bottom:1px solid var(--rule); border-radius:0; background:transparent;
  }
  #infrastructure .equipment-card:first-child{padding-top:6px;}
  #infrastructure .equipment-card:nth-child(even) .equipment-photo{order:2;}
  #infrastructure .equipment-card:nth-child(even) .equipment-body{order:1;}
  #infrastructure .equipment-photo{
    width:100%; aspect-ratio:4/3; margin:0; overflow:hidden; border-radius:14px;
    border:1px solid rgba(31,92,140,.18); background:#D9DEE2;
  }
  #infrastructure .equipment-photo img{
    display:block; width:100%; height:100%; object-fit:cover; object-position:center;
  }
  #infrastructure .equipment-body{min-width:0; padding:0;}
  #infrastructure .equipment-heading{
    display:flex; align-items:flex-start; justify-content:space-between; gap:12px;
    margin:0 0 10px;
  }
  #infrastructure .equipment-heading h5{
    margin:0; color:#1F5C8C; font-size:clamp(19px,2vw,23px); line-height:1.2;
    font-weight:700;
  }
  #infrastructure .equipment-model{
    flex:0 1 auto; max-width:58%; padding:5px 8px; border-radius:7px;
    background:#EEF4F9; color:#34495E; font-size:11.5px; line-height:1.3;
    font-weight:600; text-align:right;
  }
  #infrastructure .equipment-summary{
    margin:0 0 16px; color:var(--ink-soft); font-size:14.5px; line-height:1.62;
  }
  #infrastructure .equipment-science{
    display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:16px;
  }
  #infrastructure .equipment-detail{min-width:0;}
  #infrastructure .equipment-detail h6{
    margin:0 0 7px; color:#1F5C8C; font-size:12.5px; line-height:1.35;
    font-weight:700; letter-spacing:.02em; text-transform:uppercase;
  }
  #infrastructure .equipment-capabilities{
    list-style:none; display:grid; gap:7px; margin:0; padding:0;
  }
  #infrastructure .equipment-capabilities li{
    position:relative; padding-left:14px; color:#26394C; font-size:12.8px; line-height:1.45;
  }
  #infrastructure .equipment-capabilities li::before{
    content:""; position:absolute; left:0; top:.58em; width:6px; height:6px;
    border-radius:50%; background:#1F5C8C;
  }
  #infrastructure .infra-workflow{
    max-width:1120px; margin:clamp(18px,2.5vw,24px) 0 0; padding:15px 17px;
    border-left:4px solid #1F5C8C; border-radius:0 10px 10px 0; background:#EEF4F9;
  }
  #infrastructure .infra-workflow h5{
    margin:0 0 11px; color:#1F5C8C; font-size:17px; line-height:1.3; font-weight:700;
  }
  #infrastructure .infra-workflow ol{
    counter-reset:infra-flow; list-style:none; display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px 28px; margin:0; padding:0;
  }
  #infrastructure .infra-workflow li{
    counter-increment:infra-flow; min-width:0; color:#26394C; font-size:12.4px; line-height:1.42;
  }
  #infrastructure .infra-workflow li::before{
    content:counter(infra-flow); display:inline-flex; align-items:center; justify-content:center;
    width:23px; height:23px; margin:0 7px 4px 0; border-radius:50%;
    background:#1F5C8C; color:#fff; font-size:11px; font-weight:700;
  }
  #infrastructure .infra-workflow li:last-child{grid-column:1 / -1;}
  #infrastructure .pilot-scale-block{margin-top:clamp(22px,3vw,30px);}
  #infrastructure .pilot-scale-block > .infra-subsection-title{
    border-color:#1F5C8C; background:#1F5C8C; color:#fff;
  }
  #infrastructure .pilot-platform-intro{
    max-width:1080px; margin:0 0 clamp(17px,2.5vw,24px);
  }
  #infrastructure .pilot-platform-intro h5{
    margin:0 0 7px; color:#1F5C8C; font-size:clamp(18px,2vw,22px);
    line-height:1.3; font-weight:700;
  }
  #infrastructure .pilot-platform-intro p{
    margin:0; color:var(--ink-soft); font-size:14.5px; line-height:1.68;
  }
  #infrastructure .pilot-reactor-card{
    max-width:1180px; overflow:visible; padding-top:clamp(18px,2.5vw,26px);
    border:0; border-top:1px solid var(--rule); border-radius:0; background:transparent;
    display:grid; align-items:start;
    grid-template-columns:minmax(0,.92fr) minmax(0,1.08fr);
    grid-template-rows:auto 1fr;
    grid-template-areas:"media title" "media desc";
    column-gap:clamp(22px,3vw,46px); row-gap:clamp(10px,1.4vw,16px);
  }
  #infrastructure .pilot-reactor-figure{
    grid-area:media; width:100%; margin:0; padding:0; background:transparent; align-self:start;
  }
  #infrastructure .pilot-reactor-photo-wrap{min-width:0;}
  #infrastructure .pilot-reactor-photo{
    display:block; width:100%; height:auto; margin:0; object-fit:contain;
  }
  #infrastructure .pilot-reactor-heading{
    grid-area:title; margin:0;
  }
  #infrastructure .pilot-reactor-heading h5{
    margin:0; color:#1F5C8C; font-size:clamp(19px,2.1vw,24px);
    line-height:1.25; font-weight:700;
  }
  #infrastructure .pilot-reactor-description{
    grid-area:desc; max-width:none; margin:0; color:var(--ink-soft); font-size:14.5px; line-height:1.68;
  }
  #infrastructure .pilot-system-list{
    display:grid; gap:clamp(26px,4vw,46px); margin-top:clamp(28px,4vw,44px);
  }
  #infrastructure .pilot-system-entry{
    display:grid; grid-template-columns:minmax(280px,.78fr) minmax(0,1.42fr);
    gap:clamp(24px,4vw,52px); align-items:start; padding:clamp(22px,3vw,34px) 0;
    border-top:1px solid rgba(31,92,140,.22);
  }
  #infrastructure .pilot-system-entry:nth-child(even){
    grid-template-columns:minmax(0,1.42fr) minmax(280px,.78fr);
  }
  #infrastructure .pilot-system-entry:nth-child(even) .pilot-system-media{order:2;}
  #infrastructure .pilot-system-entry:nth-child(even) .pilot-system-body{order:1;}
  #infrastructure .pilot-system-media{
    margin:0; min-width:0; display:flex; justify-content:center;
  }
  #infrastructure .pilot-system-media img{
    display:block; width:min(100%,430px); height:auto; aspect-ratio:3/4;
    object-fit:contain; object-position:center; border-radius:12px;
  }
  #infrastructure .pilot-system-body{min-width:0;}
  #infrastructure .pilot-system-heading{
    display:flex; align-items:flex-start; justify-content:space-between; gap:14px;
    margin:0 0 12px;
  }
  #infrastructure .pilot-system-heading h5{
    margin:0; color:#1F5C8C; font-size:clamp(22px,2.5vw,30px);
    line-height:1.18; font-weight:700;
  }
  #infrastructure .pilot-system-type{
    flex:0 1 46%; padding:6px 9px; border-radius:7px; background:#EEF4F9;
    color:#34495E; font-size:11.8px; line-height:1.35; font-weight:600;
    text-align:right;
  }
  #infrastructure .pilot-system-description{
    margin:0; color:var(--ink-soft); font-size:14.5px; line-height:1.68;
  }
  #infrastructure .pilot-system-details{
    display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:clamp(16px,2.5vw,28px);
    margin-top:18px;
  }
  #infrastructure .pilot-system-detail h6{
    margin:0 0 8px; color:#1F5C8C; font-size:13.5px; line-height:1.35; font-weight:700;
  }
  #infrastructure .pilot-system-points{
    margin:0; padding:0; list-style:none; display:grid; gap:7px;
  }
  #infrastructure .pilot-system-points li{
    position:relative; padding-left:14px; color:var(--ink-soft); font-size:13.5px; line-height:1.5;
  }
  #infrastructure .pilot-system-points li::before{
    content:""; position:absolute; left:0; top:.62em; width:5px; height:5px;
    border-radius:50%; background:#1F5C8C;
  }
  @media(max-width:900px){
    #infrastructure .equipment-card{gap:clamp(20px,3vw,30px);}
    #infrastructure .equipment-science{grid-template-columns:1fr; gap:13px;}
    #infrastructure .infra-workflow ol{grid-template-columns:repeat(2,minmax(0,1fr));}
    #infrastructure .pilot-system-entry,
    #infrastructure .pilot-system-entry:nth-child(even){gap:22px;}
    #infrastructure .pilot-system-details{grid-template-columns:1fr; gap:14px;}
    #infrastructure .pilot-reactor-card{
      grid-template-columns:1fr; grid-template-rows:auto auto auto;
      grid-template-areas:"title" "media" "desc"; row-gap:clamp(14px,2.5vw,20px);
    }
  }
  @media(max-width:720px){
    #infrastructure .analytical-pair-grid{grid-template-columns:1fr; gap:30px;}
    #infrastructure .analytical-pair-title-row{display:block;}
    #infrastructure .analytical-pair-model{
      display:inline-block; max-width:100%; margin-top:7px; text-align:left;
    }
    #infrastructure .equipment-card{grid-template-columns:1fr; gap:16px; padding:22px 0;}
    #infrastructure .equipment-card:nth-child(even) .equipment-photo,
    #infrastructure .equipment-card:nth-child(even) .equipment-body{order:initial;}
    #infrastructure .equipment-heading{display:block;}
    #infrastructure .equipment-model{display:inline-block; max-width:100%; margin-top:7px; text-align:left;}
    #infrastructure .infra-workflow ol{grid-template-columns:1fr;}
    #infrastructure .pilot-reactor-figure{padding:0;}
    #infrastructure .pilot-reactor-photo{width:min(100%,710px); margin-inline:auto;}
    #infrastructure .pilot-system-entry,
    #infrastructure .pilot-system-entry:nth-child(even){grid-template-columns:1fr; gap:18px;}
    #infrastructure .pilot-system-entry:nth-child(even) .pilot-system-media,
    #infrastructure .pilot-system-entry:nth-child(even) .pilot-system-body{order:initial;}
    #infrastructure .pilot-system-media img{width:min(100%,430px);}
    #infrastructure .pilot-system-heading{display:block;}
    #infrastructure .pilot-system-type{display:inline-block; max-width:100%; margin-top:8px; text-align:left;}
  }
  /* Infrastructure — accessible Equipment Explorer */
  #infrastructure .infra-overview-intro{
    max-width:1080px; margin:0 0 clamp(24px,3vw,34px); color:var(--ink-soft);
    font-size:15.5px; line-height:1.68;
  }
  #infrastructure .equipment-explorer-entry{
    margin:clamp(26px,4vw,42px) 0; padding:clamp(20px,3vw,28px);
    border:1px solid rgba(31,92,140,.22); border-left:4px solid #1F5C8C;
    border-radius:12px; background:rgba(238,244,249,.72);
  }
  #infrastructure .equipment-explorer-entry h5{
    margin:0 0 8px; color:#1F5C8C; font-size:clamp(19px,2vw,23px); line-height:1.25;
  }
  #infrastructure .equipment-explorer-entry p{
    max-width:940px; margin:0 0 16px; color:var(--ink-soft); font-size:14.5px; line-height:1.62;
  }
  .equipment-explorer-open,
  .equipment-explorer-primary{
    display:inline-flex; align-items:center; justify-content:center; min-height:44px;
    padding:10px 15px; border:1px solid #1F5C8C; border-radius:9px;
    background:#1F5C8C; color:#fff; font-size:14px; line-height:1.25; font-weight:700;
    cursor:pointer;
  }
  .equipment-explorer-open:hover,.equipment-explorer-primary:hover{background:#174A71;}
  .equipment-explorer-open:focus-visible,.equipment-explorer-primary:focus-visible,
  .equipment-explorer-dialog button:focus-visible,.equipment-explorer-dialog input:focus-visible{
    outline:3px solid rgba(31,92,140,.34); outline-offset:3px;
  }
  body.equipment-explorer-active{overflow:hidden;}
  .equipment-explorer-shell[hidden]{display:none;}
  .equipment-explorer-shell{
    position:fixed; inset:0; z-index:1400; display:flex; align-items:center; justify-content:center;
    padding:clamp(10px,2.5vw,28px); background:rgba(11,28,42,.72);
  }
  .equipment-explorer-dialog{
    display:flex; flex-direction:column; width:min(1180px,100%); max-height:min(92vh,920px);
    overflow:hidden; border:1px solid rgba(31,92,140,.22); border-radius:16px;
    background:#F7F9FA; color:#203243; box-shadow:0 22px 70px rgba(6,20,31,.28);
  }
  .equipment-explorer-toolbar{
    flex:0 0 auto; display:flex; align-items:center; justify-content:space-between; gap:16px;
    min-height:58px; padding:11px clamp(14px,2.4vw,24px); border-bottom:1px solid var(--rule);
    background:#fff;
  }
  .equipment-explorer-breadcrumb{
    display:flex; min-width:0; align-items:center; gap:6px; margin:0; padding:0; list-style:none;
    color:#405367; font-size:13px; line-height:1.35;
  }
  .equipment-explorer-breadcrumb li{display:flex; min-width:0; align-items:center; gap:6px;}
  .equipment-explorer-breadcrumb li+li::before{content:"›"; color:#7E8B96;}
  .equipment-explorer-breadcrumb button{
    max-width:260px; overflow:hidden; padding:4px 2px; border:0; background:transparent;
    color:#1F5C8C; font:inherit; text-overflow:ellipsis; white-space:nowrap; cursor:pointer;
  }
  .equipment-explorer-breadcrumb [aria-current="page"]{
    max-width:320px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; color:#405367;
  }
  .equipment-explorer-close{
    flex:0 0 auto; width:40px; height:40px; border:1px solid rgba(31,92,140,.22);
    border-radius:50%; background:#EEF4F9; color:#1F5C8C; font-size:24px; line-height:1;
    cursor:pointer;
  }
  .equipment-explorer-toolbar-actions{display:flex; flex:0 0 auto; align-items:center; gap:8px;}
  .equipment-explorer-toolbar-back{
    min-height:40px; padding:8px 10px; border:1px solid rgba(31,92,140,.22);
    border-radius:8px; background:#EEF4F9; color:#1F5C8C; font-size:12px;
    line-height:1.25; font-weight:700; cursor:pointer;
  }
  .equipment-explorer-scroll{min-height:0; overflow:auto; overscroll-behavior:contain;}
  .equipment-explorer-content{padding:clamp(20px,3.2vw,38px);}
  .equipment-explorer-heading{
    margin:0 0 8px; color:#1F5C8C; font-size:clamp(24px,3vw,34px); line-height:1.18;
  }
  .equipment-explorer-lead{
    max-width:880px; margin:0 0 20px; color:var(--ink-soft); font-size:14.5px; line-height:1.62;
  }
  .equipment-explorer-search{margin:0 0 22px;}
  .equipment-explorer-search label{display:block; margin:0 0 6px; color:#334B60; font-size:13px; font-weight:700;}
  .equipment-explorer-search input{
    width:min(100%,620px); min-height:44px; padding:10px 12px; border:1px solid rgba(31,92,140,.3);
    border-radius:9px; background:#fff; color:#203243; font-size:14px;
  }
  .equipment-category-grid{display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:12px;}
  .equipment-category-button{
    display:grid; grid-template-columns:42px minmax(0,1fr); gap:12px; min-height:144px;
    padding:17px; border:1px solid rgba(31,92,140,.22); border-radius:12px;
    background:#fff; color:#203243; text-align:left; cursor:pointer;
  }
  .equipment-category-button:hover{border-color:#1F5C8C; background:#F0F5F9;}
  .equipment-category-number{
    display:inline-flex; align-items:center; justify-content:center; width:38px; height:38px;
    border-radius:50%; background:#1F5C8C; color:#fff; font-size:13px; font-weight:700;
  }
  .equipment-category-copy strong{display:block; margin-bottom:6px; color:#1F5C8C; font-size:15px; line-height:1.35;}
  .equipment-category-copy span{display:block; color:#526577; font-size:12.5px; line-height:1.48;}
  .equipment-category-count{margin-top:9px; color:#1F5C8C!important; font-weight:700;}
  .equipment-list{display:grid; gap:8px; margin:0; padding:0; list-style:none;}
  .equipment-list-button{
    display:grid; grid-template-columns:minmax(0,1fr) auto; gap:18px; width:100%; min-height:72px;
    padding:13px 15px; border:1px solid rgba(31,92,140,.18); border-radius:10px;
    background:#fff; color:#203243; text-align:left; cursor:pointer;
  }
  .equipment-list-button:hover{border-color:#1F5C8C; background:#F1F6FA;}
  .equipment-list-name{display:block; margin-bottom:4px; color:#1F5C8C; font-size:15px; line-height:1.35; font-weight:700;}
  .equipment-list-meta{display:block; margin-bottom:3px; color:#506275; font-size:12px; font-weight:700;}
  .equipment-list-purpose{display:block; color:#5C6D7C; font-size:12.5px; line-height:1.45;}
  .equipment-list-arrow{align-self:center; color:#1F5C8C; font-size:22px;}
  .equipment-explorer-back{
    display:inline-flex; align-items:center; min-height:42px; margin:0 0 18px; padding:8px 11px;
    border:1px solid rgba(31,92,140,.28); border-radius:8px; background:#EEF4F9;
    color:#1F5C8C; font-size:13px; font-weight:700; cursor:pointer;
  }
  .equipment-profile-header{display:grid; grid-template-columns:minmax(0,1fr) auto; gap:18px; align-items:start;}
  .equipment-profile-badges{display:flex; flex-wrap:wrap; justify-content:flex-end; gap:7px;}
  .equipment-profile-badge{
    display:inline-flex; align-items:center; min-height:30px; padding:5px 9px; border-radius:999px;
    background:#E8F0F6; color:#1F5C8C; font-size:11px; line-height:1.25; font-weight:700;
  }
  .equipment-profile-badge.capability{background:#E8F4EE; color:#1F6E66;}
  .equipment-profile-model{margin:8px 0 0; color:#405367; font-size:13px; line-height:1.45; font-weight:700;}
  .equipment-profile-layout{
    display:grid; grid-template-columns:minmax(220px,.72fr) minmax(0,1.28fr); gap:clamp(22px,4vw,46px);
    margin-top:22px; align-items:start;
  }
  .equipment-profile-media{
    display:flex; min-height:240px; align-items:center; justify-content:center; overflow:hidden;
    border:1px solid rgba(31,92,140,.18); border-radius:12px; background:#E9EEF2;
  }
  .equipment-profile-media img{display:block; width:100%; max-height:430px; object-fit:contain; background:transparent;}
  .equipment-profile-placeholder{padding:28px; color:#6D7D8B; text-align:center;}
  .equipment-profile-placeholder svg{display:block; width:88px; height:88px; margin:0 auto 14px; color:#9AABB8;}
  .equipment-profile-placeholder span{font-size:12.5px; line-height:1.4;}
  .equipment-profile-sections{display:grid; gap:16px;}
  .equipment-profile-section{padding-top:13px; border-top:1px solid var(--rule);}
  .equipment-profile-section:first-child{padding-top:0; border-top:0;}
  .equipment-profile-section h4{margin:0 0 6px; color:#1F5C8C; font-size:13px; line-height:1.35; text-transform:uppercase; letter-spacing:.025em;}
  .equipment-profile-section p{margin:0; color:#405367; font-size:13.5px; line-height:1.62;}
  .equipment-featured-link{margin-top:18px;}
  .equipment-no-results{padding:24px 0; color:#526577; font-size:14px;}
  .equipment-explorer-live{position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap;}
  @media(max-width:900px){
    .equipment-category-grid{grid-template-columns:repeat(2,minmax(0,1fr));}
    .equipment-profile-layout{grid-template-columns:1fr;}
    .equipment-profile-media{min-height:220px;}
  }
  @media(max-width:600px){
    .equipment-explorer-shell{padding:0; align-items:stretch;}
    .equipment-explorer-dialog{width:100%; max-height:100dvh; border:0; border-radius:0;}
    .equipment-explorer-toolbar{position:sticky; top:0; z-index:2;}
    .equipment-category-grid{grid-template-columns:1fr;}
    .equipment-category-button{min-height:0;}
    .equipment-profile-header{grid-template-columns:1fr;}
    .equipment-profile-badges{justify-content:flex-start;}
    .equipment-explorer-breadcrumb [aria-current="page"]{max-width:42vw;}
    .equipment-explorer-content{padding:20px 16px 28px;}
  }
  @media(prefers-reduced-motion:reduce){
    .equipment-explorer-dialog *, .equipment-explorer-open{scroll-behavior:auto!important; transition:none!important;}
  }
  /* Infrastructure — Modeling & Simulation / Workstation */
  #infrastructure .infra-major-title{
    display:inline-flex; align-items:center; min-height:44px; margin:30px 0 8px;
    padding:10px 17px; border-radius:10px; background:#1F5C8C; color:#fff;
    font-size:clamp(18px,2vw,22px); line-height:1.2; font-weight:700;
  }
  #infrastructure .workstation-panel{margin:0 0 clamp(30px,4vw,44px);}
  #infrastructure .workstation-subtitle{
    margin:0 0 14px; color:#1F5C8C; font-size:clamp(20px,2.2vw,25px);
    line-height:1.25; font-weight:700;
  }
  #infrastructure .workstation-layout{
    display:block; width:100%; max-width:1120px; margin-inline:auto;
  }
  #infrastructure .workstation-figure{
    width:min(100%,960px); margin:clamp(22px,3vw,32px) auto;
    overflow:visible; border:0; border-radius:0; background:transparent;
  }
  #infrastructure .workstation-figure img{
    display:block; width:100%; height:auto; aspect-ratio:1500/752;
    object-fit:contain; object-position:center; background:transparent;
  }
  #infrastructure .workstation-content{min-width:0; width:100%;}
  #infrastructure .workstation-name{
    max-width:960px; margin:0 auto 12px; color:#1F5C8C; font-size:clamp(21px,2.25vw,28px);
    line-height:1.22; font-weight:700;
  }
  #infrastructure .workstation-specs{
    list-style:none; display:grid; grid-template-columns:repeat(2,minmax(0,1fr));
    gap:8px 10px; max-width:960px; margin:0 auto 20px; padding:0;
  }
  #infrastructure .workstation-specs li{
    display:flex; align-items:center; min-height:42px; padding:8px 11px;
    border-left:3px solid #1F5C8C; border-radius:0 8px 8px 0;
    background:#EEF4F9; color:#26394C; font-size:13.5px; line-height:1.4;
  }
  #infrastructure .workstation-intro,
  #infrastructure .workstation-description{
    max-width:960px; margin-inline:auto;
  }
  #infrastructure .workstation-intro,
  #infrastructure .workstation-description p{
    color:var(--ink-soft); font-size:15px; line-height:1.68;
  }
  #infrastructure .workstation-intro{margin-top:0; margin-bottom:0;}
  #infrastructure .workstation-description p{margin:0 0 13px;}
  #infrastructure .workstation-description p:last-child{margin-bottom:0;}
  #infrastructure .workstation-apps{
    max-width:960px; margin:22px auto 0; padding-top:18px; border-top:1px solid var(--rule);
  }
  #infrastructure .workstation-apps h5{
    margin:0 0 12px; color:#1F5C8C; font-size:17px; line-height:1.3; font-weight:700;
  }
  #infrastructure .workstation-tags{
    list-style:none; display:flex; flex-wrap:wrap; gap:8px; margin:0; padding:0;
  }
  #infrastructure .workstation-tags li{
    display:inline-flex; align-items:center; min-height:36px; max-width:100%;
    padding:7px 11px; border-radius:999px; background:#1F5C8C; color:#fff;
    font-size:12.5px; line-height:1.3; font-weight:600; white-space:normal;
  }
  @media(max-width:980px){#infrastructure .workstation-figure{width:min(100%,820px);}}
  @media(max-width:600px){
    #infrastructure .infra-major-title{margin-top:24px;}
    #infrastructure .workstation-specs{grid-template-columns:1fr;}
    #infrastructure .workstation-tags{gap:7px;}
    #infrastructure .workstation-tags li{min-height:38px;}
  }

  /* Biography and Press & Media directly below the Home hero */
  .home-introduction-sections{margin:24px 0 34px;}
  .home-content-section{display:block; margin:0; padding:0;}
  .home-content-section > .title-box{display:inline-block; margin:0 0 20px;}
  .home-content-section + .home-content-section{margin-top:clamp(22px,3vw,30px); padding-top:0; border-top:0;}
  @media(max-width:700px){.media-date-strip{padding-inline:18px;}.home-introduction-sections{margin-top:20px;}}

  /* ================================================================
     Institutional consistency layer
     Shared tokens normalize equivalent components without flattening
     their semantic hierarchy or changing content and functionality.
     ================================================================ */

  /* Typography roles */
  a{color:var(--color-blue);}
  a:hover{color:var(--color-blue-hover);}
  .publication-reference a,.review-list a,.contact-list a{color:var(--color-blue);}
  .publication-reference a:hover,.review-list a:hover,.contact-list a:hover{color:var(--color-blue-hover);}
  h1,h2,h3,h4,.hv3-name,.media-title,.pcard h4,.a2-theme-h,
  .area-head,.section-pill-title,.title-box{
    font-family:var(--font-heading);
  }
  h5,h6,button,input,select,textarea,.service-area h4,
  #infrastructure .infra-major-title,#infrastructure .infra-subsection-title,
  #infrastructure .equipment-heading h5,#infrastructure .pilot-reactor-heading h5,
  #infrastructure .pilot-system-heading h5,#infrastructure .workstation-name{
    font-family:var(--font-body);
  }
  .fig-label,.eyebrow,.hero-meta,.press-theme,.media-meta,.media-credit,
  .pcard-k,.sup-meta,.rv-count,.a2-fignum,.pub-note,.th-meta,
  .equipment-model,.pilot-reactor-type,.pilot-system-type,
  .footer-block-title,.footer-profiles-label{
    font-family:var(--font-interface);
  }

  /* Page and heading hierarchy */
  #collaboration .collab-page-header h1{
    margin:0 0 var(--space-4); font-family:var(--font-heading);
    font-size:var(--type-page-title); line-height:var(--leading-title);
    letter-spacing:-.012em; font-weight:600;
  }
  .title-box{
    padding:10px 20px; border-radius:var(--radius-md);
    font-size:var(--type-page-title); line-height:var(--leading-title);
    font-weight:600; letter-spacing:-.012em;
  }
  #collaboration .collab-domain-heading h2{
    font-family:var(--font-heading); font-size:var(--type-section-title);
    line-height:var(--leading-heading); font-weight:600;
  }
  #collaboration .collab-section-title,
  #infrastructure .infra-major-title{
    border-radius:var(--radius-md); font-size:var(--type-subsection-title);
    line-height:var(--leading-heading);
  }
  #infrastructure .infra-subsection-title,.section-pill-title{
    font-size:var(--type-component-title); line-height:var(--leading-heading);
  }
  .media-title,.a2-theme-h,.pcard h4,.line-item h3,.sub-item h4{
    line-height:var(--leading-heading);
  }

  /* Reading rhythm */
  .about-page-intro,#collaboration .collab-page-header p,
  #collaboration .collab-domain-heading p,#infrastructure .infra-overview-intro,
  #infrastructure .infra-section-intro,.infra-note{
    font-size:var(--type-lead); line-height:var(--leading-body);
  }
  .about-bio p,.biography-copy,.media-summary,.area-intro,.line-item p,
  .publication-reference,.collab-context p,#collaboration .service-area p,
  #collaboration .institutional-framework p,#collaboration .services-contact p,
  #infrastructure .equipment-summary,#infrastructure .pilot-platform-intro p,
  #infrastructure .pilot-reactor-description,#infrastructure .pilot-system-description,
  #infrastructure .workstation-intro,#infrastructure .workstation-description p{
    font-size:var(--type-body); line-height:var(--leading-body);
  }
  .media-original,.media-note,.pcard-row,.sub-item p,.thesis,.sup-item,
  #collaboration .service-area li,#infrastructure .equipment-capabilities li,
  #infrastructure .pilot-system-points li,.equipment-profile-section p{
    font-size:var(--type-body-sm); line-height:var(--leading-compact);
  }
  .media-meta,.media-credit,.a2-fignum,.a2-figdesc,.pcard-k,.sup-meta,
  .rv-count,.pub-note,.th-meta,.equipment-profile-model{
    font-size:var(--type-meta); line-height:var(--leading-compact);
  }
  .page p,.page li,.publication-reference,.equipment-list-name,
  .equipment-list-purpose,.equipment-profile-section p,.footer-collab-note{
    overflow-wrap:break-word;
  }
  .publication-reference a,.contact-list a,.footer-address a{overflow-wrap:anywhere;}
  .tool-chip{min-height:36px; white-space:normal;}

  /* Container, section and paragraph rhythm */
  .page > :last-child{margin-bottom:0;}
  #contact{border-bottom:0;}
  #research > p[data-i18n="research_intro"]{
    max-width:var(--reading-width); margin:0 0 var(--space-6);
    color:var(--color-text-soft); font-size:var(--type-lead); line-height:var(--leading-body);
  }
  #research .research-page-title{
    margin:0 0 var(--space-8); color:var(--color-text);
    font-size:var(--type-page-title); line-height:var(--leading-title);
    font-weight:600; letter-spacing:-.012em;
  }
  #research .research-section-title{
    margin:0 0 var(--space-4); color:var(--color-blue);
    font-size:var(--type-section-title); line-height:var(--leading-heading);
    font-weight:650; letter-spacing:-.008em;
  }
  #research > .research-section-title:not(:first-of-type),
  #research > #projects > .research-section-title{
    margin-top:var(--space-10); padding-top:var(--space-8);
    border-top:1px solid var(--color-border);
  }
  #research > #projects{
    display:block; margin:0; padding:0; border:0;
  }
  #projects .projects{margin-top:var(--space-6);}
  #projects .projects + .projects{margin-top:var(--space-8);}
  #projects .research-subsection-title{margin-bottom:var(--space-4);}
  #projects .research-section-title + .projects{margin-top:var(--space-5);}
  #projects #supervision.research-section-title,
  #projects #recognition.research-section-title{
    margin-top:var(--space-10); padding-top:var(--space-8);
    border-top:1px solid var(--color-border);
  }
  #contact .contact-list{margin-top:var(--space-3);}
  .home-introduction-sections{margin:var(--space-6) 0 var(--space-8);}
  .home-content-section > .title-box{margin-bottom:var(--space-5);}
  .home-content-section + .home-content-section{
    margin-top:var(--space-10); padding-top:var(--space-8);
  }

  /* Shared surfaces and borders */
  .about-panel,.media-card,.area,.pcard,.a2-figblock,.fact-card,
  .equipment-explorer-entry,.equipment-explorer-dialog{
    border-radius:var(--radius-lg);
  }
  .media-action,.collab-action,.cv-btn,.equipment-explorer-open,
  .equipment-explorer-primary,.equipment-explorer-back,
  .equipment-explorer-toolbar-back,.nav-search-input,.dropdown{
    border-radius:var(--radius-md);
  }
  .pub-accordion,.pub-accordion-trigger,.equipment-category-button,
  .equipment-list-button,.equipment-profile-media{
    border-radius:var(--radius-lg);
  }
  .tool-chip,.proj-tag,.section-pill-title,.equipment-profile-badge,
  #infrastructure .workstation-tags li{
    border-radius:var(--radius-pill);
  }

  /* Button hierarchy and stable interaction dimensions */
  .cv-btn,.media-action,#collaboration .collab-action,
  .equipment-explorer-open,.equipment-explorer-primary{
    min-height:var(--control-height); padding:10px var(--space-4);
    border-radius:var(--radius-md); font-family:var(--font-body);
    font-size:var(--type-button); line-height:1.3; font-weight:700;
    transition:background-color var(--transition-fast),border-color var(--transition-fast),
      color var(--transition-fast),transform var(--transition-fast);
  }
  .equipment-explorer-back,.equipment-explorer-toolbar-back{
    min-height:var(--control-height); padding:9px var(--space-3);
    font-size:var(--type-button); line-height:1.3;
  }
  .equipment-explorer-close{
    width:var(--icon-control); height:var(--icon-control);
  }

  /* One visible, accessible focus language across light and dark surfaces */
  a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,
  textarea:focus-visible,[tabindex]:focus-visible{
    outline:var(--focus-ring); outline-offset:3px;
  }
  .site-nav a:focus-visible,.site-footer a:focus-visible{
    outline-color:var(--color-focus);
  }

  /* Navigation: stable heights, wrapping and dark-surface contrast */
  .site-nav .inner{font-family:var(--font-interface); font-size:var(--type-nav);}
  .nav-links a.nav-link,.nav-links a.nav-flat,.nav-parent,.dd-caret,
  .nav-search-input,.nav-burger{min-height:40px;}
  .nav-links a.nav-link,.nav-links a.nav-flat,.nav-parent{
    line-height:1.3; font-weight:500;
  }
  .dropdown{min-width:260px; max-width:min(360px,calc(100vw - 32px));}
  .dropdown a{min-height:40px; white-space:normal; line-height:1.35;}
  .dd-caret:hover,.site-nav a.nav-link.current{color:var(--color-focus);}
  .nav-burger{
    border-color:rgba(255,255,255,.3); color:#E6ECF5;
  }
  .lang-btn{min-height:36px;}

  /* Accordions retain distinct contexts but share control rhythm */
  .area-head,.pub-accordion-trigger{
    min-height:var(--control-height); line-height:var(--leading-heading);
  }
  .area-head{padding:var(--space-4) var(--space-5);}
  .pub-accordion-trigger{padding:var(--space-4) clamp(16px,2.2vw,24px);}
  .publications-accordions{row-gap:var(--space-1);}

  /* Equipment Explorer hierarchy */
  .equipment-explorer-dialog{box-shadow:var(--shadow-dialog);}
  .equipment-explorer-toolbar{min-height:60px;}
  .equipment-explorer-heading{
    font-family:var(--font-heading); font-size:var(--type-section-title);
    line-height:var(--leading-title); font-weight:600;
  }
  .equipment-category-grid{gap:var(--space-3);}
  .equipment-category-button{min-height:136px; padding:var(--space-4);}
  .equipment-list{gap:var(--space-2);}
  .equipment-list-button{padding:var(--space-3) var(--space-4);}
  .equipment-profile-sections{gap:var(--space-4);}

  /* Footer alignment remains one coherent system */
  .footer-identity .footer-name{font-family:var(--font-heading);}
  .footer-main{align-items:center;}
  .footer-logo-card img{max-height:52px;}
  .footer-social a{width:var(--icon-control); height:var(--icon-control);}
  .footer-bottom{line-height:var(--leading-compact);}

  @media (max-width:900px){
    .page{padding-block:var(--space-10);}
    #home.page{padding-top:0;}
    .nav-menu{
      background:rgba(19,36,55,.985); border-bottom-color:rgba(255,255,255,.12);
    }
    .nav-menu .nav-link,.nav-menu .nav-parent,.nav-menu .dd-caret{color:#E6ECF5;}
    .nav-links a.nav-link,.nav-links a.nav-flat,.nav-parent,.dd-caret,
    .dropdown a,.nav-search-input,.nav-burger,.lang-btn{min-height:44px;}
  }
  @media (max-width:600px){
    .wrap{padding-inline:20px; padding-bottom:var(--space-10);}
    .page{padding-block:var(--space-8);}
    #home.page{padding-top:0;}
    .home-content-section + .home-content-section{
      margin-top:var(--space-8); padding-top:var(--space-6);
    }
    .title-box{padding:9px 16px;}
    #research .research-page-title{margin-bottom:var(--space-6);}
    #research > #projects > .research-section-title,
    #projects #supervision.research-section-title,
    #projects #recognition.research-section-title{
      margin-top:var(--space-8); padding-top:var(--space-6);
    }
    .area-head{padding:14px 15px;}
    .equipment-explorer-content{padding:var(--space-5) var(--space-4) var(--space-8);}
    .footer-main{gap:var(--space-6);}
  }
  @media (max-width:380px){
    .wrap{padding-inline:16px;}
  }

  /* Infrastructure — focused hierarchy, compact rhythm and shared photo viewer */
  html,body,button,input,select,textarea,optgroup,option{font-family:"Roboto","Helvetica Neue",Arial,sans-serif;}
  svg text{font-family:"Roboto","Helvetica Neue",Arial,sans-serif;}
  #infrastructure .infra-heading-link{
    color:inherit; font:inherit; text-decoration:none;
  }
  #infrastructure .infra-heading-link:hover{text-decoration:underline; text-decoration-thickness:1px; text-underline-offset:4px;}
  #infrastructure .infra-heading-link:focus-visible{border-radius:4px;}
  #infrastructure #experimental,
  #infrastructure #equipment-inventory,
  #infrastructure #laboratory-scale,
  #infrastructure #extraction-liquid-analysis,
  #infrastructure #solid-liquid-extraction,
  #infrastructure #high-performance-liquid-chromatography,
  #infrastructure #thermal-analysis,
  #infrastructure #gas-volatile-analysis,
  #infrastructure #large-sample-thermal-analysis,
  #infrastructure #laboratory-tubular-pyrolysis,
  #infrastructure #pilot-platform,
  #infrastructure #continuous-autothermal-oxidative-pyrolysis,
  #infrastructure #carbolift,
  #infrastructure #charlift,
  #infrastructure #modeling-simulation,
  #infrastructure #workstation,
  #infrastructure #software{scroll-margin-top:96px;}
  #infrastructure .experimental-panel{margin-bottom:clamp(22px,3vw,32px);}
  #infrastructure .infra-section-intro{margin-bottom:clamp(16px,2vw,22px);}
  #infrastructure .equipment-explorer-entry{
    margin:0 0 clamp(22px,3vw,30px); padding:clamp(17px,2vw,22px);
  }
  #infrastructure .equipment-explorer-entry h4{
    margin:0 0 7px; color:#1F5C8C; font-size:clamp(19px,2vw,23px); line-height:1.25;
  }
  #infrastructure .analytical-pair-section{margin-bottom:clamp(22px,3vw,32px); padding-block:clamp(18px,2.4vw,24px);}
  #infrastructure .analytical-pair-grid{gap:clamp(22px,3vw,38px);}
  #infrastructure .analytical-pair-title-row,
  #infrastructure .equipment-heading,
  #infrastructure .pilot-reactor-heading,
  #infrastructure .pilot-system-heading{display:block;}
  #infrastructure .analytical-pair-photo,
  #infrastructure .equipment-photo{
    aspect-ratio:auto; overflow:visible; border:0; border-radius:0; background:transparent;
  }
  #infrastructure .analytical-pair-photo img,
  #infrastructure .equipment-photo img{
    width:100%; height:auto; aspect-ratio:4/3; overflow:hidden; border:1px solid rgba(31,92,140,.18);
    border-radius:14px; background:#D9DEE2; object-fit:cover; object-position:center;
  }
  #infrastructure .equipment-card{
    grid-template-columns:minmax(260px,.82fr) minmax(0,1.18fr); align-items:start;
    gap:clamp(22px,3.2vw,42px); padding:clamp(20px,2.7vw,30px) 0;
  }
  #infrastructure .equipment-card:nth-child(even) .equipment-photo,
  #infrastructure .equipment-card:nth-child(even) .equipment-body{order:initial;}
  #infrastructure .equipment-caption{
    display:block; width:100%; margin:12px 0 0; color:#33465a;
    font-size:15.5px; line-height:1.4; font-weight:700; text-align:center; letter-spacing:.005em;
  }
  #infrastructure .pilot-reactor-photo-wrap{min-width:0; align-self:center;}
  #infrastructure .pilot-reactor-photo-wrap .pilot-reactor-photo{width:100%;}
  #infrastructure .pilot-system-list{gap:0; margin-top:clamp(20px,3vw,28px);}
  #infrastructure .pilot-system-entry,
  #infrastructure .pilot-system-entry:nth-child(even){
    grid-template-columns:minmax(260px,.78fr) minmax(0,1.42fr);
    gap:clamp(22px,3.2vw,42px); padding:clamp(20px,2.7vw,30px) 0;
  }
  #infrastructure .pilot-system-entry:nth-child(even) .pilot-system-media,
  #infrastructure .pilot-system-entry:nth-child(even) .pilot-system-body{order:initial;}
  #infrastructure .pilot-system-media{display:flex; flex-direction:column; align-items:center;}
  #infrastructure .pilot-system-media .equipment-caption{width:min(100%,430px);}
  #infrastructure .workstation-figure{display:flex; flex-direction:column; margin-block:clamp(18px,2.5vw,26px);}
  #infrastructure .infra-expandable-image{cursor:zoom-in;}
  #infrastructure .infra-expandable-image:focus-visible{outline:3px solid rgba(31,92,140,.42); outline-offset:4px;}

  body.infra-viewer-active{overflow:hidden;}
  .infra-image-viewer[hidden]{display:none;}
  .infra-image-viewer{position:fixed; inset:0; z-index:1600; display:grid; place-items:center; padding:clamp(12px,3vw,34px);}
  .infra-image-viewer-backdrop{position:absolute; inset:0; background:rgba(8,19,29,.91);}
  .infra-image-viewer-dialog{
    position:relative; z-index:1; display:flex; flex-direction:column; align-items:center;
    width:min(1180px,100%); max-height:calc(100dvh - 24px); margin:0; padding:clamp(44px,5vw,60px) clamp(10px,2vw,22px) clamp(14px,2vw,22px);
    overflow:auto; border:1px solid rgba(255,255,255,.18); border-radius:12px;
    background:rgba(14,28,40,.96); box-shadow:0 22px 70px rgba(0,0,0,.38);
  }
  .infra-image-viewer-dialog img{
    display:block; width:auto; max-width:100%; height:auto; max-height:calc(100dvh - 160px);
    object-fit:contain; background:transparent;
  }
  .infra-image-viewer-caption{margin:12px 0 0; color:#F1F5F7; font-size:14px; line-height:1.45; text-align:center;}
  .infra-image-viewer-close{
    position:absolute; top:10px; right:10px; min-height:40px; padding:8px 13px;
    border:1px solid rgba(255,255,255,.34); border-radius:8px; background:transparent;
    color:#fff; font-size:13px; line-height:1.2; font-weight:700; cursor:pointer;
  }
  .infra-image-viewer-close:hover{background:rgba(255,255,255,.1);}
  .infra-image-viewer-close:focus-visible{outline:3px solid #fff; outline-offset:3px;}
  @media(max-width:720px){
    #infrastructure .equipment-card,
    #infrastructure .pilot-system-entry,
    #infrastructure .pilot-system-entry:nth-child(even){grid-template-columns:1fr; gap:16px;}
    #infrastructure .pilot-reactor-photo-wrap{width:min(100%,710px); margin-inline:auto;}
    .infra-image-viewer{padding:0;}
    .infra-image-viewer-dialog{width:100%; max-height:100dvh; min-height:100dvh; border:0; border-radius:0; justify-content:center;}
    .infra-image-viewer-dialog img{max-height:calc(100dvh - 150px);}
  }
  @media (prefers-reduced-motion:reduce){
    html{scroll-behavior:auto;}
    *,*::before,*::after{
      animation-duration:.01ms!important; animation-iteration-count:1!important;
      transition-duration:.01ms!important; scroll-behavior:auto!important;
    }
  }

  /* ===== Research-axis identity: E1 = blue, E2 = green ===== */
  #area1 .area-head{ background:#EEF6FC; color:#17324D; border:1px solid #D7E8F5; border-radius:12px; }
  #area1 .area-head:hover{ background:#E2EFFA; color:#17324D; }
  #area1 .area-head .area-num{ background:#1F5C8C; color:#fff; }
  #area1 .area-head > span[data-i18n="area1_title"]{ color:#1F5C8C; font-weight:700; }
  #area1 .area-head .area-toggle{ color:#1F5C8C; }
  #area1 .area-head:focus-visible{ outline:2px solid #1F5C8C; outline-offset:2px; }
  #area2 .area-head{ background:#EAF4EC; color:#17402A; border:1px solid #CDE6D5; border-radius:12px; }
  #area2 .area-head:hover{ background:#DFEFE3; color:#17402A; }
  #area2 .area-head .area-num{ background:#1F5C39; color:#fff; }
  #area2 .area-head > span[data-i18n="area2_title"]{ color:#1F5C39; font-weight:700; }
  #area2 .area-head .area-toggle{ color:#1F5C39; }
  #area2 .area-head:focus-visible{ outline:2px solid #1F5C39; outline-offset:2px; }

  /* ===== Modelización y simulación — portfolio (transparent, green accents) ===== */
  #area2{ background:transparent; }
  #area2 .area-body{ background:transparent; }
  #area2 .ms-intro{ font-family:"Roboto", "Helvetica Neue", Arial, sans-serif; font-size:15px; line-height:1.6; color:var(--ink); max-width:900px; margin:2px 0 20px; }
  #area2 .ms-filters{ display:flex; flex-wrap:wrap; gap:10px; margin:0 0 26px; }
  #area2 .ms-filter{ font:600 13px/1 "Roboto", "Helvetica Neue", Arial, sans-serif; color:#1F5C39; background:transparent; border:1px solid #BFE0C9; border-radius:999px; padding:9px 16px; cursor:pointer; transition:background .2s ease, color .2s ease, box-shadow .2s ease, border-color .2s ease; }
  #area2 .ms-filter:hover{ box-shadow:0 2px 8px rgba(31,92,57,.14); border-color:#1F5C39; }
  #area2 .ms-filter:focus-visible{ outline:3px solid #1F5C39; outline-offset:2px; }
  #area2 .ms-filter[aria-pressed="true"]{ background:#1F5C39; color:#fff; border-color:#1F5C39; }

  #area2 .ms-portfolio{ display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:22px; align-items:start; }
  #area2 .ms-study{ grid-column:span 1; background:transparent; border:1px solid var(--rule); border-top:2px solid #1F5C39; border-radius:14px; padding:18px; display:flex; flex-direction:column; transition:transform .22s ease, box-shadow .22s ease; }
  #area2 .ms-study:hover{ transform:translateY(-3px); box-shadow:0 10px 24px rgba(31,92,57,.10); }
  #area2 .ms-study[hidden]{ display:none; }
  #area2 .ms-featured, #area2 .ms-wide{ grid-column:1 / -1; }

  #area2 .ms-cat{ display:inline-block; font:700 10.5px/1 "Roboto", "Helvetica Neue", Arial, sans-serif; letter-spacing:.09em; text-transform:uppercase; color:#1F5C39; margin-bottom:8px; }
  #area2 .ms-title{ font:600 16px/1.35 "Roboto", "Helvetica Neue", Arial, sans-serif; color:var(--ink); margin:0 0 12px; }
  #area2 .ms-featured .ms-title{ font-size:19px; }
  /* CS3 (slow pyrolysis) title on one desktop line, responsive on mobile */
  #area2 #ms3-t{ font-size:clamp(15px, 1.35vw, 19px); white-space:nowrap; }
  @media (max-width:760px){ #area2 #ms3-t{ white-space:normal; } }
  #area2 .ms-summary{ font:14px/1.6 "Roboto", "Helvetica Neue", Arial, sans-serif; color:var(--ink); margin:0 0 14px; }

  /* figures — transparent, subtle green detail */
  #area2 .ms-figure{ margin:0; display:flex; flex-direction:column; }
  #area2 .ms-thumb{ position:relative; display:block; padding:0; border:1px solid var(--rule); border-radius:10px; overflow:hidden; background:transparent; cursor:zoom-in; width:100%; transition:transform .2s ease, box-shadow .2s ease; }
  #area2 .ms-thumb img{ display:block; width:100%; height:auto; background:transparent; }
  #area2 .ms-thumb:hover{ transform:scale(1.03); box-shadow:0 6px 16px rgba(31,92,57,.16); }
  #area2 .ms-thumb:focus-visible{ outline:3px solid #1F5C39; outline-offset:2px; }
  #area2 .ms-thumb-zoom{ position:absolute; right:6px; bottom:6px; background:rgba(23,50,42,.75); color:#fff; border-radius:6px; font-size:12px; line-height:1; padding:3px 6px; pointer-events:none; }
  #area2 .ms-media--single{ max-width:560px; }

  #area2 .ms-figcap{ padding:9px 2px 2px; }
  #area2 .ms-figlabel{ display:inline-block; font:700 10px/1 "Roboto", "Helvetica Neue", Arial, sans-serif; letter-spacing:.06em; text-transform:uppercase; color:#1F5C39; background:#E8F4EC; border:1px solid #BFE0C9; border-radius:5px; padding:4px 8px; margin:0 0 7px; }
  #area2 .ms-figttl{ display:block; font:700 13px/1.35 "Roboto", "Helvetica Neue", Arial, sans-serif; color:#1F5C39; margin:0 0 4px; }
  #area2 .ms-figdesc{ display:block; font:12.5px/1.55 "Roboto", "Helvetica Neue", Arial, sans-serif; color:var(--ink-soft,#3E4A3D); }

  /* HTC featured: 2x2 balanced grid */
  #area2 .ms-htc-grid{ display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:22px; margin:2px 0 16px; align-items:start; }
  #area2 .ms-figure--exp .ms-thumb img{ max-height:420px; width:auto; margin:0 auto; }
  #area2 .ms-figure--exp .ms-thumb{ display:flex; justify-content:center; }
  #area2 .ms-infoblock{ background:transparent; border-left:3px solid #1F5C39; padding:2px 0 2px 14px; align-self:center; }
  #area2 .ms-info-head{ display:block; font:700 14px/1.35 "Roboto", "Helvetica Neue", Arial, sans-serif; color:#1F5C39; margin:0 0 6px; }
  #area2 .ms-info-text{ margin:0; font:13px/1.6 "Roboto", "Helvetica Neue", Arial, sans-serif; color:var(--ink); }

  /* BIOSTAR alternating rows */
  #area2 .ms-altrow{ display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:22px; align-items:center; margin:0 0 18px; }
  #area2 .ms-altcap .ms-figttl{ font-size:14px; }

  /* CS3 duo */
  #area2 .ms-duo{ display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:20px; margin:0 0 14px; }

  /* Local layout fixes for wide multi-panel restored figures (no destructive change) */
  /* BIOSTAR (temperature a–e, CO a–e): stack full-width so the panels stay readable */
  #area2 .ms-study[data-ms-title="ms2_t"] .ms-altrow{ grid-template-columns:1fr; gap:8px; margin:0 0 20px; }
  #area2 .ms-study[data-ms-title="ms2_t"] .ms-altrow--rev .ms-altmedia{ order:1; }
  #area2 .ms-study[data-ms-title="ms2_t"] .ms-altrow--rev .ms-altcap{ order:2; }
  #area2 .ms-study[data-ms-title="ms2_t"] .ms-altmedia .ms-thumb{ max-width:960px; margin-inline:auto; }
  #area2 .ms-study[data-ms-title="ms2_t"] .ms-altcap{ max-width:960px; margin-inline:auto; }
  /* Agave char reactivity grid (4×5 panels): needs full width to remain legible */
  #area2 .ms-study[data-ms-title="ms4_t"]{ grid-column:1 / -1; }
  #area2 .ms-study[data-ms-title="ms4_t"] .ms-media--single{ max-width:100%; }
  #area2 .ms-study[data-ms-title="ms4_t"] .ms-media--single .ms-thumb{ max-width:1180px; margin-inline:auto; }

  #area2 .ms-result{ font:600 13.5px/1.5 "Roboto", "Helvetica Neue", Arial, sans-serif; color:#17402A; background:#E8F4EC; border:1px solid #BFE0C9; border-left:3px solid #1F5C39; border-radius:10px; padding:10px 12px; margin:6px 0 14px; }
  #area2 .ms-tags{ list-style:none; display:flex; flex-wrap:wrap; gap:7px; padding:0; margin:6px 0 14px; }
  #area2 .ms-tag{ font:600 11.5px/1.2 "Roboto", "Helvetica Neue", Arial, sans-serif; color:#1F5C39; background:transparent; border:1px solid #BFE0C9; border-radius:6px; padding:5px 9px; }
  #area2 .ms-foot{ margin-top:auto; display:flex; flex-wrap:wrap; gap:12px; align-items:center; }
  #area2 .ms-pub{ display:inline-flex; align-items:center; gap:7px; font:600 13px/1 "Roboto", "Helvetica Neue", Arial, sans-serif; color:#fff; background:#1F5C39; border-radius:8px; padding:10px 15px; text-decoration:none; transition:transform .2s ease, filter .2s ease; }
  #area2 .ms-pub:hover{ transform:translateY(-1px); filter:brightness(1.08); }
  #area2 .ms-pub:focus-visible{ outline:3px solid #1F5C39; outline-offset:2px; }
  #area2 .ms-badge{ display:inline-block; font:600 12px/1.35 "Roboto", "Helvetica Neue", Arial, sans-serif; color:#17402A; background:#E8F4EC; border:1px solid #BFE0C9; border-radius:8px; padding:8px 12px; }
  #area2 .ms-link{ font:600 13px/1 "Roboto", "Helvetica Neue", Arial, sans-serif; color:#1F5C39; text-decoration:underline; cursor:pointer; }
  #area2 .ms-link:focus-visible{ outline:3px solid #1F5C39; outline-offset:2px; }

  @media (max-width: 860px){
    #area2 .ms-portfolio{ grid-template-columns:1fr; }
    #area2 .ms-study, #area2 .ms-featured, #area2 .ms-wide{ grid-column:1 / -1; }
    #area2 .ms-htc-grid{ grid-template-columns:1fr; }
    #area2 .ms-altrow{ grid-template-columns:1fr; }
    #area2 .ms-altrow--rev .ms-altmedia{ order:1; }
    #area2 .ms-altrow--rev .ms-altcap{ order:2; }
    #area2 .ms-duo{ grid-template-columns:1fr; }
    #area2 .ms-infoblock{ align-self:auto; }
  }
  @media (prefers-reduced-motion: reduce){
    #area2 .ms-study, #area2 .ms-thumb, #area2 .ms-pub, #area2 .ms-filter{ transition:none; }
    #area2 .ms-study:hover, #area2 .ms-thumb:hover, #area2 .ms-pub:hover{ transform:none; }
  }

  /* ----- Modeling gallery modal ----- */
  .ms-modal[hidden]{ display:none; }
  .ms-modal{ position:fixed; inset:0; z-index:1600; display:grid; place-items:center; padding:clamp(12px,3vw,34px); }
  .ms-modal-backdrop{ position:absolute; inset:0; background:rgba(8,19,29,.92); }
  .ms-modal-dialog{ position:relative; z-index:1; max-width:min(1100px,96vw); max-height:94vh; display:flex; flex-direction:column; background:#0e1f2b; border-radius:14px; padding:14px 14px 16px; box-shadow:0 20px 60px rgba(0,0,0,.5); }
  .ms-modal-close{ align-self:flex-end; background:rgba(255,255,255,.12); color:#fff; border:none; border-radius:8px; font:600 13px/1 "Roboto", "Helvetica Neue", Arial, sans-serif; padding:9px 13px; cursor:pointer; margin:0 0 8px; }
  .ms-modal-close:hover{ background:rgba(255,255,255,.22); }
  .ms-modal-close:focus-visible{ outline:3px solid #fff; outline-offset:2px; }
  .ms-modal-title{ color:#F1F5F7; font:700 15px/1.35 "Roboto", "Helvetica Neue", Arial, sans-serif; margin:0 40px 10px; text-align:center; }
  .ms-modal-figure{ position:relative; display:flex; align-items:center; justify-content:center; min-height:0; }
  .ms-modal-figure img{ max-width:100%; max-height:70vh; width:auto; height:auto; object-fit:contain; background:#fff; border-radius:6px; }
  .ms-modal-nav{ position:absolute; top:50%; transform:translateY(-50%); background:rgba(255,255,255,.16); color:#fff; border:none; width:46px; height:46px; border-radius:50%; font-size:28px; line-height:1; cursor:pointer; display:grid; place-items:center; }
  .ms-modal-nav:hover{ background:rgba(255,255,255,.30); }
  .ms-modal-nav:focus-visible{ outline:3px solid #fff; outline-offset:2px; }
  .ms-modal-nav[hidden]{ display:none; }
  .ms-prev{ left:8px; }
  .ms-next{ right:8px; }
  .ms-modal-figttl{ color:#BFE3CD; font:700 13.5px/1.4 "Roboto", "Helvetica Neue", Arial, sans-serif; text-align:center; margin:12px 14px 0; }
  .ms-modal-caption{ color:#E5EAED; font:13px/1.5 "Roboto", "Helvetica Neue", Arial, sans-serif; text-align:center; margin:6px 14px 0; }
.ms-modal-count{ color:#9fb0ba; font:12px/1 "Roboto", "Helvetica Neue", Arial, sans-serif; text-align:center; margin:8px 0 0; }

/* ============================================================
   Infrastructure — unified visual system (v9)
   Green carries the institutional hierarchy; blue is reserved
   for the laboratory- and pilot-scale labels.
   ============================================================ */
#infrastructure{
  --infra-green:#1F5C39;
  --infra-green-dark:#17492D;
  --infra-green-soft:#E8F4EC;
  --infra-green-border:#C6E2D0;
  --infra-scale-blue:#1F5C8C;
}

/* Match the Research page title bar exactly. */
#infrastructure > h2{
  display:block; width:100%; box-sizing:border-box;
  margin:0 0 16px; padding:7px 16px;
  border-radius:14px; background:var(--infra-green); color:#fff;
  font:600 20px/1.25 var(--font-heading,"Roboto","Helvetica Neue",Arial,sans-serif);
  letter-spacing:-.012em;
}
#infrastructure > h2 .infra-heading-link{color:inherit; text-decoration:none;}
#infrastructure > h2 .infra-heading-link:hover{color:inherit; text-decoration:none;}

/* Same reading rhythm as the introductory copy in Research. */
#infrastructure .infra-overview-intro,
#infrastructure .infra-section-intro{
  max-width:none; color:var(--ink-soft,#3E4A3D);
  font-family:var(--font-body,"Roboto","Helvetica Neue",Arial,sans-serif);
  font-size:15.5px; line-height:1.72;
}
#infrastructure .infra-overview-intro{margin:0 0 24px;}

/* Principal infrastructure titles: one font, one size logic, one green. */
#infrastructure .infra-major-title{
  border-color:var(--infra-green); background:var(--infra-green); color:#fff;
  font-family:var(--font-heading,"Roboto","Helvetica Neue",Arial,sans-serif);
  font-weight:600; letter-spacing:-.012em;
}

/* The two scale markers remain deliberately blue. */
#infrastructure #laboratory-scale.infra-subsection-title,
#infrastructure #pilot-platform-title.infra-subsection-title{
  border-color:var(--infra-scale-blue); background:var(--infra-scale-blue); color:#fff;
  font-family:var(--font-heading,"Roboto","Helvetica Neue",Arial,sans-serif);
  font-weight:600; letter-spacing:-.012em;
}

/* Available-equipment entry: green heading, frame and action. */
#infrastructure .equipment-explorer-entry{
  border-color:var(--infra-green-border); border-left-color:var(--infra-green);
  background:rgba(232,244,236,.72);
}
#infrastructure #equipment-inventory-title,
#infrastructure .equipment-explorer-entry h4,
#infrastructure .equipment-explorer-entry h5{
  color:var(--infra-green);
  font-family:var(--font-heading,"Roboto","Helvetica Neue",Arial,sans-serif);
  font-size:clamp(19px,2vw,23px); line-height:1.25; font-weight:700;
}
#infrastructure .equipment-explorer-open,
.equipment-explorer-primary{
  border-color:var(--infra-green,#1F5C39); background:var(--infra-green,#1F5C39); color:#fff;
}
#infrastructure .equipment-explorer-open:hover,
.equipment-explorer-primary:hover{background:var(--infra-green-dark,#17492D);}

/* Green technical hierarchy across equipment, pilot systems and computing. */
#infrastructure .analytical-pair-heading h5,
#infrastructure .analytical-pair-title-row h5,
#infrastructure .analytical-pair-detail-label,
#infrastructure .equipment-heading h5,
#infrastructure .equipment-detail h6,
#infrastructure .infra-workflow h5,
#infrastructure .pilot-platform-intro h5,
#infrastructure .pilot-reactor-heading h5,
#infrastructure .pilot-system-heading h5,
#infrastructure .pilot-system-detail h6,
#infrastructure .workstation-subtitle,
#infrastructure .workstation-name,
#infrastructure .workstation-apps h5{
  color:var(--infra-green);
  font-family:var(--font-heading,"Roboto","Helvetica Neue",Arial,sans-serif);
}
#infrastructure .analytical-pair-list li::before,
#infrastructure .equipment-capabilities li::before,
#infrastructure .pilot-system-points li::before,
#infrastructure .infra-workflow li::before{
  background:var(--infra-green);
}
#infrastructure .analytical-pair-photo,
#infrastructure .equipment-photo,
#infrastructure .pilot-system-entry{
  border-color:rgba(31,92,57,.22);
}
#infrastructure .analytical-pair-model,
#infrastructure .equipment-model,
#infrastructure .pilot-reactor-type,
#infrastructure .pilot-system-type{
  background:var(--infra-green-soft); color:#244B34;
}
#infrastructure .infra-workflow{
  border-left-color:var(--infra-green); background:var(--infra-green-soft);
}
#infrastructure .workstation-specs li{
  border-left-color:var(--infra-green); background:var(--infra-green-soft);
}
#infrastructure .workstation-tags li{background:var(--infra-green);}

/* Lower the Agilent GC/MS photograph slightly on wide layouts. */
#infrastructure #gas-volatile-analysis .equipment-photo{transform:translateY(12px);}

/* Equipment Explorer follows the same green infrastructure palette. */
.equipment-explorer-breadcrumb button,
.equipment-explorer-heading,
.equipment-category-copy strong,
.equipment-category-count,
.equipment-list-name,
.equipment-list-arrow,
.equipment-profile-section h4{color:var(--infra-green,#1F5C39);}
.equipment-category-number{background:var(--infra-green,#1F5C39);}
.equipment-category-button:hover,
.equipment-list-button:hover{
  border-color:var(--infra-green,#1F5C39); background:#F1F8F3;
}
.equipment-explorer-search input{border-color:rgba(31,92,57,.3);}
.equipment-explorer-back,
.equipment-explorer-toolbar-back,
.equipment-explorer-close{
  border-color:rgba(31,92,57,.24); background:#E8F4EC; color:#1F5C39;
}
.equipment-profile-badge{background:#E8F4EC; color:#1F5C39;}
.equipment-explorer-open:focus-visible,
.equipment-explorer-primary:focus-visible,
.equipment-explorer-dialog button:focus-visible,
.equipment-explorer-dialog input:focus-visible{
  outline-color:rgba(31,92,57,.38);
}

@media(max-width:720px){
  #infrastructure #gas-volatile-analysis .equipment-photo{transform:none;}
}


/* Highlighted project 1 — CFD first, experimental validation second */
.featured-projects .project-box--ms1 .featured-project-item{
  display:block !important;
}
.featured-projects .project-box--ms1 .featured-project-summary{
  width:100%;
  max-width:none !important;
  margin:0 0 16px !important;
}
.featured-projects .project-box--ms1 .fp-agitation-sections{
  display:grid;
  gap:0;
  width:100%;
}
.featured-projects .project-box--ms1 .fp-agitation-stage{
  display:grid;
  grid-template-columns:minmax(260px,360px) minmax(0,1fr);
  gap:24px;
  align-items:center;
  padding:20px 0;
  border-top:1px solid rgba(31,92,140,.16);
}
.featured-projects .project-box--ms1 .fp-agitation-stage:first-child{
  border-top:0;
  padding-top:8px;
}
.featured-projects .project-box--ms1 .fp-agitation-figure{
  margin:0;
  display:flex;
  align-items:center;
  justify-content:center;
  min-width:0;
}
.featured-projects .project-box--ms1 .fp-agitation-figure .featured-project-image{
  width:100%;
  display:flex;
  justify-content:center;
}
.featured-projects .project-box--ms1 .fp-agitation-figure .ms-thumb{
  width:100%;
  max-width:340px !important;
  margin-inline:auto;
}
.featured-projects .project-box--ms1 .fp-agitation-copy{
  min-width:0;
  align-self:center;
}
.featured-projects .project-box--ms1 .fp-agitation-title{
  margin:0 0 8px;
  color:var(--color-blue);
  font:700 17px/1.35 var(--font-heading,Arial);
}
.featured-projects .project-box--ms1 .fp-agitation-description{
  margin:0;
  max-width:none;
  font-size:14px;
  line-height:1.6;
}
.featured-projects .project-box--ms1 > .featured-project-item > .featured-project-link{
  display:inline-flex;
  margin-top:4px;
}
.featured-projects .project-box--ms1 .fp-multiphysics-row{
  margin-top:20px;
  padding-top:20px;
  border-top:1px solid rgba(31,92,140,.16);
}
.featured-projects .project-box--ms1 .fp-multiphysics-row .fp-pair-fig{
  display:grid;
  grid-template-columns:minmax(260px,420px) minmax(0,1fr);
  gap:24px;
  align-items:center;
}
.featured-projects .project-box--ms1 .fp-multiphysics-row .featured-project-image{
  display:flex;
  justify-content:center;
  grid-column:1;
  grid-row:1 / span 2;
}
.featured-projects .project-box--ms1 .fp-multiphysics-row .fp-fig-cap{
  grid-column:2;
  grid-row:1;
  margin:0;
}
.featured-projects .project-box--ms1 .fp-multiphysics-row .featured-project-link{
  grid-column:2;
  grid-row:2;
  justify-self:start;
}
.featured-projects .project-box--ms1 .fp-multiphysics-row .ms-thumb{
  width:100%;
  max-width:400px !important;
  margin-inline:auto;
}
@media(max-width:760px){
  .featured-projects .project-box--ms1 .fp-agitation-stage,
  .featured-projects .project-box--ms1 .fp-multiphysics-row .fp-pair-fig{
    grid-template-columns:1fr;
    gap:14px;
  }
  .featured-projects .project-box--ms1 .fp-agitation-copy{
    text-align:left;
  }
  .featured-projects .project-box--ms1 .fp-multiphysics-row .featured-project-image,
  .featured-projects .project-box--ms1 .fp-multiphysics-row .fp-fig-cap,
  .featured-projects .project-box--ms1 .fp-multiphysics-row .featured-project-link{
    grid-column:1;
    grid-row:auto;
  }
}


/* ---------- Collaboration text/layout refinement ---------- */
#collaboration.cs-scope .collab-scientific-domain > .collab-domain-heading{
  margin-bottom:clamp(10px,1.4vw,14px);
}
#collaboration.cs-scope .collab-scientific-domain > .collab-domain-heading h1{
  display:inline-block;
  width:auto;
  max-width:100%;
}
#collaboration.cs-scope .collab-relational-component{
  margin-top:8px;
}
#collaboration.cs-scope #collaboration-network > .cs-note{
  box-sizing:border-box;
  width:100%;
  max-width:none;
}

/* ============================================================
   research.css
   Research-section (Area 2) layout enhancements.
   Loaded AFTER main.css so these rules refine / override the
   base research styles without touching the global cascade.
   Scope is limited to #area2 (Modelling & Simulation portfolio).
   ============================================================ */

/* ---- ms1 (HTC stirred reactor): numerical–experimental comparison ----
   The CFD simulation and the experimental validation are shown together
   as a balanced pair: CFD on the left, experimental on the right, at
   comparable visual size, vertically aligned, no cropping. On narrow
   screens they stack (CFD first, experimental second). */

#area2 .ms-htc-grid{
  display: block;                 /* container now flows its two sub-blocks */
  margin: 2px 0 16px;
}

#area2 .ms-compare{
  display: grid;
  grid-template-columns: 1fr 1fr; /* two balanced, equal columns */
  gap: 22px;
  align-items: stretch;           /* both columns share the same height */
  margin: 0 0 20px;
}

/* each side is a full-height figure so labels/captions line up */
#area2 .ms-compare .ms-figure{
  height: 100%;
  margin: 0;
}

#area2 .ms-compare .ms-thumb{
  flex: 1 1 auto;
  display: flex;
  align-items: center;
  justify-content: center;
  background: #ffffff;            /* neutral backing; preserves image colours */
  min-height: 300px;
}

/* both images treated identically → same visual size, no distortion,
   nothing cropped (object-fit: contain), aspect ratio preserved */
#area2 .ms-compare .ms-thumb img{
  width: 100%;
  height: auto;
  max-height: 460px;
  object-fit: contain;
  margin: 0 auto;
  background: #ffffff;
}

/* neutralise the older exp-only sizing so the pair stays balanced */
#area2 .ms-compare .ms-figure--exp .ms-thumb{
  display: flex;
}
#area2 .ms-compare .ms-figure--exp .ms-thumb img{
  width: 100%;
  height: auto;
  max-height: 460px;
}

/* secondary row: multiphysics figure + heat-transfer/validation note */
#area2 .ms-htc-secondary{
  display: grid;
  grid-template-columns: minmax(0, 1.1fr) minmax(0, 0.9fr);
  gap: 22px;
  align-items: center;
}
#area2 .ms-htc-secondary .ms-figure{ margin: 0; }
#area2 .ms-htc-secondary .ms-thumb img{
  width: 100%;
  height: auto;
  object-fit: contain;
}

/* ---- Generic layout hygiene for single-figure studies ----
   Let single figures use natural width up to a readable cap and stay
   centred, avoiding a lonely image squeezed into a corner. */
#area2 .ms-media--single{
  max-width: 640px;
  margin-inline: 0;
}
#area2 .ms-media--single .ms-thumb img{
  width: 100%;
  height: auto;
  object-fit: contain;
}

/* Extraction study (ms6): the response-surface figure is wide/detailed,
   give it a little more room than a default single figure. */
#area2 .ms-study[data-ms-title="ms6_t"] .ms-media--single{ max-width: 760px; }
/* Process-simulation flow diagram (ms5) is very wide → let it breathe. */
#area2 .ms-study[data-ms-title="ms5_t"] .ms-media--single{ max-width: 820px; }

/* ---- Responsive: stack the comparison on tablets / phones ---- */
@media (max-width: 860px){
  #area2 .ms-compare{ grid-template-columns: 1fr; }        /* CFD then experimental */
  #area2 .ms-htc-secondary{ grid-template-columns: 1fr; }
  #area2 .ms-compare .ms-thumb{ min-height: 0; }
}

@media (prefers-reduced-motion: reduce){
  #area2 .ms-compare .ms-thumb:hover{ transform: none; }
}

/* ============================================================
   Research narrative rebuild — headings, de-bordered flow,
   sequence, two-column, expandables, projects, supervision,
   awards timeline. Scoped to #research / #projects / #area2.
   ============================================================ */

/* Headings — same visible size as "Biografía" (20px), sentence case */
#research .rs-title{
  display:block; width:100%; box-sizing:border-box;
  background:#1F5C39; color:#fff; border-radius:14px; padding:7px 16px;
  font:600 20px/1.25 var(--font-heading,"Roboto","Helvetica Neue",Arial,sans-serif); letter-spacing:-.012em;
  margin:0 0 16px;
}
#research .rs-subtitle, #projects .rs-subtitle{
  display:inline-block; background:#1F5C8C; color:#fff; border-radius:14px; padding:7px 16px;
  font:600 20px/1.25 var(--font-heading,"Roboto","Helvetica Neue",Arial,sans-serif); letter-spacing:-.012em;
  margin:30px 0 14px;
}
#research .rs-colh{ font:700 15px var(--font-heading,Arial); color:#1F5C8C; margin:0 0 8px; }

/* Text blocks — full width, readable, no bordered cards */
#research .rs-intro p, #research .rs-block p, #projects .rs-block-intro{
  font-size:15.5px; line-height:1.72; color:var(--ink-soft,#3E4A3D); margin:0 0 12px; max-width:none;
}
#research .rs-block{ margin:0 0 6px; }

/* Approach sequence */
#research .rs-seq{ display:flex; flex-wrap:wrap; align-items:center; gap:6px 8px; margin:16px 0 6px; }
#research .rs-seq-step{ font:600 12.5px/1.3 Arial; color:#1F5C39; background:#E8F4EC; border:1px solid #C6E2D0; border-radius:999px; padding:5px 11px; }
#research .rs-seq-arrow{ color:#5E6B62; font-size:13px; }

/* Two experimental columns */
#research .rs-twocol{ display:grid; grid-template-columns:1fr 1fr; gap:26px 40px; margin:8px 0 4px; align-items:start; }
#research .rs-inlinelink{ margin:8px 0 0; }
#research .rs-link, #research .rs-inlinelink a{ color:#1F5C39; font-weight:600; text-decoration:none; }
#research .rs-link:hover, #research .rs-inlinelink a:hover{ color:#17492D; text-decoration:underline; }
@media (max-width:820px){ #research .rs-twocol{ grid-template-columns:1fr; gap:20px; } }

/* De-border the study portfolio → continuous narrative */
#area2 .ms-portfolio{ display:block; }
#area2 .ms-study, #area2 .ms-featured, #area2 .ms-wide{
  grid-column:auto; border:0; border-top:1px solid var(--rule); border-radius:0;
  background:transparent; box-shadow:none; padding:24px 0 10px;
}
#area2 .ms-study:first-child{ border-top:0; }
#area2 .ms-study:hover{ transform:none; box-shadow:none; }
.valo-diagram{ border:0; }

/* Expandable details (studies + internships) */
.rs-details-toggle{
  margin-top:10px; display:inline-flex; align-items:center; gap:6px;
  background:none; border:0; padding:5px 2px; cursor:pointer;
  color:#1F5C39; font:600 13.5px/1.2 Arial;
}
.rs-details-toggle:hover{ color:#17492D; }
.rs-details-toggle:focus-visible{ outline:2px solid rgba(31,92,57,.42); outline-offset:3px; border-radius:4px; }
.rs-details-toggle::after{ content:"\25BE"; font-size:11px; }
.rs-details-toggle[aria-expanded="true"]::after{ content:"\25B4"; }
.rs-details[hidden]{ display:none; }
.rs-details{ opacity:0; transform:translateY(-4px); transition:opacity .3s ease, transform .3s ease; margin-top:10px; }
.rs-details.is-open{ opacity:1; transform:none; }
#area2 .rs-details .ms-detfig{ margin-top:10px; }
#area2 .rs-details .ms-detfig .ms-figure{ max-width:100%; }
@media (prefers-reduced-motion: reduce){ .rs-details{ transition:none; } }

/* Projects — clean key/value, no heavy cards */
#projects .rs-projects{ display:grid; grid-template-columns:1fr 1fr; gap:24px 38px; margin:6px 0 6px; }
@media (max-width:820px){ #projects .rs-projects{ grid-template-columns:1fr; gap:20px; } }
#projects .rs-project h4{ font:600 15.5px var(--font-heading); color:var(--ink); margin:0 0 8px; }
#projects .rs-meta{ margin:0; }
#projects .rs-row{ display:grid; grid-template-columns:minmax(96px,auto) 1fr; gap:2px 14px; padding:3px 0; }
#projects .rs-row dt{ color:#5E6B62; font:700 11px/1.5 Arial; text-transform:uppercase; letter-spacing:.03em; }
#projects .rs-row dd{ margin:0; color:var(--ink); font-size:14px; line-height:1.55; }
#projects .rs-status--on{ color:#1F5C39; font-weight:700; }
#projects .rs-status--done{ color:#5E6B62; font-weight:700; }
#projects .rs-project .rs-link{ display:inline-block; margin-top:8px; color:#1F5C39; font-weight:600; font-size:13.5px; text-decoration:none; }
#projects .rs-project .rs-link:hover{ text-decoration:underline; }

/* Supervision */
#projects .rs-sup{ margin:2px 0 6px; }
#projects .rs-sup-h{ font:700 12.5px var(--font-heading); color:#1F5C39; text-transform:uppercase; letter-spacing:.04em; margin:20px 0 8px; }
#projects .rs-sup-item{ margin:0 0 14px; }
#projects .rs-sup-name{ font-weight:700; color:var(--ink); margin:0 0 4px; }
#projects .rs-intern-list{ list-style:none; padding:0; margin:10px 0 0; }
#projects .rs-intern{ padding:9px 0; border-top:1px solid var(--rule); font-size:14px; line-height:1.55; color:var(--ink); }
#projects .rs-intern-name{ font-weight:600; }
#projects .rs-intern-year{ color:#5E6B62; }

/* Awards — clean vertical timeline */
#projects .rs-timeline{ list-style:none; padding:0; margin:6px 0 0; }
#projects .rs-tl-item{ display:grid; grid-template-columns:88px 1fr; gap:16px; padding:10px 0; border-top:1px solid var(--rule); align-items:baseline; }
#projects .rs-tl-year{ font:700 14px var(--font-heading); color:#1F5C39; }
#projects .rs-tl-text{ color:var(--ink); font-size:14px; line-height:1.55; }

/* ============ Research rebuild v2 — editorial rows, cards, columns ============ */
#research .rs-valo-h{ font:700 16px var(--font-heading,Arial); color:#1F5C8C; margin:28px 0 6px; }
#research .valo-diagram{ margin:4px 0 8px; border:0; }
#research .valo-diagram .valo-scroll-hint{ margin-top:0; }

/* Experimental pathways — white cards with a green editorial rule */
#research .rs-expcards{ display:grid; grid-template-columns:1fr 1fr; gap:20px; margin:12px 0 6px; align-items:stretch; }
#research .rs-expcard{ display:flex; flex-direction:column; border:1px solid var(--ds-rule,#D7E0E7); border-left:4px solid var(--ds-green,#1F5C39); border-radius:12px; background:var(--ds-surface,#fff); box-shadow:0 3px 12px rgba(19,50,77,.06); padding:15px 17px; }
#research .rs-expcard-h{ background:transparent; color:var(--ds-green,#1F5C39); margin:0 0 11px; padding:0; font:700 15px/1.3 var(--font-heading,Arial); min-height:0; display:block; }
#research .rs-expcard-body{ background:transparent; padding:0; flex:1 1 auto; }
#research .rs-expcard-body p{ margin:0 0 10px; font-size:14.5px; line-height:1.65; color:#2c3a30; }
#research .rs-expcard-body p:last-child{ margin-bottom:0; }
@media (max-width:760px){ #research .rs-expcards{ grid-template-columns:1fr; } }

/* Modeling / Simulation — white cards with a blue editorial rule */
#research .rs-modsim{ display:grid; grid-template-columns:1fr 1fr; gap:20px; margin:12px 0 6px; align-items:stretch; }
#research .rs-modsim-col{ display:flex; flex-direction:column; border:1px solid var(--ds-rule,#D7E0E7); border-left:4px solid var(--ds-blue,#1F5C8C); border-radius:12px; background:var(--ds-surface,#fff); box-shadow:0 3px 12px rgba(19,50,77,.06); padding:15px 17px; }
#research .rs-modsim .rs-colh{ font:700 15px/1.3 var(--font-heading,Arial); color:var(--ds-blue,#1F5C8C); background:transparent; margin:0 0 11px; padding:0; min-height:0; display:block; }
#research .rs-modsim p{ font-size:14.5px; line-height:1.66; color:var(--ink-soft,#3E4A3D); margin:0 0 10px; }
#research .rs-modsim p:last-child{ margin-bottom:0; }
@media (max-width:820px){ #research .rs-modsim{ grid-template-columns:1fr; gap:18px; } }

/* Project (study) editorial blocks */
#area2 .rs-proj .rs-proj-title{ font:700 18px var(--font-heading,Arial); color:#17324D; margin:0 0 10px; line-height:1.3; }
#area2 .rs-proj-intro p{ font-size:15px; line-height:1.7; color:var(--ink-soft,#3E4A3D); margin:0 0 10px; }
#area2 .rs-row{ display:grid; grid-template-columns:1.12fr 0.9fr; gap:22px 34px; align-items:center; margin:18px 0; }
#area2 .rs-row--figleft{ grid-template-columns:0.9fr 1.12fr; }
#area2 .rs-row--pair{ grid-template-columns:1fr 1fr; }
#area2 .rs-row-text{ order:1; } #area2 .rs-row-media{ order:2; }
#area2 .rs-row--figleft .rs-row-media{ order:1; } #area2 .rs-row--figleft .rs-row-text{ order:2; }
#area2 .rs-row--pair .rs-row-media{ order:1; } #area2 .rs-row--pair .rs-row-text{ order:2; }
#area2 .rs-inttitle{ font:700 15px var(--font-heading,Arial); color:#1F5C8C; margin:0 0 8px; }
#area2 .rs-row-text p{ font-size:14.5px; line-height:1.65; color:var(--ink,#17324D); margin:0 0 10px; }
#area2 .rs-row-text p:last-child{ margin-bottom:0; }
@media (max-width:820px){
  #area2 .rs-row, #area2 .rs-row--figleft, #area2 .rs-row--pair{ grid-template-columns:1fr; gap:12px; }
  #area2 .rs-row-text{ order:1 !important; } #area2 .rs-row-media{ order:2 !important; }
}

/* Figures — moderate, synchronized, click-to-enlarge preserved */
#area2 .rs-fig{ margin:0; }
#area2 .rs-fig .ms-thumb{ background:#fff; }
#area2 .rs-fig .ms-thumb img{ width:100%; height:auto; max-height:340px; object-fit:contain; }
#area2 .rs-fig-cap{ margin-top:6px; }
#area2 .rs-fig-lbl{ display:block; font:700 12px var(--font-heading,Arial); color:#1F5C39; }
#area2 .rs-fig-desc{ display:block; font:12px/1.5 Arial; color:#5E6B62; }
#area2 .rs-figpair{ display:grid; grid-template-columns:1fr 1fr; gap:12px; }
#area2 .rs-figpair .ms-thumb{ height:210px; display:flex; align-items:center; justify-content:center; }
#area2 .rs-figpair .ms-thumb img{ width:auto; max-width:100%; height:auto; max-height:100%; }
@media (max-width:820px){ #area2 .rs-figpair{ grid-template-columns:1fr; } #area2 .rs-figpair .ms-thumb{ height:auto; } }

/* Keywords line + publication link */
#area2 .rs-keywords{ margin:14px 0 0; font-size:13px; line-height:1.7; color:#3E4A3D; }
#area2 .rs-kw-lbl{ font-weight:700; color:#1F5C39; }
#area2 .rs-kw-sep{ color:#9fb0a4; }
#area2 .rs-publink{ margin-top:12px; }

/* Experimental-approach infrastructure link (inline) */
#research .rs-block-link{ margin:10px 0 0; font-size:15.5px; line-height:1.7; color:var(--ink-soft,#3E4A3D); }
#research .rs-link{ color:#1F5C39; font-weight:600; text-decoration:none; }
#research .rs-link:hover{ color:#17492D; text-decoration:underline; }
#research .rs-link:focus-visible{ outline:2px solid rgba(31,92,57,.42); outline-offset:2px; border-radius:2px; }
#research .rs-infra-chip{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  margin-left:4px;
  padding:7px 14px;
  border-radius:10px;
  background:var(--color-green,#1F5C39);
  color:#fff;
  font:700 14px/1.2 var(--font-interface,"Roboto","Helvetica Neue",Arial,sans-serif);
  text-decoration:none;
  white-space:nowrap;
}
#research .rs-infra-chip:hover{background:#17492D;color:#fff;text-decoration:none;}

/* Ongoing / completed project cards */
#projects .rs-cards{ display:grid; gap:20px; margin:8px 0 6px; }
#projects .rs-cards--2{ grid-template-columns:1fr 1fr; }
#projects .rs-cards--3{ grid-template-columns:1fr 1fr 1fr; }
@media (max-width:900px){ #projects .rs-cards--3{ grid-template-columns:1fr 1fr; } }
@media (max-width:680px){ #projects .rs-cards--2, #projects .rs-cards--3{ grid-template-columns:1fr; } }
#projects .rs-card{ display:flex; flex-direction:column; background:#fff; border:1px solid var(--rule); border-radius:14px; padding:16px 18px; box-shadow:0 3px 12px rgba(20,26,20,.06); }
#projects .rs-card-title{ font:700 15px var(--font-heading,Arial); color:#17324D; margin:0 0 4px; line-height:1.3; }
#projects .rs-card-type{ font:600 11px var(--font-heading,Arial); color:#1F5C39; text-transform:uppercase; letter-spacing:.04em; margin:0 0 10px; }
#projects .rs-card .rs-meta{ margin:0; }
#projects .rs-row2{ display:grid; grid-template-columns:minmax(82px,auto) 1fr; gap:1px 12px; padding:3px 0; }
#projects .rs-row2 dt{ color:#5E6B62; font:700 10.5px/1.5 var(--font-heading,Arial); text-transform:uppercase; letter-spacing:.03em; }
#projects .rs-row2 dd{ margin:0; color:var(--ink); font-size:13.5px; line-height:1.5; }
#projects .rs-status--on{ color:#1F5C39; font-weight:700; }
#projects .rs-status--done{ color:#5E6B62; font-weight:700; }
#projects .rs-card-kw{ margin:8px 0 0; font-size:12.5px; color:#3E4A3D; }
#projects .rs-card-kw .rs-kw-lbl{ font-weight:700; color:#1F5C39; }
#projects .rs-cardlink{ margin-top:auto; padding-top:10px; color:#1F5C39; font-weight:600; font-size:13px; text-decoration:none; }
#projects .rs-cardlink:hover{ text-decoration:underline; }

/* Supervision — continuous compact list */
#projects .rs-suplist{ margin:8px 0 6px; }
#projects .rs-sup-row{ padding:12px 0; border-top:1px solid var(--rule); }
#projects .rs-sup-row:first-child{ border-top:0; }
#projects .rs-sup-name{ font-weight:700; color:var(--ink); margin:0 0 3px; }
#projects .rs-sup-topic{ margin:0 0 3px; font-size:14px; color:var(--ink-soft,#3E4A3D); line-height:1.5; }
#projects .rs-sup-meta{ margin:0; font-size:12.5px; color:#5E6B62; line-height:1.5; }

/* Project cards restored to the compact .pcard style — pale-green body,
   thin dark-green border, green uppercase field labels (scoped to #projects). */
#projects .pcard{ background:#F1F8F3; border:1px solid #1F5C39; border-left:1px solid #1F5C39; border-radius:12px; box-shadow:0 2px 8px rgba(31,92,57,.07); }
#projects .pcard-k{ color:#1F5C39; }
#projects .pcard-status{ color:#1F5C39; }
#projects .pcard a{ color:#1F5C39; font-weight:600; text-decoration:none; }
#projects .pcard a:hover{ text-decoration:underline; color:#17492D; }

/* ============================================================
   "Algunos proyectos destacados" — featured lead + list layout,
   reference-inspired (screenshot). Scoped to .featured-projects.
   Local colour variables (test palette; adjustable, not global).
   ============================================================ */
.featured-projects{
  --fp-accent:#e6007e;          /* magenta arrow / accent */
  --fp-category-bg:#f7e017;     /* yellow category chip */
  --fp-category-text:#17324d;
  --fp-title:#14202b;
  --fp-text:#3b434b;
  --fp-muted:#6b7178;
  --fp-link:#6f9c1b;            /* green read-more */
  --fp-border:#dcdedd;
  --fp-frame-bg:#fbfcfb;
  margin:8px 0 4px;
}
.featured-projects .featured-project-list{ display:block; }

/* shared thumbnail frame — consistent proportions, no destructive crop */
.featured-projects .featured-project-image{ margin:0; }
.featured-projects .featured-project-image .ms-thumb{
  display:flex; align-items:center; justify-content:center;
  width:100%; aspect-ratio:4/3; overflow:hidden; cursor:zoom-in;
  background:var(--fp-frame-bg); border:1px solid var(--fp-border); border-radius:6px;
}
.featured-projects .featured-project-image .ms-thumb img{
  width:100%; height:100%; object-fit:contain; background:#fff; transition:transform .25s ease;
}
.featured-projects .featured-project-image .ms-thumb:hover img{ transform:scale(1.02); }
.featured-projects .featured-project-image .ms-thumb-zoom{ right:6px; bottom:6px; }

/* category chip */
.featured-projects .featured-project-category{
  display:inline-block; background:var(--fp-category-bg); color:var(--fp-category-text);
  font:700 11px/1 var(--font-heading,Arial); text-transform:uppercase; letter-spacing:.05em;
  padding:5px 9px; border-radius:2px; margin:0 0 8px;
}
/* title / summary */
.featured-projects .featured-project-title{ font:700 17px/1.32 var(--font-heading,Arial); color:var(--fp-title); margin:0 0 8px; }
.featured-projects .featured-project-summary{ font:14px/1.6 Arial; color:var(--fp-text); margin:0 0 12px; max-width:70ch; }
/* read-more link with arrow */
.featured-projects .featured-project-link{
  align-self:flex-start; display:inline-flex; align-items:center; gap:6px;
  color:var(--fp-link); font:italic 600 13.5px var(--font-heading); text-decoration:none; padding:2px 0;
}
.featured-projects .featured-project-link .fp-arrow{ color:var(--fp-accent); font-style:normal; font-weight:700; transition:transform .18s ease; }
.featured-projects .featured-project-link:hover{ text-decoration:underline; }
.featured-projects .featured-project-link:hover .fp-arrow{ transform:translateX(3px); }
.featured-projects .featured-project-link:focus-visible{ outline:2px solid var(--fp-accent); outline-offset:3px; border-radius:2px; }

/* lead item — big image on top, text below */
.featured-projects .featured-project-lead{ display:block; margin:0 0 18px; padding:0 0 20px; border-bottom:3px solid #ececec; }
.featured-projects .featured-project-image--lead .ms-thumb{ aspect-ratio:16/7; max-height:320px; }
.featured-projects .featured-project-lead .featured-project-body{ display:flex; flex-direction:column; margin-top:14px; }
.featured-projects .featured-project-lead .featured-project-title{ font-size:23px; line-height:1.25; }
.featured-projects .featured-project-lead .featured-project-summary{ font-size:15px; }

/* smaller items — thumbnail left, text right; list rows */
.featured-projects .featured-project-card{
  display:grid; grid-template-columns:210px 1fr; gap:8px 22px; align-items:start;
  padding:20px 0; border-top:1px solid var(--fp-border);
}
.featured-projects .featured-project-card .featured-project-body{ display:flex; flex-direction:column; }
.featured-projects .featured-project-card .featured-project-image{ grid-row:1 / span 2; }

@media (max-width:820px){
  .featured-projects .featured-project-card{ grid-template-columns:1fr; gap:12px; }
  .featured-projects .featured-project-card .featured-project-image{ grid-row:auto; max-width:340px; }
  .featured-projects .featured-project-image--lead .ms-thumb{ aspect-ratio:16/9; }
}
@media (prefers-reduced-motion: reduce){
  .featured-projects .featured-project-image .ms-thumb img{ transition:none; }
  .featured-projects .featured-project-image .ms-thumb:hover img{ transform:none; }
  .featured-projects .featured-project-link .fp-arrow{ transition:none; }
  .featured-projects .featured-project-link:hover .fp-arrow{ transform:none; }
}

/* ---- Compact uniform editorial cards (no hero lead) — overrides ---- */
.featured-projects{ --fp-date:#6f9c1b; }
.featured-projects .featured-project-list{ display:block; }
.featured-projects .featured-project-item{
  display:grid; grid-template-columns:150px 1fr; gap:6px 20px; align-items:start;
  padding:20px 0; border-top:1px solid var(--fp-border);
}
.featured-projects .featured-project-item:first-child{ border-top:0; padding-top:6px; }
.featured-projects .featured-project-list{ display:grid; gap:18px; }
.featured-projects .featured-project-item{
  display:grid;
  grid-template-columns:150px 1fr;
  gap:8px 20px;
  align-items:start;
  padding:18px 20px;
  margin:0;
  border:1px solid rgba(31,92,140,.22);
  border-left:4px solid var(--color-blue);
  border-radius:12px;
  background:transparent;
  box-shadow:0 3px 12px rgba(19,50,77,.06);
}
.featured-projects .featured-project-item:first-child{ padding-top:18px; }
.featured-projects .featured-project-cluster{
  padding:18px 20px;
  border:1px solid rgba(31,92,140,.22);
  border-left:4px solid var(--color-blue);
  border-radius:12px;
  background:transparent;
  box-shadow:0 3px 12px rgba(19,50,77,.06);
}
.featured-projects .featured-project-cluster-head{
  display:flex; align-items:flex-start; justify-content:space-between; gap:16px; margin:0 0 14px;
}
.featured-projects .featured-project-cluster-title{ font:700 18px/1.34 var(--font-heading,Arial); color:var(--fp-title); margin:0; }
.featured-projects .featured-project-cluster-date{ color:var(--fp-date); font:700 12px/1.2 Arial; white-space:nowrap; margin-top:2px; }
.featured-projects .featured-project-cluster-body{ display:grid; gap:18px; }
.featured-projects .featured-project-cluster-body .featured-project-item{
  border:0; box-shadow:none; border-radius:0; padding:0; background:transparent; margin:0;
}
.featured-projects .featured-project-cluster-body .featured-project-item + .featured-project-item{
  padding-top:18px; border-top:1px solid var(--fp-border);
}
.featured-projects .project-box{
  padding:18px 20px;
  border:1px solid rgba(31,92,140,.22);
  border-left:4px solid var(--color-blue);
  border-radius:12px;
  background:transparent;
  box-shadow:0 3px 12px rgba(19,50,77,.06);
}
.featured-projects .project-box + .project-box{ margin-top:18px; }
.featured-projects .project-box > .featured-project-item{
  border:0 !important;
  box-shadow:none !important;
  padding:0 !important;
  margin:0 !important;
  background:transparent !important;
}
.featured-projects .project-box > .featured-project-item.featured-project-item--group,
.featured-projects .project-box > .featured-project-item.featured-project-item--group2{
  display:block;
}
.featured-projects .project-box > .featured-project-cluster{
  border:0 !important;
  box-shadow:none !important;
  padding:0 !important;
  margin:0 !important;
  background:transparent !important;
}
.featured-projects .featured-project-triple{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:20px;
  align-items:start;
}
.featured-projects .featured-project-triple .fp-pair-fig{
  min-width:0;
  margin:0;
  display:flex;
  flex-direction:column;
  height:100%;
}
.featured-projects .featured-project-triple .featured-project-image{
  margin-bottom:10px;
}
.featured-projects .featured-project-triple .ms-thumb{
  width:100%;
  max-width:none;
}
.featured-projects .featured-project-triple .ms-thumb img{
  width:100%;
  height:220px;
  object-fit:contain;
}
.featured-projects .featured-project-triple .fp-fig-cap{
  flex:1;
}
@media(max-width:1000px){
  .featured-projects .featured-project-triple{grid-template-columns:1fr 1fr;}
}
@media(max-width:680px){
  .featured-projects .featured-project-triple{grid-template-columns:1fr;}
  .featured-projects .featured-project-triple .ms-thumb img{height:auto;}
}
@media (max-width:820px){
  .featured-projects .project-box{ padding:16px; }
}
@media (max-width:820px){
  .featured-projects .featured-project-item{ grid-template-columns:1fr; }
  .featured-projects .featured-project-cluster-head{ flex-direction:column; }
  .featured-projects .featured-project-cluster-body .featured-project-item{ grid-template-columns:1fr; }
}
.featured-projects .featured-project-item .featured-project-image{ align-self:start; }
.featured-projects .featured-project-item .featured-project-image .ms-thumb{ aspect-ratio:4/3; max-width:150px; }
.featured-projects .featured-project-content{ display:flex; flex-direction:column; min-width:0; }
.featured-projects .featured-project-head{
  display:flex; align-items:center; justify-content:space-between; gap:10px; flex-wrap:wrap; margin:0 0 6px;
}
.featured-projects .featured-project-head .featured-project-category{ margin:0; }
.featured-projects .featured-project-date{ color:var(--fp-date); font:700 12.5px var(--font-heading,Arial); white-space:nowrap; }
.featured-projects .featured-project-item .featured-project-title{ font-size:17px; line-height:1.32; margin:0 0 7px; }
.featured-projects .featured-project-item .featured-project-summary{ font-size:14px; line-height:1.6; margin:0 0 10px; max-width:none; }
.featured-projects .featured-project-item .featured-project-link{ align-self:flex-start; margin-top:auto; }

@media (max-width:640px){
  .featured-projects .featured-project-item{ grid-template-columns:1fr; gap:12px; }
  .featured-projects .featured-project-item .featured-project-image{ max-width:230px; }
  .featured-projects .featured-project-item .featured-project-image .ms-thumb{ max-width:230px; }
}

/* ---- Featured cards: label overlaid on image, no letterbox whitespace ---- */
.featured-projects .featured-project-image{ position:relative; align-self:start; }
.featured-projects .featured-project-image .ms-thumb{
  aspect-ratio:auto; height:auto; width:100%; max-width:150px; display:block;
  background:#fff; border:1px solid var(--fp-border); border-radius:6px; overflow:hidden; cursor:zoom-in;
}
.featured-projects .featured-project-image .ms-thumb img{ display:block; width:100%; height:auto; object-fit:contain; }
/* yellow category label overlaid on the image, upper-right, touching it */
.featured-projects .featured-project-image .featured-project-category{
  position:absolute; top:7px; right:6px; margin:0; z-index:2; box-shadow:0 1px 3px rgba(0,0,0,.2);
}
/* head row: title left, date right */
.featured-projects .featured-project-head{
  display:flex; align-items:baseline; justify-content:space-between; gap:12px; flex-wrap:wrap; margin:0 0 6px;
}
.featured-projects .featured-project-head .featured-project-title{ margin:0; flex:1 1 auto; min-width:0; }
.featured-projects .featured-project-date{ flex:0 0 auto; }
/* sub-visual cards grouped under their project (no divider, lighter heading) */
.featured-projects .featured-project-item--sub{ border-top:0; padding-top:2px; padding-bottom:16px; }
.featured-projects .featured-project-subtitle{ font-size:14.5px; color:#33475b; font-weight:700; }

/* ---- Grouped same-article visuals (P1 three, P2/P3 pairs) ---- */
.featured-projects .featured-project-item--group,
.featured-projects .featured-project-item--group2{ display:block; }
.featured-projects .featured-project-item--group .featured-project-head,
.featured-projects .featured-project-item--group2 .featured-project-head{ margin:0 0 4px; }
.featured-projects .featured-project-item--group .featured-project-summary,
.featured-projects .featured-project-item--group2 .featured-project-summary{ margin:0 0 12px; max-width:none; }
/* P1: agitation pair (left) + multiphysics & text (right) */
.featured-projects .featured-project-item--group .fp-group{
  display:grid; grid-template-columns:minmax(0,1.05fr) minmax(0,0.95fr); gap:16px 26px; align-items:start;
}
.featured-projects .fp-pair{ display:grid; grid-template-columns:1fr 1fr; gap:12px; }
.featured-projects .featured-project-item--group2 .fp-pair--2{ display:grid; grid-template-columns:1fr 1fr; gap:22px 26px; }
.featured-projects .fp-pair-fig{ margin:0; display:flex; flex-direction:column; }
.featured-projects .fp-fig-cap{ font:13px/1.55 Arial; color:var(--fp-text); margin:8px 0 8px; }
.featured-projects .fp-group-left .featured-project-link,
.featured-projects .fp-group-right .featured-project-link,
.featured-projects .fp-pair-fig .featured-project-link{ align-self:flex-start; margin-top:auto; }
/* grouped thumbnails fill their cell (still modest) */
.featured-projects .featured-project-item--group .fp-pair .featured-project-image .ms-thumb{ max-width:100%; }
.featured-projects .featured-project-item--group .fp-group-right .featured-project-image .ms-thumb{ max-width:260px; }
.featured-projects .featured-project-item--group2 .fp-pair--2 .featured-project-image .ms-thumb{ max-width:100%; }
@media (max-width:820px){
  .featured-projects .featured-project-item--group .fp-group{ grid-template-columns:1fr; }
  .featured-projects .featured-project-item--group2 .fp-pair--2{ grid-template-columns:1fr; }
}
@media (max-width:520px){
  .featured-projects .fp-pair{ grid-template-columns:1fr; }
}

/* ============================================================
   Highlighted projects — final editorial list.
   This block is intentionally scoped to .featured-projects so no other
   Research content or page section is affected.
   ============================================================ */
.featured-projects{
  --fp-separator:#8f9a91;
  --fp-title:#15231c;
  --fp-text:#34433a;
  margin-top:10px;
}
.featured-projects .featured-project-item,
.featured-projects .featured-project-item.featured-project-item--group,
.featured-projects .featured-project-item.featured-project-item--group2{
  display:grid;
  grid-template-columns:minmax(220px, 270px) minmax(0, 1fr);
  gap:28px;
  align-items:start;
  padding:28px 0 30px;
  border-top:1px dotted var(--fp-separator);
}
.featured-projects .featured-project-item:first-child{
  padding-top:10px;
  border-top:0;
}
.featured-projects .featured-project-item > .featured-project-image,
.featured-projects .featured-project-media{
  width:100%;
  min-width:0;
  overflow:visible;
}
.featured-projects .featured-project-item > .featured-project-image .ms-thumb,
.featured-projects .featured-project-media .ms-thumb{
  width:100%;
  max-width:none;
  border:1px solid #c9cec9;
  border-radius:2px;
  background:#fff;
}
.featured-projects .featured-project-item > .featured-project-image .ms-thumb img,
.featured-projects .featured-project-media .ms-thumb img{
  display:block;
  width:100%;
  height:auto;
  background:#fff;
  object-fit:contain;
}
.featured-projects .featured-project-image .featured-project-category{
  top:8px;
  right:-16px;
  max-width:calc(100% - 12px);
  padding:6px 10px;
  box-shadow:none;
  font-size:10.5px;
  line-height:1.15;
  letter-spacing:.035em;
}
.featured-projects .featured-project-content{
  display:flex;
  flex-direction:column;
  min-width:0;
  align-self:stretch;
}
.featured-projects .featured-project-head{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:18px;
  flex-wrap:nowrap;
  margin:0 0 9px;
}
.featured-projects .featured-project-item .featured-project-title{
  margin:0;
  color:var(--fp-title);
  font-size:20px;
  line-height:1.23;
  font-weight:750;
}
.featured-projects .featured-project-date{
  margin-top:4px;
  color:#6f9c1b;
  font-size:12.5px;
  line-height:1.2;
  font-weight:700;
}
.featured-projects .featured-project-item .featured-project-summary{
  max-width:none;
  margin:0 0 8px;
  color:var(--fp-text);
  font-size:15px;
  line-height:1.55;
}
.featured-projects .featured-project-detail{
  margin:6px 0 0;
  color:#566159;
  font-size:13.5px;
  line-height:1.5;
}
.featured-projects .featured-project-link{
  align-self:flex-end;
  margin-top:auto;
  padding-top:10px;
  font-size:13.5px;
}

/* First project: the CFD and experimental agitation views read as one
   composite visual. Its third, multiphysics view remains directly below. */
.featured-projects .featured-project-item--group .featured-project-media{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:8px;
}
.featured-projects .featured-project-item--group .featured-project-media > .featured-project-image:nth-child(-n+2) .ms-thumb{
  height:180px;
}
.featured-projects .featured-project-item--group .featured-project-media > .featured-project-image:nth-child(-n+2) .ms-thumb img{
  height:100%;
}
.featured-projects .featured-project-item--group .featured-project-media > .featured-project-image:nth-child(3){
  grid-column:1 / -1;
}

/* The other multi-image projects keep their images in a compact side column. */
.featured-projects .featured-project-item--group2 .featured-project-media{
  display:grid;
  grid-template-columns:1fr;
  gap:10px;
}

@media (max-width:820px){
  .featured-projects .featured-project-item,
  .featured-projects .featured-project-item.featured-project-item--group,
  .featured-projects .featured-project-item.featured-project-item--group2{
    grid-template-columns:minmax(190px, 230px) minmax(0, 1fr);
    gap:22px;
  }
  .featured-projects .featured-project-item .featured-project-title{ font-size:18px; }
  .featured-projects .featured-project-item .featured-project-summary{ font-size:14.5px; }
  .featured-projects .featured-project-image .featured-project-category{ right:-10px; }
}

@media (max-width:640px){
  .featured-projects .featured-project-item,
  .featured-projects .featured-project-item.featured-project-item--group,
  .featured-projects .featured-project-item.featured-project-item--group2{
    grid-template-columns:1fr;
    gap:16px;
    padding:24px 0 26px;
  }
  .featured-projects .featured-project-item > .featured-project-image,
  .featured-projects .featured-project-media{
    width:min(100%, 430px);
    max-width:430px;
  }
  .featured-projects .featured-project-image .featured-project-category{
    right:8px;
    max-width:calc(100% - 16px);
  }
  .featured-projects .featured-project-head{
    gap:10px;
    flex-wrap:wrap;
  }
  .featured-projects .featured-project-item .featured-project-title{
    flex-basis:100%;
    font-size:18px;
  }
  .featured-projects .featured-project-date{ margin-top:0; }
  .featured-projects .featured-project-link{ align-self:flex-start; }
}

@media (max-width:420px){
  .featured-projects .featured-project-item--group .featured-project-media > .featured-project-image:nth-child(-n+2) .ms-thumb{
    height:145px;
  }
  .featured-projects .featured-project-image .featured-project-category{
    font-size:9.5px;
    padding:5px 7px;
  }
}

/* ============================================================
   Highlighted projects — corrected hierarchy:
   project title/overview, then one image + explanation row per result.
   ============================================================ */
#area2 .featured-projects .featured-project-item.featured-project-item--results{
  display:block;
  padding:30px 0 32px;
  border-top:1px dotted #89958c;
}
#area2 .featured-projects .featured-project-item.featured-project-item--results:first-child{
  padding-top:10px;
  border-top:0;
}
#area2 .featured-projects .featured-project-overview{
  display:block;
  margin:0 0 15px;
}
#area2 .featured-projects .featured-project-overview .featured-project-head{
  margin:0 0 8px;
}
#area2 .featured-projects .featured-project-overview .featured-project-title{
  font-size:21px;
  line-height:1.25;
  font-weight:750;
}
#area2 .featured-projects .featured-project-overview .featured-project-summary{
  width:100%;
  max-width:none;
  margin:0;
  color:#35433a;
  font-size:15px;
  line-height:1.58;
}
#area2 .featured-projects .featured-project-results{
  display:block;
}
#area2 .featured-projects .featured-project-result{
  display:grid;
  grid-template-columns:minmax(330px, 390px) minmax(0, 1fr);
  gap:34px;
  align-items:center;
  padding:15px 0 17px;
}
#area2 .featured-projects .featured-project-result + .featured-project-result{
  margin-top:2px;
  padding-top:20px;
  border-top:1px solid #e0e5e1;
}
#area2 .featured-projects .featured-project-result-media{
  display:grid;
  grid-template-columns:1fr;
  gap:8px;
  width:100%;
  min-width:0;
  overflow:visible;
}
#area2 .featured-projects .featured-project-result-media .featured-project-image{
  position:relative;
  width:100%;
  min-width:0;
  overflow:visible;
}
#area2 .featured-projects .featured-project-result-media .ms-thumb{
  display:block;
  width:100%;
  max-width:none;
  height:auto;
  overflow:hidden;
  border:1px solid #c6ccc7;
  border-radius:2px;
  background:#fff;
}
#area2 .featured-projects .featured-project-result-media .ms-thumb img{
  display:block;
  width:100%;
  height:auto;
  object-fit:contain;
  background:#fff;
}
#area2 .featured-projects .featured-project-result-media .ms-thumb:hover img{
  transform:none;
}

/* Experimental and CFD agitation views: identical frames, vertically joined. */
#area2 .featured-projects .featured-project-result--hydrodynamics .ms-thumb{
  height:215px;
}
#area2 .featured-projects .featured-project-result--hydrodynamics .ms-thumb img{
  width:100%;
  height:100%;
  object-fit:contain;
}

/* Yellow result label straddles the right edge of its image. */
#area2 .featured-projects .featured-project-result-media .featured-project-category{
  position:absolute;
  top:9px;
  right:-19px;
  z-index:3;
  display:inline-block;
  max-width:calc(100% - 18px);
  margin:0;
  padding:6px 10px;
  border-radius:0;
  box-shadow:none;
  background:#f2df00;
  color:#17324d;
  font:700 10.5px/1.15 var(--font-heading,Arial);
  letter-spacing:.035em;
  text-transform:uppercase;
}
#area2 .featured-projects .featured-project-result-description{
  min-width:0;
  align-self:center;
  padding:0;
}
#area2 .featured-projects .featured-project-result-title{
  margin:0 0 8px;
  color:#15231c;
  font:750 18px/1.28 var(--font-heading,Arial);
}
#area2 .featured-projects .featured-project-result-text,
#area2 .featured-projects .featured-project-result-description .featured-project-summary{
  max-width:none;
  margin:0;
  color:#35433a;
  font:15px/1.58 Arial, sans-serif;
}

#area2 .featured-projects .featured-project-item--results > .featured-project-link{
  display:flex;
  width:max-content;
  margin:2px 0 0 auto;
  padding-top:5px;
  align-items:center;
}

@media (max-width:820px){
  #area2 .featured-projects .featured-project-result{
    grid-template-columns:minmax(260px, 315px) minmax(0, 1fr);
    gap:28px;
  }
  #area2 .featured-projects .featured-project-result--hydrodynamics .ms-thumb{ height:190px; }
  #area2 .featured-projects .featured-project-overview .featured-project-title{ font-size:19px; }
  #area2 .featured-projects .featured-project-result-title{ font-size:17px; }
}

@media (max-width:640px){
  #area2 .featured-projects .featured-project-item.featured-project-item--results{
    padding:25px 0 27px;
  }
  #area2 .featured-projects .featured-project-result{
    grid-template-columns:1fr;
    gap:15px;
    padding:13px 0 16px;
  }
  #area2 .featured-projects .featured-project-result-media{
    width:min(100%, 440px);
    max-width:440px;
  }
  #area2 .featured-projects .featured-project-result-media .featured-project-category{
    right:-8px;
  }
  #area2 .featured-projects .featured-project-result-description{ padding-top:0; }
  #area2 .featured-projects .featured-project-item--results > .featured-project-link{
    margin-left:0;
  }
}

@media (max-width:420px){
  #area2 .featured-projects .featured-project-result--hydrodynamics .ms-thumb{ height:175px; }
  #area2 .featured-projects .featured-project-result-media .featured-project-category{
    right:-5px;
    font-size:9.5px;
    padding:5px 7px;
  }
}

/* ============================================================
   collaboration.css
   Scoped styling for the "Collaboration and Services" section only.
   Every rule is prefixed with #collaboration.cs-scope so it can never
   affect any other page. It (a) unifies the section's identity colour
   to the site GREEN (#1F5C39) for both Collaboration and Services,
   and (b) styles the new sub-blocks (lists, notes, secondary button).
   Blue remains the identity colour everywhere else on the site.
   ============================================================ */

.cs-scope{
  --cs-green:#1F5C39;
  --cs-green-dark:#17492D;
  --cs-green-tint:#E8F4EC;
  --cs-green-ring:rgba(31,92,57,.34);
  --cs-ink-soft:#3E5145;
}

/* ---- Identity colour: recolour existing blue/teal accents to green ---- */
#collaboration.cs-scope .collab-domain-heading{ border-left-color:var(--cs-green); }
#collaboration.cs-scope .collab-domain-heading h2{ color:var(--cs-green); }
#collaboration.cs-scope .collab-services-domain .collab-domain-heading{ border-left-color:var(--cs-green); }
#collaboration.cs-scope .collab-services-domain .collab-domain-heading h2{ color:var(--cs-green); }

#collaboration.cs-scope .collab-section-title{ background:var(--cs-green); }
#collaboration.cs-scope .collab-services-domain .collab-section-title{ background:var(--cs-green); }

#collaboration.cs-scope .collab-scope-list li::before{ background:var(--cs-green); }

/* Primary call-to-action buttons (both domains) */
#collaboration.cs-scope .collab-action{ background:var(--cs-green); }
#collaboration.cs-scope .collab-action:hover{ background:var(--cs-green-dark); }
#collaboration.cs-scope .collab-action:focus-visible{ outline:3px solid var(--cs-green-ring); outline-offset:4px; }
#collaboration.cs-scope .collab-services-domain .collab-action{ background:var(--cs-green); }
#collaboration.cs-scope .collab-services-domain .collab-action:hover{ background:var(--cs-green-dark); }

/* Compact green invitation-to-collaborate box (white text), section green tokens */
#collaboration.cs-scope .collab-cta{ margin:18px 0 0; padding:14px 18px; border-radius:8px; background:var(--cs-green); color:#fff; font-size:14px; line-height:1.55; }
#collaboration.cs-scope .collab-cta a{ color:#fff; font-weight:700; text-decoration:underline; text-underline-offset:2px; }
#collaboration.cs-scope .collab-cta a:hover{ text-decoration:none; }
#collaboration.cs-scope .collab-cta a:focus-visible{ outline:2px solid #fff; outline-offset:2px; border-radius:3px; }

/* Interactive collaboration components: green focus / hover accents */
#collaboration.cs-scope #globe:focus-visible{ outline:3px solid var(--cs-green-ring); }
#collaboration.cs-scope .inst-logo{ border-color:rgba(31,92,57,.24); }
#collaboration.cs-scope .inst-card:hover .inst-name,
#collaboration.cs-scope .inst-card:focus-visible .inst-name{ color:var(--cs-green); }
#collaboration.cs-scope .inst-card:focus-visible{ outline-color:var(--cs-green-ring); }

/* ---- New sub-blocks introduced by the reorganisation ---- */
#collaboration.cs-scope .cs-subtitle{
  margin:6px 0 12px; color:var(--cs-green);
  font-family:"Roboto","Helvetica Neue",Arial,sans-serif; font-size:clamp(15px,1.5vw,17px);
  font-weight:700; letter-spacing:.01em;
}

#collaboration.cs-scope .cs-service-block{ margin:0 0 clamp(30px,4vw,44px); }
#collaboration.cs-scope .cs-service-block:last-child{ margin-bottom:0; }
#collaboration.cs-scope .cs-service-block > p{
  max-width:1000px; margin:0 0 14px; color:var(--cs-ink-soft);
  font-size:15.5px; line-height:1.66;
}

/* Green bullet lists (single column by default, two columns where useful) */
#collaboration.cs-scope .cs-list{
  max-width:1040px; margin:0 0 16px; padding:0; list-style:none;
}
#collaboration.cs-scope .cs-list--cols{
  display:grid; grid-template-columns:repeat(2,minmax(0,1fr));
  gap:0 clamp(26px,4vw,52px);
}
#collaboration.cs-scope .cs-list li{
  position:relative; padding:9px 6px 9px 20px;
  color:#3d4f42; font-size:14.5px; line-height:1.55;
}
#collaboration.cs-scope .cs-list li::before{
  content:""; position:absolute; left:2px; top:15px; width:6px; height:6px;
  border-radius:50%; background:var(--cs-green);
}

/* Short muted clarifying note under a block */
#collaboration.cs-scope .cs-note{
  max-width:1000px; margin:2px 0 16px; color:var(--cs-ink-soft);
  font-size:14px; line-height:1.6; font-style:normal;
}

/* Secondary (ghost) button — used for the infrastructure link */
#collaboration.cs-scope .cs-action--ghost{
  background:transparent; color:var(--cs-green);
  border:1.5px solid var(--cs-green);
}
#collaboration.cs-scope .cs-action--ghost:hover{ background:var(--cs-green); color:#fff; }
#collaboration.cs-scope .cs-action--ghost::after{ content:"\2192"; margin-left:8px; font-size:16px; }

/* Framework and deliverables spacing */
#collaboration.cs-scope #institutional-framework{ margin-top:clamp(30px,4vw,44px); }
#collaboration.cs-scope .services-contact{ margin-top:16px; }

/* Responsive: stack the two-column lists on narrow screens */
@media (max-width:760px){
  #collaboration.cs-scope .cs-list--cols{ grid-template-columns:1fr; }
}

/* ============================================================
   home.css
   Layout for the Home / Inicio / Accueil section only.
   Scoped to #home (the biography & press panels are mounted
   inside #home at runtime). Uses the site's existing tokens,
   colours, radius and chip/button language — no new palette.
   ============================================================ */

/* ---- Hero call-to-action buttons ---- */
#home .hv3-cta{
  display:flex; flex-wrap:wrap; gap:12px; margin-top:22px;
}
#home .hv3-btn{
  display:inline-flex; align-items:center; justify-content:center;
  min-height:44px; padding:11px 18px; border-radius:9px;
  font:700 13.5px/1.2 "Roboto","Helvetica Neue",Arial,sans-serif; text-decoration:none;
  border:1.6px solid #1F5C39; color:#1F5C39; background:transparent;
  transition:background .18s ease, color .18s ease, transform .18s ease;
}
#home .hv3-btn:hover{ background:#1F5C39; color:#fff; transform:translateY(-1px); }
#home .hv3-btn:focus-visible{ outline:3px solid rgba(31,92,57,.38); outline-offset:3px; }
#home .hv3-btn--primary{ background:#1F5C39; color:#fff; }
#home .hv3-btn--primary:hover{ background:#17492D; color:#fff; }

/* ---- Generic Home block rhythm ---- */
#home .home-content-section .home-block{ margin:0 0 clamp(20px,3vw,30px); }
#home .home-content-section .home-block:last-child{ margin-bottom:0; }

/* ---- ONE shared heading class for every main Home title ----
   All eight Home headings (Biografía, Investigación actual, Áreas de
   especialidad, Formación académica, Idiomas, Perfiles científicos y
   profesionales, Actualizaciones, Prensa y medios) carry
   .title-box.home-section-title. A single fixed font-size (no clamp/vw)
   guarantees an identical COMPUTED size on desktop, tablet and mobile.
   The compound selector .title-box.home-section-title (0,0,2,0) outranks
   the base .title-box rules (0,0,1,0) — including the one that sets
   font-size:var(--type-page-title) — so nothing enlarges these headings. */
.title-box.home-section-title{
  font-family:var(--font-heading);
  font-size:20px;          /* fixed — the Biografía reference size */
  line-height:1.25;
  font-weight:600;
  letter-spacing:-.012em;
  text-transform:none;     /* sentence case */
  padding:7px 16px;
  border-radius:14px;
  /* background:#1F5C8C and color:#fff are inherited from .title-box */
}
/* keep the identical fixed size at every breakpoint (beat any media query) */
@media (max-width:900px){ .title-box.home-section-title{ font-size:20px; padding:7px 16px; } }
@media (max-width:600px){ .title-box.home-section-title{ font-size:20px; padding:7px 16px; } }

/* Standardized heading spacing for all Home title bars */
#home .home-block .title-box{ margin:0 0 16px; }
#home .updates > .title-box{ margin:0 0 16px; }

/* Keep the contents of the two full-width blocks centered. Their title bars
   are aligned independently with the left edge below. */
#home .expertise-fullwidth,
#home .profiles-fullwidth{ text-align:center; margin-top:0; padding-top:0; border-top:0; }

/* Explicit left alignment for the requested Home title bars. */
#home #expertise-heading,
#home #profiles-heading,
#home .updates > .title-box.home-section-title{
  display:block; width:fit-content;
  margin-left:0 !important; margin-right:auto !important;
  text-align:left;
}

/* ---- Two-column blocks (bio+research, academic+languages) ---- */
#home .home-two-col{
  display:grid; grid-template-columns:repeat(2,minmax(0,1fr));
  gap:clamp(20px,3vw,34px); align-items:start;   /* natural heights, not forced equal */
}
#home .home-two-col .home-col{ min-width:0; }
#home .home-two-col .biography-copy p{
  margin:0 0 14px; color:var(--ink-soft,#3E4A3D);
  font-size:15.5px; line-height:1.72; max-width:62ch;
}
#home .home-two-col .biography-copy p:last-child{ margin-bottom:0; }
#home .research-col .biography-copy p{ max-width:none; }

/* Inline institutional links (acronyms only) — typographically integrated:
   same font/size/weight/line-height as the surrounding text, green, no
   permanent underline, discreet hover and focus. */
#home .bio-inst-link{
  color:#1F5C39; text-decoration:none; font:inherit; cursor:pointer;
  transition:color .15s ease;
}
#home .bio-inst-link:hover{ color:#17492D; }
#home .bio-inst-link:focus-visible{ outline:2px solid rgba(31,92,57,.42); outline-offset:2px; border-radius:2px; }

/* ---- Expandable Biography / Current Research ----
   Both columns collapse to ONE shared fixed height so the fade and the
   "Ver más" buttons line up at the same vertical position. After
   expansion each column grows to its natural content height. */
#home{ --home-collapsed:212px; }
#home .home-expandable{
  position:relative; max-height:var(--home-collapsed); overflow:hidden;
  transition:max-height .55s cubic-bezier(.4,0,.2,1);
}
#home .home-expandable[data-expanded="true"]{ max-height:3000px; }
/* subtle fade at the bottom of the collapsed content (blends to page bg) */
#home .home-expandable[data-expanded="false"]::after{
  content:""; position:absolute; left:0; right:0; bottom:0; height:56px;
  background:linear-gradient(to bottom, rgba(243,245,244,0), rgba(243,245,244,1));
  pointer-events:none;
}
@media (prefers-reduced-motion: reduce){ #home .home-expandable{ transition:none; } }
#home .home-toggle{
  margin-top:10px; display:inline-flex; align-items:center; gap:6px;
  background:none; border:none; padding:6px 2px; cursor:pointer;
  color:#1F5C39; font:600 14px/1.2 "Roboto","Helvetica Neue",Arial,sans-serif;
  transition:color .15s ease;
}
#home .home-toggle:hover{ color:#17492D; }
#home .home-toggle:focus-visible{ outline:2px solid rgba(31,92,57,.42); outline-offset:3px; border-radius:4px; }
#home .home-toggle::after{ content:"\25BE"; font-size:11px; line-height:1; }
#home .home-expandable[data-expanded="true"] + .home-toggle::after{ content:"\25B4"; }
@media (prefers-reduced-motion: reduce){ #home .home-extra{ transition:none; } }

/* ---- Areas of expertise ----
   Capsules stay on a SINGLE line each and are arranged into exactly three
   balanced rows per language on desktop, using per-language `order` plus two
   forced flex row-breaks (.ep-break). Long and short labels are mixed so no
   row groups several long labels and the width is used on both sides.
   Capsule background is a light, desaturated green from the site palette
   (change --ep-capsule-bg / --ep-capsule-border to revert). ---- */
#home .expertise-fullwidth{ --ep-capsule-bg:#E8F4EC; --ep-capsule-border:#C6E2D0; }
#home .expertise-fullwidth .expertise-pills{
  display:flex; flex-wrap:wrap; justify-content:center; align-content:center;
  gap:7px 8px; margin:0 auto; padding:0; max-width:100%; list-style:none;
}
#home .expertise-fullwidth .expertise-pills .profile-chip{
  width:auto; white-space:nowrap; overflow-wrap:normal;
  padding:6px 9px; font-family:var(--font-body); font-size:15.5px; line-height:1.4;
  background:var(--ep-capsule-bg); border-color:var(--ep-capsule-border);
  transform-origin:center; will-change:transform;
  transition:transform .18s ease, background-color .18s ease, color .18s ease,
             border-color .18s ease, box-shadow .18s ease;
}
/* Hover / keyboard-focus: dark-green fill (same green as the "Explorar la
   investigación" primary hero button), white text, subtle zoom via transform
   only — no width/height/padding/font change, so neighbours never move and the
   grid keeps its dimensions. z-index raises the active capsule cleanly. */
#home .expertise-fullwidth .expertise-pills .profile-chip:hover,
#home .expertise-fullwidth .expertise-pills .profile-chip:focus-visible{
  background:#1F5C39; border-color:#1F5C39; color:#fff;
  transform:scale(1.04); position:relative; z-index:2;
  box-shadow:0 6px 16px rgba(31,92,57,.26);
}
#home .expertise-fullwidth .expertise-pills .profile-chip:focus-visible{
  outline:2px solid #ffffff; outline-offset:-4px;
}
@media (prefers-reduced-motion: reduce){
  #home .expertise-fullwidth .expertise-pills .profile-chip{
    transition:background-color .18s ease, color .18s ease, border-color .18s ease;
  }
  #home .expertise-fullwidth .expertise-pills .profile-chip:hover,
  #home .expertise-fullwidth .expertise-pills .profile-chip:focus-visible{ transform:none; }
}
#home .expertise-fullwidth .ep-break{ display:none; }

/* tablet / mobile: natural responsive wrapping, no forced rows, no overflow */
@media (max-width:860px){
  #home .expertise-fullwidth .expertise-pills{ max-width:100%; gap:7px 8px; justify-content:center; }
}

/* desktop: exactly three rows via forced breaks + language-specific order */
@media (min-width:861px){
  #home .expertise-fullwidth .expertise-pills{ justify-content:center; gap:7px 8px; }
  #home .expertise-fullwidth .ep-break{ display:block; flex:0 0 100%; width:100%; height:0; margin:0; padding:0; border:0; background:none; }
  #home .expertise-fullwidth .ep-break-a{ order:5; }
  #home .expertise-fullwidth .ep-break-b{ order:10; }
  html[lang="es"] #home .expertise-pills li[data-i18n="expertise_12"]{ order:1; }
  html[lang="es"] #home .expertise-pills li[data-i18n="expertise_3"]{ order:2; }
  html[lang="es"] #home .expertise-pills li[data-i18n="expertise_6"]{ order:3; }
  html[lang="es"] #home .expertise-pills li[data-i18n="expertise_5"]{ order:4; }
  html[lang="es"] #home .expertise-pills li[data-i18n="expertise_15"]{ order:6; }
  html[lang="es"] #home .expertise-pills li[data-i18n="expertise_2"]{ order:7; }
  html[lang="es"] #home .expertise-pills li[data-i18n="expertise_8"]{ order:8; }
  html[lang="es"] #home .expertise-pills li[data-i18n="expertise_1"]{ order:9; }
  html[lang="es"] #home .expertise-pills li[data-i18n="expertise_9"]{ order:11; }
  html[lang="es"] #home .expertise-pills li[data-i18n="expertise_4"]{ order:12; }
  html[lang="es"] #home .expertise-pills li[data-i18n="expertise_10"]{ order:13; }
  html[lang="es"] #home .expertise-pills li[data-i18n="expertise_7"]{ order:14; }
  html[lang="en"] #home .expertise-pills li[data-i18n="expertise_12"]{ order:1; }
  html[lang="en"] #home .expertise-pills li[data-i18n="expertise_7"]{ order:2; }
  html[lang="en"] #home .expertise-pills li[data-i18n="expertise_10"]{ order:3; }
  html[lang="en"] #home .expertise-pills li[data-i18n="expertise_2"]{ order:4; }
  html[lang="en"] #home .expertise-pills li[data-i18n="expertise_3"]{ order:6; }
  html[lang="en"] #home .expertise-pills li[data-i18n="expertise_6"]{ order:7; }
  html[lang="en"] #home .expertise-pills li[data-i18n="expertise_9"]{ order:8; }
  html[lang="en"] #home .expertise-pills li[data-i18n="expertise_5"]{ order:9; }
  html[lang="en"] #home .expertise-pills li[data-i18n="expertise_8"]{ order:11; }
  html[lang="en"] #home .expertise-pills li[data-i18n="expertise_1"]{ order:12; }
  html[lang="en"] #home .expertise-pills li[data-i18n="expertise_15"]{ order:13; }
  html[lang="en"] #home .expertise-pills li[data-i18n="expertise_4"]{ order:14; }
  html[lang="fr"] #home .expertise-pills li[data-i18n="expertise_12"]{ order:1; }
  html[lang="fr"] #home .expertise-pills li[data-i18n="expertise_5"]{ order:2; }
  html[lang="fr"] #home .expertise-pills li[data-i18n="expertise_9"]{ order:3; }
  html[lang="fr"] #home .expertise-pills li[data-i18n="expertise_1"]{ order:4; }
  html[lang="fr"] #home .expertise-pills li[data-i18n="expertise_8"]{ order:6; }
  html[lang="fr"] #home .expertise-pills li[data-i18n="expertise_6"]{ order:7; }
  html[lang="fr"] #home .expertise-pills li[data-i18n="expertise_3"]{ order:8; }
  html[lang="fr"] #home .expertise-pills li[data-i18n="expertise_7"]{ order:9; }
  html[lang="fr"] #home .expertise-pills li[data-i18n="expertise_10"]{ order:11; }
  html[lang="fr"] #home .expertise-pills li[data-i18n="expertise_2"]{ order:12; }
  html[lang="fr"] #home .expertise-pills li[data-i18n="expertise_4"]{ order:13; }
  html[lang="fr"] #home .expertise-pills li[data-i18n="expertise_15"]{ order:14; }
}

/* Preserve exactly three rows on narrower desktop/tablet widths. */
@media (min-width:861px) and (max-width:939px){
  #home .expertise-fullwidth .expertise-pills{ gap:6px; }
  #home .expertise-fullwidth .expertise-pills .profile-chip{
    padding:5px 7px; font-size:11.75px;
  }
}

@media (min-width:940px) and (max-width:1039px){
  #home .expertise-fullwidth .expertise-pills{ gap:6px; }
  #home .expertise-fullwidth .expertise-pills .profile-chip{
    padding:5px 8px; font-size:13.5px;
  }
}

/* Reduced, consistent vertical spacing above and below the expertise block
   (~24–32px desktop, adapts down on smaller screens). */
#home .home-content-section .bio-research-block{ margin-bottom:clamp(16px,2.4vw,24px); }
#home .home-content-section .expertise-fullwidth{ margin-bottom:clamp(22px,3vw,32px); }

/* ---- Academic Background (~65%) + Languages (~35%) with a clear gutter ---- */
#home .home-two-col.academic-lang-block{
  grid-template-columns:minmax(0,1.9fr) minmax(0,1fr);
  gap:clamp(24px,3vw,42px);
}
#home .academic-lang-block .education-institutions li{ line-height:1.5; }
#home .bio-research-block .home-expandable-card,
#home .academic-col .education-list{
  border:1px solid var(--ds-rule,#D7E0E7);
  border-left:4px solid var(--ds-blue,#1F5C8C);
  border-radius:12px;
  background:transparent;
  box-shadow:0 3px 12px rgba(19,50,77,.06);
  padding:13px 15px;
}
#home .languages-col .language-list{
  margin:0;
  border:1px solid var(--ds-rule,#D7E0E7);
  border-left:4px solid var(--ds-blue,#1F5C8C);
  border-radius:12px;
  background:transparent;
  box-shadow:0 3px 12px rgba(19,50,77,.06);
  padding:15px 17px;
  width:100%;
  min-height:auto;
  box-sizing:border-box;
}

/* Transparent blue frames for Home updates and collaboration summaries. */
#home .updates .update-list,
#collaboration #collab-summary.country-grid,
#collaboration #inst-grid.inst-grid{
  margin-top:0;
  width:100%;
  box-sizing:border-box;
  border:1px solid var(--ds-rule,#D7E0E7);
  border-left:4px solid var(--ds-blue,#1F5C8C);
  border-radius:12px;
  background:transparent;
  box-shadow:0 3px 12px rgba(19,50,77,.06);
  padding:15px 17px;
}
#collaboration #collab-summary.country-grid{
  padding-top:8px;
  padding-bottom:8px;
}
#collaboration #inst-grid.inst-grid{
  padding-top:18px;
  padding-bottom:18px;
}
@media (max-width:600px){
  #home .updates .update-list,
  #collaboration #collab-summary.country-grid,
  #collaboration #inst-grid.inst-grid{
    padding-left:14px;
    padding-right:14px;
  }
}
#home .academic-col .education-degree{
  margin-bottom:11px;
  padding:0;
  border:0;
  border-radius:0;
  background:transparent;
  color:var(--ds-blue,#1F5C8C);
}
@media (max-width:860px){
  #home .home-two-col.academic-lang-block{ grid-template-columns:1fr; gap:clamp(24px,5vw,34px); }
}

/* ---- Scientific & professional profiles: one centered row ---- */
#home .profiles-fullwidth .home-profiles-row{
  display:flex; flex-wrap:wrap; justify-content:center; align-items:stretch;
  gap:9px 14px; margin:0 auto; padding:0; max-width:1000px; list-style:none;
}
#home .home-profiles-row .home-profile{ min-width:0; }
#home .home-profiles-row .home-profile a{
  display:inline-flex; align-items:center; gap:9px; height:100%;
  padding:10px 16px; border:1px solid var(--rule,#dfe3dc); border-radius:999px;
  background:#fff; color:var(--ink,#17324D); text-decoration:none;
  font:600 13.5px/1.1 "Roboto","Helvetica Neue",Arial,sans-serif;
  transition:border-color .18s ease, box-shadow .18s ease, transform .18s ease;
}
#home .home-profiles-row .home-profile a:hover{
  border-color:#1F5C39; box-shadow:0 4px 12px rgba(31,92,57,.12); transform:translateY(-1px);
}
#home .home-profiles-row .home-profile a:focus-visible{ outline:3px solid rgba(31,92,57,.38); outline-offset:2px; }
#home .home-profiles-row .cico{ width:22px; height:22px; flex:0 0 auto; }

/* ---- Responsive ---- */
@media (max-width:860px){
  #home .home-two-col{ grid-template-columns:1fr; gap:clamp(24px,5vw,36px); }
}
@media (max-width:600px){
  #home .hv3-cta .hv3-btn{ flex:1 1 100%; }
  #home .home-profiles-row .home-profile a{ padding:9px 14px; }
}

/* ============================================================
   effects.css
   Site-wide smooth-scroll anchor offset + subtle reveal-on-scroll.
   scroll-behavior:smooth and the reduced-motion scroll fallback are
   already defined in main.css; this file only adds the header offset
   and the reveal states.
   ============================================================ */

/* Keep smooth-scroll / hash targets clear of the sticky header */
section[id],
.page[id],
h2[id], h3[id], h4[id]{
  scroll-margin-top:84px;
}

/* Reveal-on-scroll.
   The hidden pre-animation state is applied ONLY when JavaScript is active
   (html.js-reveal is added by effects.js). If JS is disabled, or
   IntersectionObserver is unavailable, or the user prefers reduced motion,
   the class is never added, so .scroll-reveal content stays fully visible. */
html.js-reveal .scroll-reveal{
  opacity:0;
  transform:translateY(16px);
  transition:opacity .55s cubic-bezier(.4,0,.2,1), transform .55s cubic-bezier(.4,0,.2,1);
  will-change:opacity, transform;
}
html.js-reveal .scroll-reveal.is-visible{
  opacity:1;
  transform:none;
}

/* Accessibility: reduced motion disables smooth scroll and reveal entirely */
@media (prefers-reduced-motion: reduce){
  html{ scroll-behavior:auto; }
  .scroll-reveal{ opacity:1 !important; transform:none !important; transition:none !important; }
}

/* ============================================================
   DIak Web — semantic colour system v10

   BLUE  : science, engineering, navigation, technical hierarchy
   GREEN : biomass, sustainability, institutional/page landmarks
   WHITE : reading surfaces and visual breathing room
   ============================================================ */

:root{
  --ds-blue:#1F5C8C;
  --ds-blue-dark:#174A71;
  --ds-blue-soft:#EEF4F9;
  --ds-blue-border:#D7E8F5;
  --ds-green:#1F5C39;
  --ds-green-dark:#17492D;
  --ds-green-soft:#E8F4EC;
  --ds-green-border:#C6E2D0;
  --ds-navy:#132437;
  --ds-ink:#17324D;
  --ds-ink-soft:#3E4A3D;
  --ds-surface:#FFFFFF;
  --ds-page:#F3F5F4;
  --ds-rule:#D9E0DC;
}

/* ---------- Global hierarchy and navigation ---------- */
body{background:var(--ds-page); color:var(--ds-ink);}
a{color:var(--ds-blue);}
a:hover{color:var(--ds-blue-dark);}
.site-nav a.nav-link.current,
.site-nav .dd-caret:hover{color:#9AC6EE;}
.dropdown a.dd-cat{color:#9AC6EE;}
.lang-btn.active{background:#9AC6EE; color:var(--ds-navy); border-color:#9AC6EE;}

/* One page-level landmark treatment across the principal tabs. */
#research .rs-title,
#infrastructure > h2,
#publications > h2,
#contact > h2,
#collaboration .collab-page-header h1{
  display:block; width:100%; max-width:none; box-sizing:border-box;
  margin:0 0 16px; padding:7px 16px;
  border:0; border-radius:14px;
  background:var(--ds-green); color:#fff;
  font:600 20px/1.25 var(--font-heading,"Roboto","Helvetica Neue",Arial,sans-serif);
  letter-spacing:-.012em;
}
#infrastructure > h2 .infra-heading-link{color:inherit; text-decoration:none;}
#infrastructure > h2 .infra-heading-link:hover{color:inherit; text-decoration:none;}

/* Secondary section labels are consistently technical blue. */
.title-box.home-section-title,
#research .rs-subtitle,
#projects .rs-subtitle,
#publications .section-pill-title,
#contact .section-pill-title,
#infrastructure .infra-major-title,
#infrastructure .infra-subsection-title,
#infrastructure #software.section-pill-title{
  border-color:var(--ds-blue); background:var(--ds-blue); color:#fff;
  font-family:var(--font-heading,"Roboto","Helvetica Neue",Arial,sans-serif);
}

/* ---------- Home ---------- */
#home .hv3-btn{
  border-color:var(--ds-green); color:var(--ds-green); background:transparent;
}
#home .hv3-btn:hover{background:var(--ds-green); color:#fff;}
#home .hv3-btn--primary{background:var(--ds-green); color:#fff;}
#home .hv3-btn--primary:hover{background:var(--ds-green-dark);}
#home .hv3-btn:nth-child(3){border-color:var(--ds-green); color:var(--ds-green);}
#home .hv3-btn:nth-child(3):hover{background:var(--ds-green); color:#fff;}
#home .hv3-btn:focus-visible{outline-color:rgba(31,92,57,.38);}
#home .hv3-btn:nth-child(3):focus-visible{outline-color:rgba(31,92,57,.38);}

/* Green is retained where the content itself is biomass/sustainability. */
#home .bio-inst-link,
#home .home-toggle{color:var(--ds-green);}
#home .bio-inst-link:hover,
#home .home-toggle:hover{color:var(--ds-green-dark);}
#home .expertise-fullwidth{
  --ep-capsule-bg:var(--ds-green-soft);
  --ep-capsule-border:var(--ds-green-border);
}
#home .expertise-fullwidth .expertise-pills .profile-chip:hover,
#home .expertise-fullwidth .expertise-pills .profile-chip:focus-visible{
  background:var(--ds-green); border-color:var(--ds-green); color:#fff;
}
.education-degree{
  background:transparent; border-color:var(--ds-blue-border); color:var(--ds-ink);
}
#home .profiles-fullwidth .profile-chip{
  background:var(--ds-blue-soft); border-color:var(--ds-blue-border); color:var(--ds-ink);
}
.media-action{background:var(--ds-blue); color:#fff;}
.media-action:hover{background:var(--ds-blue-dark); color:#fff;}

/* ---------- Research and projects ---------- */
#research .rs-subtitle,
#projects .rs-subtitle{background:var(--ds-blue); color:#fff;}
#area1 .area-head{background:var(--ds-blue-soft); border-color:var(--ds-blue-border);}
#area1 .area-head .area-num{background:var(--ds-blue);}
#area1 .area-head > span[data-i18n="area1_title"],
#area1 .area-head .area-toggle{color:var(--ds-blue);}
#area2 .area-head{background:var(--ds-green-soft); border-color:var(--ds-green-border);}
#area2 .area-head .area-num{background:var(--ds-green);}
#area2 .area-head > span[data-i18n="area2_title"],
#area2 .area-head .area-toggle{color:var(--ds-green);}

/* White project cards: blue structure, green only for live status. */
#projects .pcard{
  background:var(--ds-surface); border:1px solid var(--ds-rule);
  border-left:4px solid var(--ds-blue); box-shadow:0 3px 12px rgba(19,50,77,.06);
}
#projects .pcard-k{color:var(--ds-blue);}
#projects .pcard a{color:var(--ds-blue);}
#projects .pcard a:hover{color:var(--ds-blue-dark);}
#projects .pcard-status{color:var(--ds-green);}
#projects .rs-sup-h,
#projects .rs-tl-year{color:var(--ds-green);}

/* The requested yellow editorial labels in Featured Projects remain intact. */
.featured-projects{--fp-link:var(--ds-blue);}

/* ---------- Collaboration and institutional services ---------- */
#collaboration .collab-page-header{max-width:none;}
#collaboration .collab-page-header p{color:var(--ds-ink-soft);}

/* Collaboration = scientific blue. */
#collaboration.cs-scope .collab-domain:not(.collab-services-domain) .collab-domain-heading{
  border-left-color:var(--ds-blue);
}
#collaboration.cs-scope .collab-domain:not(.collab-services-domain) .collab-domain-heading h2,
#collaboration.cs-scope .collab-domain:not(.collab-services-domain) .cs-subtitle{
  color:var(--ds-blue);
}
#collaboration.cs-scope .collab-domain:not(.collab-services-domain) .collab-section-title,
#collaboration.cs-scope .collab-domain:not(.collab-services-domain) .collab-action{
  background:var(--ds-blue); color:#fff;
}
#collaboration.cs-scope .collab-domain:not(.collab-services-domain) .collab-action:hover{
  background:var(--ds-blue-dark);
}
#collaboration.cs-scope .collab-domain:not(.collab-services-domain) .collab-scope-list li::before,
#collaboration.cs-scope .collab-domain:not(.collab-services-domain) .cs-list li::before{
  background:var(--ds-blue);
}
#collaboration.cs-scope .inst-logo{border-color:rgba(31,92,140,.24);}
#collaboration.cs-scope .inst-card:hover .inst-name,
#collaboration.cs-scope .inst-card:focus-visible .inst-name{color:var(--ds-blue);}

/* Institutional services = sustainable green. */
#collaboration.cs-scope .collab-services-domain .collab-domain-heading{
  border-left-color:var(--ds-green);
}
#collaboration.cs-scope .collab-services-domain .collab-domain-heading h2,
#collaboration.cs-scope .collab-services-domain .cs-subtitle,
#collaboration.cs-scope .collab-services-domain .service-area h4,
#collaboration.cs-scope .collab-services-domain .services-partners h3,
#collaboration.cs-scope .collab-services-domain .institutional-framework h3{
  color:var(--ds-green);
}
#collaboration.cs-scope .collab-services-domain .collab-section-title,
#collaboration.cs-scope .collab-services-domain .collab-action{
  background:var(--ds-green); color:#fff;
}
#collaboration.cs-scope .collab-services-domain .collab-action:hover{
  background:var(--ds-green-dark);
}
#collaboration.cs-scope .collab-services-domain .service-area li::before,
#collaboration.cs-scope .collab-services-domain .cs-list li::before{
  background:var(--ds-green);
}
#collaboration.cs-scope .collab-services-domain .cs-action--ghost{
  background:transparent; border-color:var(--ds-green); color:var(--ds-green);
}
#collaboration.cs-scope .collab-services-domain .cs-action--ghost:hover{
  background:var(--ds-green); color:#fff;
}

/* ---------- Publications ---------- */
#publications .section-pill-title{background:var(--ds-blue); color:#fff;}
#publications .pub-accordion{background:var(--ds-surface); border-color:var(--ds-rule);}
#publications .pub-accordion-trigger{background:var(--ds-blue); color:#fff;}
#publications .pub-accordion-trigger:hover{background:var(--ds-blue-dark);}
#publications .publication-reference a,
#publications .review-list a{color:var(--ds-blue);}
#publications .publication-reference a:hover,
#publications .review-list a:hover{color:var(--ds-blue-dark);}

/* ---------- Infrastructure ---------- */
/* Green page landmark and green equipment portal; technical hierarchy blue. */
#infrastructure .infra-major-title,
#infrastructure #laboratory-scale.infra-subsection-title,
#infrastructure #pilot-platform-title.infra-subsection-title,
#infrastructure #software.section-pill-title{
  border-color:var(--ds-blue); background:var(--ds-blue); color:#fff;
}
#infrastructure .equipment-explorer-entry{
  border-color:var(--ds-green-border); border-left-color:var(--ds-green);
  background:rgba(232,244,236,.72);
}
#infrastructure #equipment-inventory-title,
#infrastructure .equipment-explorer-entry h4,
#infrastructure .equipment-explorer-entry h5{color:var(--ds-green);}
#infrastructure .equipment-explorer-open{
  border-color:var(--ds-green); background:var(--ds-green); color:#fff;
}
#infrastructure .equipment-explorer-open:hover{background:var(--ds-green-dark);}

#infrastructure .analytical-pair-heading h5,
#infrastructure .analytical-pair-title-row h5,
#infrastructure .analytical-pair-detail-label,
#infrastructure .equipment-heading h5,
#infrastructure .equipment-detail h6,
#infrastructure .infra-workflow h5,
#infrastructure .pilot-platform-intro h5,
#infrastructure .pilot-reactor-heading h5,
#infrastructure .pilot-system-heading h5,
#infrastructure .pilot-system-detail h6,
#infrastructure .workstation-subtitle,
#infrastructure .workstation-name,
#infrastructure .workstation-apps h5{color:var(--ds-blue);}

#infrastructure .analytical-pair-model,
#infrastructure .equipment-model,
#infrastructure .pilot-reactor-type,
#infrastructure .pilot-system-type,
#infrastructure .workstation-specs li{
  background:var(--ds-blue-soft); color:var(--ds-ink);
}
#infrastructure .workstation-specs li{border-left-color:var(--ds-blue);}

/* Workstation: compact equipment-style composition on large screens. */
#infrastructure .workstation-content{
  display:grid;
  grid-template-columns:minmax(250px,.78fr) minmax(0,1.42fr);
  grid-template-areas:
    "figure name"
    "figure specs"
    "figure intro"
    "figure description"
    "figure apps";
  column-gap:clamp(26px,3.5vw,42px);
  align-items:start;
}
#infrastructure .workstation-figure{
  grid-area:figure;
  width:100%;
  max-width:340px;
  margin:4px 0 0;
  justify-self:start;
  align-self:start;
}
#infrastructure .workstation-name{
  grid-area:name;
  max-width:none;
  margin:0 0 12px;
}
#infrastructure .workstation-specs{
  grid-area:specs;
  max-width:none;
  margin:0 0 20px;
}
#infrastructure .workstation-intro{
  grid-area:intro;
  max-width:none;
  margin:0;
}
#infrastructure .workstation-description{
  grid-area:description;
  max-width:none;
  margin:14px 0 0;
}
#infrastructure .workstation-apps{
  grid-area:apps;
  max-width:none;
  margin:22px 0 0;
}
@media(max-width:820px){
  #infrastructure .workstation-content{
    grid-template-columns:minmax(0,1fr);
    grid-template-areas:
      "name"
      "figure"
      "specs"
      "intro"
      "description"
      "apps";
    column-gap:0;
  }
  #infrastructure .workstation-figure{
    width:min(100%,360px);
    max-width:360px;
    margin:8px 0 20px;
  }
}
#infrastructure .infra-workflow{
  background:var(--ds-surface,#fff); color:var(--ds-ink);
  border:1px solid var(--ds-rule,#D7E0E7);
  border-left:4px solid var(--ds-blue);
  border-radius:12px;
  box-shadow:0 3px 12px rgba(19,50,77,.06);
}
#infrastructure .infra-workflow li::before{background:var(--ds-blue);}

/* Small green signals preserve the biomass/sustainability identity. */
#infrastructure .analytical-pair-list li::before,
#infrastructure .equipment-capabilities li::before,
#infrastructure .pilot-system-points li::before{background:var(--ds-green);}
#infrastructure .workstation-tags li{background:var(--ds-blue);}
#infrastructure .tool-chip{
  border-color:var(--ds-blue-border); background:var(--ds-surface); color:var(--ds-blue);
}
#infrastructure .tool-chip:hover{
  border-color:var(--ds-blue); background:var(--ds-blue); color:#fff;
}

/* Equipment Explorer is a technical interface, therefore blue. */
.equipment-explorer-primary,
.equipment-category-number{border-color:var(--ds-blue); background:var(--ds-blue); color:#fff;}
.equipment-explorer-primary:hover{background:var(--ds-blue-dark);}
.equipment-explorer-breadcrumb button,
.equipment-explorer-heading,
.equipment-category-copy strong,
.equipment-category-count,
.equipment-list-name,
.equipment-list-arrow,
.equipment-profile-section h4{color:var(--ds-blue);}
.equipment-category-button:hover,
.equipment-list-button:hover{border-color:var(--ds-blue); background:var(--ds-blue-soft);}
.equipment-explorer-back,
.equipment-explorer-toolbar-back,
.equipment-explorer-close{
  border-color:rgba(31,92,140,.24); background:var(--ds-blue-soft); color:var(--ds-blue);
}
.equipment-profile-badge{background:var(--ds-blue-soft); color:var(--ds-blue);}

/* ---------- Contact and footer ---------- */
#contact .section-pill-title{background:var(--ds-blue); color:#fff;}
#contact .contact-list a{color:var(--ds-blue);}
#contact .contact-list a:hover{color:var(--ds-blue-dark);}
#contact .note-box{border-left-color:var(--ds-green); background:var(--ds-green-soft);}
.site-footer{background:var(--ds-navy);}

/* Shared keyboard focus remains visible on every colour. */
a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,
textarea:focus-visible,[tabindex]:focus-visible{
  outline-color:#9AC6EE; outline-offset:3px;
}

@media(max-width:600px){
  #research .rs-title,
  #infrastructure > h2,
  #publications > h2,
  #contact > h2,
  #collaboration .collab-page-header h1{
    padding:7px 14px; font-size:20px;
  }
}

/* Publication panels open without height animation to avoid layout stalls on long lists. */
#publications .pub-accordion-panel{
  max-height:none;
  overflow:visible;
  transition:none;
}
#publications .pub-accordion-panel[hidden]{display:none;}

/* Publication references remain static and fully legible while scrolling. */

/* ---------- v11: lighter Home, expertise contextualized in Research ---------- */
#home .home-content-section .bio-research-block{
  margin-bottom:clamp(34px,5vw,58px);
}
#research .rs-expertise-line{
  display:flex; flex-wrap:wrap; align-items:baseline; gap:6px 10px;
  margin:10px 0 22px; padding:10px 0;
  border-top:1px solid var(--ds-rule); border-bottom:1px solid var(--ds-rule);
}
#research .rs-expertise-label{
  flex:0 0 auto; color:var(--ds-green);
  font:700 11.5px/1.4 var(--font-heading,"Roboto","Helvetica Neue",Arial,sans-serif);
  letter-spacing:.045em; text-transform:uppercase;
}
#research .rs-expertise-list{
  display:flex; flex:1 1 620px; flex-wrap:wrap; gap:2px 0;
  margin:0; padding:0; list-style:none;
}
#research .rs-expertise-list li{
  display:inline; color:var(--ds-ink-soft);
  font:600 13.5px/1.5 var(--font-body,"Roboto","Helvetica Neue",Arial,sans-serif);
}
#research .rs-expertise-list li + li::before{
  content:"·"; margin:0 8px; color:var(--ds-blue);
}
@media(max-width:600px){
  #research .rs-expertise-line{display:block; margin-bottom:18px;}
  #research .rs-expertise-label{display:block; margin-bottom:5px;}
  #research .rs-expertise-list{display:block;}
  #research .rs-expertise-list li{display:inline;}
}

/* ---------- v13: unified blue page landmarks and collaboration cards ---------- */
#infrastructure > h2,
#collaboration .collab-page-header h1{
  background:var(--ds-blue);
  color:#fff;
}

#collaboration.cs-scope .collab-domain .collab-domain-heading{
  max-width:none;
  padding-left:0;
  border-left:0;
}
#collaboration.cs-scope .collab-domain .collab-domain-heading h2{
  display:block;
  width:100%;
  box-sizing:border-box;
  margin:0 0 14px;
  padding:7px 16px;
  border:0;
  border-radius:14px;
  background:var(--ds-blue);
  color:#fff;
  font:600 20px/1.25 var(--font-heading,"Roboto","Helvetica Neue",Arial,sans-serif);
  letter-spacing:-.012em;
}

#collaboration.cs-scope .collab-scope-list{
  counter-reset:collaboration-form;
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:16px;
  max-width:1100px;
  margin:0 0 22px;
  padding:0;
  list-style:none;
}
#collaboration.cs-scope .collab-scope-list li{
  counter-increment:collaboration-form;
  position:relative;
  min-height:0;
  padding:18px 18px 18px 58px;
  border:1px solid var(--ds-blue-border);
  border-top:3px solid var(--ds-blue);
  border-radius:12px;
  background:var(--ds-surface);
  box-shadow:0 3px 12px rgba(19,50,77,.06);
  color:var(--ds-ink-soft);
}
#collaboration.cs-scope .collab-scope-list li::before{
  content:counter(collaboration-form);
  position:absolute;
  top:17px;
  left:18px;
  display:grid;
  width:26px;
  height:26px;
  place-items:center;
  border-radius:50%;
  background:var(--ds-blue);
  color:#fff;
  font:700 13px/1 var(--font-heading,"Roboto","Helvetica Neue",Arial,sans-serif);
}
#collaboration.cs-scope .collab-scope-list h4{
  margin:0 0 8px;
  color:var(--ds-blue);
  font:700 16px/1.3 var(--font-heading,"Roboto","Helvetica Neue",Arial,sans-serif);
}
#collaboration.cs-scope .collab-scope-list p{
  margin:0;
  color:var(--ds-ink-soft);
  font-size:14.5px;
  line-height:1.55;
}
#collaboration.cs-scope .collab-scope-list p + p{
  margin-top:8px;
  padding-top:8px;
  border-top:1px solid var(--ds-rule);
}
@media(max-width:720px){
  #collaboration.cs-scope .collab-scope-list{grid-template-columns:1fr;}
}

/* ---------- v40: interactive relational collaboration network ---------- */
#collaboration .collab-relational-component{
  margin-top:clamp(12px,2vw,20px);
  padding-top:0;
  border-top:0;
}
#collaboration .collab-graph-shell{
  display:grid;
  grid-template-columns:minmax(210px,250px) minmax(0,1fr);
  gap:18px;
  margin-top:18px;
  min-width:0;
}
#collaboration .collab-graph-controls{
  align-self:stretch;
  padding:16px;
  border:1px solid rgba(31,92,140,.22);
  border-radius:16px;
  background:rgba(255,255,255,.34);
}
#collaboration .collab-graph-controls fieldset{
  min-width:0;
  margin:0 0 16px;
  padding:0;
  border:0;
}
#collaboration .collab-graph-controls legend,
#collaboration .collab-graph-search-label{
  display:block;
  margin:0 0 10px;
  color:var(--ds-blue);
  font-weight:700;
  font-size:13px;
  letter-spacing:.02em;
}
#collaboration .collab-graph-filter{
  display:grid;
  grid-template-columns:18px minmax(0,1fr) auto;
  align-items:center;
  gap:8px;
  margin:9px 0;
  color:#25323d;
  font-size:13px;
  line-height:1.35;
  cursor:pointer;
}
#collaboration .collab-graph-filter input{accent-color:var(--ds-blue);}
#collaboration .collab-graph-filter-count{
  min-width:24px;
  padding:2px 6px;
  border-radius:999px;
  background:rgba(31,92,140,.09);
  color:var(--ds-blue);
  text-align:center;
  font-size:11px;
  font-weight:700;
}
#collaboration .collab-graph-search{
  box-sizing:border-box;
  width:100%;
  margin:0 0 14px;
  padding:10px 11px;
  border:1px solid rgba(31,92,140,.28);
  border-radius:10px;
  background:rgba(255,255,255,.75);
  color:#172630;
  font:inherit;
}
#collaboration .collab-graph-search:focus{
  outline:3px solid rgba(73,156,69,.2);
  border-color:#499C45;
}
#collaboration .collab-graph-layouts,
#collaboration .collab-graph-zoom{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:8px;
  margin-top:8px;
}
#collaboration .collab-graph-zoom{grid-template-columns:repeat(3,minmax(0,1fr));}
#collaboration .collab-graph-btn{
  min-height:38px;
  padding:7px 9px;
  border:1px solid var(--ds-blue);
  border-radius:9px;
  background:transparent;
  color:var(--ds-blue);
  font:inherit;
  font-size:12.5px;
  font-weight:700;
  cursor:pointer;
}
#collaboration .collab-graph-btn:hover,
#collaboration .collab-graph-btn:focus-visible,
#collaboration .collab-graph-btn.is-active{
  background:var(--ds-blue);
  color:#fff;
}
#collaboration .collab-graph-stage{
  position:relative;
  min-width:0;
  min-height:580px;
  overflow:hidden;
  border:1px solid rgba(31,92,140,.22);
  border-radius:18px;
  background:
    radial-gradient(circle at 50% 48%,rgba(31,92,140,.08),transparent 38%),
    linear-gradient(145deg,rgba(255,255,255,.7),rgba(237,244,248,.58));
}
#collaboration #collab-graph-svg{
  display:block;
  width:100%;
  height:580px;
  overflow:visible;
}
/* CIRCLE: the complete relationship network is always present as thin blue
   curves. Activating a name keeps its real connections blue and sends every
   unrelated curve to an almost transparent neutral grey. Line width is fixed. */
#collaboration path.collab-graph-edge{fill:none;stroke:#2F79AD;stroke-width:1.05;stroke-opacity:.38;vector-effect:non-scaling-stroke;pointer-events:none;transition:stroke-opacity .22s ease,stroke .22s ease;}
#collaboration path.collab-graph-edge.is-related{stroke:#2F79AD;stroke-opacity:.96;}
#collaboration path.collab-graph-edge.is-muted{stroke:#dbe1e7;stroke-opacity:.055;}
/* FORCE: straight links over the stable concentric hierarchy. */
#collaboration line.collab-graph-edge{stroke:#9aafb9;stroke-width:1.05;stroke-opacity:.5;vector-effect:non-scaling-stroke;}
#collaboration line.collab-graph-edge.is-muted{stroke-opacity:.08;}
#collaboration line.collab-graph-edge.is-related{stroke:#2F79AD;stroke-width:1.8;stroke-opacity:.92;}
#collaboration line.collab-graph-edge[data-edge-kind="coauthor"]{stroke:#2F79AD;stroke-width:1.7;stroke-opacity:0;pointer-events:none;vector-effect:non-scaling-stroke;}
#collaboration line.collab-graph-edge[data-edge-kind="coauthor"].is-muted{stroke-opacity:0;}
#collaboration line.collab-graph-edge[data-edge-kind="coauthor"].is-related{stroke:#2F79AD;stroke-width:1.8;stroke-opacity:.94;}
#collaboration .collab-node-dot{fill:#2f79ad;stroke:#fff;stroke-width:1.4;vector-effect:non-scaling-stroke;}
#collaboration .type-internal-person .collab-node-dot{fill:#2f79ad;}
#collaboration .type-external-person .collab-node-dot{fill:#65ad60;}
#collaboration .type-internal-org .collab-node-dot{fill:#1f5c8c;}
#collaboration .type-external-org .collab-node-dot{fill:#438f50;}
#collaboration .type-self .collab-node-dot{fill:#2e8b3d;stroke:#fff;stroke-width:2;}
#collaboration .collab-graph-node{cursor:pointer;transition:opacity .22s ease;}
#collaboration .collab-graph-node.is-muted{opacity:.16;}
#collaboration .collab-graph-node.is-connected .collab-node-label{fill:#123f63;}
#collaboration .collab-graph-node.is-focus .collab-node-dot{stroke:#123f63;stroke-width:2.4;}
#collaboration .collab-graph-node.is-focus .collab-node-label{font-weight:800;}
#collaboration .collab-graph-node.is-match .collab-node-label{fill:#E18A28;}
#collaboration .collab-graph-node:focus{outline:none;}
#collaboration .collab-graph-node:focus-visible .collab-node-dot{stroke:#123f63;stroke-width:2.6;}
#collaboration .collab-graph-maximized{position:fixed;inset:0;z-index:1200;margin:0;padding:16px 18px;background:#fff;overflow:auto;}
#collaboration .collab-graph-maximized .collab-graph-shell{grid-template-columns:minmax(210px,250px) minmax(0,1fr);height:calc(100vh - 32px);}
#collaboration .collab-graph-maximized .collab-graph-stage{min-height:calc(100vh - 60px);}
#collaboration .collab-graph-maximized #collab-graph-svg{height:calc(100vh - 60px);}
body.collab-graph-lock{overflow:hidden;}
#collaboration .collab-graph-node{cursor:pointer;transition:opacity .18s ease;}
#collaboration .collab-graph-node.is-muted{opacity:.12;}
#collaboration .collab-graph-node.is-match .collab-node-shape{
  stroke:#E18A28;
  stroke-width:4;
}
#collaboration .collab-graph-node.is-selected .collab-node-shape{
  filter:drop-shadow(0 0 9px rgba(225,138,40,.7));
}
#collaboration .collab-graph-node .collab-node-shape{
  vector-effect:non-scaling-stroke;
  filter:drop-shadow(0 2px 3px rgba(17,38,54,.14));
  color:#1f5c8c;
}
#collaboration .collab-graph-node.type-self .collab-node-shape{color:#123f63;}
#collaboration .collab-graph-node.type-internal-person .collab-node-shape{color:#2f79ad;}
#collaboration .collab-graph-node.type-external-person .collab-node-shape{color:#65ad60;}
#collaboration .collab-graph-node.type-internal-org .collab-node-shape{color:#1f5c8c;}
#collaboration .collab-graph-node.type-external-org .collab-node-shape{color:#438f50;}
#collaboration .collab-person-icon .collab-icon-head,
#collaboration .collab-person-icon .collab-icon-body,
#collaboration .collab-org-icon .collab-icon-house{
  fill:currentColor;
  stroke:#fff;
  stroke-width:1.7;
  vector-effect:non-scaling-stroke;
}
#collaboration .collab-org-icon .collab-icon-door{
  fill:#fff;
  stroke:currentColor;
  stroke-width:1.2;
  vector-effect:non-scaling-stroke;
}
#collaboration .collab-node-label{
  fill:#173247;
  font-family:"Roboto","Helvetica Neue",Arial,sans-serif;
  font-size:10px;
  font-weight:700;
  paint-order:stroke;
  stroke:rgba(255,255,255,.93);
  stroke-width:3px;
  stroke-linejoin:round;
  pointer-events:none;
}
#collaboration .collab-node-label{opacity:1;}
/* Circle nodes are names only: the transparent rectangle follows the complete
   rendered label and makes every pixel of that name pointer/keyboard active. */
#collaboration .collab-mode-circle .collab-node-hit{fill:transparent;pointer-events:all;}
#collaboration .collab-mode-circle .collab-node-label{
  fill:#2f4353;
  transition:fill .18s ease,opacity .18s ease;
}
#collaboration .collab-mode-circle .collab-graph-node.is-focus .collab-node-label,
#collaboration .collab-mode-circle .collab-graph-node.is-selected .collab-node-label{
  fill:#1769A8;
  font-weight:800;
}
#collaboration .collab-mode-circle .collab-graph-node.is-connected .collab-node-label{opacity:1;}
#collaboration .collab-mode-circle .collab-graph-node.is-muted{opacity:.10;}
#collaboration .type-self .collab-node-label{
  fill:#1f7a2e;
  font-size:11.5px;
  font-weight:800;
  stroke:#fff;
  stroke-width:3.2px;
}
/* Force view: show every label directly outside its node and keep the
   whole name clickable, mirroring the Circle-view reading logic. */
#collaboration .collab-mode-force .collab-node-hit{fill:transparent;pointer-events:all;}
#collaboration .collab-mode-force .collab-node-label{
  opacity:1;
  fill:#2f4353;
  transition:fill .18s ease,opacity .18s ease;
}
#collaboration .collab-mode-force .collab-graph-node:hover .collab-node-label,
#collaboration .collab-mode-force .collab-graph-node:focus .collab-node-label,
#collaboration .collab-mode-force .collab-graph-node.is-match .collab-node-label,
#collaboration .collab-mode-force .collab-graph-node.is-connected .collab-node-label,
#collaboration .collab-mode-force .collab-graph-node.is-focus .collab-node-label,
#collaboration .collab-mode-force .collab-graph-node.is-selected .collab-node-label{
  opacity:1;
  fill:#1769A8;
  font-weight:800;
}
#collaboration .collab-mode-force .type-self .collab-node-label{fill:#123f63;font-weight:700;}
#collaboration .collab-graph-tooltip{
  position:absolute;
  z-index:5;
  display:none;
  max-width:290px;
  padding:11px 13px;
  border-radius:12px;
  background:#123f63;
  box-shadow:0 9px 24px rgba(12,39,61,.25);
  color:#fff;
  font-size:12px;
  line-height:1.42;
  pointer-events:none;
}
#collaboration .collab-graph-tooltip.is-visible{display:block;}
#collaboration .collab-graph-tooltip.is-corner-panel{
  left:14px !important;
  top:14px !important;
  width:min(220px,calc(100% - 28px));
  max-width:220px;
  max-height:132px;
  overflow:auto;
  pointer-events:none;
}
#collaboration .collab-graph-tooltip strong{display:block;margin-bottom:4px;font-size:13px;}
#collaboration .collab-graph-tooltip span{display:block;color:#dceaf4;}
#collaboration .collab-graph-empty{
  position:absolute;
  inset:50% auto auto 50%;
  transform:translate(-50%,-50%);
  max-width:320px;
  padding:16px;
  color:#41535e;
  text-align:center;
  font-weight:700;
}
#collaboration .collab-graph-legend{
  display:grid;
  gap:7px;
  margin-top:16px;
  padding-top:14px;
  border-top:1px solid rgba(31,92,140,.16);
  color:#50616c;
  font-size:11.5px;
}
#collaboration .collab-graph-legend span{display:flex;align-items:center;gap:7px;}
#collaboration .collab-graph-swatch{display:inline-block;flex:0 0 auto;width:11px;height:11px;border-radius:50%;}
#collaboration .collab-graph-swatch.is-person{border-radius:50%;}
#collaboration .collab-graph-swatch.is-org{width:17px;border-radius:4px;}
#collaboration .collab-graph-swatch.is-internal{background:#2f79ad;}
#collaboration .collab-graph-swatch.is-external{background:#65ad60;}
#collaboration .collab-graph-swatch.is-coauthor{
  width:19px;
  height:0;
  border-top:2px solid #2F79AD;
  border-radius:0;
  background:transparent;
}
@media(max-width:860px){
  #collaboration .collab-graph-shell{grid-template-columns:1fr;}
  #collaboration .collab-graph-controls{display:grid;grid-template-columns:1fr 1fr;gap:0 16px;}
  #collaboration .collab-graph-controls fieldset{grid-row:span 3;}
  #collaboration .collab-graph-legend{grid-column:1/-1;grid-template-columns:repeat(2,minmax(0,1fr));}
}
@media(max-width:560px){
  #collaboration .collab-graph-controls{display:block;padding:14px;}
  #collaboration .collab-graph-stage{min-height:470px;border-radius:14px;}
  #collaboration #collab-graph-svg{height:470px;}
  #collaboration .collab-graph-legend{grid-template-columns:1fr;}
}
@media(prefers-reduced-motion:reduce){
  #collaboration .collab-graph-node{transition:none;}
}

/* ---------- v14: compact Collaboration label ---------- */
#collaboration.cs-scope .collab-domain.collab-scientific-domain .collab-domain-heading h2{
  display:inline-block;
  width:auto;
  max-width:100%;
  padding:7px 16px;
  border-radius:10px;
  background:var(--ds-blue);
  color:#fff !important;
}
#collaboration.cs-scope #collaboration-network{
  margin-top:clamp(12px,1.8vw,18px);
  padding-top:0;
  border-top:0;
}

/* ---------- v16: one typographic scale for blue title labels ---------- */
:root{
  --ds-blue-title-size:18px;
  --ds-blue-title-line:1.3;
  --ds-blue-title-pad-y:7px;
  --ds-blue-title-pad-x:14px;
}

#research .rs-subtitle,
#projects .rs-subtitle,
#infrastructure > h2,
#infrastructure .infra-major-title,
#infrastructure .infra-subsection-title,
#infrastructure #software.section-pill-title,
#publications .section-pill-title,
#publications .pub-accordion-trigger,
#contact .section-pill-title,
#collaboration .collab-page-header h1,
#collaboration.cs-scope .collab-domain .collab-domain-heading h2,
#collaboration .collab-section-title,
.title-box.home-section-title{
  box-sizing:border-box;
  min-height:0;
  padding:var(--ds-blue-title-pad-y) var(--ds-blue-title-pad-x);
  font-family:var(--font-heading,"Roboto","Helvetica Neue",Arial,sans-serif);
  font-size:var(--ds-blue-title-size);
  line-height:var(--ds-blue-title-line);
  font-weight:600;
}

@media(max-width:600px){
  :root{--ds-blue-title-size:17px;}
}

/* ---------- v17: categorized scientific and technical services ---------- */
#collaboration.cs-scope .cs-service-category-grid{
  counter-reset:service-category;
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:16px;
  max-width:1100px;
  margin:18px 0 20px;
}
#collaboration.cs-scope .cs-service-category{
  counter-increment:service-category;
  position:relative;
  min-width:0;
  padding:18px 18px 18px 58px;
  border:1px solid var(--ds-green-border);
  border-top:3px solid var(--ds-green);
  border-radius:12px;
  background:var(--ds-surface);
  box-shadow:0 3px 12px rgba(19,50,77,.06);
}
#collaboration.cs-scope .cs-service-category::before{
  content:counter(service-category);
  position:absolute;
  top:17px;
  left:18px;
  display:grid;
  width:26px;
  height:26px;
  place-items:center;
  border-radius:50%;
  background:var(--ds-green);
  color:#fff;
  font:700 13px/1 var(--font-heading,"Roboto","Helvetica Neue",Arial,sans-serif);
}
#collaboration.cs-scope .cs-service-category h4{
  margin:0 0 10px;
  color:var(--ds-green);
  font:700 16px/1.3 var(--font-heading,"Roboto","Helvetica Neue",Arial,sans-serif);
}
#collaboration.cs-scope .cs-service-items{
  display:grid;
  gap:7px;
  margin:0;
  padding:0;
  list-style:none;
}
#collaboration.cs-scope .cs-service-items li{
  position:relative;
  padding-left:15px;
  color:var(--ds-ink-soft);
  font-size:14px;
  line-height:1.5;
}
#collaboration.cs-scope .cs-service-items li::before{
  content:"";
  position:absolute;
  top:.67em;
  left:0;
  width:5px;
  height:5px;
  border-radius:50%;
  background:var(--ds-green);
}
@media(max-width:720px){
  #collaboration.cs-scope .cs-service-category-grid{grid-template-columns:1fr;}
}

/* ---------- v18: two-column contact area and direct-message form ---------- */
#contact .contact-layout{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  align-items:stretch;
  gap:clamp(22px,3.5vw,38px);
}
#contact .contact-details-panel,
#contact .contact-form-panel{
  min-width:0;
  height:100%;
  box-sizing:border-box;
  padding:clamp(20px,2.5vw,28px);
  border:1px solid var(--ds-rule);
  border-radius:14px;
  background:var(--ds-surface);
  box-shadow:0 3px 12px rgba(19,50,77,.06);
}
#contact .contact-details-panel .section-pill-title{
  margin-top:30px;
}
#contact .contact-form-title{
  display:inline-flex;
  max-width:100%;
  margin:0 0 16px;
  padding:var(--ds-blue-title-pad-y) var(--ds-blue-title-pad-x);
  border-radius:10px;
  background:var(--ds-blue);
  color:#fff;
  font:600 var(--ds-blue-title-size)/var(--ds-blue-title-line) var(--font-heading,"Roboto","Helvetica Neue",Arial,sans-serif);
}
#contact .contact-form-intro{
  margin:0 0 20px;
  color:var(--ds-ink-soft);
  font-size:15px;
  line-height:1.62;
}
#contact .contact-form{
  display:flex;
  flex-direction:column;
  min-height:0;
}
#contact .contact-form label{
  margin:0 0 6px;
  color:var(--ds-ink);
  font:700 13px/1.35 var(--font-heading,"Roboto","Helvetica Neue",Arial,sans-serif);
}
#contact .contact-form input,
#contact .contact-form textarea{
  width:100%;
  box-sizing:border-box;
  margin:0 0 15px;
  padding:11px 12px;
  border:1px solid #BFCBD4;
  border-radius:8px;
  background:#fff;
  color:var(--ds-ink);
  font:400 14.5px/1.5 var(--font-body,"Roboto","Helvetica Neue",Arial,sans-serif);
  transition:border-color .16s ease,box-shadow .16s ease;
}
#contact .contact-form textarea{
  min-height:150px;
  resize:vertical;
}
#contact .contact-form input:focus,
#contact .contact-form textarea:focus{
  outline:0;
  border-color:var(--ds-blue);
  box-shadow:0 0 0 3px rgba(31,92,140,.14);
}
#contact .contact-form-submit{
  align-self:flex-start;
  min-height:42px;
  padding:9px 20px;
  border:1px solid var(--ds-green);
  border-radius:8px;
  background:var(--ds-green);
  color:#fff;
  font:700 14px/1.3 var(--font-heading,"Roboto","Helvetica Neue",Arial,sans-serif);
  cursor:pointer;
}
#contact .contact-form-submit:hover{
  border-color:var(--ds-green-dark);
  background:var(--ds-green-dark);
}
#contact .contact-form-status{
  margin:10px 0 0;
  color:var(--ds-ink-soft);
  font-size:12px;
  line-height:1.45;
}
@media(max-width:820px){
  #contact .contact-layout{grid-template-columns:1fr;}
}

/* ---------- v19: open contact columns without enclosing cards ---------- */
#contact .contact-layout{
  align-items:start;
}
#contact .contact-details-panel,
#contact .contact-form-panel{
  height:auto;
  padding:0;
  border:0;
  border-radius:0;
  background:transparent;
  box-shadow:none;
}
#contact .contact-form-title{
  margin-bottom:12px;
}
#contact .contact-form-intro{
  margin-bottom:14px;
  font-size:14px;
  line-height:1.52;
}
#contact .contact-form label{
  margin-bottom:4px;
}
#contact .contact-form input,
#contact .contact-form textarea{
  margin-bottom:10px;
  padding:9px 11px;
}
#contact .contact-form textarea{
  min-height:82px;
}
#contact .contact-form-submit{
  min-height:38px;
  padding:8px 18px;
}
#contact .contact-form-status{
  margin-top:7px;
}
#contact .contact-form-honey{
  position:absolute !important;
  left:-10000px !important;
  width:1px !important;
  height:1px !important;
  margin:0 !important;
  padding:0 !important;
  opacity:0 !important;
  pointer-events:none !important;
}
#contact .contact-form-submit:disabled{
  cursor:wait;
  opacity:.68;
}
#contact .contact-form-status.is-success{color:var(--ds-green);}
#contact .contact-form-status.is-error{color:#9B2C2C;}

/* ---------- v21: project and supervision status colours ---------- */
#projects #proj-ongoing + .rs-block-intro + .project-cards .pcard{
  border-left-color:var(--ds-green);
}
#projects .pcard-status[data-i18n="status_ongoing"],
#projects .rs-sup-meta [data-i18n="status_ongoing"]{
  color:#B45309;
  font-weight:700;
}
#projects .pcard-status[data-i18n="status_completed"],
#projects .rs-sup-meta [data-i18n="status_completed"]{
  color:#B42318;
  font-weight:700;
}

/* ---------- v23: supervision cards, separated from research projects ---------- */
#projects .rs-suplist{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:16px;
  margin:12px 0 6px;
}
#projects .rs-sup-row{
  min-width:0;
  padding:17px 18px;
  border:1px solid var(--ds-rule);
  border-top-width:4px;
  border-radius:10px;
  background:var(--ds-surface);
  box-shadow:0 3px 12px rgba(19,50,77,.06);
}
#projects .rs-sup-row.rs-sup-row--ongoing{
  border-top:4px solid var(--ds-green);
}
#projects .rs-sup-row.rs-sup-row--completed{
  border-top:4px solid var(--ds-blue);
}
@media(max-width:720px){
  #projects .rs-suplist{grid-template-columns:1fr;}
}

/* ---------- v47: direct Collaboration opening and compact forms label ---------- */
#collaboration.cs-scope .collab-scientific-domain > .collab-domain-heading{
  max-width:none;
  margin:0 0 clamp(22px,3vw,32px);
  padding-left:0;
  border-left:0;
}
#collaboration.cs-scope .collab-scientific-domain > .collab-domain-heading h1{
  display:block;
  box-sizing:border-box;
  width:100%;
  margin:0 0 18px;
  padding:var(--ds-blue-title-pad-y) var(--ds-blue-title-pad-x);
  border-radius:10px;
  background:var(--ds-blue);
  color:#fff;
  font-family:var(--font-heading,"Roboto","Helvetica Neue",Arial,sans-serif);
  font-size:var(--ds-blue-title-size);
  font-weight:600;
  line-height:var(--ds-blue-title-line);
}
#collaboration.cs-scope .collab-scientific-domain > .collab-domain-heading p{
  max-width:1040px;
  margin:0;
  padding-left:18px;
  border-left:4px solid var(--ds-blue);
}
#collaboration.cs-scope .collab-scientific-domain > .cs-subtitle{
  display:inline-flex;
  align-items:center;
  width:max-content;
  max-width:100%;
  margin:6px 0 14px;
  padding:7px 14px;
  border-radius:9px;
  background:var(--ds-blue);
  color:#fff !important;
  font-size:16px;
  line-height:1.3;
}

/* ---------- v48: blue contact panels and document attachment ---------- */
#contact .contact-layout{
  align-items:stretch;
}
#contact .contact-details-panel,
#contact .contact-form-panel{
  height:100%;
  padding:clamp(20px,2.5vw,28px);
  border:1px solid var(--ds-blue-border);
  border-top:4px solid var(--ds-blue);
  border-radius:14px;
  background:rgba(255,255,255,.48);
  box-shadow:0 3px 12px rgba(19,50,77,.06);
}
#contact .contact-panel-title,
#contact .contact-form-title{
  display:inline-flex;
  align-items:center;
  width:max-content;
  max-width:100%;
  margin:0 0 16px;
  padding:var(--ds-blue-title-pad-y) var(--ds-blue-title-pad-x);
  border-radius:10px;
  background:var(--ds-blue);
  color:#fff;
  font:600 var(--ds-blue-title-size)/var(--ds-blue-title-line) var(--font-heading,"Roboto","Helvetica Neue",Arial,sans-serif);
}
#contact .contact-details-panel .section-pill-title{
  margin-top:30px;
}
#contact .contact-form input[type="file"]{
  padding:7px;
  border-color:var(--ds-blue-border);
  background:var(--ds-blue-soft);
  cursor:pointer;
}
#contact .contact-form input[type="file"]::file-selector-button{
  margin-right:10px;
  padding:7px 11px;
  border:0;
  border-radius:6px;
  background:var(--ds-blue);
  color:#fff;
  font:700 12.5px/1.3 var(--font-heading,"Roboto","Helvetica Neue",Arial,sans-serif);
  cursor:pointer;
}
#contact .contact-optional{
  color:var(--ds-ink-soft);
  font-weight:400;
}
#contact .contact-file-help{
  margin:-3px 0 14px;
  color:var(--ds-ink-soft);
  font-size:11.5px;
  line-height:1.45;
}
#contact .contact-form-submit{
  border-color:var(--ds-blue);
  background:var(--ds-blue);
}
#contact .contact-form-submit:hover{
  border-color:var(--ds-blue-dark);
  background:var(--ds-blue-dark);
}
@media(max-width:820px){
  #contact .contact-details-panel,
  #contact .contact-form-panel{height:auto;}
}

/* v54 — research profile, scientific fingerprint and recognition on Home */
#research .rs-intro--compact{
  max-width:none;
  width:100%;
  margin:0 0 var(--space-8);
  color:var(--color-text-soft);
  font-size:var(--type-lead);
  line-height:1.65;
}
#research .rs-intro--compact p{margin:0;}
#research .research-fingerprint{
  --fingerprint-accent:var(--color-blue);
  margin:0 0 var(--space-10);
  padding:clamp(22px,3vw,32px) 0;
  border-top:1px solid rgba(31,92,140,.24);
  border-bottom:1px solid rgba(31,92,140,.24);
  background:transparent;
}
#research .fingerprint-heading-row{
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  gap:var(--space-5);
  align-items:start;
  margin-bottom:var(--space-6);
}
#research .fingerprint-title{
  margin:0;
}
#research .fingerprint-title-badge{
  display:inline-flex;
  align-items:center;
  gap:10px;
  padding:7px 16px;
  border-radius:14px;
  background:var(--color-blue);
  color:#fff;
  font:600 20px/1.25 var(--font-heading,"Roboto","Helvetica Neue",Arial,sans-serif);
  letter-spacing:-.012em;
  text-transform:none;
}
#research .fingerprint-title-text{
  color:var(--ds-navy); /* v16: readable on the de-filled editorial badge */
  display:inline-block;
}
#research .fingerprint-title-icon{
  width:18px;
  height:22px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  flex:0 0 18px;
}
#research .fingerprint-title-icon img{
  width:100%;
  height:100%;
  object-fit:contain;
  display:block;
  visibility:visible;
  /* v10: the original white fingerprint glyph, recoloured to dark navy directly on the
     <img> so it is ALWAYS visible — no fragile webp-as-mask dependency that could make the
     icon disappear. Renders identically in every browser, language and viewport. */
  filter:brightness(0) saturate(0);
}
#research .fingerprint-intro{
  max-width:780px;
  margin:0;
  color:var(--color-text-soft);
  font-size:var(--type-body);
  line-height:1.6;
}
#research .fingerprint-corpus{
  align-self:start;
  white-space:nowrap;
  padding:7px 11px;
  border:1px solid rgba(31,92,140,.3);
  border-radius:var(--radius-pill);
  background:rgba(31,92,140,.07);
  color:var(--color-blue);
  font:700 var(--type-label)/1.2 var(--font-interface);
  letter-spacing:.03em;
  text-transform:uppercase;
}
#research .fingerprint-toolbar{
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  gap:9px;
  margin:0 0 var(--space-7);
  color:var(--color-text-soft);
  font:600 var(--type-body-sm)/1.35 var(--font-interface);
}
#research .fingerprint-sort{
  min-height:34px;
  padding:6px 11px;
  border:1px solid rgba(31,92,140,.26);
  border-radius:4px;
  background:#fff;
  color:var(--color-blue);
  cursor:pointer;
  font:700 12.5px/1.2 var(--font-interface);
  transition:background var(--transition-fast),color var(--transition-fast),border-color var(--transition-fast),box-shadow var(--transition-fast);
}
#research .fingerprint-sort:hover,
#research .fingerprint-sort:focus-visible{
  border-color:var(--color-blue);
  box-shadow:0 0 0 3px rgba(31,92,140,.1);
  outline:none;
}
#research .fingerprint-sort.is-active{
  border-color:var(--color-blue);
  background:var(--color-blue);
  color:#fff;
}
#research .fingerprint-disciplines{
  display:grid;
  gap:clamp(26px,4vw,40px);
}
#research .fingerprint-discipline{
  width:100%;
  box-sizing:border-box;
  border:1px solid var(--ds-rule,#D7E0E7);
  border-left:4px solid var(--ds-blue,#1F5C8C);
  border-radius:12px;
  background:transparent;
  box-shadow:0 3px 12px rgba(19,50,77,.06);
  padding:15px 17px;
}
#research .fingerprint-discipline-title{
  margin:0 0 13px;
  color:var(--color-text);
  font:700 var(--type-component-title)/1.3 var(--font-heading);
}
#research .fingerprint-badges{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
  align-items:stretch;
}
#research .fingerprint-badge{
  position:relative;
  display:inline-flex;
  align-items:center;
  gap:7px;
  min-height:36px;
  padding:6px 9px 6px 7px;
  border:1px solid #DDE2E5;
  border-radius:4px;
  background:#fff;
  color:#3A444C;
  font:500 13px/1.25 var(--font-interface);
  box-shadow:0 1px 1px rgba(29,45,55,.03);
  transition:border-color var(--transition-fast),box-shadow var(--transition-fast),transform var(--transition-fast);
}
#research .fingerprint-badge:hover,
#research .fingerprint-badge:focus-visible{
  z-index:1;
  border-color:rgba(22,117,156,.6);
  box-shadow:0 4px 12px rgba(31,92,140,.12);
  outline:none;
  transform:translateY(-1px);
}
#research .fingerprint-badge::after{
  content:attr(data-weight) "%";
  position:absolute;
  left:50%;
  bottom:calc(100% + 7px);
  z-index:3;
  padding:5px 7px;
  border-radius:4px;
  background:#173E58;
  color:#fff;
  font:700 11px/1 var(--font-interface);
  white-space:nowrap;
  opacity:0;
  pointer-events:none;
  transform:translate(-50%,4px);
  transition:opacity var(--transition-fast),transform var(--transition-fast);
}
#research .fingerprint-badge:hover::after,
#research .fingerprint-badge:focus-visible::after{
  opacity:1;
  transform:translate(-50%,0);
}
#research .fingerprint-ring{
  --weight:0;
  position:relative;
  flex:0 0 18px;
  width:18px;
  height:18px;
  border-radius:50%;
  background:conic-gradient(var(--fingerprint-accent) calc(var(--weight) * 1%),#E1E6E9 0);
}
#research .fingerprint-ring::after{
  content:"";
  position:absolute;
  inset:4px;
  border-radius:50%;
  background:#fff;
}
#research .fingerprint-label{white-space:normal;}
#research .fingerprint-empty{
  margin:0;
  color:var(--color-text-soft);
  font-size:var(--type-body-sm);
}
#research .fingerprint-method{
  margin-top:var(--space-7);
  padding-top:var(--space-5);
  border-top:1px solid rgba(31,92,140,.16);
}
#research .fingerprint-method summary{
  width:max-content;
  max-width:100%;
  cursor:pointer;
  color:var(--color-blue);
  font:700 var(--type-body-sm)/1.4 var(--font-interface);
}
#research .fingerprint-method p{
  max-width:900px;
  margin:var(--space-3) 0 0;
  color:var(--color-text-soft);
  font-size:var(--type-body-sm);
  line-height:1.6;
}
#research .research-process{margin:0 0 var(--space-8);}
#research .research-process .rs-subtitle{margin-bottom:var(--space-4);}
#research .research-method-card{
  width:100%;
  box-sizing:border-box;
  margin:0 0 var(--space-8);
  padding:18px 20px;
  border:1px solid var(--ds-rule,#D7E0E7);
  border-left:4px solid var(--ds-blue,#1F5C8C);
  border-radius:12px;
  background:transparent;
  box-shadow:0 3px 12px rgba(19,50,77,.06);
}
#research .research-method-title{
  margin:0 0 var(--space-3);
  color:var(--color-blue);
  font:700 20px/1.3 var(--font-heading,"Roboto","Helvetica Neue",Arial,sans-serif);
}
#research #modeling-approach-title{
  display:inline-flex;
  align-items:center;
  padding:8px 16px;
  border-radius:14px;
  background:var(--color-blue);
  color:#fff;
}
#research #experimental-approach-title{
  display:inline-flex;
  align-items:center;
  padding:8px 16px;
  border-radius:14px;
  background:var(--color-blue);
  color:#fff;
}
#research .research-method-intro{
  margin:0;
  color:var(--color-text-soft);
  font-size:var(--type-body);
  line-height:1.65;
}
#research .research-disclosure{
  margin:0 0 var(--space-8);
  overflow:hidden;
  border:1px solid rgba(31,92,140,.36);
  border-radius:var(--radius-md);
  background:transparent;
}
#research .research-disclosure > summary{
  position:relative;
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  gap:var(--space-4);
  align-items:center;
  min-height:88px;
  padding:18px 58px 18px 20px;
  cursor:pointer;
  list-style:none;
  background:linear-gradient(90deg,rgba(31,92,140,.08),rgba(31,92,140,.02));
}
#research .research-disclosure > summary::-webkit-details-marker{display:none;}
#research .research-disclosure > summary::after{
  content:"+";
  position:absolute;
  right:20px;
  top:50%;
  width:30px;
  height:30px;
  display:grid;
  place-items:center;
  transform:translateY(-50%);
  border-radius:50%;
  background:var(--color-blue);
  color:#fff;
  font:400 21px/1 var(--font-interface);
  transition:transform var(--transition-fast),background var(--transition-fast);
}
#research .research-disclosure[open] > summary::after{
  content:"−";
  background:var(--color-green);
}
#research .research-disclosure > summary:hover::after{transform:translateY(-50%) scale(1.06);}
#research .disclosure-title{
  display:block;
  margin-bottom:4px;
  color:var(--color-blue);
  font:700 var(--type-component-title)/1.3 var(--font-heading);
}
#research .disclosure-summary{
  display:block;
  max-width:870px;
  color:var(--color-text-soft);
  font-size:var(--type-body-sm);
  line-height:1.55;
}
#research .disclosure-body{
  padding:22px;
  border-top:1px solid rgba(31,92,140,.18);
}
#research .disclosure-body > p:first-child{margin-top:0;}
#research .method-mini-grid{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(220px,1fr));
  gap:var(--space-4);
  margin:var(--space-5) 0;
}
#research .method-mini-card{
  padding:16px 18px;
  border:1px solid rgba(31,92,140,.2);
  border-top:4px solid var(--color-blue);
  border-radius:var(--radius-sm);
  background:rgba(255,255,255,.46);
}
#research .method-mini-card h4{
  margin:0 0 var(--space-2);
  color:var(--color-blue);
  font:700 var(--type-component-title)/1.35 var(--font-heading);
}
#research .method-mini-card p{
  margin:0;
  color:var(--color-text-soft);
  font-size:var(--type-body-sm);
  line-height:1.58;
}
#research .research-model-categories{
  margin:var(--space-3) 0 0;
  color:var(--color-text-soft);
  font-size:var(--type-body);
  line-height:1.65;
}
#research .model-scale-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:16px;
  margin:var(--space-5) 0;
  counter-reset:modelscale;
}
#research .model-scale-card{
  counter-increment:modelscale;
  position:relative;
  min-height:0;
  padding:18px 18px 18px 58px;
  border:1px solid var(--ds-blue-border,rgba(31,92,140,.24));
  border-top:3px solid var(--ds-blue,#1F5C8C);
  border-radius:12px;
  background:transparent;
  box-shadow:0 3px 12px rgba(19,50,77,.06);
  color:var(--color-text-soft);
}
#research .model-scale-card::before{
  content:counter(modelscale);
  position:absolute;
  top:17px;
  left:18px;
  display:grid;
  width:26px;
  height:26px;
  place-items:center;
  border-radius:50%;
  background:var(--ds-blue,#1F5C8C);
  color:#fff;
  font:700 13px/1 var(--font-heading,"Roboto","Helvetica Neue",Arial,sans-serif);
}
#research .model-scale-card h4{
  margin:0 0 8px;
  color:var(--ds-blue,#1F5C8C);
  font:700 16px/1.3 var(--font-heading,"Roboto","Helvetica Neue",Arial,sans-serif);
}
#research .model-scale-card p{
  margin:0;
  color:var(--color-text-soft);
  font-size:14.5px;
  line-height:1.55;
}
#research .model-scale-card:last-child{grid-column:1 / -1;}
@media(max-width:720px){
  #research .model-scale-grid{grid-template-columns:1fr;}
  #research .model-scale-card:last-child{grid-column:auto;}
}
#research .model-tools{
  margin:0;
  padding:12px 14px;
  border-radius:var(--radius-sm);
  background:var(--color-blue-soft);
  color:var(--color-text-soft);
  font-size:var(--type-body-sm);
  line-height:1.5;
}
#research .model-tools strong{color:var(--color-blue);}
#recognition.home-content-section{margin-top:0;}
#recognition .recognition-home-block{
  margin:0;
  padding:0;
  border:0;
  background:transparent;
}
/* v11 — compact four-column award grid (8 entries → 4 columns × 2 rows). */
/* Vertical list: one award per horizontal row — [circular image] [description] [year]. */
#recognition .recognition-timeline{
  display:flex;
  flex-direction:column;
  gap:8px;
  margin:0;
  padding:0;
  list-style:none;
}
#recognition .recognition-timeline .rs-tl-item{
  display:grid;
  grid-template-columns:68px minmax(0,1fr);
  align-items:center;
  column-gap:14px;
  min-height:0;
  padding:4px 0;
  border:0;
  border-radius:0;
  background:transparent;
  box-shadow:none;
  text-align:left;
}
#recognition .recognition-main{ display:contents; }
/* Circular thumbnail — no rectangular frame, no square backdrop, no heavy shadow. */
#recognition .recognition-media{
  grid-column:1;
  width:68px;
  height:68px;
  margin:0;
  border:0;
  border-radius:50%;
  background:#f3f6f9;
  overflow:hidden;
  display:flex;
  align-items:center;
  justify-content:center;
  flex:0 0 auto;
}
#recognition .recognition-media img{
  width:100%;
  height:100%;
  object-fit:contain;
  padding:5px;
  display:block;
  cursor:zoom-in;
}
#recognition .recognition-content{
  grid-column:2;
  min-width:0;
  display:block;
  text-align:left;
  padding:0;
}
#recognition .recognition-timeline .rs-tl-text{
  color:#141414;
  font-family:"Roboto","Helvetica Neue",Arial,sans-serif;
  font-size:14px;
  line-height:1.5;
}
#recognition .recognition-timeline .rs-tl-year{ display:none; }
#recognition .recognition-item--textonly .recognition-content{padding:0;}
#recognition .recognition-zoom-overlay{
  position:fixed;
  inset:0;
  z-index:1200;
  display:none;
  align-items:center;
  justify-content:center;
  padding:24px;
  background:rgba(8,16,28,.78);
}
#recognition .recognition-zoom-overlay.is-open{display:flex;}
#recognition .recognition-zoom-dialog{
  position:relative;
  max-width:min(92vw,1100px);
  max-height:88vh;
  padding:14px;
  border-radius:18px;
  background:#fff;
  box-shadow:0 18px 48px rgba(0,0,0,.28);
}
#recognition .recognition-zoom-dialog img{
  display:block;
  max-width:min(88vw,1040px);
  max-height:78vh;
  width:auto;
  height:auto;
  object-fit:contain;
}
#recognition .recognition-zoom-close{
  position:absolute;
  top:8px;
  right:8px;
  width:34px;
  height:34px;
  border:0;
  border-radius:50%;
  background:rgba(8,16,28,.78);
  color:#fff;
  font:700 22px/1 var(--font-interface);
  cursor:pointer;
}

@media(max-width:820px){
  #research .fingerprint-heading-row{grid-template-columns:1fr;}
  #research .fingerprint-corpus{justify-self:start;}
  #research .model-scale-grid{grid-template-columns:1fr;}
}
@media(max-width:620px){
  #research .research-fingerprint{padding:20px 0;}
  #research .method-mini-grid{grid-template-columns:1fr;}
  #research .fingerprint-heading-row{gap:var(--space-3);}
  #research .fingerprint-toolbar{margin-bottom:var(--space-6);}
  #research .fingerprint-badges{gap:7px;}
  #research .fingerprint-badge{max-width:100%;font-size:12.5px;}
  #research .research-disclosure > summary{padding:16px 54px 16px 16px;}
  #research .disclosure-body{padding:18px 16px;}
  #recognition .recognition-timeline .rs-tl-item{grid-template-columns:64px minmax(0,1fr) auto; column-gap:12px; padding:10px 12px;}
  #recognition .recognition-media{width:64px; height:64px;}
  #recognition .recognition-timeline .rs-tl-text{font-size:13px;}
}
@media(prefers-reduced-motion:reduce){
  #research .fingerprint-badge,
  #research .fingerprint-badge::after{transition:none;}
}

/* =========================================================================
   v11 — Unified Magic-UI-style card interaction (image push-in + title underline).
   Parent card hover/focus controls both effects; the card, frame and layout stay
   perfectly still — only the image scales inside its overflow:hidden frame.
   Awards use the standard 1.05 (logos/photos); Featured Projects use the reduced
   1.03 because they are scientific figures (object-fit:contain preserved).
   ========================================================================= */
/* ---- Awards & Recognition (vertical list rows) ---- */
#recognition .recognition-media{ overflow:hidden; }
#recognition .recognition-media img{ transition:transform 300ms ease; }
/* Only the image inside the circle scales — the row, circle, text and year stay perfectly still. */
#recognition .rs-tl-item:hover .recognition-media img,
#recognition .rs-tl-item:focus-within .recognition-media img{ transform:scale(1.05); }
/* Real text underline that follows the letters, correctly on every wrapped line. */
#recognition .recognition-timeline .rs-tl-text{ display:inline; }
#recognition .rs-tl-item:hover .rs-tl-text,
#recognition .rs-tl-item:focus-within .rs-tl-text{
  text-decoration-line:underline;
  text-underline-offset:3px;
  text-decoration-thickness:1px;
  text-decoration-skip-ink:auto;
}

/* ---- Featured Projects (scientific figures) ---- */
#area2 .ms-thumb{ overflow:hidden; }
#area2 .ms-thumb img{ transition:transform 300ms ease; }
/* neutralise the older container-scale so the frame/card no longer moves */
#area2 .ms-thumb:hover{ transform:none; box-shadow:none; }
#area2 .ms-thumb:hover img,
#area2 .ms-thumb:focus-within img,
#area2 .fp-pair-fig:hover .ms-thumb img,
#area2 .fp-pair-fig:focus-within .ms-thumb img,
#area2 .fp-agitation-stage:hover .ms-thumb img,
#area2 .fp-agitation-stage:focus-within .ms-thumb img,
#area2 .featured-project-result:hover .ms-thumb img,
#area2 .featured-project-result:focus-within .ms-thumb img,
#area2 .featured-project-item:hover .ms-thumb img,
#area2 .featured-project-item:focus-within .ms-thumb img{ transform:scale(1.03); }
#area2 .featured-project-result-title,
#area2 .fp-agitation-title,
#area2 .featured-project-title{ position:relative; display:inline-block; }
#area2 .featured-project-result-title::after,
#area2 .fp-agitation-title::after,
#area2 .featured-project-title::after{
  content:""; position:absolute; left:0; right:0; bottom:-4px; height:1px;
  background:currentColor; transform:scaleX(0); transform-origin:left;
  transition:transform 300ms ease;
}
#area2 .featured-project-result:hover .featured-project-result-title::after,
#area2 .featured-project-result:focus-within .featured-project-result-title::after,
#area2 .fp-agitation-stage:hover .fp-agitation-title::after,
#area2 .fp-agitation-stage:focus-within .fp-agitation-title::after,
#area2 .featured-project-item:hover .featured-project-title::after,
#area2 .featured-project-item:focus-within .featured-project-title::after{ transform:scaleX(1); }

/* ---- Infrastructure / Equipment cards: subtle internal image push-in only ---- */
#infrastructure .equipment-photo,
#infrastructure .analytical-pair-photo,
#infrastructure .pilot-reactor-photo-wrap,
#infrastructure .pilot-system-media{ overflow:hidden; }
#infrastructure .equipment-photo img,
#infrastructure .analytical-pair-photo img,
#infrastructure .pilot-reactor-photo-wrap img,
#infrastructure .pilot-system-media img{ transition:transform 300ms ease; }
#infrastructure .equipment-card:hover .equipment-photo img,
#infrastructure .equipment-card:focus-within .equipment-photo img,
#infrastructure .analytical-pair-entry:hover .analytical-pair-photo img,
#infrastructure .analytical-pair-entry:focus-within .analytical-pair-photo img,
#infrastructure .pilot-reactor-card:hover .pilot-reactor-photo-wrap img,
#infrastructure .pilot-system-entry:hover .pilot-system-media img,
#infrastructure .pilot-system-entry:focus-within .pilot-system-media img{ transform:scale(1.03); }

@media (prefers-reduced-motion:reduce){
  #recognition .recognition-media img,
  #area2 .ms-thumb img,
  #infrastructure .equipment-photo img,
  #infrastructure .analytical-pair-photo img,
  #infrastructure .pilot-reactor-photo-wrap img,
  #infrastructure .pilot-system-media img{ transition:none; }
  #recognition .rs-tl-item:hover .recognition-media img,
  #recognition .rs-tl-item:focus-within .recognition-media img,
  #area2 .ms-thumb:hover img, #area2 .ms-thumb:focus-within img,
  #area2 .fp-pair-fig:hover .ms-thumb img, #area2 .featured-project-result:hover .ms-thumb img,
  #infrastructure .equipment-card:hover .equipment-photo img,
  #infrastructure .pilot-system-entry:hover .pilot-system-media img{ transform:none; }
  /* the title underline (non-motion indicator) is preserved */
  #recognition .recognition-timeline .rs-tl-text::after,
  #area2 .featured-project-result-title::after,
  #area2 .fp-agitation-title::after{ transition:none; }
}

/* Project labels: 20% inside the image frame, 80% outside, upper right. */
#area2 .featured-projects .featured-project-image,
#area2 .featured-projects .featured-project-result-media{
  overflow:visible !important;
}
#area2 .featured-projects .featured-project-image{
  position:relative !important;
}
#area2 .featured-projects .featured-project-image > .featured-project-category,
#area2 .featured-projects .featured-project-result-media .featured-project-category{
  position:absolute !important;
  top:8px !important;
  right:0 !important;
  left:auto !important;
  transform:translateX(80%) !important;
  z-index:6 !important;
  width:max-content !important;
  max-width:min(230px,72vw) !important;
  margin:0 !important;
  box-sizing:border-box !important;
  background:#f2df00 !important;
  color:#17324d !important;
  border-radius:0 !important;
  box-shadow:none !important;
  font:700 10.5px/1.15 var(--font-heading,Arial) !important;
  letter-spacing:.035em !important;
  text-transform:uppercase !important;
  text-align:left !important;
}

/* =========================================================================
   EDITORIAL TITLES (v15) — single authority for section/heading appearance.
   Reduces filled colored title blocks to typographic hierarchy: navy text on
   a neutral ground with a thin accent underline. Color is kept only for the
   hero CTA, the dark nav, functional buttons/links, active states and small
   number chips. Blue = technical families; green = sustainability/services.
   ========================================================================= */
.title-box,
.section-pill-title,
.profile-subsection-title,
#research .rs-subtitle, #projects .rs-subtitle,
#research .fingerprint-title-badge,
#research #modeling-approach-title,
#research #experimental-approach-title,
#collaboration .collab-section-title,
#collaboration.cs-scope .collab-domain .collab-domain-heading h1,
#collaboration.cs-scope .collab-domain .collab-domain-heading h2,
#collaboration.cs-scope .collab-scientific-domain > .collab-domain-heading h1,
#collaboration.cs-scope .collab-scientific-domain > .cs-subtitle,
#collaboration.cs-scope .collab-domain.collab-scientific-domain .collab-domain-heading h2,
#collaboration .collab-page-header h1,
#publications .section-pill-title,
#contact .section-pill-title,
#contact .contact-panel-title,
#contact .contact-form-title,
#infrastructure > h2,
#infrastructure .infra-major-title,
#infrastructure .infra-subsection-title,
#infrastructure #software.section-pill-title{
  background:transparent !important;
  color:var(--ds-navy) !important;
  border:0 !important;
  border-bottom:2px solid var(--ds-blue) !important;
  border-radius:0 !important;
  box-shadow:none !important;
  padding:2px 0 8px !important;
  letter-spacing:-.012em;
}
/* Green accent for the sustainability / technical-services family */
#collaboration .collab-services-domain .collab-section-title,
#collaboration.cs-scope .collab-services-domain .collab-domain-heading h1,
#collaboration.cs-scope .collab-services-domain .collab-domain-heading h2{
  color:var(--ds-navy) !important;
  border-bottom-color:var(--ds-green) !important;
}
/* Publications category bars: neutral, still clearly interactive */
#publications .pub-accordion-trigger, .pub-accordion-trigger{
  background:var(--ds-blue) !important;
  color:#fff !important;
  border:1px solid var(--ds-blue) !important;
  border-left:3px solid var(--ds-blue-dark) !important;
  border-radius:10px !important;
}
#publications .pub-accordion-trigger:hover, .pub-accordion-trigger:hover{
  background:var(--ds-blue-dark) !important;
}
/* Repeated blue chips/badges → calm blue tint instead of solid fills */
.qual-badge,
#recognition .recognition-timeline .rs-tl-year{
  background:var(--ds-blue-soft) !important;
  color:var(--ds-blue) !important;
}
#infrastructure .workstation-tags li{
  background:var(--ds-blue-soft) !important;
  color:var(--ds-blue) !important;
  border:1px solid var(--ds-blue-border) !important;
}


/* =========================================================================
   v16 CORRECTIONS — readability, self-contained map, subtle hover feedback
   ========================================================================= */
/* Readability: +/- indicator is now on a white accordion bar, so make it visible */
#publications .pub-accordion-trigger .pub-accordion-indicator,
.pub-accordion-indicator{
  color:#fff !important;
  border-color:rgba(255,255,255,.55) !important;
  background:rgba(255,255,255,.12) !important;
}
/* (v18: self-contained SVG map removed — original Plotly globe restored) */

/* ---- Subtle hover/focus feedback on key interactive cards & buttons ---- */
.home-expandable-card, #projects .pcard, #collaboration.cs-scope .inst-card,
#collaboration.cs-scope .collab-scope-list li,
.equipment-category-button, .equipment-list-button,
#contact .contact-form-submit, #contact .contact-list a{
  transition:transform .2s ease, box-shadow .2s ease, border-color .2s ease;
}
@media (hover:hover) and (pointer:fine){
  .home-expandable-card:hover, #projects .pcard:hover, #collaboration.cs-scope .inst-card:hover,
  #collaboration.cs-scope .collab-scope-list li:hover,
  .equipment-category-button:hover, .equipment-list-button:hover,
  #contact .contact-form-submit:hover, #contact .contact-list a:hover{
    transform:translateY(-2px) scale(1.012);
    box-shadow:0 8px 22px rgba(19,50,77,.12);
  }
}
/* Keyboard focus mirrors the hover feedback */
.home-expandable-card:focus-within, #projects .pcard:focus-within,
#collaboration.cs-scope .inst-card:focus-within,
#collaboration.cs-scope .collab-scope-list li:focus-within,
.equipment-category-button:focus-visible, .equipment-list-button:focus-visible,
#contact .contact-form-submit:focus-visible, #contact .contact-list a:focus-visible{
  transform:translateY(-2px) scale(1.012);
  box-shadow:0 8px 22px rgba(19,50,77,.12);
  outline:2px solid var(--ds-blue,#1F5C8C); outline-offset:2px;
}
@media (prefers-reduced-motion:reduce){
  .home-expandable-card, #projects .pcard, #collaboration.cs-scope .inst-card,
  #collaboration.cs-scope .collab-scope-list li,
  .equipment-category-button, .equipment-list-button,
  #contact .contact-form-submit, #contact .contact-list a{ transition:none !important; }
  .home-expandable-card:hover, #projects .pcard:hover, #collaboration.cs-scope .inst-card:hover,
  #collaboration.cs-scope .collab-scope-list li:hover,
  .equipment-category-button:hover, .equipment-list-button:hover,
  #contact .contact-form-submit:hover, #contact .contact-list a:hover,
  .home-expandable-card:focus-within, #projects .pcard:focus-within,
  #collaboration.cs-scope .inst-card:focus-within,
  #collaboration.cs-scope .collab-scope-list li:focus-within,
  .equipment-category-button:focus-visible, .equipment-list-button:focus-visible,
  #contact .contact-form-submit:focus-visible, #contact .contact-list a:focus-visible{ transform:none !important; }
}


/* =========================================================================
   v19 — Publication ENTRY backgrounds transparent (page background shows through).
   The category heading (.pub-accordion-trigger) is deliberately NOT touched.
   Individual entries keep their subtle 1px top-border separators (.pub).
   ========================================================================= */
#publications .pub-accordion{ background:transparent !important; }
#publications .pub-accordion-panel{ background:transparent !important; }
#publications .pub-accordion-panel .pub,
#publications .pub{ background:transparent !important; }
#publications .pub-accordion-panel .review-list,
#publications .pub-accordion-panel .review-list li{ background:transparent !important; }


/* =========================================================================
   v22 — INFRASTRUCTURE grouping containers (corrects v21). Each complete
   capability is wrapped in ONE large restrained container in the site's existing
   left-accent card style (as used by 'Available Experimental Equipment').
   Scientific images are restored LARGE at their natural aspect ratio — no fixed
   small box, no crop, no thumbnails. Scope: #infrastructure equipment/pair only.
   ========================================================================= */
#infrastructure .equipment-grid{
  display:flex; flex-direction:column; gap:clamp(18px,2.5vw,26px);
  margin:clamp(16px,2vw,22px) 0 0;
}
/* Grouping container — subtle neutral border + left accent line, moderate radius,
   comfortable padding, no heavy shadow, no saturated background */
#infrastructure .equipment-card,
#infrastructure .analytical-pair-section{
  box-sizing:border-box; margin:0;
  border:1px solid var(--ds-rule);
  border-left:4px solid var(--ds-green);
  border-radius:12px;
  background:var(--ds-surface);
  box-shadow:0 3px 12px rgba(19,50,77,.06);
  padding:clamp(20px,3vw,30px);
}
#infrastructure .analytical-pair-section{ padding-block:clamp(20px,3vw,30px); }
#infrastructure .analytical-pair-heading{ max-width:none; margin:0 0 clamp(16px,2.2vw,22px); }

/* LARGE images, natural aspect ratio, never cropped or boxed to a fixed height */
#infrastructure .equipment-photo,
#infrastructure .analytical-pair-photo{
  width:100%; height:auto; aspect-ratio:auto; margin:0;
  display:block; overflow:visible;
  border:0; border-radius:0; background:transparent;
}
#infrastructure .equipment-photo img,
#infrastructure .analytical-pair-photo img{
  display:block; width:100%; height:auto; max-width:100%;
  aspect-ratio:auto; object-fit:contain; object-position:center;
  border:1px solid var(--ds-rule); border-radius:10px; background:#fff;
}

/* Extraction & Analysis capability: its two instruments stack as full-width rows so
   each image stays large instead of being squeezed into a narrow half-column */
#infrastructure .analytical-pair-grid{ display:grid; grid-template-columns:1fr; gap:0; }
#infrastructure .analytical-pair-entry{
  display:grid; grid-template-columns:minmax(0,1.12fr) minmax(0,1fr);
  gap:clamp(24px,3.5vw,44px); align-items:center;
}
#infrastructure .analytical-pair-entry + .analytical-pair-entry{
  margin-top:clamp(18px,2.6vw,26px); padding-top:clamp(18px,2.6vw,26px);
  border-top:1px solid var(--ds-rule);
}
#infrastructure .analytical-pair-body{ padding-top:0; }

/* Mobile: stack vertically, image on top and as large as the screen allows */
@media (max-width:760px){
  #infrastructure .equipment-card,
  #infrastructure .analytical-pair-entry{ grid-template-columns:1fr; gap:16px; align-items:stretch; }
  #infrastructure .equipment-photo,
  #infrastructure .analytical-pair-photo{ order:-1; width:100%; }
  #infrastructure .equipment-body,
  #infrastructure .analytical-pair-body{ order:0; }
}


/* =========================================================================
   v23 — INFRASTRUCTURE uniform typography (all equipment blocks share one
   type system: title / body / subheading-label / list). CSS-only.
   ========================================================================= */
#infrastructure .equipment-heading h5,
#infrastructure .analytical-pair-heading h5,
#infrastructure .analytical-pair-title-row h5{
  margin:0 0 10px;
  color:var(--ds-blue);
  font-family:var(--font-heading);
  font-size:clamp(19px,1.9vw,22px);
  font-weight:700; line-height:1.25; letter-spacing:-.005em;
  text-transform:none;
}
#infrastructure .equipment-summary,
#infrastructure .analytical-pair-summary{
  margin:0 0 15px; color:var(--ink-soft);
  font-size:var(--type-body); line-height:var(--leading-body);
}
#infrastructure .equipment-detail h6,
#infrastructure .analytical-pair-detail-label{
  margin:0 0 8px; color:var(--ds-green);
  font-family:var(--font-heading);
  font-size:12.5px; font-weight:700; letter-spacing:.03em; text-transform:uppercase;
  line-height:1.35;
}
#infrastructure .equipment-capabilities li,
#infrastructure .analytical-pair-list li{
  color:#26394C; font-size:14px; line-height:1.5;
}
#infrastructure .equipment-capabilities,
#infrastructure .analytical-pair-list{ display:grid; gap:7px; }
#infrastructure .equipment-science,
#infrastructure .analytical-pair-details{ gap:clamp(16px,2.2vw,22px); }


/* =========================================================================
   v24 — Split the Extraction (Soxhlet, A) and HPLC (B) into their own
   green-accent containers (each capability = its own container).
   ========================================================================= */
#infrastructure .analytical-pair-section{
  border:0 !important; background:transparent !important; box-shadow:none !important; padding:0 !important;
}
#infrastructure .analytical-pair-grid{ grid-template-columns:1fr; gap:clamp(18px,2.5vw,26px); }
#infrastructure .analytical-pair-entry{
  border:1px solid var(--ds-rule); border-left:4px solid var(--ds-green); border-radius:12px;
  background:var(--ds-surface); box-shadow:0 3px 12px rgba(19,50,77,.06);
  padding:clamp(20px,3vw,30px); margin:0;
}
#infrastructure .analytical-pair-entry + .analytical-pair-entry{
  margin-top:0; border-top:0; padding-top:clamp(20px,3vw,30px);
}

/* Home: remove the divider between the mounted professional profile and updates. */
#home .updates{
  border-top:0 !important;
  padding-top:0 !important;
}

/* Research introduction and Scientific Fingerprint: tighter continuous reading flow. */
#research .intro-band{
  margin-bottom:6px !important;
}
#research .research-fingerprint{
  margin:0 0 12px !important;
  padding:10px 0 16px !important;
  border-top:0 !important;
  border-bottom:0 !important;
}
#research .fingerprint-heading-row{
  margin-bottom:18px !important;
}

/* Biomass valorization landmark: same editorial hierarchy as Scientific Fingerprint. */
#research .rs-valo-h{
  display:flex !important;
  align-items:center;
  gap:10px;
  width:100%;
  box-sizing:border-box;
  margin:4px 0 10px !important;
  padding:2px 0 8px !important;
  border-bottom:2px solid var(--ds-blue,#1F5C8C);
  color:var(--ds-navy,#132437) !important;
  font:600 20px/1.25 var(--font-heading,"Roboto","Helvetica Neue",Arial,sans-serif) !important;
  letter-spacing:-.012em;
}
#research .rs-valo-icon{
  display:inline-flex;
  width:23px;
  height:23px;
  flex:0 0 23px;
  color:var(--ds-navy,#132437);
}
#research .rs-valo-icon svg{
  display:block;
  width:100%;
  height:100%;
  fill:none;
  stroke:currentColor;
  stroke-width:1.65;
  stroke-linecap:round;
  stroke-linejoin:round;
}

/* Bring the highlighted-project portfolio closer to the modeling section. */
#research #modeling-approach{
  margin-bottom:12px !important;
}
#area2 > .rs-subtitle{
  display:block !important;
  width:100%;
  box-sizing:border-box;
  margin:0 0 10px !important;
  padding:2px 0 8px !important;
  border-bottom:2px solid var(--ds-blue,#1F5C8C) !important;
  background:transparent !important;
  color:var(--ds-navy,#132437) !important;
  font:600 20px/1.25 var(--font-heading,"Roboto","Helvetica Neue",Arial,sans-serif) !important;
  letter-spacing:-.012em;
}
#area2 .featured-projects{
  margin-top:4px !important;
}

/* Multi-step kinetics + CFD: enlarge the deleted MS34 figure and place its explanation centrally beside it. */
#area2 .project-box--ms34 .featured-project-triple{
  grid-template-columns:repeat(2,minmax(0,1fr)) !important;
  gap:22px 24px !important;
}
#area2 .project-box--ms34 .featured-project-triple > .fp-pair-fig:nth-child(2){
  grid-column:1 / -1;
  display:grid !important;
  grid-template-columns:minmax(0,1.28fr) minmax(270px,.72fr);
  grid-template-rows:auto auto;
  gap:8px 30px;
  align-items:center;
}
#area2 .project-box--ms34 .featured-project-triple > .fp-pair-fig:nth-child(2) .featured-project-image{
  grid-column:1;
  grid-row:1 / span 2;
  margin:0 !important;
}
#area2 .project-box--ms34 .featured-project-triple > .fp-pair-fig:nth-child(2) .ms-thumb{
  display:flex;
  align-items:center;
  justify-content:center;
  min-height:330px;
  aspect-ratio:auto !important;
}
#area2 .project-box--ms34 .featured-project-triple > .fp-pair-fig:nth-child(2) .ms-thumb img{
  width:100% !important;
  height:auto !important;
  max-height:380px !important;
  object-fit:contain !important;
  clip-path:none !important;
  margin-bottom:0 !important;
}
#area2 .project-box--ms34 .featured-project-triple > .fp-pair-fig:nth-child(2) .fp-fig-cap{
  grid-column:2;
  grid-row:1;
  align-self:end;
  margin:0 0 6px;
}
#area2 .project-box--ms34 .featured-project-triple > .fp-pair-fig:nth-child(2) .featured-project-link{
  grid-column:2;
  grid-row:2;
  align-self:start;
  justify-self:start;
  margin:0;
  padding-top:0;
}

/* Industrial-process simulation: wider scientific figure and vertically centered description. */
#area2 .project-box--ms5 > .featured-project-item{
  grid-template-columns:minmax(340px,430px) minmax(0,1fr) !important;
  gap:32px !important;
  align-items:center !important;
}
#area2 .project-box--ms5 .featured-project-image{
  align-self:center !important;
}
#area2 .project-box--ms5 .featured-project-image .ms-thumb{
  width:100% !important;
  max-width:none !important;
  aspect-ratio:auto !important;
}
#area2 .project-box--ms5 .featured-project-image .ms-thumb img{
  width:100% !important;
  height:auto !important;
  object-fit:contain !important;
}
#area2 .project-box--ms5 .featured-project-content{
  align-self:center !important;
}

/* Conservative rendering optimization for project media. */
#area2 .featured-projects .ms-thumb{
  contain:paint;
  transform:translateZ(0);
  backface-visibility:hidden;
}
#area2 .featured-projects .ms-thumb img{
  backface-visibility:hidden;
  transform:translateZ(0);
  transition:transform 180ms ease-out !important;
}

@media(max-width:820px){
  #area2 .project-box--ms34 .featured-project-triple > .fp-pair-fig:nth-child(2){
    grid-template-columns:1fr;
    grid-template-rows:auto;
    gap:12px;
  }
  #area2 .project-box--ms34 .featured-project-triple > .fp-pair-fig:nth-child(2) .featured-project-image,
  #area2 .project-box--ms34 .featured-project-triple > .fp-pair-fig:nth-child(2) .fp-fig-cap,
  #area2 .project-box--ms34 .featured-project-triple > .fp-pair-fig:nth-child(2) .featured-project-link{
    grid-column:1;
    grid-row:auto;
  }
  #area2 .project-box--ms34 .featured-project-triple > .fp-pair-fig:nth-child(2) .ms-thumb{
    min-height:0;
  }
  #area2 .project-box--ms5 > .featured-project-item{
    grid-template-columns:minmax(250px,38%) minmax(0,1fr) !important;
    gap:24px !important;
  }
}


/* Research refinements requested by user: remove divider lines, enlarge key figures,
   and vertically center the explanatory text beside them. */
#area2 .featured-projects .project-box{ border-left:0 !important; }
#area2 .featured-projects .project-box--ms1 .fp-agitation-stage,
#area2 .featured-projects .project-box--ms1 .fp-multiphysics-row{
  border-top:0 !important;
}
#area2 .project-box--ms34 .featured-project-triple{
  row-gap:34px !important;
  column-gap:26px !important;
}
#area2 .project-box--ms34 .featured-project-triple > .fp-pair-fig:nth-child(2){
  grid-template-columns:minmax(0,1.55fr) minmax(280px,.65fr) !important;
  gap:10px 34px !important;
  align-items:center !important;
}
#area2 .project-box--ms34 .featured-project-triple > .fp-pair-fig:nth-child(2) .featured-project-image{
  align-self:center !important;
}
#area2 .project-box--ms34 .featured-project-triple > .fp-pair-fig:nth-child(2) .ms-thumb{
  min-height:400px !important;
  padding-block:8px !important;
}
#area2 .project-box--ms34 .featured-project-triple > .fp-pair-fig:nth-child(2) .ms-thumb img{
  max-height:460px !important;
}
#area2 .project-box--ms34 .featured-project-triple > .fp-pair-fig:nth-child(2) .fp-fig-cap{
  grid-column:2 !important;
  grid-row:1 !important;
  align-self:center !important;
  margin:0 !important;
  display:flex !important;
  align-items:center !important;
  min-height:100% !important;
}
#area2 .project-box--ms34 .featured-project-triple > .fp-pair-fig:nth-child(2) .featured-project-link{
  grid-column:2 !important;
  grid-row:2 !important;
  align-self:start !important;
  margin:6px 0 0 !important;
}
#area2 .project-box--ms2 .fp-pair--2{
  gap:28px 34px !important;
}
#area2 .project-box--ms2 .fp-pair--2 .fp-pair-fig{
  display:grid !important;
  grid-template-rows:auto 1fr auto !important;
  align-items:start !important;
}
#area2 .project-box--ms2 .fp-pair--2 .featured-project-image{
  align-self:center !important;
}
#area2 .project-box--ms2 .fp-pair--2 .featured-project-image .ms-thumb{
  display:flex !important;
  align-items:center !important;
  justify-content:center !important;
  min-height:290px !important;
  width:100% !important;
}
#area2 .project-box--ms2 .fp-pair--2 .featured-project-image .ms-thumb img{
  width:100% !important;
  height:auto !important;
  max-height:340px !important;
  object-fit:contain !important;
}
#area2 .project-box--ms2 .fp-pair--2 .fp-fig-cap{
  margin:0 !important;
  display:flex !important;
  align-items:center !important;
}
@media(max-width:820px){
  #area2 .project-box--ms34 .featured-project-triple{ row-gap:20px !important; }
  #area2 .project-box--ms34 .featured-project-triple > .fp-pair-fig:nth-child(2){
    grid-template-columns:1fr !important;
    gap:14px !important;
  }
  #area2 .project-box--ms34 .featured-project-triple > .fp-pair-fig:nth-child(2) .ms-thumb{
    min-height:0 !important;
  }
  #area2 .project-box--ms2 .fp-pair--2 .featured-project-image .ms-thumb{
    min-height:0 !important;
  }
}
@media(max-width:640px){
  #area2 .project-box--ms34 .featured-project-triple,
  #area2 .project-box--ms5 > .featured-project-item{
    grid-template-columns:1fr !important;
  }
}
@media(prefers-reduced-motion:reduce){
  #area2 .featured-projects .ms-thumb img{transition:none !important;}
}

/* Final research-project layout: full scientific figures, vertically balanced copy,
   no internal divider lines, and non-overlapping category labels. */
#area2 .featured-projects .project-box .featured-project-image{
  display:flex !important;
  flex-direction:column !important;
  align-items:stretch !important;
  overflow:visible !important;
}
#area2 .featured-projects .project-box .featured-project-image > .featured-project-category{
  position:static !important;
  inset:auto !important;
  transform:none !important;
  align-self:flex-end !important;
  display:inline-flex !important;
  width:max-content !important;
  max-width:100% !important;
  margin:8px 0 0 !important;
  padding:6px 10px !important;
  box-sizing:border-box !important;
  z-index:auto !important;
  background:#f2df00 !important;
  color:#17324d !important;
  box-shadow:none !important;
  white-space:normal !important;
}
#area2 .featured-projects .project-box--ms1 .fp-agitation-stage,
#area2 .featured-projects .project-box--ms1 .fp-multiphysics-row,
#area2 .featured-projects .project-box--ms2 .fp-pair-fig,
#area2 .featured-projects .project-box--ms34 .fp-pair-fig{
  border-top:0 !important;
  border-bottom:0 !important;
}

/* Multi-step kinetics + CFD — deleted figure: a full-width, taller scientific row. */
#area2 .project-box--ms34 .featured-project-triple{
  grid-template-columns:repeat(2,minmax(0,1fr)) !important;
  column-gap:28px !important;
  row-gap:30px !important;
}
#area2 .project-box--ms34 .featured-project-triple > .fp-pair-fig:nth-child(2){
  grid-column:1 / -1 !important;
  display:grid !important;
  grid-template-columns:minmax(0,1.72fr) minmax(285px,.68fr) !important;
  grid-template-rows:1fr auto auto 1fr !important;
  column-gap:36px !important;
  row-gap:8px !important;
  align-items:stretch !important;
  min-height:430px !important;
  margin:0 0 34px !important;
  padding:4px 0 10px !important;
}
#area2 .project-box--ms34 .featured-project-triple > .fp-pair-fig:nth-child(2) .featured-project-image{
  grid-column:1 !important;
  grid-row:1 / -1 !important;
  align-self:stretch !important;
  justify-content:center !important;
  min-width:0 !important;
}
#area2 .project-box--ms34 .featured-project-triple > .fp-pair-fig:nth-child(2) .ms-thumb{
  display:flex !important;
  align-items:center !important;
  justify-content:center !important;
  width:100% !important;
  max-width:none !important;
  min-height:380px !important;
  aspect-ratio:auto !important;
  padding:8px !important;
  box-sizing:border-box !important;
}
#area2 .project-box--ms34 .featured-project-triple > .fp-pair-fig:nth-child(2) .ms-thumb img{
  display:block !important;
  width:100% !important;
  height:auto !important;
  max-width:100% !important;
  max-height:410px !important;
  object-fit:contain !important;
  clip-path:none !important;
  margin:0 !important;
}
#area2 .project-box--ms34 .featured-project-triple > .fp-pair-fig:nth-child(2) .featured-project-category{
  align-self:center !important;
}
#area2 .project-box--ms34 .featured-project-triple > .fp-pair-fig:nth-child(2) .fp-fig-cap{
  grid-column:2 !important;
  grid-row:2 !important;
  align-self:center !important;
  margin:0 !important;
  font-size:14px !important;
  line-height:1.62 !important;
}
#area2 .project-box--ms34 .featured-project-triple > .fp-pair-fig:nth-child(2) .featured-project-link{
  grid-column:2 !important;
  grid-row:3 !important;
  align-self:start !important;
  justify-self:start !important;
  margin:4px 0 0 !important;
}

/* Pyrolysis-gas combustion: temperature and CO become spacious full-width rows,
   with the complete field at left and the explanation centered at right. */
#area2 .project-box--ms2 .fp-pair--2{
  display:grid !important;
  grid-template-columns:1fr !important;
  gap:40px !important;
}
#area2 .project-box--ms2 .fp-pair--2 > .fp-pair-fig{
  display:grid !important;
  grid-template-columns:minmax(0,1.68fr) minmax(285px,.72fr) !important;
  grid-template-rows:1fr auto auto 1fr !important;
  column-gap:36px !important;
  row-gap:8px !important;
  align-items:stretch !important;
  min-height:390px !important;
  margin:0 !important;
  padding:2px 0 8px !important;
}
#area2 .project-box--ms2 .fp-pair--2 > .fp-pair-fig .featured-project-image{
  grid-column:1 !important;
  grid-row:1 / -1 !important;
  align-self:stretch !important;
  justify-content:center !important;
  min-width:0 !important;
}
#area2 .project-box--ms2 .fp-pair--2 > .fp-pair-fig .ms-thumb{
  display:flex !important;
  align-items:center !important;
  justify-content:center !important;
  width:100% !important;
  max-width:none !important;
  min-height:335px !important;
  aspect-ratio:auto !important;
  padding:6px !important;
  box-sizing:border-box !important;
}
#area2 .project-box--ms2 .fp-pair--2 > .fp-pair-fig .ms-thumb img{
  display:block !important;
  width:100% !important;
  height:auto !important;
  max-width:100% !important;
  max-height:360px !important;
  object-fit:contain !important;
  margin:0 !important;
}
#area2 .project-box--ms2 .fp-pair--2 > .fp-pair-fig .featured-project-category{
  align-self:center !important;
}
#area2 .project-box--ms2 .fp-pair--2 > .fp-pair-fig .fp-fig-cap{
  grid-column:2 !important;
  grid-row:2 !important;
  align-self:center !important;
  margin:0 !important;
  font-size:14px !important;
  line-height:1.62 !important;
}
#area2 .project-box--ms2 .fp-pair--2 > .fp-pair-fig .featured-project-link{
  grid-column:2 !important;
  grid-row:3 !important;
  align-self:start !important;
  justify-self:start !important;
  margin:4px 0 0 !important;
}

/* Industrial-process simulation: larger process scheme and centered explanation. */
#area2 .project-box--ms5 > .featured-project-item{
  display:grid !important;
  grid-template-columns:minmax(0,1.45fr) minmax(320px,.75fr) !important;
  gap:38px !important;
  align-items:center !important;
  min-height:360px !important;
}
#area2 .project-box--ms5 .featured-project-image{
  align-self:stretch !important;
  justify-content:center !important;
}
#area2 .project-box--ms5 .featured-project-image .ms-thumb{
  display:flex !important;
  align-items:center !important;
  justify-content:center !important;
  width:100% !important;
  max-width:none !important;
  min-height:300px !important;
  aspect-ratio:auto !important;
  padding:6px !important;
  box-sizing:border-box !important;
}
#area2 .project-box--ms5 .featured-project-image .ms-thumb img{
  width:100% !important;
  height:auto !important;
  max-height:320px !important;
  object-fit:contain !important;
  margin:0 !important;
}
#area2 .project-box--ms5 .featured-project-content{
  align-self:center !important;
  justify-content:center !important;
}

@media(max-width:900px){
  #area2 .project-box--ms34 .featured-project-triple > .fp-pair-fig:nth-child(2),
  #area2 .project-box--ms2 .fp-pair--2 > .fp-pair-fig,
  #area2 .project-box--ms5 > .featured-project-item{
    grid-template-columns:1fr !important;
    grid-template-rows:auto !important;
    min-height:0 !important;
    gap:14px !important;
  }
  #area2 .project-box--ms34 .featured-project-triple > .fp-pair-fig:nth-child(2) .featured-project-image,
  #area2 .project-box--ms34 .featured-project-triple > .fp-pair-fig:nth-child(2) .fp-fig-cap,
  #area2 .project-box--ms34 .featured-project-triple > .fp-pair-fig:nth-child(2) .featured-project-link,
  #area2 .project-box--ms2 .fp-pair--2 > .fp-pair-fig .featured-project-image,
  #area2 .project-box--ms2 .fp-pair--2 > .fp-pair-fig .fp-fig-cap,
  #area2 .project-box--ms2 .fp-pair--2 > .fp-pair-fig .featured-project-link{
    grid-column:1 !important;
    grid-row:auto !important;
  }
  #area2 .project-box--ms34 .featured-project-triple > .fp-pair-fig:nth-child(2) .ms-thumb,
  #area2 .project-box--ms2 .fp-pair--2 > .fp-pair-fig .ms-thumb,
  #area2 .project-box--ms5 .featured-project-image .ms-thumb{
    min-height:0 !important;
  }
  #area2 .project-box--ms34 .featured-project-triple > .fp-pair-fig:nth-child(2){
    margin-bottom:24px !important;
  }
}

/* Precise final correction: retain the yellow project badge at the upper-right,
   with approximately 5% of its width inside the image and the remainder outside. */
#area2 .featured-projects .project-box .featured-project-image{
  position:relative !important;
  display:block !important;
  overflow:visible !important;
}
#area2 .featured-projects .project-box .featured-project-image > .featured-project-category{
  position:absolute !important;
  top:8px !important;
  right:0 !important;
  bottom:auto !important;
  left:auto !important;
  transform:translateX(95%) !important;
  align-self:auto !important;
  display:inline-flex !important;
  width:max-content !important;
  max-width:min(230px,72vw) !important;
  margin:0 !important;
  padding:6px 10px !important;
  z-index:8 !important;
  box-sizing:border-box !important;
  background:#f2df00 !important;
  color:#17324d !important;
  border-radius:0 !important;
  box-shadow:none !important;
  white-space:normal !important;
  font:700 10.5px/1.15 var(--font-heading,Arial) !important;
  letter-spacing:.035em !important;
  text-transform:uppercase !important;
  text-align:left !important;
}

/* Deleted MS34 figure: substantially larger visual area, complete image,
   vertically centered explanation, and generous separation before the next result. */
#area2 .project-box--ms34 .featured-project-triple > .fp-pair-fig:nth-child(2){
  grid-column:1 / -1 !important;
  display:grid !important;
  grid-template-columns:minmax(0,2.05fr) minmax(250px,.62fr) !important;
  grid-template-rows:1fr auto auto 1fr !important;
  column-gap:56px !important;
  row-gap:8px !important;
  align-items:stretch !important;
  min-height:510px !important;
  margin:0 0 54px !important;
  padding:12px 0 18px !important;
}
#area2 .project-box--ms34 .featured-project-triple > .fp-pair-fig:nth-child(2) .featured-project-image{
  grid-column:1 !important;
  grid-row:1 / -1 !important;
  display:flex !important;
  align-items:center !important;
  justify-content:center !important;
  align-self:stretch !important;
  min-width:0 !important;
  overflow:visible !important;
}
#area2 .project-box--ms34 .featured-project-triple > .fp-pair-fig:nth-child(2) .ms-thumb{
  display:flex !important;
  align-items:center !important;
  justify-content:center !important;
  width:100% !important;
  max-width:none !important;
  min-height:455px !important;
  height:auto !important;
  aspect-ratio:auto !important;
  padding:12px !important;
  box-sizing:border-box !important;
  overflow:hidden !important;
}
#area2 .project-box--ms34 .featured-project-triple > .fp-pair-fig:nth-child(2) .ms-thumb img{
  display:block !important;
  width:100% !important;
  height:auto !important;
  max-width:100% !important;
  max-height:470px !important;
  object-fit:contain !important;
  object-position:center !important;
  clip-path:none !important;
  margin:0 !important;
}
#area2 .project-box--ms34 .featured-project-triple > .fp-pair-fig:nth-child(2) .fp-fig-cap{
  grid-column:2 !important;
  grid-row:2 !important;
  align-self:center !important;
  margin:0 !important;
  font-size:14px !important;
  line-height:1.62 !important;
}
#area2 .project-box--ms34 .featured-project-triple > .fp-pair-fig:nth-child(2) .featured-project-link{
  grid-column:2 !important;
  grid-row:3 !important;
  align-self:start !important;
  justify-self:start !important;
  margin:6px 0 0 !important;
}

@media(max-width:900px){
  #area2 .featured-projects .project-box .featured-project-image > .featured-project-category{
    transform:translateX(82%) !important;
  }
  #area2 .project-box--ms34 .featured-project-triple > .fp-pair-fig:nth-child(2){
    grid-template-columns:1fr !important;
    grid-template-rows:auto !important;
    min-height:0 !important;
    margin-bottom:30px !important;
    padding:4px 0 12px !important;
    gap:14px !important;
  }
  #area2 .project-box--ms34 .featured-project-triple > .fp-pair-fig:nth-child(2) .featured-project-image,
  #area2 .project-box--ms34 .featured-project-triple > .fp-pair-fig:nth-child(2) .fp-fig-cap,
  #area2 .project-box--ms34 .featured-project-triple > .fp-pair-fig:nth-child(2) .featured-project-link{
    grid-column:1 !important;
    grid-row:auto !important;
  }
  #area2 .project-box--ms34 .featured-project-triple > .fp-pair-fig:nth-child(2) .ms-thumb{
    min-height:0 !important;
  }
}

/* Only the Deleted MS34 figure result is adjusted here.
   The image remains complete, receives more vertical breathing room,
   and the explanatory text stays vertically centered at the right. */
#area2 .project-box--ms34 .featured-project-triple > .fp-pair-fig:nth-child(2){
  grid-column:1 / -1 !important;
  display:grid !important;
  grid-template-columns:minmax(0,2.12fr) minmax(270px,.68fr) !important;
  grid-template-rows:1fr auto auto 1fr !important;
  column-gap:64px !important;
  row-gap:10px !important;
  align-items:stretch !important;
  min-height:620px !important;
  margin:0 0 58px !important;
  padding:44px 0 72px !important;
  box-sizing:border-box !important;
}
#area2 .project-box--ms34 .featured-project-triple > .fp-pair-fig:nth-child(2) .featured-project-image{
  grid-column:1 !important;
  grid-row:1 / -1 !important;
  display:flex !important;
  align-items:center !important;
  justify-content:center !important;
  align-self:stretch !important;
  min-width:0 !important;
  overflow:visible !important;
}
#area2 .project-box--ms34 .featured-project-triple > .fp-pair-fig:nth-child(2) .ms-thumb{
  display:flex !important;
  align-items:center !important;
  justify-content:center !important;
  width:100% !important;
  max-width:none !important;
  min-height:500px !important;
  height:auto !important;
  aspect-ratio:auto !important;
  padding:46px 14px 66px !important;
  box-sizing:border-box !important;
  overflow:visible !important;
}
#area2 .project-box--ms34 .featured-project-triple > .fp-pair-fig:nth-child(2) .ms-thumb img{
  display:block !important;
  width:100% !important;
  height:auto !important;
  max-width:100% !important;
  max-height:none !important;
  object-fit:contain !important;
  object-position:center !important;
  clip-path:none !important;
  margin:0 !important;
}
#area2 .project-box--ms34 .featured-project-triple > .fp-pair-fig:nth-child(2) .fp-fig-cap{
  grid-column:2 !important;
  grid-row:2 !important;
  align-self:center !important;
  margin:0 !important;
}
#area2 .project-box--ms34 .featured-project-triple > .fp-pair-fig:nth-child(2) .featured-project-link{
  grid-column:2 !important;
  grid-row:3 !important;
  align-self:start !important;
  justify-self:start !important;
  margin:6px 0 0 !important;
}
/* Keep the yellow label in its original upper-right position:
   about 5% inside the figure, with the remainder outside. */
#area2 .project-box--ms34 .featured-project-triple > .fp-pair-fig:nth-child(2) .featured-project-image > .featured-project-category{
  top:8px !important;
  right:0 !important;
  left:auto !important;
  bottom:auto !important;
  transform:translateX(95%) !important;
}
@media(max-width:900px){
  #area2 .project-box--ms34 .featured-project-triple > .fp-pair-fig:nth-child(2){
    grid-template-columns:1fr !important;
    grid-template-rows:auto !important;
    min-height:0 !important;
    margin-bottom:30px !important;
    padding:22px 0 34px !important;
    gap:16px !important;
  }
  #area2 .project-box--ms34 .featured-project-triple > .fp-pair-fig:nth-child(2) .featured-project-image,
  #area2 .project-box--ms34 .featured-project-triple > .fp-pair-fig:nth-child(2) .fp-fig-cap,
  #area2 .project-box--ms34 .featured-project-triple > .fp-pair-fig:nth-child(2) .featured-project-link{
    grid-column:1 !important;
    grid-row:auto !important;
  }
  #area2 .project-box--ms34 .featured-project-triple > .fp-pair-fig:nth-child(2) .ms-thumb{
    min-height:0 !important;
    padding:28px 8px 38px !important;
  }
}

#area2 .project-box--ms34 .featured-project-triple > .fp-pair-fig:nth-child(1){
  grid-column:1 / -1 !important;
  margin-bottom:64px !important;
}
#area2 .project-box--ms34 .featured-project-triple > .fp-pair-fig:nth-child(2){
  grid-column:1 / -1 !important;
  margin-top:0 !important;
}
#area2 .project-box--ms34 .featured-project-triple > .fp-pair-fig:nth-child(3){
  grid-column:1 / -1 !important;
}
@media(max-width:900px){
  #area2 .project-box--ms34 .featured-project-triple > .fp-pair-fig:nth-child(1){
    margin-bottom:38px !important;
  }
}

/* Final MS34 ordering and rhythm:
   1) Product formation and distribution
   2) Deleted MS34 figure
   3) Biochar kinetics and reactivity
   Each figure remains a complete unit (image, label, caption and link). */
#area2 .project-box--ms34 .featured-project-triple{
  display:grid !important;
  grid-template-columns:1fr !important;
  row-gap:64px !important;
  column-gap:0 !important;
}
#area2 .project-box--ms34 .featured-project-triple > .fp-pair-fig:nth-child(1),
#area2 .project-box--ms34 .featured-project-triple > .fp-pair-fig:nth-child(2),
#area2 .project-box--ms34 .featured-project-triple > .fp-pair-fig:nth-child(3){
  grid-column:1 !important;
  margin:0 !important;
}
@media(max-width:900px){
  #area2 .project-box--ms34 .featured-project-triple{
    row-gap:38px !important;
  }
}



/* Mobile performance layer — preserves content and desktop presentation. */
.mobile-recognition-picture{display:block;width:100%;height:100%;}
#recognition .recognition-zoom-close{z-index:3;}
.mobile-recognition-picture > img{display:block;width:100%;height:100%;}
.mobile-deferred-animation{display:block;width:100%;}
.mobile-deferred-animation > img{display:block;width:100%;height:auto;}
@media (max-width:700px), (pointer:coarse){
  .page.active{animation:none;}
  html.js-reveal .scroll-reveal{opacity:1;transform:none;transition:none;will-change:auto;}
  .nav-menu{backdrop-filter:none;-webkit-backdrop-filter:none;}
  a,button,[role="button"]{touch-action:manipulation;}
  #recognition .recognition-media img,
  #recognition .rs-tl-item:hover .recognition-media img,
  #recognition .rs-tl-item:focus-within .recognition-media img{transition:none;transform:none;}
  .publication-wheel-item{transform:none!important;filter:none!important;opacity:1!important;}
}


/* MS34 final state: two remaining figures, each with its own title, image and caption. */
#area2 .project-box--ms34 .featured-project-triple{
  display:grid !important;
  grid-template-columns:1fr !important;
  row-gap:52px !important;
  column-gap:0 !important;
}
#area2 .project-box--ms34 .featured-project-triple > .fp-pair-fig{
  display:flex !important;
  flex-direction:column !important;
  grid-column:1 !important;
  grid-row:auto !important;
  min-height:0 !important;
  height:auto !important;
  margin:0 !important;
  padding:0 !important;
}
#area2 .project-box--ms34 .featured-project-triple > .fp-pair-fig .featured-project-image{
  display:flex !important;
  flex-direction:column !important;
  grid-column:auto !important;
  grid-row:auto !important;
  align-self:stretch !important;
  justify-content:flex-start !important;
  min-width:0 !important;
  margin:0 0 10px !important;
}
#area2 .project-box--ms34 .featured-project-triple > .fp-pair-fig .ms-thumb{
  display:flex !important;
  align-items:center !important;
  justify-content:center !important;
  width:100% !important;
  max-width:none !important;
  min-height:0 !important;
  aspect-ratio:auto !important;
  padding:0 !important;
  box-sizing:border-box !important;
}
#area2 .project-box--ms34 .featured-project-triple > .fp-pair-fig .ms-thumb img{
  display:block !important;
  width:100% !important;
  height:auto !important;
  max-width:100% !important;
  max-height:560px !important;
  object-fit:contain !important;
  clip-path:none !important;
  margin:0 !important;
}
#area2 .project-box--ms34 .featured-project-triple > .fp-pair-fig .featured-project-category,
#area2 .project-box--ms34 .featured-project-triple > .fp-pair-fig .fp-fig-cap,
#area2 .project-box--ms34 .featured-project-triple > .fp-pair-fig .featured-project-link{
  grid-column:auto !important;
  grid-row:auto !important;
  align-self:auto !important;
  min-height:0 !important;
}
@media(max-width:900px){
  #area2 .project-box--ms34 .featured-project-triple{row-gap:38px !important;}
  #area2 .project-box--ms34 .featured-project-triple > .fp-pair-fig .ms-thumb img{max-height:none !important;}
}



/* ============================================================
   Home frame-fade visual test
   - keep the blue left anchor
   - fade top/bottom outlines toward the right
   - remove hard right edges and internal separators
   Scoped to Home only.
   ============================================================ */
#home .bio-research-block .home-expandable-card,
#home .academic-col .education-list,
#home .languages-col .language-list,
#home .updates .update-list{
  position:relative;
  border:0 !important;
  border-left:4px solid var(--ds-blue,#1F5C8C) !important;
  border-radius:12px 0 0 12px !important;
  box-shadow:none !important;
  background:transparent !important;
}
#home .bio-research-block .home-expandable-card::before,
#home .academic-col .education-list::before,
#home .languages-col .language-list::before,
#home .updates .update-list::before,
#home .bio-research-block .home-expandable-card::after,
#home .academic-col .education-list::after,
#home .languages-col .language-list::after,
#home .updates .update-list::after{
  content:"";
  position:absolute;
  left:0;
  width:100%;
  height:1px;
  pointer-events:none;
  background:linear-gradient(90deg,
    rgba(31,92,140,.72) 0%,
    rgba(215,224,231,.92) 9%,
    rgba(215,224,231,.58) 38%,
    rgba(215,224,231,.20) 68%,
    rgba(215,224,231,0) 94%);
}
#home .bio-research-block .home-expandable-card::before,
#home .academic-col .education-list::before,
#home .languages-col .language-list::before,
#home .updates .update-list::before{ top:0; }
#home .bio-research-block .home-expandable-card::after,
#home .academic-col .education-list::after,
#home .languages-col .language-list::after,
#home .updates .update-list::after{ bottom:0; }

/* Education: remove the two horizontal separators between degrees. */
#home .education-entry,
#home .education-entry:last-child{
  border-bottom:0 !important;
  padding-bottom:0 !important;
}
#home .education-list{ gap:18px !important; }

/* Updates: remove all hard internal separators, including the BioStar divider. */
#home .update-list li.recent-article,
#home .update-list li.recent-article:first-child{
  border-top:0 !important;
}
#home .recent-project{
  border-left:0 !important;
  border-top:0 !important;
  padding-left:8px !important;
}
@media (max-width:820px){
  #home .recent-project{
    border-left:0 !important;
    border-top:0 !important;
    padding-top:8px !important;
    padding-left:0 !important;
  }
}



  /* Home-only final surface correction: true white profile and keyword badges. */
  #home .profiles-fullwidth .home-profiles-row .home-profile > a,
  #home .updates .publication-keyword,
  #home .expertise-fullwidth .expertise-pills .profile-chip {
    background-color:#FFFFFF !important;
    background-image:none !important;
    opacity:1 !important;
  }



/* ======================================================================
   v79 — Directional editorial frames (approved visual test)
   Strong accent at the origin; the remaining rule fades without a hard
   right/bottom edge. Content and layout are otherwise unchanged.
   ====================================================================== */

/* Horizontal fade: blue left bar; top and bottom rules dissolve rightward. */
#research .fingerprint-discipline,
#research .research-method-card,
#area2 .featured-projects,
#projects .pcard,
#infrastructure .equipment-explorer-entry,
#infrastructure .analytical-pair-section,
#infrastructure .equipment-card,
#infrastructure .infra-workflow,
#infrastructure .pilot-platform-intro,
#infrastructure .pilot-reactor-card,
#infrastructure .pilot-system-entry,
#infrastructure .workstation-panel,
#infrastructure .tools{
  --frame-rgb:31,92,140;
  position:relative;
  box-sizing:border-box;
  border:0 !important;
  border-left:4px solid rgb(var(--frame-rgb)) !important;
  border-radius:12px 0 0 12px !important;
  background-color:rgba(255,255,255,.48);
  background-image:
    linear-gradient(to right,rgba(var(--frame-rgb),.56) 0%,rgba(var(--frame-rgb),.22) 42%,rgba(var(--frame-rgb),0) 100%),
    linear-gradient(to right,rgba(var(--frame-rgb),.46) 0%,rgba(var(--frame-rgb),.16) 42%,rgba(var(--frame-rgb),0) 100%);
  background-position:left top,left bottom;
  background-size:100% 1px,100% 1px;
  background-repeat:no-repeat;
  box-shadow:none !important;
}
#research .fingerprint-discipline,
#research .research-method-card{padding-left:18px;padding-right:18px;}
#area2 .featured-projects{padding:18px 20px 22px;}
#infrastructure .equipment-explorer-entry,
#infrastructure .analytical-pair-section,
#infrastructure .infra-workflow,
#infrastructure .pilot-platform-intro,
#infrastructure .workstation-panel,
#infrastructure .tools{padding-left:18px;padding-right:18px;}
#infrastructure .equipment-card,
#infrastructure .pilot-reactor-card,
#infrastructure .pilot-system-entry{padding-left:18px !important;padding-right:18px !important;}

/* Preserve the green origin for ongoing project cards. */
#projects #proj-ongoing + .rs-block-intro + .project-cards .pcard{
  --frame-rgb:31,92,57;
}

/* Vertical fade: solid top accent; side rules dissolve downward. */
#research .method-mini-card,
#research .model-scale-card,
#projects .rs-sup-row,
#contact .contact-details-panel,
#contact .contact-form-panel{
  --vframe-rgb:31,92,140;
  position:relative;
  box-sizing:border-box;
  border:0 !important;
  border-top:4px solid rgb(var(--vframe-rgb)) !important;
  border-radius:12px 12px 0 0 !important;
  background-color:rgba(255,255,255,.56) !important;
  background-image:
    linear-gradient(to bottom,rgba(var(--vframe-rgb),.52) 0%,rgba(var(--vframe-rgb),.17) 48%,rgba(var(--vframe-rgb),0) 100%),
    linear-gradient(to bottom,rgba(var(--vframe-rgb),.28) 0%,rgba(var(--vframe-rgb),.09) 42%,rgba(var(--vframe-rgb),0) 82%);
  background-position:left top,right top;
  background-size:1px 100%,1px 100%;
  background-repeat:no-repeat;
  box-shadow:none !important;
}
#projects .rs-sup-row.rs-sup-row--ongoing{--vframe-rgb:31,92,57;}
#projects .rs-sup-row.rs-sup-row--completed{--vframe-rgb:31,92,140;}

/* Keep the model-scale numbering and card content above the decorative rules. */
#research .model-scale-card > *,
#research .method-mini-card > *,
#projects .rs-sup-row > *,
#contact .contact-details-panel > *,
#contact .contact-form-panel > *{position:relative;z-index:1;}

/* Mobile spacing: retain the effect without squeezing content. */
@media(max-width:720px){
  #area2 .featured-projects{padding:15px 14px 18px;}
  #infrastructure .equipment-card,
  #infrastructure .pilot-reactor-card,
  #infrastructure .pilot-system-entry{padding-left:14px !important;padding-right:14px !important;}
}


/* ======================================================================
   v80 — Symmetric intro frames for the four main section descriptions
   Blue anchors at both sides; fine top/bottom rules dissolve toward the
   centre. Scoped only to Research, Infrastructure, Publications and
   Collaboration intro paragraphs.
   ====================================================================== */
#research .intro-band .section-intro-text,
#infrastructure .intro-band .section-intro-text,
#publications .intro-band .section-intro-text,
#collaboration .intro-band .section-intro-text{
  --intro-frame-rgb:31,92,140;
  position:relative;
  box-sizing:border-box;
  display:block;
  padding:clamp(15px,2vw,20px) clamp(18px,2.6vw,26px) !important;
  border:0 !important;
  border-left:4px solid rgb(var(--intro-frame-rgb)) !important;
  border-right:4px solid rgb(var(--intro-frame-rgb)) !important;
  border-radius:12px !important;
  background-color:rgba(255,255,255,.60) !important;
  background-image:
    linear-gradient(to right,rgba(var(--intro-frame-rgb),.62) 0%,rgba(var(--intro-frame-rgb),.24) 48%,rgba(var(--intro-frame-rgb),0) 100%),
    linear-gradient(to left,rgba(var(--intro-frame-rgb),.62) 0%,rgba(var(--intro-frame-rgb),.24) 48%,rgba(var(--intro-frame-rgb),0) 100%),
    linear-gradient(to right,rgba(var(--intro-frame-rgb),.48) 0%,rgba(var(--intro-frame-rgb),.17) 48%,rgba(var(--intro-frame-rgb),0) 100%),
    linear-gradient(to left,rgba(var(--intro-frame-rgb),.48) 0%,rgba(var(--intro-frame-rgb),.17) 48%,rgba(var(--intro-frame-rgb),0) 100%) !important;
  background-position:left top,right top,left bottom,right bottom !important;
  background-size:50% 1px,50% 1px,50% 1px,50% 1px !important;
  background-repeat:no-repeat !important;
  box-shadow:none !important;
}
@media(max-width:600px){
  #research .intro-band .section-intro-text,
  #infrastructure .intro-band .section-intro-text,
  #publications .intro-band .section-intro-text,
  #collaboration .intro-band .section-intro-text{
    padding:14px 15px !important;
    border-left-width:3px !important;
    border-right-width:3px !important;
  }
}


/* v81 — Transparent framed surfaces.
   Preserve the decorative fading rules while allowing the page background
   and its continuous pattern to remain visible through each frame. */
#research .intro-band .section-intro-text,
#infrastructure .intro-band .section-intro-text,
#publications .intro-band .section-intro-text,
#collaboration .intro-band .section-intro-text,
#contact .contact-details-panel,
#contact .contact-form-panel{
  background-color:transparent !important;
}



/* ======================================================================
   v82 — Refined title rules and collaboration directional frames
   - Main title underline follows the title text only.
   - Symmetric intro rules fade sooner, leaving a wider open centre.
   - Main institutions frame dissolves rightward.
   - Collaboration forms frame dissolves downward.
   ====================================================================== */

/* Main tab titles: underline only the rendered title, never the full row. */
#research .section-intro-title,
#infrastructure .section-intro-title,
#publications .section-intro-title,
#collaboration .section-intro-title,
#contact .section-intro-title{
  display:inline-block !important;
  width:fit-content !important;
  max-width:100% !important;
  align-self:flex-start !important;
}

/* Intro frames: shorten each half so the central open space is wider. */
#research .intro-band .section-intro-text,
#infrastructure .intro-band .section-intro-text,
#publications .intro-band .section-intro-text,
#collaboration .intro-band .section-intro-text{
  background-image:
    linear-gradient(to right,rgba(var(--intro-frame-rgb),.62) 0%,rgba(var(--intro-frame-rgb),.22) 40%,rgba(var(--intro-frame-rgb),0) 82%),
    linear-gradient(to left,rgba(var(--intro-frame-rgb),.62) 0%,rgba(var(--intro-frame-rgb),.22) 40%,rgba(var(--intro-frame-rgb),0) 82%),
    linear-gradient(to right,rgba(var(--intro-frame-rgb),.48) 0%,rgba(var(--intro-frame-rgb),.15) 40%,rgba(var(--intro-frame-rgb),0) 82%),
    linear-gradient(to left,rgba(var(--intro-frame-rgb),.48) 0%,rgba(var(--intro-frame-rgb),.15) 40%,rgba(var(--intro-frame-rgb),0) 82%) !important;
  background-size:43% 1px,43% 1px,43% 1px,43% 1px !important;
}

/* Main collaborating institutions: strong blue origin, rules fade right. */
#collaboration #inst-grid.inst-grid{
  --frame-rgb:31,92,140;
  position:relative;
  box-sizing:border-box;
  border:0 !important;
  border-left:4px solid rgb(var(--frame-rgb)) !important;
  border-radius:12px 0 0 12px !important;
  background-color:transparent !important;
  background-image:
    linear-gradient(to right,rgba(var(--frame-rgb),.56) 0%,rgba(var(--frame-rgb),.20) 38%,rgba(var(--frame-rgb),0) 84%),
    linear-gradient(to right,rgba(var(--frame-rgb),.46) 0%,rgba(var(--frame-rgb),.14) 38%,rgba(var(--frame-rgb),0) 84%) !important;
  background-position:left top,left bottom !important;
  background-size:100% 1px,100% 1px !important;
  background-repeat:no-repeat !important;
  box-shadow:none !important;
}

/* Forms of collaboration: top accent; side rules dissolve downward. */
#collaboration .collab-scope-list{
  --vframe-rgb:31,92,140;
  position:relative;
  box-sizing:border-box;
  border:0 !important;
  border-top:4px solid rgb(var(--vframe-rgb)) !important;
  border-radius:12px 12px 0 0 !important;
  background-color:transparent !important;
  background-image:
    linear-gradient(to bottom,rgba(var(--vframe-rgb),.52) 0%,rgba(var(--vframe-rgb),.16) 42%,rgba(var(--vframe-rgb),0) 86%),
    linear-gradient(to bottom,rgba(var(--vframe-rgb),.30) 0%,rgba(var(--vframe-rgb),.09) 38%,rgba(var(--vframe-rgb),0) 82%) !important;
  background-position:left top,right top !important;
  background-size:1px 100%,1px 100% !important;
  background-repeat:no-repeat !important;
  padding:10px 14px 12px !important;
  box-shadow:none !important;
}
#collaboration .collab-scope-list li{
  border-top:0 !important;
}

@media(max-width:600px){
  #collaboration .collab-scope-list{padding:8px 10px 10px !important;}
}


/* v83 — Reduce the vertical gap between Research profile and Scientific fingerprint. */
#research .intro-band{
  margin-bottom:0 !important;
}
#research .intro-band .intro-band-inner{
  padding-bottom:6px !important;
}
#research .research-fingerprint{
  padding-top:4px !important;
}
@media(max-width:600px){
  #research .intro-band .intro-band-inner{
    padding-bottom:4px !important;
  }
  #research .research-fingerprint{
    padding-top:2px !important;
  }
}


/* Highlighted-research label refinement: sentence case, rounded outlined chips,
   and slightly lower explanatory copy for the CFD temperature and residual-CO rows. */
#area2 .featured-projects .project-box .featured-project-image > .featured-project-category{
  text-transform:none !important;
  letter-spacing:.012em !important;
  border:1px solid rgba(23,50,77,.26) !important;
  border-radius:8px !important;
}
#area2 .project-box--ms2 .fp-pair--2 > .fp-pair-fig .fp-fig-cap,
#area2 .project-box--ms2 .fp-pair--2 > .fp-pair-fig .featured-project-link{
  transform:translateY(26px) !important;
}
@media(max-width:900px){
  #area2 .project-box--ms2 .fp-pair--2 > .fp-pair-fig .fp-fig-cap,
  #area2 .project-box--ms2 .fp-pair--2 > .fp-pair-fig .featured-project-link{
    transform:translateY(14px) !important;
  }
}



/* Inline stylesheet 2, preserved from approved version */

/* Exact user-requested correction: keep the approved project-card content and
   styling, place only the two ongoing projects across the available width,
   and make the visible frames around highlighted-research figures transparent. */
#projects #proj-ongoing + .rs-block-intro + .project-cards{
  grid-template-columns:repeat(2,minmax(0,1fr));
  width:100%;
  column-gap:clamp(22px,4vw,52px);
}
#area2 .featured-projects .ms-thumb{
  border-color:transparent !important;
  box-shadow:none !important;
}
@media(max-width:760px){
  #projects #proj-ongoing + .rs-block-intro + .project-cards{
    grid-template-columns:1fr;
    column-gap:16px;
  }
}


/* Inline stylesheet 3, preserved from approved version */

/* Infrastructure introduction: the equipment explorer is now the closing call to action. */
#infrastructure .infra-overview-intro{margin-bottom:12px;}
#infrastructure .infra-overview-cta{margin:0 0 clamp(24px,3vw,34px);}
#infrastructure .infra-overview-equipment-link{
  min-height:0; padding:0; border:0; border-radius:0; background:transparent;
  color:var(--ds-blue,#1F5C8C); font-size:15px; line-height:1.55; font-weight:700;
  text-decoration:underline; text-underline-offset:3px; cursor:pointer;
}
#infrastructure .infra-overview-equipment-link:hover{background:transparent; color:var(--ds-green,#1F5C39);}
#infrastructure .infra-overview-equipment-link:focus-visible{outline:3px solid rgba(31,92,140,.28); outline-offset:4px;}
/* Soxhlet and HPLC remain individual equipment entries, without a category box around them. */
#infrastructure .infra-lab-pair-plain{
  margin:0 0 clamp(18px,2.5vw,26px) !important; padding:0 !important;
  border:0 !important; border-left:0 !important; border-radius:0 !important;
  background:transparent !important; background-image:none !important; box-shadow:none !important;
}


/* Inline stylesheet 4, preserved from approved version */

/* The equipment link closes the introduction and remains a clear green action. */
#infrastructure .intro-band{margin-bottom:clamp(8px,1.2vw,14px) !important;}
#infrastructure .infra-overview-intro{margin-bottom:7px !important;}
#infrastructure .infra-overview-cta{margin:0 !important;}
#infrastructure .infra-overview-equipment-link{
  display:inline !important; min-height:0 !important; padding:0 !important;
  border:0 !important; border-radius:0 !important; background:transparent !important;
  color:var(--ds-green,#1F5C39) !important;
  font-family:var(--font-body,"Roboto","Helvetica Neue",Arial,sans-serif) !important;
  font-size:15.5px !important; line-height:1.55 !important; font-weight:700 !important;
  text-decoration:underline !important; text-underline-offset:3px !important;
  cursor:pointer;
}
#infrastructure .infra-overview-equipment-link:hover{
  color:var(--ds-green-dark,#17492D) !important; background:transparent !important;
}
#infrastructure .experimental-panel > .infra-major-title{margin-top:0 !important;}

/* Experimental, laboratory-scale, and individual equipment titles use one size. */
#infrastructure #experimental-title,
#infrastructure #laboratory-scale,
#infrastructure .equipment-heading h5,
#infrastructure .analytical-pair-title-row h5{
  font-size:var(--ds-blue-title-size,18px) !important;
  line-height:var(--ds-blue-title-line,1.3) !important;
  font-weight:600 !important;
}
#infrastructure .equipment-heading h5,
#infrastructure .analytical-pair-title-row h5{
  color:var(--ds-blue,#1F5C8C) !important;
}

/* Equipment summaries follow the same body typography as the Experimental intro. */
#infrastructure .infra-section-intro,
#infrastructure .equipment-summary,
#infrastructure .analytical-pair-summary{
  font-family:var(--font-body,"Roboto","Helvetica Neue",Arial,sans-serif) !important;
  font-size:15.5px !important;
  line-height:1.72 !important;
  font-weight:400 !important;
}
@media(max-width:600px){
  #infrastructure .intro-band{margin-bottom:8px !important;}
  #infrastructure .infra-overview-equipment-link,
  #infrastructure .infra-section-intro,
  #infrastructure .equipment-summary,
  #infrastructure .analytical-pair-summary{font-size:15px !important;}
}


/* Inline stylesheet 5, preserved from approved version */

/* Keep the equipment action in the same introductory paragraph. */
#infrastructure .infra-overview-intro{
  margin:0 !important;
}
#infrastructure .infra-overview-equipment-link{
  display:inline !important;
  margin:0 !important;
  vertical-align:baseline !important;
  color:var(--ds-green,#1F5C39) !important;
  font:inherit !important;
  font-weight:700 !important;
  line-height:inherit !important;
  text-decoration:underline !important;
  text-underline-offset:3px !important;
}
#infrastructure .intro-band{margin-bottom:clamp(8px,1vw,12px) !important;}

/* Sentence case for capability/application labels; color provides hierarchy. */
#infrastructure .analytical-pair-detail-label,
#infrastructure .equipment-detail h6,
#infrastructure .pilot-system-detail h6,
#infrastructure .pilot-reactor-details h6{
  text-transform:none !important;
  letter-spacing:0 !important;
  font-size:13.5px !important;
  line-height:1.35 !important;
  font-weight:700 !important;
}

/* Uniform title size across Experimental, laboratory, pilot and equipment headings. */
#infrastructure #experimental-title,
#infrastructure #laboratory-scale,
#infrastructure #pilot-platform-title,
#infrastructure .analytical-pair-title-row h5,
#infrastructure .equipment-heading h5,
#infrastructure .pilot-platform-intro h5,
#infrastructure .pilot-reactor-heading h5,
#infrastructure .pilot-system-heading h5{
  font-size:var(--ds-blue-title-size,18px) !important;
  line-height:var(--ds-blue-title-line,1.3) !important;
  font-weight:600 !important;
}
#infrastructure .pilot-platform-intro h5{color:var(--infra-green,#1F5C39) !important;}

/* The continuous reactor now includes concise operating capacities and applications. */
#infrastructure .pilot-reactor-card{
  grid-template-rows:auto auto !important;
  grid-template-areas:"media title" "media desc" !important;
}
#infrastructure .pilot-reactor-description-panel{grid-area:desc; min-width:0;}
#infrastructure .pilot-reactor-description{grid-area:auto !important;}
#infrastructure .pilot-reactor-details{margin-top:16px !important;}
#infrastructure .infra-pilot-more{
  color:var(--infra-green,#1F5C39);
  font-weight:700;
  text-decoration:underline;
  text-underline-offset:3px;
}
#infrastructure .infra-pilot-more:hover{color:var(--infra-green-dark,#17492D);}
@media(max-width:760px){
  #infrastructure .pilot-reactor-details{grid-template-columns:1fr !important;}
}


/* Inline stylesheet 6, preserved from approved version */

/* Keep the image frame, but remove the enclosing line/shadow around the text side
   of the two laboratory entries (Soxhlet and HPLC). */
#infrastructure .infra-lab-pair-plain .analytical-pair-entry{
  border-color:transparent !important;
  border-left-color:transparent !important;
  box-shadow:none !important;
  background:transparent !important;
}


/* Inline stylesheet 7, preserved from approved version */

  /* Collaboration intro-to-network spacing refinement */
  #collaboration .intro-band{ margin-bottom:8px; }
  #collaboration .intro-band-inner{ padding-bottom:clamp(12px,1.5vw,18px); }


/* ============================================================
   Stable production release — navigation, mobile rhythm and visibility
   ============================================================ */
.page.active{
  animation:none !important;
  opacity:1 !important;
  transform:none !important;
}
html .scroll-reveal,
html.js-reveal .scroll-reveal,
html.js-reveal .scroll-reveal.is-visible{
  opacity:1 !important;
  visibility:visible !important;
  transform:none !important;
  transition:none !important;
  animation:none !important;
  will-change:auto !important;
}
#publications .pub,
#publications .pub *,
#publications .publication-wheel-item,
#publications .pub-accordion,
#publications .pub-accordion-panel{
  animation:none !important;
}
#publications .pub,
#publications .publication-wheel-item{
  opacity:1 !important;
  visibility:visible !important;
  transform:none !important;
  filter:none !important;
}
#publications .pub{
  transition:box-shadow .16s ease,border-color .16s ease !important;
}

@media (max-width:700px), (pointer:coarse){
  html{scroll-behavior:auto;}
  .page{padding-block:18px 24px !important;}
  #home.page{padding-top:0 !important;}
  .intro-band{margin-bottom:12px !important;}
  .intro-band-inner{padding:16px !important;}
  .intro-band .section-intro-text{margin-bottom:0 !important;line-height:1.55 !important;}
  .section-pill-title,
  .infra-major-title,
  .rs-valo-h,
  .page > h2,
  .page > h3{margin-top:20px !important;margin-bottom:12px !important;}
  #research .research-fingerprint{padding:12px 0 !important;margin-bottom:14px !important;}
  #research #area2{margin-top:18px !important;}
  #research .featured-project-triple{row-gap:24px !important;}
  #publications .pub-cat{margin:18px 0 10px !important;}
  #publications .pub-accordion{margin-bottom:12px !important;}
  #publications .pub{margin-bottom:12px !important;padding:14px !important;row-gap:10px !important;}
  #publications .pub-accordion-panel{padding-top:8px !important;padding-bottom:8px !important;}
  #infrastructure .experimental-panel{margin-bottom:18px !important;}
  #infrastructure .workstation-panel{margin-block:18px !important;}
  #collaboration .collab-domain{padding-block:18px !important;}
  .contact-layout{gap:18px !important;}
  figure{margin-block:12px !important;}
  img,picture,svg,canvas{max-width:100%;}
}


/* ============================================================
   Stable mobile composition and route paint — release stable-2
   ============================================================ */
/* Before the deferred router executes, paint the requested route rather than
   briefly showing Home. The inline head bootstrap supplies data-initial-route. */
html:not(.route-ready)[data-initial-route] .page{display:none !important;}
html:not(.route-ready)[data-initial-route="home"] #home,
html:not(.route-ready)[data-initial-route="research"] #research,
html:not(.route-ready)[data-initial-route="publications"] #publications,
html:not(.route-ready)[data-initial-route="collaboration"] #collaboration,
html:not(.route-ready)[data-initial-route="infrastructure"] #infrastructure,
html:not(.route-ready)[data-initial-route="contact"] #contact{display:block !important;}

@media (max-width:600px){
  /* Publications keep the desktop relation: journal cover at left, reference at right. */
  #publications .pub.journal-publication{
    display:grid !important;
    grid-template-columns:clamp(68px,22vw,86px) minmax(0,1fr) !important;
    gap:10px !important;
    align-items:start !important;
    margin:0 !important;
    padding:10px 0 !important;
  }
  #publications .journal-identity{
    width:clamp(68px,22vw,86px) !important;
    height:clamp(50px,16vw,64px) !important;
    align-self:start !important;
  }
  #publications .publication-reference{
    font-size:12.25px !important;
    line-height:1.48 !important;
  }
  #publications .pub-ref-title{font-size:12.7px !important;line-height:1.42 !important;}
  #publications .review-list.simple li.peer-review-publication{
    grid-template-columns:clamp(68px,22vw,86px) minmax(0,1fr) !important;
    gap:10px !important;
    align-items:start !important;
    padding:8px 0 !important;
  }
  #publications .pub-accordion-trigger{padding:11px 12px !important;}
  #publications .pub-accordion-panel.is-open{padding-top:4px !important;padding-bottom:4px !important;}
  #publications .publications-accordions{margin-top:8px !important;row-gap:5px !important;}

  /* Home News keeps the original desktop composition at phone scale.
     Standard entries: identity + text. BioStar entries: identity + text + project mark. */
  #home .update-list li.recent-article{
    display:grid !important;
    grid-template-columns:clamp(62px,20vw,78px) minmax(0,1fr) !important;
    gap:9px !important;
    align-items:start !important;
    padding:10px 0 !important;
  }
  #home .update-list li.recent-article.has-biostar{
    grid-template-columns:clamp(56px,18vw,70px) minmax(0,1fr) clamp(62px,20vw,78px) !important;
    gap:8px !important;
  }
  #home .recent-article .journal-identity{
    width:clamp(56px,18vw,74px) !important;
    height:clamp(43px,14vw,56px) !important;
  }
  #home .recent-reference .publication-reference{
    font-size:11.6px !important;
    line-height:1.46 !important;
  }
  #home .recent-reference .pub-ref-title{font-size:12px !important;line-height:1.4 !important;}
  #home .recent-project{
    grid-column:auto !important;
    align-self:start !important;
    align-items:center !important;
    justify-content:flex-start !important;
    flex-direction:column !important;
    gap:3px !important;
    padding:0 !important;
    border:0 !important;
    text-align:center !important;
  }
  #home .recent-project-logo{width:100% !important;max-width:76px !important;height:auto !important;}
  #home .recent-project-year{font-size:9.5px !important;}
  #home .recent-project-link{font-size:9.7px !important;line-height:1.2 !important;min-height:0 !important;display:block !important;}

  /* Tighter mobile rhythm: remove empty vertical bands without changing content. */
  .page{padding-block:12px 18px !important;}
  #home.page{padding-top:0 !important;}
  .intro-band{margin-bottom:8px !important;}
  .intro-band-inner{padding:13px 14px !important;}
  .section-pill-title,.infra-major-title,.rs-valo-h,.page > h2,.page > h3{
    margin-top:15px !important;margin-bottom:9px !important;
  }
  #home .updates{margin-top:18px !important;padding-top:12px !important;}
  #home .update-list{margin-top:7px !important;}
  #home .home-block{margin-top:18px !important;margin-bottom:18px !important;}
  figure{margin-block:9px !important;}
}
