/* FRANCISCO DIONÍSIO — academic website. Edit colours in :root. */
@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Manrope:wght@400;500;600;700;800&display=swap');
:root{--ink:#101f27;--ink-deep:#0c1921;--ink-2:#24343a;--cream:#f8f7f3;--paper:#f0f0eb;--white:#fff;--muted:#66737a;--line:#d9dedc;--accent:#c9b78a;--aqua:#a0d2cd;--sans:'DM Sans',Arial,sans-serif;--head:'Manrope',Arial,sans-serif;--serif:Georgia,'Times New Roman',serif;--container:1240px}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:85px}body{margin:0;color:var(--ink);background:var(--cream);font-family:var(--sans);-webkit-font-smoothing:antialiased}a{color:inherit;text-decoration:none}button,input,select{font:inherit}button{cursor:pointer}img{max-width:100%;display:block}::selection{background:#9ccbc3;color:var(--ink)}.container{max-width:var(--container);padding:0 44px;margin:0 auto}.visually-hidden{position:absolute;width:1px;height:1px;clip:rect(0,0,0,0);overflow:hidden;white-space:nowrap}.skip-link{position:absolute;left:1rem;top:-100px;background:white;color:black;padding:1rem;z-index:100}.skip-link:focus{top:1rem}a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid #78b7bb;outline-offset:4px}
/* Navigation */
.site-header{position:sticky;top:0;z-index:30;background:rgba(248,247,243,.95);backdrop-filter:blur(12px);border-bottom:1px solid rgba(15,29,36,.09)}.nav-inner{display:flex;min-height:90px;justify-content:space-between;align-items:center;gap:30px}.wordmark{display:flex;align-items:center;gap:16px;flex-shrink:0}.wordmark-symbol{font:800 33px/1 var(--head);letter-spacing:-3px}.wordmark-symbol span,.accent-dot{color:#8ca6a0}.wordmark-divider{height:33px;width:1px;background:#cbd0cb}.wordmark-label{font:700 11px/1.35 var(--head);letter-spacing:2px}.wordmark-label small{display:block;font:500 9px/1.6 var(--sans);letter-spacing:2.4px;color:#6a787b;margin-top:3px}.main-nav{display:flex;align-items:center;gap:29px}.main-nav>a{font-size:12px;font-weight:700;transition:color .2s;white-space:nowrap}.main-nav>a:hover{color:#458983}.main-nav .nav-contact{padding:13px 18px;border:1px solid #23343c}.nav-contact span{margin-left:13px}.menu-button{display:none;background:none;border:0;width:44px;height:44px;padding:10px;flex-direction:column;justify-content:center;gap:5px}.menu-button span{display:block;height:2px;width:100%;background:var(--ink)}
/* Hero */
.hero{position:relative;background:var(--ink-deep);color:var(--white);overflow:hidden}.hero-grain{position:absolute;inset:0;background-image:radial-gradient(#b1cccb11 .7px,transparent .7px);background-size:12px 12px;pointer-events:none;opacity:.5}.hero-grid{position:relative;display:grid;grid-template-columns:1.08fr .92fr;gap:6.5%;padding-top:106px;padding-bottom:98px;align-items:center}.hero-copy{max-width:700px}.eyebrow,.section-kicker{font-family:var(--head);font-weight:700;letter-spacing:2.1px;font-size:10px}.eyebrow{display:flex;align-items:center;gap:12px;color:#b9d4d3;line-height:1.8;white-space:normal}.eyebrow-rule{width:23px;height:1px;background:var(--aqua)}.hero-dot{width:4px;height:4px;background:var(--accent);border-radius:50%}.hero h1{font:700 clamp(52px,5.25vw,84px)/1.08 var(--head);letter-spacing:-4.6px;margin:28px 0 28px}.hero h1 em,.section-heading em,.contact-section h2 em{font-family:var(--serif);font-weight:400;letter-spacing:-2.6px}.hero h1 em{color:#c3d9d1}.headline-period{color:var(--accent)}.hero-lead{font-size:18px;line-height:1.75;color:#d4dfe0;max-width:565px;margin:0 0 24px}.hero-role{font-size:13px;line-height:1.9;color:#a7babd;margin-bottom:40px}.hero-role span{color:var(--accent);padding:0 6px}.hero-actions{display:flex;align-items:center;gap:32px;flex-wrap:wrap}.button{display:inline-flex;align-items:center;justify-content:space-between;gap:25px;padding:18px 22px;font-weight:700;font-size:12px;transition:background .22s,transform .22s}.button:hover{transform:translateY(-2px)}.button-light{background:#f2f3ee;color:var(--ink)}.button-light:hover{background:#dcece9}.text-link{font-size:12px;font-weight:700;border-bottom:1px solid transparent;padding:8px 0}.text-link:hover{border-color:currentColor}.text-link-light{color:#e0e7e7}.text-link span{margin-left:10px}.hero-art{position:relative;min-width:0;align-self:stretch;min-height:485px;display:flex;justify-content:center;align-items:center}.art-inner{width:100%;height:100%;border:1px solid #52636a6c;padding:27px;display:flex;flex-direction:column;justify-content:space-between;background:radial-gradient(ellipse at 52% 45%,#25434d80,transparent 66%)}.art-inner img{object-fit:contain;max-height:395px;height:75%;width:100%}.art-topline,.art-bottomline{display:flex;align-items:center;justify-content:space-between;gap:10px;font:600 9px var(--head);letter-spacing:2px;color:#93b7b7}.art-bottomline{color:#a9b5b4}.art-seal{width:49px;height:49px;border:1px solid #a6b7b955;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:8px}.art-corner{position:absolute;width:42px;height:42px;border-color:var(--accent);z-index:2}.art-corner-tl{top:-7px;left:-7px;border-left:2px solid;border-top:2px solid}.art-corner-br{bottom:-7px;right:-7px;border-bottom:2px solid;border-right:2px solid}.hero-bottom{position:relative;display:flex;justify-content:space-between;gap:15px;padding-bottom:25px;color:#81999a;font:700 10px var(--head);letter-spacing:1.7px}.hero-scroll{color:#c9d6d7}.hero-scroll span{margin-left:16px}
/* Metrics */
.metrics-band{background:#e8ede9;padding:65px 0 39px}.metrics-band .container{display:grid;grid-template-columns:210px 1fr;column-gap:50px}.section-kicker{color:#4a716f}.metrics-intro h2{font:700 24px/1.28 var(--head);letter-spacing:-.9px;margin:16px 0}.metrics-grid{display:grid;grid-template-columns:repeat(4,1fr)}.metric{border-left:1px solid #c7d0cb;padding:3px 18px 8px 30px}.metric strong{display:block;font:600 37px/1.2 var(--head);letter-spacing:-1.8px}.metric strong span{color:#8da9a5;padding:0 3px}.metric-last strong{font-size:29px;letter-spacing:-1.2px;margin-top:6px;margin-bottom:7px;white-space:nowrap}.metric>span{display:block;color:#526166;font-size:11px;margin-top:8px}.snapshot-note{grid-column:2;font-size:10px;color:#6b7978;margin:25px 0 0}
/* Global sections */
.section{padding:118px 0}.split-layout{display:grid;grid-template-columns:210px minmax(0,1fr);gap:50px}.section-index{color:#879f9d}.section-heading{font:700 clamp(38px,4vw,59px)/1.22 var(--head);letter-spacing:-2.7px;margin:18px 0 38px;max-width:810px}.section-heading em{color:#668883}.section-side{position:relative}.side-mark{display:flex;gap:7px;margin-top:130px}.side-mark span{background:#89a6a0;width:8px;height:8px;border-radius:50%}.side-mark span:nth-child(2){opacity:.7}.side-mark span:nth-child(3){opacity:.43}.side-mark span:nth-child(4){opacity:.2}.about-section{background:var(--cream)}.about-columns{display:grid;grid-template-columns:1fr 1fr;gap:42px}.about-columns p,.academic-grid p{font-size:15px;color:#526168;line-height:1.95;margin-top:0}.lead-paragraph{font-size:21px!important;line-height:1.7!important;color:#253940!important;margin-top:0;font-weight:500}.inline-arrow{display:inline-block;border-bottom:1px solid #8fa6a2;padding:5px 0 11px;font-weight:700;font-size:13px;margin-top:25px}.inline-arrow span{margin-left:37px}.inline-arrow:hover{color:#467e7b}
/* Research cards */
.research-section{background:#eceee9}.section-header{display:flex;justify-content:space-between;gap:35px;align-items:end;margin-bottom:47px}.section-header .section-heading{margin-bottom:0}.section-header>p{max-width:310px;color:#657377;line-height:1.75;font-size:14px;margin:0 0 7px}.research-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:15px}.research-card{min-height:370px;background:#fafaf7;padding:30px 26px 26px;display:flex;flex-direction:column;transition:transform .2s,box-shadow .2s}.research-card:hover{transform:translateY(-5px);box-shadow:0 16px 45px #162e3220}.research-card-head{display:flex;justify-content:space-between;align-items:center;font:700 11px var(--head);letter-spacing:2px;color:#78938d}.research-icon{font-size:31px;color:#6d9a91;font-weight:400}.research-card h3{font:700 19px/1.35 var(--head);letter-spacing:-.5px;margin:35px 0 15px}.research-card p{font-size:13px;line-height:1.8;color:#637177;flex:1;margin:0 0 24px}.research-tag{font:700 9px var(--head);letter-spacing:1.35px;color:#4f7873}
/* Featured work */
.feature-section{background:var(--ink);color:white}.feature-section .section-kicker,.feature-section .section-index{color:#9cbbba}.feature-section .section-heading em{color:#bcceca}.section-header.compact{align-items:end}.feature-section .inline-arrow{color:#d6e5e4;border-color:#819d9d}.feature-list{border-top:1px solid #42545c}.feature-row{padding:30px 16px 30px 0;border-bottom:1px solid #42545c;display:grid;grid-template-columns:80px 1fr 44px;gap:20px;transition:background .2s,padding .2s}.feature-row:hover{background:#1a313a;padding-left:16px}.feature-number{font:600 13px var(--head);color:#91aaa9;padding-top:7px}.feature-label{font:700 10px var(--head);letter-spacing:1.45px;color:#91b3ae}.feature-row h3{font:600 clamp(20px,2.15vw,28px)/1.35 var(--head);letter-spacing:-.8px;margin:9px 0 7px}.feature-row p{font-size:13px;color:#a6babf;margin:0}.feature-arrow{font-size:26px;justify-self:end;align-self:center;color:#c6ddda}
/* Publications */
.publications-section{background:var(--cream)}.publication-toolbar{display:grid;grid-template-columns:minmax(260px,2.2fr) minmax(190px,1fr) 155px;gap:12px}.search-wrap{position:relative}.search-wrap svg{position:absolute;left:17px;top:19px;color:#758987}.publication-toolbar input,.publication-toolbar select{border:1px solid #cfd7d3;background:#fff;color:#24353a;border-radius:0;min-height:59px;width:100%;font-size:13px;outline-offset:2px}.publication-toolbar input{padding:14px 16px 14px 49px}.publication-toolbar input::placeholder{color:#96a29f}.publication-toolbar select{padding:15px 34px 15px 15px;appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='m1 1 5 5 5-5' stroke='%23516b6a' fill='none' stroke-width='1.5'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:calc(100% - 17px) 26px}.publication-meta{display:flex;justify-content:space-between;align-items:center;gap:20px;margin:25px 0 10px}.publication-meta p{color:#758381;font-size:12px}.publication-meta p span:first-child{font-weight:800;color:#1e3339}.meta-separator{color:#a7b2af;padding:0 6px}.download-link{border:0;background:none;color:#355f5b;font-size:12px;font-weight:700;padding:12px 0}.download-link span{margin-left:9px}.publication-results{border-top:1px solid #cdd5d1}.pub-item{display:grid;grid-template-columns:91px minmax(0,1fr) 44px;gap:19px;padding:26px 12px 25px 0;border-bottom:1px solid #d8dfdb}.pub-year{font:700 14px var(--head);color:#7a9690;padding-top:3px}.pub-title{font:700 18px/1.45 var(--head);letter-spacing:-.4px;margin:0 0 8px;max-width:920px}.pub-title a:hover{color:#4f837d}.pub-venue{font-size:12px;color:#5d6b70;margin:0 0 8px}.pub-authors{font-size:11px;color:#8a9694;margin:0 0 10px;line-height:1.55;word-break:break-word}.pub-tags{display:flex;align-items:center;gap:9px;flex-wrap:wrap}.pub-tag{display:inline-block;background:#e8eee8;color:#47736f;padding:5px 8px;font-size:9px;letter-spacing:.5px;font-weight:700}.pub-kind{font-size:10px;color:#82908e}.pub-doi{display:inline-flex;align-items:center;justify-content:center;width:36px;height:36px;border:1px solid #ccd7d2;color:#426963;font-size:19px;align-self:start}.pub-doi:hover{background:#dbe8e2}.results-footer{display:flex;align-items:center;justify-content:center;padding-top:38px}.button-outline{background:transparent;border:1px solid #48605e;color:#20343a;min-width:260px}.button-outline:hover{background:#e8eee9}.empty-results{font-size:14px;color:#657574}.source-disclaimer{font-size:11px;color:#81908e;line-height:1.8;max-width:950px;margin:40px 0 0}
/* Academic */
.academic-section{background:#eaece7}.academic-intro{max-width:810px}.academic-grid{display:grid;grid-template-columns:1fr 1fr;gap:65px;margin-top:52px}.academic-grid h3{font:700 15px var(--head);letter-spacing:.2px;padding-bottom:20px;border-bottom:1px solid #c5d0cb;margin:0 0 28px}.timeline-item{border-left:1px solid #b4c4bd;padding-left:22px;margin-bottom:22px;position:relative}.timeline-item:before{content:'';position:absolute;top:3px;left:-4px;background:#6d9c8b;border-radius:50%;height:7px;width:7px}.timeline-item>span{display:block;font:700 11px var(--head);letter-spacing:.3px;color:#49716b;margin-bottom:7px}.timeline-item p{color:#243940;font-weight:600;line-height:1.55;margin:0}.timeline-item small{color:#7b8888;font-size:12px;font-weight:400}.academic-footnote{font-size:11px!important;color:#84918d!important}
/* Contact + footer */
.contact-section{background:#18313a;color:white;padding:103px 0 112px}.contact-layout{display:grid;grid-template-columns:1.65fr .7fr;gap:80px}.contact-kicker{color:#a9c7c0}.contact-section h2{font:700 clamp(56px,6vw,87px)/1.12 var(--head);letter-spacing:-4px;margin:28px 0}.contact-section h2 em{color:#a8c9c1}.contact-section p{font-size:15px;color:#c2d0d0;max-width:485px;line-height:1.8}.contact-email{display:inline-block;border-bottom:1px solid #93b3b2;color:#f1f7f4;font:600 clamp(18px,2.25vw,30px) var(--head);letter-spacing:-.6px;padding-bottom:16px;margin-top:24px}.contact-email span{font-size:21px;margin-left:25px}.contact-links{padding-top:50px}.contact-links>span{display:block;font:700 10px var(--head);letter-spacing:2px;color:#92b2b0;margin-bottom:21px}.contact-links a{border-bottom:1px solid #4c646a;padding:19px 0;display:flex;justify-content:space-between;font-weight:600;font-size:14px}.contact-links a:hover{color:#b6d9d1}.site-footer{background:#0d1e26;color:#a2b7ba;padding:39px 0}.footer-inner{display:flex;justify-content:space-between;gap:45px;align-items:center}.footer-brand{display:flex;align-items:center;gap:21px}.footer-brand>span{font:800 35px var(--head);color:#f4faf5;letter-spacing:-3px}.footer-brand small{font-size:11px;line-height:1.8}.footer-right{display:flex;align-items:center;gap:40px}.footer-right p{font-size:10px;line-height:1.6;max-width:390px}.footer-right a{white-space:nowrap;font:700 10px var(--head);letter-spacing:1px}
@media(max-width:1150px){.container{padding:0 32px}.main-nav{gap:17px}.hero-grid{gap:4%}.hero h1{letter-spacing:-3px}.research-grid{grid-template-columns:repeat(2,1fr)}.research-card{min-height:290px}.metrics-band .container{grid-template-columns:165px 1fr;gap:24px}.metric{padding-left:17px}.metric strong{font-size:31px}.metric-last strong{font-size:24px}.split-layout{grid-template-columns:165px 1fr;gap:30px}}
@media(max-width:800px){.container{padding:0 24px}.nav-inner{min-height:72px}.menu-button{display:flex}.main-nav{display:none;position:absolute;top:72px;left:0;right:0;background:var(--cream);padding:15px 25px 25px;box-shadow:0 15px 30px #0002;flex-direction:column;align-items:stretch;gap:2px}.main-nav.is-open{display:flex}.main-nav a{padding:13px 5px;font-size:14px}.main-nav .nav-contact{padding:14px 12px;margin-top:7px}.hero-grid{grid-template-columns:1fr;padding-top:76px;padding-bottom:55px;gap:48px}.hero h1{font-size:clamp(55px,10vw,75px)}.hero-lead{max-width:610px}.hero-art{min-height:360px;max-height:500px}.art-inner img{max-height:350px}.hero-bottom{font-size:9px}.metrics-band .container{grid-template-columns:1fr}.metrics-intro h2{margin-bottom:24px}.snapshot-note{grid-column:1}.section{padding:81px 0}.split-layout{grid-template-columns:1fr;gap:12px}.side-mark{display:none}.section-heading{margin-top:18px}.section-header{display:block}.section-header>p{max-width:520px;margin-top:16px}.academic-grid{gap:36px}.contact-layout{grid-template-columns:1fr 1fr;gap:35px}.contact-links{padding-top:80px}.publication-toolbar{grid-template-columns:1fr 1fr}.search-wrap{grid-column:1/-1}.footer-right{display:block}}
@media(max-width:550px){.container{padding:0 19px}.wordmark{gap:10px}.wordmark-symbol{font-size:28px}.wordmark-label{font-size:9px;letter-spacing:1.4px}.wordmark-label small{font-size:8px}.hero-grid{padding-top:62px}.hero h1{font-size:clamp(42px,11vw,59px);letter-spacing:-2.7px}.hero h1 em{letter-spacing:-1px}.hero-lead{font-size:16px}.eyebrow{font-size:9px;gap:8px}.hero-actions{gap:19px}.hero-art{min-height:310px}.art-inner{padding:17px}.art-topline,.art-bottomline{font-size:8px;letter-spacing:1px}.hero-bottom>span:first-child{max-width:190px;line-height:1.5}.metrics-grid{grid-template-columns:repeat(2,1fr);row-gap:30px}.metric strong{font-size:35px}.metric-last strong{font-size:25px}.section-heading{font-size:clamp(32px,10vw,45px);letter-spacing:-1.8px}.about-columns,.academic-grid,.contact-layout{grid-template-columns:1fr;gap:19px}.lead-paragraph{font-size:19px!important}.research-grid{grid-template-columns:1fr}.research-card{min-height:300px}.feature-row{grid-template-columns:30px 1fr 20px;gap:12px;padding:23px 0}.feature-number{font-size:11px}.feature-row h3{font-size:18px}.feature-arrow{font-size:21px}.publication-toolbar{grid-template-columns:1fr}.search-wrap{grid-column:1}.publication-meta{flex-direction:column;align-items:flex-start;gap:2px}.pub-item{grid-template-columns:50px 1fr 27px;gap:11px;padding:23px 0}.pub-year{font-size:12px}.pub-title{font-size:16px}.pub-doi{width:27px;height:27px;font-size:16px}.academic-grid{gap:33px}.contact-section h2{font-size:61px}.contact-links{padding-top:28px}.contact-email{font-size:21px}.footer-inner{display:block}.footer-right{margin-top:26px}.footer-right p{margin-bottom:20px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{transition-duration:0.01ms!important;animation-duration:0.01ms!important}}

/* V2 — selected option C: feathered bacterial cell illustration. */
.hero-art .hero-cell-image{display:block;object-fit:contain;object-position:center center;width:100%;height:80%;max-height:425px;filter:drop-shadow(0 0 18px rgba(105,174,165,.10))}
@media(max-width:800px){.hero-art .hero-cell-image{max-height:350px;height:78%}}
@media(max-width:550px){.hero-art .hero-cell-image{max-height:270px;height:75%}}

/* Book spotlight — 2026 edit */
.book-section{background:#162b33;color:#f7f8f3}
.book-section .section-kicker,.book-section .section-index{color:#a6c7c2}
.book-section .section-heading em{color:#bdd2cb}
.book-section .section-header>p{color:#bccfce}
.book-panel{display:grid;grid-template-columns:minmax(180px,270px) minmax(0,1fr);align-items:center;gap:clamp(32px,5vw,86px);padding:clamp(28px,5vw,64px);background:#213941;border:1px solid #3f5960}
.book-cover-link{display:block;width:100%;max-width:270px;justify-self:center;box-shadow:15px 20px 30px #06151c70;transition:transform .2s}
.book-cover-link:hover{transform:translateY(-5px)}
.book-cover{width:100%;height:auto;aspect-ratio:250 / 394;object-fit:contain;background:#fdf5db}
.book-overline{color:#a8c6be;letter-spacing:2px;font:700 10px var(--head)}
.book-panel-copy h3{font:700 clamp(28px,3.2vw,49px)/1.14 var(--head);letter-spacing:-1.2px;margin:24px 0 8px;max-width:570px}
.book-subtitle{font:italic 400 clamp(19px,2.2vw,29px)/1.4 var(--serif);color:#cde0d8;margin:0 0 27px}
.book-language{font:500 13px var(--sans);color:#9eb8b9;margin:0 0 33px}
.book-button{display:inline-flex;gap:28px;align-items:center;justify-content:space-between;padding:17px 22px;background:#edf2ed;color:#183038;font:700 12px var(--head);transition:background .2s,transform .2s}
.book-button:hover{background:#d5e7df;transform:translateY(-2px)}
@media(max-width:700px){.book-panel{grid-template-columns:1fr;gap:30px}.book-cover-link{max-width:205px}.book-panel-copy h3{margin-top:10px}}

/* Affiliated institutions — responsive, clickable logos */
.affiliations-strip{border-top:1px solid #e4e8e4;background:#fafaf7}
.affiliations-inner{min-height:82px;display:flex;justify-content:space-between;align-items:center;gap:18px}
.affiliations-caption{font:700 10px var(--head);letter-spacing:2px;color:#879492}
.affiliations-logos{display:flex;align-items:center;gap:18px;justify-content:flex-end}
.affiliation-link{position:relative;display:flex;align-items:center;justify-content:center;min-width:190px;height:74px;gap:7px;transition:background-color .18s ease}
.affiliation-link:hover{background:#eef1ed}
.affiliation-logo{position:relative;z-index:1;display:block;max-width:none;background:#fafaf7;mix-blend-mode:multiply}
.affiliation-logo-fcul{width:168px;height:67px;object-fit:contain}
.affiliation-logo-ce3c{width:188px;height:67px;object-fit:cover;object-position:center center}
.affiliation-divider{height:35px;width:1px;background:#d7ded9}
.affiliation-external{position:relative;z-index:2;align-self:center;font-size:14px;color:#5b7972;line-height:1}
.affiliation-fallback{position:absolute;inset:0;display:flex;flex-direction:column;justify-content:center;align-items:center;gap:0;color:#1554a3;font:700 16px/1.25 var(--head)}
.affiliation-fallback small{font:500 9px/1.3 var(--sans)}
.affiliation-fallback-ce3c{color:#4f943e;font-size:20px}
.affiliation-fallback-ce3c small{max-width:180px;text-align:center;font-size:8px}
@media(max-width:800px){.affiliations-inner{min-height:78px}.affiliations-caption{font-size:9px}.affiliations-logos{gap:8px}.affiliation-link{min-width:155px;height:67px}.affiliation-logo-fcul{width:135px;height:60px}.affiliation-logo-ce3c{width:150px;height:60px}.affiliation-external{font-size:11px}}
@media(max-width:550px){.affiliations-inner{min-height:93px;display:block;padding-top:7px;padding-bottom:10px}.affiliations-caption{font-size:8px;letter-spacing:1.6px}.affiliations-logos{justify-content:space-around;gap:4px}.affiliation-link{flex:1;min-width:0;height:66px}.affiliation-logo-fcul{width:100%;max-width:133px;height:58px}.affiliation-logo-ce3c{width:100%;max-width:155px;height:58px}.affiliation-divider{height:30px}.affiliation-external{font-size:11px}}

/* Affiliation logos fix — avoid layered placeholder text and cropping */
.affiliations-logos { display: flex; align-items: center; justify-content: flex-end; gap: 20px; }
.affiliation-link { flex: 0 0 auto; width: 218px; min-width: 0; height: 88px; padding: 10px 22px 10px 8px; position: relative; display: flex; align-items: center; justify-content: center; overflow: hidden; }
.affiliation-logo { width: 100% !important; height: 100% !important; max-width: 100%; max-height: 68px; object-fit: contain !important; object-position: center center !important; mix-blend-mode: normal; background: transparent; }
.affiliation-external { position: absolute; top: 50%; right: 3px; transform: translateY(-50%); }
@media (max-width: 850px) {
  .affiliations-inner { gap: 12px; }
  .affiliations-logos { gap: 12px; }
  .affiliation-link { width: 170px; height: 78px; padding: 8px 17px 8px 5px; }
  .affiliation-logo { max-height: 60px; }
}
@media (max-width: 620px) {
  .affiliations-inner { display: flex; flex-direction: column; align-items: flex-start; gap: 8px; padding-top: 12px; padding-bottom: 12px; }
  .affiliations-logos { width: 100%; justify-content: center; gap: 10px; }
  .affiliation-link { width: 46%; max-width: 185px; min-width: 0; height: 72px; padding: 6px 14px 6px 3px; }
  .affiliation-logo { max-height: 56px; }
  .affiliation-divider { flex: 0 0 1px; }
}

/* Institutional logos — aligned to the left, with no caption. */
.affiliations-inner { justify-content: flex-start; }
.affiliations-logos { justify-content: flex-start; margin-right: auto; }
@media (max-width: 620px) {
  .affiliations-inner { flex-direction: row; align-items: center; }
  .affiliations-logos { justify-content: flex-start; }
}


/* === CABEÇALHO EDITORIAL (substitui a faixa anterior de logótipos) === */
html { scroll-padding-top: 155px; }
.site-header { background: #f8f7f3; }
.academic-header {
  display: grid;
  grid-template-columns: max-content max-content minmax(0, 1fr);
  grid-template-rows: minmax(82px, auto) 48px;
  column-gap: clamp(18px, 3vw, 48px);
  align-items: center;
}
.academic-header .header-brand { grid-column: 1; grid-row: 1; min-width: 0; }
.header-institutions {
  grid-column: 3;
  grid-row: 1;
  display: flex;
  align-items: center;
  justify-self: end;
  justify-content: flex-end;
  gap: 22px;
  min-width: 0;
}
.header-institutions > a {
  display: flex;
  align-items: center;
  justify-content: center;
  flex: 0 1 auto;
  min-width: 0;
  padding: 4px 0;
}
.header-institutions img {
  display: block;
  object-fit: contain;
  width: auto;
  max-width: 100%;
  height: auto;
}
.header-institutions .header-logo-fcul { width: 190px; max-height: 60px; }
.header-institutions .header-logo-ce3c { width: 118px; max-height: 56px; }
.header-institution-divider { width: 1px; height: 31px; flex: 0 0 1px; background: #d4dbd7; }
.header-contact {
  grid-column: 2;
  grid-row: 1;
  justify-self: start;
  padding: 14px 22px;
  border: 1px solid #23343c;
  font: 700 12px var(--sans);
  white-space: nowrap;
  transition: background .2s, color .2s;
}
.header-contact span { margin-left: 14px; }
.header-contact:hover { background: var(--ink); color: #fff; }
.academic-header .header-main-nav {
  grid-column: 1 / -1;
  grid-row: 2;
  display: flex;
  justify-self: start;
  align-self: stretch;
  align-items: center;
  gap: 27px;
  border-top: 1px solid #e3e5e0;
  width: 100%;
  min-width: 0;
}
.academic-header .header-main-nav a { font-size: 12px; font-weight: 700; padding: 12px 0; }
.academic-header .header-main-nav .nav-contact-mobile { display: none; }
.academic-header .header-menu-button { display: none; }

@media (max-width: 1000px) and (min-width: 801px) {
  .academic-header { grid-template-columns: max-content max-content minmax(0, 1fr); column-gap: 16px; }
  .header-institutions { gap: 14px; }
  .header-institutions .header-logo-fcul { width: 165px; }
  .header-institutions .header-logo-ce3c { width: 95px; }
  .academic-header .header-main-nav { gap: 22px; }
}
@media (max-width: 800px) {
  html { scroll-padding-top: 160px; }
  .academic-header {
    grid-template-columns: minmax(0, 1fr) auto;
    grid-template-rows: 70px auto;
    gap: 0 12px;
    position: relative;
  }
  .academic-header .header-brand { grid-column: 1; grid-row: 1; }
  .academic-header .header-menu-button {
    grid-column: 2; grid-row: 1;
    display: flex;
    justify-self: end;
  }
  .academic-header .header-institutions {
    grid-column: 1 / -1;
    grid-row: 2;
    justify-self: end;
    justify-content: flex-end;
    gap: 18px;
    border-top: 1px solid #e3e5e0;
    padding: 10px 0;
  }
  .header-institutions .header-logo-fcul { width: 172px; max-height: 52px; }
  .header-institutions .header-logo-ce3c { width: 108px; max-height: 48px; }
  .academic-header .header-contact { display: none; }
  .academic-header .header-main-nav {
    display: none;
    position: absolute;
    top: 100%;
    left: 0;
    right: 0;
    width: 100%;
    z-index: 50;
    background: var(--cream);
    box-shadow: 0 15px 30px #0002;
    border-top: 1px solid #e3e5e0;
    padding: 16px 24px 20px;
    flex-direction: column;
    align-items: stretch;
    gap: 1px;
  }
  .academic-header .header-main-nav.is-open { display: flex; }
  .academic-header .header-main-nav a { font-size: 14px; padding: 13px 2px; }
  .academic-header .header-main-nav .nav-contact-mobile { display: block; }
}
@media (max-width: 450px) {
  .academic-header .header-brand { gap: 9px; }
  .academic-header .wordmark-label { font-size: 9px; letter-spacing: 1px; }
  .header-institutions { gap: 10px !important; }
  .header-institutions .header-logo-fcul { width: 143px; max-height: 44px; }
  .header-institutions .header-logo-ce3c { width: 97px; max-height: 42px; }
  .header-institution-divider { height: 24px; }
}


/* FINAL NAV PLACEMENT — Contact after Academic life, logos top right.
   This uses the existing HTML: no change to index.html is required. */
@media (min-width: 801px) {
  .academic-header {
    grid-template-columns: max-content minmax(0, 1fr);
    grid-template-rows: minmax(82px, auto) 62px;
    column-gap: 0;
  }
  .academic-header .header-brand {
    grid-column: 1;
    grid-row: 1;
  }
  .academic-header .header-institutions {
    grid-column: 2;
    grid-row: 1;
    justify-self: end;
  }
  .academic-header .header-main-nav {
    grid-column: 1;
    grid-row: 2;
    justify-self: start;
    align-self: center;
    width: max-content;
    gap: 27px;
    border-top: 0;
    padding-right: 18px;
  }
  .academic-header .header-contact {
    grid-column: 2;
    grid-row: 2;
    justify-self: start;
    align-self: center;
    margin: 0;
    padding: 11px 18px;
  }
  .academic-header::after {
    content: "";
    grid-column: 1 / -1;
    grid-row: 2;
    align-self: start;
    width: 100%;
    height: 1px;
    background: #e3e5e0;
    pointer-events: none;
  }
}
@media (min-width: 801px) and (max-width: 1000px) {
  .academic-header .header-main-nav { gap: 22px; padding-right: 15px; }
  .academic-header .header-contact { padding: 10px 15px; }
}


/* -------------------------------------------------------------
   Homepage bacterium: gentle, perspective-based 3D motion
   This animates only the illustration; it is not a 3D model.
   ------------------------------------------------------------- */
.hero-art .hero-cell-image {
  transform-origin: 50% 50%;
  backface-visibility: hidden;
  animation: bacterium-gentle-3d 12s ease-in-out infinite;
  will-change: transform;
}

@keyframes bacterium-gentle-3d {
  0%, 100% {
    transform: perspective(1200px) rotateX(5deg) rotateY(-15deg) rotateZ(-1deg) scale(1.01);
  }
  25% {
    transform: perspective(1200px) rotateX(1deg) rotateY(0deg) rotateZ(0deg) scale(1.035);
  }
  50% {
    transform: perspective(1200px) rotateX(-5deg) rotateY(15deg) rotateZ(1deg) scale(1.01);
  }
  75% {
    transform: perspective(1200px) rotateX(1deg) rotateY(0deg) rotateZ(0deg) scale(1.035);
  }
}

/* Respect visitors who have reduced-motion enabled. */
@media (prefers-reduced-motion: reduce) {
  .hero-art .hero-cell-image {
    animation: none !important;
    will-change: auto;
    transform: none;
  }
}


/* Logótipos junto ao nome */

@media (min-width: 801px) {
  .academic-header {
    position: relative;
  }

  .academic-header .header-institutions {
    position: absolute !important;
    grid-column: auto !important;
    grid-row: auto !important;
    top: 11px;
    left: 305px;
    right: auto !important;
    justify-self: start !important;
    justify-content: flex-start !important;
    gap: 18px;
  }
}

@media (min-width: 801px) and (max-width: 1000px) {
  .academic-header .header-institutions {
    left: 285px;
    top: 14px;
    gap: 12px;
  }
}
