/* CPIRD TOT Enneagram — additions on top of the shared EMCE stylesheet (site.css) */
:root{
  --lv-self:var(--blue); --lv-others:var(--ok); --lv-fac:#C98A00;
  --c-gut:#B45309; --c-heart:#BE185D; --c-head:#4F46E5;
  --p1:var(--blue); --p2:#4F46E5; --p3:var(--ok); --p4:#C98A00;
  --ease-out:cubic-bezier(.16,1,.3,1);
}
@media (prefers-color-scheme:dark){
  :root{ --lv-fac:#F2B01E; --c-gut:#F0A94B; --c-heart:#F472B6; --c-head:#A5B4FC; --p2:#A5B4FC; --p4:#F2B01E }
}

/* ---------- hero ---------- */
.title-tag{display:inline-block;margin-top:14px;padding:4px 14px;border-radius:999px;background:var(--blue-soft);
  color:var(--blue-deep);font-size:15px;font-weight:700;line-height:1.5}
.title-en{margin:12px 0 0;font-size:clamp(16px,1.8vw,19px);font-weight:600;color:var(--ink-2);line-height:1.5;max-width:52ch}
.values{display:flex;flex-wrap:wrap;gap:8px;margin:18px 0 0;padding:0;list-style:none}
.values li{padding:5px 13px;border-radius:999px;border:1px solid var(--line);font-size:14px;font-weight:600;color:var(--ink-2);background:var(--paper)}

/* ---------- shared figure frame ---------- */
.fig{margin:26px 0 0;border:1px solid var(--line);border-radius:18px;background:var(--paper);padding:22px}
.fig svg{display:block;width:100%;height:auto;overflow:visible}
.fig button svg{display:inline-block;width:18px;height:18px;flex:none}
.fig svg text{font-family:var(--font)}
.fig-cap{margin:14px 0 0;font-size:15px;line-height:1.7;color:var(--ink-2);min-height:3.4em}
.fig-cap b{color:var(--ink)}
.fig-kick{margin:0 0 4px;font-size:12.5px;font-weight:800;letter-spacing:.06em;text-transform:uppercase;color:var(--blue)}
.fig-h{font-size:18px;font-weight:800;line-height:1.4;margin:0 0 4px}
.fig-sub{margin:0;font-size:14.5px;color:var(--gray);line-height:1.6}
.fig-tabs{display:flex;flex-wrap:wrap;gap:8px;margin:14px 0 0}
.fig-tabs button{font:inherit;font-size:14px;font-weight:700;line-height:1.3;min-height:40px;padding:8px 14px;border-radius:999px;cursor:pointer;
  color:var(--ink-2);background:var(--paper);border:1px solid var(--line);transition:border-color .15s,background .15s,color .15s}
.fig-tabs button:hover{border-color:var(--blue);color:var(--blue-deep)}
.fig-tabs button[aria-selected="true"],.fig-tabs button[aria-pressed="true"]{background:var(--blue-soft);border-color:var(--blue-line);color:var(--blue-deep)}
.fig-tabs button small{display:block;font-size:11.5px;font-weight:600;color:var(--gray)}
.hit{cursor:pointer;outline:none}
.hit:focus-visible .focus-ring{stroke:var(--blue);stroke-width:3}

/* ---------- goals: three nested rings ---------- */
.goals{display:grid;grid-template-columns:minmax(0,320px) minmax(0,1fr);gap:30px;align-items:start}
.goals .fig-tabs{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px}
.goals .fig-tabs button{padding:8px 6px;border-radius:12px;text-align:center;font-size:13.5px}
.ring circle{fill:var(--rc);fill-opacity:.07;stroke:var(--rc);stroke-opacity:.35;stroke-width:1.5;transition:fill-opacity .25s,stroke-opacity .25s,stroke-width .25s}
.ring text{fill:var(--rc);font-size:14px;font-weight:800;text-anchor:middle;letter-spacing:.01em}
.ring text.rn{font-size:11px;font-weight:700;opacity:.8}
.ring:hover circle{fill-opacity:.13}
.ring.is-active circle{fill-opacity:.2;stroke-opacity:1;stroke-width:3}
.r-self{--rc:var(--lv-self)} .r-others{--rc:var(--lv-others)} .r-fac{--rc:var(--lv-fac)}
.goal-tab-self{--rc:var(--lv-self)} .goal-tab-others{--rc:var(--lv-others)} .goal-tab-fac{--rc:var(--lv-fac)}
.goals .fig-tabs button[aria-selected="true"]{background:var(--paper);border-color:var(--rc);color:var(--ink);box-shadow:inset 0 -3px 0 var(--rc)}
.goal-panel h3{font-size:22px;font-weight:800;line-height:1.35;margin:2px 0 8px}
.goal-panel .lv{font-size:12.5px;font-weight:800;letter-spacing:.06em;text-transform:uppercase;color:var(--rc)}
.goal-panel p{margin:0 0 10px;font-size:16px;line-height:1.75}
.goal-panel ul{margin:6px 0 12px;padding-left:20px}
.goal-panel li{margin:4px 0;font-size:15.5px;line-height:1.6}
.goal-panel .why{display:block;margin-top:10px;padding:12px 16px;border-radius:12px;background:var(--panel);font-size:14.5px;line-height:1.65;color:var(--ink-2)}
.goal-panel .roles{display:flex;flex-wrap:wrap;gap:6px;margin:8px 0 0;padding:0;list-style:none}
.goal-panel .roles li{margin:0;padding:3px 12px;border-radius:999px;font-size:13.5px;font-weight:600;background:var(--ok-bg);color:var(--ok-ink)}
.goal-panel .top{display:inline-block;margin-top:6px;padding:3px 12px;border-radius:999px;font-size:13px;font-weight:700;color:#231A00;background:#F2B01E}
.chain{display:flex;flex-wrap:wrap;align-items:center;gap:6px;margin:8px 0 12px;padding:0;list-style:none}
.chain li{margin:0;padding:4px 12px;border-radius:10px;font-size:14px;font-weight:700;background:var(--ok-bg);color:var(--ok-ink)}
.chain li + li::before{content:"→";margin:0 8px 0 -2px;color:var(--gray)}
.chain li:nth-child(2){filter:saturate(1.2)} .chain li:nth-child(3){opacity:.9} .chain li:nth-child(4){opacity:.8}
@media(max-width:760px){.goals{grid-template-columns:1fr}.goals .ring-svg{max-width:300px;margin:0 auto}}

/* ---------- depth: one behaviour, four roots ---------- */
.depth{display:grid;grid-template-columns:minmax(0,360px) minmax(0,1fr);gap:28px;align-items:center}
.depth .band-0{fill:var(--paper)} .depth .band-1{fill:var(--blue-tint)} .depth .band-2{fill:var(--blue-soft)}
.depth .water{fill:none;stroke:var(--blue);stroke-width:1.5;stroke-dasharray:4 5;opacity:.55}
.depth .lbl{font-size:11.5px;font-weight:700;fill:var(--gray);letter-spacing:.02em}
.depth .beh rect{fill:var(--ink)}
.depth .beh text{fill:var(--paper);font-size:17px;font-weight:800;text-anchor:middle}
.depth .root path{fill:none;stroke:var(--blue);stroke-width:2;stroke-linecap:round;stroke-dasharray:240;stroke-dashoffset:0;
  transition:stroke-dashoffset .9s var(--ease-out),opacity .25s,stroke-width .2s}
.depth .root .deep{stroke-dasharray:2 6;stroke-width:2;opacity:.45}
.depth .root rect{fill:var(--paper);stroke:var(--blue-line);stroke-width:1.5;transition:opacity .4s,transform .4s var(--ease-out),stroke .2s}
.depth .root text{fill:var(--ink);font-size:12.5px;font-weight:700;text-anchor:middle;transition:opacity .4s}
.depth .root .q{fill:var(--paper);stroke:var(--blue);stroke-width:1.5}
.depth .root .qt{fill:var(--blue-deep);font-size:11px;font-weight:800}
.depth .root:hover rect,.depth .root.is-active rect{stroke:var(--blue);stroke-width:2.5}
.depth .root.is-active path{stroke-width:3}
.depth.has-active .root:not(.is-active){opacity:.35}
.depth .root{transition:opacity .25s}
.depth.is-hidden .root path:not(.deep){stroke-dashoffset:240}
.depth.is-hidden .root rect,.depth.is-hidden .root text,.depth.is-hidden .root .deep,.depth.is-hidden .root circle{opacity:0}
.depth.is-hidden .root rect{transform:translateY(-8px)}
.depth-btn{font:inherit;display:inline-flex;align-items:center;gap:8px;margin-top:14px;min-height:44px;padding:10px 18px;border-radius:12px;cursor:pointer;
  font-size:15px;font-weight:700;color:#fff;background:var(--blue);border:0;transition:background .18s}
.depth-btn:hover{background:var(--blue-deep)}
@media (prefers-color-scheme:dark){.depth-btn{background:#2563EB}.depth-btn:hover{background:#1D4ED8}}
@media(max-width:760px){.depth{grid-template-columns:1fr}}

/* ---------- journey: seven modules on a road ---------- */
.journey .road{fill:none;stroke:var(--blue);stroke-width:3;stroke-linecap:round}
.journey .road.later{stroke-dasharray:2 8;stroke:var(--gray-2)}
.journey .yr{fill:var(--panel)}
.journey .yr-l{font-size:13px;font-weight:800;fill:var(--gray);letter-spacing:.06em}
.journey .st circle.dot{fill:var(--paper);stroke:var(--blue);stroke-width:3;transition:transform .25s var(--ease-out),fill .2s}
.journey .st .code{font-size:13px;font-weight:800;fill:var(--blue-deep);text-anchor:middle;dominant-baseline:central}
.journey .st .date{font-size:12px;font-weight:700;fill:var(--blue-deep)}
.journey .st .cap{font-size:12.5px;font-weight:600;fill:var(--ink-2)}
.journey .st.tbd circle.dot{stroke:var(--gray-2);stroke-dasharray:3 3}
.journey .st.tbd .code,.journey .st.tbd .date{fill:var(--gray)}
.journey .st.done{opacity:.55}
.journey .st.next circle.dot{fill:var(--blue)}
.journey .st.next .code{fill:#fff}
.journey .st:hover circle.dot,.journey .st:focus-visible circle.dot{fill:var(--blue-soft)}
.journey .st.next:hover circle.dot{fill:var(--blue-deep)}
.journey .st:focus-visible{outline:none}
.journey .st:focus-visible circle.dot{stroke-width:5}
.journey .badge rect{fill:#F2B01E}
.journey .badge text{fill:#231A00;font-size:11.5px;font-weight:800;text-anchor:middle}
.journey .halo{fill:var(--blue);opacity:.18;transform-box:fill-box;transform-origin:center;animation:halo 2.4s var(--ease-out) infinite}
@keyframes halo{0%{transform:scale(.6);opacity:.35}100%{transform:scale(1.6);opacity:0}}
.roles2{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-top:22px}
.roles2 .fcard{padding:20px 22px}
.roles2 .fcard .k{font-size:12.5px;font-weight:800;letter-spacing:.05em;text-transform:uppercase;color:var(--blue);margin-bottom:4px}
.progress-words{margin:18px 0 0;font-size:15.5px;line-height:1.9;color:var(--ink-2)}
.progress-words span{white-space:nowrap}
.progress-words span + span::before{content:"→";margin:0 .45em;color:var(--blue)}
@media(max-width:640px){.roles2{grid-template-columns:1fr}.progress-words span{white-space:normal}}

/* ---------- module list additions ---------- */
.mod-row .mdate.tbd{color:var(--gray)}
.fac-note{margin-top:16px;padding:16px 18px;border-radius:14px;background:var(--ok-bg);border:1px solid var(--ok-line)}
.fac-note h4{font-size:13.5px;font-weight:800;color:var(--ok-ink);margin-bottom:4px}
.fac-note p{margin:0;font-size:15.5px;line-height:1.75;color:var(--ink-2)}
.mod-why p + p{margin-top:12px}
.try-map{display:inline-flex;align-items:center;gap:6px;margin-top:14px;font-size:14.5px;font-weight:700;color:var(--blue-deep);
  text-decoration:underline;text-underline-offset:4px}
.try-map:hover{color:var(--blue)}
.mod-row .capstone{display:inline-block;margin-left:6px;padding:1px 9px;border-radius:999px;font-size:12px;font-weight:800;color:#231A00;background:#F2B01E;vertical-align:.12em}

/* ---------- Enneagram map ---------- */
.ennea{display:grid;grid-template-columns:minmax(0,420px) minmax(0,1fr);gap:26px;align-items:center}
.ennea .rim{fill:none;stroke:var(--line);stroke-width:2}
.ennea .ln{stroke:var(--gray-2);stroke-width:1.5;fill:none;opacity:.55;transition:stroke .2s,opacity .2s,stroke-width .2s}
.ennea .ln.hot{stroke:var(--c-heart);stroke-width:3.5;opacity:1}
.ennea .arc{fill:none;stroke:var(--blue);stroke-width:7;stroke-linecap:round;opacity:0;transition:opacity .25s}
.ennea .arc.hot{opacity:.85}
.ennea .wedge{opacity:0;transition:opacity .3s}
.ennea .w-gut{fill:var(--c-gut)} .ennea .w-heart{fill:var(--c-heart)} .ennea .w-head{fill:var(--c-head)}
.ennea .wl{font-size:14px;font-weight:800;text-anchor:middle;opacity:0;transition:opacity .3s;pointer-events:none}
.ennea .wl.gut{fill:var(--c-gut)} .ennea .wl.heart{fill:var(--c-heart)} .ennea .wl.head{fill:var(--c-head)}
.ennea .nd circle{fill:var(--paper);stroke:var(--ink-2);stroke-width:2;transition:fill .2s,stroke .2s,transform .25s var(--ease-out);transform-box:fill-box;transform-origin:center}
.ennea .nd text{font-size:17px;font-weight:800;fill:var(--ink);text-anchor:middle;dominant-baseline:central;pointer-events:none}
.ennea .nd:hover circle{transform:scale(1.1)}
.ennea .nd.sel circle{fill:var(--ink);stroke:var(--ink)} .ennea .nd.sel text{fill:var(--paper)}
.ennea .nd.wing circle{fill:var(--blue-soft);stroke:var(--blue);stroke-width:3}
.ennea .nd.arrow circle{fill:var(--paper);stroke:var(--c-heart);stroke-width:3.5}
.ennea .nd.dim{opacity:.4}
.ennea[data-mode="centers"] .wedge{opacity:.13}
.ennea[data-mode="centers"] .wedge.on{opacity:.3}
.ennea[data-mode="centers"] .wl{opacity:1}
.ennea[data-mode="centers"] .ln{opacity:.2}
.ennea[data-mode="centers"] .nd.gut circle{stroke:var(--c-gut);stroke-width:3}
.ennea[data-mode="centers"] .nd.heart circle{stroke:var(--c-heart);stroke-width:3}
.ennea[data-mode="centers"] .nd.head circle{stroke:var(--c-head);stroke-width:3}
.ennea-key{display:flex;flex-wrap:wrap;gap:6px 16px;margin:10px 0 0;padding:0;list-style:none;font-size:13.5px;color:var(--gray)}
.ennea-key li{display:inline-flex;align-items:center;gap:7px}
.ennea-key i{width:18px;height:4px;border-radius:4px;display:inline-block}
.ennea-key .k-wing{background:var(--blue)} .ennea-key .k-arrow{background:var(--c-heart)}
.ennea-key[hidden]{display:none}
.ennea-note{margin:12px 0 0;padding:12px 14px;border-radius:12px;background:var(--quote-bg);border:1px solid var(--warn-line);font-size:14px;line-height:1.65;color:var(--ink-2)}
@media(max-width:820px){.ennea{grid-template-columns:1fr}.ennea .map-svg{max-width:400px;margin:0 auto}}

/* ---------- the thread: spiral ---------- */
.thread{display:grid;grid-template-columns:minmax(0,360px) minmax(0,1fr);gap:28px;align-items:center}
.spiral .seg-p{fill:none;stroke-width:7;stroke-linecap:round;opacity:.9;transition:opacity .25s,stroke-width .25s}
.spiral .ph1{stroke:var(--p1)} .spiral .ph2{stroke:var(--p2)} .spiral .ph3{stroke:var(--p3)} .spiral .ph4{stroke:var(--p4)}
.spiral.has-active .seg-p{opacity:.18}
.spiral.has-active .seg-p.on{opacity:1;stroke-width:9}
.spiral .pn circle{stroke-width:2.5;fill:var(--paper)}
.spiral .pn text{font-size:15px;font-weight:800;text-anchor:middle;dominant-baseline:central}
.spiral .pn1 circle{stroke:var(--p1)} .spiral .pn1 text{fill:var(--p1)}
.spiral .pn2 circle{stroke:var(--p2)} .spiral .pn2 text{fill:var(--p2)}
.spiral .pn3 circle{stroke:var(--p3)} .spiral .pn3 text{fill:var(--p3)}
.spiral .pn4 circle{stroke:var(--p4)} .spiral .pn4 text{fill:var(--p4)}
.spiral .ctr{font-size:13px;font-weight:700;fill:var(--gray);text-anchor:middle}
.spiral.is-drawing .seg-p{stroke-dasharray:var(--len);stroke-dashoffset:var(--len)}
.spiral.is-drawn .seg-p{stroke-dashoffset:0;transition:stroke-dashoffset .35s linear,opacity .25s,stroke-width .25s}
.phases{list-style:none;margin:0;padding:0;display:grid;gap:10px}
.phases button{font:inherit;width:100%;text-align:left;display:grid;grid-template-columns:34px 1fr;gap:4px 12px;align-items:center;
  padding:12px 14px;border-radius:14px;border:1px solid var(--line);background:var(--paper);cursor:pointer;color:var(--ink-2);
  transition:border-color .15s,transform .15s var(--ease-out),box-shadow .15s}
.phases button:hover,.phases button.on{border-color:var(--pc);transform:translateX(3px);box-shadow:0 6px 18px rgba(15,23,42,.06)}
.phases .pnum{grid-row:span 2;width:30px;height:30px;border-radius:50%;display:grid;place-items:center;font-weight:800;font-size:14px;color:#fff;background:var(--pc)}
.phases b{font-size:16px;line-height:1.35}
.phases small{font-size:13.5px;color:var(--gray);line-height:1.4}
.phases li:nth-child(1){--pc:var(--p1)} .phases li:nth-child(2){--pc:var(--p2)} .phases li:nth-child(3){--pc:var(--p3)} .phases li:nth-child(4){--pc:var(--p4)}
.phases li:nth-child(4) .pnum{color:#231A00}
@media (prefers-color-scheme:dark){.phases .pnum{color:#0E1116}.phases button:hover,.phases button.on{box-shadow:none}}
.skills{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin:22px 0 0;padding:0;list-style:none}
.skills li{padding:14px 16px;border-radius:14px;background:var(--panel);font-size:15px;font-weight:700;line-height:1.45;color:var(--ink)}
.skills li span{display:block;font-size:12px;font-weight:800;letter-spacing:.05em;color:var(--blue);margin-bottom:2px}
@media(max-width:760px){.thread{grid-template-columns:1fr}.thread .spiral-svg{max-width:320px;margin:0 auto}.skills{grid-template-columns:1fr 1fr}}
@media(max-width:420px){.skills{grid-template-columns:1fr}}

@media(prefers-reduced-motion:reduce){
  .journey .halo{animation:none;opacity:0}
  .depth .root path,.depth .root rect,.spiral .seg-p{transition:none!important}
}
.depth .lbl.halo{paint-order:stroke;stroke:var(--blue-soft);stroke-width:5px;stroke-linejoin:round}
.depth .lbl.halo1{paint-order:stroke;stroke:var(--blue-tint);stroke-width:5px;stroke-linejoin:round}
.journey .yr-l.v{paint-order:stroke;stroke:var(--paper);stroke-width:8px;stroke-linejoin:round}

/* ---------- application tracks (home #apply) ---------- */
.apply-tracks{list-style:none;margin:24px 0 0;padding:0;display:grid;grid-template-columns:1fr 1fr;gap:14px}
.at{border:1px solid var(--line);border-radius:var(--radius);padding:18px 20px;background:var(--paper)}
.at-main{grid-column:1 / -1;background:linear-gradient(160deg,var(--tint-a),var(--paper) 70%);border-color:var(--tint-line)}
.at-head{display:flex;gap:12px;align-items:flex-start;margin-bottom:8px}
.at-n{flex:none;width:32px;height:32px;border-radius:50%;display:grid;place-items:center;font-weight:800;font-size:15px;color:#fff;background:var(--blue)}
.at h3{font-size:17.5px;font-weight:800;line-height:1.4}
.at-cap{margin:2px 0 0;font-size:13.5px;font-weight:700;color:var(--blue-deep)}
.at p{margin:0;font-size:15px;line-height:1.7;color:var(--ink-2)}
.at p + p{margin-top:6px}
.at h4{margin:12px 0 4px;font-size:13.5px;font-weight:800;color:var(--ink)}
.at-elig{margin:0;padding-left:20px;font-size:14.5px;line-height:1.65}
.at-elig li + li{margin-top:3px}
.at-elig-s{font-size:14px!important;color:var(--gray)!important}
.apply-note{margin:14px 0 0;font-size:13.5px;color:var(--gray)}
@media (prefers-color-scheme:dark){.at-n{background:#2563EB}}
@media(max-width:640px){.apply-tracks{grid-template-columns:1fr}}
