body:has(.hh) .ct-header,body:has(.hh) .ct-footer,body:has(.hh) header#header,body:has(.hh) footer#footer{display:none!important} .vibe-canvas-content-box:has(.hh){padding:0!important;max-width:none!important} .entry-content:has(.hh),.entry-content:has(.hh) > *{max-width:none!important;margin:0!important;padding:0!important} html:has(.hh){scroll-behavior:smooth} body:has(.hh) .sn-floating-cta-wrapper{display:none!important} .hh p:empty{display:none} .hh{--navy:#2F4372;--blue:#566892;--mist:#8FA3C8;--paper:#F3F5F9;--ink:#1B2133;--night:#1B2540;--sub:#4A5370;--line:#D8DDE7;--grid:#E3E7EF;--accent:#566892;--sans:"IBM Plex Sans",Arial,sans-serif;--mono:"IBM Plex Mono",ui-monospace,Menlo,monospace;font-family:var(--sans);color:var(--ink);font-size:16px;line-height:1.6;letter-spacing:0;width:100%;margin:0;background:#fff;overflow:hidden;-webkit-font-smoothing:antialiased} .hh *,.hh *::before,.hh *::after{box-sizing:border-box} .hh a{color:inherit;text-decoration:none} .hh img{display:block;max-width:100%} .hh p,.hh ul,.hh ol,.hh figure,.hh address{margin:0;padding:0;border:0} .hh section{scroll-margin-top:16px} .hh .wrap{max-width:1240px;margin:0 auto;padding:0 40px} .hh .wrap h1,.hh .wrap h2,.hh .wrap h3{font-family:var(--sans);font-weight:600;letter-spacing:-.01em;color:var(--ink);margin:0;padding:0;border:0;text-transform:none;line-height:1.2} .hh .wrap h2{font-size:clamp(30px,3.2vw,40px)} .hh .mono{font-family:var(--mono);font-weight:500;font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:var(--blue)} .hh .shead{margin-bottom:48px} .hh .shead .mono{display:block;margin-bottom:14px} .hh .btn{display:inline-flex;align-items:center;gap:10px;border-radius:4px;font-family:var(--sans);font-weight:600;font-size:15px;padding:13px 24px;transition:background .2s,color .2s,border-color .2s;cursor:pointer;border:1px solid transparent} .hh .btn-w{background:#fff;color:var(--navy)} .hh .btn-w:hover{background:var(--paper)} .hh .btn-n{background:var(--navy);color:#fff;font-size:14px;padding:11px 20px} .hh .btn-n:hover{background:var(--night)} .hh .btn .ar{font-family:var(--mono);font-weight:400} .hh svg.logo-svg{display:block;fill:currentColor} .hh .util{background:var(--night);color:#C8D2E8;font-size:12px;font-family:var(--mono);letter-spacing:.06em} .hh .util .wrap{display:flex;justify-content:flex-end;gap:28px;height:34px;align-items:center} .hh .util a:hover{color:#fff} .hh .nav{border-bottom:1px solid var(--line);background:#fff} .hh .nav .wrap{display:flex;align-items:center;height:76px;gap:40px} .hh .nav .brand{color:var(--navy);flex:none;padding:11px 0} .hh .nav .brand svg{height:22px;width:auto} .hh .nav ul{list-style:none;display:flex;gap:30px;margin:0;padding:0;font-size:15px;font-weight:500;align-items:center;color:var(--sub)} .hh .nav ul a:hover{color:var(--navy)} .hh .nav ul.r{margin-left:auto} .hh .nav .cta{background:var(--navy);color:#fff!important;border-radius:4px;padding:9px 18px;font-size:14px;font-weight:600} .hh .research{background:var(--paper);padding:104px 0} .hh .research .rg{display:grid;grid-template-columns:1.5fr 1fr;gap:56px;align-items:start} .hh .pubs{list-style:none;border-top:1px solid var(--line)} .hh .pubs li{display:grid;grid-template-columns:76px 1fr;gap:24px;padding:24px 0;border-bottom:1px solid var(--line)} .hh .pubs .y{font-family:var(--mono);font-size:14px;color:var(--blue);padding-top:3px} .hh .pubs .jn{font-style:italic;font-weight:500;font-size:20px;color:var(--navy)} .hh .pubs p{margin-top:6px;color:var(--sub);font-size:15px;line-height:1.6} .hh .research .side{display:flex;flex-direction:column;gap:20px} .hh .book{position:relative;overflow:hidden;background:var(--night);color:#fff;border-radius:6px;padding:36px 34px} .hh .book .mono,.hh .wp .mono{font-size:11px;letter-spacing:.16em} .hh .book .mono{color:#C8D2E8} .hh .book .bt{font-size:24px;font-weight:600;line-height:1.25;margin:16px 0 8px} .hh .book .ba{font-size:14px;color:#C8D2E8} .hh .book p.bd{margin-top:18px;font-size:15px;line-height:1.7;color:#DCE2F0} .hh .wp{background:#fff;border:1px solid var(--line);border-radius:6px;padding:32px 34px 34px} .hh .wp .bt{font-size:19px;font-weight:600;line-height:1.35;margin:14px 0 0;color:var(--ink)} .hh .wp p.bd{margin-top:12px;font-size:15px;line-height:1.7;color:var(--sub)} .hh .wp .btn{margin-top:22px} @keyframes fxIn{from{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:none}} .hh footer.ft{position:relative;overflow:hidden;background:var(--night);color:#fff;padding:80px 0 52px} .hh .ft .cols{display:grid;grid-template-columns:1.5fr 1fr 1fr 1fr;gap:40px;padding-bottom:52px;border-bottom:1px solid rgba(200,210,232,.2)} .hh .ft .brand{display:inline-block;color:#fff;margin-bottom:22px} .hh .ft .brand svg{height:24px;width:auto} .hh .ft .fh{margin:0 0 16px;font-family:var(--mono);font-size:11.5px;font-weight:500;letter-spacing:.14em;text-transform:uppercase;color:var(--mist)} .hh .ft ul{list-style:none;display:flex;flex-direction:column;gap:10px;font-size:15px;color:#E1E6F1} .hh .ft ul a:hover{color:#fff;text-decoration:underline} .hh .ft .join p.jp{color:#C8D2E8;font-size:15px;line-height:1.65;margin-bottom:24px;max-width:380px} .hh .ft .bottom{display:flex;justify-content:space-between;align-items:flex-end;gap:40px;padding-top:36px;flex-wrap:wrap} .hh .ft .legal{font-family:var(--mono);font-size:12px;color:var(--mist)} .hh .ft .disc{border:1px solid rgba(200,210,232,.25);border-radius:4px;padding:16px 20px;font-size:12px;line-height:1.65;color:#AEB8CE;max-width:600px} @media (max-width:1000px){.hh .wrap{padding:0 24px}.hh .nav ul.l{display:none}.hh .about .wrap,.hh .story .wrap,.hh .research .rg,.hh .contact .wrap{grid-template-columns:1fr;gap:48px}.hh .ft .cols{grid-template-columns:1fr 1fr}} @media (max-width:680px){.hh .wrap{padding:0 16px}.hh .util .wrap{justify-content:center}.hh .nav .wrap{height:64px}.hh .nav .brand svg{height:18px}.hh .nav ul.r li:not(:last-child){display:none}.hh .mvv,.hh .research,.hh .story,.hh .work,.hh .contact{padding:80px 0}.hh .story li,.hh .pubs li{grid-template-columns:64px 1fr;gap:14px}.hh .ft .cols{grid-template-columns:1fr}.hh .shead{margin-bottom:36px}} .hh .hero .hbg,.hh .phero .hbg{position:absolute;inset:0} .hh .hero .hbg img,.hh .phero .hbg img{width:100%;height:100%;object-fit:cover;object-position:center right} .hh .ft .legal a{color:var(--mist);text-decoration:underline;text-underline-offset:3px} .hh .ft .legal .sep{margin:0 10px} .hh .phero{position:relative;min-height:340px;display:flex;align-items:flex-end;background:var(--night);color:#fff;overflow:hidden} .hh .phero .hshade{position:absolute;inset:0;background:linear-gradient(90deg,rgba(27,37,64,.92),rgba(27,37,64,.55) 60%,rgba(27,37,64,.2))} .hh .phero .wrap{position:relative;width:100%;padding-bottom:56px} .hh .phero .crumb{color:#C8D2E8} .hh .phero .crumb a:hover{color:#fff} .hh .phero .wrap h1{color:#fff;font-size:clamp(36px,4.4vw,54px);margin-top:16px} .hh .research.rp{background:#fff} .hh .rp .back{display:flex;gap:24px;align-items:center;margin-top:56px;padding-top:32px;border-top:1px solid var(--line)} .hh .rp .lnk{font-weight:500;color:var(--navy)} @media (max-width:680px){.hh .rp .back{flex-direction:column;align-items:flex-start}} @media (prefers-reduced-motion:reduce){.hh *{transition:none!important;animation:none!important}} .hh{--serif:"Newsreader",Georgia,"Times New Roman",serif} .hh .wrap h1,.hh .wrap h2,.hh .wrap h3,.hh .founder .fn{font-family:var(--serif);font-weight:400;letter-spacing:-.012em} .hh .ft .cols{grid-template-columns:1.5fr 1fr 1fr} @media (max-width:1000px){.hh .ft .cols{grid-template-columns:1fr 1fr}.hh .ft .join{grid-column:1/-1}} @media (max-width:680px){.hh .ft .cols{grid-template-columns:1fr}}.hh .pubfull .pcount{margin:-28px 0 26px;font-family:var(--mono);font-size:12.5px;letter-spacing:.06em;color:var(--blue)}
.hh .pubfull .pfil{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:34px}
.hh .pubfull .pfil button{font:500 13px var(--sans);color:var(--navy);background:#fff;border:1px solid var(--line);border-radius:999px;padding:7px 16px;cursor:pointer;transition:background .2s,border-color .2s,color .2s}
.hh .pubfull .pfil button:hover{border-color:var(--navy)}
.hh .pubfull .pfil button[aria-pressed=true]{background:var(--navy);border-color:var(--navy);color:#fff}
.hh .pubfull .pgr{margin-top:40px}
.hh .pubfull .pgr:first-of-type{margin-top:0}
.hh .pubfull .pgr h3{margin:0 0 6px;font-family:var(--mono);font-weight:500;font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:var(--blue)}
.hh .pubfull ol{list-style:none;margin:0;padding:0;border-top:1px solid var(--line)}
.hh .pubfull li{display:grid;grid-template-columns:110px 1fr;gap:6px 24px;padding:20px 0;border-bottom:1px solid var(--line)}
.hh .pubfull .pid{font-family:var(--mono);font-size:13.5px;color:var(--navy);padding-top:2px}
.hh .pubfull .pid .bm{display:block;margin-top:4px;font-size:11px;color:#8A93A8}
.hh .pubfull .pid .bm a{color:inherit;border-bottom:1px solid transparent}
.hh .pubfull .pid .bm a:hover{border-color:currentColor}
.hh .pubfull .pmeta{font-family:var(--mono);font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--blue);margin-bottom:6px}
.hh .pubfull .pmeta .fb{color:#fff;background:var(--navy);border-radius:3px;padding:1px 6px;margin-right:8px}
.hh .pubfull .cite{color:var(--ink);font-size:15px;line-height:1.65}
.hh .pubfull .doi{display:inline-block;margin-top:6px;font-family:var(--mono);font-size:12.5px;color:var(--navy);border-bottom:1px solid var(--line);word-break:break-all}
.hh .pubfull .doi:hover{border-color:var(--navy)}
.hh .pubfull .pnote{margin-top:30px;font-size:13px;line-height:1.65;color:var(--sub);max-width:820px}
.hh .pubfull [hidden]{display:none!important}
.hh .rp.books{padding-top:0}
.hh .rp.books .rg{display:block}
.hh .rp.books .side{display:grid;grid-template-columns:1fr 1fr;gap:24px}
@media (max-width:860px){.hh .rp.books .side{grid-template-columns:1fr}}
@media (max-width:640px){.hh .pubfull li{grid-template-columns:1fr;gap:4px}}
.hh .ui2-off{display:none!important}
.hh .ui2-tg{display:inline-flex;align-items:center;gap:10px;margin-top:18px;background:none;border:0;border-bottom:1px solid var(--line);border-radius:0;padding:8px 0;font-family:var(--mono);font-weight:500;font-size:12px;letter-spacing:.12em;text-transform:uppercase;color:var(--navy);cursor:pointer;transition:border-color .2s,color .2s}
.hh .ui2-tg:hover{border-color:var(--navy)}
.hh .ui2-tg i{width:8px;height:8px;border-right:1.5px solid currentColor;border-bottom:1.5px solid currentColor;transform:rotate(45deg) translateY(-3px);transition:transform .2s}
.hh .ui2-tg[aria-expanded=true] i{transform:rotate(-135deg) translateY(-1px)}
.hh .ui2-tg.blk{display:flex;width:100%;justify-content:center;margin-top:16px;padding:14px 16px;border:1px solid var(--line);border-radius:4px;background:#fff}
.hh .ui2-tg.blk:hover{border-color:var(--navy)}
.hh .ui2-tg.dk{color:#E1E6F1;border-bottom-color:rgba(200,210,232,.35)}
.hh .ui2-tg.dk:hover{color:#fff;border-bottom-color:#fff}
.hh .ui2-tg:focus-visible,.hh .ui2-tab:focus-visible,.hh .ui2-acc-h:focus-visible,.hh .ui2-dots button:focus-visible{outline:2px solid var(--navy);outline-offset:3px}
.hh .ui2-in{animation:ui2In .35s ease}
@keyframes ui2In{from{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:none}}
.hh .ui2-clamp:not(.is-open){display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:6;overflow:hidden}
.hh .about .ui2-fold > p.body + p.body,.hh .about .ui2-fold > p.body:first-child{margin-top:14px}
.hh .ui2-tabs{display:grid;grid-auto-flow:column;grid-auto-columns:1fr;gap:12px;margin-bottom:20px}
.hh .ui2-tab{display:flex;flex-direction:column;align-items:flex-start;gap:6px;min-width:0;text-align:left;font:inherit;color:var(--sub);background:var(--paper);border:1px solid var(--line);border-top:3px solid var(--line);border-radius:6px;padding:16px 22px 18px;cursor:pointer;transition:background .2s,border-color .2s,color .2s,box-shadow .2s}
.hh .ui2-tab:hover{color:var(--ink);background:#fff}
.hh .ui2-tab[aria-selected=true]{background:#fff;color:var(--ink);border-top-color:var(--navy);box-shadow:0 12px 32px rgba(27,37,64,.08)}
.hh .ui2-tk{font-family:var(--mono);font-weight:500;font-size:11.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--blue)}
.hh .ui2-tl{font-family:var(--serif);font-weight:500;font-size:24px;line-height:1.15;color:inherit;letter-spacing:-.01em}
.hh .ui2-ts{font-size:14px;line-height:1.45;color:var(--sub)}
.hh .mtabs .ui2-tab.t-def[aria-selected=true]{border-top-color:#B7791F}
.hh .mtabs .ui2-tab.t-def .ui2-tk{color:#9A6417}
.hh.ui2-on .mcard + .mcard{margin-top:0}
.hh .ui2-acc{margin-top:0!important;padding:22px 0!important}
.hh .mcard > p + .ui2-acc,.hh .mcard > .tag + p + .ui2-acc{margin-top:28px!important}
.hh .ui2-acc-h{display:grid;grid-template-columns:minmax(0,1fr) 36px;column-gap:20px;align-items:center;cursor:pointer;border-radius:2px}
.hh .ui2-acc-h > :not(i){grid-column:1}
.hh .ui2-acc-h > i{grid-column:2;grid-row:1 / span 3;position:relative;width:36px;height:36px;border:1px solid var(--line);border-radius:50%;transition:border-color .2s,background .2s}
.hh .ui2-acc-h > i::before{content:"";position:absolute;left:50%;top:50%;width:8px;height:8px;border-right:1.5px solid var(--navy);border-bottom:1.5px solid var(--navy);transform:translate(-50%,-70%) rotate(45deg);transition:transform .2s}
.hh .ui2-acc-h[aria-expanded=true] > i::before{transform:translate(-50%,-30%) rotate(-135deg)}
.hh .ui2-acc-h:hover > i{border-color:var(--navy);background:var(--paper)}
.hh .mcard .ui2-acc-h .kick{margin-bottom:0}
.hh .mcard .ui2-acc-h.solo .kick{font-family:var(--serif);font-weight:500;font-size:24px;line-height:1.25;color:var(--ink)}
.hh .ui2-acc-b{padding-top:14px}
.hh .ui2-acc-b > :first-child{margin-top:0!important}
.hh .work .ui2-tab{background:transparent;flex-direction:row;align-items:center;gap:14px;padding:16px 20px}
.hh .work .ui2-tab:hover{background:#fff}
.hh .work .ui2-tab[aria-selected=true]{background:#fff}
.hh .work .ui2-tab svg{width:22px;height:22px;flex:none;color:var(--navy);stroke-width:1.75}
.hh .work .ui2-tab .ui2-tl{font-family:var(--sans);font-weight:600;font-size:16px;letter-spacing:0}
.hh .work .ui2-tab .ui2-tk{margin-left:auto}
.hh.ui2-on .wgrid{display:block}
@media (min-width:1001px){.hh.ui2-on .wcard{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.1fr);grid-template-rows:repeat(5,auto) 1fr;column-gap:52px;align-content:start;min-height:460px;padding:40px 44px 40px 0}.hh.ui2-on .wcard > *{grid-column:2}.hh.ui2-on .wcard > .wimg{grid-column:1;grid-row:1 / -1;position:relative;margin:-40px 0;aspect-ratio:auto;border-bottom:0;border-right:1px solid var(--line)}.hh.ui2-on .wcard > .wimg img{position:absolute;inset:0}.hh.ui2-on .wcard .wb{padding-top:26px}}
@media (min-width:681px) and (max-width:1000px){.hh.ui2-on .wcard .wimg{aspect-ratio:2/1}}
.hh .ui2-dots{display:none}
@media (max-width:1000px){.hh .ui2-tl{font-size:21px}.hh .ui2-tab{padding:14px 18px 16px}}
@media (max-width:680px){
.hh .mtabs{gap:8px}.hh .mtabs .ui2-ts{display:none}.hh .ui2-tab{padding:12px 14px 14px;gap:4px}.hh .ui2-tl{font-size:19px}.hh .ui2-tk{font-size:10.5px;letter-spacing:.12em}
.hh .ui2-tabs.wtabs{grid-auto-flow:row;grid-template-columns:1fr 1fr;gap:8px}.hh .work .ui2-tab{gap:10px;padding:12px 14px}.hh .work .ui2-tab svg{width:20px;height:20px}.hh .work .ui2-tab .ui2-tl{font-size:15px}
.hh .ui2-acc-h{column-gap:14px;grid-template-columns:minmax(0,1fr) 32px}.hh .ui2-acc-h > i{width:32px;height:32px}.hh .mcard .ui2-acc-h.solo .kick,.hh .mcard .ui2-acc-h h4{font-size:21px}
.hh.ui2-on .grid4{display:flex;gap:14px;overflow-x:auto;scroll-snap-type:x mandatory;margin:0 -16px;padding:0 16px 4px;scroll-padding:0 16px;scrollbar-width:none;-webkit-overflow-scrolling:touch}
.hh.ui2-on .grid4::-webkit-scrollbar{display:none}
.hh.ui2-on .grid4 > .cap{flex:0 0 84%;scroll-snap-align:start}
.hh .ui2-dots{display:flex;justify-content:center;gap:4px;margin-top:18px}
.hh .ui2-dots button{width:24px;height:24px;padding:0;border:0;background:none;cursor:pointer;display:flex;align-items:center;justify-content:center}
.hh .ui2-dots button::before{content:"";width:7px;height:7px;border-radius:50%;background:var(--line);transition:background .2s,width .2s}
.hh .ui2-dots button[aria-current=true]::before{width:20px;border-radius:4px;background:var(--navy)}
.hh .proven .pgrid{grid-template-columns:1fr 1fr}.hh .proven .pgrid > div{border-left:0;padding:24px 12px 24px 0;border-top:1px solid var(--line)}.hh .proven .pgrid > div:nth-child(-n+2){border-top:0}.hh .proven .pgrid > div:nth-child(2n){border-left:1px solid var(--line);padding-left:16px;padding-right:0}.hh .proven .pgrid > div:first-child{border-top:0}.hh .proven .pl{font-size:14px}
}
.hh .ft .bottom{align-items:flex-start;flex-wrap:nowrap}.hh .ft details.disc{flex:0 1 460px;border:0;border-radius:0;padding:0;max-width:460px;margin-left:auto;text-align:right}@media (max-width:1100px){.hh .ft .bottom{flex-direction:column;align-items:flex-end;gap:28px}.hh .ft .bottom > div:first-child{align-self:stretch}.hh .ft details.disc{flex:none;max-width:520px}}.hh .ft details.disc summary{list-style:none;display:inline-flex;align-items:center;gap:8px;cursor:pointer;font-family:var(--mono);font-size:12px;color:var(--mist);padding:2px 0;transition:color .2s}.hh .ft details.disc summary::-webkit-details-marker{display:none}.hh .ft details.disc summary:hover{color:#fff}.hh .ft details.disc summary:focus-visible{outline:2px solid #C8D2E8;outline-offset:3px}.hh .ft details.disc summary i{width:7px;height:7px;border-right:1.5px solid currentColor;border-bottom:1.5px solid currentColor;transform:rotate(45deg) translateY(-2px);transition:transform .2s}.hh .ft details.disc[open] summary i{transform:rotate(-135deg) translateY(-1px)}.hh .ft details.disc p{margin-top:12px;text-align:left;font-size:12px;line-height:1.65;color:#AEB8CE}@media (max-width:680px){.hh .ft details.disc{max-width:none;width:100%}}