/* ===== Graphics add-ons (options A–E) ===== */
/* A: icons */
.ico{width:36px;height:36px;margin-bottom:18px;fill:none;stroke:#c9d6e6;stroke-width:1.3;stroke-linecap:round;stroke-linejoin:round}
.ico .a{stroke:var(--amber)}
.card .ico{padding:9px;width:48px;height:48px;stroke-width:1.2;border:1px solid var(--line2);border-radius:10px;background:rgba(224,164,59,.05)}
.svc-head{display:flex;align-items:center;gap:16px;margin-bottom:.6em}
.svc-head .ico{margin:0;flex:none;width:52px;height:52px;padding:9px;border:1px solid var(--line2);border-radius:12px;background:rgba(224,164,59,.05)}
.svc-head h2{margin:0}
/* B: process — static final state by default; the draw-in only runs with JS + motion allowed */
.process{max-width:calc(var(--wide));margin:48px auto 8px}
.process svg{width:100%;height:auto;overflow:visible}
.ptrack{stroke:var(--line2);stroke-width:1;fill:none}
.pline{stroke:var(--amber);stroke-width:1.5;fill:none;stroke-dasharray:1;stroke-dashoffset:0}
.pchev{fill:none;stroke:var(--amber);stroke-width:1.4;opacity:.7}
.pnode circle{fill:#122236;stroke:rgba(224,164,59,.75);stroke-width:1;filter:drop-shadow(0 0 6px rgba(224,164,59,.35))}
.pnode .a{fill:none;stroke:var(--amber);stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}
.pnode text{fill:var(--text);font:400 15px var(--sans);text-anchor:middle}
.pnode text.n{fill:var(--muted);font:400 11px var(--mono);letter-spacing:.08em}
.process-wrap{max-width:calc(var(--wide) + 48px);margin:0 auto;padding:0 24px}
@media (max-width:640px){.pnode text{font-size:22px}.pnode text.n{font-size:16px}}
@media (prefers-reduced-motion:no-preference){
.js .reveal:has(.process){transform:translateY(16px);transition:opacity .8s cubic-bezier(.22,.61,.36,1),transform .8s cubic-bezier(.22,.61,.36,1)}
.js .reveal.in:has(.process){transform:none}
.pnode.s0{--d:.15s}.pnode.s1{--d:.3s}.pnode.s2{--d:.45s}.pnode.s3{--d:.6s}
.js .process .pline{transition:stroke-dashoffset 1.2s cubic-bezier(.22,.61,.36,1) .1s}
.js .process .pchev{transition:opacity .5s ease 1s}
.js .process .pnode circle{transition:stroke .5s ease var(--d),fill .5s ease var(--d),filter .7s ease var(--d)}
.js .process .pnode .a{transition:opacity .5s ease var(--d)}
.js .process .pnode text{transition:opacity .5s ease calc(var(--d) + .25s),transform .5s cubic-bezier(.22,.61,.36,1) calc(var(--d) + .25s)}
.js .process:not(.in) .pline{stroke-dashoffset:1}
.js .process:not(.in) .pchev{opacity:0}
.js .process:not(.in) .pnode circle{fill:#0d1c30;stroke:var(--line2);filter:drop-shadow(0 0 0 rgba(224,164,59,0))}
.js .process:not(.in) .pnode .a{opacity:.25}
.js .process:not(.in) .pnode text{opacity:0;transform:translateY(4px)}
}
/* C: world map */
.worldmap{margin:48px auto 0;max-width:var(--wide);padding:0}
.worldmap svg{width:100%;height:auto}
.worldmap .dots{stroke:rgba(170,195,225,.38);stroke-width:3.4;stroke-linecap:round;fill:none}
.worldmap .arcs path{fill:none;stroke:rgba(224,164,59,.5);stroke-width:1;stroke-dasharray:3 5}
.worldmap .core{fill:var(--amber)}
.worldmap .ring{fill:none;stroke:var(--amber);stroke-width:1.2;transform-box:fill-box;transform-origin:center;transform:scale(2.2);opacity:.4}
@keyframes softpulse{0%{transform:scale(2.2);opacity:.4}45%{transform:scale(4);opacity:0}46%{transform:scale(1);opacity:.55}100%{transform:scale(2.2);opacity:.4}}
@media (prefers-reduced-motion:no-preference){
.js .worldmap .dots,.js .worldmap .arcs,.js .worldmap .core{transition:opacity .9s ease}
.js .worldmap .arcs{transition-delay:.5s}.js .worldmap .core{transition-delay:.7s}
.js .worldmap:not(.in) .dots,.js .worldmap:not(.in) .arcs,.js .worldmap:not(.in) .core,.js .worldmap:not(.in) .ring{opacity:0}
.js .worldmap.in .ring{animation:softpulse 3.2s ease-out .6s 1 both}
.js .worldmap.in .s1 .ring{animation-delay:.9s}.js .worldmap.in .s2 .ring{animation-delay:1.2s}.js .worldmap.in .s3 .ring{animation-delay:1.5s}
}
/* D: talent map */
.talentmap{max-width:var(--wide);margin:56px auto 0;padding:clamp(20px,3vw,36px);border:1px solid var(--line);border-radius:12px;background:radial-gradient(60% 80% at 47% 50%,rgba(224,164,59,.06),transparent 70%),rgba(255,255,255,.015)}
.talentmap svg{width:100%;height:auto}
.talentmap .lines path{stroke:rgba(180,205,235,.35);stroke-width:1;fill:none}
.talentmap .lines .map{stroke:rgba(224,164,59,.45);stroke-dasharray:3 5}
.talentmap .lines .g{stroke:rgba(180,205,235,.18);stroke-dasharray:2 4}
.talentmap .nodes circle{fill:#0d1c30;stroke:#b9c9dc;stroke-width:1.2}
.talentmap .nodes .k{fill:var(--amber);stroke:var(--amber)}
.talentmap .nodes .hub{fill:#0d1c30;stroke:var(--amber);stroke-width:2}
.talentmap .nodes .g{stroke:rgba(185,201,220,.45);stroke-dasharray:2 2}
.talentmap text{fill:#93a0ae;font:400 12px var(--mono);letter-spacing:.1em;text-anchor:middle}
@media (prefers-reduced-motion:no-preference){
.js .talentmap .lines{transition:opacity 1s ease .1s}
.js .talentmap .nodes circle{transform-box:fill-box;transform-origin:center;transition:opacity .5s ease .5s,transform .6s cubic-bezier(.22,.61,.36,1) .5s}
.js .talentmap .labels{transition:opacity .6s ease 1s}
.js .talentmap:not(.in) .lines,.js .talentmap:not(.in) .labels{opacity:0}
.js .talentmap:not(.in) .nodes circle{opacity:0;transform:scale(.4)}
}
/* A: icons fade in with their card (the .reveal parent). A separate delayed icon transition was removed:
   it left icons invisible when a section was revealed late, e.g. in full-page desktop captures. */
/* E: chevron texture on closing band */
.closing .cta-card{position:relative;overflow:hidden;isolation:isolate}
.closing .cta-card::before{content:"";position:absolute;inset:0;z-index:-1;opacity:.85;
background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='56' height='40' viewBox='0 0 56 40'%3E%3Cpath d='M18 26l10-9 10 9' fill='none' stroke='%23e0a43b' stroke-opacity='.34' stroke-width='1.2'/%3E%3C/svg%3E");
background-size:56px 40px;-webkit-mask-image:radial-gradient(60% 75% at 50% 45%,#000,transparent 80%);mask-image:radial-gradient(60% 75% at 50% 45%,#000,transparent 80%)}
.c-wrap,.d-wrap{padding-top:0}
.col .process{width:min(980px,calc(100vw - 48px));max-width:none;position:relative;left:50%;transform:translateX(-50%)}
@media (max-width:640px){.c-wrap{padding:0 8px}.worldmap .dots{stroke-width:4.4;stroke:rgba(170,195,225,.5)}.worldmap .core{r:7px}.worldmap .ring{stroke-width:2}.worldmap .arcs path{stroke-width:2}}
@media (max-width:520px){.process{display:none}.d-wrap{padding:0 8px}.talentmap{padding:12px 6px}.talentmap text{font-size:20px}}
