:root{--ink:#123b3a;--dark:#071412;--panel:#102435;--paper:#faf9f5;--mint:#a8ddd0;--aqua:#64c7c0;--orange:#ef9c62;--line:rgba(255,255,255,.16)}
*{box-sizing:border-box}
img{ -webkit-user-drag:none;user-select:none }
html{scroll-behavior:smooth}
body{margin:0;background:var(--dark);color:#f5f6f2;font:16px/1.6 "DM Sans",sans-serif}
a{color:inherit;text-decoration:none}
.pub-header{position:sticky;top:0;z-index:10;display:flex;justify-content:space-between;align-items:center;min-height:68px;padding:14px 8vw;border-bottom:1px solid rgba(255,255,255,.2);background:linear-gradient(90deg,rgba(4,30,45,.6),rgba(4,30,45,.08)),url("assets/images/water-oil-header.png") center 54%/cover no-repeat;box-shadow:0 10px 30px rgba(2,14,18,.25)}
.pub-identity{display:flex;align-items:center;gap:18px}
.pub-brand{font:600 18px "Manrope",sans-serif}
.pub-page-title{padding-left:18px;border-left:1px solid rgba(255,255,255,.42);color:var(--orange);font:500 18px "Manrope",sans-serif}
.back-link{position:relative;padding:8px 0;color:#fff;font-size:clamp(14px,1.25vw,18px);text-shadow:0 1px 7px rgba(0,24,42,.7)}
.back-link:after{content:"";position:absolute;left:0;right:0;bottom:2px;height:1px;background:var(--mint);transform:scaleX(0);transform-origin:right;transition:transform .25s ease}
.back-link:hover:after,.back-link:focus-visible:after{transform:scaleX(1);transform-origin:left}
.pub-browser{padding:55px 8vw 110px}
.pub-tools{display:flex;justify-content:space-between;align-items:flex-end;gap:35px;padding-bottom:32px;border-bottom:1px solid var(--line)}
.pub-search{width:min(100%,430px)}
.pub-search span{display:block;margin-bottom:9px;color:rgba(255,255,255,.62);font:400 14px "Manrope",sans-serif;letter-spacing:.1em;text-transform:uppercase}
.pub-search input{width:100%;padding:13px 0;border:0;border-bottom:1px solid rgba(255,255,255,.4);outline:0;background:transparent;color:#fff;font:400 20px "DM Sans",sans-serif}
.pub-search input:focus{border-color:var(--orange)}
.pub-search input::placeholder{color:rgba(255,255,255,.3)}
.year-filters{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:8px}
.year-filters button{padding:9px 15px;border:1px solid rgba(255,255,255,.2);border-radius:30px;background:transparent;color:rgba(255,255,255,.7);font:400 14px "Manrope",sans-serif;cursor:pointer}
.year-filters button:hover,.year-filters button.active{border-color:var(--orange);background:rgba(239,156,98,.13);color:var(--orange)}
.result-count{margin:28px 0 35px;color:rgba(255,255,255,.48);font-size:13px}
.result-count strong{color:var(--orange);font-size:18px}
.publication-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1px;background:#071412;border:1px solid #071412}
.year-heading{grid-column:1/-1;margin:0;padding:20px 28px 14px;border-top:1px solid rgba(168,221,208,.2);background:#25465c url("assets/images/year-divider-brush-soft.png") center/cover no-repeat;color:#fff;text-shadow:0 2px 5px rgba(0,15,28,.95);font:600 clamp(30px,3vw,44px)/1 "Manrope",sans-serif;letter-spacing:-.035em;box-shadow:inset 0 1px 0 rgba(255,255,255,.05),0 10px 28px rgba(2,14,18,.18)}
.year-heading:first-child{border-top:0}
.year-heading[hidden]{display:none}
.paper{position:relative;display:flex;flex-direction:column;min-width:0;outline:1px solid #071412;background:#071412;transition:background .25s,transform .25s}
.paper:hover{position:relative;z-index:1;background:#122a32;box-shadow:0 18px 45px rgba(0,0,0,.22)}
.paper[hidden]{display:none}
.paper>img{width:100%;height:clamp(190px,18vw,260px);display:block;object-fit:contain;object-position:center;background:#071412}
.paper-copy{display:flex;flex:1;flex-direction:column;min-height:300px;padding:27px 25px}
.paper-year{margin-bottom:15px;color:var(--orange);font:600 12px "Manrope",sans-serif;letter-spacing:.12em}
.paper h2{margin:0;color:#f5f6f2;font:500 18px/1.38 "Manrope",sans-serif;letter-spacing:-.02em}
.paper p{margin:14px 0 22px;color:rgba(255,255,255,.53);font-size:13px}
.paper-actions{display:flex;align-items:center;flex-wrap:wrap;gap:8px;margin-top:auto}
.pdf-link,.paper-link{padding:7px 12px;border:1px solid rgba(168,221,208,.22);border-radius:30px;font-size:11px;letter-spacing:.04em}
.pdf-link{color:rgba(168,221,208,.5)}
.paper-link{border-color:rgba(239,156,98,.55);color:var(--orange);transition:color .2s,background .2s,border-color .2s}
.paper-link:hover,.paper-link:focus-visible{border-color:var(--orange);background:rgba(239,156,98,.13);color:#ffc195}
.no-results{padding:70px 0;text-align:center;color:rgba(255,255,255,.55)}
footer{display:flex;justify-content:space-between;padding:30px 8vw;border-top:1px solid var(--line);color:rgba(255,255,255,.5);font-size:13px}
footer a{color:var(--mint)}
@media(max-width:1050px){.publication-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.pub-tools{align-items:flex-start;flex-direction:column}.year-filters{justify-content:flex-start}.paper>img{height:clamp(210px,28vw,290px)}}
@media(max-width:650px){.pub-header,.pub-browser,footer{padding-left:6vw;padding-right:6vw}.publication-grid{grid-template-columns:1fr}.paper>img{height:auto;max-height:none;aspect-ratio:auto}.paper-copy{min-height:270px}.year-filters{gap:6px}.year-filters button{padding:7px 10px;font-size:13px}.pub-header{gap:15px}.pub-identity{gap:10px}.pub-brand,.pub-page-title{font-size:14px}.pub-page-title{padding-left:10px}.back-link{font-size:12px}}
