/* Soft-purple public page composition: light reading surfaces, plum accents. */
.page-main{background:var(--white)}
#publications.records,#supervisor.supervisor{background:var(--blue-soft)}
#projects,#blog{background:var(--blue-soft)}
#iprs.blue-section{background:var(--blue-soft);color:var(--ink)}
#iprs.blue-section .section-heading>p,#iprs.blue-section .section-note{color:var(--blue)}
#iprs .ipr-list{border-top-color:var(--ink)}
#iprs .ipr-item{border-bottom-color:var(--line)}
#iprs .ipr-type,#iprs .ipr-status{color:var(--blue)}
#iprs .ipr-numbers{color:var(--muted)}
#iprs .ipr-item a{color:var(--blue);font-weight:700}
#iprs .text-button{display:inline-flex;align-items:center;gap:8px;margin-top:32px;padding:11px 18px;border-radius:6px;background:var(--blue);color:#fff}
#iprs .text-button:hover,#iprs .text-button:focus-visible{background:var(--blue-dark)}
#contact.contact{background:var(--blue-soft);color:var(--ink)}
#contact.contact>p{color:var(--blue)}
#contact .contact-method{border-color:var(--line);background:#fff;color:var(--ink);box-shadow:0 8px 24px oklch(35% .05 310 / .06)}
#contact .contact-method small{color:var(--blue)}
#contact .contact-method:hover,#contact .contact-method:focus-visible{border-color:var(--orchid);background:#fff;transform:translateY(-3px)}
#contact .contact-social-tile a{border-color:var(--line);background:#fff;color:var(--ink)}
#contact .contact-social-tile a:hover,#contact .contact-social-tile a:focus-visible{background:var(--blue);color:#fff}
#contact .public-contact-form{border-top-color:var(--line)}
#contact .public-form-grid input,#contact .public-form-grid textarea{border-color:var(--line);background:#fff;color:var(--ink)}
#contact .button.light{background:var(--blue);color:#fff}
#contact .button.light:hover,#contact .button.light:focus-visible{background:var(--blue-dark)}

/* Compact year filter on detail pages. */
.year-toolbar{justify-content:flex-end}
.year-toolbar label{margin-left:auto}
.year-toolbar select{min-width:180px}

/* Blog cover stays above the title; inline images keep editor order. */
#blog .blog-list{display:grid;gap:36px}
#blog .blog-item{display:grid;grid-template-columns:120px minmax(0,1fr);gap:30px;padding:28px 0 36px}
#blog .blog-cover{width:100%;height:auto;max-height:560px;aspect-ratio:16/7;display:block;margin:0 0 24px;object-fit:cover}
#blog .blog-content{grid-column:2;min-width:0;max-width:76ch}
#blog .blog-item>time{grid-column:1;grid-row:1;align-self:start;color:var(--blue);font-weight:700}
#blog .blog-rich{max-width:70ch;overflow-wrap:anywhere}
#blog .blog-rich img{display:block;max-width:100%;height:auto;clear:both;margin:24px 0}
#blog .blog-rich p{max-width:70ch}
@media(max-width:620px){#blog .blog-item{grid-template-columns:1fr;gap:10px}#blog .blog-item>time,#blog .blog-content{grid-column:1}}
