.nh-research{--line:rgba(255,255,255,0.06);--line-hi:rgba(255,255,255,0.12);--text:#aaa;--text-hi:#f0f0f0;--text-lo:#3a3a3a;--text-mid:#666;--orange:#f47321;--green-hi:#00a060}.header-link{color:#00a060}.nav-item.active>.nav-link{color:#00a060!important}.filter-bar{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap;padding:1.5rem 0 2rem}.filter-btn{font-size:.8rem;font-weight:400;letter-spacing:.1em;text-transform:uppercase;padding:.4rem 1rem;border:1px solid var(--line);color:var(--text-lo);background:transparent;cursor:pointer;clip-path:polygon(6px 0,100% 0%,calc(100% - 6px) 100%,0% 100%);transition:all .2s ease;font-family:inherit}.filter-btn:hover{border-color:var(--line-hi);color:var(--text)}.filter-btn.active{border-color:#f47321;color:#f47321;background:rgba(244,115,33,0.08)}.filter-count{font-size:.8rem;color:var(--green-hi);margin-left:auto;letter-spacing:.08em;font-weight:300}.pub-list{display:flex;flex-direction:column}.pub-item{display:grid;grid-template-columns:44px 1fr;gap:1.5rem;padding:1.5rem 0;padding-left:0;border-bottom:1px solid var(--line);align-items:start;position:relative;opacity:0;transform:translateY(6px);transition:opacity .4s ease,transform .4s ease,padding-left .25s ease}.pub-item:first-child{border-top:1px solid var(--line)}.pub-item::before{content:'';position:absolute;left:0;top:0;bottom:0;width:2px;background:#f47321;transform:scaleY(0);transform-origin:top;transition:transform .3s ease}.pub-item:hover{padding-left:12px}.pub-item:hover::before{transform:scaleY(1)}.pub-item.nh-visible{opacity:1;transform:translateY(0)}.pub-item.hidden{display:none}.pub-num{font-size:.8rem;font-weight:500;letter-spacing:.06em;color:var(--text-lo);padding-top:4px;transition:color .2s}.pub-item:hover .pub-num{color:#f47321}.pub-body{display:flex;flex-direction:column;gap:.35rem}.pub-title{font-size:1.0rem;font-weight:400;color:var(--text-hi);line-height:1.5;text-decoration:none;transition:color .2s}.pub-title:hover{color:#00a060}.pub-authors{font-size:.8rem;font-weight:300;color:var(--text-mid);line-height:1.5}.pub-authors strong{color:var(--text);font-weight:400}.pub-meta{display:flex;align-items:center;gap:.75rem;flex-wrap:wrap;margin-top:.15rem}.pub-journal{font-size:.8rem;font-weight:300;font-style:italic;color:var(--text-mid)}.pub-year{font-size:.8rem;font-weight:300;color:var(--text-lo);letter-spacing:.05em}.pub-note{font-size:.6rem;font-weight:500;letter-spacing:.1em;text-transform:uppercase;color:var(--green-hi);border:1px solid rgba(0,160,96,0.3);padding:.1rem .5rem;clip-path:polygon(4px 0,100% 0%,calc(100% - 4px) 100%,0% 100%)}.pub-cite{display:inline-flex;align-items:stretch;font-size:.68rem;font-weight:400;letter-spacing:.02em;border-radius:3px;overflow:hidden;border:1px solid rgba(255,255,255,0.07);line-height:1;text-decoration:none;vertical-align:middle;opacity:.35;transition:opacity .2s,border-color .2s;flex-shrink:0}.pub-cite:hover{opacity:.85;border-color:rgba(0,160,96,0.4);text-decoration:none}.pub-cite-label{display:inline-flex;align-items:center;gap:.3rem;padding:.28rem .5rem;background:#e8e4d0;color:#333;white-space:nowrap;font-family:Verdana,Geneva,"DejaVu Sans",sans-serif}.pub-cite-label svg{width:11px;height:11px;flex-shrink:0}.pub-cite-count{display:inline-flex;align-items:center;justify-content:center;padding:.28rem .5rem;background:#00a060;color:#fff;white-space:nowrap;min-width:2.5ch;font-family:Verdana,Geneva,"DejaVu Sans",sans-serif}.nh-reveal{opacity:0;transform:translateY(14px);transition:opacity .65s ease,transform .65s ease}.nh-reveal.nh-visible{opacity:1;transform:none}@media(max-width:760px){.pub-item{grid-template-columns:32px 1fr}.pub-cite{font-size:.6rem}}.scholar-bar{padding:0 0 1.5rem}.scholar-btn{display:inline-flex;align-items:center;gap:.5rem;font-size:.8rem;font-weight:400;letter-spacing:.1em;text-transform:uppercase;padding:.5rem 1.2rem;border:1px solid rgba(0,160,96,0.4);color:#00a060;background:transparent;text-decoration:none;clip-path:polygon(6px 0,100% 0%,calc(100% - 6px) 100%,0% 100%);transition:all .2s ease}
.scholar-btn:hover{border-color:#00a060;background:rgba(0,160,96,0.08);color:#00a060}