.publication-group { margin: 2.45rem 0 0; max-width: 850px; }
.publication-filters { display: grid; width: max-content; max-width: 100%; gap: .75rem; margin: 2rem 0 0; }
.filter-cluster { display: flex; flex-wrap: wrap; align-items: center; gap: .55rem .7rem; }
.filter-actions { display: flex; justify-content: space-between; align-items: center; gap: 1.2rem; }
.filter-buttons { display: flex; flex-wrap: wrap; gap: .55rem .7rem; }
.filter-label { color: var(--blue); font: 800 .72rem Arial, sans-serif; letter-spacing: .12em; text-transform: uppercase; }
.publication-filters button { display: inline-flex; align-items: center; gap: .38rem; padding: .28rem .45rem; border: 1px solid color-mix(in srgb, var(--line) 34%, transparent); background: transparent; color: var(--ink); font: 700 .76rem Arial, sans-serif; cursor: pointer; }
.publication-filters button:hover, .publication-filters button:focus { border-color: var(--blue); color: var(--blue); }
.publication-filters button[aria-pressed="true"] { border-color: var(--blue); background: var(--blue); color: #fff; }
.publication-filters .filter-reset { border-style: dashed; }
.filter-mode { display: inline-flex; }
.publication-filters .filter-mode button { border-right: 0; }
.publication-filters .filter-mode button + button { border-right: 1px solid color-mix(in srgb, var(--line) 34%, transparent); }
@media (max-width: 700px) { .publication-filters { width: 100%; } .filter-actions { align-items: flex-start; flex-direction: column; gap: .7rem; } }
.publication-search { display: grid; gap: .32rem; max-width: 460px; margin-top: 1rem; color: var(--blue); font: 800 .72rem Arial, sans-serif; letter-spacing: .12em; text-transform: uppercase; }
.publication-search input { width: 100%; padding: .62rem .72rem; border: 2px solid color-mix(in srgb, var(--line) 42%, transparent); border-radius: 0; background: transparent; color: var(--ink); font: 400 .95rem Georgia, serif; letter-spacing: normal; text-transform: none; }
.publication-search input:focus { outline: 0; border-color: var(--blue); box-shadow: 4px 4px 0 color-mix(in srgb, var(--blue) 24%, transparent); }
.publication-group h2 { border-top: 3px solid var(--line); margin: 0 0 .8rem; padding-top: .62rem; font: 800 clamp(24px, 3.5vw, 35px)/1 Arial, sans-serif; letter-spacing: -.04em; }
.publication-list { list-style: none; margin: 0; padding: 0; }
.publication-list li { position: relative; border-bottom: 1px solid color-mix(in srgb, var(--line) 28%, transparent); padding: .86rem 0 .96rem 1.55rem; }
.publication-list li:first-child { border-top: 1px solid color-mix(in srgb, var(--line) 28%, transparent); }
.publication-title { display: block; color: var(--ink); font: 700 1.08rem/1.18 Georgia, serif; text-decoration: none; }
.topic-dots { position: absolute; top: 1.08rem; left: 0; display: flex; flex-direction: column; gap: .2rem; min-height: .5rem; }
.topic-dot { position: relative; display: inline-block; width: .62rem; height: .62rem; border: 1px solid color-mix(in srgb, var(--ink) 46%, transparent); border-radius: 50%; background: currentColor; cursor: help; }
.publication-list .topic-dot::after { position: absolute; z-index: 2; top: 50%; right: calc(100% + .45rem); width: max-content; color: color-mix(in srgb, var(--ink) 52%, var(--paper)); content: attr(data-topic-label); font: 700 .58rem/1 Arial, sans-serif; letter-spacing: .07em; text-align: right; text-transform: uppercase; opacity: 0; pointer-events: none; transform: translateY(-50%) translateX(2px); transition: opacity .14s ease, transform .14s ease; }
.publication-list li:hover .topic-dot::after, .publication-list li:focus-within .topic-dot::after { opacity: 1; transform: translateY(-50%) translateX(0); }
.topic-security { color: #c84a4a; background-color: #c84a4a; background-image: repeating-linear-gradient(45deg, transparent 0 2px, rgba(255,255,255,.72) 2px 3px); }
.topic-safety { color: #7755a7; background-color: #7755a7; background-image: repeating-linear-gradient(-45deg, transparent 0 2px, rgba(255,255,255,.72) 2px 3px); }
.topic-model-checking { color: #007c73; background-color: #007c73; background-image: radial-gradient(rgba(255,255,255,.88) 1px, transparent 1.3px); background-size: 4px 4px; }
.topic-ontology { color: #56a4e9; background-color: #56a4e9; background-image: repeating-linear-gradient(0deg, transparent 0 2px, rgba(255,255,255,.76) 2px 3px); }
.publication-filters .topic-dot { position: static; flex: none; }
.publication-title a { color: inherit; font: inherit; text-decoration: none; }
.publication-title:hover, .publication-title:focus { color: var(--blue); text-decoration: underline; text-underline-offset: .2em; }
.publication-authors, .publication-venue { display: block; margin-top: .26rem; font-size: .88rem; line-height: 1.34; }
.publication-venue { color: color-mix(in srgb, var(--ink) 75%, var(--paper)); }
.publication-links { display: flex; flex-wrap: wrap; gap: .65rem; margin-top: .42rem; font: 700 .68rem/1 Arial, sans-serif; letter-spacing: .08em; text-transform: uppercase; }
.publication-links a { color: var(--ink); text-decoration: none; }
.publication-links a:hover, .publication-links a:focus { color: var(--blue); text-decoration: underline; text-underline-offset: .25em; }
.profile-links { display: flex; flex-wrap: wrap; gap: .75rem; margin-top: 1.2rem; }
.profile-links a { display: inline-flex; align-items: center; gap: .45rem; color: var(--ink); font: 700 .82rem/1 Arial, sans-serif; text-decoration: none; }
.profile-links span { display: inline-grid; width: 2.2rem; height: 2.2rem; place-items: center; border: 2px solid currentColor; border-radius: 50%; font-size: .65rem; letter-spacing: -.04em; }
.profile-links a:hover, .profile-links a:focus { color: var(--blue); text-decoration: underline; text-underline-offset: .25em; }
.global-footer { display: flex; grid-column: 1 / -1; width: 100%; box-sizing: border-box; flex-direction: column; align-items: center; gap: .7rem; max-width: none; margin: .5rem 0 0; padding: .85rem 36px 1.35rem; border-top: 2px solid color-mix(in srgb, var(--ink) 22%, transparent); }
.footer-profile-links { display: flex; flex-wrap: wrap; justify-content: center; align-items: center; gap: 1.8rem; }
.footer-profile-links a { display: grid; width: 2.8rem; height: 2.8rem; place-items: center; color: var(--ink); text-decoration: none; transition: transform .2s, color .2s; }
.footer-profile-links img { width: 2.2rem; height: 2.2rem; object-fit: contain; transition: filter .2s; }
.footer-profile-links svg { width: 2.2rem; height: 2.2rem; }
.footer-profile-links i { font-size: 2.2rem; line-height: 1; }
.footer-profile-links svg { fill: none; stroke: currentColor; stroke-linecap: square; stroke-linejoin: miter; stroke-width: 3; }
.footer-profile-links a:hover, .footer-profile-links a:focus { color: var(--blue); transform: translateY(-3px); }
.footer-profile-links a:hover img, .footer-profile-links a:focus img { filter: invert(39%) sepia(93%) saturate(1150%) hue-rotate(182deg) brightness(91%) contrast(91%); }
.footer-webring { display: inline-flex; align-items: center; gap: .55rem; color: color-mix(in srgb, var(--ink) 58%, var(--paper)); font: 800 .58rem/1 Arial, sans-serif; letter-spacing: .12em; text-transform: uppercase; }
.footer-webring a { color: inherit; text-decoration: none; }
.footer-webring a:first-child, .footer-webring a:last-child { display: grid; width: 1.7rem; height: 1.3rem; place-items: center; letter-spacing: 0; transition: color .2s, transform .2s; }
.footer-webring svg { width: 1.55rem; height: .8rem; fill: none; stroke: currentColor; stroke-linecap: square; stroke-linejoin: miter; stroke-width: 2; }
.footer-webring a:nth-child(2) { padding: .15rem 0 .2rem; border-bottom: 1px solid currentColor; }
.footer-webring a:hover, .footer-webring a:focus { color: var(--blue); }
.footer-webring a:first-child:hover, .footer-webring a:first-child:focus { transform: translateX(-3px); }
.footer-webring a:last-child:hover, .footer-webring a:last-child:focus { transform: translateX(3px); }
@media (max-width: 700px) { .global-footer { padding: 1.1rem 10px 1.8rem; } .footer-profile-links { gap: 1.1rem; } .footer-profile-links a { width: 2.5rem; height: 2.5rem; } }
@media (max-width: 700px) { .publication-list .topic-dot::after { display: none; } }
