.jh-site-header{box-sizing:border-box;position:sticky;top:0;z-index:20;display:flex;align-items:center;justify-content:space-between;width:100%;max-width:none;height:76px;min-height:76px;margin:0;padding:0 max(24px,calc((100% - 1160px)/2));border:0;border-bottom:1px solid #11110f;background:rgba(242,239,231,.96);backdrop-filter:blur(12px);font-family:Arial,sans-serif;line-height:1.5;color:#11110f;letter-spacing:normal}
.jh-site-header a{text-decoration:none;color:inherit}
.jh-site-header .jh-wordmark{font:800 25px/1 Arial,sans-serif;letter-spacing:-2px}
.jh-site-header .jh-wordmark span{color:#2948ff}
.jh-site-header .jh-navigation{display:flex;gap:34px;align-items:center;margin:0;padding:0;font:700 14px/1.5 Arial,sans-serif;letter-spacing:normal}
.jh-site-header .jh-navigation a:hover{color:#2948ff}
.jh-site-header .jh-header-cta{display:flex;align-items:center;gap:18px;min-height:48px;padding:12px 18px;background:#11110f;color:#fff;font:700 14px/1.5 Arial,sans-serif;letter-spacing:normal}
.jh-site-header .jh-header-cta:hover{transform:translateY(-2px)}
.jh-site-header a:focus-visible{outline:3px solid #2948ff;outline-offset:5px}
@media(min-width:601px) and (max-width:900px){.jh-site-header .jh-navigation{gap:18px;font-size:12px}.jh-site-header .jh-header-cta{padding:10px 13px}}
@media(max-width:600px){.jh-site-header{height:auto;min-height:64px;padding:12px 20px;flex-wrap:wrap;gap:12px}.jh-site-header .jh-header-cta{font-size:13px;gap:12px;padding:10px 13px;min-height:44px}.jh-site-header .jh-navigation{display:flex;order:3;flex-basis:100%;justify-content:space-between;gap:12px;font-size:12px;padding-top:10px;border-top:1px solid #c9c4b8}}
@media(prefers-reduced-motion:reduce){.jh-site-header .jh-header-cta:hover{transform:none}}

.site-cursor-dot,.site-cursor-ring{position:fixed;left:-100px;top:-100px;z-index:9999;pointer-events:none;opacity:0;transform:translate(-50%,-50%);border-radius:50%}.site-cursor-dot{width:7px;height:7px;background:#2948ff}.site-cursor-ring{width:32px;height:32px;border:1px solid #2948ff;transition:left .09s ease-out,top .09s ease-out,width .15s,height .15s}.site-cursor-dot.is-visible,.site-cursor-ring.is-visible{opacity:1}.site-cursor-ring.is-hovering{width:48px;height:48px;background:rgb(41 72 255 / .045)}.site-cursor-ring.no-motion{transition:none}@media(hover:hover) and (pointer:fine){html.custom-cursor-active,html.custom-cursor-active *{cursor:none!important}html.custom-cursor-active input,html.custom-cursor-active textarea,html.custom-cursor-active [contenteditable=true]{cursor:text!important}}@media(hover:none),(pointer:coarse){.site-cursor-dot,.site-cursor-ring{display:none}}
.site-cursor-dot{box-shadow:0 0 0 1.5px #fff}.site-cursor-ring{box-shadow:0 0 0 1px #fff,inset 0 0 0 1px #fff}
.jh-site-header .jh-header-cta{gap:9px}.jh-site-header .jh-chat-icon,.jh-inline-icon{display:inline-block;width:17px;height:17px;flex-shrink:0;vertical-align:middle}.jh-inline-icon{margin-left:5px}

.jh-site-header .jh-header-cta{transition:background .16s ease,color .16s ease,transform .16s ease}.jh-site-header .jh-header-cta:hover{background:#2948ff;color:#fff;transform:translateY(-2px)}.jh-site-header .jh-header-cta:active{transform:translateY(0);background:#1c34c9}.jh-site-header .jh-header-cta:focus-visible{outline:3px solid #2948ff;outline-offset:4px}@media(prefers-reduced-motion:reduce){.jh-site-header .jh-header-cta{transition:none}.jh-site-header .jh-header-cta:hover{transform:none}}

/* Shared interactive states across the portfolio and tools. */
:where(a,button,summary,input,select,textarea):focus-visible{outline:2px solid #2948ff;outline-offset:4px}.jh-site-header .jh-header-cta:hover{color:#cbff4b}.jh-navigation a:hover{text-decoration:underline;text-underline-offset:5px}a[data-blue-action]:hover,button[data-blue-action]:hover{color:#cbff4b!important}a[data-outline-action]:hover,button[data-outline-action]:hover{background:#cbff4b!important;color:#11110f!important;border-color:#11110f!important}a[data-hover-link]:hover{color:#2948ff;text-decoration:underline;text-underline-offset:5px}footer a[data-hover-link]:hover{color:#cbff4b}a[data-card-link]:hover img{filter:brightness(.96)}a[data-card-link]:hover{outline:2px solid #2948ff;outline-offset:3px}button:not(:disabled):active,a[data-blue-action]:active,a[data-outline-action]:active{transform:translateY(1px)}button:not(:disabled){cursor:pointer}button:disabled{cursor:not-allowed}summary:hover{color:#2948ff}input:hover,textarea:hover,select:hover{border-color:#2948ff}a[data-blue-action],button[data-blue-action],a[data-outline-action],button[data-outline-action]{transition:background .16s,color .16s,border-color .16s,transform .16s}@media(prefers-reduced-motion:reduce){a,button{transition:none!important}}

.jh-site-header .jh-header-cta{position:relative;overflow:visible;gap:0}.jh-site-header .jh-header-cta:after{content:"";position:absolute;left:0;bottom:-8px;width:13px;height:9px;background:inherit;clip-path:polygon(0 0,100% 0,0 100%)}.button{gap:0}.footer-talk-link{gap:0}

.jh-site-header .jh-header-cta{position:relative!important;display:inline-flex!important;align-items:center!important;justify-content:center!important;width:auto!important;min-height:48px!important;margin:0!important;padding:12px 18px!important;border:0!important;border-radius:0!important;overflow:visible!important;background:#11110f!important;color:#fff!important;box-shadow:none!important;gap:0!important;font:700 14px/1.5 Arial,sans-serif!important;text-decoration:none!important;flex-shrink:0;isolation:isolate}
.jh-site-header .jh-header-cta::after{content:""!important;display:block!important;position:absolute!important;left:0!important;right:auto!important;top:auto!important;bottom:-8px!important;width:13px!important;height:9px!important;background:inherit!important;border:0!important;border-radius:0!important;transform:none!important;clip-path:polygon(0 0,100% 0,0 100%)!important;opacity:1!important;pointer-events:none!important}
.jh-site-header .jh-header-cta:hover{background:#2948ff!important;color:#cbff4b!important}.jh-site-header .jh-header-cta:active{background:#2039d8!important}.jh-site-header .jh-header-cta svg{display:none!important}
@media(max-width:600px){.jh-site-header{padding:10px 20px 8px!important;min-height:88px!important;gap:9px!important}.jh-site-header .jh-header-cta{min-height:36px!important;padding:8px 13px!important;font-size:12px!important}.jh-site-header .jh-header-cta:after{bottom:-6px!important;width:10px!important;height:7px!important}.jh-site-header .jh-navigation{padding-top:6px!important;font-size:11px!important;gap:10px!important}.jh-site-header .jh-wordmark{font-size:24px!important}}

/* Selected Editorial JH monogram. */
.jh-site-header .jh-wordmark{display:inline-flex;align-items:center;flex-shrink:0;letter-spacing:normal}.jh-site-header .jh-wordmark img{display:block;width:68px;height:42px;object-fit:contain;max-width:none}
@media(max-width:600px){.jh-site-header .jh-wordmark img{width:58px;height:36px}}

/* Logo hover swaps the brand colours without a card-style rectangle. */
.jh-site-header .jh-wordmark:hover img{content:url('/optimized/jh-signature-logo-hover-v1.webp');filter:none}
.jh-site-header .jh-wordmark:hover:not(:focus-visible){outline:none}
/* Logo hover preview revision 2. */

/* Colour feedback without moving button targets. */
a.button:hover,a.button:active,.jh-site-header .jh-header-cta:hover,.jh-site-header .jh-header-cta:active{transform:none!important}

/* Manhattan hand replaces the dot and ring over interactive targets. */
.site-cursor-dot.is-hovering{opacity:0}
.site-cursor-ring.is-hovering{width:32px;height:32px;border:0;border-radius:0;background:transparent url('/manhattan-hand.png') center/contain no-repeat;box-shadow:none;transform:translate(-6px,-3px);transition:none;filter:drop-shadow(0 0 1px #cffaff)}
/* Selected signature identity, sized for the header. */
.jh-site-header a.jh-wordmark img{width:68px;height:56px}
@media(max-width:600px){.jh-site-header a.jh-wordmark img{width:58px;height:44px}}

/* Manhattan symbol: ring leads, centre dot follows with a short 35ms trail. */
.site-cursor-ring:not(.is-hovering){width:32px;height:32px;border:1.5px solid #244cff;background:transparent;box-shadow:none;transition:none}
.site-cursor-ring:not(.is-hovering)::before{content:"";position:absolute;left:50%;top:-1.5px;width:5px;height:6px;background:#244cff;border-radius:50%;transform:translate(-50%,-50%)}
.site-cursor-dot{width:5px;height:5px;background:#244cff;box-shadow:none;transition:left .035s ease-out,top .035s ease-out}
.site-cursor-dot.no-motion{transition:none}
body:has(footer:hover) .site-cursor-ring:not(.is-hovering){border-color:#fff}
body:has(footer:hover) .site-cursor-ring:not(.is-hovering)::before,body:has(footer:hover) .site-cursor-dot{background:#fff}
/* Keep the Manhattan symbol together without pointer trailing. */
.site-cursor-dot,.site-cursor-ring{transition:none!important}

/* Adaptive Manhattan symbol: black on paper, white on blue and dark surfaces. */
html{--cursor-contrast:#11110f}html.cursor-on-dark{--cursor-contrast:#fff}
html body .site-cursor-ring:not(.is-hovering){border-color:var(--cursor-contrast);box-shadow:none}
html body .site-cursor-ring:not(.is-hovering)::before,html body .site-cursor-dot{background:var(--cursor-contrast);box-shadow:none}
