/* Inline stylesheet 1, preserved from approved version · Neutral intro/vertical equipment release */

: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: #F5F5F5;
    --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: #F5F5F5;
    /* 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(245,245,245,.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("assets/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,
        #D8D8D8 0,
        #D8D8D8 calc(var(--home-hero-height) - 36px),
        rgba(216,216,216,.88) calc(var(--home-hero-height) + 6px),
        rgba(216,216,216,.58) calc(var(--home-hero-height) + 34px),
        rgba(216,216,216,.26) calc(var(--home-hero-height) + 74px),
        rgba(216,216,216,.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("assets/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,
      #D8D8D8 0,
      #D8D8D8 calc(var(--section-band-height) - 36px),
      rgba(216,216,216,.88) calc(var(--section-band-height) + 6px),
      rgba(216,216,216,.58) calc(var(--section-band-height) + 34px),
      rgba(216,216,216,.26) calc(var(--section-band-height) + 74px),
      rgba(216,216,216,.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("assets/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-loading.is-error,
  #research .network3d-loading.is-error{
    z-index:5;
    flex-direction:column;
    gap:10px;
    background:rgba(255,255,255,.94);
    pointer-events:auto;
  }
  #research .network3d-loading.is-error > span:first-child{
    width:auto;
    height:auto;
    border:0;
    animation:none;
  }
  .runtime-retry{
    appearance:none;
    border:1px solid var(--accent2);
    border-radius:999px;
    background:#fff;
    color:var(--accent2);
    cursor:pointer;
    font:700 12px/1 "Roboto","Helvetica Neue",Arial,sans-serif;
    padding:8px 14px;
  }
  .runtime-retry:hover,
  .runtime-retry:focus-visible{
    background:var(--accent2);
    color:#fff;
    outline: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;
  -webkit-mask-image:none;
  mask-image:none;
}
/* Fade the content itself instead of painting an opaque colour above the
   page. The real gray-to-white surface therefore remains perfectly continuous
   at every expanded or collapsed height. */
#home .home-expandable[data-expanded="false"]{
  -webkit-mask-image:linear-gradient(to bottom,#000 0,#000 calc(100% - 56px),transparent 100%);
  mask-image:linear-gradient(to bottom,#000 0,#000 calc(100% - 56px),transparent 100%);
}
#home .home-expandable[data-expanded="false"]::after{
  content: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. */
#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){
  #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:#F4F4F4;
  --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,
#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);
  }
}

/* ==========================================================================
   20260728 · Compact mobile hero
   ========================================================================== */

/* Extra guard sequences prevent an exposed edge immediately before each
   carousel returns to its measured origin. */
#home .languages-col .language-list,
#home .home-profiles-row.home-profiles-row--marquee{
  transform-style:preserve-3d;
  backface-visibility:hidden;
}

@media (max-width:600px){
  /* On phones the portrait and name share one compact row. The remaining hero
     information occupies full-width rows underneath. */
  #home .hero-v3-inner{
    display:grid !important;
    grid-template-columns:66px minmax(0,1fr) !important;
    grid-template-rows:auto auto auto auto !important;
    column-gap:10px !important;
    row-gap:7px !important;
    align-items:center !important;
    padding:13px 16px 16px !important;
  }
  #home .hero-v3-left{
    display:contents !important;
  }
  #home .hv3-photo{
    grid-column:1 !important;
    grid-row:1 !important;
    align-self:center !important;
    justify-self:start !important;
    margin:0 !important;
  }
  #home .hv3-photo img{
    width:66px !important;
    height:66px !important;
    border-width:2px !important;
  }
  #home .hv3-name{
    grid-column:2 !important;
    grid-row:1 !important;
    min-width:0;
    margin:0 !important;
    font-size:clamp(17px,5.25vw,21px) !important;
    line-height:1.08 !important;
    letter-spacing:-.025em !important;
    white-space:nowrap;
  }
  html[lang="bm"] #home .hv3-name{
    font-size:clamp(14.5px,4.35vw,17.5px) !important;
    letter-spacing:-.035em !important;
  }
  #home .hv3-title{
    grid-column:1 / -1 !important;
    grid-row:2 !important;
    width:100%;
    min-width:0;
    margin:3px 0 0 !important;
    font-size:clamp(11px,3.08vw,12.5px) !important;
    line-height:1.28 !important;
    letter-spacing:-.012em;
    text-align:left;
    white-space:nowrap;
  }
  #home .hv3-spec,
  #home .hv3-typewriter{
    grid-column:1 / -1 !important;
    grid-row:3 !important;
    width:100%;
    min-width:0;
    min-height:1.4em !important;
    margin:0 !important;
    flex-wrap:nowrap !important;
    gap:.24rem !important;
    overflow:visible;
    font-size:clamp(10px,2.85vw,11.75px) !important;
    line-height:1.3 !important;
    letter-spacing:-.018em !important;
    white-space:nowrap;
  }
  #home .hv3-type-prefix,
  #home .hv3-type-phrase{
    min-width:0;
    white-space:nowrap;
  }
  #home .hv3-type-cursor{
    height:1em;
  }
  #home .hv3-cta{
    grid-column:1 / -1 !important;
    grid-row:4 !important;
    width:100%;
    gap:8px !important;
    margin-top:9px !important;
  }

}

@media (max-width:340px){
  #home .hero-v3-inner{
    grid-template-columns:60px minmax(0,1fr) !important;
    padding-inline:13px !important;
  }
  #home .hv3-photo img{
    width:60px !important;
    height:60px !important;
  }
  #home .hv3-name{
    font-size:15.5px !important;
  }
  html[lang="bm"] #home .hv3-name{
    font-size:13px !important;
  }
  #home .hv3-title{
    white-space:normal;
    text-wrap:balance;
  }
  #home .hv3-spec,
  #home .hv3-typewriter{
    font-size:9.4px !important;
    letter-spacing:-.025em !important;
  }
}

/* ==========================================================================
   20260727 · Mobile usability: languages + collaboration relationship picker
   ========================================================================== */
.language-chip--clone,
.collab-mobile-selection,
.collab-mobile-navigator{
  display:none !important;
}
.mobile-language-marquee{
  display:contents;
}

@media (max-width:700px){
  /* Languages use one continuous, seamless row on phones. The desktop list
     remains structurally and visually unchanged. */
  #home .languages-col .mobile-language-marquee{
    display:block !important;
    width:100%;
    max-width:100%;
    min-width:0;
    overflow:hidden !important;
    padding:4px 0 7px;
    -webkit-mask-image:linear-gradient(90deg,transparent 0,#000 17px,#000 calc(100% - 17px),transparent 100%);
    mask-image:linear-gradient(90deg,transparent 0,#000 17px,#000 calc(100% - 17px),transparent 100%);
  }
  #home .languages-col .language-list,
  #home .languages-col .language-list.language-list--marquee{
    display:flex !important;
    flex-direction:row !important;
    flex-wrap:nowrap !important;
    align-items:center !important;
    gap:10px !important;
    width:max-content !important;
    max-width:none !important;
    margin:0 !important;
    padding:2px 0 !important;
    border:0 !important;
    border-radius:0 !important;
    background:transparent !important;
    box-shadow:none !important;
    animation:none !important;
    will-change:transform;
    transform-style:preserve-3d;
    backface-visibility:hidden;
  }
  #home .languages-col .language-list::before,
  #home .languages-col .language-list::after{
    display:none !important;
  }
  #home .languages-col .language-chip{
    display:inline-flex !important;
    flex:0 0 auto !important;
    min-height:38px;
    padding:8px 13px !important;
    background:#fff !important;
    border:1px solid #d7e0e7 !important;
    border-radius:999px !important;
    box-shadow:0 3px 10px rgba(19,50,77,.06);
  }
  #home .languages-col .language-chip--clone{
    display:inline-flex !important;
  }

  /* The selected collaborator is described above the graph, never on top of
     its relationship lines. */
  #collaboration .collab-mobile-selection:not([hidden]){
    display:flex !important;
    flex-direction:column;
    gap:3px;
    width:100%;
    margin:2px 0 10px;
    padding:11px 13px;
    border-left:4px solid #1f5c8c;
    border-radius:10px;
    background:#eef5fa;
    color:#17324d;
    box-shadow:0 3px 12px rgba(19,50,77,.07);
  }
  #collaboration .collab-mobile-selection strong{
    font-size:14px;
    line-height:1.3;
  }
  #collaboration .collab-mobile-selection span{
    font-size:11.5px;
    line-height:1.35;
    color:#40576b;
    overflow-wrap:anywhere;
  }
  #collaboration .collab-graph-tooltip{
    display:none !important;
  }

  /* Swipeable selector placed directly below the Circle view and before the
     geographic collaboration network. */
  #collaboration .collab-mobile-navigator:not([hidden]){
    display:block !important;
    width:100%;
    margin:12px 0 4px;
    padding:12px 8px 10px;
    border:1px solid rgba(31,92,140,.2);
    border-radius:14px;
    background:rgba(255,255,255,.82);
    box-shadow:0 4px 14px rgba(19,50,77,.06);
  }
  #collaboration .collab-mobile-copy{
    display:flex;
    flex-direction:column;
    gap:2px;
    padding:0 7px 9px;
  }
  #collaboration .collab-mobile-title{
    color:#17324d;
    font-size:13px;
    line-height:1.3;
  }
  #collaboration .collab-mobile-hint{
    color:#516679;
    font-size:11.5px;
    line-height:1.35;
  }
  #collaboration .collab-mobile-carousel{
    display:grid;
    grid-template-columns:36px minmax(0,1fr) 36px;
    align-items:center;
    gap:5px;
  }
  #collaboration .collab-mobile-viewport{
    overflow-x:auto;
    overflow-y:hidden;
    scroll-snap-type:x mandatory;
    scrollbar-width:none;
    overscroll-behavior-inline:contain;
    touch-action:pan-x;
    border-radius:10px;
  }
  #collaboration .collab-mobile-viewport::-webkit-scrollbar{
    display:none;
  }
  #collaboration .collab-mobile-track{
    display:flex;
    align-items:stretch;
    gap:8px;
    width:max-content;
    padding:3px calc(50vw - 116px);
  }
  #collaboration .collab-mobile-node{
    display:flex;
    flex:0 0 min(66vw,230px);
    flex-direction:column;
    justify-content:center;
    gap:3px;
    min-height:62px;
    padding:9px 12px;
    scroll-snap-align:center;
    border:1px solid #cbdbe7;
    border-radius:11px;
    background:#fff;
    color:#17324d;
    text-align:left;
    box-shadow:0 2px 8px rgba(19,50,77,.06);
  }
  #collaboration .collab-mobile-node.is-active{
    border-color:#1f5c8c;
    background:#1f5c8c;
    color:#fff;
    box-shadow:0 5px 15px rgba(31,92,140,.24);
  }
  #collaboration .collab-mobile-node-name{
    font-size:12.5px;
    font-weight:700;
    line-height:1.3;
    overflow-wrap:anywhere;
  }
  #collaboration .collab-mobile-node small{
    font-size:10.5px;
    line-height:1.25;
    color:#607587;
  }
  #collaboration .collab-mobile-node.is-active small{
    color:#e7f3fb;
  }
  #collaboration .collab-mobile-node:focus-visible,
  #collaboration .collab-mobile-arrow:focus-visible{
    outline:3px solid rgba(31,92,140,.38);
    outline-offset:2px;
  }
  #collaboration .collab-mobile-arrow{
    display:grid;
    place-items:center;
    width:36px;
    height:44px;
    padding:0;
    border:1px solid #cbdbe7;
    border-radius:999px;
    background:#fff;
    color:#1f5c8c;
    font-size:25px;
    font-weight:700;
    line-height:1;
  }
  #collaboration .collab-mobile-arrow:active{
    transform:scale(.94);
    background:#eef5fa;
  }
}

@media (max-width:380px){
  #collaboration .collab-mobile-track{
    padding-inline:calc(50vw - 104px);
  }
  #collaboration .collab-mobile-node{
    flex-basis:min(70vw,210px);
  }
}

@media (prefers-reduced-motion:reduce) and (max-width:700px){
  #collaboration .collab-mobile-viewport{
    scroll-behavior:auto;
  }
}

/* ==========================================================================
   20260727 · Navy research labels and green fingerprint interaction
   ========================================================================== */

/* Replace the promotional yellow treatment with the Scientific Fingerprint
   blue requested for a consistent research palette. */
#research .featured-projects .featured-project-category,
#research #area2 .featured-projects .featured-project-category,
#research #area2 .featured-projects .project-box .featured-project-image > .featured-project-category{
  background:#1F5C8C !important;
  background-image:none !important;
  color:#fff !important;
  border:1px solid rgba(255,255,255,.24) !important;
  box-shadow:0 2px 7px rgba(31,92,140,.25) !important;
}

/* Scientific-fingerprint keywords retain their percentage ring and tooltip.
   Hover and keyboard focus use the site's research green with white text. */
#research .fingerprint-badge{
  transition:
    background-color var(--transition-fast),
    color var(--transition-fast),
    border-color var(--transition-fast),
    box-shadow var(--transition-fast),
    transform var(--transition-fast);
}
#research .fingerprint-badge:hover,
#research .fingerprint-badge:focus-visible{
  border-color:#1F5C39 !important;
  background:#1F5C39 !important;
  color:#fff !important;
  box-shadow:0 6px 16px rgba(31,92,57,.24) !important;
}
#research .fingerprint-badge:hover .fingerprint-ring,
#research .fingerprint-badge:focus .fingerprint-ring,
#research .fingerprint-badge:focus-visible .fingerprint-ring{
  background:
    conic-gradient(
      #fff calc(var(--weight) * 1%),
      rgba(255,255,255,.28) 0
    ) !important;
}
#research .fingerprint-badge:hover .fingerprint-ring::after,
#research .fingerprint-badge:focus .fingerprint-ring::after,
#research .fingerprint-badge:focus-visible .fingerprint-ring::after{
  background:#1F5C39 !important;
}
#research .fingerprint-badge:hover::after,
#research .fingerprint-badge:focus::after,
#research .fingerprint-badge:focus-visible::after{
  background:#123F2B !important;
  color:#fff !important;
}

@media (prefers-reduced-motion:reduce){
  #research .fingerprint-badge,
  #research .fingerprint-ring,
  #research .fingerprint-ring::after{
    transition:none !important;
  }
}
/* 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{
  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 .bio-research-block .home-expandable-card::after,
#home .academic-col .education-list::after,
#home .languages-col .language-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{ top:0; }
#home .bio-research-block .home-expandable-card::after,
#home .academic-col .education-list::after,
#home .languages-col .language-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="news"] #news,
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;}
}


/* ============================================================
   Final Home biography / education / mobile-width refinement
   Scope: spacing, mirrored biography frames, education logos,
   collaboration rhythm and horizontal-overflow prevention.
   ============================================================ */

/* Keep the document fixed to the viewport width on touch devices while
   preserving normal vertical scrolling. */
html,
body{
  width:100%;
  max-width:100%;
  overflow-x:clip;
}
@supports not (overflow:clip){
  html,
  body{overflow-x:hidden;}
}
.wrap,
.page,
#home,
#home-bio-mount,
.home-content-section,
.home-block,
.home-col,
#collaboration,
#collaboration .collab-component{
  box-sizing:border-box;
  max-width:100%;
  min-width:0;
}
img,
picture,
video,
canvas,
svg{max-width:100%;}

/* Compact the two Home transitions requested by the author. */
#home .home-content-section .bio-research-block{
  margin-bottom:clamp(10px,1.35vw,16px) !important;
}
#home #home-bio-mount + .updates{
  margin-top:clamp(8px,1.1vw,12px) !important;
  padding-top:0 !important;
}

/* Biography and Current research: balanced mirrored frame.
   Both outer anchors remain visible; the top and bottom rules fade toward
   the centre from each side, matching the editorial research treatment. */
#home .bio-research-block .home-expandable-card{
  border:0 !important;
  border-left:4px solid var(--ds-blue,#1F5C8C) !important;
  border-right:4px solid var(--ds-blue,#1F5C8C) !important;
  border-radius:12px !important;
  box-shadow:none !important;
  background:transparent !important;
}
#home .bio-research-block .home-expandable-card::before,
#home .bio-research-block .home-expandable-card::after{
  left:0 !important;
  right:0 !important;
  width:auto !important;
  background:
    linear-gradient(90deg,
      rgba(31,92,140,.78) 0%,
      rgba(215,224,231,.88) 16%,
      rgba(215,224,231,.34) 64%,
      rgba(215,224,231,0) 100%) left/50% 100% no-repeat,
    linear-gradient(270deg,
      rgba(31,92,140,.78) 0%,
      rgba(215,224,231,.88) 16%,
      rgba(215,224,231,.34) 64%,
      rgba(215,224,231,0) 100%) right/50% 100% no-repeat !important;
}

/* Education entries with institutional logos. */
#home .academic-col .education-list{
  padding:14px 16px !important;
}
#home .education-entry{
  display:grid !important;
  grid-template-columns:78px minmax(0,1fr);
  align-items:center;
  gap:14px;
  min-width:0;
  margin:0;
  padding:7px 0 !important;
}
#home .education-entry--doctorate{
  grid-template-columns:78px minmax(0,1fr) 126px;
  gap:14px;
}
#home .education-content{
  min-width:0;
  text-align:left;
}
#home .education-logo{
  display:flex;
  align-items:center;
  justify-content:center;
  min-width:0;
}
#home .education-logo img{
  display:block;
  width:auto;
  height:auto;
  max-width:100%;
  max-height:76px;
  object-fit:contain;
}
#home .education-logo--right img{
  max-height:62px;
}
#home .education-degree{
  margin:0 0 8px !important;
}
#home .education-institutions{
  margin-top:0;
  margin-bottom:0;
}

/* Collaboration: reduce the blank band between the opening text and Network. */
#collaboration.cs-scope .collab-scientific-domain > .collab-domain-heading{
  margin-bottom:10px !important;
}
#collaboration.cs-scope .collab-relational-component,
#collaboration .collab-relational-component{
  margin-top:0 !important;
}

@media (max-width:700px){
  html,
  body{
    overscroll-behavior-x:none;
    touch-action:pan-y pinch-zoom;
  }
  .wrap{
    width:100%;
    max-width:100%;
    overflow-x:clip;
  }
  #home .home-content-section .bio-research-block{
    margin-bottom:10px !important;
  }
  #home #home-bio-mount + .updates{
    margin-top:8px !important;
  }
  #home .education-entry{
    grid-template-columns:52px minmax(0,1fr);
    gap:10px;
    padding:8px 0 !important;
  }
  #home .education-entry--doctorate{
    grid-template-columns:52px minmax(0,1fr) 84px;
    gap:9px;
  }
  #home .education-logo img{max-height:54px;}
  #home .education-logo--right img{max-height:42px;}
  #home .education-degree{
    font-size:14px !important;
    line-height:1.32 !important;
  }
  #home .education-institutions{
    padding-left:16px;
    font-size:12.5px;
    line-height:1.42;
  }
  #home .home-two-col,
  #home .home-profiles-row,
  #home .update-list,
  #home .media-grid,
  #publications .publication-item,
  #collaboration .collab-graph-shell,
  #collaboration .current-network-grid{
    max-width:100%;
    min-width:0;
  }
  #home h1,
  #home h2,
  #home h3,
  #home p,
  #home li,
  #collaboration h1,
  #collaboration h2,
  #collaboration h3,
  #collaboration p,
  #collaboration li{
    overflow-wrap:break-word;
  }
}

/* ============================================================
   Final desktop centering + doctorate logo pairing
   Mobile composition remains compact and fixed to the viewport.
   ============================================================ */

/* On wide screens, keep the Home editorial content visually centred and
   slightly more compact without changing the approved mobile composition. */
@media (min-width:901px){
  #home .home-block,
  #home .updates,
  #home .expertise-fullwidth,
  #home .profiles-fullwidth{
    width:min(100%,1060px);
    margin-left:auto !important;
    margin-right:auto !important;
  }
  #home .home-two-col{
    gap:clamp(18px,2vw,27px) !important;
  }
  #home .home-two-col.academic-lang-block{
    grid-template-columns:minmax(0,1.72fr) minmax(270px,.88fr) !important;
    gap:28px !important;
  }
}

/* Doctorate: UASLP and CNRS logos are grouped side by side on the left.
   The CNRS half of the existing composite asset is shown without altering
   the source media file. */
#home .education-entry--doctorate{
  grid-template-columns:58px 58px minmax(0,1fr) !important;
  column-gap:8px !important;
  row-gap:3px !important;
}
#home .education-entry--doctorate > .education-logo--left{
  grid-column:1;
  grid-row:1 / span 2;
}
#home .education-entry--doctorate > .education-logo--right{
  grid-column:2;
  grid-row:1 / span 2;
  width:58px;
  height:64px;
  overflow:hidden;
  justify-content:flex-start;
}
#home .education-entry--doctorate > .education-content{
  display:contents;
}
#home .education-entry--doctorate .education-degree{
  grid-column:3;
  grid-row:1;
  align-self:end;
  margin-bottom:3px !important;
}
#home .education-entry--doctorate .education-institutions{
  grid-column:3;
  grid-row:2;
  align-self:start;
}
#home .education-entry--doctorate .education-logo--left img{
  max-height:66px;
}
#home .education-entry--doctorate .education-logo--right img{
  display:block;
  width:auto;
  height:64px;
  max-width:none;
  max-height:none;
  object-fit:contain;
  object-position:left center;
}

@media (max-width:700px){
  #home .education-entry--doctorate{
    grid-template-columns:42px 42px minmax(0,1fr) !important;
    column-gap:6px !important;
    row-gap:5px !important;
  }
  #home .education-entry--doctorate > .education-logo--left,
  #home .education-entry--doctorate > .education-logo--right{
    grid-row:1 !important;
    align-self:center;
  }
  #home .education-entry--doctorate > .education-logo--right{
    width:42px;
    height:46px;
  }
  #home .education-entry--doctorate .education-logo--left img{
    max-height:46px;
  }
  #home .education-entry--doctorate .education-logo--right img{
    height:46px;
  }
  #home .education-entry--doctorate .education-degree{
    grid-column:3;
    grid-row:1;
    align-self:center;
    font-size:13.5px !important;
    line-height:1.28 !important;
    margin:0 !important;
  }
  #home .education-entry--doctorate .education-institutions{
    grid-column:1 / -1;
    grid-row:2;
    width:100%;
    margin:2px 0 0 !important;
    padding-left:0 !important;
    list-style:none;
    display:grid;
    gap:2px;
  }
  #home .education-entry--doctorate .education-institutions li{
    white-space:nowrap;
    overflow:visible;
    font-size:clamp(8.5px,2.45vw,10.5px) !important;
    line-height:1.3 !important;
    letter-spacing:-.01em;
  }
}

/* ============================================================
   All main tabs responsive balance — final correction
   Desktop: one narrower, consistently centred site column.
   Mobile: retain the approved edge-to-edge composition.
   Doctorate: expose the complete CNRS mark and separate it from the text.
   ============================================================ */
@media (min-width:901px){
  /* 1096px includes the wrap's 28px padding on both sides and produces a
     1040px content column shared by every primary tab. */
  .wrap,
  .site-nav .inner{
    max-width:1096px !important;
  }

  /* Contain every primary tab surface on desktop. */
  #home{
    width:min(100%,1040px) !important;
    max-width:1040px !important;
    margin-left:auto !important;
    margin-right:auto !important;
  }

  #research,
  #infrastructure,
  #publications,
  #collaboration,
  #contact{
    width:100% !important;
    max-width:1040px !important;
    margin-left:auto !important;
    margin-right:auto !important;
  }

  #home::before,
  #home::after,
  #research::before,
  #research::after,
  #infrastructure::before,
  #infrastructure::after,
  #publications::before,
  #publications::after,
  #collaboration::before,
  #collaboration::after,
  #contact::before,
  #contact::after{
    inset:0 auto 0 50% !important;
    width:100vw !important;
    transform:translateX(-50%) !important;
  }

  #home .hero-v3,
  #research .intro-band,
  #infrastructure .intro-band,
  #publications .intro-band,
  #collaboration .intro-band,
  #contact .intro-band{
    width:100vw !important;
    left:50% !important;
    transform:translateX(-50%) !important;
  }

  #research .intro-band-inner,
  #infrastructure .intro-band-inner,
  #publications .intro-band-inner,
  #collaboration .intro-band-inner,
  #contact .intro-band-inner{
    width:min(calc(100% - 56px),1040px) !important;
    max-width:1040px !important;
    margin-left:auto !important;
    margin-right:auto !important;
  }

  #home .hero-v3-inner,
  #home > #home-bio-mount,
  #home > .updates,
  #home > #home-press-mount,
  #home > #home-recognition-mount{
    width:min(calc(100% - 56px),1020px) !important;
    max-width:1020px !important;
    margin-left:auto !important;
    margin-right:auto !important;
  }

  #home .hero-v3-inner{
    padding-left:0 !important;
    padding-right:0 !important;
  }

  #home .home-block,
  #home .updates,
  #home .expertise-fullwidth,
  #home .profiles-fullwidth{
    width:100% !important;
    max-width:1020px !important;
  }

  #home .education-entry--doctorate{
    grid-template-columns:52px 60px minmax(0,1fr) !important;
    column-gap:6px !important;
  }

  #home .education-entry--doctorate > .education-logo--left,
  #home .education-entry--doctorate > .education-logo--right{
    transform:translateX(-4px);
  }

  #home .education-entry--doctorate > .education-logo--right{
    width:60px;
    height:58px;
  }

  #home .education-entry--doctorate .education-logo--left img{
    max-height:56px;
  }

  #home .education-entry--doctorate .education-logo--right img{
    height:56px;
  }

  #home .education-entry--doctorate .education-degree,
  #home .education-entry--doctorate .education-institutions{
    padding-left:16px;
  }
}

@media (max-width:900px){
  #home .hero-v3-inner,
  #home > #home-bio-mount,
  #home > .updates,
  #home > #home-press-mount,
  #home > #home-recognition-mount{
    width:100% !important;
    max-width:100% !important;
    margin-left:0 !important;
    margin-right:0 !important;
  }
}

@media (max-width:700px){
  #home .education-entry--doctorate{
    grid-template-columns:40px 44px minmax(0,1fr) !important;
    column-gap:5px !important;
  }

  #home .education-entry--doctorate > .education-logo--right{
    width:44px;
    height:44px;
  }

  #home .education-entry--doctorate .education-logo--left img{
    max-height:42px !important;
  }

  #home .education-entry--doctorate .education-logo--right img{
    height:42px !important;
  }
}

@media (min-width:701px) and (max-width:900px){
  #home .education-entry--doctorate{
    grid-template-columns:52px 60px minmax(0,1fr) !important;
    column-gap:6px !important;
  }

  #home .education-entry--doctorate > .education-logo--left,
  #home .education-entry--doctorate > .education-logo--right{
    transform:translateX(-4px);
  }

  #home .education-entry--doctorate > .education-logo--right{
    width:60px;
    height:58px;
  }

  #home .education-entry--doctorate .education-logo--left img{
    max-height:56px !important;
  }

  #home .education-entry--doctorate .education-logo--right img{
    height:56px !important;
  }
}

/* Professional-profile loop. JavaScript measures one full sequence and adds
   enough accessibility-hidden copies to cover every viewport without a seam.
   The loop is intentionally kept active on workstation accessibility settings:
   this strip is a requested, persistent content rotation rather than a
   decorative entrance effect. */
.home-profiles-marquee{
  width:100%;
  overflow:hidden;
  padding:4px 0 8px;
  -webkit-mask-image:linear-gradient(90deg,transparent 0,#000 22px,#000 calc(100% - 22px),transparent 100%);
  mask-image:linear-gradient(90deg,transparent 0,#000 22px,#000 calc(100% - 22px),transparent 100%);
}

.home-profile--clone{
  display:block !important;
}

@keyframes home-profile-loop{
  from{transform:translate3d(0,0,0);}
  to{transform:translate3d(var(--home-profile-loop-distance,-720px),0,0);}
}

#home .home-profiles-row.home-profiles-row--marquee{
  display:flex !important;
  flex-wrap:nowrap !important;
  justify-content:flex-start !important;
  gap:9px 14px !important;
  width:max-content !important;
  max-width:none !important;
  will-change:transform;
  backface-visibility:hidden;
  animation:home-profile-loop var(--home-profile-loop-duration,28s) linear infinite both;
  animation-play-state:running !important;
}

#home .home-profiles-row.home-profiles-row--marquee .home-profile{
  display:block !important;
  flex:0 0 auto;
}

#home .home-profiles-row.home-profiles-row--marquee .home-profile--clone{
  display:block !important;
}

/* A global accessibility rule earlier in the stylesheet shortens decorative
   animation. Restore only this user-requested information loop, at a gentler
   speed, so Windows/macOS workstation settings cannot freeze it. */
@media (prefers-reduced-motion:reduce){
  #home .home-profiles-row.home-profiles-row--marquee{
    animation-duration:34s !important;
    animation-iteration-count:infinite !important;
  }
}

/* Laptop remains exactly at the approved 1040px column. From a 1920px monitor
   upward, the same centred composition grows gradually to 1220px, never
   approaching full-screen width. This avoids the tiny "island" effect on
   QHD/4K/ultrawide workstations while preserving the full-width background. */
@media (min-width:1400px){
  :root{
    --workstation-page-width:clamp(1040px,61vw,1220px);
    --workstation-shell-width:calc(var(--workstation-page-width) + 56px);
    --workstation-home-inner-width:calc(var(--workstation-page-width) - 56px);
  }

  .wrap,
  .site-nav .inner{
    max-width:var(--workstation-shell-width) !important;
  }

  #home,
  #research,
  #infrastructure,
  #publications,
  #collaboration,
  #contact{
    max-width:var(--workstation-page-width) !important;
  }

  #home{
    width:min(100%,var(--workstation-page-width)) !important;
  }

  #research .intro-band-inner,
  #infrastructure .intro-band-inner,
  #publications .intro-band-inner,
  #collaboration .intro-band-inner,
  #contact .intro-band-inner{
    width:min(calc(100% - 56px),var(--workstation-page-width)) !important;
    max-width:var(--workstation-page-width) !important;
  }

  #home .hero-v3-inner,
  #home > #home-bio-mount,
  #home > .updates,
  #home > #home-press-mount,
  #home > #home-recognition-mount{
    width:min(calc(100% - 56px),var(--workstation-home-inner-width)) !important;
    max-width:var(--workstation-home-inner-width) !important;
  }

  #home .home-block,
  #home .updates,
  #home .expertise-fullwidth,
  #home .profiles-fullwidth{
    max-width:var(--workstation-home-inner-width) !important;
  }
}

/* ============================================================
   Research surface refinement
   - Scientific-fingerprint disciplines use an open blue frame with
     mirrored side anchors and top/bottom rules fading toward the centre.
   - The biomass-route map has no enclosing coloured panel.
   - The route heading sits closer to the fingerprint content above it.
   ============================================================ */
#research .fingerprint-discipline{
  --fingerprint-frame-rgb:31,92,140;
  position:relative;
  isolation:isolate;
  border:0 !important;
  border-left:4px solid rgb(var(--fingerprint-frame-rgb)) !important;
  border-right:4px solid rgb(var(--fingerprint-frame-rgb)) !important;
  border-radius:12px !important;
  background-color:transparent !important;
  background-image:none !important;
  box-shadow:none !important;
}

#research .fingerprint-discipline::before,
#research .fingerprint-discipline::after{
  content:"";
  position:absolute;
  z-index:0;
  left:0;
  right:0;
  height:1px;
  pointer-events:none;
  background:
    linear-gradient(90deg,
      rgba(var(--fingerprint-frame-rgb),.72) 0%,
      rgba(var(--fingerprint-frame-rgb),.28) 34%,
      rgba(var(--fingerprint-frame-rgb),0) 100%) left/50% 100% no-repeat,
    linear-gradient(270deg,
      rgba(var(--fingerprint-frame-rgb),.72) 0%,
      rgba(var(--fingerprint-frame-rgb),.28) 34%,
      rgba(var(--fingerprint-frame-rgb),0) 100%) right/50% 100% no-repeat;
}

#research .fingerprint-discipline::before{top:0;}
#research .fingerprint-discipline::after{bottom:0;}

#research .fingerprint-discipline > *{
  position:relative;
  z-index:1;
}

#research .research-fingerprint{
  margin-bottom:2px !important;
  padding-bottom:6px !important;
}

#research .rs-valo-h{
  margin-top:0 !important;
  margin-bottom:6px !important;
}

#research .valo-diagram{
  margin-top:0 !important;
  padding:0 !important;
  border:0 !important;
  border-radius:0 !important;
  background-color:transparent !important;
  background-image:none !important;
  box-shadow:none !important;
}

@media (max-width:700px){
  #research .fingerprint-discipline{
    padding-left:13px !important;
    padding-right:13px !important;
  }

  #research .research-fingerprint{
    padding-bottom:4px !important;
  }
}

/* Main collaborating institutions: mirrored blue frame whose horizontal
   rules dissolve toward the centre, matching the Scientific Fingerprint. */
#collaboration #inst-grid.inst-grid{
  --institution-frame-rgb:31,92,140;
  position:relative;
  isolation:isolate;
  border:0 !important;
  border-left:4px solid rgb(var(--institution-frame-rgb)) !important;
  border-right:4px solid rgb(var(--institution-frame-rgb)) !important;
  border-radius:12px !important;
  background-color:transparent !important;
  background-image:none !important;
  box-shadow:none !important;
}

#collaboration #inst-grid.inst-grid::before,
#collaboration #inst-grid.inst-grid::after{
  content:"";
  position:absolute;
  z-index:0;
  left:0;
  right:0;
  height:1px;
  pointer-events:none;
  background:
    linear-gradient(90deg,
      rgba(var(--institution-frame-rgb),.72) 0%,
      rgba(var(--institution-frame-rgb),.28) 34%,
      rgba(var(--institution-frame-rgb),0) 100%) left/50% 100% no-repeat,
    linear-gradient(270deg,
      rgba(var(--institution-frame-rgb),.72) 0%,
      rgba(var(--institution-frame-rgb),.28) 34%,
      rgba(var(--institution-frame-rgb),0) 100%) right/50% 100% no-repeat;
}

#collaboration #inst-grid.inst-grid::before{top:0;}
#collaboration #inst-grid.inst-grid::after{bottom:0;}

#collaboration #inst-grid.inst-grid > *{
  position:relative;
  z-index:1;
}

/* Phone presentation: show the institutions' original logo colours without
   requiring hover, which is unavailable on touch screens. */
@media (max-width:820px){
  #collaboration #inst-grid.inst-grid .inst-logo img{
    filter:grayscale(0%) !important;
    opacity:1 !important;
  }
}

/* Infrastructure simplification.
   Laboratory Scale follows the page heading directly, while the compact
   equipment-explorer control remains available beside that heading. */
#infrastructure .infra-lab-heading-row{
  display:flex;
  align-items:center;
  justify-content:space-between;
  flex-wrap:wrap;
  gap:10px 16px;
  margin:0 0 16px;
}

#infrastructure .infra-lab-heading-row .infra-subsection-title{
  margin:0 !important;
}

#infrastructure .infra-lab-heading-row .equipment-explorer-open{
  margin:0;
}

/* Remove only the enclosing directional frames requested for the six
   laboratory profiles and the three pilot-reactor profiles. */
#infrastructure .equipment-card,
#infrastructure .pilot-reactor-card,
#infrastructure .pilot-system-entry{
  border:0 !important;
  border-left:0 !important;
  border-radius:0 !important;
  background-color:transparent !important;
  background-image:none !important;
  box-shadow:none !important;
  padding-left:0 !important;
  padding-right:0 !important;
}

/* On desktop the main pilot photograph begins slightly below its title line. */
@media (min-width:901px){
  #infrastructure .pilot-reactor-figure{
    margin-top:16px !important;
  }
}

@media (max-width:900px){
  #infrastructure .pilot-reactor-card{
    grid-template-columns:minmax(0,1fr) !important;
    grid-template-rows:auto auto auto !important;
    grid-template-areas:
      "title"
      "media"
      "desc" !important;
  }

  #infrastructure .pilot-reactor-figure{
    width:100% !important;
    margin:0 !important;
  }

  #infrastructure .pilot-reactor-photo-wrap{
    width:min(100%,710px) !important;
    margin-inline:auto !important;
  }

  #infrastructure .pilot-reactor-photo{
    width:100% !important;
  }
}

@media (max-width:600px){
  #infrastructure .infra-lab-heading-row{
    align-items:flex-start;
    flex-direction:column;
    margin-bottom:14px;
  }
}

/* ============================================================
   Awards and Recognition — continuous card loop
   One full original sequence is translated before the animation restarts.
   JavaScript measures that distance and adds enough hidden copies to keep
   the strip filled on mobile, laptop and workstation displays.
   ============================================================ */
.recognition-marquee{
  width:100%;
  max-width:100%;
  overflow:hidden;
  padding:5px 0 12px;
  -webkit-mask-image:linear-gradient(90deg,transparent 0,#000 24px,#000 calc(100% - 24px),transparent 100%);
  mask-image:linear-gradient(90deg,transparent 0,#000 24px,#000 calc(100% - 24px),transparent 100%);
}

@keyframes recognition-card-loop{
  from{transform:translate3d(0,0,0);}
  to{transform:translate3d(var(--recognition-loop-distance,-2200px),0,0);}
}

#recognition .recognition-timeline.recognition-timeline--marquee{
  display:flex !important;
  flex-direction:row !important;
  flex-wrap:nowrap !important;
  align-items:stretch !important;
  gap:16px !important;
  width:max-content !important;
  max-width:none !important;
  margin:0 !important;
  padding:0 !important;
  list-style:none !important;
  overflow:visible !important;
  will-change:transform;
  backface-visibility:hidden;
  animation:recognition-card-loop var(--recognition-loop-duration,66s) linear infinite both;
  animation-play-state:running !important;
}

#recognition .recognition-timeline--marquee .recognition-item{
  display:block !important;
  flex:0 0 auto !important;
  width:clamp(226px,23vw,258px) !important;
  min-height:258px !important;
  padding:17px 16px 18px !important;
  border:1px solid var(--ds-rule,#D7E0E7) !important;
  border-radius:16px !important;
  background:rgba(255,255,255,.92) !important;
  box-shadow:0 4px 14px rgba(19,50,77,.07) !important;
  text-align:center !important;
}

#recognition .recognition-timeline--marquee .recognition-main{
  display:flex !important;
  flex-direction:column !important;
  align-items:center !important;
  gap:14px !important;
  height:100% !important;
}

#recognition .recognition-timeline--marquee .recognition-media{
  display:flex !important;
  grid-column:auto !important;
  flex:0 0 112px !important;
  width:112px !important;
  height:112px !important;
  margin:0 auto !important;
  border:1px solid rgba(31,92,140,.14) !important;
  border-radius:50% !important;
  background:#F4F4F4 !important;
  align-items:center !important;
  justify-content:center !important;
  overflow:hidden !important;
}

#recognition .recognition-timeline--marquee .recognition-media picture{
  display:block;
  width:100%;
  height:100%;
}

#recognition .recognition-timeline--marquee .recognition-media img{
  display:block !important;
  width:100% !important;
  height:100% !important;
  padding:7px !important;
  border-radius:50%;
  object-fit:contain !important;
}

#recognition .recognition-timeline--marquee .recognition-content{
  display:flex !important;
  grid-column:auto !important;
  flex:1 1 auto !important;
  align-items:flex-start !important;
  justify-content:center !important;
  width:100% !important;
  min-width:0 !important;
  padding:0 !important;
  text-align:center !important;
}

#recognition .recognition-timeline--marquee .rs-tl-text{
  display:inline !important;
  color:#1D2935 !important;
  font:500 13.5px/1.48 "Roboto","Helvetica Neue",Arial,sans-serif !important;
}

#recognition .recognition-timeline--marquee .rs-tl-year{
  display:none !important;
}

#recognition .recognition-item--clone{
  pointer-events:none;
}

@media (max-width:600px){
  .recognition-marquee{
    padding-bottom:8px;
    -webkit-mask-image:linear-gradient(90deg,transparent 0,#000 14px,#000 calc(100% - 14px),transparent 100%);
    mask-image:linear-gradient(90deg,transparent 0,#000 14px,#000 calc(100% - 14px),transparent 100%);
  }
  #recognition .recognition-timeline--marquee .recognition-item{
    width:min(74vw,238px) !important;
    min-height:244px !important;
    padding:15px 14px 16px !important;
  }
  #recognition .recognition-timeline--marquee .recognition-media{
    flex-basis:102px !important;
    width:102px !important;
    height:102px !important;
  }
  #recognition .recognition-timeline--marquee .rs-tl-text{
    font-size:13px !important;
  }
}

/* This information strip remains continuous even when an operating system
   requests less decorative motion; the speed is reduced instead of freezing. */
@media (prefers-reduced-motion:reduce){
  #recognition .recognition-timeline.recognition-timeline--marquee{
    animation-duration:82s !important;
    animation-iteration-count:infinite !important;
  }
}

/* ---------- v53: translated attachment control ---------- */
#contact .contact-file-picker{
  display:flex;
  min-width:0;
  align-items:center;
  gap:10px;
  margin:0 0 15px;
}
#contact .contact-form .contact-file-input{
  position:absolute !important;
  width:1px !important;
  height:1px !important;
  margin:0 !important;
  padding:0 !important;
  overflow:hidden;
  clip:rect(0 0 0 0);
  clip-path:inset(50%);
  border:0 !important;
  white-space:nowrap;
}
#contact .contact-file-button{
  display:inline-flex;
  flex:0 0 auto;
  min-height:38px;
  align-items:center;
  margin:0 !important;
  padding:8px 13px;
  border:1px solid var(--ds-blue);
  border-radius:7px;
  background:var(--ds-blue);
  color:#fff !important;
  font:700 12.5px/1.3 var(--font-heading,"Roboto","Helvetica Neue",Arial,sans-serif) !important;
  cursor:pointer;
}
#contact .contact-file-input:focus-visible + .contact-file-button{
  outline:3px solid rgba(31,92,140,.22);
  outline-offset:3px;
}
#contact .contact-file-name{
  min-width:0;
  overflow:hidden;
  color:var(--ds-ink-soft);
  font-size:13px;
  line-height:1.35;
  text-overflow:ellipsis;
  white-space:nowrap;
}
@media(max-width:520px){
  #contact .contact-file-picker{align-items:flex-start;flex-direction:column;gap:8px;}
  #contact .contact-file-name{width:100%;}
}

/* ---------- v53: compact, transparent relational network ---------- */
#collaboration #collaboration-relational-title{
  margin-bottom:8px !important;
}
#collaboration .collab-relational-component .collab-graph-shell{
  margin-top:0 !important;
}
#collaboration .collab-relational-component .collab-graph-stage{
  border:0 !important;
  border-radius:0 !important;
  background:transparent !important;
  background-image:none !important;
  box-shadow:none !important;
}

/* ---------- v53: continuous collaborating-institutions carousel ---------- */
#collaboration .institutions-marquee{
  --institution-frame-rgb:31,92,140;
  position:relative;
  isolation:isolate;
  width:100%;
  min-width:0;
  overflow:hidden;
  border-left:4px solid rgb(var(--institution-frame-rgb));
  border-right:4px solid rgb(var(--institution-frame-rgb));
  border-radius:12px;
  box-sizing:border-box;
  background:transparent;
}
#collaboration .institutions-marquee::before,
#collaboration .institutions-marquee::after{
  content:"";
  position:absolute;
  z-index:2;
  left:0;
  right:0;
  height:1px;
  pointer-events:none;
  background:
    linear-gradient(90deg,
      rgba(var(--institution-frame-rgb),.72) 0%,
      rgba(var(--institution-frame-rgb),.28) 34%,
      rgba(var(--institution-frame-rgb),0) 100%) left/50% 100% no-repeat,
    linear-gradient(270deg,
      rgba(var(--institution-frame-rgb),.72) 0%,
      rgba(var(--institution-frame-rgb),.28) 34%,
      rgba(var(--institution-frame-rgb),0) 100%) right/50% 100% no-repeat;
}
#collaboration .institutions-marquee::before{top:0;}
#collaboration .institutions-marquee::after{bottom:0;}
#collaboration #inst-grid.inst-grid.inst-grid--marquee{
  display:flex !important;
  width:max-content;
  max-width:none;
  align-items:stretch;
  gap:8px;
  margin:0 !important;
  padding:10px 8px 8px;
  border:0 !important;
  border-radius:0 !important;
  background:transparent !important;
  background-image:none !important;
  box-shadow:none !important;
  animation:institution-loop var(--institution-loop-duration,62s) linear infinite;
  will-change:transform;
}
#collaboration #inst-grid.inst-grid.inst-grid--marquee::before,
#collaboration #inst-grid.inst-grid.inst-grid--marquee::after{
  content:none !important;
}
#collaboration #inst-grid.inst-grid.inst-grid--marquee .inst-card{
  flex:0 0 150px;
  width:150px;
}
#collaboration #inst-grid.inst-grid.inst-grid--marquee .inst-card--clone{
  pointer-events:none;
}
@keyframes institution-loop{
  from{transform:translate3d(0,0,0);}
  to{transform:translate3d(calc(-1 * var(--institution-loop-distance,1900px)),0,0);}
}
@media(max-width:600px){
  #collaboration #inst-grid.inst-grid.inst-grid--marquee .inst-card{
    flex-basis:138px;
    width:138px;
  }
}
@media(prefers-reduced-motion:reduce){
  #collaboration #inst-grid.inst-grid.inst-grid--marquee{
    animation-duration:82s !important;
    animation-iteration-count:infinite !important;
  }
}

/* ---------- v54: continuous modeling-approach carousel ---------- */
#modeling-approach .model-scale-marquee{
  width:100%;
  max-width:100%;
  overflow:hidden;
  padding:5px 0 12px;
  -webkit-mask-image:linear-gradient(90deg,transparent 0,#000 22px,#000 calc(100% - 22px),transparent 100%);
  mask-image:linear-gradient(90deg,transparent 0,#000 22px,#000 calc(100% - 22px),transparent 100%);
}
@keyframes model-approach-loop{
  from{transform:translate3d(0,0,0);}
  to{transform:translate3d(var(--model-loop-distance,-1700px),0,0);}
}
#modeling-approach .model-scale-grid.model-scale-grid--marquee{
  display:flex !important;
  width:max-content !important;
  max-width:none !important;
  align-items:stretch !important;
  flex-flow:row nowrap !important;
  gap:14px !important;
  margin:0 !important;
  padding:0 !important;
  overflow:visible !important;
  counter-reset:none !important;
  will-change:transform;
  backface-visibility:hidden;
  animation:model-approach-loop var(--model-loop-duration,66s) linear infinite both;
  animation-play-state:running !important;
}
#modeling-approach .model-scale-grid--marquee .model-scale-card{
  display:block !important;
  flex:0 0 clamp(286px,27vw,328px) !important;
  width:clamp(286px,27vw,328px) !important;
  min-height:0 !important;
  grid-column:auto !important;
  padding:18px 18px 18px 56px !important;
  border:1px solid rgba(31,92,140,.25) !important;
  border-top:3px solid var(--ds-blue,#1F5C8C) !important;
  border-radius:14px !important;
  background:transparent !important;
  background-color:transparent !important;
  background-image:none !important;
  box-shadow:none !important;
}
#modeling-approach .model-scale-grid--marquee .model-scale-card::before{
  content:attr(data-model-number) !important;
  top:17px !important;
  left:17px !important;
}
#modeling-approach .model-scale-grid--marquee .model-scale-card h4{
  margin-bottom:8px !important;
  font-size:15px !important;
  line-height:1.3 !important;
}
#modeling-approach .model-scale-grid--marquee .model-scale-card p{
  font-size:13.35px !important;
  line-height:1.52 !important;
}
#modeling-approach .model-scale-card--clone{
  pointer-events:auto;
}
@media(max-width:600px){
  #modeling-approach .model-scale-marquee{
    -webkit-mask-image:linear-gradient(90deg,transparent 0,#000 12px,#000 calc(100% - 12px),transparent 100%);
    mask-image:linear-gradient(90deg,transparent 0,#000 12px,#000 calc(100% - 12px),transparent 100%);
  }
  #modeling-approach .model-scale-grid--marquee .model-scale-card{
    flex-basis:min(80vw,300px) !important;
    width:min(80vw,300px) !important;
    padding:16px 15px 17px 52px !important;
  }
  #modeling-approach .model-scale-grid--marquee .model-scale-card::before{
    left:14px !important;
  }
  #modeling-approach .model-scale-grid--marquee .model-scale-card p{
    font-size:13px !important;
  }
}
@media(prefers-reduced-motion:reduce){
  #modeling-approach .model-scale-grid.model-scale-grid--marquee{
    animation-duration:86s !important;
    animation-iteration-count:infinite !important;
  }
}

/* ---------- v54: optical centering for transparent journal identities ---------- */
#publications .peer-review-identity--fire img{
  transform:translateX(28.15%);
}
#publications .peer-review-identity--mca img{
  transform:translateX(11.85%);
}

/* ---------- v55: clickable model cards with paused enlarged reading view ---------- */
#modeling-approach .model-scale-grid.model-scale-grid--marquee.is-paused{
  animation-play-state:paused !important;
}
#modeling-approach .model-scale-grid--marquee .model-scale-card{
  cursor:zoom-in;
  transition:border-color .18s ease,box-shadow .18s ease;
}
#modeling-approach .model-scale-grid--marquee .model-scale-card:hover{
  border-color:rgba(31,92,140,.58) !important;
  box-shadow:0 5px 18px rgba(19,50,77,.09) !important;
}
#modeling-approach .model-scale-grid--marquee .model-scale-card:focus-visible{
  outline:3px solid rgba(31,92,140,.3);
  outline-offset:3px;
}
body.model-card-dialog-open{
  overflow:hidden;
}
.model-card-dialog-backdrop{
  position:fixed;
  z-index:1800;
  inset:0;
  display:grid;
  place-items:center;
  padding:22px;
  box-sizing:border-box;
  background:rgba(12,28,42,.68);
  backdrop-filter:blur(3px);
}
.model-card-dialog-backdrop[hidden]{
  display:none !important;
}
.model-card-dialog{
  position:relative;
  width:min(720px,calc(100vw - 44px));
  max-height:min(84vh,760px);
  overflow:auto;
  padding:clamp(26px,4vw,40px);
  box-sizing:border-box;
  border:1px solid rgba(31,92,140,.34);
  border-top:5px solid var(--ds-blue,#1F5C8C);
  border-radius:18px;
  background:#fff;
  box-shadow:0 24px 70px rgba(5,23,38,.3);
  color:var(--ds-ink,#172630);
}
.model-card-dialog-backdrop.is-open .model-card-dialog{
  animation:model-card-zoom-in .2s ease-out both;
}
@keyframes model-card-zoom-in{
  from{opacity:0;transform:scale(.92);}
  to{opacity:1;transform:scale(1);}
}
.model-card-dialog-close{
  position:absolute;
  top:13px;
  right:13px;
  display:grid;
  width:40px;
  height:40px;
  place-items:center;
  padding:0;
  border:1px solid rgba(31,92,140,.26);
  border-radius:50%;
  background:#F3F6F8;
  color:var(--ds-blue,#1F5C8C);
  font:400 29px/1 Arial,sans-serif;
  cursor:pointer;
}
.model-card-dialog-close:hover,
.model-card-dialog-close:focus-visible{
  border-color:var(--ds-blue,#1F5C8C);
  background:var(--ds-blue,#1F5C8C);
  color:#fff;
}
.model-card-dialog-close:focus-visible{
  outline:3px solid rgba(31,92,140,.25);
  outline-offset:3px;
}
.model-card-dialog-number{
  display:inline-flex;
  min-height:28px;
  align-items:center;
  margin:0 50px 14px 0;
  padding:5px 11px;
  border-radius:999px;
  background:var(--ds-blue,#1F5C8C);
  color:#fff;
  font:700 12px/1.2 var(--font-heading,"Roboto","Helvetica Neue",Arial,sans-serif);
  letter-spacing:.02em;
}
.model-card-dialog-title{
  margin:0 0 16px;
  color:var(--ds-blue,#1F5C8C);
  font:700 clamp(21px,3vw,28px)/1.25 var(--font-heading,"Roboto","Helvetica Neue",Arial,sans-serif);
}
.model-card-dialog-text{
  margin:0;
  color:var(--ds-ink-soft,#33475B);
  font:400 clamp(15px,2vw,17px)/1.7 var(--font-body,"Roboto","Helvetica Neue",Arial,sans-serif);
}
@media(max-width:600px){
  .model-card-dialog-backdrop{padding:12px;}
  .model-card-dialog{
    width:calc(100vw - 24px);
    max-height:88vh;
    padding:26px 21px 28px;
    border-radius:15px;
  }
  .model-card-dialog-close{top:10px;right:10px;width:38px;height:38px;}
  .model-card-dialog-title{font-size:20px;}
  .model-card-dialog-text{font-size:15px;line-height:1.65;}
}
@media(prefers-reduced-motion:reduce){
  .model-card-dialog-backdrop.is-open .model-card-dialog{animation:none;}
}

/* ---------- v55: one identical gray-to-white template for every main tab ---------- */
#research .intro-band,
#infrastructure .intro-band,
#publications .intro-band,
#collaboration .intro-band,
#contact .intro-band{
  background-color:transparent !important;
  background-size:auto var(--section-pattern-size,340px) !important;
  background-position:left var(--section-pattern-y,0) !important;
}


/* ==========================================================================
   20260727 · High-authority scientific interface · PlumX + review marquee
   ========================================================================== */

/* HERO · typewriter + lightweight CFD mesh */
#home .hero-v3{
  position:relative;
  isolation:isolate;
  overflow:hidden;
}
#home .hero-cfd-mesh{
  position:absolute;
  inset:0;
  z-index:0;
  display:block;
  width:100%;
  height:100%;
  pointer-events:none;
  opacity:.82;
}
#home .hero-v3-inner{
  position:relative;
  z-index:1;
}
#home .hv3-typewriter{
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  gap:.42rem;
  min-height:1.75em;
  color:#213746;
}
#home .hv3-type-prefix{
  flex:0 0 auto;
  color:#4d616e;
  font-weight:500;
}
#home .hv3-type-prefix::after{content:":";}
#home .hv3-type-phrase{
  color:#125e88;
  font-weight:700;
  letter-spacing:.005em;
}
#home .hv3-type-cursor{
  flex:0 0 2px;
  width:2px;
  height:1.12em;
  border-radius:2px;
  background:#1f5c8c;
  animation:authority-type-cursor .82s step-end infinite;
}
@keyframes authority-type-cursor{50%{opacity:0;}}

/* PUBLICATIONS · official live metrics remain beside the DOI */
#publications .pub-links{
  display:flex;
  align-items:center;
  flex-wrap:wrap;
  gap:8px 14px;
}
#publications .pub-links>a{
  min-width:0;
  overflow-wrap:anywhere;
}
#publications .pub-live-metrics{
  display:inline-flex;
  align-items:center;
  flex:0 0 auto;
  min-height:34px;
  padding:2px 8px;
  border:1px solid rgba(31,92,140,.18);
  border-radius:999px;
  background:rgba(255,255,255,.82);
}
#publications .pub-live-metrics[hidden]{display:none !important;}
#publications .pub-live-metrics .alternative-metrics-row{
  display:inline-flex;
  align-items:center;
  justify-content:flex-start;
  flex-wrap:nowrap;
  gap:8px;
}
#publications .pub-live-metrics .plumx-metric,
#publications .pub-live-metrics .altmetric-metric{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:28px;
  line-height:1;
}
#publications .pub-live-metrics .plumx-metric{max-width:110px;}
#publications .pub-live-metrics .metric-shell[hidden]{display:none !important;}
#publications .pub-live-metrics .altmetric-metric .altmetric-embed{
  display:inline-flex;
  max-width:38px;
  transform-origin:center;
}
#publications .pub-live-metrics .altmetric-embed:not(:empty){transform:scale(.78);}
#publications .pub-live-metrics .plumx-plum-print-popup{
  display:inline-flex;
  max-width:110px;
}
#publications .pub-live-metrics iframe,
#publications .pub-live-metrics img,
#publications .pub-live-metrics svg{max-height:30px;width:auto;}

/* APPLIED PROJECTS · research imagery appears on hover and keyboard focus */
#projects .pcard.pcard--visual{
  position:relative;
  isolation:isolate;
  overflow:hidden;
  min-height:260px;
  border:1px solid rgba(31,92,140,.18);
  background:#fff;
  box-shadow:0 8px 24px rgba(20,47,66,.08);
  transition:transform .32s cubic-bezier(.2,.75,.25,1),box-shadow .32s ease,border-color .32s ease;
}
#projects .pcard.pcard--visual::before,
#projects .pcard.pcard--visual::after{
  content:"";
  position:absolute;
  inset:0;
  pointer-events:none;
  opacity:0;
  transition:opacity .38s ease,transform .7s cubic-bezier(.2,.75,.25,1);
}
#projects .pcard.pcard--visual::before{
  z-index:-2;
  background-image:var(--pcard-image);
  background-size:cover;
  background-position:center;
  transform:scale(1.07);
}
#projects .pcard.pcard--visual::after{
  z-index:-1;
  background:linear-gradient(135deg,rgba(6,23,34,.94),rgba(13,53,73,.84) 58%,rgba(16,87,92,.78));
}
#projects .pcard.pcard--visual>*{
  position:relative;
  z-index:1;
  transition:color .28s ease,border-color .28s ease,background-color .28s ease;
}
#projects .pcard.pcard--visual:hover,
#projects .pcard.pcard--visual:focus,
#projects .pcard.pcard--visual:focus-within{
  transform:translateY(-5px);
  border-color:rgba(78,174,190,.72);
  box-shadow:0 20px 42px rgba(10,35,49,.24);
  outline:none;
}
#projects .pcard.pcard--visual:hover::before,
#projects .pcard.pcard--visual:focus::before,
#projects .pcard.pcard--visual:focus-within::before{
  opacity:1;
  transform:scale(1);
}
#projects .pcard.pcard--visual:hover::after,
#projects .pcard.pcard--visual:focus::after,
#projects .pcard.pcard--visual:focus-within::after{opacity:1;}
#projects .pcard.pcard--visual:hover h4,
#projects .pcard.pcard--visual:hover .pcard-row,
#projects .pcard.pcard--visual:hover .pcard-k,
#projects .pcard.pcard--visual:focus h4,
#projects .pcard.pcard--visual:focus .pcard-row,
#projects .pcard.pcard--visual:focus .pcard-k,
#projects .pcard.pcard--visual:focus-within h4,
#projects .pcard.pcard--visual:focus-within .pcard-row,
#projects .pcard.pcard--visual:focus-within .pcard-k{color:#fff !important;}
#projects .pcard.pcard--visual:hover .pcard-row,
#projects .pcard.pcard--visual:focus .pcard-row,
#projects .pcard.pcard--visual:focus-within .pcard-row{border-color:rgba(255,255,255,.22);}
#projects .pcard.pcard--visual:hover .pcard-status,
#projects .pcard.pcard--visual:focus .pcard-status,
#projects .pcard.pcard--visual:focus-within .pcard-status{
  color:#fff !important;
  background:rgba(255,255,255,.14);
  border-color:rgba(255,255,255,.5);
}
#projects .pcard.pcard--visual:hover a,
#projects .pcard.pcard--visual:focus a,
#projects .pcard.pcard--visual:focus-within a{
  color:#aeeaff !important;
  text-decoration-color:#aeeaff;
}
#projects .pcard.pcard--visual:focus-visible{
  outline:3px solid #1f7ca8;
  outline-offset:4px;
}

/* PEER REVIEW · continuous, pausable editorial-leadership marquee */
#publications .review-marquee{
  position:relative;
  width:100%;
  max-width:100%;
  min-width:0;
  margin:2px 0 8px;
  overflow:hidden;
  box-sizing:border-box;
  contain:inline-size;
}
#publications .review-marquee-controls{
  display:flex;
  justify-content:flex-end;
  padding:2px 2px 0;
}
#publications .review-marquee-toggle{
  min-height:38px;
  padding:8px 13px;
  border:1px solid rgba(31,92,140,.3);
  border-radius:999px;
  background:#fff;
  color:#174f73;
  font:650 12px/1.2 var(--font-interface,"Roboto","Helvetica Neue",Arial,sans-serif);
  cursor:pointer;
}
#publications .review-marquee-toggle:hover{background:#edf6fa;border-color:#1f6d99;}
#publications .review-marquee-toggle:focus-visible{outline:3px solid rgba(31,110,154,.4);outline-offset:3px;}
#publications .review-marquee-viewport{
  width:100%;
  max-width:100%;
  min-width:0;
  overflow:hidden;
  box-sizing:border-box;
  contain:inline-size;
  padding:52px 0 22px;
  -webkit-mask-image:linear-gradient(90deg,transparent,#000 5%,#000 95%,transparent);
  mask-image:linear-gradient(90deg,transparent,#000 5%,#000 95%,transparent);
}
#publications .review-marquee-track{
  display:flex;
  width:max-content;
  gap:16px;
  animation:authority-review-marquee 54s linear infinite;
  will-change:transform;
}
@keyframes authority-review-marquee{to{transform:translateX(calc(-50% - 8px));}}
#publications .review-marquee:hover .review-marquee-track,
#publications .review-marquee:focus-within .review-marquee-track,
#publications .review-marquee.is-user-paused .review-marquee-track{animation-play-state:paused;}
#publications .review-list.simple.review-marquee-set{
  display:flex !important;
  flex-direction:row !important;
  flex:0 0 auto;
  align-items:stretch;
  gap:16px;
  width:max-content;
  margin:0 !important;
  padding:0 !important;
}
#publications .review-list.simple.review-marquee-set li.peer-review-publication{
  position:relative;
  display:flex;
  flex:0 0 clamp(210px,19vw,258px);
  width:clamp(210px,19vw,258px);
  min-width:210px;
  min-height:168px;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:12px;
  padding:18px 14px;
  border:1px solid rgba(31,92,140,.16) !important;
  border-radius:14px;
  background:rgba(255,255,255,.7);
  box-shadow:0 6px 20px rgba(20,47,66,.055);
  transition:transform .25s ease,border-color .25s ease,box-shadow .25s ease,background-color .25s ease;
}
#publications .review-list.simple.review-marquee-set li.peer-review-publication:first-child{border-top:1px solid rgba(31,92,140,.16) !important;}
#publications .peer-review-identity{
  width:min(100%,168px);
  height:94px;
}
#publications .peer-review-identity img{
  filter:grayscale(1) saturate(0);
  opacity:.72;
  transition:filter .3s ease,opacity .3s ease,transform .3s ease;
}
#publications .peer-review-info{
  width:100%;
  justify-content:center;
  align-items:center;
  text-align:center;
  gap:8px;
}
#publications .peer-review-info a{
  display:block;
  width:100%;
  max-width:100%;
  min-width:0;
  padding-inline:3px;
  color:#263e4e;
  font-weight:650;
  line-height:1.35;
  text-decoration:none;
  overflow-wrap:anywhere;
}
#publications .peer-review-info .rv-count{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-width:28px;
  min-height:24px;
  padding:2px 8px;
  border-radius:999px;
  background:#e6f0f5;
  color:#1f5c8c;
  font-weight:700;
}
#publications .review-list.simple.review-marquee-set li.peer-review-publication:hover,
#publications .review-list.simple.review-marquee-set li.peer-review-publication:focus-within{
  transform:translateY(-4px);
  border-color:rgba(31,92,140,.46) !important;
  background:#fff;
  box-shadow:0 16px 32px rgba(20,47,66,.13);
}
#publications .review-list.simple li.peer-review-publication:hover .peer-review-identity img,
#publications .review-list.simple li.peer-review-publication:focus-within .peer-review-identity img{
  filter:none;
  opacity:1;
  transform:scale(1.035);
}
#publications .review-count-tooltip{
  position:absolute;
  z-index:5;
  left:50%;
  bottom:calc(100% + 8px);
  width:max-content;
  max-width:220px;
  padding:8px 11px;
  border-radius:8px;
  background:#102d3f;
  color:#fff;
  font:600 12px/1.35 var(--font-interface,"Roboto","Helvetica Neue",Arial,sans-serif);
  text-align:center;
  box-shadow:0 9px 20px rgba(8,29,42,.22);
  opacity:0;
  visibility:hidden;
  transform:translate(-50%,7px);
  pointer-events:none;
  transition:opacity .18s ease,transform .18s ease,visibility .18s;
}
#publications .review-count-tooltip::after{
  content:"";
  position:absolute;
  top:100%;
  left:50%;
  border:6px solid transparent;
  border-top-color:#102d3f;
  transform:translateX(-50%);
}
#publications .peer-review-publication:hover .review-count-tooltip,
#publications .peer-review-publication:focus-within .review-count-tooltip{
  opacity:1;
  visibility:visible;
  transform:translate(-50%,0);
}

/* WORKSTATION · accessible dark technical dashboard */
#infrastructure .workstation-panel{
  overflow:hidden;
  padding:clamp(18px,3vw,34px);
  border:1px solid #274c61;
  border-radius:20px;
  background:
    radial-gradient(circle at 88% 5%,rgba(35,135,167,.22),transparent 30%),
    linear-gradient(145deg,#071721,#0c2431 58%,#0a1d28);
  color:#eaf5f8;
  box-shadow:0 20px 50px rgba(4,21,31,.2);
}
#infrastructure .workstation-panel .workstation-subtitle,
#infrastructure .workstation-panel .workstation-name,
#infrastructure .workstation-panel .workstation-intro,
#infrastructure .workstation-panel .workstation-description,
#infrastructure .workstation-panel .workstation-apps h5{color:#f4fbfd;}
#infrastructure .workstation-panel .infra-heading-link{color:#f4fbfd;}
#infrastructure .workstation-panel .workstation-intro,
#infrastructure .workstation-panel .workstation-description p{color:#c7d9df;}
#infrastructure .workstation-panel .workstation-figure{
  overflow:hidden;
  border:1px solid rgba(123,194,214,.24);
  border-radius:14px;
  background:rgba(255,255,255,.035);
}
#infrastructure .workstation-panel .equipment-caption{color:#b8d2db;}
#infrastructure .workstation-panel .workstation-apps{
  border-color:rgba(115,183,204,.22);
  background:rgba(3,17,25,.3);
}
#infrastructure .workstation-panel .workstation-tags li{
  border-color:rgba(126,201,221,.28);
  background:rgba(44,125,151,.14);
  color:#d8eef3;
}
#infrastructure .workstation-specs[hidden]{display:none !important;}
.workstation-dashboard{
  grid-area:specs;
  width:100%;
  box-sizing:border-box;
  margin:18px 0 24px;
  padding:18px;
  border:1px solid rgba(116,196,218,.25);
  border-radius:16px;
  background:rgba(2,15,22,.46);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.035);
}
.compute-modules{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:12px;
}
.compute-module{
  min-width:0;
  padding:15px;
  border:1px solid rgba(111,192,214,.18);
  border-radius:12px;
  background:linear-gradient(145deg,rgba(18,54,69,.8),rgba(7,30,42,.8));
}
.compute-module-head{
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  gap:7px;
}
.compute-module-label{
  color:#96b9c5;
  font:650 11px/1.2 var(--font-interface,"Roboto","Helvetica Neue",Arial,sans-serif);
  letter-spacing:.08em;
  text-transform:uppercase;
}
.compute-module-value{
  color:#fff;
  font:750 17px/1.1 var(--font-interface,"Roboto","Helvetica Neue",Arial,sans-serif);
  text-align:left;
  white-space:nowrap;
}
.compute-meter{
  position:relative;
  height:6px;
  margin:14px 0 10px;
  overflow:hidden;
  border-radius:999px;
  background:rgba(151,202,217,.13);
}
.compute-meter-fill{
  display:block;
  width:100%;
  height:100%;
  border-radius:inherit;
  background:linear-gradient(90deg,#2fa2c5,#66d6c3);
  box-shadow:0 0 12px rgba(65,194,201,.42);
  transform:scaleX(0);
  transform-origin:left center;
}
.workstation-dashboard.is-visible .compute-meter-fill{
  transform:scaleX(1);
  transition:transform 1s cubic-bezier(.22,.8,.25,1);
}
.compute-module-detail{
  margin:0;
  color:#b9d0d7;
  font:500 12px/1.45 var(--font-interface,"Roboto","Helvetica Neue",Arial,sans-serif);
}
.core-matrix{
  display:grid;
  grid-template-columns:repeat(12,1fr);
  gap:3px;
  margin-top:12px;
}
.core-matrix i{
  height:5px;
  border-radius:2px;
  background:#5fc7d2;
  box-shadow:0 0 6px rgba(95,199,210,.38);
  opacity:.18;
  transform:scaleY(.4);
}
.workstation-dashboard.is-visible .core-matrix i{
  opacity:.9;
  transform:scaleY(1);
  transition:opacity .22s ease calc(var(--core-index) * 28ms),transform .22s ease calc(var(--core-index) * 28ms);
}
.technical-monitors{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:12px;
  margin-top:12px;
}
.technical-monitor{
  display:grid;
  grid-template-columns:1fr auto;
  align-items:center;
  gap:4px 16px;
  min-width:0;
  padding:12px 14px;
  border:1px solid rgba(111,192,214,.16);
  border-radius:11px;
  background:rgba(9,40,52,.62);
}
.technical-monitor-title{
  color:#a8c8d2;
  font:600 12px/1.3 var(--font-interface,"Roboto","Helvetica Neue",Arial,sans-serif);
}
.technical-monitor-status{
  color:#7be0c5;
  font:700 12px/1.3 var(--font-interface,"Roboto","Helvetica Neue",Arial,sans-serif);
}
.monitor-sparkline{
  grid-column:1/-1;
  width:100%;
  height:42px;
  overflow:visible;
}
.monitor-grid{fill:none;stroke:rgba(151,202,217,.09);stroke-width:1;}
.monitor-line{
  fill:none;
  stroke:#4db8d3;
  stroke-width:2;
  stroke-linecap:round;
  stroke-dasharray:240;
  stroke-dashoffset:240;
}
.workstation-dashboard.is-visible .monitor-line{
  stroke-dashoffset:0;
  transition:stroke-dashoffset 1.4s ease .25s;
}
.monitor-point{fill:#76e2c5;filter:drop-shadow(0 0 4px rgba(118,226,197,.8));}
.workstation-dashboard.is-visible .monitor-point{animation:authority-monitor-pulse 2s ease-in-out infinite;}
@keyframes authority-monitor-pulse{50%{opacity:.42;transform:scale(.76);transform-origin:center;}}
.dashboard-monitor-note{
  margin:9px 0 0;
  color:#829faa;
  font:500 10.5px/1.4 var(--font-interface,"Roboto","Helvetica Neue",Arial,sans-serif);
  text-align:right;
}

@media (max-width:960px){
  #publications .review-list.simple.review-marquee-set li.peer-review-publication{
    flex-basis:232px;
    width:232px;
  }
  .compute-modules{grid-template-columns:1fr;}
  .core-matrix{grid-template-columns:repeat(24,1fr);}
}
@media (max-width:620px){
  #home .hv3-typewriter{display:block;min-height:3.5em;}
  #home .hv3-type-prefix{display:block;margin-bottom:3px;}
  #home .hv3-type-phrase{display:inline;}
  #home .hv3-type-cursor{display:inline-block;margin-left:5px;vertical-align:-.13em;}
  #publications .pub-live-metrics{width:max-content;max-width:100%;}
  #publications .review-marquee-viewport{
    padding-top:48px;
    -webkit-mask-image:linear-gradient(90deg,transparent,#000 3%,#000 97%,transparent);
    mask-image:linear-gradient(90deg,transparent,#000 3%,#000 97%,transparent);
  }
  #publications .review-list.simple.review-marquee-set li.peer-review-publication{
    flex-basis:min(78vw,248px);
    width:min(78vw,248px);
    min-height:158px;
  }
  .technical-monitors{grid-template-columns:1fr;}
  .workstation-dashboard{padding:12px;}
}
@media (hover:none){
  #projects .pcard.pcard--visual:active::before,
  #projects .pcard.pcard--visual:active::after{opacity:1;}
}
@media (prefers-reduced-motion:reduce){
  #home .hv3-type-cursor{animation:none;opacity:1;}
  #projects .pcard.pcard--visual,
  #projects .pcard.pcard--visual::before,
  #projects .pcard.pcard--visual::after,
  #publications .review-list.simple.review-marquee-set li.peer-review-publication,
  #publications .peer-review-identity img,
  #publications .review-count-tooltip{transition:none;}
  #publications .review-marquee-track{
    animation:none;
    transform:none;
  }
  #publications .review-marquee-viewport{
    overflow-x:auto;
    -webkit-mask-image:none;
    mask-image:none;
    scrollbar-width:thin;
  }
  .compute-meter-fill,
  .core-matrix i,
  .monitor-line{transition:none !important;}
  .monitor-point{animation:none !important;}
}

/* ==========================================================================
   20260727 · Accessible scientific hierarchy, colour identity, and clean panels
   ========================================================================== */

/* Introductory content stands apart while the page-wide grey-to-white field
   remains continuous behind it. */
#research .intro-band-inner,
#infrastructure .intro-band-inner,
#publications .intro-band-inner,
#collaboration .intro-band-inner{
  position:relative;
  border:1px solid rgba(31,92,140,.18);
  border-radius:18px;
  background:
    linear-gradient(135deg,rgba(231,243,248,.98) 0%,rgba(239,248,243,.98) 100%);
  box-shadow:0 12px 30px rgba(21,57,78,.075);
}
#research .intro-band-inner::before,
#infrastructure .intro-band-inner::before,
#publications .intro-band-inner::before,
#collaboration .intro-band-inner::before{
  content:"";
  position:absolute;
  inset:0 auto 0 0;
  width:4px;
  border-radius:18px 0 0 18px;
  background:linear-gradient(180deg,#1f5c8c,#43a08b);
}

/* Inline SVG heading marks echo the Scientific Fingerprint identity. */
.scientific-icon-heading{
  display:flex !important;
  align-items:center;
  gap:10px;
}
.scientific-icon-heading > a{min-width:0;}
.scientific-heading-icon{
  display:inline-flex;
  flex:0 0 38px;
  width:38px;
  height:38px;
  align-items:center;
  justify-content:center;
  border:1px solid rgba(31,92,140,.22);
  border-radius:11px;
  color:#1f5c8c;
  background:linear-gradient(145deg,#fff,rgba(221,239,244,.9));
  box-shadow:0 5px 14px rgba(31,92,140,.09);
}
.scientific-heading-icon svg{display:block;width:23px;height:23px;}
#research .research-method-title .scientific-heading-icon,
#research #featured-research .scientific-heading-icon{
  flex-basis:34px;
  width:34px;
  height:34px;
  border-radius:10px;
}
#research .research-method-title .scientific-heading-icon svg,
#research #featured-research .scientific-heading-icon svg{width:20px;height:20px;}

/* Seamless research-method sections: typography and internal content supply
   hierarchy without an outer card border or panel fill. */
#research .research-method-card{
  border:0 !important;
  border-left:0 !important;
  border-radius:0 !important;
  background:transparent !important;
  box-shadow:none !important;
  padding-left:0 !important;
  padding-right:0 !important;
}

/* Awards remain a continuous transparent timeline/marquee rather than a boxed
   container. Images keep their own circular framing for recognition. */
#recognition .recognition-timeline,
#recognition .recognition-timeline.recognition-timeline--marquee,
#recognition .recognition-timeline--marquee .recognition-item{
  border:0 !important;
  background:transparent !important;
  box-shadow:none !important;
}

/* Official journal and institution artwork is displayed in original colour. */
#publications .peer-review-identity img,
#publications .review-list.simple li.peer-review-publication:hover .peer-review-identity img,
#publications .review-list.simple li.peer-review-publication:focus-within .peer-review-identity img,
#collaboration #inst-grid.inst-grid .inst-logo img,
#collaboration .institutions-marquee .inst-logo img,
#collaboration .inst-card:hover .inst-logo img,
#collaboration .inst-card:focus-visible .inst-logo img{
  filter:none !important;
  opacity:1 !important;
}

/* Restored Altmetric + PlumX row. Provider failures keep only the compact,
   accessible text fallback and never collapse the parent publication layout. */
#publications .pub-live-metrics{
  position:static !important;
  visibility:visible !important;
  display:inline-flex !important;
  min-height:34px;
}
#publications .pub-live-metrics .alternative-metrics-row{
  display:inline-flex;
  align-items:center;
  gap:8px;
}
#publications .pub-live-metrics .metric-shell{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:28px;
}
#publications .pub-live-metrics .metric-widget{display:inline-flex;align-items:center;}
#publications .pub-live-metrics .plumx-metric{max-width:110px;}
#publications .pub-live-metrics .plumx-plum-print-popup{
  display:inline-flex;
  align-items:center;
  max-width:110px;
}
#publications .pub-live-metrics .altmetric-metric .altmetric-embed{
  display:inline-flex;
  max-width:42px;
  transform-origin:center;
}
#publications .pub-live-metrics .metric-provider-fallback{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:28px;
  padding:5px 9px;
  border:1px solid rgba(31,92,140,.3);
  border-radius:999px;
  background:#fff;
  color:#1f5c8c;
  font:700 11px/1 var(--font-interface,"Roboto","Helvetica Neue",Arial,sans-serif);
}
#publications .pub-live-metrics .metric-provider-fallback[hidden]{display:none !important;}
#publications .pub-live-metrics iframe,
#publications .pub-live-metrics img,
#publications .pub-live-metrics svg{max-height:30px;width:auto;}

/* The visible equipment sequence starts GC–MS/MS → HPLC → extraction. */
#infrastructure #gas-volatile-analysis.equipment-card--priority{
  width:100%;
  margin:0 0 clamp(14px,2vw,22px);
}
#infrastructure #extraction-liquid-analysis .analytical-pair-grid{
  grid-template-columns:repeat(2,minmax(0,1fr));
}

@media (max-width:700px){
  #research .intro-band-inner,
  #infrastructure .intro-band-inner,
  #publications .intro-band-inner,
  #collaboration .intro-band-inner{
    border-radius:14px;
  }
  #research .intro-band-inner::before,
  #infrastructure .intro-band-inner::before,
  #publications .intro-band-inner::before,
  #collaboration .intro-band-inner::before{border-radius:14px 0 0 14px;}
  .scientific-heading-icon{
    flex-basis:34px;
    width:34px;
    height:34px;
  }
  .scientific-heading-icon svg{width:20px;height:20px;}
  #infrastructure #extraction-liquid-analysis .analytical-pair-grid{grid-template-columns:1fr;}
}

@media (prefers-reduced-motion:reduce){
  #publications .peer-review-identity img{transition:none !important;}
}

/* ==========================================================================
   20260727 · Neutral introductions and corrected vertical rhythm
   ========================================================================== */

/* Keep the page-wide neutral gradient, but remove the coloured boxes that were
   added around the four introductory texts. */
#research .intro-band-inner,
#infrastructure .intro-band-inner,
#publications .intro-band-inner,
#collaboration .intro-band-inner{
  border:0 !important;
  border-radius:0 !important;
  background:transparent !important;
  background-image:none !important;
  box-shadow:none !important;
}
#research .intro-band-inner::before,
#infrastructure .intro-band-inner::before,
#publications .intro-band-inner::before,
#collaboration .intro-band-inner::before{
  content:none !important;
  display:none !important;
}

/* Scientific heading symbols follow the monochrome fingerprint treatment:
   no coloured tile, no border, and one dark line-art colour. */
.scientific-heading-icon,
#research .research-method-title .scientific-heading-icon,
#research #featured-research .scientific-heading-icon{
  flex:0 0 23px;
  width:23px;
  height:23px;
  border:0 !important;
  border-radius:0 !important;
  background:transparent !important;
  box-shadow:none !important;
  color:var(--ds-navy,#132437) !important;
}
.scientific-heading-icon svg,
#research .research-method-title .scientific-heading-icon svg,
#research #featured-research .scientific-heading-icon svg{
  width:23px;
  height:23px;
  stroke-width:1.65;
}

/* The requested equipment order is a true vertical sequence at every width:
   GC–MS/MS, HPLC, solid–liquid extraction, then the remaining equipment. */
#infrastructure #extraction-liquid-analysis .analytical-pair-grid{
  grid-template-columns:1fr !important;
  gap:clamp(16px,2vw,24px);
}
#infrastructure .infra-lab-heading-row{
  justify-content:flex-start;
}

/* The explorer action now belongs to the concise introduction. */
#infrastructure .infrastructure-intro-copy{
  margin-bottom:0 !important;
}
#infrastructure .infrastructure-intro-copy .infra-overview-equipment-link{
  white-space:normal;
}

/* Education is more compact; language chips gain a little breathing room. */
#home .academic-col .education-list{
  gap:10px !important;
}
#home .education-entry{
  padding-top:4px !important;
  padding-bottom:4px !important;
}
#home .languages-col .language-list{
  gap:10px !important;
}

/* ==========================================================================
   20260727 · Live badges, pausable recognition and visual introductions
   ========================================================================== */

/* Only official provider artwork is allowed in the live-metrics row. If a
   provider supplies no visual badge, its individual shell collapses cleanly. */
#publications .pub-live-metrics .metric-provider-fallback{
  display:none !important;
}
#publications .pub-live-metrics .metric-shell.is-empty,
#publications .pub-live-metrics .metric-shell[hidden]{
  display:none !important;
}
#publications .pub-live-metrics .metric-shell.is-rendered{
  display:inline-flex !important;
}
#publications .pub-live-metrics .alternative-metrics-row:empty{
  display:none !important;
}
#publications .pub-live-metrics.is-pending{
  min-height:0 !important;
  padding:0 !important;
  border-color:transparent !important;
  background:transparent !important;
}
#publications .pub-live-metrics[hidden]{
  display:none !important;
}

/* Languages receive the same restrained micro-interaction used throughout the
   Home page. The scale is deliberately small so it never disturbs the column. */
#home .languages-col .language-chip{
  transform-origin:left center;
  transition:
    transform .2s cubic-bezier(.2,.75,.25,1),
    border-color .2s ease,
    box-shadow .2s ease;
}
@media (hover:hover) and (pointer:fine){
  #home .languages-col .language-chip:hover{
    transform:scale(1.035);
    border-color:rgba(31,92,140,.42);
    box-shadow:0 5px 14px rgba(19,50,77,.12);
  }
}

/* The entire awards strip pauses when any visible card is inspected. Keyboard
   focus and the open detail dialog receive the same behavior as mouse hover. */
#recognition .recognition-marquee:hover .recognition-timeline--marquee,
#recognition .recognition-marquee:focus-within .recognition-timeline--marquee,
#recognition.recognition-modal-open .recognition-timeline--marquee{
  animation-play-state:paused !important;
}
#recognition .recognition-item--clone{
  pointer-events:auto !important;
}
#recognition .recognition-timeline--marquee .recognition-item{
  cursor:zoom-in;
}
#recognition .recognition-timeline--marquee .recognition-item:focus-visible{
  outline:3px solid #1f5c8c !important;
  outline-offset:3px;
}
#recognition .recognition-zoom-dialog{
  width:min(92vw,920px);
}
#recognition .recognition-zoom-caption{
  max-width:760px;
  margin:14px auto 2px;
  padding:0 8px;
  color:#172637;
  font:600 clamp(14px,1.7vw,17px)/1.52 "Roboto","Helvetica Neue",Arial,sans-serif;
  text-align:center;
}

/* Research, Infrastructure, Publications and Collaborations keep their neutral
   default appearance. Hover or keyboard focus reveals the documented pilot
   reactor, using a strong dark veil so all typography remains WCAG-readable. */
#research .intro-band-inner.section-intro--visual,
#infrastructure .intro-band-inner.section-intro--visual,
#publications .intro-band-inner.section-intro--visual,
#collaboration .intro-band-inner.section-intro--visual{
  position:relative;
  isolation:isolate;
  overflow:hidden;
  border:0 !important;
  border-radius:16px !important;
  background:transparent !important;
  box-shadow:none !important;
  transition:transform .34s cubic-bezier(.2,.75,.25,1),box-shadow .34s ease;
}
#research .intro-band-inner.section-intro--visual::before,
#infrastructure .intro-band-inner.section-intro--visual::before,
#publications .intro-band-inner.section-intro--visual::before,
#collaboration .intro-band-inner.section-intro--visual::before,
#research .intro-band-inner.section-intro--visual::after,
#infrastructure .intro-band-inner.section-intro--visual::after,
#publications .intro-band-inner.section-intro--visual::after,
#collaboration .intro-band-inner.section-intro--visual::after{
  content:"" !important;
  display:block !important;
  position:absolute;
  inset:0;
  pointer-events:none;
  opacity:0;
  transition:opacity .42s ease,transform .8s cubic-bezier(.2,.75,.25,1);
}
#research .intro-band-inner.section-intro--visual::before,
#infrastructure .intro-band-inner.section-intro--visual::before,
#publications .intro-band-inner.section-intro--visual::before,
#collaboration .intro-band-inner.section-intro--visual::before{
  z-index:-2;
  width:auto;
  border-radius:inherit;
  background-image:var(--section-intro-image) !important;
  background-position:center 48% !important;
  background-size:cover !important;
  transform:scale(1.06);
}
#research .intro-band-inner.section-intro--visual::after,
#infrastructure .intro-band-inner.section-intro--visual::after,
#publications .intro-band-inner.section-intro--visual::after,
#collaboration .intro-band-inner.section-intro--visual::after{
  z-index:-1;
  border-radius:inherit;
  background:linear-gradient(105deg,rgba(7,20,29,.96) 0%,rgba(10,39,52,.91) 58%,rgba(15,73,75,.84) 100%);
}
#research .intro-band-inner.section-intro--visual > *,
#infrastructure .intro-band-inner.section-intro--visual > *,
#publications .intro-band-inner.section-intro--visual > *,
#collaboration .intro-band-inner.section-intro--visual > *{
  position:relative;
  z-index:1;
}
#research .intro-band-inner.section-intro--visual:hover,
#research .intro-band-inner.section-intro--visual:focus,
#infrastructure .intro-band-inner.section-intro--visual:hover,
#infrastructure .intro-band-inner.section-intro--visual:focus,
#publications .intro-band-inner.section-intro--visual:hover,
#publications .intro-band-inner.section-intro--visual:focus,
#collaboration .intro-band-inner.section-intro--visual:hover,
#collaboration .intro-band-inner.section-intro--visual:focus{
  transform:translateY(-3px);
  box-shadow:0 18px 40px rgba(8,29,42,.22) !important;
  outline:none;
}
#research .intro-band-inner.section-intro--visual:hover::before,
#research .intro-band-inner.section-intro--visual:focus::before,
#research .intro-band-inner.section-intro--visual:hover::after,
#research .intro-band-inner.section-intro--visual:focus::after,
#infrastructure .intro-band-inner.section-intro--visual:hover::before,
#infrastructure .intro-band-inner.section-intro--visual:focus::before,
#infrastructure .intro-band-inner.section-intro--visual:hover::after,
#infrastructure .intro-band-inner.section-intro--visual:focus::after,
#publications .intro-band-inner.section-intro--visual:hover::before,
#publications .intro-band-inner.section-intro--visual:focus::before,
#publications .intro-band-inner.section-intro--visual:hover::after,
#publications .intro-band-inner.section-intro--visual:focus::after,
#collaboration .intro-band-inner.section-intro--visual:hover::before,
#collaboration .intro-band-inner.section-intro--visual:focus::before,
#collaboration .intro-band-inner.section-intro--visual:hover::after,
#collaboration .intro-band-inner.section-intro--visual:focus::after{
  opacity:1;
}
#research .intro-band-inner.section-intro--visual:hover::before,
#research .intro-band-inner.section-intro--visual:focus::before,
#infrastructure .intro-band-inner.section-intro--visual:hover::before,
#infrastructure .intro-band-inner.section-intro--visual:focus::before,
#publications .intro-band-inner.section-intro--visual:hover::before,
#publications .intro-band-inner.section-intro--visual:focus::before,
#collaboration .intro-band-inner.section-intro--visual:hover::before,
#collaboration .intro-band-inner.section-intro--visual:focus::before{
  transform:scale(1);
}
#research .intro-band-inner.section-intro--visual:hover .section-intro-title,
#research .intro-band-inner.section-intro--visual:hover .section-intro-text,
#research .intro-band-inner.section-intro--visual:focus .section-intro-title,
#research .intro-band-inner.section-intro--visual:focus .section-intro-text,
#infrastructure .intro-band-inner.section-intro--visual:hover .section-intro-title,
#infrastructure .intro-band-inner.section-intro--visual:hover .section-intro-text,
#infrastructure .intro-band-inner.section-intro--visual:focus .section-intro-title,
#infrastructure .intro-band-inner.section-intro--visual:focus .section-intro-text,
#publications .intro-band-inner.section-intro--visual:hover .section-intro-title,
#publications .intro-band-inner.section-intro--visual:hover .section-intro-text,
#publications .intro-band-inner.section-intro--visual:focus .section-intro-title,
#publications .intro-band-inner.section-intro--visual:focus .section-intro-text,
#collaboration .intro-band-inner.section-intro--visual:hover .section-intro-title,
#collaboration .intro-band-inner.section-intro--visual:hover .section-intro-text,
#collaboration .intro-band-inner.section-intro--visual:focus .section-intro-title,
#collaboration .intro-band-inner.section-intro--visual:focus .section-intro-text{
  color:#fff !important;
}
#collaboration.collab-visual-test.cs-scope .intro-band-inner.section-intro--visual:hover h2.section-intro-title,
#collaboration.collab-visual-test.cs-scope .intro-band-inner.section-intro--visual:focus h2.section-intro-title{
  color:#fff !important;
}
#research .intro-band-inner.section-intro--visual:hover .scientific-heading-icon,
#research .intro-band-inner.section-intro--visual:focus .scientific-heading-icon,
#infrastructure .intro-band-inner.section-intro--visual:hover .scientific-heading-icon,
#infrastructure .intro-band-inner.section-intro--visual:focus .scientific-heading-icon,
#publications .intro-band-inner.section-intro--visual:hover .scientific-heading-icon,
#publications .intro-band-inner.section-intro--visual:focus .scientific-heading-icon,
#collaboration .intro-band-inner.section-intro--visual:hover .scientific-heading-icon,
#collaboration .intro-band-inner.section-intro--visual:focus .scientific-heading-icon{
  color:#fff !important;
}
#infrastructure .intro-band-inner.section-intro--visual:hover .infra-inventory-link,
#infrastructure .intro-band-inner.section-intro--visual:focus .infra-inventory-link{
  color:#bfeeff !important;
  text-decoration-color:#bfeeff !important;
}
#research .intro-band-inner.section-intro--visual:focus-visible,
#infrastructure .intro-band-inner.section-intro--visual:focus-visible,
#publications .intro-band-inner.section-intro--visual:focus-visible,
#collaboration .intro-band-inner.section-intro--visual:focus-visible{
  outline:3px solid #1f5c8c;
  outline-offset:4px;
}

@media (max-width:700px){
  #research .intro-band-inner.section-intro--visual,
  #infrastructure .intro-band-inner.section-intro--visual,
  #publications .intro-band-inner.section-intro--visual,
  #collaboration .intro-band-inner.section-intro--visual{
    border-radius:13px !important;
  }
}

@media (prefers-reduced-motion:reduce){
  #research .intro-band-inner.section-intro--visual,
  #infrastructure .intro-band-inner.section-intro--visual,
  #publications .intro-band-inner.section-intro--visual,
  #collaboration .intro-band-inner.section-intro--visual,
  #research .intro-band-inner.section-intro--visual::before,
  #research .intro-band-inner.section-intro--visual::after,
  #infrastructure .intro-band-inner.section-intro--visual::before,
  #infrastructure .intro-band-inner.section-intro--visual::after,
  #publications .intro-band-inner.section-intro--visual::before,
  #publications .intro-band-inner.section-intro--visual::after,
  #collaboration .intro-band-inner.section-intro--visual::before,
  #collaboration .intro-band-inner.section-intro--visual::after{
    transition:none !important;
  }
}

/* Final mobile cascade guard: an older typewriter rule below the original hero
   styles stacked the label and phrase. Keep both on the requested single row. */
@media (max-width:600px){
  #home .hv3-typewriter{
    display:flex !important;
    flex-wrap:nowrap !important;
    min-height:1.4em !important;
  }
  #home .hv3-type-prefix{
    display:inline-flex !important;
    margin:0 !important;
  }
  #home .hv3-type-phrase{
    display:inline !important;
  }
  #home .hv3-type-cursor{
    display:inline-block !important;
    margin-left:1px !important;
  }
}

/* ==========================================================================
   20260728 · Immersive scientific reading cards
   The normal cards remain unchanged until hover, keyboard focus or a deliberate
   tap. Real equipment photography and research imagery then appear under a
   high-contrast veil, keeping every text element legible.
   ========================================================================== */
#research .immersive-reading-card,
#infrastructure .immersive-reading-card{
  position:relative !important;
  isolation:isolate;
  overflow:hidden !important;
  border-radius:14px;
  transition:
    color .32s ease,
    border-color .32s ease,
    box-shadow .32s ease,
    transform .32s ease !important;
}
#research .immersive-reading-card > :not(.immersive-reading-bg):not(.immersive-reading-veil),
#infrastructure .immersive-reading-card > :not(.immersive-reading-bg):not(.immersive-reading-veil){
  position:relative;
  z-index:2;
}
#research .immersive-reading-bg,
#research .immersive-reading-veil,
#infrastructure .immersive-reading-bg,
#infrastructure .immersive-reading-veil{
  position:absolute;
  z-index:0;
  inset:0;
  display:block;
  margin:0;
  border:0;
  pointer-events:none;
  opacity:0;
  transition:opacity .38s ease,transform .7s cubic-bezier(.2,.7,.2,1);
}
#research .immersive-reading-bg,
#infrastructure .immersive-reading-bg{
  background-position:center;
  background-size:cover;
  transform:scale(1.035);
}
#research .immersive-reading-veil,
#infrastructure .immersive-reading-veil{
  z-index:1;
  background:
    linear-gradient(118deg,rgba(5,22,31,.94) 0%,rgba(8,37,42,.87) 52%,rgba(8,45,39,.80) 100%);
}

@media (hover:hover) and (pointer:fine){
  #research .immersive-reading-card:hover,
  #infrastructure .immersive-reading-card:hover{
    transform:translateY(-2px);
    box-shadow:0 18px 42px rgba(4,29,37,.22) !important;
  }
  #research .immersive-reading-card:hover > .immersive-reading-bg,
  #research .immersive-reading-card:hover > .immersive-reading-veil,
  #infrastructure .immersive-reading-card:hover > .immersive-reading-bg,
  #infrastructure .immersive-reading-card:hover > .immersive-reading-veil{
    opacity:1;
  }
  #research .immersive-reading-card:hover > .immersive-reading-bg,
  #infrastructure .immersive-reading-card:hover > .immersive-reading-bg{
    transform:scale(1);
  }
}

#research .immersive-reading-card:focus-within > .immersive-reading-bg,
#research .immersive-reading-card:focus-within > .immersive-reading-veil,
#research .immersive-reading-card.is-immersive-pinned > .immersive-reading-bg,
#research .immersive-reading-card.is-immersive-pinned > .immersive-reading-veil,
#infrastructure .immersive-reading-card:focus-within > .immersive-reading-bg,
#infrastructure .immersive-reading-card:focus-within > .immersive-reading-veil,
#infrastructure .immersive-reading-card.is-immersive-pinned > .immersive-reading-bg,
#infrastructure .immersive-reading-card.is-immersive-pinned > .immersive-reading-veil{
  opacity:1;
}
#research .immersive-reading-card:focus-within > .immersive-reading-bg,
#research .immersive-reading-card.is-immersive-pinned > .immersive-reading-bg,
#infrastructure .immersive-reading-card:focus-within > .immersive-reading-bg,
#infrastructure .immersive-reading-card.is-immersive-pinned > .immersive-reading-bg{
  transform:scale(1);
}

@media (hover:hover) and (pointer:fine){
  #research .immersive-reading-card:hover,
  #research .immersive-reading-card:hover :is(h3,h4,h5,h6,p,li,span,figcaption,strong,em),
  #infrastructure .immersive-reading-card:hover,
  #infrastructure .immersive-reading-card:hover :is(h3,h4,h5,h6,p,li,span,figcaption,strong,em){
    color:#fff !important;
  }
  #research .immersive-reading-card:hover :is(h3,h4,h5,h6,strong),
  #infrastructure .immersive-reading-card:hover :is(h3,h4,h5,h6,strong){
    color:#c8f1d8 !important;
  }
  #research .immersive-reading-card:hover a,
  #infrastructure .immersive-reading-card:hover a{
    color:#d8f7ff !important;
    text-decoration-color:rgba(216,247,255,.72) !important;
  }
}

#research .immersive-reading-card:focus-within,
#research .immersive-reading-card:focus-within :is(h3,h4,h5,h6,p,li,span,figcaption,strong,em),
#research .immersive-reading-card.is-immersive-pinned,
#research .immersive-reading-card.is-immersive-pinned :is(h3,h4,h5,h6,p,li,span,figcaption,strong,em),
#infrastructure .immersive-reading-card:focus-within,
#infrastructure .immersive-reading-card:focus-within :is(h3,h4,h5,h6,p,li,span,figcaption,strong,em),
#infrastructure .immersive-reading-card.is-immersive-pinned,
#infrastructure .immersive-reading-card.is-immersive-pinned :is(h3,h4,h5,h6,p,li,span,figcaption,strong,em){
  color:#fff !important;
}
#research .immersive-reading-card:focus-within :is(h3,h4,h5,h6,strong),
#research .immersive-reading-card.is-immersive-pinned :is(h3,h4,h5,h6,strong),
#infrastructure .immersive-reading-card:focus-within :is(h3,h4,h5,h6,strong),
#infrastructure .immersive-reading-card.is-immersive-pinned :is(h3,h4,h5,h6,strong){
  color:#c8f1d8 !important;
}
#research .immersive-reading-card:focus-within a,
#research .immersive-reading-card.is-immersive-pinned a,
#infrastructure .immersive-reading-card:focus-within a,
#infrastructure .immersive-reading-card.is-immersive-pinned a{
  color:#d8f7ff !important;
  text-decoration-color:rgba(216,247,255,.72) !important;
}
#research .immersive-reading-card:focus-visible,
#infrastructure .immersive-reading-card:focus-visible{
  outline:3px solid #2d82b6;
  outline-offset:3px;
}

@media (max-width:700px){
  #research .immersive-reading-card,
  #infrastructure .immersive-reading-card{
    border-radius:12px;
  }
  #research .immersive-reading-veil,
  #infrastructure .immersive-reading-veil{
    background:
      linear-gradient(128deg,rgba(4,20,29,.96) 0%,rgba(7,37,42,.91) 58%,rgba(8,46,40,.86) 100%);
  }
}

@media (prefers-reduced-motion:reduce){
  #research .immersive-reading-card,
  #research .immersive-reading-bg,
  #research .immersive-reading-veil,
  #infrastructure .immersive-reading-card,
  #infrastructure .immersive-reading-bg,
  #infrastructure .immersive-reading-veil{
    transition:none !important;
  }
  #research .immersive-reading-bg,
  #infrastructure .immersive-reading-bg{
    transform:none !important;
  }
}

/* ==========================================================================
   20260728 · Mobile seamless-loop compositor guard
   JavaScript advances by fractional pixels and carries the remainder into the
   next identical sequence. Disabling the CSS keyframe only after the driver is
   ready removes the visible Jula→Spanish and LinkedIn→ORCID reset frames.
   ========================================================================== */
#home .languages-col .language-list.is-js-continuous-loop,
#home .home-profiles-row.home-profiles-row--marquee.is-js-continuous-loop{
  animation:none !important;
  animation-name:none !important;
}

/* Final mobile-language guard. Movement is driven by JavaScript; this rule
   only guarantees that the older Home frame and its pseudo-lines cannot
   reappear on the mobile track. Wider layouts are untouched. */
@media (max-width:700px){
  #home .languages-col .language-list,
  #home .languages-col .language-list.language-list--marquee{
    border:0 !important;
    border-left:0 !important;
    border-radius:0 !important;
    background:transparent !important;
    box-shadow:none !important;
    animation:none !important;
  }
  #home .languages-col .language-list::before,
  #home .languages-col .language-list::after,
  #home .languages-col .language-list.language-list--marquee::before,
  #home .languages-col .language-list.language-list--marquee::after{
    content:none !important;
    display:none !important;
  }
  #home .languages-col .language-chip{
    background:transparent !important;
    border:0 !important;
    border-radius:0 !important;
    box-shadow:none !important;
  }
}

/* v34 · Forced infinite mobile-language movement.
   One measured sequence is followed by an identical sequence, so the final
   frame and restart frame are visually identical. */
@keyframes forced-mobile-language-loop{
  from{transform:translate3d(0,0,0);}
  to{transform:translate3d(var(--forced-language-loop-distance,-720px),0,0);}
}
@media (max-width:700px){
  #home .languages-col .language-list.language-list--forced-loop{
    animation:forced-mobile-language-loop 28s linear infinite both !important;
    animation-play-state:running !important;
    will-change:transform !important;
  }
}
@media (max-width:700px) and (prefers-reduced-motion:reduce){
  #home .languages-col .language-list.language-list--forced-loop{
    animation-duration:34s !important;
    animation-iteration-count:infinite !important;
  }
}

/* ==========================================================================
   v36 · Infinite expertise flow on every screen size
   The label remains fixed while one complete expertise enters from the right,
   pauses, and disappears through the left edge before the next one begins.
   ========================================================================== */
#home .hv3-typewriter{
  display:flex !important;
  flex-wrap:nowrap !important;
  align-items:center !important;
  width:100%;
  min-width:0;
  min-height:1.75em !important;
  gap:.62rem !important;
  overflow:hidden !important;
  white-space:nowrap;
}
#home .hv3-type-prefix{
  position:relative;
  z-index:2;
  display:inline-flex !important;
  flex:0 0 auto;
  min-width:0;
  margin:0 !important;
  white-space:nowrap;
}
#home .hv3-type-window{
  position:relative;
  display:block;
  flex:1 1 auto;
  min-width:0;
  height:1.5em;
  margin-inline-start:3px;
  overflow:hidden;
  -webkit-mask-image:none;
  mask-image:none;
}
#home .hv3-type-phrase{
  position:absolute !important;
  inset-inline-start:0;
  top:50%;
  display:block !important;
  width:max-content;
  max-width:none;
  margin:0 !important;
  color:#125e88;
  font-weight:700;
  letter-spacing:.005em;
  line-height:1.3;
  white-space:nowrap;
  opacity:0;
  transform:translate3d(var(--expertise-start-x,100vw),-50%,0);
  will-change:transform,opacity;
}
#home .hv3-type-phrase.is-entering{
  animation:hero-expertise-enter .76s cubic-bezier(.22,.61,.36,1) both !important;
}
#home .hv3-type-phrase.is-holding{
  animation:none !important;
  opacity:1;
  transform:translate3d(0,-50%,0);
}
#home .hv3-type-phrase.is-exiting{
  animation:hero-expertise-exit .98s cubic-bezier(.4,0,.72,.45) both !important;
}
@keyframes hero-expertise-enter{
  from{
    opacity:0;
    transform:translate3d(var(--expertise-start-x,100vw),-50%,0);
  }
  16%{opacity:1;}
  to{
    opacity:1;
    transform:translate3d(0,-50%,0);
  }
}
@keyframes hero-expertise-exit{
  from{
    opacity:1;
    transform:translate3d(0,-50%,0);
  }
  78%{opacity:1;}
  to{
    opacity:0;
    transform:translate3d(calc(-100% - 18px),-50%,0);
  }
}
@media (max-width:600px){
  #home .hv3-typewriter{
    min-height:1.4em !important;
    gap:.44rem !important;
  }
  #home .hv3-type-window{
    height:1.4em;
  }
}
@media (prefers-reduced-motion:reduce){
  #home .hv3-type-phrase.is-entering,
  #home .hv3-type-phrase.is-exiting{
    animation:none !important;
  }
}

/* ==========================================================================
   v38 · Infrastructure software text and seamless infinite circuit
   The former outer frame is removed. Original links remain accessible while
   cloned sequences create a continuous right-to-left movement on every screen.
   ========================================================================== */
#infrastructure #software + .tools{
  padding:3px 0 !important;
  border:0 !important;
  border-left:0 !important;
  border-radius:0 !important;
  background:transparent !important;
  background-color:transparent !important;
  background-image:none !important;
  box-shadow:none !important;
}
#infrastructure #software + .tools::before,
#infrastructure #software + .tools::after{
  content:none !important;
  display:none !important;
}
#infrastructure .software-marquee{
  display:block;
  width:100%;
  max-width:100%;
  min-width:0;
  margin:4px 0 2px;
  padding:10px 0 14px;
  overflow:hidden;
  border:0;
  border-radius:0;
  background:transparent;
  box-shadow:none;
  -webkit-mask-image:linear-gradient(90deg,transparent 0,#000 22px,#000 calc(100% - 22px),transparent 100%);
  mask-image:linear-gradient(90deg,transparent 0,#000 22px,#000 calc(100% - 22px),transparent 100%);
}
#infrastructure .tools.software-marquee-track{
  display:flex !important;
  flex-direction:row !important;
  flex-wrap:nowrap !important;
  align-items:center !important;
  width:max-content !important;
  max-width:none !important;
  gap:16px !important;
  margin:0 !important;
  padding:3px 0 !important;
  overflow:visible !important;
  border:0 !important;
  border-left:0 !important;
  border-radius:0 !important;
  background:transparent !important;
  background-color:transparent !important;
  background-image:none !important;
  box-shadow:none !important;
  animation:none !important;
  will-change:transform;
  transform-style:preserve-3d;
  backface-visibility:hidden;
}
#infrastructure .tools.software-marquee-track::before,
#infrastructure .tools.software-marquee-track::after{
  content:none !important;
  display:none !important;
}
#infrastructure .software-marquee .tool-chip.software-item{
  display:inline-flex !important;
  flex:0 0 auto !important;
  align-items:center;
  gap:0;
  min-height:40px;
  padding:7px 15px;
  border:1px solid rgba(31,92,140,.25) !important;
  border-radius:999px !important;
  background:rgba(255,255,255,.88) !important;
  color:#17324d !important;
  box-shadow:0 2px 8px rgba(19,50,77,.07) !important;
  font:650 12.5px/1.2 var(--font-interface,"Roboto","Helvetica Neue",Arial,sans-serif);
  letter-spacing:.005em;
  text-decoration:none;
  white-space:nowrap !important;
  transition:border-color .18s ease,box-shadow .18s ease,color .18s ease !important;
}
#infrastructure .software-marquee .tool-chip.software-item:hover,
#infrastructure .software-marquee .tool-chip.software-item:focus-visible{
  border-color:#1f5c8c !important;
  background:#fff !important;
  color:#1f5c8c !important;
  box-shadow:0 4px 12px rgba(31,92,140,.14) !important;
}
#infrastructure .software-name{
  display:inline-block;
  white-space:nowrap;
}
#infrastructure .software-item--clone{
  pointer-events:none;
}
@media (max-width:600px){
  #infrastructure .software-marquee{
    padding:8px 0 12px;
    -webkit-mask-image:linear-gradient(90deg,transparent 0,#000 15px,#000 calc(100% - 15px),transparent 100%);
    mask-image:linear-gradient(90deg,transparent 0,#000 15px,#000 calc(100% - 15px),transparent 100%);
  }
  #infrastructure .tools.software-marquee-track{
    gap:12px !important;
  }
  #infrastructure .software-marquee .tool-chip.software-item{
    min-height:38px;
    padding:6px 13px;
    gap:0;
    font-size:12px;
  }
}

/* ==========================================================================
   v39 · Home biography and current-research visual reveal
   Biography uses the existing academic-recognition photograph. Current
   research uses the site's white technical line pattern over a dark scientific
   gradient. Both preserve the expandable content and accessible controls.
   ========================================================================== */
#home .bio-research-block .home-expandable-card.home-card-visual{
  position:relative;
  isolation:isolate;
  overflow:hidden;
  transition:
    transform .34s cubic-bezier(.2,.75,.25,1),
    box-shadow .34s ease,
    border-color .34s ease;
}
#home .home-card-visual > .home-card-visual-layer,
#home .home-card-visual > .home-card-visual-veil{
  position:absolute;
  inset:0;
  display:block;
  pointer-events:none;
  opacity:0;
  transition:
    opacity .42s ease,
    transform .82s cubic-bezier(.2,.75,.25,1);
}
#home .home-card-visual > .home-card-visual-layer{
  z-index:0;
  background-image:var(--home-card-image);
  transform:scale(1);
}
#home .home-card-visual > .home-card-visual-veil{
  z-index:1;
}
#home .home-card-visual > :not(.home-card-visual-layer):not(.home-card-visual-veil){
  position:relative;
  z-index:3;
}
#home .bio-research-block .home-expandable-card.home-card-visual::before,
#home .bio-research-block .home-expandable-card.home-card-visual::after{
  z-index:4;
}

/* Biography: the right-weighted crop keeps the author and award exchange
   visible in both the collapsed and expanded states. */
#home .home-card-visual--biography > .home-card-visual-layer{
  background-position:74% 38%;
  background-repeat:no-repeat;
  background-size:cover;
  filter:saturate(.88) contrast(1.04);
}
#home .home-card-visual--biography > .home-card-visual-veil{
  background:
    linear-gradient(105deg,
      rgba(5,20,31,.965) 0%,
      rgba(9,37,50,.91) 58%,
      rgba(13,61,64,.82) 100%);
}

/* Current research: the supplied scientific keyword network is centered on
   its biomass hub and remains legible behind the high-contrast text layer. */
#home .home-card-visual--research > .home-card-visual-layer{
  background-color:#092735;
  background-image:var(--home-card-image);
  background-position:center 48%;
  background-repeat:no-repeat;
  background-size:cover;
  filter:saturate(1.12) contrast(1.04) brightness(.92);
}
#home .home-card-visual--research > .home-card-visual-veil{
  background:
    linear-gradient(105deg,
      rgba(4,18,27,.86) 0%,
      rgba(5,35,47,.79) 58%,
      rgba(8,67,66,.72) 100%);
}

/* Mouse hover and keyboard focus share the same reveal. The card itself
   performs the small zoom; text does not reflow or change size independently. */
#home .home-card-visual:is(:hover,:focus-within){
  transform:translateY(-3px) scale(1.012);
  border-left-color:rgba(196,231,247,.9) !important;
  border-right-color:rgba(196,231,247,.9) !important;
  box-shadow:0 18px 40px rgba(8,29,42,.23) !important;
}
#home .home-card-visual:is(:hover,:focus-within) > .home-card-visual-layer,
#home .home-card-visual:is(:hover,:focus-within) > .home-card-visual-veil{
  opacity:1;
}
#home .home-card-visual:is(:hover,:focus-within) > .home-card-visual-layer{
  transform:scale(1.045);
}
#home .home-card-visual:is(:hover,:focus-within) .biography-copy p{
  color:#fff !important;
  text-shadow:0 1px 2px rgba(0,0,0,.22);
}
#home .home-card-visual:is(:hover,:focus-within) .bio-inst-link{
  color:#c7efff !important;
  text-decoration-color:rgba(199,239,255,.72) !important;
}
#home .home-card-visual:is(:hover,:focus-within) .home-toggle{
  color:#fff !important;
  text-shadow:0 1px 2px rgba(0,0,0,.22);
}
#home .bio-research-block .home-expandable-card.home-card-visual:is(:hover,:focus-within)::before,
#home .bio-research-block .home-expandable-card.home-card-visual:is(:hover,:focus-within)::after{
  background:
    linear-gradient(90deg,
      rgba(255,255,255,.84) 0%,
      rgba(218,239,247,.64) 16%,
      rgba(218,239,247,.22) 64%,
      rgba(218,239,247,0) 100%) left/50% 100% no-repeat,
    linear-gradient(270deg,
      rgba(255,255,255,.84) 0%,
      rgba(218,239,247,.64) 16%,
      rgba(218,239,247,.22) 64%,
      rgba(218,239,247,0) 100%) right/50% 100% no-repeat !important;
}

/* Touch screens receive a faint permanent visual cue with the normal dark
   typography. Focusing an existing control reveals the full high-contrast
   composition, so no extra tap-only behavior is introduced. */
@media (hover:none), (pointer:coarse){
  #home .home-card-visual:not(:focus-within) > .home-card-visual-layer{
    opacity:.075;
    transform:none;
  }
  #home .home-card-visual--research:not(:focus-within) > .home-card-visual-layer{
    opacity:.11;
  }
  #home .home-card-visual:not(:focus-within) > .home-card-visual-veil{
    opacity:0;
  }
}
@media (max-width:700px){
  #home .home-card-visual--biography > .home-card-visual-layer{
    background-position:76% 38%;
  }
  #home .home-card-visual--research > .home-card-visual-layer{
    background-position:center;
    background-size:cover;
  }
}
@media (prefers-reduced-motion:reduce){
  #home .bio-research-block .home-expandable-card.home-card-visual,
  #home .home-card-visual > .home-card-visual-layer,
  #home .home-card-visual > .home-card-visual-veil{
    transition:none !important;
  }
  #home .home-card-visual:is(:hover,:focus-within),
  #home .home-card-visual:is(:hover,:focus-within) > .home-card-visual-layer{
    transform:none !important;
  }
}

/* ==========================================================================
   v53 · Phone-only: Home Biography / Current research decorative background
   --------------------------------------------------------------------------
   Scope: Home page only, phone viewports only.
   The two decorative layers behind the Biography and Current research cards
   (.home-card-visual-layer = the photograph / keyword-network image,
   .home-card-visual-veil = its dark gradient veil) are switched off on phones.
   Everything else is untouched: the sections, their headings, text, links,
   "Show more" controls and the card frame all remain exactly as before, on the
   normal page background.

   The media query matches phones in portrait (<=700px) and phones in landscape
   (short viewport + coarse pointer). Tablets are excluded on purpose: an iPad
   is 768px wide in portrait and 768px tall in landscape, so neither condition
   can match. Desktop and laptop are unaffected.
   ========================================================================== */
@media (max-width:700px),
       (max-height:500px) and (orientation:landscape) and (pointer:coarse){
  #home .bio-research-block .home-expandable-card.home-card-visual > .home-card-visual-layer,
  #home .bio-research-block .home-expandable-card.home-card-visual > .home-card-visual-veil{
    display:none !important;
  }

  /* --------------------------------------------------------------------
     Text colour on phones.

     The desktop design reverses the typography to white over the dark veil
     while the card is hovered or holds focus. With the veil gone on phones
     that reversal would put white text on the light page background. A touch
     screen reaches those states easily and unpredictably: tapping a paragraph
     leaves :hover applied on iOS and Android until another element is tapped,
     tapping "Show more" applies :focus-within, and :active fires on every
     touch. Overriding one state at a time therefore always left a path to
     unreadable text.

     These declarations are unconditional instead: inside the two Home cards,
     on phones, the text keeps the document's normal near-black body colour
     (--ink-soft, #2A333C) and the links and controls keep the site green in
     EVERY state — rest, hover, focus, focus-visible, focus-within, active and
     touch. -webkit-text-fill-color is reset alongside colour because it wins
     over colour on WebKit when both are present. Nothing else is touched:
     no font, size, weight, spacing, layout or desktop behaviour changes.
     -------------------------------------------------------------------- */
  /* #1D2935 is the exact body colour of .section-intro-text in the Research
     Profile block these two sections now mirror on phones. */
  #home .bio-research-block .biography-copy p,
  #home .bio-research-block .home-expandable-card.home-card-visual .biography-copy p,
  #home .bio-research-block .home-expandable-card.home-card-visual:is(:hover,:focus,:focus-visible,:focus-within,:active) .biography-copy p{
    color:#1D2935 !important;
    -webkit-text-fill-color:#1D2935 !important;
    text-shadow:none !important;
  }
  #home .bio-research-block .home-expandable-card.home-card-visual :is(.bio-inst-link,.home-toggle),
  #home .bio-research-block .home-expandable-card.home-card-visual:is(:hover,:focus,:focus-visible,:focus-within,:active) :is(.bio-inst-link,.home-toggle){
    color:var(--ds-green,#1F5C39) !important;
    -webkit-text-fill-color:var(--ds-green,#1F5C39) !important;
    text-decoration-color:currentColor !important;
    text-shadow:none !important;
  }
  #home .bio-research-block .home-expandable-card.home-card-visual :is(.bio-inst-link,.home-toggle):is(:hover,:active,:focus-visible){
    color:var(--ds-green-dark,#17492D) !important;
    -webkit-text-fill-color:var(--ds-green-dark,#17492D) !important;
  }
  /* Nothing inside these two cards may carry a text shadow on any state. */
  #home .bio-research-block .home-expandable-card.home-card-visual,
  #home .bio-research-block .home-expandable-card.home-card-visual *,
  #home .bio-research-block .home-expandable-card.home-card-visual:is(:hover,:focus,:focus-visible,:focus-within,:active),
  #home .bio-research-block .home-expandable-card.home-card-visual:is(:hover,:focus,:focus-visible,:focus-within,:active) *{
    text-shadow:none !important;
  }
}

/* ==========================================================================
   v55 · Phone only — Biography and Current research adopt the resting
   appearance of the Research Profile introduction block.
   --------------------------------------------------------------------------
   Reference block: #research .intro-band .intro-band-inner, containing
   h3.section-intro-title and p.section-intro-text. At rest — which is the only
   state a phone ever shows, since its photographic layer appears on desktop
   hover — that block is a transparent card with a 16px radius, a heading in
   navy over a 2px blue rule, and dark body text.

   The values below are copied from that block, not re-invented:
     · card      transparent, no border, radius 16px, padding 18px 22px
                 (.intro-band-inner at <=600px)
     · heading   .section-intro-title  — the transparent/navy/blue-rule
                 treatment already reaches .title-box globally, so only the
                 type scale, box model and alignment need to be matched
     · paragraph .section-intro-text   — clamp(15.5px,1.65vw,18px)/1.6, #1D2935

   Only presentation is affected: no text, markup, heading level, order,
   expand/collapse behaviour or control is changed, and every declaration sits
   inside the phone media query, so desktop, laptop and tablet are untouched.
   ========================================================================== */
@media (max-width:700px),
       (max-height:500px) and (orientation:landscape) and (pointer:coarse){

  /* Card shell: drop the blue side rails and the top/bottom hairlines so the
     block reads as the same open, transparent panel as the Research intro. */
  #home .bio-research-block .home-expandable-card{
    border:0 !important;
    border-radius:16px !important;
    background:transparent !important;
    box-shadow:none !important;
    padding:18px 22px !important;
    overflow:visible !important;
  }
  #home .bio-research-block .home-expandable-card::before,
  #home .bio-research-block .home-expandable-card::after{
    content:none !important;
    display:none !important;
  }
  /* The reveal transform belongs to the photographic treatment that no longer
     exists here; without it the block would lift on every tap for no reason. */
  #home .bio-research-block .home-expandable-card.home-card-visual,
  #home .bio-research-block .home-expandable-card.home-card-visual:is(:hover,:focus,:focus-visible,:focus-within,:active){
    transform:none !important;
    box-shadow:none !important;
    border:0 !important;
  }

  /* Heading — .section-intro-title. */
  #home .bio-research-block .home-col > .title-box.home-section-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;
  }

  /* Body copy — .section-intro-text. */
  #home .bio-research-block .biography-copy p{
    width:100% !important;
    max-width:none !important;
    margin:0 0 14px !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;
    text-align:left !important;
  }
  #home .bio-research-block .biography-copy p:last-child{
    margin-bottom:0 !important;
  }
}

/* ==========================================================================
   v55 · Contact — Address block and its map preview.
   The address list reuses .contact-list, so the icon, spacing and link
   behaviour already match the Academic profile and Affiliation lists above it.
   Only the preview needs its own rules.
   ========================================================================== */
#contact .contact-map-preview{
  display:block;
  width:min(320px,100%);
  margin:12px 0 0;
  border:1px solid var(--ds-blue-border,rgba(31,92,140,.28));
  border-radius:12px;
  overflow:hidden;
  background:#EEF1EC;
  text-decoration:none;
  transition:box-shadow .28s ease,border-color .28s ease,transform .28s ease;
}
#contact .contact-map-preview img{
  display:block;
  width:100%;
  height:auto;
}
#contact .contact-map-preview .contact-map-preview-label{
  display:block;
  padding:9px 12px;
  border-top:1px solid rgba(31,92,140,.16);
  background:#fff;
  color:var(--ds-blue,#1F5C8C);
  font:600 13px/1.3 "Roboto","Helvetica Neue",Arial,sans-serif;
}
@media (hover:hover) and (pointer:fine){
  #contact .contact-map-preview:hover{
    transform:translateY(-2px);
    border-color:var(--ds-blue,#1F5C8C);
    box-shadow:0 8px 22px rgba(19,50,77,.12);
  }
  #contact .contact-map-preview:hover .contact-map-preview-label{
    text-decoration:underline;
    text-underline-offset:3px;
  }
}
#contact .contact-map-preview:focus-visible{
  outline:3px solid rgba(31,92,140,.34);
  outline-offset:3px;
}
@media (prefers-reduced-motion:reduce){
  #contact .contact-map-preview{transition:none;}
  #contact .contact-map-preview:hover{transform:none;}
}

/* ==========================================================================
   v55 · Contact form — one identical white field background.
   --------------------------------------------------------------------------
   The stylesheet already declares background:#fff for every field, but Name
   and Email carry autocomplete="name" and autocomplete="email", so once the
   browser fills or offers to fill them it paints its own autofill background
   (pale yellow in Chrome, pale blue in Edge). The Message textarea is never
   autofilled and stayed white, which is the inconsistency between the three
   fields.

   An author background cannot override that layer; the documented technique is
   an inset box-shadow large enough to cover the field, with the text colour
   pinned through -webkit-text-fill-color. The very long background-color
   transition is the standard way to stop the engine repainting its own colour
   after the first frame. The focus ring is restored explicitly in the focus
   rule, because it is itself a box-shadow and would otherwise be replaced.
   ========================================================================== */
#contact .contact-form input,
#contact .contact-form textarea{
  background-color:#fff;
  -webkit-appearance:none;
  appearance:none;
}
#contact .contact-form input:-webkit-autofill,
#contact .contact-form input:-webkit-autofill:hover,
#contact .contact-form input:-webkit-autofill:active,
#contact .contact-form textarea:-webkit-autofill,
#contact .contact-form textarea:-webkit-autofill:hover,
#contact .contact-form textarea:-webkit-autofill:active{
  -webkit-box-shadow:0 0 0 100px #fff inset !important;
  box-shadow:0 0 0 100px #fff inset !important;
  -webkit-text-fill-color:var(--ds-ink,#2A333C) !important;
  caret-color:var(--ds-ink,#2A333C);
  transition:background-color 100000s ease-in-out 0s;
}
#contact .contact-form input:-webkit-autofill:focus,
#contact .contact-form textarea:-webkit-autofill:focus{
  -webkit-box-shadow:0 0 0 100px #fff inset,0 0 0 3px rgba(31,92,140,.14) !important;
  box-shadow:0 0 0 100px #fff inset,0 0 0 3px rgba(31,92,140,.14) !important;
  -webkit-text-fill-color:var(--ds-ink,#2A333C) !important;
}
/* Firefox marks autofilled fields with its own state rather than a paint layer. */
#contact .contact-form input:autofill,
#contact .contact-form textarea:autofill{
  background-color:#fff;
  color:var(--ds-ink,#2A333C);
}

/* ========================================================================== 
   HOME REFINEMENT — review 2, 2026-08-10
   Scope: Home only. Keeps the original site architecture and original Home
   line geometry; changes below reflect only the validated Home corrections.
   ========================================================================== */

/* Original Home background/fade is intentionally left intact. The original
   geometric grey-line layer is retained, with slightly stronger visibility. */
#home::after{
  background-image:url("assets/media/hero-line-pattern-home-v2.png") !important;
  background-repeat:repeat !important;
  background-size:auto var(--home-pattern-size) !important;
  background-position:left var(--home-pattern-y) !important;
}

/* Affiliation: CIRAD + BioWooEB only, on one visual baseline. */
#home .hv3-affiliation{width:min(520px,100%);margin-top:20px;}
#home .hv3-affiliation-row{
  display:flex;align-items:center;justify-content:flex-start;
  gap:clamp(34px,5vw,66px);min-height:62px;
}
#home .hv3-affiliation-link{
  display:inline-flex;align-items:center;justify-content:center;min-width:0;
  text-decoration:none;background:transparent;border:0;box-shadow:none;
}
#home .hv3-affiliation-link img{display:block;width:auto;max-width:100%;object-fit:contain;}
#home .hv3-affiliation-link--cirad img{height:44px;}
#home .hv3-affiliation-link--biowooeb img{height:58px;}
#home .hv3-affiliation-link:focus-visible{
  outline:2px solid rgba(31,92,140,.42);outline-offset:5px;border-radius:5px;
}
#home .hv3-navlinks{display:flex;flex-wrap:wrap;align-items:center;gap:6px 20px;margin-top:11px;}
#home .hv3-navlink{
  position:relative;padding:3px 0 5px;color:#12324A !important;text-decoration:none !important;
  font:600 12.5px/1.35 var(--font-interface,"Roboto","Helvetica Neue",Arial,sans-serif);
  transition:color .18s ease;
}
#home .hv3-navlink::after{
  content:"";position:absolute;left:0;right:0;bottom:0;height:1.5px;background:#2F8F5B;
  transform:scaleX(0);transform-origin:left center;transition:transform .18s ease;
}
#home .hv3-navlink:hover,#home .hv3-navlink:focus-visible{color:#2F8F5B !important;outline:none;}
#home .hv3-navlink:hover::after,#home .hv3-navlink:focus-visible::after{transform:scaleX(1);}

/* Unified Home section heading scale. */
#home .title-box.home-section-title{font-size:23px !important;line-height:1.22 !important;font-weight:600 !important;}
#home :is(#biography-heading,#current-research-heading,#academic-qualifications-heading,#languages-heading){
  display:block !important;width:100% !important;max-width:none !important;box-sizing:border-box !important;
  margin:0 0 16px !important;padding:2px 0 10px !important;border:0 !important;
  border-bottom:2px solid var(--ds-blue,#1F5C8C) !important;border-radius:0 !important;
  background:transparent !important;color:var(--ds-navy,#132437) !important;box-shadow:none !important;
}

/* Biography + Current research: no visible frame at rest. Keep sufficient inner
   padding and clipping so the original photographic/dark reveal has clean edges.
   A clear frame appears only on mouse hover or keyboard focus. */
#home .bio-research-block .home-expandable-card,
#home .bio-research-block .home-expandable-card.home-card-visual{
  margin:0 !important;
  padding:14px 16px !important;
  border:1px solid transparent !important;
  border-left:4px solid transparent !important;
  border-radius:12px !important;
  background:transparent !important;
  box-shadow:none !important;
  overflow:hidden !important;
}
#home .bio-research-block .home-expandable-card::before,
#home .bio-research-block .home-expandable-card::after{
  content:none !important;display:none !important;
}
@media (hover:hover) and (pointer:fine){
  #home .bio-research-block .home-expandable-card.home-card-visual:is(:hover,:focus-within){
    border:1px solid rgba(201,226,235,.78) !important;
    border-left:4px solid rgba(196,231,247,.96) !important;
    box-shadow:0 18px 40px rgba(8,29,42,.23) !important;
    overflow:hidden !important;
  }
}


@media (max-width:700px){
  #home .title-box.home-section-title{font-size:21px !important;}
  #home .hv3-affiliation{margin-top:18px;}
  #home .hv3-affiliation-row{justify-content:center;gap:34px;min-height:58px;}
  #home .hv3-affiliation-link--cirad img{height:38px;}
  #home .hv3-affiliation-link--biowooeb img{height:52px;}
  #home .hv3-navlinks{justify-content:center;text-align:center;gap:8px 16px;}
}
@media (max-width:430px){
  #home .hv3-affiliation-row{gap:24px;}
  #home .hv3-affiliation-link--cirad img{height:34px;}
  #home .hv3-affiliation-link--biowooeb img{height:46px;}
  #home .hv3-navlinks{flex-direction:column;align-items:center;}
}

/* ========================================================================== 
   HOME REFINEMENT — review 3, 2026-08-10
   Scope: only the four corrections explicitly requested after review 2.
   ========================================================================== */

/* Remove the original grey Home field completely and use the agreed pale
   blue-green background. No grey gradient remains on Home. */
#home::before{
  background:#F2F7F5 !important;
}

/* Preserve the original geometric line motif, recoloured to the agreed
   #CFE3DF and made more discreet than review 2. */
#home::after{
  background-image:url("assets/media/hero-line-pattern-home-v3.png") !important;
}

/* Affiliation artwork: use clean high-resolution transparent assets and give
   both marks enough visual presence without adding text below them. */
#home .hv3-affiliation-row{
  gap:clamp(38px,5.5vw,74px) !important;
}
#home .hv3-affiliation-link--cirad img{
  height:58px !important;
  width:auto !important;
}
#home .hv3-affiliation-link--biowooeb img{
  height:68px !important;
  width:auto !important;
}

@media (max-width:700px){
  #home .hv3-affiliation-link--cirad img{height:50px !important;}
  #home .hv3-affiliation-link--biowooeb img{height:60px !important;}
}
@media (max-width:430px){
  #home .hv3-affiliation-link--cirad img{height:44px !important;}
  #home .hv3-affiliation-link--biowooeb img{height:54px !important;}
}

/* Clean anti-aliased institutional marks: their source artwork has a white
   matte; multiply makes that matte merge with the agreed Home background. */
#home .hv3-affiliation-link img{
  mix-blend-mode:multiply;
}


/* ==========================================================================
   HOME REFINEMENT — review 4, 2026-08-11
   Scope: only the background motif + affiliation logo corrections requested.
   ========================================================================== */

/* Home now uses the SAME technical line geometry as the Research intro,
   but on a substantially lighter neutral field and with softer line opacity.
   This restores the visible "technical panel" without returning to the old
   heavy grey Home treatment. */
#home::before{
  background:
    linear-gradient(to bottom,
      #E9ECEB 0,
      #E9ECEB calc(var(--home-hero-height) - 36px),
      rgba(233,236,235,.90) calc(var(--home-hero-height) + 6px),
      rgba(233,236,235,.64) calc(var(--home-hero-height) + 34px),
      rgba(233,236,235,.34) calc(var(--home-hero-height) + 74px),
      rgba(233,236,235,.13) calc(var(--home-hero-height) + 118px),
      #FAFBFA calc(var(--home-hero-height) + 160px),
      #FFFFFF 100%) !important;
}
#home::after{
  background-image:url("assets/media/hero-line-pattern-home-research-soft.png") !important;
  background-repeat:repeat !important;
  background-size:auto var(--home-pattern-size) !important;
  background-position:left var(--home-pattern-y) !important;
}

/* The two affiliation marks are genuinely transparent PNGs.
   Remove the blend-mode workaround from review 3 and reduce CIRAD slightly. */
#home .hv3-affiliation-link img{
  mix-blend-mode:normal !important;
  background:transparent !important;
  box-shadow:none !important;
}
#home .hv3-affiliation-link--cirad img{
  height:50px !important;
  width:auto !important;
}
#home .hv3-affiliation-link--biowooeb img{
  height:64px !important;
  width:auto !important;
}

@media (max-width:700px){
  #home .hv3-affiliation-link--cirad img{height:44px !important;}
  #home .hv3-affiliation-link--biowooeb img{height:57px !important;}
}
@media (max-width:430px){
  #home .hv3-affiliation-link--cirad img{height:40px !important;}
  #home .hv3-affiliation-link--biowooeb img{height:52px !important;}
}


/* ==========================================================================
   HOME REFINEMENT — review 5, 2026-08-11
   Scope: only the corrections validated after review 4.
   - One single Research-style technical line field over the ENTIRE Home.
   - No legacy/keyword-style Home pattern layered underneath it.
   - Shorter quick-link wording; transparent controls reveal colour on hover.
   ========================================================================== */

/* A single, continuous near-white surface from the hero through the end of
   Home.  This removes the former header-only fade and makes the Research-style
   line geometry readable throughout the complete Home page. */
#home::before{
  background:#F5F6F5 !important;
}

/* Use exactly the grey technical line geometry already used by Research.
   The source artwork itself is transparent; a moderate global opacity keeps
   the motif visible without competing with the scientific content. */
#home::after{
  background-image:url("assets/media/hero-line-pattern-gray.png") !important;
  background-repeat:repeat !important;
  background-size:auto var(--home-pattern-size) !important;
  background-position:left var(--home-pattern-y) !important;
  opacity:.58 !important;
}

/* Prevent the hero from painting a second legacy pattern over the unified
   Home field.  The pseudo-element above is now the only decorative layer. */
#home .hero-v3{
  background-color:transparent !important;
  background-image:none !important;
}
#home .home-content-section,
#home .home-block,
#home .updates,
#home > #home-bio-mount,
#home > #home-recognition-mount,
#home > #home-press-mount{
  background-color:transparent !important;
}

/* Quick navigation: no visible box at rest.  Each item reveals a restrained
   colour surface only on hover / keyboard focus, echoing the earlier visual
   language without making the hero heavy. */
#home .hv3-navlinks{
  gap:8px 10px !important;
}
#home .hv3-navlink{
  padding:7px 11px !important;
  border:1px solid transparent !important;
  border-radius:8px !important;
  background:transparent !important;
  color:#12324A !important;
  box-shadow:none !important;
  transition:background-color .18s ease,border-color .18s ease,color .18s ease,transform .18s ease !important;
}
#home .hv3-navlink::after{
  content:none !important;
  display:none !important;
}
@media (hover:hover) and (pointer:fine){
  #home .hv3-navlink:hover{
    transform:translateY(-1px) !important;
  }
  #home .hv3-navlink:nth-child(1):hover{
    background:#F4D27A !important;
    border-color:#E8C35E !important;
    color:#29323A !important;
  }
  #home .hv3-navlink:nth-child(2):hover{
    background:#D9EBDD !important;
    border-color:#BCD9C4 !important;
    color:#205C3B !important;
  }
  #home .hv3-navlink:nth-child(3):hover{
    background:#DCEAF4 !important;
    border-color:#BED5E5 !important;
    color:#1F5C8C !important;
  }
}
#home .hv3-navlink:nth-child(1):focus-visible{
  outline:2px solid rgba(232,195,94,.62) !important;
  outline-offset:2px !important;
  background:#F4D27A !important;
  color:#29323A !important;
}
#home .hv3-navlink:nth-child(2):focus-visible{
  outline:2px solid rgba(87,148,103,.42) !important;
  outline-offset:2px !important;
  background:#D9EBDD !important;
  color:#205C3B !important;
}
#home .hv3-navlink:nth-child(3):focus-visible{
  outline:2px solid rgba(31,92,140,.36) !important;
  outline-offset:2px !important;
  background:#DCEAF4 !important;
  color:#1F5C8C !important;
}

@media (max-width:700px){
  #home .hv3-navlinks{gap:6px 8px !important;}
  #home .hv3-navlink{padding:7px 10px !important;}
}

/* v8 — Home / Education: remove only the outer frame, keep content intact */
#home .academic-col .education-list{
  border-left:0 !important;
  border-radius:0 !important;
  padding-left:0 !important;
  padding-right:0 !important;
  background:transparent !important;
  box-shadow:none !important;
}
#home .academic-col .education-list::before,
#home .academic-col .education-list::after{
  content:none !important;
  display:none !important;
}

/* v12 — Home hierarchy refinement
   - Languages: remove only the outer frame so it matches open Education.
   - Education/Languages headings: shorter underline than Biography/Current research. */
#home .languages-col .language-list{
  border:0 !important;
  border-left:0 !important;
  border-radius:0 !important;
  background:transparent !important;
  box-shadow:none !important;
  padding-left:0 !important;
  padding-right:0 !important;
}
#home .languages-col .language-list::before,
#home .languages-col .language-list::after{
  content:none !important;
  display:none !important;
}

#home :is(#academic-qualifications-heading,#languages-heading){
  width:84% !important;
  max-width:84% !important;
}

@media (max-width:700px){
  #home :is(#academic-qualifications-heading,#languages-heading){
    width:92% !important;
    max-width:92% !important;
  }
}

/* v13 — Home: secondary hierarchy for Education + Languages.
   Short accent rule below the heading, rather than a column-wide underline. */
#home :is(#academic-qualifications-heading,#languages-heading){
  position:relative !important;
  display:block !important;
  width:fit-content !important;
  max-width:100% !important;
  margin:0 0 18px !important;
  padding:2px 0 10px !important;
  border:0 !important;
  border-bottom:0 !important;
  border-radius:0 !important;
  background:transparent !important;
  color:var(--ds-navy,#132437) !important;
  box-shadow:none !important;
}
#home :is(#academic-qualifications-heading,#languages-heading)::after{
  content:"" !important;
  display:block !important;
  position:absolute !important;
  left:0 !important;
  bottom:0 !important;
  width:68px !important;
  height:2px !important;
  border-radius:999px !important;
  background:var(--ds-blue,#1F5C8C) !important;
}

/* Languages: neutral, lightly translucent surfaces instead of blue fills.
   Keeps readability over the technical Home pattern without re-introducing a box. */
#home .languages-col .language-chip{
  background:rgba(255,255,255,.76) !important;
  border:1px solid rgba(200,213,219,.86) !important;
  color:var(--ds-navy,#132437) !important;
  box-shadow:0 2px 8px rgba(19,50,77,.045) !important;
}
@media (hover:hover) and (pointer:fine){
  #home .languages-col .language-chip:hover{
    background:rgba(255,255,255,.94) !important;
    border-color:rgba(31,92,140,.30) !important;
    box-shadow:0 4px 12px rgba(19,50,77,.075) !important;
  }
}
@media (max-width:700px){
  #home :is(#academic-qualifications-heading,#languages-heading)::after{
    width:58px !important;
  }
}

/* v14 — Education / Languages underline follows the full title width exactly */
#home :is(#academic-qualifications-heading,#languages-heading)::after{
  width:100% !important;
}
@media (max-width:700px){
  #home :is(#academic-qualifications-heading,#languages-heading)::after{
    width:100% !important;
  }
}

/* v17 — Home: Languages removed; Education uses the available width cleanly. */
#home .home-two-col.academic-lang-block,
#biography .home-two-col.academic-lang-block{
  grid-template-columns:minmax(0,1fr) !important;
}
#home .academic-lang-block .academic-col,
#biography .academic-lang-block .academic-col{
  width:100% !important;
  max-width:none !important;
}

/* ==========================================================================
   v18 · Research-only visual test inspired selectively by aesthetic v22.
   Scope: Research Profile introduction only. No type-scale or content changes.
   ========================================================================== */
#research .intro-band{
  position:relative !important;
  left:50% !important;
  width:100vw !important;
  margin-top:0 !important;
  margin-bottom:clamp(24px,3vw,34px) !important;
  transform:translateX(-50%) !important;
  border:0 !important;
  background:
    radial-gradient(circle at 84% 18%,rgba(53,166,214,.16),transparent 30%),
    linear-gradient(118deg,#071c2c 0%,#0d4160 100%) !important;
  color:#fff !important;
  box-shadow:none !important;
}
#research .intro-band .intro-band-inner,
#research .intro-band .intro-band-inner.section-intro--visual{
  width:min(calc(100% - 56px),1040px) !important;
  max-width:1040px !important;
  margin-inline:auto !important;
  padding:clamp(20px,2.6vw,28px) 0 !important;
  border:0 !important;
  border-radius:0 !important;
  background:transparent !important;
  box-shadow:none !important;
  transform:none !important;
  overflow:visible !important;
}
#research .intro-band .intro-band-inner::before,
#research .intro-band .intro-band-inner::after,
#research .intro-band .intro-band-inner.section-intro--visual::before,
#research .intro-band .intro-band-inner.section-intro--visual::after{
  content:none !important;
  display:none !important;
}
#research .intro-band .section-intro-title,
#research .intro-band .rs-title{
  margin:0 0 10px !important;
  padding:0 0 8px !important;
  border:0 !important;
  border-bottom:2px solid rgba(53,166,214,.92) !important;
  background:transparent !important;
  color:#fff !important;
  box-shadow:none !important;
  /* Keep the approved original size. */
  font-size:clamp(24px,3vw,34px) !important;
}
#research .intro-band .section-intro-text,
#research .intro-band .rs-intro p,
#research .intro-band p{
  margin:0 !important;
  color:rgba(255,255,255,.86) !important;
  -webkit-text-fill-color:rgba(255,255,255,.86) !important;
  text-shadow:none !important;
  /* Keep the approved original size and rhythm. */
  font-size:clamp(15.5px,1.65vw,18px) !important;
  line-height:1.6 !important;
}
@media (max-width:700px){
  #research .intro-band .intro-band-inner,
  #research .intro-band .intro-band-inner.section-intro--visual{
    width:min(calc(100% - 32px),1040px) !important;
    padding:18px 0 !important;
  }
}

/* ======================================================================
   v19 — Research editorial simplification requested after v18
   Scope only: principal Research headings, Scientific Fingerprint and the
   outer Selected Research Highlights frame. Internal scientific cards and
   figures remain untouched.
   ====================================================================== */

/* Shared principal Research heading scale = Home Biography / Current Research. */
#research .intro-band .rs-title,
#research .fingerprint-title,
#research #featured-research{
  font-family:var(--font-heading,"Roboto","Helvetica Neue",Arial,sans-serif) !important;
  font-size:clamp(24px,3vw,34px) !important;
  line-height:1.22 !important;
  font-weight:700 !important;
  letter-spacing:-.012em !important;
}

/* Research Profile keeps the approved compact navy band, but its heading uses
   the exact main-title hierarchy and a full-width continuous rule. */
#research .intro-band .rs-title{
  display:block !important;
  width:100% !important;
  max-width:none !important;
  box-sizing:border-box !important;
  padding:0 0 8px !important;
  border:0 !important;
  border-bottom:2px solid rgba(53,166,214,.92) !important;
  border-radius:0 !important;
  background:transparent !important;
  box-shadow:none !important;
  color:#fff !important;
}

/* Scientific Fingerprint: remove the outer/discipline card language entirely.
   The title is open and its underline spans the full content width. */
#research .research-fingerprint{
  border:0 !important;
  border-radius:0 !important;
  background:transparent !important;
  background-image:none !important;
  box-shadow:none !important;
  padding-left:0 !important;
  padding-right:0 !important;
}
#research .fingerprint-heading-row{
  display:block !important;
  width:100% !important;
  box-sizing:border-box !important;
  margin:0 0 18px !important;
  padding:0 0 8px !important;
  border:0 !important;
  border-bottom:2px solid var(--ds-blue,#1F5C8C) !important;
  background:transparent !important;
  box-shadow:none !important;
}
#research .fingerprint-title{
  display:block !important;
  width:100% !important;
  margin:0 !important;
  padding:0 !important;
  border:0 !important;
  background:transparent !important;
  box-shadow:none !important;
  color:var(--ds-navy,#132437) !important;
}
#research .fingerprint-title-badge{
  display:inline-flex !important;
  align-items:center !important;
  gap:10px !important;
  margin:0 !important;
  padding:0 !important;
  border:0 !important;
  border-radius:0 !important;
  background:transparent !important;
  box-shadow:none !important;
  color:inherit !important;
  font:inherit !important;
}
#research .fingerprint-title-text{
  color:inherit !important;
  font:inherit !important;
}

/* Chemical Engineering / Materials Science / Engineering are open content
   groups, not cards. */
#research .fingerprint-discipline{
  position:relative !important;
  isolation:auto !important;
  margin:0 !important;
  padding:0 !important;
  border:0 !important;
  border-left:0 !important;
  border-right:0 !important;
  border-radius:0 !important;
  background:transparent !important;
  background-image:none !important;
  box-shadow:none !important;
}
#research .fingerprint-discipline::before,
#research .fingerprint-discipline::after{
  content:none !important;
  display:none !important;
}
#research .fingerprint-disciplines{
  gap:clamp(22px,3.2vw,34px) !important;
}

/* Keyword chips keep their borders/rings and interactivity, but no white fill. */
#research .fingerprint-badge{
  background:transparent !important;
  box-shadow:none !important;
}

/* Selected research highlights: open the OUTER section only. Internal
   project-box cards/figures are intentionally preserved. */
#research #featured-research{
  display:block !important;
  width:100% !important;
  max-width:none !important;
  box-sizing:border-box !important;
  margin:18px 0 12px !important;
  padding:2px 0 8px !important;
  border:0 !important;
  border-bottom:2px solid var(--ds-blue,#1F5C8C) !important;
  border-radius:0 !important;
  background:transparent !important;
  box-shadow:none !important;
  color:var(--ds-navy,#132437) !important;
}
#area2 .featured-projects{
  position:relative !important;
  margin:4px 0 !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;
}
#area2 .featured-projects::before,
#area2 .featured-projects::after{
  content:none !important;
  display:none !important;
}

@media (max-width:700px){
  #research .fingerprint-discipline{
    padding-left:0 !important;
    padding-right:0 !important;
  }
}

/* ======================================================================
   v20 — Research precision pass
   Requested scope: Research Profile intro, 3D canvas surface and title scale.
   ====================================================================== */

/* Research Profile: remove any residual text-panel/card treatment. */
#research .intro-band .rs-intro,
#research .intro-band .rs-intro--compact,
#research .intro-band .rs-intro p,
#research .intro-band .section-intro-text{
  border:0 !important;
  border-radius:0 !important;
  background:transparent !important;
  background-image:none !important;
  box-shadow:none !important;
}
#research .intro-band .rs-intro,
#research .intro-band .rs-intro--compact{
  padding:0 !important;
}

/* Make the approved blue introduction band visibly more compact and move it
   slightly upward without changing its content or horizontal alignment. */
#research .intro-band{
  top:-6px !important;
  margin-bottom:clamp(18px,2.4vw,26px) !important;
}
#research .intro-band .intro-band-inner,
#research .intro-band .intro-band-inner.section-intro--visual{
  padding:12px 0 13px !important;
}

/* Exact Research heading hierarchy = Home Biography / Current Research. */
#research .intro-band .rs-title,
#research .network3d-heading h3,
#research .fingerprint-title{
  font-family:var(--font-heading,"Roboto","Helvetica Neue",Arial,sans-serif) !important;
  font-size:23px !important;
  line-height:1.22 !important;
  font-weight:600 !important;
  letter-spacing:-.012em !important;
  text-transform:none !important;
}

/* 3D title: same hierarchy and same continuous underline logic. */
#research .network3d-heading{
  width:100% !important;
  max-width:none !important;
  margin:0 0 18px !important;
  padding:0 0 8px !important;
  border:0 !important;
  border-bottom:2px solid var(--ds-blue,#1F5C8C) !important;
  background:transparent !important;
  box-shadow:none !important;
}
#research .network3d-heading h3{
  margin:0 !important;
  padding:0 !important;
  border:0 !important;
  background:transparent !important;
  color:var(--ds-navy,#132437) !important;
  box-shadow:none !important;
}

/* Real transparency behind the 3D nodes/circles.  Toolbar/control surfaces
   remain untouched; only the graph workspace loses its white/dark backing. */
#research .network3d-shell{
  background:transparent !important;
}
#research .network3d-workspace,
#research .network3d-stage,
#research #research-network-3d-canvas,
#research #research-network-3d-canvas canvas{
  background:transparent !important;
  background-image:none !important;
}

@media (max-width:700px){
  #research .intro-band .intro-band-inner,
  #research .intro-band .intro-band-inner.section-intro--visual{
    padding:11px 0 12px !important;
  }
  #research .intro-band .rs-title,
  #research .network3d-heading h3,
  #research .fingerprint-title{
    font-size:21px !important;
  }
}

/* ======================================================================
   v21 — Research precision correction
   Exact shared heading hierarchy + tighter Research Profile spacing.
   ====================================================================== */
#research .intro-band{
  top:0 !important;
  margin-top:-10px !important;
  margin-bottom:0 !important;
}
#research .intro-band .intro-band-inner,
#research .intro-band .intro-band-inner.section-intro--visual{
  padding:9px 0 8px !important;
}
#research .intro-band .rs-title{
  margin:0 0 6px !important;
  padding:0 0 7px !important;
}
#research .research-network-3d{
  margin-top:10px !important;
}

/* Exact typography reference = Home Biography / Current Research. */
#research .intro-band .rs-title,
#research .network3d-heading h3,
#research .fingerprint-title,
#research .fingerprint-title-text{
  font-family:var(--font-heading,"Roboto","Helvetica Neue",Arial,sans-serif) !important;
  font-size:23px !important;
  line-height:1.22 !important;
  font-weight:600 !important;
  letter-spacing:-.012em !important;
  text-transform:none !important;
}
@media (max-width:700px){
  #research .intro-band .rs-title,
  #research .network3d-heading h3,
  #research .fingerprint-title,
  #research .fingerprint-title-text{
    font-size:21px !important;
  }
  #research .intro-band .intro-band-inner,
  #research .intro-band .intro-band-inner.section-intro--visual{
    padding:8px 0 7px !important;
  }
}

/* v22 research adjustment — only tighten the approved Research Profile band. */
#research .intro-band{
  margin-top:-14px !important;
  margin-bottom:0 !important;
}
#research .intro-band .intro-band-inner,
#research .intro-band .intro-band-inner.section-intro--visual{
  padding:6px 0 6px !important;
}
#research .intro-band .rs-title{
  margin-bottom:4px !important;
  padding-bottom:6px !important;
}
#research .research-network-3d{
  margin-top:7px !important;
}
@media (max-width:700px){
  #research .intro-band{
    margin-top:-10px !important;
  }
  #research .intro-band .intro-band-inner,
  #research .intro-band .intro-band-inner.section-intro--visual{
    padding:6px 0 5px !important;
  }
}

/* ======================================================================
   v23 — Research hierarchy and density refinement
   - one typographic hierarchy for all principal Research headings
   - open supervision list with progressive disclosure
   - completed projects in one vertical column
   - only the lead research highlight visible initially
   ====================================================================== */

/* Exact principal-heading typography = Research Profile / 3D Map / Fingerprint. */
#research .intro-band .rs-title,
#research .network3d-heading h3,
#research .fingerprint-title,
#research .fingerprint-title-text,
#research .rs-valo-h,
#research .research-method-title,
#research #featured-research,
#projects #proj-ongoing,
#projects #proj-completed,
#projects #supervision{
  font-family:var(--font-heading,"Roboto","Helvetica Neue",Arial,sans-serif) !important;
  font-size:23px !important;
  line-height:1.22 !important;
  font-weight:600 !important;
  letter-spacing:-.012em !important;
  text-transform:none !important;
}
#research .rs-valo-h{
  color:var(--ds-navy,#132437) !important;
}

/* Completed projects: three full-width rows rather than three columns. */
#projects #proj-completed + .project-cards{
  display:grid !important;
  grid-template-columns:1fr !important;
  gap:14px !important;
  width:100% !important;
}
#projects #proj-completed + .project-cards .pcard{
  width:100% !important;
  box-sizing:border-box !important;
}

/* Supervision: no cards. One clean horizontal row per person. */
#projects .rs-suplist,
#projects #supervision-list{
  display:block !important;
  margin:8px 0 4px !important;
  padding:0 !important;
  border:0 !important;
  background:transparent !important;
  box-shadow:none !important;
}
#projects .rs-sup-row,
#projects .rs-sup-row.rs-sup-row--ongoing,
#projects .rs-sup-row.rs-sup-row--completed{
  display:block !important;
  min-width:0 !important;
  margin:0 !important;
  padding:13px 0 !important;
  border:0 !important;
  border-top:1px solid rgba(31,92,140,.22) !important;
  border-radius:0 !important;
  background:transparent !important;
  background-image:none !important;
  box-shadow:none !important;
}
#projects .rs-sup-row:first-child{
  border-top:0 !important;
  padding-top:2px !important;
}
#projects .rs-sup-name{
  margin:0 0 3px !important;
  font-weight:700 !important;
  color:var(--ds-navy,#132437) !important;
}
#projects .rs-sup-topic{margin:0 0 3px !important;}
#projects .rs-sup-meta{margin:0 !important;}

/* Progressive disclosure shared by supervision and research highlights. */
.research-collapsible-extra{
  display:none !important;
}
.research-collapsible-extra.is-revealed{
  display:block !important;
}
#area2 .project-box.research-collapsible-extra.is-revealed{
  display:block !important;
}
.research-reveal-toggle{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  margin:10px 0 18px;
  padding:5px 0;
  border:0;
  border-bottom:1px solid rgba(31,92,140,.42);
  border-radius:0;
  background:transparent;
  color:var(--ds-blue,#1F5C8C);
  font-family:var(--font-interface,"Roboto","Helvetica Neue",Arial,sans-serif);
  font-size:13.5px;
  line-height:1.2;
  font-weight:700;
  cursor:pointer;
}
.research-reveal-toggle:hover{
  color:var(--ds-green,#1F5C39);
  border-bottom-color:rgba(31,92,57,.55);
}
.research-reveal-toggle:focus-visible{
  outline:2px solid rgba(31,92,140,.35);
  outline-offset:3px;
}
#research-highlights-toggle{
  margin-top:14px;
}
#supervision-toggle{
  margin-top:7px;
}

@media(max-width:700px){
  #research .intro-band .rs-title,
  #research .network3d-heading h3,
  #research .fingerprint-title,
  #research .fingerprint-title-text,
  #research .rs-valo-h,
  #research .research-method-title,
  #research #featured-research,
  #projects #proj-ongoing,
  #projects #proj-completed,
  #projects #supervision{
    font-size:21px !important;
  }
}

/* ======================================================================
   v24 — Research spacing + completed-project open-list correction
   Scope intentionally limited to the requested Research elements.
   ====================================================================== */

/* Research Profile: move the whole band down enough to avoid top crowding,
   while reducing the blue band's vertical depth. */
#research .intro-band{
  top:0 !important;
  margin-top:6px !important;
  margin-bottom:0 !important;
}
#research .intro-band .intro-band-inner,
#research .intro-band .intro-band-inner.section-intro--visual{
  padding:5px 0 4px !important;
}
#research .intro-band .rs-title{
  margin-top:0 !important;
  margin-bottom:3px !important;
  padding-top:0 !important;
  padding-bottom:4px !important;
}

/* Give the 3D map a deliberate breathing space after Research Profile. */
#research .research-network-3d{
  margin-top:16px !important;
}

/* Completed projects: preserve content and single-column order but remove
   all card surfaces.  Each project becomes an open editorial row. */
#projects #proj-completed + .project-cards{
  display:block !important;
  width:100% !important;
  margin-top:8px !important;
}
#projects #proj-completed + .project-cards .pcard{
  display:block !important;
  width:100% !important;
  margin:0 !important;
  padding:16px 0 !important;
  border:0 !important;
  border-top:1px solid rgba(31,92,140,.20) !important;
  border-left:0 !important;
  border-radius:0 !important;
  background:transparent !important;
  background-image:none !important;
  box-shadow:none !important;
  transform:none !important;
}
#projects #proj-completed + .project-cards .pcard:first-child{
  border-top:0 !important;
  padding-top:4px !important;
}
#projects #proj-completed + .project-cards .pcard:hover,
#projects #proj-completed + .project-cards .pcard:focus,
#projects #proj-completed + .project-cards .pcard:focus-within{
  border-radius:0 !important;
  background:transparent !important;
  background-image:none !important;
  box-shadow:none !important;
  transform:none !important;
}

@media (max-width:700px){
  #research .intro-band{
    margin-top:5px !important;
  }
  #research .intro-band .intro-band-inner,
  #research .intro-band .intro-band-inner.section-intro--visual{
    padding:5px 0 4px !important;
  }
  #research .research-network-3d{
    margin-top:14px !important;
  }
}

/* ======================================================================
   v25 — Research top-field continuity + Infrastructure intro parity
   Scope: Research intro spacing and Infrastructure introduction only.
   ====================================================================== */

/* Research: remove the white visual gap without pulling the title upward.
   The full-bleed blue field itself occupies the breathing space; the content
   starts slightly lower inside that coloured field. */
#research .intro-band{
  top:0 !important;
  margin-top:0 !important;
  margin-bottom:0 !important;
  padding-top:10px !important;
  background:
    radial-gradient(circle at 84% 18%,rgba(53,166,214,.16),transparent 30%),
    linear-gradient(118deg,#071c2c 0%,#0d4160 100%) !important;
}
#research .intro-band .intro-band-inner,
#research .intro-band .intro-band-inner.section-intro--visual{
  padding:4px 0 6px !important;
}
#research .intro-band .rs-title{
  margin-top:0 !important;
  margin-bottom:4px !important;
  padding-top:0 !important;
  padding-bottom:6px !important;
}

/* Infrastructure: same entry system as Research Profile — same full-bleed
   navy field, same upper breathing room, same title typography, no intro card. */
#infrastructure .intro-band{
  position:relative !important;
  left:50% !important;
  width:100vw !important;
  margin-top:0 !important;
  margin-bottom:16px !important;
  padding-top:10px !important;
  transform:translateX(-50%) !important;
  border:0 !important;
  border-radius:0 !important;
  background:
    radial-gradient(circle at 84% 18%,rgba(53,166,214,.16),transparent 30%),
    linear-gradient(118deg,#071c2c 0%,#0d4160 100%) !important;
  color:#fff !important;
  box-shadow:none !important;
}
#infrastructure .intro-band .intro-band-inner,
#infrastructure .intro-band .intro-band-inner.section-intro--visual{
  width:min(calc(100% - 56px),1040px) !important;
  max-width:1040px !important;
  margin-inline:auto !important;
  padding:4px 0 6px !important;
  border:0 !important;
  border-radius:0 !important;
  background:transparent !important;
  background-image:none !important;
  box-shadow:none !important;
  transform:none !important;
  overflow:visible !important;
}
#infrastructure .intro-band .intro-band-inner::before,
#infrastructure .intro-band .intro-band-inner::after,
#infrastructure .intro-band .intro-band-inner.section-intro--visual::before,
#infrastructure .intro-band .intro-band-inner.section-intro--visual::after{
  content:none !important;
  display:none !important;
}
#infrastructure .intro-band .section-intro-title,
#infrastructure .intro-band .section-intro-title a{
  display:block !important;
  width:100% !important;
  margin:0 0 4px !important;
  padding:0 0 6px !important;
  border:0 !important;
  border-bottom:2px solid rgba(53,166,214,.92) !important;
  border-radius:0 !important;
  background:transparent !important;
  box-shadow:none !important;
  color:#fff !important;
  -webkit-text-fill-color:#fff !important;
  font-family:var(--font-heading,"Roboto","Helvetica Neue",Arial,sans-serif) !important;
  font-size:23px !important;
  line-height:1.22 !important;
  font-weight:600 !important;
  letter-spacing:-.012em !important;
  text-transform:none !important;
  text-decoration:none !important;
}
/* Avoid a duplicated underline from the linked title itself. */
#infrastructure .intro-band .section-intro-title{
  border-bottom:0 !important;
  padding-bottom:0 !important;
}
#infrastructure .intro-band .section-intro-text,
#infrastructure .intro-band .infrastructure-intro-copy{
  margin:0 !important;
  padding:0 !important;
  border:0 !important;
  border-radius:0 !important;
  background:transparent !important;
  background-image:none !important;
  box-shadow:none !important;
  color:rgba(255,255,255,.86) !important;
  -webkit-text-fill-color:rgba(255,255,255,.86) !important;
  text-shadow:none !important;
}
/* Keep the equipment action readable in the dark introduction without
   changing its function or wording. */
#infrastructure .intro-band .infra-overview-equipment-link,
#infrastructure .intro-band .equipment-explorer-open{
  color:#fff !important;
  -webkit-text-fill-color:#fff !important;
  border-color:rgba(255,255,255,.46) !important;
  background:rgba(255,255,255,.08) !important;
}

@media (max-width:700px){
  #research .intro-band,
  #infrastructure .intro-band{
    padding-top:8px !important;
  }
  #infrastructure .intro-band .intro-band-inner,
  #infrastructure .intro-band .intro-band-inner.section-intro--visual{
    width:min(calc(100% - 32px),1040px) !important;
    padding:4px 0 5px !important;
  }
  #infrastructure .intro-band .section-intro-title,
  #infrastructure .intro-band .section-intro-title a{
    font-size:21px !important;
  }
}

/* ======================================================================
   v26 — Unified title-to-content rhythm
   Reference: Home Biography / Current Research = 16px visual gap.
   Scope: principal Research headings + the matched Infrastructure intro.
   ====================================================================== */
:root{
  --ds-main-heading-content-gap:16px;
}

/* Research Profile: title rule -> intro text */
#research .intro-band .rs-title{
  margin-bottom:var(--ds-main-heading-content-gap) !important;
}
#research .intro-band .rs-intro,
#research .intro-band .rs-intro p,
#research .intro-band .section-intro-text{
  margin-top:0 !important;
}

/* Scientific Fingerprint: title rule -> toolbar/content */
#research .fingerprint-heading-row{
  margin-bottom:var(--ds-main-heading-content-gap) !important;
}
#research .fingerprint-toolbar{
  margin-top:0 !important;
}

/* Main biomass valorization routes: title rule -> diagram */
#research .rs-valo-h{
  margin-bottom:var(--ds-main-heading-content-gap) !important;
}
#research .valo-diagram{
  margin-top:0 !important;
}

/* Experimental + modeling approaches: heading -> explanatory content */
#research .research-method-title{
  margin-bottom:var(--ds-main-heading-content-gap) !important;
}
#research .research-method-title + .research-method-intro,
#research .research-method-title + p,
#research .research-method-intro{
  margin-top:0 !important;
}

/* Selected research highlights: heading -> first visible study */
#research #featured-research{
  margin-bottom:var(--ds-main-heading-content-gap) !important;
}
#area2 .featured-projects{
  margin-top:0 !important;
}

/* Projects + supervision: one identical title-to-content gap. */
#projects #proj-ongoing,
#projects #proj-completed,
#projects #supervision{
  margin-bottom:var(--ds-main-heading-content-gap) !important;
}
#projects #proj-ongoing + .rs-block-intro{
  margin-top:0 !important;
}
#projects #proj-completed + .project-cards{
  margin-top:0 !important;
}
#projects #supervision-list,
#projects .rs-suplist{
  margin-top:0 !important;
}

/* Infrastructure intro follows the same title-to-copy rhythm established
   in Research and Home, without altering the approved visual treatment. */
#infrastructure .intro-band .section-intro-title{
  margin-bottom:0 !important;
}
#infrastructure .intro-band .section-intro-title > .infra-heading-link,
#infrastructure .intro-band .section-intro-title > a{
  margin-bottom:var(--ds-main-heading-content-gap) !important;
}
#infrastructure .intro-band .section-intro-text,
#infrastructure .intro-band .infrastructure-intro-copy{
  margin-top:0 !important;
}

@media (max-width:700px){
  :root{
    --ds-main-heading-content-gap:16px;
  }
}

/* ======================================================================
   v27 — Infrastructure typography / pilot band / text-only section titles
   ====================================================================== */

/* Research and Infrastructure headings are deliberately text-only. */
#research .scientific-heading-icon,
#research .fingerprint-title-icon,
#research .rs-valo-icon,
#infrastructure .scientific-heading-icon{
  display:none !important;
}
#research .scientific-icon-heading,
#infrastructure .scientific-icon-heading{
  padding-left:0 !important;
}

/* Give GC–MS/MS and HPLC slightly stronger equipment-name hierarchy. */
#infrastructure #gas-volatile-analysis .equipment-heading h5,
#infrastructure #high-performance-liquid-chromatography .analytical-pair-title-row h5{
  font-size:20px !important;
  line-height:1.25 !important;
  font-weight:600 !important;
}
/* The HPLC name used to be forced onto one line above 1080px. There is enough
   room for the English wording, but not for the longer translations: in Spanish
   the heading measured 561px inside a 439px column and was cut off, because
   white-space:nowrap left it nowhere to break. It now wraps naturally, so the
   complete name is readable in every language, and text-wrap:balance splits it
   into two even lines instead of leaving one word alone on the second. Font
   size, weight, colour, alignment and card dimensions are unchanged. */
#infrastructure #high-performance-liquid-chromatography .analytical-pair-title-row h5,
#infrastructure #high-performance-liquid-chromatography .analytical-pair-title-row h5 a{
  white-space:normal;
  overflow-wrap:break-word;
  text-wrap:balance;
}

/* Pilot-scale introduction: replace the directional frame with one compact
   blue band, matching the visual hierarchy established elsewhere. */
#infrastructure .pilot-platform-intro{
  --frame-rgb:31,92,140;
  max-width:none !important;
  margin:0 0 20px !important;
  padding:11px 16px 12px !important;
  border:0 !important;
  border-left:0 !important;
  border-radius:10px !important;
  background:#1F5C8C !important;
  background-image:none !important;
  box-shadow:none !important;
}
#infrastructure .pilot-platform-intro::before,
#infrastructure .pilot-platform-intro::after{
  content:none !important;
  display:none !important;
}
#infrastructure .pilot-platform-intro h5{
  margin:0 0 5px !important;
  color:#FFFFFF !important;
  font-size:18px !important;
  line-height:1.3 !important;
  font-weight:600 !important;
}
#infrastructure .pilot-platform-intro p{
  margin:0 !important;
  color:rgba(255,255,255,.94) !important;
  font-size:15.5px !important;
  line-height:1.62 !important;
}

@media (max-width:700px){
  #infrastructure #gas-volatile-analysis .equipment-heading h5,
  #infrastructure #high-performance-liquid-chromatography .analytical-pair-title-row h5{
    font-size:19px !important;
  }
  #infrastructure .pilot-platform-intro{
    padding:10px 13px 11px !important;
  }
}

/* ======================================================================
   v28 — One approved introduction system across Research / Infrastructure /
   Publications.  No new blue is introduced: all bands reuse the exact
   Research Profile navy gradient.
   ====================================================================== */
:root{
  --ds-approved-intro-bg:
    radial-gradient(circle at 84% 18%,rgba(53,166,214,.16),transparent 30%),
    linear-gradient(118deg,#071c2c 0%,#0d4160 100%);
  --ds-approved-intro-bottom-space:12px;
}

/* Keep the already-approved Research colour as the single source of truth. */
#research .intro-band,
#infrastructure .intro-band,
#publications .intro-band{
  background:var(--ds-approved-intro-bg) !important;
  background-color:#071c2c !important;
  border:0 !important;
  border-radius:0 !important;
  box-shadow:none !important;
}

/* Infrastructure and Publications use the same full-bleed entry geometry as
   Research.  Content width and typography remain aligned to the same grid. */
#infrastructure .intro-band,
#publications .intro-band{
  position:relative !important;
  left:50% !important;
  width:100vw !important;
  margin-top:0 !important;
  margin-bottom:16px !important;
  padding-top:10px !important;
  transform:translateX(-50%) !important;
  color:#fff !important;
}
#research .intro-band .intro-band-inner,
#research .intro-band .intro-band-inner.section-intro--visual,
#infrastructure .intro-band .intro-band-inner,
#infrastructure .intro-band .intro-band-inner.section-intro--visual,
#publications .intro-band .intro-band-inner,
#publications .intro-band .intro-band-inner.section-intro--visual{
  width:min(calc(100% - 56px),1040px) !important;
  max-width:1040px !important;
  margin-inline:auto !important;
  padding-left:0 !important;
  padding-right:0 !important;
  padding-bottom:var(--ds-approved-intro-bottom-space) !important;
  border:0 !important;
  border-radius:0 !important;
  background:transparent !important;
  background-image:none !important;
  box-shadow:none !important;
  transform:none !important;
  overflow:visible !important;
}
/* Preserve the compact approved Research top rhythm; match the other two to it. */
#infrastructure .intro-band .intro-band-inner,
#infrastructure .intro-band .intro-band-inner.section-intro--visual,
#publications .intro-band .intro-band-inner,
#publications .intro-band .intro-band-inner.section-intro--visual{
  padding-top:4px !important;
}

/* Remove any legacy photographic/hover layer from these introductions. */
#research .intro-band .intro-band-inner::before,
#research .intro-band .intro-band-inner::after,
#infrastructure .intro-band .intro-band-inner::before,
#infrastructure .intro-band .intro-band-inner::after,
#publications .intro-band .intro-band-inner::before,
#publications .intro-band .intro-band-inner::after,
#research .intro-band .intro-band-inner.section-intro--visual::before,
#research .intro-band .intro-band-inner.section-intro--visual::after,
#infrastructure .intro-band .intro-band-inner.section-intro--visual::before,
#infrastructure .intro-band .intro-band-inner.section-intro--visual::after,
#publications .intro-band .intro-band-inner.section-intro--visual::before,
#publications .intro-band .intro-band-inner.section-intro--visual::after{
  content:none !important;
  display:none !important;
}

/* Exact same principal-title typography and underline language. */
#infrastructure .intro-band .section-intro-title,
#infrastructure .intro-band .section-intro-title a,
#publications .intro-band .section-intro-title{
  display:block !important;
  width:100% !important;
  margin:0 !important;
  padding:0 0 6px !important;
  border:0 !important;
  border-bottom:2px solid rgba(53,166,214,.92) !important;
  border-radius:0 !important;
  background:transparent !important;
  box-shadow:none !important;
  color:#fff !important;
  -webkit-text-fill-color:#fff !important;
  font-family:var(--font-heading,"Roboto","Helvetica Neue",Arial,sans-serif) !important;
  font-size:23px !important;
  line-height:1.22 !important;
  font-weight:600 !important;
  letter-spacing:-.012em !important;
  text-transform:none !important;
  text-decoration:none !important;
}
/* Infrastructure uses a linked h2: the underline belongs to the link only. */
#infrastructure .intro-band .section-intro-title{
  padding-bottom:0 !important;
  border-bottom:0 !important;
}
#infrastructure .intro-band .section-intro-title > a,
#publications .intro-band .section-intro-title{
  margin-bottom:var(--ds-main-heading-content-gap,16px) !important;
}
#infrastructure .intro-band .section-intro-text,
#infrastructure .intro-band .infrastructure-intro-copy,
#publications .intro-band .section-intro-text{
  margin:0 !important;
  padding:0 !important;
  border:0 !important;
  border-radius:0 !important;
  background:transparent !important;
  background-image:none !important;
  box-shadow:none !important;
  color:rgba(255,255,255,.86) !important;
  -webkit-text-fill-color:rgba(255,255,255,.86) !important;
  text-shadow:none !important;
}

/* Publications is text-only: remove the small paper icon completely. */
#publications .scientific-heading-icon{
  display:none !important;
}
#publications .scientific-icon-heading{
  padding-left:0 !important;
}

/* Pilot-scale band: same approved navy identity, not a separate flat blue. */
#infrastructure .pilot-platform-intro{
  background:var(--ds-approved-intro-bg) !important;
  background-color:#071c2c !important;
  background-image:var(--ds-approved-intro-bg) !important;
}

@media (max-width:700px){
  #infrastructure .intro-band,
  #publications .intro-band{
    padding-top:8px !important;
  }
  #research .intro-band .intro-band-inner,
  #research .intro-band .intro-band-inner.section-intro--visual,
  #infrastructure .intro-band .intro-band-inner,
  #infrastructure .intro-band .intro-band-inner.section-intro--visual,
  #publications .intro-band .intro-band-inner,
  #publications .intro-band .intro-band-inner.section-intro--visual{
    width:min(calc(100% - 32px),1040px) !important;
    padding-bottom:10px !important;
  }
  #infrastructure .intro-band .section-intro-title,
  #infrastructure .intro-band .section-intro-title a,
  #publications .intro-band .section-intro-title{
    font-size:21px !important;
  }
}


/* v29 — Equal blue tail-space after introductory copy.
   Research is the visual reference; Infrastructure and Publications match it. */
:root{ --ds-intro-blue-tail-space:24px; }
#research .intro-band .intro-band-inner,
#research .intro-band .intro-band-inner.section-intro--visual,
#infrastructure .intro-band .intro-band-inner,
#infrastructure .intro-band .intro-band-inner.section-intro--visual,
#publications .intro-band .intro-band-inner,
#publications .intro-band .intro-band-inner.section-intro--visual{
  padding-bottom:var(--ds-intro-blue-tail-space) !important;
}
@media (max-width:700px){
  #research .intro-band .intro-band-inner,
  #research .intro-band .intro-band-inner.section-intro--visual,
  #infrastructure .intro-band .intro-band-inner,
  #infrastructure .intro-band .intro-band-inner.section-intro--visual,
  #publications .intro-band .intro-band-inner,
  #publications .intro-band .intro-band-inner.section-intro--visual{
    padding-bottom:18px !important;
  }
}


/* ============================================================
   v31 · Home News — three-column editorial layout
   Reference: open institutional news grid; no cards/boxes.
   ============================================================ */
#home .updates{
  background:transparent !important;
}
#home .home-news-heading-row{
  display:flex !important;
  align-items:flex-end !important;
  justify-content:space-between !important;
  gap:18px !important;
  padding-bottom:10px !important;
  margin-bottom:22px !important;
  border-bottom:1px solid rgba(31,92,140,.20) !important;
}
#home .home-news-heading-row .home-section-title{
  margin:0 !important;
  padding-bottom:6px !important;
  border-bottom:3px solid #1F5C8C !important;
  width:auto !important;
}
#home .home-news-all{
  display:inline-flex !important;
  align-items:center !important;
  gap:7px !important;
  flex:0 0 auto !important;
  padding:0 0 6px !important;
  color:#1F5C8C !important;
  font-size:13px !important;
  font-weight:600 !important;
  text-decoration:none !important;
  background:transparent !important;
  border:0 !important;
}
#home .home-news-all:hover,
#home .home-news-all:focus-visible{
  color:#1F5C39 !important;
  text-decoration:underline !important;
  text-underline-offset:4px !important;
}
#home .updates .update-list{
  display:grid !important;
  grid-template-columns:repeat(3,minmax(0,1fr)) !important;
  gap:clamp(24px,3.2vw,38px) !important;
  margin:0 !important;
  padding:0 !important;
  border:0 !important;
  border-left:0 !important;
  border-radius:0 !important;
  background:transparent !important;
  box-shadow:none !important;
  list-style:none !important;
}
#home .updates .update-list::before,
#home .updates .update-list::after{content:none !important;display:none !important;}
#home .updates .update-list > li.home-news-card,
#home .updates .update-list > li.recent-article.home-news-card{
  display:flex !important;
  flex-direction:column !important;
  min-width:0 !important;
  margin:0 !important;
  padding:0 !important;
  border:0 !important;
  border-radius:0 !important;
  background:transparent !important;
  box-shadow:none !important;
}
#home .home-news-media{
  display:flex !important;
  align-items:center !important;
  justify-content:center !important;
  width:100% !important;
  aspect-ratio:1.45 / 1 !important;
  margin:0 0 16px !important;
  padding:10px !important;
  overflow:hidden !important;
  background:rgba(255,255,255,.22) !important;
  border:0 !important;
}
#home .home-news-media .journal-identity,
#home .home-news-media .recent-journal-identity{
  display:flex !important;
  align-items:center !important;
  justify-content:center !important;
  width:100% !important;
  height:100% !important;
  max-width:none !important;
  margin:0 !important;
  padding:0 !important;
  border:0 !important;
  border-radius:0 !important;
  background:transparent !important;
  box-shadow:none !important;
}
#home .home-news-media .journal-identity img,
#home .home-news-media .recent-journal-identity img{
  display:block !important;
  width:100% !important;
  height:100% !important;
  max-width:100% !important;
  max-height:100% !important;
  object-fit:contain !important;
}
#home .home-news-title{
  margin:0 0 10px !important;
  padding:0 !important;
  border:0 !important;
  background:transparent !important;
  color:#172A3A !important;
  font-size:15px !important;
  font-weight:700 !important;
  line-height:1.45 !important;
}
#home .home-news-title a{
  color:inherit !important;
  text-decoration:none !important;
}
#home .home-news-title a:hover,
#home .home-news-title a:focus-visible{
  color:#1F5C8C !important;
  text-decoration:underline !important;
  text-underline-offset:3px !important;
}
#home .home-news-date{
  margin:0 0 8px !important;
  color:#1F7A4E !important;
  font-size:12.5px !important;
  font-weight:600 !important;
  line-height:1.3 !important;
}
#home .home-news-excerpt{
  display:-webkit-box !important;
  -webkit-box-orient:vertical !important;
  -webkit-line-clamp:4 !important;
  overflow:hidden !important;
  margin:0 !important;
  padding:0 !important;
  color:#334C5E !important;
  font-size:12.8px !important;
  line-height:1.62 !important;
}
#home .home-news-card .pub-keywords,
#home .home-news-card .recent-project,
#home .home-news-card .publication-reference{display:none !important;}

@media(max-width:820px){
  #home .updates .update-list{
    grid-template-columns:repeat(2,minmax(0,1fr)) !important;
  }
}
@media(max-width:600px){
  #home .home-news-heading-row{
    align-items:center !important;
    margin-bottom:18px !important;
  }
  #home .home-news-all{font-size:12px !important;}
  #home .updates .update-list{
    grid-template-columns:1fr !important;
    gap:28px !important;
  }
  #home .updates .update-list > li.home-news-card,
  #home .updates .update-list > li.recent-article.home-news-card{
    display:flex !important;
    padding:0 !important;
  }
  #home .home-news-media{
    aspect-ratio:1.65 / 1 !important;
    margin-bottom:13px !important;
  }
  #home .home-news-title{font-size:14.5px !important;}
}

/* ==========================================================================
   PERFORMANCE PASS — 2026-08-12
   Visual output preserved; only affiliation marks are intentionally reduced
   slightly at the user's request.
   ========================================================================== */
#home .hv3-affiliation-link--cirad img{
  height:46px !important;
  width:auto !important;
}
#home .hv3-affiliation-link--biowooeb img{
  height:58px !important;
  width:auto !important;
}
@media (max-width:700px){
  #home .hv3-affiliation-link--cirad img{height:41px !important;}
  #home .hv3-affiliation-link--biowooeb img{height:52px !important;}
}
@media (max-width:430px){
  #home .hv3-affiliation-link--cirad img{height:37px !important;}
  #home .hv3-affiliation-link--biowooeb img{height:47px !important;}
}
/* Skip painting the deepest Home sections until they approach the viewport.
   Unsupported browsers simply ignore this optimization. */
@supports (content-visibility:auto){
  #home > #home-recognition-mount,
  #home > #home-press-mount{
    content-visibility:auto;
    contain-intrinsic-size:auto 900px;
  }
}

/* v33 — Collaboration opening aligned exactly with the approved intro system. */
#collaboration .intro-band{
  position:relative !important;
  left:50% !important;
  width:100vw !important;
  margin-top:0 !important;
  margin-bottom:16px !important;
  padding-top:10px !important;
  transform:translateX(-50%) !important;
  background:var(--ds-approved-intro-bg) !important;
  background-color:#071c2c !important;
  border:0 !important;
  border-radius:0 !important;
  box-shadow:none !important;
  color:#fff !important;
}
#collaboration .intro-band .intro-band-inner{
  width:min(calc(100% - 56px),1040px) !important;
  max-width:1040px !important;
  margin-inline:auto !important;
  padding:4px 0 var(--ds-intro-blue-tail-space,24px) !important;
  border:0 !important;
  border-radius:0 !important;
  background:transparent !important;
  background-image:none !important;
  box-shadow:none !important;
  transform:none !important;
  overflow:visible !important;
}
#collaboration .intro-band .intro-band-inner::before,
#collaboration .intro-band .intro-band-inner::after{
  content:none !important;
  display:none !important;
}
#collaboration .intro-band .collab-domain-heading{
  width:100% !important;
  max-width:none !important;
  margin:0 !important;
  padding:0 !important;
  border:0 !important;
  background:transparent !important;
  box-shadow:none !important;
}
#collaboration .intro-band .section-intro-title{
  display:block !important;
  width:100% !important;
  max-width:none !important;
  margin:0 0 var(--ds-main-heading-content-gap,16px) !important;
  padding:0 0 6px !important;
  border:0 !important;
  border-bottom:2px solid rgba(53,166,214,.92) !important;
  border-radius:0 !important;
  background:transparent !important;
  box-shadow:none !important;
  color:#fff !important;
  -webkit-text-fill-color:#fff !important;
  font-family:var(--font-heading,"Roboto","Helvetica Neue",Arial,sans-serif) !important;
  font-size:23px !important;
  line-height:1.22 !important;
  font-weight:600 !important;
  letter-spacing:-.012em !important;
  text-transform:none !important;
  text-align:left !important;
}
#collaboration .intro-band .section-intro-text{
  margin:0 !important;
  padding:0 !important;
  width:100% !important;
  max-width:none !important;
  border:0 !important;
  border-radius:0 !important;
  background:transparent !important;
  box-shadow:none !important;
  color:rgba(255,255,255,.86) !important;
  -webkit-text-fill-color:rgba(255,255,255,.86) !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;
  text-align:left !important;
}
#collaboration .scientific-heading-icon{display:none !important;}
#collaboration .scientific-icon-heading{padding-left:0 !important;}
@media(max-width:700px){
  #collaboration .intro-band{padding-top:8px !important;}
  #collaboration .intro-band .intro-band-inner{
    width:min(calc(100% - 32px),1040px) !important;
    padding-bottom:18px !important;
  }
  #collaboration .intro-band .section-intro-title{font-size:21px !important;}
}

/* v34 — Home Languages restored below Education.
   Desktop: one static horizontal row. Mobile: existing seamless language loop. */
#home .academic-lang-block{
  display:block !important;
}
#home .languages-col{
  width:100% !important;
  max-width:none !important;
  margin-top:clamp(24px,2.8vw,32px) !important;
}
#home #languages-heading{
  width:max-content !important;
  max-width:100% !important;
  margin-bottom:14px !important;
}
#home #languages-heading::after{
  width:100% !important;
}
@media (min-width:701px){
  #home .languages-col .language-list{
    display:flex !important;
    flex-direction:row !important;
    flex-wrap:nowrap !important;
    align-items:center !important;
    gap:10px !important;
    width:100% !important;
    max-width:100% !important;
    margin:0 !important;
    padding:0 !important;
    border:0 !important;
    border-left:0 !important;
    border-radius:0 !important;
    background:transparent !important;
    box-shadow:none !important;
    list-style:none !important;
    overflow:visible !important;
  }
  #home .languages-col .language-list::before,
  #home .languages-col .language-list::after{
    content:none !important;
    display:none !important;
  }
  #home .languages-col .language-chip{
    display:inline-flex !important;
    flex:0 0 auto !important;
    align-items:center !important;
    gap:8px !important;
    min-height:38px !important;
    padding:8px 12px !important;
    border:1px solid rgba(31,92,140,.18) !important;
    border-radius:999px !important;
    background:rgba(255,255,255,.42) !important;
    box-shadow:none !important;
    transform:none !important;
  }
}
@media (max-width:700px){
  #home .languages-col{
    margin-top:24px !important;
  }
  #home #languages-heading{
    margin-bottom:10px !important;
  }
}

/* v34 — Home Languages restored below Education.
   Desktop: one static horizontal row. Mobile: existing seamless language loop. */
#home .academic-lang-block{
  display:block !important;
}
#home .languages-col{
  width:100% !important;
  max-width:none !important;
  margin-top:clamp(24px,2.8vw,32px) !important;
}
#home #languages-heading{
  width:max-content !important;
  max-width:100% !important;
  margin-bottom:14px !important;
}
#home #languages-heading::after{
  width:100% !important;
}
@media (min-width:701px){
  #home .languages-col .language-list{
    display:flex !important;
    flex-direction:row !important;
    flex-wrap:nowrap !important;
    align-items:center !important;
    gap:10px !important;
    width:100% !important;
    max-width:100% !important;
    margin:0 !important;
    padding:0 !important;
    border:0 !important;
    border-left:0 !important;
    border-radius:0 !important;
    background:transparent !important;
    box-shadow:none !important;
    list-style:none !important;
    overflow:visible !important;
  }
  #home .languages-col .language-list::before,
  #home .languages-col .language-list::after{
    content:none !important;
    display:none !important;
  }
  #home .languages-col .language-chip{
    display:inline-flex !important;
    flex:0 0 auto !important;
    align-items:center !important;
    gap:8px !important;
    min-height:38px !important;
    padding:8px 12px !important;
    border:1px solid rgba(31,92,140,.18) !important;
    border-radius:999px !important;
    background:rgba(255,255,255,.42) !important;
    box-shadow:none !important;
    transform:none !important;
  }
}
@media (max-width:700px){
  #home .languages-col{
    margin-top:24px !important;
  }
  #home #languages-heading{
    margin-bottom:10px !important;
  }
}

/* v35 — Home Languages: six equal desktop columns, transparent chips */
@media (min-width:701px){
  #home .languages-col .language-list{
    display:grid !important;
    grid-template-columns:repeat(6,minmax(0,1fr)) !important;
    align-items:stretch !important;
    gap:10px !important;
    width:100% !important;
    margin:0 !important;
    padding:0 !important;
    border:0 !important;
    background:transparent !important;
    box-shadow:none !important;
    overflow:visible !important;
  }
  #home .languages-col .language-chip{
    display:flex !important;
    width:100% !important;
    min-width:0 !important;
    min-height:40px !important;
    align-items:center !important;
    justify-content:center !important;
    gap:8px !important;
    margin:0 !important;
    padding:8px 10px !important;
    border:1px solid rgba(31,92,140,.22) !important;
    border-radius:10px !important;
    background:transparent !important;
    box-shadow:none !important;
    transform:none !important;
    white-space:nowrap !important;
  }
  #home .languages-col .language-chip:hover{
    background:transparent !important;
    border-color:rgba(31,92,140,.38) !important;
    transform:none !important;
    box-shadow:none !important;
  }
}

/* v36 — definitive desktop Languages row: six equal columns, transparent */
@media (min-width:701px){#home .academic-lang-block{display:block!important}#home .languages-col{display:block!important;width:100%!important;max-width:none!important}#home .languages-col .mobile-language-marquee{display:block!important;width:100%!important;max-width:100%!important;overflow:visible!important;padding:0!important;-webkit-mask-image:none!important;mask-image:none!important}#home .languages-col .language-list,#home .languages-col .language-list.language-list--marquee,#home .languages-col .language-list.language-list--forced-loop{display:grid!important;grid-template-columns:repeat(6,minmax(0,1fr))!important;grid-auto-flow:column!important;grid-auto-columns:minmax(0,1fr)!important;align-items:stretch!important;gap:10px!important;width:100%!important;max-width:100%!important;margin:0!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;overflow:visible!important;list-style:none!important;animation:none!important;will-change:auto!important}#home .languages-col .language-list::before,#home .languages-col .language-list::after{content:none!important;display:none!important}#home .languages-col .language-chip{display:flex!important;flex:none!important;width:100%!important;min-width:0!important;max-width:none!important;min-height:40px!important;align-items:center!important;justify-content:center!important;gap:8px!important;margin:0!important;padding:8px 10px!important;border:1px solid rgba(31,92,140,.22)!important;border-radius:10px!important;background:transparent!important;background-color:transparent!important;background-image:none!important;box-shadow:none!important;transform:none!important;white-space:nowrap!important;overflow:hidden!important}#home .languages-col .language-chip:hover{background:transparent!important;background-color:transparent!important;border-color:rgba(31,92,140,.38)!important;box-shadow:none!important;transform:none!important}#home .languages-col .language-chip--clone{display:none!important}}


/* v37 — Home Languages: compact transparent capsules in a seamless continuous row.
   The visual language mirrors Professional Profile while preserving the flags. */
#home .languages-col .mobile-language-marquee{
  display:block !important;
  width:100% !important;
  max-width:100% !important;
  min-width:0 !important;
  overflow:hidden !important;
  padding:4px 0 8px !important;
  -webkit-mask-image:linear-gradient(90deg,transparent 0,#000 22px,#000 calc(100% - 22px),transparent 100%) !important;
  mask-image:linear-gradient(90deg,transparent 0,#000 22px,#000 calc(100% - 22px),transparent 100%) !important;
}
#home .languages-col .language-list,
#home .languages-col .language-list.language-list--marquee,
#home .languages-col .language-list.is-js-continuous-loop{
  display:flex !important;
  flex-direction:row !important;
  flex-wrap:nowrap !important;
  align-items:center !important;
  justify-content:flex-start !important;
  gap:8px !important;
  width:max-content !important;
  max-width:none !important;
  margin:0 !important;
  padding:2px 0 !important;
  border:0 !important;
  border-left:0 !important;
  border-radius:0 !important;
  background:transparent !important;
  background-image:none !important;
  box-shadow:none !important;
  list-style:none !important;
  animation:none !important;
  will-change:transform !important;
}
#home .languages-col .language-list::before,
#home .languages-col .language-list::after{
  content:none !important;
  display:none !important;
}
#home .languages-col .language-chip,
#home .languages-col .language-chip--clone{
  display:inline-flex !important;
  flex:0 0 auto !important;
  width:auto !important;
  min-width:0 !important;
  max-width:none !important;
  min-height:38px !important;
  align-items:center !important;
  justify-content:center !important;
  gap:8px !important;
  margin:0 !important;
  padding:8px 14px !important;
  border:1px solid rgba(31,92,140,.24) !important;
  border-radius:999px !important;
  background:transparent !important;
  background-color:transparent !important;
  background-image:none !important;
  box-shadow:none !important;
  color:var(--ink,#17324D) !important;
  font-family:"Roboto","Helvetica Neue",Arial,sans-serif !important;
  font-size:13px !important;
  font-weight:600 !important;
  line-height:1.1 !important;
  white-space:nowrap !important;
  overflow:visible !important;
  transform:none !important;
}
@media (hover:hover) and (pointer:fine){
  #home .languages-col .language-chip:hover{
    border-color:rgba(31,92,140,.42) !important;
    background:transparent !important;
    box-shadow:none !important;
    transform:none !important;
  }
}
@media (max-width:700px){
  #home .languages-col .mobile-language-marquee{
    padding:3px 0 7px !important;
    -webkit-mask-image:linear-gradient(90deg,transparent 0,#000 16px,#000 calc(100% - 16px),transparent 100%) !important;
    mask-image:linear-gradient(90deg,transparent 0,#000 16px,#000 calc(100% - 16px),transparent 100%) !important;
  }
  #home .languages-col .language-list,
  #home .languages-col .language-list.language-list--marquee{gap:7px !important;}
  #home .languages-col .language-chip,
  #home .languages-col .language-chip--clone{
    min-height:36px !important;
    padding:7px 12px !important;
    font-size:12.5px !important;
  }
}


/* v39 — Languages: Professional Profile movement on desktop + mobile.
   Visual capsule styling is unchanged; only the viewport/track mechanics are
   made identical to the Professional Profile continuous strip. */
#home .languages-col .language-profiles-marquee{
  width:100% !important;
  max-width:100% !important;
  overflow:hidden !important;
  padding:4px 0 8px !important;
  -webkit-mask-image:linear-gradient(90deg,transparent 0,#000 22px,#000 calc(100% - 22px),transparent 100%) !important;
  mask-image:linear-gradient(90deg,transparent 0,#000 22px,#000 calc(100% - 22px),transparent 100%) !important;
}
#home .languages-col .language-list.language-list--profile-marquee,
#home .languages-col .language-list.language-list--profile-marquee.is-js-continuous-loop{
  display:flex !important;
  flex-direction:row !important;
  flex-wrap:nowrap !important;
  align-items:center !important;
  justify-content:flex-start !important;
  gap:8px !important;
  width:max-content !important;
  max-width:none !important;
  margin:0 !important;
  padding:2px 0 !important;
  border:0 !important;
  border-radius:0 !important;
  background:transparent !important;
  box-shadow:none !important;
  overflow:visible !important;
  list-style:none !important;
  animation:none !important;
  animation-name:none !important;
  will-change:transform !important;
  transform-style:preserve-3d !important;
  backface-visibility:hidden !important;
}
#home .languages-col .language-list.language-list--profile-marquee .language-chip,
#home .languages-col .language-list.language-list--profile-marquee .language-chip--clone{
  display:inline-flex !important;
  flex:0 0 auto !important;
  width:auto !important;
}
@media (max-width:700px){
  #home .languages-col .language-profiles-marquee{
    padding:3px 0 7px !important;
    -webkit-mask-image:linear-gradient(90deg,transparent 0,#000 16px,#000 calc(100% - 16px),transparent 100%) !important;
    mask-image:linear-gradient(90deg,transparent 0,#000 16px,#000 calc(100% - 16px),transparent 100%) !important;
  }
  #home .languages-col .language-list.language-list--profile-marquee{gap:7px !important;}
}

/* v40 — Languages: adaptive spacing prevents duplicate copies of the same language
   from being visible simultaneously while preserving the approved capsule design. */
#home .languages-col .language-list.language-list--profile-marquee,
#home .languages-col .language-list.language-list--profile-marquee.is-js-continuous-loop{
  gap:var(--language-marquee-gap,14px) !important;
}
@media (max-width:700px){
  #home .languages-col .language-list.language-list--profile-marquee,
  #home .languages-col .language-list.language-list--profile-marquee.is-js-continuous-loop{
    gap:var(--language-marquee-gap,11px) !important;
  }
}


/* v41 — Languages: balanced capsule geometry + edge-synchronised loop.
   Capsules stay visually close and acquire a shared minimum width so labels
   look consistent. The JavaScript publishes --language-chip-min-width and
   --language-marquee-gap from the actual viewport geometry. */
#home .languages-col .language-list.language-list--profile-marquee,
#home .languages-col .language-list.language-list--profile-marquee.is-js-continuous-loop{
  gap:var(--language-marquee-gap,10px) !important;
}
#home .languages-col .language-list.language-list--profile-marquee .language-chip,
#home .languages-col .language-list.language-list--profile-marquee .language-chip--clone{
  min-width:var(--language-chip-min-width,124px) !important;
  width:auto !important;
  justify-content:center !important;
  box-sizing:border-box !important;
}
@media (max-width:700px){
  #home .languages-col .language-list.language-list--profile-marquee,
  #home .languages-col .language-list.language-list--profile-marquee.is-js-continuous-loop{
    gap:var(--language-marquee-gap,9px) !important;
  }
  #home .languages-col .language-list.language-list--profile-marquee .language-chip,
  #home .languages-col .language-list.language-list--profile-marquee .language-chip--clone{
    min-width:var(--language-chip-min-width,108px) !important;
  }
}


/* ==========================================================================\n   v42 · Languages — natural-size capsules, six-at-once fit and exact French wrap\n   ========================================================================== */
#home .languages-col .language-profiles-marquee{
  -webkit-mask-image:linear-gradient(90deg,transparent 0,#000 8px,#000 calc(100% - 8px),transparent 100%) !important;
  mask-image:linear-gradient(90deg,transparent 0,#000 8px,#000 calc(100% - 8px),transparent 100%) !important;
}
#home .languages-col .language-list.language-list--profile-marquee,
#home .languages-col .language-list.language-list--profile-marquee.is-js-continuous-loop{
  gap:var(--language-marquee-gap,7.5px) !important;
}
#home .languages-col .language-list.language-list--profile-marquee .language-chip,
#home .languages-col .language-list.language-list--profile-marquee .language-chip--clone{
  width:auto !important;
  min-width:0 !important;
  max-width:none !important;
  min-height:var(--language-min-height,33.5px) !important;
  padding:var(--language-pad-y,6px) var(--language-pad-x,9.5px) !important;
  gap:var(--language-inner-gap,5.8px) !important;
  justify-content:center !important;
  font-size:var(--language-font-size,12.2px) !important;
  box-sizing:border-box !important;
}
#home .languages-col .language-list.language-list--profile-marquee .language-chip .flag-svg,
#home .languages-col .language-list.language-list--profile-marquee .language-chip--clone .flag-svg{
  height:var(--language-flag-height,14.2px) !important;
  width:auto !important;
}
#home .languages-col .language-list.language-list--profile-marquee .language-cycle-spacer{
  display:block !important;
  flex:0 0 auto !important;
  min-width:0 !important;
  height:1px !important;
  margin:0 !important;
  padding:0 !important;
  border:0 !important;
  background:transparent !important;
  pointer-events:none !important;
}
@media (max-width:700px){
  #home .languages-col .language-profiles-marquee{
    -webkit-mask-image:linear-gradient(90deg,transparent 0,#000 6px,#000 calc(100% - 6px),transparent 100%) !important;
    mask-image:linear-gradient(90deg,transparent 0,#000 6px,#000 calc(100% - 6px),transparent 100%) !important;
  }
}


/* ==========================================================================
   v44 · Languages — one uniform gap across the six-language cycle
   ========================================================================== */
#home .languages-col .language-profiles-marquee{
  width:var(--language-loop-viewport-width,100%) !important;
  max-width:100% !important;
  margin-left:0 !important;
  margin-right:auto !important;
}
#home .languages-col .language-list.language-list--profile-marquee,
#home .languages-col .language-list.language-list--profile-marquee.is-js-continuous-loop{
  gap:var(--language-marquee-gap,9px) !important;
  column-gap:var(--language-marquee-gap,9px) !important;
  row-gap:0 !important;
}
#home .languages-col .language-list.language-list--profile-marquee .language-chip,
#home .languages-col .language-list.language-list--profile-marquee .language-chip--clone{
  margin-left:0 !important;
  margin-right:0 !important;
}
#home .languages-col .language-list.language-list--profile-marquee .language-cycle-spacer{
  display:none !important;
  width:0 !important;
  min-width:0 !important;
  flex-basis:0 !important;
}
@media (max-width:700px){
  #home .languages-col .language-list.language-list--profile-marquee,
  #home .languages-col .language-list.language-list--profile-marquee.is-js-continuous-loop{
    gap:var(--language-marquee-gap,7px) !important;
    column-gap:var(--language-marquee-gap,7px) !important;
  }
}

/* ==========================================================================\n   v45 · Languages — Professional Profile span + edge-to-edge six-language loop\n   ========================================================================== */
#home .languages-col .language-profiles-marquee{
  width:var(--language-loop-viewport-width,100%) !important;
  max-width:100% !important;
  margin-left:0 !important;
  margin-right:auto !important;
  overflow:hidden !important;
  -webkit-mask-image:linear-gradient(90deg,transparent 0,#000 22px,#000 calc(100% - 22px),transparent 100%) !important;
  mask-image:linear-gradient(90deg,transparent 0,#000 22px,#000 calc(100% - 22px),transparent 100%) !important;
}
#home .languages-col .language-list.language-list--profile-marquee,
#home .languages-col .language-list.language-list--profile-marquee.is-js-continuous-loop{
  gap:var(--language-marquee-gap,14px) !important;
  column-gap:var(--language-marquee-gap,14px) !important;
  row-gap:0 !important;
}
@media (max-width:700px){
  #home .languages-col .language-profiles-marquee{
    -webkit-mask-image:linear-gradient(90deg,transparent 0,#000 16px,#000 calc(100% - 16px),transparent 100%) !important;
    mask-image:linear-gradient(90deg,transparent 0,#000 16px,#000 calc(100% - 16px),transparent 100%) !important;
  }
}


/* ==========================================================================
   v47 · Languages — exact one-cycle viewport, compact capsules
   ========================================================================== */
#home .languages-col .language-profiles-marquee{
  width:var(--language-loop-viewport-width,100%) !important;
  max-width:100% !important;
  margin-left:0 !important;
  margin-right:auto !important;
  overflow:hidden !important;
  -webkit-mask-image:linear-gradient(90deg,transparent 0,#000 8px,#000 calc(100% - 8px),transparent 100%) !important;
  mask-image:linear-gradient(90deg,transparent 0,#000 8px,#000 calc(100% - 8px),transparent 100%) !important;
}
#home .languages-col .language-list.language-list--profile-marquee,
#home .languages-col .language-list.language-list--profile-marquee.is-js-continuous-loop{
  gap:var(--language-marquee-gap,9px) !important;
  column-gap:var(--language-marquee-gap,9px) !important;
  row-gap:0 !important;
}
#home .languages-col .language-list.language-list--profile-marquee .language-chip,
#home .languages-col .language-list.language-list--profile-marquee .language-chip--clone{
  width:auto !important;
  min-width:0 !important;
  max-width:none !important;
  min-height:var(--language-min-height,32px) !important;
  padding:var(--language-pad-y,5.4px) var(--language-pad-x,8.4px) !important;
  gap:var(--language-inner-gap,5.1px) !important;
  justify-content:center !important;
  font-size:var(--language-font-size,11.85px) !important;
  border-radius:999px !important;
  background:transparent !important;
  box-sizing:border-box !important;
  margin-left:0 !important;
  margin-right:0 !important;
}
#home .languages-col .language-list.language-list--profile-marquee .language-chip .flag-svg,
#home .languages-col .language-list.language-list--profile-marquee .language-chip--clone .flag-svg{
  height:var(--language-flag-height,13.4px) !important;
  width:auto !important;
}
@media(max-width:700px){
  #home .languages-col .language-profiles-marquee{
    -webkit-mask-image:linear-gradient(90deg,transparent 0,#000 5px,#000 calc(100% - 5px),transparent 100%) !important;
    mask-image:linear-gradient(90deg,transparent 0,#000 5px,#000 calc(100% - 5px),transparent 100%) !important;
  }
  #home .languages-col .language-list.language-list--profile-marquee,
  #home .languages-col .language-list.language-list--profile-marquee.is-js-continuous-loop{
    gap:var(--language-marquee-gap,4.5px) !important;
    column-gap:var(--language-marquee-gap,4.5px) !important;
  }
}
\n/* ==========================================================================\n   v48 · Languages — full-width period aligned with Professional Profile\n   ========================================================================== */\n#home .languages-col .language-profiles-marquee{\n  width:100% !important;\n  max-width:100% !important;\n  margin-left:0 !important;\n  margin-right:0 !important;\n  overflow:hidden !important;\n  -webkit-mask-image:linear-gradient(90deg,transparent 0,#000 22px,#000 calc(100% - 22px),transparent 100%) !important;\n  mask-image:linear-gradient(90deg,transparent 0,#000 22px,#000 calc(100% - 22px),transparent 100%) !important;\n}\n#home .languages-col .language-list.language-list--profile-marquee,\n#home .languages-col .language-list.language-list--profile-marquee.is-js-continuous-loop{\n  gap:var(--language-marquee-gap,10px) !important;\n  column-gap:var(--language-marquee-gap,10px) !important;\n  row-gap:0 !important;\n}\n@media(max-width:700px){\n  #home .languages-col .language-profiles-marquee{\n    width:100% !important;\n    max-width:100% !important;\n    -webkit-mask-image:linear-gradient(90deg,transparent 0,#000 12px,#000 calc(100% - 12px),transparent 100%) !important;\n    mask-image:linear-gradient(90deg,transparent 0,#000 12px,#000 calc(100% - 12px),transparent 100%) !important;\n  }\n}\n\n\n/* ============================================================\n   v50 · Home News editorial alignment\n   Three-line titles + three-line compact citations; centered grid.\n   ============================================================ */\n#home .updates .update-list > li.home-news-card,\n#home .updates .update-list > li.recent-article.home-news-card{\n  text-align:center !important;\n}\n#home .home-news-media{\n  margin-bottom:9px !important;\n}\n#home .home-news-title{\n  display:-webkit-box !important;\n  -webkit-box-orient:vertical !important;\n  -webkit-line-clamp:3 !important;\n  overflow:hidden !important;\n  height:4.35em !important;\n  margin:0 0 8px !important;\n  text-align:center !important;\n}\n#home .home-news-title a{\n  display:inherit !important;\n}\n#home .home-news-date{\n  margin:0 0 7px !important;\n  text-align:center !important;\n}\n#home .home-news-excerpt{\n  -webkit-line-clamp:3 !important;\n  max-height:4.86em !important;\n  text-align:center !important;\n}\n@media(max-width:600px){\n  #home .home-news-media{margin-bottom:8px !important;}\n  #home .home-news-title{height:4.35em !important;}\n  #home .home-news-excerpt{max-height:4.86em !important;}\n}\n

/* ==========================================================================
   v51 · Home News — left-aligned editorial text, centered covers, full authors
   ========================================================================== */
#home .updates .update-list > li.home-news-card,
#home .updates .update-list > li.recent-article.home-news-card{
  text-align:left !important;
}
#home .updates .update-list{
  padding-left:0 !important;
  padding-right:0 !important;
}
#home .updates .update-list > li:first-child{
  margin-left:0 !important;
}
#home .home-news-media{
  justify-content:center !important;
  margin-bottom:8px !important;
}
#home .home-news-title{
  display:-webkit-box !important;
  -webkit-box-orient:vertical !important;
  -webkit-line-clamp:3 !important;
  overflow:hidden !important;
  height:4.35em !important;
  margin:0 0 8px !important;
  text-align:left !important;
}
#home .home-news-title a{
  display:inline !important;
}
#home .home-news-date{
  margin:0 0 7px !important;
  text-align:left !important;
}
#home .home-news-excerpt{
  display:block !important;
  -webkit-box-orient:initial !important;
  -webkit-line-clamp:unset !important;
  overflow:visible !important;
  max-height:none !important;
  height:auto !important;
  text-align:left !important;
}
@media(max-width:600px){
  #home .home-news-media{margin-bottom:8px !important;}
  #home .home-news-title{height:4.35em !important;}
  #home .home-news-excerpt{max-height:none !important;}
}

/* v53 — Education only. Built from stable v51.
   Logos removed from markup; degrees share one left edge; institutions sit below
   with one restrained, consistent indent. No navigation or page-shell rules. */
#home .academic-col .education-list{
  display:flex !important;
  flex-direction:column !important;
  gap:0 !important;
  margin:0 !important;
  padding:0 !important;
  background:transparent !important;
  border:0 !important;
  box-shadow:none !important;
}
#home .academic-col .education-entry,
#home .academic-col .education-entry--doctorate,
#home .academic-col .education-entry--single-logo{
  display:block !important;
  grid-template-columns:none !important;
  width:100% !important;
  min-width:0 !important;
  margin:0 !important;
  padding:10px 0 12px !important;
  background:transparent !important;
  border:0 !important;
  border-bottom:1px solid rgba(31,92,140,.16) !important;
  box-shadow:none !important;
}
#home .academic-col .education-entry:first-child{padding-top:0 !important;}
#home .academic-col .education-entry:last-child{padding-bottom:0 !important;border-bottom:0 !important;}
#home .academic-col .education-content{
  display:block !important;
  width:100% !important;
  min-width:0 !important;
  margin:0 !important;
  padding:0 !important;
  text-align:left !important;
}
#home .academic-col .education-degree,
#home .academic-col .education-entry--doctorate .education-degree{
  margin:0 0 5px !important;
  padding:0 !important;
  text-align:left !important;
}
#home .academic-col .education-institutions,
#home .academic-col .education-entry--doctorate .education-institutions{
  margin:0 !important;
  padding:0 0 0 16px !important;
  width:auto !important;
  list-style:none !important;
  text-align:left !important;
}
#home .academic-col .education-institutions li{
  margin:0 0 2px !important;
  padding:0 !important;
}
#home .academic-col .education-institutions li:last-child{margin-bottom:0 !important;}
@media (max-width:700px){
  #home .academic-col .education-entry,
  #home .academic-col .education-entry--doctorate,
  #home .academic-col .education-entry--single-logo{
    display:block !important;
    grid-template-columns:none !important;
    padding:9px 0 11px !important;
  }
  #home .academic-col .education-institutions,
  #home .academic-col .education-entry--doctorate .education-institutions{
    padding-left:14px !important;
  }
}

/* v54 — Education institution bullets: retain the dot, but give it clear
   breathing room before the institution name. No navigation/layout changes here. */
#home .academic-col .education-institutions li,
#home .academic-col .education-entry--doctorate .education-institutions li{
  position:relative !important;
  padding-left:19px !important;
}
#home .academic-col .education-institutions li::before,
#home .academic-col .education-entry--doctorate .education-institutions li::before{
  left:2px !important;
  top:.63em !important;
}
@media (max-width:700px){
  #home .academic-col .education-institutions li,
  #home .academic-col .education-entry--doctorate .education-institutions li{
    padding-left:18px !important;
  }
}


/* ==========================================================================\n   v55 · Home micro-refinement — education separators, full-width News/Awards\n   rules, and language capsule scale matched to Professional Profile.\n   Scope: Home only; no navigation or page structure changes.\n   ========================================================================== */

/* Education: keep the three academic entries open, without thin separators. */
#home .academic-col .education-entry,
#home .academic-col .education-entry--doctorate,
#home .academic-col .education-entry--single-logo{
  border-bottom:0 !important;
}

/* News: one single continuous rule across the complete heading row. Remove the
   short underline under the label so no secondary fine line remains. */
#home .home-news-heading-row{
  border-bottom:2px solid var(--ds-blue,#1F5C8C) !important;
  padding-bottom:10px !important;
}
#home .home-news-heading-row .home-section-title{
  border-bottom:0 !important;
  padding-bottom:6px !important;
}

/* Awards & recognition: same open heading treatment, with the underline
   extending across the full available section width. */
#home #recognition-heading{
  display:block !important;
  width:100% !important;
  max-width:none !important;
  box-sizing:border-box !important;
  margin:0 0 16px !important;
  padding:2px 0 10px !important;
  border:0 !important;
  border-bottom:2px solid var(--ds-blue,#1F5C8C) !important;
  border-radius:0 !important;
  background:transparent !important;
  color:var(--ds-navy,#132437) !important;
  box-shadow:none !important;
  text-align:left !important;
}

/* Languages: typography matches the Professional Profile labels. Capsule size
   is slightly longer/taller while retaining the approved transparent pill and
   the existing six-language full-width continuous cycle. Inline JS variables
   still control final responsive fitting, so this serves as a safe fallback. */
#home .languages-col .language-list.language-list--profile-marquee .language-chip,
#home .languages-col .language-list.language-list--profile-marquee .language-chip--clone{
  font-size:var(--language-font-size,13.5px) !important;
  min-height:var(--language-min-height,35px) !important;
  padding:var(--language-pad-y,6px) var(--language-pad-x,12px) !important;
  gap:var(--language-inner-gap,6px) !important;
}

/* ==========================================================================
   v58 · Internal page surface + unified intro-band geometry
   Requested scope only:
   1) Research / Infrastructure / Publications / Collaboration / Contact use
      the exact same pale green-grey field as the approved Home (#F5F6F5).
   2) Research / Infrastructure / Publications / Collaboration intro bands use
      one identical height at each responsive breakpoint. Research is the
      reference so no introduction copy is clipped in any language.
   ========================================================================== */
:root{
  --ds-internal-page-surface:#F5F6F5;
  --ds-unified-intro-band-height:335px;
}

/* Same green-grey surface and same technical-pattern intensity as Home. */
#research::before,
#infrastructure::before,
#publications::before,
#collaboration::before,
#contact::before{
  background:var(--ds-internal-page-surface) !important;
}
#research::after,
#infrastructure::after,
#publications::after,
#collaboration::after,
#contact::after{
  opacity:.58 !important;
}

/* One introduction-band geometry across the four scientific tabs. */
#research .intro-band,
#infrastructure .intro-band,
#publications .intro-band,
#collaboration .intro-band{
  box-sizing:border-box !important;
  height:var(--ds-unified-intro-band-height) !important;
  min-height:var(--ds-unified-intro-band-height) !important;
  max-height:var(--ds-unified-intro-band-height) !important;
  margin-top:0 !important;
  margin-bottom:16px !important;
  padding-top:10px !important;
}

/* Keep the same common geometry while allowing the longest translated
   Research introduction to fit cleanly at each viewport width. */
@media (max-width:1199px) and (min-width:901px){
  :root{--ds-unified-intro-band-height:325px;}
}
@media (max-width:900px) and (min-width:701px){
  :root{--ds-unified-intro-band-height:330px;}
}
@media (max-width:700px) and (min-width:431px){
  :root{--ds-unified-intro-band-height:490px;}
  #research .intro-band,
  #infrastructure .intro-band,
  #publications .intro-band,
  #collaboration .intro-band{
    padding-top:8px !important;
  }
}
@media (max-width:430px) and (min-width:351px){
  :root{--ds-unified-intro-band-height:510px;}
  #research .intro-band,
  #infrastructure .intro-band,
  #publications .intro-band,
  #collaboration .intro-band{
    padding-top:8px !important;
  }
}
@media (max-width:350px){
  :root{--ds-unified-intro-band-height:590px;}
  #research .intro-band,
  #infrastructure .intro-band,
  #publications .intro-band,
  #collaboration .intro-band{
    padding-top:8px !important;
  }
}


/* ==========================================================================
   v59 · Compact unified intro bands
   Scope only: reduce the vertical height of the already-unified blue bands.
   Research / Infrastructure / Publications / Collaboration remain identical
   at each breakpoint; colour, width, typography and content are unchanged.
   ========================================================================== */
:root{
  --ds-unified-intro-band-height:236px;
  --ds-compact-intro-top-space:4px;
  --ds-compact-intro-bottom-space:10px;
}

#research .intro-band,
#infrastructure .intro-band,
#publications .intro-band,
#collaboration .intro-band{
  height:var(--ds-unified-intro-band-height) !important;
  min-height:var(--ds-unified-intro-band-height) !important;
  max-height:var(--ds-unified-intro-band-height) !important;
  padding-top:var(--ds-compact-intro-top-space) !important;
}

#research .intro-band .intro-band-inner,
#research .intro-band .intro-band-inner.section-intro--visual,
#infrastructure .intro-band .intro-band-inner,
#infrastructure .intro-band .intro-band-inner.section-intro--visual,
#publications .intro-band .intro-band-inner,
#publications .intro-band .intro-band-inner.section-intro--visual,
#collaboration .intro-band .intro-band-inner,
#collaboration .intro-band .intro-band-inner.section-intro--visual{
  padding-top:2px !important;
  padding-bottom:var(--ds-compact-intro-bottom-space) !important;
}

@media (max-width:1199px) and (min-width:901px){
  :root{--ds-unified-intro-band-height:246px;}
}
@media (max-width:900px) and (min-width:701px){
  :root{--ds-unified-intro-band-height:286px;}
}
@media (max-width:700px) and (min-width:431px){
  :root{
    --ds-unified-intro-band-height:350px;
    --ds-compact-intro-top-space:4px;
    --ds-compact-intro-bottom-space:10px;
  }
}
@media (max-width:430px) and (min-width:351px){
  :root{
    --ds-unified-intro-band-height:420px;
    --ds-compact-intro-top-space:4px;
    --ds-compact-intro-bottom-space:10px;
  }
}
@media (max-width:350px){
  :root{
    --ds-unified-intro-band-height:492px;
    --ds-compact-intro-top-space:4px;
    --ds-compact-intro-bottom-space:10px;
  }
}


/* ==========================================================================
   v60 · Test: neutral page headings without blue introduction bands
   Scope only: Research / Infrastructure / Publications / Collaboration.
   The introductory paragraphs and blue bands are removed from the HTML.
   A simple title + underline remains on the shared pale green-grey surface.
   Contact and all page content below these headings are unchanged.
   ========================================================================== */
#research > .plain-page-heading,
#infrastructure > .plain-page-heading,
#publications > .plain-page-heading,
#collaboration .collab-scientific-domain > .plain-page-heading{
  box-sizing:border-box !important;
  width:100% !important;
  max-width:1180px !important;
  margin:0 auto 16px !important;
  padding:20px clamp(24px,4vw,48px) 0 !important;
  background:transparent !important;
}

#research > .plain-page-heading .section-intro-title,
#infrastructure > .plain-page-heading .section-intro-title,
#publications > .plain-page-heading .section-intro-title,
#collaboration .collab-scientific-domain > .plain-page-heading .section-intro-title{
  display:inline-block !important;
  width:fit-content !important;
  max-width:100% !important;
  margin:0 !important;
  padding:0 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:23px !important;
  line-height:1.22 !important;
  font-weight:600 !important;
  letter-spacing:-.012em !important;
  text-transform:none !important;
  text-align:left !important;
}

/* The first real content starts immediately after the clean page heading. */
#research > .plain-page-heading + .research-network-3d{
  margin-top:0 !important;
}
#infrastructure > .plain-page-heading + .experimental-panel,
#publications > .plain-page-heading + .pub-cat,
#collaboration .collab-scientific-domain > .plain-page-heading + .collab-component{
  margin-top:0 !important;
}

@media (max-width:700px){
  #research > .plain-page-heading,
  #infrastructure > .plain-page-heading,
  #publications > .plain-page-heading,
  #collaboration .collab-scientific-domain > .plain-page-heading{
    margin-bottom:12px !important;
    padding:16px 16px 0 !important;
  }
  #research > .plain-page-heading .section-intro-title,
  #infrastructure > .plain-page-heading .section-intro-title,
  #publications > .plain-page-heading .section-intro-title,
  #collaboration .collab-scientific-domain > .plain-page-heading .section-intro-title{
    font-size:21px !important;
    padding-bottom:7px !important;
  }
}

/* ==========================================================================
   v61 · Clean internal-page hierarchy after the no-band test
   Scope requested only:
   - Page headings align with the first real content below them.
   - Page-heading underline spans the relevant content width.
   - Research page heading is one level larger than the 3D-map heading.
   - Infrastructure keeps its useful introduction, on the neutral page field.
   - Publications / Collaboration / Contact use the same clean alignment logic.
   ========================================================================== */

/* Shared page-level title treatment: no coloured band, one full-width rule. */
#infrastructure > .plain-page-heading,
#publications > .plain-page-heading,
#collaboration .collab-scientific-domain > .plain-page-heading,
#contact > .plain-page-heading{
  box-sizing:border-box !important;
  width:100% !important;
  max-width:none !important;
  margin:0 0 16px !important;
  padding:18px 0 9px !important;
  border:0 !important;
  border-bottom:2px solid var(--ds-blue,#1F5C8C) !important;
  background:transparent !important;
}

/* Research uses exactly the same horizontal geometry as the 3D component. */
#research > .plain-page-heading{
  box-sizing:border-box !important;
  width:min(1180px,calc(100% - 56px)) !important;
  max-width:1180px !important;
  margin:0 auto 16px !important;
  padding:18px 0 9px !important;
  border:0 !important;
  border-bottom:2px solid var(--ds-blue,#1F5C8C) !important;
  background:transparent !important;
}

/* Page titles are deliberately one step above ordinary section headings. */
#research > .plain-page-heading .section-intro-title,
#infrastructure > .plain-page-heading .section-intro-title,
#publications > .plain-page-heading .section-intro-title,
#collaboration .collab-scientific-domain > .plain-page-heading .section-intro-title,
#contact > .plain-page-heading .section-intro-title{
  display:block !important;
  width:auto !important;
  max-width:100% !important;
  margin:0 !important;
  padding:0 !important;
  border:0 !important;
  border-bottom:0 !important;
  background:transparent !important;
  color:var(--ds-navy,#132437) !important;
  box-shadow:none !important;
  font-family:var(--font-heading,"Roboto","Helvetica Neue",Arial,sans-serif) !important;
  font-size:26px !important;
  line-height:1.2 !important;
  font-weight:600 !important;
  letter-spacing:-.014em !important;
  text-transform:none !important;
  text-align:left !important;
}

/* Infrastructure: restore only the useful explanatory copy and equipment link. */
#infrastructure > .plain-infrastructure-intro{
  width:100% !important;
  max-width:none !important;
  box-sizing:border-box !important;
  margin:0 0 18px !important;
  padding:0 !important;
  border:0 !important;
  background:transparent !important;
  color:var(--ds-ink-soft,#3D4A55) !important;
  font-family:var(--font-body,"Roboto","Helvetica Neue",Arial,sans-serif) !important;
  font-size:15.5px !important;
  line-height:1.66 !important;
}
#infrastructure > .plain-infrastructure-intro .infra-overview-equipment-link{
  vertical-align:baseline !important;
}

/* Keep the first section labels on precisely the same left axis as page titles. */
#infrastructure > .experimental-panel,
#publications > .pub-cat,
#collaboration .collab-scientific-domain > .collab-component{
  margin-left:0 !important;
}

/* The 3D map is a secondary heading: Biography typography, short underline. */
#research .network3d-heading{
  width:100% !important;
  max-width:none !important;
  margin:0 0 16px !important;
  padding:0 !important;
  border:0 !important;
  border-bottom:0 !important;
  background:transparent !important;
}
#research .network3d-heading h3{
  display:inline-block !important;
  width:auto !important;
  max-width:100% !important;
  margin:0 !important;
  padding:0 0 8px !important;
  border:0 !important;
  border-bottom:2px solid var(--ds-blue,#1F5C8C) !important;
  background:transparent !important;
  color:var(--ds-navy,#132437) !important;
  font-family:var(--font-heading,"Roboto","Helvetica Neue",Arial,sans-serif) !important;
  font-size:23px !important;
  line-height:1.22 !important;
  font-weight:600 !important;
  letter-spacing:-.012em !important;
  text-transform:none !important;
}

@media (max-width:780px){
  #research > .plain-page-heading{
    width:min(1180px,calc(100% - 36px)) !important;
  }
}
@media (max-width:700px){
  #research > .plain-page-heading,
  #infrastructure > .plain-page-heading,
  #publications > .plain-page-heading,
  #collaboration .collab-scientific-domain > .plain-page-heading,
  #contact > .plain-page-heading{
    margin-bottom:12px !important;
    padding-top:15px !important;
    padding-bottom:8px !important;
  }
  #research > .plain-page-heading .section-intro-title,
  #infrastructure > .plain-page-heading .section-intro-title,
  #publications > .plain-page-heading .section-intro-title,
  #collaboration .collab-scientific-domain > .plain-page-heading .section-intro-title,
  #contact > .plain-page-heading .section-intro-title{
    font-size:23px !important;
  }
  #research .network3d-heading h3{
    font-size:21px !important;
    padding-bottom:7px !important;
  }
  #infrastructure > .plain-infrastructure-intro{
    margin-bottom:15px !important;
    font-size:15px !important;
    line-height:1.62 !important;
  }
}
@media (max-width:520px){
  #research > .plain-page-heading{
    width:min(1180px,calc(100% - 22px)) !important;
  }
}


/* v62 · Accessibility-only motion guard.
   Normal visual behaviour is unchanged. Users who explicitly request reduced
   motion receive static continuous strips rather than slower infinite motion. */
@media (prefers-reduced-motion: reduce){
  #recognition .recognition-timeline.recognition-timeline--marquee{
    animation:none !important;
    transform:none !important;
    will-change:auto !important;
  }
  #home .home-profiles-row.home-profiles-row--marquee,
  #home .languages-col .language-list.language-list--profile-marquee,
  #infrastructure .software-marquee-track.is-js-continuous-loop{
    transform:none !important;
    will-change:auto !important;
  }
}

/* ==========================================================================\n   v63 · Mobile Home repair + cleaner Research map\n   Scope: phone Home hero only, plus removal of the 3D instruction sentence.\n   Desktop/tablet visual design remains unchanged.\n   ========================================================================== */
@media (max-width:600px){
  /* The affiliation block is the fourth explicit row of the compact mobile
     hero. Without this placement it is auto-positioned by CSS Grid, which
     creates the large empty area visible on phones. */
  #home .hv3-affiliation{
    grid-column:1 / -1 !important;
    grid-row:4 !important;
    width:100% !important;
    max-width:none !important;
    margin:8px 0 0 !important;
    justify-self:stretch !important;
  }
  #home .hv3-affiliation-row{
    width:100% !important;
    min-height:0 !important;
    justify-content:center !important;
    align-items:center !important;
    gap:26px !important;
    margin:0 !important;
  }
  #home .hv3-affiliation-link--cirad img{
    height:52px !important;
    width:auto !important;
  }
  #home .hv3-affiliation-link--biowooeb img{
    height:66px !important;
    width:auto !important;
  }
  /* Three quick links stay on one compact line on phones. */
  #home .hv3-navlinks{
    display:flex !important;
    flex-direction:row !important;
    flex-wrap:nowrap !important;
    justify-content:center !important;
    align-items:center !important;
    width:100% !important;
    gap:clamp(6px,2.5vw,12px) !important;
    margin-top:8px !important;
    text-align:center !important;
  }
  #home .hv3-navlink{
    flex:0 1 auto !important;
    min-width:0 !important;
    padding:3px 2px !important;
    border:0 !important;
    border-radius:0 !important;
    white-space:nowrap !important;
    font-size:clamp(9px,2.65vw,10.5px) !important;
    line-height:1.2 !important;
  }
}
@media (max-width:350px){
  #home .hv3-affiliation-row{gap:18px !important;}
  #home .hv3-affiliation-link--cirad img{height:46px !important;}
  #home .hv3-affiliation-link--biowooeb img{height:58px !important;}
  #home .hv3-navlinks{gap:5px !important;}
  #home .hv3-navlink{font-size:8.6px !important;}
}

/* ============================================================
   v62 performance layer — no visual change intended.
   ============================================================ */

/* --------------------------------------------------------------
   v62b · Compact mobile hero — requested legibility adjustment.
   Portrait slightly larger, and the role line and "Core expertise"
   line slightly larger. Both of those lines are white-space:nowrap,
   so the ceiling is set by the longest string in each language
   measured at 375px against the 343px content width:

     role line   EN 279px  FR ~302px  ES 328px  BM ~277px  @11.56px
     expertise   EN 317px  FR 336px   ES 366px  BM 296px   @10.70px

   Each language therefore gets the largest size that still fits on
   one line with a ~6px margin. Spanish has almost no headroom on the
   role line and already exceeds the width on the expertise line with
   its longest phrase, so those two stay at their current size rather
   than being pushed off screen.
   -------------------------------------------------------------- */
/* Scoped to 341px and up so the author's dedicated <=340px safety sizes for
   these two lines stay authoritative on the narrowest phones. */
@media (min-width:341px) and (max-width:600px){
  #home .hero-v3-inner{ grid-template-columns:74px minmax(0,1fr) !important; }
  #home .hv3-photo img{ width:74px !important; height:74px !important; }

  /* role line — default covers EN and BM (max fit 13.9px / 14.0px) */
  #home .hv3-title{ font-size:clamp(11.5px,3.55vw,13.5px) !important; }
  html[lang="fr"] #home .hv3-title{ font-size:clamp(11px,3.35vw,12.8px) !important; }
  html[lang="es"] #home .hv3-title{ font-size:clamp(10.8px,3.14vw,11.85px) !important; }

  /* "Core expertise" line — only EN and BM have room to grow */
  #home .hv3-spec,
  #home .hv3-typewriter{ font-size:clamp(10.2px,3.00vw,11.35px) !important; }
  html[lang="bm"] #home .hv3-spec,
  html[lang="bm"] #home .hv3-typewriter{ font-size:clamp(10.5px,3.20vw,12.1px) !important; }
  html[lang="fr"] #home .hv3-spec,
  html[lang="fr"] #home .hv3-typewriter,
  html[lang="es"] #home .hv3-spec,
  html[lang="es"] #home .hv3-typewriter{ font-size:clamp(10px,2.85vw,11.75px) !important; }
}
@media (max-width:340px){
  #home .hero-v3-inner{ grid-template-columns:66px minmax(0,1fr) !important; }
  #home .hv3-photo img{ width:66px !important; height:66px !important; }
}

/* --------------------------------------------------------------
   v62c · Education — the doctorate entry now matches the others.

   The doctorate row was originally a three-column grid (two logos +
   text) and its institution lines were shrunk and set to nowrap so
   they would fit that narrow third column. A later revision flattened
   every entry to display:block, but those two declarations survived,
   leaving the doctorate at 13.5px / 8.5px against 14px / 12px on the
   master's and engineering entries. Measured identical on desktop and
   phone. These rules restore one consistent scale.
   -------------------------------------------------------------- */
/* The other entries take 15.5px from the base .education-degree rule, and drop
   to 14px under the <=700px rule. The doctorate now follows the same two steps
   instead of its own 13.5px. */
#home .academic-col .education-entry--doctorate .education-degree,
#home .academic-col .education-entry--doctorate .education-degree span,
#home .education-entry--doctorate .education-degree,
#home .education-entry--doctorate .education-degree span{
  font-size:15.5px !important;
  line-height:1.32 !important;
}
@media (max-width:700px){
  #home .academic-col .education-entry--doctorate .education-degree,
  #home .academic-col .education-entry--doctorate .education-degree span,
  #home .education-entry--doctorate .education-degree,
  #home .education-entry--doctorate .education-degree span{
    font-size:14px !important;
  }
}
#home .academic-col .education-entry--doctorate .education-institutions li,
#home .academic-col .education-entry--doctorate .education-institutions li span,
#home .education-entry--doctorate .education-institutions li,
#home .education-entry--doctorate .education-institutions li span{
  font-size:12px !important;
  line-height:1.5 !important;
  letter-spacing:normal !important;
  white-space:normal !important;   /* the grid that required nowrap is long gone */
}


/* The Home mounts reserve space while their content-visibility subtree is not
   yet rendered. The shipped estimate was 900px for both, against measured
   heights of 336px (recognition) and 982px (press) on desktop, so the page
   jumped by several hundred pixels the moment each section painted. The values
   below are measured from the rendered sections at each breakpoint. */
@supports (content-visibility:auto){
  #home > #home-recognition-mount{ contain-intrinsic-size:auto 336px; }
  #home > #home-press-mount{ contain-intrinsic-size:auto 972px; }
  @media (max-width:700px){
    #home > #home-recognition-mount{ contain-intrinsic-size:auto 313px; }
    #home > #home-press-mount{ contain-intrinsic-size:auto 1967px; }
  }
}

/* ============================================================
   v63 - Publications only. No visual change where space already suffices.
   ============================================================ */

/* Note: .wrap also uses overflow-x:clip, which iOS 15 - the newest iOS an
   iPhone 7 runs - does not support, so .wrap does not constrain its children
   there. A fallback was considered and deliberately NOT added: overflow-x:hidden
   would turn .wrap into a scroll container and break the position:sticky
   #infrastructure .equipment-explorer-toolbar on those same devices, which is
   outside the authorised scope. html and body already carry that fallback, and
   the rules below remove the overflow at its source instead of clipping it. */

/* (b) Grid and flex items default to min-width:auto, which resolves to min-content.
   A single unbreakable token - a DOI, a long URL, a journal name - can therefore
   force a track wider than the screen and push the reference column out of view,
   which is the "two columns, only the first visible" symptom. Setting min-width:0
   lets the column shrink instead. It has no effect while the content already fits,
   so the iPhone 13 and desktop presentations are unchanged. */
#publications .pub.journal-publication > *,
#publications .review-list.simple li.peer-review-publication > *,
#publications .publication-reference,
#publications .pub-links{
  min-width:0;
}
#publications .pub-links > *{ max-width:100%; }
#publications .pub-live-metrics{ max-width:100%; }

/* (c) Safety net for the PlumX panel: it can never be wider than the screen.
   Its 160px default is untouched; this only engages on very narrow viewports.
   Horizontal placement is handled by the viewport-clamp module in the bundle. */
#publications .pub-live-metrics .ppp-pop{
  max-width:min(240px, calc(100vw - 20px));
}

/* ============================================================
   v65 - News only. Every value below is taken from the existing
   news cards (#1F5C8C blue, #1F7A4E date, #172A3A title,
   #334C5E body, 1.45/1 media box). No new token is introduced.
   ============================================================ */

/* ---- pinned featured card on Home -------------------------------------- */
/* Photographs fill the same frame the journal covers use. The frame, its
   proportion and the surrounding spacing are unchanged. */
/* The complete photograph is always shown: object-fit:contain keeps the whole
   original frame and its aspect ratio, exactly as the journal-cover cards
   already do. The photograph is scaled down to fit rather than cropped, and it
   is centred in the same frame the other two cards use, so the three cards keep
   identical geometry. The neutral ground matches the existing media frame. */
#home .home-news-media--photo{ padding:0 !important; background:rgba(255,255,255,.22) !important; }
#home .home-news-media--photo > img{
  display:block !important;
  width:100% !important;
  height:100% !important;
  object-fit:contain !important;
  object-position:center !important;
}

/* The excerpt and its control share one block, so "View more" closes the
   sentence instead of adding a second paragraph. Four lines maximum. */
#home .home-news-excerpt--featured{
  display:-webkit-box !important;
  -webkit-box-orient:vertical !important;
  -webkit-line-clamp:4 !important;
  overflow:hidden !important;
}
.home-news-more{
  display:inline;
  margin:0;
  padding:0;
  border:0;
  background:transparent;
  color:#1F5C8C;
  font-family:inherit;
  font-size:inherit;
  font-weight:600;
  line-height:inherit;
  text-align:left;
  white-space:nowrap;
  cursor:pointer;
}
.home-news-more:hover,
.home-news-more:focus-visible{
  color:#1F5C39;
  text-decoration:underline;
  text-underline-offset:3px;
}

/* ---- All News archive (#news) ------------------------------------------- */
#news .allnews{ margin-top:8px; }

#news .allnews-heading-row{
  display:flex;
  align-items:flex-end;
  justify-content:space-between;
  gap:18px;
  padding-bottom:10px;
  margin-bottom:16px;
  border-bottom:1px solid rgba(31,92,140,.20);
}
#news .allnews-heading-row .home-section-title{
  margin:0;
  padding-bottom:6px;
  border-bottom:3px solid #1F5C8C;
  width:auto;
}
#news .allnews-back{
  display:inline-flex;
  align-items:center;
  gap:7px;
  flex:0 0 auto;
  padding:0 0 6px;
  color:#1F5C8C;
  font-size:13px;
  font-weight:600;
  text-decoration:none;
}
#news .allnews-back:hover,
#news .allnews-back:focus-visible{
  color:#1F5C39;
  text-decoration:underline;
  text-underline-offset:4px;
}
#news .allnews-intro{
  max-width:760px;
  margin:0 0 26px;
  color:#334C5E;
  font-size:13.5px;
  line-height:1.66;
}

#news .allnews-list{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:clamp(24px,3.2vw,38px);
  margin:0;
  padding:0;
  list-style:none;
}
#news .allnews-list > li.home-news-card{
  display:flex;
  flex-direction:column;
  min-width:0;
  margin:0;
  padding:0;
  border:0;
  background:transparent;
}

#news .home-news-media{
  display:flex;
  align-items:center;
  justify-content:center;
  width:100%;
  aspect-ratio:1.45 / 1;
  margin:0 0 16px;
  padding:10px;
  overflow:hidden;
  background:rgba(255,255,255,.22);
}
#news .home-news-media .journal-identity img{
  display:block; width:100%; height:100%;
  max-width:100%; max-height:100%;
  object-fit:contain;
}
/* Archive previews follow the same rule: the whole photograph, never a crop. */
#news .home-news-media--photo{ padding:0; background:rgba(255,255,255,.22); }
#news .home-news-media--photo > img{
  display:block; width:100%; height:100%;
  object-fit:contain; object-position:center;
}

#news .home-news-title{
  margin:0 0 10px;
  color:#172A3A;
  font-size:15px;
  font-weight:700;
  line-height:1.45;
}
#news .home-news-date{
  margin:0 0 8px;
  color:#1F7A4E;
  font-size:12.5px;
  font-weight:600;
  line-height:1.3;
}
#news .home-news-excerpt{
  margin:0;
  color:#334C5E;
  font-size:12.8px;
  line-height:1.62;
}
#news .allnews-card:not(.is-open) .home-news-excerpt{
  display:-webkit-box;
  -webkit-box-orient:vertical;
  -webkit-line-clamp:4;
  overflow:hidden;
}
#news .home-news-card .pub-keywords,
#news .home-news-card .recent-project,
#news .home-news-card .publication-reference{ display:none !important; }

#news .allnews-full{
  margin-top:14px;
  padding-top:14px;
  border-top:1px solid rgba(31,92,140,.20);
}
#news .allnews-paragraph{
  margin:0 0 12px;
  color:#334C5E;
  font-size:12.9px;
  line-height:1.68;
  overflow-wrap:anywhere;
}
#news .allnews-extra{ margin:16px 0 0; }
/* Natural height keeps the whole frame; object-fit is stated explicitly so no
   later rule can turn this into a crop or a stretch. */
#news .allnews-extra img{
  display:block;
  width:100%;
  height:auto;
  max-width:100%;
  object-fit:contain;
}
#news .allnews-extra-caption{
  margin:7px 0 0;
  color:#4A5B6C;
  font-size:11.8px;
  line-height:1.5;
}

#news .allnews-sources{
  display:flex;
  flex-wrap:wrap;
  align-items:baseline;
  gap:6px 14px;
  margin-top:16px;
  padding-top:12px;
  border-top:1px solid rgba(31,92,140,.14);
}
#news .allnews-sources-label{ color:#4A5B6C; font-size:11.6px; font-weight:600; }
#news .allnews-source-link{
  color:#1F5C8C;
  font-size:11.8px;
  font-weight:600;
  text-decoration:none;
  overflow-wrap:anywhere;
}
#news .allnews-source-link:hover,
#news .allnews-source-link:focus-visible{
  text-decoration:underline;
  text-underline-offset:3px;
}
/* Discreet functional control, shown only while the article is open and kept
   outside the article body so it never reads as a line of the text. */
#news .allnews-close{
  display:none;
  margin:14px 0 0;
  padding:0;
  border:0;
  background:transparent;
  color:#1F5C8C;
  font-family:inherit;
  font-size:12px;
  font-weight:600;
  cursor:pointer;
}
#news .allnews-card.is-open > .allnews-close{
  display:block;
  align-self:flex-end;
  max-width:760px;
  width:100%;
  text-align:right;
}
#news .allnews-close:hover,
#news .allnews-close:focus-visible{
  color:#1F5C39;
  text-decoration:underline;
  text-underline-offset:3px;
}

/* An opened article takes the full row so the text keeps a readable measure. */
#news .allnews-list > li.home-news-card.is-open{ grid-column:1 / -1; }
#news .allnews-list > li.home-news-card.is-open .home-news-media--photo{
  max-width:520px;
  aspect-ratio:auto;
}
#news .allnews-list > li.home-news-card.is-open .home-news-media--photo > img{
  height:auto;
  object-fit:contain;   /* the complete photograph once the article is open */
}
#news .allnews-list > li.home-news-card.is-open .allnews-full,
#news .allnews-list > li.home-news-card.is-open .home-news-excerpt{ max-width:760px; }

@media (max-width:980px){
  #news .allnews-list{ grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media (max-width:700px){
  #news .allnews-list{ grid-template-columns:minmax(0,1fr); gap:26px; }
  #news .allnews-heading-row{ flex-wrap:wrap; align-items:flex-start; gap:10px; }
  #news .allnews-intro{ font-size:13px; margin-bottom:20px; }
  #news .allnews-list > li.home-news-card.is-open .home-news-media--photo{ max-width:100%; }
}

/* Adaptive fallback: when a language or viewport would push the control past
   the four-line clamp, the text takes three lines and the control the fourth,
   so "View more" can never be clipped. Total stays at four lines. */
#home .home-news-excerpt--featured.is-split{
  display:block !important;
  -webkit-line-clamp:none !important;
}
#home .home-news-excerpt--featured.is-split .home-news-excerpt-text{
  display:-webkit-box !important;
  -webkit-box-orient:vertical !important;
  -webkit-line-clamp:3 !important;
  overflow:hidden !important;
}
#home .home-news-excerpt--featured.is-split .home-news-more{ display:inline-block; }

/* --------------------------------------------------------------
   v66 - opened research-visit article layout.
   Photograph -> centred title -> centred date -> approved text.
   The four-line preview belongs to the card only; once the article
   is open it is hidden so the summary is never repeated. Cards that
   are closed are untouched, and no other section is affected.
   -------------------------------------------------------------- */
#news .allnews-card.is-open .home-news-excerpt{
  display:none !important;
}
#news .allnews-card.is-open .home-news-title,
#news .allnews-card.is-open .home-news-date{
  max-width:760px;
  width:100%;
  margin-inline:auto;
  text-align:center;
}
#news .allnews-card.is-open .home-news-title{ margin-bottom:8px; }
#news .allnews-card.is-open .home-news-date{ margin-bottom:18px; }
/* The complete photograph sits centred above the centred heading. */
#news .allnews-card.is-open .home-news-media--photo{
  margin-inline:auto;
}

/* --------------------------------------------------------------
   v67 - breathing room between News and Awards & Recognition.
   Measured: the two blocks met at 0px on both desktop and phone,
   while the rest of the Home rhythm keeps ~18px between blocks.
   Only the margin above the Awards mount changes; nothing inside
   either section is touched. The adjacent-sibling selector limits
   this to that single boundary.
   -------------------------------------------------------------- */
#home .updates + #home-recognition-mount{
  margin-top:16px;      /* ~22px of visual separation on desktop */
}
@media (max-width:700px){
  #home .updates + #home-recognition-mount{
    margin-top:32px;    /* phones need the clearer break */
  }
}

/* ============================================================
   v68 - four targeted corrections. Nothing else is affected.
   ============================================================ */

/* (1) Awards & Recognition on phones: the card was min(74vw,238px) inside a
   343px strip, so the award image sat left of the screen centre. Giving the
   card the full content width centres each image in the viewport as the strip
   advances. Card, image size, text and carousel are unchanged. */
@media (max-width:600px){
  #recognition .recognition-timeline--marquee .recognition-item{
    width:calc(100vw - 32px) !important;
    max-width:none !important;
  }
}

/* (2) The "Pause journal carousel" instruction is no longer shown. The control
   itself stays in the page for keyboard and screen-reader users, using the same
   visually-hidden technique the site already uses elsewhere. */
#publications .review-marquee-controls{
  position:absolute !important;
  width:1px !important;
  height:1px !important;
  margin:-1px !important;
  padding:0 !important;
  overflow:hidden !important;
  clip:rect(0 0 0 0) !important;
  clip-path:inset(50%) !important;
  white-space:nowrap !important;
  border:0 !important;
}

/* (3) Hover pauses the journal carousel and leaving resumes it, with no
   instruction on screen. The site already pauses it on keyboard focus; this
   adds the pointer equivalent, on hover-capable devices only. The JS-driven
   strips (Professional Profile, Languages) get the same behaviour from the
   shared marquee driver in the bundle. */
@media (hover:hover) and (pointer:fine){
  #publications .review-marquee:hover .review-marquee-track{
    animation-play-state:paused;
  }
}

/* ===================== v69 · two mobile-only corrections ===================== *
   Both blocks below are inside phone-width media queries, so the desktop
   layout is not reachable by any of these rules.                              */

/* (1) PEER REVIEW - the journal image was not centred on phones.
   Below 600px the review row already stacks (grid-template-columns:1fr), but
   the image box keeps a fixed width of clamp(68px,22vw,86px), so as a grid item
   in a full-width column it stayed pinned to the left edge - measured at 375px
   it sat at x=18 with the screen centre at 187. Centring the grid item leaves
   its size, aspect ratio, object-fit:contain and the surrounding text exactly
   as they are: the image is only moved, never scaled or cropped. */
@media (max-width:600px){
  /* An earlier phone rule (".. keep the desktop relation: cover at left") pins
     the row to two columns with !important, so the image stayed in an 83px left
     column - centring it inside that column moves nothing. The Peer Review row
     is stacked instead, which is the adaptation asked for, and the image is
     then centred across the full content width. Only Peer Review is stacked;
     the Articles rows keep their cover-left relation untouched. */
  #publications .review-list.simple li.peer-review-publication{
    grid-template-columns:minmax(0,1fr) !important;
    justify-items:center !important;
    gap:8px !important;
  }
  #publications .review-list.simple li.peer-review-publication > .journal-identity{
    justify-self:center !important;
    margin-inline:auto !important;
  }
  /* The reference text keeps its own alignment; only the image is centred. */
  #publications .review-list.simple li.peer-review-publication > .peer-review-info{
    justify-self:stretch !important;
    width:100% !important;
  }
}

/* (2) PEER REVIEW CAROUSEL - a tap could freeze it and leave a card half cut.
   The carousel pauses on :hover and :focus-within. Neither is gated to real
   pointing devices, and on a touch screen both stick: tapping a journal link
   emulates hover and puts focus inside the strip, so the animation stops for
   good. The strip clips with overflow:hidden, so whichever card was crossing
   the right edge at that instant stays permanently half-visible - it cannot be
   scrolled to and pinch-zooming cannot reveal it, because the content is
   clipped rather than off-page. That is the publication that appears "split in
   two with the right half outside the screen".

   On touch devices the two pointer-driven pauses are released so the strip
   keeps moving and every card comes fully into view in turn. The explicit
   pause control (.is-user-paused) is listed last and still wins, so the
   keyboard/screen-reader pause keeps working. Desktop hover-to-pause is
   untouched: this block cannot match a device with a fine pointer. */
@media (hover:none),(pointer:coarse){
  #publications .review-marquee:hover .review-marquee-track,
  #publications .review-marquee:focus-within .review-marquee-track{
    animation-play-state:running;
  }
  #publications .review-marquee.is-user-paused .review-marquee-track{
    animation-play-state:paused;
  }
}

/* ===================== v70 · Publications, phone widths only ================= *
   Measured at 320/360/375/390/414/430px with every accordion open: no element
   of the site's own markup exceeds the viewport or its parent, and all 24 DOI
   links sit inside the screen. The one part of a publication whose width the
   site does not control is the third-party metrics area - PlumX and Altmetric
   inject their own markup, and .pub-live-metrics is sized with width:max-content,
   which grows to whatever those widgets report. max-width:100% caps that box but
   does not stop the injected children from sticking out of it, which is how a
   publication ends up with a strip beyond the right edge that cannot be reached.

   The rules below cap the metrics area and its injected descendants to the
   column and let them wrap onto a second line. Nothing is hidden, cropped or
   removed: the badges, counts and links stay in place and stay clickable, they
   simply reflow inside the available width instead of defining it. Phone widths
   only - the desktop metrics row is not reachable from here. */
@media (max-width:600px){
  #publications .pub-live-metrics{
    width:auto !important;
    max-width:100% !important;
    min-width:0 !important;
    flex-wrap:wrap !important;
    overflow-wrap:anywhere;
  }
  #publications .pub-live-metrics > *,
  #publications .pub-live-metrics [class*="plumx"],
  #publications .pub-live-metrics [class*="altmetric"],
  #publications .pub-live-metrics iframe,
  #publications .pub-live-metrics img,
  #publications .pub-live-metrics embed,
  #publications .pub-live-metrics object{
    max-width:100% !important;
    min-width:0 !important;
  }
  /* A publication row must always be able to shrink to the column: an
     unshrinkable grid or flex child is what pushes the right half off-screen. */
  #publications .pub.journal-publication > *,
  #publications .publication-reference,
  #publications .peer-review-info{
    min-width:0 !important;
  }
}

/* ===================== v71 · Publications keywords/metrics on phones ========= *
   Root cause of the publication that runs past the right edge.

   The keyword pills and metric chips are injected by the bundle with:
     .pub-keywords   {display:flex; flex-wrap:wrap;}
     .publication-keyword {display:inline-flex; width:auto;}
     .publication-keyword__label {white-space:normal;}
   A flex item defaults to min-width:auto, which means a pill can never become
   narrower than its own text. .pub-keywords wraps pills onto new lines, but a
   SINGLE pill whose term is longer than the content column cannot shrink and
   cannot break its text, so it sticks out beyond the column and beyond the
   screen. The content column is only about 190px wide on a 320px phone, so
   whether this happens depends on the length of the term, the viewport and the
   language - which is why some phones show it and others do not.

   Below, the pills are allowed to shrink to the column and to break a long term
   across lines. Nothing is hidden, removed or made unclickable: the same pills,
   the same text and the same filter behaviour, simply reflowed to fit. The
   injected <style> is appended after this sheet, so !important is required to
   win against it. Phone widths only - desktop pills are untouched. */
@media (max-width:600px){
  #publications .pub-keywords,
  #publications .pub-metrics,
  #publications .pub-content{
    min-width:0 !important;
    max-width:100% !important;
  }
  #publications .publication-keyword,
  #publications .pub-metric{
    min-width:0 !important;
    max-width:100% !important;
  }
  #publications .publication-keyword__label,
  #publications .pub-metric > span,
  #publications .pub-filter-active{
    min-width:0 !important;
    overflow-wrap:anywhere !important;
  }
  /* The DOI is a single unbreakable token; it must be allowed to break too. */
  #publications .publication-reference a,
  #publications .pub-doi,
  #publications a[href*="doi.org"]{
    overflow-wrap:anywhere !important;
    word-break:break-word !important;
  }
}

/* ===================== v72 · (1) Scientific Fingerprint · (2) mobile search === */

/* (1) Each discipline shows three rows of badges and expands on request. The
   badges, their order, their ring values and the sort controls are untouched;
   only the visible height of the container changes. */
.fingerprint-badges.is-clamped{
  overflow:hidden;
  transition:max-height .34s cubic-bezier(.4,0,.2,1);
}
@media (prefers-reduced-motion:reduce){
  .fingerprint-badges.is-clamped{transition:none;}
}
.fingerprint-discipline .fingerprint-more{
  display:block;
  margin:9px 0 0 auto;              /* bottom-right of its own block */
  padding:3px 1px;
  background:none;
  border:0;
  font:600 12.5px/1.2 var(--font-interface,"Roboto","Helvetica Neue",Arial,sans-serif);
  color:#1F5C8C;
  cursor:pointer;
  text-decoration:underline;
  text-underline-offset:3px;
  text-decoration-thickness:1px;
}
.fingerprint-discipline .fingerprint-more:hover{color:#14496f;}
.fingerprint-discipline .fingerprint-more:focus-visible{
  outline:3px solid rgba(31,92,140,.4);
  outline-offset:2px;
  border-radius:4px;
}

/* ===================== v73 · hero name, phones only ========================= *
   The name is enlarged by about 12%. It already carries white-space:nowrap, so
   it cannot break onto a second line; the measured spare width before this
   change was 81px at 390px and 72px at 320px, so the larger size still leaves
   a wide margin on the narrowest phones. The Bambara variant and the <=340px
   step are raised by the same proportion, keeping the four languages
   consistent. Alignment, weight, colour and the grid placement are unchanged,
   and no rule here can apply above 600px. */
@media (max-width:600px){
  #home .hv3-name{
    font-size:clamp(19px,5.9vw,23.5px) !important;
  }
  html[lang="bm"] #home .hv3-name{
    font-size:clamp(16px,4.85vw,19.5px) !important;
  }
}
@media (max-width:340px){
  #home .hv3-name{
    font-size:17.5px !important;
  }
  html[lang="bm"] #home .hv3-name{
    font-size:14.5px !important;
  }
}

/* ===================== v74 · three targeted corrections ===================== */

/* (4) FEATURED RESEARCH - the blue category label sits on top of the title.
   The label is position:absolute at top:8px inside .featured-project-image and
   overhangs into the text column, while .featured-project-result-description is
   align-self:center, so where it lands depends on the height of each image.
   Measured before: "CFD simulation" and "Experimental" left 1px between the
   label and the heading, and most other items left 0. The one that looked right
   ("CFD multiphysics coupling", 50px) was only lucky - its image is taller.
   Reserving part of the label's band on the text column separates the two. The
   rule is scoped to the two items that actually collided, so the multiphysics
   item keeps the 50px it already had. The label itself is not touched: same
   position, background, colour, size and radius. */
#area2 .featured-projects .featured-project-result--hydrodynamics .featured-project-result-description{
  padding-top:40px;
}

/* (5) ONGOING PROJECTS - drop the decorative left rule on the project cards.
   Only the border is removed; the card keeps its background, remaining borders,
   radius, shadow and padding. */
#projects #proj-ongoing + .rs-block-intro + .project-cards .pcard,
#projects .project-cards .pcard{
  border-left:0 !important;
}

/* (6) The active status reads as a warning in amber (#B45309). It becomes the
   site's own green, the same --ds-green already used by the project labels, so
   an ongoing project reads as active. Wording, weight and typography unchanged;
   "Completed" keeps its own colour. */
#projects .pcard-status[data-i18n="status_ongoing"]{
  color:var(--ds-green,#1F5C39) !important;
}

/* ===================== v75 · All News separators on phones ================== *
   Below 700px the archive collapses to a single column with a 26px gap and the
   cards carry border:0, so consecutive entries ran together with nothing between
   them. A hairline in the site's own --rule tone now sits midway between them:
   the adjacent-sibling selector means the first entry never gets one, and since
   the cards have no borders of their own there is no doubling. Desktop and
   tablet, where the grid already separates the entries into columns, are not
   reachable by this rule. */
@media (max-width:700px){
  #news .allnews-list > li.home-news-card + li.home-news-card{
    padding-top:26px;
    border-top:1px solid var(--rule,rgba(29,41,53,.14));
  }
}

/* ===================== v76 · Opportunities + one-line nav ================== */

/* (1) "Opportunities and Contact" is far longer than "Contact". The desktop bar
   keeps it on one line by never allowing the top-level labels to wrap and by
   tightening the gap slightly instead of shrinking the type. */
@media (min-width:901px){
  .site-nav .nav-links{ gap:8px; }
  .site-nav .nav-links .nav-link{
    white-space:nowrap;
    padding-left:5px;
    padding-right:5px;
  }
}
/* Below ~1200px the six labels plus the search field and the language selector
   no longer fit at the default rhythm, so the horizontal padding tightens once
   more. The type size is deliberately left alone at every step. */
@media (min-width:901px) and (max-width:1200px){
  .site-nav .nav-links{ gap:5px; }
  .site-nav .nav-links .nav-link{ padding-left:3px; padding-right:3px; }
}

/* (2) Opportunities — three compact summary cards.
   The header shell was capped at 1096px, which left the six navigation labels
   competing with the search field and the language selector once "Contact"
   became "Opportunities and Contact". The shell is widened so the bar has room
   before any type is touched. */
.site-nav .inner{
  max-width:1200px !important;   /* midpoint: 1096 was too tight for bm, 1280 too wide */
  gap:10px !important;
}
/* Two groups on the bar: the six navigation labels on the left, and the utility
   controls on the right. .nav-search sits inside .nav-menu in the markup, so it
   is pushed to that container's right edge with an auto margin rather than being
   re-parented - the burger menu below 901px keeps relying on it being there.
   The language selector then follows immediately, separated only by the .inner
   gap, so Search and the selector read as one group. */
@media (min-width:901px){
  .site-nav .nav-menu{ flex:1 1 auto; gap:12px; }
  .site-nav .nav-links{ flex:0 0 auto; }
  .site-nav .nav-search{ margin-left:auto; }
  .site-nav .lang-switch{ margin-left:0; }
}

/* The Opportunities heading sits inside #contact, where section titles are
   forced to width:fit-content, which cut its rule short. It returns to the
   site's default full-width divider used by the other major headings. */
#contact .opportunities-block .section-intro-title{
  display:block !important;
  width:auto !important;
  max-width:none !important;
}

.opportunities-block{ margin:0 0 clamp(18px,2.4vw,26px); }

/* One continuous paragraph across the usable width - no artificial column. */
.opportunities-block .opp-intro{
  max-width:none;
  margin:0 0 18px;
  color:var(--ink-soft,#334C5E);
  font-size:15px;
  line-height:1.7;
}
.opportunities-block .opp-previous-title{
  margin:18px 0 12px;
  font:700 clamp(15px,1.5vw,17px)/1.3 var(--font-heading,"Roboto",Arial,sans-serif);
  color:#1F5C8C;
}

/* Desktop: exactly three columns. The cards stretch to the tallest of the row,
   so a three-line and a five-line title still line up. */
.opportunities-block .opp-list-root{
  list-style:none; margin:0; padding:0;
  display:grid; grid-template-columns:repeat(3,minmax(0,1fr));
  gap:16px; align-items:stretch;
}
.opportunities-block .opp-card{
  display:flex; flex-direction:column; min-width:0;
  border:1px solid var(--rule,rgba(29,41,53,.14));
  border-radius:12px; background:rgba(255,255,255,.72);
  padding:15px 16px;
}
.opportunities-block .opp-card-head{ display:block; }
.opportunities-block .opp-card-meta{
  display:flex; flex-wrap:wrap; align-items:center; gap:8px; margin-bottom:9px;
}
.opportunities-block .opp-kind{
  font:600 11px/1.2 var(--font-interface,"Roboto",Arial,sans-serif);
  letter-spacing:.04em; text-transform:uppercase; color:#1F5C8C;
}
/* CLOSED reuses #B42318, the red already used by the Completed project status. */
.opportunities-block .opp-status{
  font:700 10px/1 var(--font-interface,"Roboto",Arial,sans-serif);
  letter-spacing:.07em; text-transform:uppercase;
  padding:4px 8px; border-radius:999px; border:1px solid transparent;
}
.opportunities-block .opp-status--closed{
  color:#B42318; background:rgba(180,35,24,.08); border-color:rgba(180,35,24,.26);
}
.opportunities-block .opp-status--open{
  color:#1F5C39; background:rgba(31,92,57,.10); border-color:rgba(31,92,57,.30);
}
/* The exact scientific title, wrapped by the browser inside the card. */
.opportunities-block .opp-card-title{
  margin:0 0 9px; min-width:0;
  font:650 14.5px/1.45 var(--font-heading,"Roboto",Arial,sans-serif);
  color:#15231c; overflow-wrap:break-word;
}
.opportunities-block .opp-card-date{
  margin:0 0 12px; color:var(--ink-soft,#334C5E);
  font:500 12.5px/1.4 var(--font-interface,"Roboto",Arial,sans-serif);
}
/* Pinned to the bottom so the action sits on one line across all three cards. */
.opportunities-block .opp-toggle{
  margin-top:auto; align-self:flex-start;
  display:inline-flex; align-items:center; gap:7px;
  padding:0; background:none; border:0; cursor:pointer;
  font:600 13px/1.2 var(--font-interface,"Roboto",Arial,sans-serif); color:#1F5C8C;
}
.opportunities-block .opp-toggle:hover{ color:#14496f; }
.opportunities-block .opp-toggle:focus-visible{
  outline:3px solid rgba(31,92,140,.4); outline-offset:3px; border-radius:4px;
}
.opportunities-block .opp-toggle-icon{
  flex:0 0 13px; width:13px; height:13px; position:relative;
}
.opportunities-block .opp-toggle-icon::before,
.opportunities-block .opp-toggle-icon::after{
  content:""; position:absolute; left:0; right:0; top:5.5px; height:2px;
  background:currentColor; border-radius:1px; transition:transform .25s ease;
}
.opportunities-block .opp-toggle-icon::after{ transform:rotate(90deg); }
.opportunities-block .opp-card.is-open .opp-toggle-icon::after{ transform:rotate(0deg); }

/* An opened card takes the whole row, the same behaviour the News archive uses,
   so the full record is readable instead of being squeezed into one third. */
.opportunities-block .opp-card.is-open{ grid-column:1 / -1; }
.opportunities-block .opp-panel{ margin-top:14px; }
.opportunities-block .opp-fields{
  display:grid; grid-template-columns:minmax(0,auto) minmax(0,1fr);
  gap:6px 16px; margin:0 0 14px;
}
.opportunities-block .opp-field-label{
  margin:0; font:600 12.5px/1.5 var(--font-interface,"Roboto",Arial,sans-serif);
  color:#1F5C8C; white-space:nowrap;
}
.opportunities-block .opp-field-value{
  margin:0; min-width:0; overflow-wrap:break-word;
  font-size:13.5px; line-height:1.55; color:var(--ink,#15231c);
}
.opportunities-block .opp-block-title{
  margin:14px 0 5px; font:700 13.5px/1.35 var(--font-heading,"Roboto",Arial,sans-serif); color:#1F5C8C;
}
.opportunities-block .opp-block-text{
  margin:0 0 8px; font-size:14px; line-height:1.65; color:var(--ink-soft,#334C5E);
}
.opportunities-block .opp-list,
.opportunities-block .opp-contacts{
  margin:0 0 10px; padding-left:20px; font-size:14px; line-height:1.6; color:var(--ink-soft,#334C5E);
}
.opportunities-block .opp-contacts{ list-style:none; padding-left:0; }
.opportunities-block .opp-contacts a{ color:#1F5C8C; overflow-wrap:break-word; }

/* Controlled gap into Contact; the divider that used to sit here is gone. */
#contact .opportunities-block + .plain-page-heading{ margin-top:clamp(20px,2.6vw,30px); }

@media (max-width:980px){
  .opportunities-block .opp-list-root{ grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media (max-width:640px){
  .opportunities-block .opp-list-root{ grid-template-columns:minmax(0,1fr); gap:13px; }
  .opportunities-block .opp-card{ padding:13px 14px; }
  .opportunities-block .opp-fields{ grid-template-columns:minmax(0,1fr); gap:2px 0; }
  .opportunities-block .opp-field-label{ white-space:normal; margin-top:8px; }
}
@media (prefers-reduced-motion:reduce){
  .opportunities-block .opp-toggle-icon::before,
  .opportunities-block .opp-toggle-icon::after{ transition:none; }
}

/* ===================== v77 · Education typography on phones ================= *
   Before: the doctorate title was set to 13.5px while the other two took 14px,
   and its institution lines were squeezed to clamp(8.5px,2.45vw,10.5px) with
   white-space:nowrap so they could never wrap - two entries at 12.5px next to
   one at 8.5px. The degree titles now share one size and one weight, and the
   institution lines share another, smaller one. Longer titles simply wrap to a
   second line instead of being shrunk. Phone widths only. */
@media (max-width:700px){
  /* One shared degree style for PhD, Master's and Engineering. */
  #home .education-degree,
  #home .education-degree span,
  #home .academic-col .education-entry--doctorate .education-degree,
  #home .academic-col .education-entry--doctorate .education-degree span,
  #home .education-entry--doctorate .education-degree,
  #home .education-entry--doctorate .education-degree span{
    font-size:15px !important;
    line-height:1.3 !important;
    font-weight:700 !important;
    white-space:normal !important;   /* free to use a second line */
    max-width:100% !important;
  }
  /* One shared institution style, kept clearly below the degree in the
     hierarchy. Wrapping stays possible so nothing is ever clipped. */
  #home .education-institutions li,
  #home .education-institutions li span,
  #home .education-entry--doctorate .education-institutions li,
  #home .education-entry--doctorate .education-institutions li span{
    font-size:11.5px !important;
    line-height:1.38 !important;
    font-weight:400 !important;
    white-space:normal !important;
    letter-spacing:-.005em !important;
    overflow-wrap:break-word;
  }
  /* Reclaim the width the bullet indent was taking, so the longest institution
     names get as close to a single line as the shared size allows. */
  #home .education-institutions{ padding-left:13px !important; }
  #home .education-institutions li{ padding-left:11px !important; }
}

/* A more specific rule elsewhere kept the doctorate's first institution at 12px
   while the others resolved to 11.5px. Raising the specificity here makes the
   institution size genuinely uniform across the three entries. */
@media (max-width:700px){
  #home .academic-col .education-list .education-institutions li,
  #home .academic-col .education-list .education-institutions li span,
  #home .education-list .education-entry .education-institutions li,
  #home .education-list .education-entry .education-institutions li span{
    font-size:11.5px !important;
    line-height:1.38 !important;
    font-weight:400 !important;
    white-space:normal !important;
  }
}

/* v78 — the awards dialog is moved to document.body, so its rules can no longer
   be scoped under #recognition. Same visual design, correct containing block. */
.recognition-zoom-overlay.is-lightbox{
  position:fixed; inset:0; z-index:4000;
  display:none; align-items:center; justify-content:center;
  padding:clamp(12px,3vw,28px);
  background:rgba(12,22,32,.82);
  overscroll-behavior:contain;
}
.recognition-zoom-overlay.is-lightbox.is-open{display:flex;}
.recognition-zoom-overlay.is-lightbox .recognition-zoom-dialog{
  position:relative;
  display:flex; flex-direction:column; align-items:center; gap:12px;
  max-width:min(94vw,1100px); max-height:92vh;
  padding:clamp(12px,2vw,18px);
  background:#fff; border-radius:14px;
  box-shadow:0 24px 60px rgba(8,18,28,.38);
}
/* The whole picture stays visible; never cropped, never upscaled past its box. */
.recognition-zoom-overlay.is-lightbox #recognition-zoom-image{
  display:block; max-width:100%; max-height:calc(92vh - 120px);
  width:auto; height:auto; object-fit:contain; border-radius:8px;
}
.recognition-zoom-overlay.is-lightbox .recognition-zoom-caption{
  margin:0; max-width:70ch; text-align:center;
  font:600 clamp(13px,1.5vw,15.5px)/1.45 var(--font-interface,"Roboto",Arial,sans-serif);
  color:var(--ink,#15231c);
}
.recognition-zoom-overlay.is-lightbox .recognition-zoom-close{
  position:absolute; top:-14px; right:-14px;
  width:40px; height:40px; min-width:40px;   /* comfortable touch target */
  display:flex; align-items:center; justify-content:center;
  padding:0; border:1px solid rgba(29,41,53,.16); border-radius:50%;
  background:#fff; color:#15231c; font-size:19px; line-height:1; cursor:pointer;
  box-shadow:0 6px 18px rgba(8,18,28,.28);
}
.recognition-zoom-overlay.is-lightbox .recognition-zoom-close:hover{background:#f2f6f9;}
.recognition-zoom-overlay.is-lightbox .recognition-zoom-close:focus-visible{
  outline:3px solid rgba(31,92,140,.5); outline-offset:2px;
}
@media (max-width:600px){
  .recognition-zoom-overlay.is-lightbox{padding:14px;}
  .recognition-zoom-overlay.is-lightbox .recognition-zoom-dialog{max-width:100%;}
  .recognition-zoom-overlay.is-lightbox .recognition-zoom-close{top:-10px; right:-10px;}
  .recognition-zoom-overlay.is-lightbox #recognition-zoom-image{max-height:calc(92vh - 140px);}
}

/* ===================== v79 · Awards strip: touch interaction ================ *
   The strip paused on :hover and :focus-within with no pointer gating. On a
   touch screen both stick: tapping a card emulates hover and puts focus inside
   the strip (the cards are focusable controls), so a single tap left the
   animation paused for good. The pause is now limited to real pointing devices,
   and touch gets a drag gesture instead. */
@media (hover:none),(pointer:coarse){
  #recognition .recognition-marquee:hover .recognition-timeline--marquee,
  #recognition .recognition-marquee:focus-within .recognition-timeline--marquee{
    animation-play-state:running !important;
  }
  /* The open detail dialog still pauses it - that one is deliberate. */
  #recognition.recognition-modal-open .recognition-timeline--marquee{
    animation-play-state:paused !important;
  }
}

/* Vertical page scrolling stays native; only horizontal panning is claimed. */
#recognition .recognition-marquee{ touch-action:pan-y; }

/* While a finger or pointer is held down the strip is driven by hand. */
#recognition .recognition-marquee.is-dragging .recognition-timeline--marquee{
  animation-play-state:paused !important;
}
#recognition .recognition-marquee.is-dragging{ cursor:grabbing; user-select:none; }
