/* Owner-approved studies, assigned by purpose. No content is hidden at rest. */
:root{--gp-effect-ease:cubic-bezier(.22,.61,.36,1)}
/* 01: a single living rule for navigational links. Contact styling stays separate. */
.service>summary .service-more::after{transition:transform .6s var(--gp-effect-ease),opacity .5s;background:linear-gradient(90deg,transparent,currentColor 12%,currentColor 90%,transparent)}
.experience .text-link,.format-card .text-link,.journal .text-link,.inner-page .articles .text-link{position:relative}
.experience .text-link::after,.format-card .text-link::after,.journal .text-link::after,.inner-page .articles .text-link::after{content:'';position:absolute;bottom:-1px;left:0;right:0;height:1px;background:currentColor;transform:scaleX(0);transform-origin:left;transition:transform .65s var(--gp-effect-ease);pointer-events:none}
.experience .text-link:is(:hover,:focus-visible)::after,.format-card .text-link:is(:hover,:focus-visible)::after,.journal .text-link:is(:hover,:focus-visible)::after,.inner-page .articles .text-link:is(:hover,:focus-visible)::after{transform:scaleX(1)}
/* 02: retain the accepted glow and enrich its inner contour only on enquiry. */
.question-action.button::after{content:'';position:absolute;inset:3px;border:1px solid currentColor;opacity:0;pointer-events:none;transition:opacity .5s ease}
.question-action.button:is(:hover,:focus-visible)::after{opacity:.28}
/* 03: the action rule becomes a separator; the plus resolves into a true minus. */
.service>summary::after,.service[open]>summary::after{content:'';position:absolute;left:0;right:0;bottom:0;height:1px;background:linear-gradient(90deg,color-mix(in srgb,var(--accent) 12%,var(--paper)),color-mix(in srgb,var(--accent) 33%,var(--paper)));transform:scaleX(.05);transform-origin:right;opacity:0;transition:transform .65s var(--gp-effect-ease),opacity .45s;pointer-events:none}
.service[open]>summary::after{transform:scaleX(1);opacity:1}
.service>summary .plus{width:18px;height:24px;min-width:18px}
.service>summary .plus .service-symbol-open,.service>summary .plus .service-symbol-close{display:none}
.service>summary .plus::before,.service>summary .plus::after{content:'';position:absolute;left:2px;right:2px;top:12px;height:1px;background:currentColor;transition:transform .45s var(--gp-effect-ease),opacity .4s}
.service>summary .plus::after{transform:rotate(90deg)}
.service[open]>summary .plus::after{transform:rotate(0);opacity:0}
.service[open] .service-content>h4:first-of-type{animation:gp-heading-arrive .55s var(--gp-effect-ease) both}
/* 04: one drawn editorial emphasis, attached to the editable guidance. */
.services-guidance-lead{position:relative;padding-bottom:9px}
.gp-ink-rule{position:absolute;bottom:0;left:0;width:94%;height:9px;overflow:visible;pointer-events:none}
.gp-ink-rule path{fill:none;stroke:var(--accent);stroke-width:1;stroke-linecap:round;opacity:.48;stroke-dasharray:1;stroke-dashoffset:0}
.gp-ink-arriving .gp-ink-rule path{animation:gp-ink-draw 1.1s var(--gp-effect-ease) both}
/* 05: article titles and arrows carry the same restrained forward gesture. */
.articles article h3{transition:color .45s,text-shadow .45s}
.articles article:is(:hover,:focus-within) h3{color:var(--accent);text-shadow:0 0 18px color-mix(in srgb,var(--accent) 12%,transparent)}
.articles .text-link>span,.format-card .text-link>span[aria-hidden]{transition:transform .55s var(--gp-effect-ease)}
.articles article:is(:hover,:focus-within) .text-link>span,.format-card .text-link:is(:hover,:focus-visible)>span[aria-hidden]{transform:translateX(4px)}
/* Section headings remain fully visible and stationary. */
.gp-veil-arriving{animation:gp-heading-veil .95s var(--gp-effect-ease) both}
/* 07: light overlays the original folds without transforming the bitmap. */
.industry::after{content:'';position:absolute;inset:0;z-index:-1;pointer-events:none;background:radial-gradient(ellipse 340px 260px at var(--gp-light-x,78%) var(--gp-light-y,40%),#fff 0%,transparent 74%);mask-image:linear-gradient(90deg,transparent 35%,#000 75%);opacity:0;transition:opacity .7s}
.industry.gp-light-active::after{opacity:.065}
.industry.gp-light-arriving::after{animation:gp-fold-light 2.3s ease-in-out both}
/* 08: a small editorial embrace for the existing economic insights. */
.service-content .service-insight{position:relative}
.service-content .service-insight::before,.service-content .service-insight::after{content:'';position:absolute;pointer-events:none;width:10px;height:8px;border-color:color-mix(in srgb,var(--accent) 45%,transparent);border-style:solid;opacity:.4;transition:width .65s var(--gp-effect-ease),height .65s var(--gp-effect-ease),opacity .65s}
.service-content .service-insight::before{left:-1px;top:0;border-width:1px 0 0 0}
.service-content .service-insight::after{bottom:-3px;right:0;border-width:0 1px 1px 0}
.service-content .service-insight:hover::before,.service-content .service-insight:hover::after,.service-content .service-insight:focus-within::before,.service-content .service-insight:focus-within::after{width:30px;height:18px;opacity:.8}
@keyframes gp-heading-arrive{from{opacity:.35;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}
@keyframes gp-heading-veil{from{clip-path:inset(0 100% 0 0);opacity:.5}to{clip-path:inset(0 0 0 0);opacity:1}}
@keyframes gp-ink-draw{from{stroke-dashoffset:1}to{stroke-dashoffset:0}}
@keyframes gp-fold-light{0%,100%{opacity:0}35%,65%{opacity:.065}}
.gp-effects-paused :is(.gp-veil-arriving,.gp-ink-arriving .gp-ink-rule path),.gp-effects-paused .gp-light-arriving::after{animation-play-state:paused}
@media(hover:none){.service-content .service-insight::before,.service-content .service-insight::after{width:22px;height:13px;opacity:.6}}
@media(prefers-reduced-motion:reduce){
 .gp-veil-arriving,.gp-ink-arriving .gp-ink-rule path,.service[open] .service-content>h4:first-of-type,.industry.gp-light-arriving::after{animation:none}
 .industry::after{display:none}
 .service>summary::after,.service>summary .plus::before,.service>summary .plus::after,.service>summary .service-more::after,.question-action.button::after,.service-content .service-insight::before,.service-content .service-insight::after,.articles article h3,.articles .text-link>span,.format-card .text-link>span,.experience .text-link::after,.format-card .text-link::after,.journal .text-link::after,.inner-page .articles .text-link::after{transition:none}
 .articles article:is(:hover,:focus-within) .text-link>span,.format-card .text-link:is(:hover,:focus-visible)>span[aria-hidden]{transform:none}
}
