.publication-page{min-height:100vh;color:var(--color-ink);background:#f7faf8}.publication-header{z-index:30;border-bottom:1px solid var(--color-line);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#fffffff5;position:sticky;top:0}.publication-header>.container{grid-template-columns:auto 1fr auto;align-items:center;gap:2rem;min-height:5rem;display:grid}.publication-header nav{justify-content:center;gap:2rem;display:flex}.publication-header nav a{color:var(--color-ink);font-size:.9rem;font-weight:750}.publication-header nav a:hover,.publication-header nav a[aria-current=page]{color:var(--color-primary)}.publication-hero{color:#fff;background:radial-gradient(circle at 80% 0,#8fd8b240,#0000 34%),#082d23;padding:clamp(4rem,8vw,7rem) 0}.publication-hero h1{color:#fff;letter-spacing:-.05em;max-width:850px;margin:.7rem 0 1rem;font-size:clamp(2.6rem,6vw,5.4rem);font-weight:880}.publication-hero p{color:#ffffffb8;max-width:680px;margin:0;font-size:1.08rem;line-height:1.7}.publication-section{min-height:48vh;padding:clamp(2.5rem,6vw,5rem) 0}.publication-toolbar{justify-content:space-between;align-items:center;gap:1rem;margin-bottom:1.5rem;display:flex}.publication-toolbar p{color:var(--color-muted);margin:0}.publication-toolbar label{width:min(100%,360px)}.publication-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:1.25rem;display:grid}.publication-card{border:1px solid var(--color-line);min-width:0;color:var(--color-ink);box-shadow:var(--jdb-shadow-sm);background:#fff;border-radius:1rem;flex-direction:column;transition:transform .2s,box-shadow .2s;display:flex;overflow:hidden}.publication-card:hover{color:var(--color-ink);box-shadow:var(--jdb-shadow-md);transform:translateY(-3px)}.publication-card img{aspect-ratio:16/9;object-fit:cover;background:#e4eee8;width:100%}.publication-card-copy{flex-direction:column;height:100%;padding:1.25rem;display:flex}.publication-meta{color:var(--color-primary);text-transform:uppercase;letter-spacing:.05em;align-items:center;gap:.5rem;font-size:.72rem;font-weight:850;display:flex}.publication-card h2{margin:.75rem 0 .6rem;font-size:1.25rem;line-height:1.25}.publication-card p{color:var(--color-muted);line-height:1.6}.publication-card strong{color:var(--color-primary);margin-top:auto;font-size:.82rem}.publication-empty{text-align:center;background:#fff;border:1px dashed #a9c4b6;border-radius:1rem;grid-column:1/-1;padding:4rem 1.5rem}.publication-footer{color:#c7d8d1;background:#061f18;padding:2rem 0}.publication-footer>.container{justify-content:space-between;gap:1rem;display:flex}.publication-footer nav{gap:1.3rem;display:flex}.publication-footer a{color:#fff}.publication-article{min-height:70vh;padding:clamp(2.5rem,7vw,6rem) 0}.publication-article .container{max-width:900px}.publication-back{min-height:44px;color:var(--color-primary);align-items:center;font-weight:800;display:inline-flex}.publication-article-header{margin:2rem 0}.publication-article-header h1{letter-spacing:-.045em;margin:.8rem 0 1rem;font-size:clamp(2.3rem,6vw,4.6rem);font-weight:880;line-height:1}.publication-article-header>p{color:var(--color-muted);font-size:1.15rem;line-height:1.7}.publication-cover{object-fit:cover;border-radius:1.2rem;width:100%;max-height:520px;margin:1rem 0 2.5rem}.publication-body{color:#25352f;font-size:1.05rem;line-height:1.85}.publication-body p{margin-bottom:1.35rem}.publication-source{min-height:44px;color:var(--color-primary);align-items:center;margin-top:1.5rem;font-weight:800;display:inline-flex}.publication-loading{text-align:center;padding:4rem}.navbar-brand{--jdb-logo-size:3.65rem}@media (width<=767.98px){.publication-header>.container{grid-template-columns:auto auto;justify-content:space-between}.publication-header nav{grid-column:1/-1;justify-content:flex-start;padding-bottom:.8rem;overflow-x:auto}.publication-header .btn{display:none}.publication-toolbar{flex-direction:column;align-items:stretch}.publication-toolbar label{width:100%}.publication-grid{grid-template-columns:1fr}.publication-footer>.container{flex-direction:column;align-items:flex-start}.publication-footer nav{flex-wrap:wrap}}
