/* The relationship paths are real connections, measured against their endpoints. */
.relationship-field .relationship-lines{display:block;overflow:visible;z-index:0}
.network-name,.relationship-count{z-index:1}
.network-name{background:var(--ground)}
.network-name:before{display:none!important}
.relationship-lines .route{stroke:var(--ink);opacity:.25;stroke-width:1;transition:opacity .3s}
.relationship-lines .route.is-tracing{opacity:.8;stroke-width:1.3}
.relationship-field .network-name{min-height:44px;display:flex;flex-direction:column;justify-content:center;font-size:clamp(34px,3.3vw,48px);letter-spacing:-.035em;background:transparent}
.relationship-field .network-pe{left:49%;top:10%}
.relationship-field .network-fo{right:2%;top:35%}
.relationship-field .network-ma{left:61%;top:73%;font-size:clamp(33px,3.1vw,45px)}
.relationship-field .network-strategic{top:83%;font-size:clamp(33px,3.05vw,44px)}
.relationship-count>p{background:var(--ground);width:fit-content;padding-right:7px}
.count-note{width:fit-content;background:linear-gradient(transparent 55%,var(--lime) 55% 89%,transparent 89%),var(--ground);padding-right:8px}
.count-value:before{inset:auto 5% 1% 3%;height:.045em;border-radius:37% 58% 39% 64%;transform:rotate(-3deg);transform-origin:center}
.relationship-field.motion-network .count-value:before{clip-path:inset(0 100% 0 0)}
.relationship-count.is-inked .count-value:before{animation:marker-sweep 1s cubic-bezier(.2,.8,.2,1) both}
@keyframes marker-sweep{from{clip-path:inset(0 100% 0 0)}to{clip-path:inset(0 -3% 0 -3%)}}

/* A sentence of sectors, with a single moving pen mark, not a collection of tiles. */
.expertise{padding-top:45px;padding-bottom:135px;position:relative}
.expertise-type{position:relative;font:clamp(72px,8.6vw,124px)/1.12 var(--serif);letter-spacing:-.04em;max-width:1200px}
.expertise-line{display:block;white-space:nowrap}
.expertise-line+ .expertise-line{margin-left:10%}
.expertise-type button{position:relative;display:inline-block;padding:0;border:0;background:none;font:inherit;letter-spacing:inherit;color:var(--ink);transition:color .4s;touch-action:manipulation}
.expertise-type button[aria-pressed='true']{color:var(--ink)}
.expertise-type button:focus-visible{outline:1px solid var(--ink);outline-offset:10px;border-radius:50%}
.expertise-join{font:0.72em Caveat,cursive;color:var(--ink);vertical-align:.08em;padding:0 .16em}
.expertise-ring{position:absolute;left:0;top:0;width:1px;height:1px;overflow:visible;pointer-events:none;transform-origin:0 0}
.expertise-ring path{fill:none;stroke:var(--ink);stroke-width:1.6;stroke-linecap:round;vector-effect:non-scaling-stroke}
.expertise-copy{display:grid;margin:57px 8% 0 31%;max-width:620px;font:23px/1.6 var(--serif);letter-spacing:-.01em}
.expertise-copy p{grid-area:1/1;visibility:hidden;opacity:0;transition:opacity .14s ease,visibility 0s linear .14s}
.expertise-copy p[aria-hidden='false']{visibility:visible;opacity:1;transition:opacity .28s ease .14s,visibility 0s}
.expertise-ink>.expertise-type{isolation:isolate}
.expertise-ink-window{position:absolute;inset:0;z-index:2;pointer-events:none;clip-path:url(#expertise-main-ink);overflow:clip;background:var(--ink)}
.expertise-ink-window .expertise-ink-type{position:absolute;inset:0;max-width:none;width:100%;margin:0;pointer-events:none}
.expertise-ink-window .expertise-type button,.expertise-ink-window .expertise-period,.expertise-ink-window .expertise-join{color:var(--lime);transition:none}
.expertise-ink .expertise-ring{z-index:3}
.expertise-ink .expertise-ring path{stroke-width:1}
.expertise-ink-defs{position:absolute;width:0;height:0;overflow:hidden;pointer-events:none}
@media(forced-colors:active){.expertise-ink-window{display:none}.expertise-ink .expertise-ring path{stroke:Highlight}}

/* A map that opens out of the globe as the page moves. */
.expertise-period{color:var(--ink)}
.world-scene{padding-top:65px;padding-bottom:100px}
.world-title{font:clamp(48px,5.7vw,82px)/1.08 var(--serif);letter-spacing:-.035em}
.world-surface{position:relative;width:100%;height:clamp(400px,47vw,640px);margin-top:25px;touch-action:pan-y;cursor:grab;outline:0}
.world-surface.is-dragging{cursor:grabbing}
.world-surface.is-selectable{cursor:pointer}
.world-surface:focus-visible{outline:1px solid var(--ink);outline-offset:8px}
.world-canvas{width:100%;height:100%;display:block;position:absolute;inset:0;opacity:0;transition:opacity .4s}
.world-fallback{display:block;width:100%;height:100%;object-fit:contain;opacity:.65}
.world-surface[data-ready='true'] .world-canvas{opacity:1}
.world-surface[data-ready='true'] .world-fallback{visibility:hidden}
.world-regions{display:flex;justify-content:center;gap:40px;flex-wrap:wrap;margin-top:20px}
.world-regions button{border:0;background:none;padding:6px 0;min-height:48px;font:27px/1.2 var(--serif);letter-spacing:-.02em;color:var(--muted);position:relative}
.world-regions button[aria-pressed='true']{color:var(--ink)}
.world-regions button:after{content:'';position:absolute;bottom:2px;left:0;right:0;height:4px;border-bottom:3px solid var(--lime);border-radius:50%;transform:rotate(-2deg);opacity:0}
.world-regions button[aria-pressed='true']:after{opacity:1}
.world-copy{font:25px/1.5 var(--serif);max-width:780px;margin:44px 8% 0 auto;letter-spacing:-.01em}
.world-surface[data-ready='false']+.world-regions{display:none}

/* Letters move through the same pen-and-type vocabulary as the page. */
.opening-ma{animation:type-arrival 1s cubic-bezier(.22,.61,.36,1) both}
.opening-line{animation:type-arrival 1.1s .12s cubic-bezier(.22,.61,.36,1) both}
@keyframes type-arrival{from{opacity:0;transform:translate3d(0,24px,0)}to{opacity:1;transform:translate3d(0,0,0)}}
/* The wider fallback font must not change the mobile viewport before fonts load. */
.contact{overflow-x:clip}
.expertise-type button,.ownership-choices button,.negotiation-topics button,.world-regions button,.network-name{-webkit-tap-highlight-color:transparent}
@media(max-width:1050px){
 .relationship-field .network-name{font-size:34px}
 .relationship-field .network-ma{left:60%;font-size:33px}
 .relationship-field .network-strategic{font-size:33px}
 .expertise-type{font-size:8.6vw}.expertise-copy{margin-left:25%;font-size:22px}
 .world-copy{margin-right:0}.world-regions{gap:30px}
}
@media(max-width:700px){
 .relationship-field{height:515px}
 .relationship-field .relationship-count{top:18%;left:2%;width:160px}
 .relationship-field .network-pe{top:0;left:35%;font-size:30px}
 .relationship-field .network-fo{top:42%;right:0;font-size:29px}
 .relationship-field .network-ma{top:70%;left:38%;font-size:29px}
 .relationship-field .network-strategic{top:89%;left:0;font-size:30px}
 .relationship-field .count-note{max-width:180px;white-space:normal;font-size:22px;margin-top:24px}
 .relationship-field .relationship-lines .route{stroke-width:1;opacity:.27}
 .expertise{padding-top:10px;padding-bottom:105px}
 .expertise-type{font-size:19.2vw;line-height:1.12;letter-spacing:-.045em}
 .expertise-line{white-space:normal}
 .expertise-line+ .expertise-line{margin-left:0}
 .expertise-type button[data-sector='0']{display:table}
 .expertise-type button[data-sector='1']{margin-left:13%}
 .expertise-type button[data-sector='2']{margin-left:2%}
 .expertise-type button[data-sector='3']{display:table;font-size:16.8vw}
 .expertise-join{font-size:.65em;padding-left:.12em}
 .expertise-copy{font-size:22px;line-height:1.5;margin:40px 0 0 10%}
 .expertise-ring path{stroke-width:1.4}
 .world-scene{padding-top:35px;padding-bottom:75px}
 .world-title{font-size:44px}
 .world-surface{height:auto;aspect-ratio:1;width:calc(100% + 24px);margin:30px -12px 0}
 .world-regions{display:grid;grid-template-columns:max-content max-content;gap:6px 30px;justify-content:start;width:fit-content;max-width:100%;margin:24px auto 0}
 .world-regions button{font-size:24px}
 .world-copy{font-size:23px;line-height:1.45;margin:33px 0 0 7%}
}
@media(max-width:360px){
 .relationship-field .network-pe{font-size:26px;left:35%}.relationship-field .network-fo{font-size:25px}.relationship-field .network-ma{font-size:26px;left:35%}.relationship-field .network-strategic{font-size:27px}
 .relationship-field .count-note{font-size:20px;max-width:180px}
 .expertise-copy{font-size:21px}.world-title{font-size:38px}.world-regions{gap:4px 23px}.world-regions button{font-size:22px}.world-copy{font-size:22px}
}
@media(prefers-reduced-motion:reduce){
 .expertise-type button,.expertise-copy p,.world-canvas{transition:none!important}
 .is-inked .count-value:before,.opening-ma,.opening-line{animation:none!important}
 .relationship-field.motion-network .count-value:before{clip-path:none}
}
